/* Meraki r4 design system: one token set, one canonical stylesheet (renovation plan D2–D5, 24 Oct 2026).
   Principles: Apple-level clarity (one message per section, generous space,
   quiet UI); Meraki identity (white, ink, Meraki orange for the primary action only, Newsreader serif for
   H1/H2, Geist for everything else, IBM Plex Sans Arabic for Arabic). WCAG 2.2 AA targets.
   Breakpoints (4): 480 · 768 · 1024 · 1180 px.
   Pages still on the 7 Oct component layer load public/css/meraki.css inside the low-priority
   "legacy" cascade layer, so every rule here wins over it. Rules here therefore avoid legacy class
   names unless they deliberately restyle a shared component (buttons, fields, dialogs, search, consent). */

@font-face{font-family:'Geist';font-style:normal;font-weight:400 700;font-display:optional;src:url('/assets/fonts/geist-latin-ext-v5.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Geist';font-style:normal;font-weight:400 700;font-display:optional;src:url('/assets/fonts/geist-latin-v5.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:'Newsreader';font-style:normal;font-weight:400 600;font-display:optional;src:url('/assets/fonts/newsreader-latin-ext-v26.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400 600;font-display:optional;src:url('/assets/fonts/newsreader-latin-v26.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}
/* D4: one OFL Arabic family, self-hosted (Arabic subset only; Latin falls through to Geist). */
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/ibm-plex-sans-arabic-400-v15.woff2') format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/ibm-plex-sans-arabic-600-v15.woff2') format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}

:root{
  /* palette (unchanged brand values; the legacy layer defines the same five) */
  --bg:#ffffff; --paper:#ffffff; --ink:#17181a; --accent:#ee6a1f; --dark:#16191d;
  /* colour roles */
  --canvas:var(--bg); --band:#f5f5f7; --band-2:#ebebef;
  --text:var(--ink); --text-2:#3c3d41; --text-3:#66686d;            /* 5.6:1 on white, 5.1:1 on band */
  --hair:#e5e5ea; --hair-2:#d2d2d7; --hair-strong:#86888d;          /* field borders 3.5:1 (WCAG 1.4.11) */
  --orange:var(--accent); --orange-hover:#f27b33; --orange-ink:#944213; --orange-wash:#fdf1ea; --on-orange:#17181a;
  --night:var(--dark); --night-2:#20242a; --on-night:#f5f5f7; --on-night-2:#aeb2b8;
  --good:#2f6b4f; --bad:#a32316; --bad-wash:#fbeceb; --focus-ring:#0a66d6;
  /* type: 10 sizes */
  --f-sans:'Geist',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-serif:'Newsreader','Iowan Old Style',Georgia,serif;
  --f-ar:'IBM Plex Sans Arabic','Geist','Segoe UI',Tahoma,sans-serif;
  --t-hero:clamp(2.75rem,1.55rem + 4.9vw,4.75rem);   /* 44 → 76 */
  --t-h2:clamp(2rem,1.3rem + 2.8vw,3.375rem);         /* 32 → 54 */
  --t-h3:clamp(1.375rem,1.15rem + .9vw,1.875rem);     /* 22 → 30 */
  --t-price:clamp(2.125rem,1.8rem + 1.2vw,2.75rem);   /* 34 → 44 */
  --t-card:clamp(1.1875rem,1.08rem + .4vw,1.4375rem); /* 19 → 23 */
  --t-lead:clamp(1.125rem,1.04rem + .35vw,1.3125rem); /* 18 → 21 */
  --t-body:1.0625rem;  /* 17 */
  --t-ui:.9375rem;     /* 15: controls, card text, tables */
  --t-small:.875rem;   /* 14 */
  --t-cap:.8125rem;    /* 13 */
  /* space: 4-pt scale */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px; --s9:96px; --s10:128px;
  --section:clamp(64px,2rem + 6.4vw,128px);   /* reverses the 7 Oct 28–42 px density pass */
  --gutter:clamp(20px,5vw,48px);
  --content:1200px; --measure:680px; --wide:1440px;
  /* shape: 4 radii, 2 shadows */
  --r-card:24px; --r-tile:16px; --r-input:12px; --r-pill:999px;
  --sh-1:0 1px 2px rgb(0 0 0 / .04),0 10px 30px rgb(0 0 0 / .06);
  --sh-2:0 24px 64px rgb(0 0 0 / .14);
  --ease-r4:cubic-bezier(.25,.1,.25,1);
}

/* ---------- base ----------
   Element resets and generic utilities sit in the lowest layer ("r4-base"; pages on the legacy layer declare
   "@layer r4-base, legacy" first), so older component rules keep their colours and sizes while P0 components,
   written unlayered below, always win. */
@layer r4-base{
  *,*::before,*::after{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{margin:0;background:var(--canvas);color:var(--text);font-family:var(--f-sans);font-size:var(--t-body);line-height:1.5;font-feature-settings:'ss01','cv11';-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
  img,svg{display:block;max-width:100%}
  picture{display:contents}
  a{color:inherit}
  button,input,select,textarea{font:inherit;color:inherit}
  h1,h2{font-family:var(--f-serif)}
  :focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-radius:6px}
  .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
  .ic{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
  .wordmark{height:19px;width:auto;fill:none;stroke:currentColor;stroke-width:8.5;stroke-linecap:butt;stroke-linejoin:miter;overflow:visible}
  .vat-incl{display:block;font:400 var(--t-cap)/1.45 var(--f-sans);color:var(--text-3);opacity:1;letter-spacing:0}
  .flip{transform:rotate(180deg)}
  [dir="rtl"] .flip{transform:none}
}
/* Site-wide on purpose: room for the sticky header, no horizontal page scroll (clip keeps sticky working). */
html{scroll-padding-top:100px}
body{overflow-x:clip}
[hidden]{display:none!important}
.skip{position:absolute;inset-inline-start:12px;top:-80px;z-index:200;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;text-decoration:none;font-weight:600;width:auto;height:auto;clip-path:none;overflow:visible}
.skip:focus{top:12px}
.gn .wordmark,.ft .wordmark{height:18px}

/* ---------- layout ---------- */
.container{width:min(100% - 2*var(--gutter),var(--content));margin-inline:auto}
.sec{padding-block:var(--section)}
.sec-band{background:var(--band)}
.sec-night{background:var(--night);color:var(--on-night)}
.sec-tight{padding-block:clamp(48px,1.5rem + 4vw,88px)}
.center{text-align:center}
.sec-head{margin-bottom:clamp(32px,1.25rem + 2.6vw,64px)}
.sec-head.center{margin-inline:auto;max-width:860px}
.sec-head .lede{margin-top:var(--s4)}
.sec-head.center .lede{margin-inline:auto;max-width:var(--measure)}

/* ---------- type ---------- */
.kicker{display:block;margin:0 0 var(--s3);font:600 var(--t-small)/1.3 var(--f-sans);letter-spacing:.01em;color:var(--orange-ink)}
.display{margin:0;font:500 var(--t-hero)/1.02 var(--f-serif);letter-spacing:-.028em;text-wrap:balance}
.title{margin:0;font:500 var(--t-h2)/1.06 var(--f-serif);letter-spacing:-.024em;text-wrap:balance}
.title-3{margin:0;font:600 var(--t-h3)/1.15 var(--f-sans);letter-spacing:-.022em;text-wrap:balance}
.card-title{margin:0;font:600 var(--t-card)/1.2 var(--f-sans);letter-spacing:-.018em}
.lede{margin:0;font-size:var(--t-lead);line-height:1.42;color:var(--text-2);letter-spacing:-.01em;text-wrap:pretty}
.small-print{margin:0;font-size:var(--t-small);line-height:1.5;color:var(--text-3)}
.cap{margin:0;font-size:var(--t-cap);line-height:1.5;color:var(--text-3)}
.sec-night .kicker{color:#ff9a5c}
.sec-night .title{color:#fff}
.sec-night .lede{color:var(--on-night-2)}

/* ---------- buttons (one vocabulary site-wide: accent = the primary action, outline = secondary) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:11px 24px;border-radius:var(--r-pill);border:1.5px solid transparent;font:600 var(--t-body)/1.2 var(--f-sans);letter-spacing:-.01em;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color .2s var(--ease-r4),color .2s var(--ease-r4),border-color .2s var(--ease-r4),transform .2s var(--ease-r4)}
.btn .ic{width:18px;height:18px;transition:transform .25s var(--ease-r4)}
.btn:hover .ic:last-child{transform:translateX(3px)}
[dir="rtl"] .btn .ic:last-child:not(.ic-brand){transform:scaleX(-1)}
[dir="rtl"] .btn:hover .ic:last-child:not(.ic-brand){transform:scaleX(-1) translateX(3px)}
.btn:active{transform:translateY(1px)}
.btn-accent{background:var(--orange);color:var(--on-orange)}
.btn-accent:hover{background:var(--orange-hover);color:var(--on-orange)}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:#2c2e32;color:#fff}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:#ececef;color:var(--ink)}
.btn-soft{background:var(--band);color:var(--ink)}
.btn-soft:hover{background:var(--band-2)}
.btn-link-btn,.btn-link{background:none;border-color:transparent;color:var(--ink);padding-inline:8px;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:5px;text-decoration-thickness:1.5px}
.btn-small{min-height:44px;padding:8px 18px;font-size:var(--t-ui)}
.btn-wide{width:100%}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.sec-night .btn-outline,.close-sec .btn-outline{color:#fff;border-color:rgb(255 255 255 / .55)}
.sec-night .btn-outline:hover,.close-sec .btn-outline:hover{background:#fff;color:var(--ink)}
.row-actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.center .row-actions,.row-actions.is-center{justify-content:center}
.text-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1.5px solid var(--orange);padding-bottom:2px;background:none;border-top:0;border-inline:0;cursor:pointer;font-size:inherit}
.text-link:hover{color:var(--orange-ink)}
.text-link .ic{width:16px;height:16px}
[dir="rtl"] .text-link .ic{transform:scaleX(-1)}
.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--r-input);border:0;background:none;color:var(--ink);cursor:pointer}
.icon-btn:hover{background:var(--band)}
.icon-btn .ic{width:20px;height:20px}

/* ---------- global navigation (D6–D7): logo · centred menu · search, EN/ع, Get your plan ---------- */
.gn{position:sticky;top:0;z-index:70;padding:12px var(--gutter) 0}
.gn-bar{position:relative;max-width:var(--wide);margin-inline:auto;display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:center;gap:var(--s4);height:64px;padding-inline:20px 10px;background:rgb(255 255 255 / .86);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:1px solid rgb(0 0 0 / .08);border-radius:18px;box-shadow:var(--sh-1)}
.gn-logo{justify-self:start;display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--ink);text-decoration:none}
.gn-logo .wordmark{height:18px}
.gn-logo-sub{font:600 .625rem/1 var(--f-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);padding-inline-start:10px;border-inline-start:1px solid var(--hair-2);white-space:nowrap}
.gn-nav{justify-self:center}
.gn-menu{display:flex;align-items:center;gap:2px;margin:0;padding:0;list-style:none}
.gn-item{display:flex;align-items:center;position:static}
.gn-link{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:8px 10px;border-radius:10px;font:600 var(--t-ui)/1.2 var(--f-sans);color:var(--text-2);text-decoration:none;white-space:nowrap}
.gn-link:hover{color:var(--ink);background:var(--band)}
.gn-link[aria-current="page"]{color:var(--ink)}
.gn-link[aria-current="page"]::after{content:"";position:absolute;inset-inline:10px;bottom:3px;height:2px;border-radius:2px;background:var(--orange)}
.gn-chev{display:inline-grid;place-items:center;width:28px;height:36px;margin-inline-start:-6px;padding:0;border:0;border-radius:8px;background:none;color:var(--text-3);cursor:pointer}
.gn-chev:hover,.gn-chev[aria-expanded="true"]{color:var(--ink);background:var(--band)}
.gn-chev .ic{width:15px;height:15px;transition:transform .2s var(--ease-r4)}
.gn-chev[aria-expanded="true"] .ic{transform:rotate(180deg)}
.gn-actions{justify-self:end;display:flex;align-items:center;gap:6px}
.gn-actions .icon-btn{width:44px;height:44px}
.gn-cta{min-height:40px;padding:8px 18px;font-size:var(--t-ui)}
.gn-toggle{display:none}
.gn-toggle .ic-close,.gn-toggle[aria-expanded="true"] .ic-open{display:none}
.gn-toggle[aria-expanded="true"] .ic-close{display:block}
/* compact language toggle: EN | ع (W3C i18n: the other language in its own script) */
.gn-lang{display:inline-flex;align-items:center;padding:3px;border-radius:12px;background:var(--band);font:600 var(--t-small)/1 var(--f-sans)}
.gn-lang>*{display:inline-grid;place-items:center;min-width:38px;height:34px;padding-inline:8px;border-radius:9px;color:var(--text-3);text-decoration:none}
.gn-lang>a:hover{color:var(--ink)}
.gn-lang>[aria-current="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgb(0 0 0 / .08)}
.gn-lang [lang="ar"]{font-family:var(--f-ar);font-size:1rem}
/* panels */
.gn-panel{position:absolute;inset-inline:0;top:calc(100% + 8px);padding:32px 40px 36px;background:#fff;border:1px solid rgb(0 0 0 / .08);border-radius:20px;box-shadow:var(--sh-2);animation:gn-in .18s var(--ease-r4)}
@keyframes gn-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.gn-panel-grid{display:grid;grid-auto-flow:column;grid-template-columns:minmax(260px,1.3fr);grid-auto-columns:minmax(0,1fr);gap:40px}
.gn-panel-lead a{display:block;font:500 1.625rem/1.15 var(--f-serif);letter-spacing:-.015em;color:var(--ink);text-decoration:none}
.gn-panel-lead a:hover{color:var(--orange-ink)}
.gn-panel-lead p{margin:10px 0 0;max-width:30ch;font-size:var(--t-small);color:var(--text-3)}
.gn-group{margin:0 0 12px;font:600 var(--t-cap)/1.3 var(--f-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.gn-panel ul{margin:0;padding:0;list-style:none}
.gn-panel li a{display:block;padding:6px 0;font:600 var(--t-ui)/1.35 var(--f-sans);color:var(--text-2);text-decoration:none}
.gn-panel li a:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:4px}
.gn-panel li small{display:block;margin-top:1px;font-weight:400;font-size:var(--t-cap);color:var(--text-3)}
.gn-scrim{position:fixed;inset:0;z-index:65;background:rgb(0 0 0 / .18);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.gn-sheet-foot{display:none}

/* ---------- footer ---------- */
.ft{background:var(--band);color:var(--text-2);padding-block:clamp(48px,2rem + 4vw,88px) 32px;font-size:var(--t-small)}
.ft-top{display:grid;grid-template-columns:1.4fr 1fr 1fr .9fr 1.35fr;gap:40px}
.ft-brand .wordmark{height:18px;color:var(--ink)}
.ft-brand p{margin:16px 0 0;max-width:34ch;line-height:1.55;color:var(--text-3)}
.ft h2{margin:0 0 14px;font:600 var(--t-cap)/1.3 var(--f-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.ft ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.ft a{color:var(--text-2);text-decoration:none}
.ft a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ft-contact li{display:flex;gap:8px;align-items:flex-start}
.ft-contact .ic{width:16px;height:16px;margin-top:2px;color:var(--text-3)}
.ft-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-top:48px;padding-top:20px;border-top:1px solid var(--hair-2);color:var(--text-3);font-size:var(--t-cap)}
.ft-bottom p{margin:0;max-width:80ch}
.ft-legal{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.ft-legal button{padding:0;border:0;background:none;font-size:var(--t-cap);color:var(--text-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* ---------- talk routes: floating contact (desktop) and dock (phone) ---------- */
.float-contact{position:fixed;inset-inline-end:20px;bottom:20px;z-index:48;display:flex;gap:8px;align-items:center;transition:opacity .25s,transform .25s}
.float-contact a{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;border-radius:var(--r-pill);text-decoration:none;font:600 var(--t-ui)/1 var(--f-sans);box-shadow:var(--sh-1)}
.fc-call{width:48px;background:#fff;border:1px solid var(--hair-2);color:var(--ink)}
.fc-wa{padding:0 18px 0 14px;background:var(--ink);color:#fff}
.float-contact a:hover{transform:translateY(-1px)}
.float-contact.is-aside{opacity:0;transform:translateY(12px);pointer-events:none}
.dock{display:none}
.quote-pill{position:fixed;inset-inline-end:20px;bottom:80px;z-index:50;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;border:0;border-radius:var(--r-pill);background:var(--ink);color:#fff;box-shadow:var(--sh-2);font:600 var(--t-small)/1 var(--f-sans);cursor:pointer}
.quote-pill b{display:grid;place-items:center;min-width:24px;height:24px;border-radius:var(--r-pill);background:var(--orange);color:var(--on-orange);font-size:var(--t-cap)}
/* Centred with physical left + translate in both directions (P5, review B-P1-2: a logical inset-inline-start beside
   left:50% gave RTL left:50% AND right:50%, a zero-width box). */
.toast{position:fixed;left:50%;right:auto;bottom:28px;z-index:90;transform:translateX(-50%);width:max-content;max-width:min(92vw,460px);display:flex;gap:10px;align-items:center;padding:12px 18px;border-radius:var(--r-pill);background:var(--ink);color:#fff;font-size:var(--t-small);box-shadow:var(--sh-2)}

/* ---------- search ---------- */
.site-search{position:fixed;inset:0;z-index:95;display:grid;justify-items:center;align-items:start;padding:12vh 16px 16px}
.site-search-box{position:relative;width:min(100%,680px);padding:20px;background:#fff;border-radius:var(--r-card);box-shadow:var(--sh-2);animation:gn-in .2s var(--ease-r4)}
.site-search-field{display:flex;align-items:center;gap:10px;min-height:56px;padding:0 56px 0 18px;border:1.5px solid var(--hair-strong);border-radius:var(--r-pill);background:#fff;font-size:1.0625rem}
[dir="rtl"] .site-search-field{padding:0 18px 0 56px}
.site-search-field input{flex:1;min-width:0;border:0;outline:0;background:none}
.site-search-field .ic{color:var(--text-3)}
.site-search-x{position:absolute;inset-inline-end:28px;top:26px;width:44px;height:44px;border-radius:50%}
.site-search-results{max-height:56vh;margin:12px 0 0;padding:0;list-style:none;overflow-y:auto}
.site-search-results a{display:grid;grid-template-columns:120px 1fr;column-gap:14px;padding:12px;border-radius:var(--r-input);text-decoration:none}
.site-search-results a:hover,.site-search-results a:focus-visible,.site-search-results a.is-first{background:var(--band)}
.site-search-results b{font-weight:600}
.site-search-results small{grid-column:2;color:var(--text-3);font-size:var(--t-small)}
.site-search .fine{margin:12px 4px 2px;font-size:var(--t-small);color:var(--text-3)}
.sr-kind{grid-row:span 2;align-self:start;margin-top:2px;font:600 var(--t-cap)/1.3 var(--f-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--orange-ink)}

/* ---------- consent ---------- */
.consent-panel{position:fixed;inset:auto 24px 24px;z-index:150;display:flex;align-items:center;gap:24px;max-width:1120px;margin-inline:auto;padding:20px 24px;background:#fff;color:var(--ink);border:1px solid var(--hair-2);border-radius:var(--r-tile);box-shadow:var(--sh-2)}
.consent-panel h2{margin:0 0 6px;font:600 1.0625rem/1.3 var(--f-sans)}
.consent-panel p{margin:0;max-width:66ch;font-size:var(--t-small);line-height:1.5;color:var(--text-2)}
.consent-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;flex-shrink:0;max-width:450px}
.consent-actions .btn{min-height:44px;font-size:var(--t-ui)}
.consent-actions>a{font-size:var(--t-small);text-decoration:underline}

/* ---------- request dialog and fields (shared) ---------- */
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px}
.modal-scrim{position:absolute;inset:0;background:rgb(12 12 14 / .48);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.modal-box{position:relative;width:min(100%,600px);max-height:calc(100dvh - 32px);overflow-y:auto;background:#fff;border-radius:var(--r-card);box-shadow:var(--sh-2);animation:gn-in .25s var(--ease-r4)}
.modal-head{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px 16px;background:#fff;border-bottom:1px solid var(--hair)}
.modal-head h2{margin:0;font:500 1.75rem/1.15 var(--f-serif);letter-spacing:-.015em}
.modal-step{margin:0 0 6px;font:600 var(--t-cap)/1.3 var(--f-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--orange-ink)}
.modal-form{padding:20px 28px 28px}
.modal .fine{font-size:var(--t-small);color:var(--text-3);line-height:1.5;margin:0 0 10px}
.modal .fine a{color:var(--ink)}
.modal .selection{margin-bottom:18px;padding:14px 16px;border-radius:var(--r-input);background:var(--band);font-size:var(--t-ui)}
.modal .selection-label{margin:0 0 4px;font:600 var(--t-cap)/1.3 var(--f-sans);color:var(--text-3)}
.modal .selection-body{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.modal .selection-body b{font-weight:600;line-height:1.45;white-space:pre-line}
.modal .selection .link{flex:none;padding:0;border:0;background:none;font:600 var(--t-small)/1.45 var(--f-sans);color:var(--ink);text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:3px;cursor:pointer}
.modal-lede{margin:0 0 18px;color:var(--text-2);font-size:var(--t-ui);line-height:1.5}
.more-fields{margin:2px 0 18px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.more-fields summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;font:600 var(--t-ui)/1.3 var(--f-sans);cursor:pointer;list-style:none}
.more-fields summary::-webkit-details-marker{display:none}
.more-fields summary .ic{width:18px;height:18px;color:var(--text-3);transition:transform .2s var(--ease-r4)}
.more-fields[open] summary .ic{transform:rotate(180deg)}
.more-grid{padding:4px 0 6px}
.modal .next-steps{margin:0 0 18px}
.modal .next-label{margin:0 0 8px;font:600 var(--t-small)/1.3 var(--f-sans);color:var(--text-2)}
.modal .next-steps ol{margin:0;padding:0;list-style:none;counter-reset:nx;display:grid;gap:8px}
.modal .next-steps li{counter-increment:nx;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:baseline;font-size:var(--t-ui);color:var(--text-2)}
.modal .next-steps li::before{content:counter(nx);display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--band);font:600 var(--t-cap)/1 var(--f-sans);color:var(--ink)}
.modal .done-ic{background:#e7f2ec!important;color:var(--good)!important}
.modal-actions,.send-row{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 14px}
.modal-actions .btn,.send-row .btn{flex:1 1 200px}
.modal .summary{margin-bottom:16px;padding:18px;border-radius:var(--r-input);background:var(--band);font-size:var(--t-ui)}
.modal .summary dl{margin:0;display:grid;gap:8px}
.modal .summary dl div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px}
.modal .summary dt{color:var(--text-3)}
.modal .summary dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}
[dir="rtl"] .modal .summary dd[dir="ltr"]{text-align:right}
.modal .done{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.modal .done-ic{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--band);color:var(--ink)}
.modal .done h3{margin:0 0 4px;font:600 1.0625rem/1.3 var(--f-sans)}
.modal .done p{margin:0;color:var(--text-2);font-size:var(--t-ui)}
[data-back]{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;font-weight:600;cursor:pointer}
.modal .field{display:grid;gap:6px;margin-bottom:14px;min-width:0}
.modal .field>span{font:600 var(--t-small)/1.3 var(--f-sans);color:var(--text-2)}
.modal .field input,.modal .field select,.modal .field textarea{width:100%;min-height:48px;padding:11px 14px;border:1.5px solid var(--hair-strong);border-radius:var(--r-input);background:#fff;font-size:1rem}
.modal .field textarea{min-height:96px;resize:vertical}
.modal .field select{appearance:none;-webkit-appearance:none;padding-inline-end:40px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2317181a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 14px center}
[dir="rtl"] .modal .field select{background-position:left 14px center}
.modal .field :is(input,select,textarea):focus{outline:3px solid var(--focus-ring);outline-offset:1px;border-color:var(--ink)}
.modal .field :is(input,select,textarea)[aria-invalid="true"]{border:2px solid var(--bad)}
.modal .field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.modal .field-error{color:var(--bad);font-size:var(--t-small);line-height:1.4}
.modal .form-error{margin:0 0 12px;padding:10px 14px;border-radius:var(--r-input);background:var(--bad-wash);color:#8c1d18;font-size:var(--t-ui)}
.enquiry-honeypot{position:absolute;inset-inline-start:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ---------- reveal (D5): hidden only once the reveal script has started, so nothing stays invisible ---------- */
@media (scripting:enabled){
  .rv-on .reveal:not(.is-in){opacity:0;transform:translateY(16px)}
}
.reveal{opacity:1;transform:none;transition:opacity .5s var(--ease-r4),transform .5s var(--ease-r4)}

/* =====================================================================================
   P0 page components
   ===================================================================================== */

/* ---------- opener (home hero, D8): white, centred ---------- */
.opener{padding-top:clamp(56px,2rem + 5vw,112px);padding-bottom:clamp(16px,2vw,32px);text-align:center;overflow:hidden}
.opener .display{max-width:14ch;margin-inline:auto}
.opener-price{margin:var(--s5) auto 0;display:grid;justify-items:center;gap:6px}
.opener-price strong{font:600 var(--t-lead)/1.3 var(--f-sans);letter-spacing:-.015em;color:var(--ink)}
.opener-basis{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 0;max-width:90ch;font-size:var(--t-small);color:var(--text-3)}
.opener-basis>span{display:inline-flex;align-items:center}
.opener-basis>span+span::before{content:"·";margin-inline:8px;color:var(--hair-strong)}
.opener-basis .vat-incl{display:inline;font-size:inherit}
.opener .row-actions{margin-top:var(--s6);justify-content:center}
.trust-line{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;margin:var(--s6) 0 0;padding:0;list-style:none;color:var(--text-2);font:600 var(--t-small)/1.3 var(--f-sans)}
.trust-line li{display:inline-flex;align-items:center;gap:8px}
.trust-line .ic{width:18px;height:18px;color:var(--orange-ink)}
.opener-media{position:relative;width:min(100%,1040px);margin:clamp(32px,1.5rem + 3vw,64px) auto 0;aspect-ratio:1600/1043}
.opener-media img,.opener-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}

/* ---------- route cards: whole card is one link ---------- */
.routes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none}
.route-card{display:flex;flex-direction:column;height:100%;overflow:hidden;background:#fff;border-radius:var(--r-card);color:var(--ink);text-decoration:none;transition:transform .3s var(--ease-r4),box-shadow .3s var(--ease-r4)}
.route-card:hover{transform:translateY(-4px);box-shadow:var(--sh-1)}
.route-card figure{margin:0;aspect-ratio:4/3;display:grid;place-items:center;padding:20px 16px 0}
.route-card figure img{width:100%;height:100%;object-fit:contain}
.route-card figure picture{display:block;width:100%;height:100%}
.route-body{display:flex;flex-direction:column;flex:1;gap:8px;padding:12px 24px 24px}
.route-body p{margin:0;color:var(--text-3);font-size:var(--t-ui);line-height:1.45}
.route-go{margin-top:auto;padding-top:14px;display:inline-flex;align-items:center;gap:6px;font:600 var(--t-ui)/1.2 var(--f-sans);color:var(--ink)}
.route-go .ic{width:16px;height:16px;color:var(--orange-ink);transition:transform .25s var(--ease-r4)}
.route-card:hover .route-go .ic{transform:translateX(3px)}
[dir="rtl"] .route-go .ic{transform:scaleX(-1)}
[dir="rtl"] .route-card:hover .route-go .ic{transform:scaleX(-1) translateX(3px)}

/* ---------- ready packages strip under the route cards (D14) ---------- */
.pk-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px;margin-top:28px;padding:18px 24px;border-radius:var(--r-tile);background:#fff}
.pk-strip-title{margin:0;display:grid;gap:2px;font:600 var(--t-ui)/1.3 var(--f-sans)}
.pk-strip-title span{font-weight:400;font-size:var(--t-small);color:var(--text-3)}
.pk-strip ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.pk-strip ul a{display:grid;gap:1px;min-height:44px;padding:10px 16px;border-radius:var(--r-input);background:var(--band);color:var(--ink);text-decoration:none;font-size:var(--t-small)}
.pk-strip ul a:hover{background:var(--band-2)}
.pk-strip ul b{font-weight:600}
.pk-strip ul span{color:var(--text-2)}
.pk-strip ul .vat-incl{font-size:var(--t-cap)}
.pk-strip .text-link{font-size:var(--t-small)}
@media (max-width:768px){.pk-strip{display:grid;padding:18px}.pk-strip ul{display:grid}}

/* ---------- your finance year (dark band, animated line) ---------- */
.year-sec{background:#0e1013;color:var(--on-night)}
.year-sec .kicker{color:#ff9a5c}
.year-sec .title{color:#fff}
.year-sec .lede{color:var(--on-night-2)}
.year{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:8px 0 0;padding:0;list-style:none;counter-reset:step}
.year::before{content:"";position:absolute;top:27px;inset-inline:6%;height:2px;background:rgb(255 255 255 / .14)}
.year::after{content:"";position:absolute;top:26px;inset-inline-start:6%;width:calc(88% * var(--k,1));height:4px;border-radius:4px;background:linear-gradient(90deg,#ee6a1f,#ffb27a);box-shadow:0 0 14px rgb(238 106 31 / .85),0 0 32px rgb(238 106 31 / .4)}
[dir="rtl"] .year::after{background:linear-gradient(-90deg,#ee6a1f,#ffb27a)}
.year li{position:relative;text-align:center;padding-inline:8px}
.year-dot{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;margin:0 auto 20px;border-radius:50%;background:#16191d;border:1.5px solid rgb(255 255 255 / .18);color:#8e9196;transition:border-color .4s var(--ease-r4),color .4s var(--ease-r4),box-shadow .4s var(--ease-r4),transform .4s var(--ease-r4)}
.year-dot .ic{width:22px;height:22px}
.year li.lit .year-dot{border-color:#ee6a1f;color:#ffb27a;box-shadow:0 0 0 6px rgb(238 106 31 / .12),0 0 28px rgb(238 106 31 / .6);transform:scale(1.05)}
.year h3{margin:0 0 6px;font:600 1.1875rem/1.3 var(--f-sans);letter-spacing:-.015em;color:#fff}
.year h3::before{content:counter(step,decimal-leading-zero);counter-increment:step;display:block;margin-bottom:4px;font-size:var(--t-cap);font-weight:700;letter-spacing:.08em;color:#ff9a5c}
.year p{margin:0;color:var(--on-night-2);font-size:var(--t-ui);line-height:1.5}
.year-spark{position:absolute;top:21px;inset-inline-start:6%;z-index:0;width:14px;height:14px;border-radius:50%;background:#ffe0c8;box-shadow:0 0 12px 4px rgb(255 140 60 / .9),0 0 36px 12px rgb(238 106 31 / .45);opacity:0;pointer-events:none}
.year.is-drawn.in-view .year-spark{animation:year-spark 6s cubic-bezier(.45,0,.55,1) infinite}
@keyframes year-spark{0%{inset-inline-start:6%;opacity:0}10%{opacity:1}90%{opacity:1}100%{inset-inline-start:calc(94% - 14px);opacity:0}}
@keyframes year-spark-v{0%{top:28px;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:calc(100% - 42px);opacity:0}}
.year-axis{display:flex;justify-content:space-between;margin-top:36px;padding-top:14px;border-top:1px solid rgb(255 255 255 / .12);color:var(--on-night-2);font:600 var(--t-cap)/1 var(--f-sans);letter-spacing:.02em}

/* ---------- plan controls: segmented control + select ---------- */
.ctl-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:16px 20px;margin-bottom:36px}
.ctl{display:grid;gap:8px;justify-items:start}
.ctl-label{font:600 var(--t-cap)/1.2 var(--f-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}
.segbar{display:inline-flex;gap:2px;padding:4px;border-radius:var(--r-pill);background:var(--band)}
.sec-band .segbar{background:#fff}
.segbar button{min-height:44px;padding:8px 18px;border:0;border-radius:var(--r-pill);background:none;font:600 var(--t-ui)/1.2 var(--f-sans);color:var(--text-2);cursor:pointer;white-space:nowrap}
.segbar button:hover{color:var(--ink)}
.segbar button[aria-checked="true"]{background:var(--ink);color:#fff}
.segbar em{font-style:normal;font-weight:500;opacity:.75}
.selectbox{position:relative;display:inline-block}
.selectbox select{appearance:none;-webkit-appearance:none;min-height:48px;min-width:200px;padding:10px 44px 10px 18px;border:1.5px solid var(--hair-strong);border-radius:var(--r-pill);background:#fff;font:600 var(--t-ui)/1.2 var(--f-sans);color:var(--ink);cursor:pointer}
[dir="rtl"] .selectbox select{padding:10px 18px 10px 44px}
.selectbox .ic{position:absolute;inset-inline-end:16px;top:50%;width:16px;height:16px;transform:translateY(-50%);pointer-events:none}

/* ---------- plan cards (D10): equal heights, price first, short spec list ---------- */
.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.tier{position:relative;display:grid;grid-row:span 11;grid-template-rows:subgrid;row-gap:0;padding:32px 28px 28px;background:#fff;border:1px solid var(--hair);border-radius:var(--r-card)}
.sec-band .tier{border-color:transparent}
.tier.is-featured{border:2px solid var(--orange);padding:31px 27px 27px}
.tier.is-picked:not(.is-featured){box-shadow:inset 0 0 0 2px var(--ink)}
.tier-flag{position:absolute;top:-13px;inset-inline-start:26px;padding:5px 12px;border-radius:var(--r-pill);background:var(--orange);color:var(--on-orange);font:700 var(--t-cap)/1.2 var(--f-sans);letter-spacing:.01em}
.tier h3{margin:0;font:600 1.5rem/1.2 var(--f-sans);letter-spacing:-.02em}
.tier-fit{margin:6px 0 0;color:var(--text-3);font-size:var(--t-ui);line-height:1.45}
.tier-price{margin:22px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.tier-from{flex-basis:100%;font-size:var(--t-small);font-weight:600;color:var(--text-3)}
.tier-amt{font:600 var(--t-price)/1.05 var(--f-sans);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.tier-amt small{font-size:.42em;font-weight:500;letter-spacing:0;color:var(--text-3)}
.tier-per{font-size:var(--t-ui);color:var(--text-3)}
.tier-quote{font:600 1.5rem/1.2 var(--f-sans);letter-spacing:-.02em}
.tier-vat{margin:6px 0 0}
.tier-vat .vat-incl{display:block}
.tier-sub{margin:4px 0 0;font-size:var(--t-small);color:var(--text-2)}
.tier-spec{grid-row:span 6;display:grid;grid-template-rows:subgrid;margin:24px 0 28px;padding:0}
.tier-spec>div{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:12px;padding:11px 0;border-top:1px solid var(--hair);font-size:var(--t-ui);line-height:1.35}
.tier-spec>div:last-child{border-bottom:1px solid var(--hair)}
.tier-spec dt{color:var(--text-3)}
.tier-spec dd{margin:0;font-weight:600;text-align:end;color:var(--ink)}
.tier-spec dd.is-muted{font-weight:500;color:var(--text-3)}
.tier .btn{grid-row:-2 / -1;width:100%;align-self:end}
.plans-foot{margin-top:32px;display:grid;justify-items:center;gap:14px;text-align:center}
.plans-foot .small-print{max-width:72ch}
.plans-foot .row-actions{justify-content:center;gap:12px 28px}
.plan-for{margin:-12px 0 32px;text-align:center;font-size:var(--t-ui);color:var(--text-2)}
.plan-for b{color:var(--ink)}
.plan-for a{display:inline-flex;align-items:center;min-height:44px;padding-inline:4px}
.txn-def{max-width:860px;margin:28px auto 0;padding:18px 22px;border-radius:var(--r-tile);background:#fff;font-size:var(--t-small);line-height:1.55;color:var(--text-2);text-align:start}
.sec:not(.sec-band) .txn-def{background:var(--band)}
.txn-def strong{color:var(--ink)}
.bespoke{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;max-width:860px;margin:20px auto 0;padding:20px 24px;border-radius:var(--r-tile);border:1px solid var(--hair-2);text-align:start}
.bespoke h3{margin:0 0 4px;font:600 1.0625rem/1.3 var(--f-sans)}
.bespoke p{margin:0;font-size:var(--t-small);color:var(--text-3)}

/* ---------- what you receive ---------- */
.deliver{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px);align-items:center}
.ticks{display:grid;gap:14px;margin:28px 0 0;padding:0;list-style:none}
.ticks li{display:grid;grid-template-columns:24px 1fr;gap:12px;font-size:1.0625rem;line-height:1.45;color:var(--text-2)}
.ticks .ic{width:22px;height:22px;margin-top:1px;color:var(--orange-ink);stroke-width:2}
.deliver figure{margin:0;padding:clamp(16px,3vw,40px);border-radius:var(--r-card);background:var(--band)}
.deliver figure img{width:100%;height:auto;border-radius:12px;box-shadow:var(--sh-1)}
.deliver .row-actions{margin-top:32px}

/* ---------- FAQ: one calm accordion list ---------- */
.qa{max-width:860px;margin-inline:auto;border-top:1px solid var(--hair-2)}
.qa details{border-bottom:1px solid var(--hair-2)}
.qa summary{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:64px;padding:18px 4px;font:600 1.125rem/1.35 var(--f-sans);letter-spacing:-.012em;cursor:pointer;list-style:none}
.qa summary::-webkit-details-marker{display:none}
.qa summary .ic{width:22px;height:22px;color:var(--text-3);transition:transform .25s var(--ease-r4)}
.qa details[open] summary .ic{transform:rotate(45deg)}
.qa details p{margin:0;padding:0 4px 24px;max-width:70ch;color:var(--text-2);line-height:1.6}
.qa-more{margin-top:28px;text-align:center}

/* ---------- official references (quiet) ---------- */
.authority-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0 0;padding:0;list-style:none}
.authority-row a{height:100%;display:grid;justify-items:center;align-content:start;gap:10px;padding:20px 12px;border-radius:var(--r-tile);background:#fff;border:1px solid var(--hair);color:var(--text-2);text-decoration:none;font-size:var(--t-small);text-align:center;line-height:1.35}
.authority-row a:hover{border-color:var(--hair-strong)}
.authority-row img{width:auto;max-width:min(160px,100%);height:48px;object-fit:contain}

/* ---------- accounting plans band (D15): one reusable band above the closing section ---------- */
.plans-band-sec{padding-block:clamp(40px,1rem + 4vw,72px)}
.sec-tight + .plans-band-sec{padding-top:0}
.pick,.pick-copy,.pick .ctl{min-width:0}
.plans-band{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;padding:clamp(24px,3vw,36px) clamp(24px,4vw,48px);border-radius:var(--r-card);background:var(--band)}
.plans-band .kicker{margin-bottom:6px}
.plans-band p{margin:0}
.plans-band-price{font:500 clamp(1.5rem,1.2rem + 1.2vw,2.125rem)/1.15 var(--f-serif);letter-spacing:-.018em;color:var(--ink)}
.plans-band .vat-incl{margin-top:4px}

/* ---------- closing section: centred ---------- */
.close-sec{background:var(--night);color:var(--on-night);text-align:center}
.close-sec .title{color:#fff;max-width:18ch;margin-inline:auto}
.close-sec .lede{max-width:48ch;margin:16px auto 0;color:var(--on-night-2)}
.close-sec .row-actions{margin-top:32px;justify-content:center}
.close-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:28px 0 0;padding:0;list-style:none}
.close-meta a,.close-meta span.chip{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border:1px solid rgb(255 255 255 / .22);border-radius:var(--r-pill);color:var(--on-night);font:600 var(--t-small)/1.2 var(--f-sans);text-decoration:none}
.close-meta a:hover{background:rgb(255 255 255 / .08)}
.close-meta span.chip{color:var(--on-night-2);font-weight:500}
.close-meta .ic{width:18px;height:18px}
.close-meta small{font-weight:500;color:var(--on-night-2)}

/* ---------- /accounting product page (D9) ---------- */
.pick-hero{padding-block:clamp(40px,1.5rem + 3vw,80px) clamp(48px,2rem + 3vw,88px)}
.pick-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.pick-copy h1{margin:0;font:500 var(--t-hero)/1.02 var(--f-serif);letter-spacing:-.028em;text-wrap:balance}
.pick-copy .lede{margin-top:var(--s4);max-width:36ch}
.pick-media{margin:0;aspect-ratio:1600/1043}
.pick-media img{width:100%;height:100%;object-fit:contain}
.pick{margin-top:var(--s6);padding:24px;border-radius:var(--r-card);background:var(--band);display:grid;gap:18px}
.pick-title{margin:0;font:600 var(--t-cap)/1.2 var(--f-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.pick .ctl{gap:6px}
.pick .segbar{background:#fff;flex-wrap:wrap}
.pick .selectbox select{min-width:0;width:100%}
.pick .selectbox{display:block}
.pick-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end}
.pick-out{padding-top:16px;border-top:1px solid var(--hair-2)}
.pick-price{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.pick-price b{font:600 var(--t-price)/1.05 var(--f-sans);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.pick-price span{color:var(--text-3)}
.pick-basis{margin:8px 0 0;font-size:var(--t-small);color:var(--text-2)}
/* Transaction definition and band rule beside the band picker (PRICE-NOTE-BANDS-2026-10-24) */
.pick-def{margin:0;font-size:var(--t-small);line-height:1.5;color:var(--text-2)}
.pick-def summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;cursor:pointer;list-style:none;font-weight:600;color:var(--ink)}
.pick-def summary::-webkit-details-marker{display:none}
.pick-def summary .ic{width:18px;height:18px;flex:none;color:var(--text-3)}
.pick-def summary span{text-decoration:underline;text-decoration-color:var(--hair-2);text-underline-offset:3px}
.pick-def p{margin:2px 0 6px}
.pick .row-actions{margin-top:4px}
.inc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none}
.inc-card{display:grid;align-content:start;gap:10px;padding:28px 24px;border-radius:var(--r-card);background:var(--band)}
.sec-band .inc-card{background:#fff}
.inc-card .badge{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--orange-wash);color:var(--orange-ink)}
.inc-card .badge .ic{width:22px;height:22px}
.inc-card h3{margin:6px 0 0;font:600 1.125rem/1.3 var(--f-sans);letter-spacing:-.012em}
.inc-card p{margin:0;color:var(--text-3);font-size:var(--t-ui);line-height:1.5}
.extras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}
.extra{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;align-items:start;padding:22px 24px;border-radius:var(--r-tile);background:#fff}
.extra h3{margin:0;font:600 1.0625rem/1.35 var(--f-sans)}
.extra p{margin:4px 0 0;font-size:var(--t-small);color:var(--text-3);line-height:1.5}
.extra-price{text-align:end;white-space:nowrap}
.extra-price b{display:block;font:600 1.125rem/1.3 var(--f-sans);font-variant-numeric:tabular-nums}
.extra-price .vat-incl{white-space:nowrap;margin-inline-start:auto}
.extra-plan{grid-column:1 / -1;display:grid;gap:6px;margin:6px 0 0;padding-top:12px;border-top:1px solid var(--hair);font-size:var(--t-small);color:var(--text-2)}
.extra-plan-k{font-weight:600;color:var(--ink)}
.extra-plan-rates{display:flex;flex-wrap:wrap;gap:6px 24px}
.extra-rate b{font-weight:600;margin-inline-end:6px}
.extra-rate .vat-incl{display:block}
.extras-note{margin-top:20px;text-align:center}
.month-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none;counter-reset:m}
.month-steps li{padding:24px 0 0;border-top:2px solid var(--ink)}
.month-steps li::before{content:counter(m,decimal-leading-zero);counter-increment:m;display:block;margin-bottom:12px;font:700 var(--t-cap)/1 var(--f-sans);letter-spacing:.08em;color:var(--orange-ink)}
.month-steps h3{margin:0 0 6px;font:600 1.125rem/1.3 var(--f-sans);letter-spacing:-.012em}
.month-steps p{margin:0;font-size:var(--t-ui);color:var(--text-3);line-height:1.5}
.month-receive{margin-top:clamp(48px,4vw,80px)}
.cmp-wrap{position:relative;overflow-x:auto;border-radius:var(--r-card);background:#fff;border:1px solid var(--hair);-webkit-overflow-scrolling:touch}
.cmp{width:100%;min-width:720px;table-layout:fixed;border-collapse:collapse;font-size:var(--t-ui)}
.cmp caption{text-align:start}
.cmp th,.cmp td{padding:14px 18px;border-bottom:1px solid var(--hair);text-align:start;vertical-align:top;line-height:1.4}
.cmp thead th{position:sticky;top:0;background:#fff;font:600 1.0625rem/1.25 var(--f-sans);border-bottom:1px solid var(--hair-2)}
.cmp thead th small{display:block;margin-top:2px;font-size:var(--t-cap);font-weight:500;color:var(--text-3)}
.cmp tbody th{width:34%;font-weight:500;color:var(--text-2)}
.cmp td{font-weight:600}
.cmp td .vat-incl{font-weight:400}
.cmp .is-hl{background:#fffaf6}
.cmp .cmp-group th{padding-top:22px;font:600 var(--t-cap)/1.2 var(--f-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);background:var(--band)}
.cmp .yes{width:20px;height:20px;color:var(--good);stroke-width:2.2}
.cmp tfoot td,.cmp tfoot th{border-bottom:0;border-top:2px solid var(--hair-2);padding-block:18px}
.cmp tfoot .btn{margin-top:10px}
.price-matrix tbody th{white-space:nowrap}.price-txn-def{margin-top:16px}
.cmp-price{display:block}.cmp-price .vat-incl{display:block}.cmp-per{display:block;font-size:var(--t-small);color:var(--text-2)}
.cmp tbody tr:last-child>*{border-bottom:0}
.cmp-hint{display:none;margin:0 0 10px;font-size:var(--t-cap);color:var(--text-3)}
.minus-panel{max-width:860px;margin-inline:auto;padding:clamp(24px,3vw,40px);border-radius:var(--r-card);background:var(--band)}
.minus-panel h2{margin:0 0 18px;font:600 var(--t-card)/1.25 var(--f-sans);letter-spacing:-.015em}
.minus-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.minus-list li{display:grid;grid-template-columns:22px 1fr;gap:12px;color:var(--text-2);line-height:1.5}
.minus-list .ic{width:20px;height:20px;margin-top:2px;color:var(--text-3)}
.minus-panel .small-print{margin-top:18px}
.start-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none}
.start-steps li{padding:28px;border-radius:var(--r-card);background:#fff}
.start-steps .n{display:grid;place-items:center;width:40px;height:40px;margin-bottom:16px;border-radius:50%;background:var(--ink);color:#fff;font:700 var(--t-ui)/1 var(--f-sans)}
.start-steps h3{margin:0 0 6px;font:600 1.125rem/1.3 var(--f-sans)}
.start-steps p{margin:0;font-size:var(--t-ui);color:var(--text-3);line-height:1.5}
.terms-fold{max-width:860px;margin:28px auto 0;border-top:1px solid var(--hair-2)}
.terms-fold summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:14px 4px;font:600 1rem/1.3 var(--f-sans);cursor:pointer;list-style:none}
.terms-fold summary::-webkit-details-marker{display:none}
.terms-fold summary .ic{width:20px;height:20px;color:var(--text-3);transition:transform .25s}
.terms-fold[open] summary .ic{transform:rotate(45deg)}
.terms-grid-r4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;padding:4px 4px 20px}
.terms-grid-r4 h3{margin:0 0 4px;font:600 var(--t-ui)/1.3 var(--f-sans)}
.terms-grid-r4 p{margin:0;font-size:var(--t-small);color:var(--text-3);line-height:1.5}

/* ---------- Arabic (D4) and RTL ----------
   Arabic pages point both type tokens at the Arabic stack, so every component that sets its own font (buttons,
   nav, kickers, fields, cards) renders Arabic letters in IBM Plex Sans Arabic. Its files carry Arabic only
   (unicode-range), so Latin words and digits still fall through to Geist. No tracking on Arabic. */
:root[dir="rtl"]{--f-sans:var(--f-ar);--f-serif:var(--f-ar)}
:root[dir="rtl"] *{letter-spacing:0!important}
[dir="rtl"] :is(.display,.title,.title-3,.card-title,.gn-panel-lead a,.modal-head h2,.plans-band-price,.pick-copy h1){font-weight:600;line-height:1.3}
[dir="rtl"] :is(.display,.pick-copy h1){line-height:1.2}
[dir="rtl"] :is(.kicker,.ctl-label,.gn-group,.ft h2,.pick-title,.modal-step,.cmp .cmp-group th,.year-axis,.gn-logo-sub){text-transform:none}
[dir="rtl"] .gn-logo-sub{font-size:.75rem}
[dir="rtl"] .tier-flag{inset-inline-start:26px}

/* ---------- responsive (4 breakpoints) ---------- */
@media (max-width:1360px){.gn-logo-sub{display:none}}
@media (max-width:1180px){
  .gn{padding-top:8px}
  .gn-bar{grid-template-columns:auto 1fr auto;height:58px;padding-inline:16px 6px}
  .gn-nav{display:none}
  .gn-toggle{display:inline-grid}
  .gn-cta{display:none}
  .gn.is-open .gn-bar{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
  .gn.is-open .gn-nav{position:fixed;inset:74px 12px 12px;z-index:80;display:flex;flex-direction:column;justify-self:stretch;overflow:auto;padding:8px 8px 0;background:#fff;border:1px solid rgb(0 0 0 / .08);border-radius:20px;box-shadow:var(--sh-2)}
  .gn.is-open .gn-menu{flex-direction:column;align-items:stretch;gap:0}
  .gn.is-open .gn-item{flex-wrap:wrap;justify-content:space-between;border-bottom:1px solid var(--hair)}
  .gn.is-open .gn-item:last-child{border-bottom:0}
  .gn.is-open .gn-link{flex:1;min-height:56px;padding:12px 14px;font-size:1.1875rem;color:var(--ink)}
  .gn.is-open .gn-link:hover{background:none}
  .gn.is-open .gn-link[aria-current="page"]::after{inset-inline:14px auto;width:24px;bottom:8px}
  .gn.is-open .gn-chev{width:48px;height:48px;margin:0}
  .gn.is-open .gn-chev .ic{width:20px;height:20px}
  .gn-panel{position:static;flex-basis:100%;padding:0 14px 18px;border:0;border-radius:0;box-shadow:none;background:none;animation:none}
  .gn-panel-grid{grid-auto-flow:row;grid-template-columns:1fr;gap:16px}
  .gn-panel-lead p{display:none}
  .gn-panel-lead a{font:600 var(--t-body)/1.3 var(--f-sans);color:var(--orange-ink)}
  .gn.is-open .gn-sheet-foot{position:sticky;bottom:0;display:grid;gap:10px;margin-top:auto;padding:16px 6px 16px;background:#fff;border-top:1px solid var(--hair)}
  .gn-sheet-foot .btn{width:100%}
  .gn-sheet-foot p{margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;font-size:var(--t-small)}
  .gn-sheet-foot a:not(.btn){color:var(--text-2);text-decoration:none;font-weight:600}
  .gn-scrim{display:none}
  .ft-top{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ft-brand{grid-column:1 / -1}
}
@media (max-width:1024px){
  .routes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .month-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}
  .tiers{grid-template-columns:1fr;max-width:560px;margin-inline:auto;gap:28px}
  .tier{grid-row:auto;grid-template-rows:none;display:flex;flex-direction:column}
  .tier-spec{grid-row:auto;grid-template-rows:none;flex:1}
  .tier .btn{margin-top:auto}
  .pick-grid{grid-template-columns:1fr}
  .pick-media{display:none}
  .pick-copy{max-width:640px}
  .deliver{grid-template-columns:1fr}
  .extras{grid-template-columns:1fr}
}
@media (max-width:768px){
  .year{grid-template-columns:1fr;gap:0;max-width:520px;margin-inline:auto}
  .year::before{top:28px;bottom:28px;inset-inline-start:27px;inset-inline-end:auto;width:2px;height:auto}
  .year::after{top:28px;inset-inline-start:26px;width:4px;height:calc((100% - 56px) * var(--k,1));background:linear-gradient(180deg,#ee6a1f,#ffb27a)}
  [dir="rtl"] .year::after{background:linear-gradient(180deg,#ee6a1f,#ffb27a)}
  .year li{display:grid;grid-template-columns:56px 1fr;column-gap:18px;padding:0 0 28px;text-align:start}
  .year li:last-child{padding-bottom:0}
  .year-dot{grid-row:span 2;margin:0}
  .year h3{margin-top:4px}
  .year-spark{top:28px;inset-inline-start:21px}
  .year.is-drawn.in-view .year-spark{animation-name:year-spark-v}
  .year-axis{display:none}
  .start-steps{grid-template-columns:1fr}
  .authority-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
  .ft-bottom{flex-direction:column;align-items:flex-start}
  .float-contact{display:none}
  .dock{position:fixed;inset-inline:0;bottom:0;z-index:45;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:env(safe-area-inset-bottom);background:rgb(255 255 255 / .94);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--hair)}
  .dock:has(.dock-estimate:not([hidden])){grid-template-columns:repeat(4,minmax(0,1fr))}
  .dock a,.dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;padding:8px 4px;border:0;background:none;color:var(--ink);font:600 .75rem/1.2 var(--f-sans);text-decoration:none;cursor:pointer}
  .dock button[data-start]{color:var(--orange-ink)}
  .dock .ic{width:20px;height:20px}
  .dock-estimate b{display:inline-grid;place-items:center;min-width:17px;height:17px;padding-inline:3px;border-radius:50%;background:var(--orange);color:var(--on-orange);font-size:.65rem}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom))}
  .quote-pill{display:none}
  .consent-panel{inset:auto 12px 74px;display:block;max-height:65vh;overflow:auto;padding:16px}
  .consent-actions{margin-top:14px;gap:8px;align-items:stretch}
  .consent-actions .btn{flex:1 1 140px;white-space:normal;text-align:center}
  .modal{padding:0;align-items:end}
  .modal-box{width:100%;max-height:92dvh;border-radius:var(--r-card) var(--r-card) 0 0}
  .modal-head{padding:20px 20px 14px}
  .modal-form{padding:18px 20px 24px}
  .modal .field-row{grid-template-columns:1fr}
  .send-row .btn{flex:1 1 100%}
  .site-search{padding:72px 12px 12px}
  .site-search-results a{grid-template-columns:1fr}
  .site-search-results small{grid-column:1}
  .sr-kind{grid-row:auto}
  .ctl-row{display:grid;grid-template-columns:1fr;justify-items:stretch;gap:14px;max-width:420px;margin-inline:auto}
  .ctl{justify-items:stretch}
  .ctl .segbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr}
  .selectbox,.selectbox select{width:100%}
  .cmp-hint{display:block}
  .cmp tbody th,.cmp tfoot th{position:sticky;inset-inline-start:0;z-index:1;background:#fff;min-width:150px}
  .cmp .cmp-group th{position:static}
  .terms-grid-r4{grid-template-columns:1fr}
  .opener .row-actions .btn{flex:1 1 220px}
  .opener-basis{display:grid;gap:2px}
  .opener-basis>span{justify-content:center}
  .opener-basis>span+span::before{content:none}
  .close-meta li>*{width:100%}
  .close-sec .row-actions{flex-direction:column;align-items:stretch;max-width:360px;margin-inline:auto}
  .close-meta{display:grid;max-width:360px;margin-inline:auto}
  .plans-band{display:grid;text-align:center;justify-items:center}
  .pick .segbar,.ctl .segbar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
  .segbar button{padding:8px 10px;min-width:0}
  .pick-row{grid-template-columns:1fr}
  .bespoke{display:grid;text-align:center;justify-items:center}
}
@media (max-width:480px){
  .segbar em{display:none}
  .gn-lang>*{min-width:34px;padding-inline:6px}
  .routes{grid-template-columns:1fr}
  .route-card{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center}
  .route-card figure{width:112px;aspect-ratio:auto;height:auto;padding:10px 0 10px 10px;overflow:hidden}
  .route-card figure img{height:auto}
  [dir="rtl"] .route-card figure{padding:10px 10px 10px 0}
  .route-body{padding:16px 18px 16px 12px;gap:4px}
  .route-body p{font-size:var(--t-small)}
  .route-go{padding-top:6px}
  .inc-grid{grid-template-columns:1fr}
  .month-steps{grid-template-columns:1fr}
  .tier{padding:28px 22px 22px}
  .tier.is-featured{padding:27px 21px 21px}
  .extra{grid-template-columns:1fr}
  .extra-price{text-align:start}
  .extra-price .vat-incl{white-space:normal}
  .extra-price .vat-incl{margin-inline-start:0}
  .trust-line{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;text-align:start;max-width:360px;margin-inline:auto}
  .trust-line li{align-items:flex-start}
  .ft-top{grid-template-columns:1fr 1fr}
  .authority-row img{height:40px}
}

/* ---------- motion and print ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
  .year-spark{display:none}
}
@media print{
  .gn,.ft,.dock,.float-contact,.quote-pill,.consent-panel,.close-sec,.plans-band-sec{display:none!important}
  .reveal{opacity:1!important;transform:none!important}
}
/* P5 (reviews A-P2-5, B-P2-8): phone tap targets are at least 44px high; footer and breadcrumb links get padding. */
@media (max-width:760px){
  .ft a,.ft button{display:inline-flex;align-items:center;min-height:44px}
  .gn-sheet-foot a:not(.btn){display:inline-flex;align-items:center;min-height:44px}
  .crumbs a{display:inline-flex;align-items:center;min-height:32px}
}
/* P5 (review C-P1-1): visible "Illustration" label on people illustrations and the sample report. */
:is(.opener-media,.pick-media,.hub-plan-media,.ih-media,.pg-hero-media,.office-media,.gd-feature-card figure,.route-card figure,.pack-sample){position:relative}
.art-label{position:absolute;inset-block-start:10px;inset-inline-start:10px;z-index:1;margin:0;padding:3px 10px;border-radius:var(--r-pill);background:rgb(255 255 255 / .92);box-shadow:0 0 0 1px var(--hair-2);font:500 var(--t-cap)/1.4 var(--f-sans);color:var(--text-2);letter-spacing:0;pointer-events:none}
@media (max-width:760px){.route-card .art-label{display:none}}
/* P5 (review A-P1-3): on phones the plan price and its VAT-inclusive figure sit in the first screen. */
@media (max-width:760px){
  .pick-hero{padding-top:24px}
  .pick{margin-top:20px;padding:18px;gap:12px}
  .pick-row{gap:12px}
  .pick-out{padding-top:12px}
}
