/* ============================================================
   Higginson James — brand stylesheet
   Colours are sampled directly from the real logo files (mark
   teal + wordmark navy) rather than approximated. Body/UI
   typeface is Ranade (loaded from Fontshare); Newsreader is a
   companion display serif for headings.

   NOTE ON RANADE: this links Fontshare's hosted CDN copy, which
   needs no files and works as soon as this site is live. If you'd
   rather self-host Ranade (no third-party dependency), send over
   the .woff2 files and swap this @import for local @font-face
   rules pointing at them instead — the font-family name below
   ("Ranade") doesn't need to change either way.
   ============================================================ */

@import url('https://api.fontshare.com/v2/css?f[]=ranade@200,300,400,500,600,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,500&display=swap');

:root{
  --ink:#092238;         /* wordmark navy, sampled from the logo */
  --muted:#67768c;
  --paper:#f4f6f5;
  --paper-raised:#ffffff;
  --rule:#d7dedc;
  --primary:#3b6d6f;     /* mark teal, sampled from the logo */
  --primary-deep:#294e50;
  --primary-tint:#dce5e5;
  --brass:#a97c46;
  --brass-soft:#f2e8da;
  --focus:#3b6d6f;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Ranade', ui-sans-serif, system-ui, sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:var(--primary-deep); }
::selection{ background:var(--primary-tint); }
:focus-visible{ outline:2px solid var(--focus); outline-offset:3px; }

.wrap{
  max-width:1120px;
  margin:0 auto;
  padding:0 28px;
}

h1,h2,h3,h4{
  font-family:'Newsreader', ui-serif, Georgia, serif;
  font-weight:500;
  color:var(--ink);
  text-wrap:balance;
  margin:0;
}
h1{ font-size:clamp(34px,5vw,54px); line-height:1.08; letter-spacing:-.01em; }
h2{ font-size:clamp(26px,3.4vw,34px); line-height:1.15; }
h3{ font-size:20px; line-height:1.3; font-weight:600; font-family:'Ranade',sans-serif; }
p{ margin:0 0 16px; max-width:64ch; }
p:last-child{ margin-bottom:0; }
.lede{ font-size:19px; color:var(--muted); max-width:56ch; }

.eyebrow{
  font-family:'Ranade',sans-serif;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brass);
  display:block;
  margin-bottom:14px;
}

/* ---------- placeholder marker ---------- */
.ph{
  background:var(--brass-soft);
  padding:.05em .35em;
  border-radius:3px;
  font-style:italic;
  color:#7a5a2e;
}

/* ---------- header / nav ---------- */
header.site{
  border-bottom:1px solid var(--rule);
  background:var(--paper);
  position:sticky;
  top:0;
  z-index:20;
}
header.site .bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 28px;
  max-width:1120px;
  margin:0 auto;
}
.brand{
  display:flex;
  align-items:center;
  text-decoration:none;
  color:var(--ink);
}
.brand .logo-full{ height:38px; width:auto; }
nav.primary{ display:flex; align-items:center; gap:36px; }
nav.primary a{
  color:var(--ink);
  text-decoration:none;
  font-size:14.5px;
  font-weight:600;
  letter-spacing:.02em;
  padding:6px 2px;
  border-bottom:2px solid transparent;
}
nav.primary a:hover,
nav.primary a[aria-current="page"]{ border-bottom-color:var(--brass); }
.nav-cta{
  background:var(--primary);
  color:#fff !important;
  padding:10px 20px !important;
  border-radius:3px;
  border-bottom:none !important;
}
.nav-cta:hover{ background:var(--primary-deep); }
.nav-toggle{ display:none; }

/* ---------- Services dropdown ---------- */
.nav-item.dropdown{ position:relative; }
.dropdown-toggle{ display:inline-flex; align-items:center; gap:5px; }
.dropdown-toggle .caret{ font-size:11px; color:var(--muted); transition:transform .15s ease; }
.nav-item.dropdown:hover .dropdown-toggle .caret,
.nav-item.dropdown:focus-within .dropdown-toggle .caret{ transform:translateY(1px) rotate(180deg); }

.dropdown-menu{
  position:absolute;
  top:100%;
  left:0;
  margin-top:10px;
  min-width:236px;
  background:var(--paper-raised);
  border:1px solid var(--rule);
  border-radius:6px;
  box-shadow:0 12px 28px rgba(9,34,56,.14);
  padding:10px 0;
  opacity:0;
  visibility:hidden;
  transform:translateY(4px);
  transition:opacity .15s ease, transform .15s ease, visibility .15s;
  z-index:30;
}
.nav-item.dropdown:hover .dropdown-menu,
.nav-item.dropdown:focus-within .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.dropdown-menu a{
  display:block;
  padding:8px 20px;
  font-size:14px;
  font-weight:500;
  letter-spacing:normal;
  color:var(--ink);
  text-decoration:none;
  border-bottom:none;
}
.dropdown-menu a:hover,
.dropdown-menu a[aria-current="page"]{ background:var(--primary-tint); color:var(--primary-deep); }
.dropdown-menu a.dropdown-heading-link{
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
  padding-bottom:6px;
}
.dropdown-menu a.dropdown-heading-link:hover{ background:none; color:var(--primary-deep); }
.dropdown-menu a:not(.dropdown-heading-link):not(.dropdown-maritime){ padding-left:28px; }
.dropdown-divider{ margin:10px 0; border-top:1px solid var(--rule); }
.dropdown-menu a.dropdown-maritime{
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.dropdown-menu a.dropdown-maritime:hover{ background:none; color:var(--primary-deep); }

@media (max-width:760px){
  .dropdown-menu{
    position:static;
    opacity:1;
    visibility:visible;
    transform:none;
    box-shadow:none;
    border:none;
    background:transparent;
    padding:6px 0 0;
    margin-top:6px;
    min-width:0;
  }
  .dropdown-menu a{ padding:7px 0; }
  .dropdown-menu a:not(.dropdown-heading-link):not(.dropdown-maritime){ padding-left:14px; }
  .dropdown-toggle .caret{ display:none; }
}

@media (max-width:760px){
  nav.primary{
    position:fixed; inset:64px 0 0 0;
    background:var(--paper);
    flex-direction:column;
    align-items:flex-start;
    padding:24px 28px;
    gap:20px;
    transform:translateX(100%);
    transition:transform .25s ease;
  }
  nav.primary.open{ transform:translateX(0); }
  .nav-toggle{
    display:block;
    background:none; border:1px solid var(--rule); border-radius:4px;
    width:40px; height:36px;
    font-size:18px;
    color:var(--ink);
  }
  .nav-cta{ width:100%; text-align:center; }
}

/* ---------- sections & rhythm ---------- */
section{ padding:76px 0; }
section.tight{ padding:52px 0; }
.section-head{ max-width:64ch; margin-bottom:44px; }
.rule-top{ border-top:1px solid var(--rule); }
.on-primary{ background:var(--primary); color:#fff; }
.on-primary h1,.on-primary h2,.on-primary h3{ color:#fff; }
.on-primary p{ color:#e6ecea; }
.on-tint{ background:var(--primary-tint); }

/* ---------- hero ---------- */
.hero{ padding:88px 0 64px; }
.hero .grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:56px;
  align-items:center;
}
.hero-credentials{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
}
.credential{
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.03em;
  color:var(--primary-deep);
  background:var(--primary-tint);
  border:1px solid var(--rule);
  padding:7px 12px;
  border-radius:999px;
}
.hero-actions{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:13px 26px;
  border-radius:3px;
  font-weight:600;
  font-size:15px;
  text-decoration:none;
  border:1px solid transparent;
}
.btn-primary{ background:var(--primary); color:#fff; }
.btn-primary:hover{ background:var(--primary-deep); }
.btn-ghost{ border-color:var(--ink); color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); color:#fff; }
.on-primary .btn-ghost{ border-color:#fff; color:#fff; }
.on-primary .btn-ghost:hover{ background:#fff; color:var(--primary-deep); }

/* horizon divider — subtle nod to the maritime practice */
.horizon{ width:100%; height:34px; display:block; }
.horizon path{ stroke:var(--rule); stroke-width:1.5; fill:none; }

/* ---------- pillars (3-up) ---------- */
.pillars{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border:1px solid var(--rule);
  border-radius:4px;
  overflow:hidden;
  background:var(--paper-raised);
}
.pillar{
  padding:34px 30px;
  border-left:1px solid var(--rule);
}
.pillar:first-child{ border-left:none; }
.pillar .num{
  font-family:'Newsreader',serif;
  font-size:14px;
  color:var(--brass);
  margin-bottom:10px;
  display:block;
}
.pillar h3{ margin-bottom:10px; }
.pillar p{ color:var(--muted); font-size:15px; margin-bottom:14px; }
.pillar a{ font-size:14px; font-weight:600; text-decoration:none; }
@media (max-width:760px){
  .pillars{ grid-template-columns:1fr; }
  .pillar{ border-left:none; border-top:1px solid var(--rule); }
  .pillar:first-child{ border-top:none; }
}

/* ---------- values / approach ---------- */
.values{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.value .eyebrow{ margin-bottom:8px; }
@media (max-width:760px){ .values{ grid-template-columns:1fr; } }

/* ---------- service sections ---------- */
.service-block{ padding:60px 0; }
.service-block + .service-block{ border-top:1px solid var(--rule); }
.service-block .grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:48px;
  align-items:start;
}
.service-block ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.service-block li{
  padding-left:22px;
  position:relative;
  font-size:15.5px;
  color:var(--ink);
}
.service-block li::before{
  content:"";
  position:absolute;
  left:0; top:9px;
  width:9px; height:1.5px;
  background:var(--brass);
}
@media (max-width:760px){ .service-block .grid{ grid-template-columns:1fr; } }

/* ---------- about page ---------- */
.credential-list{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:16px;
}
.credential-list li{
  padding:18px 20px;
  background:var(--paper-raised);
  border:1px solid var(--rule);
  border-left:3px solid var(--primary);
  border-radius:2px;
  font-size:15px;
}

/* ---------- contact ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:56px;
}
.contact-detail{ margin-bottom:22px; }
.contact-detail .label{
  display:block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:4px;
}
.contact-detail a, .contact-detail span.value{ font-size:16.5px; color:var(--ink); text-decoration:none; }

form.enquiry{ display:flex; flex-direction:column; gap:18px; }
form.enquiry .row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
form.enquiry label{ display:flex; flex-direction:column; gap:6px; font-size:14px; font-weight:600; }
form.enquiry input, form.enquiry select, form.enquiry textarea{
  font-family:inherit;
  font-size:15px;
  padding:12px 13px;
  border:1px solid var(--rule);
  border-radius:3px;
  background:var(--paper-raised);
  color:var(--ink);
}
form.enquiry textarea{ min-height:120px; resize:vertical; }
form.enquiry .note{ font-size:13px; color:var(--muted); }
@media (max-width:760px){
  .contact-grid{ grid-template-columns:1fr; }
  form.enquiry .row{ grid-template-columns:1fr; }
}

/* ---------- footer ---------- */
footer.site{
  border-top:1px solid var(--rule);
  padding:48px 0 36px;
  margin-top:40px;
}
footer.site .grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:32px;
}
footer.site h4{ font-family:'Ranade',sans-serif; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
footer.site ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
footer.site a{ color:var(--ink); text-decoration:none; font-size:14.5px; }
footer.site .reg{ font-size:13px; color:var(--muted); max-width:52ch; margin-bottom:14px; }
footer.site .legal{
  margin-top:36px; padding-top:20px; border-top:1px solid var(--rule);
  font-size:12.5px; color:var(--muted);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
}
@media (max-width:760px){ footer.site .grid{ grid-template-columns:1fr; } }

/* ACCA logo reserved slot in the footer — swap the .ph placeholder for
   an <img> once the real ACCA member-firm logo file is supplied */
.acca-logo-slot{
  display:inline-flex;
  align-items:center;
  height:30px;
  padding:0 10px;
  font-size:11px;
  letter-spacing:.04em;
}

/* discreet text-only link used where Maritime Services is mentioned
   outside its own page — deliberately not styled as a card or pillar */
.discreet-link{
  display:inline-block;
  margin-top:28px;
  font-size:13.5px;
  color:var(--muted);
}
.discreet-link a{ color:var(--muted); text-decoration:underline; text-underline-offset:3px; }
.discreet-link a:hover{ color:var(--ink); }

/* ============================================================
   MARITIME PAGE — distinct blue/sea treatment
   Scoped under body.maritime so nothing else on the site is
   affected. Same type family, deeper sea-navy palette, and a
   photographic hero rather than the flat-colour hero used
   elsewhere.
   ============================================================ */
body.maritime{
  --sea-deep:#071a2e;
  --sea-mid:#0f3a5c;
  --sea-tint:#123a52;
  --sea-line:#254f6b;
  --sea-fog:#c7d7e2;
}
body.maritime header.site{
  background:var(--sea-deep);
  border-bottom:1px solid var(--sea-line);
}
body.maritime header.site .brand{ color:#fff; }
body.maritime nav.primary a{ color:#dce8f0; }
body.maritime nav.primary a:hover,
body.maritime nav.primary a[aria-current="page"]{ border-bottom-color:var(--sea-fog); }
body.maritime .nav-toggle{ color:#fff; border-color:var(--sea-line); }

/* The Services dropdown panel itself stays on the normal light
   background even on the maritime page, so its links need to keep
   the normal dark ink colour rather than inheriting the pale
   header-link colour above (which was unreadable against the panel's
   light background). */
body.maritime nav.primary .dropdown-menu a{ color:var(--ink); }
body.maritime nav.primary .dropdown-menu a:hover,
body.maritime nav.primary .dropdown-menu a[aria-current="page"]{ color:var(--primary-deep); }
body.maritime nav.primary .dropdown-menu a.dropdown-heading-link,
body.maritime nav.primary .dropdown-menu a.dropdown-maritime{ color:var(--muted); }
body.maritime nav.primary .dropdown-menu a.dropdown-heading-link:hover,
body.maritime nav.primary .dropdown-menu a.dropdown-maritime:hover{ color:var(--primary-deep); }
@media (max-width:760px){
  body.maritime nav.primary{ background:var(--sea-deep); }
}

.maritime-hero{
  position:relative;
  padding:120px 0 80px;
  background:var(--sea-deep) url('../img/maritime/glacier-anchorage.jpg') center 42%/cover no-repeat;
  color:#fff;
}
.maritime-hero::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(7,26,46,.72) 0%, rgba(7,26,46,.55) 45%, rgba(7,26,46,.88) 100%);
}
.maritime-hero .wrap{ position:relative; max-width:720px; }
.maritime-hero .eyebrow{ color:var(--sea-fog); }
.maritime-hero h1{ color:#fff; }
.maritime-hero p.lede{ color:#dce8f0; }
.maritime-hero .btn-ghost{ border-color:#fff; color:#fff; }
.maritime-hero .btn-ghost:hover{ background:#fff; color:var(--sea-deep); }

body.maritime section{ background:var(--sea-deep); color:#eaf1f6; }
body.maritime section.on-tint{ background:var(--sea-tint); }
body.maritime section p{ color:#c7d7e2; }
body.maritime h2, body.maritime h3{ color:#fff; }
body.maritime .rule-top{ border-top:1px solid var(--sea-line); }
body.maritime .eyebrow{ color:#7fa8c4; }

body.maritime .pillars{
  background:var(--sea-tint);
  border-color:var(--sea-line);
}
body.maritime .pillar{ border-left-color:var(--sea-line); }
body.maritime .pillar p{ color:#c7d7e2; }
body.maritime .pillar .num{ color:#7fa8c4; }
body.maritime .pillar a{ color:#fff; }

.maritime-gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.maritime-gallery figure{ margin:0; }
.maritime-gallery img{
  width:100%; height:220px; object-fit:cover;
  border-radius:3px;
  border:1px solid var(--sea-line);
}
.maritime-gallery figcaption{
  margin-top:8px;
  font-size:12.5px;
  color:#9fb7c8;
}
.maritime-gallery .wide{ grid-column:span 2; }
@media (max-width:760px){
  .maritime-gallery{ grid-template-columns:1fr 1fr; }
  .maritime-gallery .wide{ grid-column:span 2; }
}
@media (max-width:520px){
  .maritime-gallery{ grid-template-columns:1fr; }
  .maritime-gallery .wide{ grid-column:span 1; }
}

body.maritime .note-block{
  border:1px solid var(--sea-line);
  background:var(--sea-tint);
  padding:20px 22px;
  border-radius:4px;
  font-size:14px;
  color:#c7d7e2;
}

body.maritime footer.site{
  background:var(--sea-deep);
  border-top:1px solid var(--sea-line);
  color:#c7d7e2;
}
body.maritime footer.site h4{ color:#7fa8c4; }
body.maritime footer.site a{ color:#eaf1f6; }
body.maritime footer.site .reg{ color:#9fb7c8; }
body.maritime footer.site .legal{ border-top-color:var(--sea-line); color:#9fb7c8; }
body.maritime .discreet-link,
body.maritime .discreet-link a{ color:#9fb7c8; }

/* ---------- breadcrumb trail (Services > Financial > Accounting & Tax) ---------- */
.crumbs{
  font-size:13px;
  color:var(--muted);
  margin-bottom:18px;
}
.crumbs a{ color:var(--muted); text-decoration:underline; text-underline-offset:3px; }
.crumbs a:hover{ color:var(--ink); }
.crumbs .sep{ margin:0 6px; }

/* ---------- featured service callout (used for Business Restructuring & Recovery) ---------- */
.feature-callout{
  margin-top:22px;
  padding:22px 24px;
  background:var(--brass-soft);
  border:1px solid #e5d3b0;
  border-radius:4px;
}
.feature-callout .eyebrow{ margin-bottom:8px; }
.feature-callout p{ color:#6b5333; margin-bottom:0; }

/* ---------- Insights (article listing + article cards) ---------- */
.insights-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}
.insight-card{
  display:block;
  padding:28px 26px;
  background:var(--paper-raised);
  border:1px solid var(--rule);
  border-radius:4px;
  text-decoration:none;
  color:var(--ink);
}
.insight-card:hover{ border-color:var(--primary); }
.insight-card .date{
  display:block;
  font-size:12px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}
.insight-card h3{ margin-bottom:8px; }
.insight-card p{ color:var(--muted); font-size:15px; margin-bottom:0; }
.insight-card .arrow{ display:inline-block; margin-top:14px; font-size:14px; font-weight:600; color:var(--primary-deep); }
@media (max-width:760px){ .insights-grid{ grid-template-columns:1fr; } }

.article-meta{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:13px;
  color:var(--muted);
  margin-top:14px;
}
.article-body{ max-width:68ch; }
.article-body p{ font-size:16px; }
.article-body h2{ margin-top:8px; margin-bottom:14px; font-size:24px; }
.article-body h3{ margin-top:26px; margin-bottom:8px; }
.article-body ol{ padding-left:22px; }
.article-body ol li{ font-size:16px; margin-bottom:4px; }

/* ---------- link cards used on overview/hub pages (Services, Financial) ---------- */
.link-cards{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}
.link-card{
  display:block;
  padding:28px 26px;
  background:var(--paper-raised);
  border:1px solid var(--rule);
  border-radius:4px;
  text-decoration:none;
  color:var(--ink);
}
.link-card:hover{ border-color:var(--primary); }
.link-card h3{ margin-bottom:8px; }
.link-card p{ color:var(--muted); font-size:15px; margin-bottom:0; }
.link-card .arrow{ display:inline-block; margin-top:14px; font-size:14px; font-weight:600; color:var(--primary-deep); }
@media (max-width:760px){ .link-cards{ grid-template-columns:1fr; } }

/* ---------- cookie consent banner + preferences modal ---------- */
.cookie-banner{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:200;
  background:var(--ink);
  color:#fff;
  transform:translateY(100%);
  transition:transform .25s ease;
  box-shadow:0 -4px 20px rgba(9,34,56,.25);
}
.cookie-banner.is-visible{ transform:translateY(0); }
.cookie-banner-inner{
  max-width:1080px;
  margin:0 auto;
  padding:20px 24px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px 24px;
}
.cookie-banner-inner p{
  flex:1 1 340px;
  margin:0;
  font-size:14px;
  line-height:1.5;
  color:rgba(255,255,255,.88);
}
.cookie-banner-inner a{ color:#fff; text-decoration:underline; }
.cookie-banner-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  flex:0 0 auto;
}
.cookie-btn{
  font-family:'Ranade',sans-serif;
  font-size:13px;
  font-weight:600;
  padding:10px 16px;
  border-radius:3px;
  border:1px solid transparent;
  cursor:pointer;
  white-space:nowrap;
}
.cookie-btn-primary{ background:var(--primary); color:#fff; }
.cookie-btn-primary:hover{ background:var(--primary-deep); }
.cookie-btn-outline{ background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.cookie-btn-outline:hover{ border-color:#fff; }
.cookie-btn-ghost{ background:transparent; color:rgba(255,255,255,.75); border-color:transparent; text-decoration:underline; padding-left:4px; padding-right:4px; }

.cookie-modal-overlay{
  position:fixed;
  inset:0;
  z-index:210;
  background:rgba(9,34,56,.55);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.cookie-modal-overlay[hidden]{ display:none; }
.cookie-modal{
  background:var(--paper-raised);
  border-radius:6px;
  max-width:480px;
  width:100%;
  max-height:90vh;
  overflow-y:auto;
  padding:32px;
}
.cookie-modal h3{ margin-bottom:10px; }
.cookie-modal-intro{ color:var(--muted); font-size:14px; margin-bottom:22px; }
.cookie-modal-row{
  padding:16px 0;
  border-top:1px solid var(--rule);
}
.cookie-modal-row:last-of-type{ border-bottom:1px solid var(--rule); margin-bottom:22px; }
.cookie-modal-row-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.cookie-modal-row-head label{ font-weight:600; font-size:15px; }
.cookie-required{ font-weight:400; color:var(--muted); font-size:13px; }
.cookie-modal-row input[type="checkbox"]{ width:18px; height:18px; accent-color:var(--primary); flex:0 0 auto; }
.cookie-modal-row p{ margin-top:6px; margin-bottom:0; color:var(--muted); font-size:13px; line-height:1.5; }
.cookie-modal-actions{ display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }
@media (max-width:600px){
  .cookie-banner-inner{ flex-direction:column; align-items:stretch; }
  .cookie-banner-actions{ justify-content:flex-end; }
  .cookie-modal-actions{ flex-direction:column-reverse; }
  .cookie-modal-actions .cookie-btn{ width:100%; text-align:center; }
}
