/* ========================================================================
   EIGHT EIGHTEEN STUDIOS | GLOBAL DESIGN TOKENS
   Replace demo imagery in assets and tune the five colors here.
   ======================================================================== */
:root {
  --evergreen: #0b241b;
  --ink: #101211;
  --porcelain: #f8f7f2;
  --stone: #d8d4cb;
  --sage: #68786d;
  --serif: "EB Garamond", Georgia, serif;
  --sans: Inter, Arial, sans-serif;
  --content: 1220px;
  --gutter: clamp(22px, 5.4vw, 88px);
  --space: clamp(76px, 9vw, 156px);
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}
body {
  margin: 0;
  background: var(--porcelain);
  color: var(--ink);
  font: 400 15px/1.75 var(--sans);
  -webkit-font-smoothing: antialiased;
}
button,
input,
textarea,
select {
  font: inherit;
}
button {
  cursor: pointer;
}
a {
  color: inherit;
}
img {
  max-width: 100%;
}
p {
  margin: 0 0 1.3em;
}
h1,
h2,
h3 {
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -0.027em;
  margin: 0 0 0.42em;
}
h1 {
  font-size: clamp(4.35rem, 8vw, 9.2rem);
}
h2 {
  font-size: clamp(3.25rem, 5.9vw, 6.5rem);
}
h3 {
  font-size: clamp(1.7rem, 2.5vw, 2.45rem);
}
em {
  font-weight: 400;
}
::selection {
  background: var(--sage);
  color: white;
}
:focus-visible {
  outline: 2px solid #a8b6a8;
  outline-offset: 4px;
}
.container {
  max-width: calc(var(--content) + 2 * var(--gutter));
  padding-inline: var(--gutter);
  margin-inline: auto;
}
.narrow {
  max-width: 810px;
}
.section {
  padding-block: var(--space);
}
.section-dark {
  background: var(--evergreen);
  color: var(--porcelain);
}
.soft-section {
  background: #ebe9e2;
}
.eyebrow {
  font: 500 10px/1.4 var(--sans);
  text-transform: uppercase;
  letter-spacing: 0.21em;
  margin: 0 0 25px;
  color: var(--sage);
}
.section-dark .eyebrow,
.site-footer .eyebrow {
  color: #bfcabf;
}
.rule {
  height: 1px;
  width: 46px;
  background: var(--sage);
  margin: 30px 0;
}
.center {
  text-align: center;
}
.small-note {
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.02em;
  opacity: 0.68;
}
.text-link {
  display: inline-flex;
  gap: 17px;
  align-items: center;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.15em;
  font-size: 11px;
  font-weight: 500;
  border-bottom: 1px solid currentColor;
  padding-bottom: 7px;
  margin-top: 13px;
  transition:
    gap 0.2s,
    color 0.2s;
}
.text-link:hover {
  gap: 25px;
  color: var(--sage);
}
.light-link {
  color: var(--porcelain);
}
.button {
  min-height: 49px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 14px 27px;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-size: 10px;
  line-height: 1.3;
  font-weight: 600;
  transition:
    background 0.25s,
    color 0.25s,
    border-color 0.25s,
    transform 0.25s;
}
.button:hover {
  transform: translateY(-2px);
}
.button-dark {
  background: var(--evergreen);
  color: var(--porcelain);
  border-color: var(--evergreen);
}
.button-dark:hover {
  background: #17382b;
}
.button-light {
  background: var(--porcelain);
  color: var(--evergreen);
  border-color: var(--porcelain);
}
.button-outline {
  border-color: var(--sage);
  color: var(--ink);
}
.button-outline:hover {
  background: var(--evergreen);
  color: white;
}
.skip-link {
  position: absolute;
  z-index: 1000;
  top: -100px;
  left: 12px;
  padding: 10px;
  background: white;
  color: black;
}
.skip-link:focus {
  top: 10px;
}
/* ========================================================================
   HEADER, NAVIGATION AND FOOTER
   ======================================================================== */
.site-header {
  height: 84px;
  background: var(--evergreen);
  color: var(--porcelain);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 var(--gutter);
  position: relative;
  z-index: 30;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
  color: var(--porcelain);
}
.brand img {
  display: block;
  object-fit: contain;
}
.brand span {
  font: 400 19px/0.9 var(--serif);
  letter-spacing: 0.045em;
  text-transform: uppercase;
  max-width: 300px;
}
.primary-nav {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 50px);
}
.primary-nav a {
  text-decoration: none;
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 0.16em;
  position: relative;
  white-space: nowrap;
}
.primary-nav a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 0;
  height: 1px;
  background: var(--stone);
  transition: width 0.25s;
}
.primary-nav a:hover::after,
.primary-nav a[aria-current]::after {
  width: 100%;
}
.primary-nav .nav-cta {
  border: 1px solid var(--stone);
  padding: 13px 19px;
  transition:
    background 0.2s,
    color 0.2s;
}
.primary-nav .nav-cta:hover,
.primary-nav .nav-cta[aria-current] {
  background: var(--porcelain);
  color: var(--evergreen);
}
.menu-toggle {
  display: none;
}
.site-footer {
  background: var(--evergreen);
  color: var(--porcelain);
  padding-top: 83px;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.45fr 0.65fr 1fr 1fr;
  gap: clamp(22px, 4vw, 70px);
  padding-bottom: 76px;
}
.footer-top p {
  color: #c8cdc4;
  font-size: 12px;
  line-height: 1.9;
  margin-top: 20px;
}
.footer-top nav a,
.footer-top > div > a:not(.brand) {
  display: block;
  font-size: 12px;
  text-decoration: none;
  margin: 6px 0;
}
.footer-top a:hover {
  text-decoration: underline;
}
.footer-top .footer-inquire {
  font: 400 clamp(24px, 2.8vw, 38px)/1.1 var(--serif) !important;
  max-width: 240px;
}
.footer-bottom {
  border-top: 1px solid #ffffff30;
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding-block: 21px;
  color: #bfc6bc;
  font-size: 10px;
  letter-spacing: 0.08em;
}
.footer-bottom a {
  text-decoration: none;
}
/* ========================================================================
   INDIVIDUAL PHOTO PLACEMENTS
   Every --photo-image URL is defined on its own HTML element. Find every
   placement by its PHOTO SLOT comment or PHOTO_PLACEMENT_GUIDE.md.
   ======================================================================== */
.media {
  display: block;
  overflow: hidden;
  position: relative;
  background-color: var(--stone);
}
.photo-slot {
  background-image: var(--photo-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.media.tall {
  min-height: 560px;
}
.media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(8, 20, 15, 0.1), transparent 48%);
  pointer-events: none;
}
.hero {
  /* One shared height for Home and all five primary page heroes. */
  min-height: clamp(560px, calc(100svh - 84px), 760px);
  position: relative;
  color: #fff;
  display: flex;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
  background: var(--ink);
}
.hero-photo {
  background-image:
    linear-gradient(
      90deg,
      rgba(9, 16, 13, 0.73),
      rgba(11, 23, 17, 0.31) 55%,
      rgba(8, 16, 13, 0.06)
    ),
    var(--photo-image);
  background-size: cover;
  background-position: center 47%;
}
.hero-inner {
  width: 100%;
  padding-block: 80px;
  position: relative;
  z-index: 2;
}
.hero .eyebrow {
  color: #eeeae1;
}
.hero h1 {
  max-width: 820px;
  text-shadow: 0 2px 22px #0002;
}
.hero h1 em {
  display: inline-block;
}
.hero-sub {
  max-width: 460px;
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.7;
  color: #f4f1e9;
}
.hero-actions {
  display: flex;
  gap: 12px;
  margin-top: 36px;
  flex-wrap: wrap;
}
.hero-credit {
  position: absolute;
  bottom: 15px;
  right: var(--gutter);
  z-index: 3;
  font-size: 8px;
  letter-spacing: 0.14em;
  color: #fff9;
}
.subpage-hero {
  /* Inherits the shared .hero height at every breakpoint. */
}
.subpage-hero h1 {
  font-size: clamp(4.4rem, 8vw, 8.6rem);
  max-width: 850px;
}
.subpage-hero .hero-inner {
  padding-block: 80px;
}
.subpage-hero .hero-sub {
  font-size: clamp(16px, 1.5vw, 20px);
}
.closing-cta {
  position: relative;
  isolation: isolate;
  text-align: center;
  padding: clamp(95px, 12vw, 170px) 0;
  background:
    linear-gradient(90deg, #ebece8eb, #f8f7f2b0, #e1e5e2cc),
    var(--photo-image) center 62% / cover;
}
.closing-inner {
  max-width: 850px;
}
.closing-cta h2 {
  font-size: clamp(3.4rem, 6.3vw, 7.4rem);
}
.closing-cta p:not(.eyebrow) {
  max-width: 450px;
  margin: 0 auto 27px;
}
/* ========================================================================
   HOME PAGE
   ======================================================================== */
.intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(50px, 9vw, 150px);
  align-items: center;
}
.image-stack {
  position: relative;
  max-width: 510px;
  margin-left: 6%;
}
.image-stack .tall {
  aspect-ratio: 4/5;
}
.image-stack::after {
  content: "";
  position: absolute;
  bottom: -25px;
  left: -30px;
  width: 150px;
  height: 170px;
  background: url("assets/botanical.svg") center/contain no-repeat;
  opacity: 0.75;
  pointer-events: none;
}
.image-stamp {
  display: block;
  font-size: 10px;
  letter-spacing: 0.15em;
  color: var(--sage);
  margin-top: 14px;
}
.intro-copy {
  max-width: 530px;
}
.intro-copy h2 {
  font-size: clamp(3.4rem, 5vw, 5.8rem);
}
.intro-copy > p:not(.eyebrow) {
  max-width: 480px;
}
.section-heading {
  margin-bottom: 46px;
}
.section-heading.center {
  max-width: 840px;
  margin: 0 auto 55px;
}
.section-heading.center p:last-child {
  max-width: 520px;
  margin-inline: auto;
}
.heading-split {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
}
.film-teaser-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 19px;
}
.film-tile {
  text-decoration: none;
  min-width: 0;
}
.film-tile .media {
  height: clamp(235px, 29vw, 395px);
  transition:
    filter 0.3s,
    transform 0.5s;
}
.film-tile:hover .media {
  filter: brightness(0.81);
  transform: scale(1.012);
}
.film-tile-caption {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 18px;
}
.film-tile-caption small {
  font-size: 9px;
  letter-spacing: 0.18em;
  color: #c1cbbf;
}
.film-tile-caption strong {
  font: 400 clamp(24px, 2.5vw, 35px)/1.1 var(--serif);
}
.films-teaser .small-note {
  margin: 25px 0 0;
}
.manifesto {
  background: var(--ink);
  color: var(--porcelain);
  position: relative;
  overflow: hidden;
}
.manifesto-inner {
  position: relative;
}
.manifesto h2 {
  max-width: 1100px;
  font-size: clamp(3.8rem, 7vw, 8.8rem);
  margin: 0 0 30px;
}
.manifesto p:not(.eyebrow) {
  max-width: 525px;
  color: #d4d6d0;
}
.botanical {
  position: absolute;
  bottom: -120px;
  right: 3%;
  width: 270px;
  opacity: 0.35;
  transform: rotate(-28deg);
  pointer-events: none;
}
.pillar-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-bottom: 51px;
}
.pillar-grid article {
  padding: 9px clamp(20px, 2.7vw, 42px);
  border-left: 1px solid var(--stone);
}
.pillar-grid article:first-child {
  border-left: 0;
}
.pillar-num {
  font: 400 33px/1 var(--serif);
  color: var(--sage);
}
.pillar-grid h3 {
  font-size: 28px;
  margin-top: 24px;
}
.pillar-grid p {
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
}
.quote-section {
  background: var(--sage);
  color: var(--porcelain);
  padding-block: clamp(80px, 9vw, 145px);
}
.quote-layout {
  text-align: center;
}
.quote-mark {
  display: block;
  font: 400 96px/0.8 var(--serif);
}
.quote-layout blockquote {
  margin: 0;
}
.quote-layout blockquote p {
  font: 400 clamp(3rem, 5vw, 6rem)/1.05 var(--serif);
  max-width: 950px;
  margin: 0 auto 32px;
}
.quote-layout blockquote footer {
  font-size: 10px;
  letter-spacing: 0.23em;
}
.collection-grid {
  display: grid;
  grid-template-columns: 1fr 0.75fr;
  gap: 8%;
  align-items: end;
}
.collection-grid > div:last-child {
  max-width: 480px;
}
.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.steps article {
  padding: 12px 35px;
  border-left: 1px solid #ffffff44;
}
.steps article:first-child {
  border-left: 0;
}
.steps span {
  font: 400 70px/1 var(--serif);
  color: #b5c2b4;
}
.steps h3 {
  margin-top: 14px;
}
.steps p {
  color: #d1d9d0;
  font-size: 13px;
  max-width: 260px;
}
/* ========================================================================
   FILMS, EXPERIENCE, ABOUT
   ======================================================================== */
.archive-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(38px, 6vw, 90px) 22px;
}
.archive-item.archive-lead {
  grid-column: 1/-1;
}
.film-trigger {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
  position: relative;
  overflow: hidden;
  color: #fff;
}
.film-trigger .media {
  width: 100%;
  height: clamp(290px, 33vw, 470px);
  transition:
    transform 0.6s,
    filter 0.5s;
}
.archive-lead .media {
  height: clamp(400px, 50vw, 660px);
}
.film-trigger:hover .media {
  transform: scale(1.025);
  filter: brightness(0.85);
}
.play-icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 70px;
  border: 1px solid white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 33px;
  font-family: Arial;
  background: #1113;
  backdrop-filter: blur(4px);
}
.archive-meta {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 15px;
  padding-top: 18px;
  border-top: 1px solid var(--stone);
  margin-top: 15px;
}
.archive-meta .eyebrow {
  margin-bottom: 7px;
}
.archive-meta h3 {
  margin: 0;
}
.archive-meta > span {
  font-size: 9px;
  letter-spacing: 0.13em;
  color: var(--sage);
  text-align: right;
}
.archive-note {
  margin-top: 35px;
}
.pillar-grid.three {
  grid-template-columns: repeat(3, 1fr);
}
.film-quote {
  text-align: center;
}
.film-quote h2 {
  max-width: 960px;
  margin: 0 auto 22px;
}
.film-quote p:last-child {
  color: #cad3c8;
}
.editorial-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(45px, 8vw, 125px);
}
.editorial-grid .tall {
  aspect-ratio: 4/5;
}
.editorial-copy {
  max-width: 540px;
}
.editorial-copy p:not(.eyebrow) {
  max-width: 485px;
}
.editorial-copy .button {
  margin-top: 18px;
}
.solo-grid {
  display: grid;
  grid-template-columns: 1fr 0.7fr;
  gap: 11%;
  align-items: center;
}
.solo-grid h2 {
  max-width: 780px;
}
.solo-grid p:not(.eyebrow) {
  max-width: 520px;
  color: #d3dbd1;
}
.solo-grid .tall {
  min-height: 430px;
  aspect-ratio: 4/4;
}
.stage-list article {
  border-top: 1px solid var(--stone);
  padding: 37px 0;
  display: grid;
  grid-template-columns: 25% 1fr;
  gap: 35px;
}
.stage-list article:last-child {
  border-bottom: 1px solid var(--stone);
}
.stage-list span {
  font-size: 11px;
  letter-spacing: 0.17em;
  color: var(--sage);
}
.stage-list h3 {
  margin-bottom: 12px;
}
.stage-list p {
  max-width: 650px;
  margin: 0;
}
/* EXPERIENCE TESTIMONIALS: three independent, editable couple reviews. */
.experience-testimonials {
  background: var(--ink);
}
.experience-testimonials-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(250px, 0.7fr);
  align-items: end;
  gap: clamp(30px, 6vw, 90px);
  padding-bottom: clamp(43px, 6vw, 80px);
}
.experience-testimonials-heading h2 {
  margin-bottom: 0;
}
.experience-testimonials-heading > p {
  max-width: 380px;
  margin: 0 0 9px;
  color: #ccd5ca;
  font-size: 14px;
  line-height: 1.8;
}
.experience-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #f8f7f23d;
  border-bottom: 1px solid #f8f7f23d;
}
.experience-testimonial {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 360px;
  margin: 0;
  padding: 40px clamp(23px, 3vw, 54px);
  border-left: 1px solid #f8f7f23d;
}
.experience-testimonial:first-child {
  border-left: 0;
  padding-left: 0;
}
.experience-testimonial:last-child {
  padding-right: 0;
}
.experience-testimonial-number {
  color: #bacbb7;
  font-size: 10px;
  letter-spacing: 0.17em;
}
.experience-testimonial blockquote {
  margin: 0 0;
  padding-block: 35px;
}
.experience-testimonial blockquote p {
  margin: 0;
  font: 400 clamp(25px, 2.45vw, 12px)/1.25 var(--serif);
}
.experience-testimonial figcaption {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding-top: 18px;
  border-top: 1px solid #f8f7f230;
}
.experience-testimonial figcaption strong {
  font-size: 12px;
  font-weight: 500;
}
.experience-testimonial figcaption span {
  color: #bdc9bc;
  font-size: 10px;
  letter-spacing: 0.08em;
}
@media (max-width: 900px) {
  .experience-testimonials-heading {
    grid-template-columns: 1fr;
  }
  .experience-testimonials-grid {
    grid-template-columns: 1fr;
  }
  .experience-testimonial,
  .experience-testimonial:first-child,
  .experience-testimonial:last-child {
    min-height: 0;
    padding: 30px 0;
    border-left: 0;
    border-top: 1px solid #f8f7f23d;
  }
  .experience-testimonial:first-child {
    border-top: 0;
  }
  .experience-testimonial blockquote {
    margin: 0;
    padding-block: 24px;
  }
}
.collections-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12%;
}
.simple-list {
  padding: 0;
  list-style: none;
  margin: 25px 0;
}
.simple-list li {
  border-top: 1px solid #b7b6ae;
  padding: 12px 0;
  font-size: 13px;
}
.simple-list li:last-child {
  border-bottom: 1px solid #b7b6ae;
}
.faq-layout {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 10%;
}
.faq-list details {
  border-bottom: 1px solid var(--stone);
}
.faq-list details:first-child {
  border-top: 1px solid var(--stone);
}
.faq-list summary {
  cursor: pointer;
  padding: 19px 33px 19px 0;
  list-style: none;
  position: relative;
  font: 400 23px/1.25 var(--serif);
}
.faq-list summary::-webkit-details-marker {
  display: none;
}
.faq-list summary::after {
  content: "+";
  position: absolute;
  right: 7px;
  top: 17px;
  font: 300 24px var(--sans);
  color: var(--sage);
}
.faq-list details[open] summary::after {
  content: "−";
}
.faq-list details p {
  font-size: 13px;
  padding: 0 34px 16px 0;
  margin: 0;
}
.portrait-placeholder {
  min-height: 600px;
  background-color: var(--evergreen);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 38px;
  color: var(--porcelain);
  letter-spacing: 0.2em;
  font-size: 10px;
  text-align: center;
}
.portrait-placeholder img {
  width: 130px;
  opacity: 0.8;
}
.about-story .narrow {
  text-align: center;
}
.about-story h2 {
  max-width: 730px;
}
.about-story p:not(.eyebrow) {
  max-width: 690px;
  margin-inline: auto;
}
.mosaic-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr 0.75fr;
  gap: 22px;
  align-items: center;
}
.mosaic-grid .media {
  height: 420px;
}
.mosaic-grid .media:last-child {
  height: 340px;
}
.mosaic-copy {
  padding: 18px clamp(12px, 2vw, 40px);
}
.mosaic-copy h2 {
  font-size: clamp(2.9rem, 4vw, 5rem);
}
.location-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.location-grid > div {
  padding: 10px 30px;
  border-left: 1px solid #ffffff44;
}
.location-grid > div:first-child {
  border: 0;
}
.location-grid span {
  font: 400 42px var(--serif);
  color: #b4c5b6;
}
.location-grid h3 {
  font-size: 29px;
}
.location-grid p {
  font-size: 13px;
  color: #d4ddd2;
}
/* ========================================================================
   JOURNAL AND INDIVIDUAL ARTICLE
   ======================================================================== */
.filter-bar {
  display: flex;
  justify-content: center;
  gap: clamp(9px, 2vw, 30px);
  flex-wrap: wrap;
  border-bottom: 1px solid var(--stone);
  padding-bottom: 20px;
  margin-bottom: 50px;
}
.filter-bar button {
  background: transparent;
  border: 0;
  padding: 8px 0;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: 10px;
  color: var(--sage);
  border-bottom: 1px solid transparent;
}
.filter-bar button:hover,
.filter-bar button.is-active {
  color: var(--ink);
  border-color: var(--ink);
}
.journal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 45px 20px;
}
.journal-card {
  border-bottom: 1px solid var(--stone);
  padding-bottom: 26px;
  min-width: 0;
}
.journal-card[hidden] {
  display: none;
}
.journal-card .media {
  height: clamp(230px, 23vw, 340px);
}
.journal-card .journal-copy {
  padding: 23px 8px 0;
}
.journal-card .eyebrow {
  margin-bottom: 13px;
}
.journal-card h3 {
  font-size: clamp(27px, 2.8vw, 40px);
}
.journal-card p:not(.eyebrow) {
  font-size: 13px;
  line-height: 1.7;
}
.journal-card a {
  font-size: 10px;
  letter-spacing: 0.13em;
  text-decoration: none;
  text-transform: uppercase;
  border-bottom: 1px solid var(--sage);
  padding-bottom: 6px;
}
.journal-statement {
  text-align: center;
}
.journal-statement h2 {
  max-width: 920px;
  margin: 0 auto 30px;
}
.journal-statement p:last-child {
  color: #cdd8cd;
}
.article-header {
  padding-bottom: 65px;
}
.article-header h1 {
  font-size: clamp(4rem, 6vw, 7rem);
}
.article-header .eyebrow {
  margin-top: 65px;
}
.article-header p:last-child {
  font: 400 clamp(20px, 2.2vw, 30px)/1.5 var(--serif);
  max-width: 740px;
}
.article-image {
  height: min(54vw, 640px);
  min-height: 320px;
}
.article-prose p {
  font: 400 clamp(19px, 2vw, 26px)/1.7 var(--serif);
  max-width: 720px;
}
.article-prose p + p {
  margin-top: 32px;
}
/* ========================================================================
   INQUIRY PAGE AND FORM
   ======================================================================== */
.inquiry-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(260px, 0.82fr);
  gap: clamp(48px, 7vw, 115px);
  align-items: start;
}
.inquiry-section .section-heading {
  max-width: 700px;
}
.inquiry-section .section-heading h2 {
  font-size: clamp(3.3rem, 5vw, 5.7rem);
}
.inquiry-section .section-heading > p:last-child {
  max-width: 530px;
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px 22px;
}
.field {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.field.full {
  grid-column: 1/-1;
}
.field label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  font-weight: 500;
  margin-bottom: 9px;
  line-height: 1.5;
}
.field input:not([type="checkbox"]),
.field select,
.field textarea {
  display: block;
  width: 100%;
  background: transparent;
  border: 1px solid #bfbdb4;
  border-radius: 0;
  color: var(--ink);
  min-height: 50px;
  padding: 12px 14px;
  outline: none;
  transition:
    border-color 0.2s,
    background 0.2s;
}
.field textarea {
  min-height: 119px;
  resize: vertical;
}
.field input:focus,
.field textarea:focus,
.field select:focus {
  border-color: var(--evergreen);
  background: #fff8;
}
.field input::placeholder,
.field textarea::placeholder {
  color: #7e837c;
  opacity: 1;
}
.checkbox-field label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
}
.checkbox-field input {
  accent-color: var(--evergreen);
  width: 16px;
  height: 16px;
}
.submit-button {
  margin-top: 31px;
  width: 100%;
}
#form-status {
  font-size: 13px;
  line-height: 1.6;
  margin-top: 16px;
}
#form-status.error {
  color: #8b2c2c;
}
#form-status.success {
  color: #205c32;
}
.email-fallback {
  border: 1px solid var(--stone);
  padding: 20px;
  margin-top: 20px;
  font-size: 12px;
}
.email-fallback p {
  margin-bottom: 16px;
}
.email-fallback a {
  color: var(--evergreen);
}
.inquiry-aside {
  display: grid;
  gap: 18px;
}
.aside-image {
  height: 360px;
}
.aside-panel {
  background: #e7e7df;
  padding: 40px 34px;
}
.aside-panel.dark {
  background: var(--evergreen);
  color: var(--porcelain);
}
.aside-panel h3 {
  font-size: clamp(28px, 2.6vw, 41px);
}
.aside-panel p:not(.eyebrow) {
  font-size: 13px;
}
.aside-panel .small-note {
  font-size: 11px;
}
.personal-signoff {
  background: #ebe9e2;
}
.personal-signoff h2 {
  max-width: 700px;
  margin-inline: auto;
}
.personal-signoff p:not(.eyebrow) {
  max-width: 570px;
  margin-inline: auto;
}
/* ========================================================================
   VIDEO DIALOG AND MOTION
   ======================================================================== */
.film-dialog {
  width: min(900px, calc(100% - 32px));
  max-height: calc(100vh - 40px);
  padding: 22px;
  background: var(--ink);
  color: var(--porcelain);
  border: 1px solid var(--stone);
  overflow: auto;
}
.film-dialog::backdrop {
  background: #030907dc;
}
.dialog-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
}
.dialog-head h2 {
  font-size: 36px;
  margin: 0 0 12px;
}
.dialog-head button {
  background: none;
  border: 0;
  color: white;
  font-size: 35px;
  line-height: 1;
}
.film-dialog iframe,
.film-dialog video {
  width: 100%;
  aspect-ratio: 16/9;
  border: 0;
  background: #000;
  display: block;
}
.film-dialog #film-dialog-message {
  margin: 20px 0;
  font-size: 13px;
}
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.7s ease,
    transform 0.7s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: none;
}
/* ========================================================================
   TABLET AND MOBILE: no fixed heights or internal scroll regions
   ======================================================================== */
@media (max-width: 1050px) {
  .site-header {
    height: 74px;
  }
  .brand span {
    font-size: 16px;
  }
  .primary-nav {
    gap: 19px;
  }
  .primary-nav a {
    font-size: 9px;
  }
  .footer-top {
    grid-template-columns: 1fr 1fr;
  }
  .hero {
    min-height: 650px;
  }
  .archive-meta {
    display: block;
  }
  .archive-meta > span {
    display: block;
    text-align: left;
    margin-top: 12px;
  }
  .mosaic-grid {
    grid-template-columns: 1fr 1fr;
  }
  .mosaic-copy {
    grid-column: 2;
    grid-row: 1;
  }
  .mosaic-grid .media:last-child {
    display: none;
  }
}
@media (max-width: 760px) {
  :root {
    --gutter: 22px;
    --space: 75px;
  }
  .site-header {
    height: 70px;
  }
  .brand span {
    font-size: 17px;
  }
  .menu-toggle {
    width: 44px;
    height: 44px;
    padding: 10px;
    border: 0;
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    z-index: 42;
  }
  .menu-toggle span {
    width: 22px;
    height: 1px;
    background: var(--porcelain);
    transition: transform 0.25s;
  }
  .menu-toggle[aria-expanded="true"] span:first-child {
    transform: translateY(3.5px) rotate(45deg);
  }
  .menu-toggle[aria-expanded="true"] span:last-child {
    transform: translateY(-3.5px) rotate(-45deg);
  }
  .primary-nav {
    display: none;
    position: absolute;
    top: 70px;
    left: 0;
    right: 0;
    background: var(--evergreen);
    padding: 14px var(--gutter) 32px;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    border-top: 1px solid #fff3;
    box-shadow: 0 20px 30px #0003;
  }
  .primary-nav.open {
    display: flex;
  }
  .primary-nav a {
    font-size: 13px;
    padding: 13px 0;
    border-bottom: 1px solid #ffffff24;
  }
  .primary-nav a:not(.nav-cta)::after {
    display: none;
  }
  .primary-nav .nav-cta {
    margin-top: 17px;
    text-align: center;
  }
  .hero {
    min-height: 620px;
    align-items: end;
  }
  .hero-photo {
    background-position: 62% center;
    background-image:
      linear-gradient(0deg, rgba(7, 14, 11, 0.76), rgba(7, 14, 11, 0.04) 75%),
      var(--photo-image);
  }
  .hero-inner {
    padding-top: 160px;
    padding-bottom: 74px;
  }
  .hero h1 {
    font-size: clamp(4.4rem, 13vw, 7rem);
  }
  .hero-sub {
    font-size: 15px;
  }
  .subpage-hero .hero-inner {
    padding-block: 80px 60px;
  }
  .subpage-hero h1 {
    font-size: clamp(4rem, 11vw, 6.3rem);
  }
  .intro-grid,
  .editorial-grid,
  .solo-grid,
  .collections-grid,
  .faq-layout,
  .collection-grid,
  .inquiry-layout {
    grid-template-columns: 1fr;
    gap: 45px;
  }
  .intro-grid .image-stack {
    margin-left: 0;
    max-width: none;
  }
  .intro-grid .media.tall {
    min-height: 440px;
    aspect-ratio: 4/4;
  }
  .image-stack::after {
    display: none;
  }
  .intro-copy h2 {
    font-size: clamp(3.5rem, 9vw, 5rem);
  }
  .film-teaser-grid {
    grid-template-columns: 1fr 1fr;
  }
  .film-teaser-grid .film-tile:last-child {
    grid-column: 1/-1;
  }
  .film-tile .media {
    height: 280px;
  }
  .film-teaser-grid .film-tile:last-child .media {
    height: 350px;
  }
  .manifesto h2 {
    font-size: clamp(3.7rem, 9vw, 6rem);
  }
  .pillar-grid {
    grid-template-columns: 1fr 1fr;
    row-gap: 35px;
  }
  .pillar-grid article:nth-child(odd) {
    border-left: 0;
  }
  .steps {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .steps article {
    border-left: 0;
    border-top: 1px solid #ffffff44;
    padding: 20px 0;
  }
  .steps article:first-child {
    border-top: 0;
  }
  .steps span {
    font-size: 55px;
  }
  .steps p {
    max-width: none;
  }
  .archive-grid {
    grid-template-columns: 1fr;
  }
  .archive-item.archive-lead {
    grid-column: auto;
  }
  .film-trigger .media,
  .archive-lead .media {
    height: clamp(300px, 65vw, 460px);
  }
  .journal-grid {
    grid-template-columns: 1fr 1fr;
  }
  .solo-grid .tall {
    min-height: 410px;
  }
  .mosaic-grid {
    grid-template-columns: 1fr 1fr;
  }
  .mosaic-copy {
    grid-column: 1/-1;
    grid-row: auto;
  }
  .mosaic-grid .media:last-child {
    display: block;
  }
  .location-grid {
    grid-template-columns: 1fr;
  }
  .location-grid > div {
    border-left: 0;
    border-top: 1px solid #ffffff44;
    padding: 25px 0;
  }
  .location-grid > div:first-child {
    border-top: 0;
  }
  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 42px;
  }
  .inquiry-aside {
    grid-template-columns: 1fr 1fr;
  }
  .aside-image {
    grid-column: 1/-1;
    height: 300px;
  }
  .inquiry-layout {
    gap: 70px;
  }
  .portrait-placeholder {
    min-height: 420px;
  }
}
@media (max-width: 520px) {
  body {
    font-size: 14px;
  }
  .eyebrow {
    font-size: 9px;
  }
  .section-heading {
    margin-bottom: 33px;
  }
  .section-heading.center {
    margin-bottom: 39px;
  }
  .heading-split {
    display: block;
  }
  .hero {
    min-height: 590px;
  }
  .hero-actions {
    gap: 9px;
  }
  .hero-actions .button {
    padding-inline: 16px;
  }
  .hero-credit {
    font-size: 7px;
  }
  .intro-grid .media.tall {
    min-height: 370px;
  }
  .film-teaser-grid {
    grid-template-columns: 1fr;
  }
  .film-teaser-grid .film-tile:last-child {
    grid-column: auto;
  }
  .film-tile .media,
  .film-teaser-grid .film-tile:last-child .media {
    height: 320px;
  }
  .pillar-grid,
  .pillar-grid.three,
  .journal-grid,
  .inquiry-aside {
    grid-template-columns: 1fr;
  }
  .pillar-grid article,
  .pillar-grid article:nth-child(odd) {
    border: 0;
    border-top: 1px solid var(--stone);
    padding: 20px 0;
  }
  .pillar-grid article:first-child {
    border: 0;
  }
  .journal-card .media {
    height: 290px;
  }
  .form-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .field.full {
    grid-column: auto;
  }
  .aside-image {
    grid-column: auto;
    height: 320px;
  }
  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 45px 23px;
  }
  .footer-top > div:first-child {
    grid-column: 1/-1;
  }
  .footer-bottom {
    display: block;
  }
  .footer-bottom a {
    display: block;
    margin-top: 10px;
  }
  .mosaic-grid {
    grid-template-columns: 1fr 1fr;
  }
  .mosaic-grid .media,
  .mosaic-grid .media:last-child {
    height: 250px;
  }
  .mosaic-copy {
    padding: 0;
  }
  .stage-list article {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .filter-bar {
    justify-content: flex-start;
    gap: 10px 20px;
  }
  .archive-meta h3 {
    font-size: 29px;
  }
  .quote-layout blockquote p {
    font-size: 3rem;
  }

  /* Keep media comfortably inside the viewport on phones. */
  .container,
  .section > .container,
  .hero-inner { width: 100%; max-width: 100%; }
  .media, .photo-slot, .image-stack, .portrait-placeholder,
  .aside-image, .film-trigger, .archive-lead, .journal-card {
    max-width: 100%; min-width: 0;
  }
  .media img, .image-stack img, .portrait-placeholder img,
  .aside-image img {
    display: block; width: 100%; max-width: 100%; height: auto;
    object-fit: cover;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .reveal {
    opacity: 1;
    transform: none;
  }
}
/* CONSULTATION: optional seventh route powered by Wix Bookings. */
.consultation-form .slot-grid {
  border: 0;
  padding: 0;
  margin: 24px 0 40px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
}
.consultation-form .slot-grid legend {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 16px;
}
.slot-option {
  cursor: pointer;
  display: block;
}
.slot-option input {
  position: absolute;
  opacity: 0;
}
.slot-option span {
  display: block;
  border: 1px solid var(--stone);
  padding: 11px 8px;
  text-align: center;
  font-size: 11px;
}
.slot-option input:checked + span,
.slot-option:hover span {
  background: var(--evergreen);
  color: var(--porcelain);
}
.slot-option input:focus-visible + span {
  outline: 2px solid var(--sage);
  outline-offset: 2px;
}
.consultation-form > .button {
  margin-top: 30px;
}
.consultation-form .form-grid {
  max-width: 650px;
}
@media (max-width: 520px) {
  .consultation-form .slot-grid {
    grid-template-columns: 1fr 1fr;
  }
}
/* LIVE WIX BLOG ARTICLE */
.live-cover {
  background-size: cover;
  background-position: center;
}
.ricos-content p,
.ricos-content li {
  font-family: var(--serif);
  font-size: clamp(19px, 2vw, 26px);
  line-height: 1.7;
}
.ricos-content h2,
.ricos-content h3 {
  font-family: var(--serif);
}
.ricos-content img {
  max-width: 100%;
  height: auto;
}

/* ========================================================================
   CUSTOM 404 PAGE
   Own editorial composition with one obvious route back to Home.
   ======================================================================== */
.not-found {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: max(680px, calc(100svh - 84px));
  display: flex;
  align-items: center;
  background: var(--evergreen);
  color: var(--porcelain);
}
.not-found::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 80% 40%, #516c5340, transparent 53%);
  pointer-events: none;
}
.not-found-layout {
  position: relative;
  z-index: 1;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.9fr);
  align-items: center;
  gap: clamp(34px, 5vw, 96px);
  padding-block: clamp(76px, 10vw, 130px);
}
.not-found-copy {
  max-width: 700px;
}
.not-found-copy .eyebrow {
  color: #c9d3c6;
  margin-bottom: 12px;
}
.not-found-number {
  display: block;
  width: max-content;
  font: 400 clamp(7.5rem, 16vw, 15rem)/0.94 var(--serif);
  letter-spacing: -0.09em;
  color: #f8f7f241;
  margin: 0 0 23px -9px;
  user-select: none;
}
.not-found h1 {
  font-size: clamp(3.45rem, 6vw, 6.7rem);
  line-height: 1.02;
  margin-bottom: 24px;
}
.not-found h1 em {
  color: #c6d2c1;
}
.not-found-intro {
  max-width: 465px;
  color: #d4ded3;
  font-size: clamp(14px, 1.3vw, 17px);
  line-height: 1.8;
  margin-bottom: 30px;
}
.not-found-home {
  min-height: 55px;
}
.not-found-timer {
  color: #d0d9ce;
  font-size: 12px;
  margin: 20px 0 0;
}
.not-found-timer[hidden] {
  display: none;
}
.not-found-timer button {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--porcelain);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.not-found-art {
  min-height: 500px;
  aspect-ratio: 0.88;
  padding: clamp(16px, 3vw, 38px);
  border: 1px solid #f8f7f23b;
  background:
    radial-gradient(circle at 55% 35%, #a7b99a33, transparent 56%),
    linear-gradient(145deg, #304a39, #172d23 70%);
  box-shadow: 20px 24px 80px #0003;
}
.not-found-art-frame {
  height: 100%;
  min-height: 422px;
  border: 1px solid #f8f7f23f;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: clamp(20px, 3vw, 44px) 15px;
}
.not-found-art-kicker,
.not-found-art-footer {
  font-size: 9px;
  line-height: 1.7;
  letter-spacing: 0.2em;
  text-align: center;
  color: #d9dfd2;
}
.not-found-art-frame img {
  width: min(58%, 230px);
  height: auto;
  opacity: 0.9;
  filter: brightness(2.8) saturate(0.5);
  transform: rotate(-17deg);
}
@media (max-width: 850px) {
  .not-found-layout {
    grid-template-columns: 1fr;
  }
  .not-found-art {
    display: none;
  }
}
@media (max-width: 520px) {
  .not-found {
    min-height: calc(100svh - 70px);
  }
  .not-found-layout {
    padding-block: 64px 85px;
  }
  .not-found-number {
    font-size: clamp(7rem, 32vw, 11rem);
    margin-bottom: 30px;
  }
  .not-found h1 {
    font-size: clamp(3rem, 12vw, 4.7rem);
  }
}

/* ========================================================================
   ABOUT PAGE | INTERACTIVE WEDDING VENUE MAP
   Imported from the supplied map. Scoped to .venue-map to protect other pages.
   Change map colors here; edit venue names and coordinates in script.js.
   ======================================================================== */
.venue-map {
      --forest: #0B241B;
      --ink: #101211;
      --cream: #F8F7F2;
      --stone: #D8D4CB;
      --sage: #68786D;
    }

    .venue-map {
      position: relative;
      width: 100%;
      height: 100%;
      min-height: 560px;
      overflow: hidden;
      background: var(--stone);
      isolation: isolate;
    }

    .venue-map .venue-map-canvas { position: absolute; inset: 0; background: #e8e6df; }
    .venue-map .leaflet-tile-pane {
      filter: grayscale(0.72) sepia(0.1) saturate(0.62) brightness(1.035) contrast(0.92);
    }

    .venue-map .map-card {
      position: absolute;
      z-index: 700;
      top: 24px;
      left: 24px;
      width: min(370px, calc(100% - 104px));
      padding: 22px 24px 20px;
      border: 1px solid rgba(11, 36, 27, 0.16);
      border-radius: 3px;
      background: rgba(248, 247, 242, 0.96);
      box-shadow: 0 14px 38px rgba(16, 18, 17, 0.13);
      backdrop-filter: blur(8px);
    }

    .venue-map .map-kicker {
      margin: 0 0 8px;
      color: var(--sage);
      font: 600 10px/1.2 "Inter", Arial, sans-serif;
      letter-spacing: 0.18em;
      text-transform: uppercase;
    }

    .venue-map .map-title {
      margin: 0;
      color: var(--forest);
      font: 600 clamp(29px, 3.2vw, 40px)/0.98 "EB Garamond", Georgia, serif;
      letter-spacing: -0.025em;
    }

    .venue-map .map-description {
      margin: 11px 0 0;
      max-width: 31ch;
      color: rgba(16, 18, 17, 0.78);
      font-size: 12px;
      line-height: 1.55;
    }

    .venue-map .map-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 7px 14px;
      margin-top: 15px;
      padding-top: 13px;
      border-top: 1px solid rgba(104, 120, 109, 0.24);
      color: var(--forest);
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .venue-map .map-hint {
      position: absolute;
      z-index: 700;
      left: 24px;
      bottom: 24px;
      margin: 0;
      padding: 10px 13px;
      border: 1px solid rgba(11, 36, 27, 0.12);
      border-radius: 3px;
      background: rgba(248, 247, 242, 0.94);
      box-shadow: 0 8px 24px rgba(16, 18, 17, 0.1);
      color: var(--forest);
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      backdrop-filter: blur(7px);
    }

    .venue-map .ees-pin-wrap { background: transparent; border: 0; }
    .venue-map .ees-pin {
      position: relative;
      width: 22px;
      height: 22px;
      border: 2px solid var(--cream);
      border-radius: 50% 50% 50% 0;
      background: var(--forest);
      box-shadow: 0 3px 8px rgba(16, 18, 17, 0.28);
      transform: rotate(-45deg);
    }
    .venue-map .ees-pin::after {
      content: "";
      position: absolute;
      top: 6px;
      left: 6px;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--cream);
    }
    .venue-map .ees-pin--private { background: var(--sage); }

    .venue-map .marker-cluster { background: rgba(104, 120, 109, 0.22) !important; }
    .venue-map .marker-cluster div {
      width: 32px !important;
      height: 32px !important;
      margin: 4px !important;
      border: 2px solid var(--cream);
      border-radius: 50% !important;
      background: var(--sage) !important;
      box-shadow: 0 3px 10px rgba(16, 18, 17, 0.23);
      color: var(--cream);
      font: 600 11px/28px "Inter", Arial, sans-serif !important;
    }

    .venue-map .leaflet-tooltip.ees-tooltip {
      max-width: 300px;
      padding: 0;
      border: 0;
      border-radius: 3px;
      background: var(--cream);
      box-shadow: 0 12px 32px rgba(16, 18, 17, 0.2);
      color: var(--ink);
    }
    .venue-map .leaflet-tooltip-top.ees-tooltip::before { border-top-color: var(--cream); }
    .venue-map .leaflet-popup-content-wrapper {
      border-radius: 3px;
      background: var(--cream);
      box-shadow: 0 12px 32px rgba(16, 18, 17, 0.2);
    }
    .venue-map .leaflet-popup-content { margin: 0; }
    .venue-map .leaflet-popup-tip { background: var(--cream); }
    .venue-map .leaflet-popup-close-button { color: var(--forest) !important; }

    .venue-map .venue-card { min-width: 210px; padding: 16px 18px 15px; }
    .venue-map .venue-card__label {
      margin: 0 0 6px;
      color: var(--sage);
      font: 600 9px/1.25 "Inter", Arial, sans-serif;
      letter-spacing: 0.15em;
      text-transform: uppercase;
    }
    .venue-map .venue-card__name {
      margin: 0;
      color: var(--forest);
      font: 600 21px/1.04 "EB Garamond", Georgia, serif;
    }
    .venue-map .venue-card__name + .venue-card__name { margin-top: 7px; }
    .venue-map .venue-card__place {
      margin: 8px 0 0;
      color: rgba(16, 18, 17, 0.7);
      font-size: 10px;
      line-height: 1.35;
      letter-spacing: 0.05em;
      text-transform: uppercase;
    }

    .venue-map .leaflet-control-zoom {
      overflow: hidden;
      border: 1px solid rgba(11, 36, 27, 0.16) !important;
      border-radius: 3px !important;
      box-shadow: 0 8px 24px rgba(16, 18, 17, 0.11) !important;
    }
    .venue-map .leaflet-control-zoom a {
      border-color: var(--stone) !important;
      background: rgba(248, 247, 242, 0.96) !important;
      color: var(--forest) !important;
      font-family: "Inter", Arial, sans-serif !important;
    }
    .venue-map .leaflet-control-attribution {
      background: rgba(248, 247, 242, 0.82) !important;
      color: rgba(16, 18, 17, 0.64) !important;
      font-size: 9px !important;
    }
    .venue-map .leaflet-control-attribution a { color: var(--forest) !important; }

    .venue-map .map-error {
      display: none;
      position: absolute;
      z-index: 900;
      inset: 0;
      place-items: center;
      padding: 32px;
      background: var(--cream);
      color: var(--forest);
      text-align: center;
      font: 600 24px/1.2 "EB Garamond", Georgia, serif;
    }

    @media (max-width: 640px) {
      .venue-map { min-height: 500px; }
      .venue-map .map-card {
        top: 12px;
        left: 12px;
        width: calc(100% - 72px);
        padding: 15px 16px 14px;
      }
      .venue-map .map-title { font-size: 28px; }
      .venue-map .map-description { display: none; }
      .venue-map .map-meta { margin-top: 10px; padding-top: 9px; font-size: 9px; }
      .venue-map .map-hint { left: 12px; bottom: 18px; padding: 8px 10px; font-size: 9px; }
      .venue-map .leaflet-control-zoom { margin-top: 12px !important; margin-right: 12px !important; }
      .venue-map .venue-card { min-width: 190px; }
    }

/* Embed height and fallback for the map inside the About page. */
.about-map-section { padding-bottom: 0; }
.about-map-intro { max-width: 390px; margin: 0 0 8px; color: var(--sage); }
.venue-map { height: clamp(560px, 58vw, 720px); min-height: 560px; font-family: "Inter", Arial, sans-serif; }
.venue-map .map-error:not([hidden]) { display: grid; }
.venue-map .map-noscript { position: absolute; inset: 0; z-index: 900; display: grid; place-items: center; margin: 0; padding: 32px; background: var(--porcelain); color: var(--evergreen); text-align: center; }
@media (max-width: 640px) { .venue-map { height: 560px; min-height: 560px; } }

/* ========================================================================
   UNLISTED COLLECTION GUIDE | SCREEN AND PRINT
   The guide uses the shared type and color tokens. All rules are scoped to
   .page-collection-guide so edits here do not change the public pages.
   Its three independent photos are named in collections.html.
   ======================================================================== */
.page-collection-guide {
  background: var(--porcelain);
  color: var(--evergreen);
}
.page-collection-guide em { font-weight: 400; }
.page-collection-guide .eyebrow { color: var(--sage); }
.page-collection-guide .guide-header {
  height: 84px;
  padding: 0 var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: var(--evergreen);
  color: var(--porcelain);
}
.page-collection-guide .guide-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: inherit;
  text-decoration: none;
  font: 500 clamp(12px, 1.35vw, 16px)/1.2 var(--sans);
  letter-spacing: .055em;
}
.page-collection-guide .guide-brand img { width: 42px; height: 42px; object-fit: contain; }
.page-collection-guide .guide-header-actions { display: flex; align-items: center; gap: clamp(18px, 3vw, 50px); }
.page-collection-guide .guide-header-label,
.page-collection-guide .guide-print {
  font: 500 10px/1.4 var(--sans);
  letter-spacing: .15em;
  text-transform: uppercase;
}
.page-collection-guide .guide-header-label { color: #e6e7dfb3; }
.page-collection-guide .guide-print {
  border: 0;
  border-bottom: 1px solid #e6e7df9c;
  border-radius: 0;
  padding: 7px 0;
  background: transparent;
  color: var(--porcelain);
}
.page-collection-guide .guide-print span { margin-left: 12px; }
.page-collection-guide .guide-print:hover { color: #c5d0bd; }

/* Opening image and introduction. */
.page-collection-guide .guide-hero {
  min-height: clamp(560px, calc(100svh - 84px), 760px);
  position: relative;
  display: flex;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
  background: var(--evergreen);
  color: var(--porcelain);
}
.page-collection-guide .guide-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background-image: linear-gradient(90deg, rgba(5, 17, 13, .9) 3%, rgba(9, 25, 19, .6) 47%, rgba(9, 25, 19, .1)), var(--guide-photo);
  background-size: cover;
  background-position: center 47%;
}
.page-collection-guide .guide-hero-content { width: 100%; padding-block: 76px; }
.page-collection-guide .guide-overline,
.page-collection-guide .guide-index,
.page-collection-guide .guide-hero-index {
  font: 500 10px/1.5 var(--sans);
  letter-spacing: .22em;
  text-transform: uppercase;
}
.page-collection-guide .guide-overline { color: #e2e5d9; margin-bottom: 32px; }
.page-collection-guide .guide-hero h1 { max-width: 900px; font-size: clamp(4.1rem, 8vw, 8.5rem); line-height: .99; margin: 0; }
.page-collection-guide .guide-hero h1 em { color: #e3e1d6; }
.page-collection-guide .guide-fine-rule { display: block; width: 52px; height: 1px; background: #e5e0ca; margin: 39px 0 25px; }
.page-collection-guide .guide-hero-text { max-width: 420px; font-size: clamp(15px, 1.3vw, 18px); line-height: 1.75; color: #f1f0e8; }
.page-collection-guide .guide-hero-link { display: inline-flex; align-items: center; gap: 22px; margin-top: 20px; padding-bottom: 8px; border-bottom: 1px solid #eee7d999; text-decoration: none; text-transform: uppercase; font-size: 10px; letter-spacing: .15em; }
.page-collection-guide .guide-hero-link:hover { gap: 32px; }
.page-collection-guide .guide-hero-index { position: absolute; bottom: 26px; right: var(--gutter); color: #eeeae5ba; }
.page-collection-guide .guide-intro-grid { display: grid; grid-template-columns: .9fr 1fr; gap: clamp(60px, 10vw, 150px); }
.page-collection-guide .guide-intro h2 { max-width: 690px; font-size: clamp(3.6rem, 6vw, 7rem); }
.page-collection-guide .guide-intro-copy { padding-top: 62px; max-width: 560px; }
.page-collection-guide .guide-intro-copy > p { font-size: 16px; line-height: 1.85; color: #4b5850; }
.page-collection-guide .guide-included { margin-top: 45px; padding-top: 28px; border-top: 1px solid #aab5a776; }
.page-collection-guide .guide-included .eyebrow { margin-bottom: 18px; }
.page-collection-guide .guide-included ul { list-style: none; padding: 0; margin: 0; }
.page-collection-guide .guide-included li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 10px 0; font-size: 14px; line-height: 1.4; border-bottom: 1px solid #aab5a74d; }
.page-collection-guide .guide-included li span { font: 500 10px/1.8 var(--sans); color: var(--sage); }

/* An editorial image between the story and the prices. */
.page-collection-guide .guide-interlude { display: grid; grid-template-columns: 1fr 1fr; min-height: 540px; background: var(--evergreen); color: var(--porcelain); }
.page-collection-guide .guide-interlude-image { min-height: 540px; overflow: hidden; }
.page-collection-guide .guide-interlude-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; display: block; }
.page-collection-guide .guide-interlude-copy { min-height: 540px; display: flex; flex-direction: column; justify-content: center; padding: clamp(55px, 8vw, 128px); }
.page-collection-guide .guide-index { color: #aabdad; }
.page-collection-guide .guide-interlude-copy > p { margin: 38px 0; font: 400 clamp(4.2rem, 6vw, 8rem)/.98 var(--serif); letter-spacing: -.035em; }
.page-collection-guide .guide-interlude-copy > p em { color: #d7d8c9; }
.page-collection-guide .guide-interlude-caption { max-width: 295px; color: #cbd3c9; font-size: 13px; line-height: 1.7; }

/* Three clear collections with one shared list of deliverables above. */
.page-collection-guide .guide-collections { background: #eaeae3; }
.page-collection-guide .guide-section-head { display: grid; grid-template-columns: 1.35fr .65fr; align-items: end; gap: 60px; margin-bottom: 45px; }
.page-collection-guide .guide-section-head h2 { margin-bottom: 0; font-size: clamp(3.6rem, 5.8vw, 7rem); }
.page-collection-guide .guide-section-head > p { max-width: 360px; margin: 0 0 10px; color: #4f6156; }
.page-collection-guide .guide-cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); align-items: stretch; gap: 12px; }
.page-collection-guide .guide-card { min-height: 510px; display: flex; flex-direction: column; position: relative; padding: clamp(25px, 3vw, 44px); background: var(--porcelain); border: 1px solid #d9dfd3; }
.page-collection-guide .guide-card-featured { background: var(--evergreen); color: var(--porcelain); border-color: var(--evergreen); }
.page-collection-guide .guide-card-number,
.page-collection-guide .guide-card-tag,
.page-collection-guide .guide-card-foot { font: 500 10px/1.5 var(--sans); text-transform: uppercase; letter-spacing: .12em; }
.page-collection-guide .guide-card-number { color: var(--sage); }
.page-collection-guide .guide-card-featured .guide-card-number { color: #b4c3b3; }
.page-collection-guide .guide-card-tag { position: absolute; top: 36px; right: 36px; color: #c6d0c0; font-size: 8px; letter-spacing: .08em; }
.page-collection-guide .guide-card h3 { margin: 52px 0 6px; font: 400 clamp(2.75rem, 3.3vw, 4.2rem)/1 var(--serif); letter-spacing: -.035em; }
.page-collection-guide .guide-card-deck { min-height: 3em; margin-bottom: 10px; font-size: 13px; color: #6e7a70; }
.page-collection-guide .guide-card-featured .guide-card-deck { color: #d3d9ce; }
.page-collection-guide .guide-card-price { display: flex; flex-direction: column; gap: 2px; margin: 24px 0; }
.page-collection-guide .guide-card-price strong { font: 400 clamp(3.1rem, 4vw, 5rem)/1 var(--serif); letter-spacing: -.045em; }
.page-collection-guide .guide-card-price span { font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.page-collection-guide .guide-card > p:not(.guide-card-deck):not(.guide-card-foot) { max-width: 295px; font-size: 13px; line-height: 1.65; color: #526157; }
.page-collection-guide .guide-card-featured > p:not(.guide-card-deck):not(.guide-card-foot) { color: #e3e7df; }
.page-collection-guide .guide-card-line { display: block; height: 1px; background: #9ca79b77; margin-top: auto; }
.page-collection-guide .guide-card-foot { margin: 15px 0 0; color: var(--sage); font-size: 9px; line-height: 1.7; }
.page-collection-guide .guide-card-featured .guide-card-foot { color: #d2dcd0; }
.page-collection-guide .guide-collections-note { max-width: 700px; margin: 32px auto 0; text-align: center; font-size: 12px; color: #66766a; }

/* Booking details and closing invitation. */
.page-collection-guide .guide-details-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(70px, 10vw, 170px); }
.page-collection-guide .guide-details-grid h2 { font-size: clamp(3.5rem, 6vw, 7rem); }
.page-collection-guide .guide-details-grid > div > p:not(.eyebrow) { color: #58665a; max-width: 300px; }
.page-collection-guide .guide-detail-list { border-top: 1px solid #a6b4a6; }
.page-collection-guide .guide-detail-list > div { display: grid; grid-template-columns: 46px 1fr; gap: 15px; padding: 25px 0 27px; border-bottom: 1px solid #a6b4a6; }
.page-collection-guide .guide-detail-list > div > span { color: var(--sage); font-size: 10px; font-weight: 600; }
.page-collection-guide .guide-detail-list h3 { font-size: clamp(24px, 2.4vw, 35px); margin: 0 0 9px; }
.page-collection-guide .guide-detail-list p { margin: 0; max-width: 580px; color: #4b5b50; line-height: 1.7; }
.page-collection-guide .guide-finale { position: relative; isolation: isolate; color: var(--porcelain); background: var(--evergreen); }
.page-collection-guide .guide-finale::before { content: ""; position: absolute; z-index: -1; inset: 0; background-image: linear-gradient(90deg, #071a14f2, #071a14b8 60%, #071a1444), var(--guide-photo); background-size: cover; background-position: center 42%; }
.page-collection-guide .guide-finale-content { padding-block: clamp(105px, 13vw, 185px); }
.page-collection-guide .guide-finale h2 { max-width: 890px; font-size: clamp(4.5rem, 8vw, 9rem); }
.page-collection-guide .guide-finale p:not(.guide-overline) { max-width: 490px; line-height: 1.8; color: #e4e7e0; }
.page-collection-guide .guide-finale .button { margin-top: 15px; }
.page-collection-guide .guide-footer { display: flex; justify-content: space-between; gap: 22px; align-items: center; padding: 28px var(--gutter); background: #081a14; color: #c9d4c9; font-size: 11px; letter-spacing: .05em; }
.page-collection-guide .guide-footer a { text-decoration: none; }

@media (max-width: 1100px) {
  .page-collection-guide .guide-cards { grid-template-columns: 1fr; gap: 13px; }
  .page-collection-guide .guide-card { min-height: 0; }
  .page-collection-guide .guide-card h3 { margin-top: 30px; }
  .page-collection-guide .guide-card-tag { top: 27px; }
  .page-collection-guide .guide-card-line { margin-top: 25px; }
}
@media (max-width: 760px) {
  .page-collection-guide .guide-header-label { display: none; }
  .page-collection-guide .guide-intro-grid,
  .page-collection-guide .guide-section-head,
  .page-collection-guide .guide-details-grid { grid-template-columns: 1fr; gap: 25px; }
  .page-collection-guide .guide-intro-copy { padding-top: 0; }
  .page-collection-guide .guide-interlude { grid-template-columns: 1fr; }
  .page-collection-guide .guide-interlude-image { min-height: 390px; max-height: 550px; }
  .page-collection-guide .guide-interlude-copy { min-height: 430px; padding: 60px var(--gutter); }
  .page-collection-guide .guide-section-head { margin-bottom: 30px; }
  .page-collection-guide .guide-footer > span:nth-child(2) { display: none; }
}
@media (max-width: 520px) {
  .page-collection-guide .guide-header { height: 70px; }
  .page-collection-guide .guide-brand { font-size: 11px; gap: 8px; }
  .page-collection-guide .guide-brand img { width: 35px; height: 35px; }
  .page-collection-guide .guide-print { font-size: 9px; letter-spacing: .06em; white-space: nowrap; }
  .page-collection-guide .guide-print span { margin-left: 2px; }
  .page-collection-guide .guide-hero { min-height: clamp(560px, calc(100svh - 70px), 760px); }
  .page-collection-guide .guide-hero::before { background-position: 57% center; background-image: linear-gradient(90deg, #071710db, #0717108f), var(--guide-photo); }
  .page-collection-guide .guide-hero h1 { font-size: clamp(3.8rem, 15vw, 5.5rem); }
  .page-collection-guide .guide-interlude-copy > p { font-size: clamp(3.8rem, 13vw, 5.8rem); }
  .page-collection-guide .guide-card { padding: 28px; }
  .page-collection-guide .guide-card-tag { position: static; margin-top: 10px; }
  .page-collection-guide .guide-finale h2 { font-size: clamp(3.8rem, 13vw, 6rem); }
}

/* The same page can be saved through the browser's Print / Save as PDF. */
@media print {
  @page { size: letter; margin: .45in; }
  .page-collection-guide { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .page-collection-guide .guide-header { height: 56px; padding: 0 20px; }
  .page-collection-guide .guide-header-label, .page-collection-guide .guide-print,
  .page-collection-guide .guide-hero-link, .page-collection-guide .guide-hero-index,
  .page-collection-guide .guide-finale .button, .page-collection-guide .guide-footer { display: none !important; }
  .page-collection-guide .guide-hero { min-height: 6.7in; }
  .page-collection-guide .guide-hero-content { padding: .6in 0; }
  .page-collection-guide .guide-hero h1 { font-size: 63pt; }
  .page-collection-guide .section { padding-block: 55px; }
  .page-collection-guide .guide-intro-grid,
  .page-collection-guide .guide-details-grid { gap: 45px; }
  .page-collection-guide .guide-intro h2,
  .page-collection-guide .guide-details-grid h2 { font-size: 43pt; }
  .page-collection-guide .guide-interlude, .page-collection-guide .guide-finale,
  .page-collection-guide .guide-card, .page-collection-guide .guide-detail-list > div { break-inside: avoid; }
  .page-collection-guide .guide-interlude,
  .page-collection-guide .guide-interlude-image,
  .page-collection-guide .guide-interlude-copy { min-height: 3.3in; }
  .page-collection-guide .guide-interlude-copy { padding: 30px; }
  .page-collection-guide .guide-interlude-copy > p { font-size: 40pt; margin: 15px 0; }
  .page-collection-guide .guide-section-head h2 { font-size: 43pt; }
  .page-collection-guide .guide-cards { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px; }
  .page-collection-guide .guide-card { min-height: 4.2in; padding: 16px; }
  .page-collection-guide .guide-card h3 { font-size: 25pt; margin-top: 22px; }
  .page-collection-guide .guide-card-tag { display: none; }
  .page-collection-guide .guide-card-price strong { font-size: 35pt; }
  .page-collection-guide .guide-card-price span { font-size: 8px; }
  .page-collection-guide .guide-card-foot { font-size: 7px; }
  .page-collection-guide .guide-finale-content { padding-block: 45px; }
  .page-collection-guide .guide-finale h2 { font-size: 45pt; }
}
/* COLLECTION GUIDE V2: scoped editorial investment guide. */
.guide-v2 .guide-cover { min-height: min(820px, 94svh); text-align: center; }
.guide-v2 .guide-cover::before { background-image: linear-gradient(180deg, #071910cf, #071910b9), var(--guide-photo); }
.guide-v2 .guide-cover .guide-hero-content { display: flex; align-items: center; flex-direction: column; }
.guide-v2 .guide-cover-logo { width: clamp(115px, 16vw, 210px); max-height: 210px; object-fit: contain; margin: 14px 0 22px; }
.guide-v2 .guide-cover h1 { font-size: clamp(3.8rem, 7vw, 7.6rem); }
.guide-v2 .guide-kicker { margin: 6px 0 24px; font: 600 10px var(--sans); letter-spacing: .25em; }
.guide-v2 .guide-cover .guide-hero-text { max-width: 560px; margin: 24px auto 0; }
.guide-v2 .guide-chapter { padding: clamp(76px, 10vw, 150px) 0; }
.guide-v2 .guide-chapter h2 { max-width: 850px; margin: 0 0 32px; font: 400 clamp(3.2rem, 6vw, 6.8rem)/1 var(--serif); letter-spacing: -.035em; }
.guide-v2 .guide-chapter h2 em { font-weight: 400; }
.guide-v2 .guide-editorial-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(270px, .75fr); gap: clamp(45px, 8vw, 135px); align-items: start; }
.guide-v2 .guide-editorial-grid p:not(.eyebrow) { max-width: 680px; line-height: 1.8; }
.guide-v2 .guide-lede { font: 400 clamp(1.4rem, 2.3vw, 2.25rem)/1.4 var(--serif); }
.guide-v2 .guide-values { padding: 32px; border-top: 1px solid #87998a; background: #e4e4dc; }
.guide-v2 .guide-values > div { display: grid; gap: 5px; padding: 18px 0; border-bottom: 1px solid #bac4b9; }
.guide-v2 .guide-values b, .guide-v2 .guide-experience-panel li { font-size: 13px; letter-spacing: .02em; }
.guide-v2 .guide-values span { font-size: 13px; line-height: 1.5; color: #566359; }
.guide-v2 .guide-experience { background: #0b241b; color: #f8f7f2; }
.guide-v2 .guide-experience .guide-lede, .guide-v2 .guide-experience p:not(.eyebrow) { color: #e3e7df; }
.guide-v2 .guide-experience-panel { border-top: 1px solid #8fa597; padding-top: 25px; }
.guide-v2 .guide-experience-panel ul { list-style: none; margin: 0; padding: 0; }
.guide-v2 .guide-experience-panel li { padding: 13px 0; border-bottom: 1px solid #557365; }
.guide-v2 .guide-interlude-copy > p { font-size: clamp(3.6rem, 5.5vw, 7rem); }
.guide-v2 .guide-collection-intro { margin: -10px 0 40px; max-width: 610px; }
.guide-v2 .guide-card { min-height: 635px; }
.guide-v2 .guide-card h3 { margin-top: 42px; }
.guide-v2 .guide-card-deck { min-height: 3em; }
.guide-v2 .guide-card-list { list-style: none; padding: 16px 0 0; margin: 10px 0 0; border-top: 1px solid #aebbaa; }
.guide-v2 .guide-card-list li { padding: 5px 0; font-size: 12px; line-height: 1.4; }
.guide-v2 .guide-card-list li::before { content: '—'; margin-right: 9px; }
.guide-v2 .guide-compare { background: #f8f7f2; }
.guide-v2 .guide-table-wrap { overflow-x: auto; }
.guide-v2 table { width: 100%; min-width: 690px; border-collapse: collapse; text-align: center; }
.guide-v2 th, .guide-v2 td { padding: 17px 12px; border-bottom: 1px solid #cbd4c9; font-size: 13px; }
.guide-v2 th:first-child { text-align: left; }
.guide-v2 thead th { color: #375346; text-transform: uppercase; font-size: 10px; letter-spacing: .17em; }
.guide-v2 .guide-enhancements { background: #e8e8df; }
.guide-v2 .guide-enhancement-list { border-top: 1px solid #abb8aa; }
.guide-v2 .guide-enhancement-list > div { display: flex; justify-content: space-between; gap: 25px; border-bottom: 1px solid #abb8aa; padding: 22px 0; }
.guide-v2 .guide-enhancement-list h3, .guide-v2 .guide-booking h3, .guide-v2 .guide-faq h3 { margin: 0 0 5px; font: 400 1.75rem/1.1 var(--serif); }
.guide-v2 .guide-enhancement-list p, .guide-v2 .guide-booking p, .guide-v2 .guide-faq p { margin: 0; color: #526257; line-height: 1.65; font-size: 13px; }
.guide-v2 .guide-enhancement-list strong { white-space: nowrap; font: 400 1.9rem var(--serif); }
.guide-v2 .guide-small-note { margin-top: 25px; font-size: 12px; }
.guide-v2 .guide-booking { background: #0b241b; color: #f8f7f2; }
.guide-v2 .guide-booking-grid, .guide-v2 .guide-faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px 65px; }
.guide-v2 .guide-booking-grid > div { border-top: 1px solid #789380; padding-top: 22px; }
.guide-v2 .guide-booking-grid span { display: block; margin-bottom: 25px; color: #b7c9b9; font: 500 11px var(--sans); }
.guide-v2 .guide-booking p { color: #d9e2d9; }
.guide-v2 .guide-booking-note { padding: 25px; margin-top: 60px !important; border: 1px solid #789380; }
.guide-v2 .guide-faq-grid > div { border-top: 1px solid #adbbad; padding: 22px 0; }
.guide-v2 .guide-faq h3 { font-size: 1.5rem; }
.guide-v2 .guide-finale h2 { max-width: 930px; }
@media (max-width: 700px) {
  .guide-v2 .guide-editorial-grid, .guide-v2 .guide-booking-grid, .guide-v2 .guide-faq-grid { grid-template-columns: 1fr; gap: 28px; }
  .guide-v2 .guide-cover-logo { width: 130px; }
  .guide-v2 .guide-card { min-height: 0; }
  .guide-v2 .guide-enhancement-list > div { align-items: flex-start; flex-direction: column; gap: 8px; }
}
@media print {
  @page { size: letter; margin: .45in; }
  .guide-v2 .guide-header, .guide-v2 .guide-footer, .guide-v2 .guide-hero-link, .guide-v2 .guide-finale .button { display: none !important; }
  .guide-v2 .guide-chapter { padding: .45in 0; }
  .guide-v2 .guide-cover { min-height: 8.8in; break-after: page; }
  .guide-v2 .guide-cover .guide-hero-content { padding: .8in 0; }
  .guide-v2 .guide-cover h1 { font-size: 54pt; }
  .guide-v2 .guide-cover-logo { width: 1.6in; }
  .guide-v2 .guide-chapter h2 { font-size: 42pt; }
  .guide-v2 .guide-interlude { break-inside: avoid; }
  .guide-v2 .guide-cards { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .guide-v2 .guide-card { min-height: 4.8in; padding: 14px; }
  .guide-v2 .guide-card h3 { font-size: 25pt; }
  .guide-v2 .guide-card-list li { font-size: 8px; }
  .guide-v2 .guide-enhancement-list > div, .guide-v2 .guide-booking-grid > div, .guide-v2 .guide-faq-grid > div { break-inside: avoid; }
  .guide-v2 .guide-finale { break-inside: avoid; }
  .guide-v2 .guide-compare table { min-width: 0; }
  .guide-v2 .guide-compare th, .guide-v2 .guide-compare td { font-size: 9px; padding: 8px 5px; }
  .guide-v2 * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
/* FILMS: external archive action below the three featured films. */
.films-more-action { display: flex; justify-content: center; margin-top: clamp(38px, 5vw, 70px); }
.films-more-action .button { min-width: 205px; text-align: center; }
/* BOOKED COUPLE QUESTIONNAIRE: gated route and editorial form. */
.page-questionnaire { background: #f8f7f2; color: #0b241b; font-family: Inter, sans-serif; }
.questionnaire-header { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:18px var(--gutter); background:#0b241b; color:#f8f7f2; }
.questionnaire-header a { display:flex; align-items:center; gap:12px; color:inherit; text-decoration:none; font:400 23px 'EB Garamond',serif; }
.questionnaire-header img { width:44px; height:44px; object-fit:contain; }
.questionnaire-header > span { font-size:10px; letter-spacing:.2em; }
.questionnaire-hero { padding:clamp(75px,10vw,140px) 0; background:#0b241b; color:#f8f7f2; }
.questionnaire-hero h1 { max-width:900px; margin:13px 0 25px; font:400 clamp(3.8rem,8vw,8rem)/.98 'EB Garamond',serif; }
.questionnaire-hero p:last-child { max-width:650px; line-height:1.8; color:#e1e7df; }
.questionnaire-layout { display:grid; grid-template-columns:minmax(225px,.58fr) minmax(0,1.42fr); gap:clamp(45px,8vw,130px); padding-top:clamp(65px,8vw,115px); padding-bottom:120px; }
.questionnaire-aside { align-self:start; position:sticky; top:30px; }
.questionnaire-aside h2 { font:400 clamp(2.5rem,3.8vw,4.6rem)/1 'EB Garamond',serif; margin:14px 0 20px; }
.questionnaire-aside > p:not(.eyebrow) { color:#5b6b5f; line-height:1.7; font-size:13px; }
.questionnaire-progress { margin-top:35px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.questionnaire-progress-bar { height:2px; margin-top:12px; background:#cbd4c9; }
.questionnaire-progress-bar span { display:block; width:17%; height:100%; background:#0b241b; transition:width .2s ease; }
.questionnaire-step { border:0; padding:0; margin:0; min-width:0; }
.questionnaire-step[hidden] { display:none !important; }
.questionnaire-step legend { width:100%; margin-bottom:35px; padding:0 0 21px; border-bottom:1px solid #c7d1c5; font:400 clamp(2.6rem,4.6vw,4.8rem)/1 'EB Garamond',serif; }
.questionnaire-step legend span { display:block; margin-bottom:18px; font:600 10px Inter,sans-serif; letter-spacing:.2em; color:#68786d; }
.questionnaire-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 23px; }
.questionnaire-form label { display:block; color:#243c2d; font-size:12px; font-weight:600; line-height:1.5; }
.questionnaire-fields .wide, .questionnaire-form > fieldset > label.wide { grid-column:1/-1; }
.questionnaire-form input:not([type=checkbox]), .questionnaire-form select, .questionnaire-form textarea, .questionnaire-gate input { display:block; width:100%; min-height:48px; margin-top:9px; padding:12px 14px; border:1px solid #b7c4b5; border-radius:0; background:#fff; color:#0b241b; font:400 14px Inter,sans-serif; }
.questionnaire-form textarea { resize:vertical; }
.questionnaire-form input:focus-visible, .questionnaire-form select:focus-visible, .questionnaire-form textarea:focus-visible { outline:2px solid #68786d; outline-offset:2px; }
.questionnaire-prose { color:#44574a; line-height:1.8; }
.questionnaire-prose h3 { color:#0b241b; font:400 1.8rem 'EB Garamond',serif; margin:24px 0 8px; }
.questionnaire-legal-note { border-left:2px solid #68786d; padding-left:17px; font-size:12px; }
.questionnaire-checkbox { display:flex !important; align-items:flex-start; gap:13px; margin-top:28px; }
.questionnaire-checkbox input { margin-top:3px; accent-color:#0b241b; }
.questionnaire-last h2, .questionnaire-success h2 { font:400 clamp(3.5rem,6vw,6rem)/1 'EB Garamond',serif; }
.questionnaire-last p:not(.eyebrow) { line-height:1.8; }
.questionnaire-actions { display:flex; justify-content:space-between; gap:20px; margin-top:45px; padding-top:24px; border-top:1px solid #c7d1c5; }
.questionnaire-actions button, .questionnaire-gate button { border:1px solid #0b241b; background:#0b241b; color:#fff; padding:15px 24px; font:600 11px Inter,sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.questionnaire-actions button[data-prev] { background:transparent; color:#0b241b; }
.questionnaire-actions button[hidden] { display:none; }
.questionnaire-actions button:disabled { opacity:.55; cursor:wait; }
.questionnaire-form-message, .questionnaire-error { color:#8d392e; font-size:13px; }
.questionnaire-success { padding:55px; background:#e8ece5; }
.questionnaire-footer { display:flex; justify-content:space-between; padding:35px var(--gutter); background:#0b241b; color:#f8f7f2; font:400 17px 'EB Garamond',serif; }
.questionnaire-footer span { font:500 10px Inter,sans-serif; letter-spacing:.15em; text-transform:uppercase; }
.questionnaire-gate { min-height:100svh; display:grid; place-items:center; padding:35px 18px; background:#f8f7f2; }
.questionnaire-gate-card { width:min(100%,450px); text-align:center; padding:50px 40px; border:1px solid #d8d4cb; background:#fff; }
.questionnaire-gate-card img { display:block; width:100px; height:100px; object-fit:contain; margin:0 auto 20px; }
.questionnaire-gate-card h1 { font:400 4rem 'EB Garamond',serif; margin:8px 0; }
.questionnaire-gate-card p { color:#526157; line-height:1.6; }
.questionnaire-gate-card form { margin:30px 0; text-align:left; }
.questionnaire-gate-card label { font-size:12px; }
.questionnaire-gate-card button { width:100%; margin-top:15px; }
.questionnaire-gate-card > a { font-size:11px; color:#0b241b; }
@media(max-width:760px) { .questionnaire-header > span {display:none} .questionnaire-layout {grid-template-columns:1fr; gap:35px} .questionnaire-aside {position:static} .questionnaire-fields {grid-template-columns:1fr} .questionnaire-footer span {display:none} }
