/* SolTelCo site — shared styles (consolidated v3).
   Layout: left-aligned 12-column rhythm, split section heads, alternating grey / white / navy bands.
   The navy highlights panel in the home hero is the one bold element; everything else stays quiet.
   Type: IBM Plex Sans Condensed for display, IBM Plex Sans for text.
   Single light theme with deliberate navy bands; every color is a token. */

/* ---------- Tokens ---------- */
:root{
  --band:#e6ebf2;          /* grey section band */
  --band-line:#b9c4d3;     /* divider between sections */
  --bg:#f3f5f8;            /* form fields, subtle fills */
  --surface:#ffffff;
  --surface-2:#eef1f6;
  --fill-on-white:#f4f6fa; /* cards placed on white sections */
  --ink:#0f1726;
  --ink-2:#3b4556;
  --muted:#5f6b7d;
  --navy:#0b1220;
  --navy-2:#121c30;
  --navy-line:#22324b;
  --blue:#0071e3;
  --blue-d:#0b4fb3;
  --blue-soft:#e8f1fd;
  --teal:#1fb7c6;
  --sky:#6cb8ff;
  --amber:#f2b550;
  --green:#067a46;
  --green-bg:#e8f7ef;
  --green-line:#bfe8d0;
  --line:#dde2ea;
  --line-2:#c9d1dd;
  --on-dark:#ffffff;
  --on-dark-2:#a9b8cc;
  --on-dark-3:#7e8ea6;
  --shadow:0 1px 2px rgba(15,23,38,.05),0 6px 20px rgba(15,23,38,.06);
  --shadow-lg:0 24px 60px rgba(11,18,32,.18);
  --r-lg:18px;
  --r:12px;
  --r-sm:8px;
  --display:"IBM Plex Sans Condensed","Arial Narrow",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --font:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.4,0,.2,1);
  --gutter:clamp(16px,4vw,40px);
  --dots:radial-gradient(circle at 1px 1px,rgba(15,23,38,.08) 1px,transparent 0) 0 0/22px 22px;
  color-scheme:light;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:16px;background:var(--band);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,p,ul,ol{margin:0}
.page{width:100%;max-width:1240px;margin:0 auto;padding-inline:var(--gutter)}
h1,h2{font-family:var(--display);font-weight:700;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:clamp(2.4rem,4.6vw,3.9rem);line-height:1.02}
h2{font-size:clamp(1.85rem,3.1vw,2.6rem);line-height:1.06}
h3{font-family:var(--display);font-size:1.22rem;line-height:1.2;font-weight:600;letter-spacing:0}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}

/* ---------- Text links and buttons ---------- */
.eyebrow{display:block;color:var(--blue);font-size:.88rem;font-weight:600;margin-bottom:10px}
.text-link{color:var(--blue);display:inline-flex;align-items:center;gap:4px;font-weight:500;font-size:1rem}
.text-link:hover{text-decoration:underline;text-underline-offset:3px}
.text-link::after{content:"›";font-size:1.25em;line-height:0}
.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 20px;border-radius:var(--r-sm);background:var(--blue);color:var(--on-dark);font-weight:500;font-size:.98rem;border:1px solid var(--blue);transition:background .2s var(--ease),color .2s var(--ease);cursor:pointer;font-family:inherit}
.button:hover{background:var(--blue-d);border-color:var(--blue-d)}
.button.secondary{background:var(--surface);color:var(--blue);border-color:var(--line-2)}
.button.secondary:hover{border-color:var(--blue);background:var(--blue-soft)}
.button.on-dark{background:var(--surface);color:var(--navy);border-color:var(--surface)}
.button.on-dark:hover{background:var(--blue-soft)}
.button.ghost-dark{background:transparent;color:var(--on-dark);border-color:rgba(255,255,255,.3)}
.button.ghost-dark:hover{background:rgba(255,255,255,.08)}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* ---------- Header ---------- */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:100;background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--line)}
.nav{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:.92rem;position:relative}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--ink);white-space:nowrap;min-width:0}
.logo-mark{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;color:var(--on-dark);background:linear-gradient(135deg,var(--blue),var(--teal));font-size:.68rem;font-weight:700;flex:none}
.nav-links{display:flex;align-items:center;gap:6px;list-style:none;padding:0}
.nav-links a{display:block;padding:8px 12px;border-radius:var(--r-sm);color:var(--ink-2);transition:background .2s var(--ease),color .2s var(--ease)}
.nav-links a:hover{background:var(--surface);color:var(--ink)}
.nav-links a[aria-current="page"]{color:var(--blue);font-weight:600;background:var(--blue-soft)}
.nav-links .nav-cta a{color:var(--on-dark);background:var(--navy);margin-left:8px;font-weight:500}
.nav-links .nav-cta a:hover{background:var(--blue)}
.menu-button{display:none;min-height:36px;padding:0 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit;font-weight:500;cursor:pointer}

/* ---------- Section bands ---------- */
.section{padding-block:72px;background:var(--band)}
.section-tight{padding-block:44px}
.section-alt{background:var(--surface)}
.section+.section,.hero+.section,.page-hero+.section{border-top:1px solid var(--band-line)}
.section.dark,.section.dark+.section{border-top:none}
.section-head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);column-gap:56px;align-items:end;margin-bottom:36px}
.section-head .eyebrow,.section-head h2{grid-column:1}
.section-head p{grid-column:2;grid-row:1 / span 2;align-self:end;color:var(--muted);font-size:1.06rem;line-height:1.55;max-width:56ch}
.section-head.left,.section-head:not(:has(p)){grid-template-columns:1fr}
.after-grid{margin-top:22px}

/* ---------- Home hero ---------- */
.hero{padding-block:56px 64px;background:var(--dots),var(--band)}
.hero-title{text-align:center;margin-bottom:28px}
.hero-title h1{max-width:22ch;margin-inline:auto;font-size:clamp(2.4rem,5vw,4.2rem)}
.hero .kicker{margin-top:14px;color:var(--ink-2);font-family:var(--display);font-size:clamp(1.1rem,1.8vw,1.4rem);font-weight:500}
.hero-grid{display:grid;margin-top:32px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:start}
.hero .lead{color:var(--muted);font-size:1.1rem;line-height:1.6}
.availability{display:inline-flex;align-items:center;gap:9px;color:var(--green);background:var(--green-bg);border:1px solid var(--green-line);border-radius:999px;padding:7px 14px;font-size:.86rem;font-weight:600}
.availability span{width:8px;height:8px;border-radius:50%;background:#10b981;flex:none;animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.5)}70%{box-shadow:0 0 0 8px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
.route-pick{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.route-pick .label{grid-column:1/-1;color:var(--muted);font-size:.9rem;font-weight:500}
.route-pick .text-link{grid-column:1/-1;margin-top:4px}
.pick{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);padding:12px 14px;box-shadow:var(--shadow);transition:border-color .2s var(--ease);min-width:0}
.pick:hover{border-color:var(--blue)}
.pick .icon-badge{margin:0}
.pick > span:last-child{flex:1;min-width:0}
.pick b{display:block;font-size:.98rem;font-weight:600}
.pick span span{display:block;color:var(--muted);font-size:.84rem;margin-top:1px}
.pick::after{content:"›";color:var(--blue);font-size:1.4rem;line-height:1}

/* Highlights panel: photo cell + seven outcome cells in a 4 x 2 grid */
.hero-panel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--navy-line);color:var(--on-dark);border-radius:var(--r-lg);border:1px solid var(--navy-line);box-shadow:var(--shadow-lg);overflow:hidden}
.hp-id{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;padding:20px 22px;background:linear-gradient(160deg,#16243d,var(--navy))}
.hp-id img{width:64px;height:64px;border-radius:12px;object-fit:cover;object-position:center top;background:var(--surface)}
.hp-id b{display:block;font-family:var(--display);font-size:1.2rem;font-weight:600}
.hp-id span{display:block;color:var(--sky);font-size:.88rem;margin-top:2px}
.stat{padding:18px 20px;min-width:0;background:var(--navy-2)}
.stat-ai{background:linear-gradient(160deg,#0f2a3f,var(--navy-2))}
.stat-k{display:block;font-style:normal;color:var(--on-dark-3);font-size:.8rem;font-weight:600;margin-bottom:8px}
.stat b{display:block;font-family:var(--display);font-size:clamp(1.4rem,2vw,1.75rem);font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--on-dark)}
.stat span{display:block;margin-top:8px;color:var(--on-dark-2);font-size:.84rem;line-height:1.4}
.stat small{display:block;margin-top:4px;color:var(--sky);font-size:.76rem;font-weight:600}
.stat-ai small{color:var(--teal)}

/* ---------- Inner page hero ---------- */
.page-hero{padding-block:48px 40px;border-bottom:1px solid var(--line);background:var(--dots),var(--band)}
.page-hero .page{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr);gap:48px;align-items:end}
.page-hero h1{font-size:clamp(2.2rem,4vw,3.3rem);max-width:20ch}
.page-hero .ph-main p{margin-top:16px;max-width:64ch;color:var(--muted);font-size:1.08rem;line-height:1.6}
.ph-side{display:flex;flex-direction:column;gap:16px;align-items:stretch}
.ph-side .actions{flex-direction:column;align-items:stretch}
.ph-side .actions .button{width:100%}
.jump{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.jump a{padding:11px 16px;font-size:.92rem;font-weight:500;color:var(--ink-2);display:flex;justify-content:space-between;gap:10px}
.jump a+a{border-top:1px solid var(--line)}
.jump a::after{content:"↓";color:var(--blue)}
.jump a:hover{background:var(--blue-soft);color:var(--blue-d)}

/* ---------- Cards (all bordered, highlight on click) ---------- */
.grid{display:grid;gap:14px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;min-width:0}
.card p{margin-top:8px;color:var(--muted);font-size:.96rem;line-height:1.5}
.section-alt .card,.section-alt .svc-list li,.section-alt .htl{background:var(--fill-on-white)}
.card,.project-card,.flow li,.svc-list li,.pick{transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);cursor:pointer}
.card:hover,.flow li:hover,.svc-list li:hover,.pick:hover{border-color:#8fb7e8}
.card.is-active,.flow li.is-active,.svc-list li.is-active,.pick.is-active,
.section-alt .card.is-active,.section-alt .svc-list li.is-active{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 3px rgba(0,113,227,.14)}
.icon-badge{width:32px;height:32px;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;background:var(--blue-soft);color:var(--blue);margin-bottom:14px;flex:none}
.icon-badge svg{width:17px;height:17px}
.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:16px}
.tag-row span{font-size:.76rem;font-weight:500;color:var(--blue-d);background:var(--blue-soft);border-radius:6px;padding:4px 9px}

/* Home: four domain cards with aligned "AI applied" rows */
.domain-panel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.domain-panel .card h3{min-height:2.4em}
.domain-panel .card p{min-height:4.6em;margin-bottom:18px}
.domain-card .ai-line{padding-top:14px;border-top:1px dashed var(--line-2);font-size:.92rem;color:var(--ink);line-height:1.45}
.domain-card .ai-line b{display:block;color:var(--blue);font-size:.8rem;font-weight:600;margin-bottom:4px}

/* ---------- Dark band (portfolio) ---------- */
.dark{background:var(--navy);color:var(--on-dark)}
.section.dark{background:var(--navy)}
.dark .eyebrow{color:var(--sky)}
.dark .section-head p{color:var(--on-dark-2)}
.dark .after-grid .text-link{color:var(--sky)}
.project-grid,.project-grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.group-head{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:end;padding-top:22px;margin-top:30px;border-top:1px solid var(--navy-line)}
.group-head:first-child{margin-top:0;padding-top:0;border-top:none}
.group-title{font-family:var(--display);color:var(--on-dark);font-size:1.45rem;font-weight:600;line-height:1.2}
.group-sub{color:var(--on-dark-2);font-size:.98rem;line-height:1.55}
.project-card{background:var(--navy-2);color:var(--on-dark);border-radius:var(--r);padding:16px 16px 18px;display:flex;flex-direction:column;border:1px solid #2c4060;min-width:0}
.project-card:hover{border-color:#4f74a6}
.project-card.is-active{border-color:var(--sky);background:#17253f;box-shadow:0 0 0 3px rgba(108,184,255,.18)}
.project-card.wip{border-color:rgba(242,181,80,.45)}
.project-card.wip.is-active{border-color:var(--amber);box-shadow:0 0 0 3px rgba(242,181,80,.18)}
.project-card.wip .project-label{color:var(--amber)}
.project-shot{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:top center;border-radius:var(--r-sm);border:1px solid var(--navy-line);margin-bottom:14px;background:var(--navy)}
.project-label{color:var(--sky);font-weight:600;font-size:.82rem;margin-bottom:6px}
.project-card h3{color:var(--on-dark);font-size:1.15rem}
.project-card p{color:var(--on-dark-2);margin-top:8px;font-size:.93rem;line-height:1.5}
.project-links{margin-top:auto;padding-top:14px;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.project-card .text-link{color:var(--sky);font-size:.95rem}
.related{font-size:.84rem;color:var(--on-dark-3)}
.related a{color:var(--on-dark-2);border-bottom:1px solid rgba(255,255,255,.25)}
.related a:hover{color:var(--on-dark)}
.wip-pill{display:inline-flex;align-items:center;gap:8px;color:var(--amber);font-size:.84rem;font-weight:600}
.wip-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--amber)}
.feature{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start;padding:18px}
.feature .project-shot{margin-bottom:0}
.plan-label{margin-top:14px;color:var(--amber);font-size:.84rem;font-weight:600}
.checklist{list-style:none;padding:0;margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.plan-label+.checklist{margin-top:8px}
.checklist li{position:relative;padding-left:22px;color:var(--on-dark-2);font-size:.92rem;line-height:1.4}
.checklist li::before{content:"";position:absolute;left:2px;top:.4em;width:10px;height:6px;border-left:2px solid var(--sky);border-bottom:2px solid var(--sky);transform:rotate(-45deg)}
.portfolio-note{margin-top:26px;display:flex;gap:12px;align-items:flex-start;padding:14px 18px;border:1px solid var(--navy-line);border-radius:var(--r);background:rgba(255,255,255,.03)}
.portfolio-note .pn-ic{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(108,184,255,.15);color:var(--sky);font-size:.72rem;font-weight:700}
.portfolio-note p{color:var(--on-dark-3);font-size:.84rem;line-height:1.6}
.portfolio-note b{color:var(--on-dark-2)}

/* ---------- Home: services snapshot ---------- */
.teaser{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}
.teaser p{margin-top:14px;color:var(--muted);font-size:1.04rem;line-height:1.6;max-width:52ch}
.teaser .actions{margin-top:22px}
.svc-list{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;counter-reset:svc}
.svc-list li{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:baseline;padding:16px 18px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface)}
.svc-list li::before{counter-increment:svc;content:counter(svc,decimal-leading-zero);grid-row:span 2;color:var(--blue);font-weight:600;font-size:.82rem;font-variant-numeric:tabular-nums}
.svc-list b{font-weight:600;font-size:.97rem}
.svc-list span{color:var(--muted);font-size:.88rem;line-height:1.4}

/* ---------- Home: recommendations and contact ---------- */
.reco-band{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.reco-band > div{display:grid;max-width:760px}
.reco-band h2{font-size:clamp(1.5rem,2.4vw,1.9rem)}
.reco-band p{margin-top:8px;color:var(--muted)}
.about-copy{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr);gap:40px;align-items:center}
.about-copy h2{font-size:clamp(1.6rem,2.6vw,2.1rem)}
.about-copy p{color:var(--muted);margin-top:12px;font-size:1rem;line-height:1.6;max-width:66ch}
.ac-side{display:flex;flex-direction:column;gap:12px}
.ac-side .actions{flex-direction:column;align-items:stretch}
.ac-side .actions .button{width:100%}
.ac-side .actions[style]{flex-direction:row;justify-content:flex-start;gap:16px;margin-top:0!important}
.contact-line{font-size:.92rem;color:var(--muted)}
.ac-side .contact-line{margin-top:0}
.contact-line a{color:var(--blue)}

/* ---------- Experience: horizontal timeline ---------- */
.htl{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:22px 22px 20px}
.htl-track{overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.htl-list{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));position:relative;min-width:760px;list-style:none;padding:0}
.htl-list::before{content:"";position:absolute;left:5%;right:5%;top:42px;height:2px;background:linear-gradient(90deg,#9cc4f2,var(--blue),var(--teal))}
.htl-node{display:flex;flex-direction:column;align-items:center;text-align:center;background:none;border:0;padding:6px 6px 10px;border-radius:var(--r);color:var(--ink);width:100%;transition:background .2s var(--ease)}
.htl-node:hover{background:var(--surface-2)}
.htl-year{font-size:.82rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;height:20px}
.htl-dot{width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--blue);margin:10px 0 12px;position:relative;z-index:1}
.htl-co{font-family:var(--display);font-weight:600;font-size:1.02rem;line-height:1.2}
.htl-metric{margin-top:5px;font-size:.8rem;color:var(--blue-d);font-weight:500;line-height:1.3}
.htl-node[aria-selected="true"]{background:var(--blue-soft)}
.htl-node[aria-selected="true"] .htl-dot{background:var(--blue);box-shadow:0 0 0 5px rgba(0,113,227,.16)}
.htl-node[aria-selected="true"] .htl-year{color:var(--blue)}
.htl-panel{margin-top:14px;border-top:1px solid var(--line);padding-top:20px;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:32px}
.htl-panel h3{font-size:1.4rem}
.tl-role{color:var(--blue-d);font-weight:600;font-size:.94rem;margin-top:6px;line-height:1.4}
.htl-panel .when{margin-top:6px;color:var(--muted);font-size:.88rem;font-variant-numeric:tabular-nums}
.htl-panel ul{padding-left:18px;display:grid;gap:7px;color:var(--ink-2);font-size:.98rem;line-height:1.55}
.htl-panel ul b{color:var(--ink);font-weight:600}
.htl-hint{margin-top:12px;color:var(--muted);font-size:.84rem}
.strength-card h3{font-size:1.1rem}
.strength-card p{font-size:.93rem}
.edu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.edu .card h3{font-size:1.1rem}
#education .after-grid{color:var(--muted);font-size:.94rem}

/* ---------- Services ---------- */
.svc-card{scroll-margin-top:80px}
.svc-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.svc-num{color:var(--blue);font-weight:600;font-size:.84rem;font-variant-numeric:tabular-nums}
.svc-time{font-size:.78rem;font-weight:600;color:var(--blue-d);background:var(--blue-soft);border-radius:6px;padding:4px 9px;white-space:nowrap}
.svc-card h3{margin-top:12px;font-size:1.22rem}
.svc-q{margin-top:8px;font-size:.98rem;font-weight:500;color:var(--ink);line-height:1.45}
.svc-card ul{margin-top:12px;padding-left:18px;display:grid;gap:3px;color:var(--muted);font-size:.9rem}
.svc-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted)}
.svc-card ul+.svc-foot{margin-top:16px}
.svc-foot a{color:var(--blue);font-weight:500}
.modules{margin-top:16px;padding:14px 18px;border:1px dashed var(--line-2);border-radius:var(--r);color:var(--muted);font-size:.93rem;line-height:1.6}
.modules b{color:var(--ink)}
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;list-style:none;padding:0}
.flow li{padding:24px 22px;display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r)}
.flow .num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--on-dark);font-weight:600;font-size:.88rem;margin-bottom:14px}
.flow h3{font-size:1.15rem}
.flow p{margin-top:8px;color:var(--muted);font-size:.93rem;line-height:1.5}
.flow .tag-row{padding-top:14px}
.cta-band{background:linear-gradient(120deg,var(--navy) 55%,#0f2a4d);color:var(--on-dark);border-radius:var(--r-lg);padding:32px 36px;display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:28px;align-items:center;border:1px solid var(--navy-line)}
.cta-band h2{font-size:clamp(1.5rem,2.6vw,2rem);color:var(--on-dark)}
.cta-band p{margin-top:8px;color:var(--on-dark-2);font-size:1rem;line-height:1.55;max-width:60ch}

/* ---------- Contact page ---------- */
.contact-wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}
.contact-intro h1{font-size:clamp(2.2rem,4vw,3.2rem)}
.contact-intro h1 em{font-style:normal;color:var(--blue)}
.contact-intro p{margin-top:16px;color:var(--muted);font-size:1.06rem;line-height:1.6}
.contact-intro .people{color:var(--ink);font-weight:600}
.contact-alt{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.contact-alt .row{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;min-width:0}
.contact-alt .row .icon-badge{margin-bottom:0}
.contact-alt b{display:block;font-size:.92rem}
.contact-alt span,.contact-alt a{font-size:.88rem;color:var(--muted);overflow-wrap:anywhere}
.contact-alt a{color:var(--blue)}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:28px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-size:.88rem;font-weight:600;color:var(--ink)}
.field label .req{color:#c5221f;margin-left:2px}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:11px 13px;width:100%;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,113,227,.16);background:var(--surface)}
.check{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--muted);line-height:1.45}
.check input{margin-top:3px;width:17px;height:17px;flex:none;accent-color:var(--blue)}
.privacy-note{grid-column:1/-1;font-size:.82rem;color:var(--muted);line-height:1.5;margin-top:-4px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.form-status{grid-column:1/-1;border-radius:var(--r-sm);padding:12px 14px;font-size:.95rem;line-height:1.45}
.form-status.ok{background:var(--green-bg);border:1px solid var(--green-line);color:var(--green)}
.form-status.info{background:var(--blue-soft);border:1px solid rgba(0,113,227,.2);color:var(--blue-d)}
.form-status.err{background:#fdecea;border:1px solid #f5c2bd;color:#a5281b}

/* ---------- Footer ---------- */
footer{padding-block:28px 36px;color:var(--muted);font-size:.86rem;background:var(--surface);border-top:1px solid var(--band-line)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.footer-inner a{color:var(--blue)}

/* ---------- Responsive ---------- */
@media(max-width:1080px){
  .project-grid,.project-grid.three,.grid-3,.grid-4,.domain-panel,.flow,.hero-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-grid{grid-template-columns:1fr;gap:20px}
}
@media(max-width:900px){
  .nav-links{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px;box-shadow:var(--shadow-lg);flex-direction:column;align-items:stretch;gap:2px;z-index:120}
  .nav-links.is-open{display:flex}
  .nav-links a{padding:12px 14px;font-size:1rem}
  .nav-links .nav-cta a{margin:6px 0 0;text-align:center}
  .menu-button{display:inline-flex;align-items:center}
  body.menu-open{overflow:hidden}
  .section{padding-block:56px}
  .section-head{grid-template-columns:1fr;row-gap:0}
  .section-head p{grid-column:1;grid-row:auto;margin-top:12px}
  .page-hero .page,.teaser,.feature,.cta-band,.contact-wrap,.htl-panel,.group-head,.edu,.about-copy{grid-template-columns:1fr}
  .group-head{gap:8px}
  .page-hero .page{gap:24px}
  .ph-side .actions{flex-direction:row}
  .ph-side .actions .button{width:auto}
  .about-copy{gap:20px}
}
@media(max-width:640px){
  .project-grid,.project-grid.three,.grid-2,.grid-3,.grid-4,.domain-panel,.flow,.form-grid,.svc-list,.route-pick,.contact-alt,.checklist{grid-template-columns:1fr}
  .domain-panel .card h3,.domain-panel .card p{min-height:0}
  .hero-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hp-id{grid-column:1/-1;flex-direction:row;align-items:center}
  .stat{padding:14px}
  .stat b{font-size:1.3rem}
  .stat span{font-size:.8rem}
  .logo{font-size:.84rem}
  .hero{padding-block:36px 44px}
  .about-copy .actions .button,.cta-band .button,.ph-side .actions .button,.reco-band .button{width:100%}
  .cta-band{padding:24px 20px}
  .form-card{padding:20px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

/* ---------- Services: journey map ---------- */
.journey-sec{background:radial-gradient(circle at 85% 0%,rgba(31,183,198,.12),transparent 45%),radial-gradient(circle at 10% 100%,rgba(0,113,227,.14),transparent 45%),var(--navy)}
.journey{display:grid;gap:14px}
.j-track{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;position:relative}
.j-track::before{content:"";position:absolute;left:12.5%;right:12.5%;top:44px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--blue),var(--teal));opacity:.9}
.j-step{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 14px 20px;border-radius:var(--r);border:1px solid transparent;transition:background .2s var(--ease),border-color .2s var(--ease);height:100%}
.j-step:hover,.j-step:focus-visible{background:rgba(255,255,255,.04);border-color:#2c4060}
.j-node{position:relative;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--navy-2);border:2px solid var(--sky);color:var(--sky);box-shadow:0 0 0 6px var(--navy),0 0 24px rgba(108,184,255,.25);margin-bottom:14px}
.j-node svg{width:28px;height:28px}
.j-node em{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:var(--on-dark);font-style:normal;font-size:.76rem;font-weight:700;border:2px solid var(--navy)}
.j-step:nth-child(4) .j-node,.j-track li:nth-child(4) .j-node{border-color:var(--teal);color:var(--teal)}
.j-track li:nth-child(3) .j-node{border-color:#4cc3d9;color:#4cc3d9}
.j-stage{font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--on-dark);line-height:1.1}
.j-step b{display:block;margin-top:4px;color:var(--sky);font-size:.92rem;font-weight:600;line-height:1.3}
.j-q{display:block;margin-top:8px;color:var(--on-dark-2);font-size:.9rem;line-height:1.4}
.j-time{display:inline-block;margin-top:10px;font-size:.76rem;font-weight:600;color:var(--on-dark);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:3px 8px}
.j-rails{display:grid;gap:10px}
.j-rail{position:relative;display:grid;grid-template-columns:minmax(0,1fr);border-radius:var(--r);border:1px solid;padding:14px 18px 12px;transition:filter .2s var(--ease),border-color .2s var(--ease)}
.j-rail:hover,.j-rail:focus-visible{filter:brightness(1.15)}
.j-rail.agentic{background:linear-gradient(90deg,rgba(31,183,198,.18),rgba(31,183,198,.06));border-color:rgba(31,183,198,.45);--rail:var(--teal)}
.j-rail.govern{background:linear-gradient(90deg,rgba(242,181,80,.16),rgba(242,181,80,.05));border-color:rgba(242,181,80,.42);--rail:var(--amber)}
.j-rail-head{display:flex;align-items:center;gap:10px}
.j-rail-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.08);color:var(--rail)}
.j-rail-icon svg{width:19px;height:19px}
.j-rail-label{color:var(--rail);font-weight:600;font-size:.86rem}
.j-rail-body{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-top:8px}
.j-rail-body b{font-family:var(--display);font-size:1.2rem;font-weight:600;color:var(--on-dark)}
.j-rail-body .j-q{margin-top:0}
.j-rail-body .j-time{margin-top:0}
.j-ticks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:14px;margin-top:10px;position:relative;margin-inline:-19px}
.j-ticks::before{content:"";position:absolute;left:12.5%;right:12.5%;top:50%;height:2px;background:var(--rail);opacity:.5;transform:translateY(-50%)}
.j-ticks i{justify-self:center;width:12px;height:12px;border-radius:50%;background:var(--rail);box-shadow:0 0 0 4px rgba(11,18,32,.9);position:relative}
.svc-card:target{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 3px rgba(0,113,227,.14)}
@media(max-width:900px){
  .j-track{grid-template-columns:repeat(2,minmax(0,1fr))}
  .j-track::before{display:none}
  .j-ticks{display:none}
}
@media(max-width:640px){
  .j-track{grid-template-columns:1fr;gap:6px}
  .j-track::before{display:block;left:37px;right:auto;top:40px;bottom:40px;width:3px;height:auto;background:linear-gradient(180deg,var(--blue),var(--teal))}
  .j-step{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:14px;text-align:left;justify-items:start;align-items:start;padding:12px}
  .j-node{grid-row:1 / span 4;width:52px;height:52px;margin-bottom:0;box-shadow:0 0 0 5px var(--navy)}
  .j-node svg{width:24px;height:24px}
  .j-stage{font-size:1.3rem}
  .j-step b,.j-q{margin-top:2px}
  .j-time{margin-top:8px}
}
