/* ---------- Fonts: Basic Sans only ---------- */
@font-face{font-family:"Basic Sans";src:url("/assets/fonts/BasicSans-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Basic Sans";src:url("/assets/fonts/BasicSans-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Basic Sans";src:url("/assets/fonts/BasicSans-Italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Basic Sans";src:url("/assets/fonts/BasicSans-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Basic Sans";src:url("/assets/fonts/BasicSans-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

/* the fallback faces only stand in for Latin text (metrics of Basic Sans); Cyrillic and Chinese keep the system font, as before */
@font-face{font-family:"Basic Sans Fallback";src:local("Arial");font-weight:300 500;unicode-range:U+0000-024F,U+1E00-1EFF,U+2000-206F,U+20AC,U+2122,U+2212;size-adjust:101.26%;ascent-override:98.36%;descent-override:20.15%;line-gap-override:0%}
@font-face{font-family:"Basic Sans Fallback";src:local("Arial Bold"),local("Arial-BoldMT");font-weight:600 700;unicode-range:U+0000-024F,U+1E00-1EFF,U+2000-206F,U+20AC,U+2122,U+2212;size-adjust:93.8%;ascent-override:106.2%;descent-override:21.7%;line-gap-override:0%}
/* ---------- Tokens ---------- */
:root{
  --navy:#182453; --deep:#0d1638; --navy7:#1f2e6b;
  --bronze:#a38050; --bronze-t:#8a6838; --cream:#e2c5a1; --b100:#f0e3cc; --b50:#faf3e6;
  --off:#faf6ee; --white:#fff; --soft:#39405c; --mute:#5f6473; --line:#e8e2d6;
  --ok:#1a7f4d; --bad:#b3261e;
  --r1:8px; --r2:12px; --r3:18px; --r4:28px;
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:40px; --s6:48px; --s7:56px; --s8:64px; --s12:96px; --s14:112px;
  --shadow:0 1px 2px rgba(24,36,83,.06), 0 8px 24px rgba(24,36,83,.06);
  --shadow-lg:0 2px 4px rgba(24,36,83,.06), 0 24px 48px rgba(24,36,83,.12);
  --gutter:24px; --wrap:1200px; --rule:var(--bronze);
  --sec:var(--s14);
  --header:80px;
}
@media (max-width:720px){:root{--sec:72px;--header:64px}}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header) + var(--s3))}
[hidden]{display:none!important}
body{margin:0;font:400 17px/1.6 "Basic Sans","Basic Sans Fallback",system-ui,sans-serif;color:var(--soft);background:var(--off);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,dl,figure{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{color:var(--navy);font-weight:700;letter-spacing:-.015em}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--bronze);outline-offset:3px;border-radius:var(--r1)}
.on-navy :focus-visible,.navy-band :focus-visible,.cookie :focus-visible{outline-color:var(--cream)}
/* white cards inside the navy band: a cream ring would be 1.6:1 on white, so the ring turns navy there (15:1) */
.navy-band .booking :focus-visible,.navy-band .contact-form :focus-visible{outline-color:var(--navy)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-64px;z-index:100;background:var(--navy);color:#fff;padding:12px 16px;border-radius:var(--r2);text-decoration:none}
.skip:focus{top:16px}
.wrap{width:min(100% - 48px, var(--wrap));margin-inline:auto}
@media (min-width:768px){.wrap{width:min(100% - 96px, var(--wrap))}}

.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.i-fill{fill:currentColor}
.i-s{width:16px;height:16px}.i-m{width:24px;height:24px}.i-l{width:28px;height:28px}
.nw{white-space:nowrap}
.sprite{position:absolute}
.head.head-flush{margin-bottom:0}

.eyebrow{font-size:11px;line-height:16px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze-t)}
.navy-band .eyebrow{color:var(--cream)}

/* signature: vertical bronze rule that opens every section head */
.head{position:relative;max-width:736px;margin-bottom:var(--s7)}
.head::before{content:"";position:absolute;left:-16px;top:2px;bottom:2px;width:3px;border-radius:2px;background:var(--rule)}
@media (min-width:768px){.head::before{left:-24px}}
.head h2{margin-top:var(--s2)}
.head .lead{margin-top:var(--s2)}
.navy-band{--rule:var(--cream)}
h2{font-size:clamp(1.875rem, 1.2rem + 1.6vw, 2.75rem);line-height:1.12}
h3{font-size:1.25rem;line-height:1.3}
.lead{font-size:1.1875rem;line-height:1.55;color:var(--soft);max-width:36em}
@media (max-width:720px){.head{margin-bottom:var(--s5)} .lead{font-size:1.0625rem}}

section{padding-block:var(--sec)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);height:56px;padding:0 var(--s4);border-radius:var(--r4);border:1.5px solid transparent;font-weight:600;font-size:1rem;line-height:1;text-decoration:none;white-space:nowrap;transition:background .18s,color .18s,border-color .18s,transform .18s,box-shadow .18s}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy7);transform:translateY(-1px);box-shadow:0 8px 16px rgba(24,36,83,.18)}
.btn-outline{border-color:var(--navy);color:var(--navy);background:transparent}
.btn-outline:hover{background:var(--b50)}
.btn-sm{height:44px;padding:0 var(--s3);font-size:.9375rem}
.navy-band .btn-outline{border-color:var(--cream);color:#fff}
.navy-band .btn-outline:hover{background:rgba(255,255,255,.08)}
.link-arrow{display:inline-flex;align-items:center;gap:var(--s1);min-height:44px;font-weight:600;color:var(--navy);text-decoration:none}
.link-arrow:hover{color:var(--bronze-t)}
.link-arrow .i{transition:transform .18s}
.link-arrow:hover .i{transform:translateX(3px)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(250,246,238,.94);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.bar{height:var(--header);display:flex;align-items:center;gap:var(--s4)}
.brand{display:block;flex:none}
.brand img{width:95px;height:44px}
.nav{display:flex;align-items:center;gap:var(--s4);margin-left:var(--s2)}
.nav a,.nav .dd-btn{font-size:.9375rem;font-weight:600;color:var(--navy);text-decoration:none;background:none;border:0;padding:10px 0;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:4px}
.nav a:hover,.nav .dd-btn:hover{color:var(--bronze-t)}
/* current page / current section (build.py: aria-current="page" on the item's own page, "true" for a section highlight) */
.nav a[aria-current],.nav .dd-btn[aria-current],.members[aria-current]{color:var(--navy);text-decoration:underline;text-decoration-color:var(--bronze);text-decoration-thickness:2px;text-underline-offset:8px}
.dd{position:relative}
.dd-panel{position:absolute;left:-16px;top:100%;margin-top:8px;display:none;grid-template-columns:1fr 1fr;gap:0 var(--s3);width:480px;padding:var(--s2) var(--s3);background:#fff;border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--shadow-lg)}
.dd:hover .dd-panel,.dd:focus-within .dd-panel{display:grid}
.dd.is-off .dd-panel{display:none}  /* Esc dismisses the open panel (motion.js A5) */
.dd-panel::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.dd-panel a{padding:12px 0;border-bottom:1px solid var(--line);font-weight:400;color:var(--soft)}
.dd-panel a:hover{color:var(--navy)}
.dd-panel a:nth-last-child(-n+1){border-bottom:0}
.dd-panel .dd-all{grid-column:1 / -1;font-weight:600;color:var(--navy)}
.bar-right{margin-left:auto;display:flex;align-items:center;gap:var(--s3)}
.members{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:.9375rem;font-weight:600;color:var(--navy);text-decoration:none}
.members:hover{color:var(--bronze-t)}
.lang{position:relative}
.lang summary{list-style:none;display:inline-flex;align-items:center;gap:4px;height:44px;padding:0 var(--s2);border:1px solid var(--line);border-radius:var(--r2);background:#fff;font-weight:600;font-size:.9375rem;color:var(--navy);cursor:pointer}
.lang summary::-webkit-details-marker{display:none}
.lang ul{position:absolute;right:0;top:100%;margin-top:8px;min-width:176px;background:#fff;border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-lg);padding:8px;z-index:5}
.lang li a{display:flex;justify-content:space-between;padding:10px 12px;min-height:44px;align-items:center;border-radius:var(--r1);text-decoration:none;font-size:.9375rem;color:var(--soft)}
.lang li a:hover,.lang li a[aria-current]{background:var(--b50);color:var(--navy)}
.lang li b{font-weight:700;color:var(--navy)}
.burger{display:none;margin-left:auto;width:48px;height:48px;align-items:center;justify-content:center;border-radius:var(--r2);color:var(--navy);text-decoration:none}
.burger .i{width:28px;height:28px}
/* 5 links + Members Area + language + CTA need ~1240px: below that the menu is the drawer (measured: it overflowed the header at 1101-1199) */
@media (max-width:1240px){
  .nav,.bar-right{display:none}
  .burger{display:flex}
}

/* mobile drawer: solid background, opened with :target */
.drawer{position:fixed;inset:0;z-index:90;background:var(--white);overflow-y:auto;visibility:hidden;transform:translateX(100%);transition:transform .28s ease,visibility 0s .28s;display:flex;flex-direction:column}
.drawer:target,.drawer.open{visibility:visible;transform:none;transition:transform .28s ease}
html.lock{overflow:hidden}
.drawer-top{position:sticky;top:0;z-index:1;background:var(--white);height:var(--header);flex:none;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gutter);border-bottom:1px solid var(--line)}  /* the close button stays in reach when the menu is long (Services open) */
.drawer-top a.x{width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:var(--navy);margin-right:-12px}
.drawer nav{padding:var(--s2) var(--gutter) var(--s3)}
.drawer nav>a,.drawer nav summary{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);font-size:1.25rem;font-weight:600;color:var(--navy);text-decoration:none;list-style:none;cursor:pointer}
.drawer nav summary::-webkit-details-marker{display:none}
.drawer details[open] summary .i{transform:rotate(180deg)}
.drawer .sub{padding:8px 0 16px;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.drawer .sub a{padding:12px 0;font-size:.9375rem;color:var(--soft);text-decoration:none}
.drawer .sub .dd-all{grid-column:1 / -1;font-weight:600;color:var(--navy)}
.drawer nav>a[aria-current],.drawer nav summary[aria-current]{border-left:3px solid var(--bronze);padding-left:12px}
.drawer-foot{margin-top:auto;padding:var(--s3) var(--gutter) var(--s4);display:grid;gap:var(--s2);background:var(--off);border-top:1px solid var(--line)}
.drawer-foot .btn{width:100%}
.drawer-lang{display:flex;gap:8px;flex-wrap:wrap;font-weight:600;color:var(--navy);font-size:.9375rem}
.drawer-lang a{padding:10px 14px;min-height:44px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r1);background:#fff;text-decoration:none}
.drawer-lang a[aria-current]{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---------- Hero ---------- */
.hero{padding:var(--s7) 0 var(--s12)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:var(--s8);align-items:center}
.hero-head{position:relative}
.hero-head::before{content:"";position:absolute;left:-16px;top:2px;bottom:2px;width:3px;border-radius:2px;background:var(--rule)}
@media (min-width:768px){.hero-head::before{left:-24px}}
.hero h1{font-size:clamp(2.25rem, 1.25rem + 3.2vw, 4rem);line-height:1.05;letter-spacing:-.025em;margin:var(--s3) 0}
.hero .lead{font-size:1.25rem;max-width:30em}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s5)}
.hero-foot{margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid var(--line)}
.proof-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:.9375rem;color:var(--navy);font-weight:600}
.stars{display:inline-flex;gap:2px;color:var(--bronze)}
.stars .i{width:18px;height:18px}
.proof-line .dot{width:4px;height:4px;border-radius:50%;background:var(--bronze)}
.assure{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:var(--s2);font-size:.9375rem;color:var(--soft)}
.assure li{display:inline-flex;align-items:center;gap:8px}
.assure .i{color:var(--bronze-t);width:18px;height:18px}

.speak{display:grid;gap:8px;margin-top:var(--s3)}
.speak-l{font-size:11px;line-height:16px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze-t)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips li{padding:6px 12px;border:1px solid var(--line);background:#fff;border-radius:var(--r4);font-size:.875rem;font-weight:600;line-height:1.2;color:var(--navy)}
.speak-s{font-size:.8125rem;line-height:1.45;color:var(--mute)}
.navy-band .speak-l{color:var(--cream)}
.navy-band .chips li{background:rgba(255,255,255,.08);border-color:rgba(226,197,161,.4);color:#fff}
.navy-band .speak-s{color:rgba(255,255,255,.76)}

.hero-media{position:relative}
.hero-media::before{content:"";position:absolute;inset:16px 16px -16px -16px;border:1.5px solid var(--bronze);border-radius:240px 240px var(--r4) var(--r4);pointer-events:none}
.arch{position:relative;height:592px;border-radius:240px 240px var(--r4) var(--r4);overflow:hidden;background:var(--b100);box-shadow:var(--shadow)}
.arch img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.chip{position:absolute;left:-24px;bottom:40px;z-index:2;display:flex;align-items:center;gap:16px;padding:16px 24px 16px 16px;background:#fff;border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--shadow)}
.chip .ico{width:48px;height:48px;border-radius:var(--r2);background:var(--b50);color:var(--bronze-t);display:grid;place-items:center}
.chip b{display:block;color:var(--navy);font-size:1rem;line-height:1.3}
.chip span{display:block;font-size:.875rem;color:var(--mute);line-height:1.3}

/* ---------- Proof strip ---------- */
.proof{padding:0 0 var(--s12)}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
.stat{display:flex;gap:var(--s3);align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r3);padding:var(--s4)}
.stat .ico{width:56px;height:56px;border-radius:var(--r2);background:var(--b50);color:var(--bronze-t);display:grid;place-items:center;flex:none}
.stat .ico .i{width:26px;height:26px}
.stat strong :is(i,b){font-style:normal;font-weight:inherit}
.stat strong{display:block;font-size:2.5rem;line-height:1;letter-spacing:-.02em;color:var(--navy);font-weight:700}
.stat span{display:block;margin-top:8px;font-size:.9375rem;color:var(--soft);line-height:1.35}
.proof-src{margin-top:var(--s2);font-size:.8125rem;color:var(--mute)}

/* ---------- Paths ---------- */
.paths{background:var(--white);border-block:1px solid var(--line)}
.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
.path{display:flex;flex-direction:column;gap:var(--s2);background:var(--off);border:1px solid var(--line);border-radius:var(--r3);padding:var(--s4);transition:box-shadow .2s,transform .2s,border-color .2s}
.path:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--cream)}
.path .ico .i,.principle .ico .i,.feat .ico .i,.chip .ico .i{width:24px;height:24px}
.path .ico{width:48px;height:48px;border-radius:var(--r2);background:var(--b100);color:var(--navy);display:grid;place-items:center;margin-bottom:var(--s1)}
.path p{font-size:1rem;color:var(--soft)}
.path ul{margin-top:auto;padding-top:var(--s1)}
.path li a{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line);font-weight:600;font-size:.9375rem;color:var(--navy);text-decoration:none}
.path li a .i{width:18px;height:18px;color:var(--bronze-t);transition:transform .18s}
.path li a:hover{color:var(--navy)}
.path li a:hover .i{transform:translateX(3px)}
.path-foot{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-top:var(--s3)}
.also{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2) var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--r3);background:#fff}
.also .eyebrow{flex-basis:100%}
.also a{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--navy);text-decoration:none;padding:10px 16px;min-height:44px;border:1px solid var(--line);border-radius:var(--r4);background:var(--off);font-size:.9375rem}
.also a:hover{border-color:var(--bronze);color:var(--bronze-t)}
.also a .i{width:18px;height:18px;color:var(--bronze-t)}
.escape{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--s2);padding:var(--s3) var(--s4);border:1px solid var(--b100);border-radius:var(--r3);background:var(--b50)}
.escape h3{font-size:1.125rem}
.escape p{font-size:.9375rem;margin-top:4px}
.corp{grid-column:1/-1;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:var(--s3);align-items:center;padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--r3);background:var(--off)}
.corp .ico{width:44px;height:44px;border-radius:var(--r2);background:var(--b100);color:var(--navy);display:grid;place-items:center}
.corp .ico .i{width:24px;height:24px}
.corp h3{font-size:1.125rem}
.corp p{margin-top:4px;font-size:.9375rem}

/* ---------- How it works ---------- */
.how{background:var(--navy);color:rgba(255,255,255,.82)}
.how h2,.how h3{color:#fff}
.how .lead{color:rgba(255,255,255,.82)}
.how-grid>div:first-child{position:sticky;top:calc(var(--header) + 32px)}
.how-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s12);align-items:start}
.how .head{margin-bottom:var(--s4)}
.note{display:flex;gap:var(--s2);padding:var(--s3);border:1px solid rgba(226,197,161,.35);border-radius:var(--r3);font-size:.9375rem;color:rgba(255,255,255,.88);max-width:416px}
.note .i{color:var(--cream);margin-top:2px}
.steps{position:relative}
.step{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) 176px;column-gap:var(--s3);padding-bottom:var(--s6)}
.step:last-child{padding-bottom:0}
.step::before{content:"";position:absolute;left:27px;top:64px;bottom:8px;width:2px;background:var(--cream);opacity:.55}
.step:last-child::before{display:none}
.num{width:56px;height:56px;border-radius:50%;border:2px solid var(--cream);background:var(--navy);color:var(--cream);display:grid;place-items:center;font-weight:700;font-size:1.25rem;position:relative;z-index:1}
.step h3{padding-top:4px;font-size:1.375rem}
.step p{margin-top:8px;font-size:1rem;color:rgba(255,255,255,.82);max-width:34em}
.ctrl{padding-top:6px;text-align:left;border-left:1px solid rgba(226,197,161,.35);padding-left:var(--s2);align-self:start}
.ctrl small{display:block;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--cream);line-height:16px}
.ctrl b{display:block;margin-top:8px;font-weight:600;color:#fff;font-size:.9375rem;line-height:1.35}

/* ---------- Team ---------- */
.team-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--s3)}
.person{grid-column:span 4;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r3);overflow:hidden}
.person img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-view-box:inset(20% 0 0 0)}
.person-body{padding:var(--s3);display:flex;flex-direction:column;gap:8px;flex:1}
.person h3{font-size:1.375rem}
.role{font-size:11px;line-height:16px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-t)}
.person p{font-size:.9375rem;line-height:1.55}
.testi{grid-column:span 4;display:flex;flex-direction:column;justify-content:center;gap:var(--s2);padding:var(--s4);border:2px dashed var(--bronze);border-radius:var(--r3);background:var(--b50)}
.testi .qi{width:48px;height:48px;border-radius:50%;background:#fff;border:1px solid var(--b100);color:var(--bronze-t);display:grid;place-items:center}
.testi h3{font-size:1.125rem}
.testi p{font-size:.9375rem;color:var(--soft)}
.skel{display:grid;gap:8px;margin-top:8px}
.skel i{display:block;height:10px;border-radius:5px;background:var(--b100)}
.skel i:nth-child(2){width:88%}.skel i:nth-child(3){width:62%}
.skel-who{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:.8125rem;color:var(--mute)}
.skel-who i{width:32px;height:32px;border-radius:50%;background:var(--b100);flex:none}

/* ---------- Transparency ---------- */
.fees{background:var(--white);border-block:1px solid var(--line)}
.fees-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s8);align-items:start}
.fees .head{margin-bottom:var(--s4)}
.principle{display:grid;grid-template-columns:48px 1fr;gap:var(--s2) var(--s3);padding:var(--s3) 0;border-top:1px solid var(--line)}
.principle:last-child{border-bottom:1px solid var(--line)}
.principle .ico{width:48px;height:48px;border-radius:var(--r2);background:var(--b100);color:var(--navy);display:grid;place-items:center}
.principle h3{font-size:1.125rem}
.principle p{margin-top:4px;font-size:.9375rem}
.table-card{border:1px solid var(--line);border-radius:var(--r3);overflow:hidden;background:var(--off)}
.table-card header{padding:var(--s4) var(--s4) var(--s3)}
.table-card header h3{font-size:1.375rem}
.table-card header p{margin-top:4px;font-size:.9375rem;color:var(--mute)}
table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.9375rem;line-height:1.45}
th,td{text-align:left;vertical-align:top;padding:var(--s2) var(--s2);border-top:1px solid var(--line)}
thead th{padding-block:var(--s2);background:var(--b50);color:var(--navy);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;border-top:1px solid var(--line)}
thead th:first-child,tbody th{padding-left:var(--s4)}
thead th:last-child,tbody td:last-child{padding-right:var(--s4)}
tbody th{font-weight:600;color:var(--navy);width:22%}
tbody td{color:var(--soft)}
tbody tr:nth-child(even){background:rgba(255,255,255,.7)}

/* ---------- App ---------- */
.app{background:var(--b50);border-bottom:1px solid var(--b100)}
.app-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s8);align-items:center}
.feat{display:grid;gap:var(--s3);margin:var(--s4) 0}
.feat li{display:grid;grid-template-columns:40px 1fr;gap:var(--s2);align-items:start}
.feat .ico{width:40px;height:40px;border-radius:var(--r2);background:#fff;border:1px solid var(--b100);color:var(--navy);display:grid;place-items:center}
.feat b{display:block;color:var(--navy);font-weight:600;line-height:1.35}
.feat span{font-size:.9375rem;color:var(--soft)}
.app-note{margin-top:var(--s3);font-size:.8125rem;color:var(--mute)}
.app-cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3)}
.get{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3) var(--s2) var(--s2);background:var(--b100);border:1px solid var(--b100);border-radius:var(--r3)}
.get-qr{width:116px;height:116px;flex:none;padding:6px;background:#fff;border:1px solid var(--line);border-radius:var(--r2)}
.get-qr img{width:100%;height:100%}
.get-txt{display:grid;gap:12px;max-width:260px}
.badge-app{display:block;width:fit-content;border-radius:var(--r2)}
/* the official badge is only scaled (height 68px, proportional): no effect, filter or recolouring */
.badge-app img{height:68px;width:auto}
.get-txt p{font-size:.8125rem;line-height:1.45;color:var(--soft)}
.phones{position:relative;isolation:isolate;width:min(100%, 480px);aspect-ratio:480/560;margin-inline:auto}
.phone{position:absolute;width:52%;border:7px solid var(--navy);border-radius:36px;background:var(--navy);overflow:hidden;box-shadow:var(--shadow-lg)}
.phone img{width:100%;height:auto;border-radius:28px}
.phone.back{left:10%;top:0}
.phone.front{left:36%;top:9%}
.phones::before{content:"";position:absolute;left:4%;right:4%;bottom:0;height:62%;border-radius:var(--r4);background:var(--b100);z-index:-1}

/* ---------- Presence (9a) ---------- */
.presence{padding-bottom:var(--s8)}
.presence-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s3)}
/* the map keeps a 3:2 frame (the ::before spacer) but grows with the offices column; .stage is the 3:2 coordinate system of the map, pins and leaders */
.map-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r4);background:#fff}
.map-card::before{content:"";display:block;padding-top:66.667%}
.stage{position:absolute;left:0;top:0;width:100%;aspect-ratio:3/2}
.map-card .map{position:absolute;width:268.7%;height:auto;max-width:none;left:-77.08%;top:-42.6%;filter:sepia(1) saturate(.6) brightness(.86) contrast(.9);opacity:.75}
.leaders{position:absolute;inset:0;width:100%;height:100%}
.leaders line{stroke:var(--navy);stroke-width:1;stroke-opacity:.6;vector-effect:non-scaling-stroke}
.pins{position:absolute;inset:0;pointer-events:none}
.pin{position:absolute;inset:0}
.pin i{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--navy);box-shadow:0 0 0 3px rgba(163,128,80,.4)}
.pin.hq i{width:14px;height:14px;margin:-7px 0 0 -7px;box-shadow:0 0 0 4px rgba(163,128,80,.4),0 0 0 12px rgba(163,128,80,.16)}
.pin span{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;background:#fff;color:var(--navy);border:1px solid var(--line);font-weight:600;font-size:.8125rem;line-height:1;padding:7px 12px;border-radius:var(--r2);box-shadow:var(--shadow)}
/* offices (Lisbon, Andorra) share one language: navy label and ringed dot; Lisbon, the HQ, is larger and pulses */
.pin.hq span,.pin.pin-office span{background:var(--navy);color:#fff;border-color:var(--navy)}
.pin.hq span{font-size:.875rem;padding:9px 16px}
.p-lis i{left:42.4%;top:16.8%}.p-lis span{left:21%;top:23%}
.p-and i{left:50%;top:10.9%}.p-and span{left:64%;top:7%}
.p-bcn i{left:51.5%;top:14.3%;width:8px;height:8px;margin:-4px 0 0 -4px;box-shadow:0 0 0 2px rgba(163,128,80,.4)}.p-bcn span{left:62%;top:27%}
.p-dxb i{left:91.2%;top:33.4%}.p-dxb span{left:76%;top:17%}
.p-auh i{left:89.4%;top:36.6%}.p-auh span{left:77%;top:54%}
.p-bra i{left:9.8%;top:82.2%}.p-bra span{left:26%;top:66%}
.map-cap{position:absolute;right:var(--s3);bottom:var(--s3);font-size:.8125rem;color:var(--mute);background:rgba(255,255,255,.92);padding:8px 16px;border-radius:var(--r2);border:1px solid var(--line)}
.offices{display:flex;flex-direction:column;gap:var(--s2)}
.office{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r4);padding:var(--s4);gap:var(--s3)}
.offices .office{gap:var(--s2)}
.office-hq{flex:1;justify-content:space-between}
.office-ad{padding-block:var(--s3)}
.office h3{font-size:1.5rem;margin-top:8px}
.badge{align-self:flex-start;display:inline-flex;gap:8px;align-items:center;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;line-height:16px;color:var(--bronze-t);background:var(--b50);border:1px solid var(--b100);border-radius:var(--r4);padding:8px 16px}
.rows{display:grid;gap:0}
.rows li{display:grid;grid-template-columns:24px 1fr;gap:var(--s2);align-items:center;min-height:60px;padding:8px 0;border-top:1px solid var(--line);font-size:.9375rem;line-height:1.5}
.rows li:first-child{border-top:0}
.rows .i{color:var(--bronze-t)}
.rows a{color:var(--navy);font-weight:600;text-decoration:none}
/* a row's own phone/email link is a 44px target; a link inside a sentence (small) stays inline */
.rows span>a{display:inline-flex;align-items:center;min-height:44px}
.rows a:hover{color:var(--bronze-t);text-decoration:underline}
.rows small{display:block;color:var(--mute);font-size:.8125rem}
.rows a + small{margin-top:-10px}
.places{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s2);margin-top:var(--s3)}
.place{display:flex;flex-direction:column;gap:4px;padding:var(--s3);background:#fff;border:1px solid var(--line);border-radius:var(--r3)}
.place h3{font-size:1.125rem}
.place p{font-size:.9375rem;line-height:1.45;color:var(--mute)}
.reach{margin-top:var(--s4)}
.reach .eyebrow{margin-bottom:var(--s2)}
.reach-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2)}
.reach-item{display:flex;align-items:center;gap:var(--s2);min-height:88px;padding:var(--s2) var(--s3);background:#fff;border:1px solid var(--line);border-radius:var(--r3)}
.reach-item .i{color:var(--bronze-t)}
.reach-item h3{font-size:1.125rem}
.reach-item p{font-size:.9375rem;line-height:1.45;color:var(--mute)}

/* ---------- Partner network (9b): three separate groups ---------- */
.network{padding-top:var(--s4)}
.net-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s3);align-items:stretch}
.grp{position:relative;display:flex;flex-direction:column;gap:var(--s3);overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--r4);padding:var(--s5)}
.grp::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--bronze)}
.grp-head h3{margin-top:8px;font-size:1.5rem}
.grp-head p:not(.eyebrow){margin-top:8px;font-size:1rem}
.grp-companies{margin-top:var(--s3)}
.grp-companies::before{height:3px}
.bison{flex:1;display:grid;place-items:center;min-height:176px;padding:var(--s5);border:1px solid var(--line);border-radius:var(--r3);background:#fff}
/* Bison Bank: ALWAYS the original colours (condition of the bank's authorisation). No filter, opacity or blend, in any state. */
.bison img{width:min(100%,360px);height:auto;filter:none!important;opacity:1!important;mix-blend-mode:normal!important}
.cards{display:grid;gap:var(--s2)}
.grp-funds .cards{grid-template-columns:repeat(2,minmax(0,1fr));flex:1}
.grp-companies .cards{grid-template-columns:repeat(5,minmax(0,1fr))}
.lcard{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:144px;padding:var(--s3) var(--s2);background:var(--off);border:1px solid var(--line);border-radius:var(--r3);text-align:center}
.grp-companies .lcard{min-height:128px}
.lcard .lg{display:grid;place-items:center;width:100%;height:56px}
.lcard img{width:auto;height:auto;max-width:100%;max-height:56px;object-fit:contain;filter:grayscale(1);opacity:.8;transition:filter .25s,opacity .25s}
.lcard:hover img,.lcard:focus-within img{filter:none;opacity:1}
.lcard .nm{font-size:.8125rem;line-height:1.3;font-weight:600;color:var(--mute)}
/* partners without a logo yet: the name in text, with the same quiet-until-hover treatment as the logos */
.lcard .wm{font-weight:700;font-size:1.25rem;letter-spacing:-.015em;line-height:1.15;color:var(--navy);filter:grayscale(1);opacity:.8;transition:filter .25s,opacity .25s}
.lcard:hover .wm,.lcard:focus-within .wm{filter:none;opacity:1}
.lcard.pending .nm{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.net-foot{margin-top:var(--s4)}

/* ---------- FAQ ---------- */
.faq{background:var(--white);border-top:1px solid var(--line)}
.faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);grid-template-rows:auto 1fr;grid-template-areas:"head list" "cta list";column-gap:var(--s12);align-items:start}
.faq .head{grid-area:head;margin-bottom:var(--s4)}
.faq-list{grid-area:list;border-top:1px solid var(--line)}
.faq-cta{grid-area:cta;padding:var(--s4);background:var(--b50);border:1px solid var(--b100);border-radius:var(--r3);max-width:400px}
.faq-cta h3{font-size:1.25rem}
.faq-cta p{margin:8px 0 var(--s3);font-size:.9375rem}
.faq-cta .btn{height:52px;padding:0 var(--s3);font-size:.9375rem}
details.q{border-bottom:1px solid var(--line)}
details.q summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) 0;font-size:1.1875rem;font-weight:600;line-height:1.35;color:var(--navy);list-style:none;cursor:pointer}
details.q summary::-webkit-details-marker{display:none}
details.q summary::after{content:"+";flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--bronze);color:var(--bronze-t);font-size:1.5rem;font-weight:400;line-height:1;padding-bottom:3px}
details.q[open] summary::after{content:"\2212"}
details.q summary:hover{color:var(--bronze-t)}
details.q .a{padding:0 var(--s8) var(--s3) 0;max-width:42em;color:var(--soft);font-size:1.0625rem}

/* ---------- Closing ---------- */
.close{background:var(--navy);color:rgba(255,255,255,.85)}
.close h2,.close h3{color:#fff}
.close .lead{color:rgba(255,255,255,.85)}
.close-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s8);align-items:stretch}
.close-main{display:flex;flex-direction:column;gap:var(--s6)}
.booking{position:relative;background:#fff;color:var(--soft);border-radius:var(--r4);padding:var(--s5) var(--s5) var(--s4);box-shadow:var(--shadow-lg)}
.booking .tag{position:absolute;top:-14px;left:var(--s4);background:var(--cream);color:var(--navy);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:6px 16px;border-radius:var(--r4)}
.booking h3{color:var(--navy);font-size:1.5rem}
.meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:8px;font-size:.9375rem;color:var(--mute)}
.meta span{display:inline-flex;align-items:center;gap:8px}
.meta .i{width:18px;height:18px;color:var(--bronze-t)}
.month{margin:var(--s4) 0 var(--s2);font-size:.9375rem;font-weight:600;color:var(--navy)}
.days{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.day{padding:12px 0;border:1.5px solid var(--line);background:var(--off);border-radius:var(--r2);text-align:center;color:var(--navy);line-height:1.2}
.day small{display:block;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.day b{font-size:1.25rem}
.day[aria-pressed="true"]{border-color:var(--navy);background:var(--navy);color:#fff}
.day[aria-pressed="true"] small{color:var(--cream)}
.day:hover{border-color:var(--bronze)}
.slots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:var(--s3) 0}
.slot{height:48px;border:1.5px solid var(--navy);border-radius:var(--r2);background:#fff;color:var(--navy);font-weight:600;font-size:.9375rem}
.slot:hover{background:var(--b50)}
.slot[aria-pressed="true"]{background:var(--b100);box-shadow:inset 0 0 0 1.5px var(--navy)}
.booking .btn{width:100%}
.booking .fine{margin-top:var(--s2);text-align:center;font-size:.8125rem;color:var(--mute)}
.write h3{font-size:1.5rem}
.write{display:flex;flex-direction:column;gap:var(--s3);flex:1}
.write .rows{grid-template-columns:1fr 1fr;column-gap:var(--s5)}
.write .rows li:nth-child(2){border-top:0}
.write .rows .wide{grid-column:1/-1}
.write .rows li{border-color:rgba(226,197,161,.28);color:rgba(255,255,255,.85)}
.write .rows .i{color:var(--cream)}
.write .rows a{color:#fff}
.write .rows a:hover{color:var(--cream)}
.write .rows small{color:rgba(255,255,255,.68)}
.write .btn{align-self:flex-start}
.write .speak{margin-top:auto;padding-top:var(--s3);border-top:1px solid rgba(226,197,161,.28)}
.contact-form{display:flex;flex-direction:column;background:#fff;color:var(--soft);border-radius:var(--r4);padding:var(--s4);box-shadow:var(--shadow-lg)}
.contact-form h3{color:var(--navy);font-size:1.375rem}
.contact-form .sub{margin-top:4px;font-size:.875rem;color:var(--mute)}
.cf{display:flex;flex-direction:column;flex:1;gap:var(--s2);margin-top:var(--s3)}
.f{display:grid;gap:6px}
.f-grow{display:flex;flex-direction:column;flex:1}
.f-grow textarea{flex:1}
.f label{font-size:.875rem;font-weight:600;color:var(--navy)}
.f .req{color:var(--bad)}
.f input,.f select,.f textarea{width:100%;height:48px;padding:0 14px;font:inherit;font-size:1rem;color:var(--navy);background:#fff;border:1.5px solid rgba(24,36,83,.55);border-radius:var(--r2)}
.f textarea{height:auto;min-height:112px;padding:12px 14px;resize:vertical}
.f ::placeholder{color:var(--mute);opacity:1}
.f :is(input,select,textarea):focus-visible{border-radius:var(--r2)}
.f :is(input,select,textarea):user-invalid{border-color:var(--bad)}
.phone-row{display:grid;grid-template-columns:118px minmax(0,1fr);gap:8px}
.err{display:none;font-size:.8125rem;line-height:1.35;font-weight:600;color:var(--bad)}
.f :is(input,select,textarea):user-invalid ~ .err,.f .phone-row:has(:user-invalid) + .err{display:block}
/* 44px hit area with a 24px drawn box (native control restored in forced-colors mode) */
.f-check{grid-template-columns:44px minmax(0,1fr);column-gap:0;align-items:start}
.f-check input{appearance:none;-webkit-appearance:none;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:12px;cursor:pointer;background:center/44px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44'%3E%3Crect x='10' y='10' width='24' height='24' rx='6' fill='%23fff' stroke='%23182453' stroke-opacity='.6' stroke-width='1.5'/%3E%3C/svg%3E")}
.f-check input:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44'%3E%3Crect x='10' y='10' width='24' height='24' rx='6' fill='%23182453'/%3E%3Cpath d='m15.500 22.500 4.500 4.500 8.500-9' fill='none' stroke='%23fff' stroke-width='2.600' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.f-check input:user-invalid{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44'%3E%3Crect x='10' y='10' width='24' height='24' rx='6' fill='%23fff' stroke='%23b3261e' stroke-width='2'/%3E%3C/svg%3E")}
.f-check input:focus-visible{outline-offset:-2px}
@media (forced-colors:active){.f-check input{appearance:auto;-webkit-appearance:checkbox;width:24px;height:24px;margin:10px}}
.f-check label{padding-top:11px;font-weight:400;font-size:.875rem;line-height:1.5;color:var(--soft)}
.f-check label a{color:var(--navy);font-weight:600}
.f-check .err{grid-column:2}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf .btn-outline{width:100%;border-color:var(--navy);color:var(--navy);background:transparent}
.cf .btn-outline:hover{background:var(--b50)}
.cf .fine{font-size:.8125rem;color:var(--mute);text-align:center}
.form-ok{display:flex;gap:var(--s2);align-items:flex-start;margin-block:var(--s3);padding:var(--s3);border:1.5px solid var(--ok);border-radius:var(--r3);background:var(--b50);color:var(--navy)}
.contact-form:has(.form-ok:not([hidden])){justify-content:center}
.contact-form:has(.form-ok:not([hidden])) .sub{display:none}
.form-ok .i{color:var(--ok);margin-top:2px}
.form-ok h4{font-size:1.125rem;color:var(--navy)}
.form-ok p{margin-top:4px;font-size:.9375rem;color:var(--soft)}

/* ---------- Footer (light, legal) ---------- */
.foot{background:var(--white);border-top:1px solid var(--line);padding:var(--s12) 0 var(--s5)}
.foot-grid{display:grid;grid-template-columns:minmax(0,2.2fr) repeat(3,minmax(0,1fr));gap:var(--s8)}
.foot img{width:95px;height:44px}
.foot p.tag{margin-top:var(--s2);font-size:.9375rem;max-width:26em}
.foot-co{margin-top:var(--s2);font-size:.9375rem;font-weight:700;letter-spacing:.01em;color:var(--navy)}
.foot address{margin-top:8px;font-style:normal;font-size:.9375rem;line-height:1.65;color:var(--soft)}
.foot address p+p{margin-top:4px}
.foot-links{display:flex;flex-wrap:wrap;gap:0 var(--s3);margin-block:-4px}
.foot address a{display:inline-flex;align-items:center;min-height:44px;color:var(--navy);font-weight:600;text-decoration:none}
.foot address a:hover{text-decoration:underline}
.foot .foot-h{font-size:11px;line-height:16px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze-t);margin-bottom:var(--s2)}
.foot address a.foot-map{display:inline;min-height:0;font-weight:400;color:var(--soft);text-decoration:underline;text-decoration-color:var(--bronze);text-underline-offset:3px}
.foot address a.foot-map:hover{color:var(--navy)}
.foot ul a{display:block;padding:10px 0;font-size:.9375rem;color:var(--soft);text-decoration:none}
.foot ul a:hover{color:var(--navy);text-decoration:underline}
.foot .linkbtn{display:block;padding:10px 0;min-height:44px;background:none;border:0;font-size:.9375rem;color:var(--soft);text-align:left}
.foot .linkbtn:hover{color:var(--navy);text-decoration:underline}
.langs{display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;font-size:.9375rem;font-weight:600;color:var(--navy)}
.langs a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 8px;text-decoration:none}
.langs a[aria-current]{text-decoration:underline;text-decoration-color:var(--bronze);text-decoration-thickness:2px;text-underline-offset:6px}
.langs a:hover{color:var(--bronze-t)}
.foot-bottom{margin-top:var(--s6);padding-top:var(--s2);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s1) var(--s3);font-size:.8125rem;color:var(--mute)}
.foot-bottom button{background:none;border:0;padding:0;text-decoration:underline;color:var(--navy);font-size:inherit}

/* ---------- Floating: contact buttons, cookie, mobile bar ---------- */
.fab{position:fixed;right:24px;bottom:84px;z-index:70;display:flex;flex-direction:column-reverse;gap:12px}
.fab a{width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 2px #fff,0 8px 24px rgba(13,22,56,.28);transition:background .18s}
.fab a:hover{background:var(--navy7)}
.fab .i{width:26px;height:26px}
/* on mid-width desktops the round buttons would sit over the booking card and the form: they step aside while those are on screen */
@media (min-width:721px) and (max-width:1380px){
  .mbar-off .fab a{opacity:0;visibility:hidden}.fab a{transition:background .18s,opacity .2s,visibility .2s}
  /* the round buttons sit on the right margin: keep the FAQ "+", the language links and the last footer line clear of them */
  details.q summary,.foot-bottom{padding-right:64px}
}
/* without scroll-driven animation (reduced motion, Save-Data, older browsers) JS sets .on once the hero is gone; no transition */
.mf .fab:not(.on){opacity:0;visibility:hidden}
.ck-ok .cookie{display:none}  /* choice remembered (localStorage flag set by the head script / ui.js) */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:80;min-height:56px;background:var(--deep);color:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;gap:var(--s3);padding:8px var(--s3);font-size:.875rem}
.cookie a{color:var(--cream);padding-block:6px}  /* hit area >= 24px (WCAG 2.5.8) without changing the bar's line height */
.cookie-btns{display:flex;gap:8px}
.cookie button{height:44px;padding:0 var(--s2);border-radius:var(--r4);background:transparent;border:1.5px solid var(--cream);color:#fff;font-weight:600;font-size:.875rem}
.cookie button:hover{background:rgba(255,255,255,.1)}
.cookie .sm{display:none}
.mbar{display:none}
/* the static capture mode (#static in the URL) hides fixed layers so a full-page screenshot stays clean */
#static:target ~ .cookie,#static:target ~ .fab,#static:target ~ .mbar{display:none}

/* room for the fixed cookie bar while it is open; once a choice is made the page ends where the footer ends */
html:not(.ck-ok) body{padding-bottom:60px}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .hero-grid{gap:var(--s6)}
  .step{grid-template-columns:56px minmax(0,1fr)}
  .ctrl{grid-column:2;margin-top:var(--s2);border-left:0;padding-left:0;display:flex;gap:12px;align-items:baseline}
  .ctrl b{margin-top:0}
  .how-grid{gap:var(--s8)}
  /* map above, the two offices side by side: stretching the 3:2 map to the offices column would leave it mostly empty sea */
  .presence-grid{grid-template-columns:1fr}
  .offices{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
  .office-hq .rows{grid-template-columns:1fr 1fr;column-gap:var(--s4)}
  .office-hq .rows li:nth-child(2){border-top:0}
  .office-ad .rows{margin-top:auto}
}
/* 10 partner companies: 5 x 2 on desktop, 2 columns (5 rows) when the cards get narrow: no orphan either way */
@media (max-width:960px){.grp-companies .cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hero-media{max-width:520px}
  .arch{height:auto;aspect-ratio:4/4.4}
  .proof-grid{grid-template-columns:1fr}
  .path-grid{grid-template-columns:1fr 1fr}
  .path-foot{grid-template-columns:1fr}
  .how-grid>div:first-child{position:static}
  .how-grid,.fees-grid,.app-grid,.close-grid{grid-template-columns:1fr;gap:var(--s6)}
  .faq-grid{grid-template-columns:1fr;grid-template-areas:"head" "list" "cta"}
  .faq-list{margin-bottom:var(--s5)}
  .net-grid{grid-template-columns:1fr}
  .booking{position:relative;top:auto}
  .offices{grid-template-columns:1fr}
  .places,.reach-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .corp{grid-template-columns:44px minmax(0,1fr);gap:var(--s2) var(--s2)}
  .corp .link-arrow{grid-column:2}
  .team-grid .person{grid-column:span 6}
  .testi{grid-column:span 12}
  .foot-grid{grid-template-columns:1fr 1fr;gap:var(--s6) var(--s4)}
  .foot-grid>div:first-child{grid-column:1/-1}
  .grp-funds .cards{grid-template-columns:1fr}
  .grp-funds .lcard{flex-direction:row;justify-content:flex-start;min-height:88px;text-align:left;gap:var(--s2)}
  .grp-funds .lcard .lg{width:104px;flex:none}
}
@media (max-width:720px){
  body{font-size:16px;padding-bottom:64px}
  html:not(.ck-ok) body{padding-bottom:128px}
  .hero{padding:var(--s3) 0 var(--s8)}
  .hero h1{margin:var(--s2) 0 var(--s2)}
  .hero .lead{font-size:1.0625rem}
  .hero-actions{margin-top:var(--s3);flex-direction:column;align-items:stretch}
  .hero-actions .btn{width:100%}
  .hero-foot{margin-top:var(--s3);padding-top:var(--s2)}
  .proof-line{font-size:.875rem;gap:4px 16px}
  .proof-line .dot{display:none}
  .assure{flex-direction:column;gap:8px}
  .hero-media{margin-top:var(--s5);margin-inline:8px 0}
  .hero-media::before{inset:12px 12px -12px -12px}
  .chip{left:-8px;bottom:24px;padding:12px 16px 12px 12px;gap:12px}
  .chip .ico{width:40px;height:40px}
  .proof{padding-bottom:var(--s8)}
  .stat{padding:var(--s3);gap:var(--s2)}
  .stat .ico{width:48px;height:48px}
  .stat strong{font-size:2rem}
  .path-grid{grid-template-columns:1fr}
  .path,.also,.escape,.corp{padding:var(--s3)}
  .escape{flex-direction:column;align-items:flex-start}
  .step{column-gap:var(--s2);grid-template-columns:48px minmax(0,1fr)}
  .num{width:48px;height:48px;font-size:1.125rem}
  .step::before{left:23px;top:56px}
  .step h3{font-size:1.1875rem;padding-top:0}
  .ctrl{flex-direction:column;gap:4px}
  .team-grid{gap:var(--s2)}
  .person-body{padding:var(--s2)}
  .person h3{font-size:1.0625rem}
  .role{font-size:12px;letter-spacing:.02em;text-transform:none;line-height:1.35}
  .person p{font-size:.875rem}
  .testi{padding:var(--s3)}
  .table-card header{padding:var(--s3)}
  table,thead,tbody,tr,th,td{display:block}
  thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  tbody tr{padding:var(--s2) var(--s3);border-top:1px solid var(--line)}
  tbody th,tbody td{padding:0;border:0;width:auto}
  tbody th{padding-left:0!important;font-size:1rem;margin-bottom:8px}
  tbody td{padding:14px 0 0!important}
  tbody td:first-of-type{padding-top:8px!important}
  tbody td::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze-t);margin-bottom:2px}
  tbody tr:nth-child(even){background:transparent}
  .t-one tbody td::before{display:none}  /* two-column table (class on .table-card): the single value needs no label, the row title says it all */
  .phones{aspect-ratio:480/540}
  .phone{border-width:5px;border-radius:28px}
  .phone img{border-radius:22px}
  .pin span{padding:5px 8px;font-size:.6875rem}
  .pin.hq span{padding:6px 10px;font-size:.75rem}
  .pin i{width:8px;height:8px;margin:-4px 0 0 -4px}.pin.hq i{width:12px;height:12px;margin:-6px 0 0 -6px}.p-bcn i{width:6px;height:6px;margin:-3px 0 0 -3px}
  .offices{grid-template-columns:1fr}
  .office-hq .rows{grid-template-columns:1fr}.office-hq .rows li:nth-child(2){border-top:1px solid var(--line)}
  .office-ad .rows{margin-top:0}
  .map-cap{display:none}
  .grp{padding:var(--s3)}
  .bison{min-height:128px;padding:var(--s3)}
  .grp-head h3{font-size:1.25rem}
  .lcard{min-height:120px;padding:var(--s2) 8px}
  .grp-companies .lcard{min-height:112px}
  .contact-form{padding:var(--s3)}
  .get{padding:var(--s2);gap:var(--s2)}
  .get-qr{width:96px;height:96px}
  .office{padding:var(--s3)}
  details.q summary{font-size:1.0625rem;padding:var(--s2) 0}
  details.q .a{padding-right:0;font-size:1rem}
  .faq-cta{padding:var(--s3)}
  .booking{padding:var(--s4) var(--s3) var(--s3)}
  .slots,.days{gap:6px}
  .booking .tag{left:var(--s3);padding:6px 12px;font-size:10px;letter-spacing:.06em;white-space:nowrap}
  .close-grid>*,.app-grid>*,.fees-grid>*,.how-grid>*,.hero-grid>*,.faq-grid>*{min-width:0}
  details.q summary{overflow-wrap:anywhere}
  .booking .btn{padding:0 var(--s2);font-size:.9375rem}
  .write .btn{align-self:stretch}
  .write .rows{grid-template-columns:1fr}.write .rows li:nth-child(2){border-top:1px solid rgba(226,197,161,.28)}
  .reach-item{padding:var(--s2)}.reach-item h3{font-size:1rem}.reach-item p{font-size:.875rem}
  .foot-co{font-size:.875rem}
  .foot{padding:var(--s8) 0 var(--s4)}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-bottom{flex-direction:column;align-items:flex-start}
  .foot-bottom .langs{margin-left:-10px}
  .fab{display:none}
  html{scroll-padding-bottom:140px}
  /* one compact row (text + two equal buttons), 56px tall: it must not eat the hero */
  .cookie{translate:0 -64px;justify-content:space-between;gap:var(--s1);flex-wrap:wrap;height:auto;min-height:56px;padding:6px 12px;font-size:.75rem;line-height:1.25;text-align:left}
  .cookie p{flex:1 1 100%;min-width:0}
  .cookie .lg{display:none}.cookie .sm{display:inline}
  .cookie-btns{flex:none;gap:6px}
  .cookie button{height:44px;padding:0 12px;font-size:.8125rem}
  .mbar{position:fixed;left:0;right:0;bottom:0;z-index:85;height:64px;display:flex;align-items:center;gap:var(--s1);padding:8px var(--s2);background:#fff;border-top:1px solid var(--line)}
  .mbar .wa,.mbar .em{width:48px;height:48px;flex:none;display:grid;place-items:center;border:1.5px solid var(--navy);border-radius:var(--r4);color:var(--navy);background:#fff}
  .mbar .btn{flex:1;min-width:0;height:48px;padding:0 12px;font-size:.875rem;line-height:1.15;white-space:normal;text-align:center}
  .mbar-off .mbar{visibility:hidden;translate:0 100%}
  .mbar-off .cookie{translate:0 0}
}
/* the fixed cookie bar (56px) never covers a focused element on desktop (WCAG 2.4.11); phones have their own value above */
@media (min-width:721px){html{scroll-padding-bottom:80px}}
/* 320px (400% zoom): five time slots no longer fit one row */
@media (max-width:359px){.slots{grid-template-columns:repeat(3,1fr)}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{*,*::before,*::after{animation:none!important;opacity:1!important;translate:none!important}.cookie,.fab,.mbar{display:none}}
