/* Blue Digital: site-wide styles (tokens, chrome, shared sections). Approved in CP2 round 1. */
@font-face{font-family:"Questrial";font-style:normal;font-weight:400;font-display:swap;src:url("../Fonts/questrial-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Questrial";font-style:normal;font-weight:400;font-display:swap;src:url("../Fonts/questrial-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Layout concept: Blue Digital House Style, light only — full-bleed bands, content in a 1080px column,
   split pixel hero as the signature, websites + social media as the two big showcase sections, bFindable as the main plan. */
:root{
  color-scheme:light;
  --brand-1:#012B65; --brand-2:#DC1A22; --brand-2-deep:#B3151B;
  --spark:#1B3B8E; --spark-deep:#132C6E;
  --wa-brand:#25D366; --wa-brand-deep:#1EBE5D;
  --surface:#FFFFFF; --surface-soft:#F4F6FA; --surface-tint:#EAF0FA; --card:#FFFFFF;
  --ink:#0A1630; --text:#3D4656; --muted:#5B6576; --line:#D9DEE7;
  --band:#012B65; --on-band:#FFFFFF; --on-band-soft:rgba(255,255,255,.84);
  --kicker:#C8161E; --accent-word:#1B3B8E; --link:#1B3B8E; --focus:#1B3B8E;
  --chip-bg:#FFF4D6; --chip-fg:#6B4A00; --chip-line:#E2B84A;
  --shadow:0 5px 30px rgba(10,22,48,.10); --shadow-h:0 16px 40px rgba(10,22,48,.18);
  --font:"Questrial","Century Gothic",Arial,sans-serif;
  --fs-body:16px; --fs-h1:clamp(30px,3.4vw,48px); --fs-h2:clamp(28px,3vw,42px); --fs-h3:21px; --fs-kicker:17px;
  --r-sm:6px; --r-card:10px; --r-lg:18px; --r-img:25px; --r-pill:999px;
  --container:1080px; --header-h:84px;
  --ease:cubic-bezier(.2,.7,.2,1);
  /* Motion timing for anything a visitor triggers (Phase 4 audit): hover colour 180ms, lifts and slides
     240ms, image zooms and card flips 300ms (the user-initiated maximum), press 120ms. */
  --t-hover-colour:.18s; --t-hover:.24s; --t-zoom:.3s; --t-press:.12s;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--surface);color:var(--text);font:400 var(--fs-body)/1.7 var(--font);letter-spacing:.02em;font-synthesis:none;overflow-x:clip;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font);font-weight:400;color:var(--ink);line-height:1.12;margin:0;text-wrap:balance;letter-spacing:0}
p{margin:0}
a{color:var(--link)}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
.bd-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bd-wrap{width:min(80%,var(--container));margin-inline:auto}
.bd-wrap--wide{width:min(calc(100% - 48px),1280px);margin-inline:auto}
.bd-section{padding-block:104px;overflow-x:clip}
.bd-section--soft{background:var(--surface-soft)}
.bd-section--tint{background-color:#E8EEF8;background-image:linear-gradient(rgba(1,43,101,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(1,43,101,.045) 1px,transparent 1px);background-size:32px 32px}
.bd-section--tint .bd-callout:not(.bd-callout--red){background:#fff}
.bd-section--navy{background:var(--band);color:var(--on-band-soft);position:relative}
.bd-section--navy .bd-h2,.bd-section--navy h2{color:#fff}
.bd-section--navy .bd-h2 .bd-accent{color:#9DB8FF}
.bd-section--navy .bd-kicker{color:var(--brand-2)}
.bd-section--navy .bd-lead{color:var(--on-band-soft)}
.bd-section--navy .bd-card{box-shadow:0 0 0 1px rgba(255,255,255,.16),0 24px 44px -22px rgba(0,0,0,.65)}
.bd-section--navy .bd-card:hover,.bd-section--navy .bd-card:focus-within{box-shadow:0 0 0 1px rgba(255,255,255,.4),0 30px 50px -20px rgba(0,0,0,.7)}
.bd-section--navy .bd-card__art{--a2:#2A4FB0}
.bd-icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bd-icon .bd-acc{stroke:var(--brand-2)}
.bd-ph{display:inline-flex;align-items:center;gap:6px;font:400 11px/1.3 var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--chip-fg);background:var(--chip-bg);border:1px dashed var(--chip-line);border-radius:var(--r-pill);padding:3px 9px;white-space:nowrap;vertical-align:middle}

/* ---------- utility strip + sticky header (HOUSE-A2) ---------- */
.bd-util{background:var(--brand-1);color:var(--on-band-soft);font-size:13.5px}
.bd-util .bd-wrap--wide{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px}
.bd-util__list{display:flex;flex-wrap:wrap;gap:6px 22px;list-style:none;margin:0;padding:0}
.bd-util__list li{display:flex;align-items:center;gap:8px}
.bd-util a{color:#fff;text-decoration:none}
.bd-util a:hover{text-decoration:underline}
.bd-util .bd-icon{width:16px;height:16px}
.bd-social{display:flex;gap:6px;list-style:none;margin:0;padding:0}
.bd-social a{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:#fff;transition:background-color .25s ease,transform .3s var(--ease)}
.bd-social a:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}
.bd-hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line);transition:box-shadow .3s ease}
.bd-hdr.is-stuck{box-shadow:0 6px 24px rgba(10,22,48,.12)}
.bd-hdr__bar{display:flex;align-items:center;gap:18px;height:var(--header-h)}
.bd-logo{display:flex;align-items:center;flex:none}
.bd-logo img{height:48px;width:auto}
.bd-nav{margin-inline:auto}
.bd-nav__list{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0}
.bd-nav__item{position:relative}
.bd-nav__link{display:flex;align-items:center;gap:4px;white-space:nowrap;font:400 15px/1 var(--font);color:var(--ink);text-decoration:none;padding:12px 7px;border-radius:var(--r-sm);background:none;border:0;cursor:pointer;position:relative}
.bd-nav__link .bd-icon{width:14px;height:14px;transition:transform .3s var(--ease)}
.bd-nav__item:hover .bd-nav__link .bd-icon{transform:rotate(180deg)}
.bd-nav__link::after{content:"";position:absolute;left:10px;right:10px;bottom:6px;height:2px;border-radius:2px;background:var(--brand-2);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--t-hover) var(--ease)}
.bd-nav__link:hover::after,.bd-nav__link:focus-visible::after{transform:scaleX(1)}
.bd-nav__link[aria-current="page"]{color:var(--brand-1)}
.bd-nav__link[aria-current="page"]::before{content:"";position:absolute;left:50%;top:-22px;width:1px;height:22px;background:var(--brand-1);transform:translateX(-50%)}
.bd-nav__drop{position:absolute;left:0;top:calc(100% + 6px);min-width:270px;background:var(--brand-1);border-top:3px solid var(--brand-2);border-radius:var(--r-card);box-shadow:var(--shadow-h);padding:10px;list-style:none;margin:0;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .22s ease,transform .3s var(--ease),visibility .22s}
.bd-nav__item:hover .bd-nav__drop,.bd-nav__item:focus-within .bd-nav__drop{opacity:1;visibility:visible;transform:none}
/* Escape dismisses a dropdown shown by hover or focus until the pointer or focus leaves it (WCAG 1.4.13) */
.bd-nav__item.is-dismissed .bd-nav__drop{opacity:0;visibility:hidden;transform:translateY(8px)}
.bd-nav__item.is-dismissed .bd-nav__link .bd-icon{transform:none}
.bd-nav__drop a{display:flex;align-items:center;justify-content:space-between;color:#fff;text-decoration:none;padding:9px 12px;border-radius:var(--r-sm);font-size:14.5px;transition:background-color .2s ease,padding .2s ease}
.bd-nav__drop a:hover,.bd-nav__drop a:focus-visible{background:rgba(255,255,255,.12)}
.bd-hdr__tools{display:flex;align-items:center;gap:8px;flex:none}
.bd-tool{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;height:44px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;font:400 14.5px/1 var(--font);padding:0 12px;cursor:pointer;transition:border-color .2s ease,color .2s ease}
.bd-tool:hover{border-color:var(--brand-2);color:var(--brand-2)}
.bd-tool--wa{background:var(--wa-brand);border-color:var(--wa-brand);color:#fff;padding:0}
.bd-tool--wa:hover{background:var(--wa-brand-deep);border-color:var(--wa-brand-deep);color:#fff}
.bd-tool__num{white-space:nowrap}
.bd-burger{display:none}
.bd-burger__txt{font-size:14.5px}

/* ---------- buttons ---------- */
.bd-btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:400 15px/1 var(--font);letter-spacing:.04em;text-decoration:none;padding:15px 28px;min-height:48px;border-radius:var(--r-pill);border:2px solid transparent;cursor:pointer;transition:color .3s ease,border-color .3s ease,box-shadow .3s ease;will-change:transform}
.bd-btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateX(-101%);transition:transform var(--t-hover) var(--ease)}
.bd-btn:hover::before,.bd-btn:focus-visible::before{transform:none}
.bd-btn .bd-icon{width:18px;height:18px;transition:transform var(--t-hover) var(--ease)}
.bd-btn:hover .bd-icon-arrow,.bd-btn:focus-visible .bd-icon-arrow{transform:translateX(4px)}
.bd-btn--primary{background:var(--brand-2);color:#fff;box-shadow:0 10px 22px -10px rgba(220,26,34,.65)}
.bd-btn--primary::before{background:var(--brand-1)}
.bd-btn--dark{background:var(--brand-1);color:#fff}
.bd-btn--dark::before{background:var(--brand-2)}
.bd-btn--ghost{background:transparent;border-color:currentColor;color:#fff}
.bd-btn--ghost::before{background:#fff}
.bd-btn--ghost:hover,.bd-btn--ghost:focus-visible{color:var(--brand-1);border-color:#fff}
.bd-btn--line{background:var(--card);border-color:var(--line);color:var(--ink)}
.bd-btn--line::before{background:var(--brand-1)}
.bd-btn--line:hover,.bd-btn--line:focus-visible{border-color:var(--brand-1);color:#fff}
.bd-btn--sm{padding:9px 16px;min-height:40px;font-size:14px}
.bd-btn--block{display:flex;width:100%}
.bd-hdr__cta{white-space:nowrap}

/* ---------- section heading ---------- */
.bd-head{display:flex;flex-direction:column;gap:14px;max-width:740px}
.bd-head--center{align-items:center;text-align:center;margin-inline:auto}
.bd-head__bar{width:64px;height:3px;border-radius:3px;background:var(--brand-2);transform-origin:0 50%}
.bd-head--center .bd-head__bar{transform-origin:50% 50%}
/* Questrial ships one weight, so the bold kicker is synthesised (body turns synthesis off) */
.bd-kicker{font-size:var(--fs-kicker);font-weight:700;font-synthesis:weight;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-2)}
.bd-kicker2{font-size:var(--fs-kicker);font-weight:700;font-synthesis:weight;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-word)}
.bd-h2{font-size:var(--fs-h2)}
.bd-h2
.bd-accent{color:var(--accent-word)}
.bd-accent2{color:var(--kicker)}
.bd-lead{font-size:18px;color:var(--text);max-width:62ch}
.bd-head--center .bd-lead{margin-inline:auto}
[data-split] .bd-w{display:inline-block;will-change:transform,opacity}

/* ---------- more services (borrowed signature: icon badge on the image edge) ---------- */
/* Navy headline strip under a hero (main home, Solutions home); moved from home.css 2026-10-22 */
.bd-strip{position:relative;overflow:hidden;background:var(--band);color:#fff;padding-block:72px}
.bd-strip::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(60% 100% at 85% 50%,#000,transparent)}
.bd-strip .bd-wrap--wide{position:relative}
.bd-strip .bd-wrap--wide{display:flex;align-items:center;justify-content:space-between;gap:18px 40px;flex-wrap:wrap}
.bd-strip__text{display:flex;flex-direction:column;gap:8px;max-width:820px}
.bd-strip h1,.bd-strip__title{color:#fff;font-size:clamp(32px,4vw,56px);line-height:1.06}
.bd-strip h1 .bd-w{display:inline-block}
.bd-strip h1 .bd-hl,.bd-strip__title .bd-hl{color:#fff;background:var(--brand-2);border-radius:8px;padding:0 .18em}
.bd-strip__sub{color:var(--on-band-soft);font-size:16px}
.bd-strip__kick{font-size:var(--fs-kicker);font-weight:700;font-synthesis:weight;color:var(--brand-2)}
.bd-strip__cta{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.bd-strip__note{font-size:13px;color:var(--on-band-soft)}
.bd-strip__note a{color:#fff}
.bd-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:52px}
.bd-card{position:relative;background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform var(--t-hover) var(--ease),box-shadow var(--t-hover) ease}
.bd-card:hover,.bd-card:focus-within{transform:translateY(-10px);box-shadow:var(--shadow-h)}
/* Glow is painted only on hover: a permanent opacity:0 layer over the lazy card photos stalled Chrome's compositor */
.bd-glow::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none}
.bd-glow:hover::after{background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(27,59,142,.10),transparent 60%)}
.bd-card__media{position:relative;aspect-ratio:3/2}
.bd-card__clip{position:absolute;inset:0;overflow:hidden;border-radius:var(--r-card) var(--r-card) 0 0}
.bd-card__art{position:absolute;inset:0;transition:transform var(--t-zoom) var(--ease);background:radial-gradient(120% 90% at 85% 10%,rgba(255,255,255,.18),transparent 55%),linear-gradient(135deg,var(--a1),var(--a2))}
.bd-card__art::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(120deg,transparent 30%,#000 90%)}
.bd-card__art .bd-big{position:absolute;right:18px;top:16px;width:84px;height:84px;color:rgba(255,255,255,.88);stroke-width:1.2;transition:transform var(--t-zoom) var(--ease)}
.bd-card__art .bd-big .bd-acc{stroke:var(--brand-2)}
.bd-card__art .bd-ph{position:absolute;left:14px;bottom:14px}
.bd-card__art.bd-has-photo{background:#0A1630}
.bd-card__art.bd-has-photo::before{display:none}
.bd-card__art.bd-has-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bd-card__art.bd-has-photo .bd-big{display:none}
.bd-portrait__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%;background:#fff}
.bd-card:hover .bd-card__art{transform:scale(1.06)}
.bd-card:hover .bd-card__art .bd-big{transform:rotate(-10deg) scale(1.1)}
.bd-card__badge{position:absolute;right:22px;bottom:-28px;z-index:2;width:58px;height:58px;border-radius:50%;background:var(--card);color:var(--brand-1);display:grid;place-items:center;box-shadow:0 6px 16px rgba(10,22,48,.18);transition:transform var(--t-zoom) var(--ease),background-color var(--t-hover-colour) ease,color var(--t-hover-colour) ease}
.bd-card:hover .bd-card__badge{transform:rotateY(360deg);background:var(--brand-2);color:#fff}
.bd-card:hover .bd-card__badge .bd-acc{stroke:#fff}
.bd-card__badge .bd-icon{width:26px;height:26px}
.bd-card__body{padding:30px 24px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.bd-card__body h3{font-size:var(--fs-h3)}
.bd-card__body p{font-size:15px;line-height:1.6;flex:1}
.bd-card__from{font-size:14px;color:var(--muted)}
.bd-card__from b{font-weight:400;color:var(--ink)}
.bd-card__foot{display:flex;align-items:center;gap:14px;margin-top:6px}
.bd-card__foot::before{content:"";flex:1;height:1px;background:var(--line);transform-origin:0 50%;transition:transform var(--t-hover) var(--ease)}
.bd-card:hover .bd-card__foot::before{transform:scaleX(.6)}
.bd-card__more{font-size:14px;letter-spacing:.06em;color:#fff;background:var(--brand-1);text-decoration:none;padding:9px 14px;border-radius:var(--r-sm);display:inline-flex;align-items:center;gap:8px;min-height:40px;transition:background-color .3s ease}
.bd-card__more:hover,.bd-card__more:focus-visible{background:var(--brand-2)}

/* ---------- industries ---------- */
.bd-inds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:48px}
.bd-ind{position:relative;aspect-ratio:4/5;border-radius:var(--r-img);overflow:hidden;color:#fff;text-decoration:none;display:block;box-shadow:var(--shadow)}
.bd-ind img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--t-zoom) var(--ease)}
.bd-ind::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(1,24,58,.05) 30%,rgba(1,24,58,.88));transition:background-color var(--t-hover-colour) ease}
.bd-ind__body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:28px;display:flex;flex-direction:column;gap:10px;transform:translateY(64px);transition:transform var(--t-hover) var(--ease)}
.bd-ind h3{color:#fff;font-size:26px}
.bd-ind p{font-size:15px;color:rgba(255,255,255,.9);opacity:0;transition:opacity var(--t-hover-colour) ease .05s}
.bd-ind__go{display:inline-flex;align-items:center;gap:8px;font-size:14px;opacity:0;transition:opacity var(--t-hover-colour) ease .1s}
.bd-ind__ph{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(160deg,var(--spark),var(--brand-1));transition:transform var(--t-zoom) var(--ease)}
.bd-ind__ph::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:26px 26px}
.bd-ind__ph .bd-icon{width:96px;height:96px;stroke-width:1;color:rgba(255,255,255,.85);margin-bottom:30%}
.bd-ind__ph .bd-icon .bd-acc{stroke:var(--brand-2)}
.bd-ind:hover .bd-ind__ph{transform:scale(1.06)}
.bd-ind__num{position:absolute;top:22px;left:24px;z-index:2;font-size:13px;letter-spacing:.14em;text-transform:uppercase;background:rgba(1,24,58,.6);backdrop-filter:blur(6px);border-radius:var(--r-pill);padding:6px 12px}
.bd-ind:hover img,.bd-ind:focus-visible img{transform:scale(1.08)}
.bd-ind:hover .bd-ind__body,.bd-ind:focus-visible .bd-ind__body{transform:none}
.bd-ind:hover p,.bd-ind:hover .bd-ind__go,.bd-ind:focus-visible p,.bd-ind:focus-visible .bd-ind__go{opacity:1}

/* ---------- split band ---------- */
.bd-split{display:grid;grid-template-columns:1fr 1fr;min-height:460px}
.bd-split__media{position:relative;overflow:hidden}
.bd-split__media img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;will-change:transform;max-width:none}
.bd-split__media .bd-ph{position:absolute;left:16px;bottom:16px}
.bd-split__panel{background:var(--band);color:var(--on-band-soft);padding:72px clamp(28px,6vw,96px);display:flex;flex-direction:column;justify-content:center;gap:16px}
.bd-split__panel .bd-h2{color:#fff}
/* accent words on the navy panel: the navy page heroes' light blue (the dark accent-word blue is 1.6:1 here) */
.bd-split__panel .bd-accent{color:#9DB8FF}
.bd-split__panel .bd-kicker{color:var(--brand-2)}
.bd-split__panel p{max-width:52ch}
.bd-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.bd-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.35);border-radius:var(--r-pill);padding:8px 14px;font-size:14px;color:#fff}

/* ---------- numbers band on parallax photo (S5) ---------- */
.bd-stats-band{position:relative;overflow:hidden;isolation:isolate;color:#fff;padding-block:110px}
.bd-stats-band__bg{position:absolute;left:0;top:-20%;width:100%;height:140%;object-fit:cover;z-index:-2;will-change:transform;max-width:none}
.bd-stats-band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(1,43,101,.86),rgba(1,24,58,.92))}
.bd-stats-band .bd-h2{color:#fff}
.bd-stats-band .bd-kicker{color:var(--brand-2)}
.bd-stats-band .bd-ph{position:absolute;right:16px;bottom:14px}
.bd-stats{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;text-align:center}
.bd-stats li{transition:transform var(--t-hover) var(--ease)}
.bd-stats li:hover{transform:translateY(-6px)}
.bd-stat__num{font:400 clamp(44px,5vw,64px)/1 var(--font);color:#fff;font-variant-numeric:tabular-nums}
.bd-stat__suffix{font:400 clamp(30px,3vw,40px)/1 var(--font);color:var(--brand-2)}
.bd-stat__label{display:block;margin-top:12px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.bd-stat__rule{width:34px;height:3px;border-radius:3px;background:var(--brand-2);margin:16px auto 0;transition:width .45s var(--ease)}
.bd-stats li:hover .bd-stat__rule{width:64px}

/* ---------- social & reviews (S1) ---------- */
.bd-social-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:44px;align-items:start}
.bd-rating{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:26px 0 22px}
.bd-rating__score{font:400 48px/1 var(--font);color:var(--ink)}
.bd-rating__stars{color:#E9A100;letter-spacing:2px;font-size:20px}
.bd-rating__count{font-size:15px;color:var(--muted)}
.bd-scroller{position:relative;padding:0 60px}
.bd-scroller__track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;list-style:none;margin:0;padding:10px 2px 28px;scrollbar-width:none;overscroll-behavior-x:contain}
.bd-scroller__track::-webkit-scrollbar{display:none}
.bd-scroller__item{flex:0 0 calc((100% - 22px)/2);scroll-snap-align:start}
.bd-scroller__btn{position:absolute;top:calc(50% - 9px);transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:0;background:var(--brand-1);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px rgba(10,22,48,.2);transition:background-color .3s ease,opacity .3s ease,transform .3s var(--ease);z-index:2}
.bd-scroller__btn:hover,.bd-scroller__btn:focus-visible{background:var(--brand-2);transform:translateY(-50%) scale(1.08)}
.bd-scroller__btn--prev{left:0}.bd-scroller__btn--next{right:0}
.bd-scroller__btn[aria-disabled="true"]{opacity:.35;cursor:default}
.bd-review-card{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow);padding:24px;display:flex;flex-direction:column;gap:14px;height:100%;transition:transform var(--t-hover) var(--ease),box-shadow var(--t-hover) ease}
.bd-review-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-h)}
.bd-review-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.bd-review-card__stars{color:#E9A100;letter-spacing:2px}
.bd-gmark{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.bd-social-grid .bd-scroller__item{flex-basis:78%}
.bd-gmark b{font-weight:400;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface-soft);color:#3367D6;font-size:13px}
.bd-review-card q{font-size:15.5px;line-height:1.6;color:var(--text)}
.bd-review-card__by{display:flex;align-items:center;gap:10px;margin-top:auto}
.bd-avatar{width:40px;height:40px;border-radius:50%;background:var(--surface-soft);display:grid;place-items:center;color:var(--brand-1);font-size:15px;flex:none}
.bd-review-card__by strong{font-weight:400;color:var(--ink);display:block}
.bd-review-card__by span{font-size:13px;color:var(--muted)}
.bd-embed{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden}
.bd-follow{margin-top:14px}
.bd-ig-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:52px;align-items:center}

/* ---------- client logos ---------- */
.bd-logos-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 30px}
.bd-logos .bd-scroller__item{flex:0 0 calc((100% - 88px)/5)}
.bd-logo-tile{height:96px;border-radius:var(--r-card);border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);filter:grayscale(1);opacity:.85;transition:filter .3s ease,opacity .3s ease,border-color .3s ease,transform .4s var(--ease)}
.bd-logo-tile:hover{filter:none;opacity:1;border-color:var(--brand-2);transform:translateY(-4px)}
.bd-logo-tile img{display:block;width:auto;height:auto;max-width:calc(100% - 24px);max-height:80px;object-fit:contain}
.bd-logo-tile b{font-weight:400;font-size:18px;color:var(--ink);letter-spacing:.04em}
.bd-logo-tile small{font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.bd-pause{display:inline-flex;align-items:center;gap:8px}
.bd-pause .bd-i-play{display:none}
.bd-pause[aria-pressed="true"] .bd-i-play{display:block}
.bd-pause[aria-pressed="true"] .bd-i-pause{display:none}

/* ---------- blog teaser + FAQ ---------- */
.bd-posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:48px}
.bd-post{position:relative;background:var(--card);border-radius:var(--r-card);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--t-hover) var(--ease),box-shadow var(--t-hover) ease}
.bd-post:hover,.bd-post:focus-within{transform:translateY(-10px);box-shadow:var(--shadow-h)}
.bd-post__img{aspect-ratio:16/10;overflow:hidden}
.bd-post__img img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-zoom) var(--ease)}
.bd-post:hover .bd-post__img img{transform:scale(1.07)}
.bd-post__body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1}
.bd-post__cat{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--kicker)}
.bd-post h3{font-size:19px;line-height:1.3}
.bd-post h3 a{color:var(--ink);text-decoration:none}
.bd-post h3 a::after{content:"";position:absolute;inset:0}
.bd-post__more{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--brand-1)}
.bd-post__more::before{content:"";width:24px;height:1px;background:currentColor;transition:width var(--t-hover) var(--ease)}
.bd-post:hover .bd-post__more::before{width:44px}
.bd-faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:56px;align-items:start}
.bd-faq{display:flex;flex-direction:column;gap:12px}
.bd-faq details{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);transition:border-color .3s ease,box-shadow .3s ease}
.bd-faq details[open]{border-color:var(--brand-1);box-shadow:var(--shadow)}
.bd-faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;font-size:17px;color:var(--ink);min-height:56px}
.bd-faq summary::-webkit-details-marker{display:none}
.bd-faq__pm{position:relative;width:30px;height:30px;border-radius:50%;background:var(--surface-soft);flex:none;transition:background-color .3s ease,transform .4s var(--ease)}
.bd-faq__pm::before,.bd-faq__pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;border-radius:2px;background:var(--brand-1);transform:translate(-50%,-50%);transition:transform var(--t-hover) var(--ease),background-color var(--t-hover-colour) ease}
.bd-faq__pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.bd-faq details[open] .bd-faq__pm{background:var(--brand-2);transform:rotate(180deg)}
.bd-faq details[open] .bd-faq__pm::before,.bd-faq details[open] .bd-faq__pm::after{background:#fff}
.bd-faq details[open] .bd-faq__pm::after{transform:translate(-50%,-50%) rotate(0)}
.bd-faq__a{padding:0 20px 20px;font-size:15.5px;line-height:1.65}
.bd-faq details[open] .bd-faq__a{animation:pkgIn .45s var(--ease) both}

/* ---------- CTA band ---------- */
.bd-cta{background:var(--band);color:#fff;position:relative;overflow:hidden;padding-block:88px}
.bd-cta::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(70% 90% at 80% 50%,#000,transparent)}
.bd-cta .bd-wrap{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px 40px}
.bd-cta h2{color:#fff;font-size:clamp(28px,3vw,42px);max-width:640px}
.bd-cta p{color:var(--on-band-soft);margin-top:10px}
.bd-cta__actions{display:flex;flex-wrap:wrap;gap:12px}
/* Site-wide bFindable band (Blocks::CtaBand): copy and buttons left, bFindable logo right; stacks below 980px */
.bd-cta .bd-cta__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);align-items:center;gap:36px 64px}
.bd-cta__copy .bd-cta__actions{margin-top:28px}
.bd-cta__visual{display:flex;justify-content:center}
.bd-cta__logo{display:block;width:100%;max-width:320px;height:auto}
@media (max-width:1180px){ .bd-cta .bd-cta__grid{grid-template-columns:minmax(0,1fr) minmax(0,260px);column-gap:48px} }

/* ---------- footer: light photo veil + red bottom bar ---------- */
.bd-ftr{position:relative;isolation:isolate;color:var(--text);background:var(--surface)}
.bd-ftr::before{content:"";position:absolute;inset:0;z-index:-2;background:
  linear-gradient(115deg,transparent 0 40%,rgba(27,59,142,.18) 40% 41%,transparent 41% 62%,rgba(1,43,101,.14) 62% 63%,transparent 63%),
  repeating-linear-gradient(90deg,rgba(1,43,101,.10) 0 36px,transparent 36px 60px,rgba(1,43,101,.06) 60px 110px,transparent 110px 150px)}
.bd-ftr::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.93)}
.bd-ftr__cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:40px;padding-block:72px 56px}
.bd-ftr h2{font-size:17px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);padding-top:18px;position:relative;margin-bottom:18px}
.bd-ftr h2::before{content:"";position:absolute;left:0;top:0;width:40px;height:3px;border-radius:3px;background:var(--brand-2)}
.bd-ftr p,.bd-ftr li{font-size:15px}
.bd-ftr ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.bd-ftr a{color:var(--text);text-decoration:none;transition:color .2s ease}
.bd-ftr a:hover{color:var(--brand-2)}
.bd-ftr .bd-bullets li{display:flex;align-items:center;gap:10px}
.bd-ftr .bd-bullets li::before{content:"";width:7px;height:7px;border-radius:2px;background:var(--brand-2);flex:none;transition:transform .3s var(--ease)}
.bd-ftr .bd-bullets li:hover::before{transform:rotate(45deg) scale(1.2)}
.bd-ftr .bd-logo img{height:54px}
.bd-ftr__about{display:flex;flex-direction:column;gap:16px}
.bd-ftr .bd-social{flex-direction:row}
.bd-ftr .bd-social a{color:var(--brand-1);border:1px solid var(--line)}
.bd-ftr .bd-social a:hover{background:var(--brand-2);color:#fff;border-color:var(--brand-2)}
.bd-partner{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--r-card);padding:10px 14px;background:var(--card);font-size:13px;color:var(--ink);align-self:flex-start}
.bd-partner__mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#0866FF,#1B3B8E);display:grid;place-items:center;color:#fff}
.bd-hours li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding-bottom:8px}
.bd-hours span:first-child{color:var(--accent-word);letter-spacing:.06em;text-transform:uppercase;font-size:13.5px}
.bd-contact-list li{display:flex;gap:12px;align-items:flex-start}
.bd-contact-list .bd-icon{color:var(--brand-2);margin-top:3px}
.bd-contact-list small{display:block;color:var(--muted);font-size:13px}
.bd-ftr__vat{border-top:1px solid var(--line);padding-block:18px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;font-size:14px;color:var(--muted)}
.bd-bar{background:var(--brand-2);color:#fff;font-size:13px;letter-spacing:.06em}
.bd-bar .bd-wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;padding-block:14px;text-align:center}
.bd-bar a{color:#fff;text-decoration:none}
.bd-bar a:hover{text-decoration:underline}
.bd-bar button{font:inherit;color:#fff;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* ---------- floating: back to top (the WhatsApp widget is the module, styled below) ---------- */
.bd-totop{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:80;width:46px;height:46px;border-radius:12px;border:0;background:var(--brand-1);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px rgba(10,22,48,.25);opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .3s ease,transform .3s ease,bottom .35s var(--ease),background-color .3s ease}
.bd-totop.is-on{opacity:1;transform:none;pointer-events:auto}
.bd-totop:hover{background:var(--brand-2)}
/* --bd-cookie-lift: space the cookie notice takes at the bottom (set by site.js) */
body.bd-has-cookie .bd-totop{bottom:calc(var(--bd-cookie-lift,150px) + 12px)}

/* ---------- cookie notice ---------- */
.bd-cookie{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:90;width:min(360px,calc(100vw - 32px));background:var(--card);color:var(--text);border-radius:var(--r-card);box-shadow:var(--shadow-h);border:1px solid var(--line);padding:18px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px}
/* A corner card (release check §1: max 360px, bottom-right, 16px inset, never over the H1 or main button). Below 480px
   it sits flush as a bottom sheet, under 30% of the screen; the WhatsApp widget and back-to-top lift above it. */
@media (max-width:479px){ .bd-cookie{left:0;right:0;bottom:0;width:100%;border-radius:var(--r-card) var(--r-card) 0 0;border-width:1px 0 0;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))} }
.bd-cookie p{flex:1 1 auto;font-size:14px;line-height:1.5}
.bd-cookie p strong{font-weight:400;color:var(--ink);display:block;margin-bottom:2px}
.bd-cookie__btns{display:flex;flex-wrap:wrap;gap:10px}
.bd-cookie .bd-btn{flex:1 1 140px;min-width:0;padding-inline:12px;font-size:13.5px;letter-spacing:.02em;white-space:nowrap}
.bd-cookie .bd-btn[data-consent="choose"]{flex-basis:100%}
/* Phones: a compact sheet, well under 30% of the screen */
@media (max-width:479px){
  .bd-cookie{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));gap:10px}
  .bd-cookie__main{gap:10px}
  .bd-cookie p{font-size:13px;line-height:1.45}
  .bd-cookie__btns{gap:8px}
  .bd-cookie .bd-btn{min-height:44px;padding-block:8px;font-size:13px}
  /* while the sheet is open the floating WhatsApp button would sit over the hero's main button; the header has WhatsApp */
  body.bd-has-cookie .wa-widget{display:none}
}
/* Consent tool (consent.js): the notice row, then the category choices that "Choose cookies" opens */
.bd-cookie{flex-direction:column;align-items:stretch;max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior:contain}
.bd-cookie__main{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px}
.bd-cookie__prefs{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--line);padding-top:14px}
.bd-cookie__prefs[hidden]{display:none}
.bd-cookie__prefs fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.bd-cookie__cat{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface-soft);cursor:pointer}
div.bd-cookie__cat{cursor:default}
.bd-cookie__txt{font-size:14px;line-height:1.5}
.bd-cookie__txt strong{display:block;font-weight:400;color:var(--ink);font-size:15px}
.bd-cookie__always{flex:none;font-size:13px;color:var(--muted);white-space:nowrap}
.bd-switch{flex:none;appearance:none;-webkit-appearance:none;margin:0;width:46px;height:26px;border-radius:var(--r-pill);background:#B8C0CE;position:relative;cursor:pointer;transition:background-color .2s ease}
.bd-switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(10,22,48,.25);transition:transform .2s var(--ease)}
.bd-switch:checked{background:var(--brand-1)}
.bd-switch:checked::after{transform:translateX(20px)}
.bd-switch:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
/* A feed that has loaded (consent given, or "Show" pressed): the iframe fills the rounded frame */
.bd-embed.is-live{padding:0;background:var(--card)}
.bd-embed__frame{display:block;width:100%;height:560px;border:0;border-radius:inherit}
/* Facebook draws its page plugin at the width in its URL (180–500px, set from the column by home.js) and never
   shrinks it, so the panel and its Follow button stop at 500px. Instagram's profile embed is a header (~150px)
   and two rows of square posts, so its height follows its width. */
.bd-social-grid > aside{width:100%;max-width:500px;justify-self:center}
/* Both feeds share Instagram's height (2026-10-16), so the two panels start and end level at every width;
   home.js passes the Facebook frame's height into its URL, so Facebook draws to it (its timeline scrolls inside). */
.bd-embed--fb,.bd-embed--ig{container-type:inline-size}
.bd-embed--fb .bd-embed__frame,.bd-embed--ig .bd-embed__frame{height:calc(69cqw + 150px)}
/* Home S1 (2026-10-15): reviews as their own full-width band, then Facebook and Instagram side by side,
   each column at most 500px (Facebook's widest page plugin), stacked below 981px. */
.bd-reviews-band{overflow-x:clip}
.bd-reviews-band .grv{margin-top:28px}
.bd-reviews-band__more{margin-top:8px;text-align:center}
.bd-feeds{display:grid;grid-template-columns:repeat(2,minmax(0,500px));justify-content:center;align-items:stretch;gap:32px;margin-top:8px}
.bd-feeds__col{min-width:0;display:flex;flex-direction:column}
.bd-feeds__col .bd-follow{margin-top:auto}   /* both Follow buttons sit on one line under frames of different heights */
.bd-feeds__col .bd-embed{margin-bottom:14px}

/* ---------- utilities, skip link, icon sprite ---------- */
.bd-skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--brand-1);color:#fff;padding:10px 16px;border-radius:var(--r-sm);text-decoration:none;transition:top .2s ease}
.bd-skip:focus{top:12px}
.bd-sprite{position:absolute;width:0;height:0;overflow:hidden}
.bd-icon--sm{width:16px;height:16px}
.bd-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.bd-mt20{margin-top:20px}.bd-mt34{margin-top:34px}.bd-pt18{padding-top:18px}.bd-minw0{min-width:0}
.bd-nowrap{white-space:nowrap}
.bd-ph--corner{position:absolute;right:12px;top:12px}.bd-ph--corner-lg{position:absolute;right:20px;top:24px}
.bd-i1{--i:1}.bd-i2{--i:2}.bd-i3{--i:3}.bd-i4{--i:4}.bd-i5{--i:5}

/* ---------- site tokens -> WhatsApp widget (whatsapp-chat-widget module). Brief §12.1.
   :root .wa-widget outranks the module's own .wa-widget defaults whatever the load order. ---------- */
:root .wa-widget{
  /* trigger: WhatsApp green (Hunter, 2026-10-13), the brand's own white-on-green mark */
  --wa-green:var(--wa-brand);
  --wa-green-dark:var(--wa-brand-deep);
  --wa-green-fg:#FFFFFF;
  /* panel: site tokens */
  --wa-panel-bg:var(--surface);
  --wa-panel-header-bg:var(--brand-1);
  --wa-panel-header-fg:#FFFFFF;
  --wa-body-bg:var(--surface-soft);
  --wa-bubble-bg:var(--surface);
  --wa-bubble-fg:var(--text);
  --wa-cta-bg:var(--brand-2);
  --wa-cta-fg:#FFFFFF;
  --wa-focus:var(--spark);
  --wa-radius:var(--r-card);
  --wa-font:var(--font);
}

/* ---------- site tokens -> Google reviews (google-reviews-module), home page S1. Brief §12.
   Same look as the CP2 review cards: white cards on the soft panel, the site's gold stars. ---------- */
:root .grv{
  --grv-surface:var(--card);          --grv-surface-alt:var(--surface-soft);
  --grv-ink:var(--ink);               --grv-ink-soft:var(--muted);
  --grv-accent:var(--brand-1);        --grv-accent-ink:#FFFFFF;
  --grv-accent-hover:var(--brand-2);  --grv-border:var(--line);
  --grv-radius:var(--r-card);         --grv-shadow:var(--shadow);
  --grv-font:var(--font);             --grv-font-head:var(--font);
  --grv-star-on:#E9A100;              --grv-star-off:var(--line);
  --grv-focus:var(--focus);
}
/* The block sits in the S1 half column, so cards are sized by the column (container), not the viewport:
   one card and a peek of the next, as in CP2; two cards only in a wide column; on a narrow column the
   buttons move under the cards instead of covering the text. */
.grv{container-type:inline-size}
@container (min-width:481px){ :root .grv--scroller .grv__item{flex-basis:85%} }
@container (min-width:760px){ :root .grv--scroller .grv__item{flex-basis:calc((100% - 24px)/2)} }
@container (max-width:480px){
  :root .grv__scroller{padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
  :root .grv--scroller .grv__track{order:-1;flex:0 0 100%;padding-bottom:6px}
  :root .grv--scroller .grv__item{flex-basis:88%}
  :root .grv__btn,:root .grv__btn--prev,:root .grv__btn--next{position:static;transform:none}
}

/* ---------- AOS (inlined subset of aos.css 2.3.4) ---------- */
html.aos-on [data-aos]{transition-property:opacity,transform;transition-duration:.8s;transition-timing-function:cubic-bezier(.2,.7,.2,1)}
html.aos-on [data-aos^="fade"],html.aos-on [data-aos^="zoom"]{opacity:0}
html.aos-on [data-aos="fade-up"]{transform:translate3d(0,48px,0)}
html.aos-on [data-aos="fade-left"]{transform:translate3d(60px,0,0)}
html.aos-on [data-aos="fade-right"]{transform:translate3d(-60px,0,0)}
html.aos-on [data-aos="zoom-in"]{transform:scale(.88)}
html.aos-on [data-aos].aos-animate{opacity:1;transform:none}
/* Reveal stagger (release check §8): 40ms per item, at most four steps */
html.aos-on [data-aos-delay="40"].aos-animate{transition-delay:.04s}
html.aos-on [data-aos-delay="80"].aos-animate{transition-delay:.08s}
html.aos-on [data-aos-delay="120"].aos-animate{transition-delay:.12s}
@media (max-width:980px){ html.aos-on [data-aos="fade-left"]:not(.aos-animate),html.aos-on [data-aos="fade-right"]:not(.aos-animate){transform:translate3d(0,40px,0)} }

/* ---------- responsive ---------- */
/* Header fit: the row tops out at 1280px, so the phone number goes icon-only below 1360px and the menu folds
   into the burger at 1280px (the wider logo and "Free visibility check" label need the room) */
@media (max-width:1360px){ .bd-tool__num{display:none} }
@media (max-width:1280px){
  .bd-burger{display:inline-flex}
  .bd-nav{position:absolute;left:0;right:0;top:100%;margin:0;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-h);max-height:calc(100svh - var(--header-h));overflow:auto;display:none}
  .bd-nav.is-open{display:block}
  .bd-nav__list{flex-direction:column;align-items:stretch;padding:10px 24px 20px;gap:0}
  .bd-nav__item{border-bottom:1px solid var(--line)}
  .bd-nav__link{width:100%;justify-content:space-between;padding:16px 4px;font-size:16px}
  .bd-nav__link::after,.bd-nav__link[aria-current="page"]::before{display:none}
  .bd-nav__drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border-top:0;border-radius:var(--r-sm);display:none;margin-bottom:12px}
  .bd-nav__item.is-open .bd-nav__drop{display:block}
  .bd-hdr__bar{gap:10px}
  .bd-logo{margin-right:auto}
}
@media (max-width:980px){
  :root{--header-h:72px}
  .bd-section{padding-block:72px}
  .bd-bf__grid,.bd-social-grid,.bd-ig-grid,.bd-nf__grid,.bd-web__top,.bd-pkg,.bd-sm__grid,.bd-faq-grid{grid-template-columns:1fr}
  .bd-feeds{grid-template-columns:minmax(0,500px)}
  .bd-cards,.bd-posts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bd-inds{grid-template-columns:1fr 1fr}
  .bd-split{grid-template-columns:1fr}
  .bd-split__media{min-height:320px}
  .bd-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bd-step__txt{display:flex;flex-direction:column;gap:4px;padding-top:6px}
  .bd-ftr__cols{grid-template-columns:1fr 1fr}
  .bd-logos .bd-scroller__item{flex-basis:calc((100% - 44px)/3)}
  .bd-cta .bd-cta__grid{grid-template-columns:minmax(0,1fr)}
  .bd-cta__logo{max-width:240px}
}
@media (max-width:767px){
  .bd-wrap{width:calc(100% - 40px)}
  .bd-wrap--wide{width:calc(100% - 32px)}
  .bd-util__list li.bd-util__hide{display:none}
  .bd-hdr__cta{display:none}
  .bd-logo img{height:40px}
  .bd-strip{padding-block:22px}
  .bd-strip__cta,.bd-strip__cta .bd-btn{width:100%}
  .bd-cards,.bd-posts,.bd-inds,.bd-why{grid-template-columns:1fr}
  .bd-ind{aspect-ratio:4/3}
  .bd-ind__body{transform:none}
  .bd-ind p,.bd-ind__go{opacity:1}
  .bd-scroller{padding:0 6px}
  .bd-scroller__item{flex-basis:88%}
  .bd-scroller__btn{width:44px;height:44px}
  .bd-scroller__btn--prev{left:-8px}
  .bd-scroller__btn--next{right:-8px}
  .bd-logos .bd-scroller__item{flex-basis:calc((100% - 22px)/2)}
  .bd-stats-band__bg{top:0;height:100%;transform:none!important}
  .bd-stats-band{padding-block:72px}
  .bd-ftr__cols{grid-template-columns:1fr;padding-block:56px 40px}
  .bd-nf__links{grid-template-columns:1fr}
  .bd-cookie .bd-btn{flex:1 1 140px;min-width:0}
  .bd-cmp{grid-template-columns:1fr}
}
/* Narrow phones (320px): logo + call + WhatsApp + "Menu" ran past the edge and cut off the menu button.
   The burger goes icon-only (its aria-label stays "Open menu") and the logo steps down a little. */
@media (max-width:400px){
  .bd-hdr__tools{gap:6px}
  .bd-logo img{height:36px;width:auto}
  .bd-burger{padding:0}
  .bd-burger__txt{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-delay:0s!important}
  .bd-card:hover,.bd-card:focus-within,.bd-post:hover,.bd-callout:hover,.bd-blurb:hover,.bd-review-card:hover{transform:none}
}
/* Target sizes (Phase 4 audit, WCAG 2.5.8 / ux-fitts-hit-area): larger hit areas without moving anything.
   Padding on these short links is cancelled by an equal negative margin, so the bars keep their height. */
.bd-util a,.bd-bar a,.bd-bar button{display:inline-block;padding-block:12px;margin-block:-12px}
/* Release check §8: 44px targets in the header and footer (padding cancelled by an equal negative margin; icons get a
   pseudo-element hit area). Adjacent footer links share the overlap, as the bar and strip links do. */
.bd-ftr__cols a:not(.bd-logo):not(.bd-partner){display:inline-block;padding-block:9px;margin-block:-9px}
.bd-social a{position:relative}
.bd-social a::after{content:"";position:absolute;inset:-6px;border-radius:50%}
.bd-hdr .bd-logo,.bd-ftr .bd-logo{min-height:44px}
.bd-strip__note a,.bd-rating__count a{padding-block:8px;margin-block:-8px}
/* Post cards: the whole card opens the post (one link, the title); focus shows around the card */
.bd-post h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.bd-post h3 a:focus-visible{outline:none}
.bd-post:has(h3 a:focus-visible){outline:3px solid var(--focus);outline-offset:3px}

/* Press feedback (Phase 4 audit, physics-active-state): a slight squash while pressed, released at once. */
.bd-btn:active,.bd-chip-f:active,.bd-tool:active,.bd-scroller__btn:active,.bd-totop:active,.bd-pk:active,.bd-pager a:active{transform:scale(.97);transition-duration:var(--t-press)}
.bd-scroller__btn:active{transform:translateY(-50%) scale(.97)}
.bd-card:active,.bd-post:active,.bd-ccard:active,.bd-topic:active{transform:translateY(-4px) scale(.99);transition-duration:var(--t-press)}
@media (prefers-reduced-motion:reduce){
  .bd-btn:active,.bd-chip-f:active,.bd-tool:active,.bd-scroller__btn:active,.bd-totop:active,.bd-pk:active,.bd-pager a:active,.bd-card:active,.bd-post:active,.bd-ccard:active,.bd-topic:active{transform:none}
  .bd-scroller__btn:active{transform:translateY(-50%)}
}

/* Typography (Phase 4 audit): even figures where numbers change or line up, fewer one-word last lines,
   underlines clear of descenders. */
.bd-stat__num,[data-count],.bd-plan__price,.bd-vs__price,.bd-pk__price,.bd-dtbl td,.bd-kpi b{font-variant-numeric:tabular-nums}
p,li,dd,blockquote{text-wrap:pretty}
a{text-underline-offset:.18em}
