@font-face {
  font-family: "Amandine";
  src: url("../assets/fonts/Amandine-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --ink: #2d2924;
  --muted: #8d887f;
  --line: #ded8ce;
  --paper: #faf9f6;
  --warm: #f4f1eb;
  --dark: #050504;
  --cream: #eee9df;
  --button: #bcae99;
  --hover-beige: #c8b69d;
  --serif: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif;
  --sans: "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --script: "Snell Roundhand", "Zapfino", "Brush Script MT", cursive;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  margin: 0;
  overflow-x: clip;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0;
}

body.menu-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

p,
h1,
h2,
blockquote {
  margin: 0;
}

.site-header {
  position: fixed;
  z-index: 220;
  top: 0;
  left: 0;
  right: 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 28px 42px;
  color: rgba(45, 41, 36, 0.76);
  mix-blend-mode: multiply;
}

.brand-mark {
  grid-column: 2;
  justify-self: center;
  transition:
    opacity 900ms ease;
  will-change: opacity;
}

.brand-mark,
.footer-brand {
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1;
  text-transform: uppercase;
}

.menu-button {
  position: relative;
  z-index: 221;
  grid-column: 3;
  justify-self: end;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 44px;
  height: 44px;
  margin: -14px -8px -14px 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: color 260ms ease;
}

.menu-button span {
  display: block;
  width: 28px;
  height: 1px;
  background: currentColor;
  transition: background-color 260ms ease;
}

.header-actions {
  position: relative;
  z-index: 221;
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 10px;
}

.header-actions .menu-button {
  grid-column: auto;
  justify-self: auto;
}

.language-switcher {
  display: flex;
  align-items: center;
  gap: 7px;
  color: inherit;
}

.language-switcher__button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 34px;
  height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font-family: var(--sans);
  font-size: 9px;
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 1;
  opacity: 0.62;
  transition:
    color 260ms ease,
    opacity 260ms ease;
}

.language-switcher__button:hover,
.language-switcher__button:focus-visible,
.language-switcher__button.is-active {
  color: var(--hover-beige);
  opacity: 1;
}

.language-switcher__button:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
}

.language-switcher__flag {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0;
  line-height: 1;
}

.menu-button:hover,
.menu-button:focus-visible {
  color: var(--hover-beige);
}

.menu-button:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
}

.menu-overlay {
  position: fixed;
  z-index: 200;
  top: 0;
  right: 0;
  bottom: 0;
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  justify-items: end;
  width: 50vw;
  max-width: 100%;
  padding: clamp(72px, 9vw, 128px) clamp(34px, 5vw, 76px);
  background: #2f1a1a;
  color: #fff;
  pointer-events: none;
  transform: translateX(100%);
  transition: transform 720ms cubic-bezier(0.77, 0, 0.18, 1);
}

.site-footer .privacy-link {
  display: none;
}

.menu-monogram {
  position: absolute;
  top: clamp(42px, 6vw, 74px);
  left: clamp(44px, 10vw, 190px);
  width: 150px;
  height: 140px;
  color: rgba(255, 255, 255, 0.35);
  font-family: var(--serif);
  font-size: clamp(92px, 9vw, 142px);
  line-height: 0.78;
  pointer-events: none;
}

.menu-monogram span {
  position: absolute;
}

.menu-monogram span:first-child {
  left: 0;
  top: 0;
}

.menu-monogram span:last-child {
  left: 58px;
  top: 62px;
  font-style: italic;
}

.menu-nav {
  display: grid;
  grid-column: 1;
  gap: clamp(30px, 5vh, 54px);
  justify-items: end;
  opacity: 0;
  transform: translateX(22px);
  transition:
    opacity 420ms ease 180ms,
    transform 520ms ease 180ms;
  text-align: right;
}

.menu-overlay a {
  color: #fff;
  font-family: var(--sans);
  font-size: clamp(9px, 0.78vw, 14px);
  font-weight: 400;
  letter-spacing: clamp(0.42em, 0.9vw, 0.58em);
  line-height: 1.2;
  text-indent: clamp(0.42em, 0.9vw, 0.58em);
  text-transform: uppercase;
  transition: color 260ms ease;
}

.menu-overlay a:hover,
.menu-overlay a:focus-visible {
  color: var(--hover-beige);
}

.menu-overlay a.is-active {
  color: #fff;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 8px;
}

.menu-hidden-admin {
  width: min(180px, 42vw);
  height: 44px;
  margin-top: -18px;
  padding: 0;
  border: 0;
  background: transparent;
  color: transparent;
  cursor: default;
  opacity: 0;
}

.menu-open .menu-overlay {
  pointer-events: auto;
  transform: translateX(0);
}

.menu-open .menu-nav {
  opacity: 1;
  transform: translateX(0);
}

.menu-open .site-header {
  color: #fff;
  mix-blend-mode: normal;
}

.menu-open .brand-mark {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

.has-scrolled .brand-mark {
  opacity: 0;
  pointer-events: none;
}

.menu-open .menu-button span:first-child {
  position: absolute;
  width: 16px;
  height: 2px;
  opacity: 1;
  transform: rotate(45deg);
}

.menu-open .menu-button span:nth-child(2) {
  opacity: 0;
}

.menu-open .menu-button span:last-child {
  position: absolute;
  width: 16px;
  height: 2px;
  opacity: 1;
  transform: rotate(-45deg);
}

.menu-open .menu-button {
  width: 22px;
  height: 22px;
  margin: 0;
  transform: translateX(-25px);
}

.menu-open .menu-button:focus-visible {
  outline: 0;
}

.menu-button span {
  transition:
    transform 420ms ease,
    filter 420ms ease,
    opacity 420ms ease;
}

/* Editorial wedding photographer Italy clone page */
.italy-clone-page {
  background: #f7f6f3;
  color: #57524b;
}

.italy-clone-page .site-header {
  color: rgba(255, 255, 255, 0.88);
  mix-blend-mode: normal;
}

.italy-clone-page.has-scrolled .site-header,
.italy-clone-page.menu-open .site-header {
  color: #fff;
}

.italy-brand img {
  display: block;
  width: 74px;
  height: auto;
  object-fit: contain;
}

.italy-page {
  background: #f7f6f3;
}

.italy-page img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-intro-section {
  display: grid;
  justify-items: center;
  align-content: center;
  min-height: clamp(360px, 45vw, 560px);
  padding: clamp(86px, 9vw, 140px) clamp(28px, 6vw, 96px);
  background: #fff;
  color: #111;
  text-align: center;
}

.service-intro-kicker {
  margin: 0 0 clamp(44px, 4vw, 66px);
  color: #111;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.3;
  text-transform: uppercase;
}

.service-intro-text {
  width: min(760px, 100%);
  margin: 0;
  color: #111;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.45;
}

.service-included-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 24% 76%;
  width: 100%;
  height: clamp(620px, 66vh, 780px);
  margin: 0 0 clamp(58px, 6vw, 110px);
  overflow: visible;
  border-top: 1px solid #111;
  border-bottom: 1px solid #111;
  background: #fff;
  color: #111;
}

.service-included-heading {
  display: grid;
  align-items: center;
  justify-items: center;
  border-right: 1px solid #111;
  border-bottom: 1px solid #111;
}

.service-included-heading h2 {
  margin: 0;
  color: #111;
  font-family: var(--serif);
  font-size: clamp(28px, 3.2vw, 54px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}

.service-included-top-photo {
  min-height: 100%;
  border-bottom: 1px solid #111;
  background-position: center;
  background-size: cover;
}

.service-included-main-photo {
  min-height: 100%;
  border-right: 1px solid #111;
  background-position: center;
  background-size: cover;
  filter: grayscale(1);
}

.service-included-content {
  display: grid;
  align-content: center;
  gap: clamp(24px, 2.2vw, 36px);
  min-height: 0;
  overflow: visible;
  padding: clamp(22px, 2vw, 34px) clamp(34px, 3.8vw, 70px);
}

.service-included-intro h3 {
  margin: 0 0 8px;
  color: #111;
  font-family: var(--serif);
  font-size: clamp(17px, 1.3vw, 24px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.1;
}

.service-included-intro {
  margin-bottom: 0;
}

.service-included-intro p {
  margin: 0;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(10px, 0.78vw, 13px);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.25;
  text-transform: uppercase;
}

.service-included-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(34px, 3.8vw, 72px);
  row-gap: clamp(14px, 1.6vw, 26px);
}

.service-included-list article {
  margin: 0;
}

.service-included-list h4 {
  margin: 0 0 clamp(7px, 0.7vw, 12px);
  color: #111;
  font-family: var(--sans);
  font-size: clamp(10px, 0.78vw, 13px);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.25;
  text-transform: uppercase;
}

.service-included-list p {
  margin: 0;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(10px, 0.76vw, 13px);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.24;
}

.service-expect-section {
  padding: 0 clamp(28px, 4vw, 56px) clamp(58px, 6vw, 110px);
  background: #fff;
  color: #111;
}

.service-expect-grid {
  display: grid;
  grid-template-columns: minmax(250px, 1fr) minmax(320px, 0.92fr) minmax(250px, 1fr);
  grid-template-areas:
    "left-top title right-top"
    "left-bottom title right-bottom";
  column-gap: clamp(54px, 6vw, 130px);
  row-gap: clamp(54px, 5.4vw, 104px);
  align-items: center;
  width: min(1840px, 100%);
  margin: 0 auto;
  padding: clamp(44px, 5vw, 92px) 0;
  border-top: 1px solid #111;
  border-bottom: 1px solid #111;
}

.service-expect-title {
  grid-area: title;
  margin: 0;
  color: #111;
  font-family: var(--serif);
  font-size: clamp(40px, 4.3vw, 76px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.2;
  text-align: center;
}

.service-expect-item {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: clamp(20px, 2vw, 44px);
  align-items: start;
  margin: 0;
}

.service-expect-item:nth-of-type(1) {
  grid-area: left-top;
}

.service-expect-item:nth-of-type(2) {
  grid-area: left-bottom;
}

.service-expect-item:nth-of-type(3) {
  grid-area: right-top;
}

.service-expect-item:nth-of-type(4) {
  grid-area: right-bottom;
}

.service-expect-item span,
.service-expect-item p {
  margin: 0;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(14px, 1.2vw, 22px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.35;
}

.service-film-section {
  display: grid;
  grid-template-columns: minmax(280px, 39.5%) minmax(0, 60.5%);
  grid-template-rows: auto 1fr;
  width: min(1760px, calc(100vw - clamp(52px, 6vw, 104px)));
  min-height: clamp(476px, 47.6vw, 765px);
  margin: 0 auto clamp(58px, 6vw, 110px);
  border: 1px solid #111;
  background: #fff;
  color: #111;
}

.service-film-heading {
  display: grid;
  align-content: center;
  min-height: clamp(105px, 9vw, 150px);
  padding: clamp(22px, 2vw, 36px) clamp(44px, 4vw, 72px);
  border-bottom: 1px solid #111;
}

.service-film-heading h1 {
  margin: 0;
  color: #111;
  font-family: var(--serif);
  font-size: clamp(38px, 3.7vw, 68px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.04;
}

.service-film-heading p {
  margin: clamp(16px, 1.5vw, 28px) 0 0;
  color: #111;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1.25;
  text-transform: uppercase;
}

.service-film-copy {
  display: grid;
  align-content: center;
  gap: clamp(26px, 2.5vw, 42px);
  padding: clamp(48px, 4.4vw, 82px) clamp(44px, 4vw, 72px);
}

.service-film-copy p {
  width: min(560px, 100%);
  margin: 0;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(14px, 1.1vw, 20px);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.35;
}

.service-film-photo {
  grid-column: 2;
  grid-row: 1 / span 2;
  min-height: 100%;
  border-left: 1px solid #111;
  background-position: center;
  background-size: cover;
}

@media (max-width: 900px) {
  .service-included-section {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: minmax(180px, 24vh) auto;
    width: calc(100vw - 100px);
    height: auto;
    min-height: clamp(620px, 72vh, 780px);
    margin-inline: auto;
  }

  .service-included-heading h2 {
    font-size: clamp(24px, 5.8vw, 42px);
  }

  .service-included-main-photo {
    min-height: 100%;
  }

  .service-included-content {
    gap: clamp(26px, 4vw, 34px);
    padding: clamp(20px, 3.4vw, 30px);
  }

  .service-included-intro h3 {
    font-size: clamp(16px, 4vw, 24px);
  }

  .service-included-intro p,
  .service-included-list h4 {
    font-size: clamp(8px, 2vw, 12px);
  }

  .service-included-list {
    grid-template-columns: 1fr;
    gap: clamp(28px, 5vw, 40px);
  }

  .service-included-list h4 {
    margin-bottom: 10px;
  }

  .service-included-list p {
    font-size: clamp(8px, 2vw, 12px);
    line-height: 1.32;
  }

  .service-expect-section {
    padding: 0 50px clamp(46px, 8vw, 72px);
  }

  .service-expect-grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "left-top"
      "left-bottom"
      "right-top"
      "right-bottom";
    gap: clamp(28px, 6vw, 44px);
    padding: clamp(42px, 8vw, 70px) 0;
  }

  .service-expect-title {
    font-size: clamp(32px, 8vw, 52px);
  }

  .service-expect-item {
    grid-template-columns: 44px 1fr;
    gap: 18px;
  }

  .service-expect-item span,
  .service-expect-item p {
    font-size: clamp(12px, 3vw, 15px);
  }

  .service-film-section {
    grid-template-columns: minmax(150px, 39.5%) minmax(0, 60.5%);
    grid-template-rows: auto 1fr;
    width: calc(100vw - 100px);
    min-height: clamp(306px, 64.6vw, 527px);
  }

  .service-film-heading {
    min-height: clamp(76px, 16vw, 112px);
    padding: clamp(14px, 2.6vw, 22px);
  }

  .service-film-heading h1 {
    max-width: 100%;
    font-size: clamp(18px, 4vw, 32px);
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .service-film-copy {
    padding: clamp(22px, 4vw, 38px);
    gap: clamp(12px, 2.6vw, 22px);
  }

  .service-film-copy p {
    font-size: clamp(8px, 2vw, 12px);
    line-height: 1.34;
  }

  .service-film-photo {
    grid-column: 2;
    grid-row: 1 / span 2;
    min-height: 100%;
    border-top: 0;
    border-left: 1px solid #111;
  }
}

.italy-hero {
  position: relative;
  display: grid;
  align-items: end;
  min-height: 100vh;
  overflow: hidden;
  color: #fff;
  background: #090907;
}

.italy-hero__image {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0.18) 42%, rgba(0, 0, 0, 0.38)),
    url("https://www.eleonoraferolla.com/wp-content/uploads/2025/03/DSC_9850.jpg") center / cover no-repeat;
  filter: saturate(0.78);
  transform: scale(1.02);
}

.italy-hero__content {
  position: relative;
  z-index: 1;
  width: min(880px, calc(100vw - 48px));
  margin: 0 auto clamp(92px, 12vh, 150px);
  text-align: center;
}

.italy-hero__content p,
.italy-overline,
.italy-choice__title p,
.italy-choice-heading p,
.italy-process-list span {
  font-family: var(--sans);
  font-size: clamp(10px, 0.72vw, 15px);
  font-weight: 400;
  letter-spacing: 0.24em;
  line-height: 1.8;
  text-transform: uppercase;
}

.italy-hero__content h1 {
  max-width: 780px;
  margin: 30px auto 0;
  font-family: var(--serif);
  font-size: clamp(45px, 6.7vw, 86px);
  font-weight: 400;
  line-height: 0.96;
  text-transform: none;
}

.italy-intro {
  padding: clamp(132px, 13vw, 205px) 0 clamp(122px, 11vw, 184px);
}

.italy-two-copy {
  display: grid;
  grid-template-columns: minmax(0, 420px) minmax(0, 518px);
  gap: 96px;
  align-items: start;
  width: min(1040px, calc(100vw - 96px));
  margin: 0 auto;
}

.italy-two-copy p,
.italy-tailored__copy p,
.italy-note p,
.italy-process-list p,
.italy-expect p,
.italy-faq p,
.italy-contact p,
.italy-choice-list > article > p {
  color: #948f87;
  font-family: var(--sans);
  font-size: clamp(13px, 0.93vw, 17px);
  font-weight: 300;
  letter-spacing: 0.045em;
  line-height: 2.05;
}

.italy-outline-button,
.italy-dark-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 216px;
  min-height: 56px;
  margin-top: 44px;
  padding: 15px 34px;
  border: 1px solid #b8a68e;
  color: #9b8c77;
  background: transparent;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.34em;
  line-height: 1;
  text-transform: uppercase;
  transition:
    background-color 260ms ease,
    border-color 260ms ease,
    color 260ms ease;
}

.italy-outline-button:hover,
.italy-outline-button:focus-visible {
  border-color: #111;
  background: #111;
  color: #fff;
}

.italy-dark-button {
  min-width: 164px;
  min-height: 42px;
  margin-top: 34px;
  border-color: #111;
  background: #111;
  color: #fff;
}

.italy-dark-button:hover,
.italy-dark-button:focus-visible {
  border-color: #b8a68e;
  background: transparent;
  color: #9b8c77;
}

.italy-statement {
  padding: clamp(112px, 12vw, 190px) 0 clamp(154px, 16vw, 260px);
  background: #f0eee8;
  text-align: center;
}

.italy-statement p {
  width: min(1060px, calc(100vw - 80px));
  margin: 0 auto;
  color: #6b655d;
  font-family: var(--serif);
  font-size: clamp(34px, 4.9vw, 76px);
  font-weight: 400;
  line-height: 1.12;
}

.italy-choice {
  padding: clamp(132px, 14vw, 230px) 0 clamp(118px, 12vw, 190px);
  background: #f7f6f3;
}

.italy-choice__title {
  width: min(840px, calc(100vw - 80px));
  margin: 0 9vw clamp(160px, 16vw, 240px) auto;
  text-align: right;
}

.italy-choice__title h2 {
  position: relative;
  font-family: var(--serif);
  font-weight: 400;
  line-height: 0.84;
  text-transform: uppercase;
}

.italy-choice__title h2 em {
  position: absolute;
  right: 0;
  top: -0.58em;
  color: #4e4a44;
  font-family: var(--script);
  font-size: clamp(24px, 3.45vw, 58px);
  font-style: italic;
  font-weight: 400;
  line-height: 0.9;
  text-transform: none;
}

.italy-choice__title h2 span {
  display: block;
  color: #4e4a44;
  font-size: clamp(72px, 8.4vw, 138px);
  letter-spacing: 0.02em;
}

.italy-choice__title p {
  margin-top: 38px;
  color: #73706a;
}

.italy-choice-list {
  display: grid;
  gap: clamp(116px, 12vw, 178px);
}

.italy-choice-list article {
  display: grid;
  grid-template-columns: 40px 195px 319px 407px;
  grid-template-areas: "number image heading copy";
  column-gap: 32px;
  align-items: center;
  width: min(1057px, calc(100vw - 80px));
  margin: 0 auto;
}

.italy-choice-list article.is-reversed {
  grid-template-areas: "number heading image copy";
}

.italy-choice-number {
  grid-area: number;
  align-self: start;
  padding-top: 18px;
  color: #8e8980;
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 300;
  letter-spacing: 0.05em;
}

.italy-choice-list img {
  grid-area: image;
  width: 195px;
  height: 293px;
}

.italy-choice-heading {
  grid-area: heading;
}

.italy-choice-heading h3 {
  color: #56514a;
  font-family: var(--serif);
  font-size: clamp(38px, 3.8vw, 58px);
  font-weight: 400;
  letter-spacing: 0.015em;
  line-height: 0.92;
  text-transform: uppercase;
}

.italy-choice-heading p {
  margin-top: 24px;
  color: #6f6a62;
  font-size: clamp(11px, 0.82vw, 16px);
  letter-spacing: 0.04em;
  line-height: 1.55;
}

.italy-choice-list > article > p {
  grid-area: copy;
  color: #9b968e;
}

.italy-quote {
  display: grid;
  min-height: clamp(570px, 53vw, 760px);
  padding: 80px 24px;
  place-items: center;
  color: #fff;
  background:
    linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.38)),
    url("https://www.eleonoraferolla.com/wp-content/uploads/2025/03/DSC_8235-2.jpg") center / cover no-repeat fixed;
}

.italy-quote blockquote {
  width: min(900px, calc(100vw - 80px));
  text-align: center;
}

.italy-quote p {
  font-family: var(--sans);
  font-size: clamp(24px, 2.2vw, 34px);
  font-weight: 300;
  letter-spacing: 0.02em;
  line-height: 1.52;
}

.italy-quote cite {
  display: block;
  margin-top: 54px;
  font-family: var(--sans);
  font-size: 14px;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.italy-tailored {
  display: grid;
  grid-template-columns: minmax(300px, 513px) minmax(360px, 496px);
  gap: clamp(80px, 10vw, 158px);
  align-items: center;
  width: min(1120px, calc(100vw - 96px));
  margin: 0 auto;
  padding: clamp(148px, 15vw, 248px) 0;
}

.italy-tailored__media {
  position: relative;
  height: 770px;
}

.italy-tailored__media img:first-child {
  position: absolute;
  inset: 0;
  width: 66%;
  height: 78%;
}

.italy-tailored__media img:nth-child(2) {
  position: absolute;
  right: 0;
  top: 19%;
  width: 48%;
  height: 58%;
}

.italy-tailored__media img:nth-child(3) {
  position: absolute;
  left: 20%;
  bottom: 0;
  width: 44%;
  height: 36%;
}

.italy-tailored__copy h2,
.italy-expect h2,
.italy-contact h2,
.italy-process h2,
.italy-faq h2 {
  color: #5d5850;
  font-family: var(--serif);
  font-size: clamp(45px, 5.4vw, 82px);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 0.98;
}

.italy-tailored__copy h3,
.italy-expect h3,
.italy-process-list h3 {
  margin: 54px 0 18px;
  color: #5e5952;
  font-family: var(--serif);
  font-size: clamp(28px, 2.7vw, 44px);
  font-weight: 400;
  line-height: 1.08;
}

.italy-overline {
  margin-bottom: 34px;
  color: #9b968d;
}

.italy-note {
  padding: clamp(108px, 11vw, 176px) 0;
  background: #f0eee8;
  text-align: center;
}

.italy-note p {
  width: min(980px, calc(100vw - 80px));
  margin: 0 auto;
}

.italy-visual {
  position: relative;
  padding: clamp(140px, 14vw, 220px) 0 clamp(122px, 13vw, 210px);
  overflow: hidden;
}

.italy-visual header {
  position: sticky;
  top: 18vh;
  z-index: 2;
  width: min(780px, calc(100vw - 80px));
  margin: 0 auto 80px;
  text-align: center;
}

.italy-visual h2 {
  color: #24211e;
  font-family: var(--serif);
  font-size: clamp(88px, 13vw, 210px);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 0.88;
  text-transform: uppercase;
}

.italy-visual-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 64px;
  width: min(1120px, calc(100vw - 96px));
  margin: 0 auto;
}

.italy-visual-grid img:first-child {
  grid-column: 1 / 5;
  height: 620px;
}

.italy-visual-grid img:nth-child(2) {
  grid-column: 7 / 12;
  height: 520px;
  margin-top: 110px;
}

.italy-visual-grid img:nth-child(3) {
  grid-column: 2 / 8;
  height: 540px;
}

.italy-visual-grid img:nth-child(4) {
  grid-column: 9 / 12;
  height: 430px;
  margin-top: 120px;
}

.italy-visual-grid img:nth-child(5) {
  grid-column: 4 / 10;
  height: 520px;
}

.italy-process {
  padding: clamp(132px, 15vw, 245px) 0;
  background: #f7f6f3;
}

.italy-process header {
  width: min(860px, calc(100vw - 80px));
  margin: 0 8vw 150px auto;
  text-align: right;
}

.italy-process-list {
  display: grid;
  gap: 120px;
  width: min(1040px, calc(100vw - 80px));
  margin: 0 auto;
}

.italy-process-list article {
  display: grid;
  grid-template-columns: 60px 330px 1fr;
  gap: 72px;
  align-items: start;
}

.italy-process-list h3 {
  margin: 0;
  text-transform: uppercase;
}

.italy-expect {
  display: grid;
  grid-template-columns: minmax(340px, 560px) minmax(360px, 520px);
  gap: clamp(84px, 11vw, 156px);
  align-items: center;
  width: min(1180px, calc(100vw - 96px));
  margin: 0 auto;
  padding: clamp(128px, 14vw, 220px) 0;
}

.italy-expect img {
  height: 720px;
}

.italy-expect article + article {
  margin-top: 26px;
}

.italy-expect h3 {
  margin: 0 0 10px;
  font-size: clamp(24px, 2.1vw, 34px);
}

.italy-faq {
  width: min(1000px, calc(100vw - 80px));
  margin: 0 auto;
  padding: clamp(126px, 14vw, 220px) 0;
}

.italy-faq h2 {
  margin-bottom: 64px;
  text-align: center;
}

.italy-faq details {
  border-top: 1px solid #ded8cf;
  padding: 28px 0;
}

.italy-faq details:last-child {
  border-bottom: 1px solid #ded8cf;
}

.italy-faq summary {
  cursor: pointer;
  color: #5d5850;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.2em;
  list-style: none;
  text-transform: uppercase;
}

.italy-faq summary::-webkit-details-marker {
  display: none;
}

.italy-faq p {
  width: min(720px, 100%);
  margin-top: 20px;
}

.italy-contact {
  display: grid;
  grid-template-columns: minmax(330px, 470px) minmax(360px, 560px);
  gap: clamp(76px, 9vw, 138px);
  align-items: center;
  width: min(1120px, calc(100vw - 96px));
  margin: 0 auto;
  padding: clamp(120px, 14vw, 220px) 0;
}

.italy-contact img {
  height: 610px;
}

.italy-footer {
  margin-top: 0;
}

@media (max-width: 920px) {
  .italy-two-copy,
  .italy-tailored,
  .italy-expect,
  .italy-contact {
    grid-template-columns: 1fr;
    width: min(86vw, 620px);
  }

  .italy-choice__title,
  .italy-process header {
    margin-right: auto;
    text-align: center;
  }

  .italy-choice-list article,
  .italy-choice-list article.is-reversed {
    grid-template-columns: 42px 1fr;
    grid-template-areas:
      "number image"
      ". heading"
      ". copy";
    row-gap: 28px;
    width: min(84vw, 560px);
  }

  .italy-choice-list img {
    width: 100%;
    height: 520px;
  }

  .italy-process-list article {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .italy-visual-grid {
    grid-template-columns: 1fr;
    width: min(84vw, 560px);
  }

  .italy-visual-grid img,
  .italy-visual-grid img:first-child,
  .italy-visual-grid img:nth-child(2),
  .italy-visual-grid img:nth-child(3),
  .italy-visual-grid img:nth-child(4),
  .italy-visual-grid img:nth-child(5) {
    grid-column: auto;
    height: auto;
    min-height: 430px;
    margin-top: 0;
  }

  .italy-tailored__media,
  .italy-expect img,
  .italy-contact img {
    height: 560px;
  }
}

@media (max-width: 640px) {
  .italy-hero__content h1,
  .italy-statement p,
  .italy-tailored__copy h2,
  .italy-expect h2,
  .italy-contact h2,
  .italy-process h2,
  .italy-faq h2 {
    font-size: 42px;
  }

  .italy-choice__title h2 span {
    font-size: 58px;
  }

  .italy-choice-list article,
  .italy-choice-list article.is-reversed {
    grid-template-columns: 1fr;
    grid-template-areas:
      "number"
      "image"
      "heading"
      "copy";
  }

  .italy-choice-list img {
    height: 440px;
  }
}

.hero {
  position: relative;
  min-height: clamp(470px, 45.6vw, 810px);
  background: #ddd8ce;
  overflow: hidden;
}

.hero-frame {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 54% 46%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 500ms ease;
}

.hero-frame.is-active {
  opacity: 1;
  pointer-events: auto;
}

.photo {
  position: relative;
  overflow: hidden;
  background-color: #d6d3cd;
  isolation: isolate;
}

.photo.has-managed-image {
  background-color: #f2f0eb;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  filter: none;
}

.site-preview-target {
  outline: 4px solid #a7654f;
  outline-offset: 8px;
  box-shadow: 0 0 0 16px rgba(167, 101, 79, 0.18);
}

.photo.has-managed-image::before,
.photo.has-managed-image::after,
.photo.has-managed-image .ring {
  display: none;
}

.photo::before,
.photo::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.photo-soft {
  background:
    radial-gradient(circle at 35% 48%, rgba(245, 244, 239, 0.88) 0 7%, transparent 8%),
    linear-gradient(90deg, rgba(245, 244, 239, 0.74), transparent 26%),
    linear-gradient(120deg, #eeeae2 0%, #cfc9bf 48%, #e9e5de 100%);
}

.photo-arch::before {
  inset: 0 17% 0 auto;
  width: 42%;
  border-radius: 48% 48% 0 0;
  background:
    linear-gradient(180deg, rgba(74, 70, 64, 0.18), rgba(248, 246, 240, 0.1)),
    radial-gradient(ellipse at center, rgba(255, 255, 255, 0.42), transparent 58%);
  border-left: 20px solid rgba(249, 247, 241, 0.74);
}

.photo-arch::after {
  left: 31%;
  bottom: 0;
  width: 15%;
  height: 39%;
  border-radius: 52% 52% 6% 6%;
  background:
    radial-gradient(circle at 50% 10%, #2f2d2a 0 8%, transparent 9%),
    linear-gradient(82deg, transparent 0 25%, #f8f6f1 27% 74%, transparent 76%);
  filter: grayscale(1);
}

.photo-stone {
  background:
    radial-gradient(circle at 18% 22%, rgba(116, 108, 95, 0.12) 0 1px, transparent 2px),
    radial-gradient(circle at 72% 66%, rgba(91, 83, 72, 0.12) 0 1px, transparent 2px),
    linear-gradient(115deg, #d8d1c5, #eee8dc 42%, #cfc7ba);
  background-size: 18px 18px, 26px 26px, auto;
}

.ring {
  position: absolute;
  width: 58px;
  aspect-ratio: 1;
  border: 7px solid rgba(119, 103, 80, 0.62);
  border-radius: 50%;
  box-shadow: 0 12px 18px rgba(36, 31, 26, 0.13);
}

.ring-one {
  top: 37%;
  left: 30%;
}

.ring-two {
  top: 55%;
  left: 60%;
}

.hero-frame--one .hero-photo {
  background:
    radial-gradient(circle at 32% 28%, rgba(248, 246, 240, 0.78) 0 6%, transparent 7%),
    radial-gradient(circle at 22% 72%, rgba(32, 31, 29, 0.34) 0 16%, transparent 17%),
    linear-gradient(105deg, #292927 0 31%, #b7b4ad 32% 55%, #ece8df 56% 100%);
}

.hero-frame--one .photo-arch::before {
  inset: 0 auto 0 14%;
  width: 36%;
  border-radius: 0;
  border-left: 0;
  background:
    repeating-linear-gradient(90deg, rgba(250, 248, 242, 0.82) 0 18px, transparent 19px 72px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.46), rgba(255, 255, 255, 0));
}

.hero-frame--one .photo-arch::after {
  left: 56%;
  bottom: 0;
  width: 16%;
  height: 46%;
  border-radius: 48% 48% 0 0;
  background:
    radial-gradient(circle at 50% 12%, #e7e3db 0 12%, transparent 13%),
    linear-gradient(84deg, transparent 0 20%, #f3f0e8 22% 76%, transparent 78%);
}

.hero-frame--one .hero-stone {
  background:
    radial-gradient(circle at 68% 23%, rgba(47, 45, 42, 0.18) 0 12%, transparent 13%),
    radial-gradient(circle at 36% 66%, rgba(245, 243, 238, 0.7) 0 9%, transparent 10%),
    linear-gradient(130deg, #ece8df 0 38%, #77756f 39% 61%, #d4cec3 62%);
}

.hero-frame--one .ring-one {
  top: 28%;
  left: 64%;
  border-color: rgba(80, 76, 70, 0.62);
}

.hero-frame--one .ring-two {
  top: 65%;
  left: 28%;
  border-color: rgba(205, 198, 186, 0.74);
}

.hero-frame--two .hero-photo {
  background:
    linear-gradient(180deg, rgba(247, 245, 239, 0.85), rgba(247, 245, 239, 0.08) 34%),
    radial-gradient(circle at 48% 34%, #d7d2c7 0 12%, transparent 13%),
    linear-gradient(116deg, #c9c3b8 0 40%, #efebe2 41% 67%, #46443f 68%);
}

.hero-frame--two .photo-arch::before {
  inset: auto 10% 0 auto;
  width: 38%;
  height: 76%;
  border-radius: 48% 48% 0 0;
  border-left: 16px solid rgba(244, 241, 234, 0.64);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.38), rgba(47, 45, 41, 0.22)),
    radial-gradient(ellipse at center, rgba(255, 255, 255, 0.44), transparent 58%);
}

.hero-frame--two .photo-arch::after {
  left: 28%;
  bottom: 0;
  width: 18%;
  height: 50%;
  border-radius: 48% 48% 8% 8%;
  background:
    radial-gradient(circle at 50% 9%, #3c3935 0 9%, transparent 10%),
    linear-gradient(80deg, transparent 0 20%, #f0ede5 22% 78%, transparent 80%);
}

.hero-frame--two .hero-stone {
  background:
    radial-gradient(circle at 21% 22%, rgba(82, 78, 71, 0.16) 0 1px, transparent 2px),
    radial-gradient(circle at 78% 58%, rgba(82, 78, 71, 0.16) 0 1px, transparent 2px),
    repeating-linear-gradient(28deg, #ddd7cc 0 22px, #f3f0e9 23px 44px, #c8c0b3 45px 60px);
  background-size: 22px 22px, 28px 28px, auto;
}

.hero-frame--two .ring-one {
  top: 54%;
  left: 24%;
}

.hero-frame--two .ring-two {
  top: 34%;
  left: 66%;
}

.intro-section {
  padding: 88px 24px 94px;
  text-align: center;
  background: var(--paper);
}

.reveal {
  opacity: 0;
  transform: none;
  transition: opacity 900ms ease;
  transition-delay: var(--reveal-delay, 0ms);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.micro-nav {
  display: flex;
  justify-content: center;
  gap: 44px;
  margin-bottom: 34px;
  color: #c7c0b5;
  font-size: 9px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.title-lockup {
  max-width: 620px;
  margin: 0 auto;
}

.overline {
  color: #a69f95;
  font-size: 9px;
  letter-spacing: 0.24em;
  line-height: 1.6;
  text-transform: uppercase;
}

.title-lockup h1,
.portfolio-section h2,
.editorial-section h2,
.destination-section h2,
.keys-section h2,
.consultation-section h2,
.journey-section h2 {
  font-family: var(--serif);
  font-weight: 300;
  line-height: 0.92;
  text-transform: uppercase;
}

.title-lockup h1 {
  position: relative;
  display: grid;
  margin-top: 12px;
  font-size: clamp(54px, 5.8vw, 96px);
  color: #3a3630;
}

.title-lockup em {
  position: absolute;
  left: 50%;
  top: 42%;
  transform: translate(-50%, -50%) rotate(-5deg);
  color: rgba(111, 99, 84, 0.76);
  font-family: var(--script);
  font-size: 0.48em;
  font-style: normal;
  line-height: 1;
  text-transform: none;
}

.under-title {
  max-width: 390px;
  margin: 22px auto 0;
  color: #999188;
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.7;
}

.intro-copy {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 68px;
  max-width: 760px;
  margin: 56px auto 0;
  color: #8b857c;
  text-align: left;
  font-size: 12px;
  line-height: 1.9;
}

.intro-gallery {
  position: relative;
  width: min(720px, calc(100vw - 48px));
  height: 500px;
  margin: 76px auto 42px;
}

.intro-photo-left {
  position: absolute;
  left: 78px;
  bottom: 0;
  width: 245px;
  height: 355px;
}

.intro-photo-right {
  position: absolute;
  right: 72px;
  top: 0;
  width: 300px;
  height: 430px;
}

.scroll-fade-up {
  opacity: var(--scroll-fade-opacity, 0);
  transform: translate3d(0, var(--scroll-fade-y, 108px), 0);
  transition:
    opacity 0.32s ease-out,
    transform 0.32s ease-out;
  will-change: opacity, transform;
}

.photo-fade {
  background: #bdbbb6;
  filter: grayscale(1);
}

.photo-couple {
  background:
    radial-gradient(circle at 54% 23%, #292826 0 8%, transparent 9%),
    radial-gradient(circle at 42% 30%, #ece8df 0 12%, transparent 13%),
    linear-gradient(98deg, #e7e1d5 0 44%, #3f3d39 45% 70%, #d5d2cc 71%);
  filter: grayscale(1);
}

.outline-button,
.dark-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 158px;
  min-height: 42px;
  padding: 12px 24px;
  border: 1px solid var(--button);
  color: #897965;
  font-size: 9px;
  letter-spacing: 0.18em;
  line-height: 1.2;
  text-transform: uppercase;
  transition:
    background-color 260ms ease,
    border-color 260ms ease,
    color 260ms ease,
    box-shadow 260ms ease;
}

.outline-button:hover,
.outline-button:focus-visible {
  border-color: var(--hover-beige);
  background: #050504;
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(200, 182, 157, 0.45);
}

.dark-button:hover,
.dark-button:focus-visible {
  border-color: var(--hover-beige);
  background: #fff;
  color: #050504;
  box-shadow: inset 0 0 0 1px rgba(200, 182, 157, 0.45);
}

.outline-button.small {
  min-width: 170px;
  min-height: 38px;
  padding: 10px 18px;
  font-size: 8px;
}

.journey-section {
  padding: 82px 24px 86px;
  background: var(--warm);
  text-align: center;
}

.narrow {
  max-width: 820px;
  margin: 0 auto;
}

.journey-section h2 {
  color: #777168;
  font-size: clamp(24px, 2.2vw, 36px);
  text-transform: none;
}

.journey-section p {
  max-width: 720px;
  margin: 22px auto 0;
  color: #9b948a;
  font-size: 12px;
}

.split-story {
  display: grid;
  grid-template-columns: minmax(0, 51vw) minmax(280px, 420px);
  align-items: center;
  gap: clamp(64px, 9vw, 150px);
  padding: 96px max(24px, calc((100vw - 1240px) / 2)) 98px 0;
  background: var(--paper);
}

.story-photo {
  width: 100%;
  aspect-ratio: 1.72;
}

.photo-close {
  background:
    radial-gradient(circle at 33% 35%, #d7d3ca 0 13%, transparent 14%),
    radial-gradient(circle at 58% 28%, #2e2d2b 0 14%, transparent 15%),
    linear-gradient(115deg, #9b9994 0 30%, #ece9e3 31% 55%, #363431 56% 74%, #d6d3cd 75%);
  filter: grayscale(1);
}

.story-copy {
  color: #938c83;
  font-size: 12px;
  line-height: 1.95;
}

.story-copy p + p {
  margin-top: 24px;
}

.story-copy .outline-button {
  margin-top: 34px;
}

.cinema-quote {
  position: relative;
  min-height: clamp(430px, 42vw, 690px);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #f8f5ed;
  text-align: center;
}

.parallax-section {
  position: relative;
  overflow: hidden;
}

.parallax-section .parallax-photo {
  position: absolute;
  inset: -10% 0;
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1.03);
  will-change: transform;
  transition: none;
}

.parallax-section .parallax-photo.has-managed-image {
  transform: translate3d(0, var(--parallax-y, 0px), 0);
}

.quote-photo {
  position: absolute;
}

.photo-water {
  background:
    linear-gradient(180deg, rgba(24, 25, 24, 0.26), rgba(5, 6, 5, 0.25)),
    repeating-linear-gradient(168deg, #737a78 0 9px, #4f5857 10px 15px, #939894 16px 20px),
    linear-gradient(135deg, #363d3c, #7d827d);
}

.photo-water::after {
  right: 21%;
  bottom: 24%;
  width: 260px;
  height: 82px;
  transform: rotate(-13deg);
  border-radius: 50% 14% 44% 14%;
  background: linear-gradient(90deg, #9c958c, #56534f 55%, #d2ccc0);
  box-shadow: -125px 55px 0 rgba(234, 232, 224, 0.72);
}

.cinema-quote blockquote {
  position: relative;
  z-index: 1;
  max-width: 660px;
  padding: 0 24px;
  font-family: var(--serif);
  font-size: clamp(18px, 1.8vw, 29px);
  line-height: 1.5;
}

.portfolio-section {
  padding: 82px 24px 112px;
  background: var(--paper);
  text-align: center;
}

.portfolio-section h2 {
  color: #39342d;
  font-size: clamp(58px, 7vw, 122px);
}

.portfolio-grid {
  position: relative;
  width: min(860px, calc(100vw - 48px));
  height: 850px;
  margin: -10px auto 54px;
}

.portfolio-grid .photo {
  position: absolute;
}

.portfolio-a {
  top: 74px;
  left: 42px;
  width: 248px;
  height: 330px;
}

.portfolio-b {
  top: 26px;
  right: 74px;
  width: 380px;
  height: 320px;
}

.portfolio-c {
  left: 260px;
  bottom: 40px;
  width: 248px;
  height: 370px;
}

.portfolio-d {
  right: 170px;
  bottom: 175px;
  width: 190px;
  height: 145px;
}

.photo-veil {
  background:
    radial-gradient(circle at 38% 26%, #f5f3ee 0 15%, transparent 16%),
    linear-gradient(105deg, #5e5d59, #e9e6dd 54%, #b7b3aa);
  filter: grayscale(1);
}

.photo-kiss {
  background:
    radial-gradient(circle at 43% 33%, #2f2e2c 0 9%, transparent 10%),
    radial-gradient(circle at 58% 34%, #d9d4cb 0 9%, transparent 10%),
    linear-gradient(115deg, #cac3b6 0 42%, #595651 43% 70%, #e8e4dc 71%);
  filter: grayscale(1);
}

.photo-villa {
  background:
    linear-gradient(90deg, transparent 0 38%, rgba(255, 255, 255, 0.72) 39% 64%, transparent 65%),
    linear-gradient(180deg, #bbb9b3 0 36%, #efede7 37% 72%, #8e8e88 73%);
  filter: grayscale(1);
}

.portfolio-section p {
  max-width: 510px;
  margin: 0 auto 24px;
  color: #aaa399;
  font-size: 11px;
}

.dark-button {
  border-color: #151412;
  background: #050504;
  color: #f7f1e7;
}

.dark-section {
  background: var(--dark);
  color: #f2eee6;
}

.about-panel {
  display: grid;
  grid-template-columns: 120px minmax(220px, 360px) minmax(320px, 610px);
  gap: clamp(42px, 6vw, 98px);
  align-items: center;
  max-width: 1240px;
  margin: 0 auto;
  padding: 96px 32px 100px;
}

.side-label {
  align-self: end;
  color: #7a746c;
  font-size: 8px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.about-photo {
  aspect-ratio: 0.72;
}

.photo-portrait {
  background:
    radial-gradient(circle at 48% 22%, #dedbd4 0 11%, transparent 12%),
    linear-gradient(96deg, #141414 0 31%, #c8c5bd 32% 72%, #242322 73%);
  filter: grayscale(1);
}

.about-copy h2 {
  margin: 12px 0 22px;
  font-family: var(--script);
  font-size: clamp(38px, 4vw, 72px);
  font-weight: 400;
  line-height: 1;
  text-transform: none;
}

.about-copy p:not(.overline) {
  max-width: 620px;
  color: #b7b0a7;
  font-size: 12px;
  line-height: 2;
}

.about-copy p + p {
  margin-top: 18px;
}

.text-link {
  display: inline-block;
  margin-top: 30px;
  color: #d7cbb8;
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.press-panel {
  position: relative;
  display: grid;
  min-height: 540px;
  place-items: center;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  text-align: center;
}

.press-photo {
  position: absolute;
  opacity: 0.48;
}

.photo-crowd {
  background:
    radial-gradient(circle at 14% 48%, #d6d4cf 0 3%, transparent 4%),
    radial-gradient(circle at 38% 42%, #b4b1aa 0 4%, transparent 5%),
    radial-gradient(circle at 63% 55%, #ddd9d1 0 4%, transparent 5%),
    radial-gradient(circle at 86% 40%, #b6b3ac 0 4%, transparent 5%),
    repeating-linear-gradient(24deg, #1a1a19 0 18px, #3c3b38 19px 38px, #111 39px 55px);
  filter: grayscale(1);
}

.press-panel blockquote {
  position: relative;
  z-index: 1;
  max-width: 760px;
  padding: 0 24px;
  font-family: var(--serif);
  font-size: clamp(20px, 2vw, 34px);
  line-height: 1.45;
}

.press-logos {
  position: absolute;
  left: 50%;
  bottom: 52px;
  z-index: 1;
  display: flex;
  width: min(980px, calc(100vw - 48px));
  transform: translateX(-50%);
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  color: #d8d2c8;
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1;
  text-transform: uppercase;
}

.editorial-section {
  display: grid;
  grid-template-columns: minmax(280px, 520px) minmax(280px, 370px);
  gap: clamp(58px, 8vw, 130px);
  align-items: start;
  max-width: 1120px;
  margin: 0 auto;
  padding: 116px 32px 114px;
  background: var(--paper);
}

.editorial-copy h2,
.destination-copy h2,
.consultation-copy h2 {
  margin: 16px 0 28px;
  color: #5f574e;
  font-size: clamp(36px, 3.7vw, 66px);
  line-height: 1.05;
  text-transform: none;
}

.editorial-copy p:not(.overline),
.destination-copy p,
.consultation-copy p:not(.overline),
.keys-copy {
  color: #938d84;
  font-size: 12px;
  line-height: 1.95;
}

.editorial-copy p + p {
  margin-top: 19px;
}

.editorial-photo {
  width: 100%;
  aspect-ratio: 0.78;
}

.photo-garden {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.78), transparent 36%),
    radial-gradient(circle at 52% 56%, #f0eee8 0 17%, transparent 18%),
    repeating-linear-gradient(105deg, #7d8177 0 14px, #d9d5ca 15px 35px);
  filter: grayscale(1);
}

.editorial-note {
  align-self: end;
  color: #a39d93;
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.7;
}

.editorial-note.right {
  align-self: end;
}

.destination-section {
  display: grid;
  grid-template-columns: minmax(240px, 360px) minmax(150px, 230px) minmax(290px, 440px);
  gap: clamp(34px, 5vw, 76px);
  align-items: center;
  max-width: 1120px;
  margin: 0 auto;
  padding: 108px 32px 116px;
  background: var(--paper);
}

.destination-wide {
  width: 100%;
  aspect-ratio: 0.74;
}

.destination-tall {
  width: 100%;
  aspect-ratio: 0.68;
  margin-top: 92px;
}

.photo-coast {
  background:
    radial-gradient(circle at 44% 56%, #e6e3dc 0 11%, transparent 12%),
    linear-gradient(145deg, #575651 0 38%, #eee9df 39% 72%, #7c7a74 73%);
  filter: grayscale(1);
}

.photo-bride {
  background:
    radial-gradient(circle at 51% 24%, #d6d2c9 0 13%, transparent 14%),
    linear-gradient(116deg, #1b1b1a, #f0ece4 48%, #3c3a37);
  filter: grayscale(1);
}

.destination-copy .outline-button {
  margin-top: 28px;
}

.keys-section {
  padding: 76px 32px 116px;
  background: var(--paper);
  text-align: center;
}

.keys-section h2 {
  color: #777168;
  font-size: clamp(26px, 2.8vw, 48px);
  text-transform: none;
}

.keys-section h2 em {
  font-family: var(--script);
  font-style: normal;
}

.keys-layout {
  display: grid;
  grid-template-columns: minmax(240px, 370px) minmax(300px, 520px);
  gap: clamp(54px, 9vw, 148px);
  align-items: center;
  max-width: 980px;
  margin: 70px auto 0;
  text-align: left;
}

.keys-copy ul {
  display: grid;
  gap: 4px;
  margin: 32px 0 0;
  padding: 0;
  color: #777168;
  list-style: none;
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.55;
}

.keys-photo {
  width: 100%;
  aspect-ratio: 1.34;
}

.photo-terrace {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(48, 47, 44, 0.28)),
    radial-gradient(circle at 80% 60%, #f2eee6 0 12%, transparent 13%),
    linear-gradient(120deg, #d8d2c5 0 36%, #807e78 37% 60%, #eeeae1 61%);
  filter: grayscale(1);
}

.consultation-section {
  display: grid;
  grid-template-columns: minmax(290px, 430px) minmax(280px, 460px);
  gap: clamp(58px, 8vw, 128px);
  align-items: center;
  justify-content: center;
  padding: 112px 32px;
  background: #f3f1ec;
}

.consultation-photo {
  width: 100%;
  aspect-ratio: 0.95;
}

.photo-car {
  background:
    radial-gradient(ellipse at 50% 55%, transparent 0 31%, #2f2e2b 32% 39%, transparent 40%),
    radial-gradient(circle at 46% 45%, #d8d4cb 0 10%, transparent 11%),
    linear-gradient(135deg, #b5b1a8, #2e2d2a 45%, #e8e4da);
  filter: grayscale(1);
}

.consultation-copy .outline-button {
  margin-top: 28px;
}

.site-footer {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr 1fr;
  gap: 54px;
  padding: 68px max(32px, calc((100vw - 1120px) / 2));
  background: #040403;
  color: #c8c2b8;
}

.site-footer p {
  max-width: 340px;
  color: #8e877d;
  font-size: 11px;
  line-height: 1.8;
}

.site-footer a {
  display: block;
  margin-top: 8px;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.site-footer .footer-brand {
  display: inline-flex;
  align-items: center;
  margin: 0 0 20px;
  width: clamp(150px, 13vw, 220px);
}

.footer-brand img {
  display: block;
  width: 100%;
  height: auto;
  filter: brightness(0) invert(1);
}

.footer-title {
  margin-bottom: 16px;
  color: #f3ede3;
  font-family: var(--serif);
  font-size: 18px;
  text-transform: uppercase;
}

.social-links {
  display: flex;
  gap: 18px;
  align-items: center;
}

.site-footer .social-links a {
  display: inline-flex;
  width: 22px;
  height: 22px;
  margin: 0;
  color: #f4eee4;
  transition: color 260ms ease;
}

.site-footer .social-links a:hover,
.site-footer .social-links a:focus-visible {
  color: var(--hover-beige);
}

.social-links svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

.social-links path {
  fill: currentColor;
  stroke: none;
}

@media (max-width: 900px) {
  .site-header {
    grid-template-columns: 1fr auto 1fr;
    padding: 22px 24px;
  }

  .menu-overlay {
    grid-template-columns: 1fr;
    justify-items: end;
    width: 68vw;
    padding: 92px 28px 58px;
  }

  .menu-monogram {
    top: 72px;
    left: 28px;
    font-size: 82px;
  }

  .menu-monogram span:last-child {
    left: 44px;
    top: 48px;
  }

  .menu-nav {
    grid-column: 1;
    gap: 34px;
    align-self: center;
  }

  .menu-overlay a {
    font-size: clamp(10px, 3vw, 14px);
    letter-spacing: 0.38em;
    text-indent: 0.38em;
  }

  .hero {
    min-height: 96vh;
  }

  .hero-frame {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
  }

  .hero-photo,
  .hero-stone {
    min-height: 0;
  }

  .intro-copy,
  .split-story,
  .about-panel,
  .editorial-section,
  .destination-section,
  .keys-layout,
  .consultation-section,
  .site-footer {
    grid-template-columns: 1fr;
  }

  .split-story {
    padding: 72px 24px;
    gap: 44px;
  }

  .micro-nav {
    flex-wrap: wrap;
    gap: 14px 28px;
  }

  .intro-gallery {
    height: 430px;
  }

  .intro-photo-left {
    left: 0;
    width: 42%;
    height: 310px;
  }

  .intro-photo-right {
    right: 0;
    width: 54%;
    height: 365px;
  }

  .portfolio-grid {
    height: 710px;
  }

  .portfolio-a {
    left: 0;
    width: 38%;
    height: 250px;
  }

  .portfolio-b {
    right: 0;
    width: 58%;
    height: 260px;
  }

  .portfolio-c {
    left: 18%;
    bottom: 46px;
    width: 42%;
    height: 320px;
  }

  .portfolio-d {
    right: 4%;
    bottom: 184px;
    width: 32%;
    height: 130px;
  }

  .about-panel {
    padding: 78px 24px;
  }

  .side-label {
    writing-mode: horizontal-tb;
    transform: none;
  }

  .press-logos {
    flex-wrap: wrap;
    justify-content: center;
  }

  .destination-tall {
    margin-top: 0;
  }

  .site-footer {
    gap: 30px;
  }
}

@media (max-width: 560px) {
  body {
    font-size: 13px;
  }

  .intro-section,
  .portfolio-section,
  .editorial-section,
  .destination-section,
  .keys-section,
  .consultation-section {
    padding-left: 20px;
    padding-right: 20px;
  }

  .title-lockup h1 {
    font-size: 46px;
  }

  .intro-gallery,
  .portfolio-grid {
    width: 100%;
  }

  .intro-gallery {
    height: 380px;
  }

  .portfolio-grid {
    height: 620px;
  }

  .ring {
    width: 44px;
    border-width: 5px;
  }

  .press-panel {
    min-height: 480px;
  }
}

/* Reference-matched pass inspired by eleonoraferolla.com */
.site-header {
  color: rgba(255, 255, 255, 0.92);
  mix-blend-mode: normal;
}

.has-scrolled .site-header {
  color: rgba(45, 41, 36, 0.76);
}

.menu-open .site-header {
  color: #fff;
}

.brand-mark {
  color: inherit;
  font-size: clamp(28px, 3vw, 46px);
  letter-spacing: 0;
  text-transform: none;
}

.menu-button span {
  height: 2px;
  width: 34px;
}

.hero {
  min-height: clamp(620px, 70vw, 880px);
  background: #171716;
}

.hero-frame {
  display: block;
}

.hero-frame .hero-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero .hero-stone {
  display: none;
}

.hero .photo-arch::before,
.hero .photo-arch::after {
  display: none;
}

.hero-frame--zero .hero-photo {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0.05) 45%, rgba(0, 0, 0, 0.18)),
    radial-gradient(circle at 43% 43%, rgba(245, 244, 239, 0.86) 0 12%, transparent 13%),
    radial-gradient(circle at 55% 39%, rgba(32, 30, 28, 0.92) 0 13%, transparent 14%),
    linear-gradient(105deg, #333431 0 22%, #d7d5cf 23% 45%, #edeae3 46% 62%, #2a2927 63% 86%, #bdbab2 87%);
  filter: grayscale(1);
}

.hero-frame--one .hero-photo {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.38), transparent 42%, rgba(0, 0, 0, 0.2)),
    repeating-linear-gradient(176deg, #5e6462 0 8px, #aeb2ad 9px 13px, #2e3433 14px 22px),
    radial-gradient(circle at 52% 58%, #f0eee7 0 14%, transparent 15%),
    linear-gradient(110deg, #101111, #d6d2c8);
  filter: grayscale(1);
}

.hero-frame--two .hero-photo {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.3), transparent 55%, rgba(0, 0, 0, 0.24)),
    radial-gradient(circle at 36% 45%, #1b1b1a 0 13%, transparent 14%),
    radial-gradient(circle at 63% 47%, #ebe8df 0 16%, transparent 17%),
    linear-gradient(126deg, #868984 0 32%, #efede6 33% 55%, #242321 56% 84%, #c7c2b8 85%);
  filter: grayscale(1);
}

.intro-section {
  padding: clamp(132px, 11vw, 204px) clamp(38px, 3.8vw, 70px) clamp(46px, 4.8vw, 82px);
}

.micro-nav {
  margin-bottom: 56px;
  gap: clamp(34px, 6vw, 96px);
  font-size: 10px;
  letter-spacing: 0.78em;
}

.title-lockup {
  max-width: 1380px;
}

.title-lockup .overline {
  color: #6f6f6f;
  font-family: var(--sans);
  font-size: clamp(12px, 1.08vw, 20px);
  font-weight: 400;
  letter-spacing: 0.52em;
  line-height: 1.25;
  white-space: nowrap;
}

.title-lockup h1 {
  position: relative;
  display: grid;
  justify-items: center;
  width: max-content;
  max-width: 100%;
  margin: clamp(46px, 4.8vw, 86px) auto 0;
  color: #4d4d4d;
  font-size: clamp(92px, 8.9vw, 182px);
  line-height: 0.78;
  text-align: center;
}

.title-lockup h1 span {
  display: block;
}

.title-lockup em {
  top: 68%;
  left: 6%;
  color: #4d4d4d;
  font-size: 0.46em;
  z-index: 2;
}

.under-title {
  max-width: 980px;
  margin-top: clamp(76px, 7vw, 122px);
  color: #717171;
  font-family: var(--sans);
  font-size: clamp(13px, 1.08vw, 21px);
  letter-spacing: 0.48em;
  line-height: 1.4;
  text-transform: none;
}

.intro-copy {
  max-width: none;
  grid-template-columns: repeat(2, minmax(0, 500px));
  justify-content: center;
  gap: 70px;
  margin-top: clamp(70px, 6vw, 112px);
  color: #747474;
  font-size: clamp(13px, 1.05vw, 18px);
  line-height: 1.95;
  letter-spacing: 0.08em;
  text-align: justify;
}

.intro-copy strong {
  color: #666;
  font-weight: 700;
}

.intro-copy a {
  border-bottom: 1px solid currentColor;
}

.intro-gallery {
  width: min(1040px, calc(100vw - 96px));
  height: clamp(620px, 62vw, 780px);
  margin-top: 130px;
  margin-bottom: 84px;
}

.intro-photo-left {
  left: 0;
  bottom: 92px;
  width: 47%;
  height: 72%;
}

.intro-photo-right {
  right: 0;
  top: 0;
  width: 47%;
  height: 75%;
}

.outline-button,
.dark-button {
  min-width: 250px;
  min-height: 66px;
  font-size: 12px;
  letter-spacing: 0.36em;
}

.journey-section {
  padding: clamp(96px, 10vw, 152px) 24px clamp(128px, 12vw, 190px);
}

.journey-section h2 {
  font-size: clamp(48px, 5vw, 82px);
  line-height: 1.08;
}

.journey-section .narrow {
  max-width: 990px;
}

.journey-section p {
  max-width: 1060px;
  font-size: 13px;
  letter-spacing: 0.08em;
}

.split-story {
  grid-template-columns: minmax(0, 51vw) minmax(320px, 460px);
  gap: clamp(80px, 12vw, 190px);
  padding-top: 0;
  padding-bottom: 138px;
}

.story-photo {
  aspect-ratio: 1.08;
}

.story-copy {
  color: #aaa59d;
  font-size: 13px;
}

.cinema-quote {
  min-height: clamp(540px, 54vw, 760px);
}

.cinema-quote blockquote {
  max-width: 980px;
  font-family: var(--sans);
  font-size: clamp(22px, 2vw, 36px);
  font-weight: 400;
  line-height: 1.45;
}

.portfolio-section {
  position: relative;
  padding: 112px 24px 148px;
  overflow: visible;
}

.portfolio-sticky-area {
  position: relative;
  min-height: 1260px;
}

.portfolio-section h2,
.portfolio-grid::before,
.portfolio-grid::after {
  color: rgba(45, 41, 36, 0.92);
  font-family: var(--serif);
  font-size: clamp(104px, 12.5vw, 214px);
  font-weight: 300;
  line-height: 0.82;
  text-transform: uppercase;
}

.portfolio-section h2 {
  position: sticky;
  z-index: 5;
  top: 18vh;
  margin-bottom: -120px;
  pointer-events: none;
}

.portfolio-grid {
  width: min(1040px, calc(100vw - 96px));
  height: 1120px;
  margin-top: -26px;
  margin-bottom: 0;
}

.portfolio-grid::before,
.portfolio-grid::after {
  content: none;
}

.portfolio-grid::before {
  top: 405px;
}

.portfolio-grid::after {
  left: 16%;
  top: 742px;
}

.portfolio-a {
  top: 120px;
  left: 4%;
  width: 28%;
  height: 260px;
}

.portfolio-b {
  top: 20px;
  right: 3%;
  width: 52%;
  height: 390px;
}

.portfolio-c {
  left: 1%;
  bottom: 140px;
  width: 45%;
  height: 520px;
}

.portfolio-d {
  right: 4%;
  bottom: 230px;
  width: 37%;
  height: 285px;
}

.portfolio-section p {
  max-width: 760px;
  margin-bottom: 34px;
  font-size: 16px;
  line-height: 1.9;
}

.portfolio-cta {
  position: relative;
  z-index: 35;
  max-width: 820px;
  margin: clamp(70px, 8vw, 120px) auto 0;
  padding-top: clamp(34px, 4vw, 58px);
  background: var(--paper);
  text-align: center;
}

.dark-section {
  background: #000;
}

.about-panel {
  grid-template-columns: 160px minmax(240px, 360px) minmax(420px, 620px);
  max-width: 1120px;
  padding: 132px 32px 156px;
}

.side-label {
  color: #d3cdc2;
  font-family: var(--serif);
  font-size: 22px;
  letter-spacing: 0.08em;
  line-height: 1.45;
  text-transform: uppercase;
  writing-mode: horizontal-tb;
  transform: none;
}

.about-copy h2 {
  margin-bottom: 28px;
  color: #fff;
  font-size: clamp(52px, 5vw, 90px);
}

.about-copy p:not(.overline) {
  color: #ddd8cf;
  font-size: 13px;
  letter-spacing: 0.08em;
}

.press-panel {
  min-height: clamp(640px, 58vw, 840px);
}

.press-photo {
  opacity: 0.56;
}

.press-panel blockquote {
  max-width: 980px;
  font-family: var(--sans);
  font-size: clamp(22px, 2vw, 34px);
  font-weight: 400;
}

.press-logos {
  bottom: 54px;
}

.editorial-section {
  grid-template-columns: minmax(320px, 530px) minmax(380px, 520px);
  max-width: 1140px;
  padding-top: 130px;
}

.editorial-copy h2,
.destination-copy h2,
.consultation-copy h2 {
  font-size: clamp(52px, 5.2vw, 90px);
  line-height: 1.04;
}

.destination-section {
  grid-template-columns: minmax(250px, 380px) minmax(160px, 240px) minmax(330px, 430px);
  max-width: 1060px;
  padding-top: 134px;
}

.keys-section h2 {
  font-size: clamp(38px, 3.8vw, 68px);
}

.consultation-section {
  grid-template-columns: minmax(300px, 440px) minmax(360px, 540px);
  padding-top: 132px;
  padding-bottom: 132px;
}

@media (max-width: 900px) {
  .hero {
    min-height: 78vh;
  }

  .hero-frame {
    display: block;
  }

  .intro-section {
    padding-top: 112px;
  }

  .micro-nav {
    gap: 18px 28px;
    letter-spacing: 0.32em;
  }

  .title-lockup h1 {
    font-size: clamp(54px, 14vw, 92px);
  }

  .under-title {
    letter-spacing: 0.24em;
  }

  .intro-gallery {
    width: 100%;
    height: 620px;
  }

  .intro-photo-left,
  .intro-photo-right {
    width: 48%;
  }

  .split-story {
    grid-template-columns: 1fr;
    padding: 0 24px 90px;
  }

  .portfolio-grid {
    width: 100%;
    height: 780px;
  }

  .portfolio-sticky-area {
    min-height: 920px;
  }

  .portfolio-grid::before {
    left: 8%;
    top: 280px;
  }

  .portfolio-grid::after {
    left: 2%;
    top: 560px;
  }

  .about-panel,
  .editorial-section,
  .destination-section,
  .consultation-section {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .site-header {
    padding: 20px;
  }

  .brand-mark {
    font-size: 26px;
  }

  .menu-button span {
    width: 29px;
  }

  .hero {
    min-height: 72vh;
  }

  .title-lockup h1 {
    font-size: 49px;
  }

  .intro-copy {
    grid-template-columns: 1fr;
  }

  .intro-gallery {
    height: 560px;
  }

  .portfolio-section h2,
  .portfolio-grid::before,
  .portfolio-grid::after {
    font-size: clamp(68px, 21vw, 104px);
  }

  .portfolio-grid {
    height: 640px;
  }

  .portfolio-sticky-area {
    min-height: 760px;
  }
}

/* Stable reference behavior */
.reveal {
  opacity: 0;
  transform: none;
  transition: opacity 900ms ease;
  transition-delay: var(--reveal-delay, 0ms);
}

.reveal.is-visible {
  opacity: 1;
}

.site-footer.reveal,
.site-footer.is-visible {
  opacity: 1;
  transition-delay: 0ms;
}

.work-photo-mosaic.reveal {
  opacity: 1;
  transition: none;
}

.work-photo-mosaic .work-mosaic-photo.reveal {
  transition-duration: 1200ms;
}

.work-photo-mosaic .work-mosaic-photo.portfolio-scroll-fade {
  opacity: 0;
  transition: opacity 900ms ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity;
}

.work-photo-mosaic .work-mosaic-photo.portfolio-scroll-fade.is-visible {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .work-photo-mosaic .work-mosaic-photo.portfolio-scroll-fade {
    opacity: 1;
    transition: none;
  }
}

.portfolio-section {
  padding-top: clamp(54px, 6vw, 90px);
  overflow: visible;
}

.portfolio-section h2 {
  position: sticky;
  z-index: 30;
  top: 18vh;
  display: block;
  color: #2d2924;
  width: max-content;
  max-width: 100%;
  margin: 0 auto -0.42em;
  opacity: 1;
  pointer-events: none;
}

.portfolio-grid {
  position: relative;
  z-index: 1;
}

.portfolio-grid {
  width: min(1120px, calc(100vw - 96px));
  height: clamp(720px, 60vw, 930px);
}

.portfolio-a,
.portfolio-b,
.portfolio-c,
.portfolio-d {
  height: auto;
}

.portfolio-a {
  top: 7%;
  left: 2%;
  width: 29%;
  aspect-ratio: 2 / 3;
}

.portfolio-b {
  top: 0;
  right: 0;
  width: 51%;
  aspect-ratio: 3 / 2;
}

.portfolio-c {
  left: 1%;
  bottom: 7%;
  width: 45%;
  aspect-ratio: 3 / 2;
}

.portfolio-d {
  right: 7%;
  bottom: 2%;
  width: 29%;
  aspect-ratio: 2 / 3;
}

.portfolio-sticky-area {
  min-height: clamp(820px, 70vw, 1060px);
}

.testimonial-section {
  position: relative;
  display: grid;
  min-height: clamp(520px, 46vw, 720px);
  place-items: center;
  overflow: hidden;
  padding: clamp(84px, 8vw, 130px) 24px clamp(86px, 8vw, 138px);
  background: #050504;
  color: #fff;
  text-align: center;
}

.testimonial-section::after {
  position: absolute;
  inset: 0;
  z-index: 0;
  content: "";
  background: rgba(0, 0, 0, 0.42);
  pointer-events: none;
}

.testimonial-section .press-photo {
  opacity: 0.7;
}

.testimonial-section blockquote {
  position: relative;
  z-index: 1;
  max-width: min(1180px, calc(100vw - 120px));
  margin: 0 auto;
  padding: 0;
  font-family: var(--sans);
  font-size: clamp(24px, 2vw, 38px);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.45;
}

.testimonial-section cite {
  display: block;
  margin-top: clamp(48px, 5vw, 76px);
  font-family: var(--sans);
  font-size: clamp(13px, 1.1vw, 20px);
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.light-button {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 260px;
  min-height: 58px;
  margin-top: clamp(58px, 5vw, 88px);
  padding: 14px 30px;
  border: 1px solid rgba(255, 255, 255, 0.84);
  color: #fff;
  font-size: clamp(12px, 1.05vw, 18px);
  letter-spacing: 0.22em;
  line-height: 1;
  text-transform: none;
  transition:
    background-color 260ms ease,
    color 260ms ease,
    border-color 260ms ease,
    box-shadow 260ms ease;
}

.light-button:hover,
.light-button:focus-visible {
  border-color: var(--hover-beige);
  background: #fff;
  color: #050504;
  box-shadow: inset 0 0 0 1px rgba(200, 182, 157, 0.5);
}

.press-seen-section {
  padding: clamp(76px, 7vw, 118px) 24px;
  background: #000;
  color: #fff;
  text-align: center;
}

.press-seen-section .press-title {
  margin: 0 0 clamp(58px, 6vw, 92px);
  color: rgba(255, 255, 255, 0.86);
  font-family: var(--sans);
  font-size: clamp(13px, 1vw, 18px);
  font-weight: 500;
  letter-spacing: 0.34em;
  line-height: 1;
  text-transform: uppercase;
}

.press-seen-section .press-logos {
  position: static;
  display: grid;
  grid-template-columns: 1.08fr 1.08fr 0.8fr 1.12fr 1.32fr 1.12fr;
  width: min(1740px, calc(100vw - 120px));
  margin: 0 auto;
  transform: none;
  align-items: center;
  gap: clamp(20px, 2.4vw, 48px);
  color: #fff;
  font-family: var(--serif);
  font-size: clamp(18px, 1.55vw, 32px);
  letter-spacing: -0.02em;
  line-height: 0.95;
  text-transform: uppercase;
}

.press-seen-section .press-logos span {
  display: block;
  min-width: 0;
  white-space: normal;
  overflow-wrap: normal;
  text-align: center;
}

.press-seen-section .press-logos span:nth-child(2) {
  letter-spacing: 0.08em;
}

.press-seen-section .press-logos span:nth-child(4),
.press-seen-section .press-logos span:nth-child(6) {
  font-family: var(--sans);
  font-size: clamp(12px, 1vw, 20px);
  letter-spacing: 0.08em;
  line-height: 1.15;
}

.press-seen-section .press-logos span:nth-child(5) {
  font-size: clamp(28px, 2.45vw, 48px);
  letter-spacing: -0.04em;
  line-height: 0.9;
}

.photo-crowd {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.38)),
    radial-gradient(ellipse at 21% 76%, #d5d2ca 0 4%, transparent 5%),
    radial-gradient(ellipse at 29% 58%, #2e2d2c 0 5%, transparent 6%),
    radial-gradient(ellipse at 40% 34%, #bcb8af 0 4%, transparent 5%),
    radial-gradient(ellipse at 50% 70%, #f0ece2 0 5%, transparent 6%),
    radial-gradient(ellipse at 61% 43%, #252423 0 5%, transparent 6%),
    radial-gradient(ellipse at 73% 61%, #c7c2b8 0 5%, transparent 6%),
    radial-gradient(ellipse at 86% 36%, #dedacf 0 4%, transparent 5%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 0 12%, transparent 13% 30%, rgba(255, 255, 255, 0.06) 31% 44%, transparent 45% 100%),
    linear-gradient(180deg, #151515 0%, #3c3a36 34%, #191817 66%, #080808 100%);
  filter: grayscale(1);
}

@media (max-width: 900px) {
  .portfolio-grid {
    width: 100%;
    height: 760px;
  }

  .portfolio-sticky-area {
    min-height: 900px;
  }

  .portfolio-a {
    top: 8%;
    left: 0;
    width: 38%;
  }

  .portfolio-b {
    top: 0;
    right: 0;
    width: 58%;
  }

  .portfolio-c {
    left: 0;
    bottom: 13%;
    width: 58%;
  }

  .portfolio-d {
    right: 0;
    bottom: 4%;
    width: 38%;
  }

  .testimonial-section blockquote {
    max-width: calc(100vw - 56px);
  }

  .press-seen-section .press-logos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 42px 34px;
  }
}

@media (max-width: 560px) {
  .portfolio-grid {
    height: 640px;
  }

  .portfolio-sticky-area {
    min-height: 760px;
  }

  .testimonial-section {
    min-height: 580px;
    padding: 86px 22px;
  }

  .testimonial-section blockquote {
    font-size: 22px;
    line-height: 1.5;
  }

  .light-button {
    min-width: 230px;
  }

  .press-seen-section .press-logos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(420px, calc(100vw - 48px));
  }
}

/* Portfolio mosaic spacing */
.portfolio-sticky-area {
  min-height: clamp(850px, 74vw, 1040px);
}

.portfolio-grid {
  display: grid;
  grid-template-columns: minmax(230px, 0.82fr) minmax(320px, 1.18fr);
  gap: clamp(34px, 3.4vw, 56px) clamp(40px, 4.2vw, 68px);
  align-items: start;
  width: min(980px, calc(100vw - 120px));
  height: auto;
  margin: clamp(24px, 3vw, 48px) auto 0;
}

.portfolio-grid .photo {
  position: relative;
  inset: auto;
  width: 100%;
  height: auto;
}

.portfolio-a {
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
  max-width: 310px;
  margin-top: clamp(36px, 4vw, 70px);
  aspect-ratio: 2 / 3;
}

.portfolio-b {
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  max-width: 540px;
  aspect-ratio: 3 / 2;
}

.portfolio-c {
  grid-column: 1;
  grid-row: 2;
  justify-self: start;
  max-width: 430px;
  aspect-ratio: 3 / 2;
}

.portfolio-d {
  grid-column: 2;
  grid-row: 2;
  justify-self: center;
  max-width: 310px;
  aspect-ratio: 2 / 3;
}

@media (max-width: 900px) {
  .portfolio-sticky-area {
    min-height: auto;
  }

  .portfolio-grid {
    grid-template-columns: minmax(0, 0.86fr) minmax(0, 1fr);
    gap: 30px;
    width: min(720px, calc(100vw - 48px));
    height: auto;
  }

  .portfolio-a,
  .portfolio-b,
  .portfolio-c,
  .portfolio-d {
    max-width: none;
    margin-top: 0;
  }
}

@media (max-width: 560px) {
  .portfolio-grid {
    grid-template-columns: 1fr;
    gap: 24px;
    width: min(360px, calc(100vw - 48px));
  }

  .portfolio-a,
  .portfolio-b,
  .portfolio-c,
  .portfolio-d {
    grid-column: 1;
    justify-self: center;
    width: 100%;
  }
}

/* Italian guide section reference */
.editorial-section {
  grid-template-columns: minmax(390px, 0.9fr) minmax(520px, 1fr);
  gap: clamp(78px, 8.8vw, 156px);
  align-items: start;
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: clamp(108px, 8.4vw, 164px) max(80px, calc((100vw - 1760px) / 2)) clamp(96px, 7.4vw, 142px);
  background: #f3f1ec;
}

.editorial-copy {
  align-self: start;
  padding-top: clamp(20px, 3.4vw, 64px);
}

.editorial-copy .overline {
  margin-bottom: clamp(34px, 3.1vw, 58px);
  color: #aba49b;
  font-size: clamp(11px, 0.76vw, 15px);
  letter-spacing: 0.32em;
  line-height: 1.4;
}

.editorial-copy h2 {
  max-width: 760px;
  margin: 0 0 clamp(42px, 3.6vw, 66px);
  color: #6a6258;
  font-size: clamp(70px, 5.15vw, 112px);
  font-weight: 300;
  line-height: 1.03;
  letter-spacing: 0;
}

.editorial-copy p:not(.overline) {
  max-width: 720px;
  color: #9b968f;
  font-size: clamp(15px, 1.03vw, 21px);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.85;
}

.editorial-copy p + p {
  margin-top: clamp(30px, 2.6vw, 50px);
}

.editorial-photo {
  justify-self: end;
  width: 100%;
  max-width: 860px;
  height: clamp(720px, 57vw, 1140px);
  aspect-ratio: auto;
  background-position: center center;
  background-size: cover;
}

.editorial-note {
  display: none;
}

@media (max-width: 1100px) {
  .editorial-section {
    grid-template-columns: 1fr;
    width: 100%;
    gap: 48px;
    padding: 92px 24px 96px;
  }

  .editorial-copy {
    padding-top: 0;
  }

  .editorial-copy h2 {
    font-size: clamp(48px, 10vw, 76px);
  }

  .editorial-photo {
    max-width: none;
    height: auto;
    aspect-ratio: 4 / 5;
  }
}

/* Journey section reference */
.journey-section {
  padding: clamp(132px, 12vw, 190px) 24px clamp(192px, 16vw, 275px);
  background: var(--paper);
  text-align: center;
}

.journey-section .narrow {
  max-width: min(1362px, calc(100vw - 72px));
}

.journey-section h2 {
  color: #494844;
  font-size: clamp(43px, 3.05vw, 64px);
  font-weight: 300;
  line-height: 1.12;
  letter-spacing: 0;
  text-transform: none;
}

.journey-section .journey-kicker {
  max-width: none;
  margin: 36px auto 10px;
  color: #76736e;
  font-family: var(--sans);
  font-size: clamp(12px, 0.92vw, 19px);
  font-weight: 400;
  letter-spacing: 0.34em;
  line-height: 1.45;
  text-align: center;
  text-transform: uppercase;
}

.journey-section .journey-body {
  max-width: min(1362px, calc(100vw - 72px));
  margin: 0 auto;
  color: #85817a;
  font-family: var(--sans);
  font-size: clamp(13px, 0.86vw, 18px);
  font-weight: 400;
  letter-spacing: 0.055em;
  line-height: 1.82;
  text-align: left;
}

.journey-section .journey-body br {
  display: block;
}

/* Split story reference */
.split-story {
  grid-template-columns: minmax(0, 50vw) minmax(340px, 33.7vw);
  align-items: start;
  gap: clamp(64px, 4.5vw, 94px);
  padding: 0 max(40px, calc((100vw - 1900px) / 2)) clamp(56px, 4vw, 78px) 0;
  background: var(--warm);
}

.story-photo {
  width: 100%;
  height: clamp(518px, 36.4vw, 611px);
  aspect-ratio: auto;
}

.split-story .photo-close {
  background:
    radial-gradient(ellipse at 20% 45%, rgba(18, 18, 17, 0.9) 0 14%, transparent 15%),
    radial-gradient(ellipse at 30% 54%, #d2d1cd 0 13%, transparent 14%),
    radial-gradient(ellipse at 48% 42%, #e7e4dc 0 12%, transparent 13%),
    radial-gradient(ellipse at 66% 33%, #343330 0 10%, transparent 11%),
    radial-gradient(ellipse at 74% 18%, #c9c7c1 0 13%, transparent 14%),
    linear-gradient(104deg, #22211f 0 31%, #b8b7b2 32% 47%, #f0eee8 48% 62%, #1f1f1d 63% 100%);
  filter: grayscale(1);
}

.split-story .photo-close::before {
  left: 0;
  top: 0;
  width: 58%;
  height: 100%;
  background:
    radial-gradient(ellipse at 38% 36%, rgba(238, 236, 229, 0.78) 0 19%, transparent 20%),
    radial-gradient(ellipse at 16% 32%, rgba(12, 12, 11, 0.76) 0 16%, transparent 17%),
    linear-gradient(112deg, rgba(7, 7, 7, 0.76), rgba(238, 236, 229, 0.24) 64%, transparent);
  mix-blend-mode: multiply;
  opacity: 0.78;
}

.split-story .photo-close::after {
  right: 0;
  top: 0;
  width: 56%;
  height: 100%;
  background:
    radial-gradient(ellipse at 44% 24%, rgba(226, 223, 216, 0.86) 0 18%, transparent 19%),
    linear-gradient(88deg, transparent 0 18%, rgba(16, 16, 15, 0.78) 19% 100%);
  opacity: 0.82;
}

.story-copy {
  max-width: 620px;
  padding-top: clamp(92px, 7.8vw, 148px);
  color: #928c84;
  font-size: clamp(12px, 0.72vw, 14px);
  letter-spacing: 0.075em;
  line-height: 2.05;
}

@media (max-width: 900px) {
  .split-story {
    grid-template-columns: 1fr;
    gap: 42px;
    padding: 0 24px 76px;
  }

  .story-photo {
    height: auto;
    aspect-ratio: 1.05;
  }

  .story-copy {
    max-width: 640px;
    padding-top: 0;
    margin: 0 auto;
  }
}

.story-copy p + p {
  margin-top: 25px;
}

.story-copy em {
  font-style: italic;
}

.story-copy .outline-button.small {
  display: flex;
  width: min(292px, 100%);
  min-height: 70px;
  margin: clamp(44px, 3.8vw, 70px) auto 0;
  padding: 0 28px;
  border-color: var(--button);
  color: #897965;
  font-size: 10px;
  letter-spacing: 0.32em;
  line-height: 1.5;
  text-align: center;
  text-transform: uppercase;
}

.story-copy .outline-button.small:hover,
.story-copy .outline-button.small:focus-visible {
  border-color: #050504;
  background: #050504;
  color: #fff;
}

/* Boat testimonial reference */
.cinema-quote {
  min-height: clamp(530px, 43.8vw, 684px);
  margin-top: 0;
  color: #fff;
}

.cinema-quote .quote-photo {
  inset: -16% 0;
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1.03);
}

.cinema-quote .quote-photo.has-managed-image {
  background-position: center var(--parallax-bg-y, 50%);
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1.03);
}

.cinema-quote .photo-water {
  background:
    linear-gradient(180deg, rgba(5, 14, 17, 0.34), rgba(4, 10, 12, 0.42)),
    radial-gradient(ellipse at 62% 48%, rgba(210, 153, 84, 0.82) 0 5%, transparent 5.4%),
    radial-gradient(ellipse at 58% 62%, rgba(235, 240, 234, 0.88) 0 9%, transparent 9.6%),
    repeating-linear-gradient(164deg, #15313a 0 9px, #244750 10px 18px, #09222b 19px 31px, #3b5960 32px 37px),
    linear-gradient(135deg, #0c2d36, #315862 58%, #09232d);
}

.cinema-quote .photo-water::after {
  right: 34%;
  bottom: 34%;
  width: clamp(230px, 19vw, 360px);
  height: clamp(72px, 5.4vw, 108px);
  transform: rotate(-14deg);
  border-radius: 50% 14% 44% 14%;
  background: linear-gradient(90deg, #c68d4d, #3d352f 55%, #e5c18b);
  box-shadow:
    -150px 62px 0 rgba(238, 242, 238, 0.78),
    -215px 90px 0 rgba(238, 242, 238, 0.45);
}

.cinema-quote blockquote {
  max-width: min(880px, calc(100vw - 96px));
  padding: 0;
  font-family: var(--sans);
  font-size: clamp(15px, 1.02vw, 18px);
  font-weight: 400;
  letter-spacing: 0.055em;
  line-height: 1.85;
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.34);
}

.cinema-quote blockquote p {
  margin: 0;
}

.cinema-quote cite {
  display: block;
  margin-top: 28px;
  font-family: var(--sans);
  font-size: clamp(10px, 0.72vw, 13px);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.28em;
  line-height: 1.4;
  text-transform: uppercase;
}

/* Portfolio page */
.portfolio-page {
  background: var(--paper);
}

.portfolio-page .site-header {
  color: #fff;
  mix-blend-mode: normal;
}

.portfolio-page .brand-mark,
.portfolio-page.has-scrolled .brand-mark {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

.portfolio-page .brand-mark img {
  filter: brightness(0);
}

.portfolio-page.menu-open .site-header {
  color: #fff;
  mix-blend-mode: normal;
}

.portfolio-hero {
  position: relative;
  min-height: clamp(430px, 54vw, 760px);
  display: grid;
  place-items: center;
  padding: clamp(112px, 12vw, 170px) 24px clamp(64px, 8vw, 118px);
  overflow: hidden;
  text-align: center;
}

.portfolio-hero-banner {
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  height: 61%;
}

.portfolio-hero-banner::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(251, 250, 247, 0.02), rgba(251, 250, 247, 0.34));
  content: "";
}

@supports (height: 100dvh) {
  @media (max-width: 560px) {
    .portfolio-hero {
      min-height: 100dvh;
    }
  }
}

.portfolio-hero-copy {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  width: 100%;
  margin-top: clamp(92px, 11vw, 164px);
}

.portfolio-hero h1 {
  margin: 18px 0 26px;
  color: rgba(45, 41, 36, 0.9);
  font-family: var(--serif);
  font-size: clamp(92px, 15vw, 236px);
  font-weight: 300;
  line-height: 0.78;
  text-transform: uppercase;
}

.portfolio-hero p:not(.overline) {
  max-width: 620px;
  margin: 0 auto;
  color: #8f887e;
  font-size: 12px;
  letter-spacing: 0.08em;
  line-height: 2;
}

.portfolio-gallery-page {
  display: block;
  columns: 4 260px;
  column-gap: 8px;
  padding: 0 8px 8px;
  background: var(--paper);
}

.gallery-trigger {
  appearance: none;
  display: block;
  width: 100%;
  margin: 0 0 8px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  break-inside: avoid;
  cursor: pointer;
}

.gallery-trigger:focus-visible {
  outline: 1px solid #050504;
  outline-offset: -8px;
}

.gallery-card {
  aspect-ratio: 3 / 2;
}

.gallery-card--wide {
  aspect-ratio: 3 / 2;
}

.gallery-card--square {
  aspect-ratio: 3 / 2;
}

.gallery-card--tall {
  aspect-ratio: 2 / 3;
}

.gallery-photo--01 {
  background:
    radial-gradient(circle at 41% 53%, #f2efe8 0 13%, transparent 14%),
    linear-gradient(180deg, #b8b5ad 0 38%, #ebe7df 39% 72%, #5c5b56 73%);
  filter: grayscale(1);
}

.gallery-photo--02 {
  background:
    linear-gradient(90deg, rgba(10, 10, 9, 0.28), transparent 36%),
    radial-gradient(circle at 50% 31%, #e9e5dd 0 12%, transparent 13%),
    repeating-linear-gradient(12deg, #5d564d 0 22px, #d5cfc4 23px 44px);
  filter: grayscale(1);
}

.gallery-photo--03 {
  background:
    radial-gradient(circle at 35% 34%, #2b2926 0 9%, transparent 10%),
    radial-gradient(circle at 60% 35%, #ddd8ce 0 10%, transparent 11%),
    linear-gradient(116deg, #e9e5dc 0 36%, #4e4c48 37% 62%, #c9c4bb 63%);
  filter: grayscale(1);
}

.gallery-photo--04 {
  background:
    linear-gradient(180deg, rgba(12, 12, 11, 0.16), transparent 42%),
    repeating-linear-gradient(100deg, #8e9189 0 18px, #d8d5cd 19px 48px, #50514c 49px 64px);
  filter: grayscale(1);
}

.gallery-photo--05 {
  background:
    radial-gradient(circle at 50% 22%, #f0ece3 0 11%, transparent 12%),
    linear-gradient(110deg, #1d1c1a 0 26%, #ece7dd 27% 62%, #77736a 63%);
  filter: grayscale(1);
}

.gallery-photo--06 {
  background:
    radial-gradient(circle at 44% 46%, #e8e3d9 0 13%, transparent 14%),
    radial-gradient(circle at 65% 44%, #3a3834 0 10%, transparent 11%),
    linear-gradient(130deg, #b8b3a8, #f1eee7 46%, #5d5b56);
  filter: grayscale(1);
}

.gallery-photo--07 {
  background:
    linear-gradient(90deg, transparent 0 36%, rgba(255, 255, 255, 0.76) 37% 62%, transparent 63%),
    linear-gradient(180deg, #777a74 0 35%, #eeeae1 36% 76%, #2f302d 77%);
  filter: grayscale(1);
}

.gallery-photo--08 {
  background:
    radial-gradient(circle at 77% 28%, #e5dfd4 0 10%, transparent 11%),
    linear-gradient(120deg, #363533 0 35%, #d6d1c8 36% 61%, #89877f 62%);
  filter: grayscale(1);
}

.gallery-photo--09 {
  background:
    radial-gradient(circle at 48% 28%, #d7d2c8 0 12%, transparent 13%),
    radial-gradient(circle at 72% 62%, #ece8df 0 14%, transparent 15%),
    linear-gradient(116deg, #0f0f0e, #cbc6bc 48%, #3b3935);
  filter: grayscale(1);
}

.gallery-photo--10 {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(30, 29, 27, 0.2)),
    radial-gradient(circle at 52% 36%, #f0ede5 0 10%, transparent 11%),
    repeating-linear-gradient(28deg, #4d504c 0 16px, #a7aaa3 17px 31px, #e7e3da 32px 46px);
  filter: grayscale(1);
}

.gallery-photo--11 {
  background:
    radial-gradient(circle at 18% 62%, #dfd9cf 0 9%, transparent 10%),
    radial-gradient(circle at 39% 56%, #f0ece4 0 8%, transparent 9%),
    radial-gradient(circle at 61% 60%, #d8d2c8 0 8%, transparent 9%),
    linear-gradient(105deg, #242321, #807d76 47%, #ebe8df);
  filter: grayscale(1);
}

.gallery-photo--12 {
  background:
    radial-gradient(circle at 50% 47%, #d8d3ca 0 11%, transparent 12%),
    linear-gradient(130deg, #eee9df 0 38%, #56544f 39% 64%, #c5c0b7 65%);
  filter: grayscale(1);
}

.gallery-photo--13 {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.74), transparent 40%),
    radial-gradient(circle at 32% 68%, #efebe3 0 10%, transparent 11%),
    radial-gradient(circle at 58% 60%, #3d3b37 0 9%, transparent 10%),
    linear-gradient(120deg, #88867f 0 32%, #d9d4ca 33% 68%, #4f4d48 69%);
  filter: grayscale(1);
}

.gallery-photo--14 {
  background:
    radial-gradient(circle at 50% 25%, #eeeae1 0 12%, transparent 13%),
    linear-gradient(92deg, #2c2a27 0 28%, #d8d2c7 29% 70%, #7a766e 71%);
  filter: grayscale(1);
}

.gallery-photo--15 {
  background:
    radial-gradient(circle at 21% 58%, #d8d3ca 0 7%, transparent 8%),
    radial-gradient(circle at 45% 46%, #eee9df 0 9%, transparent 10%),
    radial-gradient(circle at 73% 52%, #ccc6bb 0 8%, transparent 9%),
    repeating-linear-gradient(0deg, #2d2c29 0 22px, #6c6a63 23px 48px, #c4beb3 49px 70px);
  filter: grayscale(1);
}

.gallery-photo--16 {
  background:
    radial-gradient(circle at 64% 37%, #f2eee6 0 17%, transparent 18%),
    linear-gradient(145deg, #c5beb3 0 35%, #4e4c48 36% 62%, #e4dfd5 63%);
  filter: grayscale(1);
}

.gallery-photo--17 {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(0, 0, 0, 0.18)),
    radial-gradient(circle at 51% 24%, #d8d2c8 0 12%, transparent 13%),
    repeating-linear-gradient(112deg, #191817 0 28px, #a19b90 29px 54px, #ece8df 55px 82px);
  filter: grayscale(1);
}

.gallery-photo--18 {
  background:
    linear-gradient(90deg, rgba(251, 250, 247, 0.66), transparent 34%),
    radial-gradient(circle at 52% 38%, #e6e1d7 0 11%, transparent 12%),
    linear-gradient(116deg, #7f7e78 0 37%, #efebe3 38% 65%, #42413d 66%);
  filter: grayscale(1);
}

.gallery-photo--19 {
  background:
    radial-gradient(circle at 28% 44%, #f0ece4 0 10%, transparent 11%),
    radial-gradient(circle at 54% 36%, #2f2d2a 0 9%, transparent 10%),
    linear-gradient(96deg, #d6d0c5 0 34%, #5c5953 35% 64%, #eeeae2 65%);
  filter: grayscale(1);
}

.gallery-photo--20 {
  background:
    radial-gradient(circle at 76% 27%, #e8e3da 0 13%, transparent 14%),
    repeating-linear-gradient(26deg, #5b5d58 0 14px, #afb1aa 15px 30px, #efebe3 31px 48px);
  filter: grayscale(1);
}

.portfolio-page-cta {
  padding: clamp(88px, 10vw, 150px) 24px;
  text-align: center;
}

.portfolio-page-cta p {
  max-width: 540px;
  margin: 0 auto 28px;
  color: #918a80;
  font-family: var(--serif);
  font-size: clamp(22px, 2.4vw, 38px);
  line-height: 1.35;
}

.lightbox-open {
  overflow: hidden;
}

.gallery-lightbox {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  place-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms ease;
}

.gallery-lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}

.gallery-lightbox__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
}

.gallery-lightbox__image {
  position: relative;
  z-index: 1;
  width: min(76vw, 920px);
  height: min(74vh, 680px);
  box-shadow: 0 18px 80px rgba(0, 0, 0, 0.28);
  transform: scale(0.985);
  transition: transform 260ms ease, opacity 260ms ease;
}

.gallery-lightbox.is-open .gallery-lightbox__image {
  transform: scale(1);
}

.gallery-lightbox__image.is-portrait {
  width: min(45vw, 560px);
  height: min(86vh, 760px);
}

.gallery-lightbox__image.is-square {
  width: min(76vh, 680px);
  height: min(76vh, 680px);
}

.gallery-lightbox__button {
  position: fixed;
  z-index: 2;
  display: grid;
  place-items: center;
  border: 0;
  background: rgba(0, 0, 0, 0.75);
  color: #fff;
  cursor: pointer;
  transition: background-color 180ms ease, opacity 180ms ease;
}

.gallery-lightbox__button:hover,
.gallery-lightbox__button:focus-visible {
  background: #000;
}

.gallery-lightbox__close {
  top: 15px;
  right: 20px;
  width: 35px;
  height: 35px;
}

.gallery-lightbox__close span,
.gallery-lightbox__close span::before {
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  content: "";
}

.gallery-lightbox__close span {
  transform: rotate(45deg);
}

.gallery-lightbox__close span::before {
  transform: rotate(90deg);
}

.gallery-lightbox__arrow {
  top: 50%;
  width: 40px;
  height: 50px;
  transform: translateY(-50%);
  font-size: 0;
}

.gallery-lightbox__arrow::before {
  width: 15px;
  height: 15px;
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
  content: "";
}

.gallery-lightbox__prev {
  left: 30px;
}

.gallery-lightbox__prev::before {
  transform: rotate(-45deg);
}

.gallery-lightbox__next {
  right: 30px;
}

.gallery-lightbox__next::before {
  transform: rotate(135deg);
}

@media (max-width: 900px) {
  .portfolio-gallery-page {
    columns: 2 220px;
  }

  .gallery-trigger {
    min-height: 0;
  }

  .gallery-lightbox__image,
  .gallery-lightbox__image.is-portrait,
  .gallery-lightbox__image.is-square {
    width: min(84vw, 620px);
    height: min(74vh, 700px);
  }
}

@media (max-width: 560px) {
  .portfolio-hero {
    min-height: 100vh;
    min-height: 100svh;
  }

  .portfolio-hero-banner {
    inset: 0;
    height: 100%;
  }

  .portfolio-hero h1 {
    font-size: clamp(68px, 22vw, 110px);
  }

  .portfolio-gallery-page {
    columns: 1;
  }

  .gallery-card,
  .gallery-card--wide,
  .gallery-card--square {
    aspect-ratio: 3 / 2;
  }

  .gallery-card--tall {
    aspect-ratio: 2 / 3;
  }

  .gallery-lightbox__close {
    right: 12px;
  }

  .gallery-lightbox__prev {
    left: 12px;
  }

  .gallery-lightbox__next {
    right: 12px;
  }
}

/* Admin image manager */
.admin-page {
  min-height: 100vh;
  background: #f7f5f1;
  color: #2d2924;
}

.admin-shell {
  min-height: 100vh;
}

.admin-login {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 32px;
}

.admin-login-card {
  width: min(430px, 100%);
  padding: 48px;
  border: 1px solid rgba(45, 41, 36, 0.14);
  background: #fbfaf7;
}

.admin-eyebrow {
  color: #9a9185;
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.admin-login h1,
.admin-header h1 {
  margin-top: 14px;
  color: #3a352f;
  font-family: var(--serif);
  font-size: clamp(44px, 5vw, 74px);
  font-weight: 300;
  line-height: 0.95;
  text-transform: none;
}

.admin-login form {
  display: grid;
  gap: 14px;
  margin-top: 34px;
}

.admin-login label,
.image-card label {
  color: #7e756a;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.admin-login input,
.image-card input[type="text"],
.image-card select {
  width: 100%;
  margin-top: 8px;
  padding: 13px 14px;
  border: 1px solid #d8d0c4;
  background: #fff;
  color: #2d2924;
  font: inherit;
}

.admin-login button,
.admin-toolbar > button,
.admin-toolbar-actions > button,
.admin-add-photo,
.image-actions a,
.image-actions button,
.admin-header-actions a,
.admin-header-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 11px 18px;
  border: 1px solid #2d2924;
  background: #2d2924;
  color: #fff;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    background-color 240ms ease,
    border-color 240ms ease,
    color 240ms ease;
}

.admin-login button:hover,
.admin-toolbar > button:hover,
.admin-toolbar-actions > button:hover,
.admin-add-photo:hover,
.admin-header-actions a:hover,
.admin-header-actions button:hover {
  border-color: var(--hover-beige);
  background: #fff;
  color: #2d2924;
}

.admin-help,
.admin-status {
  margin-top: 18px;
  color: #91887d;
  font-size: 12px;
}

.admin-panel {
  padding: clamp(30px, 4vw, 64px);
}

.admin-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  padding-bottom: 34px;
  border-bottom: 1px solid #ddd6cc;
}

.admin-header-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}

.admin-header-actions .admin-secondary,
.image-actions a.admin-secondary,
.image-actions .admin-secondary {
  border-color: #c8b69d;
  background: transparent;
  color: #665a4d;
}

.admin-toolbar {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: start;
  margin-top: 30px;
}

.admin-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.admin-add-photo input {
  display: none;
}

.admin-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.admin-tabs button {
  min-height: 38px;
  padding: 9px 14px;
  border: 1px solid #d8d0c4;
  background: transparent;
  color: #6f665d;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
}

.admin-tabs button.is-active,
.admin-tabs button:hover {
  border-color: var(--hover-beige);
  background: #fff;
  color: #2d2924;
}

.admin-section-guide {
  margin-top: 24px;
  padding: 22px 24px;
  border: 1px solid rgba(45, 41, 36, 0.12);
  background: #fff;
}

.admin-section-guide h2 {
  margin: 8px 0 8px;
  color: #36312b;
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 300;
  line-height: 1;
  text-transform: none;
}

.admin-section-guide p:last-child,
.image-placement {
  color: #6f665d;
  font-size: 12px;
  letter-spacing: 0.04em;
  line-height: 1.5;
  text-transform: none;
}

.admin-status[data-type="success"] {
  color: #52654d;
}

.admin-status[data-type="error"] {
  color: #9d3d34;
}

.admin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 28px;
}

.image-card {
  border: 1px solid rgba(45, 41, 36, 0.12);
  background: #fff;
}

.image-preview {
  display: grid;
  min-height: 230px;
  place-items: center;
  background:
    linear-gradient(135deg, #eeeae2, #c9c5bb);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #857b70;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.image-preview.has-image span {
  padding: 8px 12px;
  background: rgba(251, 250, 247, 0.86);
}

.image-card-body {
  padding: 22px;
}

.image-section,
.image-id {
  color: #9a9185;
  font-size: 10px;
  letter-spacing: 0.18em;
  line-height: 1.4;
  text-transform: uppercase;
}

.image-placement {
  margin: 10px 0 0;
}

.image-card h2 {
  margin: 8px 0 10px;
  color: #36312b;
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 300;
  line-height: 1;
  text-transform: none;
}

.image-card label {
  display: block;
  margin-top: 18px;
}

.upload-control input {
  display: block;
  width: 100%;
  margin-top: 8px;
  color: #665d54;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}

.image-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

.image-actions a,
.image-actions button {
  flex: 1;
  min-width: 90px;
  padding-inline: 12px;
  font-size: 9px;
}

.image-actions .admin-danger {
  border-color: #9d3d34;
  background: transparent;
  color: #9d3d34;
}

.image-actions .admin-danger:hover {
  background: #9d3d34;
  color: #fff;
}

.image-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.35;
}

@media (max-width: 760px) {
  .admin-login-card {
    padding: 34px 24px;
  }

  .admin-header,
  .admin-toolbar {
    grid-template-columns: 1fr;
  }

  .admin-header {
    display: grid;
  }

  .admin-header-actions {
    flex-wrap: wrap;
  }
}

/* Reference spacing and typography pass */
:root {
  --reference-paper: #faf9f6;
  --reference-warm: #f3f1ec;
  --reference-heading: #665f56;
  --reference-copy: #948e86;
}

body {
  background: var(--reference-paper);
}

.intro-section,
.split-story,
.portfolio-section,
.keys-section {
  background: var(--reference-paper);
}

.journey-section,
.editorial-section,
.consultation-section {
  background: var(--reference-warm);
}

.intro-section {
  padding-top: clamp(84px, 10vw, 168px);
  padding-bottom: clamp(70px, 8vw, 132px);
}

.title-lockup {
  margin-bottom: clamp(44px, 4.6vw, 76px);
}

.title-lockup .overline,
.journey-section .journey-kicker,
.editorial-copy .overline,
.destination-copy .overline,
.consultation-copy .overline {
  color: #aaa39a;
  font-size: clamp(8px, 0.64vw, 12px);
  font-weight: 400;
  letter-spacing: 0.34em;
  line-height: 1.45;
}

.title-lockup h1 {
  color: #59534c;
  font-size: clamp(42px, 5vw, 82px);
  font-weight: 300;
}

.under-title {
  margin-top: clamp(34px, 3.2vw, 54px);
  color: #8f8880;
  font-size: clamp(10px, 0.72vw, 13px);
  letter-spacing: 0.34em;
}

.intro-copy {
  max-width: min(1100px, calc(100vw - 140px));
  gap: clamp(56px, 6vw, 104px);
  margin-bottom: clamp(72px, 7vw, 116px);
}

.intro-copy p,
.journey-section .journey-body,
.story-copy,
.editorial-copy p:not(.overline),
.destination-copy p,
.keys-copy,
.consultation-copy p:not(.overline) {
  color: var(--reference-copy);
  font-family: var(--sans);
  font-size: clamp(12px, 0.86vw, 16px);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.82;
}

.journey-section {
  padding-top: clamp(116px, 10vw, 168px);
  padding-bottom: clamp(126px, 12vw, 204px);
}

.journey-section h2 {
  color: var(--reference-heading);
  font-size: clamp(36px, 3.4vw, 62px);
  line-height: 1.12;
}

.split-story {
  gap: clamp(58px, 6vw, 104px);
  padding-bottom: clamp(74px, 7vw, 126px);
}

.story-copy {
  padding-top: clamp(48px, 4.8vw, 86px);
}

.cinema-quote {
  min-height: clamp(420px, 42vw, 680px);
}

.cinema-quote blockquote {
  max-width: min(900px, calc(100vw - 120px));
  font-size: clamp(15px, 1vw, 18px);
  line-height: 1.82;
}

.dark-section {
  padding-top: clamp(82px, 7vw, 128px);
  padding-bottom: clamp(70px, 6vw, 112px);
}

.about-panel {
  max-width: min(1120px, calc(100vw - 100px));
}

.testimonial-section {
  min-height: clamp(470px, 41vw, 650px);
  padding-top: clamp(76px, 7vw, 118px);
  padding-bottom: clamp(76px, 7vw, 118px);
}

.testimonial-section blockquote {
  max-width: min(980px, calc(100vw - 120px));
  font-size: clamp(18px, 1.45vw, 28px);
  line-height: 1.48;
}

.press-seen-section {
  padding-top: clamp(52px, 5vw, 82px);
  padding-bottom: clamp(52px, 5vw, 82px);
}

.editorial-section {
  grid-template-columns: minmax(320px, 520px) minmax(380px, 600px);
  gap: clamp(70px, 8vw, 134px);
  align-items: center;
  width: 100%;
  max-width: none;
  padding: clamp(104px, 9vw, 164px) max(42px, calc((100vw - 1320px) / 2)) clamp(98px, 8vw, 150px);
}

.editorial-copy {
  padding-top: 0;
}

.editorial-copy h2,
.destination-copy h2,
.consultation-copy h2 {
  color: var(--reference-heading);
  font-size: clamp(42px, 4.15vw, 78px);
  font-weight: 300;
  line-height: 1.06;
  letter-spacing: 0;
}

.editorial-copy h2 {
  max-width: 620px;
  margin-bottom: clamp(34px, 3vw, 58px);
}

.editorial-photo {
  max-width: 560px;
  height: auto;
  aspect-ratio: 0.74;
}

.destination-section {
  grid-template-columns: minmax(250px, 360px) minmax(170px, 235px) minmax(320px, 445px);
  gap: clamp(40px, 5.8vw, 92px);
  align-items: center;
  max-width: min(1180px, calc(100vw - 96px));
  padding-top: clamp(104px, 9vw, 160px);
  padding-bottom: clamp(96px, 8vw, 150px);
}

.destination-wide {
  aspect-ratio: 0.74;
}

.destination-tall {
  aspect-ratio: 0.68;
  margin-top: clamp(64px, 6vw, 108px);
}

.destination-copy h2 {
  font-size: clamp(48px, 5.1vw, 96px);
  line-height: 1.05;
}

.keys-section {
  padding-top: clamp(88px, 8vw, 140px);
  padding-bottom: clamp(92px, 8vw, 148px);
}

.keys-section h2 {
  color: var(--reference-heading);
  font-size: clamp(30px, 2.6vw, 48px);
  line-height: 1.2;
}

.consultation-section {
  grid-template-columns: minmax(300px, 460px) minmax(340px, 520px);
  gap: clamp(62px, 7vw, 120px);
  padding-top: clamp(108px, 9vw, 160px);
  padding-bottom: clamp(100px, 8vw, 150px);
}

.consultation-copy h2 {
  font-size: clamp(42px, 4vw, 76px);
}

.consultation-photo {
  aspect-ratio: 0.92;
}

.site-footer {
  padding-top: clamp(58px, 5vw, 88px);
  padding-bottom: clamp(58px, 5vw, 88px);
}

@media (max-width: 900px) {
  .intro-copy,
  .split-story,
  .about-panel,
  .editorial-section,
  .destination-section,
  .keys-layout,
  .consultation-section {
    grid-template-columns: 1fr;
  }

  .intro-copy,
  .about-panel,
  .testimonial-section blockquote {
    max-width: calc(100vw - 48px);
  }

  .editorial-section,
  .destination-section,
  .consultation-section {
    max-width: none;
    padding-left: 24px;
    padding-right: 24px;
  }

  .editorial-photo,
  .destination-wide,
  .destination-tall,
  .consultation-photo {
    max-width: min(560px, 100%);
    margin: 0 auto;
  }

  .destination-tall {
    margin-top: 0;
  }
}

/* Text-only width guard: keeps large copy blocks readable without shrinking images or backgrounds. */
:root {
  --text-max-width: 1400px;
}

.title-lockup,
.intro-copy,
.journey-section .narrow,
.story-copy,
.cinema-quote blockquote,
.portfolio-cta,
.about-copy,
.testimonial-section blockquote,
.editorial-copy,
.destination-copy,
.keys-section > h2,
.keys-copy,
.consultation-copy,
.portfolio-hero-copy,
.portfolio-page-cta {
  width: min(100%, var(--text-max-width));
}

.title-lockup,
.intro-copy,
.journey-section .narrow,
.cinema-quote blockquote,
.portfolio-cta,
.testimonial-section blockquote,
.keys-section > h2,
.portfolio-page-cta {
  margin-left: auto;
  margin-right: auto;
}

/* Intro copy columns: closer, like the reference layout. */
.intro-copy {
  width: min(980px, calc(100vw - 140px));
  max-width: 980px;
  gap: clamp(28px, 3vw, 48px);
}

@media (max-width: 900px) {
  .intro-copy {
    width: min(100%, calc(100vw - 48px));
    max-width: calc(100vw - 48px);
    gap: 28px;
  }
}

/* Intro lockup tightening. */
.intro-section {
  padding-top: clamp(64px, 7vw, 118px);
  padding-bottom: clamp(52px, 5.8vw, 92px);
}

.title-lockup {
  margin-bottom: clamp(26px, 2.8vw, 46px);
}

.title-lockup h1 {
  margin-top: clamp(28px, 3vw, 52px);
}

.under-title {
  margin-top: clamp(24px, 2.4vw, 38px);
}

.intro-copy {
  margin-top: clamp(38px, 3.8vw, 64px);
  margin-bottom: clamp(48px, 5vw, 78px);
  gap: clamp(22px, 2.4vw, 38px);
}

.intro-copy p {
  font-size: clamp(10px, 0.72vw, 13px);
  font-weight: 300;
  line-height: 1.68;
  letter-spacing: 0.045em;
}

.intro-copy strong {
  font-weight: 500;
}

/* Opening banner must fill the first viewport before the next section appears. */
.hero {
  height: 100vh;
  min-height: 100vh;
  height: 100svh;
  min-height: 100svh;
}

.hero-frame,
.hero-frame .hero-photo {
  height: 100%;
}

@supports (height: 100dvh) {
  .hero {
    height: 100dvh;
    min-height: 100dvh;
  }
}

/* Intro image pair sizing from the reference. */
.intro-gallery {
  width: min(1080px, calc(100vw - 96px));
  height: clamp(560px, 58vw, 760px);
  margin-top: clamp(70px, 7vw, 118px);
  margin-bottom: clamp(44px, 4.8vw, 78px);
}

.intro-photo-left {
  left: clamp(28px, 4vw, 72px);
  top: 25%;
  bottom: auto;
  width: clamp(250px, 25vw, 405px);
  height: 50%;
}

.intro-photo-right {
  top: 0;
  right: clamp(28px, 4vw, 72px);
  width: clamp(330px, 35vw, 570px);
  height: 100%;
}

@media (max-width: 900px) {
  .intro-gallery {
    width: min(680px, calc(100vw - 48px));
    height: 620px;
  }

  .intro-photo-left {
    left: 0;
    top: 25%;
    bottom: auto;
    width: 44%;
    height: 50%;
  }

  .intro-photo-right {
    right: 0;
    width: 50%;
    height: 100%;
  }
}

@media (max-width: 560px) {
  .intro-gallery {
    display: grid;
    gap: 24px;
    height: auto;
  }

  .intro-photo-left,
  .intro-photo-right {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
  }
}

/* Intro pair: two vertical images with fixed editorial spacing. */
.intro-gallery {
  display: grid;
  grid-template-columns: minmax(300px, 430px) minmax(360px, 520px);
  gap: 100px;
  align-items: center;
  justify-content: center;
  width: min(1050px, calc(100vw - 96px));
  height: auto;
}

.intro-photo-left,
.intro-photo-right {
  position: relative;
  inset: auto;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 3;
}

@media (max-width: 900px) {
  .intro-gallery {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    width: min(720px, calc(100vw - 48px));
  }
}

@media (max-width: 560px) {
  .intro-gallery {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

/* Journey text follows the same readable width as the editorial intro copy. */
.journey-section .narrow {
  width: min(980px, calc(100vw - 140px));
  max-width: 980px;
}

.journey-section .journey-body {
  width: 100%;
  max-width: 980px;
}

@media (max-width: 900px) {
  .journey-section .narrow,
  .journey-section .journey-body {
    width: min(100%, calc(100vw - 48px));
    max-width: calc(100vw - 48px);
  }
}

/* Global typography standard based on the intro lockup. */
:root {
  --type-title-color: #59534c;
  --type-copy-color: #948e86;
  --type-subtitle-color: #aaa39a;
  --type-title-size: clamp(42px, 4.8vw, 82px);
  --type-subtitle-size: clamp(8px, 0.64vw, 12px);
  --type-copy-size: clamp(10px, 0.72vw, 13px);
}

.title-lockup h1,
.journey-section h2,
.about-copy h2,
.editorial-copy h2,
.destination-copy h2,
.keys-section h2,
.consultation-copy h2,
.portfolio-hero h1 {
  color: var(--type-title-color);
  font-family: var(--serif);
  font-size: var(--type-title-size);
  font-weight: 300;
  letter-spacing: 0;
  line-height: 1.06;
  text-transform: none;
}

.title-lockup .overline,
.journey-section .journey-kicker,
.about-copy .overline,
.editorial-copy .overline,
.destination-copy .overline,
.consultation-copy .overline,
.portfolio-hero .overline {
  color: var(--type-subtitle-color);
  font-family: var(--sans);
  font-size: var(--type-subtitle-size);
  font-weight: 300;
  letter-spacing: 0.34em;
  line-height: 1.45;
  text-transform: uppercase;
}

.under-title {
  color: var(--type-subtitle-color);
  font-family: var(--sans);
  font-size: var(--type-subtitle-size);
  font-weight: 300;
  letter-spacing: 0.34em;
  line-height: 1.45;
  text-transform: none;
}

.intro-copy p,
.journey-section .journey-body,
.story-copy,
.story-copy p,
.about-copy p:not(.overline),
.editorial-copy p:not(.overline),
.destination-copy p,
.keys-copy,
.keys-copy p,
.keys-copy li,
.consultation-copy p:not(.overline),
.portfolio-hero p:not(.overline),
.portfolio-page-cta p,
.site-footer p,
.site-footer a {
  color: var(--type-copy-color);
  font-family: var(--sans);
  font-size: var(--type-copy-size);
  font-weight: 300;
  letter-spacing: 0.045em;
  line-height: 1.68;
}

.intro-copy strong,
.journey-section strong,
.story-copy strong,
.about-copy strong,
.editorial-copy strong,
.destination-copy strong,
.keys-copy strong,
.consultation-copy strong {
  color: #66605a;
  font-weight: 500;
}

.journey-section h2 {
  font-size: calc(var(--type-title-size) / 2);
}

/* Experience split: align copy and button to the vertical center of the image. */
.split-story {
  align-items: center;
}

.story-copy {
  align-self: center;
  padding-top: 0;
}

.cinema-quote {
  border-top: 50px solid var(--warm);
  margin-top: 0;
}

.cinema-quote {
  min-height: clamp(460px, 40vw, 620px);
}

/* Quote banners: keep both testimonial texts on the same visual scale. */
.cinema-quote blockquote,
.testimonial-section blockquote {
  max-width: min(980px, calc(100vw - 96px));
  font-family: var(--sans);
  font-size: clamp(20px, 1.55vw, 28px);
  font-weight: 300;
  letter-spacing: 0.035em;
  line-height: 1.55;
}

.cinema-quote blockquote p,
.testimonial-section blockquote p {
  margin: 0;
}

.cinema-quote cite,
.testimonial-section cite {
  display: block;
  margin-top: clamp(28px, 3vw, 48px);
  font-family: var(--sans);
  font-size: clamp(11px, 0.85vw, 14px);
  font-style: normal;
  font-weight: 300;
  letter-spacing: 0.28em;
  line-height: 1.4;
  text-transform: uppercase;
}

/* Header logo image. */
.site-header {
  mix-blend-mode: normal;
}

.brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(58px, 5vw, 78px);
  height: clamp(58px, 5vw, 78px);
}

.brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 1px 10px rgba(0, 0, 0, 0.16));
  object-fit: contain;
}

@media (max-width: 700px) {
  .brand-mark {
    width: 58px;
    height: 58px;
  }

  .header-actions {
    gap: 10px;
  }

  .language-switcher {
    gap: 4px;
  }

  .language-switcher__button {
    min-width: 24px;
    font-size: 8px;
    letter-spacing: 0.08em;
  }
}

/* Editorial title lockup. */
.title-lockup h1 {
  --editorial-title-size: clamp(38px, 5vw, 84px);
  --meets-title-size: clamp(29px, 4.14vw, 70px);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  row-gap: clamp(8px, 0.8vw, 18px);
  width: min(880px, calc(100vw - 36px));
  margin: clamp(34px, 4vw, 64px) auto 0;
  color: #4d4d4d;
  font-size: var(--editorial-title-size);
  line-height: 0.82;
  text-align: center;
  text-transform: uppercase;
}

.title-lockup h1 .title-word {
  display: block;
  letter-spacing: 0;
}

.title-lockup h1 .emotion-line {
  display: inline-flex;
  align-items: baseline;
  justify-self: center;
  padding-right: 0.04em;
  letter-spacing: 0;
}

.title-lockup h1 em {
  position: static;
  display: inline-block;
  margin-left: -50px;
  margin-right: 0;
  z-index: 2;
  color: #4d4d4d;
  font-family: var(--script);
  font-size: var(--meets-title-size);
  font-style: normal;
  line-height: 1;
  text-transform: none;
  transform: rotate(-5deg);
}

@media (max-width: 700px) {
  .title-lockup h1 {
    --editorial-title-size: clamp(30px, 9.2vw, 48px);
    --meets-title-size: clamp(23px, 7.36vw, 40px);
    row-gap: 0;
    width: min(96vw, 520px);
  }

  .title-lockup h1 em {
    margin-left: -26px;
    font-size: 0.46em;
  }
}

/* About photographer section. */
.dark-section {
  background: #000;
}

.about-panel {
  display: grid;
  grid-template-columns: 190px minmax(260px, 327px) minmax(420px, 1fr);
  align-items: center;
  gap: clamp(58px, 5.2vw, 92px);
  max-width: min(1680px, calc(100vw - 140px));
  min-height: clamp(465px, 52.5vh, 615px);
  margin: 0 auto;
  padding: clamp(28px, 3vw, 48px) 0;
}

.about-panel .side-label {
  align-self: center;
  justify-self: center;
  max-width: 180px;
  color: #b6a18f;
  font-family: var(--serif);
  font-size: clamp(16px, 1.15vw, 22px);
  font-weight: 300;
  letter-spacing: 0.16em;
  line-height: 1.38;
  text-align: center;
  text-transform: uppercase;
  transform: none;
  writing-mode: horizontal-tb;
}

.about-panel .about-photo {
  width: 100%;
  aspect-ratio: 0.67;
  min-height: 0;
  filter: grayscale(1);
}

.about-panel .about-copy {
  align-self: center;
  max-width: 900px;
  padding-top: 20px;
}

.about-panel .about-copy .overline {
  color: #f5f1eb;
  font-family: var(--serif);
  font-size: clamp(24px, 1.8vw, 36px);
  font-weight: 300;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: none;
}

.about-panel .about-copy h2 {
  margin: clamp(54px, 5vw, 92px) 0 22px;
  color: #fff;
  font-family: var(--script);
  font-size: clamp(48px, 4.3vw, 78px);
  font-weight: 400;
  line-height: 1;
  text-transform: none;
}

.about-panel .about-copy p:not(.overline) {
  max-width: 900px;
  color: #d8d2cb;
  font-family: var(--sans);
  font-size: clamp(12px, 0.72vw, 15px);
  font-weight: 300;
  letter-spacing: 0.06em;
  line-height: 1.72;
}

.about-panel .about-copy p + p {
  margin-top: 12px;
}

.about-panel .about-copy .text-link {
  display: block;
  width: max-content;
  margin: clamp(58px, 5vw, 96px) 0 0;
  color: #fff;
  font-family: var(--sans);
  font-size: clamp(13px, 0.9vw, 18px);
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-decoration: underline;
  text-underline-offset: 6px;
  text-transform: none;
}

.about-panel .about-copy .text-link::after {
  content: " ->";
  text-decoration: none;
}

.destination-copy h2 span {
  display: block;
}

.destination-copy .pre-wedding-title {
  margin-top: clamp(-44px, -3.4vw, -26px);
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .about-panel {
    grid-template-columns: minmax(240px, 420px) minmax(0, 1fr);
    max-width: calc(100vw - 48px);
  }

  .about-panel .side-label {
    grid-column: 1 / -1;
    justify-self: start;
    max-width: none;
    text-align: left;
  }
}

@media (max-width: 760px) {
  .about-panel {
    grid-template-columns: 1fr;
    gap: 34px;
    min-height: auto;
    padding: 72px 0;
  }

  .about-panel .about-photo {
    min-height: auto;
  }

  .about-panel .about-copy h2 {
    margin-top: 38px;
  }

  .about-panel .about-copy .text-link {
    margin-left: 0;
  }
}

@media (max-width: 560px) {
  .intro-gallery {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  .portfolio-section h2,
  .portfolio-grid {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    text-align: center;
  }

  .portfolio-section h2 {
    position: sticky;
    top: 18vh;
    margin-bottom: 24px;
    font-size: clamp(44px, 14vw, 54px);
    line-height: 0.92;
  }

  .portfolio-grid {
    margin-top: 0;
  }

  .portfolio-grid .photo {
    width: 100%;
  }

  .portfolio-a,
  .portfolio-b,
  .portfolio-c,
  .portfolio-d {
    grid-row: auto;
  }
}

/* Reference-style footer. */
.site-footer {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(320px, 1.35fr) minmax(180px, 1fr);
  align-items: center;
  gap: 0;
  width: 50%;
  max-width: 1140px;
  min-height: clamp(300px, 24vw, 430px);
  margin: 0 auto;
  padding: clamp(56px, 6vw, 96px) 0;
  background: #000;
  color: #f2eee8;
}

.site-footer::before {
  position: absolute;
  z-index: -1;
  inset: 0 50%;
  width: 100vw;
  margin-left: -50vw;
  background: #000;
  content: "";
}

.footer-meta,
.footer-center,
.footer-social {
  min-height: clamp(170px, 15vw, 260px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.footer-meta {
  align-items: flex-start;
  gap: clamp(26px, 3vw, 48px);
  color: #8e8a86;
}

.footer-center {
  align-items: center;
  border-left: 1px solid rgba(255, 255, 255, 0.42);
  border-right: 1px solid rgba(255, 255, 255, 0.42);
  padding: 0 clamp(42px, 5vw, 84px);
  text-align: center;
}

.footer-social {
  align-items: center;
}

.site-footer p,
.site-footer a {
  margin: 0;
  color: inherit;
  font-family: var(--sans);
  font-size: clamp(13px, 0.9vw, 18px);
  font-weight: 300;
  letter-spacing: 0.03em;
  line-height: 1.65;
  text-transform: none;
}

.site-footer .privacy-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 5px 12px;
  border-radius: 4px;
  background: #f4f1ec;
  color: #5a5651;
  font-weight: 600;
  letter-spacing: 0;
}

.site-footer .footer-brand {
  width: clamp(118px, 10vw, 176px);
  margin: 0 0 clamp(34px, 4vw, 58px);
}

.site-footer .footer-brand img {
  display: block;
  width: 100%;
  height: auto;
  filter: brightness(0) invert(1);
}

.footer-center p {
  max-width: 620px;
  color: #f0ece7;
  font-size: clamp(12px, 0.78vw, 16px);
  font-weight: 300;
  line-height: 1.62;
}

.footer-center strong {
  color: #fff;
  font-weight: 500;
}

.site-footer .social-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 2vw, 28px);
}

.site-footer .social-links a {
  display: inline-flex;
  width: clamp(24px, 1.8vw, 34px);
  height: clamp(24px, 1.8vw, 34px);
  color: #fff;
}

.site-footer .social-links svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

.site-footer .social-links path {
  fill: currentColor;
  stroke: none;
}

@media (max-width: 1200px) {
  .site-footer {
    grid-template-columns: 1fr;
    gap: 34px;
    width: min(100% - 48px, 1140px);
    text-align: center;
  }

  .footer-meta,
  .footer-center,
  .footer-social {
    min-height: auto;
    align-items: center;
  }

  .footer-center {
    border-left: 0;
    border-right: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.36);
    border-bottom: 1px solid rgba(255, 255, 255, 0.36);
    padding: 34px 0;
  }
}

/* Keep the supplied index banner images in their original colors. */
.hero .hero-photo,
.hero .photo.has-managed-image {
  filter: none !important;
  background-blend-mode: normal;
}

.journey-section,
.split-story {
  background: var(--warm) !important;
}

.cinema-quote .quote-photo,
.cinema-quote .quote-photo.has-managed-image {
  filter: grayscale(1);
}

.cinema-quote::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.2);
}

.cinema-quote blockquote {
  position: relative;
  z-index: 2;
}

/* Site title font */
h1,
h2,
.title-lockup h1,
.title-lockup h1 .title-word,
.journey-section h2,
.portfolio-section h2,
.about-panel .about-copy h2,
.editorial-copy h2,
.destination-copy h2,
.consultation-copy h2,
.portfolio-hero h1 {
  font-family: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif !important;
}

.title-lockup > .overline {
  font-size: clamp(12px, 0.96vw, 18px);
  font-weight: 400;
}

/* Work portfolio page */
.work-page {
  background: #fff;
  color: #1d1a17;
}

.work-page .site-header {
  color: #4f4b45;
  mix-blend-mode: normal;
}

.work-page .brand-mark img {
  filter: brightness(0);
  opacity: 0.82;
}

.work-main {
  width: 100%;
  margin: 0 auto;
  padding: 300px 0 clamp(80px, 8vw, 132px);
}

.work-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 1.275vw, 24px);
  width: 100%;
}

.work-card {
  display: block;
  color: #171513;
  text-align: left;
  text-decoration: none;
}

.work-thumb {
  position: relative;
  display: block;
  overflow: hidden;
  background: #3b3b3b;
}

.work-thumb::before,
.work-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms ease;
}

.work-thumb::before {
  z-index: 1;
  background: rgba(0, 0, 0, 0.3);
}

.work-thumb::after {
  z-index: 2;
  width: clamp(86px, 7.4vw, 126px);
  height: clamp(86px, 7.4vw, 126px);
  margin: auto;
  background: url("../assets/header-logo.png?v=logo-forma-1-20260522") center / contain no-repeat;
  filter: brightness(0);
}

.work-card img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center;
  background: #ece8df;
  transition: opacity 260ms ease, transform 360ms ease;
}

.work-label {
  display: none;
}

.work-hover-title {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  padding: 24px;
  color: #fff;
  font-family: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif;
  font-size: clamp(9px, 0.9vw, 15px);
  letter-spacing: 0.02em;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity 260ms ease;
}

.work-card:hover img,
.work-card:focus-visible img,
.work-card:active img {
  opacity: 0;
  transform: scale(1.02);
}

.work-card:hover .work-thumb::before,
.work-card:hover .work-thumb::after,
.work-card:hover .work-hover-title,
.work-card:focus-visible .work-thumb::before,
.work-card:focus-visible .work-thumb::after,
.work-card:focus-visible .work-hover-title,
.work-card:active .work-thumb::before,
.work-card:active .work-thumb::after,
.work-card:active .work-hover-title {
  opacity: 1;
}

@media (max-width: 980px) {
  .work-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .work-main {
    padding-top: 106px;
  }

  .work-gallery {
    gap: 24px 12px;
  }
}

@media (max-width: 460px) {
  .work-gallery {
    grid-template-columns: 1fr;
  }
}

/* Individual portfolio stories */
.story-detail-page {
  background: var(--paper);
}

.story-detail-main {
  padding-top: clamp(170px, 16vw, 260px);
}

.story-detail-hero {
  width: min(100% - 48px, 980px);
  margin: 0 auto clamp(70px, 8vw, 128px);
  text-align: center;
}

.story-detail-hero .overline {
  color: var(--type-subtitle-color);
  font-family: var(--sans);
  font-size: clamp(9px, 0.7vw, 13px);
  font-weight: 400;
  letter-spacing: 0.34em;
  line-height: 1.45;
  text-transform: uppercase;
}

.story-detail-hero h1 {
  margin-top: clamp(22px, 3vw, 42px);
  color: var(--type-title-color);
  font-family: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif;
  font-size: clamp(48px, 7vw, 118px);
  font-weight: 300;
  letter-spacing: 0;
  line-height: 0.95;
}

.story-detail-hero p:not(.overline) {
  max-width: 620px;
  margin: clamp(24px, 3vw, 42px) auto 0;
  color: var(--type-copy-color);
  font-family: var(--sans);
  font-size: clamp(13px, 1vw, 18px);
  font-weight: 300;
  letter-spacing: 0.04em;
  line-height: 1.8;
}

.story-detail-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 1.7vw, 32px);
  width: 100%;
}

.story-detail-card {
  margin: 0;
  background: #ece8df;
}

.story-detail-card.is-wide {
  grid-column: span 2;
}

.story-detail-card img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: clamp(360px, 46vw, 780px);
  object-fit: cover;
}

@media (max-width: 980px) {
  .story-detail-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .story-detail-main {
    padding-top: 132px;
  }

  .story-detail-gallery {
    grid-template-columns: 1fr;
  }

  .story-detail-card.is-wide {
    grid-column: auto;
  }

  .story-detail-card img {
    min-height: 0;
    aspect-ratio: 3 / 4;
  }
}

.site-footer .privacy-link {
  display: none !important;
}

/* Eleonora-style editorial long page */
.ef-page {
  background: #fbfaf7;
  color: #5d574f;
}

.ef-page img {
  display: block;
  width: 100%;
  object-fit: cover;
}

.ef-page h1,
.ef-page h2,
.ef-page h3 {
  margin: 0;
  color: #5a554e;
  font-family: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif;
  font-weight: 300;
  letter-spacing: 0;
}

.ef-page p,
.ef-page li,
.ef-page cite {
  color: #aaa49b;
  font-family: var(--sans);
  font-size: clamp(9px, 0.7vw, 13px);
  font-weight: 300;
  letter-spacing: 0.045em;
  line-height: 1.95;
}

.ef-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 132px;
  min-height: 38px;
  margin-top: 22px;
  padding: 8px 24px;
  border: 1px solid #c8b69d;
  color: #9a8872;
  font-family: var(--sans);
  font-size: 9px;
  font-weight: 400;
  letter-spacing: 0.22em;
  line-height: 1;
  text-transform: uppercase;
}

.ef-button--dark {
  border-color: #000;
  background: #000;
  color: #fff;
}

.ef-button--light {
  border-color: #fff;
  color: #fff;
}

.ef-script {
  color: #9b9388;
  font-family: var(--script) !important;
  font-size: clamp(24px, 2.5vw, 46px) !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
}

.ef-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: clamp(520px, 58vw, 820px);
  background: #000;
}

.ef-hero figure {
  position: relative;
  margin: 0;
  overflow: hidden;
}

.ef-hero img {
  height: 100%;
  min-height: clamp(520px, 58vw, 820px);
}

.ef-hero figure:nth-child(2)::after {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.32);
  content: "";
}

.ef-hero figcaption {
  position: absolute;
  z-index: 1;
  right: 9%;
  bottom: 14%;
  max-width: 520px;
  color: rgba(255, 255, 255, 0.9);
  font-family: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif;
  font-size: clamp(28px, 3.5vw, 64px);
  font-weight: 300;
  line-height: 1.05;
  text-align: center;
}

.ef-intro {
  display: grid;
  grid-template-columns: minmax(220px, 330px) minmax(320px, 560px);
  justify-content: center;
  gap: clamp(70px, 9vw, 170px);
  padding: clamp(96px, 9vw, 164px) 24px clamp(78px, 7vw, 130px);
}

.ef-intro p {
  text-align: center;
}

.ef-intro div {
  text-align: center;
}

.ef-quote-band,
.ef-photo-quote,
.ef-visual-world,
.ef-closing {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  overflow: hidden;
  min-height: clamp(280px, 28vw, 470px);
  text-align: center;
}

.ef-quote-band img,
.ef-photo-quote img,
.ef-visual-world img,
.ef-closing img {
  position: absolute;
  z-index: -2;
  inset: 0;
  height: 100%;
  filter: grayscale(1);
}

.ef-quote-band::after,
.ef-photo-quote::after,
.ef-visual-world::after,
.ef-closing::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgba(0, 0, 0, 0.42);
  content: "";
}

.ef-quote-band p,
.ef-photo-quote p {
  width: min(780px, calc(100vw - 48px));
  color: #fff;
  font-size: clamp(11px, 0.9vw, 16px);
  line-height: 1.8;
}

.ef-choice {
  width: min(92vw, 1600px);
  margin: 0 auto;
  padding: clamp(142px, 12vw, 230px) 0 clamp(126px, 11vw, 210px);
}

.ef-choice > h2 {
  display: grid;
  width: min(760px, 52vw);
  margin: 0 clamp(28px, 5vw, 96px) clamp(118px, 10vw, 190px) auto;
  text-align: right;
  color: #5d5851;
  font-size: clamp(58px, 6vw, 116px);
  font-weight: 300;
  line-height: 0.78;
  text-transform: uppercase;
}

.ef-choice > h2 em {
  font-family: var(--script);
  font-size: 0.45em;
  font-style: normal;
  font-weight: 400;
  line-height: 0.82;
  text-transform: none;
  transform: translate(-0.4em, 0.18em);
}

.ef-choice > h2 span {
  display: block;
}

.ef-choice > h2 small {
  display: block;
  margin-top: clamp(22px, 2.3vw, 42px);
  color: #74706a;
  font-family: var(--sans);
  font-size: clamp(13px, 1vw, 19px);
  font-weight: 300;
  letter-spacing: 0.02em;
  line-height: 1.32;
  text-transform: uppercase;
}

.ef-choice-list {
  display: grid;
  gap: clamp(132px, 11vw, 220px);
}

.ef-choice-list article {
  display: grid;
  grid-template-areas: "number image heading copy";
  grid-template-columns: 56px minmax(230px, 340px) minmax(300px, 440px) minmax(360px, 610px);
  align-items: center;
  justify-content: center;
  gap: clamp(34px, 3vw, 58px);
}

.ef-choice-list article:nth-child(even) {
  grid-template-columns: 56px minmax(230px, 340px) minmax(300px, 440px) minmax(360px, 610px);
}

.ef-choice-list span {
  grid-area: number;
  color: #b0aaa2;
  font-family: var(--sans);
  font-size: clamp(16px, 1vw, 20px);
  font-weight: 300;
  letter-spacing: 0.04em;
}

.ef-choice-list img {
  grid-area: image;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.ef-choice-heading {
  grid-area: heading;
}

.ef-choice-list h3 {
  max-width: 440px;
  color: #5d5851;
  font-size: clamp(42px, 2.85vw, 60px);
  font-weight: 300;
  letter-spacing: 0;
  line-height: 0.92;
  text-transform: uppercase;
}

.ef-choice-heading p {
  margin-top: clamp(24px, 2vw, 36px);
  color: #6f6961;
  font-size: clamp(13px, 0.95vw, 18px);
  font-weight: 300;
  letter-spacing: 0.015em;
  line-height: 1.55;
  text-transform: uppercase;
}

.ef-choice-list article > p {
  grid-area: copy;
  max-width: 610px;
  color: #938d85;
  font-size: clamp(15px, 0.98vw, 19px);
  font-weight: 300;
  letter-spacing: 0.04em;
  line-height: 1.78;
}

.ef-split {
  display: grid;
  align-items: center;
  gap: clamp(56px, 8vw, 150px);
  width: min(74vw, 1180px);
  margin: clamp(92px, 9vw, 170px) auto;
}

.ef-split--right {
  grid-template-columns: minmax(300px, 450px) minmax(300px, 420px);
  justify-content: center;
}

.ef-split--left {
  grid-template-columns: minmax(360px, 560px) minmax(300px, 450px);
}

.ef-split img {
  aspect-ratio: 3 / 4;
}

.ef-split--left img {
  aspect-ratio: 4 / 3;
}

.ef-split h2 {
  margin: 6px 0 24px;
  font-size: clamp(30px, 3.2vw, 58px);
  line-height: 1.02;
}

.ef-note {
  display: grid;
  grid-template-columns: minmax(320px, 900px) 180px;
  align-items: center;
  justify-content: center;
  gap: clamp(44px, 6vw, 110px);
  padding: clamp(58px, 7vw, 118px) 24px;
  background: #f4f2ed;
  text-align: center;
}

.ef-note img {
  aspect-ratio: 3 / 4;
}

.ef-visual-world {
  min-height: clamp(420px, 43vw, 690px);
}

.ef-visual-world h2 {
  color: #fff;
  font-size: clamp(34px, 4.8vw, 88px);
  line-height: 1;
}

.ef-testimonial {
  width: min(760px, calc(100vw - 48px));
  margin: clamp(82px, 9vw, 160px) auto;
  padding: clamp(42px, 5vw, 78px) clamp(42px, 6vw, 90px);
  background: #f4f2ed;
  text-align: left;
}

.ef-testimonial blockquote {
  border-top: 1px solid rgba(45, 41, 36, 0.28);
  margin: 0;
  padding-top: 24px;
}

.ef-testimonial cite {
  display: block;
  margin-top: 18px;
}

.ef-spacer-gallery {
  min-height: clamp(780px, 82vw, 1250px);
  display: grid;
  place-items: center;
}

.ef-spacer-gallery figure {
  width: min(270px, 42vw);
  margin: 0;
}

.ef-spacer-gallery img {
  aspect-ratio: 3 / 4;
  filter: grayscale(1);
}

.ef-spacer-gallery figcaption {
  margin-top: 8px;
  color: #aaa49b;
  font-family: var(--sans);
  font-size: 8px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.ef-process {
  padding: clamp(68px, 7vw, 118px) max(36px, calc((100vw - 1180px) / 2));
  background: #000;
  color: #fff;
}

.ef-process h2 {
  color: #fff;
  font-size: clamp(34px, 4vw, 72px);
  line-height: 1.05;
  text-align: center;
}

.ef-process > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 74px);
  margin-top: clamp(52px, 6vw, 96px);
}

.ef-process article {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
}

.ef-process span {
  color: #fff;
  font-family: "Amandine", "Bodoni 72", "Didot", serif;
  font-size: clamp(34px, 4vw, 62px);
  line-height: 1;
}

.ef-process h3 {
  color: #fff;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.ef-process p {
  grid-column: 2;
  color: rgba(255, 255, 255, 0.72);
}

.ef-signature {
  padding: clamp(54px, 6vw, 96px) 24px;
  background: #f4f2ed;
  text-align: center;
}

.ef-signature h2 {
  margin-top: 8px;
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: 0.36em;
}

.ef-expect {
  display: grid;
  grid-template-columns: minmax(260px, 380px) minmax(340px, 600px);
  justify-content: center;
  align-items: center;
  gap: clamp(62px, 8vw, 140px);
  padding: clamp(100px, 10vw, 170px) 24px;
}

.ef-expect img {
  aspect-ratio: 3 / 4;
  filter: grayscale(1);
}

.ef-expect h2 {
  margin-bottom: 34px;
  font-size: clamp(38px, 4vw, 70px);
}

.ef-expect article {
  margin-top: 22px;
}

.ef-expect h3 {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.ef-closing {
  min-height: clamp(360px, 38vw, 620px);
}

.ef-closing .ef-script {
  color: #fff;
  font-size: clamp(34px, 4vw, 72px) !important;
}

.ef-closing p:last-child {
  color: #fff;
  font-size: clamp(11px, 0.9vw, 16px);
}

@media (max-width: 900px) {
  .ef-hero,
  .ef-intro,
  .ef-split,
  .ef-note,
  .ef-expect {
    grid-template-columns: 1fr;
  }

  .ef-choice {
    width: min(100% - 48px, 720px);
  }

  .ef-choice > h2 {
    width: 100%;
    margin-right: 0;
    text-align: center;
  }

  .ef-choice > h2 em {
    transform: none;
  }

  .ef-choice-list article,
  .ef-choice-list article:nth-child(even) {
    grid-template-areas:
      "number"
      "image"
      "heading"
      "copy";
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 24px;
  }

  .ef-choice-list article p {
    grid-column: auto;
  }

  .ef-choice-list img {
    width: min(320px, 80vw);
  }

  .ef-process > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .ef-hero {
    grid-template-columns: 1fr;
  }

  .ef-hero img {
    min-height: 360px;
  }

  .ef-intro,
  .ef-expect {
    padding-left: 24px;
    padding-right: 24px;
  }

  .ef-choice-list article,
  .ef-choice-list article:nth-child(even) {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .ef-choice-list article p {
    grid-column: auto;
  }

  .ef-choice-list img {
    margin: 0 auto;
  }

  .ef-process > div {
    grid-template-columns: 1fr;
  }
}

/* Editorial experience landing page */
.editorial-experience-page {
  background: var(--paper);
}

.experience-hero {
  display: grid;
  grid-template-columns: minmax(320px, 0.8fr) minmax(420px, 1fr);
  align-items: center;
  gap: clamp(48px, 6vw, 112px);
  min-height: 100vh;
  padding: clamp(130px, 13vw, 230px) max(36px, calc((100vw - 1440px) / 2)) clamp(80px, 8vw, 140px);
}

.experience-hero-copy {
  max-width: 620px;
  padding-left: clamp(0px, 4vw, 68px);
}

.editorial-experience-page .overline {
  color: var(--type-subtitle-color);
  font-family: var(--sans);
  font-size: clamp(9px, 0.72vw, 13px);
  font-weight: 400;
  letter-spacing: 0.34em;
  line-height: 1.5;
  text-transform: uppercase;
}

.experience-hero h1,
.experience-process h2,
.experience-cta h2 {
  color: var(--type-title-color);
  font-family: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif;
  font-weight: 300;
  letter-spacing: 0;
  text-transform: none;
}

.experience-hero h1 {
  margin-top: clamp(22px, 3vw, 46px);
  font-size: clamp(54px, 6.2vw, 118px);
  line-height: 0.95;
}

.experience-hero-copy p:not(.overline),
.experience-process-copy p,
.experience-process-copy li,
.experience-values p,
.experience-cta p {
  color: var(--type-copy-color);
  font-family: var(--sans);
  font-size: clamp(13px, 0.95vw, 17px);
  font-weight: 300;
  letter-spacing: 0.04em;
  line-height: 1.85;
}

.experience-hero-copy p:not(.overline) {
  margin-top: clamp(28px, 3vw, 48px);
}

.experience-hero-media {
  display: grid;
  grid-template-columns: 0.82fr 0.58fr;
  align-items: end;
  gap: clamp(18px, 2vw, 34px);
}

.experience-hero-media img,
.experience-image-band img,
.experience-process-image img {
  display: block;
  width: 100%;
  object-fit: cover;
}

.experience-hero-media img:first-child {
  aspect-ratio: 4 / 5;
  height: auto;
}

.experience-hero-media img:last-child {
  aspect-ratio: 3 / 4;
  margin-bottom: clamp(48px, 8vw, 140px);
}

.experience-statement {
  width: min(100% - 64px, 1180px);
  margin: 0 auto;
  padding: clamp(90px, 9vw, 160px) 0;
  text-align: center;
}

.experience-statement p {
  color: var(--type-title-color);
  font-family: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif;
  font-size: clamp(34px, 4.8vw, 84px);
  font-weight: 300;
  line-height: 1.08;
}

.experience-values {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: min(72vw, 1480px);
  margin: clamp(92px, 7vw, 140px) auto clamp(120px, 10vw, 180px);
  background: #f4f2ed;
}

.experience-values div {
  min-height: clamp(520px, 28vw, 590px);
  padding: clamp(78px, 4.4vw, 92px) clamp(52px, 3.7vw, 74px) clamp(62px, 4vw, 86px);
  background: transparent;
}

.experience-values div + div {
  border-left: 1px solid rgba(45, 41, 36, 0.13);
}

.experience-values span {
  color: #9a948c;
  font-family: var(--sans);
  font-size: clamp(10px, 0.62vw, 13px);
  font-weight: 300;
  letter-spacing: 0.34em;
}

.experience-values h2 {
  margin-top: clamp(110px, 7vw, 136px);
  color: var(--type-title-color);
  font-family: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif;
  font-size: clamp(42px, 3vw, 62px);
  font-weight: 300;
  letter-spacing: 0;
  line-height: 0.96;
}

.experience-values p {
  max-width: 250px;
  margin-top: 28px;
}

.experience-image-band {
  display: grid;
  grid-template-columns: 0.9fr 1.25fr 0.9fr;
  gap: clamp(14px, 1.275vw, 24px);
  width: 100%;
  margin: 0 auto;
}

.experience-image-band img {
  height: clamp(420px, 44vw, 760px);
}

.experience-process {
  display: grid;
  grid-template-columns: minmax(300px, 520px) minmax(360px, 640px);
  align-items: center;
  gap: clamp(58px, 8vw, 140px);
  padding: clamp(100px, 11vw, 190px) max(34px, calc((100vw - 1280px) / 2));
  background: var(--warm);
}

.experience-process-image img {
  aspect-ratio: 3 / 4;
}

.experience-process h2 {
  margin-top: 24px;
  font-size: clamp(42px, 5vw, 84px);
  line-height: 1;
}

.experience-process-copy p:not(.overline) {
  margin-top: 32px;
}

.experience-process-copy ol {
  display: grid;
  gap: 14px;
  margin: 34px 0 0;
  padding-left: 22px;
}

.experience-dark {
  display: grid;
  place-items: center;
  min-height: clamp(360px, 42vw, 620px);
  padding: 48px;
  background: #000;
  color: #fff;
  text-align: center;
}

.experience-dark p {
  width: min(900px, 100%);
  font-family: "Amandine", "Bodoni 72", "Didot", "Cormorant Garamond", "Times New Roman", serif;
  font-size: clamp(46px, 6vw, 110px);
  font-weight: 300;
  line-height: 0.98;
}

.experience-cta {
  width: min(100% - 64px, 980px);
  margin: 0 auto;
  padding: clamp(100px, 11vw, 180px) 0;
  text-align: center;
}

.experience-cta h2 {
  margin: 22px auto 38px;
  font-size: clamp(40px, 5vw, 86px);
  line-height: 1;
}

@media (max-width: 980px) {
  .experience-hero,
  .experience-process,
  .experience-values,
  .experience-image-band {
    grid-template-columns: 1fr;
  }

  .experience-values {
    width: min(100% - 48px, 720px);
  }

  .experience-image-band img {
    height: auto;
    aspect-ratio: 3 / 4;
  }
}

@media (max-width: 620px) {
  .experience-hero {
    padding-top: 120px;
  }

  .experience-hero-media {
    grid-template-columns: 1fr;
  }

  .experience-hero-media img:last-child {
    margin-bottom: 0;
  }

  .experience-statement,
  .experience-values,
  .experience-cta {
    width: min(100% - 36px, 100%);
  }

  .experience-values div {
    min-height: 0;
  }
}

/* Home redesign based on the supplied artboard. Header and menu keep the site defaults. */
.home-redesign {
  background: #fff;
}

.home-redesign {
  --header-gap: 0px;
  --hero-controls-height: clamp(34px, 3.2vw, 52px);
}

.home-redesign main {
  background: #fff;
}

.home-redesign .hero {
  height: calc(100vh - var(--header-height) - var(--header-gap) - var(--hero-controls-height));
  min-height: max(360px, calc(100vh - var(--header-height) - var(--header-gap) - var(--hero-controls-height)));
  background: #d8d3ca;
}

@supports (height: 100svh) {
  .home-redesign .hero {
    height: calc(100svh - var(--header-height) - var(--header-gap) - var(--hero-controls-height));
    min-height: max(360px, calc(100svh - var(--header-height) - var(--header-gap) - var(--hero-controls-height)));
  }
}

@supports (height: 100dvh) {
  .home-redesign .hero {
    height: calc(100dvh - var(--header-height) - var(--header-gap) - var(--hero-controls-height));
    min-height: max(360px, calc(100dvh - var(--header-height) - var(--header-gap) - var(--hero-controls-height)));
  }
}

.home-redesign .hero-frame,
.home-redesign .hero-frame .hero-photo {
  display: block;
}

.home-redesign .hero .hero-photo,
.home-redesign .hero .photo.has-managed-image {
  filter: none !important;
}

.hero-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: var(--hero-controls-height);
  padding: 0 clamp(28px, 3.8vw, 64px);
  background: #fff;
  border-top: 1px solid #111;
}

.hero-arrow {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  padding: 0 0 2px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(10px, 0.78vw, 14px);
  font-weight: 400;
  line-height: 1.2;
  cursor: pointer;
  text-transform: uppercase;
}

.hero-arrow span {
  display: inline;
  width: auto;
  height: auto;
  background: transparent;
}

.hero-arrow span::before {
  content: "←";
}

.hero-arrow--next span::before {
  content: "→";
}

.hero-arrow span::after {
  display: none;
}

.home-logo-hero {
  position: relative;
  --home-logo-photo-width: clamp(147px, 15.3vw, 257px);
  --home-logo-mark-width: calc(var(--home-logo-photo-width) * 3);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: clamp(330px, 34vw, 520px);
  padding: clamp(94px, 10vw, 170px) 24px clamp(14px, 2vw, 34px);
  overflow: hidden;
  background: #fff;
}

.home-logo-hero-mark {
  position: absolute;
  top: clamp(56px, 7vw, 116px);
  left: 50%;
  z-index: 1;
  width: var(--home-logo-mark-width);
  aspect-ratio: 5706 / 813;
  background: url("../assets/logo.png") center / contain no-repeat;
  content: "";
  transform: translateX(-50%);
}

.home-logo-hero-mark::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/logo.png") center / contain no-repeat;
  filter: invert(18%) sepia(42%) saturate(1325%) hue-rotate(337deg) brightness(86%) contrast(92%);
  opacity: 0;
  transform: translateX(2px);
  transition: opacity 260ms ease;
}

.home-logo-hero:hover .home-logo-hero-mark::after {
  opacity: 0.96;
}

.home-logo-hero-photo {
  position: relative;
  z-index: 2;
  width: var(--home-logo-photo-width);
  aspect-ratio: 4 / 5;
  min-height: 0;
  background-position: center;
  background-size: cover;
}

.home-logo-hero-photo.is-slideshow {
  background-image: none !important;
}

.home-logo-hero-slide {
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0;
  transition: opacity 1400ms ease;
}

.home-logo-hero-slide.is-active {
  opacity: 1;
}

.home-statement {
  display: grid;
  justify-items: center;
  width: min(980px, calc(100% - clamp(48px, 12vw, 220px)));
  margin: 0 auto;
  padding: clamp(46px, 4.5vw, 72px) 0;
  text-align: center;
}

.home-statement h1 {
  position: relative;
  display: grid;
  justify-items: center;
  margin: clamp(27px, 2.5vw, 41px) 0 0;
  color: #111;
  font-family: var(--serif);
  font-size: clamp(54px, 5.25vw, 104px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 0.82;
  text-transform: uppercase;
}

.home-statement h1 em {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: 0 -0.09em 0 0;
  font-family: var(--script);
  font-size: 0.68em;
  font-style: normal;
  font-weight: 400;
  line-height: 0;
  text-transform: none;
  transform: translateY(-0.06em) rotate(-4deg);
}

.home-statement-kicker,
.home-statement-subtitle {
  color: #111;
  font-family: var(--sans);
  font-size: clamp(9px, 0.76vw, 14px);
  font-weight: 400;
  letter-spacing: 0.58em;
  line-height: 1.6;
  text-transform: uppercase;
}

.home-statement-subtitle {
  margin-top: clamp(24px, 2vw, 33px);
  letter-spacing: 0.42em;
  text-transform: none;
}

.home-statement-copy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(38px, 4.5vw, 72px);
  width: min(760px, 100%);
  margin-top: clamp(32px, 2.8vw, 46px);
  text-align: left;
}

.home-statement-copy p {
  color: #111;
  font-family: var(--sans);
  font-size: clamp(12px, 0.82vw, 15px);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.75;
}

.home-statement-copy strong {
  font-weight: 600;
}

.home-gallery-feature {
  position: relative;
  width: 100%;
  padding: clamp(48px, 5vw, 86px) clamp(28px, 4.5vw, 76px) clamp(42px, 4vw, 70px);
}

.home-gallery-feature::before {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 1px;
  background: #111;
  content: "";
  transform: translateX(-50%);
}

.home-gallery-feature h2 {
  margin: 0 0 clamp(26px, 2.8vw, 44px);
  font-family: var(--serif);
  font-size: clamp(24px, 2.25vw, 41px);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1;
}

.home-gallery-feature h2 em {
  font-style: italic;
}

.gallery-feature-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(130px, 0.18fr);
  align-items: end;
  gap: clamp(16px, 1.55vw, 32px);
  width: 100%;
}

.gallery-feature-window {
  width: 100%;
  overflow: hidden;
}

.gallery-feature-track {
  display: flex;
  gap: clamp(16px, 1.55vw, 32px);
  width: max-content;
  transition: transform 700ms cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}

.gallery-feature-photo {
  flex: 0 0 clamp(220px, 21vw, 430px);
  height: auto;
  aspect-ratio: 2 / 3;
  min-height: 0;
  background-color: #e8e6e0;
  background-position: center;
}

.gallery-feature-photo--slim {
  flex-basis: clamp(220px, 21vw, 430px);
}

.gallery-feature-photo--wide {
  flex-basis: clamp(220px, 21vw, 430px);
}

.gallery-feature-list {
  align-self: end;
  display: grid;
  gap: clamp(12px, 1.4vw, 22px);
  padding-bottom: clamp(4px, 0.5vw, 8px);
}

.gallery-feature-list button,
.gallery-feature-actions a,
.gallery-feature-actions button,
.gallery-feature-all {
  color: #111;
  font-family: var(--sans);
  font-size: clamp(10px, 0.78vw, 14px);
  font-weight: 400;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
}

.gallery-feature-list button.is-active,
.gallery-feature-actions a,
.gallery-feature-actions button,
.gallery-feature-all {
  border-bottom: 1px solid currentColor;
}

.gallery-feature-list button {
  appearance: none;
  justify-self: start;
  padding: 0 0 2px;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.gallery-feature-actions button {
  appearance: none;
  padding: 0 0 2px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
}

.gallery-feature-actions button:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 5px;
}

.gallery-feature-actions {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  margin-top: clamp(18px, 1.8vw, 30px);
}

.gallery-feature-actions a:nth-child(2) {
  justify-self: center;
}

.gallery-feature-all {
  display: inline-flex;
  margin-top: clamp(34px, 3vw, 54px);
}

.home-testimonials {
  position: relative;
  display: grid;
  justify-items: center;
  width: 100%;
  min-height: clamp(448px, 36.8vw, 576px);
  padding: clamp(30px, 3vw, 51px) clamp(22px, 4vw, 70px) clamp(51px, 4vw, 74px);
  text-align: center;
}

.home-testimonials::before {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 1px;
  background: #111;
  content: "";
  transform: translateX(-50%);
}

.testimonials-kicker {
  margin: 0 0 clamp(27px, 2.4vw, 38px);
  font-family: var(--sans);
  font-size: clamp(10px, 0.78vw, 13px);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.4;
  text-transform: uppercase;
}

.testimonial-card {
  display: none;
  justify-items: center;
  width: min(690px, 82vw);
}

.testimonial-card.is-active {
  display: grid;
}

.testimonial-images {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 1.1vw, 24px);
  width: min(340px, 44vw);
  margin: 0 auto clamp(18px, 1.6vw, 27px);
}

.testimonial-photo {
  width: 100%;
  aspect-ratio: 3 / 4.5;
  background-color: #e6e2da;
}

.testimonial-card blockquote {
  margin: 0;
}

.testimonial-card blockquote p {
  max-width: 610px;
  margin: 0 auto clamp(18px, 1.55vw, 26px);
  font-family: var(--sans);
  font-size: clamp(11px, 0.74vw, 14px);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.45;
}

.testimonial-card cite {
  display: block;
  font-family: var(--serif);
  font-size: clamp(14px, 0.95vw, 18px);
  font-style: normal;
  font-weight: 400;
  line-height: 1.25;
}

.testimonial-controls {
  position: absolute;
  right: clamp(28px, 4vw, 70px);
  bottom: clamp(22px, 2.4vw, 40px);
  left: clamp(28px, 4vw, 70px);
  display: flex;
  justify-content: space-between;
  pointer-events: none;
}

.testimonial-controls button {
  pointer-events: auto;
  padding: 0 0 2px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(11px, 0.82vw, 14px);
  font-weight: 300;
  line-height: 1.2;
  cursor: pointer;
}

.home-enquire-section {
  position: relative;
  display: grid;
  grid-template-columns: minmax(360px, 1fr) minmax(460px, 0.78fr);
  align-items: center;
  gap: clamp(90px, 11vw, 190px);
  width: 100%;
  margin: 0 auto;
  min-height: clamp(620px, 43vw, 860px);
  padding: clamp(64px, 5.2vw, 94px) clamp(22px, 2.5vw, 42px) clamp(50px, 4vw, 76px);
}

.home-enquire-section::before,
.home-enquire-section::after {
  position: absolute;
  left: 50%;
  width: 100vw;
  height: 1px;
  background: #111;
  content: "";
  transform: translateX(-50%);
}

.home-enquire-section::before {
  top: 0;
}

.home-enquire-section::after {
  bottom: 0;
  z-index: 1;
}

.home-enquire-mini-nav {
  position: absolute;
  top: clamp(22px, 1.7vw, 32px);
  right: clamp(22px, 2.5vw, 42px);
  left: clamp(22px, 2.5vw, 42px);
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  pointer-events: none;
}

.home-enquire-mini-nav a {
  pointer-events: auto;
  border-bottom: 1px solid currentColor;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(9px, 0.7vw, 12px);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
}

.home-enquire-copy {
  align-self: center;
  justify-self: start;
  padding-bottom: 0;
  padding-left: clamp(20px, 2vw, 44px);
}

.home-enquire-copy h2 {
  max-width: 760px;
  margin: 0 0 clamp(38px, 3.3vw, 66px);
  font-family: var(--serif);
  font-size: clamp(31px, 2.73vw, 55px);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 0.98;
}

.home-enquire-copy a {
  display: inline-flex;
  align-items: center;
  gap: clamp(11px, 1.05vw, 20px);
  border-bottom: 1px solid currentColor;
  font-family: var(--sans);
  font-size: clamp(8px, 0.55vw, 10px);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.25;
  text-decoration: none;
  text-transform: uppercase;
}

.home-enquire-copy a span {
  font-size: clamp(12px, 0.84vw, 15px);
  line-height: 1;
}

.home-enquire-photo {
  justify-self: end;
  width: 100%;
  max-width: min(590px, 30vw);
  aspect-ratio: 4 / 5.1;
  min-height: 0;
  border: clamp(3px, 0.32vw, 6px) solid #111;
  background-color: #e9e6e0;
  box-sizing: border-box;
}

.home-redesign .photo {
  overflow: hidden;
  background-color: #050504;
  background-position: center;
  background-size: cover;
}

.home-redesign .photo::before,
.home-redesign .photo::after {
  display: none;
}

.home-editorial-cloud {
  position: relative;
  width: min(920px, calc(100vw - 52px));
  min-height: clamp(560px, 56vw, 850px);
  margin: 0 auto;
  padding: clamp(86px, 8vw, 130px) 0 clamp(82px, 7vw, 118px);
}

.cloud-image {
  position: absolute;
  background-color: #050504;
}

.cloud-image--one {
  top: clamp(72px, 7vw, 104px);
  left: 17%;
  width: clamp(78px, 8vw, 132px);
  height: clamp(160px, 17vw, 258px);
}

.cloud-image--two {
  top: clamp(48px, 5vw, 82px);
  right: 31%;
  width: clamp(74px, 7vw, 114px);
  height: clamp(145px, 14vw, 220px);
}

.cloud-image--three {
  top: clamp(238px, 24vw, 350px);
  right: 5%;
  width: clamp(96px, 9vw, 140px);
  height: clamp(175px, 18vw, 260px);
}

.cloud-image--four {
  left: 23%;
  bottom: clamp(96px, 8vw, 130px);
  width: clamp(128px, 13vw, 208px);
  height: clamp(78px, 8vw, 126px);
}

.cloud-copy {
  position: absolute;
  top: 45%;
  left: 50%;
  width: min(320px, 56vw);
  transform: translate(-50%, -50%);
  text-align: center;
}

.cloud-kicker,
.section-kicker,
.home-instagram-strip > p {
  color: #8c877f;
  font-family: var(--sans);
  font-size: clamp(8px, 0.62vw, 11px);
  font-weight: 300;
  letter-spacing: 0.36em;
  line-height: 1.7;
  text-transform: uppercase;
}

.cloud-copy h1,
.story-text h2,
.home-work-preview h2,
.about-band-copy h2 {
  color: #4d4943;
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: 0;
}

.cloud-copy h1 {
  margin: 10px 0 16px;
  font-size: clamp(28px, 3.1vw, 48px);
  line-height: 0.96;
  text-transform: uppercase;
}

.cloud-copy p:last-child,
.story-text p:last-child,
.about-band-copy p {
  color: #7d776f;
  font-family: var(--sans);
  font-size: clamp(8px, 0.62vw, 11px);
  font-weight: 300;
  letter-spacing: 0.075em;
  line-height: 1.65;
}

.home-entry-links {
  width: min(1163px, calc(100% - clamp(48px, 8vw, 140px)));
  margin: 0 auto;
  padding: clamp(58px, 7vw, 96px) 0 clamp(62px, 7vw, 104px);
}

.entry-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 34px);
  align-items: end;
}

.entry-photo {
  width: 100%;
  aspect-ratio: 2 / 3;
  min-height: 0;
}

.entry-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  margin: clamp(34px, 4vw, 58px) auto 0;
  text-align: center;
}

.entry-action {
  display: grid;
  justify-items: center;
}

.entry-action h2 {
  margin: 0 0 17px;
  color: #6a645e;
  font-family: var(--serif);
  font-size: clamp(14px, 1.16vw, 21px);
  font-weight: 400;
  letter-spacing: 0.07em;
  line-height: 1;
  text-transform: uppercase;
}

.entry-action a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(143px, 10.5vw, 188px);
  min-height: 36px;
  padding: 10px 18px;
  border: 1px solid #8d8882;
  color: #706b65;
  font-family: var(--serif);
  font-size: clamp(7px, 0.51vw, 9px);
  font-weight: 400;
  letter-spacing: 0.38em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
}

.home-editorial-story {
  display: grid;
  grid-template-columns: minmax(230px, 330px) minmax(310px, 460px);
  gap: clamp(72px, 9vw, 150px);
  align-items: center;
  width: min(960px, calc(100vw - 64px));
  margin: 0 auto;
  padding: clamp(58px, 7vw, 104px) 0 clamp(106px, 10vw, 166px);
}

.story-text {
  align-self: center;
}

.story-text h2 {
  margin: 22px 0 34px;
  font-size: clamp(28px, 3vw, 48px);
  line-height: 0.95;
  text-transform: uppercase;
}

.story-image {
  width: 100%;
  min-height: clamp(430px, 53vw, 720px);
}

.home-work-preview {
  width: min(980px, calc(100vw - 52px));
  margin: 0 auto;
  padding: 0 0 clamp(96px, 10vw, 160px);
  text-align: center;
}

.home-work-preview h2 {
  margin-bottom: clamp(42px, 5vw, 72px);
  color: #5a554e;
  font-size: clamp(24px, 2.4vw, 38px);
  line-height: 1;
  text-transform: none;
}

.work-mosaic {
  --work-gap: clamp(8px, 0.9vw, 14px);
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: start;
  gap: var(--work-gap);
  width: min(1120px, 86vw);
  margin: 0 auto;
}

.work-column {
  display: grid;
  gap: var(--work-gap);
  align-content: start;
}

.work-tile {
  width: 100%;
  min-height: 0;
}

.work-tile.is-vertical {
  aspect-ratio: 2 / 3;
}

.work-tile.is-horizontal {
  aspect-ratio: 3 / 2;
}

.home-work-preview .outline-button {
  min-width: 126px;
  min-height: 34px;
  margin-top: clamp(44px, 5vw, 76px);
  padding: 10px 15px;
  font-size: 7px;
  letter-spacing: 0.12em;
}

.home-about-band {
  background: #030303;
  color: #f5f1e9;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  padding: clamp(96px, 9vw, 150px) 0 clamp(96px, 8vw, 140px);
}

.about-band-inner {
  --about-side-gutter: clamp(24px, 5vw, 100px);
  display: grid;
  grid-template-columns: minmax(120px, 210px) minmax(250px, 380px) minmax(420px, 680px);
  gap: clamp(40px, 5vw, 82px);
  align-items: center;
  width: min(1400px, calc(100% - (2 * var(--about-side-gutter))));
  margin: 0 auto;
}

.about-band-signature {
  justify-self: start;
  color: #b99b7a;
  font-family: var(--serif);
  font-size: clamp(14px, 1.05vw, 18px);
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
}

.about-band-photo {
  width: 100%;
  aspect-ratio: 0.67;
  filter: grayscale(1) !important;
}

.about-band-copy {
  display: grid;
  align-content: center;
  min-height: clamp(330px, 32vw, 520px);
  max-width: 680px;
}

.about-band-copy h2 {
  margin: clamp(46px, 4.8vw, 72px) 0 20px;
  color: #f0ece4;
  font-size: clamp(30px, 2.3vw, 42px);
  font-style: italic;
  line-height: 0.95;
  text-transform: none;
}

.about-band-copy p {
  color: #b6b0a7;
  max-width: 680px;
}

.about-band-copy .section-kicker {
  color: #f0ece4;
  font-family: var(--serif);
  font-size: clamp(22px, 1.8vw, 32px);
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: none;
}

.about-band-copy .text-link {
  display: inline-flex;
  justify-self: start;
  align-items: center;
  gap: 8px;
  margin-top: clamp(36px, 5vw, 72px);
  color: #c9b79c;
  font-family: var(--sans);
  font-size: clamp(11px, 0.8vw, 14px);
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-transform: none;
}

@media (max-width: 1180px) {
  .about-band-inner {
    grid-template-columns: minmax(230px, 360px) minmax(380px, 1fr);
  }

  .about-band-signature {
    grid-column: 1 / -1;
    justify-self: center;
  }
}

@media (max-width: 820px) {
  .home-about-band {
    padding: 72px 0 82px;
  }

  .about-band-inner {
    --about-side-gutter: clamp(18px, 4vw, 44px);
  }

  .about-band-signature {
    justify-self: center;
  }

  .about-band-photo {
    width: 100%;
    max-width: none;
    justify-self: stretch;
  }

  .about-band-copy {
    min-height: 0;
    max-width: none;
  }

  .about-band-copy .text-link {
    justify-self: start;
  }
}

.home-instagram-strip {
  padding: clamp(70px, 8vw, 120px) 24px clamp(48px, 5vw, 78px);
  text-align: center;
}

.instagram-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(54px, 1fr));
  gap: 8px;
  width: min(1120px, 88vw);
  margin: 24px auto 18px;
}

.instagram-grid .photo {
  aspect-ratio: 1;
}

@media (max-width: 820px) {
  .home-editorial-cloud {
    min-height: 660px;
  }

  .home-statement {
    width: min(88vw, 720px);
    padding: 40px 0;
  }

  .home-statement h1 {
    margin-top: 17px;
    font-size: clamp(36px, 10vw, 64px);
    line-height: 0.84;
  }

  .home-statement-kicker,
  .home-statement-subtitle {
    font-size: 9px;
    letter-spacing: 0.32em;
  }

  .home-statement-subtitle {
    margin-top: 17px;
  }

  .home-statement-copy {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-top: 21px;
    text-align: center;
  }

  .home-statement-copy p {
    font-size: 12px;
    letter-spacing: 0.04em;
  }

  .home-logo-hero {
    --home-logo-photo-width: clamp(127px, 32vw, 207px);
    min-height: clamp(260px, 60vw, 420px);
    padding-top: clamp(78px, 18vw, 130px);
  }

  .home-logo-hero-mark {
    top: clamp(56px, 13vw, 92px);
    width: var(--home-logo-mark-width);
  }

  .home-logo-hero-photo {
    width: var(--home-logo-photo-width);
  }

  .home-gallery-feature {
    padding: 42px 22px 48px;
  }

  .home-gallery-feature h2 {
    font-size: clamp(23px, 5.7vw, 32px);
  }

  .gallery-feature-shell {
    display: block;
  }

  .gallery-feature-track {
    gap: 12px;
  }

  .gallery-feature-photo--slim,
  .gallery-feature-photo--wide {
    flex-basis: min(72vw, 280px);
    height: auto;
    aspect-ratio: 2 / 3;
  }

  .gallery-feature-list {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, max-content);
    justify-content: space-between;
    gap: 14px 22px;
    padding-top: 10px;
  }

  .gallery-feature-actions {
    gap: 16px;
  }

  .home-enquire-section {
    grid-template-columns: 1fr;
    gap: 38px;
    width: 100%;
    min-height: 0;
    padding: 78px 22px 56px;
  }

  .home-enquire-copy {
    align-self: auto;
    padding-left: 0;
  }

  .home-enquire-copy h2 {
    font-size: clamp(27px, 7vw, 41px);
  }

  .home-enquire-photo {
    justify-self: center;
    max-width: min(100%, 440px);
  }

  .home-testimonials {
    min-height: 0;
    padding: 34px 22px 59px;
  }

  .testimonial-card {
    width: min(100%, 560px);
  }

  .testimonial-images {
    width: min(76vw, 320px);
  }

  .testimonial-card blockquote p {
    max-width: min(88vw, 560px);
    font-size: 12px;
    line-height: 1.5;
  }

  .testimonial-card cite {
    font-size: 15px;
  }

  .testimonial-controls {
    right: 22px;
    bottom: 21px;
    left: 22px;
  }

  .cloud-image--one {
    left: 6%;
  }

  .cloud-image--two {
    right: 14%;
  }

  .cloud-image--three {
    right: 2%;
  }

  .cloud-image--four {
    left: 12%;
  }

  .home-editorial-story {
    grid-template-columns: 1fr;
    width: min(84vw, 560px);
    gap: 44px;
  }

  .home-entry-links {
    width: min(84vw, 675px);
  }

  .entry-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .entry-actions {
    width: 100%;
    gap: 30px;
  }

  .story-image {
    min-height: 520px;
  }

  .work-mosaic {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(84vw, 720px);
  }

  .instagram-grid {
    grid-template-columns: repeat(4, 1fr);
    width: min(84vw, 520px);
  }
}

@media (max-width: 620px) {
  .about-band-inner {
    grid-template-columns: 1fr;
    gap: 44px;
  }
}

@media (max-width: 520px) {
  .home-editorial-cloud {
    width: min(90vw, 420px);
    min-height: 590px;
  }

  .cloud-copy {
    width: min(280px, 72vw);
  }

  .work-mosaic {
    --work-gap: 6px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(92vw, 420px);
  }
}

.editorial-footer {
  position: relative;
  z-index: 230;
  display: block;
  width: 100%;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: 0 clamp(22px, 6vw, 92px) 0;
  background: #fff;
  color: #54514d;
  text-align: center;
}

.editorial-footer.footer-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 1200ms ease, transform 1200ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.editorial-footer.footer-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.editorial-footer.footer-reveal .footer-intro,
.editorial-footer.footer-reveal .footer-instagram-grid,
.editorial-footer.footer-reveal .footer-handle-row,
.editorial-footer.footer-reveal .footer-bottom {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 900ms ease, transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

.editorial-footer.footer-reveal.is-visible .footer-intro,
.editorial-footer.footer-reveal.is-visible .footer-instagram-grid,
.editorial-footer.footer-reveal.is-visible .footer-handle-row,
.editorial-footer.footer-reveal.is-visible .footer-bottom {
  opacity: 1;
  transform: translateY(0);
}

.editorial-footer.footer-reveal.is-visible .footer-intro { transition-delay: 80ms; }
.editorial-footer.footer-reveal.is-visible .footer-instagram-grid { transition-delay: 180ms; }
.editorial-footer.footer-reveal.is-visible .footer-handle-row { transition-delay: 300ms; }
.editorial-footer.footer-reveal.is-visible .footer-bottom { transition-delay: 400ms; }

@media (prefers-reduced-motion: reduce) {
  .editorial-footer.footer-reveal,
  .editorial-footer.footer-reveal .footer-intro,
  .editorial-footer.footer-reveal .footer-instagram-grid,
  .editorial-footer.footer-reveal .footer-handle-row,
  .editorial-footer.footer-reveal .footer-bottom {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.editorial-footer::before {
  content: none;
}

.footer-intro {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0 auto;
  padding: clamp(13px, 1.45vw, 21px) 0;
  text-align: center;
}

.footer-intro::before {
  content: "";
  display: none;
}

.editorial-footer .footer-kicker,
.editorial-footer .footer-intro-handle {
  margin: 0;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(7px, 0.52vw, 9px);
  font-weight: 300;
  letter-spacing: 0.34em;
  line-height: 1.5;
  text-align: center;
  text-transform: uppercase;
  width: 100%;
}

.editorial-footer .footer-intro-handle {
  margin-top: 2px;
}

.footer-instagram-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(4px, 0.45vw, 7px);
  box-sizing: border-box;
  width: min(520px, calc(100vw - clamp(44px, 10vw, 184px)));
  max-width: 520px;
  margin: 0 auto;
  padding: clamp(14px, 1.4vw, 22px) 0;
}

.footer-instagram-grid::before,
.footer-instagram-grid::after {
  position: absolute;
  left: 50%;
  width: 100vw;
  height: 1px;
  background: #111;
  content: "";
  transform: translateX(-50%);
}

.footer-instagram-grid::before {
  top: 0;
}

.footer-instagram-grid::after {
  bottom: 0;
}

.footer-instagram-grid .photo {
  width: 100%;
  aspect-ratio: 1;
  min-height: 0;
}

.footer-instagram-link {
  display: block;
  width: 100%;
  color: inherit;
  text-decoration: none;
}

.footer-instagram-link .photo {
  transition: opacity 240ms ease;
}

.footer-instagram-link:hover .photo,
.footer-instagram-link:focus-visible .photo {
  opacity: 0.82;
}

.editorial-footer .footer-intro-handle {
  display: block;
  text-decoration: none;
}

.footer-handle-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(22px, 3vw, 42px);
  margin: 0 auto;
  padding: clamp(10px, 1.15vw, 17px) 0;
}

.editorial-footer .footer-handle {
  display: inline-flex;
  margin: 0;
  color: #111;
  font-family: var(--sans);
  font-size: clamp(16px, 1.2vw, 21px);
  font-weight: 300;
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-decoration: none;
}

.footer-social-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 2.2vw, 32px);
  margin: 0;
}

.editorial-footer .footer-social-row a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: #111;
  font-family: Georgia, serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.footer-social-row svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}

.footer-social-row .footer-whatsapp svg {
  width: 18px;
  height: 18px;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.contact-whatsapp-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin-right: 7px;
  color: #111;
  vertical-align: middle;
  text-decoration: none;
  transition: color 180ms ease, transform 180ms ease;
}

.contact-email-link {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.contact-email-link:hover,
.contact-email-link:focus-visible {
  color: #a7654f;
}

.contact-whatsapp-button:hover,
.contact-whatsapp-button:focus-visible {
  color: #25d366;
  transform: translateY(-2px);
}

.contact-whatsapp-button svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.footer-bottom {
  position: relative;
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto minmax(60px, 1fr);
  align-items: center;
  gap: 28px;
  width: 100%;
  max-width: 1220px;
  margin: 0 auto;
  padding: clamp(25px, 2.7vw, 40px) 0;
}

.footer-bottom::before,
.footer-bottom::after {
  position: absolute;
  left: 50%;
  width: 100vw;
  height: 1px;
  background: #111;
  content: "";
  transform: translateX(-50%);
}

.footer-bottom::before {
  top: 0;
}

.footer-bottom::after {
  bottom: 0;
}

.editorial-footer .footer-bottom p {
  margin: 0;
  color: #111;
  font-family: var(--serif);
  font-size: clamp(10px, 0.72vw, 13px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.4;
  text-align: left;
}

.footer-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 3.6vw, 48px);
}

.editorial-footer .footer-nav a {
  display: inline-block;
  color: #111;
  font-family: var(--serif);
  font-size: clamp(7px, 0.54vw, 10px);
  font-weight: 400;
  letter-spacing: 0.28em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 180ms ease, transform 180ms ease;
}

.editorial-footer .footer-nav a:hover,
.editorial-footer .footer-nav a:focus-visible {
  color: #a7654f !important;
  transform: translateY(-5px);
}

.editorial-footer .footer-back-to-top {
  display: inline-flex;
  justify-self: end;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: #111;
  text-decoration: none;
}

.footer-back-to-top svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.contact-page main {
  background: #fff;
}

.contact-intro-section {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(260px, 1fr);
  align-items: center;
  gap: clamp(42px, 5.8vw, 92px);
  width: min(100%, 1280px);
  margin: 0 auto;
  padding: clamp(62px, 6.8vw, 112px) clamp(24px, 5.2vw, 82px);
  background: #fff;
}

.contact-intro-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  max-height: 720px;
  min-height: 0;
  background-position: center;
  background-size: cover;
}

.contact-intro-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  max-height: 720px;
  color: #111;
  text-align: center;
}

.contact-intro-copy h1 {
  margin: 0 0 clamp(18px, 2.1vw, 34px);
  color: #111;
  font-family: var(--serif);
  font-size: var(--site-title-size);
  font-weight: 400;
  letter-spacing: 0;
  line-height: var(--site-title-leading);
  text-transform: uppercase;
}

.contact-intro-copy p {
  max-width: 410px;
  margin: 0 0 clamp(14px, 1.55vw, 25px);
  color: #111;
  font-family: var(--sans);
  font-size: var(--site-body-size);
  font-weight: 300;
  letter-spacing: var(--site-body-tracking);
  line-height: 1.72;
}

.contact-intro-copy strong {
  color: #111;
  font-weight: 500;
}

.contact-intro-copy h2 {
  max-width: 430px;
  margin: clamp(10px, 1vw, 16px) 0 clamp(16px, 1.8vw, 28px);
  color: #111;
  font-family: var(--serif);
  font-size: clamp(26px, 2.35vw, 34px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.05;
}

.contact-faq-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: clamp(28px, 3.8vw, 62px);
  color: #111;
  font-family: var(--sans);
  font-size: var(--site-subtitle-size);
  font-weight: 400;
  letter-spacing: var(--site-subtitle-tracking);
  line-height: 1.2;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
  transition: color 180ms ease, transform 180ms ease;
}

.contact-faq-link:hover,
.contact-faq-link:focus-visible {
  color: #a7654f !important;
  transform: translateY(-5px);
}

.contact-script {
  margin-bottom: 0 !important;
  font-family: var(--script, cursive) !important;
  font-size: clamp(32px, 3.2vw, 52px) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
}

@media (max-width: 900px) {
  .contact-intro-section {
    grid-template-columns: 1fr;
    gap: 42px;
    padding: 62px 22px 76px;
  }

  .contact-intro-photo {
    width: min(100%, 620px);
    margin: 0 auto;
  }

  .contact-faq-link {
    margin-bottom: 64px;
  }
}

@media (max-width: 980px) {
  .footer-instagram-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: clamp(4px, 1vw, 8px);
    width: min(100%, calc(100vw - 32px));
  }

  .footer-bottom {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 14px;
    padding: 24px 0;
  }

  .editorial-footer .footer-bottom p {
    text-align: center;
  }

  .footer-nav {
    flex-wrap: wrap;
    row-gap: 14px;
  }

  .editorial-footer .footer-back-to-top {
    justify-self: center;
  }
}

@media (max-width: 560px) {
  .editorial-footer {
    padding-inline: 10px;
  }

  .footer-instagram-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: 4px;
    width: min(100%, calc(100vw - 20px));
    padding: 14px 0;
  }

  .footer-social-row {
    gap: 18px;
  }

  .footer-bottom {
    width: min(100%, 390px);
  }

  .footer-nav {
    gap: 18px;
  }
}

.home-redesign {
  --header-height: clamp(99px, 10.5vw, 141px);
}

.home-redesign .site-header {
  position: relative;
  top: 0;
  right: 0;
  left: 0;
  z-index: 240;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  column-gap: clamp(57px, 6vw, 112px);
  align-items: center;
  min-height: var(--header-height);
  padding: clamp(13px, 1.5vw, 22px) clamp(23px, 3.75vw, 57px);
  background: #fff;
  border-bottom: 1px solid #111;
  color: #111;
  margin-bottom: var(--header-gap);
  mix-blend-mode: normal;
}

.home-redesign .header-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(28px, 3vw, 58px);
  width: auto;
}

.home-redesign .header-nav--left {
  grid-column: 1;
  justify-self: end;
}

.home-redesign .header-nav--right {
  grid-column: 3;
  justify-self: start;
}

.home-redesign .header-nav a {
  position: relative;
  display: inline-block;
  color: #2d2b29;
  font-family: var(--serif);
  font-size: clamp(7px, 0.54vw, 10px);
  font-weight: 400;
  letter-spacing: 0.28em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 180ms ease, transform 180ms ease;
}

.home-redesign .header-nav a:hover,
.home-redesign .header-nav a:focus-visible {
  color: #a7654f;
  transform: translateY(-5px);
}

.home-redesign .header-nav a.is-active::after {
  position: absolute;
  right: -12px;
  bottom: -10px;
  left: 0;
  height: 1px;
  background: #111;
  content: "";
}

.home-redesign main {
  padding-top: 0;
}

.home-redesign .brand-mark,
.home-redesign.has-scrolled .brand-mark,
.home-redesign.menu-open .brand-mark {
  grid-column: 2;
  justify-self: center;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  color: #101010;
  opacity: 1;
  pointer-events: auto;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  visibility: visible;
}

.brand-title {
  display: block;
  font-family: var(--serif);
  font-size: clamp(17px, 1.69vw, 24px);
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 0.95;
  text-transform: uppercase;
}

.brand-subtitle {
  display: block;
  margin-top: 4px;
  color: #101010;
  font-family: var(--serif);
  font-size: clamp(5px, 0.44vw, 6px);
  font-weight: 500;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
}

.home-redesign .brand-logo {
  display: block;
  width: clamp(71px, 6.5vw, 118px);
  max-width: 100%;
  height: auto;
}

.home-redesign .menu-button {
  display: none;
}

@media (max-width: 900px) {
  .home-redesign {
    --header-height: 66px;
  }

  .home-redesign .site-header {
    grid-template-columns: 1fr auto 1fr;
    gap: 0;
  }

  .home-redesign .brand-mark,
  .home-redesign.has-scrolled .brand-mark,
  .home-redesign.menu-open .brand-mark {
    grid-column: 2;
    justify-self: center;
  }

  .home-redesign .header-nav {
    display: none;
  }

  .home-redesign .menu-button,
  .home-redesign.menu-open .menu-button {
    grid-column: 3;
    justify-self: end;
    display: flex;
    width: 48px;
    height: 42px;
    margin: 0;
    color: #696969;
    transform: none;
  }

  .home-redesign .menu-button span {
    width: 42px;
    height: 2px;
    background: currentColor;
  }

  .home-redesign.menu-open .menu-button span:first-child,
  .home-redesign.menu-open .menu-button span:last-child {
    width: 30px;
    height: 2px;
  }
}

@media (max-width: 700px) {
  .home-redesign {
    --header-height: 52px;
  }

  .home-redesign .site-header {
    padding: 10px 17px;
  }

  .brand-title {
    font-size: clamp(14px, 4.46vw, 20px);
  }

  .brand-subtitle {
    font-size: 5px;
  }

  .home-redesign .brand-logo {
    width: clamp(64px, 19.5vw, 84px);
  }

  .home-redesign .menu-button,
  .home-redesign.menu-open .menu-button {
    width: 42px;
  }

  .home-redesign .menu-button span {
    width: 36px;
  }
}

.home-redesign :where(h1, h2, h3, h4, h5, h6, p, a, span, li, button, label, small, strong, em) {
  color: #111 !important;
}

.home-redesign :where(svg, path, rect, circle) {
  color: #111 !important;
  stroke: #111 !important;
}

.home-redesign .header-nav a:hover,
.home-redesign .header-nav a:focus-visible,
.home-redesign .footer-nav a:hover,
.home-redesign .footer-nav a:focus-visible {
  color: #a7654f !important;
}

.home-redesign.menu-open .menu-overlay a,
.home-redesign .menu-overlay a {
  color: #fff !important;
}

.home-redesign.menu-open .menu-overlay a:hover,
.home-redesign.menu-open .menu-overlay a:focus-visible,
.home-redesign .menu-overlay a:hover,
.home-redesign .menu-overlay a:focus-visible {
  color: #a7654f !important;
}

@media (max-width: 900px) {
  /* Header: centered logo with MENU and CONTACT anchors */
  .home-redesign .site-header {
    position: relative;
    grid-template-columns: 1fr auto 1fr;
  }

  .home-redesign .brand-mark,
  .home-redesign.has-scrolled .brand-mark,
  .home-redesign.menu-open .brand-mark {
    position: absolute;
    top: 50%;
    left: clamp(19px, 3vw, 31px);
    grid-column: auto;
    justify-self: auto;
    transform: translateY(-50%);
  }

  .home-redesign .header-nav--left {
    display: none !important;
  }

  .home-redesign .header-nav--right {
    position: absolute;
    top: 50%;
    right: clamp(19px, 3vw, 31px);
    display: block !important;
    width: 68px;
    height: 20px;
    transform: translateY(-50%);
  }

  .home-redesign .header-nav--right a:not(:first-child) {
    display: none !important;
  }

  .home-redesign .header-nav--right a:first-child {
    position: relative;
    display: block !important;
    width: 68px;
    height: 20px;
    min-width: 68px;
    padding-bottom: 9px;
    color: #111 !important;
    font-family: var(--sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.02em;
    line-height: 1;
    text-align: left;
    text-transform: uppercase;
  }

  .home-redesign .header-nav--right a:first-child::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 68px;
    height: 1px;
    background: currentColor;
    content: "";
  }

  .home-redesign .menu-button,
  .home-redesign.menu-open .menu-button {
    position: absolute;
    top: 50%;
    right: clamp(112px, 15vw, 148px);
    left: auto;
    display: block !important;
    width: 68px;
    height: 20px;
    min-width: 68px;
    margin: 0;
    padding: 0 0 9px;
    border: 0;
    color: #111;
    background: transparent;
    font-family: var(--sans);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.02em;
    line-height: 1;
    text-align: left;
    text-transform: uppercase;
    transform: translateY(-50%);
  }

  .home-redesign .menu-button::before {
    content: "MENU";
  }

  .home-redesign .menu-button::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 68px;
    height: 1px;
    background: currentColor;
    content: "";
  }

  .home-redesign .menu-button span {
    display: none !important;
  }

  .home-redesign .menu-button:hover,
  .home-redesign .menu-button:focus-visible,
  .home-redesign .header-nav--right a:first-child:hover,
  .home-redesign .header-nav--right a:first-child:focus-visible {
    color: #a7654f !important;
  }

  .home-redesign .menu-button:hover,
  .home-redesign .menu-button:focus-visible {
    transform: translateY(calc(-50% - 5px));
  }
}

.home-redesign :where(
  .header-nav a,
  .footer-nav a,
  .menu-nav a,
  .hero-arrow,
  .gallery-feature-list button,
  .gallery-feature-actions a,
  .gallery-feature-actions button,
  .gallery-feature-all,
  .testimonial-controls button,
  .home-enquire-copy a,
  .outline-button,
  .dark-button,
  .light-button,
  .italy-outline-button,
  .italy-dark-button
) {
  transition:
    color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease;
}

.home-redesign :where(
  .header-nav a,
  .footer-nav a,
  .menu-nav a,
  .hero-arrow,
  .gallery-feature-list button,
  .gallery-feature-actions a,
  .gallery-feature-actions button,
  .gallery-feature-all,
  .testimonial-controls button,
  .home-enquire-copy a,
  .outline-button,
  .dark-button,
  .light-button,
  .italy-outline-button,
  .italy-dark-button
):where(:hover, :focus-visible) {
  color: #a7654f !important;
  border-color: #a7654f !important;
  transform: translateY(-5px);
}

.work-redesign-main {
  width: 100%;
  padding-top: var(--header-height, 88px);
  background: #fff;
}

.work-redesign-hero {
  display: grid;
  justify-items: center;
  width: min(980px, calc(100% - clamp(48px, 12vw, 220px)));
  margin: 0 auto;
  padding: clamp(92px, 8vw, 146px) 0 clamp(58px, 5vw, 88px);
  text-align: center;
}

.work-redesign-hero p {
  margin: 0 0 clamp(30px, 2.8vw, 48px);
  font-family: var(--sans);
  font-size: clamp(9px, 0.72vw, 13px);
  font-weight: 400;
  letter-spacing: 0.56em;
  line-height: 1.4;
  text-transform: uppercase;
}

.work-redesign-hero h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(58px, 6.8vw, 132px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 0.9;
  text-transform: uppercase;
}

.work-redesign-hero--portfolio {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(900px, calc(100% - clamp(42px, 12vw, 220px)));
  padding: clamp(110px, 10vw, 184px) 0 clamp(84px, 7vw, 128px);
  text-align: center;
}

.work-redesign-hero--portfolio h1 {
  order: 1;
  margin: 0;
  font-size: 30px;
  line-height: 1;
  text-transform: none;
}

.work-redesign-hero--portfolio .work-redesign-overline {
  order: 2;
  margin: clamp(34px, 3vw, 52px) 0 0;
  font-family: var(--sans);
  font-size: clamp(14px, 1vw, 18px);
  font-weight: 300;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-transform: uppercase;
}

.work-redesign-hero--portfolio .work-redesign-intro {
  order: 3;
  max-width: 820px;
  margin: clamp(44px, 4vw, 68px) auto 0;
  font-family: var(--sans);
  font-size: clamp(17px, 1.18vw, 22px);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.45;
  text-transform: none;
}

.work-photo-mosaic {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: clamp(18px, 2.2vw, 42px);
  width: min(1500px, calc(100% - clamp(48px, 7vw, 130px)));
  margin: 0 auto;
  padding: 0 0 clamp(76px, 7vw, 132px);
}

.work-mosaic-photo {
  display: block;
  width: 100%;
  background-color: #e8e6e0;
  background-position: center;
}

.work-mosaic-photo--landscape {
  aspect-ratio: 3 / 2;
}

.work-mosaic-photo--portrait {
  aspect-ratio: 2 / 3;
}

.work-mosaic-photo--square {
  aspect-ratio: 1 / 1;
}

.work-mosaic-photo--one {
  grid-column: 2 / span 3;
  margin-top: clamp(26px, 5vw, 86px);
}

.work-mosaic-photo--two {
  grid-column: 6 / span 5;
}

.work-mosaic-photo--three {
  grid-column: 10 / span 3;
  margin-top: clamp(82px, 9vw, 160px);
}

.work-mosaic-photo--four {
  grid-column: 1 / span 5;
  margin-top: clamp(10px, 2.4vw, 44px);
}

.work-mosaic-photo--five {
  grid-column: 7 / span 3;
  margin-top: clamp(48px, 6vw, 112px);
}

.work-mosaic-photo--six {
  grid-column: 10 / span 3;
  margin-top: clamp(12px, 3vw, 58px);
}

.work-mosaic-photo--seven {
  grid-column: 3 / span 4;
  margin-top: clamp(48px, 6vw, 112px);
}

.work-mosaic-photo--eight {
  grid-column: 8 / span 3;
}

.work-mosaic-photo--nine {
  grid-column: 1 / span 4;
  margin-top: clamp(18px, 4vw, 76px);
}

.work-mosaic-photo--ten {
  grid-column: 6 / span 3;
  margin-top: clamp(72px, 8vw, 140px);
}

.work-mosaic-photo--eleven {
  grid-column: 9 / span 4;
  margin-top: clamp(18px, 3vw, 64px);
}

.work-mosaic-photo--twelve {
  grid-column: 4 / span 3;
  margin-top: clamp(40px, 6vw, 110px);
}

.work-mosaic-photo--thirteen {
  grid-column: 8 / span 5;
  margin-top: clamp(20px, 4vw, 76px);
}

.work-mosaic-photo--fourteen {
  grid-column: 1 / span 3;
  margin-top: clamp(30px, 5vw, 94px);
}

.work-mosaic-photo--fifteen {
  grid-column: 4 / span 4;
  margin-top: clamp(88px, 10vw, 178px);
}

.work-mosaic-photo--sixteen {
  grid-column: 9 / span 3;
  margin-top: clamp(8px, 2vw, 42px);
}

.work-mosaic-photo--seventeen {
  grid-column: 2 / span 5;
  margin-top: clamp(12px, 3vw, 58px);
}

.work-mosaic-photo--eighteen {
  grid-column: 8 / span 3;
  margin-top: clamp(62px, 7vw, 132px);
}

.work-redesign-gallery {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 36px);
  width: min(1480px, calc(100% - clamp(48px, 8vw, 150px)));
  margin: 0 auto;
  padding: clamp(54px, 5vw, 92px) 0 clamp(78px, 7vw, 128px);
}

.work-redesign-gallery::before {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 1px;
  background: #111;
  content: "";
  transform: translateX(-50%);
}

.work-redesign-card {
  display: grid;
  gap: clamp(14px, 1.4vw, 24px);
  color: #111;
  text-decoration: none;
}

.work-redesign-photo {
  display: block;
  width: 100%;
  aspect-ratio: 2 / 3;
  background-color: #e8e6e0;
  transition: filter 260ms ease, transform 260ms ease;
}

.work-redesign-card span:last-child {
  display: inline-block;
  justify-self: start;
  padding-bottom: 3px;
  border-bottom: 1px solid currentColor;
  font-family: var(--sans);
  font-size: clamp(11px, 0.86vw, 15px);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-transform: uppercase;
  transition: color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.work-redesign-card:hover .work-redesign-photo,
.work-redesign-card:focus-visible .work-redesign-photo {
  filter: grayscale(1);
  transform: translateY(-5px);
}

.work-redesign-card:hover span:last-child,
.work-redesign-card:focus-visible span:last-child {
  color: #a7654f !important;
  border-color: #a7654f;
  transform: translateY(-5px);
}

/* Site typography scale. Keep new sections on this system. */
:root {
  --site-title-size: 40px;
  --site-section-title-size: 40px;
  --site-subtitle-size: 10px;
  --site-body-size: 10px;
  --site-small-size: clamp(9px, 0.66vw, 12px);
  --site-title-leading: 0.96;
  --site-section-leading: 1.02;
  --site-body-leading: 1.58;
  --site-subtitle-tracking: 0.34em;
  --site-body-tracking: 0.035em;
}

body:not(.admin-page) main :where(h1) {
  font-family: var(--serif);
  font-size: var(--site-title-size);
  font-weight: 400;
  letter-spacing: 0;
  line-height: var(--site-title-leading);
}

body:not(.admin-page) main :where(h2) {
  font-family: var(--serif);
  font-size: var(--site-section-title-size);
  font-weight: 400;
  letter-spacing: 0;
  line-height: var(--site-section-leading);
}

body:not(.admin-page) main :where(p, li, blockquote p) {
  font-family: var(--sans);
  font-size: var(--site-body-size);
  font-weight: 400;
  letter-spacing: var(--site-body-tracking);
  line-height: var(--site-body-leading);
}

body:not(.admin-page) main :where(
  .overline,
  .section-kicker,
  .journey-kicker,
  .testimonials-kicker,
  .home-statement-kicker,
  .home-statement-subtitle,
  .work-redesign-overline,
  .work-redesign-hero > p:first-child
) {
  font-family: var(--sans);
  font-size: var(--site-subtitle-size);
  font-weight: 300;
  letter-spacing: var(--site-subtitle-tracking);
  line-height: 1.45;
  text-transform: uppercase;
}

.work-redesign-hero--portfolio .work-redesign-overline {
  font-weight: 300 !important;
}

.home-statement h1,
.work-redesign-hero h1,
.work-redesign-hero--portfolio h1,
.portfolio-hero h1,
.story-detail-hero h1,
.experience-hero-copy h1 {
  font-size: var(--site-title-size) !important;
}

.home-gallery-feature h2,
.home-enquire-copy h2,
.cloud-copy h1,
.about-band-copy h2,
.about-copy h2,
.editorial-copy h2,
.destination-copy h2,
.consultation-copy h2,
.keys-section h2 {
  font-size: var(--site-section-title-size) !important;
}

.home-statement-copy p,
.testimonial-card blockquote p,
.work-redesign-hero--portfolio .work-redesign-intro,
.story-copy p,
.intro-copy p,
.about-copy p:not(.overline),
.editorial-copy p:not(.overline),
.destination-copy p,
.consultation-copy p:not(.overline) {
  font-size: var(--site-body-size) !important;
  line-height: var(--site-body-leading);
}

.home-statement h1 em {
  font-size: 0.68em;
}

.work-redesign-card span:last-child,
.gallery-feature-list button,
.gallery-feature-actions a,
.gallery-feature-actions button,
.gallery-feature-all,
.testimonial-controls button,
.home-enquire-copy a {
  font-size: var(--site-small-size);
}

@media (max-width: 980px) {
  .work-photo-mosaic {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    width: min(100% - 36px, 860px);
  }

  .work-mosaic-photo--one,
  .work-mosaic-photo--five,
  .work-mosaic-photo--eight,
  .work-mosaic-photo--ten,
  .work-mosaic-photo--twelve {
    grid-column: span 3;
    margin-top: 0;
  }

  .work-mosaic-photo--two,
  .work-mosaic-photo--four,
  .work-mosaic-photo--six,
  .work-mosaic-photo--seven,
  .work-mosaic-photo--nine,
  .work-mosaic-photo--eleven,
  .work-mosaic-photo--thirteen,
  .work-mosaic-photo--fifteen,
  .work-mosaic-photo--seventeen {
    grid-column: span 6;
    margin-top: 0;
  }

  .work-mosaic-photo--three,
  .work-mosaic-photo--fourteen,
  .work-mosaic-photo--sixteen,
  .work-mosaic-photo--eighteen {
    grid-column: span 3;
    margin-top: clamp(28px, 5vw, 56px);
  }

  .work-redesign-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(100% - 36px, 760px);
  }
}

@media (max-width: 640px) {
  .work-redesign-hero {
    width: min(88vw, 560px);
    padding: 62px 0 42px;
  }

  .work-redesign-hero p {
    letter-spacing: 0.32em;
  }

  .work-redesign-hero h1 {
    font-size: clamp(42px, 16vw, 78px);
  }

  .work-redesign-hero--portfolio {
    padding: 72px 0 58px;
  }

  .work-redesign-hero--portfolio h1 {
    font-size: 30px;
  }

  .work-redesign-hero--portfolio .work-redesign-overline {
    margin-top: 26px;
    font-size: 13px;
  }

  .work-redesign-hero--portfolio .work-redesign-intro {
    margin-top: 30px;
    font-size: 16px;
    line-height: 1.42;
  }

  .work-redesign-gallery {
    grid-template-columns: 1fr;
    width: min(100% - 34px, 420px);
    padding: 34px 0 62px;
  }

  .work-photo-mosaic {
    grid-template-columns: 1fr;
    width: min(100% - 34px, 520px);
    padding-bottom: 42px;
  }

  .work-mosaic-photo,
  .work-mosaic-photo--one,
  .work-mosaic-photo--two,
  .work-mosaic-photo--three,
  .work-mosaic-photo--four,
  .work-mosaic-photo--five,
  .work-mosaic-photo--six,
  .work-mosaic-photo--seven,
  .work-mosaic-photo--eight,
  .work-mosaic-photo--nine,
  .work-mosaic-photo--ten,
  .work-mosaic-photo--eleven,
  .work-mosaic-photo--twelve,
  .work-mosaic-photo--thirteen,
  .work-mosaic-photo--fourteen,
  .work-mosaic-photo--fifteen,
  .work-mosaic-photo--sixteen,
  .work-mosaic-photo--seventeen,
  .work-mosaic-photo--eighteen {
    grid-column: 1;
    margin-top: 0;
  }
}

@media (max-width: 640px) {
  :root {
    --site-title-size: 40px;
    --site-section-title-size: 40px;
    --site-subtitle-size: 10px;
    --site-body-size: 10px;
    --site-small-size: 10px;
    --site-subtitle-tracking: 0.28em;
    --site-body-tracking: 0.025em;
  }
}

/* Typography system: title, subtitle and text. Header menu keeps its own sizing. */
body:not(.admin-page) :where(main, footer) :where(p, li, blockquote p, cite, .type-text) {
  font-family: var(--sans);
  font-size: var(--site-body-size) !important;
  font-weight: 400;
  letter-spacing: var(--site-body-tracking);
  line-height: var(--site-body-leading) !important;
}

body:not(.admin-page) :where(main, footer) :where(
  h1,
  h2,
  h3,
  .type-title,
  .home-statement h1,
  .work-redesign-hero h1,
  .work-redesign-hero--portfolio h1,
  .portfolio-hero h1,
  .story-detail-hero h1,
  .experience-hero-copy h1,
  .home-gallery-feature h2,
  .home-enquire-copy h2,
  .cloud-copy h1,
  .about-band-copy h2,
  .about-copy h2,
  .editorial-copy h2,
  .destination-copy h2,
  .consultation-copy h2,
  .keys-section h2
) {
  font-family: var(--serif);
  font-size: var(--site-title-size) !important;
  font-weight: 400;
  letter-spacing: 0;
  line-height: var(--site-title-leading) !important;
}

body:not(.admin-page) :where(main, footer) :where(
  .type-subtitle,
  .overline,
  .section-kicker,
  .journey-kicker,
  .testimonials-kicker,
  .home-statement-kicker,
  .home-statement-subtitle,
  .work-redesign-overline,
  .work-redesign-hero > p:first-child,
  .portfolio-hero p:first-child,
  .story-detail-hero .overline,
  .italy-overline,
  .italy-choice-number,
  .ef-script,
  .footer-kicker,
  .footer-intro-handle,
  .footer-handle
) {
  font-family: var(--sans);
  font-size: var(--site-subtitle-size) !important;
  font-weight: 300 !important;
  letter-spacing: var(--site-subtitle-tracking) !important;
  line-height: 1.45 !important;
  text-transform: uppercase;
}

body.contact-page main .contact-script {
  font-family: var(--script, cursive) !important;
  font-size: clamp(32px, 3.2vw, 52px) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
  text-transform: none;
}

body.contact-page main .contact-intro-copy h1 {
  font-size: clamp(34px, 3.5vw, 58px) !important;
  line-height: 1.02 !important;
}

body.contact-page main .contact-intro-copy h2 {
  font-size: clamp(28px, 2.6vw, 42px) !important;
  line-height: 1.08 !important;
}

body.contact-page main .contact-intro-copy {
  width: 100%;
}

body.contact-page main .contact-intro-copy > p {
  width: min(100%, 560px);
  max-width: 560px;
}

body.contact-page main .contact-welcome {
  margin-bottom: clamp(18px, 2vw, 28px);
}

body.contact-page main .contact-message {
  margin-bottom: clamp(24px, 2.8vw, 40px);
}

.contact-methods {
  display: grid;
  width: min(100%, 540px);
  margin: 0 auto clamp(34px, 4vw, 58px);
  border-top: 1px solid #d8d5d1;
}

.contact-methods > a {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  padding: 13px 4px;
  border-bottom: 1px solid #d8d5d1;
  color: #111;
  text-align: left;
  text-decoration: none;
  transition: color 180ms ease, padding-left 180ms ease;
}

.contact-methods > a:hover,
.contact-methods > a:focus-visible {
  padding-left: 9px;
  color: #a7654f;
}

.contact-methods span {
  font-family: var(--sans);
  font-size: 9px;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.contact-methods strong {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  font-family: var(--sans);
  font-size: var(--site-body-size);
  font-weight: 500;
  letter-spacing: var(--site-body-tracking);
  overflow-wrap: anywhere;
}

.contact-methods svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 560px) {
  .contact-methods > a {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 10px;
  }
}
