/* ============================================================
   GLOBAL HORIZON INC. — V17 INNER-PAGE SYSTEM
   Built on the V16.3 Homepage Master token architecture.
   Scoped to body.v17-page so non-migrated pages are untouched.
   ============================================================ */

/* ---------- TOKENS (identical to V16.3 master) ---------- */
:root{
  --gh-bg:#FBFBFD; --gh-surface:#FFFFFF; --gh-surface-soft:#F4F5F8; --gh-ink-panel:#0E1626;
  --gh-text:#131A26; --gh-body:#3A4152; --gh-muted:#5C6472; --gh-faint:#686F7D;
  --gh-on-dark:#EEF1F6; --gh-on-dark-muted:#A8B0BF;
  --gh-blue:#1D4ED8; --gh-blue-deep:#1636A8; --gh-blue-soft:#EAF0FE;
  --gh-line:#E4E6EC; --gh-line-strong:#CDD1DB; --gh-line-dark:rgba(255,255,255,.12);
  --gh-r-sm:8px; --gh-r:14px; --gh-r-lg:22px; --gh-r-pill:100px;
  --gh-shadow-sm:0 1px 2px rgba(19,26,38,.06),0 1px 3px rgba(19,26,38,.04);
  --gh-shadow:0 4px 12px rgba(19,26,38,.06),0 12px 32px rgba(19,26,38,.06); --gh-shadow-lg:0 12px 28px rgba(19,26,38,.08),0 30px 60px rgba(19,26,38,.08);
  --gh-font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --gh-display:'Space Grotesk',var(--gh-font);
  --gh-mono:'IBM Plex Mono',ui-monospace,monospace;
  --gh-container:1200px; --gh-measure:68ch; --gh-nav-h:74px;
  --gh-s1:8px; --gh-s2:16px; --gh-s3:24px; --gh-s4:32px; --gh-s5:48px; --gh-s6:64px; --gh-s7:96px; --gh-s8:128px;
  --gh-ease:cubic-bezier(.22,.61,.24,1); --gh-t:.25s var(--gh-ease);
}

/* ---------- BASE ---------- */
.v17-page *{margin:0;padding:0;box-sizing:border-box}
.v17-page{background:var(--gh-bg);color:var(--gh-body);font-family:var(--gh-font);font-size:17px;line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
.v17-page h1,.v17-page h2,.v17-page h3,.v17-page h4{font-family:var(--gh-display);color:var(--gh-text);font-weight:600;line-height:1.14;letter-spacing:-.02em}
.v17-page p{max-width:var(--gh-measure)}
.v17-page a{color:inherit;text-decoration:none}
.v17-page img{display:block;max-width:100%}
.v17-page strong{color:var(--gh-text);font-weight:600}
.v17-container{max-width:var(--gh-container);margin:0 auto;padding:0 32px}

/* ---------- ACCESSIBILITY ---------- */
.v17-page a:focus-visible,.v17-page button:focus-visible{outline:2px solid var(--gh-blue);outline-offset:3px;border-radius:4px}
.v17-skip{position:absolute;left:-999px;top:0;z-index:1000;background:var(--gh-blue);color:#fff;padding:12px 20px;border-radius:0 0 var(--gh-r-sm) 0;font-weight:600}
.v17-skip:focus{left:0}
@media (prefers-reduced-motion:reduce){.v17-page *,.v17-page *::before,.v17-page *::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* ---------- NAV (master) ---------- */
.v17-nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--gh-nav-h);background:rgba(251,251,253,.82);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border-bottom:1px solid transparent;transition:border-color var(--gh-t),box-shadow var(--gh-t);display:flex;align-items:center}
.v17-nav.scrolled{border-bottom-color:var(--gh-line);box-shadow:var(--gh-shadow-sm)}
.v17-nav-inner{max-width:1320px;margin:0 auto;padding:0 32px;width:100%;display:flex;align-items:center;gap:36px}
.v17-brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.v17-brand img{height:32px;width:auto}
.v17-brand-txt{font-family:var(--gh-display);font-weight:700;font-size:15px;letter-spacing:.02em;color:var(--gh-text)}
.v17-brand-txt span{color:var(--gh-faint);font-weight:500}
.v17-nav-links{display:flex;gap:28px;margin-left:auto;align-items:center}
.v17-nav-links a{font-size:14.5px;font-weight:500;color:var(--gh-muted);transition:color var(--gh-t)}
.v17-nav-links a:hover,.v17-nav-links a.active{color:var(--gh-text)}
.v17-nav-cta{background:var(--gh-blue);color:#fff!important;padding:10px 20px;border-radius:var(--gh-r-sm);font-family:var(--gh-display);font-weight:600;font-size:14.5px;transition:var(--gh-t)}
.v17-nav-cta:hover{background:var(--gh-blue-deep)}
.v17-nav-toggle{display:none;margin-left:auto;width:42px;height:38px;border:1px solid var(--gh-line-strong);border-radius:var(--gh-r-sm);background:var(--gh-surface);color:var(--gh-text);font-size:18px;cursor:pointer}
.v17-mobile{display:none}

/* ---------- BUTTONS (master) ---------- */
.v17-btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--gh-display);font-weight:600;font-size:15.5px;padding:14px 26px;border-radius:var(--gh-r-sm);border:1px solid transparent;cursor:pointer;transition:var(--gh-t);white-space:nowrap}
.v17-btn .a{transition:transform var(--gh-t)}
.v17-btn:hover .a{transform:translateX(3px)}
.v17-btn-primary{background:var(--gh-blue);color:#fff;box-shadow:var(--gh-shadow-sm)}
.v17-btn-primary:hover{background:var(--gh-blue-deep);box-shadow:var(--gh-shadow);transform:translateY(-1px)}
.v17-btn-secondary{background:var(--gh-surface);color:var(--gh-text);border-color:var(--gh-line-strong)}
.v17-btn-secondary:hover{border-color:var(--gh-blue);color:var(--gh-blue);transform:translateY(-1px)}
.v17-btn-ondark{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.28)}
.v17-btn-ondark:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.5)}
.v17-link{color:var(--gh-blue);font-weight:600;font-family:var(--gh-display);font-size:15px;display:inline-flex;align-items:center;gap:7px}
.v17-link .a{transition:transform var(--gh-t)}
.v17-link:hover .a{transform:translateX(3px)}

/* ---------- PAGE HERO ---------- */
.v17-hero{position:relative;padding:calc(var(--gh-nav-h) + var(--gh-s7)) 0 var(--gh-s6);overflow:hidden}
.v17-hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 90% at 85% -10%,var(--gh-blue-soft) 0%,transparent 55%),linear-gradient(180deg,#fff 0%,var(--gh-bg) 100%)}
.v17-hero-grid{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;background-image:linear-gradient(var(--gh-line) 1px,transparent 1px),linear-gradient(90deg,var(--gh-line) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(120% 80% at 88% 0%,#000 0%,transparent 60%);-webkit-mask-image:radial-gradient(120% 80% at 88% 0%,#000 0%,transparent 60%)}
.v17-hero-inner{position:relative;z-index:2;max-width:860px}
.v17-crumb{font-family:var(--gh-mono);font-size:12px;letter-spacing:.08em;color:var(--gh-faint);margin-bottom:var(--gh-s3);text-transform:uppercase}
.v17-crumb a{color:var(--gh-blue)}
.v17-hero h1{font-size:clamp(32px,4.6vw,52px);line-height:1.08;letter-spacing:-.025em;max-width:18ch;margin-bottom:var(--gh-s3);color:var(--gh-text)}
.v17-hero h1 .hl{color:var(--gh-blue)}
.v17-hero-sub{font-size:clamp(17px,1.6vw,20px);color:var(--gh-muted);max-width:60ch;line-height:1.6}

/* ---------- SECTIONS ---------- */
.v17-section{padding:var(--gh-s7) 0}
.v17-band{background:var(--gh-surface-soft)}
.v17-eyebrow{font-family:var(--gh-mono);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gh-blue);font-weight:500;margin-bottom:var(--gh-s3);display:block}
.v17-h2{font-size:clamp(26px,3.2vw,38px);max-width:22ch;margin-bottom:var(--gh-s3)}
.v17-lead{font-size:clamp(16px,1.4vw,18px);color:var(--gh-muted);max-width:62ch}
.v17-prose p{margin-bottom:var(--gh-s3);color:var(--gh-body)}
.v17-prose p:last-child{margin-bottom:0}

/* reveal */
.js-on .v17-reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--gh-ease),transform .6s var(--gh-ease)}
.js-on .v17-reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js-on .v17-reveal{opacity:1;transform:none}}

/* ---------- CARDS / MODULES ---------- */
.v17-grid{display:grid;gap:var(--gh-s3)}
.v17-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.v17-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.v17-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.v17-card{background:var(--gh-surface);border:1px solid var(--gh-line);border-radius:var(--gh-r-lg);padding:var(--gh-s4);transition:transform var(--gh-t),box-shadow var(--gh-t),border-color var(--gh-t)}
.v17-card:hover{transform:translateY(-3px);box-shadow:var(--gh-shadow);border-color:var(--gh-line-strong)}
.v17-card .cico{width:48px;height:48px;border-radius:12px;background:var(--gh-blue-soft);display:flex;align-items:center;justify-content:center;margin-bottom:var(--gh-s3)}
.v17-card .cico svg{width:23px;height:23px;stroke:var(--gh-blue);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.v17-card h3{font-size:19px;margin-bottom:10px}
.v17-card p{font-size:14.5px;color:var(--gh-muted)}
.v17-card .tag{display:inline-block;font-family:var(--gh-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:var(--gh-r-pill);margin-bottom:14px}
.tag-current{background:#E7F5EC;color:#1B7A43}
.tag-planned{background:var(--gh-blue-soft);color:var(--gh-blue-deep)}
.tag-roadmap{background:#F3F0FB;color:#6B4BC0}

/* numbered list rows */
.v17-rows{display:flex;flex-direction:column;gap:var(--gh-s2)}
.v17-row{display:flex;gap:18px;align-items:flex-start;background:var(--gh-surface);border:1px solid var(--gh-line);border-radius:var(--gh-r);padding:22px 24px}
.v17-row .rn{font-family:var(--gh-mono);font-size:12px;color:var(--gh-blue);font-weight:500;flex-shrink:0;width:28px;padding-top:2px}
.v17-row h4{font-size:16px;margin-bottom:4px}
.v17-row p{font-size:14px;color:var(--gh-muted);max-width:64ch}

/* stat / fact row (no unsupported numbers; used for qualitative) */
.v17-facts{display:grid;gap:var(--gh-s3);grid-template-columns:repeat(3,1fr);background:var(--gh-blue-soft);border-radius:var(--gh-r-lg);padding:var(--gh-s5) var(--gh-s4)}
.v17-fact .k{font-family:var(--gh-display);font-weight:600;font-size:17px;color:var(--gh-text);margin-bottom:4px}
.v17-fact .v{font-size:14px;color:var(--gh-muted)}

/* honest-by-design note (master) */
.v17-honest{display:flex;gap:16px;align-items:flex-start;background:var(--gh-blue-soft);border:1px solid #D3E0FC;border-radius:var(--gh-r);padding:22px 26px}
.v17-honest .ico{flex-shrink:0;width:22px;height:22px;color:var(--gh-blue)}
.v17-honest p{font-size:14.5px;color:var(--gh-body);max-width:74ch}
.v17-honest strong{color:var(--gh-blue-deep)}

/* dark emphasis panel (selective) */
.v17-panel{background:var(--gh-ink-panel);border-radius:var(--gh-r-lg);padding:var(--gh-s7) var(--gh-s6);position:relative;overflow:hidden}
.v17-panel .v17-eyebrow{color:#8FB0FF}
.v17-panel h2{color:var(--gh-on-dark);font-size:clamp(24px,2.8vw,34px);margin-bottom:var(--gh-s3)}
.v17-panel p{color:var(--gh-on-dark-muted);max-width:56ch}
.v17-panel .hier{font-family:var(--gh-mono);font-size:12.5px;letter-spacing:.04em;color:var(--gh-on-dark-muted);line-height:1.9;margin:var(--gh-s3) 0 var(--gh-s5)}
.v17-panel .hier b{color:#fff;font-weight:500}

/* CTA (master) */
.v17-cta{background:var(--gh-ink-panel);border-radius:var(--gh-r-lg);padding:var(--gh-s8) var(--gh-s6);text-align:center;position:relative;overflow:hidden}
.v17-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 120% at 50% 0%,rgba(29,78,216,.28),transparent 60%);pointer-events:none}
.v17-cta-inner{position:relative;z-index:2;max-width:680px;margin:0 auto}
.v17-cta h2{color:var(--gh-on-dark);font-size:clamp(26px,3.2vw,38px);margin-bottom:var(--gh-s3)}
.v17-cta p{color:var(--gh-on-dark-muted);font-size:17px;margin:0 auto var(--gh-s5);max-width:52ch}

/* timeline (About) */
.v17-timeline{display:flex;flex-direction:column;gap:0;position:relative;margin-top:var(--gh-s4)}
.v17-tl{display:flex;gap:24px;padding:0 0 var(--gh-s4) 34px;position:relative;border-left:2px solid var(--gh-line)}
.v17-tl:last-child{border-left-color:transparent;padding-bottom:0}
.v17-tl::before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--gh-blue);border:2px solid var(--gh-bg)}
.v17-tl .yr{font-family:var(--gh-mono);font-size:12px;color:var(--gh-blue);font-weight:500;margin-bottom:4px}
.v17-tl h4{font-size:16px;margin-bottom:4px}
.v17-tl p{font-size:14px;color:var(--gh-muted)}

/* FOOTER (master) */
.v17-footer{background:var(--gh-bg);border-top:1px solid var(--gh-line);padding:var(--gh-s7) 0 var(--gh-s5)}
.v17-foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--gh-s5);margin-bottom:var(--gh-s6)}
.v17-foot-brand .r{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.v17-foot-brand img{height:34px}
.v17-foot-brand .r span{font-family:var(--gh-display);font-weight:700;font-size:15px;color:var(--gh-text)}
.v17-foot-brand .r span i{color:var(--gh-faint);font-weight:500;font-style:normal}
.v17-foot-brand p{font-size:14px;color:var(--gh-muted);max-width:34ch}
.v17-foot-col .v17-foot-title,.v17-foot-col h5{font-family:var(--gh-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gh-faint);margin-bottom:16px;font-weight:500}
.v17-foot-col a{display:block;font-size:14px;color:var(--gh-muted);padding:5px 0;transition:color var(--gh-t)}
.v17-foot-col a:hover{color:var(--gh-blue)}
.v17-foot-legal{border-top:1px solid var(--gh-line);padding-top:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px;color:var(--gh-faint)}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1024px){.v17-grid.cols-4{grid-template-columns:repeat(2,1fr)}.v17-grid.cols-3{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){
  .v17-nav-links{display:none}.v17-nav-toggle{display:block}
  .v17-grid.cols-3,.v17-grid.cols-2{grid-template-columns:1fr}
  .v17-facts{grid-template-columns:1fr;gap:var(--gh-s2)}
  .v17-mobile.open{display:block;position:fixed;top:var(--gh-nav-h);left:0;right:0;background:var(--gh-surface);border-bottom:1px solid var(--gh-line);padding:var(--gh-s3) 32px var(--gh-s4);z-index:99;box-shadow:var(--gh-shadow)}
  .v17-mobile a{display:block;padding:14px 0;font-size:16px;font-weight:500;color:var(--gh-text);border-bottom:1px solid var(--gh-line)}
  .v17-mobile a:last-child{border-bottom:none}
  .v17-mobile .v17-btn{width:100%;justify-content:center;margin-top:var(--gh-s3)}
  .split{grid-template-columns:1fr!important}
}
@media (max-width:768px){:root{--gh-s8:88px;--gh-s7:64px}.v17-grid.cols-4{grid-template-columns:1fr}.v17-foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:430px){.v17-container{padding:0 22px}.v17-hero h1{font-size:clamp(28px,7.5vw,38px)}.v17-foot-grid{grid-template-columns:1fr}}
@media (pointer:coarse){.v17-nav-links a,.v17-foot-col a{min-height:44px;display:inline-flex;align-items:center}.v17-btn{min-height:48px}}

/* two-column split layout helper */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--gh-s6);align-items:center}
.split.wide-left{grid-template-columns:1.1fr .9fr}

/* row/timeline sub-headings kept at their contextual size (semantic h3) */
.v17-row h3.v17-rowh{font-size:16px;margin-bottom:4px}
.v17-tl h3.v17-rowh{font-size:16px;margin-bottom:4px}

/* ============================================================
   V17 PHASE 2 — additions (leadership, contact form, split media)
   ============================================================ */
/* leadership profile */
.v17-leader{display:grid;grid-template-columns:280px 1fr;gap:var(--gh-s6);align-items:start}
.v17-leader-photo{border-radius:var(--gh-r-lg);overflow:hidden;border:1px solid var(--gh-line);background:var(--gh-surface-soft);aspect-ratio:4/5}
.v17-leader-photo img{width:100%;height:100%;object-fit:cover}
.v17-leader .role{font-family:var(--gh-mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gh-blue);margin-bottom:10px}
.v17-leader h2{font-size:clamp(24px,3vw,32px);margin-bottom:6px}
.v17-leader .title{color:var(--gh-muted);font-size:16px;margin-bottom:var(--gh-s3)}
.v17-resp{display:flex;flex-direction:column;gap:12px;margin-top:var(--gh-s3)}
.v17-resp li{list-style:none;display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--gh-body)}
.v17-resp li::before{content:"";flex-shrink:0;width:7px;height:7px;border-radius:50%;background:var(--gh-blue);margin-top:8px}

/* AI-infra architecture layer diagram */
.v17-stack{display:flex;flex-direction:column;gap:10px;margin-top:var(--gh-s5)}
.v17-layer{display:flex;gap:16px;align-items:center;background:var(--gh-surface);border:1px solid var(--gh-line);border-radius:var(--gh-r);padding:18px 22px;transition:border-color var(--gh-t)}
.v17-layer:hover{border-color:var(--gh-line-strong)}
.v17-layer .ln{font-family:var(--gh-mono);font-size:11px;color:var(--gh-blue);width:56px;flex-shrink:0}
.v17-layer h3{font-size:16px;margin-bottom:2px}
.v17-layer p{font-size:13.5px;color:var(--gh-muted);max-width:70ch}

/* partnership opportunity vs executed banner */
.v17-status-note{display:inline-flex;align-items:center;gap:8px;font-family:var(--gh-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gh-blue-deep);background:var(--gh-blue-soft);border-radius:var(--gh-r-pill);padding:8px 16px;margin-bottom:var(--gh-s4)}

/* contact form */
.v17-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gh-s6);align-items:start}
.v17-form{background:var(--gh-surface);border:1px solid var(--gh-line);border-radius:var(--gh-r-lg);padding:var(--gh-s5)}
.v17-field{margin-bottom:var(--gh-s3)}
.v17-field label{display:block;font-size:13.5px;font-weight:500;color:var(--gh-text);margin-bottom:7px}
.v17-field label .req{color:var(--gh-blue)}
.v17-field input,.v17-field select,.v17-field textarea{width:100%;font-family:var(--gh-font);font-size:15px;color:var(--gh-text);background:var(--gh-bg);border:1px solid var(--gh-line-strong);border-radius:var(--gh-r-sm);padding:12px 14px;transition:border-color var(--gh-t),box-shadow var(--gh-t)}
.v17-field input:focus,.v17-field select:focus,.v17-field textarea:focus{outline:none;border-color:var(--gh-blue);box-shadow:0 0 0 3px var(--gh-blue-soft)}
.v17-field input::placeholder,.v17-field textarea::placeholder{color:var(--gh-faint)}
.v17-field textarea{resize:vertical;min-height:120px}
.v17-field.invalid input,.v17-field.invalid select,.v17-field.invalid textarea{border-color:#C0392B}
.v17-field .err{display:none;font-size:12.5px;color:#C0392B;margin-top:6px}
.v17-field.invalid .err{display:block}
.v17-check{display:flex;gap:11px;align-items:flex-start;margin-bottom:var(--gh-s4)}
.v17-check input{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--gh-blue)}
.v17-check label{font-size:13.5px;color:var(--gh-muted);line-height:1.5}
.v17-check a{color:var(--gh-blue);text-decoration:underline}
.v17-form-note{font-size:12.5px;color:var(--gh-faint);margin-top:var(--gh-s3);line-height:1.55}
.v17-form-msg{display:none;padding:14px 16px;border-radius:var(--gh-r-sm);font-size:14px;margin-top:var(--gh-s3)}
.v17-form-msg.show{display:block}
.v17-form-msg.info{background:var(--gh-blue-soft);color:var(--gh-blue-deep)}
.v17-contact-cat{display:flex;flex-direction:column;gap:14px}
.v17-cat{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-top:1px solid var(--gh-line)}
.v17-cat:first-child{border-top:none}
.v17-cat .ci{width:34px;height:34px;flex-shrink:0;border-radius:9px;background:var(--gh-blue-soft);display:flex;align-items:center;justify-content:center}
.v17-cat .ci svg{width:17px;height:17px;stroke:var(--gh-blue);fill:none;stroke-width:1.8}
.v17-cat h4{font-size:15px;margin-bottom:2px}
.v17-cat p{font-size:13.5px;color:var(--gh-muted)}

@media (max-width:900px){
  .v17-leader{grid-template-columns:1fr;gap:var(--gh-s4)}
  .v17-leader-photo{max-width:240px}
  .v17-contact-grid{grid-template-columns:1fr;gap:var(--gh-s5)}
  .v17-layer{flex-wrap:wrap;gap:8px}
}

/* contact category sub-heading (semantic h3 kept at contextual size) */
.v17-cat h3.v17-cath{font-size:15px;margin-bottom:2px}

/* ============================================================
   Legal pages + cookie notice (shared)
   ============================================================ */
.v17-prose ul.v17-resp li{font-size:15px}
.v17-prose h2{color:var(--gh-text)}

/* cookie notice - minimal, honest, non-blocking */
.v17-cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;max-width:560px;margin:0 auto;background:var(--gh-surface);border:1px solid var(--gh-line-strong);border-radius:var(--gh-r);box-shadow:var(--gh-shadow-lg,0 12px 28px rgba(19,26,38,.12));padding:20px 22px;display:none}
.v17-cookie.show{display:block}
.v17-cookie p{font-size:13.5px;color:var(--gh-body);max-width:none;margin-bottom:14px;line-height:1.6}
.v17-cookie a{color:var(--gh-blue);text-decoration:underline}
.v17-cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.v17-cookie .v17-btn{padding:10px 20px;font-size:14px}
@media (max-width:480px){.v17-cookie-actions .v17-btn{width:100%;justify-content:center}}

.v17-foot-legal-links a{color:var(--gh-faint);text-decoration:none;transition:color var(--gh-t)}
.v17-foot-legal-links a:hover{color:var(--gh-blue)}

/* status block - technology status vs IP status (restrained, text carries meaning) */
.v17-statusblock{margin-top:var(--gh-s3);border-top:1px solid var(--gh-line);padding-top:16px;display:flex;flex-direction:column;gap:10px}
.v17-status{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}
.v17-status .sk{font-family:var(--gh-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gh-faint);min-width:118px}
.v17-status .sv{font-family:var(--gh-display);font-weight:600;font-size:13px;color:var(--gh-text)}
.v17-status .sv.sv-roadmap{color:var(--gh-blue-deep)}
.v17-status .sv.sv-concept{color:#6B4BC0}
.v17-status .sv.sv-neutral{color:var(--gh-muted);font-weight:500;font-size:12.5px}

/* ===== Gate 2: Follow Global Horizon subscription component ===== */
.v17-subscribe{margin-top:var(--gh-s5);padding-top:var(--gh-s4);border-top:1px solid var(--gh-line)}
.v17-subscribe h4{font-family:var(--gh-display);font-weight:600;font-size:15px;color:var(--gh-text);margin-bottom:6px}
.v17-subscribe p{font-size:13px;color:var(--gh-muted);margin-bottom:14px;max-width:52ch}
.v17-sub-row{display:flex;gap:10px;flex-wrap:wrap;max-width:440px}
.v17-sub-row input[type=email]{flex:1;min-width:180px;font-family:var(--gh-font);font-size:14px;color:var(--gh-text);background:var(--gh-bg);border:1px solid var(--gh-line-strong);border-radius:var(--gh-r-sm);padding:11px 13px;transition:border-color var(--gh-t),box-shadow var(--gh-t)}
.v17-sub-row input[type=email]:focus{outline:none;border-color:var(--gh-blue);box-shadow:0 0 0 3px var(--gh-blue-soft)}
.v17-sub-row button{white-space:nowrap}
.v17-sub-msg{display:none;font-size:12.5px;color:var(--gh-muted);margin-top:10px}
.v17-sub-msg.show{display:block}
.v17-sub-note{font-size:12px;color:var(--gh-faint);margin-top:10px}
.v17-sub-note a{color:var(--gh-blue)}
.v17-sub-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.v17-subscribe .v17-foot-subtitle{font-family:var(--gh-display);font-weight:600;font-size:15px;color:var(--gh-text);margin-bottom:6px}


/* ============================================================
   BUTTON TEXT CONTRAST LOCK (accessibility correction)
   No layout/type/size/spacing change; text color made explicit
   and consistent across link + interaction states.
   ============================================================ */
/* Filled/primary + nav CTA + ondark: white text in EVERY state (incl. :visited on <a>) */
a.v17-btn-primary, a.v17-btn-primary:link, a.v17-btn-primary:visited,
.v17-btn-primary, .v17-btn-primary:hover, .v17-btn-primary:focus, .v17-btn-primary:active,
a.v17-nav-cta, a.v17-nav-cta:link, a.v17-nav-cta:visited,
.v17-nav-cta, .v17-nav-cta:hover, .v17-nav-cta:focus, .v17-nav-cta:active,
a.v17-btn-ondark, a.v17-btn-ondark:link, a.v17-btn-ondark:visited,
.v17-btn-ondark, .v17-btn-ondark:hover, .v17-btn-ondark:focus, .v17-btn-ondark:active{
  color:#fff;
}
/* Secondary/outline (light background): dark text in every state (hover intentionally blue, still AA) */
a.v17-btn-secondary, a.v17-btn-secondary:link, a.v17-btn-secondary:visited,
.v17-btn-secondary, .v17-btn-secondary:focus, .v17-btn-secondary:active{
  color:var(--gh-text);
}
.v17-btn-secondary:hover{ color:var(--gh-blue); }
/* Base guard: any .v17-btn without a recognised modifier still gets readable dark text.
   Placed BEFORE the filled-button rules below so it can never override their white text. */
.v17-btn{ color:var(--gh-text); }
/* Filled buttons keep light text unconditionally (re-affirmed last for source-order safety). */
button.v17-btn-primary, button.v17-btn-primary:hover, button.v17-btn-primary:focus, button.v17-btn-primary:active,
.v17-btn.v17-btn-primary, .v17-btn.v17-btn-primary:hover, .v17-btn.v17-btn-primary:focus, .v17-btn.v17-btn-primary:active,
.v17-btn.v17-nav-cta, .v17-btn.v17-btn-ondark{ color:#fff; }

/* Contact form status states (GATE 4) - color only, AA contrast, no layout change */
.v17-form-msg-info{ background:var(--gh-blue-soft); color:var(--gh-blue-deep); }
.v17-form-msg-sending{ background:var(--gh-blue-soft); color:var(--gh-blue-deep); }
.v17-form-msg-success{ background:#E7F5EC; color:#1B7A43; }
.v17-form-msg-error{ background:#FCE8E6; color:#B3261E; }
