/* ==========================================================
   Events Without A Hitch (EWAH)
   Sage and evergreen, cream, white and gold foil.
   Letterpress rules, arched frames, old-world serif
   with a hand-lettered accent.
   ========================================================== */

/* ---------- Fonts (self-hosted) ---------- */
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/cormorant-garamond-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url("/fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url("/fonts/cormorant-garamond-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 400; font-display: swap; src: url("/fonts/cormorant-garamond-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 500; font-display: swap; src: url("/fonts/cormorant-garamond-latin-500-italic.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/nunito-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: italic; font-weight: 400; font-display: swap; src: url("/fonts/nunito-sans-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("/fonts/nunito-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("/fonts/nunito-sans-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Pinyon Script"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/pinyon-script-latin-400-normal.woff2") format("woff2"); }

:root {
  /* Brand palette: sage, evergreen, cream, white and gold */
  --marble: #f8f7f3;        /* page */
  --mist: #f3f1ec;          /* ivory linen wash */
  --sage-wash: #eef1e8;     /* light sage, footer only */
  --label: #ece8e0;         /* ivory linen band */
  --label-deep: #e0dbd1;
  --sage: #8c9c90;          /* brand green */
  --sage-dark: #5e6860;     /* brand dark green */
  --evergreen: #24332b;     /* headline ink */
  --ink: #2c3630;           /* body ink */
  --ink-soft: #505b54;      /* secondary text, 7:1 on marble */
  --gold: #a88547;          /* foil accent (ornament + large type) */
  --gold-deep: #86682f;     /* gold for small text, 4.6:1 on marble */
  --gold-soft: rgba(168, 133, 71, 0.45);
  --gold-pale: #ecdfc2;     /* selection / soft foil */
  --oat: #dfd8d2;
  --white: #ffffff;
  --rule: rgba(36, 51, 43, 0.16);
  --rule-strong: rgba(36, 51, 43, 0.28);

  /* Type */
  --serif: "Cormorant Garamond", "Sitka Banner", Georgia, serif;
  --sans: "Nunito Sans", "Avenir Next", Avenir, "Helvetica Neue", sans-serif;
  --script: "Pinyon Script", "La Luxes Script", cursive;

  --label-size: 12px;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --max: 1320px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--marble);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 400;
  font-size: 15.5px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p { margin: 0 0 1.15em; }
b, strong { font-weight: 700; color: var(--evergreen); }
h1, h2, h3, h4 { margin: 0; font-weight: 500; }

::selection { background: var(--gold-pale); color: var(--evergreen); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

.skip-link {
  position: absolute; left: 1rem; top: -4rem; z-index: 200;
  background: var(--evergreen); color: var(--marble); padding: 0.6rem 1rem;
  font-size: var(--label-size); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none;
}
.skip-link:focus { top: 1rem; }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

/* Paper grain, fixed so it never repaints on scroll */
.grain {
  position: fixed; inset: 0; z-index: 100; pointer-events: none; opacity: 0.28; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2 0 0 0 0 0.25 0 0 0 0 0.2 0 0 0 0.16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Scroll progress: a thread of gold foil */
.progress { position: fixed; inset: 0 0 auto; height: 2px; z-index: 60; pointer-events: none; }
.progress span { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--gold), #d4b77c, var(--gold)); transform-origin: left; transform: scaleX(0); }

/* ---------- EWAH marks (recolorable, crisp at any size) ---------- */
.mono {
  display: inline-block; aspect-ratio: 329 / 658; background: currentColor;
  -webkit-mask: url("/images/ewah-monogram.png") center / contain no-repeat;
          mask: url("/images/ewah-monogram.png") center / contain no-repeat;
}
.lockup {
  display: inline-block; aspect-ratio: 958 / 658; background: currentColor;
  -webkit-mask: url("/images/ewah-lockup-signature.png") center / contain no-repeat;
          mask: url("/images/ewah-lockup-signature.png") center / contain no-repeat;
}

.lockup--plain {
  aspect-ratio: 895 / 658;
  -webkit-mask-image: url("/images/ewah-lockup.png");
          mask-image: url("/images/ewah-lockup.png");
}

/* ---------- Shared type ---------- */
.eyebrow,
.section-no {
  font-family: var(--sans);
  font-size: var(--label-size);
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.section-no { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.6rem; }
.section-no span { display: inline-block; width: 48px; height: 1px; background: var(--gold); }

.dot {
  display: inline-block; width: 4px; height: 4px; border-radius: 50%;
  background: var(--gold); vertical-align: middle; margin: 0 0.8em;
}

.display {
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(2.1rem, 3.7vw, 3.3rem);
  line-height: 1.06;
  letter-spacing: -0.005em;
  color: var(--evergreen);
  margin-bottom: 1.5rem;
}

.script-kicker {
  display: block;
  font-family: var(--script);
  font-weight: 400;
  font-size: 0.62em;
  line-height: 1.1;
  color: var(--gold);
  margin: 0 0 -0.02em 0.1em;
  letter-spacing: 0;
}
.script-kicker--light { color: #ecdfc2; }
p.script-kicker { font-size: clamp(2.2rem, 3.4vw, 2.9rem); margin-bottom: 0.2rem; }

.lede { font-size: 16.5px; max-width: 34em; color: var(--ink-soft); }

.caption {
  font-family: var(--serif); font-style: italic; font-size: 1.2rem; color: var(--ink-soft);
  margin-top: 1rem; text-align: right;
}

/* ---------- Buttons ---------- */
.btn {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
  padding: 1.1rem 2.1rem;
  font-family: var(--sans); font-size: var(--label-size); font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase; text-decoration: none;
  border: 1px solid var(--evergreen); cursor: pointer;
  transition: background 0.4s var(--ease), color 0.4s var(--ease), border-color 0.4s var(--ease);
}
.btn--solid { background: var(--evergreen); color: var(--marble); }
.btn--solid::after {
  content: ""; position: absolute; inset: 4px; border: 1px solid rgba(212, 183, 124, 0.55);
  pointer-events: none; transition: inset 0.4s var(--ease);
}
.btn--solid:hover { background: var(--sage-dark); border-color: var(--sage-dark); }
.btn--solid:hover::after { inset: 6px; }
.btn--solid:active { transform: translateY(1px); }
.btn--line { background: transparent; color: var(--evergreen); border-color: transparent; border-bottom-color: var(--gold); padding-inline: 0.2rem; }
.btn--line:hover { color: var(--gold-deep); border-bottom-color: var(--gold); }
.btn--wide { min-width: 240px; }

.text-link {
  display: inline-block; font-size: var(--label-size); font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  font-style: normal; font-family: var(--sans);
  text-decoration: none; color: var(--evergreen); padding-bottom: 5px;
  background: linear-gradient(var(--gold), var(--gold)) left bottom / 100% 1px no-repeat;
  transition: background-size 0.5s var(--ease), color 0.3s;
}
.text-link:hover { background-size: 30% 1px; color: var(--gold-deep); }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset: 0 0 auto; z-index: 50;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 1rem var(--gutter);
  color: var(--evergreen);
  transition: background 0.5s var(--ease), padding 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.site-header.is-scrolled {
  background: rgba(248, 247, 243, 0.94);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  padding-block: 0.55rem;
  box-shadow: 0 1px 0 var(--rule);
}
.nav { display: flex; gap: 2.1rem; align-items: center; }
.nav--right { justify-content: flex-end; }
.nav a {
  font-size: var(--label-size); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
  text-decoration: none; position: relative; padding: 0.35rem 0;
}
.nav a:not(.nav__cta)::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--gold);
  transform: scaleX(0); transform-origin: right; transition: transform 0.5s var(--ease);
}
.nav a:hover::after, .nav a.is-active::after { transform: scaleX(1); transform-origin: left; }
.nav__cta { border: 1px solid var(--evergreen); padding: 0.7rem 1.4rem !important; transition: background 0.4s, color 0.4s; }
.nav__cta:hover { background: var(--evergreen); color: var(--marble); }

.brand { display: flex; align-items: center; gap: 0.95rem; text-decoration: none; color: var(--evergreen); }
.brand__mark { width: 30px; transition: width 0.5s var(--ease); }
.is-scrolled .brand__mark { width: 24px; }
.brand__text { display: grid; line-height: 1; }
.brand__word {
  font-size: 12.5px; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; white-space: nowrap;
}
.brand__by { font-family: var(--script); font-size: 19px; color: var(--gold); margin-top: 0.15rem; letter-spacing: 0; line-height: 1.1; }

.menu-toggle {
  display: none; justify-self: end; align-items: center; gap: 0.8rem;
  background: none; border: 0; color: var(--evergreen); cursor: pointer; padding: 0.6rem 0;
  font: 700 var(--label-size)/1 var(--sans); letter-spacing: 0.2em; text-transform: uppercase;
}
.menu-toggle__lines { display: grid; gap: 6px; width: 26px; }
.menu-toggle__lines i { display: block; height: 1.5px; background: currentColor; transition: transform 0.4s var(--ease); }
.menu-toggle[aria-expanded="true"] .menu-toggle__lines i:first-child { transform: translateY(3.75px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__lines i:last-child { transform: translateY(-3.75px) rotate(-45deg); }

.mobile-menu {
  position: fixed; inset: 0; z-index: 45; background: var(--label); color: var(--evergreen);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2rem;
  opacity: 0; transition: opacity 0.4s var(--ease);
}
.mobile-menu::before { content: ""; position: absolute; inset: 14px; border: 1px solid var(--gold-soft); pointer-events: none; }
.mobile-menu.is-open { opacity: 1; }
.mobile-menu[hidden] { display: none; }
.mobile-menu nav { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.mobile-menu nav a { font-family: var(--serif); font-size: 2.12rem; font-weight: 500; text-decoration: none; }
.mobile-menu nav a:hover { font-style: italic; color: var(--gold-deep); }
.mobile-menu__mark { width: 40px; color: var(--evergreen); }
.mobile-menu__foot { font-size: 14px; letter-spacing: 0.06em; color: var(--ink-soft); text-decoration: none; }
.menu-open .site-header { background: transparent; box-shadow: none; }

/* ---------- Hero ---------- */
.hero {
  max-width: var(--max); margin: 0 auto;
  min-height: 88vh; min-height: 88svh;
  display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(2rem, 5vw, 6rem); align-items: center;
  padding: 7rem var(--gutter) 3.5rem;
}
.hero__title {
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(2.94rem, 5.52vw, 5.34rem); line-height: 1; text-wrap: balance; letter-spacing: -0.015em; color: var(--evergreen);
  margin: 1.5rem 0 0;
}
.hero__title-em { display: inline; font-style: italic; font-weight: 400; color: var(--sage-dark); }
.hero__script {
  font-family: var(--script); font-size: clamp(2.6rem, 4.6vw, 4.3rem); color: var(--gold); white-space: nowrap;
  line-height: 1.1; margin: 0.9rem 0 0;
}
.hero__rule { display: flex; align-items: center; gap: 0.7rem; width: 200px; margin: 1.4rem 0 1.8rem; color: var(--gold); }
.hero__rule::before, .hero__rule::after { content: ""; flex: 1; height: 1px; background: var(--gold); opacity: 0.7; }
.hero__rule svg { width: 12px; height: 12px; display: block; }
.hero__lede { margin-top: 2rem; max-width: 30em; font-size: 16.5px; color: var(--ink-soft); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 1.6rem 2.2rem; align-items: center; margin-top: 2.2rem; }

.hero__art { position: relative; justify-self: end; width: min(100%, 470px); }
.hero__arch {
  margin: 0; position: relative; aspect-ratio: 3 / 4.3;
  border-radius: 999px 999px 0 0; overflow: hidden;
}
.hero__arch img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero__art::before { content: none; }
.hero__arch { outline: 1px solid var(--gold); outline-offset: 12px; }
.hero__inset {
  position: absolute; margin: 0; left: -24%; bottom: -8%; width: 40%; aspect-ratio: 3 / 4;
  border: 8px solid var(--white); box-shadow: 0 30px 60px -30px rgba(36, 51, 43, 0.45); overflow: hidden;
}
.hero__inset img { width: 100%; height: 100%; object-fit: cover; }

.hero__watermark {
  /* faded EWAH mark in the space right of the arch, sized to whatever room the screen gives it */
  --room: calc(var(--gutter) + max(0px, (100vw - var(--max)) / 2));
  --w: clamp(28px, calc(var(--room) * 0.55), 84px);
  position: absolute; top: 6%; width: var(--w); right: calc(-1 * (var(--room) * 0.15) - var(--w));
  color: var(--sage); opacity: 0.35; pointer-events: none;
}

/* Page-load choreography */
.load { opacity: 0; transform: translateY(18px); animation: rise 1.1s var(--ease) forwards; animation-delay: calc(var(--d, 0) * 0.14s); }
@keyframes rise { to { opacity: 1; transform: none; } }
@keyframes rise-tilt { to { opacity: 1; transform: rotate(-4deg); } }

/* ---------- Service ribbon under the hero ---------- */
.ribbon {
  background: var(--label); color: var(--evergreen); padding: 1.15rem var(--gutter);
  border-block: 1px solid var(--gold-soft); position: relative;
}
.ribbon::before, .ribbon::after { content: ""; position: absolute; left: 0; right: 0; height: 1px; background: var(--gold-soft); }
.ribbon::before { top: 4px; } .ribbon::after { bottom: 4px; }
.ribbon__line {
  margin: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.4rem clamp(1rem, 2.6vw, 1.6rem);
  font-size: var(--label-size); font-weight: 600; letter-spacing: 0.32em; text-transform: uppercase; text-align: center;
}
.ribbon__word { color: var(--gold-deep); opacity: 0.78; transition: opacity 2.4s var(--ease), color 2.4s var(--ease), text-shadow 2.4s var(--ease); }
.ribbon__word.is-lit { opacity: 1; color: var(--gold); text-shadow: 0 0 12px rgba(168, 133, 71, 0.55), 0 0 2px rgba(168, 133, 71, 0.35); }
.ribbon__dot { color: var(--gold); opacity: 0.6; }
@media (max-width: 600px) { .ribbon__dot { display: none; } .ribbon__line { gap: 0.5rem 1.4rem; letter-spacing: 0.26em; } }

/* ---------- Philosophy ---------- */
.philosophy { max-width: 1100px; margin: 0 auto; padding: clamp(4rem, 8vw, 7rem) var(--gutter); }
.philosophy__quote {
  margin: 0 0 2.6rem; font-family: var(--serif); font-weight: 500;
  font-size: clamp(1.93rem, 4.05vw, 3.4rem); line-height: 1.14; color: var(--evergreen); max-width: 18em;
}
.philosophy__quote em { color: var(--sage-dark); font-weight: 500; }
.philosophy__cols { display: grid; grid-template-columns: 1fr; gap: 2.4rem; max-width: 760px; }
.philosophy__cols .dropcap { margin: 0; }
.dropcap::first-letter {
  float: left; font-family: var(--serif); font-weight: 500; font-size: 5.4rem; line-height: 0.8; color: var(--gold);
  padding: 0.4rem 0.8rem 0 0;
}
.stats { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); }
.stat { padding: 1.5rem 0; display: grid; gap: 0.3rem; }
.stat + .stat { padding-left: 1.5rem; border-left: 1px solid var(--rule); }
.stat__num { font-family: var(--serif); font-weight: 500; font-size: 3.31rem; line-height: 1; color: var(--evergreen); font-variant-numeric: lining-nums; }
.stat__num sup { font-size: 0.45em; color: var(--gold); }
.stat__label { font-size: var(--label-size); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.5; color: var(--ink-soft); }

/* ---------- Offerings ---------- */
.offerings {
  background: var(--mist);
  display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 6vw, 7rem);
  padding: clamp(3.75rem, 7.5vw, 6.5rem) var(--gutter);
  position: relative;
}
.offerings::before,
.offerings::after {
  content: ""; position: absolute; left: var(--gutter); right: var(--gutter); height: 1px; background: var(--gold-soft);
}
.offerings::before { top: 14px; box-shadow: 0 4px 0 var(--gold-soft); }
.offerings::after { bottom: 14px; box-shadow: 0 -4px 0 var(--gold-soft); }
.offerings__media { max-width: 560px; justify-self: end; width: 100%; }
.offerings__sticky { position: sticky; top: 120px; }
.frame { margin: 0; }
.frame img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.frame--table img { object-position: 58% center; }
.offerings__list { max-width: 660px; }

.offer { padding: 2.1rem 0; border-top: 1px solid var(--rule-strong); }
.offer__head { display: grid; grid-template-columns: 3.6rem 1fr; align-items: baseline; margin-bottom: 1.1rem; }
.offer__num { font-family: var(--serif); font-style: italic; font-size: 2rem; color: var(--gold); }
.offer h3 { font-family: var(--serif); font-weight: 500; font-size: clamp(1.75rem, 2.48vw, 2.21rem); line-height: 1.1; color: var(--evergreen); }
.offer__tag { margin: 0.35rem 0 0; font-family: var(--serif); font-style: italic; font-size: 1.25rem; color: var(--gold-deep); }
.offer > p, .offer > .text-link, .offer__details { margin-left: 3.6rem; }
.offer > p { color: var(--ink); }

.offer__details summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 0.9rem;
  font-size: var(--label-size); font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--evergreen);
  padding: 0.3rem 0;
}
.offer__details summary::-webkit-details-marker { display: none; }
.offer__details summary::after {
  content: "+"; font: 400 1.25rem/1 var(--sans); width: 30px; height: 30px; display: grid; place-items: center;
  border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-deep); transition: transform 0.4s var(--ease), background 0.4s, color 0.4s;
}
.offer__details summary:hover::after { background: var(--evergreen); border-color: var(--evergreen); color: var(--marble); }
.offer__details[open] summary::after { transform: rotate(45deg); }
.offer__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2.2rem; padding-top: 1.6rem; animation: rise 0.6s var(--ease); }
.offer__cols h4 {
  font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.4rem; color: var(--gold-deep);
  padding-bottom: 0.6rem; margin-bottom: 0.6rem; border-bottom: 1px solid var(--gold-soft);
}
.offer__cols ul { list-style: none; margin: 0; padding: 0; font-size: 14.5px; line-height: 1.6; color: var(--ink); }
.offer__cols li { padding: 0.45rem 0 0.45rem 1.4rem; position: relative; }
.offer__cols li::before { content: ""; position: absolute; left: 2px; top: 0.95rem; width: 6px; height: 6px; border: 1px solid var(--gold); transform: rotate(45deg); }

/* ---------- Interlude ---------- */
.interlude { position: relative; height: clamp(368px, 68vh, 656px); overflow: hidden; display: grid; place-items: center; color: #fffdf8; }
.interlude__img { position: absolute; inset: -12% 0; will-change: transform; }
.interlude__img img { width: 100%; height: 100%; object-fit: cover; }
.interlude::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(36,51,43,0.12), rgba(36,51,43,0.55)); }
.interlude__text { position: relative; z-index: 1; text-align: center; padding: 0 var(--gutter); text-shadow: 0 2px 24px rgba(20, 28, 24, 0.45); }
.interlude__line { font-family: var(--serif); font-weight: 500; font-size: clamp(2.21rem, 5.15vw, 4.6rem); line-height: 1.05; margin: 0; }
.interlude__line em { display: block; font-weight: 400; }

/* ---------- About ---------- */
.about {
  position: relative; overflow: hidden;
  background: var(--label); color: var(--ink);
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 7vw, 8rem); align-items: center;
  padding: clamp(4.5rem, 8vw, 7.5rem) var(--gutter);
}
.about::before { content: ""; position: absolute; inset: 16px; border: 1px solid var(--gold-soft); pointer-events: none; }
.about__watermark { position: absolute; left: 3.2%; top: 9%; width: clamp(70px, 7vw, 110px); color: var(--sage); opacity: 0.35; pointer-events: none; }
.about__art { position: relative; justify-self: end; width: min(100%, 500px); padding-bottom: 12%; }
.about__arch { margin: 0; aspect-ratio: 4 / 5; border-radius: 999px 999px 0 0; overflow: hidden; outline: 1px solid var(--gold); outline-offset: 12px; }
.about__arch img { width: 100%; height: 100%; object-fit: cover; object-position: 40% 20%; }
.about__small {
  position: absolute; margin: 0; right: -10%; bottom: 0; width: 42%;
  border: 8px solid var(--white); box-shadow: 0 30px 50px -25px rgba(36,51,43,0.45);
}
.about__copy { max-width: 540px; position: relative; }
.about__role { font-size: var(--label-size); font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-deep); margin-top: -0.4rem; margin-bottom: 2rem; }
.signature { font-family: var(--script); font-size: 4rem; line-height: 1; color: var(--gold); margin: 1.5rem 0 0; transform: rotate(-5deg); transform-origin: left; }

/* ---------- Portfolio highlights ---------- */
.portfolio { max-width: var(--max); margin: 0 auto; padding: clamp(4.5rem, 8vw, 7.5rem) var(--gutter) clamp(3rem, 5vw, 4.5rem); }
.portfolio__head { margin-bottom: 2.5rem; }
@media (min-width: 900px) { .portfolio__head .display { white-space: nowrap; } }
.gallery {
  display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: clamp(60px, 8vw, 110px); gap: clamp(0.6rem, 1.4vw, 1.2rem);
}
.tile {
  position: relative; overflow: hidden; padding: 0; border: 0; background: var(--mist); cursor: zoom-in;
  font: inherit; color: #fffdf8;
}
.tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease), filter 0.8s; filter: saturate(0.95); }
.tile:hover img, .tile:focus-visible img { transform: scale(1.05); filter: saturate(1.03); }
.tile__cap {
  position: absolute; left: 1rem; bottom: 0.9rem; z-index: 1; font-family: var(--serif); font-style: italic; font-size: 1.3rem;
  opacity: 0; transform: translateY(8px); transition: opacity 0.5s var(--ease), transform 0.5s var(--ease);
  text-shadow: 0 1px 12px rgba(0,0,0,0.5);
}
.tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 55%, rgba(36,51,43,0.6)); opacity: 0; transition: opacity 0.5s; }
.tile:hover .tile__cap, .tile:focus-visible .tile__cap { opacity: 1; transform: none; }
.tile:hover::after, .tile:focus-visible::after { opacity: 1; }

/* Gallery layout: 10 slots sized to each photo's shape, placed so photos from the same wedding never touch.
   Photos added later fall into 4 x 4 tiles below. */
.gallery > .tile { grid-column: span 4; grid-row: span 4; }
.gallery > .tile--s1  { grid-column: 1 / 9;  grid-row: 1 / 6; }
.gallery > .tile--s2  { grid-column: 9 / 13; grid-row: 1 / 6; }
.gallery > .tile--s3  { grid-column: 1 / 5;  grid-row: 6 / 10; }
.gallery > .tile--s4  { grid-column: 5 / 9;  grid-row: 6 / 10; }
.gallery > .tile--s5  { grid-column: 9 / 13; grid-row: 6 / 10; }
.gallery > .tile--s6  { grid-column: 1 / 5;  grid-row: 10 / 14; }
.gallery > .tile--s7  { grid-column: 5 / 9;  grid-row: 10 / 14; }
.gallery > .tile--s8  { grid-column: 9 / 13; grid-row: 10 / 14; }
.gallery > .tile--s9  { grid-column: 7 / 13; grid-row: 14 / 18; }
.gallery > .tile--s10 { grid-column: 1 / 7;  grid-row: 14 / 18; }
.tile--s1 img { object-position: center 60%; }
.tile--s2 img { object-position: center 30%; }
.tile--s9 img { object-position: 55% 55%; }

/* ---------- The Weddings ---------- */
.weddings { max-width: var(--max); margin: 0 auto; padding: clamp(1.5rem, 3vw, 2.2rem) var(--gutter) clamp(4.5rem, 8vw, 6.5rem); }
.weddings__head { max-width: 760px; margin-bottom: 2.2rem; }
.weddings__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.6rem, 3vw, 3rem) clamp(1.2rem, 3vw, 3rem);
}
.wed:nth-child(3n + 2) { margin-top: 2.4rem; }
.wed__btn {
  text-decoration: none;
  display: grid; gap: 0.35rem; width: 100%; padding: 0; margin: 0; border: 0; background: none;
  text-align: left; cursor: pointer; font: inherit; color: inherit;
}
.wed__frame {
  position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 5.1;
  background: var(--mist); border-radius: 999px 999px 0 0;
  outline: 1px solid var(--gold-soft); outline-offset: 6px; margin-bottom: 1rem;
  transition: outline-offset 0.5s var(--ease), outline-color 0.5s;
}
.wed__frame img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease), filter 0.8s; }
.wed__frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 50%, rgba(36,51,43,0.55)); opacity: 0; transition: opacity 0.5s; }
.wed__count {
  position: absolute; bottom: 0.9rem; right: 0.9rem; z-index: 1; transition: opacity 0.4s;
  padding: 0.3rem 0.65rem; background: rgba(248, 247, 243, 0.92); color: var(--evergreen);
  font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
}
.wed__view {
  position: absolute; left: 50%; bottom: 1.1rem; z-index: 1; transform: translate(-50%, 10px); opacity: 0;
  color: #fffdf8; font-family: var(--serif); font-style: italic; font-size: 1.25rem; white-space: nowrap;
  transition: opacity 0.5s var(--ease), transform 0.5s var(--ease);
}
.wed__btn:hover .wed__frame img, .wed__btn:focus-visible .wed__frame img { transform: scale(1.05); }
.wed__btn:hover .wed__frame, .wed__btn:focus-visible .wed__frame { outline-offset: 10px; outline-color: var(--gold); }
.wed__btn:hover .wed__frame::after, .wed__btn:focus-visible .wed__frame::after { opacity: 1; }
.wed__btn:hover .wed__view, .wed__btn:focus-visible .wed__view { opacity: 1; transform: translate(-50%, 0); }
.wed__btn:hover .wed__count { opacity: 0; }
.wed__name { font-family: var(--serif); font-weight: 500; font-size: 1.43rem; line-height: 1.15; color: var(--evergreen); transition: color 0.3s; }
.wed__btn:hover .wed__name { color: var(--gold-deep); }
.wed__credit { font-size: 13.5px; color: var(--ink-soft); line-height: 1.4; }
.weddings__foot { margin: clamp(4rem, 7vw, 5.5rem) 0 0; text-align: center; font-family: var(--serif); font-style: italic; font-size: 1.35rem; color: var(--ink-soft); display: flex; gap: 1.2rem; justify-content: center; align-items: baseline; flex-wrap: wrap; }

/* ---------- Kind words ---------- */
.kind-words { padding: 0 var(--gutter) clamp(4rem, 7vw, 6rem); }
.letter {
  position: relative; max-width: 940px; margin: 0 auto; background: var(--white);
  padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 7vw, 6rem);
  border: 1px solid var(--gold-soft); outline: 1px solid var(--gold-soft); outline-offset: -12px;
  box-shadow: 0 40px 80px -50px rgba(36, 51, 43, 0.4);
}
.letter .section-no { justify-content: center; }
.letter__mark { position: absolute; top: 1.5rem; left: 50%; transform: translateX(-50%); font-family: var(--serif); font-size: 9rem; line-height: 1; color: var(--gold); opacity: 0.22; pointer-events: none; }
.letter blockquote { margin: 0; }
.letter__pull {
  font-family: var(--serif); font-style: italic; font-weight: 500; font-size: clamp(1.45rem, 2.3vw, 1.95rem);
  line-height: 1.3; color: var(--evergreen); text-align: center; margin-bottom: 2.4rem;
}
.letter blockquote > p:not(.letter__pull) { columns: 2 280px; column-gap: 3rem; font-size: 15px; color: var(--ink-soft); }
.letter footer { text-align: center; margin-top: 2rem; display: grid; gap: 0.2rem; }
.letter__name { font-family: var(--script); font-size: 2.9rem; color: var(--gold); line-height: 1.2; }
.letter__meta { font-size: var(--label-size); font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-deep); }

/* ---------- Process ---------- */
.process { --steps-bg: var(--label); background: var(--label); padding: clamp(3.5rem, 6.5vw, 5.5rem) max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter))); margin-bottom: clamp(3.75rem, 6.5vw, 6rem); }
.steps { list-style: none; margin: clamp(2.5rem, 5vw, 4rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); counter-reset: none; }
.steps li { position: relative; text-align: center; padding: 0 clamp(0.8rem, 1.6vw, 1.6rem); }
/* connector from each dot to the next, drawn in sequence */
.steps li:not(:last-child)::after {
  content: ""; position: absolute; top: 22px; left: calc(50% + 30px); width: calc(100% - 60px); height: 1px;
  background: rgba(168, 133, 71, 0.6);
  transform-origin: left center;
  transition: transform 0.9s var(--ease) calc(var(--i) * 0.5s + 0.45s);
}
.steps__dot {
  position: relative; display: grid; place-items: center; width: 44px; height: 44px; margin: 0 auto 1.4rem; border-radius: 50%;
  background: var(--steps-bg, var(--marble)); border: 1px solid var(--gold); color: var(--gold);
  font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.05rem; line-height: 1;
  box-shadow: 0 0 0 5px var(--steps-bg, var(--marble)), 0 0 0 6px var(--gold-soft);
  transition: opacity 0.6s var(--ease) calc(var(--i) * 0.5s), transform 0.8s cubic-bezier(.34,1.56,.64,1) calc(var(--i) * 0.5s), background 0.4s, color 0.4s;
}
.steps li:last-child .steps__dot::after {
  content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1px solid var(--gold); opacity: 0; pointer-events: none;
}
.steps.is-live li:last-child .steps__dot::after { animation: halo 3.2s ease-out 2.2s infinite; }
@keyframes halo { 0% { transform: scale(1); opacity: 0.7; } 100% { transform: scale(1.55); opacity: 0; } }
.steps h3, .steps p { transition: opacity 0.8s var(--ease) calc(var(--i) * 0.5s + 0.2s), transform 0.8s var(--ease) calc(var(--i) * 0.5s + 0.2s); }
.steps h3 { font-family: var(--serif); font-weight: 500; font-size: 1.84rem; line-height: 1.15; color: var(--evergreen); margin: 0 0 0.6rem; }
.steps p { font-size: 15px; color: var(--ink-soft); max-width: 18em; margin: 0 auto; }
.js .steps:not(.is-live) .steps__dot { opacity: 0; transform: scale(0.55); }
.js .steps:not(.is-live) h3, .js .steps:not(.is-live) p { opacity: 0; transform: translateY(12px); }
.js .steps:not(.is-live) li::after { transform: scaleX(0); }
.steps li:hover .steps__dot { background: var(--evergreen); color: var(--steps-bg, var(--marble)); border-color: var(--evergreen); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  .steps__dot, .steps h3, .steps p, .steps li::after { transition: none !important; }
  .steps li:last-child .steps__dot::after { animation: none !important; }
}

/* ---------- Inquire ---------- */
.inquire { display: grid; grid-template-columns: 0.8fr 1.2fr; background: var(--white); border-top: 1px solid var(--gold-soft); }
.inquire__panel {
  background: var(--label); color: var(--ink); padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 5vw, 5rem);
  position: relative;
}
.inquire__panel::before { content: ""; position: absolute; inset: 14px; border: 1px solid var(--gold-soft); pointer-events: none; }
.inquire__panel > p:not(.script-kicker) { color: var(--ink); max-width: 26em; }
.inquire__mark { width: 40px; margin-bottom: 2rem; color: var(--evergreen); }
.inquire__contact { margin: 2.4rem 0; display: grid; gap: 0.2rem; }
.inquire__contact dt { font-size: var(--label-size); font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-deep); margin-top: 1rem; }
.inquire__contact dd { margin: 0; font-family: var(--serif); font-weight: 500; font-size: 1.45rem; color: var(--evergreen); overflow-wrap: anywhere; }
.inquire__contact a { text-decoration: none; border-bottom: 1px solid var(--gold); }
.inquire__contact a:hover { color: var(--gold-deep); }
.social { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.6rem; flex-wrap: wrap; }
.social a { font-size: var(--label-size); font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; text-decoration: none; color: var(--evergreen); }
.social a:hover { color: var(--gold-deep); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 6px; }
.social--center { justify-content: center; }

.form {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.7rem 2.6rem; align-content: start;
  padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 6vw, 6rem);
}
.form__intro {
  grid-column: 1 / -1; font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.7rem; color: var(--gold-deep);
  padding-bottom: 1rem; border-bottom: 1px solid var(--gold-soft); margin-bottom: 0.4rem;
}
.field { display: grid; gap: 0.35rem; position: relative; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: var(--label-size); font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--evergreen); }
.field abbr { text-decoration: none; color: var(--gold); }
.field .opt { font-weight: 400; letter-spacing: 0.02em; text-transform: none; color: var(--ink-soft); font-family: var(--serif); font-style: italic; font-size: 1.05rem; }
.field input,
.field select,
.field textarea {
  width: 100%; font: 500 1.3rem/1.4 var(--serif); color: var(--ink);
  background: transparent; border: 0; border-bottom: 1px solid var(--rule-strong); border-radius: 0;
  padding: 0.55rem 0; transition: border-color 0.3s;
  -webkit-appearance: none; appearance: none;
}
.field textarea { resize: vertical; border: 1px solid var(--rule-strong); padding: 0.8rem 1rem; background: var(--marble); }
.field select {
  cursor: pointer; padding-right: 1.6rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='%23a88547'/%3E%3C/svg%3E") right 0.2rem center no-repeat;
}
.field input::placeholder { color: #7b847e; font-style: italic; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--gold); }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--evergreen); box-shadow: 0 1px 0 var(--evergreen); }
.field textarea:focus { box-shadow: inset 0 0 0 1px var(--evergreen); }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea { border-color: #9a3f33; }
.field__error { font-family: var(--serif); font-style: italic; font-size: 1.05rem; color: #9a3f33; min-height: 0; }
.form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem 2rem; margin-top: 0.8rem; }
.form__status { margin: 0; font-family: var(--serif); font-style: italic; font-size: 1.2rem; color: var(--ink-soft); }
.form__status.is-error { color: #9a3f33; }
.btn[disabled] { opacity: 0.7; cursor: progress; }
.btn.is-loading .btn__label::after { content: ""; display: inline-block; width: 1.2em; text-align: left; animation: dots 1.2s steps(4) infinite; }
@keyframes dots { 0% { content: ""; } 25% { content: "."; } 50% { content: ".."; } 75% { content: "..."; } }

.form-success { grid-column: 1 / -1; text-align: center; padding: 3rem 0; animation: rise 0.8s var(--ease); }
.form-success__script { font-family: var(--script); font-size: 3.8rem; color: var(--gold); line-height: 1.1; margin-bottom: 0.4rem; }
.form-success h3 { font-family: var(--serif); font-weight: 500; font-size: 2.21rem; color: var(--evergreen); margin-bottom: 1rem; }
.form-success p { max-width: 28em; margin-inline: auto; color: var(--ink-soft); }

/* Aisle Planner inquiry embed */
.inquiry-embed { padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 6vw, 6rem); display: grid; align-content: start; gap: 1.2rem; }
.inquiry-embed .form__intro { margin-bottom: 0.4rem; }
.inquiry-embed__note { margin: 0; font-size: 15px; color: var(--ink-soft); }
.inquiry-embed__frame { position: relative; background: var(--marble); border: 1px solid var(--gold-soft); outline: 1px solid var(--gold-soft); outline-offset: -8px; padding: 14px; }
.inquiry-embed__frame iframe { display: block; width: 100%; min-height: 720px; border: 0; background: var(--white); }
.inquiry-embed__fallback { margin: 0; font-size: 14px; color: var(--ink-soft); }
.inquiry-embed__fallback a { color: var(--evergreen); text-decoration-color: var(--gold); text-underline-offset: 4px; }

/* ---------- Instagram ---------- */
.ig { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter) clamp(3.75rem, 6.5vw, 6rem); }
.ig__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2.4rem; }
.ig__head .section-no { flex-basis: 100%; margin-bottom: 0; text-transform: none; letter-spacing: 0.08em; font-size: 14px; }
.ig__head .section-no { text-transform: uppercase; letter-spacing: 0.2em; font-size: var(--label-size); }
.ig__head .display { margin: 0; }
.ig__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: clamp(0.4rem, 1vw, 0.9rem); }
.ig__tile { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: var(--mist); }
.ig__tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.ig__hover { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(36, 51, 43, 0.45); color: #fffdf8; opacity: 0; transition: opacity 0.4s; }
.ig__hover .icon { width: 30px; height: 30px; }
.ig__tile:hover img, .ig__tile:focus-visible img { transform: scale(1.06); }
.ig__tile:hover .ig__hover, .ig__tile:focus-visible .ig__hover { opacity: 1; }
.ig__live:empty { display: none; }
.icon { width: 20px; height: 20px; display: block; }

/* ---------- Inquiry CTA (home) ---------- */
.cta { padding: 0 var(--gutter) clamp(3.75rem, 6.5vw, 6rem); }
.cta__card .display em { color: var(--sage-dark); }
.cta__card {
  position: relative; max-width: 980px; margin: 0 auto; text-align: center; background: var(--label);
  padding: clamp(3.5rem, 7vw, 5.5rem) clamp(1.5rem, 6vw, 5rem);
}
.cta__card::before { content: ""; position: absolute; inset: 14px; border: 1px solid var(--gold-soft); pointer-events: none; }
.cta__card > p:not(.script-kicker) { max-width: 34em; margin-inline: auto; color: var(--ink); }
.cta__mark { width: 38px; color: var(--evergreen); margin-bottom: 1.4rem; }
.cta__card .display { margin-bottom: 1.1rem; }
.cta__actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.2rem 2rem; margin-top: 2rem; position: relative; }
.btn--sm { padding: 0.85rem 1.4rem; margin-top: 0.6rem; justify-self: start; }

/* ---------- Footer ---------- */
.site-footer { background: var(--sage-wash); color: var(--evergreen); border-top: 1px solid var(--gold-soft); position: relative; }
.site-footer::before { content: ""; position: absolute; left: var(--gutter); right: var(--gutter); top: 5px; height: 1px; background: var(--gold-soft); }
.site-footer__grid {
  max-width: var(--max); margin: 0 auto; padding: clamp(3rem, 5vw, 4rem) var(--gutter) 2.4rem;
  display: grid; grid-template-columns: 1.4fr 1fr 1.2fr 1fr; gap: 2.5rem;
}
.site-footer__brand p { margin: 1.2rem 0 0; max-width: 20em; font-size: 15px; color: var(--ink-soft); }
.site-footer__logo { width: 200px; color: var(--evergreen); }
.site-footer__col { display: grid; align-content: start; gap: 0.55rem; font-size: 15px; }
.site-footer__col h3 { font-size: var(--label-size); font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: 0.4rem; }
.site-footer__col a:not(.btn) { text-decoration: none; color: var(--evergreen); overflow-wrap: anywhere; }
.site-footer__col a:not(.btn):hover { color: var(--gold-deep); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 5px; }
.site-footer__col span { color: var(--ink-soft); }
.social-icons { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.7rem; }
.social-icons a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--gold); display: grid; place-items: center; color: var(--evergreen); transition: background 0.3s, color 0.3s, border-color 0.3s; }
.social-icons a:hover { background: var(--evergreen); border-color: var(--evergreen); color: var(--marble); }
.site-footer__handle { font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--ink-soft); margin-top: 0.4rem; }
.site-footer__bar {
  max-width: var(--max); margin: 0 auto; padding: 1.4rem var(--gutter) 2rem; border-top: 1px solid var(--gold-soft);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.6rem 2rem; font-size: 13px; color: var(--ink-soft);
}
.site-footer__bar p { margin: 0; }

/* ---------- Inquire page ---------- */
.page-inquire .site-header { background: rgba(248, 247, 243, 0.96); box-shadow: 0 1px 0 var(--rule); }
.inq { display: grid; grid-template-columns: 0.85fr 1.15fr; min-height: 100vh; padding-top: 88px; }
.inq__panel { position: relative; background: var(--label); padding: clamp(3rem, 6vw, 5.5rem) clamp(1.5rem, 5vw, 4.5rem); }
.inq__panel::before { content: ""; position: absolute; inset: 14px; border: 1px solid var(--gold-soft); pointer-events: none; }
.inq__panel-inner { position: sticky; top: 120px; }

.inq__steps { list-style: none; margin: 2rem 0; padding: 0; display: grid; gap: 1.1rem; counter-reset: s; }
.inq__steps li { display: grid; grid-template-columns: 2.4rem 1fr; gap: 0.6rem; align-items: baseline; }
.inq__steps li::before { counter-increment: s; content: counter(s, upper-roman); font-family: var(--serif); font-style: italic; font-size: 1.4rem; color: var(--gold); }
.inq__steps b { display: block; font-family: var(--serif); font-weight: 500; font-size: 1.3rem; }
.inq__steps span { font-size: 15px; color: var(--ink-soft); }
.inq__form { padding: clamp(2.5rem, 5vw, 5rem) clamp(1rem, 5vw, 5rem); background: var(--white); }
.inq__form .form__intro { margin-bottom: 1rem; }

/* ---------- Lightbox (single image) ---------- */
.lightbox {
  border: 0; padding: 0; background: transparent; max-width: 92vw; max-height: 92vh; overflow: visible;
}
.lightbox::backdrop { background: rgba(28, 38, 32, 0.9); }
.lightbox[open] { animation: rise 0.5s var(--ease); }
.lightbox figure { margin: 0; background: var(--marble); padding: 12px 12px 0; }
.lightbox img { max-width: calc(92vw - 24px); max-height: calc(92vh - 80px); width: auto; object-fit: contain; }
.lightbox figcaption { font-family: var(--serif); font-style: italic; font-size: 1.3rem; text-align: center; padding: 0.8rem; color: var(--evergreen); }
.lightbox__close {
  position: absolute; top: -2.6rem; right: 0; background: none; border: 0; color: #fffdf8; cursor: pointer;
  font: 700 var(--label-size) var(--sans); letter-spacing: 0.2em; text-transform: uppercase;
}

/* ---------- Wedding gallery viewer ---------- */
.viewer {
  width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; border: 0; padding: 0;
  background: var(--marble); color: var(--evergreen);
  display: none; grid-template-rows: auto 1fr auto auto; overflow: hidden;
}
.viewer[open] { display: grid; animation: viewer-in 0.55s var(--ease); }
.viewer::backdrop { background: rgba(28, 38, 32, 0.6); }
@keyframes viewer-in { from { opacity: 0; transform: scale(0.985); } to { opacity: 1; transform: none; } }
.viewer__top {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem;
  padding: 1.2rem var(--gutter) 1rem; border-bottom: 1px solid var(--gold-soft);
}
.viewer__kicker { margin: 0; font-family: var(--script); font-size: 1.7rem; line-height: 1; color: var(--gold); }
.viewer__title { font-family: var(--serif); font-weight: 500; font-size: clamp(1.8rem, 3.4vw, 2.8rem); line-height: 1.05; }
.viewer__credit { margin: 0.25rem 0 0; font-size: 14px; color: var(--ink-soft); }
.viewer__credit a { color: var(--evergreen); text-decoration-color: var(--gold); text-underline-offset: 4px; }
.viewer__tools { display: flex; align-items: center; gap: 1.6rem; }
.viewer__count { font-size: var(--label-size); font-weight: 700; letter-spacing: 0.18em; color: var(--gold-deep); font-variant-numeric: tabular-nums; }
.viewer__close {
  background: none; border: 1px solid var(--evergreen); color: var(--evergreen); cursor: pointer; padding: 0.65rem 1.2rem;
  font: 700 var(--label-size) var(--sans); letter-spacing: 0.2em; text-transform: uppercase; transition: background 0.3s, color 0.3s;
}
.viewer__close:hover { background: var(--evergreen); color: var(--marble); }
.viewer__stage { position: relative; display: grid; place-items: center; min-height: 0; padding: 1.2rem clamp(3.5rem, 7vw, 6rem); touch-action: pan-y; }
.viewer__figure { margin: 0; height: 100%; width: 100%; display: grid; place-items: center; min-height: 0; }
.viewer__figure img {
  max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain;
  background: var(--mist); box-shadow: 0 30px 60px -35px rgba(36, 51, 43, 0.5);
  transition: opacity 0.35s var(--ease), transform 0.45s var(--ease);
}
.viewer__figure img.is-loading { opacity: 0; transform: scale(0.99); }
.viewer__arrow {
  position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%;
  border: 1px solid var(--gold); background: rgba(248, 247, 243, 0.9); color: var(--evergreen); cursor: pointer;
  font: 400 2rem/1 var(--serif); display: grid; place-items: center; padding-bottom: 4px;
  transition: background 0.3s, color 0.3s;
}
.viewer__arrow:hover { background: var(--evergreen); color: var(--marble); border-color: var(--evergreen); }
.viewer__arrow--prev { left: clamp(0.5rem, 2vw, 1.5rem); }
.viewer__arrow--next { right: clamp(0.5rem, 2vw, 1.5rem); }
.viewer__strip {
  display: flex; gap: 8px; overflow-x: auto; padding: 0.9rem var(--gutter); scroll-behavior: smooth;
  border-top: 1px solid var(--gold-soft); scrollbar-width: thin;
}
.viewer__thumb {
  flex: 0 0 auto; width: 64px; height: 64px; padding: 0; border: 0; cursor: pointer; background: var(--mist);
  opacity: 0.55; outline: 1px solid transparent; outline-offset: 2px; transition: opacity 0.3s, outline-color 0.3s;
}
.viewer__thumb img { width: 100%; height: 100%; object-fit: cover; }
.viewer__thumb:hover { opacity: 0.9; }
.viewer__thumb[aria-current="true"] { opacity: 1; outline-color: var(--gold); }
.viewer__nav { display: flex; justify-content: space-between; gap: 1rem; padding: 0.2rem var(--gutter) 1rem; }
.viewer__wed {
  background: none; border: 0; cursor: pointer; padding: 0.4rem 0; color: var(--ink-soft);
  font-family: var(--serif); font-style: italic; font-size: 1.15rem; transition: color 0.3s;
}
.viewer__wed:hover { color: var(--gold-deep); }
.viewer__wed--next { text-align: right; }
body.viewer-open { overflow: hidden; }

/* ---------- Scroll reveal ---------- */
.js .reveal { opacity: 0; transform: translateY(28px); transition: opacity 1.1s var(--ease), transform 1.1s var(--ease); }
.js .reveal.is-visible { opacity: 1; transform: none; }

/* ---------- Thank-you page ---------- */
.thanks {
  min-height: 88vh; min-height: 88svh; display: grid; place-items: center; padding: 6rem var(--gutter);
  text-align: center; background: var(--label);
}
.thanks__card {
  max-width: 640px; background: var(--white); padding: clamp(3rem, 8vw, 5rem) clamp(1.5rem, 6vw, 4rem);
  border: 1px solid var(--gold-soft); outline: 1px solid var(--gold-soft); outline-offset: -12px;
}
.thanks__card .mono { width: 40px; margin: 0 auto 2rem; color: var(--evergreen); display: block; }
.thanks__card p { color: var(--ink-soft); }
.thanks__card .btn { margin-top: 1.4rem; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .nav { display: none; }
  .menu-toggle { display: inline-flex; }
  .site-header { grid-template-columns: 1fr auto; }
  .brand { justify-self: start; }
  .weddings__grid { grid-template-columns: repeat(3, 1fr); }
  .wed:nth-child(3n + 2) { margin-top: 2.4rem; }
}

@media (max-width: 1000px) {
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .ig__grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
  .inq { grid-template-columns: 1fr; }
  .inq__form { order: -1; }
  .inq__panel-inner { position: static; }
  .hero { grid-template-columns: 1fr; padding-top: 7.5rem; gap: 4.5rem; }
  .hero__art { justify-self: center; width: min(78%, 420px); }
  .hero__inset { left: -16%; }
  .hero__watermark { --w: 34px; right: -42px; }
  .philosophy__cols { grid-template-columns: 1fr; }
  .offerings { grid-template-columns: 1fr; }
  .offerings__media { justify-self: stretch; max-width: none; }
  .offerings__sticky { position: static; }
  .frame img { aspect-ratio: 16 / 10; }
  .about { grid-template-columns: 1fr; }
  .about__art { justify-self: center; width: min(82%, 440px); }
  .about__watermark { display: none; }
  .steps { grid-template-columns: 1fr; max-width: 36rem; }
  .steps li { text-align: left; padding: 0 0 2.6rem 70px; }
  .steps li:last-child { padding-bottom: 0; }
  .steps__dot { position: absolute; left: 0; top: 0; margin: 0; }
  .steps p { margin: 0; max-width: none; }
  .steps li:not(:last-child)::after { top: 56px; left: 22px; width: 1px; height: calc(100% - 68px);
    background: rgba(168, 133, 71, 0.6); transform-origin: center top; }
  .js .steps:not(.is-live) li::after { transform: scaleY(0); }
  .inquire { grid-template-columns: 1fr; }
  .gallery { grid-template-columns: repeat(6, 1fr); grid-auto-rows: 90px; }
  .gallery > .tile { grid-column: span 3; grid-row: span 3; }
  .gallery > .tile--s1, .gallery > .tile--s9, .gallery > .tile--s10 { grid-column: 1 / 7; grid-row: span 3; }
  .gallery > .tile--s2, .gallery > .tile--s4, .gallery > .tile--s6 { grid-column: 1 / 4; grid-row: span 3; }
  .gallery > .tile--s3, .gallery > .tile--s5, .gallery > .tile--s7 { grid-column: 4 / 7; grid-row: span 3; }
  .gallery > .tile--s8 { grid-column: 1 / 7; grid-row: span 5; }
}

@media (max-width: 700px) {
  .weddings__grid { grid-template-columns: repeat(2, 1fr); }
  .wed:nth-child(n) { margin-top: 0; }
  .wed:nth-child(even) { margin-top: 1.8rem; }
  .wed__name { font-size: 1.3rem; }
  .wed__credit { font-size: 12.5px; }
  .wed__view { display: none; }
  .viewer__top { flex-wrap: wrap; align-items: flex-start; }
  .viewer__tools { width: 100%; justify-content: space-between; }
  .viewer__stage { padding: 0.8rem 0.6rem; }
  .viewer__arrow { width: 42px; height: 42px; top: auto; bottom: 1rem; transform: none; }
  .viewer__thumb { width: 52px; height: 52px; }
}

@media (max-width: 600px) {
  .site-footer__grid { grid-template-columns: 1fr; gap: 2rem; }
  .site-footer__bar { flex-direction: column; }
  .cta__actions .btn { width: 100%; }
  body { font-size: 15px; }
  .brand__word { font-size: 10.5px; letter-spacing: 0.22em; }
  .brand__by { font-size: 17px; }
  .brand__mark { width: 24px; }
  .menu-toggle__label { display: none; }
  .hero__inset { width: 44%; left: -12%; bottom: -10%; border-width: 5px; }
  .hero__watermark { --w: 30px; right: -38px; }
  .stats { grid-template-columns: repeat(3, 1fr); }
  .stat + .stat { padding-left: 0.9rem; }
  .stat__num { font-size: 2.2rem; }
  .offer__head { grid-template-columns: 2.6rem 1fr; }
  .offer > p, .offer > .text-link, .offer__details { margin-left: 0; }
  .offer__cols { grid-template-columns: 1fr; }
  .about__small { right: -6%; width: 44%; border-width: 5px; }
  .form { grid-template-columns: 1fr; }
  .btn--wide { width: 100%; }
  .letter blockquote > p:not(.letter__pull) { font-size: 15.5px; }
  .letter__mark { top: 0.6rem; font-size: 6.5rem; }
  .letter .section-no { padding-top: 2.6rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
  .ribbon__word { transition: none; }
  .load { opacity: 1; transform: none; }
  .js .reveal { opacity: 1; transform: none; }
}
@media (min-width: 960px) { .hero .eyebrow { white-space: nowrap; } }


/* ---------- Wedding detail pages ---------- */
.wpage { max-width: var(--max); margin: 0 auto; padding: clamp(7rem, 12vw, 9rem) var(--gutter) clamp(4rem, 8vw, 6rem); }
.wpage__crumbs { font-size: var(--label-size); font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: 1.6rem; }
.wpage__crumbs a { text-decoration: none; }
.wpage__crumbs a:hover { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; }
.wpage .display { font-family: var(--serif); font-weight: 500; font-size: clamp(2.1rem, 3.7vw, 3.3rem); line-height: 1.1; color: var(--evergreen); }
.wpage .script-kicker { display: block; }
.wpage__credit { color: var(--ink-soft); margin: 0.8rem 0 2.4rem; }
.wpage__credit a { color: var(--gold-deep); }
.wpage__grid { columns: 3 260px; column-gap: clamp(0.6rem, 1.4vw, 1.2rem); }
.wpage__ph { display: block; margin: 0 0 clamp(0.6rem, 1.4vw, 1.2rem); background: var(--mist); break-inside: avoid; overflow: hidden; }
.wpage__ph img { width: 100%; height: auto; transition: transform 1.2s var(--ease); }
.wpage__ph:hover img { transform: scale(1.03); }
.wpage__more { display: flex; gap: 1.4rem; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-top: clamp(2.5rem, 5vw, 4rem); }

/* ---------- FAQ ---------- */
.faq { max-width: 860px; margin: 0 auto; padding: clamp(3rem, 6vw, 5rem) var(--gutter); }
.faq .display { font-family: var(--serif); font-weight: 500; font-size: clamp(1.93rem, 4.05vw, 3.4rem); line-height: 1.14; color: var(--evergreen); margin-bottom: 2rem; }
.faq__item { border-top: 1px solid var(--rule-strong); padding: 1.1rem 0; }
.faq__item:last-child { border-bottom: 1px solid var(--rule-strong); }
.faq__item summary { cursor: pointer; list-style: none; font-family: var(--serif); font-weight: 500; font-size: 1.5rem; line-height: 1.25; color: var(--evergreen); display: flex; justify-content: space-between; gap: 1rem; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: "+"; color: var(--gold-deep); font-family: var(--sans); font-weight: 400; }
.faq__item[open] summary::after { content: "\2013"; }
.faq__item p { margin: 0.8rem 0 0; max-width: 40em; color: var(--ink-soft); }


/* Google map on the inquire page */
.inq__map { margin: 1.4rem 0 1.2rem; aspect-ratio: 4 / 3; max-width: 420px; outline: 1px solid var(--gold-soft); outline-offset: 6px; background: var(--mist); }
.inq__map iframe { display: block; width: 100%; height: 100%; border: 0; filter: saturate(0.85); }

/* ---------- Restraint pass: fewer decorative rules (Oct 19) ---------- */
.ribbon::before, .ribbon::after { display: none; }
.section-no span { display: none; }
.offerings::before, .offerings::after { display: none; }
.about::before { display: none; }
.about__arch { outline: 0; }
.wed__frame { outline-color: transparent; }
.wed__btn:hover .wed__frame, .wed__btn:focus-visible .wed__frame { outline-offset: 6px; outline-color: var(--gold-soft); }
.letter, .thanks__card, .inquiry-embed__frame { outline: 0; }
.cta__card::before, .inquire__panel::before, .inq__panel::before, .mobile-menu::before { display: none; }
.site-footer::before { display: none; }

/* ---------- Homepage service cards (full details live on /services/) ---------- */
.svc { max-width: var(--max); margin: 0 auto; padding: clamp(3rem, 6vw, 4.5rem) var(--gutter); background: var(--mist); max-width: none; }
.svc__head, .svc__cards { max-width: calc(var(--max) - 2 * var(--gutter)); margin-inline: auto; }
.svc__head { margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.svc__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.6rem); }
.svc__card {
  display: flex; flex-direction: column; gap: 0.5rem; padding: clamp(1.6rem, 3vw, 2.4rem); background: var(--white);
  text-decoration: none; color: inherit; border: 1px solid var(--rule); transition: border-color 0.4s, transform 0.6s var(--ease);
}
.svc__card:hover, .svc__card:focus-visible { border-color: var(--gold); transform: translateY(-3px); }
.svc__num { font-family: var(--serif); font-style: italic; font-size: 1.6rem; color: var(--gold); line-height: 1; }
.svc__card h3 { font-family: var(--serif); font-weight: 500; font-size: clamp(1.5rem, 2vw, 1.85rem); line-height: 1.15; color: var(--evergreen); }
.svc__tag { margin: 0; font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--gold-deep); flex: 1; }
.svc__more { margin-top: 0.8rem; font-size: var(--label-size); font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--evergreen); }
@media (max-width: 900px) { .svc__cards { grid-template-columns: 1fr; } }

/* ---------- Featured weddings + view all ---------- */
.weddings__all { text-align: center; margin-top: clamp(2rem, 4vw, 3rem); }
.weddings--page { padding-top: 0; }

/* ---------- Compact testimonial on the homepage ---------- */
.kind-words--compact .letter { padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 6vw, 5rem); }
.kind-words--compact .letter__pull { margin-bottom: 1.4rem; }

/* ---------- Sub pages (services, weddings, faq) ---------- */
.page-head { max-width: var(--max); margin: 0 auto; padding: clamp(7rem, 12vw, 9rem) var(--gutter) clamp(1.5rem, 3vw, 2.5rem); }
.page-head .script-kicker { display: block; }
.page-head .display { font-family: var(--serif); font-weight: 500; font-size: clamp(2.3rem, 4.2vw, 3.6rem); line-height: 1.08; color: var(--evergreen); }
.page-head .lede { margin-top: 1rem; }
.page-sub .offerings { background: transparent; padding-top: 0; }
.page-sub .faq { padding-top: 0; }
.page-sub .kind-words { padding-top: clamp(3rem, 6vw, 4.5rem); }
.offer { scroll-margin-top: 110px; }
.page-sub .process .section-no, .page-sub .kind-words .section-no { display: none; }

/* ---------- Condensed homepage rhythm ---------- */
.philosophy { padding-block: clamp(3rem, 6vw, 4.75rem); }
.about { padding-block: clamp(3.25rem, 6vw, 5rem); }
.portfolio { padding-block: clamp(3.25rem, 6vw, 5rem) clamp(2rem, 4vw, 3rem); }
.weddings { padding-bottom: clamp(3rem, 6vw, 4.5rem); }
.kind-words { padding-bottom: clamp(3rem, 6vw, 4.5rem); }
.ig, .cta { padding-bottom: clamp(3rem, 5vw, 4.5rem); }

/* =====================================================================
   Stationery pass (Oct 19): engraved serif capitals, centered headings,
   monogram crest, paper cards, reply card, envelope footer
   ===================================================================== */
/* Engraved serif capitals for labels, nav and buttons */
.eyebrow, .section-no, .nav a, .btn, .svc__more, .about__role, .letter__meta, .stat__label, .mobile-menu__foot {
  font-family: var(--serif); font-weight: 600; text-transform: uppercase;
}
.eyebrow, .section-no { font-size: 13.5px; letter-spacing: 0.26em; }
.nav a { font-size: 13.5px; letter-spacing: 0.2em; }
.btn { font-size: 14px; letter-spacing: 0.2em; }
.svc__more, .about__role, .letter__meta { font-size: 13px; letter-spacing: 0.22em; }

/* Monogram crest as the one ornament */
.crest { display: block; width: 20px; margin: 0 auto 1.1rem; color: var(--gold); }

/* Centered, airy section heads */
.svc__head, .portfolio__head, .weddings__head { text-align: center; margin-inline: auto; }
.svc__head .section-no, .portfolio__head .section-no, .weddings__head .section-no { justify-content: center; }
.weddings__head { max-width: 760px; }
@media (min-width: 900px) { .portfolio__head .display { white-space: normal; } }

/* Philosophy as a single centered line */
.quote-card { max-width: 900px; margin: 0 auto; padding: clamp(3rem, 6vw, 4.5rem) var(--gutter) clamp(2.5rem, 5vw, 3.75rem); text-align: center; }
.quote-card__text { margin: 0; font-family: var(--serif); font-weight: 500; font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.25; color: var(--evergreen); }
.quote-card__text em { color: var(--sage-dark); }

/* Service cards as layered paper */
.svc__cards { gap: 0; padding-top: 14px; }
.svc__card {
  background: #fdfcf9; border: 0; position: relative;
  box-shadow: 0 1px 2px rgba(36, 51, 43, 0.06), 0 22px 44px -28px rgba(36, 51, 43, 0.38);
  text-align: center; align-items: center; padding: clamp(2rem, 3.5vw, 2.8rem) clamp(1.4rem, 3vw, 2.4rem);
}
.svc__card + .svc__card { margin-left: -12px; }
.svc__card:nth-child(2) { z-index: 2; transform: translateY(-14px); }
.svc__card:hover, .svc__card:focus-visible { transform: translateY(-6px); z-index: 3; }
.svc__card:nth-child(2):hover, .svc__card:nth-child(2):focus-visible { transform: translateY(-20px); }
@media (max-width: 900px) {
  .svc__cards { gap: 1rem; padding-top: 0; }
  .svc__card + .svc__card { margin-left: 0; }
  .svc__card:nth-child(2) { transform: none; }
}

/* Homepage gallery: six photos laid out like a printed spread */
.gallery--home > .tile--h1 { grid-column: 1 / 9;  grid-row: 1 / 6; }
.gallery--home > .tile--h2 { grid-column: 9 / 13; grid-row: 1 / 6; }
.gallery--home > .tile--h3 { grid-column: 1 / 4;  grid-row: 6 / 10; }
.gallery--home > .tile--h4 { grid-column: 4 / 7;  grid-row: 6 / 10; }
.gallery--home > .tile--h5 { grid-column: 7 / 10; grid-row: 6 / 10; }
.gallery--home > .tile--h6 { grid-column: 10 / 13; grid-row: 6 / 10; }
.tile--h1 img { object-position: center 60%; }
.tile--h2 img { object-position: center 30%; }
@media (max-width: 900px) {
  .gallery--home > .tile--h1 { grid-column: 1 / 7; grid-row: span 3; }
  .gallery--home > .tile--h2, .gallery--home > .tile--h4 { grid-column: 1 / 4; grid-row: span 3; }
  .gallery--home > .tile--h3, .gallery--home > .tile--h5 { grid-column: 4 / 7; grid-row: span 3; }
  .gallery--home > .tile--h6 { grid-column: 1 / 7; grid-row: span 4; }
}

/* Short Meet Ashley on the homepage */
.about__copy .btn--line { margin-top: 1.2rem; display: inline-block; }
.page-sub .about__copy .section-no, .page-sub .about__copy .display { display: none; }

/* Reply card: testimonial folded into the inquiry card */
.cta__quote { margin: 0 auto 2.2rem; max-width: 34em; }
.cta__quote blockquote { margin: 0; font-family: var(--serif); font-style: italic; font-weight: 500; font-size: clamp(1.25rem, 2vw, 1.6rem); line-height: 1.35; color: var(--evergreen); }
.cta__quote figcaption { display: grid; gap: 0.1rem; margin-top: 0.8rem; }
.cta__quote .letter__name { font-family: var(--script); font-size: 2.3rem; color: var(--gold); line-height: 1.2; }

/* Envelope footer */
.envelope { max-width: 720px; margin: 0 auto; padding: clamp(3rem, 6vw, 4.5rem) var(--gutter) 2rem; display: grid; justify-items: center; gap: 1rem; text-align: center; }
.envelope .site-footer__logo { width: 150px; }
.envelope__line { margin: 0.4rem 0 0; color: var(--ink-soft); max-width: 26em; }
.envelope__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.8rem; margin-top: 0.4rem; }
.envelope__nav a { font-family: var(--serif); font-weight: 600; font-size: 13.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--evergreen); text-decoration: none; }
.envelope__nav a:hover { color: var(--gold-deep); }
.envelope__email { color: var(--evergreen); text-decoration: none; border-bottom: 1px solid var(--gold-soft); }
.envelope__follow { font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--ink-soft); text-decoration: none; }
.envelope .social-icons { justify-content: center; }
.ribbon__line { font-family: var(--serif); font-weight: 600; font-size: 13.5px; letter-spacing: 0.3em; }

/* ---------- Shorter homepage (Oct 19) ---------- */
.about--short { grid-template-columns: 0.75fr 1.25fr; gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(2.75rem, 5vw, 4rem); }
.about--short .about__art { width: min(100%, 320px); padding-bottom: 0; }
.about--short .about__small, .about--short .about__watermark { display: none; }
.about--short .about__copy { max-width: 560px; }
.about--short .signature { font-size: 3rem; margin-top: 0.8rem; }
.gallery--home > .tile--h1 { grid-row: 1 / 5; }
.gallery--home > .tile--h2 { grid-row: 1 / 5; }
.gallery--home > .tile--h3, .gallery--home > .tile--h4, .gallery--home > .tile--h5, .gallery--home > .tile--h6 { grid-row: 5 / 8; }
.weddings:not(.weddings--page) .weddings__grid { max-width: 880px; margin-inline: auto; }
.weddings:not(.weddings--page) .wed:nth-child(3n + 2) { margin-top: 1.4rem; }
.svc { padding-block: clamp(2.5rem, 5vw, 3.75rem); }
.portfolio { padding-block: clamp(2.75rem, 5vw, 4rem) clamp(1.5rem, 3vw, 2.25rem); }
.weddings { padding-bottom: clamp(2.5rem, 5vw, 3.75rem); }
.quote-card { padding-block: clamp(2.5rem, 5vw, 3.5rem) clamp(2rem, 4vw, 3rem); }
.cta__card { padding-block: clamp(2.75rem, 5vw, 4rem); }
@media (max-width: 900px) {
  .about--short { grid-template-columns: 1fr; }
  .about--short .about__art { width: min(70%, 280px); justify-self: center; }
  .gallery--home > .tile--h1, .gallery--home > .tile--h2, .gallery--home > .tile--h3, .gallery--home > .tile--h4, .gallery--home > .tile--h5, .gallery--home > .tile--h6 { grid-row: span 3; }
  .gallery--home > .tile--h6 { grid-row: span 3; }
}

/* Header: the name alone, in serif capitals */
.brand__word { font-family: var(--serif); font-weight: 600; font-size: 15px; letter-spacing: 0.3em; }
.brand__text { justify-items: center; text-align: center; }
@media (max-width: 900px) { .brand__word { font-size: 12px; letter-spacing: 0.22em; } }

/* Event line: more categories, tighter spacing so it holds one line on a computer */
.ribbon__line { letter-spacing: 0.22em; gap: 0.4rem clamp(0.7rem, 1.6vw, 1.1rem); font-size: 13px; }

/* ---------- Left-aligned reading (Oct 20): headings, quote and service cards sit left ---------- */
.svc__head, .portfolio__head, .weddings__head { text-align: left; margin-inline: 0; }
.svc__head .section-no, .portfolio__head .section-no, .weddings__head .section-no { justify-content: flex-start; }
.svc__head { max-width: calc(var(--max) - 2 * var(--gutter)); margin-inline: auto; }
.weddings__head { max-width: none; }
.quote-card { text-align: left; max-width: var(--max); }
.quote-card__text { max-width: 22em; }
.svc__card { text-align: left; align-items: flex-start; }
.weddings__all { text-align: left; }
.portfolio .weddings__all { text-align: left; }
.weddings:not(.weddings--page) .weddings__grid { margin-inline: 0; }

/* =====================================================================
   Rhythm pass (Oct 20): alternating backgrounds and alignment,
   larger hero stamp, Instagram above a dark green footer
   ===================================================================== */
/* Full-bleed background helper for sections that sit in a max-width container */
.bleed-ivory, .portfolio:not(.portfolio--full), .cta, .svc { box-shadow: 0 0 0 100vmax var(--label); clip-path: inset(0 -100vmax); }

/* Backgrounds alternate: marble, ivory, marble, ivory ... */
.quote-card { background: var(--marble); }
.svc { background: var(--label); }
.about--short { background: var(--marble); }
.portfolio:not(.portfolio--full) { background: var(--label); }
.weddings:not(.weddings--page) { background: var(--marble); }
.cta { background: var(--label); padding-top: clamp(3rem, 6vw, 4.5rem); }
.cta__card { background: var(--marble); box-shadow: 0 1px 2px rgba(36, 51, 43, 0.05), 0 24px 48px -30px rgba(36, 51, 43, 0.35); }
.ig { background: var(--marble); padding-top: clamp(3rem, 6vw, 4.5rem); }
.svc__card { background: #fdfcf9; }

/* Alignment alternates: quote left, services centered, Meet Ashley left, gallery centered,
   weddings left, reply card centered, Instagram left */
.svc__head { text-align: center; }
.svc__head .section-no { justify-content: center; }
.svc__card { text-align: center; align-items: center; }
.portfolio:not(.portfolio--full) .portfolio__head { text-align: center; }
.portfolio:not(.portfolio--full) .portfolio__head .section-no { justify-content: center; }
.portfolio:not(.portfolio--full) .weddings__all { text-align: center; }

/* Hero stamp: larger EWAH monogram on a paper backing, overlapping the arch */
.hero__stamp {
  position: absolute; z-index: 2; top: 8%; right: -46px; display: grid; place-items: center;
  padding: 20px 16px; background: var(--marble); color: var(--gold);
  box-shadow: 0 1px 2px rgba(36, 51, 43, 0.06), 0 18px 36px -20px rgba(36, 51, 43, 0.4);
}
.hero__stamp .mono { width: 58px; }
@media (max-width: 900px) { .hero__stamp { right: -16px; padding: 12px 10px; } .hero__stamp .mono { width: 32px; } }

/* Dark green footer */
.site-footer { background: var(--evergreen); color: #e9e4d8; border-top: 0; }
.site-footer .site-footer__logo { color: #f3efe6; }
.envelope__line, .envelope__follow, .site-footer__bar, .site-footer__bar p { color: rgba(243, 239, 230, 0.72); }
.envelope__nav a, .envelope__email { color: #f3efe6; }
.envelope__nav a:hover { color: #d9bf86; }
.envelope__email { border-bottom-color: rgba(201, 168, 106, 0.6); }
.site-footer .social-icons a { color: #f3efe6; border-color: rgba(201, 168, 106, 0.7); }
.site-footer .social-icons a:hover { background: #c9a86a; border-color: #c9a86a; color: var(--evergreen); }
.site-footer__bar { border-top-color: rgba(201, 168, 106, 0.3); }

/* ---------- Quote over the couple photo, centered weddings, smaller testimonial (Oct 20) ---------- */
.quote-card.quote-card--photo {
  position: relative; overflow: hidden; max-width: none; text-align: center;
  padding: clamp(5rem, 11vw, 8.5rem) var(--gutter); background: var(--evergreen);
}
.quote-card__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.quote-card--photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(24, 34, 28, 0.42), rgba(24, 34, 28, 0.52)); }
.quote-card--photo .quote-card__text { position: relative; z-index: 1; margin: 0 auto; max-width: 20em; color: #fbf8f1; text-shadow: 0 1px 18px rgba(0, 0, 0, 0.35); }
.quote-card--photo .quote-card__text em { color: #f1e3c3; }

.weddings:not(.weddings--page) .weddings__head { text-align: center; margin-inline: auto; }
.weddings:not(.weddings--page) .weddings__head .section-no { justify-content: center; }
.weddings:not(.weddings--page) .weddings__grid { margin-inline: auto; }
.weddings:not(.weddings--page) .weddings__all { text-align: center; }

.cta__quote { margin-bottom: 1.6rem; max-width: 30em; }
.cta__quote blockquote { font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.cta__quote .letter__name { font-size: 1.8rem; }
.cta__quote .letter__meta { font-size: 11px; }

/* ---------- Oct 20: larger header name ---------- */
.brand__word { font-size: 20px; letter-spacing: 0.28em; }
.brand__by { font-size: 21px; margin-top: 0.3rem; }
@media (max-width: 900px) { .brand__word { font-size: 14px; letter-spacing: 0.2em; } .brand__by { font-size: 17px; } }

/* ---------- Footer: original four column layout on dark evergreen with gold accents (Oct 20) ---------- */
.site-footer { background: var(--evergreen); color: rgba(243, 239, 230, 0.78); border-top: 0; }
.site-footer__logo { color: #f3efe6; }
.site-footer__brand p, .site-footer__col span, .site-footer__handle { color: rgba(243, 239, 230, 0.72); }
.site-footer__col h3 { color: #c9a86a; }
.site-footer__col a:not(.btn) { color: #f3efe6; }
.site-footer__col a:not(.btn):hover { color: #e3c98f; text-decoration-color: #c9a86a; }
.site-footer .btn--solid { background: transparent; color: #f3efe6; border-color: #c9a86a; }
.site-footer .btn--solid::after { border-color: rgba(201, 168, 106, 0.55); }
.site-footer .btn--solid:hover { background: #c9a86a; border-color: #c9a86a; color: var(--evergreen); }
.site-footer .social-icons a { color: #f3efe6; border-color: rgba(201, 168, 106, 0.75); }
.site-footer .social-icons a:hover { background: #c9a86a; border-color: #c9a86a; color: var(--evergreen); }
.site-footer__bar { border-top-color: rgba(201, 168, 106, 0.3); }
.site-footer__bar, .site-footer__bar p { color: rgba(243, 239, 230, 0.6); }

.site-footer__col h3 { font-family: var(--serif); font-weight: 600; font-size: 13.5px; letter-spacing: 0.24em; }
.tile--s9 img { object-position: center 60%; }
.tile--s10 img { object-position: 55% 55%; }
/* Phone: swap the 4th and 5th tiles so photos from the same wedding never stack */
@media (max-width: 900px) {
  .gallery { grid-auto-flow: row dense; }
  .gallery > .tile--s4, .gallery--home > .tile--h4 { grid-column: 4 / 7; }
  .gallery > .tile--s5, .gallery--home > .tile--h5 { grid-column: 1 / 4; }
}
.tile--h5 img, .tile--s5 img { object-position: 58% center; }


/* ==========================================================
   Homepage order (Oct 20 pm): testimonial over photo, no gallery.
   Backgrounds keep alternating: services ivory, Meet Ashley marble,
   weddings ivory, inquiry marble, Instagram ivory.
   ========================================================== */
.quote-card__figure { position: relative; z-index: 1; margin: 0 auto; max-width: 46rem; }
.quote-card--photo .quote-card__text--testimonial { font-style: italic; font-size: clamp(1.45rem, 2.6vw, 2.15rem); line-height: 1.32; max-width: 26em; }
.quote-card__cite { margin-top: 1.4rem; display: flex; flex-direction: column; align-items: center; gap: 0.35rem; }
.quote-card__name { font-family: var(--serif); font-weight: 600; font-size: 14px; letter-spacing: 0.26em; text-transform: uppercase; color: #f1e3c3; }
.quote-card__role { font-family: var(--script); font-size: 1.5rem; line-height: 1; color: #e7cf9c; }
.page-home .weddings:not(.weddings--page) { background: var(--label); box-shadow: 0 0 0 100vmax var(--label); clip-path: inset(0 -100vmax); }
.page-home .cta { background: var(--marble); box-shadow: 0 0 0 100vmax var(--marble); clip-path: inset(0 -100vmax); }
.page-home .cta__card { background: #fdfcf9; }
.page-home .ig { background: var(--label); box-shadow: 0 0 0 100vmax var(--label); clip-path: inset(0 -100vmax); padding-bottom: clamp(3rem, 6vw, 4.5rem); }

/* Softer ivory, darker small copy, slightly tighter leading (Oct 20 pm) */
:root {
  --marble: #fbf9f4;        /* page: soft warm ivory */
  --mist: #f6f2ea;          /* ivory wash */
  --label: #f3eee5;         /* ivory band, softer than #ece8e0 */
  --label-deep: #ebe4d8;
  --ink-soft: #3d4741;      /* secondary and small text, darker */
}
body { line-height: 1.6; }
.lede, .hero__lede { line-height: 1.58; }
.wed__credit, .site-footer__bar, .stat__label { color: var(--ink-soft); }

/* Testimonial over the ceremony photo: deeper wash so the words read cleanly */
.quote-card.quote-card--photo { padding-block: clamp(4.5rem, 9vw, 7rem); }
.quote-card--photo .quote-card__bg { object-position: center 30%; }
.quote-card--photo::after { background: radial-gradient(ellipse 60% 70% at 50% 50%, rgba(20, 29, 24, 0.62), rgba(20, 29, 24, 0.38) 75%), linear-gradient(rgba(20, 29, 24, 0.25), rgba(20, 29, 24, 0.35)); }
.quote-card__name { font-size: 15px; }
.quote-card__role { font-size: 1.9rem; }

/* =====================================================================
   Invitation suite pass (Oct 20 pm)
   Type roles: serif headlines, sans descriptions, script for personal touches.
   Papers: warm white page, ivory bands, cotton cards with a faint tooth.
   Engraving: every rule 1px; buttons double ruled at a 4px inset.
   ===================================================================== */
@font-face { font-family: "Corinthia"; font-style: normal; font-weight: 400; font-display: swap; size-adjust: 122%; src: url("/fonts/corinthia-latin-400-normal.woff2") format("woff2"); }
:root {
  --script: "Corinthia", "Pinyon Script", cursive;
  --cotton: #fdfbf6;                      /* card stock */
  --hair: rgba(168, 133, 71, 0.55);       /* engraved gold rule */
  --hair-soft: rgba(168, 133, 71, 0.32);
  --inset: 4px;                           /* double rule spacing */
  --label-size: 13px;
  --gutter: clamp(1.5rem, 6.5vw, 7rem);   /* generous outer margins */
  --tooth: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .36 0 0 0 0 .26 0 0 0 .055 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Type roles */
.script-kicker { font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 0.5em; letter-spacing: 0.01em; color: var(--gold-deep); margin-bottom: 0.25em; }
.script-kicker--hand { font-family: var(--script); font-style: normal; font-weight: 400; font-size: 0.62em; color: var(--gold); letter-spacing: 0; margin-bottom: 0; }
p.script-kicker { font-size: 1.35rem; }
p.script-kicker.script-kicker--hand { font-size: 2.3rem; }
.quote-card__role { font-family: var(--serif); font-style: italic; font-size: 1.05rem; letter-spacing: 0.04em; color: #ecdcb8; }
.hero__script { display: inline-block; transform: rotate(-4deg); transform-origin: left center; margin: 0.5rem 0 0 1.4em; font-size: clamp(2.8rem, 4.8vw, 4.6rem); }
.brand__by { font-size: 21px; }
.signature { font-size: 4.4rem; }

/* Papers: cards feel like placecards and reply cards */
.svc__card, .page-home .cta__card, .cta__card, .pic--mat .pic__btn {
  background-color: var(--cotton); background-image: var(--tooth);
}
.ribbon, .page-home .svc, .page-home .weddings:not(.weddings--page), .page-home .ig { background-image: var(--tooth); }
.svc__card, .cta__card { position: relative; border: 0; }
.svc__card::before, .cta__card::before {
  content: ""; position: absolute; inset: 10px; border: 1px solid var(--hair-soft); pointer-events: none;
}

/* Engraved rules and double ruled buttons, one weight and one inset everywhere */
.btn { border-width: 1px; padding: 1.05rem 2.2rem; }
.btn--solid::after { inset: var(--inset); border: 1px solid var(--hair); transition: none; }
.btn--solid:hover::after { inset: var(--inset); }
.btn--line { padding: 0.55rem 0.15rem; border-bottom: 1px solid var(--gold); }
.nav__cta { position: relative; border: 1px solid var(--evergreen); }
.nav__cta::before { content: ""; position: absolute; inset: 3px; border: 1px solid var(--hair-soft); pointer-events: none; }
.hero__arch { outline: 1px solid var(--gold); outline-offset: 12px; }
.ribbon { border-top: 1px solid var(--hair-soft); border-bottom: 1px solid var(--hair-soft); }

/* Spaced capitals, a touch larger */
.eyebrow, .section-no { font-size: 14px; letter-spacing: 0.28em; }
.nav a { font-size: 14px; }
.btn { font-size: 14.5px; letter-spacing: 0.22em; }
.svc__more, .about__role, .letter__meta, .wpage__crumbs { font-size: 13.5px; }
.ribbon__word { font-size: 13.5px; }
.wed__count { font-size: 12px; }
.quote-card__name { font-size: 15.5px; }

/* Considered groupings: heading, description and button sit together */
.display { margin-bottom: 0.9rem; }
.section-no { margin-bottom: 0.9rem; }
.svc__head, .portfolio__head, .weddings__head, .ig__head { margin-bottom: clamp(1.75rem, 3vw, 2.5rem); }
.about__copy p + p, .cta__card p + .cta__actions { margin-top: 1.1rem; }
.cta__actions { margin-top: 1.5rem; }
.hero__lede { margin-top: 1.6rem; }
.hero__actions { margin-top: 1.8rem; }

/* =====================================================================
   Gallery as an album: large plates, matted insets, an arched print,
   delicate captions, one consistent margin
   ===================================================================== */
.album { display: grid; gap: clamp(4.5rem, 8vw, 7.5rem); margin-top: clamp(2rem, 4vw, 3rem); }
.spread { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); align-items: start; position: relative; }
.pic { margin: 0; position: relative; min-width: 0; }
.pic__btn { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.pic__btn img { display: block; width: 100%; object-fit: cover; transition: opacity 0.4s var(--ease); }
.pic__btn:hover img { opacity: 0.92; }
.pic__cap { margin-top: 0.75rem; font-family: var(--serif); font-style: italic; font-size: 15.5px; line-height: 1.3; color: var(--ink-soft); }
.pic--mat .pic__btn { padding: 12px; box-shadow: 0 1px 2px rgba(36, 51, 43, 0.06), 0 26px 44px -30px rgba(36, 51, 43, 0.5); }
.pic--arch .pic__btn { padding: 0; outline: 1px solid var(--gold); outline-offset: 10px; border-radius: 999px 999px 0 0; }
.pic--arch .pic__btn img { border-radius: 999px 999px 0 0; }
.pic--arch .pic__cap { margin-top: 1.4rem; text-align: center; }
.pic--mat .pic__cap { padding-left: 12px; }

@media (min-width: 901px) {
  /* a: large plate, matted portrait tucked over its corner */
  .pic--1 { grid-column: 1 / 9; grid-row: 1; }
  .pic--1 img { aspect-ratio: 3 / 2; }
  .pic--2 { grid-column: 8 / 11; grid-row: 1; z-index: 2; margin-top: 30%; }
  .pic--2 img { aspect-ratio: 3 / 4; }
  /* b: two portraits, the second an arched print set lower */
  .pic--3 { grid-column: 2 / 6; }
  .pic--3 img { aspect-ratio: 4 / 5; }
  .pic--4 { grid-column: 7 / 11; margin-top: clamp(4rem, 8vw, 7rem); }
  .pic--4 img { aspect-ratio: 3 / 4; }
  /* c: wide plate with a matted portrait over its left edge */
  .pic--5 { grid-column: 4 / 13; grid-row: 1; }
  .pic--5 img { aspect-ratio: 3 / 2; }
  .pic--5 .pic__cap { text-align: right; }
  .pic--6 { grid-column: 1 / 5; grid-row: 1; z-index: 2; margin-top: 12%; }
  .pic--6 img { aspect-ratio: 2 / 3; }
  /* d: small matted print beside an arched portrait */
  .pic--7 { grid-column: 2 / 5; margin-top: clamp(3rem, 7vw, 6rem); }
  .pic--7 img { aspect-ratio: 2 / 3; }
  .pic--8 { grid-column: 6 / 10; }
  .pic--8 img { aspect-ratio: 2 / 3; }
  /* e: two landscapes stepping down, the second matted on top */
  .pic--9 { grid-column: 1 / 8; grid-row: 1; }
  .pic--9 img { aspect-ratio: 3 / 2; }
  .pic--10 { grid-column: 7 / 13; grid-row: 1; z-index: 2; margin-top: 26%; }
  .pic--10 img { aspect-ratio: 3 / 2; }
}
@media (max-width: 900px) {
  .album { gap: 2.75rem; }
  .spread { display: flex; flex-direction: column; gap: 2.75rem; }
  .pic--bare img { aspect-ratio: 4 / 5; }
  .pic--1 img, .pic--5 img, .pic--9 img { aspect-ratio: 3 / 2; }
  .pic--mat { width: 80%; align-self: flex-end; }
  .pic--arch { width: 80%; align-self: flex-start; margin-left: 10px; }
  .pic--mat img, .pic--arch img { aspect-ratio: 3 / 4; }
  .pic--10 img { aspect-ratio: 3 / 2; }
}
.pic--2 .pic__cap { text-align: right; }
.hero__script { margin-top: 1.2rem; }
@media (max-width: 900px) { .hero__script { margin-left: 0.6em; } }
/* Script sign-off aligned left; one green (evergreen) for all type */
.hero__script { margin-left: 0 !important; }
.hero__title-em, .display em, h1 em, h2 em, h3 em, .quote-card__text em, .philosophy__quote em, .about__copy em { color: var(--evergreen); }

/* Hero stamp: blind emboss, larger, pressed into the paper beside the arch */
.hero__watermark {
  --w: clamp(34px, calc(var(--room) * 0.62), 104px);
  top: 50%; transform: translateY(-50%);
  opacity: 1; color: #e7e1d5;
  filter: drop-shadow(1px 1px 0 rgba(255, 255, 255, 0.95)) drop-shadow(-1px -1px 0 rgba(36, 51, 43, 0.17));
}

/* Hero sign-off: smaller, a quiet handwritten close */
.hero__script { font-size: clamp(2.1rem, 3.3vw, 3.1rem); transform: rotate(-3deg); margin-top: 0.9rem; }

/* Oct 20 pm: neutral ivory papers (no yellow or pink cast), faint steps only */
:root {
  --marble: #fcfbf9;     /* page */
  --mist: #f9f8f5;       /* wash */
  --label: #f6f5f1;      /* section band, a faint step from the page */
  --label-deep: #efede8;
  --cotton: #fefefc;     /* cards */
  --tooth: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .4 0 0 0 0 .38 0 0 0 .035 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.svc__card, .cta__card, .page-home .cta__card { background-color: var(--cotton); }
/* Script sits on the same left edge as the copy, upright */
.hero__script { transform: none !important; margin: 0.6rem 0 0 0 !important; display: block; }
.signature { transform: none; }
.cta__card .display em { color: var(--evergreen); }

/* Ivory and gold lead; deep green is the accent */
:root { --hair: rgba(168, 133, 71, 0.75); --hair-soft: rgba(168, 133, 71, 0.5); }
.svc__card::before, .cta__card::before { border-color: var(--hair-soft); }
.nav__cta { border-color: var(--gold); color: var(--evergreen); }
.nav__cta::before { border-color: var(--hair-soft); }
.nav__cta:hover { background: var(--evergreen); color: var(--marble); }
.btn--solid::after { border-color: rgba(212, 183, 124, 0.8); }
.svc__card { box-shadow: 0 1px 2px rgba(36, 51, 43, 0.04), 0 18px 36px -28px rgba(36, 51, 43, 0.25); }
.ribbon { border-color: var(--hair-soft); }
.stat__num, .svc__num { color: var(--gold); }

/* Final homepage refinements (Oct 20) */
/* 1. Smallest text a step larger */
.nav a { font-size: 15px; }
.brand__by { font-size: 23px; }
.eyebrow, .section-no { font-size: 14.5px; }
.svc__tag { font-size: 1.28rem; }
.svc__more, .about__role, .letter__meta, .wpage__crumbs { font-size: 14px; }
.btn--line, .btn { font-size: 15px; }
.wed__credit { font-size: 14.5px; }
.wed__name { font-size: 1.55rem; }
.wed__count { font-size: 12.5px; }
.ribbon__word { font-size: 14px; }
.pic__cap { font-size: 16.5px; }
.site-footer__col a, .site-footer__col span, .site-footer__brand p { font-size: 15.5px; }
.site-footer__bar, .site-footer__bar p { font-size: 13.5px; }
/* 2. Brighter testimonial photo: lighter wash, the quote keeps its contrast */
.quote-card--photo::after { background: radial-gradient(ellipse 55% 60% at 50% 48%, rgba(20, 29, 24, 0.5), rgba(20, 29, 24, 0.14) 80%), linear-gradient(rgba(20, 29, 24, 0.1), rgba(20, 29, 24, 0.18)); }
.quote-card--photo .quote-card__bg { filter: brightness(1.08) saturate(1.05); }
.quote-card--photo .quote-card__text { text-shadow: 0 1px 22px rgba(0, 0, 0, 0.45), 0 0 2px rgba(0, 0, 0, 0.25); }
/* 3. Wedding cards line up: image tops and names on one line */
.weddings .wed:nth-child(n) { margin-top: 0 !important; }
.weddings .wed__frame { aspect-ratio: 4 / 5; }
.weddings .wed__frame img { width: 100%; height: 100%; object-fit: cover; }
/* 4. Smiling Ashley in the arch */
.about--short img, .about__photo img { object-position: center 25%; }
/* About page: landscape inset of Ashley styling a table */
.about:not(.about--short) .about__small { aspect-ratio: 5 / 4; width: 58%; }
.about:not(.about--short) .about__small img { width: 100%; height: 100%; object-fit: cover; object-position: 45% center; }
.about:not(.about--short) .about__arch img { object-position: center 22%; }
.wpage__crumbs { font-family: var(--serif); font-weight: 600; letter-spacing: 0.26em; }
.about__small { border-color: var(--cotton); }

/* Gold as a quiet detail: one muted 1px line, used sparingly (Oct 20) */
:root { --gold-line: rgba(168, 133, 71, 0.55); }
.hero__arch { outline: 1px solid var(--gold-line); outline-offset: 12px; }
/* Wedding arches match the hero: fine gold line with a small gap */
.weddings .wed__frame, .wed__frame { outline: 1px solid var(--gold-line) !important; outline-offset: 9px !important; overflow: hidden; }
.wed__btn:hover .wed__frame, .wed__btn:focus-visible .wed__frame { outline-offset: 9px !important; outline-color: var(--gold) !important; }
.wed { padding-top: 10px; }
/* Ashley's portraits stay unframed */
.about__arch { outline: 0 !important; }
/* Service cards: keep the fine inner border, no shadow */
.svc__card, .svc__cards { box-shadow: none !important; }
.svc__card::before { border-color: var(--gold-line); }
/* Inquiry card: one fine gold border, no shadow, like a printed invitation */
.cta__card, .page-home .cta__card { box-shadow: none !important; border: 1px solid var(--gold-line) !important; }
.cta__card::before { content: none !important; }
/* Homepage portrait crop */
.about--short .about__arch img { object-position: center 18%; }
/* Homepage portrait of Ashley: true portrait proportions */
.about--short { align-items: center; }
.about--short .about__art { max-width: 380px; width: 100%; justify-self: center; }
.about--short .about__arch { aspect-ratio: 3 / 4 !important; height: auto !important; width: 100%; }
.about--short .about__arch img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
/* Service cards sit directly on the band, no panel behind */
.svc__cards { background: none !important; padding: 0 !important; gap: clamp(1rem, 2vw, 1.6rem) !important; }
.about:not(.about--short) .about__arch img { object-position: center 15%; }

/* =====================================================================
   Gallery: facing pages (option B). Each spread is a cotton album page,
   two prints with a quiet center fold, sizes alternating page to page.
   ===================================================================== */
.album { gap: clamp(2.5rem, 5vw, 4rem); }
.spread {
  display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(3rem, 6vw, 6rem); align-items: center;
  padding: clamp(2.5rem, 5vw, 4.5rem); background: var(--cotton) var(--tooth);
  border: 1px solid rgba(168, 133, 71, 0.18);
}
.spread::after { content: ""; position: absolute; top: 8%; bottom: 8%; left: 50%; width: 1px; background: linear-gradient(transparent, rgba(168, 133, 71, 0.3), transparent); }
.spread .pic { grid-column: auto !important; grid-row: auto !important; margin-top: 0 !important; z-index: auto !important; width: 100%; }
.spread .pic img { aspect-ratio: 4 / 5 !important; }
.pic--mat .pic__btn { padding: 0; box-shadow: none; background: none; }
.spread .pic:nth-child(2) { width: 78%; justify-self: center; }
.spread:nth-child(even) .pic:nth-child(1) { width: 78%; justify-self: center; }
.spread:nth-child(even) .pic:nth-child(2) { width: 100%; }
.pic__cap { text-align: center !important; padding: 0 !important; margin-top: 0.9rem; }
@media (max-width: 900px) {
  .spread { display: flex; flex-direction: column; gap: 2rem; padding: 1.75rem 1.5rem 2rem; }
  .spread::after { top: 50%; bottom: auto; left: 12%; right: 12%; width: auto; height: 1px; background: linear-gradient(90deg, transparent, rgba(168, 133, 71, 0.3), transparent); }
  .spread .pic, .spread .pic:nth-child(2), .spread:nth-child(even) .pic:nth-child(1), .spread:nth-child(even) .pic:nth-child(2) { width: 100%; align-self: stretch; margin-left: 0; }
  .spread .pic:nth-child(2) { width: 82%; align-self: center; }
}
@media (max-width: 900px) { .spread::after { content: none; } }

/* Homepage portrait of Ashley: plain portrait print, no arch, border or shadow */
.about--short .about__arch { border-radius: 0 !important; outline: 0 !important; box-shadow: none !important; border: 0 !important; aspect-ratio: 3 / 4 !important; }
.about--short .about__arch img { border-radius: 0 !important; }

/* Testimonial over the ceremony: quote on a soft dark gradient up top,
   the couple and guests bright below, on desktop and phone */
.quote-card.quote-card--photo {
  display: flex; flex-direction: column; justify-content: flex-start;
  min-height: clamp(560px, 50vw, 760px);
  padding-block: clamp(3.25rem, 6vw, 5.5rem) 0;
}
.quote-card--photo .quote-card__bg { object-position: center 78%; filter: brightness(1.08) saturate(1.05); }
.quote-card--photo::after {
  background: linear-gradient(to bottom, rgba(18, 26, 21, 0.66) 0%, rgba(18, 26, 21, 0.5) 32%, rgba(18, 26, 21, 0.16) 58%, rgba(18, 26, 21, 0) 76%) !important;
}
@media (max-width: 900px) {
  .quote-card.quote-card--photo { min-height: 640px; padding-top: 2.75rem; }
  .quote-card--photo .quote-card__bg { object-position: 50% 100%; }
  .quote-card--photo .quote-card__text--testimonial { font-size: 1.4rem; }
  .quote-card--photo::after { background: linear-gradient(to bottom, rgba(18, 26, 21, 0.7) 0%, rgba(18, 26, 21, 0.52) 42%, rgba(18, 26, 21, 0.1) 66%, rgba(18, 26, 21, 0) 80%) !important; }
}

/* Footer inquiry button: one line, quieter gold double rule */
.site-footer .btn--solid { white-space: nowrap; padding: 0.95rem 1.7rem; font-size: 13.5px; letter-spacing: 0.22em; border-color: rgba(201, 168, 106, 0.7); width: auto; max-width: 100%; }
.site-footer .btn--solid::after { border-color: rgba(201, 168, 106, 0.35); }
@media (max-width: 1100px) and (min-width: 901px) { .site-footer .btn--solid { padding-inline: 1.2rem; letter-spacing: 0.16em; } }
/* Footer copy a step smaller */
.site-footer__col a:not(.btn), .site-footer__col span, .site-footer__col p, .site-footer__brand p { font-size: 14px !important; line-height: 1.55; }
.site-footer__bar, .site-footer__bar p { font-size: 12.5px !important; }
.site-footer__handle { font-size: 1.05rem !important; }

/* EWAH stamp lives in Meet Ashley now (blind emboss), not the hero */
.hero__watermark { display: none !important; }
.about--short { position: relative; }
.about--short .about__watermark {
  display: block; position: absolute; left: max(12px, calc((100vw - var(--max)) / 2 + var(--gutter) * 0.25)); top: 50%; transform: translateY(-50%);
  width: clamp(40px, 4.6vw, 72px); opacity: 1; color: #eceae4;
  filter: drop-shadow(1px 1px 0 rgba(255, 255, 255, 0.95)) drop-shadow(-1px -1px 0 rgba(36, 51, 43, 0.17));
}
@media (max-width: 900px) { .about--short .about__watermark { display: none; } }

/* Gold outlined button, same as Inquire in the header */
.btn--gold { position: relative; background: transparent; color: var(--evergreen); border: 1px solid var(--gold); padding: 0.95rem 1.9rem; margin-top: 1.4rem; }
.btn--gold::before { content: ""; position: absolute; inset: 3px; border: 1px solid var(--hair-soft); pointer-events: none; }
.btn--gold:hover { background: var(--evergreen); color: var(--marble); border-color: var(--evergreen); }
.about--short .about__watermark { left: auto; right: max(16px, calc((100vw - var(--max)) / 2 + var(--gutter) * 0.9)); width: clamp(44px, 5vw, 78px); }
@media (max-width: 1200px) { .about--short .about__watermark { display: none; } }

/* =====================================================================
   FINAL PALETTE (Oct 20). Every color on the site comes from this list.
   Evergreen #24332B: the one green (headlines, buttons, footer)
   Ink #2C3630 / Ink soft #3D4741: body and small text
   Gold #A88547 / Gold deep #86682F (small text) / Gold light #C9A86A (on evergreen only)
   Page ivory #FCFBF9 / Band ivory #F6F5F1 / Cotton #FEFEFC
   Lines: gold at 55% on light, gold light at 55% on evergreen, evergreen at 20% for dividers
   ===================================================================== */
:root {
  --evergreen: #24332b; --sage: #24332b; --sage-dark: #24332b; --sage-wash: #f6f5f1;
  --ink: #2c3630; --ink-soft: #3d4741;
  --gold: #a88547; --gold-deep: #86682f; --gold-light: #c9a86a;
  --marble: #fcfbf9; --label: #f6f5f1; --mist: #f6f5f1; --label-deep: #f6f5f1; --cotton: #fefefc; --white: #fefefc;
  --gold-line: rgba(168, 133, 71, 0.55); --hair: rgba(168, 133, 71, 0.55); --hair-soft: rgba(168, 133, 71, 0.55);
  --gold-soft: rgba(168, 133, 71, 0.55); --gold-line-dark: rgba(201, 168, 106, 0.55);
  --rule: rgba(36, 51, 43, 0.2); --rule-strong: rgba(36, 51, 43, 0.2);
}
/* Lines on light paper */
.ribbon, .ribbon::before, .ribbon::after, .spread, .site-footer::before, .about--short::before,
.viewer__top, .viewer__strip { border-color: var(--gold-line) !important; }
.ribbon::before, .ribbon::after, .offer li::after { background-color: var(--gold-line) !important; }
.btn--solid::after { border-color: var(--gold-line-dark) !important; }
.faq__item, .stats, .offer { border-color: var(--rule) !important; }
/* Footer on evergreen: ivory text, gold light accents */
.site-footer { color: var(--label); }
.site-footer .site-footer__logo, .site-footer__col a:not(.btn), .site-footer .lockup { color: var(--label) !important; }
.site-footer .lockup { background-color: var(--label) !important; }
.site-footer__col span, .site-footer__brand p, .site-footer__handle, .site-footer__bar, .site-footer__bar p, .envelope__line, .envelope__follow { color: rgba(246, 245, 241, 0.72) !important; }
.site-footer h3, .site-footer__col h3 { color: var(--gold-light) !important; }
.site-footer .btn--solid { color: var(--label) !important; border-color: var(--gold-line-dark) !important; }
.site-footer .btn--solid::after { border-color: var(--gold-line-dark) !important; }
.site-footer__bar { border-color: var(--gold-line-dark) !important; }
.site-footer .social a, .site-footer__social a { border-color: var(--gold-line-dark) !important; color: var(--label) !important; }
/* Buttons */
.btn--solid { color: var(--marble) !important; }
.btn--solid:hover { background: var(--evergreen); }
.btn--solid:hover::after { border-color: var(--gold) !important; }
/* Testimonial on the photo: page ivory and gold light only */
.quote-card--photo .quote-card__text, .quote-card--photo .quote-card__text em { color: var(--marble) !important; }
.quote-card__name, .quote-card__role { color: var(--gold-light) !important; }
/* Cards and panels: cotton, never plain white */
.letter, .thanks__card, .inq__form, .about__small { background-color: var(--cotton) !important; }
.wed__view, .lightbox__close { color: var(--marble) !important; }
.viewer__arrow { background-color: rgba(252, 251, 249, 0.92) !important; }
.site-header { background-color: rgba(252, 251, 249, 0.96) !important; }
.wed__frame, .ig__tile, .inq__map, img { background-color: var(--label); }
/* Stamp: blind emboss everywhere it appears */
.about__watermark { color: #eceae4 !important; opacity: 1 !important; filter: drop-shadow(1px 1px 0 rgba(255, 255, 255, 0.95)) drop-shadow(-1px -1px 0 rgba(36, 51, 43, 0.17)); }
.site-footer .social-icons a { color: var(--label) !important; border-color: var(--gold-line-dark) !important; }
.steps li::after, .steps li::before { background-color: var(--gold-line) !important; }

/* Testimonial attribution: legible over the photo */
.quote-card__cite { margin-top: 1.5rem; gap: 0.3rem; }
.quote-card__name { color: var(--marble) !important; font-size: 16px; letter-spacing: 0.28em; text-shadow: 0 1px 14px rgba(0, 0, 0, 0.6), 0 0 2px rgba(0, 0, 0, 0.45); }
.quote-card__role { color: var(--gold-light) !important; font-size: 1.15rem; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.65), 0 0 2px rgba(0, 0, 0, 0.5); }
.quote-card--photo::after { background: linear-gradient(to bottom, rgba(18, 26, 21, 0.68) 0%, rgba(18, 26, 21, 0.56) 38%, rgba(18, 26, 21, 0.22) 62%, rgba(18, 26, 21, 0) 80%) !important; }
@media (max-width: 900px) { .quote-card--photo::after { background: linear-gradient(to bottom, rgba(18, 26, 21, 0.72) 0%, rgba(18, 26, 21, 0.6) 48%, rgba(18, 26, 21, 0.18) 70%, rgba(18, 26, 21, 0) 84%) !important; } }
.quote-card--photo .quote-card__cite { position: relative; padding: 0.6rem 1.6rem; }
.quote-card--photo .quote-card__cite::before { content: ""; position: absolute; inset: -0.6rem -2rem; background: radial-gradient(ellipse at center, rgba(18, 26, 21, 0.45), rgba(18, 26, 21, 0) 70%); z-index: -1; }
.quote-card--photo .quote-card__name { font-size: 17px !important; font-weight: 600; color: var(--marble) !important; }
.quote-card--photo .quote-card__role { font-size: 1.3rem !important; color: var(--marble) !important; opacity: 0.92; }

/* Testimonial: one soft, feathered shade behind the words only; faces stay natural */
.quote-card--photo::after {
  background:
    radial-gradient(ellipse 46% 42% at 50% 24%, rgba(18, 26, 21, 0.5) 0%, rgba(18, 26, 21, 0.34) 45%, rgba(18, 26, 21, 0.12) 75%, rgba(18, 26, 21, 0) 100%),
    linear-gradient(to bottom, rgba(18, 26, 21, 0.22) 0%, rgba(18, 26, 21, 0) 42%) !important;
}
.quote-card--photo .quote-card__cite::before { content: none !important; }
@media (max-width: 900px) {
  .quote-card--photo::after {
    background:
      radial-gradient(ellipse 95% 36% at 50% 22%, rgba(18, 26, 21, 0.56) 0%, rgba(18, 26, 21, 0.36) 50%, rgba(18, 26, 21, 0) 100%),
      linear-gradient(to bottom, rgba(18, 26, 21, 0.2) 0%, rgba(18, 26, 21, 0) 40%) !important;
  }
}
@media (max-width: 900px) {
  .quote-card--photo::after {
    background:
      radial-gradient(ellipse 100% 48% at 50% 30%, rgba(18, 26, 21, 0.62) 0%, rgba(18, 26, 21, 0.42) 55%, rgba(18, 26, 21, 0) 100%),
      linear-gradient(to bottom, rgba(18, 26, 21, 0.22) 0%, rgba(18, 26, 21, 0) 45%) !important;
  }
}

/* Inquiry card on a wedding photo (Services, FAQ): same soft shade as the homepage testimonial */
.cta.cta--photo { position: relative; overflow: hidden; background: var(--evergreen) !important; box-shadow: none !important; clip-path: none !important;
  margin-inline: calc(50% - 50vw); padding: clamp(4.5rem, 9vw, 7.5rem) var(--gutter); display: flex; justify-content: center; }
.cta--photo .cta__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(1.04) saturate(1.04); }
.cta--photo::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 52% 60% at 50% 50%, rgba(18, 26, 21, 0.5) 0%, rgba(18, 26, 21, 0.3) 50%, rgba(18, 26, 21, 0.08) 85%, rgba(18, 26, 21, 0) 100%); }
.cta--photo .cta__card { position: relative; z-index: 1; max-width: 760px; width: 100%; background: var(--cotton) !important; }
@media (max-width: 900px) { .cta.cta--photo { padding: 3.5rem 1.25rem; } .cta--photo::after { background: radial-gradient(ellipse 90% 60% at 50% 50%, rgba(18, 26, 21, 0.5), rgba(18, 26, 21, 0.1) 85%, rgba(18, 26, 21, 0)); } }

/* Inquire page: narrower left panel */
.inq { grid-template-columns: minmax(300px, 0.55fr) 1.45fr; }
@media (max-width: 900px) { .inq { grid-template-columns: 1fr; } }
/* Photo inquiry band: card sits high, the wedding shows below it */
.cta.cta--photo { align-items: flex-start; padding-top: clamp(3.5rem, 6vw, 5rem); padding-bottom: clamp(16rem, 26vw, 24rem); }
.cta--photo::after { background: radial-gradient(ellipse 55% 50% at 50% 30%, rgba(18, 26, 21, 0.48) 0%, rgba(18, 26, 21, 0.26) 55%, rgba(18, 26, 21, 0) 100%) !important; }
@media (max-width: 900px) { .cta.cta--photo { padding-bottom: 15rem; } }

/* Corporate & charity events (Oct 20 brief) */
.events { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; padding-block: clamp(3.5rem, 7vw, 5.5rem); max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.events__media { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.events__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.events__copy { max-width: 34rem; }
.events__copy .display { margin-bottom: 1rem; }
.events__copy p:not(.section-no) { color: var(--ink); margin: 0 0 1.6rem; }
.events--text { grid-template-columns: 1fr; text-align: center; }
.events--text .events__copy { margin-inline: auto; }
.events--text .section-no { justify-content: center; }
.page-home .events { background: var(--marble); box-shadow: 0 0 0 100vmax var(--marble); clip-path: inset(0 -100vmax); }
.page-home .cta { background: var(--label) !important; box-shadow: 0 0 0 100vmax var(--label) !important; clip-path: inset(0 -100vmax) !important; }
.page-home .ig { background: var(--marble) !important; box-shadow: 0 0 0 100vmax var(--marble) !important; }
@media (max-width: 900px) { .events { grid-template-columns: 1fr; } .events__copy { text-align: left; } }
/* Homepage script accents ("meet", "let's talk") */
.about--short .script-kicker--hand, .cta .script-kicker--hand { display: block; }
/* Phone eyebrow: two clean lines */
@media (max-width: 600px) {
  .hero .eyebrow { font-size: 11.5px; letter-spacing: 0.2em; line-height: 1.9; }
  .hero .eyebrow .dot:first-of-type { display: block; width: 100%; height: 0; margin: 0; background: none; }
}
/* Never leave content hidden if the scroll animation fails */
@keyframes reveal-failsafe { to { opacity: 1; transform: none; } }
.js .reveal:not(.is-visible) { animation: reveal-failsafe 0.6s ease 3.5s forwards; }

/* =====================================================================
   Editorial refinement (Oct 20): larger hero photo, serif italic accents,
   bigger headings, green events band, stronger quote shade
   ===================================================================== */
/* Hero: photo about 40% of the content width, height matched to the text group */
.hero { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(2.5rem, 5vw, 5.5rem); }
.hero__art { width: 100%; justify-self: stretch; }
.hero__arch { aspect-ratio: 4 / 5; }
.hero__lede { font-size: 17.5px; max-width: 32em; }
.hero__title { font-size: clamp(3.1rem, 5.8vw, 5.7rem); }

/* Accents: refined serif italics instead of script (signature keeps its script) */
.hero__script, .script-kicker--hand, p.script-kicker, .script-kicker, .brand__by, .quote-card__role {
  font-family: var(--serif) !important; font-style: italic !important; font-weight: 500 !important; letter-spacing: 0.01em !important;
}
.hero__script { font-size: clamp(1.9rem, 3vw, 2.7rem) !important; color: var(--gold-deep); margin-top: 0.7rem !important; }
.script-kicker--hand { font-size: 0.5em !important; color: var(--gold-deep) !important; margin-bottom: 0.2em; }
p.script-kicker.script-kicker--hand { font-size: 1.45rem !important; }
.brand__by { font-size: 15px !important; color: var(--gold-deep) !important; margin-top: 0.1rem; }
.signature { font-family: "Corinthia", "Pinyon Script", cursive !important; font-style: normal !important; }

/* Section headings a step larger */
.display { font-size: clamp(2.3rem, 4.3vw, 3.9rem); line-height: 1.05; }
.page-head .display { font-size: clamp(2.4rem, 4.6vw, 4rem); }
@media (max-width: 600px) { .display { font-size: 2.15rem; } .hero__title { font-size: 2.85rem; } }

/* Corporate & charity: deep green band, photo beside copy */
.page-home .events, .events {
  background: var(--evergreen) !important; box-shadow: 0 0 0 100vmax var(--evergreen) !important; clip-path: inset(0 -100vmax) !important;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) !important; text-align: left !important;
  padding-block: clamp(4rem, 8vw, 6.5rem); color: var(--label);
}
.events .events__copy { margin: 0; text-align: left; }
.events .section-no { color: var(--gold-light); justify-content: flex-start; }
.events .display { color: #fcfbf9; }
.events__copy p:not(.section-no) { color: rgba(246, 245, 241, 0.86); font-size: 16.5px; }
.events .btn--gold { color: #fcfbf9; border-color: var(--gold-light); }
.events .btn--gold::before { border-color: rgba(201, 168, 106, 0.45); }
.events .btn--gold:hover { background: var(--gold-light); color: var(--evergreen); }
.events__media { aspect-ratio: 4 / 3; }
.events__media--missing { display: grid; place-items: center; border: 1px dashed rgba(201, 168, 106, 0.7); background: rgba(246, 245, 241, 0.06); text-align: center; font: italic 500 1.15rem/1.6 var(--serif); color: var(--gold-light); }
@media (max-width: 900px) { .events, .page-home .events { grid-template-columns: 1fr !important; } }

/* Testimonial: localized shade sits right behind the quote */
.quote-card--photo::after {
  background: radial-gradient(ellipse 44% 36% at 50% 24%, rgba(16, 22, 18, 0.62) 0%, rgba(16, 22, 18, 0.44) 45%, rgba(16, 22, 18, 0.14) 78%, rgba(16, 22, 18, 0) 100%) !important;
}
@media (max-width: 900px) {
  .quote-card--photo::after { background: radial-gradient(ellipse 100% 42% at 50% 27%, rgba(16, 22, 18, 0.66) 0%, rgba(16, 22, 18, 0.46) 52%, rgba(16, 22, 18, 0) 100%) !important; }
}
.hero__copy { min-width: 0; }
.hero .eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.8rem; letter-spacing: 0.24em; }
.quote-card--photo::after {
  background: radial-gradient(ellipse 50% 40% at 50% 25%, rgba(16, 22, 18, 0.58) 0%, rgba(16, 22, 18, 0.38) 40%, rgba(16, 22, 18, 0.12) 72%, rgba(16, 22, 18, 0) 95%) !important;
}
/* Phone: hero stacks, photo below the words */
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr !important; }
  .hero__art { max-width: 420px; justify-self: center; }
  .quote-card--photo::after { background: radial-gradient(ellipse 140% 46% at 50% 26%, rgba(16, 22, 18, 0.66) 0%, rgba(16, 22, 18, 0.48) 50%, rgba(16, 22, 18, 0.1) 85%, rgba(16, 22, 18, 0) 100%) !important; }
  .quote-card--photo .quote-card__figure { padding-inline: 0.75rem; }
}

/* =====================================================================
   ALTERNATIVE HOMEPAGE (/home-b/): editorial direction for comparison.
   Fewer small labels, larger headings, roomier spacing, one expansive
   photograph between the weddings and the events band.
   ===================================================================== */
.alt .section-no:not(.events .section-no) { display: none; }
.alt .display { font-size: clamp(2.6rem, 5.2vw, 4.7rem); line-height: 1.02; letter-spacing: -0.01em; margin-bottom: 1.2rem; }
.alt .hero { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); min-height: 92vh; padding-top: 8.5rem; }
.alt .hero__title { font-size: clamp(3.4rem, 6.6vw, 6.6rem); line-height: 0.98; }
.alt .hero__arch { aspect-ratio: 4 / 5.2; }
.alt .svc, .alt .about--short, .alt .weddings:not(.weddings--page), .alt .cta, .alt .ig { padding-block: clamp(4.5rem, 9vw, 8rem) !important; }
.alt .svc__card::before { inset: 0; }
.alt .svc__card { padding: 2.6rem 2rem; }
.alt .svc__card h3 { font-size: 1.7rem; }
.alt .about--short { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(3rem, 7vw, 7rem); }
.alt .about--short .about__art { max-width: 520px !important; }
.alt .about--short .about__watermark { display: none !important; }
.alt .about__copy p { font-size: 17px; }
.alt .weddings .wed__name { font-size: 1.8rem; }
.alt-band { margin-inline: calc(50% - 50vw); height: clamp(320px, 52vw, 680px); overflow: hidden; }
.alt-band img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; }
.alt .cta__card { padding-block: clamp(3.5rem, 7vw, 5.5rem) !important; }
@media (max-width: 600px) { .alt .display { font-size: 2.4rem; } .alt .hero__title { font-size: 3rem; } .alt .about--short { grid-template-columns: 1fr; } }
.hero .eyebrow { font-size: 12px; letter-spacing: 0.2em; }
.alt .hero { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.alt .hero__title { font-size: clamp(3.2rem, 5.4vw, 5.6rem); }
.alt .about__copy p.signature { font-size: 3.8rem; }

/* =====================================================================
   Round of refinements (Oct 20, 4pm)
   ===================================================================== */
/* Hero: bigger headline with more air, photo ~12% larger */
.alt .hero { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: clamp(3rem, 6vw, 6.5rem); padding-bottom: 5rem; }
.alt .hero__title { font-size: clamp(3.4rem, 6vw, 6.2rem); line-height: 1.02; margin-top: 1.8rem; }
.alt .hero__title-em { display: block; margin-top: 0.15em; }
.alt .hero__lede { margin-top: 2.2rem; font-size: 19px; line-height: 1.55; max-width: 26em; font-family: var(--serif); font-style: italic; color: var(--ink); }
.alt .hero__actions { margin-top: 2.6rem; }
.alt .hero__arch { aspect-ratio: 4 / 5.1; }

/* Testimonial: quote on ivory, the ceremony photo full width below it */
.quote-split { margin-inline: calc(50% - 50vw); background: var(--label); }
.quote-split__words { margin: 0 auto; max-width: 52rem; padding: clamp(4rem, 8vw, 6.5rem) var(--gutter) clamp(3rem, 6vw, 4.5rem); text-align: center; }
.quote-split .quote-card__text { color: var(--evergreen) !important; text-shadow: none !important; font-size: clamp(1.7rem, 3vw, 2.5rem) !important; line-height: 1.3; font-style: italic; margin: 0 auto; max-width: 30em; }
.quote-split .quote-card__name { color: var(--gold-deep) !important; text-shadow: none !important; }
.quote-split .quote-card__role { color: var(--ink-soft) !important; text-shadow: none !important; opacity: 1 !important; }
.quote-split__photo { height: clamp(360px, 48vw, 680px); overflow: hidden; }
.quote-split__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 62%; display: block; }

/* Services: editorial three columns with fine dividers, no card boxes */
.alt .svc__cards { gap: 0 !important; max-width: 1180px; }
.alt .svc__card { background: none !important; background-image: none !important; box-shadow: none !important; border: 0 !important; padding: 0.5rem clamp(1.5rem, 3vw, 3rem) !important; text-align: center; transform: none !important; }
.alt .svc__card::before { content: none !important; }
.alt .svc__card + .svc__card { border-left: 1px solid var(--gold-line) !important; }
.alt .svc__card h3 { font-size: clamp(1.6rem, 2.2vw, 2rem); line-height: 1.15; }
.alt .svc__tag { font-size: 1.2rem; }
.alt .svc__card:hover { transform: none !important; }
@media (max-width: 900px) {
  .alt .svc__card { padding: 2rem 0.5rem !important; }
  .alt .svc__card + .svc__card { border-left: 0 !important; border-top: 1px solid var(--gold-line) !important; }
}

/* Ashley: larger name */
.alt .about--short .display { font-size: clamp(3rem, 5.6vw, 5rem); }

/* Weddings: larger photographs */
.alt .weddings:not(.weddings--page) .weddings__grid { max-width: 1240px !important; gap: clamp(1.6rem, 3vw, 3rem) !important; }
.alt .weddings .wed__frame { aspect-ratio: 4 / 5.2; }

/* Instagram: quieter */
.alt .ig { padding-block: clamp(3rem, 5vw, 4rem) !important; }
.alt .ig__head .display { font-size: clamp(1.5rem, 2.2vw, 1.9rem) !important; }
.alt .ig__head { margin-bottom: 1.4rem; }
.alt .ig .btn--line { font-size: 13px; }
.alt .ig__grid, .alt .ig__tiles { opacity: 0.94; }
.alt .hero .hero__lede { font-size: clamp(1.25rem, 1.6vw, 1.5rem) !important; line-height: 1.45 !important; }
.alt-band img { object-position: center 48%; }
/* Instagram: two rows of six, a touch larger */
.alt .ig { padding-block: clamp(3.5rem, 6vw, 5rem) !important; }
.alt .ig__head .display { font-size: clamp(1.9rem, 2.8vw, 2.4rem) !important; }
.ig__grid { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 700px) { .ig__grid { grid-template-columns: repeat(3, 1fr) !important; } }
.page-home .weddings:not(.weddings--page) { background: var(--label) !important; box-shadow: 0 0 0 100vmax var(--label) !important; clip-path: inset(0 -100vmax) !important; }
.page-home .cta { background: var(--marble) !important; box-shadow: 0 0 0 100vmax var(--marble) !important; clip-path: inset(0 -100vmax) !important; }
.page-home .ig { background: var(--label) !important; box-shadow: 0 0 0 100vmax var(--label) !important; clip-path: inset(0 -100vmax) !important; }

/* Editorial type strip beneath the hero */
.strip { margin-inline: calc(50% - 50vw); background: var(--label); padding-block: clamp(2.6rem, 5vw, 4.2rem); overflow: hidden; }
.strip__track { display: flex; width: max-content; animation: strip-drift 90s linear infinite; }
.strip__set { display: flex; align-items: baseline; flex-shrink: 0; }
.strip__word, .strip__still .strip__word { font-family: var(--serif); font-weight: 400; font-size: clamp(2.6rem, 4.6vw, 4.4rem); line-height: 1; color: var(--evergreen); letter-spacing: -0.005em; white-space: nowrap; }
.strip__word--em { font-style: italic; font-weight: 400; }
.strip__dot { color: var(--gold); font-family: var(--serif); font-size: clamp(1.6rem, 2.6vw, 2.4rem); padding-inline: clamp(1.4rem, 3vw, 2.8rem); line-height: 1; }
.strip__still { display: none; }
@keyframes strip-drift { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .strip__track { animation: none; } }
@media (max-width: 760px) {
  .strip { padding: 2.2rem 1.25rem; }
  .strip__track { display: none; }
  .strip__still { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; row-gap: 0.55rem; margin: 0 auto; max-width: 22rem; text-align: center; }
  .strip__still .strip__word { font-size: 2rem; }
  .strip__still .strip__dot { font-size: 1.3rem; padding-inline: 0.75rem; }
}
.page-home .quote-split { background: var(--marble); }
@media (max-width: 760px) {
  .strip__still { display: flex !important; flex-direction: column; align-items: center; gap: 0.7rem; max-width: none; }
  .strip__row { display: flex; align-items: baseline; justify-content: center; white-space: nowrap; }
  .strip__still .strip__word { font-size: clamp(1.45rem, 7vw, 1.9rem); }
  .strip__still .strip__dot { font-size: 1.05rem; padding-inline: 0.6rem; }
}
/* Type strip: smaller, in gold */
.strip { padding-block: clamp(1.3rem, 2.4vw, 1.9rem) !important; }
.strip__word, .strip__still .strip__word { font-size: clamp(1.35rem, 1.9vw, 1.75rem) !important; color: var(--gold-deep) !important; font-weight: 500 !important; }
.strip__dot { font-size: clamp(1rem, 1.3vw, 1.2rem) !important; padding-inline: clamp(1rem, 2vw, 1.8rem) !important; color: var(--gold) !important; }
.strip__track { animation-duration: 70s; }
@media (max-width: 760px) {
  .strip { padding: 1.3rem 1rem !important; }
  .strip__still { gap: 0.35rem !important; }
  .strip__still .strip__word { font-size: 1.2rem !important; }
  .strip__still .strip__dot { font-size: 0.9rem !important; padding-inline: 0.5rem !important; }
}
/* Body copy in the clean sans throughout */
.alt .hero .hero__lede { font-family: var(--sans) !important; font-style: normal !important; font-size: clamp(1.05rem, 1.25vw, 1.2rem) !important; line-height: 1.6 !important; color: var(--ink-soft) !important; }
.svc__tag, .alt .svc__tag { font-family: var(--sans) !important; font-style: normal !important; font-size: 15px !important; line-height: 1.6 !important; color: var(--ink-soft) !important; }
/* One body style everywhere */
:root { --body-size: 16.5px; }
.alt .hero .hero__lede, .svc__tag, .alt .svc__tag, .about__copy p:not(.section-no):not(.about__role):not(.signature), .alt .about__copy p:not(.section-no):not(.about__role),
.cta__card p:not(.script-kicker):not(.section-no), .weddings__intro, .lede, .page-head .lede, .offer__body, .offer p, .faq__item p, .wpage__intro, .events__copy p:not(.section-no) {
  font-family: var(--sans) !important; font-style: normal !important; font-size: var(--body-size) !important; line-height: 1.65 !important; color: var(--ink-soft) !important; font-weight: 400 !important;
}
@media (max-width: 600px) { :root { --body-size: 16px; } }
/* Instagram: back to one row */
.ig__grid { grid-template-columns: repeat(6, 1fr) !important; }
@media (max-width: 700px) { .ig__grid { grid-template-columns: repeat(3, 1fr) !important; } }

/* =====================================================================
   Homepage refinements (Oct 20 evening, on the editorial layout)
   Still type strip, smaller Meet Ashley portrait, one style for
   secondary text links, slightly clearer small text. No new colors or fonts.
   ===================================================================== */

/* Type strip: stationary, evenly spaced, thin gold separators */
.strip { overflow: visible; }
.strip__list {
  list-style: none; margin: 0 auto; padding: 0 var(--gutter); max-width: 1180px;
  display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline;
  column-gap: clamp(2rem, 4.4vw, 4rem); row-gap: 0.5rem;
}
.strip__list .strip__word {
  position: relative; margin: 0; white-space: nowrap;
  font-family: var(--serif); font-weight: 500 !important; line-height: 1.25;
  font-size: clamp(1.35rem, 1.9vw, 1.75rem) !important; color: var(--gold-deep) !important; letter-spacing: 0.01em;
}
.strip__list .strip__word:not(:first-child)::before {
  content: ""; position: absolute; top: 55%; left: calc(clamp(2rem, 4.4vw, 4rem) / -2);
  width: 1px; height: 0.8em; transform: translate(-50%, -50%); background: var(--gold-line);
}
.strip__break { display: none; }
@media (max-width: 1000px) {
  .strip__break { display: block; flex-basis: 100%; height: 0; }
  .strip__break + .strip__word::before { display: none; }
}
@media (max-width: 600px) {
  .strip { padding: 1.3rem 0 !important; }
  .strip__list { padding-inline: 1rem; column-gap: 1.5rem; row-gap: 0.35rem; }
  .strip__list .strip__word { font-size: 1.22rem !important; }
  .strip__list .strip__word:not(:first-child)::before { left: -0.75rem; }
}

/* Meet Ashley: portrait about 22% smaller (520px to 405px), on the left content edge, centered beside the intro */
.alt .about--short {
  grid-template-columns: minmax(0, 405px) minmax(0, 1fr);
  gap: clamp(3rem, 7vw, 6.5rem); align-items: center;
  padding-inline: max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter)));
}
.alt .about--short .about__art { width: 100%; max-width: 405px !important; justify-self: start; align-self: center; }
.alt .about--short .about__copy { max-width: 600px; }
@media (max-width: 900px) {
  .alt .about--short { grid-template-columns: 1fr; padding-inline: var(--gutter); }
  .alt .about--short .about__art { width: min(78%, 320px); max-width: 320px !important; justify-self: center; }
}

/* Secondary text links: one style everywhere on the homepage. Thin muted gold line about 8px under the letters. */
.page-home .btn--line, .page-home .svc__more {
  display: inline-block !important; position: relative;
  padding: 0 0 8px !important; min-height: 0; margin-right: -0.22em;
  border: 0 !important; border-radius: 0; background: none !important;
  font-family: var(--serif) !important; font-weight: 600 !important; font-size: 14.5px !important; line-height: 1.4 !important;
  letter-spacing: 0.22em !important; text-transform: uppercase; color: var(--evergreen) !important; text-decoration: none !important;
  transition: color 0.3s var(--ease);
}
.page-home .btn--line::before { content: none !important; }
.page-home .btn--line::after, .page-home .svc__more::after {
  content: "" !important; position: absolute; left: 0; right: 0.22em; bottom: 0; top: auto; height: 1px; width: auto;
  border: 0 !important; background: var(--gold-line) !important; transition: background-color 0.3s var(--ease);
}
.page-home .btn--line:hover, .page-home .btn--line:focus-visible,
.page-home .svc__card:hover .svc__more, .page-home .svc__card:focus-visible .svc__more { color: var(--gold-deep) !important; }
.page-home .btn--line:hover::after, .page-home .btn--line:focus-visible::after,
.page-home .svc__card:hover .svc__more::after, .page-home .svc__card:focus-visible .svc__more::after { background: var(--gold) !important; }
.page-home .svc__more { margin-top: 1.1rem; align-self: center; }
.page-home .hero__actions .btn--line { align-self: center; }
@media (max-width: 900px) { .page-home .cta__actions .btn--line { width: auto !important; } }

/* Small text: a touch larger and steadier, never heavier than medium */
.page-home .svc__tag, .page-home.alt .svc__tag { font-size: 16px !important; line-height: 1.65 !important; }
.page-home .wed__credit { font-size: 14.5px !important; line-height: 1.5; color: var(--ink-soft); }
.page-home .quote-split .quote-card__name { font-size: 15.5px !important; letter-spacing: 0.24em; }
.page-home .quote-split .quote-card__role { font-size: 1.25rem !important; font-weight: 500; }
.page-home .hero .eyebrow { font-size: 13px !important; color: var(--gold-deep) !important; }
.page-home .section-no, .page-home .about__role { color: var(--gold-deep) !important; }
@media (max-width: 600px) {
  .page-home .svc__tag, .page-home.alt .svc__tag { font-size: 15.5px !important; }
  .page-home .wed__credit { font-size: 14px !important; }
  .page-home .hero .eyebrow { font-size: 12px !important; }
}

/* =====================================================================
   Shorter footer (Oct 21)
   ===================================================================== */
.site-footer { padding-block: clamp(2.6rem, 4.5vw, 3.6rem) 0 !important; }
.site-footer__grid { gap: 1.6rem 3rem !important; align-items: start; }
.site-footer .site-footer__logo { width: 120px !important; }
.site-footer__brand p { margin-top: 0.9rem !important; max-width: 17em; }
.site-footer__col { gap: 0.45rem !important; }
.site-footer__col h3 { margin-bottom: 0.2rem !important; }
.site-footer__bar { margin-top: clamp(2rem, 4vw, 2.8rem) !important; padding-block: 1.1rem !important; }
@media (max-width: 760px) {
  .site-footer { padding: 2.4rem 1.5rem 0 !important; }
  .site-footer__grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 1.6rem 1.25rem !important; }
  .site-footer__brand { grid-column: 1 / -1; display: flex; align-items: center; gap: 1rem; }
  .site-footer .site-footer__logo { width: 96px !important; }
  .site-footer__brand p { display: none; }
  .site-footer__col:last-child { grid-column: 1 / -1; }
  .site-footer__col a:not(.btn), .site-footer__col span { font-size: 14.5px !important; }
  .site-footer__col a[href^="mailto"] { font-size: 13.5px !important; overflow-wrap: anywhere; }
  .site-footer .social-icons a, .site-footer__social a { width: 38px !important; height: 38px !important; }
  .site-footer__bar { margin-top: 1.8rem !important; padding-block: 1rem !important; flex-direction: column; gap: 0.2rem !important; }
  .site-footer__bar p { font-size: 12px !important; }
}

/* =====================================================================
   Phone hero spacing (Oct 21)
   ===================================================================== */
@media (max-width: 760px) {
  .alt .hero, .hero { padding: 6.2rem 1.5rem 2.6rem !important; min-height: 0 !important; gap: 2.2rem !important; }
  .hero .eyebrow { line-height: 1.6 !important; row-gap: 0.15rem !important; margin: 0 !important; font-size: 12px !important; }
  .alt .hero__title, .hero__title { font-size: 2.55rem !important; line-height: 1.04 !important; margin-top: 1.1rem !important; }
  .alt .hero__title-em { margin-top: 0.1em !important; white-space: nowrap; }
  .alt .hero .hero__lede, .hero__lede { margin-top: 1.2rem !important; }
  .alt .hero__actions, .hero__actions { margin-top: 1.6rem !important; gap: 1rem 1.6rem !important; }
  .hero__art { width: 86% !important; max-width: 360px !important; justify-self: center; }
}
.site-footer__grid { padding-top: 0 !important; margin-top: 0 !important; }
.site-footer { padding-top: clamp(2.4rem, 4vw, 3.2rem) !important; }
@media (max-width: 760px) {
  .site-footer { padding-top: 2.2rem !important; }
  .site-footer__grid > * { grid-column: 1 / -1 !important; }
  .site-footer__col[aria-label="Footer"] { flex-direction: row !important; flex-wrap: wrap; gap: 0.4rem 1.3rem !important; display: flex !important; }
  .site-footer__col[aria-label="Footer"] h3 { flex-basis: 100%; }
  .site-footer__col a[href^="mailto"] { font-size: 14.5px !important; }
}

/* Ashley's story timeline (About page) */
.story { max-width: 900px; margin: 0 auto; padding: clamp(4rem, 8vw, 6.5rem) var(--gutter); }
.story__head { text-align: center; margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.story__head .section-no { justify-content: center; }
.story__intro { color: var(--ink-soft); margin: 0.4rem auto 0; max-width: 32em; }
.story__list { list-style: none; margin: 0; padding: 0; }
.story__item { display: grid; grid-template-columns: 9.5rem 1fr; gap: 2rem; padding: 1.7rem 0; border-top: 1px solid var(--gold-line); }
.story__item:last-child { border-bottom: 1px solid var(--gold-line); }
.story__year { font-family: var(--serif); font-size: clamp(1.6rem, 2.4vw, 2.1rem); line-height: 1.1; color: var(--evergreen); white-space: nowrap; }
.story__item p { margin: 0; font-size: var(--body-size, 16.5px); line-height: 1.7; color: var(--ink-soft); }
.story__closing { margin: clamp(2.5rem, 5vw, 3.5rem) auto 0; max-width: 34em; text-align: center; font-family: var(--serif); font-style: italic; font-size: clamp(1.35rem, 2vw, 1.65rem); line-height: 1.45; color: var(--evergreen); }
@media (max-width: 640px) {
  .story__item { grid-template-columns: 1fr; gap: 0.5rem; padding: 1.4rem 0; }
  .story__year { font-size: 1.5rem; }
}
.page-sub .story { background: var(--marble); box-shadow: 0 0 0 100vmax var(--marble); clip-path: inset(0 -100vmax); }

/* =====================================================================
   Bespoke pass (Oct 21): phone header stamp, centered invitation-style
   phone hero, no hanging words, far fewer gold lines
   ===================================================================== */
/* No single words left hanging */
h1, h2, h3, .display, .hero__title, .svc__card h3, .wed__name, .about__role, .section-no, .story__year, .quote-card__text { text-wrap: balance; }
p, li, .svc__tag, .lede, .hero__lede, figcaption { text-wrap: pretty; }

/* Header stamp: shown on phones only, beside the name */
.brand__stamp { display: none; }
@media (max-width: 900px) {
  .brand { gap: 0.7rem !important; align-items: center; }
  .brand__stamp { display: block; width: 17px; color: var(--evergreen); }
  .brand__word { font-size: 13.5px !important; letter-spacing: 0.24em !important; }
  .site-header { padding-block: 0.9rem !important; }
}

/* Phone hero: centered like an invitation */
@media (max-width: 760px) {
  .alt .hero, .hero { padding: 6.4rem 1.5rem 2.8rem !important; gap: 2.4rem !important; text-align: center; }
  .hero__copy { display: flex; flex-direction: column; align-items: center; }
  .hero .eyebrow { justify-content: center !important; text-align: center; font-size: 10.5px !important; letter-spacing: 0.22em !important; }
  .hero .eyebrow .dot { display: none !important; }
  .hero .eyebrow { flex-direction: column; gap: 0.1rem !important; }
  .alt .hero__title, .hero__title { text-align: center; font-size: 2.6rem !important; margin-top: 1.3rem !important; }
  .alt .hero__title-em { display: block; }
  .alt .hero .hero__lede, .hero__lede { text-align: center; max-width: 19em !important; margin-inline: auto; }
  .alt .hero__actions, .hero__actions { flex-direction: column; align-items: center; gap: 1.1rem !important; }
  .hero__actions .btn--solid { width: 100%; max-width: 300px; }
  .hero__art { width: 78% !important; max-width: 320px !important; }
}

/* Fewer gold lines */
/* Homepage services: open columns, separated by space only */
.alt .svc__card + .svc__card { border-left: 0 !important; border-top: 0 !important; }
@media (max-width: 900px) { .alt .svc__card { padding: 1.6rem 0.5rem !important; } .alt .svc__cards { gap: 1rem !important; } }
/* Services page: quiet neutral rules, no underlined column headings, soft dots */
.offer { border-top: 1px solid rgba(36, 51, 43, 0.1) !important; }
.offer__cols h4 { border-bottom: 0 !important; padding-bottom: 0 !important; }
.offer__cols li::before { border: 0 !important; background: rgba(36, 51, 43, 0.28); width: 4px; height: 4px; border-radius: 50%; transform: none; top: 1.05rem; }
/* Story timeline: neutral hairlines */
.story__item { border-top-color: rgba(36, 51, 43, 0.1) !important; }
.story__item:last-child { border-bottom-color: rgba(36, 51, 43, 0.1) !important; }

/* Planning steps: always visible even if the scroll trigger never fires */
@keyframes steps-failsafe { to { opacity: 1; transform: none; } }
.js .steps:not(.is-live) .steps__dot, .js .steps:not(.is-live) h3, .js .steps:not(.is-live) p { animation: steps-failsafe 0.6s ease 3.5s forwards; }

/* Type strip separators: tiny gold dots instead of lines */
.strip__list .strip__word:not(:first-child)::before { width: 3px !important; height: 3px !important; border-radius: 50%; background: var(--gold) !important; top: 58% !important; }
@media (max-width: 760px) {
  .hero .eyebrow { flex-direction: row !important; flex-wrap: wrap !important; }
  .hero .eyebrow .dot { display: block !important; flex-basis: 100%; height: 0 !important; width: 0 !important; margin: 0 !important; background: none !important; }
}
/* Service links: small engraved capitals, no underline */
.svc__more, .alt .svc__more { border-bottom: 0 !important; text-decoration: none !important; padding-bottom: 0 !important; color: var(--gold-deep) !important; }
.svc__more::after { content: none !important; }
/* =====================================================================
   Homepage type scale and spacing (Oct 21): quieter proportions,
   consistent rhythm. Desktop / tablet / phone tuned separately.
   ===================================================================== */
.page-home {
  --h-hero: clamp(3rem, 5.4vw, 4.875rem);      /* 78px desktop (was 86) */
  --h-quote: clamp(1.55rem, 2.45vw, 2.15rem);  /* 34px desktop (was 40) */
  --h-section: 38px;                           /* main section headings */
  --h-cta: 38px;                               /* inquiry headline */
  --h-card: 21px;                              /* service titles */
  --t-body: 16px;
  --t-label: 12px;
  --sec-pad: 80px;                             /* major section padding */
  --sec-pad-tight: 64px;                       /* between related sections */
}
@media (max-width: 1100px) {
  .page-home { --h-section: 34px; --h-cta: 34px; --h-quote: 1.6rem; --h-card: 20px; --sec-pad: 64px; --sec-pad-tight: 52px; }
}
@media (max-width: 600px) {
  .page-home { --h-hero: 2.45rem; --h-section: 30px; --h-cta: 30px; --h-quote: 1.4rem; --h-card: 20px; --t-body: 15.5px; --t-label: 12px; --sec-pad: 56px; --sec-pad-tight: 44px; }
}

/* Headlines */
.page-home.alt .hero__title, .page-home .hero__title { font-size: var(--h-hero) !important; line-height: 1.04 !important; }
.page-home .quote-split .quote-card__text { font-size: var(--h-quote) !important; line-height: 1.38 !important; max-width: 28em; }
.page-home.alt .display, .page-home .display, .page-home.alt .about--short .display { font-size: var(--h-section) !important; line-height: 1.12 !important; letter-spacing: 0 !important; margin-bottom: 0.85rem !important; }
.page-home .cta .display, .page-home.alt .cta .display { font-size: var(--h-cta) !important; }
.page-home.alt .ig__head .display { font-size: calc(var(--h-section) * 0.74) !important; }
.page-home.alt .svc__card h3, .page-home .svc__card h3 { font-size: var(--h-card) !important; line-height: 1.25 !important; }
.page-home.alt .weddings .wed__name { font-size: calc(var(--h-card) + 1px) !important; line-height: 1.25; }
.page-home p.script-kicker, .page-home .script-kicker--hand { font-size: calc(var(--h-cta) * 0.55) !important; }

/* Body and labels */
.page-home .hero__lede, .page-home.alt .hero .hero__lede,
.page-home .about__copy p:not(.section-no):not(.about__role):not(.signature),
.page-home .cta__card p:not(.script-kicker):not(.section-no),
.page-home .svc__tag, .page-home.alt .svc__tag { font-size: var(--t-body) !important; line-height: 1.68 !important; }
.page-home .hero .eyebrow, .page-home .section-no, .page-home .about__role, .page-home .svc__more,
.page-home .quote-split .quote-card__name { font-size: var(--t-label) !important; }
.page-home .quote-split .quote-card__role { font-size: 1.05rem !important; }
.page-home .about__role { margin-top: 0 !important; margin-bottom: 1.4rem !important; }
.page-home .wed__credit { font-size: 13.5px !important; }

/* Vertical rhythm */
.page-home .hero, .page-home.alt .hero { padding-bottom: var(--sec-pad-tight) !important; }
.page-home .quote-split__words { padding: var(--sec-pad) var(--gutter) calc(var(--sec-pad-tight) * 0.75) !important; }
.page-home.alt .svc { padding-block: var(--sec-pad) var(--sec-pad-tight) !important; }
.page-home.alt .about--short { padding-block: var(--sec-pad-tight) var(--sec-pad) !important; }
.page-home.alt .weddings:not(.weddings--page) { padding-block: var(--sec-pad) var(--sec-pad-tight) !important; }
.page-home.alt .cta { padding-block: var(--sec-pad-tight) var(--sec-pad) !important; }
.page-home.alt .cta__card { padding-block: calc(var(--sec-pad) * 0.8) !important; }
.page-home.alt .ig { padding-block: var(--sec-pad-tight) !important; }
.page-home .svc__head, .page-home .portfolio__head, .page-home .weddings__head, .page-home .ig__head { margin-bottom: clamp(1.6rem, 2.6vw, 2.25rem) !important; }
.page-home .weddings__all { margin-top: clamp(1.75rem, 3vw, 2.5rem) !important; }
.page-home .cta__actions { margin-top: 1.4rem !important; }
.page-home .hero__actions { margin-top: 1.6rem !important; }
@media (max-width: 760px) { .page-home .hero__title { max-width: 8.2em; margin-inline: auto; } }
/* =====================================================================
   Oct 21: event strip, testimonial over the ceremony photo, motion
   ===================================================================== */
/* Event strip: smaller, all upright */
.strip__list .strip__word, .strip__word, .strip__word--em, .strip__still .strip__word { font-style: normal !important; font-size: clamp(1.05rem, 1.35vw, 1.25rem) !important; letter-spacing: 0.02em; }
@media (max-width: 600px) { .strip__list .strip__word { font-size: 1.02rem !important; } }

/* Testimonial back over the ceremony photo */
.quote-split--over { position: relative; overflow: hidden; display: grid; place-items: center; min-height: clamp(500px, 50vw, 700px); background: var(--evergreen) !important; }
.quote-split--over .quote-split__photo { position: absolute; inset: 0; height: auto !important; }
.quote-split--over .quote-split__photo img { position: absolute; left: 0; top: -12%; width: 100%; height: 124% !important; object-position: center 60%; }
.quote-split--over::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: radial-gradient(ellipse 70% 62% at 50% 50%, rgba(18, 26, 21, 0.62), rgba(18, 26, 21, 0.38) 60%, rgba(18, 26, 21, 0.18) 100%); }
.page-home .quote-split--over .quote-split__words { position: relative; z-index: 2; background: none; padding: var(--sec-pad) var(--gutter) !important; }
.quote-split--over .quote-card__text, .quote-split--over .quote-card__text em { color: #fcfbf9 !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35), 0 2px 24px rgba(0, 0, 0, 0.45) !important; }
.quote-split--over .quote-card__name { color: #e3cc98 !important; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.5) !important; }
.quote-split--over .quote-card__role { color: #fcfbf9 !important; opacity: 0.92 !important; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.5) !important; }
@media (max-width: 760px) {
  .quote-split--over { min-height: 0; }
  .quote-split--over::after { background: rgba(18, 26, 21, 0.55); }
  .page-home .quote-split--over .quote-split__words { padding: 4.5rem 1.5rem !important; }
}

/* Parallax: the photo is set slightly larger so the drift never shows an edge */
.px { transform: translate3d(0, var(--px, 0px), 0) scale(1.08); will-change: transform; }
.quote-split--over .px { transform: translate3d(0, var(--px, 0px), 0); }
.cta--photo .px { transform: translate3d(0, var(--px, 0px), 0) scale(1.12); }

/* Discreet motion */
.js .wed__frame img, .js .ig__tile img { transition: transform 1.4s var(--ease); }
.js .wed:hover .wed__frame img, .js .wed:focus-within .wed__frame img, .js .ig__tile:hover img { transform: scale(1.035); }
.js .strip__word { opacity: 0; animation: rise 0.9s var(--ease) forwards; }
.js .strip__word:nth-child(1) { animation-delay: 0.55s; } .js .strip__word:nth-child(2) { animation-delay: 0.65s; }
.js .strip__word:nth-child(3) { animation-delay: 0.75s; } .js .strip__word:nth-child(5) { animation-delay: 0.85s; }
.js .strip__word:nth-child(6) { animation-delay: 0.95s; }
.js .reveal .quote-card__cite { opacity: 0; transition: opacity 1s var(--ease) 0.45s; }
.js .reveal.is-visible .quote-card__cite { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .px { transform: none !important; }
  .js .strip__word, .js .reveal .quote-card__cite { opacity: 1 !important; animation: none !important; }
  .js .wed__frame img, .js .ig__tile img { transition: none; }
}
.quote-split--over::after { background: radial-gradient(ellipse 62% 58% at 50% 52%, rgba(18, 26, 21, 0.7), rgba(18, 26, 21, 0.42) 62%, rgba(18, 26, 21, 0.2) 100%); }
.quote-split--over .quote-card__name { color: #f0dcae !important; font-weight: 700; text-shadow: 0 0 2px rgba(0, 0, 0, 0.6), 0 1px 14px rgba(0, 0, 0, 0.7) !important; }
@media (max-width: 760px) { .quote-split--over::after { background: rgba(18, 26, 21, 0.6); } }
.page-home .quote-split--over .quote-card__name { color: #f0dcae !important; font-weight: 700; text-shadow: 0 0 2px rgba(0, 0, 0, 0.6), 0 1px 14px rgba(0, 0, 0, 0.7) !important; }
.page-home .quote-split--over .quote-card__role { color: #fcfbf9 !important; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.6) !important; }
/* Page eyebrows match the homepage eyebrow (Oct 21) */
.page-sub .wpage__crumbs, .wpage__crumbs { font-family: var(--serif) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: 0.2em !important; line-height: 1.6 !important; text-transform: uppercase; color: var(--gold-deep) !important; }
@media (max-width: 600px) { .page-sub .wpage__crumbs, .wpage__crumbs { font-size: 12px !important; letter-spacing: 0.22em !important; } }
/* Contact page steps: same four steps and numeral style as the Services page (Oct 21) */
.inq__steps { gap: 1.2rem !important; }
.inq__steps li { grid-template-columns: 34px 1fr !important; gap: 1rem !important; align-items: start !important; }
.inq__steps li::before { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--gold); color: var(--gold) !important; font-size: 0.9rem !important; font-style: italic; line-height: 1; margin-top: 0.1rem; }
.inq__steps b { font-size: 1.3rem; line-height: 1.2; margin-bottom: 0.2rem; color: var(--evergreen); }
.inq__steps div > span { display: block; font-size: 15px; line-height: 1.6; }
/* About page story: the planning-process design, set vertically (Oct 21) */
.story { --steps-bg: var(--marble); }
.steps--vertical { grid-template-columns: 1fr !important; max-width: 40rem; margin: 0 auto !important; }
.steps--vertical li { text-align: left; padding: 0 0 2.6rem 76px !important; border: 0 !important; }
.steps--vertical li:last-child { padding-bottom: 0 !important; }
.steps--vertical .steps__dot { position: absolute; left: 0; top: 0; margin: 0; }
.steps--vertical h3 { font-size: clamp(1.45rem, 2vw, 1.75rem); margin: 0.35rem 0 0.5rem; }
.steps--vertical p { margin: 0; max-width: 34em; font-size: var(--body-size, 16px); line-height: 1.7; }
.steps--vertical li:not(:last-child)::after { top: 56px !important; left: 22px !important; width: 1px !important; height: calc(100% - 68px) !important; transform-origin: center top; }
.js .steps--vertical:not(.is-live) li::after { transform: scaleY(0); }
.steps--vertical li { --i-delay: calc(var(--i) * 0.28s); }
.steps--vertical .steps__dot { transition-delay: calc(var(--i) * 0.28s); }
.steps--vertical h3, .steps--vertical p { transition-delay: calc(var(--i) * 0.28s + 0.15s); }
.steps--vertical li::after { transition-delay: calc(var(--i) * 0.28s + 0.3s) !important; }
@media (max-width: 600px) { .steps--vertical li { padding-left: 64px !important; } }
/* =====================================================================
   Consistency pass (Oct 21): eyebrows, ivory alternation, type,
   header wordmark spacing, gold rules under the menu and above the footer
   ===================================================================== */
:root { --ivory-page: #FCFBF9; --ivory-band: #F6F5F1; }

/* Eyebrows: one gold style everywhere */
.eyebrow, .section-no, .wpage__crumbs, .about__role,
.page-home .hero .eyebrow, .page-home .section-no, .page-home .about__role {
  font-family: var(--serif) !important; font-size: 12px !important; font-weight: 600 !important;
  letter-spacing: 0.2em !important; line-height: 1.6 !important; text-transform: uppercase !important;
  color: var(--gold-deep) !important; opacity: 1;
}
@media (max-width: 600px) {
  .eyebrow, .section-no, .wpage__crumbs, .about__role,
  .page-home .hero .eyebrow, .page-home .section-no, .page-home .about__role { font-size: 12px !important; letter-spacing: 0.22em !important; }
}
/* Show the section eyebrows that were hidden */
.page-home .svc__head .section-no, .page-home .weddings__head .section-no, .page-home .ig__head .section-no,
.page-sub .process .section-no { display: flex !important; margin: 0 0 0.7rem !important; }
.page-home .svc__head .section-no, .page-home .weddings__head .section-no, .page-sub .process .section-no { justify-content: center !important; }
.page-home .ig__head .section-no { flex-basis: 100%; }
.page-home .about__copy .section-no { display: block !important; margin: 0 0 0.7rem !important; }
.page-sub .process .section-no { margin-bottom: 0 !important; }

/* Headings: same scale on every page */
.page-sub .page-head .display, .inq .display, .inq__panel h1.display { font-size: clamp(2.25rem, 3.4vw, 3rem) !important; line-height: 1.1 !important; }
.page-sub .display:not(.page-head .display), .page-sub .cta .display, .page-sub .wpage .display:not(h1) { font-size: 38px !important; line-height: 1.12 !important; }
@media (max-width: 1100px) { .page-sub .display:not(.page-head .display), .page-sub .cta .display { font-size: 34px !important; } }
@media (max-width: 600px) {
  .page-sub .page-head .display, .inq .display, .inq__panel h1.display { font-size: 2.15rem !important; }
  .page-sub .display:not(.page-head .display), .page-sub .cta .display { font-size: 30px !important; }
}

/* Ivory alternation: page ivory, band ivory, page ivory ... on every page */
.page-sub .page-head { background: var(--ivory-page) !important; }
.page-sub .about, .page-sub .offerings, .page-sub .weddings--page, .page-sub .faq, .page-sub .philosophy, .page-sub .portfolio--full + .cta {
  background: var(--ivory-band) !important; box-shadow: 0 0 0 100vmax var(--ivory-band) !important; clip-path: inset(0 -100vmax) !important; }
.page-sub .story, .page-sub .process, .page-sub .portfolio--full, .page-sub .philosophy + .cta {
  background: var(--ivory-page) !important; box-shadow: 0 0 0 100vmax var(--ivory-page) !important; clip-path: inset(0 -100vmax) !important; }
.page-sub .process { --steps-bg: var(--ivory-page); }
.page-sub .story { --steps-bg: var(--ivory-page); }
.page-sub .philosophy + .cta .cta__card, .page-sub .portfolio--full + .cta .cta__card { background: var(--cotton) !important; }

/* Header wordmark: tighter spacing */
.brand__word { letter-spacing: 0.16em !important; }
@media (max-width: 900px) { .brand__word { letter-spacing: 0.15em !important; } }

/* Discreet gold rules: under the menu, above the footer */
.site-header { border-bottom: 1px solid var(--gold-line) !important; }
.site-footer { border-top: 1px solid var(--gold-line) !important; }
.philosophy__quote { font-size: 38px !important; line-height: 1.2 !important; max-width: 24em; }
@media (max-width: 1100px) { .philosophy__quote { font-size: 34px !important; } }
@media (max-width: 600px) { .philosophy__quote { font-size: 28px !important; } }
/* =====================================================================
   Oct 21 photo moves
   ===================================================================== */
/* Photo inquiry band, centered card (About, Services) */
.cta.cta--photo.cta--center { align-items: center !important; padding-block: clamp(5rem, 9vw, 7.5rem) !important; }
.cta--photo.cta--center::after { background: radial-gradient(ellipse 58% 62% at 50% 50%, rgba(18, 26, 21, 0.5) 0%, rgba(18, 26, 21, 0.3) 55%, rgba(18, 26, 21, 0.1) 100%) !important; }
@media (max-width: 900px) { .cta.cta--photo.cta--center { padding: 4rem 1.25rem !important; } }

/* Services: arch and rectangle photos under the top image */
.offerings__sticky:has(.frame--more) { position: static; }
.frame--more { margin-top: clamp(1.5rem, 2.5vw, 2.25rem); }
.frame--arch { width: 78%; margin-inline: auto; }
.frame--arch img { aspect-ratio: 4 / 5 !important; border-radius: 999px 999px 0 0; }
.frame--rect img { aspect-ratio: 4 / 3 !important; }
@media (max-width: 900px) {
  .offerings__sticky:has(.frame--more) { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: end; }
  .offerings__sticky:has(.frame--more) .frame--table { grid-column: 1 / -1; }
  .frame--more { margin-top: 0; }
  .frame--arch { width: 100%; }
  .frame--rect img { aspect-ratio: 4 / 5 !important; }
}

/* Portfolio: Instagram below all weddings, ivory alternation kept */
.page-sub .ig { background: var(--ivory-page) !important; box-shadow: 0 0 0 100vmax var(--ivory-page) !important; clip-path: inset(0 -100vmax) !important; padding-block: clamp(3rem, 5.5vw, 4.5rem) !important; }
.page-sub .ig + .cta { background: var(--ivory-band) !important; box-shadow: 0 0 0 100vmax var(--ivory-band) !important; clip-path: inset(0 -100vmax) !important; }
.page-sub .ig + .cta .cta__card { background: var(--cotton) !important; }

/* Homepage hero eyebrow: one line on phones too */
@media (max-width: 760px) {
  .page-home .hero .eyebrow { flex-direction: row !important; flex-wrap: nowrap !important; justify-content: center !important; white-space: nowrap; font-size: 10px !important; letter-spacing: 0.1em !important; gap: 0 0.5rem !important; }
  .page-home .hero .eyebrow .dot { display: inline-block !important; flex-basis: auto !important; width: 3px !important; height: 3px !important; border-radius: 50%; background: var(--gold) !important; margin: 0 !important; }
}
/* Inquiry box over a photo: slightly see-through (Oct 21) */
.cta.cta--photo .cta__card, .page-sub .cta.cta--photo .cta__card, .page-sub .philosophy + .cta.cta--photo .cta__card {
  background: rgba(254, 254, 252, 0.86) !important;
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .cta.cta--photo .cta__card { background: rgba(254, 254, 252, 0.92) !important; }
}
/* Services: breathing room at the top of the band, photos spread down the column (Oct 21) */
.page-sub .offerings { padding-top: clamp(3.5rem, 6vw, 5rem) !important; padding-bottom: clamp(3.5rem, 6vw, 5rem) !important; }
@media (min-width: 901px) {
  .offerings__media:has(.frame--more) { align-self: stretch; }
  .offerings__sticky:has(.frame--more) { position: static; height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: 3rem; }
  .offerings__sticky:has(.frame--more) .frame--more { margin-top: 0; }
}
/* Services, compact packages: top photo, then arch and bar menu side by side; follows the reader when a package opens */
@media (min-width: 901px) {
  .offerings__media:has(.frame--more) { align-self: start; }
  .offerings__sticky:has(.frame--more) { display: grid !important; grid-template-columns: 1fr 1fr; gap: 1.25rem; align-items: end; height: auto !important; justify-content: initial; }
  .offerings__sticky:has(.frame--more) .frame--table { grid-column: 1 / -1; }
  .offerings__sticky:has(.frame--more) .frame--table img { aspect-ratio: 5 / 4; }
  .frame--arch { width: 100% !important; }
  .frame--rect img { aspect-ratio: 4 / 5 !important; }
}
@media (min-width: 901px) and (min-height: 860px) { .offerings__sticky:has(.frame--more) { position: sticky !important; top: 110px; } }
@media (min-width: 901px) {
  .offerings__media:has(.frame--more) { align-self: stretch !important; }
  .offerings__sticky:has(.frame--more) { position: static !important; height: 100% !important; grid-template-rows: auto 1fr auto; row-gap: 1.25rem; }
  .offerings__sticky:has(.frame--more) .frame--table { grid-row: 1; }
  .offerings__sticky:has(.frame--more) .frame--more { grid-row: 3; align-self: end; }
}
/* Contact sidebar: calmer sizes, more air between groups (Oct 21) */
.inq__panel-inner > * { margin-bottom: 2.5rem !important; }
.inq__panel-inner > .script-kicker { margin-bottom: 0.3rem !important; }
.inq__panel-inner > .display { margin-bottom: 1.2rem !important; }
.inq__steps { gap: 1.6rem !important; margin-block: 0 2.75rem !important; }
.inq__steps b { font-size: 1.15rem !important; margin-bottom: 0.3rem; }
.inq__steps div > span { font-size: 14.5px !important; line-height: 1.65 !important; }
.inquire__contact dt { font-family: var(--serif) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: 0.2em !important; text-transform: uppercase; color: var(--gold-deep) !important; margin-top: 1.75rem !important; }
.inquire__contact dt:first-child { margin-top: 0 !important; }
.inquire__contact dd { font-size: 1.15rem !important; line-height: 1.5 !important; margin: 0.35rem 0 0 !important; overflow-wrap: anywhere; }
.inquire__contact dd a { font-size: inherit !important; line-height: inherit !important; }
.inq__panel .inq__map { margin-top: 0 !important; }
@media (max-width: 600px) { .inquire__contact dt { font-size: 12px !important; letter-spacing: 0.22em !important; } }
@media (min-width: 901px) { .inq .display, .inq__panel h1.display { font-size: clamp(2rem, 2.6vw, 2.4rem) !important; } }
/* Homepage order (Oct 21): hero, strip, Meet Ashley, services, quote, weddings, contact, Instagram */
.page-home.alt .about--short { padding-block: var(--sec-pad) var(--sec-pad-tight) !important; }
.page-home.alt .svc { padding-block: var(--sec-pad-tight) var(--sec-pad) !important; }
/* Homepage contact: no gold box */
.page-home .cta__card, .page-home.alt .cta__card { border: 0 !important; outline: 0 !important; box-shadow: none !important; background: transparent !important; }
.page-home .cta__card::before, .page-home .cta__card::after { content: none !important; }
.page-home.alt .cta__card { padding-block: 0 !important; }
/* Homepage: four wedding previews (4 across desktop, 2 by 2 tablet and phone) */
.page-home .weddings:not(.weddings--page) .weddings__grid { grid-template-columns: repeat(4, 1fr) !important; max-width: 1240px !important; gap: clamp(1.25rem, 2.2vw, 2rem) !important; }
@media (max-width: 1000px) { .page-home .weddings:not(.weddings--page) .weddings__grid { grid-template-columns: repeat(2, 1fr) !important; } }
.page-home.alt .weddings .wed__name { font-size: 19px !important; }
@media (max-width: 600px) { .page-home.alt .weddings .wed__name { font-size: 17px !important; } .page-home .weddings:not(.weddings--page) .weddings__grid { gap: 1.5rem 1rem !important; } }
/* Oct 21: Portfolio band breathing room; About philosophy centered as a block, text left */
.page-sub .weddings--page { padding-top: clamp(3.5rem, 6vw, 5rem) !important; padding-bottom: clamp(3.5rem, 6vw, 5rem) !important; }
.page-sub .philosophy > * { max-width: 960px; margin-left: auto !important; margin-right: auto !important; text-align: left; }
.page-sub .philosophy .philosophy__quote { max-width: 960px; }
.page-sub .page-head .lede { max-width: 40em; }
/* Services: the three photos stacked in one column, evenly spaced (all widths) */
.offerings__media:has(.frame--more) { align-self: start !important; }
.offerings__sticky:has(.frame--more) { display: flex !important; flex-direction: column !important; gap: clamp(1.25rem, 2vw, 1.75rem) !important; height: auto !important; position: static !important; grid-template-columns: none !important; grid-template-rows: none !important; }
.offerings__sticky:has(.frame--more) .frame--table img { aspect-ratio: 5 / 4 !important; }
.offerings__sticky:has(.frame--more) .frame--more { grid-row: auto !important; margin: 0 !important; align-self: stretch !important; }
.offerings__sticky:has(.frame--more) .frame--arch { width: 72% !important; align-self: center !important; }
.offerings__sticky:has(.frame--more) .frame--arch img { aspect-ratio: 4 / 5 !important; }
.offerings__sticky:has(.frame--more) .frame--rect img { aspect-ratio: 4 / 3 !important; }
/* Homepage services: thin gold dividers between columns on desktop only */
@media (min-width: 901px) {
  .page-home.alt .svc__card + .svc__card { border-left: 1px solid var(--gold-line) !important; border-top: 0 !important; }
}
@media (max-width: 900px) {
  .page-home.alt .svc__card + .svc__card { border-left: 0 !important; }
}
/* Homepage: smaller Ashley portrait; more air between wedding arches (Oct 21) */
.page-home.alt .about--short .about__art { max-width: 330px !important; }
@media (max-width: 900px) { .page-home.alt .about--short .about__art { width: min(70%, 280px) !important; max-width: 280px !important; } }
.page-home .weddings:not(.weddings--page) .weddings__grid { gap: clamp(1.5rem, 3.6vw, 3.5rem) !important; max-width: 1180px !important; }
@media (max-width: 1000px) { .page-home .weddings:not(.weddings--page) .weddings__grid { gap: 2rem 1.5rem !important; } }
@media (max-width: 600px) { .page-home .weddings:not(.weddings--page) .weddings__grid { gap: 1.75rem 1.1rem !important; } }
/* Hero: second, smaller photo overlapping the arch (like the About page) */
.hero__art { position: relative; }
.hero__small { position: absolute; margin: 0; right: -9%; bottom: -5%; width: 44%; aspect-ratio: 5 / 4; overflow: hidden; z-index: 2;
  border: 8px solid var(--cotton); background: var(--cotton); box-shadow: 0 30px 50px -25px rgba(36, 51, 43, 0.45); }
.hero__small img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
@media (max-width: 1100px) { .hero__small { right: -5%; } }
@media (max-width: 760px) { .hero__small { right: -6%; bottom: -6%; width: 46%; border-width: 5px; } }
.hero__small img { object-position: center 55%; }
.offerings__sticky:has(.frame--more) .frame--table img { object-position: center 45%; }
/* Services top photo: show the whole upright urn photo */
.offerings__sticky:has(.frame--more) .frame--table img { aspect-ratio: 4 / 5 !important; object-position: center center !important; }
/* Buttons 15% smaller everywhere (Oct 21) */
.btn.btn--solid, .btn.btn--gold, .page-home .btn--solid, .page-home .btn--gold { font-size: 12.75px !important; letter-spacing: 0.22em !important; padding: 14.25px 30px !important; }
.btn.btn--gold { padding: 13px 26px !important; }
.btn.btn--line, .page-home .btn--line { font-size: 12.3px !important; letter-spacing: 0.22em !important; }
.page-sub .cta .btn--line { padding: 7.5px 2px !important; }
.nav__cta { font-size: 12.75px !important; letter-spacing: 0.2em !important; padding: 9.5px 19px !important; }
.site-footer .btn--solid { font-size: 11.5px !important; padding: 12px 22px !important; }
/* Services: candlelit dining room centered on the table and portrait */
.offerings__sticky:has(.frame--more) .frame--rect img { object-position: 4% 50% !important; }
/* Services: no rules above Full Service */
.page-sub .offerings::before, .page-sub .offerings::after { content: none !important; display: none !important; }
.page-sub .offerings__list .offer:first-of-type { border-top: 0 !important; padding-top: 0 !important; }
/* Contact: no gold rule above the form */
.form__intro { border-bottom: 0 !important; }
/* Hero small photo: same size as the About page small photo */
.hero__small { width: 58% !important; }
@media (max-width: 760px) { .hero__small { width: 52% !important; } }
/* Contact: remove the inset gold frame line on the side panel */
.inq__panel::before { content: none !important; display: none !important; }
/* Homepage Instagram: white border like the hero's small photo */
.page-home .ig__tile { display: block; border: 6px solid var(--cotton); background: var(--cotton); box-shadow: 0 22px 34px -24px rgba(36, 51, 43, 0.45); overflow: hidden; }
.page-home .ig__grid { gap: clamp(0.9rem, 1.6vw, 1.4rem) !important; }
@media (max-width: 700px) { .page-home .ig__tile { border-width: 4px; } }
/* Contact: single header rule; no gold frame around the form */
.page-inquire .site-header { box-shadow: none !important; }
.inquiry-embed__frame { border: 0 !important; outline: 0 !important; box-shadow: none !important; }
/* Small buttons (menu, thank you page) also 15% smaller */
.btn.btn--sm { font-size: 11.5px !important; padding: 11px 20px !important; }
/* Hero small photo: zoom past the doorway arch into the ballroom */
.hero__small img { transform: scale(1.75); transform-origin: 50% 62%; object-position: center center !important; }
.hero__small img { transform: scale(1.75) !important; transform-origin: 50% 62% !important; }
/* About page: arch with the same thin gold outline as the hero; no EWAH stamp */
.page-sub .about:not(.about--short) .about__arch { border-radius: 999px 999px 0 0 !important; outline: 1px solid var(--gold-line) !important; outline-offset: 12px !important; overflow: hidden; }
.page-sub .about:not(.about--short) .about__watermark { display: none !important; }
/* =====================================================================
   Oct 23: Wedding of the Year, new homepage order, taller hero,
   editorial weddings, full width photo before the inquiry
   ===================================================================== */
/* Hero: taller, more cinematic arch */
.page-home.alt .hero__arch, .page-home .hero__arch { aspect-ratio: 4 / 5.8 !important; }
@media (min-width: 761px) { .page-home .hero__art { width: min(100%, 500px) !important; } }
@media (max-width: 760px) { .page-home .hero__art { width: 80% !important; max-width: 330px !important; } }

/* Recognition */
.recog { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center;
  max-width: var(--max); margin: 0 auto; padding: var(--sec-pad) var(--gutter);
  background: var(--ivory-page); box-shadow: 0 0 0 100vmax var(--ivory-page); clip-path: inset(0 -100vmax); }
.recog__media { position: relative; padding-bottom: 14%; }
.recog__main { margin: 0; width: 78%; aspect-ratio: 4 / 5; overflow: hidden; }
.recog__main img, .recog__second img { width: 100%; height: 100%; object-fit: cover; display: block; }
.recog__second { position: absolute; margin: 0; right: 0; bottom: 0; width: 46%; aspect-ratio: 4 / 5; overflow: hidden;
  border: 8px solid var(--cotton); background: var(--cotton); box-shadow: 0 30px 50px -25px rgba(36, 51, 43, 0.45); }
.recog__copy { max-width: 470px; }
.recog__seal { width: 132px; height: 132px; border-radius: 50%; border: 1px solid var(--gold-line); outline: 1px solid var(--gold-line); outline-offset: 4px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 0.3rem; margin: 1.2rem 0 1.8rem; }
.recog__seal-top, .recog__seal-bot { font-family: var(--serif); font-size: 9.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-deep); }
.recog__seal-mid { font-family: var(--serif); font-size: 17px; line-height: 1.05; color: var(--evergreen); }
.recog__sub { font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--gold-deep); margin: -0.2rem 0 1.1rem; }
.recog__body { font-size: var(--t-body, 16px); line-height: 1.7; color: var(--ink-soft); margin: 0 0 1.5rem; }
.recog__credit { margin: 1.4rem 0 0; font-size: 12.5px; color: var(--ink-soft); }
@media (max-width: 900px) {
  .recog { grid-template-columns: 1fr; gap: 2.5rem; padding: 3.5rem 1.5rem; }
  .recog__copy { max-width: none; text-align: center; margin: 0 auto; }
  .recog__copy .section-no { justify-content: center; }
  .recog__seal { margin: 1rem auto 1.5rem; width: 116px; height: 116px; }
  .recog__seal-mid { font-size: 15px; }
}

/* Full width photo before the inquiry */
.atmos { position: relative; overflow: hidden; margin-inline: calc(50% - 50vw); height: clamp(300px, 40vw, 600px); background: var(--evergreen); }
.atmos img { position: absolute; left: 0; top: -10%; width: 100%; height: 120%; object-fit: cover; display: block; }
.atmos .px { transform: translate3d(0, var(--px, 0px), 0); }

/* Homepage rhythm for the new order */
.page-home.alt .svc { padding-block: var(--sec-pad) var(--sec-pad-tight) !important; }
.page-home.alt .about--short { padding-block: var(--sec-pad-tight) var(--sec-pad) !important; }
.page-home.alt .weddings:not(.weddings--page) { padding-block: var(--sec-pad) var(--sec-pad) !important; }
.page-home.alt .cta { padding-block: var(--sec-pad) var(--sec-pad-tight) !important; }

/* Award label on wedding cards and the wedding page */
.wed__award { display: block; margin-top: 0.25rem; font-family: var(--serif); font-size: 12px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-deep); }
.wpage__award { margin: 0 0 0.4rem; font-family: var(--serif); font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-deep); }
.recog .section-no { display: flex !important; margin: 0 0 0.4rem !important; }
.recog__seal { width: 140px; height: 140px; }
.recog__seal-top, .recog__seal-bot { letter-spacing: 0.16em; font-size: 9px; }
@media (max-width: 900px) { .recog__seal { width: 128px; height: 128px; } }
/* Recognition as a gallery feature (Oct 23) */
.recog { display: block !important; text-align: center; }
.recog__head { max-width: 640px; margin: 0 auto clamp(2rem, 3.5vw, 2.75rem); }
.recog__head .section-no { justify-content: center; }
.recog__sub { margin: 0.2rem 0 0 !important; font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--gold-deep); }
.recog__gallery { display: grid; grid-template-columns: 1fr 2fr 1fr 1fr; gap: clamp(0.75rem, 1.4vw, 1.25rem); align-items: stretch; }
.recog__tile { margin: 0; overflow: hidden; aspect-ratio: 4 / 5.2; }
.recog__tile--2 { aspect-ratio: auto; }
.recog__tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.4s var(--ease); }
.recog__tile:hover img { transform: scale(1.03); }
.recog__foot { max-width: 560px; margin: clamp(1.75rem, 3vw, 2.5rem) auto 0; }
.recog__body { margin: 0 0 1rem !important; color: var(--ink-soft); font-size: var(--t-body, 16px); line-height: 1.7; }
.recog__credit { margin: 1rem 0 0 !important; font-size: 12.5px; color: var(--ink-soft); }
@media (max-width: 900px) {
  .recog__gallery { grid-template-columns: 1fr 1fr; }
  .recog__tile--2 { grid-column: 1 / -1; grid-row: 1; aspect-ratio: 3 / 2; }
}
@media (max-width: 900px) { .recog__tile--4 { display: none; } }
/* Wedding of the Year: four equal portrait photos (2 by 2 on phones) */
.recog__gallery { grid-template-columns: repeat(4, 1fr) !important; }
.recog__tile, .recog__tile--2 { aspect-ratio: 4 / 5.2 !important; grid-column: auto !important; grid-row: auto !important; }
@media (max-width: 900px) { .recog__gallery { grid-template-columns: 1fr 1fr !important; } .recog__tile--4 { display: block !important; } }
/* Wedding of the Year: three portrait photos */
.recog__gallery { grid-template-columns: repeat(3, 1fr) !important; max-width: 1000px; margin-inline: auto; }
@media (max-width: 900px) { .recog__gallery { grid-template-columns: repeat(3, 1fr) !important; gap: 0.5rem !important; } }
.recog__badge { display: block; width: 132px; height: 132px; margin: 0 auto 1.1rem; filter: drop-shadow(0 10px 18px rgba(36, 51, 43, 0.18)); }
@media (max-width: 600px) { .recog__badge { width: 112px; height: 112px; } }
.recog__badge { background: transparent !important; filter: none !important; }
/* Meet Ashley: same 1000px frame as the Wedding of the Year gallery, wider portrait */
.page-home.alt .about--short { max-width: calc(1000px + 2 * var(--gutter)) !important; margin-inline: auto !important; padding-inline: var(--gutter) !important;
  grid-template-columns: 420px minmax(0, 1fr) !important; gap: clamp(2.5rem, 5vw, 4rem) !important; }
.page-home.alt .about--short .about__art { width: 420px !important; max-width: 420px !important; justify-self: start !important; }
.page-home.alt .about--short .about__arch { aspect-ratio: 4 / 5 !important; }
@media (max-width: 1100px) { .page-home.alt .about--short { grid-template-columns: 1fr 1fr !important; } .page-home.alt .about--short .about__art { width: 100% !important; max-width: none !important; } }
@media (max-width: 900px) {
  .page-home.alt .about--short { grid-template-columns: 1fr !important; }
  .page-home.alt .about--short .about__art { width: 100% !important; max-width: none !important; justify-self: stretch !important; }
}
/* Homepage inquiry over the chandelier dining room: overlay and a soft see-through box */
.page-home .cta.cta--photo { padding-block: clamp(5rem, 9vw, 7.5rem) !important; }
.page-home .cta--photo::after { background: rgba(18, 26, 21, 0.38) !important; }
.page-home .cta--photo .cta__card, .page-home.alt .cta--photo .cta__card { background: rgba(254, 254, 252, 0.88) !important; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); padding: clamp(2.5rem, 5vw, 3.75rem) clamp(1.5rem, 5vw, 4rem) !important; max-width: 720px; }
.page-home .cta--photo .cta__bg { object-position: center 55% !important; }
/* Homepage eyebrows: Wedding of the Year label in a gold box like the Contact button; drop eyebrows that repeat the heading */
.page-home .weddings__head .section-no, .page-home .ig__head .section-no, .page-home .about__copy .section-no { display: none !important; }
/* Homepage inquiry: inquiry button only */
.page-home .cta .cta__actions .btn--line[href^="mailto"] { display: none !important; }
/* Wedding arches: no gold outline, and space so they never touch */
.weddings .wed__frame, .wed__frame, .wed__btn:hover .wed__frame, .wed__btn:focus-visible .wed__frame { outline: 0 !important; outline-offset: 0 !important; }
.weddings__grid { gap: clamp(1.75rem, 3vw, 2.5rem) clamp(1rem, 2.4vw, 2rem) !important; }
@media (max-width: 600px) { .weddings__grid { gap: 1.75rem 1rem !important; } }
/* Phone hero: photo first, then the copy */
@media (max-width: 760px) {
  .page-home .hero { display: flex !important; flex-direction: column !important; padding-top: 5.5rem !important; }
  .page-home .hero__art { order: -1; align-self: center; margin-bottom: 0.5rem; }
}
/* Homepage: two newest weddings */
.page-home .weddings:not(.weddings--page) .weddings__grid { grid-template-columns: repeat(2, 1fr) !important; max-width: 760px !important; gap: 2.5rem clamp(1.5rem, 4vw, 3rem) !important; }
@media (max-width: 600px) { .page-home .weddings:not(.weddings--page) .weddings__grid { gap: 1.75rem 1rem !important; } }

/* Homepage inquiry card: narrower, roomier, warm ivory */
.page-home .cta--photo .cta__card, .page-home.alt .cta--photo .cta__card {
  max-width: 620px !important; background: rgba(250, 246, 238, 0.9) !important;
  padding: clamp(3rem, 5.5vw, 4.5rem) clamp(2rem, 5.5vw, 4.5rem) !important; }
@media (max-width: 760px) {
  .page-home .cta.cta--photo { padding: 3.5rem 1.25rem !important; }
  .page-home .cta--photo .cta__card, .page-home.alt .cta--photo .cta__card { padding: 2.75rem 1.75rem !important; }
  .page-home .cta--photo .cta__card p:not(.script-kicker) { line-height: 1.75 !important; }
  .page-home .cta--photo .cta__card .display { margin-bottom: 1rem !important; }
}
/* Homepage weddings: well spaced */
.page-home .weddings:not(.weddings--page) .weddings__grid { max-width: 920px !important; column-gap: clamp(3rem, 9vw, 8rem) !important; row-gap: 3rem !important; }
@media (max-width: 600px) { .page-home .weddings:not(.weddings--page) .weddings__grid { grid-template-columns: 1fr !important; max-width: 300px !important; row-gap: 3rem !important; } }
/* Instagram feed: no white frames */
.ig__tile, .page-home .ig__tile { border: 0 !important; background: transparent !important; box-shadow: none !important; }
/* =====================================================================
   Header, Option A (Oct 23): centered boxed EWAH crest, no rule below
   ===================================================================== */
.site-header { border-bottom: 0 !important; box-shadow: none !important; }
@media (min-width: 901px) {
  .site-header { display: grid !important; grid-template-columns: 1fr auto 1fr !important; align-items: center !important; padding-block: 1rem !important; }
  .site-header .nav--left { justify-self: start; }
  .site-header .nav--right { justify-self: end; }
  .site-header .brand { justify-self: center !important; display: flex !important; flex-direction: column !important; align-items: center !important; gap: 0.45rem !important; }
  .site-header .brand__stamp { display: block !important; width: 26px !important; height: auto !important; color: var(--evergreen) !important; }
  .site-header .brand__word { font-size: 11px !important; letter-spacing: 0.32em !important; }
  .site-header.is-scrolled { padding-block: 0.65rem !important; }
  .site-header.is-scrolled .brand__stamp { width: 20px !important; }
}
.site-header, .site-header.is-scrolled { background-color: rgba(252, 251, 249, 0.97) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
/* About page, Oct 23: arch with overlapping second photo, no white frame, layered motion */
.page-sub .about:not(.about--short) .about__small { border: 0 !important; background: transparent !important; box-shadow: 0 28px 48px -26px rgba(36, 51, 43, 0.42) !important; overflow: hidden; }
.page-sub .about:not(.about--short) .about__small img { display: block; transform: translate3d(0, var(--layer, 0px), 0) scale(1.08); transition: transform 0.2s linear; }
.page-sub .about:not(.about--short) .about__small.reveal { transform: translate3d(1.5rem, 2.5rem, 0); opacity: 0; transition: opacity 1.1s var(--ease), transform 1.3s var(--ease); transition-delay: 0.35s !important; }
.page-sub .about:not(.about--short) .about__small.reveal.is-visible { transform: translate3d(0, var(--lift, 0px), 0); opacity: 1; }
.page-sub .about:not(.about--short) .about__small.reveal.is-visible.is-settled { transition: transform 0.2s linear; }
@media (prefers-reduced-motion: reduce) { .page-sub .about:not(.about--short) .about__small.reveal, .page-sub .about:not(.about--short) .about__small img { transform: none !important; transition: none !important; } }

/* Oak behind the homepage quote: show the whole tree (taller band, less overscan) */
.page-home .quote-split--over { min-height: clamp(520px, 64vw, 940px); }
.page-home .quote-split--over .quote-split__photo img { top: -4%; height: 108% !important; object-position: center 50%; }

/* Launch QA: no label smaller than 12px on phones */
@media (max-width: 760px) {
  .section-no, .section-no a, .eyebrow, .quote-card__name, .wed__award { font-size: 12.5px !important; }
}
@media (max-width: 760px) {
  html body .section-no, html body .section-no a, html body .eyebrow, html body .quote-card__name, html body .wed__award, html body .about__role { font-size: 12.5px !important; }
}

/* Homepage contact: stronger parallax on the tent photo (extra overscan so edges never show) */
.page-home .cta--photo .cta__bg { inset: -22% 0 auto 0 !important; height: 144% !important; object-position: center 55% !important; }
.page-home .cta--photo .px { transform: translate3d(0, var(--px, 0px), 0) !important; }
/* Quote over the mountain overlook: show the whole vista, couple small */
.page-home .quote-split--over .quote-split__photo img { object-position: 30% 62% !important; }

/* About: standout statement band */
.statement { margin-inline: calc(50% - 50vw); background: var(--evergreen); padding: clamp(4.5rem, 9vw, 7.5rem) var(--gutter); text-align: center; }
.statement__inner { max-width: 50rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: clamp(1.6rem, 3vw, 2.4rem); }
.statement__rule { display: block; width: 64px; height: 1px; background: var(--gold, #c2a36b); }
.statement__text { margin: 0; font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(1.6rem, 3.2vw, 2.6rem); line-height: 1.35; color: #fcfbf9; }

/* Contact page: inquiry card copy centered over the form */
.page-inquire .inq__form .form__intro, .page-inquire .inq__form .inquiry-embed__note, .page-inquire .inq__form .inquiry-embed__fallback { text-align: center; margin-inline: auto; }

/* Services: page header aligns with the photo column below */
.page-head:has(+ .offerings), main:has(.offerings) > .page-head { max-width: none !important; margin-inline: 0 !important; padding-inline: var(--gutter) !important; }
.page-sub .offerings__media { justify-self: start !important; }

/* About page: portrait sized to stay sharp (source is 848px), tighter top */
.page-sub .about:not(.about--short) .about__art { width: 430px !important; max-width: 430px !important; }
.page-sub .about:not(.about--short) .about__arch img.px { transform: translate3d(0, var(--px, 0px), 0) !important; }
.page-sub .page-head:has(+ .about) { padding-top: 112px !important; padding-bottom: 8px !important; }
.page-sub .page-head + .about { padding-top: 40px !important; }
@media (max-width: 900px) { .page-sub .about:not(.about--short) .about__art { width: 100% !important; max-width: 420px !important; margin-inline: auto; } .page-sub .page-head:has(+ .about) { padding-top: 96px !important; } }
.page-sub .page-head:has(+ .about) { max-width: none !important; margin-inline: 0 !important; padding-inline: var(--gutter) !important; }
@media (min-width: 901px) { .page-sub .about:not(.about--short) .about__art { justify-self: start !important; } }

/* Homepage: four most recent weddings, gold arch outlines, spaced out (Portfolio page untouched) */
.page-home .weddings:not(.weddings--page) .weddings__grid { grid-template-columns: repeat(4, 1fr) !important; max-width: 1240px !important; column-gap: clamp(2rem, 4vw, 3.75rem) !important; row-gap: 3rem !important; }
.page-home .weddings:not(.weddings--page) .wed__frame { outline: 1px solid var(--gold) !important; outline-offset: 8px !important; }
.page-home .weddings:not(.weddings--page) .wed__btn:hover .wed__frame, .page-home .weddings:not(.weddings--page) .wed__btn:focus-visible .wed__frame { outline-offset: 12px !important; outline-color: var(--gold) !important; }
@media (max-width: 1000px) { .page-home .weddings:not(.weddings--page) .weddings__grid { grid-template-columns: repeat(2, 1fr) !important; max-width: 760px !important; column-gap: clamp(1.75rem, 5vw, 3rem) !important; } }
@media (max-width: 600px) { .page-home .weddings:not(.weddings--page) .weddings__grid { grid-template-columns: repeat(2, 1fr) !important; max-width: none !important; column-gap: 1.5rem !important; row-gap: 2.25rem !important; } .page-home .weddings:not(.weddings--page) .wed__frame { outline-offset: 5px !important; } }

/* Quote over the clubhouse dance: text sits right, couple stays clear on the left (desktop) */
@media (min-width: 901px) {
  .page-home .quote-split--over { place-items: center end !important; }
  .page-home .quote-split--over .quote-split__words { max-width: 38rem !important; margin: 0 clamp(2rem, 6vw, 7rem) 0 auto !important; }
  .page-home .quote-split--over::after { background: radial-gradient(ellipse 48% 62% at 70% 50%, rgba(18, 26, 21, 0.62), rgba(18, 26, 21, 0.32) 62%, rgba(18, 26, 21, 0.12) 100%) !important; }
}
@media (max-width: 900px) { .page-home .quote-split--over .quote-split__photo img { object-position: 88% 60% !important; } }
/* Quote band: shorter so it doesn't dominate */
.page-home .quote-split--over { min-height: clamp(360px, 38vw, 540px) !important; }
.page-home .quote-split--over .quote-split__words { padding-block: clamp(3rem, 5vw, 4.5rem) !important; }
.page-home .quote-split--over .quote-card__text { font-size: clamp(1.35rem, 2.2vw, 1.9rem) !important; }
@media (min-width: 901px) { .page-home .quote-split--over .quote-split__photo img { object-position: 30% 45% !important; } }

/* Type scale lock (launch): body 16px desktop / 15.5px phone, small text 13px min, labels 12px min */
.hero .eyebrow, .page-home .hero .eyebrow { font-size: 12.5px !important; }
.site-header .brand__word { font-size: 12px !important; }
.recog__credit, .wed__credit, .wpage__credit { font-size: 13.5px !important; }
.inquiry-embed__note, .inquiry-embed__fallback, .page-inquire .inq__aside p { font-size: 15.5px !important; }
main p:not([class*="section-no"]):not([class*="eyebrow"]):not([class*="credit"]):not([class*="quote"]):not([class*="crumbs"]):not([class*="role"]):not([class*="statement"]):not([class*="philosophy"]):not([class*="intro"]):not([class*="lede"]):not([class*="stat"]):not([class*="hero"]):not([class*="svc__tag"]):not([class*="offer__tag"]) { font-size: 16px; }
.lede, .offer__tag, .story__intro { font-size: 16.5px !important; }
@media (max-width: 600px) {
  .hero .eyebrow, .page-home .hero .eyebrow { font-size: 12px !important; }
  main p:not([class*="section-no"]):not([class*="eyebrow"]):not([class*="credit"]):not([class*="quote"]):not([class*="crumbs"]):not([class*="role"]):not([class*="statement"]):not([class*="philosophy"]):not([class*="stat"]):not([class*="hero"]) { font-size: 15.5px; }
  .lede, .offer__tag, .story__intro { font-size: 16px !important; }
  .recog__credit, .wed__credit, .wpage__credit { font-size: 13px !important; }
}
.page-sub .offerings li, .page-sub .offerings li b { font-size: 15.5px !important; }
@media (max-width: 600px) { .page-sub .offerings li, .page-sub .offerings li b { font-size: 15px !important; } }
@media (max-width: 600px) { .hero .eyebrow, .page-home .hero .eyebrow { letter-spacing: 0.14em !important; flex-wrap: wrap !important; white-space: normal !important; max-width: 100% !important; } }

/* Quote band: shorter on desktop; on phones the photo sits above the quote so the couple shows */
@media (min-width: 901px) {
  .page-home .quote-split--over { min-height: clamp(320px, 30vw, 440px) !important; }
  .page-home .quote-split--over .quote-split__words { padding-block: clamp(2.25rem, 3.5vw, 3.25rem) !important; }
  .page-home .quote-split--over .quote-split__photo img { object-position: 30% 40% !important; }
}
@media (max-width: 900px) {
  .page-home .quote-split--over { display: block !important; min-height: 0 !important; background: var(--evergreen) !important; }
  .page-home .quote-split--over::after { display: none !important; }
  .page-home .quote-split--over .quote-split__photo { position: relative !important; inset: auto !important; width: 100% !important; display: block !important; height: clamp(240px, 62vw, 380px) !important; overflow: hidden; }
  .page-home .quote-split--over .quote-split__photo img { position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; max-width: none !important; height: 100% !important; object-fit: cover; object-position: 22% 45% !important; transform: none !important; }
  .page-home .quote-split--over .quote-split__words { padding: 2.25rem 1.5rem 2.5rem !important; }
}

/* Services: two stacked photos, same size */
.page-sub .offerings__sticky { display: flex !important; flex-direction: column !important; gap: clamp(1.25rem, 2.5vw, 2rem) !important; }
.page-sub .offerings__sticky .frame { width: 100% !important; max-width: none !important; margin: 0 !important; aspect-ratio: 4 / 5 !important; border-radius: 0 !important; grid-row: auto !important; }
.page-sub .offerings__sticky .frame img { width: 100% !important; height: 100% !important; object-fit: cover !important; }

/* About: philosophy quote matches the homepage quote size */
.philosophy__quote { font-size: clamp(1.35rem, 2.2vw, 1.9rem) !important; line-height: 1.38 !important; }
/* Portfolio contact: card sits low so the bride's face shows above it */
@media (min-width: 901px) { .weddings--page ~ .cta--photo, body:has(.weddings--page) .cta.cta--photo { align-items: flex-end !important; padding-top: clamp(16rem, 24vw, 22rem) !important; padding-bottom: clamp(3rem, 5vw, 4rem) !important; } }
@media (max-width: 900px) { body:has(.weddings--page) .cta.cta--photo { padding-top: 14rem !important; padding-bottom: 2.5rem !important; } }

/* Homepage quote: text sits center right instead of hugging the edge */
@media (min-width: 901px) {
  .page-home .quote-split--over { place-items: center !important; }
  .page-home .quote-split--over .quote-split__words { max-width: 40rem !important; margin: 0 0 0 clamp(18rem, 36vw, 40rem) !important; }
  .page-home .quote-split--over::after { background: radial-gradient(ellipse 50% 70% at 64% 50%, rgba(18, 26, 21, 0.62), rgba(18, 26, 21, 0.32) 62%, rgba(18, 26, 21, 0.12) 100%) !important; }
}

/* One quote size site wide (homepage testimonial, About statement and philosophy) */
:root { --quote-size: clamp(1.25rem, 1.75vw, 1.6rem); }
.page-home .quote-split .quote-card__text, .quote-split--over .quote-card__text, .statement__text, .philosophy__quote { font-size: var(--quote-size) !important; line-height: 1.45 !important; }
.statement__inner { max-width: 44rem !important; }
.philosophy__quote { max-width: 40rem !important; }
@media (min-width: 901px) { .page-home .quote-split--over .quote-split__words { max-width: 36rem !important; } .page-home .quote-split--over .quote-card__text { max-width: none !important; } }
@media (max-width: 600px) { :root { --quote-size: 1.2rem; } }
.philosophy__quote { margin-left: 0 !important; margin-right: auto !important; padding-left: 0 !important; }
.statement { padding-block: clamp(3rem, 6vw, 4.75rem) !important; }
.statement__inner { gap: clamp(1.25rem, 2.2vw, 1.75rem) !important; }
html body .philosophy .philosophy__quote { margin-left: 0 !important; margin-right: auto !important; margin-inline: 0 auto !important; }

/* Homepage quote: Elizabeth & Ryan oak sunset, quote centered over the photo in three lines, parallax */
@media (min-width: 901px) {
  .page-home .quote-split--over { place-items: center !important; min-height: clamp(380px, 34vw, 500px) !important; }
  .page-home .quote-split--over .quote-split__words { margin: 0 auto !important; max-width: 37rem !important; padding-inline: 2rem !important; text-align: center !important; }
  .page-home .quote-split--over .quote-split__photo img { top: -12% !important; height: 124% !important; object-position: center 100% !important; }
  .page-home .quote-split--over .quote-split__photo img.px { transform: translate3d(0, var(--px, 0px), 0) !important; }
  .page-home .quote-split--over::after { background: radial-gradient(ellipse 42% 66% at 50% 50%, rgba(18, 26, 21, 0.7), rgba(18, 26, 21, 0.42) 62%, rgba(18, 26, 21, 0.14) 100%) !important; }
}
@media (max-width: 900px) { .page-home .quote-split--over .quote-split__photo img { object-position: 62% 70% !important; } }
