/* Diamond Vase — main stylesheet. Mobile-first. Tokens → base → layout → components → motion. */
@import url("/css/fonts.css");

/* ─────────────────────────── 0. Reset ─────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;min-height:100svh}
img,picture,video,svg{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:.18em}
ul[role="list"],ol[role="list"]{list-style:none;margin:0;padding:0}
figure{margin:0}
address{font-style:normal}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:2px}
::selection{background:var(--c-peony);color:var(--c-ink)}
[hidden]{display:none!important}

/* ─────────────────────────── 1. Tokens ─────────────────────────── */
:root{
  --c-ivory:#FBF8F3;--c-cream:#F4EEE4;--c-linen:#EAE2D6;--c-sand:#D9CFC0;
  --c-ink:#1C1917;--c-charcoal:#2B2724;--c-stone:#5E5750;--c-taupe:#736B62;
  --c-gold:#B8935A;--c-gold-text:#876431;--c-gold-bright:#D4B57A;--c-champagne:#D9C39A;
  --c-rose:#D9466B;--c-rose-text:#A93B58;--c-coral:#E8705F;--c-blush:#F2D6D0;--c-peach:#F5C9B0;
  --c-sage:#8A9A7B;--c-sage-text:#556449;--c-eucalyptus:#A9B5A2;--c-burgundy:#6B1F2E;--c-night:#141210;
  --c-peony:#F4A9B8;--c-lavender:#E9E0F3;--c-violet:#7E5BA6;--c-violet-text:#5E3F86;--c-butter:#F8E7B0;--c-leaf:#7BAE5A;--c-leaf-text:#3F6B2A;--c-plum:#4A1D3A;--c-plum-deep:#2E1024;--c-mint:#E3EEDF;--c-sky:#DCE7F2;
  --grad-primary:linear-gradient(135deg,#CC3F63 0%,#BE3468 55%,#A32F6A 100%);--grad-warm:linear-gradient(135deg,#E8705F 0%,#D9466B 100%);--grad-hero:linear-gradient(180deg,rgb(74 29 58/.10) 0%,rgb(74 29 58/.28) 45%,rgb(46 16 36/.72) 100%);
  --bg:var(--c-ivory);--bg-alt:var(--c-cream);--surface:var(--c-linen);--border:var(--c-sand);
  --fg:var(--c-charcoal);--fg-strong:var(--c-ink);--fg-muted:var(--c-stone);--fg-subtle:var(--c-taupe);
  --accent:var(--c-gold);--accent-text:var(--c-gold-text);--accent-tint:var(--c-champagne);
  --primary:var(--c-rose-text);--primary-hover:#8F2F49;--primary-fg:var(--c-ivory);--link:var(--c-rose-text);--focus-ring:var(--c-gold-text);
  --scrim:var(--grad-hero);
  --shadow-sm:0 1px 2px rgb(28 25 23/.06),0 2px 8px rgb(28 25 23/.05);
  --shadow-md:0 4px 16px rgb(28 25 23/.10),0 12px 40px rgb(28 25 23/.08);
  --font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --font-text:"Jost","Manrope","Helvetica Neue",Arial,sans-serif;
  --font-fa:"Vazirmatn","Jost",sans-serif;
  --fs--2:clamp(.70rem,.66rem + .17vw,.78rem);--fs--1:clamp(.83rem,.79rem + .20vw,.94rem);--fs-0:clamp(1rem,.96rem + .19vw,1.125rem);
  --fs-1:clamp(1.2rem,1.1rem + .44vw,1.5rem);--fs-2:clamp(1.44rem,1.25rem + .83vw,2rem);--fs-3:clamp(1.73rem,1.38rem + 1.55vw,2.67rem);
  --fs-4:clamp(2.07rem,1.45rem + 2.78vw,3.55rem);--fs-5:clamp(2.49rem,1.36rem + 5vw,4.74rem);--fs-6:clamp(3rem,1.05rem + 8.65vw,6.32rem);
  --lh-tight:1.05;--lh-snug:1.2;--lh-body:1.6;--lh-loose:1.75;
  --s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--s-10:8rem;
  --section-y:clamp(4rem,9vw,8.5rem);--section-y-tight:clamp(2.5rem,5vw,4.5rem);--gutter:clamp(1rem,4vw,3rem);--col-gap:clamp(.75rem,2vw,1.5rem);
  --w-prose:68ch;--w-content:1200px;--w-wide:1440px;--w-max:1760px;
  --radius-sm:4px;--radius-md:8px;--radius-pill:999px;--hairline:1px solid var(--border);
  --nav-h:60px;--ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
@media (min-width:768px){:root{--nav-h:72px}}
/* Dark band — deliberate black & gold, used for candlelight sections and the footer */
.band--dark{
  --bg:var(--c-night);--bg-alt:#1C1917;--surface:#26221F;--border:#3A342F;
  --fg:#E9E2D8;--fg-strong:#FBF8F3;--fg-muted:#B9B0A4;--fg-subtle:#9A9187;
  --accent:var(--c-gold-bright);--accent-text:var(--c-gold-bright);--accent-tint:#2E2820;
  --primary:var(--c-rose);--primary-hover:#E25C7F;--primary-fg:var(--c-ivory);--link:var(--c-gold-bright);--focus-ring:var(--c-gold-bright);
  --shadow-sm:0 1px 2px rgb(0 0 0/.4);--shadow-md:0 8px 30px rgb(0 0 0/.5);
  background:var(--bg);color:var(--fg);color-scheme:dark;
}
.band--burgundy{--bg:var(--c-burgundy);--bg-alt:#5A1A27;--surface:#7A2A3A;--border:#8A3A4A;--fg:#F7E9EC;--fg-strong:#FBF8F3;--fg-muted:#E3C9CF;--fg-subtle:#D4B3BA;--accent:var(--c-gold-bright);--accent-text:var(--c-gold-bright);--primary:var(--c-ivory);--primary-hover:#fff;--primary-fg:var(--c-burgundy);--link:var(--c-gold-bright);--focus-ring:var(--c-gold-bright);background:var(--bg);color:var(--fg);color-scheme:dark}
.band--alt{background:var(--bg-alt)}
.band--blush{--bg:var(--c-blush);--bg-alt:#F7E3DE;--surface:#FBEDE9;--border:#E6BDB4;--accent:var(--c-rose);--accent-text:#8F2F49;--accent-tint:#FBEDE9;--fg-muted:#4A423C;--fg-subtle:#5A4F47;--link:#8F2F49;background:var(--bg)}
.band--peach{--bg:var(--c-peach);--bg-alt:#F9D9C6;--surface:#FBE6D9;--border:#E5B79A;--accent:var(--c-coral);--accent-text:#86311F;--accent-tint:#FBE6D9;--fg-muted:#4A423C;--fg-subtle:#5A4F47;--link:#86311F;background:var(--bg)}
.band--lavender{--fg-muted:#4A423C;--fg-subtle:#5A4F47;--bg:var(--c-lavender);--bg-alt:#F1EBF7;--surface:#F5F0FA;--border:#CFC0E2;--accent:var(--c-violet);--accent-text:var(--c-violet-text);--accent-tint:#F5F0FA;--primary:var(--c-violet-text);--primary-hover:#4A3070;--link:var(--c-violet-text);background:var(--bg)}
.band--sage{--fg-muted:#4A423C;--fg-subtle:#5A4F47;--bg:var(--c-mint);--bg-alt:#EDF4EA;--surface:#F3F8F0;--border:#BFD2B6;--accent:var(--c-leaf);--accent-text:var(--c-leaf-text);--accent-tint:#F3F8F0;--primary:var(--c-leaf-text);--primary-hover:#2F5220;--link:var(--c-leaf-text);background:var(--bg)}
.band--butter{--fg-muted:#4A423C;--fg-subtle:#5A4F47;--bg:var(--c-butter);--bg-alt:#FBF0CB;--surface:#FDF5DA;--border:#E3CF8A;--accent:#C9A227;--accent-text:#7A5E0E;--accent-tint:#FDF5DA;background:var(--bg)}
.band--sky{--fg-muted:#4A423C;--fg-subtle:#5A4F47;--bg:var(--c-sky);--bg-alt:#E8F0F7;--surface:#EFF4F9;--border:#B9CCE0;--accent:#5B7FA6;--accent-text:#35577D;--accent-tint:#EFF4F9;--primary:#35577D;--primary-hover:#25436A;--link:#35577D;background:var(--bg)}
.band--coral{--bg:#CC3F63;--bg-alt:#BE3468;--surface:rgb(255 255 255/.14);--border:rgb(255 255 255/.4);--fg:#FFF6F2;--fg-strong:#fff;--fg-muted:#FFEDE7;--fg-subtle:#FFE6DF;--accent:#FFE3B3;--accent-text:#FFF1DA;--accent-tint:rgb(255 255 255/.18);--primary:#fff;--primary-hover:#FFF1EA;--primary-fg:#B8306A;--link:#fff;--focus-ring:#fff;background:var(--grad-primary);color:var(--fg);color-scheme:dark}
.band--plum{--bg:var(--c-plum);--bg-alt:#5A2648;--surface:#5E2C4C;--border:#7A4468;--fg:#F3E6EE;--fg-strong:#FFF7FB;--fg-muted:#D9BFD0;--fg-subtle:#C5A7BA;--accent:var(--c-gold-bright);--accent-text:#E7CB93;--accent-tint:#5E2C4C;--primary:var(--c-coral);--primary-hover:#F08070;--primary-fg:#fff;--link:#F4A9B8;--focus-ring:var(--c-gold-bright);--shadow-sm:0 1px 2px rgb(0 0 0/.4);--shadow-md:0 8px 30px rgb(0 0 0/.5);background:linear-gradient(160deg,var(--c-plum) 0%,var(--c-plum-deep) 100%);color:var(--fg);color-scheme:dark}

/* ─────────────────────────── 2. Base typography ─────────────────────────── */
body{font-family:var(--font-text);font-size:var(--fs-0);line-height:var(--lh-body);font-weight:400;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-variant-numeric:lining-nums}
h1,h2,h3,.display{font-family:var(--font-display);font-weight:500;color:var(--fg-strong);letter-spacing:-.01em;text-wrap:balance;margin:0}
h1{font-size:var(--fs-5);line-height:var(--lh-tight);letter-spacing:-.02em}
h2{font-size:var(--fs-3);line-height:var(--lh-snug)}
h3{font-size:var(--fs-2);line-height:var(--lh-snug)}
h4{font-family:var(--font-text);font-size:var(--fs-1);font-weight:500;margin:0;color:var(--fg-strong)}
p{margin:0 0 var(--s-4);max-width:var(--w-prose)}
p:last-child{margin-bottom:0}
.lede{font-size:var(--fs-1);font-weight:300;line-height:1.5;color:var(--fg-muted);max-width:44ch}
em,.display-italic{font-style:italic;font-weight:400}
h1 em,h2 em,h3 em{color:var(--c-rose-text)}
.hero h1 em,.band--dark h1 em,.band--dark h2 em,.band--plum h2 em,.band--burgundy h2 em,.band--coral h2 em{color:var(--c-peony)}
.band--lavender h2 em{color:var(--c-violet-text)}.band--sage h2 em{color:var(--c-leaf-text)}.band--peach h2 em{color:#9A3F2E}
.eyebrow{font-family:var(--font-text);font-size:var(--fs--2);font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--accent-text);margin:0 0 var(--s-3)}
.eyebrow--rule{display:flex;align-items:center;gap:1rem}
.eyebrow--rule::before{content:"";width:2.5rem;height:1px;background:var(--accent);flex:none}
figcaption,.meta{font-size:var(--fs--1);color:var(--fg-subtle)}
.num{font-variant-numeric:lining-nums tabular-nums}
:lang(fa){font-family:var(--font-fa);direction:rtl;letter-spacing:0;text-transform:none}
.prose{max-width:var(--w-prose)}
.prose h2{margin-top:var(--s-7);margin-bottom:var(--s-4)}
.prose h3{margin-top:var(--s-6);margin-bottom:var(--s-3)}
.prose ul,.prose ol{padding-left:1.25em;margin:0 0 var(--s-4)}
.prose li{margin-bottom:var(--s-2)}
.prose a{color:var(--link)}
.text-center{text-align:center}.text-center p,.text-center .lede{margin-inline:auto}
.muted{color:var(--fg-muted)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ─────────────────────────── 3. Layout ─────────────────────────── */
.container{width:min(100% - 2*var(--gutter),var(--w-content));margin-inline:auto}
.container--wide{width:min(100% - 2*var(--gutter),var(--w-wide));margin-inline:auto}
.container--prose{width:min(100% - 2*var(--gutter),var(--w-prose));margin-inline:auto}
.full-bleed{width:100%;max-width:var(--w-max);margin-inline:auto}
.section{padding-block:var(--section-y)}
.section--tight{padding-block:var(--section-y-tight)}
.section--flush-top{padding-top:0}
.section-head{display:grid;gap:var(--s-3);margin-bottom:clamp(2rem,5vw,3.5rem);max-width:60ch}
.section-head--center{margin-inline:auto;text-align:center;justify-items:center}
.section-head--split{max-width:none;grid-template-columns:1fr;align-items:end}
@media (min-width:768px){.section-head--split{grid-template-columns:1fr auto;gap:var(--s-6)}}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--col-gap)}
.grid>*{grid-column:1/-1}
@media (min-width:768px){.grid>.md\:span-4{grid-column:span 4}.grid>.md\:span-5{grid-column:span 5}.grid>.md\:span-6{grid-column:span 6}.grid>.md\:span-7{grid-column:span 7}.grid>.md\:span-8{grid-column:span 8}}
.cards{display:grid;gap:clamp(1.25rem,3vw,2.5rem) var(--col-gap);grid-template-columns:1fr}
@media (min-width:480px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.cards{grid-template-columns:repeat(3,1fr)}.cards--4{grid-template-columns:repeat(4,1fr)}.cards--2{grid-template-columns:repeat(2,1fr)}}
.split{display:grid;gap:var(--s-6);align-items:center}
@media (min-width:900px){.split{grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem)}.split--reverse>:first-child{order:2}}
.stack{display:grid;gap:var(--s-4)}
.stack--lg{gap:var(--s-6)}
.cluster{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-4);align-items:center}
.divider{display:flex;align-items:center;gap:var(--s-4);margin:var(--s-7) auto;max-width:18rem;color:var(--c-coral)}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--border)}
.divider svg{width:8px;height:8px;fill:currentColor}

/* ─────────────────────────── 4. Components ─────────────────────────── */
/* Skip link */
.skip-link{position:absolute;left:var(--s-4);top:-100px;z-index:100;padding:.75rem 1rem;background:var(--fg-strong);color:var(--bg);text-decoration:none}
.skip-link:focus{top:var(--s-4)}

/* Word-mark */
.brand{display:inline-flex;align-items:center;gap:.55em;font-family:var(--font-display);font-weight:500;font-size:1.25rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:inherit;line-height:1;white-space:nowrap}
.brand svg{width:.5em;height:.5em;fill:var(--accent);flex:none}
.brand--lg{font-size:clamp(1.5rem,3vw,2rem)}

/* Navigation */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--nav-h);display:flex;align-items:center;color:var(--c-ivory);background:transparent;border-bottom:1px solid transparent;transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}
.nav .brand svg{fill:var(--c-gold-bright)}
.nav.is-scrolled,.nav.is-solid{color:var(--fg);background:color-mix(in oklab,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:var(--border);box-shadow:var(--shadow-sm)}
.nav.is-scrolled .brand svg,.nav.is-solid .brand svg{fill:var(--accent)}
.nav__inner{width:min(100% - 2*var(--gutter),var(--w-wide));margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}
.nav__links{display:none;gap:var(--s-2);align-items:center}
@media (min-width:1024px){.nav__links{display:flex}}
@media (min-width:1024px) and (max-width:1279.98px){.nav__links a,.nav__links button{padding:.5rem .45rem;font-size:var(--fs--2);letter-spacing:.1em}.nav__links a[href="/gallery/"]{display:none}.nav__phone span{display:none}.nav__phone{width:44px;padding:0;justify-content:center}}
.nav__links a,.nav__links button{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:.5rem .55rem;font-size:var(--fs--1);font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:inherit;text-decoration:none;white-space:nowrap}
.nav__links a::after,.nav__links button::after{content:"";position:absolute;left:.55rem;right:.55rem;bottom:.35rem;height:1px;background:var(--c-gold-bright);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.nav.is-scrolled .nav__links a::after,.nav.is-solid .nav__links a::after,.nav.is-scrolled .nav__links button::after,.nav.is-solid .nav__links button::after{background:var(--accent)}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after,.nav__links button:hover::after,.nav__links button[aria-expanded="true"]::after{transform:scaleX(1)}
.nav__right{display:flex;align-items:center;gap:var(--s-2)}
.nav__phone{display:none;align-items:center;gap:.5em;min-height:44px;padding:0 1.1rem;border:1px solid currentColor;border-radius:var(--radius-pill);font-size:var(--fs--1);font-weight:500;letter-spacing:.06em;text-decoration:none;color:inherit;transition:background .2s,color .2s}
.nav__phone:hover{background:var(--primary);border-color:var(--primary);color:var(--primary-fg)}
.nav__phone svg{width:1em;height:1em;fill:currentColor}
@media (min-width:1024px){.nav__phone{display:inline-flex}}
.nav__burger{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:inherit}
.nav__burger svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.5;fill:none}
@media (min-width:1024px){.nav__burger{display:none}}
/* Mega menu */
.menu{position:relative}
.menu__panel{position:absolute;top:calc(100% + .25rem);left:50%;transform:translateX(-50%) translateY(6px);min-width:min(880px,90vw);padding:var(--s-6);background:var(--c-ivory);color:var(--c-charcoal);border:1px solid var(--c-sand);box-shadow:var(--shadow-md);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);opacity:0;visibility:hidden;transition:opacity .2s var(--ease),transform .2s var(--ease),visibility 0s .2s}
.menu.is-open .menu__panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);transition-delay:0s}
.menu__col .menu__title{font-family:var(--font-text);font-size:var(--fs--2);letter-spacing:.18em;text-transform:uppercase;color:var(--c-gold-text);margin:0 0 var(--s-3);padding-bottom:var(--s-2);border-bottom:1px solid var(--c-sand)}
.menu__col a{display:block;padding:.4rem 0;font-family:var(--font-display);font-size:var(--fs-1);font-weight:500;letter-spacing:0;text-transform:none;color:var(--c-ink);text-decoration:none;min-height:0}
.menu__col a::after{display:none}
.menu__col a:hover{color:var(--c-rose-text)}
.menu__col small{display:block;font-family:var(--font-text);font-size:var(--fs--1);color:var(--c-taupe);margin-top:-.15rem}
/* Drawer */
.drawer{border:0;padding:0;max-width:100vw;max-height:100svh;width:100vw;height:100svh;background:var(--c-ivory);color:var(--c-charcoal)}
.drawer::backdrop{background:rgb(22 19 17/.4)}
.drawer__inner{display:flex;flex-direction:column;min-height:100svh;padding:var(--s-4) var(--gutter) var(--s-8)}
.drawer__top{display:flex;align-items:center;justify-content:space-between;min-height:var(--nav-h)}
.drawer__close{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center}
.drawer__close svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.5;fill:none}
.drawer nav{margin-top:var(--s-6);display:grid;gap:var(--s-2)}
.drawer nav>a,.drawer details summary{font-family:var(--font-display);font-size:var(--fs-2);font-weight:500;color:var(--c-ink);text-decoration:none;padding:.35rem 0;display:block;cursor:pointer;list-style:none}
.drawer details summary::-webkit-details-marker{display:none}
.drawer details summary::after{content:"+";float:right;color:var(--c-gold);font-weight:400}
.drawer details[open] summary::after{content:"–"}
.drawer details div{display:grid;gap:.15rem;padding:.25rem 0 .75rem var(--s-4);border-left:1px solid var(--c-sand);margin-left:.15rem}
.drawer details div a{font-size:var(--fs-0);color:var(--c-charcoal);text-decoration:none;padding:.3rem 0}
.drawer__foot{margin-top:auto;padding-top:var(--s-6);display:grid;gap:var(--s-4)}
.drawer__foot .btn{width:100%}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;padding:0 1.75rem;border-radius:2px;border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;font-family:var(--font-text);font-size:var(--fs--1);font-weight:500;text-transform:uppercase;letter-spacing:.12em;line-height:1;transition:background .2s,color .2s,border-color .2s,transform .2s}
.btn svg{width:1.1em;height:1.1em;fill:currentColor;flex:none}
.btn--primary{background:var(--grad-primary);color:#fff;box-shadow:0 6px 18px rgb(190 52 104/.25)}
.btn--primary:hover{filter:brightness(1.06);box-shadow:0 8px 24px rgb(217 70 107/.35)}
.band--coral .btn--primary{background:#fff;color:#A32F6A;box-shadow:none}
.band--lavender .btn--primary,.band--sage .btn--primary,.band--sky .btn--primary{background:var(--primary);box-shadow:none}
.btn--ghost{background:transparent;color:currentColor;border-color:currentColor}
.btn--ghost:hover{background:var(--fg-strong);color:var(--bg);border-color:var(--fg-strong)}
.band--dark .btn--ghost:hover,.band--burgundy .btn--ghost:hover,.hero .btn--ghost:hover{background:var(--c-ivory);color:var(--c-ink);border-color:var(--c-ivory)}
.btn--gold{background:transparent;color:var(--accent-text);border-color:var(--accent)}
.btn--gold:hover{background:var(--accent-text);color:var(--c-ivory);border-color:var(--accent-text)}
.btn--lg{min-height:56px;padding:0 2.25rem}
.btn--block{width:100%}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.6;cursor:progress}
.btn--icon{width:48px;padding:0;border-radius:var(--radius-pill)}
.link-arrow{display:inline-flex;align-items:center;gap:.5em;font-size:var(--fs--1);font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-text);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:.15em;width:max-content;transition:gap .2s var(--ease)}
.link-arrow:hover{gap:.85em}
.link-arrow svg{width:1em;height:1em;fill:currentColor}

/* Hero */
.hero{position:relative;display:grid;align-items:end;min-height:min(88svh,800px);overflow:clip;isolation:isolate;color:var(--c-ivory);background:var(--c-ink)}
@media (min-width:768px){.hero{min-height:min(92svh,1000px)}}
.hero--short{min-height:min(62svh,620px)}
@media (min-width:768px){.hero--short{min-height:min(66svh,720px)}}
.hero__media{position:absolute;inset:0;z-index:-1;background:var(--c-ink)}
.hero__media picture{display:block;width:100%;height:100%}
.hero__media img,.hero__media video{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgb(46 16 36/.38) 0%,rgb(46 16 36/.12) 45%,rgb(46 16 36/0) 70%),var(--scrim)}
.hero__inner{position:relative;padding-top:calc(var(--nav-h) + var(--s-8));padding-bottom:clamp(2.5rem,8vh,6rem);display:grid;gap:var(--s-5)}
.hero .eyebrow{color:var(--c-champagne);margin:0}
.hero .eyebrow,.hero h1,.hero .lede,.hero .breadcrumb{text-shadow:0 1px 2px rgb(28 25 23/.35),0 2px 24px rgb(28 25 23/.25)}
.hero h1{color:var(--c-ivory);max-width:14ch;font-weight:400}
.hero--home h1{font-size:clamp(2.6rem,1.4rem + 5.4vw,5.6rem);max-width:15ch}
.hero .lede{color:rgb(251 248 243/.86);font-weight:300;max-width:46ch}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.hero__credit{position:absolute;right:var(--gutter);bottom:var(--s-4);font-size:var(--fs--2);letter-spacing:.12em;text-transform:uppercase;color:rgb(251 248 243/.6)}
/* Plain page header (no photo) */
.page-head{padding-top:calc(var(--nav-h) + var(--section-y-tight));padding-bottom:var(--section-y-tight);display:grid;gap:var(--s-4)}
.page-head .lede{max-width:52ch}
.breadcrumb{display:flex;flex-wrap:wrap;gap:.5em;font-size:var(--fs--1);color:var(--fg-subtle);margin:0}
.breadcrumb a{color:inherit;text-decoration:none}
.breadcrumb a:hover{color:var(--accent-text)}
.breadcrumb li+li::before{content:"·";margin-right:.5em;color:var(--accent)}

/* Media + cards */
.card-media{aspect-ratio:4/5;overflow:hidden;background:var(--surface);border-radius:var(--radius-sm);position:relative}
.card-media>picture,.card-media>a,.card-media>a>picture{display:block;width:100%;height:100%}
.card-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform .7s var(--ease)}
.card-media--square{aspect-ratio:1/1}
.card-media--wide{aspect-ratio:3/2}
.card-media--reel{aspect-ratio:9/16}
.card{display:grid;gap:var(--s-4);color:inherit;text-decoration:none;align-content:start}
.card:hover .card-media img,.card:focus-within .card-media img{transform:scale(1.03)}
.card__title{font-family:var(--font-display);font-size:var(--fs-2);font-weight:500;color:var(--fg-strong);line-height:var(--lh-snug);transition:color .2s}
.card:hover .card__title{color:var(--accent-text)}
.card__text{color:var(--fg-muted);margin:0}
.card .eyebrow{margin:0}
.card--bordered{padding:var(--s-4);border:var(--hairline)}
/* Service card */
.svc{display:grid;gap:var(--s-3);color:inherit;text-decoration:none;align-content:start;padding:var(--s-3);border-radius:var(--radius-md);transition:background .3s,transform .3s var(--ease)}
.svc:hover{transform:translateY(-3px)}
.cards>.svc:nth-child(6n+1):hover{background:var(--c-blush)}.cards>.svc:nth-child(6n+2):hover{background:var(--c-lavender)}.cards>.svc:nth-child(6n+3):hover{background:var(--c-peach)}.cards>.svc:nth-child(6n+4):hover{background:var(--c-mint)}.cards>.svc:nth-child(6n+5):hover{background:var(--c-butter)}.cards>.svc:nth-child(6n+6):hover{background:var(--c-sky)}
.svc:hover .card-media img{transform:scale(1.03)}
.svc__title{font-family:var(--font-display);font-size:var(--fs-2);font-weight:500;color:var(--fg-strong);transition:color .2s;line-height:var(--lh-snug)}
.svc:hover .svc__title{color:var(--accent-text)}
.svc p{color:var(--fg-muted);margin:0}
.svc .link-arrow{margin-top:var(--s-1)}
.svc .eyebrow{color:var(--c-rose-text)}
/* Product (shop) card */
.product{display:grid;gap:var(--s-3);align-content:start}
.product .card-media a{display:block;height:100%}
.product__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3)}
.product__title{font-family:var(--font-display);font-size:var(--fs-1);font-weight:500;color:var(--fg-strong);margin:0}
.product__title a{color:inherit;text-decoration:none}
.product__title a:hover{color:var(--accent-text)}
.product__price{font-variant-numeric:tabular-nums;color:var(--fg-muted);white-space:nowrap;font-size:var(--fs--1)}
.product__desc{color:var(--fg-muted);margin:0;font-size:var(--fs--1)}
.product .btn{justify-self:start;margin-top:var(--s-1)}
.badge{display:inline-block;font-size:var(--fs--2);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--grad-primary);padding:.35em .75em;border-radius:2px}
.badge[aria-pressed]{background:var(--surface);color:var(--fg);border:1px solid var(--border);cursor:pointer}
.badge[aria-pressed="true"]{background:var(--grad-primary);color:#fff;border-color:transparent}
.badge--on-media{position:absolute;top:var(--s-3);left:var(--s-3)}
/* Editorial gallery */
.gallery-editorial{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--col-gap);align-items:start}
.gallery-editorial>*{grid-column:1/-1}
.gallery-editorial figure{margin:0}
.gallery-editorial figcaption{margin-top:var(--s-2)}
@media (min-width:768px){
  .gallery-editorial>:nth-child(1){grid-column:1/span 7}
  .gallery-editorial>:nth-child(2){grid-column:8/span 5;margin-top:var(--s-9)}
  .gallery-editorial>:nth-child(3){grid-column:1/-1}
  .gallery-editorial>:nth-child(4){grid-column:2/span 5}
  .gallery-editorial>:nth-child(5){grid-column:7/span 6;margin-top:var(--s-7)}
  .gallery-editorial>:nth-child(6){grid-column:1/span 6;margin-top:calc(-1*var(--s-6))}
}
.masonry{columns:1;column-gap:var(--col-gap)}
.masonry>*{break-inside:avoid;margin-bottom:var(--col-gap)}
@media (min-width:480px){.masonry{columns:2}}
@media (min-width:1024px){.masonry{columns:3}}
.masonry .card-media{aspect-ratio:auto}
.masonry .card-media>picture,.masonry .card-media>a>picture{height:auto}
.masonry .card-media img{height:auto;object-fit:initial}
a.zoom{display:block;position:relative;color:inherit}
a.zoom:focus-visible{outline-offset:-3px}
/* Instagram strip */
.ig-strip{display:flex;gap:var(--col-gap);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--s-3);scrollbar-width:thin}
.ig-strip>*{flex:0 0 clamp(150px,42vw,220px);scroll-snap-align:start}
@media (min-width:1024px){.ig-strip{display:grid;grid-template-columns:repeat(6,1fr);overflow:visible}.ig-strip>*{flex:none}}
.ig-strip .card-media{aspect-ratio:1/1}

/* Steps (how to order) */
.steps{display:grid;gap:var(--s-6);counter-reset:step}
@media (min-width:768px){.steps{grid-template-columns:repeat(4,1fr);gap:var(--col-gap)}.steps>*+*{border-left:var(--hairline);padding-left:var(--s-5)}}
.step{display:grid;gap:var(--s-3);align-content:start}
.step__n{font-family:var(--font-display);font-size:var(--fs-4);font-weight:400;line-height:1;background:var(--grad-primary);-webkit-background-clip:text;background-clip:text;color:transparent}
.step h3{font-size:var(--fs-1)}
.step p{color:var(--fg-muted);margin:0}
/* Testimonial */
.quote{position:relative;display:grid;gap:var(--s-5);max-width:60ch;margin-inline:auto;text-align:center;padding-top:var(--s-6)}
.quote::before{content:"\201C";position:absolute;top:-.1em;left:50%;transform:translateX(-50%);font-family:var(--font-display);font-size:6rem;line-height:1;color:var(--c-coral);opacity:.7}
.quote blockquote{margin:0;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-3);line-height:1.3;color:var(--fg-strong)}
.quote cite{font-style:normal}
.quote-grid{display:grid;gap:var(--s-6)}
@media (min-width:900px){.quote-grid{grid-template-columns:repeat(3,1fr);gap:var(--s-7)}}
.quote--sm{text-align:left;padding-top:var(--s-5)}
.quote--sm::before{left:0;transform:none;font-size:4rem}
.quote--sm blockquote{font-size:var(--fs-1)}
/* Feature list */
.features{display:grid;gap:var(--s-5)}
@media (min-width:768px){.features{grid-template-columns:repeat(2,1fr)}.features--3{grid-template-columns:repeat(3,1fr)}}
.feature{display:grid;gap:var(--s-2);padding-top:var(--s-4);border-top:2px solid var(--accent)}
.features>.feature:nth-child(4n+1){border-color:var(--c-coral)}.features>.feature:nth-child(4n+2){border-color:var(--c-violet)}.features>.feature:nth-child(4n+3){border-color:var(--c-leaf)}.features>.feature:nth-child(4n+4){border-color:var(--c-gold)}
.feature h3{font-size:var(--fs-1)}
.feature p{color:var(--fg-muted);margin:0}
/* Callout */
.callout{padding:var(--s-6);border:1px solid var(--border);border-left:6px solid var(--c-coral);display:grid;gap:var(--s-3);background:var(--surface);border-radius:var(--radius-sm)}
.callout--tint{background:var(--accent-tint);border-color:transparent;color:var(--c-ink)}
/* FAQ */
.faq{display:grid;border-top:var(--hairline)}
.faq details{border-bottom:var(--hairline)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-4) 0;font-family:var(--font-display);font-size:var(--fs-1);font-weight:500;color:var(--fg-strong);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-text);font-weight:300;font-size:1.5rem;color:var(--c-coral);flex:none;transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details>div{padding:0 0 var(--s-5);color:var(--fg-muted)}
.faq details>div p{max-width:62ch}
/* Sticky call/text bar */
.callbar{position:fixed;inset:auto 0 0 0;z-index:40;display:grid;grid-template-columns:1fr 1fr 56px;gap:1px;background:var(--c-sand);border-top:1px solid var(--c-sand);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -4px 16px rgb(28 25 23/.08)}
.callbar a{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:56px;background:var(--c-ivory);color:var(--c-ink);font-size:var(--fs--1);font-weight:500;text-transform:uppercase;letter-spacing:.12em;text-decoration:none}
.callbar a svg{width:1.1em;height:1.1em;fill:currentColor}
.callbar a.is-primary{background:var(--grad-primary);color:#fff}
@media (min-width:1024px){.callbar{display:none}}
body{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
@media (min-width:1024px){body{padding-bottom:0}}
body.no-callbar .callbar{display:none}
/* Footer */
.footer{padding-block:var(--section-y-tight) var(--s-6)}
.footer.band--dark{--bg:var(--c-plum);background:linear-gradient(160deg,#4A1D3A 0%,#2E1024 100%);--fg:#F3E6EE;--fg-strong:#FFF7FB;--fg-muted:#D9BFD0;--fg-subtle:#C5A7BA;--border:#6E3C5C;--accent:var(--c-gold-bright);--accent-text:#E7CB93}
.footer__grid{display:grid;gap:var(--s-6);padding-bottom:var(--s-6);border-bottom:1px solid var(--border)}
@media (min-width:768px){.footer__grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.footer .footer__title{font-family:var(--font-text);font-size:var(--fs--2);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);margin:0 0 var(--s-3)}
.footer ul{display:grid;gap:.35rem}
.footer a{color:var(--fg);text-decoration:none}
.footer a:hover{color:var(--accent-text)}
.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3);padding-top:var(--s-5);font-size:var(--fs--1);color:var(--fg-subtle)}
.footer__bottom a{color:inherit}
.footer .brand{margin-bottom:var(--s-3)}
.footer .tagline{color:var(--fg-muted);max-width:34ch}
/* Lightbox */
dialog.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100svh;width:100vw;height:100svh;color:var(--c-champagne)}
dialog.lightbox::backdrop{background:rgb(22 19 17/.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lightbox__inner{display:grid;grid-template-rows:1fr auto;height:100svh;padding:var(--s-4)}
.lightbox__stage{display:grid;place-items:center;min-height:0}
.lightbox img{max-width:min(96vw,1400px);max-height:84svh;width:auto;height:auto;object-fit:contain;box-shadow:0 30px 80px rgb(0 0 0/.5)}
.lightbox__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding-top:var(--s-3);font-size:var(--fs--1)}
.lightbox__cap{margin:0;flex:1;min-width:0}
.lightbox__btn{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;color:var(--c-ivory);border:1px solid rgb(251 248 243/.35);border-radius:var(--radius-pill);background:rgb(22 19 17/.5)}
.lightbox__btn:hover{background:rgb(251 248 243/.15)}
.lightbox__btn svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none}
.lightbox__close{position:absolute;top:var(--s-4);right:var(--s-4)}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%)}
.lightbox__nav--prev{left:var(--s-4)}.lightbox__nav--next{right:var(--s-4)}
/* Forms */
.form{display:grid;gap:var(--s-5)}
.form__row{display:grid;gap:var(--s-5)}
@media (min-width:600px){.form__row{grid-template-columns:1fr 1fr}.form__row--3{grid-template-columns:2fr 1fr 1fr}}
.field{display:grid;gap:.4rem}
.field label,.field legend{font-size:var(--fs--1);font-weight:500;letter-spacing:.04em;color:var(--fg-strong)}
.field label small,.field legend small{font-weight:400;color:var(--fg-subtle);margin-left:.35em;letter-spacing:0}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:.7rem .9rem;background:var(--bg);border:1px solid var(--border);border-radius:2px;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-rose);box-shadow:0 0 0 3px rgb(217 70 107/.2)}
.field input::placeholder,.field textarea::placeholder{color:var(--fg-subtle);opacity:1}
.field .hint{font-size:var(--fs--1);color:var(--fg-subtle);margin:0}
fieldset{border:0;padding:0;margin:0;min-width:0}
.choice{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.choice label{display:inline-flex;align-items:center;gap:.5em;min-height:44px;padding:0 1rem;border:1px solid var(--border);border-radius:2px;cursor:pointer;font-weight:400;letter-spacing:0;transition:border-color .2s,background .2s}
.choice input{position:absolute;opacity:0;width:1px;height:1px}
.choice label:has(input:checked){border-color:var(--c-rose);background:var(--c-blush);color:var(--c-ink)}
.choice label:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}
.form__status{padding:var(--s-3) var(--s-4);border:1px solid var(--border);font-size:var(--fs--1);margin:0}
.form__status[data-kind="error"]{border-color:var(--c-rose-text);color:var(--c-rose-text)}
.form__status[data-kind="ok"]{border-color:var(--c-sage-text);color:var(--c-sage-text)}
.form__foot{display:grid;gap:var(--s-3);justify-items:start}
.form__foot .hint{margin:0}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.success{display:grid;gap:var(--s-4);padding:var(--s-6);border:1px solid var(--accent);background:var(--bg)}
.success h2{font-size:var(--fs-3)}
.copy-box{display:grid;gap:var(--s-3)}
.copy-box textarea{width:100%;min-height:200px;padding:var(--s-4);border:1px solid var(--border);background:var(--bg-alt);font-size:var(--fs--1);line-height:1.5}
/* Item (single arrangement) page */
.item{display:grid;gap:var(--s-6)}
@media (min-width:900px){.item{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,5vw,5rem);align-items:start}.item__form{position:sticky;top:calc(var(--nav-h) + var(--s-5))}}
.item__gallery{display:grid;gap:var(--col-gap)}
.item__gallery .card-media{aspect-ratio:4/5}
.item__thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--col-gap)}
.item__thumbs .card-media{aspect-ratio:1/1}
.item__meta{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);font-size:var(--fs--1);color:var(--fg-muted)}
.item__form{display:grid;gap:var(--s-5);padding:var(--s-6);border:var(--hairline);background:var(--bg)}
.item__form .price{font-size:var(--fs-1);color:var(--fg-strong);font-variant-numeric:tabular-nums}
/* Stat / trust row */
.trust{display:grid;gap:var(--s-4);grid-template-columns:repeat(2,1fr);text-align:center}
@media (min-width:768px){.trust{grid-template-columns:repeat(4,1fr)}}
.trust div{padding:var(--s-4);border-top:1px solid var(--accent)}
.trust strong{display:block;font-family:var(--font-display);font-size:var(--fs-2);font-weight:500;color:var(--fg-strong)}
.trust span{font-size:var(--fs--1);color:var(--fg-muted)}
/* Contact block */
.contact-list{display:grid;gap:var(--s-4)}
.contact-list a{display:flex;align-items:center;gap:var(--s-3);color:var(--fg-strong);text-decoration:none;font-size:var(--fs-1);font-family:var(--font-display);font-weight:500}
.contact-list a:hover{color:var(--accent-text)}
.contact-list svg{width:1.1em;height:1.1em;fill:var(--c-coral);flex:none}
.contact-list small{display:block;font-family:var(--font-text);font-size:var(--fs--1);color:var(--fg-subtle);font-weight:400}

/* ─────────────────────────── 5. Motion ─────────────────────────── */
[data-reveal]{opacity:1;transform:none}
.js.motion-ok [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js.motion-ok [data-reveal].is-in{opacity:1;transform:none}
.js.motion-ok [data-reveal-group]>*{transition-delay:calc(var(--i,0)*70ms)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero__media video{display:none}
}
@media print{.nav,.callbar,.drawer,dialog{display:none!important}body{padding:0;background:#fff}}
