/*
Theme Name: HMS India
Theme URI: https://hostmerchantservices.in/
Author: Host Merchant Services India
Description: Business software and custom development theme for Host Merchant Services India. Nine Cloud products, an articles section, routed contact forms and legal document templates. All brand details, colours, contact information and logo dimensions are editable under Appearance > Customize.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hms-india
Tags: business, software, custom-logo, custom-menu, featured-images, block-styles, translation-ready
*/

/* ==========================================================================
   Layout, components and typography.
   Colours and logo dimensions are injected as CSS variables from the
   Customizer — see inc/dynamic-css.php. Do not hard-code them here.
   ========================================================================== */


/* ==========================================================================
   BASE / HOME
   ========================================================================== */
:root{
  --navy:#0C2340;
  --navy-deep:#081A31;
  --blue:#1A5FE0;
  --blue-bright:#1668E3;
  --blue-dark:#1450BC;
  --amber:#F5A623;
  --amber-deep:#E08D0B;
  --teal:#0F7161;
  --teal-deep:#08574A;
  --paper:#FFFFFF;
  --mist:#F5F7FA;
  --mist-2:#EDF1F6;
  --sky:#EAF2FE;
  --slate:#5A6B7C;
  --slate-light:#8494A4;
  --line:#DDE4EC;
  --green:#1DA45C;
  --wa:#25D366;
  --r-sm:6px; --r:10px; --r-lg:16px; --r-xl:22px;
  --shadow-sm:0 1px 2px rgba(12,35,64,.06),0 1px 3px rgba(12,35,64,.05);
  --shadow:0 4px 14px rgba(12,35,64,.07);
  --shadow-lg:0 18px 44px rgba(12,35,64,.14);
  --wrap:1200px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--navy);
  font-family:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
h1,h2,h3,h4{font-family:"Bricolage Grotesque","Public Sans",sans-serif;font-weight:800;line-height:1.05;letter-spacing:-.02em;margin:0}
p{margin:0}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
button{font:inherit;cursor:pointer}
img,svg{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:12px 18px;z-index:200}
.skip:focus{left:12px;top:12px}

/* ── eyebrow with rule ─────────────────────────── */
.eyebrow{display:flex;align-items:center;gap:16px;font-size:11px;color:var(--slate);margin-bottom:22px}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--line)}
.eyebrow.on-dark{color:rgba(255,255,255,.72)}
.eyebrow.on-dark::after{background:rgba(255,255,255,.22)}

/* ── buttons ───────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:9px;border:1.5px solid transparent;border-radius:var(--r-sm);
  padding:13px 22px;font-weight:600;font-size:15px;transition:background .16s,color .16s,border-color .16s,transform .16s}
.btn .ico{width:16px;height:16px;stroke-width:2.2}
.btn:hover{transform:translateY(-1px)}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:var(--blue-dark)}
.btn-ghost{background:#fff;color:var(--blue);border-color:#B9CFF5}
.btn-ghost:hover{border-color:var(--blue);background:var(--sky)}
.btn-amber{background:var(--amber);color:var(--navy)}
.btn-amber:hover{background:var(--amber-deep)}
.btn-sm{padding:11px 20px;font-size:14px}

/* ── swoosh underline ──────────────────────────── */
.swoosh{position:relative;display:inline-block}
.swoosh svg{position:absolute;left:0;bottom:-.22em;width:100%;height:.3em;overflow:visible}
.swoosh path{fill:none;stroke:var(--amber);stroke-width:8;stroke-linecap:round}

/* ── header ────────────────────────────────────── */
.hdr{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;flex:none}
.nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav>li>a,.nav>li>button{display:inline-flex;align-items:center;gap:5px;padding:9px 13px;border:0;background:none;
  font-size:14.5px;font-weight:500;color:var(--navy);border-radius:var(--r-sm);transition:color .15s,background .15s}
.nav>li>a:hover,.nav>li>button:hover{color:var(--blue);background:var(--mist)}
.nav .caret{width:13px;height:13px;stroke-width:2.4;color:var(--slate-light)}
.hdr .btn{flex:none;margin-left:14px}
.burger{display:none;margin-left:auto;background:none;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:9px;color:var(--navy)}
.mnav{display:none;border-top:1px solid var(--line);background:#fff;padding:14px 0 22px}
.mnav.open{display:block}
.mnav a{display:block;padding:12px 4px;font-weight:600;border-bottom:1px solid var(--mist-2)}
.mnav .btn{margin-top:18px;width:100%;justify-content:center}

/* ── decorative bits ──────────────────────────── */
.dots{position:absolute;color:#C3D5F2;opacity:.85;pointer-events:none}
.blob{position:absolute;border-radius:50%;pointer-events:none}

/* ── hero ─────────────────────────────────────── */
.hero{position:relative;overflow:hidden;padding:64px 0 78px}
.hero-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:44px;align-items:center}
.hero h1{font-size:clamp(38px,5.1vw,62px)}
.hero h1 .accent{color:var(--blue)}
.hero-sub{margin-top:24px;font-size:17px;color:var(--slate);max-width:340px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.lineage{display:flex;align-items:flex-start;gap:12px;margin-top:34px;max-width:360px;font-size:13.5px;color:var(--slate);line-height:1.5}
.lineage .seal{width:34px;height:34px;flex:none;color:var(--navy)}

/* ── hero image ───────────────────────────────── */
.collage{position:relative}
.collage img{width:100%;height:auto;display:block}

/* ── stat strip ───────────────────────────────── */
.strip{background:var(--navy);color:#fff}
.strip-in{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;padding:34px 0}
.strip-item{display:flex;align-items:center;justify-content:center;gap:18px}
.strip-item+.strip-item{border-left:1px solid rgba(255,255,255,.16)}
.strip-item .ico{width:38px;height:38px;stroke-width:1.3;opacity:.92}
.strip-item b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:34px;line-height:1}
.strip-item span{font-size:13.5px;color:rgba(255,255,255,.74)}

/* ── section shell ────────────────────────────── */
.sec{padding:80px 0}
.sec-mist{background:var(--mist)}
.sec-h{font-size:clamp(27px,3.2vw,36px)}
.sec-h .accent{color:var(--blue)}

/* ── matcher ──────────────────────────────────── */
.chips{display:flex;flex-wrap:wrap;gap:9px;margin:34px 0 26px}
.chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:10px 16px;font-size:14px;font-weight:600;color:var(--navy);transition:all .16s}
.chip .ico{width:16px;height:16px;color:var(--slate)}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.chip:hover .ico{color:var(--blue)}
.chip[aria-selected="true"]{background:var(--amber);border-color:var(--amber);color:var(--navy)}
.chip[aria-selected="true"] .ico{color:var(--navy)}
.match{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
.panel{border-radius:var(--r-lg);padding:26px}
.panel-mist{background:var(--mist);border:1px solid var(--mist-2)}
.panel-sky{background:var(--sky);border:1px solid #D3E4FC;position:relative;overflow:hidden}
.panel h3{font-size:17px;margin-bottom:18px}
.rec{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:16px 18px;margin-bottom:11px;transition:border-color .16s,transform .16s}
.rec:last-child{margin-bottom:0}
.rec:hover{border-color:var(--blue);transform:translateX(3px)}
.rec .badge{width:40px;height:40px;flex:none;border-radius:9px;background:var(--sky);color:var(--blue);display:grid;place-items:center}
.rec .badge .ico{width:20px;height:20px}
.rec-txt{min-width:0}
.rec b{display:block;font-size:15px;font-weight:700}
.rec p{font-size:12.5px;color:var(--slate);line-height:1.45;margin-top:2px}
.rec .go{margin-left:auto;color:var(--blue)}
.mini-lbl{font-size:11px;color:var(--slate-light);font-weight:600;margin-bottom:9px}
.ticks{margin:18px 0 22px;display:grid;gap:11px}
.ticks li{display:flex;align-items:flex-start;gap:10px;font-size:14px}
.ticks .ico{width:17px;height:17px;color:var(--green);margin-top:3px}
.panel-sky p.lead{font-size:14px;color:var(--slate);max-width:330px}
.curve{position:absolute;right:-6px;bottom:56px;width:130px;color:var(--blue);opacity:.55}

/* ── product grid ─────────────────────────────── */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--line);gap:1px}
.pcard{position:relative;background:#fff;padding:26px 24px 46px;transition:background .16s}
.pcard:hover{background:var(--mist)}
.pcard-top{display:flex;align-items:flex-start;gap:16px}
.pcard .glyph{width:44px;height:44px;flex:none;color:var(--navy)}
.pcard .glyph .ico{width:44px;height:44px;stroke-width:1.35}
.pcard .num{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--slate-light);letter-spacing:.06em}
.pcard h3{font-size:16.5px;margin:5px 0 8px}
.pcard p{font-size:13px;color:var(--slate);line-height:1.55}
.pcard .go{position:absolute;right:22px;bottom:20px;color:var(--blue);transition:transform .16s}
.pcard:hover .go{transform:translateX(4px)}
.tag-new{position:absolute;right:20px;top:24px;background:var(--amber);color:var(--navy);border-radius:4px;
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.12em;padding:3px 7px}

/* ── development (teal) ───────────────────────── */
.dev{position:relative;overflow:hidden;background:linear-gradient(118deg,var(--teal) 0%,var(--teal-deep) 62%,#064A40 100%);color:#fff;padding:74px 0}
.dev-grid{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:52px}
.dev h2{font-size:clamp(30px,3.6vw,41px)}
.dev .btn{margin-top:34px}
.caps{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:34px}
.cap{text-align:center;color:rgba(255,255,255,.94)}
.cap .box{height:46px;display:grid;place-items:center;margin-bottom:9px}
.cap .ico{width:30px;height:30px;stroke-width:1.4}
.cap span{font-size:12.5px;font-weight:600;line-height:1.3;display:block}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;align-items:stretch}
.step{position:relative;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);border-radius:var(--r);padding:15px 15px 17px}
.step+.step{margin-left:26px}
.step+.step::before{content:"";position:absolute;left:-22px;top:50%;width:18px;height:1.5px;background:rgba(255,255,255,.42)}
.step+.step::after{content:"";position:absolute;left:-9px;top:50%;width:6px;height:6px;border-top:1.5px solid rgba(255,255,255,.42);
  border-right:1.5px solid rgba(255,255,255,.42);transform:translateY(-50%) rotate(45deg)}
.step .n{font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:rgba(255,255,255,.6);letter-spacing:.1em}
.step b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:14px;letter-spacing:.06em;margin:4px 0 7px}
.step p{font-size:12px;color:rgba(255,255,255,.8);line-height:1.5}
.dev .dots{color:rgba(255,255,255,.3);right:34px;bottom:26px}
.dev .curve-w{position:absolute;left:29%;bottom:74px;width:98px;color:var(--amber);opacity:.9}

/* ── tech ─────────────────────────────────────── */
.tech{padding:52px 0;position:relative;overflow:hidden}
.tech-in{display:grid;grid-template-columns:210px 1fr;gap:40px;align-items:center}
.tech-lbl{font-size:11px;color:var(--navy);line-height:1.7;position:relative}
.tech-lbl .nib{position:absolute;right:-6px;top:6px;width:44px;color:var(--amber)}
.techlist{display:flex;flex-wrap:wrap;gap:11px 26px}
.techlist li{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:500}
.techlist .ico{width:15px;height:15px;color:var(--blue)}

/* ── how we work ──────────────────────────────── */
.hww{border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 34px 38px;margin-bottom:0}
.flow{display:grid;grid-template-columns:1fr 44px 1fr 44px 1fr 44px 1fr;align-items:start;gap:0}
.flow-step{text-align:center;padding:0 8px}
.flow-step .glyph{height:52px;display:grid;place-items:center;color:var(--navy);margin-bottom:14px}
.flow-step .glyph .ico{width:36px;height:36px;stroke-width:1.35}
.flow-step b{display:block;font-size:14.5px;font-weight:700;margin-bottom:5px}
.flow-step p{font-size:12.5px;color:var(--slate);line-height:1.5}
.flow-arrow{display:grid;place-items:center;padding-top:24px;color:var(--slate-light)}
.flow-arrow .ico{width:34px;height:16px;stroke-width:1.4}

/* ── articles ─────────────────────────────────── */
.art-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}
.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.art{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:24px 24px 20px;transition:border-color .16s,transform .16s,box-shadow .16s}
.art:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:var(--shadow)}
.art .cat{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--blue)}
.art h3{font-size:17.5px;line-height:1.25;margin:12px 0 10px}
.art p{font-size:13.5px;color:var(--slate);line-height:1.6}
.art .meta{display:flex;align-items:center;gap:9px;margin-top:auto;padding-top:18px;
  font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:10.5px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--slate-light)}
.art .meta i{width:3px;height:3px;border-radius:50%;background:var(--slate-light);flex:none}
.art .more{display:flex;align-items:center;gap:7px;margin-top:14px;font-size:13.5px;font-weight:600;color:var(--blue)}
.art .more .ico{width:15px;height:15px;stroke-width:2.2;transition:transform .16s}
.art:hover .more .ico{transform:translateX(4px)}
.art-all{display:flex;justify-content:center;margin-top:38px}

/* ── CTA ──────────────────────────────────────── */
.cta{position:relative;overflow:hidden;background:var(--blue-bright);color:#fff;padding:66px 0 70px}
.cta-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr) 220px;gap:40px;align-items:start}
.cta h2{font-size:clamp(31px,3.9vw,44px)}
.cta .arrow-rise{width:150px;color:var(--amber);margin-top:30px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.field{display:flex;flex-direction:column}
.field.full{grid-column:1/-1}
.form .field:nth-of-type(5){align-self:start}
.field label{font-size:12px;font-weight:600;color:rgba(255,255,255,.9);margin-bottom:5px}
.field input,.field select,.field textarea{background:#fff;border:1.5px solid transparent;border-radius:var(--r-sm);
  padding:13px 14px;font:inherit;font-size:14.5px;color:var(--navy);width:100%}
.field textarea{min-height:104px;resize:vertical}
.field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235A6B7C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 13px center}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--amber)}
.field .err{display:none;font-size:12px;font-weight:600;color:var(--navy);background:#FFF4DC;border-radius:4px;padding:5px 9px;margin-top:6px}
.field.invalid .err{display:flex;align-items:center;gap:6px}
.field.invalid .err .ico{width:13px;height:13px;stroke-width:2.4}
.form .btn{grid-column:1/-1;justify-self:start;margin-top:6px}
.assure{display:grid;gap:22px;padding-top:4px}
.assure li{display:flex;gap:11px}
.assure .ico{width:19px;height:19px;flex:none;color:#fff;margin-top:3px}
.assure b{display:block;font-size:14.5px;font-weight:700}
.assure p{font-size:12.5px;color:rgba(255,255,255,.82);line-height:1.5}
.form-ok{display:none;background:rgba(255,255,255,.14);border:1.5px solid rgba(255,255,255,.4);border-radius:var(--r);padding:20px}
.form-ok.show{display:block}
.form-ok b{font-family:"Bricolage Grotesque",sans-serif;font-size:19px;display:block;margin-bottom:6px}
.cta .dots{color:rgba(255,255,255,.36)}

/* ── footer ───────────────────────────────────── */
.ftr{background:var(--navy);color:rgba(255,255,255,.76);padding:58px 0 0;font-size:13.5px}
.ftr-grid{display:grid;grid-template-columns:1.5fr repeat(4,.92fr) 1.1fr;gap:30px}
.ftr .brand{margin-bottom:20px}
.ftr p{line-height:1.65;max-width:230px}
.ftr h4{color:#fff;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:11px;letter-spacing:.11em;text-transform:uppercase;margin-bottom:16px}
.ftr-links li{margin-bottom:9px}
.ftr-links a:hover{color:#fff}
.seals{display:flex;gap:10px;margin-top:24px}
.seal-box{display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.24);border-radius:var(--r-sm);padding:7px 10px}
.seal-box .ico{width:19px;height:19px;color:rgba(255,255,255,.8)}
.seal-box span{font-family:"IBM Plex Mono",monospace;font-size:8px;letter-spacing:.07em;line-height:1.28;text-transform:uppercase;color:rgba(255,255,255,.82)}
.contact li{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}
.contact .ico{width:16px;height:16px;color:rgba(255,255,255,.62);margin-top:3px}
.socials{display:flex;gap:9px;margin-top:22px}
.socials a{width:31px;height:31px;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center;color:#fff;transition:background .15s}
.socials a:hover{background:var(--blue)}
.socials .ico{width:15px;height:15px}
.ftr-btm{border-top:1px solid rgba(255,255,255,.14);margin-top:46px;padding:20px 0 24px;font-size:12.5px;color:rgba(255,255,255,.56)}

/* ── responsive ───────────────────────────────── */
@media (max-width:1140px){
  .nav,.hdr .btn{display:none}
  .burger{display:block}
  .hero-grid{grid-template-columns:1fr;gap:8px}
  .hero-sub,.lineage{max-width:520px}
  .collage{order:2;margin-top:18px}
  .dev-grid{grid-template-columns:1fr;gap:34px}
  .caps{grid-template-columns:repeat(3,1fr);gap:18px}
  .cta-grid{grid-template-columns:1fr;gap:30px}
  .cta .arrow-rise{display:none}
  .ftr-grid{grid-template-columns:1fr 1fr 1fr;gap:34px}
  .art-grid{grid-template-columns:1fr 1fr}
  .tech-in{grid-template-columns:1fr;gap:20px}
  .tech-lbl .nib{display:none}
}
@media (max-width:860px){
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .match{grid-template-columns:1fr}
  .strip-in{grid-template-columns:1fr;gap:26px;padding:28px 0}
  .strip-item{justify-content:flex-start;padding-left:8px}
  .strip-item+.strip-item{border-left:0;border-top:1px solid rgba(255,255,255,.16);padding-top:24px}
  .steps{grid-template-columns:1fr 1fr;gap:14px}
  .step+.step{margin-left:0}
  .step+.step::before,.step+.step::after{display:none}
  .flow{grid-template-columns:1fr 1fr;gap:30px 12px}
  .art-head{flex-direction:column;align-items:flex-start;gap:14px}
  .flow-arrow{display:none}
  .hww{padding:26px 20px 30px}
}
@media (max-width:620px){
  .wrap{padding:0 20px}
  .sec{padding:56px 0}
  .pgrid{grid-template-columns:1fr}
  .pcard{padding:22px 20px 44px}
  .caps{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .ftr-grid{grid-template-columns:1fr 1fr}
  .art-grid{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr}
  .dev .curve-w{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .btn:hover,.rec:hover{transform:none}
}

/* ==========================================================================
   ABOUT
   ========================================================================== */
/* ── about: opening statement ──────────────────── */
.abt-open{padding:70px 0 58px}
.abt-open-grid{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,.58fr);gap:56px;align-items:end}
.abt-open h1{font-size:clamp(34px,4.5vw,55px)}
.abt-open h1 .accent{color:var(--blue)}
.abt-lede{margin-top:26px;font-size:17.5px;color:var(--slate);max-width:600px}
.abt-facts{border-left:2px solid var(--line);padding-left:24px}
.abt-facts li+li{margin-top:20px}
.abt-facts .k{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:10.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--slate-light)}
.abt-facts .v{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:21px;line-height:1.2;margin-top:3px}

/* ── about: the two halves ─────────────────────── */
.halves{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:var(--r-lg);overflow:hidden}
.half{padding:38px 36px 34px}
.half-sky{background:var(--sky);border:1px solid #D3E4FC;border-right:0;border-radius:var(--r-lg) 0 0 var(--r-lg)}
.half-navy{background:var(--navy);color:#fff;border-radius:0 var(--r-lg) var(--r-lg) 0}
.half .tagline{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:10.5px;letter-spacing:.11em;
  text-transform:uppercase;margin-bottom:16px}
.half-sky .tagline{color:var(--blue)}
.half-navy .tagline{color:rgba(255,255,255,.6)}
.half h2{font-size:25px;margin-bottom:14px}
.half>p{font-size:14.5px;line-height:1.65}
.half-sky>p{color:var(--slate)}
.half-navy>p{color:rgba(255,255,255,.78)}
.half-list{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:9px 18px}
.half-list li{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;font-weight:500;line-height:1.4}
.half-list .ico{width:14px;height:14px;flex:none;margin-top:4px}
.half-sky .half-list .ico{color:var(--blue)}
.half-navy .half-list .ico{color:var(--amber)}
.half .foot{margin-top:26px;padding-top:20px;font-size:13px;line-height:1.6}
.half-sky .foot{border-top:1px solid #CFE0FB;color:var(--slate)}
.half-navy .foot{border-top:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.72)}
.half a.inline{color:var(--blue);font-weight:600;border-bottom:1.5px solid #B9CFF5}
.half-navy a.inline{color:var(--amber);border-bottom-color:rgba(245,166,35,.5)}

/* ── about: origin ─────────────────────────────── */
.origin-grid{display:grid;grid-template-columns:minmax(0,.66fr) minmax(0,1.34fr);gap:52px}
.origin-grid h2{font-size:clamp(26px,3vw,34px)}
.origin-body p+p{margin-top:18px}
.origin-body{font-size:16px;color:var(--slate);max-width:660px}
.origin-body strong{color:var(--navy);font-weight:600}
.callout{margin-top:30px;background:#FFF8EC;border:1px solid #F2DCB4;border-left:4px solid var(--amber);
  border-radius:0 var(--r) var(--r) 0;padding:22px 24px;max-width:660px}
.callout b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:16px;margin-bottom:8px;color:var(--navy)}
.callout p{font-size:14px;color:var(--slate);line-height:1.65}

/* ── about: principles ────────────────────────── */
.princ{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;background:var(--line);gap:1px}
.princ li{background:#fff;padding:28px 24px 30px}
.princ .glyph{color:var(--navy);margin-bottom:16px}
.princ .glyph .ico{width:30px;height:30px;stroke-width:1.4}
.princ b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:16.5px;line-height:1.25;margin-bottom:9px}
.princ p{font-size:13.5px;color:var(--slate);line-height:1.6}

/* ── about: team ──────────────────────────────── */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.tm{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;text-align:center}
.tm .ph{aspect-ratio:1;border-radius:var(--r);background:var(--mist);border:1px dashed var(--line);
  display:grid;place-items:center;margin-bottom:16px;color:var(--slate-light)}
.tm .ph .ico{width:30px;height:30px;stroke-width:1.4}
.tm b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:16px}
.tm span{font-size:12.5px;color:var(--slate)}
.team-note{margin-top:20px;font-size:13px;color:var(--slate-light)}

/* ── about: closing band ──────────────────────── */
.band{background:var(--blue-bright);color:#fff;padding:62px 0;position:relative;overflow:hidden}
.band-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center}
.band h2{font-size:clamp(28px,3.5vw,38px)}
.band p{margin-top:14px;font-size:16px;color:rgba(255,255,255,.86);max-width:520px}
.band-cta{display:flex;flex-wrap:wrap;gap:12px}
.band .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.band .btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}

@media (max-width:1140px){
  .abt-open-grid{grid-template-columns:1fr;gap:36px;align-items:start}
  .abt-facts{border-left:0;border-top:2px solid var(--line);padding:22px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .abt-facts li+li{margin-top:0}
  .origin-grid{grid-template-columns:1fr;gap:24px}
  .princ{grid-template-columns:1fr 1fr}
  .team-grid{grid-template-columns:1fr 1fr}
  .band-grid{grid-template-columns:1fr;gap:26px}
}
@media (max-width:860px){
  .halves{grid-template-columns:1fr}
  .half-sky{border-right:1px solid #D3E4FC;border-bottom:0;border-radius:var(--r-lg) var(--r-lg) 0 0}
  .half-navy{border-radius:0 0 var(--r-lg) var(--r-lg)}
}
@media (max-width:620px){
  .abt-open{padding:44px 0 40px}
  .abt-facts{grid-template-columns:1fr;gap:16px}
  .princ{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr 1fr}
  .half{padding:28px 22px}
  .half-list{grid-template-columns:1fr}
}

/* ==========================================================================
   BLOG LISTING
   ========================================================================== */
/* ── blog: page head ──────────────────────────── */
.blog-head{padding:62px 0 40px}
.blog-head h1{font-size:clamp(33px,4.3vw,52px)}
.blog-head h1 .accent{color:var(--blue)}
.blog-lede{margin-top:22px;font-size:17px;color:var(--slate);max-width:620px}

/* ── blog: featured post ──────────────────────── */
.feat{display:block;background:var(--navy);color:#fff;border-radius:var(--r-xl);
  padding:40px 44px 36px;position:relative;overflow:hidden;transition:transform .18s,box-shadow .18s}
.feat:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.feat-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.5fr);gap:44px;align-items:end;position:relative;z-index:2}
.feat .flag{display:inline-flex;align-items:center;gap:9px;font-family:"IBM Plex Mono",monospace;font-weight:600;
  font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--amber);margin-bottom:18px}
.feat .flag i{width:22px;height:1.5px;background:var(--amber);flex:none}
.feat h2{font-size:clamp(25px,3.2vw,36px);line-height:1.14;max-width:760px}
.feat p.ex{margin-top:18px;font-size:15.5px;color:rgba(255,255,255,.78);line-height:1.62;max-width:660px}
.feat .side{border-left:1px solid rgba(255,255,255,.2);padding-left:26px}
.feat .side dl{margin:0}
.feat .side dt{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,255,255,.5)}
.feat .side dd{margin:3px 0 16px;font-size:14.5px;font-weight:600}
.feat .side dd:last-of-type{margin-bottom:0}
.feat .more{display:inline-flex;align-items:center;gap:8px;margin-top:26px;font-size:15px;font-weight:600;color:var(--amber)}
.feat .more .ico{width:16px;height:16px;stroke-width:2.2;transition:transform .18s}
.feat:hover .more .ico{transform:translateX(5px)}
.feat .dots{color:rgba(255,255,255,.13);right:34px;top:30px;width:60px}

/* ── blog: filter + results ───────────────────── */
.filter-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:6px}
.blog .chips{margin:18px 0 22px}
.result-count{font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--slate-light);white-space:nowrap;padding-bottom:4px}
.art.hide{display:none}
.art-empty{display:none;border:1px dashed var(--line);border-radius:var(--r-lg);padding:46px 34px;text-align:center;background:#fff}
.art-empty.show{display:block}
.art-empty b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:20px;margin-bottom:10px}
.art-empty p{font-size:14.5px;color:var(--slate);max-width:430px;margin:0 auto 22px}

/* ── blog: pagination ─────────────────────────── */
.pager{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:44px;flex-wrap:wrap}
.pager button{display:inline-flex;align-items:center;gap:7px;min-width:40px;height:40px;padding:0 13px;
  justify-content:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:14px;font-weight:600;color:var(--navy);transition:all .15s}
.pager button:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
.pager button[aria-current="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.pager button:disabled{opacity:.4;cursor:not-allowed}
.pager .ico{width:15px;height:15px;stroke-width:2.2}
.pager .gap{color:var(--slate-light);padding:0 4px;font-weight:600}

/* ── blog: newsletter ─────────────────────────── */
.news{background:var(--mist);border-top:1px solid var(--line);padding:56px 0}
.news-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:46px;align-items:center}
.news h2{font-size:clamp(24px,2.8vw,31px)}
.news p{margin-top:12px;font-size:15px;color:var(--slate);max-width:460px}
.news form{display:flex;gap:10px;flex-wrap:wrap}
.news input{flex:1;min-width:210px;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);
  padding:13px 15px;font:inherit;font-size:14.5px;color:var(--navy)}
.news input:focus{outline:none;border-color:var(--blue)}
.news .fine{margin-top:12px;font-size:12.5px;color:var(--slate-light);max-width:460px}
.news-ok{display:none;font-size:14.5px;font-weight:600;color:var(--green);align-items:center;gap:8px}
.news-ok.show{display:flex}
.news-ok .ico{width:17px;height:17px}

@media (max-width:1140px){
  .feat-grid{grid-template-columns:1fr;gap:26px;align-items:start}
  .feat .side{border-left:0;border-top:1px solid rgba(255,255,255,.2);padding:20px 0 0;
    display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .feat .side dd{margin-bottom:0}
  .news-grid{grid-template-columns:1fr;gap:26px}
}
@media (max-width:620px){
  .blog-head{padding:42px 0 30px}
  .feat{padding:28px 24px 26px;border-radius:var(--r-lg)}
  .feat .side{grid-template-columns:1fr;gap:12px}
  .filter-bar{align-items:flex-start}
}

/* ==========================================================================
   SINGLE ARTICLE
   ========================================================================== */
/* ── article: reading progress ─────────────────── */
.prog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--amber);z-index:110;transition:width .08s linear}

/* ── article: header ──────────────────────────── */
.post-head{padding:54px 0 34px;border-bottom:1px solid var(--line)}
.post-head .wrap{max-width:980px}
.post-cat{display:inline-flex;align-items:center;gap:9px;font-family:"IBM Plex Mono",monospace;font-weight:600;
  font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--blue)}
.post-cat i{width:20px;height:1.5px;background:var(--blue);flex:none}
.post-head h1{font-size:clamp(30px,4vw,47px);margin:18px 0 0;max-width:20ch}
.stand{margin-top:20px;font-size:19px;line-height:1.55;color:var(--slate);max-width:62ch}
.post-meta{display:flex;align-items:center;gap:11px;margin-top:28px;font-family:"IBM Plex Mono",monospace;
  font-weight:500;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--slate-light);flex-wrap:wrap}
.post-meta i{width:3px;height:3px;border-radius:50%;background:var(--slate-light);flex:none}
.post-meta b{color:var(--navy);font-weight:600}

/* ── article: layout ──────────────────────────── */
.post-body{padding:44px 0 74px}
.post-grid{display:grid;grid-template-columns:minmax(0,1fr) 244px;gap:56px;align-items:start;max-width:1080px;margin:0 auto}

/* ── article: table of contents ───────────────── */
.rail{position:sticky;top:104px}
.toc-t{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--slate-light);margin-bottom:14px}
.toc{border-left:2px solid var(--line)}
.toc a{display:block;padding:7px 0 7px 16px;margin-left:-2px;border-left:2px solid transparent;
  font-size:13.5px;line-height:1.4;color:var(--slate);transition:color .15s,border-color .15s}
.toc a:hover{color:var(--blue)}
.toc a.on{color:var(--navy);font-weight:600;border-left-color:var(--blue)}
.toc-m{display:none;margin:0 0 30px;border:1px solid var(--line);border-radius:var(--r);background:var(--mist)}
.toc-m summary{padding:14px 18px;font-weight:600;font-size:14.5px;cursor:pointer;list-style:none;
  display:flex;align-items:center;justify-content:space-between;gap:10px}
.toc-m summary::-webkit-details-marker{display:none}
.toc-m summary .ico{width:16px;height:16px;stroke-width:2.2;color:var(--slate);transition:transform .18s}
.toc-m[open] summary .ico{transform:rotate(180deg)}
.toc-m .toc{margin:0 18px 16px}

/* ── article: body typography ─────────────────── */
.doc{max-width:68ch;font-size:17.5px;line-height:1.75;color:#243B55}
.doc>*+*{margin-top:1.35em}
.doc h2{font-size:26px;line-height:1.2;margin-top:2.1em;color:var(--navy);scroll-margin-top:110px}
.doc h3{font-size:19.5px;line-height:1.3;margin-top:1.8em;color:var(--navy);scroll-margin-top:110px}
.doc h2+*,.doc h3+*{margin-top:.7em}
.doc a:not(.btn){color:var(--blue);font-weight:600;border-bottom:1.5px solid #B9CFF5}
.doc a:not(.btn):hover{border-bottom-color:var(--blue)}
.doc strong{color:var(--navy);font-weight:700}
.doc ul,.doc ol{padding-left:1.5em}
.doc ul{list-style:none;padding-left:0}
.doc ul li{position:relative;padding-left:1.5em}
.doc ul li::before{content:"";position:absolute;left:.35em;top:.72em;width:6px;height:6px;
  border-radius:50%;background:var(--amber)}
.doc ol{list-style:none;counter-reset:s;padding-left:0}
.doc ol li{position:relative;padding-left:2.1em;counter-increment:s}
.doc ol li::before{content:counter(s);position:absolute;left:0;top:.16em;font-family:"IBM Plex Mono",monospace;
  font-weight:600;font-size:12.5px;color:var(--blue);background:var(--sky);width:22px;height:22px;
  border-radius:5px;display:grid;place-items:center}
.doc li+li{margin-top:.55em}
.doc blockquote{margin-left:0;margin-right:0;padding:4px 0 4px 26px;border-left:3px solid var(--amber);
  font-size:19px;line-height:1.6;color:var(--navy)}
.doc blockquote p+p{margin-top:.7em}
.doc code{font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:.86em;background:var(--mist);
  border:1px solid var(--mist-2);border-radius:4px;padding:.12em .38em;color:#0B3B75}
.doc pre{background:var(--navy);color:#DCE7F5;border-radius:var(--r);padding:20px 22px;overflow-x:auto;
  font-family:"IBM Plex Mono",monospace;font-size:13px;line-height:1.7}
.doc pre code{background:none;border:0;padding:0;color:inherit;font-size:inherit}
.doc .tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
.doc table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:520px}
.doc th,.doc td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line)}
.doc th{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:10.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--slate);background:var(--mist);white-space:nowrap}
.doc tbody tr:last-child td{border-bottom:0}
.doc td b{color:var(--navy)}
.doc figure{margin:0}
.doc figure .ph{aspect-ratio:16/9;border:1px dashed var(--line);border-radius:var(--r);background:var(--mist);
  display:grid;place-items:center;color:var(--slate-light)}
.doc figure .ph .ico{width:34px;height:34px;stroke-width:1.4}
.doc figcaption{margin-top:10px;font-size:13px;color:var(--slate-light);line-height:1.55}
.doc .note{background:#FFF8EC;border:1px solid #F2DCB4;border-left:4px solid var(--amber);
  border-radius:0 var(--r) var(--r) 0;padding:20px 24px;font-size:15.5px;line-height:1.65}
.doc .note b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:15.5px;margin-bottom:7px;color:var(--navy)}
.doc .note>*+*{margin-top:.6em}
.doc hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}

/* ── article: in-body product mention ─────────── */
.plug{display:flex;gap:18px;align-items:flex-start;background:var(--sky);border:1px solid #D3E4FC;
  border-radius:var(--r-lg);padding:22px 24px}
.plug .badge{width:44px;height:44px;flex:none;border-radius:10px;background:#fff;color:var(--blue);display:grid;place-items:center}
.plug .badge .ico{width:23px;height:23px}
.plug .lbl{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--slate-light)}
.plug b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:17px;margin:4px 0 7px}
.plug p{font-size:14px;color:var(--slate);line-height:1.6}
.plug .go{display:inline-flex;align-items:center;gap:7px;margin-top:11px;font-size:13.5px;font-weight:600;color:var(--blue)}
.plug .go .ico{width:15px;height:15px;stroke-width:2.2}

/* ── article: author ──────────────────────────── */
.author{display:flex;gap:18px;align-items:center;margin-top:52px;padding-top:30px;border-top:1px solid var(--line);max-width:68ch}
.author .ph{width:58px;height:58px;flex:none;border-radius:50%;background:var(--mist);
  border:1px dashed var(--line);display:grid;place-items:center;color:var(--slate-light)}
.author .ph .ico{width:24px;height:24px}
.author .k{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--slate-light)}
.author b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:17px;margin:3px 0 4px}
.author p{font-size:13.5px;color:var(--slate);line-height:1.55}

@media (max-width:1080px){
  .post-grid{grid-template-columns:1fr;gap:0}
  .rail{display:none}
  .toc-m{display:block}
  .doc{max-width:none}
  .author{max-width:none}
}
@media (max-width:620px){
  .post-head{padding:36px 0 26px}
  .post-head h1{max-width:none}
  .doc{font-size:16.5px}
  .doc h2{font-size:22px}
  .doc h3{font-size:18px}
  .doc blockquote{font-size:17px;padding-left:18px}
  .plug{flex-direction:column;gap:14px}
  .author{flex-direction:column;align-items:flex-start;gap:14px}
}

/* ==========================================================================
   CONTACT
   ========================================================================== */
/* ── contact: head ────────────────────────────── */
.ct-head{padding:58px 0 6px}
.ct-head h1{font-size:clamp(32px,4.2vw,50px)}
.ct-head h1 .accent{color:var(--blue)}
.ct-lede{margin-top:20px;font-size:17px;color:var(--slate);max-width:600px}

/* ── contact: route selector (signature) ──────── */
.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:34px 0 0}
.route{position:relative;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-lg);
  padding:22px 22px 20px;transition:border-color .16s,background .16s,transform .16s}
.route:hover{border-color:#B9CFF5;transform:translateY(-2px)}
.route .glyph{width:40px;height:40px;border-radius:9px;background:var(--mist);color:var(--navy);
  display:grid;place-items:center;margin-bottom:15px;transition:background .16s,color .16s}
.route .glyph .ico{width:21px;height:21px}
.route b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:17px;margin-bottom:6px;color:var(--navy)}
.route span{display:block;font-size:13px;color:var(--slate);line-height:1.55}
.route .tick{position:absolute;right:16px;top:16px;width:20px;height:20px;border-radius:50%;
  border:1.5px solid var(--line);display:grid;place-items:center;color:#fff;transition:all .16s}
.route .tick .ico{width:11px;height:11px;stroke-width:3;opacity:0;transition:opacity .16s}
.route[aria-checked="true"]{border-color:var(--blue);background:var(--sky)}
.route[aria-checked="true"] .glyph{background:var(--blue);color:#fff}
.route[aria-checked="true"] .tick{background:var(--blue);border-color:var(--blue)}
.route[aria-checked="true"] .tick .ico{opacity:1}

/* ── contact: body layout ─────────────────────── */
.ct-body{padding:44px 0 76px}
.ct-grid{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,.58fr);gap:52px;align-items:start}

/* ── contact: forms ───────────────────────────── */
.pane{display:none}
.pane.on{display:block}
.pane>h2{font-size:24px;margin-bottom:8px}
.pane>p.hint{font-size:14.5px;color:var(--slate);margin-bottom:26px;max-width:56ch}
.cf{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cf-f{display:flex;flex-direction:column}
.cf-f.wide{grid-column:1/-1}
.cf-f label{font-size:13px;font-weight:600;color:var(--navy);margin-bottom:6px}
.cf-f label .opt{font-weight:400;color:var(--slate-light)}
.cf-f input,.cf-f select,.cf-f textarea{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);
  padding:12px 14px;font:inherit;font-size:14.5px;color:var(--navy);width:100%}
.cf-f textarea{min-height:126px;resize:vertical}
.cf-f select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235A6B7C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 13px center;padding-right:36px}
.cf-f input:focus,.cf-f select:focus,.cf-f textarea:focus{outline:none;border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(26,95,224,.12)}
.cf-f .err{display:none;font-size:12.5px;font-weight:600;color:var(--navy);background:#FFF4DC;
  border:1px solid #F2DCB4;border-radius:4px;padding:6px 10px;margin-top:7px}
.cf-f.bad .err{display:flex;align-items:center;gap:7px}
.cf-f.bad .err .ico{width:13px;height:13px;stroke-width:2.4;flex:none;color:var(--amber-deep)}
.cf-f.bad input,.cf-f.bad select,.cf-f.bad textarea{border-color:var(--amber-deep)}
.cf .submit{grid-column:1/-1;display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:4px}
.cf .submit p{font-size:12.5px;color:var(--slate-light);max-width:34ch;line-height:1.5}
.done{display:none;background:#F1F8F4;border:1.5px solid #BEE3CD;border-left:4px solid var(--green);
  border-radius:0 var(--r) var(--r) 0;padding:26px 28px}
.done.on{display:block}
.done .row{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.done .row .ico{width:22px;height:22px;color:var(--green);flex:none}
.done b{font-family:"Bricolage Grotesque",sans-serif;font-size:20px}
.done p{font-size:14.5px;color:var(--slate);line-height:1.65;max-width:52ch}

/* ── contact: side panel ──────────────────────── */
.side-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 24px;background:#fff}
.side-card+.side-card{margin-top:18px}
.side-card h3{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--slate-light);margin-bottom:18px}
.ch li+li{margin-top:17px}
.ch a,.ch span.v{display:flex;align-items:flex-start;gap:12px;font-size:14.5px;font-weight:600;color:var(--navy)}
.ch a:hover{color:var(--blue)}
.ch .ico{width:17px;height:17px;flex:none;margin-top:3px;color:var(--blue)}
.ch .sub{display:block;font-size:12.5px;font-weight:400;color:var(--slate);margin-top:2px}
.map-slot{aspect-ratio:4/3;border:1px dashed var(--line);border-radius:var(--r);background:var(--mist);
  display:grid;place-items:center;text-align:center;color:var(--slate-light);padding:18px;margin-top:16px}
.map-slot .ico{width:26px;height:26px;stroke-width:1.4;margin:0 auto 9px}
.map-slot p{font-size:12px;line-height:1.5}
.addr{font-size:14.5px;line-height:1.7;color:var(--navy);font-style:normal}
.addr .pend{color:var(--slate-light)}

/* ── contact: FAQ ─────────────────────────────── */
.faq{max-width:820px;margin:0 auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 2px;
  cursor:pointer;list-style:none;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:17.5px;line-height:1.35;color:var(--navy)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--blue)}
.faq summary .ico{width:18px;height:18px;stroke-width:2.2;flex:none;margin-top:3px;color:var(--slate);transition:transform .2s}
.faq details[open] summary .ico{transform:rotate(180deg)}
.faq .a{padding:0 2px 22px;font-size:15.5px;line-height:1.7;color:var(--slate);max-width:66ch}
.faq .a p+p{margin-top:.8em}
.faq .a a{color:var(--blue);font-weight:600;border-bottom:1.5px solid #B9CFF5}

@media (max-width:1140px){
  .ct-grid{grid-template-columns:1fr;gap:40px}
  .routes{grid-template-columns:1fr}
  .route{display:flex;align-items:flex-start;gap:16px;padding:18px 20px}
  .route .glyph{margin-bottom:0}
  .route .tick{position:static;margin-left:auto;flex:none}
}
@media (max-width:620px){
  .ct-head{padding:38px 0 4px}
  .cf{grid-template-columns:1fr}
  .faq summary{font-size:16px}
}

/* ==========================================================================
   LEGAL
   ========================================================================== */
/* ── legal: draft warning (REMOVE BEFORE PUBLISHING) ── */
.legal-draft{background:#FFF4DC;border-bottom:2px solid var(--amber)}
.legal-draft .wrap{display:flex;align-items:flex-start;gap:14px;padding:18px 28px}
.legal-draft .ico{width:20px;height:20px;flex:none;margin-top:2px;color:var(--amber-deep)}
.legal-draft b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:15px;color:var(--navy);margin-bottom:4px}
.legal-draft p{font-size:13.5px;line-height:1.6;color:#6A5326;max-width:88ch}

/* ── legal: header ────────────────────────────── */
.lg-head{padding:52px 0 30px;border-bottom:1px solid var(--line)}
.lg-head h1{font-size:clamp(31px,4vw,46px)}
.lg-meta{display:flex;align-items:center;gap:11px;margin-top:20px;font-family:"IBM Plex Mono",monospace;
  font-weight:500;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--slate-light);flex-wrap:wrap}
.lg-meta i{width:3px;height:3px;border-radius:50%;background:var(--slate-light);flex:none}
.lg-meta b{color:var(--navy);font-weight:600}
.lg-lede{margin-top:22px;font-size:17px;line-height:1.65;color:var(--slate);max-width:66ch}
.lg-alt{margin-top:22px;font-size:14.5px}
.lg-alt a{color:var(--blue);font-weight:600;border-bottom:1.5px solid #B9CFF5}

/* ── legal: layout ────────────────────────────── */
.lg-body{padding:40px 0 78px}
.lg-grid{display:grid;grid-template-columns:262px minmax(0,1fr);gap:56px;align-items:start;max-width:1120px;margin:0 auto}

/* ── legal: contents ─────────────────────────── */
.lg-rail{position:sticky;top:104px;max-height:calc(100vh - 140px);overflow-y:auto}
.lg-rail .t{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--slate-light);margin-bottom:14px}
.lg-toc{border-left:2px solid var(--line);counter-reset:c}
.lg-toc a{display:flex;gap:10px;padding:6px 0 6px 15px;margin-left:-2px;border-left:2px solid transparent;
  font-size:13px;line-height:1.4;color:var(--slate);counter-increment:c;transition:color .15s,border-color .15s}
.lg-toc a::before{content:counter(c);font-family:"IBM Plex Mono",monospace;font-size:10.5px;
  color:var(--slate-light);flex:none;padding-top:2px;min-width:14px}
.lg-toc a:hover{color:var(--blue)}
.lg-toc a.on{color:var(--navy);font-weight:600;border-left-color:var(--blue)}
.lg-toc a.on::before{color:var(--blue)}
.lg-toc-m{display:none;margin:0 0 30px;border:1px solid var(--line);border-radius:var(--r);background:var(--mist)}
.lg-toc-m summary{padding:14px 18px;font-weight:600;font-size:14.5px;cursor:pointer;list-style:none;
  display:flex;align-items:center;justify-content:space-between;gap:10px}
.lg-toc-m summary::-webkit-details-marker{display:none}
.lg-toc-m summary .ico{width:16px;height:16px;stroke-width:2.2;color:var(--slate);transition:transform .18s}
.lg-toc-m[open] summary .ico{transform:rotate(180deg)}
.lg-toc-m .lg-toc{margin:0 18px 16px}

/* ── legal: document body ─────────────────────── */
.lg-doc{max-width:70ch;font-size:16.5px;line-height:1.75;color:#243B55;counter-reset:sec}
.lg-doc section{padding-top:8px;scroll-margin-top:112px}
.lg-doc section+section{margin-top:2.6em}
.lg-doc h2{counter-increment:sec;font-size:22px;line-height:1.25;color:var(--navy);
  display:flex;gap:13px;align-items:baseline}
.lg-doc h2::before{content:counter(sec);font-family:"IBM Plex Mono",monospace;font-weight:600;
  font-size:13px;color:var(--blue);flex:none;padding-top:2px}
.lg-doc h3{font-size:17px;line-height:1.35;color:var(--navy);margin-top:1.5em}
.lg-doc p,.lg-doc ul,.lg-doc ol,.lg-doc .tbl,.lg-doc .lgnote{margin-top:1.05em}
.lg-doc h2+p,.lg-doc h3+p,.lg-doc h2+ul,.lg-doc h3+ul{margin-top:.75em}
.lg-doc strong{color:var(--navy);font-weight:700}
.lg-doc a{color:var(--blue);font-weight:600;border-bottom:1.5px solid #B9CFF5}
.lg-doc ul{list-style:none;padding-left:0}
.lg-doc ul li{position:relative;padding-left:1.4em}
.lg-doc ul li::before{content:"";position:absolute;left:.3em;top:.68em;width:5px;height:5px;
  border-radius:50%;background:var(--amber)}
.lg-doc ol{list-style:none;counter-reset:n;padding-left:0}
.lg-doc ol li{position:relative;padding-left:2em;counter-increment:n}
.lg-doc ol li::before{content:"(" counter(n, lower-alpha) ")";position:absolute;left:0;top:0;
  font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--blue);padding-top:.2em}
.lg-doc li+li{margin-top:.5em}
.lg-doc .tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
.lg-doc table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
.lg-doc th,.lg-doc td{text-align:left;padding:11px 15px;border-bottom:1px solid var(--line);vertical-align:top}
.lg-doc th{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:10px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--slate);background:var(--mist)}
.lg-doc tbody tr:last-child td{border-bottom:0}
.lg-doc .lgnote{background:var(--sky);border:1px solid #D3E4FC;border-left:4px solid var(--blue);
  border-radius:0 var(--r) var(--r) 0;padding:18px 22px;font-size:15px;line-height:1.65}
.lg-doc .lgnote b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:15px;
  margin-bottom:6px;color:var(--navy)}
.lg-doc .tbd{background:#FFF4DC;border-bottom:1px dashed var(--amber-deep);
  font-family:"IBM Plex Mono",monospace;font-size:.84em;padding:.1em .3em;color:#6A5326}
.lg-doc address{font-style:normal;font-size:15.5px;line-height:1.75;margin-top:1em}

@media (max-width:1080px){
  .lg-grid{grid-template-columns:1fr;gap:0}
  .lg-rail{display:none}
  .lg-toc-m{display:block}
  .lg-doc{max-width:none}
}
@media (max-width:620px){
  .lg-head{padding:34px 0 24px}
  .lg-doc{font-size:16px}
  .lg-doc h2{font-size:19.5px}
  .legal-draft .wrap{padding:16px 20px}
}


/* ==========================================================================
   WORDPRESS ADJUSTMENTS
   Core output classes, menu states and pagination markup.
   ========================================================================== */

/* pagination — core prints <a>/<span>, styled to match the design */
.pager .pager-item{display:inline-flex}
.pager a,.pager .current,.pager .dots{display:inline-flex;align-items:center;gap:7px;min-width:40px;height:40px;
  padding:0 13px;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:14px;font-weight:600;color:var(--navy);transition:all .15s}
.pager a:hover{border-color:var(--blue);color:var(--blue)}
.pager .current{background:var(--navy);border-color:var(--navy);color:#fff}
.pager .dots{border:0;background:none;color:var(--slate-light)}

/* nav menu states */
.nav .current-menu-item>a,.nav .current_page_item>a,.nav [aria-current="page"]{color:var(--blue)}
.nav li{position:relative}
.nav .sub-menu{position:absolute;left:0;top:100%;min-width:230px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow);padding:8px;display:none;z-index:50}
.nav li:hover>.sub-menu,.nav li:focus-within>.sub-menu{display:block}
.nav .sub-menu a{display:block;padding:9px 12px;font-size:14px;border-radius:var(--r-sm)}
.nav .sub-menu a:hover{background:var(--mist);color:var(--blue)}
.mnav .sub-menu{padding-left:14px}
.mnav .sub-menu a{font-weight:400;font-size:14px}

/* accessibility helper used by core */
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
  white-space:nowrap;border:0;padding:0;margin:-1px}

/* core alignment and caption classes inside prose */
.doc .alignleft,.lg-doc .alignleft{float:left;margin:.4em 1.6em 1em 0;max-width:50%}
.doc .alignright,.lg-doc .alignright{float:right;margin:.4em 0 1em 1.6em;max-width:50%}
.doc .aligncenter,.lg-doc .aligncenter{margin-left:auto;margin-right:auto;display:block}
.doc .alignwide{width:calc(100% + 120px);max-width:none;margin-left:-60px}
.doc .alignfull{width:100vw;max-width:none;margin-left:calc(50% - 50vw)}
.doc .wp-caption{max-width:100%}
.doc .wp-caption-text,.doc .wp-element-caption,.doc .blocks-gallery-caption{margin-top:10px;font-size:13px;
  color:var(--slate-light);line-height:1.55}
.doc img,.lg-doc img{max-width:100%;height:auto;border-radius:var(--r)}
.doc .wp-block-image,.doc .wp-block-embed,.doc .wp-block-table{margin-top:1.35em}
.doc .wp-block-table table,.doc figure.wp-block-table table{width:100%;border-collapse:collapse;font-size:14.5px}
.doc .wp-block-table th,.doc .wp-block-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line)}
.doc .wp-block-quote{margin-left:0;padding-left:26px;border-left:3px solid var(--amber)}
.doc .wp-block-code{background:var(--navy);color:#DCE7F5;border-radius:var(--r);padding:20px 22px;overflow-x:auto}
.doc .wp-block-code code{background:none;border:0;color:inherit;padding:0}
.doc .wp-block-separator{border:0;border-top:1px solid var(--line);margin:2.4em 0}
.doc .wp-block-button__link{display:inline-flex;align-items:center;gap:9px;background:var(--blue);color:#fff;
  border-radius:var(--r-sm);padding:13px 22px;font-weight:600;border:0}

/* sticky post marker on cards */
.art.sticky{border-color:var(--amber)}

/* logo fallback when no image is uploaded */
.logo-text{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:22px;letter-spacing:-.02em;
  color:var(--navy);line-height:1.1}
.ftr .logo-text{color:#fff}

/* FAQ accordion built from editor headings */
.faq details+details{margin-top:0}

/* comments, if ever enabled */
.comments-area{max-width:68ch;margin:52px auto 0;padding-top:30px;border-top:1px solid var(--line)}
.comments-area h2{font-size:22px;margin-bottom:20px}
.comment-list{list-style:none;padding:0}
.comment-list li{padding:18px 0;border-bottom:1px solid var(--mist-2)}
.comment-form input:not([type=submit]),.comment-form textarea{width:100%;background:#fff;
  border:1.5px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;font:inherit;font-size:14.5px}
.comment-form input[type=submit]{display:inline-flex;background:var(--blue);color:#fff;border:0;
  border-radius:var(--r-sm);padding:13px 22px;font-weight:600;cursor:pointer}

/* admin bar offset for the sticky header */
body.admin-bar .hdr{top:32px}
@media (max-width:782px){body.admin-bar .hdr{top:46px}}
