:root {
  --ink: #1a141b;
  --plum: #3d1837;
  --wine: #6a244f;
  --rose: #b96b7f;
  --blush: #ead2cf;
  --ivory: #f8f4ed;
  --paper: #fffdf9;
  --gold: #c8a267;
  --gold-soft: #ead8b8;
  --sage: #b8b9a4;
  --muted: #746a70;
  --line: rgba(61, 24, 55, .14);
  --shadow: 0 28px 80px rgba(36, 19, 31, .12);
  --radius: 28px;
  --display: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Manrope', Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
section, [id] { scroll-margin-top: 104px; }
body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; display: block; }
[hidden] { display: none !important; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--gold-soft); color: var(--plum); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

/* Persistent luxury motion: a reading line and slow depth glows. */
.luxury-progress { position: fixed; inset: 0 0 auto; z-index: 5000; height: 3px; pointer-events: none; background: rgba(200,162,103,.08); }
.luxury-progress span { display: block; width: var(--page-progress,0%); height: 100%; background: linear-gradient(90deg,var(--wine),var(--gold-soft),var(--gold)); box-shadow: 0 0 18px rgba(200,162,103,.55); }
.ambient-depth { position: fixed; inset: 0; z-index: 3; overflow: hidden; pointer-events: none; mix-blend-mode: multiply; }
.ambient-orb { position: absolute; display: block; border-radius: 50%; opacity: .1; filter: blur(2px); transform: translate3d(0,var(--ambient-y,0px),0); will-change: transform; }
.ambient-orb::after { content: ''; position: absolute; inset: 12%; border: 1px solid rgba(106,36,79,.35); border-radius: inherit; }
.ambient-orb.orb-a { width: 28vw; min-width: 260px; aspect-ratio: 1; left: -12vw; top: 18vh; background: radial-gradient(circle at 65% 36%,rgba(200,162,103,.55),rgba(185,107,127,.18) 42%,transparent 70%); }
.ambient-orb.orb-b { width: 22vw; min-width: 220px; aspect-ratio: 1; right: -9vw; top: 52vh; background: radial-gradient(circle at 35% 40%,rgba(106,36,79,.48),rgba(200,162,103,.1) 55%,transparent 72%); }
.ambient-orb.orb-c { width: 14vw; min-width: 150px; aspect-ratio: 1; left: 54vw; top: 84vh; border: 1px solid rgba(106,36,79,.45); box-shadow: 0 0 0 35px rgba(200,162,103,.06),0 0 0 70px rgba(106,36,79,.035); }

.skip-link {
  position: fixed; left: 16px; top: -80px; z-index: 9999;
  padding: .75rem 1rem; border-radius: 12px; background: var(--ink); color: #fff;
  transition: top .2s;
}
.skip-link:focus { top: 16px; }
.shell { width: min(1240px, calc(100% - 40px)); margin-inline: auto; }
.eyebrow {
  display: inline-flex; align-items: center; gap: .65rem; margin: 0 0 1rem;
  color: var(--wine); font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
}
.eyebrow::before { content: ''; width: 28px; height: 1px; background: var(--gold); }
.display-title {
  margin: 0; max-width: 900px; font-family: var(--display); font-size: clamp(3rem, 7vw, 7rem);
  font-weight: 600; line-height: .87; letter-spacing: -.055em;
}
.display-title em { color: var(--wine); font-weight: 500; }
.display-title em, .cinema-copy em { background: linear-gradient(100deg,var(--wine) 15%,#a66175 45%,var(--gold) 52%,var(--wine) 61%); background-size: 250% auto; -webkit-background-clip: text; background-clip: text; color: transparent; animation: titleLustre 7s ease-in-out infinite; }
.section-title {
  margin: 0; font-family: var(--display); font-size: clamp(2.6rem, 5vw, 5.2rem);
  font-weight: 600; line-height: .94; letter-spacing: -.045em;
}
.section-copy { max-width: 610px; color: var(--muted); font-size: 1rem; line-height: 1.85; }
.section-heading { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .6fr); gap: 3rem; align-items: end; }
.section-heading .section-copy { margin: 0 0 .45rem; }

.announcement {
  position: relative; z-index: 1010; padding: .58rem 1rem; background: var(--ink); color: rgba(255,255,255,.82);
  text-align: center; font-size: .72rem; font-weight: 600; letter-spacing: .08em;
}
.announcement a { color: #fff; text-underline-offset: 3px; }
.announcement-mobile { display: none; }

.site-header {
  position: sticky; top: 0; z-index: 1000; background: rgba(248,244,237,.9);
  border-bottom: 1px solid transparent; backdrop-filter: blur(16px); transition: border-color .25s, box-shadow .25s;
}
.site-header.scrolled { border-color: var(--line); box-shadow: 0 14px 40px rgba(36,19,31,.07); }
.nav-wrap { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; }
.brand-wordmark {
  position: relative; display: inline-block; min-width: 63px; color: var(--plum);
  font-family: var(--display); font-size: 2.15rem; font-style: italic; font-weight: 600;
  line-height: .72; letter-spacing: -.075em;
}
.brand-wordmark::after {
  content: ''; position: absolute; left: .08em; right: -.12em; bottom: -.34rem; height: 1px;
  background: linear-gradient(90deg,var(--gold),rgba(200,162,103,0)); transform: skewX(-24deg);
}
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { font-family: var(--display); font-size: 1.3rem; letter-spacing: .01em; }
.brand-copy small { margin-top: .3rem; color: var(--muted); font-size: .58rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.nav-links { display: flex; align-items: center; gap: 1.2rem; list-style: none; margin: 0; padding: 0; }
.nav-links a {
  position: relative; color: #433b40; font-size: .76rem; font-weight: 700; letter-spacing: .07em;
  text-decoration: none; text-transform: uppercase;
}
.nav-links a:not(.nav-book)::after {
  content: ''; position: absolute; left: 0; right: 100%; bottom: -.45rem; height: 1px; background: var(--wine); transition: right .25s;
}
.nav-links a:hover::after, .nav-links a.active::after { right: 0; }
.nav-book {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 1.25rem;
  border-radius: 999px; background: var(--plum); color: #fff !important; box-shadow: 0 12px 30px rgba(61,24,55,.2);
}
.nav-book:hover { background: var(--wine); }
.menu-button {
  display: none; width: 45px; height: 45px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: transparent;
}
.menu-button span { display: block; width: 18px; height: 1px; margin: 5px auto; background: var(--ink); transition: transform .25s, opacity .25s; }

.hero {
  position: relative; min-height: calc(100vh - 112px); overflow: hidden; padding: clamp(4rem,8vw,8rem) 0 4rem;
  background:
    radial-gradient(circle at 90% 4%, rgba(200,162,103,.24), transparent 24%),
    linear-gradient(135deg, #fbf8f2 0%, #f4ece8 55%, #eee1df 100%);
}
.hero::before {
  content: ''; position: absolute; left: -8rem; top: 10%; width: 18rem; height: 18rem; border: 1px solid rgba(106,36,79,.13); border-radius: 50%;
}
.hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(420px, .78fr); gap: clamp(2rem,6vw,7rem); align-items: center; }
.hero-copy { position: relative; z-index: 2; }
.hero-copy .display-title { max-width: 780px; }
.hero-lede { max-width: 620px; margin: 1.7rem 0 0; color: #62585f; font-size: clamp(.98rem,1.5vw,1.12rem); line-height: 1.85; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.button {
  position: relative; overflow: hidden; isolation: isolate; min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: .7rem; padding: 0 1.55rem;
  border: 1px solid transparent; border-radius: 999px; font-size: .77rem; font-weight: 700; letter-spacing: .08em;
  text-decoration: none; text-transform: uppercase; cursor: pointer; transition: transform .2s, box-shadow .2s, background .2s, color .2s;
}
.button::before { content: ''; position: absolute; z-index: -1; top: -80%; bottom: -80%; left: -45%; width: 28%; background: linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent); transform: rotate(18deg) translateX(-280%); transition: transform .75s cubic-bezier(.2,.8,.2,1); }
.button:hover::before { transform: rotate(18deg) translateX(690%); }
.button:hover { transform: translateY(-2px); }
.button:disabled { opacity: .58; cursor: wait; transform: none; box-shadow: none; }
.button-primary { background: var(--plum); color: #fff; box-shadow: 0 16px 38px rgba(61,24,55,.22); }
.button-primary:hover { background: var(--wine); box-shadow: 0 20px 44px rgba(61,24,55,.28); }
.button-ghost { border-color: rgba(61,24,55,.25); color: var(--plum); background: rgba(255,255,255,.3); }
.button-ghost:hover { background: #fff; }
.button-light { background: var(--paper); color: var(--plum); }
.button-light:hover { box-shadow: 0 18px 42px rgba(0,0,0,.2); }
.arrow { font-size: 1.15em; transition: transform .2s; }
.button:hover .arrow, .text-link:hover .arrow { transform: translateX(4px); }

.hero-proof { display: flex; align-items: center; gap: 1rem; margin-top: 2.2rem; }
.proof-mark {
  position: relative; flex: 0 0 64px; width: 64px; height: 54px; display: grid; place-items: center;
  overflow: hidden; border: 1px solid rgba(106,36,79,.16); border-radius: 18px 5px 18px 5px;
  background: linear-gradient(145deg,rgba(255,255,255,.72),rgba(234,216,184,.5));
  box-shadow: 0 16px 36px rgba(61,24,55,.11),inset 0 1px rgba(255,255,255,.85);
}
.proof-mark::after { content: ''; position: absolute; width: 30px; height: 80px; background: linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent); transform: rotate(24deg) translateX(-60px); animation: proofLustre 5s ease-in-out infinite; }
.proof-mark svg { position: relative; z-index: 1; width: 50px; height: 43px; overflow: visible; }
.proof-mark .proof-arch, .proof-mark .proof-floor { fill: none; stroke: var(--plum); stroke-width: 1.35; stroke-linecap: round; }
.proof-mark .proof-arch { stroke-dasharray: 90; animation: proofDraw 2.8s ease-in-out infinite alternate; }
.proof-mark .proof-spark { fill: var(--gold); }
.hero-proof strong { display: block; font-size: .82rem; }
.hero-proof > div > span { display: block; margin-top: .25rem; color: var(--muted); font-size: .74rem; }
.scroll-cue { display: flex; align-items: center; gap: .75rem; margin-top: 2rem; color: var(--muted); font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.scroll-cue i { position: relative; width: 1px; height: 38px; overflow: hidden; background: rgba(61,24,55,.16); }
.scroll-cue i::after { content: ''; position: absolute; inset: -60% 0 auto; height: 55%; background: var(--gold); animation: scrollCue 1.8s ease-in-out infinite; }

.hero-visual { position: relative; min-height: 620px; perspective: 1200px; }
.visual-frame {
  position: absolute; inset: 0 0 0 8%; overflow: hidden; border-radius: 48% 48% 18px 18px;
  background: linear-gradient(160deg, #4b233f, #1a141b 72%); box-shadow: 0 45px 100px rgba(42,19,37,.25);
}
.visual-frame { transform-style: preserve-3d; transition: box-shadow .4s ease; }
.hero-visual:hover .visual-frame { box-shadow: 0 55px 120px rgba(42,19,37,.34); }
.visual-frame::before {
  content: ''; position: absolute; inset: 22px; border: 1px solid rgba(234,216,184,.28); border-radius: inherit;
}
.hero-stage { position: absolute; inset: 15% 6% 5%; transition: filter .4s; }
.stage-arch {
  position: absolute; left: 17%; top: 8%; width: 55%; height: 70%; border-radius: 50% 50% 12px 12px;
  background: linear-gradient(145deg, #fbf3e7, #dbc9bd); box-shadow: inset 0 0 0 1px rgba(255,255,255,.6), 0 24px 55px rgba(0,0,0,.24);
}
.stage-arch::before {
  content: ''; position: absolute; inset: 13% 12%; border: 1px solid rgba(106,36,79,.2); border-radius: inherit;
}
.stage-name {
  position: absolute; left: 22%; right: 28%; top: 39%; z-index: 3; text-align: center; color: var(--wine);
  font-family: var(--display); font-size: clamp(2.4rem,5vw,4.5rem); font-style: italic; line-height: .8;
}
.stage-floor { position: absolute; left: 5%; right: 3%; bottom: 3%; height: 18%; border-radius: 50%; background: rgba(255,255,255,.08); filter: blur(2px); }
.stage-plinth { position: absolute; bottom: 5%; z-index: 4; border-radius: 50% 50% 8px 8px; background: linear-gradient(90deg,#eadbcf,#fff7ed); box-shadow: 0 18px 36px rgba(0,0,0,.23); }
.stage-plinth.one { left: 16%; width: 25%; height: 27%; }
.stage-plinth.two { left: 44%; width: 20%; height: 19%; }
.stage-plinth.three { right: 11%; width: 18%; height: 34%; background: linear-gradient(90deg,#ad7e6a,#d2a78d); }
.balloons { position: absolute; inset: 0; z-index: 4; }
.balloons i {
  position: absolute; display: block; width: var(--s); aspect-ratio: .86; border-radius: 50%;
  background: var(--c); box-shadow: inset -8px -12px 18px rgba(0,0,0,.18), inset 6px 6px 12px rgba(255,255,255,.24), 0 10px 18px rgba(0,0,0,.12);
}
.balloons i:nth-child(1){--s:70px;--c:#d6b98a;left:2%;top:12%}.balloons i:nth-child(2){--s:54px;--c:#8e3f69;left:9%;top:4%}.balloons i:nth-child(3){--s:58px;--c:#e8c9c4;left:2%;top:30%}.balloons i:nth-child(4){--s:45px;--c:#f3e7d9;left:14%;top:23%}.balloons i:nth-child(5){--s:66px;--c:#51203f;left:6%;top:46%}.balloons i:nth-child(6){--s:50px;--c:#c59875;right:3%;top:7%}.balloons i:nth-child(7){--s:68px;--c:#7f315d;right:0;top:22%}.balloons i:nth-child(8){--s:48px;--c:#ead0ca;right:10%;top:17%}.balloons i:nth-child(9){--s:60px;--c:#d0a565;right:5%;top:42%}.balloons i:nth-child(10){--s:42px;--c:#f4e9dc;right:17%;top:39%}.balloons i:nth-child(11){--s:52px;--c:#72274e;right:8%;top:58%}.balloons i:nth-child(12){--s:42px;--c:#dcbbb6;left:13%;top:61%}
.stage-floral { position: absolute; z-index: 5; width: 115px; height: 72px; border-radius: 55% 45% 52% 48%; background: radial-gradient(circle at 25% 50%,#e9bdc5 0 10%,transparent 11%),radial-gradient(circle at 42% 25%,#8e3f69 0 12%,transparent 13%),radial-gradient(circle at 60% 57%,#f0d8d2 0 11%,transparent 12%),radial-gradient(circle at 80% 27%,#bf7d8c 0 12%,transparent 13%),#7b6a55; filter: drop-shadow(0 10px 13px rgba(0,0,0,.2)); }
.stage-floral.left { left: 10%; bottom: 15%; transform: rotate(-10deg); }
.stage-floral.right { right: 8%; bottom: 24%; transform: rotate(8deg) scale(.82); }
.vibe-panel {
  position: absolute; right: -16px; bottom: 2rem; z-index: 8; width: 185px; padding: 1.1rem;
  background: rgba(255,253,249,.94); border: 1px solid #fff; border-radius: 18px; box-shadow: 0 24px 55px rgba(20,10,17,.2);
}
.vibe-panel small { color: var(--muted); font-size: .6rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.vibe-panel strong { display: block; margin-top: .35rem; font-family: var(--display); font-size: 1.4rem; }
.vibe-switch { display: flex; gap: .45rem; margin-top: .8rem; }
.vibe-switch button { width: 27px; height: 27px; border: 3px solid #fff; border-radius: 50%; background: var(--swatch); box-shadow: 0 0 0 1px var(--line); cursor: pointer; }
.vibe-switch button.active { box-shadow: 0 0 0 2px var(--plum); }
.hero-stage[data-vibe='pastel'] { filter: hue-rotate(322deg) saturate(.75) brightness(1.12); }
.hero-stage[data-vibe='royal'] { filter: hue-rotate(38deg) saturate(1.15) brightness(.92); }
.hero-stage[data-vibe='earth'] { filter: hue-rotate(292deg) saturate(.55) sepia(.22); }

.ticker { overflow: hidden; border-block: 1px solid var(--line); background: var(--paper); }
.ticker-track { width: max-content; display: flex; align-items: center; animation: marquee 28s linear infinite; }
.ticker span { padding: 1.05rem 1.8rem; color: var(--plum); font-family: var(--display); font-size: 1.15rem; white-space: nowrap; }
.ticker b { padding-right: 1rem; color: var(--gold); font-family: var(--sans); }
@keyframes marquee { to { transform: translateX(-50%); } }

.intro { padding: clamp(5rem,10vw,10rem) 0; }
.intro-grid { display: grid; grid-template-columns: .64fr 1.36fr; gap: 6rem; align-items: start; }
.intro-signature {
  position: sticky; top: 120px; min-height: 535px; overflow: hidden; isolation: isolate;
  display: flex; flex-direction: column; justify-content: end; padding: 1.5rem 1.7rem 2rem;
  border: 1px solid rgba(106,36,79,.13); border-radius: 46% 46% 24px 24px;
  background: radial-gradient(circle at 50% 18%,rgba(255,255,255,.94),transparent 28%),linear-gradient(155deg,#f4e7e2,#ead4d3 56%,#dfc2c5);
  box-shadow: 0 32px 80px rgba(61,24,55,.13),inset 0 1px rgba(255,255,255,.8);
}
.intro-signature::before { content: ''; position: absolute; z-index: -1; right: -55%; bottom: -21%; width: 112%; aspect-ratio: 1; border: 1px solid rgba(106,36,79,.12); border-radius: 50%; box-shadow: 0 0 0 34px rgba(200,162,103,.045),0 0 0 68px rgba(106,36,79,.025); }
.intro-signature::after { content: ''; position: absolute; inset: 14px; z-index: -1; border: 1px solid rgba(255,255,255,.48); border-radius: inherit; }
.intro-signature-art { position: absolute; left: 50%; top: 1.2rem; width: min(78%,245px); transform: translateX(-50%); }
.intro-signature-art svg { width: 100%; overflow: visible; filter: drop-shadow(0 18px 24px rgba(61,24,55,.07)); }
.signature-arch, .signature-floor, .signature-plinth { fill: none; stroke: var(--plum); stroke-linecap: round; stroke-linejoin: round; }
.signature-arch.outer { stroke-width: 1.35; opacity: .72; }
.signature-arch.inner { stroke-width: .75; opacity: .38; }
.signature-floor { stroke-width: 1.2; opacity: .5; }
.signature-plinth { stroke: var(--wine); stroke-width: 1.05; opacity: .62; }
.signature-botanical { fill: rgba(106,36,79,.32); }
.signature-spark { fill: var(--gold); filter: drop-shadow(0 0 7px rgba(200,162,103,.48)); animation: signatureSpark 3s ease-in-out infinite; }
.intro-signature-copy { position: relative; z-index: 2; }
.intro-signature-copy > span { display: block; margin-bottom: .7rem; color: var(--wine); font-size: .6rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.intro-signature-copy strong { display: block; font-family: var(--display); font-size: clamp(2.55rem,4.2vw,3.85rem); font-weight: 600; line-height: .78; letter-spacing: -.04em; }
.intro-signature-copy strong em { color: var(--wine); font-weight: 500; }
.intro-signature-copy small { display: block; max-width: 230px; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid rgba(106,36,79,.14); color: var(--muted); font-size: .61rem; font-weight: 700; letter-spacing: .08em; line-height: 1.6; text-transform: uppercase; }
.intro-content .section-copy { margin: 1.7rem 0 0; }
.owner-note { display: grid; grid-template-columns: 118px 1fr; gap: 1.25rem; margin: 1.7rem 0 .2rem; padding: 1.15rem 1.25rem; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.5); }
.owner-note strong { color: var(--wine); font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.owner-note p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.75; }
.manifesto-points { margin-top: 3rem; border-top: 1px solid var(--line); }
.manifesto-row { display: grid; grid-template-columns: 60px 1fr minmax(220px,.7fr); gap: 1.5rem; padding: 1.35rem 0; border-bottom: 1px solid var(--line); align-items: center; }
.manifesto-row > span { color: var(--gold); font-family: var(--display); font-size: 1.5rem; }
.manifesto-row h3 { margin: 0; font-family: var(--display); font-size: 1.6rem; font-weight: 600; }
.manifesto-row p { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.65; }

.lookbook { padding: clamp(5rem,9vw,9rem) 0; background: var(--ink); color: #fff; }
.lookbook .eyebrow { color: var(--gold-soft); }
.lookbook .section-copy { color: rgba(255,255,255,.62); }
.lookbook-grid { display: grid; grid-template-columns: 1.16fr .84fr; gap: 1rem; margin-top: 3.5rem; }
.lookbook-side { display: grid; gap: 1rem; }
.look-card { position: relative; min-height: 310px; overflow: hidden; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius); background: #2a1826; text-decoration: none; }
.look-card::before { content: ''; position: absolute; inset: 0; z-index: 4; pointer-events: none; background: linear-gradient(112deg,transparent 28%,rgba(255,255,255,.16) 44%,transparent 58%); transform: translateX(-130%); transition: transform .85s cubic-bezier(.2,.8,.2,1); }
.look-card:hover::before { transform: translateX(130%); }
.look-card.large { min-height: 635px; }
.look-art { position: absolute; inset: 0; overflow: hidden; background: #21121d; transition: transform .55s cubic-bezier(.2,.8,.2,1); }
.look-art::after { content: ''; position: absolute; inset: 48% 0 0; background: linear-gradient(transparent,rgba(14,10,13,.97) 88%); }
.look-illustration { width: 100%; height: 100%; display: block; shape-rendering: geometricPrecision; text-rendering: geometricPrecision; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.look-card:hover .look-illustration { transform: scale(1.018) translateY(-3px); }
.look-pastel::after { background: linear-gradient(transparent,rgba(61,31,43,.94) 88%); }
.look-copy { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.4rem; z-index: 3; }
.look-copy small { color: var(--gold-soft); font-size: .62rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.look-copy h3 { margin: .35rem 0 0; font-family: var(--display); font-size: clamp(1.7rem,3vw,3rem); font-weight: 600; }
.look-copy p { max-width: 500px; margin: .55rem 0 0; color: rgba(255,255,255,.7); font-size: .82rem; line-height: 1.6; }

.services { padding: clamp(5rem,10vw,10rem) 0; background: var(--paper); }
.service-list { margin-top: 4rem; border-top: 1px solid var(--line); }
.service-row { display: grid; grid-template-columns: 70px .7fr 1fr auto; gap: 2rem; align-items: center; min-height: 130px; border-bottom: 1px solid var(--line); text-decoration: none; transition: padding .25s, background .25s; }
.service-row { position: relative; isolation: isolate; overflow: hidden; }
.service-row::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(234,216,184,.26),rgba(234,210,207,.38),transparent); transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.service-row:hover::before { transform: scaleX(1); }
.service-row:hover { padding-inline: 1rem; background: var(--ivory); }
.service-row .num { color: var(--gold); font-family: var(--display); font-size: 1.35rem; }
.service-row h3 { margin: 0; font-family: var(--display); font-size: clamp(1.6rem,3vw,2.6rem); font-weight: 600; }
.service-row p { margin: 0; max-width: 520px; color: var(--muted); font-size: .88rem; line-height: 1.7; }
.service-row .round-arrow { width: 45px; height: 45px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; transition: background .2s, color .2s, transform .2s; }
.service-row:hover .round-arrow { background: var(--plum); color: #fff; transform: rotate(-30deg); }

/* Local service-area experience */
.area-preview { padding: 0 0 clamp(5rem,9vw,8rem); background: var(--paper); }
.area-preview-card { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(340px,.75fr); gap: clamp(2rem,6vw,6rem); align-items: center; padding: clamp(2rem,5vw,4.5rem); border-radius: 34px; background: radial-gradient(circle at 85% 15%,rgba(200,162,103,.2),transparent 30%),linear-gradient(145deg,#3e1837,#181018); color: #fff; box-shadow: 0 35px 90px rgba(52,21,45,.2); }
.area-preview-card::after { content: ''; position: absolute; width: 320px; height: 320px; right: -145px; bottom: -185px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 45px rgba(255,255,255,.025),0 0 0 90px rgba(200,162,103,.035); }
.area-preview-copy { position: relative; z-index: 1; }
.area-preview-copy .eyebrow { color: var(--gold-soft); }
.area-preview-copy .section-title { color: #fff; }
.area-preview-copy > p:not(.eyebrow) { max-width: 650px; margin: 1.2rem 0 1.7rem; color: rgba(255,255,255,.7); line-height: 1.8; }
.area-preview-cities { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: .65rem; align-content: center; }
.area-preview-cities span { padding: .72rem .9rem; border: 1px solid rgba(255,255,255,.17); border-radius: 999px; background: rgba(255,255,255,.055); color: rgba(255,255,255,.86); font-size: .66rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; backdrop-filter: blur(10px); }
.areas-page-hero .display-title { max-width: 1080px; }
.areas-intro { padding: clamp(4.5rem,9vw,8rem) 0; background: var(--paper); }
.areas-intro-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(360px,.9fr); gap: clamp(3rem,8vw,8rem); align-items: start; }
.areas-intro-copy { padding-top: .5rem; }
.areas-intro-copy p { margin: 0 0 1.2rem; color: var(--muted); font-size: .95rem; line-height: 1.85; }
.region-section { padding: clamp(5rem,9vw,8rem) 0; background: linear-gradient(145deg,#20151e,#120d12); color: #fff; }
.region-section .eyebrow { color: var(--gold-soft); }
.region-section .section-title { color: #fff; }
.region-section .section-copy { color: rgba(255,255,255,.63); }
.region-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; margin-top: 3.5rem; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 30px; background: rgba(255,255,255,.12); }
.region-card { position: relative; min-height: 315px; padding: clamp(1.7rem,4vw,3.2rem); overflow: hidden; background: radial-gradient(circle at 95% 5%,rgba(200,162,103,.12),transparent 33%),rgba(255,255,255,.035); }
.region-card::after { content: ''; position: absolute; width: 160px; height: 160px; right: -80px; bottom: -100px; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; transition: transform .5s; }
.region-card:hover::after { transform: translate(-30px,-25px) scale(1.3); }
.region-card > span { color: var(--gold-soft); font-family: var(--display); font-size: 2.4rem; }
.region-card h3 { margin: 3rem 0 .8rem; font-family: var(--display); font-size: clamp(2rem,3vw,3rem); font-weight: 500; }
.region-card p { max-width: 590px; margin: 0; color: rgba(255,255,255,.66); font-size: .84rem; line-height: 1.8; }
.city-focus-section { padding: clamp(5rem,10vw,9rem) 0; background: var(--ivory); }
.city-focus-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 3rem; }
.city-focus-card { position: relative; min-height: 420px; display: flex; flex-direction: column; padding: clamp(1.5rem,3vw,2.5rem); overflow: hidden; border: 1px solid var(--line); border-radius: 26px; background: linear-gradient(150deg,rgba(255,255,255,.72),rgba(236,222,215,.68)); box-shadow: 0 18px 50px rgba(62,36,51,.06); transition: transform .35s,box-shadow .35s; }
.city-focus-card:nth-child(2) { background: linear-gradient(150deg,#3f1938,#1b111a); color: #fff; }
.city-focus-card:hover { transform: translateY(-8px); box-shadow: 0 30px 70px rgba(62,36,51,.13); }
.city-focus-card small { color: var(--wine); font-size: .61rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.city-focus-card:nth-child(2) small { color: var(--gold-soft); }
.city-focus-card h3 { margin: 2.8rem 0 1rem; font-family: var(--display); font-size: clamp(2rem,3.2vw,3rem); font-weight: 500; line-height: 1; }
.city-focus-card p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.8; }
.city-focus-card:nth-child(2) p { color: rgba(255,255,255,.68); }
.city-focus-card a { margin-top: auto; padding-top: 2rem; color: var(--plum); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.city-focus-card:nth-child(2) a { color: #fff; }
.city-focus-card a span { color: var(--gold); }
.area-service-section { padding: clamp(5rem,9vw,8rem) 0; background: linear-gradient(135deg,#efe3dc,#f8f4ed); }
.area-service-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(420px,1fr); gap: clamp(3rem,8vw,8rem); align-items: start; }
.area-service-grid .button { margin-top: 1.8rem; background: var(--plum); color: #fff; }
.area-service-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.area-service-list li { display: grid; grid-template-columns: 50px 1fr; gap: 1rem; align-items: center; padding: 1.25rem 0; border-bottom: 1px solid var(--line); font-family: var(--display); font-size: clamp(1.25rem,2.1vw,1.8rem); }
.area-service-list span { color: var(--gold); font-family: var(--sans); font-size: .64rem; font-weight: 800; letter-spacing: .1em; }
.area-faq-section { padding: clamp(5rem,9vw,8rem) 0; background: var(--paper); }
.area-faq-grid { display: grid; grid-template-columns: minmax(0,.72fr) minmax(420px,1fr); gap: clamp(3rem,8vw,8rem); }
.area-faq-list { border-top: 1px solid var(--line); }
.area-faq-list article { padding: 1.6rem 0; border-bottom: 1px solid var(--line); }
.area-faq-list h3 { margin: 0 0 .55rem; font-family: var(--display); font-size: 1.55rem; font-weight: 600; }
.area-faq-list p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.75; }

.process { padding: clamp(5rem,9vw,8rem) 0; background: linear-gradient(135deg,#efe3dc,#f8f4ed); }
.process-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 3.5rem; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.process-step { min-height: 290px; padding: 1.7rem; background: rgba(255,253,249,.72); }
.process-step { position: relative; overflow: hidden; }
.process-step::after { content: ''; position: absolute; width: 110px; height: 110px; right: -72px; top: -72px; border: 1px solid rgba(200,162,103,.32); border-radius: 50%; box-shadow: 0 0 0 18px rgba(200,162,103,.04); transition: transform .55s ease, right .55s ease, top .55s ease; }
.process-step:hover::after { right: -28px; top: -28px; transform: rotate(35deg) scale(1.15); }
.process-step span { color: var(--gold); font-family: var(--display); font-size: 2.7rem; }
.process-step h3 { margin: 4rem 0 .7rem; font-family: var(--display); font-size: 1.65rem; }
.process-step p { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.7; }

.proof { padding: clamp(5rem,9vw,8rem) 0; background: var(--plum); color: #fff; }
.proof-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 4rem; align-items: center; }
.proof .eyebrow { color: var(--gold-soft); }
.proof-quote { margin: 0; font-family: var(--display); font-size: clamp(2.5rem,5vw,5rem); line-height: 1; letter-spacing: -.035em; }
.proof-side { border-left: 1px solid rgba(255,255,255,.2); padding-left: 3rem; }
.proof-side p { margin: 0; color: rgba(255,255,255,.7); line-height: 1.8; }
.proof-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 2.5rem; }
.proof-fact { padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.2); }
.proof-fact strong { display: block; font-family: var(--display); font-size: 2rem; }
.proof-fact span { color: rgba(255,255,255,.6); font-size: .7rem; }

.social-stage { padding: clamp(5rem,8vw,7rem) 0; background: var(--ivory); }
.social-card { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; padding: clamp(2rem,6vw,5rem); border-radius: 36px; background: linear-gradient(130deg,#1a141b,#4b1d3d); color: #fff; box-shadow: var(--shadow); }
.social-card::after { content: ''; position: absolute; right: -10%; top: -60%; width: 450px; height: 450px; border: 1px solid rgba(234,216,184,.25); border-radius: 50%; }
.social-card h2 { position: relative; z-index: 1; max-width: 760px; margin: 0; font-family: var(--display); font-size: clamp(2.6rem,5vw,5rem); line-height: .95; }
.social-actions { position: relative; z-index: 1; display: grid; gap: .8rem; }
.social-link { min-width: 185px; min-height: 50px; display: flex; align-items: center; justify-content: center; gap: .7rem; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: #fff; text-decoration: none; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.social-link:hover { background: rgba(255,255,255,.1); }
.social-link svg { width: 18px; height: 18px; fill: currentColor; }

.page-hero { position: relative; overflow: hidden; padding: clamp(5rem,9vw,9rem) 0 clamp(4rem,7vw,7rem); background: linear-gradient(145deg,#efe3dc,#fbf8f2); }
.page-hero::after { content: ''; position: absolute; width: 420px; height: 420px; right: -120px; top: -150px; border: 1px solid rgba(106,36,79,.18); border-radius: 50%; box-shadow: 0 0 0 55px rgba(200,162,103,.06),0 0 0 110px rgba(106,36,79,.04); }
.page-hero .display-title { max-width: 950px; }
.page-lede { max-width: 650px; margin: 1.5rem 0 0; color: var(--muted); line-height: 1.8; }
.page-meta { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 2rem; }
.page-meta span { padding: .6rem .9rem; border: 1px solid var(--line); border-radius: 999px; color: var(--plum); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

.gallery-section { padding: clamp(4rem,8vw,8rem) 0; }
.gallery-topline { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.4rem; }
.gallery-note { max-width: 480px; color: var(--muted); font-size: .85rem; line-height: 1.7; }
.gallery-grid { display: grid; grid-template-columns: repeat(3,1fr); grid-auto-flow: dense; gap: .9rem; }
.gallery-item { position: relative; min-height: 360px; overflow: hidden; border-radius: 22px; background: linear-gradient(145deg,#eadbd3,#c7aab1); cursor: zoom-in; }
.gallery-item:nth-child(7n + 1), .gallery-item:nth-child(7n + 5) { grid-row: span 2; min-height: 730px; }
.gallery-item:nth-child(9n + 3) { grid-column: span 2; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.8,.2,1), filter .4s; }
.gallery-item::after { content: 'View'; position: absolute; right: 1rem; bottom: 1rem; width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,253,249,.88); color: var(--plum); font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: 0; transform: translateY(8px); transition: opacity .25s, transform .25s; }
.gallery-item:hover img { transform: scale(1.035); filter: saturate(1.04); }
.gallery-item:hover::after { opacity: 1; transform: none; }
.gallery-controls { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .8rem; margin-top: 2.8rem; }
.gallery-count { width: 100%; text-align: center; color: var(--muted); font-size: .75rem; }
.gallery-empty { margin-top: 1rem; padding: clamp(2rem,6vw,5rem); border: 1px solid var(--line); border-radius: 28px; background: linear-gradient(145deg,#f3e6df,var(--paper)); text-align: center; }
.gallery-empty[hidden] { display: none; }
.gallery-empty > span { width: 56px; height: 56px; display: grid; place-items: center; margin: 0 auto 1rem; border-radius: 50%; background: var(--plum); color: var(--gold-soft); font-size: 1.25rem; }
.gallery-empty h3 { margin: 0; font-family: var(--display); font-size: clamp(2rem,4vw,3.2rem); font-weight: 600; }
.gallery-empty p { max-width: 580px; margin: .75rem auto 1.4rem; color: var(--muted); line-height: 1.75; }
.instagram-feed-shell { position: relative; overflow: hidden; border: 1px solid rgba(71,28,61,.14); border-radius: 32px; background: rgba(255,253,249,.82); box-shadow: 0 30px 90px rgba(57,29,49,.12); }
.instagram-feed-shell::before { content: ''; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg,#6f214f,#c58f53,#e8c7b4,#6f214f); z-index: 2; }
.instagram-feed-head { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 1rem 1.15rem; border-bottom: 1px solid var(--line); background: rgba(255,253,249,.92); }
.instagram-feed-profile { display: inline-flex; align-items: center; gap: .8rem; color: var(--ink); text-decoration: none; }
.instagram-feed-profile > span:last-child { display: grid; gap: .12rem; }
.instagram-feed-profile strong { font-family: var(--display); font-size: 1.15rem; font-weight: 600; line-height: 1; }
.instagram-feed-profile small { color: var(--muted); font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.instagram-feed-mark { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; background: linear-gradient(145deg,#703056,#42172f); box-shadow: 0 10px 24px rgba(67,25,52,.2); }
.instagram-feed-mark svg { width: 19px; height: 19px; fill: #fff8ed; }
.instagram-follow-button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: 0 1rem; border-radius: 999px; background: var(--plum); color: #fff; font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: transform .25s, box-shadow .25s, background .25s; }
.instagram-follow-button:hover { transform: translateY(-2px); background: #572047; box-shadow: 0 14px 30px rgba(69,24,57,.2); }
.instagram-feed-stage { position: relative; min-height: 520px; padding: clamp(.75rem,2vw,1.4rem); background: linear-gradient(145deg,rgba(246,239,232,.74),rgba(255,253,249,.95)); }
.instagram-feed-stage > .elfsight-app-c613ee48-6b93-4821-823d-91697a54b037 { position: relative; z-index: 1; min-height: 480px; }
.instagram-feed-noscript { position: relative; z-index: 2; padding: 3rem; text-align: center; }
.instagram-feed-note { display: flex; align-items: center; justify-content: center; gap: .65rem; margin: 1.25rem 0 0; color: var(--muted); font-size: .67rem; letter-spacing: .06em; text-align: center; }
.instagram-feed-note span { color: var(--gold); }
.lightbox { position: fixed; inset: 0; z-index: 3000; display: none; place-items: center; padding: 2rem; background: rgba(20,14,19,.94); }
.lightbox.open { display: grid; }
.lightbox-inner { position: relative; max-width: 1100px; width: 100%; height: min(84vh,850px); display: grid; place-items: center; }
.lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 16px; }
.lightbox button { position: absolute; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: rgba(20,14,19,.55); color: #fff; cursor: pointer; }
.lightbox-close { right: 0; top: 0; }
.lightbox-prev { left: 0; top: 50%; }
.lightbox-next { right: 0; top: 50%; }
.lightbox-caption { position: absolute; bottom: -1.5rem; color: rgba(255,255,255,.65); font-size: .72rem; }

.contact-main { padding: clamp(4rem,8vw,8rem) 0; }
.contact-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 1rem; align-items: start; }
.contact-panel { position: sticky; top: 110px; min-height: 690px; padding: clamp(1.6rem,4vw,3rem); overflow: hidden; border-radius: 30px; background: var(--plum); color: #fff; }
.contact-panel::after { content: ''; position: absolute; width: 330px; height: 330px; right: -150px; bottom: -130px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; box-shadow: 0 0 0 50px rgba(255,255,255,.035); }
.contact-panel h2 { margin: 0 0 1rem; font-family: var(--display); font-size: clamp(2.4rem,4vw,4.2rem); line-height: .95; }
.contact-panel > p { color: rgba(255,255,255,.66); line-height: 1.75; }
.contact-list { margin-top: 3rem; }
.contact-line { display: grid; grid-template-columns: 95px 1fr; gap: 1rem; padding: 1rem 0; border-top: 1px solid rgba(255,255,255,.15); }
.contact-line small { color: var(--gold-soft); font-size: .63rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.contact-line span, .contact-line a { color: #fff; font-size: .87rem; line-height: 1.5; text-decoration: none; }
.contact-social { display: flex; gap: .6rem; margin-top: 2rem; }
.contact-social a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.contact-social svg { width: 18px; fill: #fff; }
.inquiry-card { padding: clamp(1.5rem,4vw,3rem); border: 1px solid var(--line); border-radius: 30px; background: var(--paper); box-shadow: var(--shadow); }
.form-head { display: flex; justify-content: space-between; gap: 2rem; align-items: start; margin-bottom: 2.5rem; }
.form-head h2 { margin: 0; font-family: var(--display); font-size: clamp(2.4rem,4vw,4rem); line-height: .95; }
.form-head span { color: var(--muted); font-size: .74rem; line-height: 1.6; }
.form-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.1rem; }
.field { display: grid; gap: .5rem; }
.field.full { grid-column: 1/-1; }
.field label { color: var(--plum); font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.field input, .field select, .field textarea { width: 100%; min-height: 52px; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: 12px; outline: none; background: #fbf8f3; color: var(--ink); transition: border .2s, box-shadow .2s, background .2s; }
.field textarea { min-height: 145px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gold); background: #fff; box-shadow: 0 0 0 4px rgba(200,162,103,.13); }
.field-note { color: var(--muted); font-size: .66rem; line-height: 1.55; }
.file-field input[type='file'] { min-height: 64px; padding: .65rem; background: linear-gradient(145deg,#fbf8f3,#fff); cursor: pointer; }
.file-field input[type='file']::file-selector-button { margin-right: .8rem; padding: .7rem .9rem; border: 0; border-radius: 9px; background: var(--plum); color: #fff; font-size: .67rem; font-weight: 700; letter-spacing: .06em; cursor: pointer; }
.file-summary { color: var(--wine); font-size: .7rem; font-weight: 700; }
.file-summary.has-error { color: #8a2b35; }
.form-help { display: flex; justify-content: space-between; gap: 1rem; margin-top: .45rem; color: var(--muted); font-size: .68rem; }
.form-error { display: none; margin-top: 1rem; padding: .8rem 1rem; border: 1px solid #d9a6a6; border-radius: 12px; background: #fff3f1; color: #8a2b35; font-size: .8rem; }
.form-submit { width: 100%; margin-top: 1.2rem; }
.form-consent { margin: 1rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.55; text-align: center; }
.form-consent a { color: var(--wine); font-weight: 700; text-underline-offset: 3px; }
.form-success { display: none; padding: 4rem 1rem; text-align: center; }
.form-success .success-mark { width: 70px; height: 70px; display: grid; place-items: center; margin: 0 auto 1.2rem; border-radius: 50%; background: var(--gold-soft); color: var(--plum); font-family: var(--display); font-size: 2.5rem; }
.form-success h3 { margin: 0; font-family: var(--display); font-size: 3rem; }
.form-success p { max-width: 500px; margin: .8rem auto 0; color: var(--muted); line-height: 1.7; }

.faq { padding: clamp(5rem,9vw,8rem) 0; background: var(--paper); }
.faq-layout { display: grid; grid-template-columns: .6fr 1.4fr; gap: 5rem; }
.faq-intro { position: sticky; top: 120px; align-self: start; }
.faq-contact-card { margin-top: 2rem; padding: 1.4rem; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(145deg, var(--ivory), #f1e4df); }
.faq-contact-card small { display: block; color: var(--wine); font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.faq-contact-card strong { display: block; margin-top: .45rem; font-family: var(--display); font-size: 1.55rem; }
.faq-contact-card p { margin: .55rem 0 1rem; color: var(--muted); font-size: .78rem; line-height: 1.65; }
.faq-contact-card a { display: flex; align-items: center; justify-content: space-between; padding-top: .9rem; border-top: 1px solid var(--line); color: var(--plum); font-size: .78rem; font-weight: 700; text-decoration: none; }
.faq-group-label { margin: 2.4rem 0 .45rem; color: var(--wine); font-size: .64rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.faq-group-label:first-child { margin-top: 0; }
.faq-item { border-top: 1px solid var(--line); }
.faq-list .faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 1.4rem 0; border: 0; background: none; color: var(--ink); text-align: left; cursor: pointer; }
.faq-question strong { font-family: var(--display); font-size: 1.45rem; font-weight: 600; }
.faq-question span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; transition: transform .25s, background .25s, color .25s; }
.faq-question[aria-expanded='true'] span { transform: rotate(45deg); background: var(--plum); color: #fff; }
.faq-answer { max-height: 0; overflow: hidden; color: var(--muted); font-size: .88rem; line-height: 1.75; transition: max-height .3s ease, padding .3s; }
.faq-answer.open { max-height: 300px; padding: 0 4rem 1.5rem 0; }
.faq-question:focus-visible { border-radius: 8px; outline-offset: 7px; }

.policy-main { padding: clamp(4rem,8vw,7rem) 0; }
.policy-layout { display: grid; grid-template-columns: minmax(220px,.42fr) minmax(0,1fr); gap: clamp(2rem,7vw,7rem); align-items: start; }
.policy-summary { position: sticky; top: 116px; padding: 1.5rem; border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(145deg,var(--paper),#f1e4df); }
.policy-summary strong { display: block; font-family: var(--display); font-size: 1.8rem; }
.policy-summary p { margin: .7rem 0 0; color: var(--muted); font-size: .78rem; line-height: 1.7; }
.policy-content { max-width: 820px; }
.policy-content section { padding: 0 0 2rem; margin-bottom: 2rem; border-bottom: 1px solid var(--line); }
.policy-content h2 { margin: 0 0 .75rem; font-family: var(--display); font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 600; }
.policy-content p, .policy-content li { color: var(--muted); font-size: .9rem; line-height: 1.8; }
.policy-content ul { padding-left: 1.2rem; }
.policy-content a { color: var(--wine); font-weight: 700; }

.site-footer { padding: 4.5rem 0 1.5rem; background: var(--ink); color: #fff; }
.footer-top { display: grid; grid-template-columns: 1.3fr .7fr .7fr; gap: 4rem; padding-bottom: 3.5rem; }
.footer-brand .brand { color: #fff; }
.footer-brand .brand-wordmark { color: var(--gold-soft); }
.footer-brand p { max-width: 390px; margin: 1.5rem 0 0; color: rgba(255,255,255,.55); font-size: .85rem; line-height: 1.8; }
.footer-col h3 { margin: 0 0 1.2rem; color: var(--gold-soft); font-size: .63rem; letter-spacing: .16em; text-transform: uppercase; }
.footer-col a, .footer-col span { display: block; width: fit-content; margin: .65rem 0; color: rgba(255,255,255,.7); font-size: .82rem; line-height: 1.5; text-decoration: none; }
.footer-col a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.11); color: rgba(255,255,255,.45); font-size: .68rem; }
.footer-bottom a { color: inherit; }

.floating-tools { position: fixed; right: 18px; bottom: 18px; z-index: 900; display: flex; gap: .4rem; padding: .4rem; border: 1px solid rgba(61,24,55,.12); border-radius: 999px; background: rgba(248,244,237,.88); box-shadow: 0 18px 50px rgba(18,10,16,.16); backdrop-filter: blur(14px); }
.float-button { width: 43px; height: 43px; display: grid; place-items: center; border: 0; border-radius: 50%; color: #fff; text-decoration: none; box-shadow: 0 10px 24px rgba(18,10,16,.16); transition: transform .2s, opacity .2s; }
.float-button:hover { transform: translateY(-3px); }
.float-button.instagram { background: linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045); }
.float-button.whatsapp { background: #25d366; font-size: 1.2rem; }
.float-button.mobile-call { display: none; background: var(--plum); }
.float-label { display: none; }
.float-button.top { background: var(--plum); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; }
.float-button.top.visible { opacity: 1; pointer-events: auto; }
.float-button svg { width: 22px; fill: currentColor; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

/* Lightweight scroll depth: only decorative layers move, never controls or copy. */
[data-parallax] { --parallax-y: 0px; will-change: transform; }
.visual-frame[data-parallax] { transform: translate3d(var(--pointer-x,0px),calc(var(--parallax-y) + var(--pointer-y,0px)),0) rotateX(var(--pointer-rotate-x,0deg)) rotateY(var(--pointer-rotate-y,0deg)); transform-origin: center; }
.look-art[data-parallax] { transform: translate3d(0,var(--parallax-y),0); }
.look-card:hover .look-art[data-parallax] { transform: translate3d(0,var(--parallax-y),0); }
.depth-layer[data-parallax] { transform: translate3d(0,var(--parallax-y),0); }
.stage-floral.left.depth-layer[data-parallax] { transform: translate3d(0,var(--parallax-y),0) rotate(-10deg); }
.stage-floral.right.depth-layer[data-parallax] { transform: translate3d(0,var(--parallax-y),0) rotate(8deg) scale(.82); }
.page-hero[data-parallax-scene]::after, .hero[data-parallax-scene]::before { transform: translate3d(0,var(--scene-parallax-y,0px),0); }
.contact-panel[data-parallax-scene]::after, .social-card[data-parallax-scene]::after { transform: translate3d(0,var(--scene-parallax-y,0px),0); }

/* Immersive atelier: an unmistakable full-viewport parallax chapter. */
.cinematic-parallax { position: relative; z-index: 5; height: 180vh; background: #171116; }
.cinematic-sticky { position: sticky; top: 0; height: 100vh; min-height: 680px; overflow: hidden; isolation: isolate; background: radial-gradient(circle at 72% 44%,#51223f 0,rgba(74,29,58,.82) 18%,transparent 42%),linear-gradient(125deg,#130f13 0%,#24121f 58%,#100c10 100%); color: #fff; }
.cinematic-sticky::before { content: ''; position: absolute; inset: 0; z-index: -5; background: linear-gradient(105deg,rgba(255,255,255,.025),transparent 34%,rgba(200,162,103,.055) 70%,transparent); background-size: 220% 100%; animation: cinemaLight 10s ease-in-out infinite; }
.cinema-grain { position: absolute; inset: 0; z-index: 8; pointer-events: none; opacity: .11; background-image: repeating-radial-gradient(circle at 20% 30%,rgba(255,255,255,.22) 0 1px,transparent 1px 4px); background-size: 7px 7px; mix-blend-mode: soft-light; }
.cinema-content { position: relative; z-index: 6; height: 100%; display: grid; grid-template-columns: minmax(0,.9fr) minmax(280px,.36fr); align-items: center; gap: 5rem; }
.cinema-copy { max-width: 760px; transform: translate3d(0,var(--cinema-copy-y,0px),0); opacity: var(--cinema-copy-opacity,1); will-change: transform,opacity; }
.cinema-copy .eyebrow { color: var(--gold-soft); }
.cinema-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(3.6rem,7.5vw,8.5rem); font-weight: 600; line-height: .82; letter-spacing: -.06em; }
.cinema-copy p:not(.eyebrow) { max-width: 570px; margin: 1.5rem 0 1.8rem; color: rgba(255,255,255,.65); font-size: .95rem; line-height: 1.8; }
.cinema-copy em { font-weight: 500; }
.cinema-meter { justify-self: end; width: min(230px,100%); padding: 1.2rem; border: 1px solid rgba(255,255,255,.14); border-radius: 18px; background: rgba(255,255,255,.055); backdrop-filter: blur(12px); }
.cinema-meter small { display: block; color: rgba(255,255,255,.45); font-size: .58rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cinema-meter > div { height: 2px; margin: 1rem 0 .75rem; overflow: hidden; background: rgba(255,255,255,.12); }
.cinema-meter > div span { display: block; width: var(--cinema-progress,0%); height: 100%; background: linear-gradient(90deg,var(--gold),#f5e5c8); box-shadow: 0 0 12px rgba(234,216,184,.8); }
.cinema-meter strong { font-family: var(--display); font-size: 2.5rem; font-weight: 500; }
.cinema-caption { position: absolute; z-index: 7; left: max(20px,calc((100vw - 1240px)/2)); right: max(20px,calc((100vw - 1240px)/2)); bottom: 2.2rem; display: flex; justify-content: space-between; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.38); font-size: .58rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cinema-layer { position: absolute; z-index: 2; transform: translate3d(var(--cinema-x,0px),var(--cinema-y,0px),0) rotate(var(--cinema-r,0deg)); will-change: transform; }
.cinema-orbit { border: 1px solid rgba(234,216,184,.2); border-radius: 50%; box-shadow: 0 0 0 48px rgba(255,255,255,.017),0 0 0 96px rgba(200,162,103,.012); }
.cinema-orbit.orbit-one { width: 48vw; min-width: 560px; aspect-ratio: 1; right: -14vw; top: -19vh; }
.cinema-orbit.orbit-two { width: 24vw; min-width: 300px; aspect-ratio: 1; left: -9vw; bottom: -12vh; border-color: rgba(185,107,127,.25); }
.cinema-glow { width: 38vw; min-width: 440px; aspect-ratio: 1; right: 4vw; top: 20vh; border-radius: 50%; background: radial-gradient(circle,rgba(200,162,103,.19),rgba(185,107,127,.07) 43%,transparent 70%); filter: blur(8px); }
.cinema-arch { right: 8vw; bottom: -23vh; width: min(34vw,500px); height: 73vh; min-height: 570px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.17); border-radius: 50% 50% 0 0; background: linear-gradient(150deg,rgba(255,255,255,.13),rgba(255,255,255,.035)); box-shadow: inset 0 0 0 18px rgba(255,255,255,.016),0 42px 100px rgba(0,0,0,.35); backdrop-filter: blur(5px); }
.cinema-arch::after { content: ''; position: absolute; inset: 9%; border: 1px solid rgba(234,216,184,.23); border-radius: inherit; }
.cinema-arch span { color: rgba(234,216,184,.36); font-family: var(--display); font-size: clamp(8rem,18vw,18rem); font-style: italic; }
.cinema-balloons { right: -3vw; top: 8vh; width: min(31vw,470px); height: 70vh; }
.cinema-balloons i { position: absolute; display: block; width: var(--size); aspect-ratio: .86; border-radius: 50%; background: var(--tone); box-shadow: inset -12px -16px 25px rgba(0,0,0,.22),inset 8px 8px 18px rgba(255,255,255,.22),0 22px 45px rgba(0,0,0,.22); animation: balloonBreathe 5s ease-in-out infinite alternate; }
.cinema-balloons i:nth-child(1){--size:130px;--tone:#9d526f;left:3%;top:10%}.cinema-balloons i:nth-child(2){--size:92px;--tone:#d3ae78;left:33%;top:1%;animation-delay:-1.2s}.cinema-balloons i:nth-child(3){--size:110px;--tone:#ecd8cf;right:1%;top:17%;animation-delay:-2.4s}.cinema-balloons i:nth-child(4){--size:82px;--tone:#57213f;left:18%;top:37%;animation-delay:-.8s}.cinema-balloons i:nth-child(5){--size:122px;--tone:#b57c7c;right:8%;top:46%;animation-delay:-3s}.cinema-balloons i:nth-child(6){--size:74px;--tone:#e8cfa4;left:2%;top:64%;animation-delay:-1.8s}.cinema-balloons i:nth-child(7){--size:96px;--tone:#7a3158;left:37%;top:72%;animation-delay:-4s}

/* Scroll-built celebration: the scene visibly gains form, color, texture and light. */
.evolution-scroll {
  --cinema-progress: 0%; --cinema-form-opacity: 0; --cinema-form-y: 90px; --cinema-form-scale: .82;
  --cinema-palette-opacity: 0; --cinema-balloon-scale: .35; --cinema-detail-opacity: 0;
  --cinema-detail-y: 54px; --cinema-reveal-opacity: 0; --cinema-grid-opacity: .5; --cinema-scene-scale: .96;
  position: relative; z-index: 5; height: 350vh; background: #120e12;
}
.evolution-sticky {
  position: sticky; top: 0; height: 100vh; min-height: 700px; overflow: hidden; isolation: isolate;
  background: radial-gradient(circle at 72% 45%,rgba(98,40,74,.62),transparent 37%),linear-gradient(125deg,#110d11 0%,#21131d 54%,#0e0b0e 100%); color: #fff;
}
.evolution-sticky::before { content: ''; position: absolute; inset: 0; z-index: -4; opacity: var(--cinema-reveal-opacity); background: radial-gradient(circle at 73% 44%,rgba(221,175,109,.24),transparent 28%),linear-gradient(120deg,transparent 35%,rgba(185,107,127,.12),transparent 67%); }
.evolution-sticky::after { content: ''; position: absolute; inset: 0; z-index: 8; pointer-events: none; opacity: .075; background-image: repeating-radial-gradient(circle at 22% 30%,rgba(255,255,255,.34) 0 1px,transparent 1px 5px); background-size: 8px 8px; mix-blend-mode: soft-light; }
.evolution-aura { position: absolute; z-index: -2; border: 1px solid rgba(234,216,184,.18); border-radius: 50%; transform: translate3d(var(--cinema-x,0),var(--cinema-y,0),0) rotate(var(--cinema-r,0deg)); will-change: transform; }
.evolution-aura.aura-one { width: 42vw; min-width: 520px; aspect-ratio: 1; right: -13vw; top: -17vh; box-shadow: 0 0 0 54px rgba(200,162,103,.018),0 0 0 108px rgba(185,107,127,.012); }
.evolution-aura.aura-two { width: 24vw; min-width: 300px; aspect-ratio: 1; left: -10vw; bottom: -16vh; border-color: rgba(185,107,127,.2); }
.evolution-layout { position: relative; z-index: 4; height: 100%; display: grid; grid-template-columns: minmax(400px,.78fr) minmax(520px,1fr); align-items: center; gap: clamp(2.5rem,6vw,7rem); }
.evolution-copy { max-width: 540px; transform: translate3d(0,var(--cinema-copy-y,0),0); opacity: var(--cinema-copy-opacity,1); }
.evolution-kicker { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.25rem; }
.evolution-kicker span { width: 42px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(234,216,184,.28); border-radius: 999px; color: var(--gold-soft); font-family: var(--display); font-size: 1rem; }
.evolution-kicker p { margin: 0; color: rgba(255,255,255,.52); font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.evolution-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(3.65rem,6vw,6.7rem); font-weight: 600; line-height: .84; letter-spacing: -.055em; }
.evolution-copy h2 em { background: linear-gradient(100deg,#f5e5c8 10%,#c98b9e 48%,#d9b477 56%,#f5e5c8 78%); background-size: 230% auto; -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 500; animation: titleLustre 7s ease-in-out infinite; }
.evolution-description { min-height: 3.4em; max-width: 490px; margin: 1.35rem 0 1.5rem; color: rgba(255,255,255,.64); font-size: .88rem; line-height: 1.72; }
.evolution-steps { display: grid; grid-template-columns: repeat(2,1fr); gap: 0 1.3rem; margin: 0 0 1.65rem; padding: 0; list-style: none; counter-reset: none; }
.evolution-steps li { position: relative; display: grid; grid-template-columns: 26px 1fr; align-items: center; padding: .8rem 0; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.32); transition: color .3s,border-color .3s; }
.evolution-steps li::after { content: ''; position: absolute; left: 0; top: -1px; width: 0; height: 1px; background: var(--gold-soft); transition: width .45s ease; }
.evolution-steps li.active, .evolution-steps li.complete { color: #fff; border-color: rgba(234,216,184,.24); }
.evolution-steps li.active::after, .evolution-steps li.complete::after { width: 100%; }
.evolution-steps li > span { grid-row: 1/3; color: inherit; font-family: var(--display); font-size: 1rem; }
.evolution-steps strong { font-size: .69rem; letter-spacing: .06em; text-transform: uppercase; }
.evolution-steps small { margin-top: .16rem; color: rgba(255,255,255,.35); font-size: .57rem; }
.evolution-button { min-height: 48px; }
.evolution-visual { position: relative; justify-self: end; width: min(100%,650px); height: min(78vh,720px); min-height: 580px; perspective: 1400px; }
.evolution-frame {
  position: absolute; inset: 0; overflow: hidden; border: 1px solid rgba(234,216,184,.24); border-radius: 48% 48% 28px 28px;
  background: linear-gradient(160deg,rgba(255,255,255,.075),rgba(255,255,255,.018));
  box-shadow: inset 0 0 0 18px rgba(255,255,255,.018),0 55px 120px rgba(0,0,0,.42);
  transform: scale(var(--cinema-scene-scale)); transform-origin: center; will-change: transform;
}
.evolution-gridlines { position: absolute; inset: 22px; opacity: var(--cinema-grid-opacity); border: 1px solid rgba(234,216,184,.16); border-radius: inherit; background-image: linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size: 44px 44px; mask-image: linear-gradient(to bottom,#000,transparent 82%); }
.evolution-light-beam { position: absolute; z-index: 1; left: 28%; top: -24%; width: 42%; height: 98%; opacity: var(--cinema-reveal-opacity); background: linear-gradient(to bottom,rgba(255,238,204,.22),transparent 80%); filter: blur(10px); transform: rotate(9deg); transform-origin: top; }
.evolution-halo { position: absolute; z-index: 1; left: 15%; right: 12%; top: 12%; aspect-ratio: 1; border-radius: 50%; opacity: var(--cinema-palette-opacity); background: radial-gradient(circle,rgba(213,165,101,.25),rgba(141,62,99,.12) 44%,transparent 69%); filter: blur(5px); }
.evolution-drapery { position: absolute; z-index: 2; inset: 0; overflow: hidden; opacity: var(--cinema-palette-opacity); }
.evolution-drapery i { position: absolute; display: block; border: 1px solid rgba(245,224,207,.2); background: linear-gradient(115deg,rgba(238,215,202,.2),rgba(159,93,120,.09) 55%,transparent); box-shadow: inset -14px 0 28px rgba(255,255,255,.05); }
.evolution-drapery i:nth-child(1) { left: -8%; top: -9%; width: 35%; height: 68%; border-radius: 0 0 82% 0; transform: translateY(var(--cinema-form-y)) rotate(-4deg); }
.evolution-drapery i:nth-child(2) { right: -9%; top: -7%; width: 34%; height: 64%; border-radius: 0 0 0 82%; background: linear-gradient(245deg,rgba(238,215,202,.2),rgba(159,93,120,.1) 55%,transparent); transform: translateY(var(--cinema-form-y)) rotate(4deg); }
.evolution-drapery i:nth-child(3) { left: 17%; top: 2%; width: 66%; height: 24%; border: 0; border-bottom: 18px solid rgba(227,195,190,.14); border-radius: 0 0 50% 50%; background: transparent; box-shadow: 0 12px 28px rgba(0,0,0,.1); transform: rotate(-2deg); }
.evolution-fairy-lights { position: absolute; z-index: 12; left: 12%; right: 10%; top: 8%; height: 28%; opacity: var(--cinema-reveal-opacity); border-top: 1px solid rgba(244,224,190,.3); border-radius: 50%; transform: rotate(2deg); }
.evolution-fairy-lights i { position: absolute; display: block; width: 6px; height: 6px; border-radius: 50%; background: #ffe8ac; box-shadow: 0 0 7px #ffe7aa,0 0 18px rgba(255,210,125,.7); animation: lightTwinkle 2.8s ease-in-out infinite; }
.evolution-fairy-lights i:nth-child(1){left:4%;top:18%}.evolution-fairy-lights i:nth-child(2){left:19%;top:32%;animation-delay:-.5s}.evolution-fairy-lights i:nth-child(3){left:36%;top:43%;animation-delay:-1.2s}.evolution-fairy-lights i:nth-child(4){left:53%;top:45%;animation-delay:-1.8s}.evolution-fairy-lights i:nth-child(5){left:69%;top:37%;animation-delay:-.8s}.evolution-fairy-lights i:nth-child(6){left:84%;top:23%;animation-delay:-2.2s}.evolution-fairy-lights i:nth-child(7){right:1%;top:8%;animation-delay:-1.4s}
.evolution-floor { position: absolute; z-index: 2; left: 7%; right: 7%; bottom: 5%; height: 15%; border-radius: 50%; opacity: calc(.2 + var(--cinema-form-opacity)); background: radial-gradient(ellipse,rgba(0,0,0,.5),rgba(255,255,255,.045) 45%,transparent 72%); transform: scaleX(var(--cinema-form-scale)); }
.evolution-panel { position: absolute; z-index: 3; bottom: 13%; opacity: var(--cinema-form-opacity); border: 1px solid rgba(255,255,255,.34); background: linear-gradient(145deg,rgba(244,225,214,.9),rgba(159,100,115,.42)); box-shadow: 0 25px 55px rgba(0,0,0,.24); transform: translateY(var(--cinema-form-y)) scaleY(var(--cinema-form-scale)); transform-origin: bottom; }
.evolution-panel.panel-left { left: 13%; width: 29%; height: 50%; border-radius: 48% 48% 8px 8px; }
.evolution-panel.panel-right { right: 11%; width: 26%; height: 43%; border-radius: 4px 46% 8px 8px; background: linear-gradient(145deg,rgba(211,169,154,.85),rgba(100,40,74,.5)); }
.evolution-arch { position: absolute; z-index: 4; left: 29%; bottom: 13%; width: 43%; height: 64%; display: grid; place-items: center; opacity: var(--cinema-form-opacity); overflow: hidden; border: 1px solid rgba(248,232,214,.72); border-radius: 50% 50% 10px 10px; background: rgba(249,239,224,.055); box-shadow: 0 28px 64px rgba(0,0,0,.28); transform: translateY(var(--cinema-form-y)) scale(var(--cinema-form-scale)); transform-origin: bottom; }
.evolution-arch::before { content: ''; position: absolute; inset: 0; opacity: var(--cinema-palette-opacity); background: linear-gradient(145deg,#fff5e8,#d9bcb4 62%,#b66f82); }
.evolution-arch::after { content: ''; position: absolute; inset: 9%; border: 1px solid rgba(106,36,79,.22); border-radius: inherit; }
.evolution-arch span { position: relative; z-index: 2; opacity: var(--cinema-detail-opacity); color: var(--wine); font-family: var(--display); font-size: clamp(2.8rem,5vw,4.8rem); font-style: italic; transform: translateY(var(--cinema-detail-y)); }
.evolution-plinth { position: absolute; z-index: 8; bottom: 9%; opacity: var(--cinema-detail-opacity); border-radius: 50% 50% 9px 9px; background: linear-gradient(90deg,#ead8ca,#fff9ef); box-shadow: 0 20px 36px rgba(0,0,0,.28); transform: translateY(var(--cinema-detail-y)); }
.evolution-plinth.plinth-one { left: 14%; width: 21%; height: 25%; }
.evolution-plinth.plinth-two { left: 39%; width: 17%; height: 17%; background: linear-gradient(90deg,#9b5770,#c78e99); }
.evolution-plinth.plinth-three { right: 12%; width: 18%; height: 31%; background: linear-gradient(90deg,#c49a75,#edcfaa); }
.evolution-cake { position: absolute; z-index: 11; left: 16.5%; bottom: 34%; width: 16%; height: 18%; opacity: var(--cinema-detail-opacity); transform: translateY(var(--cinema-detail-y)); }
.evolution-cake span { position: absolute; left: 50%; bottom: var(--cake-bottom); width: var(--cake-width); height: 27%; border-radius: 8px 8px 3px 3px; background: linear-gradient(90deg,#f2ded3,#fff8ed 54%,#d7afaa); box-shadow: inset 0 -5px 8px rgba(118,62,84,.12),0 8px 16px rgba(0,0,0,.14); transform: translateX(-50%); }
.evolution-cake span::after { content: ''; position: absolute; left: 8%; right: 8%; top: 38%; height: 2px; background: linear-gradient(90deg,#b96b7f,#d7ad76,#b96b7f); }
.evolution-cake span:nth-child(1){--cake-bottom:0;--cake-width:100%}.evolution-cake span:nth-child(2){--cake-bottom:24%;--cake-width:76%}.evolution-cake span:nth-child(3){--cake-bottom:48%;--cake-width:51%}
.evolution-cake b { position: absolute; left: 50%; top: -2%; color: var(--gold-soft); font-size: 1.15rem; font-weight: 400; transform: translateX(-50%); filter: drop-shadow(0 0 7px rgba(255,220,154,.55)); }
.evolution-candles { position: absolute; z-index: 11; right: 14.5%; bottom: 40%; width: 14%; height: 15%; display: flex; align-items: end; justify-content: center; gap: 10%; opacity: var(--cinema-detail-opacity); transform: translateY(var(--cinema-detail-y)); }
.evolution-candles i { position: relative; width: 10%; min-width: 5px; height: var(--h); border-radius: 99px 99px 2px 2px; background: linear-gradient(90deg,#b67583,#f0c6bc,#8e4664); box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.evolution-candles i::before { content: ''; position: absolute; left: 50%; top: -12px; width: 8px; height: 13px; border-radius: 70% 30% 70% 30%; background: linear-gradient(#fff5c9,#eeb35b 62%,#b76648); box-shadow: 0 0 12px rgba(255,210,111,.75); transform: translateX(-50%) rotate(8deg); animation: candleFlicker 1.7s ease-in-out infinite alternate; }
.evolution-candles i:nth-child(1){--h:55%}.evolution-candles i:nth-child(2){--h:82%}.evolution-candles i:nth-child(3){--h:66%}
.evolution-gifts { position: absolute; z-index: 10; left: 43%; bottom: 8%; width: 17%; height: 14%; opacity: var(--cinema-reveal-opacity); transform: translateY(var(--cinema-detail-y)); }
.evolution-gifts i { position: absolute; bottom: 0; width: var(--w); height: var(--h); border-radius: 4px; background: var(--gift); box-shadow: 0 9px 18px rgba(0,0,0,.2); }
.evolution-gifts i::before { content: ''; position: absolute; left: 43%; top: 0; bottom: 0; width: 14%; background: rgba(245,225,190,.7); }
.evolution-gifts i::after { content: ''; position: absolute; left: -4%; right: -4%; top: 18%; height: 12%; background: rgba(245,225,190,.66); }
.evolution-gifts i:nth-child(1){--w:58%;--h:68%;--gift:#7e3558;left:0}.evolution-gifts i:nth-child(2){--w:47%;--h:49%;--gift:#c28a78;right:0}.evolution-gifts i:nth-child(3){--w:35%;--h:40%;--gift:#d5b273;left:37%;bottom:47%}
.evolution-balloons { position: absolute; z-index: 7; top: 9%; right: 1%; bottom: 16%; width: 44%; opacity: var(--cinema-palette-opacity); transform: scale(var(--cinema-balloon-scale)); transform-origin: 82% 44%; }
.evolution-balloons i { position: absolute; display: block; width: var(--s); aspect-ratio: .86; border-radius: 50%; background: var(--c); box-shadow: inset -10px -13px 18px rgba(0,0,0,.21),inset 7px 6px 13px rgba(255,255,255,.27),0 15px 26px rgba(0,0,0,.18); animation: balloonBreathe 4.6s ease-in-out infinite alternate; }
.evolution-balloons i:nth-child(1){--s:88px;--c:#8f3d62;right:7%;top:4%}.evolution-balloons i:nth-child(2){--s:64px;--c:#d7ae76;right:38%;top:1%;animation-delay:-1s}.evolution-balloons i:nth-child(3){--s:76px;--c:#ead8cf;right:0;top:23%;animation-delay:-2s}.evolution-balloons i:nth-child(4){--s:57px;--c:#5c2344;right:34%;top:24%;animation-delay:-.5s}.evolution-balloons i:nth-child(5){--s:80px;--c:#bd7888;right:5%;top:48%;animation-delay:-3s}.evolution-balloons i:nth-child(6){--s:52px;--c:#e8c89b;right:40%;top:47%;animation-delay:-1.5s}.evolution-balloons i:nth-child(7){--s:68px;--c:#7d3157;right:13%;top:70%;animation-delay:-2.5s}.evolution-balloons i:nth-child(8){--s:57px;--c:#f0dfd4;right:43%;top:69%;animation-delay:-.8s}
.evolution-florals { position: absolute; z-index: 10; width: 168px; height: 112px; opacity: var(--cinema-detail-opacity); transform: translateY(var(--cinema-detail-y)); }
.evolution-florals.floral-left { left: 5%; bottom: 9%; transform: translateY(var(--cinema-detail-y)) rotate(-9deg); }
.evolution-florals.floral-right { right: 4%; bottom: 8%; width: 142px; transform: translateY(var(--cinema-detail-y)) rotate(7deg) scale(.88); }
.evolution-florals i { position: absolute; display: block; width: 56px; aspect-ratio: 1; border-radius: 60% 40% 60% 35%; background: linear-gradient(145deg,#c89cad,#713052); box-shadow: inset 8px 4px 12px rgba(255,255,255,.24); }
.evolution-florals i:nth-child(2){left:35px;top:7px;width:48px;background:linear-gradient(145deg,#e2c6bc,#a46578)}.evolution-florals i:nth-child(3){left:72px;top:25px;width:42px;background:linear-gradient(145deg,#d7b06f,#8a6337)}.evolution-florals i:nth-child(4){left:22px;top:48px;width:50px;background:linear-gradient(145deg,#efe0d2,#b17a7e)}.evolution-florals i:nth-child(5){left:72px;top:57px;width:35px;background:#6f815f}
.evolution-sparkles { position: absolute; inset: 0; z-index: 12; opacity: var(--cinema-reveal-opacity); }
.evolution-sparkles i { position: absolute; width: 7px; height: 7px; background: #fff4d6; clip-path: polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%); filter: drop-shadow(0 0 8px rgba(255,230,181,.9)); animation: sparklePulse 2.4s ease-in-out infinite; }
.evolution-sparkles i:nth-child(1){left:18%;top:20%}.evolution-sparkles i:nth-child(2){right:18%;top:13%;animation-delay:-.8s}.evolution-sparkles i:nth-child(3){right:8%;top:52%;animation-delay:-1.5s}.evolution-sparkles i:nth-child(4){left:34%;top:8%;animation-delay:-.4s}.evolution-sparkles i:nth-child(5){left:10%;top:64%;animation-delay:-1.9s}
.evolution-status { position: absolute; z-index: 14; left: 50%; top: 1.35rem; min-width: 142px; padding: .8rem 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; background: rgba(20,13,18,.5); text-align: center; transform: translateX(-50%); backdrop-filter: blur(10px); }
.evolution-status small { display: block; color: rgba(255,255,255,.42); font-size: .52rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.evolution-status strong { display: block; margin-top: .28rem; color: var(--gold-soft); font-family: var(--display); font-size: 1.22rem; font-weight: 600; }
.evolution-meter { position: absolute; z-index: 14; left: 1.35rem; right: 1.35rem; bottom: 1.25rem; display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; }
.evolution-meter > span { height: 2px; overflow: hidden; background: rgba(255,255,255,.15); }
.evolution-meter > span i { display: block; width: var(--cinema-progress); height: 100%; background: linear-gradient(90deg,#b96b7f,#f5e5c8,#c8a267); box-shadow: 0 0 14px rgba(234,216,184,.7); }
.evolution-meter strong { width: 52px; color: rgba(255,255,255,.76); font-family: var(--display); font-size: 1.35rem; font-weight: 500; text-align: right; }

/* Luxury micro-interactions shared by every page. */
.page-hero::before { content: ''; position: absolute; left: 8%; bottom: -110px; width: 230px; height: 230px; border: 1px solid rgba(200,162,103,.22); border-radius: 50%; box-shadow: 0 0 0 34px rgba(200,162,103,.035); animation: orbitBreath 7s ease-in-out infinite; }
.social-card { background-size: 180% 180%; animation: gradientDrift 11s ease-in-out infinite; }
.gallery-item { animation: galleryRise .65s both; animation-delay: calc(min(var(--gallery-index,0),12) * 45ms); }

@keyframes titleLustre { 0%,25%{background-position:100% center}65%,100%{background-position:-80% center} }
@keyframes proofDraw { from{stroke-dashoffset:23}to{stroke-dashoffset:0} }
@keyframes proofLustre { 0%,55%{transform:rotate(24deg) translateX(-60px)}82%,100%{transform:rotate(24deg) translateX(72px)} }
@keyframes signatureSpark { 0%,100%{opacity:.45;transform:scale(.82);transform-origin:center}50%{opacity:1;transform:scale(1.12);transform-origin:center} }
@keyframes scrollCue { 0%{transform:translateY(-30%)}70%,100%{transform:translateY(290%)} }
@keyframes cinemaLight { 0%,100%{background-position:0 0}50%{background-position:100% 0} }
@keyframes balloonBreathe { from{translate:0 -5px;rotate:-1deg}to{translate:0 9px;rotate:1.5deg} }
@keyframes lightTwinkle { 0%,100%{opacity:.45;transform:scale(.72)}50%{opacity:1;transform:scale(1.18)} }
@keyframes candleFlicker { from{transform:translateX(-50%) rotate(4deg) scale(.92)}to{transform:translateX(-50%) rotate(-5deg) scale(1.08)} }
@keyframes sparklePulse { 0%,100%{opacity:.35;transform:scale(.65) rotate(0)}50%{opacity:1;transform:scale(1.25) rotate(45deg)} }
@keyframes orbitBreath { 0%,100%{transform:scale(.94);opacity:.55}50%{transform:scale(1.06);opacity:1} }
@keyframes gradientDrift { 0%,100%{background-position:0 50%}50%{background-position:100% 50%} }
@keyframes galleryRise { from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none} }

@media (max-width: 1050px) {
  .nav-links { gap: 1rem; }
  .hero-grid { grid-template-columns: 1fr .8fr; gap: 2rem; }
  .hero-visual { min-height: 520px; }
  .evolution-layout { grid-template-columns: minmax(350px,.72fr) minmax(460px,1fr); gap: 2.2rem; }
  .evolution-visual { min-height: 540px; }
  .lookbook-grid { grid-template-columns: 1fr; }
  .look-card.large { min-height: 560px; }
  .lookbook-side { grid-template-columns: repeat(2,1fr); }
  .proof-grid, .contact-layout { grid-template-columns: 1fr; }
  .contact-panel { position: relative; top: 0; min-height: auto; }
}

@media (max-width: 860px) {
  .shell { width: min(100% - 28px, 680px); }
  .site-header { background: var(--ivory); backdrop-filter: none; }
  .site-header .brand { position: relative; z-index: 1002; }
  .menu-button { display: block; position: relative; z-index: 1002; }
  .nav-links { position: fixed; inset: 0; z-index: 1001; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: .2rem; padding: 7rem 2rem 6rem; overflow-y: auto; background: var(--ivory); opacity: 0; visibility: hidden; pointer-events: none; transform: none; transition: opacity .24s ease, visibility .24s ease; }
  .nav-links.open { opacity: 1; visibility: visible; pointer-events: auto; }
  .nav-links a { display: block; padding: .85rem 0; font-family: var(--display); font-size: 2rem; font-weight: 600; letter-spacing: 0; text-transform: none; }
  .nav-links a::after { display: none; }
  .nav-links .nav-book {
    width: 100%;
    min-height: 56px;
    margin-top: 1rem;
    padding: 0 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--sans) !important;
    font-size: .8rem !important;
    line-height: 1;
    text-align: center;
    text-transform: uppercase !important;
  }
  .menu-button.active span:first-child { transform: translateY(6px) rotate(45deg); }
  .menu-button.active span:nth-child(2) { opacity: 0; }
  .menu-button.active span:last-child { transform: translateY(-6px) rotate(-45deg); }
  .ambient-depth { opacity: .72; }
  .evolution-scroll { height: 320vh; }
  .evolution-sticky { min-height: 700px; }
  .evolution-layout { grid-template-columns: 1fr; grid-template-rows: auto minmax(0,1fr); align-content: start; gap: 1rem; padding-block: 3.7rem 2.8rem; }
  .evolution-copy { max-width: 100%; }
  .evolution-copy h2 { max-width: 680px; font-size: clamp(3.3rem,9vw,5.6rem); }
  .evolution-description { min-height: 0; max-width: 620px; margin: 1rem 0; }
  .evolution-steps { grid-template-columns: repeat(4,1fr); max-width: 680px; gap: .7rem; margin-bottom: 1rem; }
  .evolution-steps li { grid-template-columns: 22px 1fr; }
  .evolution-button { position: absolute; right: 0; top: 3.7rem; }
  .evolution-visual { justify-self: center; width: min(100%,560px); height: min(49vh,500px); min-height: 390px; }
  .evolution-frame { border-radius: 42% 42% 24px 24px; }
  .cinematic-parallax { height: 155vh; }
  .cinematic-sticky { min-height: 620px; }
  .cinema-content { grid-template-columns: 1fr; align-content: center; gap: 1.5rem; }
  .cinema-copy { max-width: 82%; }
  .cinema-meter { position: absolute; left: 0; bottom: 6.2rem; justify-self: auto; width: 210px; }
  .cinema-arch { right: -7vw; width: 48vw; opacity: .7; }
  .cinema-balloons { right: -13vw; width: 48vw; opacity: .72; }
  .look-art[data-parallax] { transform: translate3d(0,var(--parallax-y),0); }
  .hero { min-height: auto; }
  .hero-grid, .intro-grid, .section-heading, .faq-layout { grid-template-columns: 1fr; }
  .hero-visual { min-height: 540px; }
  .visual-frame { inset: 0 2%; }
  .intro-grid { gap: 2rem; }
  .intro-signature { position: relative; top: 0; min-height: 245px; display: grid; grid-template-columns: 225px 1fr; align-items: center; padding: 1.2rem 2rem; border-radius: 32px; }
  .intro-signature-art { position: relative; left: auto; top: auto; width: 205px; transform: none; }
  .intro-signature-copy strong { font-size: 3.35rem; }
  .service-row { grid-template-columns: 50px 1fr auto; gap: 1rem; padding-block: 1.4rem; }
  .service-row p { grid-column: 2/4; }
  .area-preview-card { grid-template-columns: 1fr; }
  .areas-intro-grid, .area-service-grid, .area-faq-grid { grid-template-columns: 1fr; }
  .city-focus-grid { grid-template-columns: 1fr; }
  .city-focus-card { min-height: 340px; }
  .process-grid { grid-template-columns: repeat(2,1fr); }
  .proof-side { border-left: 0; border-top: 1px solid rgba(255,255,255,.2); padding: 2rem 0 0; }
  .social-card { grid-template-columns: 1fr; }
  .social-actions { grid-template-columns: repeat(2,1fr); }
  .gallery-grid { grid-template-columns: repeat(2,1fr); }
  .gallery-item:nth-child(9n + 3) { grid-column: auto; }
  .faq-intro { position: relative; top: 0; }
  .policy-layout { grid-template-columns: 1fr; }
  .policy-summary { position: relative; top: 0; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1/-1; }
}

@media (max-width: 560px) {
  body { padding-bottom: 0; }
  .announcement { padding: .55rem .75rem; font-size: .6rem; line-height: 1.25; letter-spacing: .055em; }
  .announcement-desktop { display: none; }
  .announcement-mobile { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .18rem .55rem; }
  .announcement-mobile a { font-weight: 800; white-space: nowrap; }
  .nav-wrap { min-height: 70px; }
  .brand-copy small { display: none; }
  .display-title { font-size: clamp(3rem,15vw,4.1rem); line-height: .92; letter-spacing: -.045em; }
  .ambient-orb { opacity: .065; }
  .ambient-orb.orb-c { display: none; }
  .hero { min-height: auto; padding: 2.25rem 0 3rem; }
  .hero-grid { gap: 1.2rem; }
  .hero-lede { margin-top: 1.25rem; font-size: .92rem; line-height: 1.72; }
  .hero-actions .button { width: 100%; }
  .hero-proof { align-items: start; }
  .scroll-cue { margin-top: 1.5rem; }
  .hero-visual { min-height: 440px; margin-top: 1rem; }
  .visual-frame { border-radius: 46% 46% 16px 16px; }
  .hero-stage { inset: 17% 2% 4%; transform: scale(.9); }
  .vibe-panel { right: 0; bottom: 1rem; width: 160px; padding: .8rem; }
  .intro-signature { min-height: 220px; grid-template-columns: 118px 1fr; gap: .8rem; padding: 1rem 1.1rem; border-radius: 24px; }
  .intro-signature::after { inset: 9px; }
  .intro-signature-art { width: 125px; margin-left: -.5rem; }
  .intro-signature-copy > span { margin-bottom: .5rem; font-size: .5rem; letter-spacing: .12em; }
  .intro-signature-copy strong { font-size: 2.45rem; }
  .intro-signature-copy small { margin-top: .7rem; padding-top: .6rem; font-size: .52rem; }
  .owner-note { grid-template-columns: 1fr; gap: .45rem; padding: 1rem; }
  .manifesto-row { grid-template-columns: 40px 1fr; }
  .manifesto-row p { grid-column: 2; }
  .lookbook-side { grid-template-columns: 1fr; }
  .look-card.large { min-height: 490px; }
  .look-card { min-height: 320px; }
  .section-heading { gap: 1.2rem; }
  .service-row { grid-template-columns: 38px 1fr auto; }
  .service-row .round-arrow { width: 38px; height: 38px; }
  .area-preview-card { padding: 2rem 1.25rem; border-radius: 24px; }
  .area-preview-cities { gap: .45rem; }
  .area-preview-cities span { padding: .58rem .7rem; font-size: .56rem; }
  .region-grid { grid-template-columns: 1fr; border-radius: 22px; }
  .region-card { min-height: 280px; }
  .region-card h3 { margin-top: 2rem; }
  .city-focus-card { min-height: 360px; }
  .area-service-list li { grid-template-columns: 36px 1fr; }
  .process-grid { grid-template-columns: 1fr; }
  .process-step { min-height: 230px; }
  .process-step h3 { margin-top: 2rem; }
  .evolution-scroll { height: 330vh; }
  .evolution-sticky { height: 100svh; min-height: 700px; }
  .evolution-layout { gap: .75rem; padding-block: 3.1rem 1rem; }
  .evolution-kicker { margin-bottom: .8rem; }
  .evolution-kicker span { width: 36px; height: 24px; font-size: .88rem; }
  .evolution-kicker p { font-size: .54rem; letter-spacing: .13em; }
  .evolution-copy h2 { max-width: 100%; font-size: clamp(3rem,14.3vw,4.15rem); line-height: .83; }
  .evolution-description { min-height: 3.4em; margin: .8rem 0 .75rem; font-size: .76rem; line-height: 1.55; }
  .evolution-steps { grid-template-columns: repeat(4,1fr); gap: .42rem; margin-bottom: 0; }
  .evolution-steps li { display: block; padding: .55rem 0; }
  .evolution-steps li > span, .evolution-steps small { display: none; }
  .evolution-steps strong { font-size: .52rem; letter-spacing: .03em; }
  .evolution-button { display: none; }
  .evolution-visual { width: 100%; height: min(48vh,420px); min-height: 350px; }
  .evolution-frame { inset: 0 3%; border-radius: 37% 37% 20px 20px; box-shadow: inset 0 0 0 10px rgba(255,255,255,.018),0 36px 75px rgba(0,0,0,.38); }
  .evolution-gridlines { inset: 13px; background-size: 32px 32px; }
  .evolution-status { left: 50%; top: .75rem; min-width: 112px; padding: .58rem .72rem; }
  .evolution-status strong { font-size: 1rem; }
  .evolution-meter { left: .9rem; right: .9rem; bottom: .8rem; }
  .evolution-meter strong { width: 42px; font-size: 1.12rem; }
  .evolution-balloons { transform-origin: 68% 50%; }
  .evolution-florals { scale: .72; transform-origin: bottom left; }
  .evolution-florals.floral-right { scale: .64; transform-origin: bottom right; }
  .cinematic-parallax { height: 145vh; }
  .cinematic-sticky { height: 100svh; min-height: 610px; }
  .cinema-content { align-content: start; padding-top: 5.5rem; }
  .cinema-copy { max-width: 100%; }
  .cinema-copy h2 { max-width: 95%; font-size: clamp(3.3rem,16vw,5.4rem); }
  .cinema-copy p:not(.eyebrow) { max-width: 92%; margin: 1rem 0 1.3rem; font-size: .82rem; line-height: 1.65; }
  .cinema-copy .button { min-height: 46px; padding-inline: 1.1rem; font-size: .66rem; }
  .cinema-meter { bottom: 5.2rem; width: 180px; padding: .85rem; }
  .cinema-meter strong { font-size: 2rem; }
  .cinema-caption { bottom: 1rem; font-size: .5rem; letter-spacing: .1em; }
  .cinema-orbit.orbit-one { right: -80vw; top: -10vh; }
  .cinema-orbit.orbit-two { left: -45vw; bottom: -8vh; }
  .cinema-arch { right: -34vw; bottom: -28vh; width: 82vw; opacity: .58; }
  .cinema-balloons { right: -30vw; top: 28vh; width: 78vw; opacity: .48; scale: .72; transform-origin: right center; }
  .proof-facts { grid-template-columns: 1fr; }
  .social-card { border-radius: 24px; }
  .social-actions { grid-template-columns: 1fr; }
  .page-hero { padding: 2.15rem 0 2.55rem; }
  .page-hero::before, .page-hero::after { display: none; }
  .page-hero .eyebrow { max-width: 100%; margin-bottom: .8rem; font-size: .61rem; line-height: 1.45; letter-spacing: .14em; }
  .page-hero .display-title { max-width: 100%; font-size: clamp(2.65rem,12vw,3.35rem); line-height: .98; letter-spacing: -.038em; overflow-wrap: normal; }
  .page-hero .display-title em {
    display: block;
    margin-top: .08em;
    padding-bottom: .16em;
    font-size: .83em;
    line-height: 1.12;
    background: none;
    color: var(--wine);
    -webkit-text-fill-color: var(--wine);
    animation: none;
  }
  .page-lede { margin-top: 1.05rem; font-size: .84rem; line-height: 1.65; }
  .page-meta { width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .45rem; margin-top: 1.25rem; }
  .page-meta span { min-height: 42px; display: grid; place-items: center; padding: .5rem .4rem; font-size: .53rem; line-height: 1.3; letter-spacing: .04em; text-align: center; }
  .gallery-section { padding: 3rem 0 5rem; }
  .gallery-topline { display: block; margin-bottom: 1.5rem; }
  .gallery-topline .section-title { max-width: 100%; font-size: clamp(2.7rem,12.8vw,3.45rem); overflow-wrap: anywhere; }
  .gallery-note { margin: .8rem 0 0; font-size: .8rem; line-height: 1.65; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-item, .gallery-item:nth-child(7n + 1), .gallery-item:nth-child(7n + 5) { min-height: 460px; grid-row: auto; }
  .instagram-feed-shell { border-radius: 22px; }
  .instagram-feed-head { align-items: flex-start; padding: .9rem; }
  .instagram-feed-profile strong { font-size: 1rem; }
  .instagram-feed-profile small { font-size: .5rem; }
  .instagram-follow-button { width: 42px; min-width: 42px; padding: 0; font-size: 0; }
  .instagram-follow-button span { font-size: 1rem; }
  .instagram-feed-stage { min-height: 420px; padding: .5rem; }
  .instagram-feed-stage > .elfsight-app-c613ee48-6b93-4821-823d-91697a54b037 { min-height: 390px; }
  .form-grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
  .form-head { display: block; }
  .form-head span { display: block; margin-top: .8rem; }
  .contact-line { grid-template-columns: 82px 1fr; }
  .faq-answer.open { padding-right: 0; }
  .footer-top { grid-template-columns: 1fr; gap: 2rem; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { display: grid; }
  .floating-tools { right: 8px; bottom: calc(10px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: .38rem; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
  .floating-tools .instagram, .floating-tools .top { display: none; }
  .float-button.mobile-call, .float-button.whatsapp { width: 43px; min-width: 43px; height: 43px; display: flex; align-items: center; justify-content: center; padding: 0; border: 2px solid rgba(255,255,255,.82); border-radius: 50%; font-size: 1.05rem; box-shadow: 0 9px 24px rgba(18,10,16,.2); }
  .float-button.mobile-call svg { width: 17px; }
  .float-label { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
