/* ============================================================
   Kashmiri Gold — stylesheet
   Palette sampled directly from the Vitacom brand slides.
   ============================================================ */

:root{
  /* neutrals — warm, never pure black */
  --bone:#F0ECE8;
  --ivory:#F7F4F0;
  --sand:#E8E0D6;
  --clay:#DCD2C6;
  --ink:#1A1214;
  --ink-soft:#5A5049;
  --ink-faint:#8A8078;
  --aubergine:#2A1620;
  --aubergine-2:#3D1F2E;

  /* brand — exact values from the colour slide */
  --coral:#F09071;
  --saffron:#FED154;
  --orchid:#DEA1E1;
  --vermilion:#ED463F;
  --ember:#E04B09;
  --gold:#FFBF06;
  --plum:#863185;
  --scarlet:#EA2C18;

  --f:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  --gut:clamp(18px,4.5vw,72px);
  --rule:1px solid rgba(26,18,20,.12);
  --rule-soft:1px solid rgba(26,18,20,.07);
  --ease:cubic-bezier(.22,.68,.28,1);
  --slow:cubic-bezier(.16,.84,.30,1);
}

/* ---------- reset + mobile hardening ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;min-width:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden;scroll-padding-top:80px}
body{
  background:var(--bone);color:var(--ink);
  font-family:var(--f);font-weight:400;
  font-size:clamp(15px,.4vw + 14px,17px);line-height:1.68;letter-spacing:-.005em;
  overflow-x:hidden;width:100%;max-width:100vw;
  display:flex;flex-direction:column;min-height:100svh;
  -webkit-font-smoothing:antialiased;position:relative;
}
body::before{
  content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(120vw 80vh at 78% -8%, rgba(240,144,113,.30), transparent 62%),
    radial-gradient(90vw 70vh at 4% 34%, rgba(254,209,84,.20), transparent 60%),
    radial-gradient(100vw 80vh at 92% 82%, rgba(222,161,225,.22), transparent 62%);
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.30;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}
main{flex:1;width:100%}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit}
button,input,textarea,select{font:inherit;color:inherit}
::selection{background:var(--ember);color:var(--ivory)}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:2px}

.wrap{width:100%;max-width:1340px;margin:0 auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--gut);top:10px;z-index:200;background:var(--ink);color:var(--ivory);padding:12px 18px}
.eyebrow{font-size:clamp(9.5px,.16vw + 9px,11px);letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--ink-faint)}
.diamond{display:inline-block;width:4px;height:4px;background:var(--ember);transform:rotate(45deg);vertical-align:middle;margin:0 .7em}

.progress{position:fixed;top:0;left:0;height:2px;z-index:120;width:0;background:linear-gradient(90deg,var(--saffron),var(--ember),var(--vermilion));transition:width .12s linear}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:100;width:100%;background:rgba(240,236,232,.72);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px);border-bottom:1px solid rgba(26,18,20,.08);transition:background .4s var(--ease),border-color .4s}
.nav.scrolled{background:rgba(240,236,232,.94);border-bottom-color:rgba(26,18,20,.14)}
.nav__in{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:66px}
.nav__mark{font-weight:600;font-size:clamp(14px,.3vw + 13px,16px);letter-spacing:-.02em;text-decoration:none;white-space:nowrap;flex-shrink:0}
.nav__links{display:flex;gap:clamp(16px,2vw,32px);list-style:none}
.nav__links a{position:relative;text-decoration:none;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding-block:4px;white-space:nowrap}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav__right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.nav__cta{position:relative;overflow:hidden;isolation:isolate;text-decoration:none;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;background:var(--ink);color:var(--ivory);padding:12px clamp(14px,1.6vw,22px);white-space:nowrap;border-radius:999px}
.nav__cta::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ember);transform:translateY(101%);transition:transform .45s var(--ease)}
.nav__cta:hover::before{transform:translateY(0)}
.nav__burger{display:none;background:none;border:0;cursor:pointer;padding:9px;line-height:0}
.nav__burger svg{width:22px;height:22px}
.nav__drawer{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .5s var(--ease);border-top:1px solid rgba(26,18,20,0);background:rgba(240,236,232,.98)}
.nav__drawer.open{grid-template-rows:1fr;border-top-color:rgba(26,18,20,.1)}
.nav__drawer > div{min-height:0}
.nav__drawer ul{list-style:none;padding:6px 0 20px}
.nav__drawer a{display:block;padding:15px 0;text-decoration:none;font-size:15px;letter-spacing:.06em;font-weight:500;border-bottom:var(--rule-soft)}
@media(max-width:940px){.nav__links{display:none}.nav__burger{display:block}}
@media(max-width:400px){.nav__cta{padding:11px 14px;font-size:10.5px;letter-spacing:.08em}}

/* ---------- buttons ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-block;text-decoration:none;font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;padding:16px clamp(22px,3vw,34px);border:0;cursor:pointer;border-radius:999px;transition:color .4s var(--ease);text-align:center}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:translateY(101%);transition:transform .5s var(--ease)}
.btn--solid{background:var(--ink);color:var(--ivory)}
.btn--solid::before{background:var(--ember)}
.btn--solid:hover::before{transform:translateY(0)}
.btn--line{border:1px solid rgba(26,18,20,.35);background:transparent;color:var(--ink)}
.btn--line::before{background:var(--ink)}
.btn--line:hover{color:var(--ivory);border-color:var(--ink)}
.btn--line:hover::before{transform:translateY(0)}

/* ---------- hero ---------- */
.hero{padding-top:clamp(38px,7vh,96px);position:relative}
.hero__grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(26px,4vw,64px);align-items:center}
.hero__logo{width:min(100%,620px);margin:16px 0 0}
.hero__strap{font-size:clamp(15px,.7vw + 12px,22px);color:var(--ink-soft);margin-top:clamp(14px,2vw,24px)}
.hero__body{max-width:46ch;margin-top:clamp(14px,1.6vw,20px);color:var(--ink-soft)}
.hero__actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:clamp(24px,3vw,36px)}
@media(max-width:900px){.hero__grid{grid-template-columns:1fr;gap:22px}}


/* ---------- floating cut-outs: no boxes, no backgrounds ---------- */
.float{position:relative;isolation:isolate}
.float img{
  width:100%;height:auto;position:relative;z-index:1;
  filter:drop-shadow(0 clamp(14px,2.4vw,34px) clamp(20px,3.4vw,46px) rgba(42,22,32,.26));
  will-change:transform;
}
/* soft ground shadow so the product sits on the page rather than hovering flatly */
.float::after{
  content:"";position:absolute;z-index:0;left:12%;right:12%;bottom:2%;height:9%;
  background:radial-gradient(ellipse at center,rgba(42,22,32,.20),transparent 70%);
  filter:blur(10px);
}
/* warm bloom behind the product, in brand colour */
.float::before{
  content:"";position:absolute;z-index:-1;inset:-14% -8% -4%;
  background:radial-gradient(closest-side,rgba(240,144,113,.34),transparent 74%);
}
.float--range::before{
  background:
    radial-gradient(closest-side at 22% 60%,rgba(240,144,113,.32),transparent 72%),
    radial-gradient(closest-side at 58% 55%,rgba(254,209,84,.30),transparent 72%),
    radial-gradient(closest-side at 82% 60%,rgba(237,70,63,.24),transparent 72%);
}
.float--range{margin-top:clamp(30px,4.4vw,64px)}
.float--card::before{background:radial-gradient(closest-side,rgba(222,161,225,.4),transparent 74%)}
.float--card::after{left:22%;right:22%;height:7%}

/* gentle idle drift — barely perceptible, stops the page feeling frozen */
.float--hero img{animation:drift 9s ease-in-out infinite}
.float--range img{animation:drift 12s ease-in-out infinite}
@keyframes drift{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-9px) rotate(-.25deg)}
}
.float--hero,.float--range{transition:transform 1.1s var(--slow),opacity 1.1s var(--ease)}

/* ---------- marquee ---------- */
.marquee{margin-top:clamp(44px,6vw,84px);padding:15px 0;overflow:hidden;border-block:var(--rule-soft);-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.marquee__track{display:flex;width:max-content;will-change:transform;backface-visibility:hidden;transform:translate3d(0,0,0)}
.marquee span{font-size:clamp(10px,.18vw + 10px,12px);letter-spacing:.28em;text-transform:uppercase;font-weight:500;color:var(--ink-faint);padding-inline:clamp(16px,2.4vw,34px);white-space:nowrap}
.marquee b{color:var(--ember);font-weight:400}

/* ---------- sections ---------- */
.sec{padding-block:clamp(56px,8vw,128px);position:relative}
.sec--ivory{background:linear-gradient(180deg,rgba(247,244,240,.85),rgba(232,224,214,.55))}
.sec--tight{padding-top:clamp(34px,4vw,64px)}
.sec__head{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.28fr);gap:clamp(20px,4vw,72px);align-items:start}
.sec__title{font-size:clamp(30px,4.6vw,68px);font-weight:600;line-height:1.02;letter-spacing:-.038em;text-wrap:balance}
.sec__lede{font-size:clamp(15.5px,.6vw + 14px,20px);max-width:54ch;color:var(--ink)}
.sec__lede + .sec__lede{margin-top:16px;color:var(--ink-soft);font-size:clamp(15px,.3vw + 14px,17px)}
@media(max-width:820px){.sec__head{grid-template-columns:1fr;gap:18px}}

/* ---------- facts ---------- */
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.2vw,18px);margin-top:clamp(34px,5vw,72px)}
.fact{background:rgba(247,244,240,.72);border:var(--rule-soft);border-radius:clamp(8px,1vw,14px);padding:clamp(20px,2.4vw,36px);transition:transform .55s var(--ease),box-shadow .55s var(--ease),background .55s}
.fact:hover{transform:translateY(-5px);background:rgba(247,244,240,.95);box-shadow:0 22px 40px -28px rgba(42,22,32,.4)}
.fact__n{font-size:clamp(28px,3.6vw,58px);font-weight:600;line-height:1;letter-spacing:-.045em;background:linear-gradient(120deg,var(--ember),var(--vermilion) 55%,var(--plum));-webkit-background-clip:text;background-clip:text;color:transparent}
.fact__l{margin-top:12px;font-size:clamp(12.5px,.2vw + 12px,14px);color:var(--ink-soft);max-width:28ch}
@media(max-width:740px){.facts{grid-template-columns:1fr}}

/* ---------- product cards ---------- */
.pouches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.4vw,22px);margin-top:clamp(34px,5vw,70px)}
.pouch{position:relative;display:flex;flex-direction:column;isolation:isolate;padding:clamp(17px,1.7vw,26px);min-height:clamp(310px,29vw,410px);border-radius:5px 5px clamp(16px,2vw,26px) clamp(16px,2vw,26px);color:var(--ink);text-decoration:none;overflow:hidden;transition:transform .6s var(--slow),box-shadow .6s var(--ease)}
.pouch::before{content:"";position:absolute;left:8%;right:8%;top:-8px;height:13px;border-radius:3px;background:inherit;filter:brightness(.93);z-index:-1}
.pouch::after{content:"";position:absolute;right:-14%;bottom:-6%;width:96%;aspect-ratio:1;z-index:-1;background:radial-gradient(closest-side,rgba(255,255,255,.42),transparent 72%);opacity:.85}
.pouch:hover,.pouch:focus-within{transform:translateY(-10px);box-shadow:0 30px 56px -26px rgba(42,22,32,.5)}
.pouch__mark{font-weight:600;font-size:clamp(14px,1vw,17px);letter-spacing:-.02em}
.pouch__sub{font-size:9.5px;letter-spacing:.05em;opacity:.72;margin-top:2px}
.pouch__tags{margin-top:clamp(14px,1.6vw,22px);font-size:clamp(10.5px,.2vw + 10px,12px);line-height:1.5;opacity:.78}
.pouch__name{font-size:clamp(17px,1.4vw,23px);font-weight:400;line-height:1.18;letter-spacing:-.022em;margin-top:auto}
.pouch__name b{font-weight:600;display:block}
.pouch__claim{font-size:clamp(11px,.2vw + 10.5px,12.5px);line-height:1.5;margin-top:12px;opacity:.88}
.pouch__foot{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:14px;padding-top:11px;border-top:1px solid rgba(26,18,20,.32);font-size:10px;letter-spacing:.04em}
.pouch__foot b{font-weight:600}
.p-coral{background:var(--coral)}
.p-saffron{background:var(--saffron)}
.p-vermilion{background:var(--vermilion)}
.p-orchid{background:var(--orchid)}
@media(max-width:960px){.pouches{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}}
@media(max-width:480px){.pouches{grid-template-columns:1fr;gap:26px}.pouch{min-height:0}}

.claimnote{margin-top:clamp(28px,3.4vw,50px);padding-top:18px;border-top:var(--rule-soft);font-size:clamp(11.5px,.16vw + 11px,12.5px);color:var(--ink-faint);max-width:76ch;line-height:1.62}


/* ---------- product detail ---------- */
.pdp{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(22px,4vw,68px);align-items:start;padding-block:clamp(40px,5.5vw,86px);border-top:var(--rule-soft)}
.pdp__swatch{position:relative;isolation:isolate;display:flex;flex-direction:column;border-radius:5px 5px clamp(16px,2vw,26px) clamp(16px,2vw,26px);padding:clamp(18px,1.8vw,28px);min-height:clamp(260px,26vw,360px)}
.pdp__swatch::before{content:"";position:absolute;left:8%;right:8%;top:-8px;height:13px;border-radius:3px;background:inherit;filter:brightness(.93);z-index:-1}
.pdp__swatch::after{content:"";position:absolute;right:-14%;bottom:-6%;width:96%;aspect-ratio:1;z-index:-1;background:radial-gradient(closest-side,rgba(255,255,255,.4),transparent 72%)}
.pdp__t{font-size:clamp(25px,3.2vw,45px);font-weight:600;line-height:1.06;letter-spacing:-.035em;margin-top:10px}
.pdp__claim{margin-top:16px;font-size:clamp(15px,.5vw + 14px,18px);color:var(--ink-soft)}
.pdp__list{list-style:none;margin-top:24px;border-top:var(--rule-soft)}
.pdp__list li{display:flex;justify-content:space-between;gap:clamp(12px,2vw,24px);padding:13px 0;border-bottom:var(--rule-soft);font-size:clamp(13px,.2vw + 12.5px,14.5px);flex-wrap:wrap}
.pdp__list span:first-child{color:var(--ink-faint);letter-spacing:.03em;flex-shrink:0}
.pdp__list span:last-child{text-align:right;max-width:46ch;margin-left:auto}
@media(max-width:820px){.pdp{grid-template-columns:1fr}.pdp__list span:last-child{text-align:left;margin-left:0}}

/* ---------- banner ---------- */
.banner{padding-block:clamp(44px,7vw,110px) clamp(26px,3.4vw,52px);border-bottom:var(--rule-soft)}
.banner__t{font-size:clamp(34px,7vw,96px);font-weight:600;line-height:.98;letter-spacing:-.045em;margin-top:12px;text-wrap:balance}
.banner__b{max-width:58ch;margin-top:clamp(16px,2vw,24px);font-size:clamp(15px,.6vw + 14px,19px);color:var(--ink-soft)}

/* ---------- purity ---------- */
.purity__grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(26px,5vw,80px);align-items:center}
.seal{width:clamp(112px,14vw,178px);flex-shrink:0;filter:drop-shadow(0 18px 30px rgba(42,22,32,.28))}
.seal text{font-size:8.4px;letter-spacing:.26em;font-weight:600;fill:var(--ivory)}
.seal .seal__kg{font-size:38px;font-weight:600;letter-spacing:-.02em;fill:var(--ivory)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.6vw,42px);margin-top:clamp(34px,4.6vw,64px)}
.step__k{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--ink-faint);padding-bottom:9px;border-bottom:2px solid var(--ember)}
.step__t{font-size:clamp(18px,1.7vw,26px);font-weight:600;letter-spacing:-.025em;margin-top:15px;line-height:1.18}
.step__b{margin-top:9px;font-size:clamp(13.5px,.2vw + 13px,14.5px);color:var(--ink-soft)}
@media(max-width:820px){.purity__grid{grid-template-columns:1fr;justify-items:start}.steps{grid-template-columns:1fr}}

/* ---------- coming soon ---------- */
.coming{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.4vw,20px);margin-top:clamp(32px,4.4vw,64px)}
.coming__i{background:rgba(247,244,240,.7);border:var(--rule-soft);border-radius:clamp(8px,1vw,14px);padding:clamp(20px,2.2vw,34px);display:flex;flex-direction:column;gap:11px;overflow:hidden;transition:transform .55s var(--ease),box-shadow .55s}
.coming__i:hover{transform:translateY(-5px);box-shadow:0 22px 42px -28px rgba(42,22,32,.4)}
.coming__i img{width:100%;height:auto}
.coming__sw{width:34px;height:34px;border-radius:50%}
.coming__t{font-size:clamp(18px,1.7vw,26px);font-weight:600;letter-spacing:-.028em;line-height:1.15;margin-top:auto}
.coming__b{font-size:clamp(13px,.2vw + 12.5px,14px);color:var(--ink-soft)}
@media(max-width:760px){.coming{grid-template-columns:1fr}}

/* ---------- prose ---------- */
.prose{max-width:70ch;padding-block:clamp(38px,5.4vw,84px)}
.prose h2{font-size:clamp(21px,2.6vw,34px);font-weight:600;letter-spacing:-.03em;line-height:1.16;margin:clamp(30px,4vw,46px) 0 13px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:16px;font-weight:600;margin:24px 0 7px}
.prose p{margin-bottom:15px;color:var(--ink-soft)}
.prose ul,.prose ol{margin:0 0 17px 19px;color:var(--ink-soft)}
.prose li{margin-bottom:7px}
.prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ember)}
.prose strong{font-weight:600;color:var(--ink)}
.prose__meta{font-size:12px;letter-spacing:.04em;color:var(--ink-faint);padding-bottom:22px;margin-bottom:30px;border-bottom:var(--rule-soft)}

/* ---------- waitlist ---------- */
.wait{position:relative;overflow:hidden;background:var(--aubergine);color:var(--ivory)}
.wait::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(70vw 60vh at 88% 6%, rgba(224,75,9,.42), transparent 60%),radial-gradient(60vw 55vh at 6% 92%, rgba(134,49,133,.50), transparent 62%),radial-gradient(50vw 45vh at 52% 50%, rgba(254,209,84,.12), transparent 65%)}
.wait > *{position:relative;z-index:1}
.wait .sec__title{color:var(--ivory)}
.wait .eyebrow{color:rgba(247,244,240,.6)}
.wait__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,80px);align-items:center}
.wait__b{color:rgba(247,244,240,.74);max-width:46ch;margin-top:16px}
.wait__swatches{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(8px,1vw,14px)}
.wait__swatches div{aspect-ratio:1;border-radius:50%;transition:transform .7s var(--slow)}
.wait__swatches:hover div{transform:scale(1.05)}
@media(max-width:820px){.wait__grid{grid-template-columns:1fr}.wait__swatches{max-width:220px;margin-inline:auto}}

/* ---------- forms ---------- */
.form{display:flex;gap:10px;margin-top:clamp(24px,3vw,34px);flex-wrap:wrap}
.form input{flex:1 1 min(100%,240px);min-width:0;background:transparent;border:0;border-bottom:1px solid rgba(247,244,240,.4);color:var(--ivory);font-size:16px;padding:14px 2px;transition:border-color .35s;border-radius:0}
.form input::placeholder{color:rgba(247,244,240,.42)}
.form input:focus{outline:none;border-bottom-color:var(--saffron)}
.form button{flex:0 0 auto;background:var(--saffron);color:var(--ink);border:0;cursor:pointer;font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;padding:15px 30px;border-radius:999px;transition:background .35s}
.form button:hover{background:var(--ivory)}
.form button:disabled{opacity:.55;cursor:not-allowed}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__msg{margin-top:15px;font-size:14px;min-height:1.4em;color:var(--saffron)}
.form__legal{margin-top:14px;font-size:12px;color:rgba(247,244,240,.5);max-width:48ch}
.form__legal a{color:rgba(247,244,240,.8)}

.cform{display:grid;gap:20px;max-width:560px;margin-top:8px}
.field label{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--ink-faint);margin-bottom:7px}
.field input,.field textarea,.field select{width:100%;max-width:100%;background:rgba(247,244,240,.5);border:var(--rule);border-radius:6px;font-size:16px;padding:13px 14px;transition:border-color .35s,background .35s}
.field textarea{min-height:132px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--ember);background:rgba(247,244,240,.9)}
.cform__msg{font-size:14px;min-height:1.4em;color:var(--ember)}

/* ---------- contact ---------- */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(30px,5vw,84px);align-items:start}
.deets{list-style:none}
.deets li{padding:16px 0;border-bottom:var(--rule-soft);overflow-wrap:anywhere}
.deets span{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--ink-faint);margin-bottom:5px}
.deets a{text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}
.deets a:hover{border-bottom-color:var(--ember)}

/* ---------- footer ---------- */
.foot{padding-block:clamp(38px,4.6vw,70px) 30px;border-top:var(--rule-soft);background:rgba(232,224,214,.4)}
.foot__top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:clamp(24px,3vw,40px)}
.foot__mark{font-size:clamp(22px,2.6vw,36px);font-weight:600;letter-spacing:-.035em;line-height:1}
.foot__col h4{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--ink-faint);margin-bottom:14px}
.foot__col ul{list-style:none}
.foot__col li{margin-bottom:9px}
.foot__col a{text-decoration:none;font-size:14px;color:var(--ink-soft);transition:color .3s;overflow-wrap:anywhere}
.foot__col a:hover{color:var(--ember)}
.foot__bar{margin-top:clamp(30px,4vw,46px);padding-top:18px;border-top:var(--rule-soft);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-faint)}
@media(max-width:760px){.foot__top{grid-template-columns:1fr;gap:28px}}

/* ---------- cookie bar ---------- */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:150;background:var(--aubergine);color:var(--ivory);padding:16px var(--gut);transform:translateY(110%);transition:transform .6s var(--slow)}
.cookie.show{transform:translateY(0)}
.cookie__in{max-width:1340px;margin:0 auto;display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cookie p{font-size:13px;color:rgba(247,244,240,.78);max-width:64ch}
.cookie a{color:var(--saffron)}
.cookie__acts{display:flex;gap:9px;flex-wrap:wrap}
.cookie button{border:1px solid rgba(247,244,240,.35);background:transparent;color:var(--ivory);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;padding:11px 19px;cursor:pointer;border-radius:999px;transition:background .3s,color .3s}
.cookie button.primary{background:var(--saffron);color:var(--ink);border-color:var(--saffron)}
.cookie button:hover{background:var(--ivory);color:var(--ink)}
@media(max-width:560px){.cookie__in{gap:12px}.cookie__acts{width:100%}.cookie button{flex:1 1 0}}

/* ---------- motion ---------- */
.rise{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--slow)}
.rise.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .rise{opacity:1;transform:none}
  .float img{animation:none;transform:none}
  .reveal-line > span{transform:none}
}

/* ---------- very small screens ---------- */
@media(max-width:360px){:root{--gut:15px}.sec__title{font-size:27px}.banner__t{font-size:31px}}

/* ---------- custom scrollbar ---------- */
@supports selector(::-webkit-scrollbar){
  ::-webkit-scrollbar{width:10px}
  ::-webkit-scrollbar-track{background:var(--sand)}
  ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--ember),var(--plum));border-radius:99px;border:2px solid var(--sand)}
}
html{scrollbar-color:var(--ember) var(--sand);scrollbar-width:thin}

/* ---------- cursor bloom (desktop, pointer devices only) ---------- */
@media(hover:hover) and (pointer:fine){
  .glow{
    position:fixed;top:0;left:0;width:520px;height:520px;z-index:-1;pointer-events:none;
    margin:-260px 0 0 -260px;opacity:0;transition:opacity .8s var(--ease);
    background:radial-gradient(closest-side,rgba(224,75,9,.13),transparent 70%);
  }
  .glow.on{opacity:1}
}
@media(hover:none),(pointer:coarse){.glow{display:none}}

/* ---------- headline reveal ---------- */
.reveal-line{display:block;overflow:hidden}
.reveal-line > span{display:block;transform:translateY(102%);transition:transform 1s var(--slow)}
.rise.in .reveal-line > span,.reveal-line.in > span{transform:translateY(0)}

/* ---------- hairline dividers in brand gradient ---------- */
.hairline{height:1px;border:0;background:linear-gradient(90deg,transparent,rgba(224,75,9,.5),rgba(134,49,133,.4),transparent)}