@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('assets/fonts/jost.woff2') format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('assets/fonts/playfair-display.woff2') format('woff2');
}

@font-face {
  font-family: 'Italianno';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/italianno.woff2') format('woff2');
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('assets/fonts/cormorant-garamond-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url('assets/fonts/cormorant-garamond-italic.woff2') format('woff2');
}

:root {
  --rose-900: #7f4b50;
  --rose-800: #92585d;
  --rose-700: #aa6d72;
  --rose-600: #ba7d82;
  --rose-500: #ca9094;
  --rose-300: #e6bfc0;
  --rose-100: #f6e3e1;
  --ivory: #fffaf5;
  --gold-dark: #72500f;
  --gold: #bd8726;
  --gold-bright: #f3dc96;
  --champagne: #fff0c8;
  --ink: #3a2529;
  --serif: 'Playfair Display', Georgia, serif;
  --soft-serif: 'Cormorant Garamond', Georgia, serif;
  --script: 'Italianno', cursive;
  --sans: 'Jost', Arial, sans-serif;
  --metal-gold-btn: linear-gradient(108deg, #c9922b 0%, #d8a93c 12%, #f8e8ae 31%, #cf9a2f 47%, #fff0bd 58%, #d0992c 75%, #e7c76f 90%, #c8912a 100%);
  --metal-gold: linear-gradient(108deg, #6f4a0b 0%, #a97419 12%, #f8e8ae 31%, #c38b27 47%, #fff0bd 58%, #aa7418 75%, #e7c76f 90%, #76500d 100%);
  --metal-rose: linear-gradient(112deg, #77454b 0%, #a9656b 17%, #edc8c7 38%, #b8757a 53%, #f0cbca 67%, #9d5d63 84%, #754248 100%);
}

* { box-sizing: border-box; }
html { background: var(--rose-900); scroll-behavior: smooth; }
body { background: var(--rose-100); color: var(--ink); font-family: var(--sans); font-size: 1rem; margin: 0; overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
::selection { background: var(--gold-bright); color: var(--ink); }

.skip-link {
  background: var(--ivory);
  color: var(--rose-900);
  font-weight: 600;
  left: 16px;
  padding: 12px 18px;
  position: fixed;
  top: 12px;
  transform: translateY(-160%);
  transition: transform 160ms ease;
  z-index: 100;
}
.skip-link:focus { transform: translateY(0); }

a:focus-visible,
button:focus-visible { outline: 3px solid var(--ivory); outline-offset: 3px; }

.topline {
  align-items: center;
  background: var(--metal-rose);
  border-bottom: 1px solid rgb(255 240 200 / 68%);
  box-shadow: inset 0 -1px 0 rgb(106 63 17 / 24%);
  color: white;
  display: grid;
  font-size: 1rem;
  gap: 20px;
  grid-template-columns: 1fr auto 1fr;
  letter-spacing: .18em;
  min-height: 34px;
  padding: 7px clamp(18px, 5vw, 72px);
  text-transform: uppercase;
}

.topline > :last-child { justify-self: end; }

.site-header {
  align-items: center;
  background:
    radial-gradient(circle at 82% -40%, rgb(255 255 255 / 28%), transparent 34%),
    linear-gradient(112deg, #955960 0%, #bd7b82 32%, #d19a9d 52%, #b67178 72%, #955860 100%);
  border-bottom: 5px solid var(--ivory);
  display: grid;
  gap: 30px;
  grid-template-columns: minmax(180px, 310px) 1fr auto;
  min-height: 132px;
  padding: 8px clamp(22px, 4vw, 68px);
  position: relative;
  z-index: 20;
}

.site-header::after {
  background: var(--metal-gold);
  bottom: 0;
  content: '';
  height: 3px;
  left: 0;
  position: absolute;
  right: 0;
}

.brand img { filter: drop-shadow(0 6px 12px rgb(70 35 18 / 28%)); height: 112px; object-fit: contain; object-position: left center; width: auto; }
.desktop-nav { display: flex; gap: clamp(18px, 2.5vw, 42px); justify-content: center; }
.desktop-nav a { color: #fff9ed; font-size: 1rem; letter-spacing: .2em; min-height: 44px; padding-top: 12px; position: relative; text-shadow: 0 1px 5px rgb(75 39 43 / 36%); text-transform: uppercase; }
.desktop-nav a::after { background: var(--gold-bright); bottom: 5px; content: ''; height: 1px; left: 0; position: absolute; transform: scaleX(0); transition: transform 180ms ease; width: 100%; }
.desktop-nav a:hover::after,
.desktop-nav a:focus-visible::after { transform: scaleX(1); }

.gold-button {
  align-items: center;
  background: var(--metal-gold-btn);
  border: 1px solid rgb(146 101 18 / 45%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 70%), inset 0 -1px 0 rgb(89 54 8 / 54%), 0 7px 20px rgb(80 44 12 / 28%);
  color: #3a2529;
  display: inline-flex;
  font-size: 1rem;
  font-weight: 600;
  justify-content: center;
  isolation: isolate;
  letter-spacing: .1em;
  min-height: 48px;
  padding: 14px 24px;
  line-height: 1.1;
  text-align: center;
  overflow: hidden;
  position: relative;
  text-shadow: 0 1px 0 rgb(255 255 255 / 55%);
  text-transform: uppercase;
  transition: filter 180ms ease, transform 180ms ease;
  white-space: nowrap;
}

.gold-button::before {
  background: linear-gradient(100deg, transparent 25%, rgb(255 255 255 / 56%) 48%, transparent 70%);
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute;
  transform: translateX(-130%);
  transition: transform 650ms ease;
  z-index: -1;
}

.gold-button:hover,
.gold-button:focus-visible { filter: brightness(1.1); transform: translateY(-2px); }
.gold-button:hover::before,
.gold-button:focus-visible::before { transform: translateX(130%); }
.header-button { white-space: nowrap; }
.menu-button,
.mobile-nav { display: none; }

/* Keep below-the-fold sections out of the initial mobile render work. */
.service-tiles,
.venue-story,
.vendor-band,
.about-strip,
.contact,
footer {
  content-visibility: auto;
}
.service-tiles { contain-intrinsic-size: auto 1800px; }
.venue-story  { contain-intrinsic-size: auto 940px; }
.vendor-band  { contain-intrinsic-size: auto 900px; }
.about-strip  { contain-intrinsic-size: auto 820px; }
.contact      { contain-intrinsic-size: auto 800px; }
footer        { contain-intrinsic-size: auto 290px; }
.about-page main > section:not(.story-hero) {
  contain-intrinsic-size: auto 760px;
  content-visibility: auto;
}

.mosaic {
  background: linear-gradient(120deg, #fffaf5, #f2d9cf 48%, #fffaf5);
  display: grid;
  gap: 7px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 7px;
}

.panel {
  background: var(--rose-700);
  box-shadow: inset 0 0 0 1px rgb(255 245 222 / 38%);
  min-height: 390px;
  overflow: hidden;
  position: relative;
}

.panel::after {
  border: 1px solid rgb(255 238 195 / 38%);
  box-shadow: inset 0 0 34px rgb(63 25 29 / 14%);
  content: '';
  inset: 12px;
  pointer-events: none;
  position: absolute;
  z-index: 5;
}

.panel-span-2 { grid-column: span 2; }
.panel > img { filter: saturate(.9) contrast(1.03) brightness(.96); height: 100%; inset: 0; object-fit: cover; position: absolute; transform: scale(1.002); transition: filter 700ms ease, transform 900ms cubic-bezier(.2,.7,.2,1); width: 100%; }
.panel:hover > img { filter: saturate(.98) contrast(1.04) brightness(1); transform: scale(1.035); }
.panel-shade { background: linear-gradient(90deg, rgb(112 55 63 / 97%) 0%, rgb(141 74 82 / 88%) 45%, rgb(140 75 82 / 18%) 78%, transparent 100%); inset: 0; position: absolute; }
.panel-shade-soft { background: linear-gradient(90deg, transparent 0%, rgb(114 55 64 / 28%) 35%, rgb(119 57 65 / 92%) 67%, rgb(102 47 55 / 96%) 100%); }

.panel-copy {
  color: white;
  display: flex;
  flex-direction: column;
  inset: 0;
  justify-content: center;
  min-width: 0;
  overflow: hidden;
  padding: clamp(28px, 4vw, 64px);
  position: absolute;
  text-shadow: 0 2px 12px rgb(57 25 29 / 48%);
  z-index: 3;
}

.panel-copy::before {
  background: radial-gradient(ellipse at center, rgb(74 26 35 / 42%) 0%, rgb(92 36 46 / 24%) 42%, transparent 73%);
  content: '';
  inset: 12% 2%;
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

.panel-copy-left { align-items: flex-start; background: linear-gradient(90deg, rgb(92 39 47 / 24%), transparent 92%); max-width: 58%; text-align: left; }
.panel-copy-right { align-items: center; background: linear-gradient(90deg, transparent 0%, rgb(89 34 43 / 14%) 18%, rgb(89 34 43 / 28%) 100%); margin-left: auto; max-width: 52%; text-align: center; }
.panel-copy-centre { align-items: center; text-align: center; }
.panel-mark { filter: drop-shadow(0 4px 8px rgb(55 20 24 / 30%)); height: 82px !important; inset: auto !important; margin: 0 0 12px; object-fit: contain !important; opacity: .98; position: static !important; width: auto !important; }
.brand-small { color: var(--champagne); font-family: var(--serif); font-size: clamp(1.05rem, 1.45vw, 1.4rem); font-weight: 600; letter-spacing: .08em; line-height: 1.18; margin: 0 0 13px; text-shadow: 0 2px 8px rgb(47 16 21 / 72%); text-transform: uppercase; }
.mini-title { font-family: var(--serif); font-size: clamp(1.5rem, 2.2vw, 2.2rem); letter-spacing: .05em; margin: 0; text-transform: uppercase; }

.panel h1,
.panel h2 {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 2.7vw, 3.35rem);
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1;
  margin: 0 0 20px;
  text-wrap: balance;
  text-transform: uppercase;
}

.panel h1 em,
.panel h2 em { color: var(--champagne); display: block; filter: drop-shadow(0 2px 4px rgb(64 31 20 / 30%)); font-family: var(--script); font-size: 1.28em; font-weight: 400; line-height: .86; margin: .08em 0 .03em; text-transform: none; }
.panel h1 span,
.panel h2 span { display: block; font-size: max(16px, .68em); letter-spacing: .02em; line-height: 1.08; margin-top: 10px; }
.caps-line { color: #fffdf7; font-size: 1rem; font-weight: 600; letter-spacing: .16em; line-height: 1.55; margin: 0 0 18px; text-shadow: 0 2px 7px rgb(49 15 21 / 85%); text-transform: uppercase; }
.panel .gold-button { box-sizing: border-box; max-width: 100%; padding-inline: 14px; white-space: normal; }
.panel-ballroom .panel-copy,
.panel-cake .panel-copy,
.panel-plan .panel-copy,
.panel-testimonial .panel-copy,
.panel-collections .panel-copy { max-width: 72%; padding-inline: 22px; }
.panel-ballroom h2,
.panel-cake h2,
.panel-plan h2,
.panel-collections h2 { font-size: clamp(1.8rem, 2.35vw, 3rem); }

.panel-hero { min-height: 500px; }
.panel-hero > img { object-position: center 38%; }
.panel-hero .panel-copy { max-width: 50%; }
.panel-hero .panel-shade { background: linear-gradient(90deg, rgb(111 54 62 / 98%) 0%, rgb(148 79 87 / 90%) 38%, rgb(150 83 90 / 24%) 67%, transparent 82%); }
.panel-bridal { min-height: 500px; }
.panel-bridal > img { object-position: 64% 28%; }
.panel-bridal .panel-shade { background: linear-gradient(0deg, rgb(101 43 52 / 96%) 0%, rgb(127 61 69 / 75%) 38%, transparent 82%); }
.panel-bridal .panel-copy { justify-content: flex-end; padding-bottom: 34px; }

.panel-ballroom::before,
.panel-cake::before,
.panel-plan::before {
  background: var(--metal-gold);
  box-shadow: 0 0 0 2px rgb(255 255 255 / 36%);
  content: '';
  height: 150%;
  left: 46%;
  position: absolute;
  top: -22%;
  transform: rotate(18deg);
  width: 18px;
  z-index: 2;
}

.panel-ballroom { min-height: 450px; }
.panel-ballroom > img { object-position: 28% center; }
.panel-cake > img { object-position: 25% 50%; }
.panel-plan > img { object-position: 36% 38%; }
.panel-testimonial > img { object-position: 70% 55%; }
.panel-collections > img { object-position: 65% 44%; }
.panel-testimonial .panel-shade,
.panel-collections .panel-shade { background: linear-gradient(90deg, rgb(110 51 59 / 97%) 0%, rgb(141 73 81 / 88%) 58%, rgb(144 76 83 / 18%) 90%); }
.panel-testimonial blockquote { font-family: var(--soft-serif); font-size: 1.05rem; line-height: 1.55; margin: 0 0 20px; max-width: 360px; }

.panel-instagram {
  background:
    radial-gradient(circle at 26% 30%, rgb(255 255 255 / 18%), transparent 28%),
    var(--metal-rose);
}

.panel-instagram .panel-copy { align-items: flex-start; max-width: 62%; padding-right: 10px; text-align: left; }
.phone-mock { background: #171014; border: 3px solid #eee; border-radius: 22px; bottom: -34px; box-shadow: 0 14px 30px rgb(65 32 37 / 35%); height: 330px; overflow: hidden; padding: 30px 9px 10px; position: absolute; right: 22px; transform: rotate(-8deg); width: 150px; z-index: 3; }
.phone-mock > span { background: #050505; border-radius: 0 0 8px 8px; height: 16px; left: 44px; position: absolute; top: 3px; width: 58px; }
.phone-grid { display: grid; gap: 3px; grid-template-columns: 1fr 1fr; }
.phone-grid img { height: 89px; object-fit: cover; width: 100%; }

.service-tiles {
  background:
    radial-gradient(circle at 50% 0%, rgb(255 255 255 / 36%), transparent 34%),
    linear-gradient(105deg, #dba7aa, #f0cdca 48%, #cd8d93);
  border-bottom: 6px solid var(--ivory);
  border-top: 6px solid var(--ivory);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 64%), inset 0 -1px 0 rgb(116 67 22 / 18%);
  padding: 68px 7px 7px;
}

.service-intro { color: var(--rose-900); margin: 0 auto 50px; max-width: 800px; position: relative; text-align: center; }
.service-intro::after { background: var(--metal-gold); box-shadow: 0 1px 0 rgb(255 255 255 / 64%); content: ''; display: block; height: 2px; margin: 26px auto 0; width: 92px; }
.service-intro p,
.section-label { font-size: 1rem; font-weight: 600; letter-spacing: .2em; margin: 0 0 12px; text-transform: uppercase; }
.service-intro h2 { font-family: var(--serif); font-size: clamp(2.8rem, 5vw, 5rem); font-weight: 400; line-height: .92; margin: 0; text-transform: uppercase; }
.service-intro h2 em { font-family: var(--script); font-size: 1.45em; font-weight: 400; text-transform: none; }
.service-row { display: grid; gap: 7px; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.service-tile { box-shadow: inset 0 0 0 1px rgb(255 240 203 / 45%); min-height: 235px; overflow: hidden; position: relative; }
.service-tile::after { background: linear-gradient(0deg, rgb(123 68 73 / 92%), transparent 62%); content: ''; inset: 0; position: absolute; }
.service-tile img { height: 100%; object-fit: cover; transition: transform 500ms ease; width: 100%; }
.service-tile:hover img { transform: scale(1.04); }
.service-tile span { backdrop-filter: blur(2px); background: linear-gradient(0deg, rgb(91 38 46 / 32%), transparent); bottom: 0; color: #fffaf2; font-family: var(--serif); font-size: clamp(1rem, 1.45vw, 1.45rem); font-weight: 500; left: 0; letter-spacing: .035em; padding: 24px 10px 20px; position: absolute; right: 0; text-align: center; text-shadow: 0 2px 7px rgb(48 16 22 / 86%); text-transform: uppercase; z-index: 2; }

.venue-story { background: linear-gradient(118deg, #f9e7e3, #f1d2ce 66%, #e6b6b7); display: grid; grid-template-columns: 1.15fr .85fr; min-height: 640px; }
.venue-photo { min-height: 640px; overflow: hidden; position: relative; }
.venue-photo::after { background: linear-gradient(90deg, transparent 72%, #f3d5d1); content: ''; inset: 0; position: absolute; }
.venue-photo img { height: 100%; inset: 0; object-fit: cover; object-position: center; position: absolute; width: 100%; }
.venue-copy { align-self: center; padding: 70px clamp(30px, 5vw, 82px) 70px clamp(52px, 4vw, 68px); position: relative; }
.venue-copy::before { background: var(--metal-gold); box-shadow: 0 0 18px rgb(173 116 26 / 24%); content: ''; height: 76%; left: 20px; position: absolute; top: 12%; width: 2px; }
.venue-copy h2,
.about-strip h2,
.contact h2 { color: var(--rose-900); font-family: var(--serif); font-size: clamp(3.1rem, 5vw, 5.8rem); font-weight: 400; letter-spacing: -.035em; line-height: .88; margin: 0 0 26px; text-transform: uppercase; }
.venue-copy h2 em,
.contact h2 em { display: block; font-family: var(--script); font-size: 1.35em; font-weight: 400; text-transform: none; }
.venue-copy > p:not(.section-label) { color: #6d4a4e; font-family: var(--soft-serif); font-size: 1.2rem; line-height: 1.7; margin: 0 0 30px; }

.about-strip { align-items: center; background: var(--metal-rose); border-bottom: 5px solid var(--ivory); border-top: 5px solid var(--ivory); color: white; display: grid; gap: 42px; grid-template-columns: 150px .7fr 1.2fr; padding: 86px clamp(24px, 7vw, 112px); position: relative; }
.about-strip::before { border: 1px solid rgb(255 242 210 / 62%); content: ''; inset: 20px; pointer-events: none; position: absolute; }
.about-strip > * { position: relative; z-index: 2; }
.about-mark { align-items: center; border: 1px solid var(--gold-bright); border-radius: 50%; color: var(--gold-bright); display: flex; font-family: var(--serif); font-size: 5rem; height: 132px; justify-content: center; width: 132px; }
.about-strip .section-label { color: var(--gold-bright); }
.about-strip h2 { color: white; font-size: clamp(3rem, 4.6vw, 5.4rem); margin: 0; text-transform: none; }
.about-copy { background: linear-gradient(125deg, rgb(91 37 48 / 46%), rgb(113 49 59 / 26%)); border: 1px solid rgb(255 231 174 / 42%); box-shadow: 0 18px 42px rgb(72 29 38 / 18%); padding: 30px 34px; text-shadow: 0 2px 10px rgb(61 21 30 / 52%); }
.about-copy h3 { font-family: var(--soft-serif); font-size: 1.65rem; font-weight: 500; line-height: 1.25; margin: 0 0 18px; }
.about-copy p { color: #fffdf8; font-family: var(--soft-serif); font-size: 1.1rem; line-height: 1.7; margin: 0; }
.about-copy .signature { color: var(--gold-bright); font-family: var(--script); font-size: 2rem; margin-top: 14px; }
.story-link { border-bottom: 1px solid var(--gold-bright); color: #fff1c9; display: inline-flex; font-size: 1rem; font-weight: 600; gap: 12px; letter-spacing: .14em; margin-top: 22px; padding-bottom: 7px; text-transform: uppercase; }
.story-link span { transition: transform 180ms ease; }
.story-link:hover span,
.story-link:focus-visible span { transform: translateX(4px); }

.about-page { background: #f8e4df; }
.about-page main { overflow: hidden; }
.about-page .desktop-nav a[aria-current='page']::after { transform: scaleX(1); }

.story-hero {
  align-items: center;
  background:
    radial-gradient(circle at 76% 20%, rgb(255 245 224 / 34%), transparent 26%),
    radial-gradient(circle at 18% 75%, rgb(91 38 47 / 35%), transparent 30%),
    var(--metal-rose);
  border-bottom: 6px solid var(--ivory);
  color: white;
  display: grid;
  gap: clamp(36px, 7vw, 110px);
  grid-template-columns: minmax(220px, .75fr) 1.35fr;
  min-height: 650px;
  padding: 92px clamp(28px, 10vw, 160px);
  position: relative;
}

.story-hero::before,
.story-hero::after { border: 1px solid rgb(255 239 198 / 48%); content: ''; pointer-events: none; position: absolute; }
.story-hero::before { inset: 24px; }
.story-hero::after { background: var(--metal-gold); bottom: 0; height: 4px; left: 18%; right: 18%; }
.story-hero > * { position: relative; z-index: 2; }
.story-monogram { align-items: center; border: 1px solid var(--gold-bright); border-radius: 50%; box-shadow: inset 0 0 42px rgb(255 241 198 / 10%), 0 20px 60px rgb(75 31 38 / 20%); color: var(--champagne); display: flex; font-family: var(--serif); font-size: clamp(7rem, 15vw, 13rem); height: clamp(220px, 27vw, 360px); justify-content: center; margin: auto; text-shadow: 0 4px 18px rgb(70 28 35 / 30%); width: clamp(220px, 27vw, 360px); }
.story-hero .section-label { color: var(--champagne); }
.story-hero h1 { font-family: var(--serif); font-size: clamp(4rem, 8vw, 8.5rem); font-weight: 400; letter-spacing: -.05em; line-height: .82; margin: 0 0 32px; }
.story-hero h1 em { color: var(--champagne); display: block; font-family: var(--script); font-size: 1.12em; font-weight: 400; letter-spacing: 0; margin-left: .18em; }
.story-credentials { color: var(--champagne); font-family: var(--serif); font-size: clamp(1.25rem, 2vw, 1.8rem); letter-spacing: .08em; margin: 0 0 8px; text-transform: uppercase; }
.story-hero-copy > p:not(.section-label):not(.story-credentials) { font-family: var(--soft-serif); font-size: 1.18rem; line-height: 1.5; margin: 0; }
.story-values { border-top: 1px solid rgb(255 240 203 / 48%); color: white; font-size: 1rem; font-weight: 600; letter-spacing: .18em; margin-top: 34px; padding-top: 20px; text-transform: uppercase; }
.story-values span { color: var(--gold-bright); margin: 0 7px; }

.story-section { color: #634147; margin: 0 auto; max-width: 1240px; padding: clamp(84px, 10vw, 150px) clamp(28px, 7vw, 90px); }
.story-kicker { color: var(--gold-dark); font-size: 1rem !important; font-weight: 600; letter-spacing: .22em; margin: 0 0 18px !important; text-transform: uppercase; }
.story-section h2 { color: var(--rose-900); font-family: var(--serif); font-size: clamp(3rem, 6vw, 6.2rem); font-weight: 400; letter-spacing: -.045em; line-height: .88; margin: 0 0 38px; text-wrap: balance; }
.story-section h2 em { color: #a76469; display: block; font-family: var(--script); font-size: 1.15em; font-weight: 400; letter-spacing: 0; }
.story-section p { font-family: var(--soft-serif); font-size: 1.2rem; line-height: 1.78; margin: 0 0 24px; }
.story-lead { color: var(--rose-900); font-size: clamp(1.45rem, 2.4vw, 2.05rem) !important; line-height: 1.45 !important; max-width: 940px; }
.story-columns { align-items: start; display: grid; gap: clamp(46px, 8vw, 110px); grid-template-columns: 1.2fr .8fr; margin: 58px 0 34px; }
.story-pullquote { border-bottom: 1px solid var(--gold); border-top: 1px solid var(--gold); padding: 34px 10px; text-align: center; }
.story-pullquote span { background: var(--metal-gold); -webkit-background-clip: text; background-clip: text; color: transparent; display: block; font-family: var(--serif); font-size: clamp(4.8rem, 9vw, 8rem); font-weight: 600; line-height: .9; }
.story-pullquote p { color: var(--rose-900); font-size: 1.35rem; font-style: italic; line-height: 1.4; margin: 20px 0 0; }

.story-band { background: var(--metal-rose); border-bottom: 5px solid var(--ivory); border-top: 5px solid var(--ivory); box-shadow: inset 0 0 0 1px rgb(255 239 201 / 38%); color: white; padding: 64px 28px; text-align: center; }
.story-band p { font-size: 1rem; font-weight: 600; letter-spacing: .22em; margin: 0 0 14px; text-transform: uppercase; }
.story-band strong { color: var(--champagne); font-family: var(--serif); font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; }

.story-grid { display: grid; gap: clamp(50px, 8vw, 110px); grid-template-columns: 1fr 1fr; max-width: 1360px; }
.story-grid article { align-self: center; }
.story-card { background: linear-gradient(145deg, rgb(255 252 244 / 92%), rgb(239 201 197 / 68%)); border: 1px solid rgb(151 99 29 / 35%); box-shadow: 0 28px 80px rgb(91 43 49 / 12%); padding: clamp(42px, 6vw, 78px); position: relative; }
.story-card::before { border: 1px solid rgb(180 128 44 / 25%); content: ''; inset: 12px; pointer-events: none; position: absolute; }
.story-card > * { position: relative; }
.story-card blockquote { color: var(--rose-900); font-family: var(--serif); font-size: 1.45rem; font-style: italic; line-height: 1.45; margin: 34px 0; padding-left: 26px; position: relative; }
.story-card blockquote::before { background: var(--metal-gold); content: ''; height: 100%; left: 0; position: absolute; top: 0; width: 3px; }

.story-chapter { align-items: center; border-top: 1px solid rgb(153 101 31 / 28%); display: grid; gap: clamp(40px, 8vw, 100px); grid-template-columns: auto 1fr; }
.chapter-number { background: var(--metal-gold); -webkit-background-clip: text; background-clip: text; color: transparent; font-family: var(--serif); font-size: clamp(7rem, 16vw, 13rem); line-height: 1; }
.story-chapter h2 { margin-bottom: 25px; }
.story-chapter .story-lead { margin-bottom: 0; }

.listening-section { display: grid; gap: 54px 90px; grid-template-columns: .8fr 1.2fr; }
.story-questions { border-left: 1px solid var(--gold); list-style: none; margin: 0; padding: 12px 0 12px 42px; }
.story-questions li { color: var(--rose-900); font-family: var(--serif); font-size: clamp(1.5rem, 2.4vw, 2.2rem); line-height: 1.25; margin-bottom: 18px; }
.story-wide { grid-column: 1 / -1; margin: 0 auto !important; max-width: 980px; text-align: center; }
.reverse .story-card { order: 0; }
.luxury-list { list-style: none; margin: 0 0 34px; padding: 0; }
.luxury-list li { border-bottom: 1px solid rgb(151 99 29 / 30%); color: var(--rose-900); font-family: var(--serif); font-size: 1.28rem; padding: 13px 0 13px 30px; position: relative; }
.luxury-list li::before { color: var(--gold); content: '✦'; left: 0; position: absolute; }

.story-reaction { background: linear-gradient(112deg, #8f5158, #c18488 50%, #8c5057); border-bottom: 6px solid var(--ivory); border-top: 6px solid var(--ivory); color: white; padding: clamp(78px, 10vw, 140px) clamp(28px, 10vw, 160px); text-align: center; }
.story-reaction > p { font-size: 1rem; font-weight: 600; letter-spacing: .18em; margin: 0 0 36px; text-transform: uppercase; }
.story-reaction div { display: flex; flex-wrap: wrap; gap: 16px 48px; justify-content: center; margin-bottom: 42px; }
.story-reaction span { color: var(--champagne); font-family: var(--script); font-size: clamp(3.2rem, 6vw, 6rem); }
.story-reaction strong { display: block; font-family: var(--soft-serif); font-size: clamp(1.3rem, 2.4vw, 2rem); font-weight: 400; line-height: 1.55; margin: auto; max-width: 930px; }
.story-final { max-width: 1040px; text-align: center; }
.story-final h2 em { display: inline; }
.story-final .story-lead { margin-left: auto; margin-right: auto; }
.story-final .signature { color: #a76469; font-family: var(--script); font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1; margin: 48px 0 34px; }

.contact { background: linear-gradient(120deg, #f0cecb, #c9898d 72%, #ad6e73); padding: 100px clamp(24px, 8vw, 130px); position: relative; text-align: center; }
.contact::before { border: 1px solid rgb(139 98 24 / 52%); content: ''; inset: 24px; pointer-events: none; position: absolute; }
.contact > * { position: relative; z-index: 2; }
.contact .section-label { color: var(--rose-900); }
.contact h2 { margin-left: auto; margin-right: auto; }
.contact > p:not(.section-label) { color: #68474b; font-family: var(--soft-serif); font-size: 1.25rem; margin: 0 auto 40px; }
.contact-links { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); margin: 0 auto; max-width: 1100px; }
.contact-links > * { align-items: center; background: linear-gradient(145deg, rgb(255 253 246 / 90%), rgb(248 228 220 / 82%)); border: 1px solid rgb(139 98 24 / 42%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 82%), 0 10px 30px rgb(99 50 55 / 10%); display: flex; flex-direction: column; justify-content: center; min-height: 124px; padding: 20px; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.contact-links a:hover,
.contact-links a:focus-visible { border-color: var(--gold); box-shadow: inset 0 1px 0 white, 0 14px 34px rgb(99 50 55 / 18%); transform: translateY(-3px); }
.contact-links small { color: #8a6064; font-size: 1rem; letter-spacing: .15em; margin-bottom: 8px; text-transform: uppercase; }
.contact-links strong { color: var(--rose-900); font-family: var(--serif); font-size: 1.2rem; font-weight: 500; overflow-wrap: anywhere; }

footer { align-items: center; background: linear-gradient(110deg, #dba3a6, #f0c7c3 46%, #d69a9e); border-top: 1px solid rgb(255 243 211 / 68%); color: var(--rose-900); display: grid; gap: 26px; grid-template-columns: 1fr auto 1fr; padding: 26px clamp(24px, 6vw, 90px); text-transform: uppercase; }
footer > span { font-size: 1rem; letter-spacing: .2em; }
footer > span:nth-of-type(2) { text-align: right; }
footer img { filter: drop-shadow(0 5px 12px rgb(74 33 21 / 18%)); height: 68px; object-fit: contain; width: 210px; }
footer small { font-size: 1rem; grid-column: 1 / -1; letter-spacing: .08em; text-align: center; text-transform: none; }

.floating-cta { background: var(--metal-gold-btn); border: 1px solid rgb(255 255 255 / 60%); bottom: 18px; box-shadow: 0 8px 24px rgb(83 45 12 / 34%); color: #3a2529; font-size: 1rem; font-weight: 600; letter-spacing: .08em; min-height: 44px; padding: 12px 18px; position: fixed; right: 18px; text-transform: uppercase; z-index: 30; }

@media (max-width: 1280px) {
  .site-header { grid-template-columns: 240px 1fr auto; }
  .desktop-nav { gap: 18px; }
  .desktop-nav a { font-size: 1rem; }
  .mosaic { grid-template-columns: 1fr 1fr; }
  .panel-span-2 { grid-column: 1 / -1; }
  .panel-copy { padding: 34px; }
  .panel-copy-left { max-width: 66%; }
  .panel-copy-right { max-width: 54%; }
  .panel-instagram .panel-copy { max-width: 68%; }
  .service-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1050px) {
  .topline { display: flex; justify-content: center; }
  .topline > :last-child { display: none; }
  .site-header { grid-template-columns: 1fr auto; min-height: 88px; }
  .brand img { height: 62px; }
  .desktop-nav,
  .header-button { display: none; }
  .menu-button { background: transparent; border: 1px solid rgb(255 250 245 / 72%); color: white; display: block; font-size: 1rem; letter-spacing: .12em; min-height: 44px; min-width: 66px; text-transform: uppercase; }
  .mobile-nav { background: #a96b70; border-bottom: 3px solid var(--gold-bright); display: none; grid-column: 1 / -1; left: 0; padding: 12px 20px 22px; position: absolute; right: 0; top: 100%; }
  .mobile-nav.open { display: grid; }
  .mobile-nav a { border-bottom: 1px solid rgb(255 255 255 / 24%); color: white; font-size: 1rem; letter-spacing: .12em; min-height: 48px; padding: 14px 4px 0; text-transform: uppercase; }
  .panel-hero { min-height: 480px; }
  .panel-hero .panel-copy { max-width: 58%; }
  .panel-bridal,
  .panel-ballroom,
  .panel-cake,
  .panel-plan,
  .panel-testimonial,
  .panel-collections,
  .panel-instagram { min-height: 420px; }
  .panel-ballroom { min-height: 500px; }
  .panel-copy-right { max-width: 62%; }
  .venue-story { display: block; }
  .venue-photo { min-height: 500px; }
  .venue-photo::after { background: linear-gradient(0deg, var(--rose-100), transparent 28%); }
  .venue-copy { padding: 34px 40px 76px; }
  .venue-copy::before { display: none; }
  .about-strip { grid-template-columns: 120px 1fr; }
  .about-copy { grid-column: 1 / -1; }
  .contact-links { grid-template-columns: 1fr; }
  .story-hero { grid-template-columns: 230px 1fr; min-height: 560px; padding: 72px 42px; }
  .story-monogram { font-size: 7rem; height: 210px; width: 210px; }
  .story-grid { gap: 46px; }
  .story-card { padding: 48px 38px; }
}

@media (max-width: 600px) {
  .topline { font-size: 1rem; letter-spacing: .12em; }
  .site-header { min-height: 78px; padding: 8px 16px; }
  .brand img { height: 54px; max-width: 210px; }
  .mosaic { display: block; padding: 4px; }
  .panel { margin-bottom: 4px; min-height: 480px; }
  .panel-ballroom { min-height: 560px; }
  .panel-ballroom .panel-copy { padding-bottom: 46px; }
  .panel-hero { min-height: 610px; }
  .panel-hero > img { object-position: 67% center; }
  .panel-hero .panel-shade { background: linear-gradient(0deg, rgb(132 72 78 / 98%) 0%, rgb(151 86 92 / 80%) 52%, transparent 86%); }
  .panel-hero .panel-copy { align-items: center; justify-content: flex-end; max-width: none; padding-bottom: 42px; text-align: center; }
  .panel-copy,
  .panel-copy-left,
  .panel-copy-right,
  .panel-instagram .panel-copy { align-items: center; inset: 0; margin: 0; max-width: none; padding: 30px 24px; text-align: center; }
  .panel-ballroom .panel-copy,
  .panel-cake .panel-copy,
  .panel-plan .panel-copy,
  .panel-testimonial .panel-copy,
  .panel-collections .panel-copy { max-width: none; padding-inline: 24px; }
  .panel-shade,
  .panel-shade-soft,
  .panel-testimonial .panel-shade,
  .panel-collections .panel-shade { background: linear-gradient(0deg, rgb(132 72 78 / 96%) 0%, rgb(154 88 94 / 72%) 56%, transparent 90%); }
  .panel-copy { justify-content: flex-end; }
  .panel h1,
  .panel h2 { font-size: clamp(2.4rem, 11vw, 3.8rem); }
  .panel-mark { height: 42px !important; }
  .panel-ballroom::before,
  .panel-cake::before,
  .panel-plan::before { left: 68%; }
  .panel-instagram { min-height: 460px; }
  .panel-instagram .panel-copy { align-items: flex-start; justify-content: flex-start; padding: 38px 24px; text-align: left; }
  .phone-mock { bottom: -22px; height: 310px; right: 28px; }
  .service-tiles { padding-top: 52px; }
  .service-row { grid-template-columns: 1fr 1fr; }
  .service-tile { min-height: 230px; }
  .venue-photo { min-height: 390px; }
  .venue-copy { padding: 42px 24px 70px; }
  .about-strip { display: block; padding: 74px 32px; text-align: center; }
  .about-mark { height: 100px; margin: 0 auto 28px; width: 100px; }
  .about-copy { margin-top: 28px; padding: 28px 22px; }
  .contact { padding: 80px 24px; }
  .contact::before { inset: 14px; }
  footer { display: block; text-align: center; }
  footer img { margin: 20px auto; }
  footer > span { display: block; line-height: 1.8; text-align: center !important; }
  .floating-cta { bottom: 12px; right: 12px; }
  .story-hero { display: block; min-height: auto; padding: 72px 30px 78px; text-align: center; }
  .story-hero::before { inset: 14px; }
  .story-monogram { font-size: 5rem; height: 140px; margin-bottom: 40px; width: 140px; }
  .story-hero h1 { font-size: clamp(3.5rem, 17vw, 5.4rem); }
  .story-hero h1 em { margin-left: 0; }
  .story-values { line-height: 2; }
  .story-section { padding: 78px 26px; }
  .story-section h2 { font-size: clamp(2.8rem, 14vw, 4.4rem); }
  .story-columns,
  .story-grid,
  .story-chapter,
  .listening-section { display: block; }
  .story-pullquote,
  .story-card,
  .story-questions { margin-top: 42px; }
  .story-card { padding: 48px 30px; }
  .chapter-number { font-size: 7rem; margin-bottom: 24px; }
  .story-questions { padding-left: 28px; }
  .story-wide { margin-top: 48px !important; }
  .story-reaction div { display: block; }
  .story-reaction span { display: block; }
}

/* ---------- brand mark in place of the old "S" monogram ---------- */
.about-mark { padding: 16px; }
.about-mark img { height: 100%; object-fit: contain; width: 100%; }
.story-monogram { padding: clamp(26px, 3.2vw, 52px); }
.story-monogram img { height: 100%; object-fit: contain; width: 100%; }

/* ---------- Shamane portrait ---------- */
.story-portrait { align-items: center; background: linear-gradient(120deg, #fdf1ee, #f7dedb 68%, #efc9c7); display: grid; gap: clamp(28px, 5vw, 64px); grid-template-columns: .82fr 1.18fr; padding: clamp(56px, 7vw, 96px) clamp(24px, 7vw, 112px); }
.story-portrait figure { margin: 0; position: relative; }
.story-portrait figure::after { border: 1px solid var(--gold-bright); content: ''; inset: 14px; pointer-events: none; position: absolute; }
.story-portrait img { aspect-ratio: 4 / 5; box-shadow: 0 26px 60px rgb(96 46 52 / 26%); display: block; object-fit: cover; width: 100%; }
.story-portrait figcaption { color: var(--rose-800); font-family: var(--sans); font-size: 1rem; letter-spacing: .26em; margin-top: 18px; text-align: center; text-transform: uppercase; }
.story-portrait h2 { color: var(--rose-900); font-family: var(--serif); font-size: clamp(2rem, 3.4vw, 3.2rem); font-weight: 400; line-height: 1.06; margin: 14px 0 20px; }
.story-portrait h2 em { color: var(--gold); font-style: italic; }
.story-portrait p { color: var(--ink); font-size: 1.02rem; line-height: 1.78; margin: 0 0 14px; max-width: 36em; }
.story-portrait--no-image { display: block; text-align: center; }
.story-portrait--no-image > div { margin-inline: auto; max-width: 760px; }
.story-portrait--no-image p { margin-inline: auto; }

/* ---------- Preferred vendors ---------- */
.vendor-band { background: var(--ivory); border-bottom: 5px solid var(--rose-100); border-top: 5px solid var(--rose-100); display: grid; gap: clamp(26px, 4vw, 54px); grid-template-columns: 1.02fr .98fr; padding: clamp(60px, 8vw, 104px) clamp(24px, 7vw, 112px); }
.vendor-intro h2 { color: var(--rose-800); font-family: var(--serif); font-size: clamp(2.1rem, 3.5vw, 3.3rem); font-weight: 400; line-height: 1.05; margin: 14px 0 20px; }
.vendor-intro h2 em { color: var(--gold); font-style: italic; }
.vendor-intro p { color: var(--ink); font-size: 1.02rem; line-height: 1.78; margin: 0; max-width: 36em; }
.vendor-list { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; list-style: none; margin: 0; padding: 0; }
.vendor-list li { align-items: center; border: 1px solid rgb(189 135 38 / 36%); color: var(--rose-900); display: flex; font-family: var(--sans); font-size: 1rem; letter-spacing: .07em; line-height: 1.4; min-height: 56px; padding: 12px 16px; text-transform: uppercase; }
.vendor-cta { align-items: center; border-top: 1px solid rgb(189 135 38 / 28%); display: flex; flex-wrap: wrap; gap: 20px; grid-column: 1 / -1; justify-content: space-between; padding-top: clamp(24px, 3vw, 36px); }
.vendor-cta p { color: var(--ink); font-family: var(--soft-serif); font-size: clamp(1.12rem, 1.7vw, 1.4rem); margin: 0; max-width: 38em; }

.mobile-nav .gold-button { margin: 16px 0 6px; text-align: center; width: 100%; }

/* ---------- footer social row ---------- */
.footer-social { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 20px; justify-content: center; margin-top: 22px; }
.footer-social a { align-items: center; color: #5f353a; display: inline-flex; font-family: var(--sans); font-size: 1rem; letter-spacing: .14em; min-height: 44px; padding: 0 8px; text-transform: uppercase; }
.footer-social a:hover { color: var(--gold-bright); }

@media (max-width: 900px) {
  .vendor-band,
  .story-portrait { display: block; }
  .vendor-list { margin-top: 30px; }
  .vendor-cta { margin-top: 34px; }
  .story-portrait figure { margin-bottom: 34px; max-width: 420px; }
}

@media (max-width: 560px) {
  .vendor-list { grid-template-columns: 1fr; }
  .vendor-cta .gold-button { width: 100%; }
  .about-mark { padding: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* ---------- mobile polish ---------- */
.story-link { align-items: center; display: inline-flex; min-height: 44px; padding: 10px 0; }
.contact > p:not(.section-label) { color: #55383c; }

@media (max-width: 768px) {
  .panel-ballroom::before,
  .panel-cake::before,
  .panel-plan::before { opacity: .35; }
}

@media (max-width: 600px) {
  .gold-button { white-space: normal; }
  .phone-mock { height: 235px; }
  .story-wide,
  .story-final p { text-align: left; }
}

@media (max-width: 600px) {
  /* keep the fixed WhatsApp pill clear of the copyright line */
  footer { padding-bottom: 88px; }
  /* at this width the phone number and the tagline cannot share a row */
  .topline > :nth-child(2) { display: none; }
  .topline { font-size: 1rem; letter-spacing: .08em; }
}
