/* ============================================================================
   Coronet Coffee — Design System v5 "Lot & Screen"
   Sleek B2B origin trader. Fraunces (display) + Inter (UI/body).
   Palette: coffeeberry · deep cherry · white · gold · green-bean tint.
   No Bootstrap CSS dependency — own grid + utilities. Bootstrap Icons only.
   ============================================================================ */

:root{
  --white:#ffffff;
  --bean:#eef0e6;          /* green-coffee tint surface */
  --bean-2:#e2e6d6;
  --bean-3:#c7ccb3;
  --berry:#7e2444;         /* brand */
  --berry-2:#952b51;
  --berry-soft:#f6e9ee;
  --cherry:#2e0c19;        /* deep dark sections */
  --cherry-2:#41132a;
  --cherry-3:#5a1b39;
  --gold:#b8893a;
  --gold-soft:#e2c78f;
  --ink:#23151b;
  --body:#584a50;
  --muted:#857880;
  --line:rgba(35,21,27,.11);
  --line-2:rgba(35,21,27,.2);
  --line-d:rgba(255,255,255,.14);
  --wa:#1fa855;

  --serif:"Fraunces", Georgia, "Times New Roman", serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --wrap:1240px;
  --gut:clamp(1.15rem, 4vw, 2.5rem);
  --sec:clamp(4.5rem, 9vw, 8.5rem);
  --r-sm:8px; --r:14px; --r-lg:22px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --nav-h:76px;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 16px); }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; } }
body{
  margin:0; background:var(--white); color:var(--body);
  font:400 1.0625rem/1.65 var(--sans); letter-spacing:-.006em;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility; overflow-x:hidden;
}
body.lock{ overflow:hidden; }
img,svg,video,iframe{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:var(--berry); text-decoration:none; transition:color .2s; }
a:hover{ color:var(--berry-2); }
p{ margin:0 0 1rem; }
p:last-child{ margin-bottom:0; }
ul,ol{ margin:0; padding:0; }
button{ font:inherit; color:inherit; cursor:pointer; background:none; border:0; padding:0; }
input,select,textarea{ font:inherit; color:inherit; }
strong,b{ font-weight:600; color:var(--ink); }
::selection{ background:var(--berry); color:#fff; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:4px; }

h1,h2,h3,h4,h5,h6{ margin:0; color:var(--ink); font-family:var(--serif); font-weight:400; font-optical-sizing:auto; letter-spacing:-.022em; line-height:1.08; text-wrap:balance; }
h1{ font-size:clamp(2.55rem, 5.6vw, 5.1rem); line-height:1.02; letter-spacing:-.032em; }
h2{ font-size:clamp(2rem, 3.7vw, 3.3rem); }
h3{ font-size:clamp(1.4rem, 2vw, 1.75rem); letter-spacing:-.015em; }
h4{ font-size:1.25rem; letter-spacing:-.01em; }
h5,h6{ font-family:var(--sans); font-weight:600; font-size:.98rem; letter-spacing:-.005em; line-height:1.3; }
.lead{ font-size:clamp(1.12rem, 1.45vw, 1.3rem); line-height:1.6; color:var(--body); }
.small{ font-size:.92rem; }
.muted{ color:var(--muted); }
.tnum{ font-variant-numeric:tabular-nums lining-nums; }
.sr{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:fixed; left:12px; top:-60px; z-index:1000; background:var(--ink); color:#fff; padding:.6rem 1rem; border-radius:var(--r-sm); transition:top .2s; }
.skip:focus{ top:12px; color:#fff; }

/* ---------- Layout ---------- */
.wrap{ width:100%; max-width:calc(var(--wrap) + var(--gut)*2); margin-inline:auto; padding-inline:var(--gut); }
.wrap-wide{ width:100%; max-width:calc(1480px + var(--gut)*2); margin-inline:auto; padding-inline:var(--gut); }
.sec{ padding-block:var(--sec); position:relative; }
.sec-sm{ padding-block:clamp(3rem, 6vw, 5rem); position:relative; }
.sec + .sec.same{ padding-top:0; }
.bg-white{ background:var(--white); }
.bg-bean{ background:var(--bean); }
.bg-cherry{ background:var(--cherry); color:rgba(255,255,255,.74); }
.bg-cherry h1,.bg-cherry h2,.bg-cherry h3,.bg-cherry h4,.bg-cherry h5,.bg-cherry strong,.bg-cherry b{ color:#fff; }

.grid{ display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); column-gap:clamp(1rem, 2.4vw, 2rem); row-gap:clamp(2rem, 4vw, 3rem); }
.c-12{ grid-column-end:span 12; } .c-8{ grid-column-end:span 8; } .c-7{ grid-column-end:span 7; } .c-6{ grid-column-end:span 6; }
.c-5{ grid-column-end:span 5; } .c-4{ grid-column-end:span 4; } .c-3{ grid-column-end:span 3; }
.s-2{ grid-column-start:2; } .s-7{ grid-column-start:7; } .s-8{ grid-column-start:8; } .s-9{ grid-column-start:9; }
.cols-2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,3vw,2.5rem); }
.cols-3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.25rem,2.5vw,2rem); }
.cols-4{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(1rem,2vw,1.5rem); }
.ai-end{ align-items:end; } .ai-center{ align-items:center; } .ai-start{ align-items:start; }
.sticky{ position:sticky; top:calc(var(--nav-h) + 24px); }

.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mt-5{margin-top:3rem}.mt-6{margin-top:4.5rem}
.mb-0{margin-bottom:0}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}
.row-acts{ display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1rem; }

/* Section head: heading + optional aside text/link on one baseline */
.shead{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,4fr); gap:1.5rem clamp(2rem,6vw,6rem); align-items:end; margin-bottom:clamp(2.5rem,5vw,4rem); }
.shead p{ margin:0; max-width:46ch; }
.shead.solo{ grid-template-columns:minmax(0,8fr); }
.kicker{ display:inline-flex; align-items:center; gap:.6rem; font-size:.92rem; font-weight:500; color:var(--berry); margin-bottom:1.1rem; }
.kicker::before{ content:""; width:22px; height:1.5px; background:var(--gold); }
.bg-cherry .kicker{ color:var(--gold-soft); }

/* ---------- Buttons & links ---------- */
.btn{
  --bg:var(--berry); --fg:#fff; --bd:var(--berry);
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  min-height:50px; padding:.8rem 1.55rem; border-radius:999px;
  background:var(--bg); color:var(--fg); border:1.5px solid var(--bd);
  font:600 .97rem/1 var(--sans); letter-spacing:-.005em; white-space:nowrap;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}
.btn:hover{ --bg:var(--berry-2); --bd:var(--berry-2); color:var(--fg); transform:translateY(-1px); }
.btn:active{ transform:translateY(0); }
.btn i{ font-size:1.05em; }
.btn.ghost{ --bg:transparent; --fg:var(--ink); --bd:var(--line-2); }
.btn.ghost:hover{ --bg:var(--ink); --fg:#fff; --bd:var(--ink); }
.btn.light{ --bg:#fff; --fg:var(--cherry); --bd:#fff; }
.btn.light:hover{ --bg:var(--gold-soft); --bd:var(--gold-soft); --fg:var(--cherry); }
.btn.ghost-light{ --bg:transparent; --fg:#fff; --bd:rgba(255,255,255,.35); }
.btn.ghost-light:hover{ --bg:#fff; --fg:var(--cherry); --bd:#fff; }
.btn.wa{ --bg:var(--wa); --bd:var(--wa); }
.btn.wa:hover{ --bg:#178e47; --bd:#178e47; }
.btn.sm{ min-height:42px; padding:.6rem 1.15rem; font-size:.9rem; }
.btn.lg{ min-height:56px; padding:.95rem 1.9rem; font-size:1rem; }

.tlink{ display:inline-flex; align-items:center; gap:.4rem; font-weight:600; font-size:.97rem; color:var(--ink); background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat; padding-bottom:2px; transition:background-size .35s var(--ease), color .2s; }
.tlink:hover{ background-size:100% 1.5px; color:var(--berry); }
.bg-cherry .tlink{ color:#fff; }
.bg-cherry .tlink:hover{ color:var(--gold-soft); }

/* ---------- Header ---------- */
.nav{
  position:fixed; inset:0 0 auto; z-index:100; height:var(--nav-h);
  transition:background .35s var(--ease), box-shadow .35s var(--ease), transform .45s var(--ease);
}
.nav::before{ content:""; position:absolute; inset:0; background:rgba(255,255,255,.86); backdrop-filter:saturate(160%) blur(14px); -webkit-backdrop-filter:saturate(160%) blur(14px); opacity:0; transition:opacity .35s var(--ease); }
.nav.raised::before{ opacity:1; }
.nav.raised{ box-shadow:0 1px 0 var(--line); }
.nav.away{ transform:translateY(-100%); }
.nav-in{ position:relative; height:100%; display:flex; align-items:center; gap:2rem; }
.brand{ display:flex; align-items:center; flex:none; }
.brand img{ height:30px; width:auto; }
.brand .w{ display:none; }
.menu{ display:flex; align-items:center; gap:.25rem; list-style:none; margin-inline:auto; }
.menu a{ position:relative; display:block; padding:.55rem .8rem; color:var(--ink); font-weight:500; font-size:.95rem; letter-spacing:-.01em; border-radius:999px; transition:color .2s, background .2s; }
.menu a:hover{ color:var(--berry); background:var(--berry-soft); }
.menu a.on{ color:var(--berry); }
.menu a.on::after{ content:""; position:absolute; left:50%; bottom:2px; width:4px; height:4px; margin-left:-2px; border-radius:50%; background:var(--gold); }
.nav-acts{ display:flex; align-items:center; gap:1.1rem; flex:none; }
.nav-tel{ display:inline-flex; align-items:center; gap:.45rem; color:var(--ink); font-weight:500; font-size:.93rem; white-space:nowrap; }
.nav-tel i{ color:var(--berry); }
.burger{ display:none; width:46px; height:46px; border-radius:50%; border:1px solid var(--line-2); position:relative; flex:none; }
.burger span{ position:absolute; left:14px; right:14px; height:1.5px; background:var(--ink); transition:transform .35s var(--ease), top .35s var(--ease), opacity .2s; }
.burger span:nth-child(1){ top:18px; } .burger span:nth-child(2){ top:26px; }
.nav.open .burger span:nth-child(1){ top:22px; transform:rotate(45deg); }
.nav.open .burger span:nth-child(2){ top:22px; transform:rotate(-45deg); }

/* transparent-on-dark variant (home hero) */
.nav.on-dark:not(.raised):not(.open) .brand .r{ display:none; }
.nav.on-dark:not(.raised):not(.open) .brand .w{ display:block; }
.nav.on-dark:not(.raised):not(.open) .menu a,
.nav.on-dark:not(.raised):not(.open) .nav-tel{ color:#fff; }
.nav.on-dark:not(.raised):not(.open) .nav-tel i{ color:var(--gold-soft); }
.nav.on-dark:not(.raised):not(.open) .menu a:hover{ background:rgba(255,255,255,.1); color:#fff; }
.nav.on-dark:not(.raised):not(.open) .menu a.on{ color:#fff; }
.nav.on-dark:not(.raised):not(.open) .btn{ --bg:#fff; --fg:var(--cherry); --bd:#fff; }
.nav.on-dark:not(.raised):not(.open) .burger{ border-color:rgba(255,255,255,.35); }
.nav.on-dark:not(.raised):not(.open) .burger span{ background:#fff; }

/* Mobile drawer */
.drawer{ position:fixed; inset:0; z-index:99; background:var(--white); padding:calc(var(--nav-h) + 1.5rem) var(--gut) 2rem; display:flex; flex-direction:column; overflow-y:auto; opacity:0; visibility:hidden; transform:translateY(-12px); transition:opacity .35s var(--ease), transform .45s var(--ease), visibility 0s .45s; }
.drawer.open{ opacity:1; visibility:visible; transform:none; transition:opacity .35s var(--ease), transform .45s var(--ease); }
.drawer ul{ list-style:none; border-top:1px solid var(--line); }
.drawer li{ border-bottom:1px solid var(--line); }
.drawer li a{ display:flex; justify-content:space-between; align-items:center; padding:1rem 0; font-family:var(--serif); font-size:clamp(1.6rem,6vw,2.1rem); color:var(--ink); letter-spacing:-.02em; line-height:1.15; }
.drawer li a i{ font-size:1rem; color:var(--muted); }
.drawer li a.on{ color:var(--berry); }
.drawer-foot{ margin-top:auto; padding-top:2rem; display:grid; gap:.75rem; }
.drawer-foot .btn{ width:100%; }
.drawer-meta{ display:grid; gap:.35rem; margin-top:.75rem; font-size:.93rem; color:var(--muted); }
.drawer-meta a{ color:var(--ink); }

/* ---------- Home hero (split) ---------- */
.hero{ position:relative; min-height:min(100svh, 980px); display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); background:var(--cherry); color:rgba(255,255,255,.76); overflow:hidden; }
.hero-copy{ position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; padding:calc(var(--nav-h) + clamp(2.5rem,6vw,5rem)) clamp(1.5rem,5vw,5.5rem) clamp(2.5rem,5vw,4.5rem) max(var(--gut), calc((100vw - var(--wrap)) / 2)); }
.hero h1{ color:#fff; font-size:clamp(2.6rem, 4.4vw, 4.7rem); }
.hero h1 .ln{ display:block; overflow:hidden; padding-bottom:.06em; }
.hero h1 .ln > span{ display:block; transform:translateY(105%); transition:transform 1.1s var(--ease); }
.hero.go h1 .ln > span{ transform:none; }
.hero.go h1 .ln:nth-child(2) > span{ transition-delay:.09s; }
.hero.go h1 .ln:nth-child(3) > span{ transition-delay:.18s; }
.hero-sub{ max-width:48ch; margin-top:1.75rem; font-size:clamp(1.05rem,1.3vw,1.2rem); line-height:1.65; }
.hero .row-acts{ margin-top:2.25rem; }
.hero-fade{ opacity:0; transform:translateY(14px); transition:opacity .9s var(--ease) .45s, transform .9s var(--ease) .45s; }
.hero.go .hero-fade{ opacity:1; transform:none; }
.hero-facts{ display:flex; flex-wrap:wrap; gap:1.5rem 2.75rem; margin-top:clamp(2.75rem,5vw,4.5rem); padding-top:1.75rem; border-top:1px solid var(--line-d); list-style:none; }
.hero-facts li{ display:grid; gap:.15rem; }
.hero-facts b{ font:400 clamp(1.7rem,2.4vw,2.2rem)/1 var(--serif); color:#fff; letter-spacing:-.02em; }
.hero-facts span{ font-size:.88rem; color:rgba(255,255,255,.6); }

.hero-media{ position:relative; min-height:420px; }
.hero-media .slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.6s var(--ease-io); }
.hero-media .slide.on{ opacity:1; }
.hero-media img{ width:100%; height:100%; object-fit:cover; transform:scale(1.08); transition:transform 9s linear; }
.hero-media .slide.on img{ transform:scale(1); }
.hero-media .stage::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, var(--cherry) 0%, rgba(46,12,25,0) 22%), linear-gradient(0deg, rgba(46,12,25,.55), rgba(46,12,25,0) 45%); pointer-events:none; }

/* Lot ticket — the spec card */
.lot{ position:absolute; z-index:3; left:clamp(1rem,3vw,2.5rem); bottom:clamp(1rem,3vw,2.5rem); width:min(360px, calc(100% - 2rem)); background:rgba(255,255,255,.96); color:var(--body); border-radius:var(--r); padding:1.3rem 1.4rem 1.1rem; box-shadow:0 30px 60px -20px rgba(20,4,10,.55); }
.lot-h{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding-bottom:.85rem; border-bottom:1px dashed var(--line-2); }
.lot-h b{ font:500 1.05rem/1.2 var(--serif); color:var(--ink); letter-spacing:-.01em; }
.lot-h span{ font-size:.8rem; color:var(--muted); }
.lot ul{ list-style:none; }
.lot li{ display:grid; grid-template-columns:44px 1fr auto; align-items:center; gap:.8rem; padding:.55rem 0; border-bottom:1px solid var(--line); font-size:.9rem; }
.lot li:last-child{ border-bottom:0; }
.lot .g{ font:500 1.05rem/1 var(--serif); color:var(--berry); }
.lot .s{ color:var(--muted); font-size:.82rem; }
.lot-f{ display:flex; justify-content:space-between; align-items:center; padding-top:.8rem; margin-top:.2rem; border-top:1px dashed var(--line-2); }
.lot-f a{ font-weight:600; font-size:.9rem; }
.hero-ctrl{ position:absolute; z-index:3; right:clamp(5.5rem,8vw,7rem); bottom:clamp(1.5rem,3vw,2.6rem); display:flex; gap:.45rem; }
.hero-ctrl button{ width:34px; height:4px; border-radius:2px; background:rgba(255,255,255,.3); position:relative; overflow:hidden; }
.hero-ctrl button span{ position:absolute; inset:0; background:#fff; transform-origin:left; transform:scaleX(0); }
.hero-ctrl button.on span{ animation:fill var(--dur,7s) linear forwards; }
@keyframes fill{ to{ transform:scaleX(1); } }

/* ---------- Page header (interior) ---------- */
.phead{ background:var(--bean); padding:calc(var(--nav-h) + clamp(3rem,7vw,5.5rem)) 0 clamp(3rem,6vw,4.5rem); position:relative; overflow:hidden; }
.phead .grid{ align-items:end; }
.phead h1{ font-size:clamp(2.5rem, 5vw, 4.4rem); max-width:16ch; }
.phead .lead{ margin:0; max-width:44ch; }
.crumb{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; font-size:.88rem; color:var(--muted); margin-bottom:1.5rem; }
.crumb a{ color:var(--muted); }
.crumb a:hover{ color:var(--berry); }
.crumb i{ font-size:.7rem; opacity:.7; }
.crumb span{ color:var(--ink); }
.phead-chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.75rem; }
.chip{ display:inline-flex; align-items:center; gap:.4rem; padding:.42rem .85rem; border-radius:999px; background:var(--white); border:1px solid var(--line); font-size:.86rem; font-weight:500; color:var(--ink); }
.chip i{ color:var(--berry); }
.pband{ margin-top:clamp(-3rem,-4vw,-2rem); position:relative; z-index:2; }
.pband .media{ aspect-ratio:21/8; border-radius:var(--r-lg); }

/* ---------- Media ---------- */
.media{ position:relative; overflow:hidden; border-radius:var(--r); background:var(--bean-2); }
.media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
a.media:hover img,.media.zoom:hover img{ transform:scale(1.04); }
.r-34{ aspect-ratio:3/4; } .r-45{ aspect-ratio:4/5; } .r-43{ aspect-ratio:4/3; } .r-11{ aspect-ratio:1; } .r-169{ aspect-ratio:16/10; } .r-32{ aspect-ratio:3/2; }
.cap{ display:block; margin-top:.7rem; font-size:.86rem; color:var(--muted); }

/* ---------- Intro statement ---------- */
.statement{ font:400 clamp(1.65rem, 2.9vw, 2.6rem)/1.28 var(--serif); color:var(--ink); letter-spacing:-.02em; max-width:28ch; text-wrap:pretty; }
.statement em{ font-style:normal; color:var(--berry); }
.facts{ list-style:none; border-top:1px solid var(--line); }
.facts li{ display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:baseline; padding:1.05rem 0; border-bottom:1px solid var(--line); }
.facts b{ font:400 2.1rem/1 var(--serif); color:var(--berry); min-width:3.2ch; letter-spacing:-.02em; }
.facts li > span{ color:var(--body); font-size:.98rem; }
.bg-cherry .facts{ border-color:var(--line-d); } .bg-cherry .facts li{ border-color:var(--line-d); }
.bg-cherry .facts b{ color:var(--gold-soft); } .bg-cherry .facts li > span{ color:rgba(255,255,255,.72); }

/* ---------- Grade rows (screen-size discs) ---------- */
.grades{ border-top:1px solid var(--ink); }
.grade{ display:grid; grid-template-columns:minmax(120px,1.1fr) 112px minmax(0,2.6fr) minmax(0,1.3fr) auto; gap:clamp(1rem,2.5vw,2.25rem); align-items:center; padding:1.6rem 0; border-bottom:1px solid var(--line); position:relative; transition:background .3s var(--ease); }
.grade:hover{ background:linear-gradient(90deg, rgba(126,36,68,.035), transparent 70%); }
.grade-id{ display:grid; gap:.25rem; }
.grade-id b{ font:400 clamp(2.4rem,3.6vw,3.2rem)/.9 var(--serif); color:var(--ink); letter-spacing:-.035em; font-weight:400; }
.grade-id span{ font-size:.88rem; color:var(--muted); }
.disc-box{ height:104px; display:flex; align-items:center; justify-content:center; position:relative; }
.disc{ --d:7.2; width:calc(var(--d) * 12.5px); height:calc(var(--d) * 12.5px); border-radius:50%; background:var(--bean-2) center/cover no-repeat; box-shadow:0 0 0 3px var(--white), 0 0 0 4.5px var(--berry), 0 10px 22px -10px rgba(46,12,25,.45); position:relative; transform:scale(.4); opacity:0; transition:transform .9s var(--ease), opacity .6s var(--ease), box-shadow .3s; }
.grade:hover .disc{ box-shadow:0 0 0 3px var(--white), 0 0 0 4.5px var(--gold), 0 14px 26px -10px rgba(46,12,25,.5); }
.disc.aa{ background-image:url(../img/grades/aa-beans.webp); } .disc.ab{ background-image:url(../img/grades/ab-beans.webp); } .disc.pb{ background-image:url(../img/grades/pb-beans.webp); } .disc.c{ background-image:url(../img/grades/c-beans.webp); } .disc.mh{ background-image:url(../img/grades/mh-beans.webp); }
.disc.nat{ box-shadow:0 0 0 3px var(--white), 0 0 0 4.5px var(--gold), 0 10px 22px -10px rgba(46,12,25,.45); }
.disc em{ position:absolute; left:50%; top:100%; transform:translate(-50%, 10px); font-style:normal; font-size:.74rem; color:var(--muted); white-space:nowrap; }
.is-on .disc,.no-io .disc{ transform:none; opacity:1; }
.grade-desc h3{ font-size:1.3rem; margin-bottom:.35rem; }
.grade-desc p{ font-size:.97rem; margin:0; max-width:52ch; }
.notes{ display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.75rem; }
.note-t{ font-size:.8rem; padding:.22rem .6rem; border-radius:999px; background:var(--bean); color:var(--ink); font-weight:500; }
.grade-share{ display:grid; gap:.2rem; }
.grade-share b{ font:400 1.45rem/1 var(--serif); color:var(--ink); }
.grade-share span{ font-size:.85rem; color:var(--muted); }
.grade-share .bar{ height:3px; border-radius:2px; background:var(--bean-2); margin-top:.45rem; overflow:hidden; }
.grade-share .bar i{ display:block; height:100%; width:var(--w,20%); background:var(--gold); transform-origin:left; transform:scaleX(0); transition:transform 1.2s var(--ease) .2s; }
.is-on .grade-share .bar i,.no-io .grade-share .bar i{ transform:none; }
.grade-go .btn{ white-space:nowrap; }
.grade-thumb{ display:none; }
.scale-note{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem 1.5rem; margin-top:1.25rem; font-size:.86rem; color:var(--muted); }

/* Grade cards w/ photo (grades page) */
.gcard{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(1.5rem,4vw,4rem); align-items:center; padding-block:clamp(2.5rem,5vw,4rem); border-bottom:1px solid var(--line); }
.gcard:first-child{ border-top:1px solid var(--ink); }
.gcard .media{ aspect-ratio:4/3; }
.gcard-h{ display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.gcard-h b{ font:400 clamp(3rem,6vw,5rem)/.85 var(--serif); color:var(--ink); letter-spacing:-.04em; }
.gcard-h .tag{ font-size:.85rem; font-weight:600; color:var(--berry); background:var(--berry-soft); padding:.35rem .75rem; border-radius:999px; }
.gcard h3{ margin-top:1.1rem; }
.gcard p{ margin-top:.75rem; max-width:58ch; }
.spec{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:1.5rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.spec div{ padding:.9rem 1rem .9rem 0; }
.spec div + div{ padding-left:1rem; border-left:1px solid var(--line); }
.spec dt{ font-size:.8rem; color:var(--muted); font-weight:500; }
.spec dd{ margin:.2rem 0 0; font-weight:600; color:var(--ink); font-size:.97rem; }
.gcard .row-acts{ margin-top:1.5rem; }

/* Table */
.tbl{ border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--white); }
.tbl-scroll{ overflow-x:auto; }
.tbl table{ width:100%; border-collapse:collapse; min-width:640px; }
.tbl th{ text-align:left; font-size:.84rem; font-weight:600; color:var(--muted); padding:1rem 1.25rem; background:var(--bean); border-bottom:1px solid var(--line); }
.tbl td{ padding:1.05rem 1.25rem; border-bottom:1px solid var(--line); font-size:.97rem; color:var(--body); }
.tbl tr:last-child td{ border-bottom:0; }
.tbl tbody tr{ transition:background .2s; }
.tbl tbody tr:hover{ background:rgba(238,240,230,.5); }
.tbl td.g{ font:500 1.15rem/1 var(--serif); color:var(--berry); white-space:nowrap; }
.fine{ font-size:.88rem; color:var(--muted); margin-top:1rem; max-width:80ch; }

/* ---------- Services (home) ---------- */
.svc{ display:grid; gap:1.1rem; align-content:start; }
.svc .media{ aspect-ratio:4/3; }
.svc h3{ margin-top:.4rem; }
.svc p{ margin:0; font-size:1rem; }
.svc .tlink{ margin-top:.25rem; justify-self:start; }

/* Split feature block (services/about) */
.split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,6vw,6rem); align-items:center; }
.split.flip > :first-child{ order:2; }
.split .media{ aspect-ratio:4/5; }
.split-wide .media{ aspect-ratio:16/11; }
.split h2{ margin-bottom:1.25rem; }
.svc-no{ display:inline-block; font:400 1rem/1 var(--serif); color:var(--gold); margin-bottom:1rem; }

.ticks{ list-style:none; display:grid; gap:.85rem; margin-top:1.75rem; }
.ticks li{ position:relative; padding-left:2rem; }
.ticks li::before{ content:""; position:absolute; left:0; top:.32em; width:1.15rem; height:1.15rem; border-radius:50%; background:var(--berry-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%237e2444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='m4.5 8.3 2.3 2.2 4.7-5'/%3E%3C/svg%3E") center/80% no-repeat; }
.bg-cherry .ticks li::before{ background-color:rgba(255,255,255,.1); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23e2c78f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='m4.5 8.3 2.3 2.2 4.7-5'/%3E%3C/svg%3E"); }

/* Hairline feature list (why us, values, QA) */
.flist{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(2rem,5vw,4.5rem); border-top:1px solid var(--line); }
.flist.three{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.fitem{ display:grid; grid-template-columns:auto 1fr; gap:1.1rem; padding:1.6rem 0; border-bottom:1px solid var(--line); }
.fitem i{ width:2.5rem; height:2.5rem; border-radius:50%; display:grid; place-items:center; background:var(--bean); color:var(--berry); font-size:1.1rem; transition:background .3s, color .3s; }
.fitem:hover i{ background:var(--berry); color:#fff; }
.fitem h4{ font-family:var(--sans); font-weight:600; font-size:1.02rem; letter-spacing:-.01em; line-height:1.35; margin:.45rem 0 .3rem; }
.fitem p{ margin:0; font-size:.97rem; }
.bg-cherry .flist,.bg-cherry .fitem{ border-color:var(--line-d); }
.bg-cherry .fitem i{ background:rgba(255,255,255,.08); color:var(--gold-soft); }
.bg-cherry .fitem:hover i{ background:var(--gold-soft); color:var(--cherry); }

/* Process steps (genuine sequence) */
.steps{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); counter-reset:st; position:relative; }
.step{ position:relative; padding:2rem clamp(1rem,2vw,1.75rem) 0 0; }
.step::before{ content:""; position:absolute; left:0; right:0; top:0; height:1px; background:var(--line-d); }
.step::after{ content:""; position:absolute; left:0; top:-4px; width:9px; height:9px; border-radius:50%; background:var(--gold); }
.step b{ display:block; font:400 3.4rem/1 var(--serif); color:rgba(255,255,255,.14); letter-spacing:-.04em; margin-bottom:1rem; }
.step h4{ color:#fff; margin-bottom:.5rem; }
.step p{ font-size:.97rem; color:rgba(255,255,255,.66); margin:0; max-width:30ch; }
.steps.on-light .step::before{ background:var(--line-2); }
.steps.on-light .step b{ color:var(--bean-3); }
.steps.on-light .step h4{ color:var(--ink); }
.steps.on-light .step p{ color:var(--body); }

/* Stats */
.stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stat{ padding:2rem 1.5rem 2rem 0; }
.stat + .stat{ padding-left:1.5rem; border-left:1px solid var(--line); }
.stat b{ display:block; font:400 clamp(2.6rem,4.5vw,3.9rem)/1 var(--serif); color:var(--ink); letter-spacing:-.04em; }
.stat b .suf{ color:var(--gold); }
.stat > span{ display:block; margin-top:.6rem; font-size:.93rem; color:var(--muted); }

/* Mission / vision cards */
.mv{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1rem,2vw,1.5rem); }
.mv-c{ padding:clamp(1.75rem,3.5vw,2.75rem); border-radius:var(--r-lg); background:var(--white); border:1px solid var(--line); }
.mv-c.dark{ background:var(--cherry); border-color:var(--cherry); color:rgba(255,255,255,.74); }
.mv-c.dark h3{ color:#fff; }
.mv-c i{ font-size:1.5rem; color:var(--berry); }
.mv-c.dark i{ color:var(--gold-soft); }
.mv-c h3{ margin:1.25rem 0 .75rem; }
.mv-c p{ margin:0; font-size:1.02rem; }

/* Quote band */
.pull{ display:grid; grid-template-columns:auto 1fr; gap:clamp(1.5rem,4vw,3rem); align-items:start; }
.pull-mark{ font:400 clamp(6rem,10vw,9rem)/.7 var(--serif); color:var(--gold); }
.pull blockquote{ margin:0; font:400 clamp(1.8rem,3.6vw,3.4rem)/1.18 var(--serif); color:#fff; letter-spacing:-.025em; max-width:30ch; text-wrap:balance; }
.pull cite{ display:block; margin-top:1.5rem; font-style:normal; font-size:.93rem; color:rgba(255,255,255,.6); }

/* Gallery — home mosaic */
.mosaic{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-auto-rows:clamp(110px,12vw,170px); gap:clamp(.6rem,1.2vw,1rem); }
.mosaic .media{ border-radius:var(--r); }
.mosaic .m1{ grid-column:span 5; grid-row:span 3; }
.mosaic .m2{ grid-column:span 4; grid-row:span 2; }
.mosaic .m3{ grid-column:span 3; grid-row:span 2; }
.mosaic .m4{ grid-column:span 3; grid-row:span 1; }
.mosaic .m5{ grid-column:span 4; grid-row:span 1; }

/* Gallery page — masonry */
.masonry{ columns:3 300px; column-gap:clamp(.75rem,1.4vw,1.1rem); }
.gi{ break-inside:avoid; margin-bottom:clamp(.75rem,1.4vw,1.1rem); border-radius:var(--r); overflow:hidden; cursor:zoom-in; position:relative; background:var(--bean-2); display:block; width:100%; }
.gi img{ width:100%; transition:transform 1s var(--ease), filter .4s; }
.gi:hover img{ transform:scale(1.035); }
.gi::after{ content:"\F52A"; font-family:"bootstrap-icons"; position:absolute; right:.8rem; bottom:.8rem; width:2.4rem; height:2.4rem; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.92); color:var(--ink); opacity:0; transform:translateY(6px); transition:opacity .3s, transform .3s var(--ease); }
.gi:hover::after,.gi:focus-visible::after{ opacity:1; transform:none; }
.lightbox{ position:fixed; inset:0; z-index:300; background:rgba(20,6,12,.94); display:grid; place-items:center; opacity:0; visibility:hidden; transition:opacity .3s, visibility 0s .3s; padding:4rem 1rem; }
.lightbox.show{ opacity:1; visibility:visible; transition:opacity .3s; }
.lightbox img{ max-height:84vh; max-width:min(1200px,92vw); width:auto; border-radius:var(--r-sm); }
.lightbox button{ position:absolute; width:50px; height:50px; border-radius:50%; background:rgba(255,255,255,.1); color:#fff; display:grid; place-items:center; font-size:1.2rem; transition:background .2s; }
.lightbox button:hover{ background:rgba(255,255,255,.22); }
.lb-x{ top:1.25rem; right:1.25rem; } .lb-p{ left:1.25rem; top:50%; margin-top:-25px; } .lb-n{ right:1.25rem; top:50%; margin-top:-25px; }
.lb-c{ position:absolute; bottom:1.4rem; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.6); font-size:.88rem; }

/* Editorial (SEO) prose */
.prose{ columns:2 340px; column-gap:clamp(2rem,5vw,4.5rem); }
.prose p{ break-inside:avoid; font-size:1.02rem; }
.prose a{ color:var(--ink); background:linear-gradient(var(--gold),var(--gold)) 0 100%/100% 1px no-repeat; }
.prose a:hover{ color:var(--berry); background-image:linear-gradient(var(--berry),var(--berry)); }

/* CTA band */
.cta{ position:relative; overflow:hidden; border-radius:var(--r-lg); background:var(--cherry); color:rgba(255,255,255,.74); padding:clamp(2.75rem,6vw,5rem); display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:2.5rem; align-items:end; isolation:isolate; }
.cta::before{ content:""; position:absolute; z-index:-1; right:-8%; top:-30%; width:60%; aspect-ratio:1; border-radius:50%; background:radial-gradient(closest-side, rgba(149,43,81,.55), rgba(149,43,81,0)); }
.cta::after{ content:""; position:absolute; z-index:-1; right:clamp(1.5rem,4vw,3.5rem); top:clamp(1.5rem,4vw,3rem); width:clamp(70px,9vw,120px); aspect-ratio:1; background:url(../img/logo/coronet-white-mark.png) center/contain no-repeat; opacity:.08; }
.cta h2{ color:#fff; max-width:17ch; }
.cta p{ margin:1rem 0 0; max-width:46ch; }
.cta .row-acts{ justify-content:flex-end; }
.sec-cta{ padding-block:0 var(--sec); }

/* ---------- FAQ accordion ---------- */
.acc-group{ border-top:1px solid var(--ink); }
.acc{ border-bottom:1px solid var(--line); }
.acc-q{ width:100%; display:grid; grid-template-columns:2.6rem 1fr auto; gap:1rem; align-items:center; padding:1.45rem 0; text-align:left; font:500 clamp(1.1rem,1.6vw,1.3rem)/1.35 var(--serif); color:var(--ink); letter-spacing:-.01em; transition:color .2s; }
.acc-q:hover{ color:var(--berry); }
.acc-n{ font:400 .95rem/1 var(--serif); color:var(--gold); }
.qi{ width:2.3rem; height:2.3rem; border-radius:50%; border:1px solid var(--line-2); display:grid; place-items:center; font-size:.95rem; transition:transform .4s var(--ease), background .3s, color .3s, border-color .3s; }
.acc.open .qi{ transform:rotate(45deg); background:var(--berry); color:#fff; border-color:var(--berry); }
.acc-a{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.acc-a-in{ padding:0 3.5rem 1.6rem 3.6rem; max-width:72ch; }

/* Help panel */
.help{ position:relative; overflow:hidden; border-radius:var(--r-lg); background:var(--cherry); color:rgba(255,255,255,.72); padding:clamp(1.75rem,3vw,2.4rem); isolation:isolate; }
.help::after{ content:""; position:absolute; z-index:-1; right:-30px; bottom:-30px; width:170px; aspect-ratio:1; background:url(../img/logo/coronet-white-mark.png) center/contain no-repeat; opacity:.06; }
.help h3{ color:#fff; font-size:1.65rem; }
.help > p{ margin:.75rem 0 0; font-size:.98rem; }
.help-rows{ display:grid; gap:.5rem; margin-top:1.5rem; }
.help-row{ display:grid; grid-template-columns:auto 1fr auto; gap:.9rem; align-items:center; padding:.85rem 1rem; border-radius:var(--r); background:rgba(255,255,255,.06); color:#fff; transition:background .25s; }
.help-row:hover{ background:rgba(255,255,255,.12); color:#fff; }
.help-row > i:first-child{ width:2.3rem; height:2.3rem; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.1); color:var(--gold-soft); }
.help-row.wa > i:first-child{ background:var(--wa); color:#fff; }
.help-row b{ display:block; font-weight:600; font-size:.95rem; color:#fff; }
.help-row em{ display:block; font-style:normal; font-size:.86rem; color:rgba(255,255,255,.6); }
.help-row .bi-arrow-up-right{ color:rgba(255,255,255,.4); font-size:.9rem; }
.hours{ display:grid; margin-top:1.5rem; border-top:1px solid var(--line-d); }
.hours div{ display:flex; justify-content:space-between; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--line-d); font-size:.94rem; }
.hours b{ color:#fff; font-weight:600; }
.hours b.off{ color:var(--gold-soft); }
.help .btn{ margin-top:1.5rem; }
.help-note{ display:flex; align-items:center; gap:.5rem; margin-top:1.1rem; font-size:.86rem; color:rgba(255,255,255,.55); }

/* Contact tiles */
.ctiles{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ctile{ padding:1.75rem 1.5rem 1.75rem 0; }
.ctile + .ctile{ padding-left:1.5rem; border-left:1px solid var(--line); }
.ctile i{ font-size:1.3rem; color:var(--berry); }
.ctile h5{ margin:1rem 0 .4rem; }
.ctile p{ margin:0; font-size:.96rem; }
.ctile a{ color:var(--ink); }
.ctile a:hover{ color:var(--berry); }

/* ---------- Forms ---------- */
.form-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.5rem,3.5vw,2.75rem); box-shadow:0 30px 70px -40px rgba(46,12,25,.25); }
.form-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem 1.25rem; }
.form-grid .full{ grid-column:1 / -1; }
.fld label{ display:block; font-size:.88rem; font-weight:600; color:var(--ink); margin-bottom:.45rem; }
.fld label .req{ color:var(--berry); }
.in{ width:100%; min-height:52px; padding:.85rem 1rem; border-radius:var(--r-sm); border:1px solid var(--line-2); background:var(--white); color:var(--ink); font-size:1rem; transition:border-color .2s, box-shadow .2s, background .2s; appearance:none; -webkit-appearance:none; }
.in::placeholder{ color:#a99da2; }
.in:hover{ border-color:rgba(35,21,27,.32); }
.in:focus{ outline:none; border-color:var(--berry); box-shadow:0 0 0 4px rgba(126,36,68,.12); }
select.in{ background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2323151b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='m4 6 4 4 4-4'/%3E%3C/svg%3E") right 1rem center/14px no-repeat; padding-right:2.6rem; }
textarea.in{ min-height:140px; resize:vertical; }
.consent{ display:flex; align-items:flex-start; gap:.65rem; font-size:.92rem; color:var(--body); cursor:pointer; }
.consent input{ width:1.1rem; height:1.1rem; margin-top:.2rem; accent-color:var(--berry); flex:none; }
.form-acts{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem; margin-top:1.75rem; }
.form-acts .fine{ margin:0; max-width:40ch; }
.form-ok{ display:none; align-items:center; gap:.6rem; margin-top:1.1rem; padding:.85rem 1rem; border-radius:var(--r-sm); background:#e8f6ee; color:#146b3a; font-weight:500; font-size:.93rem; }
.form-ok i{ font-size:1.1rem; }
.form-ok a,.form-err a{ color:inherit; font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.form-ok:focus{ outline:none; }
.form-err{ display:none; align-items:flex-start; gap:.6rem; margin-top:1.1rem; padding:.85rem 1rem; border-radius:var(--r-sm); background:#fdecec; color:#9c1126; font-weight:500; font-size:.93rem; }
.form-ok i,.form-err i{ flex:none; margin-top:.1rem; }
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; pointer-events:none; }
.btn.busy{ opacity:.75; cursor:progress; }
.btn.busy i{ display:inline-block; animation:spin 1s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .btn.busy i{ animation:none; } }

/* Map */
.map{ border-radius:var(--r-lg); overflow:hidden; height:clamp(320px,40vw,460px); background:var(--bean-2); }
.map iframe{ width:100%; height:100%; border:0; filter:grayscale(.35) contrast(1.02); }

/* ---------- Legal / policy ---------- */
.policy-wrap{ display:grid; grid-template-columns:240px minmax(0,1fr); gap:clamp(2rem,6vw,5.5rem); align-items:start; }
.toc{ position:sticky; top:calc(var(--nav-h) + 24px); font-size:.92rem; }
.toc b{ display:block; font-weight:600; color:var(--ink); margin-bottom:.75rem; }
.toc ol{ list-style:none; border-left:1px solid var(--line); }
.toc a{ display:block; padding:.4rem 0 .4rem 1rem; margin-left:-1px; border-left:1.5px solid transparent; color:var(--muted); line-height:1.35; transition:color .2s, border-color .2s; }
.toc a:hover{ color:var(--ink); }
.toc a.on{ color:var(--berry); border-left-color:var(--berry); }
.policy{ max-width:72ch; }
.policy > p,.policy li{ font-size:1.02rem; }
.policy h2{ font-size:clamp(1.5rem,2.3vw,1.95rem); margin:3rem 0 1rem; display:flex; gap:.9rem; align-items:baseline; scroll-margin-top:calc(var(--nav-h) + 20px); }
.policy h2 .no{ font-size:.95rem; color:var(--gold); flex:none; }
.policy ul,.policy ol{ padding-left:1.25rem; display:grid; gap:.6rem; margin:0 0 1.25rem; }
.policy li::marker{ color:var(--berry); }
.policy a{ text-decoration:underline; text-decoration-color:rgba(126,36,68,.35); text-underline-offset:3px; }
.pol-meta{ display:inline-flex; align-items:center; gap:.5rem; font-size:.88rem; font-weight:500; color:var(--ink); background:var(--bean); padding:.45rem .9rem; border-radius:999px; margin-bottom:1.75rem; }
.pol-meta i{ color:var(--berry); }
.pol-box{ margin:1.5rem 0; padding:1.25rem 1.4rem; border-radius:var(--r); background:var(--bean); border-left:3px solid var(--gold); font-size:.98rem; }
.policy table{ width:100%; border-collapse:collapse; margin:1rem 0 1.5rem; font-size:.95rem; }
.policy th,.policy td{ text-align:left; padding:.75rem .9rem; border-bottom:1px solid var(--line); vertical-align:top; }
.policy th{ background:var(--bean); color:var(--ink); font-weight:600; }

/* ---------- Footer ---------- */
.foot{ background:var(--cherry); color:rgba(255,255,255,.62); padding-top:clamp(4rem,7vw,6rem); position:relative; overflow:hidden; }
.foot a{ color:rgba(255,255,255,.78); }
.foot a:hover{ color:#fff; }
.foot-top{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:2.5rem; align-items:end; padding-bottom:clamp(3rem,5vw,4rem); border-bottom:1px solid var(--line-d); }
.foot-top > *{ min-width:0; }
.foot-top h3{ color:#fff; font-size:clamp(1.6rem,2.6vw,2.3rem); max-width:22ch; }
.news{ display:flex; gap:.5rem; padding:.4rem; border-radius:999px; background:rgba(255,255,255,.07); border:1px solid var(--line-d); transition:border-color .2s; }
.news:focus-within{ border-color:rgba(226,199,143,.6); }
.news input{ flex:1; min-width:0; width:100%; background:none; border:0; outline:none; color:#fff; padding:0 1.1rem; font-size:.97rem; }
.news input::placeholder{ color:rgba(255,255,255,.45); }
.news .btn{ min-height:46px; }
.news-wrap .form-ok{ background:rgba(31,168,85,.15); color:#9fe3b9; }
.news-wrap .form-err{ background:rgba(220,60,60,.15); color:#f5b5b5; }
.news-wrap .fine{ color:rgba(255,255,255,.45); margin-top:.75rem; font-size:.84rem; }
.foot-grid{ display:grid; grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)); gap:2.5rem; padding-block:clamp(3rem,5vw,4rem); }
.foot-logo{ height:62px; width:auto; }
.foot-brand p{ margin:1.25rem 0 0; max-width:36ch; font-size:.95rem; }
.foot h6{ color:#fff; font-size:.93rem; margin-bottom:1.1rem; }
.foot ul{ list-style:none; display:grid; gap:.6rem; font-size:.95rem; }
.fmeta li{ display:grid; grid-template-columns:1.1rem 1fr; gap:.65rem; }
.fmeta i{ color:var(--gold-soft); margin-top:.2rem; font-size:.9rem; }
.soc{ display:flex; gap:.5rem; margin-top:1.5rem; }
.soc a{ width:2.5rem; height:2.5rem; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.07); color:#fff; transition:background .2s, color .2s; }
.soc a:hover{ background:#fff; color:var(--cherry); }
.soc a.wa{ background:var(--wa); }
.soc a.wa:hover{ background:#fff; color:var(--wa); }
.foot-word{ font:400 clamp(4rem,15.5vw,15rem)/.78 var(--serif); letter-spacing:-.055em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.13); white-space:nowrap; user-select:none; margin-bottom:-.12em; text-align:center; }
.foot-bottom{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:.75rem 2rem; padding-block:1.5rem 1.75rem; border-top:1px solid var(--line-d); font-size:.86rem; }
.foot-bottom nav{ display:flex; flex-wrap:wrap; gap:.4rem 1.25rem; }
.foot-bottom .credit{ flex-basis:100%; text-align:center; padding-top:1rem; margin-top:.25rem; border-top:1px solid var(--line-d); font-size:.82rem; opacity:.85; }
.credit a{ color:var(--gold-soft); font-weight:600; }
.credit a:hover{ color:#fff; }

/* ---------- Floating: WhatsApp, to-top, cookie ---------- */
.wa-float{ position:fixed; right:clamp(1rem,2.5vw,1.75rem); bottom:clamp(1rem,2.5vw,1.75rem); z-index:150; width:58px; height:58px; border-radius:50%; background:var(--wa); color:#fff; display:grid; place-items:center; font-size:1.6rem; box-shadow:0 14px 30px -10px rgba(31,168,85,.65); transition:transform .3s var(--ease), background .2s; }
.wa-float:hover{ color:#fff; transform:translateY(-2px) scale(1.04); }
.wa-float .wa-tip{ position:absolute; right:calc(100% + .75rem); top:50%; transform:translate(6px,-50%); background:var(--ink); color:#fff; font-size:.84rem; font-weight:500; padding:.45rem .8rem; border-radius:var(--r-sm); white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .25s, transform .25s var(--ease); }
.wa-float:hover .wa-tip{ opacity:1; transform:translate(0,-50%); }
.wa-float.chat-open .wa-tip{ display:none; }
.wa-float.chat-open i::before{ content:"\F659"; }
.wa-panel{ position:fixed; right:clamp(1rem,2.5vw,1.75rem); bottom:calc(clamp(1rem,2.5vw,1.75rem) + 72px); z-index:151; width:min(360px, calc(100vw - 2rem)); background:var(--white); border-radius:var(--r-lg); overflow:hidden; box-shadow:0 30px 80px -20px rgba(20,4,10,.45); opacity:0; visibility:hidden; transform:translateY(12px) scale(.98); transform-origin:bottom right; transition:opacity .3s var(--ease), transform .35s var(--ease), visibility 0s .35s; }
.wa-panel.open{ opacity:1; visibility:visible; transform:none; transition:opacity .3s var(--ease), transform .35s var(--ease); }
.wa-head{ display:flex; align-items:center; gap:.8rem; padding:1rem 1.1rem; background:#075e54; color:#fff; }
.wa-ava{ width:2.6rem; height:2.6rem; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.15); font-size:1.25rem; }
.wa-who{ flex:1; display:grid; line-height:1.3; }
.wa-who b{ color:#fff; font-size:.97rem; }
.wa-who em{ font-style:normal; font-size:.8rem; opacity:.75; }
.wa-close{ width:2rem; height:2rem; border-radius:50%; color:#fff; display:grid; place-items:center; }
.wa-close:hover{ background:rgba(255,255,255,.15); }
.wa-body{ padding:1.1rem; background:#ece5dd; display:grid; gap:.75rem; }
.wa-bubble{ background:#fff; border-radius:0 12px 12px 12px; padding:.75rem .9rem; font-size:.92rem; color:var(--ink); box-shadow:0 1px 1px rgba(0,0,0,.06); }
.wa-form{ display:grid; gap:.5rem; }
.wa-in{ width:100%; border:0; border-radius:10px; padding:.75rem .9rem; font-size:.93rem; background:#fff; resize:none; }
.wa-in:focus{ outline:2px solid var(--wa); }
.wa-send{ display:flex; align-items:center; justify-content:center; gap:.5rem; min-height:46px; border-radius:999px; background:var(--wa); color:#fff; font-weight:600; font-size:.93rem; }
.wa-send:hover{ background:#178e47; }
.wa-note{ display:flex; gap:.4rem; font-size:.76rem; color:#5b6b63; }
.to-top{ position:fixed; right:clamp(1rem,2.5vw,1.75rem); bottom:calc(clamp(1rem,2.5vw,1.75rem) + 70px); z-index:140; width:44px; height:44px; border-radius:50%; background:var(--white); color:var(--ink); border:1px solid var(--line-2); display:grid; place-items:center; box-shadow:0 10px 24px -12px rgba(0,0,0,.3); opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .3s, transform .3s var(--ease), visibility 0s .3s; }
.to-top.on{ opacity:1; visibility:visible; transform:none; transition:opacity .3s, transform .3s var(--ease); }
.to-top:hover{ background:var(--ink); color:#fff; }
body.chat .to-top{ opacity:0; visibility:hidden; }
.ck-bar{ position:fixed; left:clamp(1rem,2.5vw,1.75rem); bottom:clamp(1rem,2.5vw,1.75rem); z-index:160; width:min(440px, calc(100vw - 2rem - 70px)); background:var(--ink); color:rgba(255,255,255,.75); border-radius:var(--r-lg); padding:1.2rem 1.25rem; display:grid; gap:1rem; font-size:.88rem; line-height:1.55; box-shadow:0 30px 60px -20px rgba(0,0,0,.45); opacity:0; transform:translateY(16px); transition:opacity .4s var(--ease), transform .45s var(--ease); }
.ck-bar.show{ opacity:1; transform:none; }
.ck-bar a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }
.ck-acts{ display:flex; gap:.5rem; }
.ck-btn{ flex:1; min-height:42px; border-radius:999px; font-weight:600; font-size:.88rem; }
.ck-btn.no{ border:1px solid rgba(255,255,255,.25); color:#fff; }
.ck-btn.no:hover{ background:rgba(255,255,255,.08); }
.ck-btn.ok{ background:#fff; color:var(--ink); }
.ck-btn.ok:hover{ background:var(--gold-soft); }

/* ---------- Scroll reveal (restrained: opacity + small lift) ---------- */
html:not(.no-js) [data-reveal]{ opacity:0; transform:translateY(18px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
html:not(.no-js) [data-reveal].is-on{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ html:not(.no-js) [data-reveal]{ opacity:1; transform:none; } .disc,.grade-share .bar i{ transform:none !important; opacity:1 !important; } .hero h1 .ln > span,.hero-fade{ transform:none !important; opacity:1 !important; } }

/* ============================================================================
   Responsive
   ============================================================================ */
@media (max-width:1180px){
  .menu,.nav-tel{ display:none; }
  .burger{ display:block; }
  .nav-in{ justify-content:space-between; }
  .nav-acts{ margin-left:auto; }
  .grade{ grid-template-columns:minmax(100px,1fr) 100px minmax(0,2.4fr) minmax(0,1.2fr); }
  .grade-go{ grid-column:3 / -1; }
}
@media (min-width:1181px){ .drawer{ display:none; } }

@media (max-width:991px){
  :root{ --nav-h:68px; }
  .hero{ grid-template-columns:1fr; min-height:0; }
  .hero-copy{ padding:calc(var(--nav-h) + 3rem) var(--gut) 2.75rem; }
  .hero-media{ min-height:0; aspect-ratio:4/3.4; }
  .hero-media .stage::after{ background:linear-gradient(180deg, var(--cherry) 0%, rgba(46,12,25,0) 25%), linear-gradient(0deg, rgba(46,12,25,.4), rgba(46,12,25,0) 40%); }
  .shead{ grid-template-columns:1fr; align-items:start; }
  .grid > [class*="c-"]{ grid-column:1 / -1; }
  .lot{ left:auto; right:var(--gut); }
  .split,.split-wide{ grid-template-columns:1fr; }
  .split.flip > :first-child{ order:0; }
  .split .media{ aspect-ratio:4/3; }
  .cols-3{ grid-template-columns:1fr 1fr; }
  .cols-3 > :last-child:nth-child(odd){ grid-column:1 / -1; }
  .steps{ grid-template-columns:1fr 1fr; row-gap:2.5rem; }
  .stats,.ctiles{ grid-template-columns:1fr 1fr; }
  .stat:nth-child(3),.ctile:nth-child(3){ padding-left:0; border-left:0; }
  .stat:nth-child(n+3),.ctile:nth-child(n+3){ border-top:1px solid var(--line); }
  .flist.three{ grid-template-columns:1fr 1fr; }
  .gcard{ grid-template-columns:1fr; }
  .cta{ grid-template-columns:1fr; align-items:start; }
  .cta .row-acts{ justify-content:flex-start; }
  .foot-top{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
  .foot-brand{ grid-column:1 / -1; }
  .policy-wrap{ grid-template-columns:1fr; }
  .toc{ display:none; }
  .mosaic{ grid-template-columns:repeat(6,minmax(0,1fr)); grid-auto-rows:clamp(110px,22vw,190px); }
  .mosaic .m1{ grid-column:span 6; grid-row:span 2; }
  .mosaic .m2,.mosaic .m3{ grid-column:span 3; grid-row:span 2; }
  .mosaic .m4,.mosaic .m5{ grid-column:span 3; grid-row:span 1; }
  .mv{ grid-template-columns:1fr; }
}

@media (max-width:760px){
  body{ font-size:1rem; }
  .grade{ grid-template-columns:76px 1fr; gap:.4rem 1.1rem; padding:1.5rem 0; align-items:start; }
  .grade-id{ grid-column:1; grid-row:1 / span 2; }
  .grade-id b{ font-size:2.4rem; }
  .disc-box{ grid-column:1; grid-row:3; height:auto; justify-content:flex-start; padding-bottom:1.4rem; }
  .disc{ width:calc(var(--d) * 8px); height:calc(var(--d) * 8px); }
  .disc em{ left:0; transform:translate(0,6px); }
  .grade-desc{ grid-column:2; grid-row:1 / span 2; }
  .grade-share{ grid-column:2; grid-row:3; margin-top:.5rem; }
  .grade-go{ grid-column:2; grid-row:4; margin-top:.75rem; }
  .flist,.flist.three{ grid-template-columns:1fr; }
  .cols-2,.cols-3,.cols-4{ grid-template-columns:1fr; }
  .cols-3 > :last-child:nth-child(odd){ grid-column:auto; }
  .form-grid{ grid-template-columns:1fr; }
  .pull{ grid-template-columns:1fr; gap:0; }
  .pull-mark{ font-size:5.5rem; }
  .pband .media{ aspect-ratio:4/3; }
  .spec{ grid-template-columns:1fr 1fr 1fr; }
  .spec div{ padding-right:.6rem; } .spec div + div{ padding-left:.6rem; }
  .acc-q{ grid-template-columns:1.9rem 1fr auto; }
  .acc-a-in{ padding:0 0 1.4rem 2.9rem; }
  .ck-bar{ width:calc(100vw - 2rem - 70px); }
  .lot{ position:relative; right:auto; left:auto; bottom:auto; margin:-2rem auto 0; width:calc(100% - 2*var(--gut)); }
  .lot li{ padding:.45rem 0; }
  .hero-media{ display:flex; flex-direction:column; aspect-ratio:auto; }
  .hero-media .stage{ position:relative; aspect-ratio:1/1; }
  .hero-ctrl{ top:auto; bottom:auto; }
  .hero{ padding-bottom:2rem; }
}
@media (min-width:761px){ .hero-media .stage{ position:absolute; inset:0; } }

@media (max-width:520px){
  .stats,.ctiles{ grid-template-columns:1fr; }
  .stat,.stat + .stat,.ctile,.ctile + .ctile{ padding:1.5rem 0; border-left:0; }
  .stat + .stat,.ctile + .ctile{ border-top:1px solid var(--line); }
  .steps{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr; }
  .hero-facts{ gap:1.25rem 2rem; }
  .nav-acts .btn{ display:none; }
  .row-acts .btn{ flex:1 1 auto; }
  .spec{ grid-template-columns:1fr; }
  .spec div + div{ padding-left:0; border-left:0; border-top:1px solid var(--line); }
  .help-row{ grid-template-columns:auto 1fr; }
  .help-row .bi-arrow-up-right{ display:none; }
}

/* ---------- v5.1: licence credential, markets, QA photo pair ---------- */
.cred{ display:grid; grid-template-columns:auto 1fr; gap:.25rem 1rem; margin-top:2rem; padding:1.25rem 1.4rem; border-radius:var(--r); background:var(--bean); border-left:3px solid var(--gold); }
.cred > i{ font-size:1.5rem; color:var(--berry); grid-row:1 / span 2; }
.cred dl{ margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem 1.5rem; }
.cred dt{ font-size:.8rem; color:var(--muted); font-weight:500; }
.cred dd{ margin:.1rem 0 0; font-weight:600; color:var(--ink); font-size:.97rem; }
.cred p{ grid-column:2; margin:.9rem 0 0; font-size:.88rem; color:var(--muted); }
.markets{ list-style:none; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.markets li{ padding:1.6rem 1.25rem 1.6rem 0; display:grid; gap:.3rem; }
.markets li + li{ padding-left:1.25rem; border-left:1px solid var(--line); }
.markets b{ font:400 clamp(1.5rem,2.2vw,1.9rem)/1.1 var(--serif); color:var(--ink); letter-spacing:-.02em; }
.markets span{ font-size:.88rem; color:var(--muted); }
.markets li:nth-child(-n+2) span{ color:var(--berry); font-weight:600; }
.qa-pics{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:clamp(.75rem,1.5vw,1.1rem); align-items:end; }
.qa-pics figure{ margin:0; }
@media (max-width:991px){ .markets{ grid-template-columns:repeat(3,minmax(0,1fr)); } .markets li:nth-child(4){ padding-left:0; border-left:0; } .markets li:nth-child(n+4){ border-top:1px solid var(--line); } }
@media (max-width:520px){ .markets{ grid-template-columns:1fr 1fr; } .markets li,.markets li + li{ padding:1.2rem 0; border-left:0; } .markets li:nth-child(even){ padding-left:1rem; border-left:1px solid var(--line); } .markets li:nth-child(n+3){ border-top:1px solid var(--line); } .cred dl{ grid-template-columns:1fr; } }
@media (min-width:1100px){ .hero-facts{ display:grid; grid-template-columns:repeat(3,max-content); gap:1rem 2.25rem; } }

/* ---------- v5.2: Resources ---------- */
.docs{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1rem,2.4vw,1.75rem); }
.docs.one{ grid-template-columns:minmax(0,1fr); max-width:820px; }
.doc{ display:grid; grid-template-columns:150px minmax(0,1fr); gap:clamp(1.1rem,2.4vw,1.75rem); padding:clamp(1.1rem,2.4vw,1.6rem); border:1px solid var(--line); border-radius:var(--r-lg); background:var(--white); transition:border-color .3s, box-shadow .3s; }
.doc:hover{ border-color:rgba(184,137,58,.5); box-shadow:0 24px 50px -36px rgba(46,12,25,.45); }
.doc-cover{ display:block; align-self:start; border-radius:var(--r-sm); overflow:hidden; box-shadow:0 0 0 1px var(--line), 0 12px 24px -14px rgba(46,12,25,.45); background:var(--bean-2); transition:transform .4s var(--ease); }
.doc:hover .doc-cover{ transform:translateY(-3px) rotate(-.6deg); }
.doc-cover img{ width:100%; height:auto; }
.doc-body h3{ font-size:clamp(1.3rem,1.8vw,1.55rem); }
.doc-body > p{ margin:.6rem 0 0; font-size:.97rem; }
.doc-meta{ list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; margin:1rem 0 0; }
.doc-meta li{ font-size:.8rem; font-weight:500; padding:.25rem .65rem; border-radius:999px; background:var(--bean); color:var(--ink); }
.doc-meta li.ok{ background:#e8f6ee; color:#146b3a; }
.doc-meta li.ok i{ margin-right:.2rem; }
.doc-note{ font-size:.86rem !important; color:var(--muted); }
.doc .row-acts{ margin-top:1.25rem; }
.pol-links{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); column-gap:clamp(2rem,5vw,4.5rem); }
.pol-links a{ display:grid; grid-template-columns:auto 1fr auto; gap:1rem; align-items:center; padding:1.3rem 0; border-bottom:1px solid var(--line); color:var(--ink); }
.pol-links a > i:first-child{ width:2.5rem; height:2.5rem; border-radius:50%; display:grid; place-items:center; background:var(--bean); color:var(--berry); transition:background .3s, color .3s; }
.pol-links a:hover > i:first-child{ background:var(--berry); color:#fff; }
.pol-links b{ display:block; font-weight:600; }
.pol-links em{ display:block; font-style:normal; font-size:.9rem; color:var(--muted); }
.pol-links .bi-arrow-right{ color:var(--muted); transition:transform .3s var(--ease), color .2s; }
.pol-links a:hover .bi-arrow-right{ transform:translateX(4px); color:var(--berry); }
@media (max-width:1360px) and (min-width:1181px){ .nav-tel{ display:none; } .menu a{ padding:.55rem .65rem; } }
@media (max-width:991px){ .docs{ grid-template-columns:1fr; } }
@media (max-width:600px){ .doc{ grid-template-columns:96px minmax(0,1fr); } .pol-links{ grid-template-columns:1fr; } .doc .row-acts .btn{ flex:0 0 auto; } }
.nav-in > nav{ margin-inline:auto; }
