:root{
  --color-bg:#F5F6F7;
  --color-surface:#FFFFFF;
  --color-surface-alt:#EEF1F2;
  --color-ink:#1C232B;
  --color-ink-soft:#525B66;
  --color-ink-faint:#8A939C;
  --color-primary:#1C323A;
  --color-primary-soft:#28444E;
  --color-accent:#C6923F;
  --color-accent-soft:#E9D6AE;
  --color-line:#DEE2E5;
  --radius-sm:3px;
  --radius-md:6px;
  --radius-lg:14px;
  --shadow-card:0 1px 2px rgba(20,26,31,0.06), 0 8px 24px rgba(20,26,31,0.05);
  --font-display:'Barlow Semi Condensed', sans-serif;
  --font-body:'Source Sans 3', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
  --maxw:1180px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--color-ink);
  background:var(--color-bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.1;
  margin:0 0 .5em;
  letter-spacing:.2px;
}
h1{font-size:clamp(2.4rem,5vw,3.6rem);}
h2{font-size:clamp(1.8rem,3vw,2.4rem);}
h3{font-size:1.3rem;}
p{margin:0 0 1em;color:var(--color-ink-soft);}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.eyebrow{
  font-family:var(--font-mono);
  text-transform:uppercase;
  font-size:.72rem;
  letter-spacing:.14em;
  color:var(--color-accent);
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
}
.eyebrow::before{
  content:"";
  width:22px;height:1px;
  background:var(--color-accent);
  display:inline-block;
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--color-accent);
  outline-offset:3px;
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-display);
  font-size:1rem;
  letter-spacing:.02em;
  padding:12px 24px;
  border-radius:var(--radius-sm);
  border:1px solid transparent;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .12s ease;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--color-primary);color:#fff;}
.btn-primary:hover{background:var(--color-primary-soft);}
.btn-outline{background:transparent;border-color:var(--color-line);color:var(--color-ink);}
.btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary);}
.btn-accent{background:var(--color-accent);color:#241a05;}
.btn-accent:hover{background:#B27F2E;}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:40;
  background:rgba(245,246,247,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--color-line);
}
.nav-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;
}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{width:38px;height:38px;border-radius:8px;}
.brand-name{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:.01em;color:var(--color-primary);}
.brand-name small{display:block;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;color:var(--color-ink-faint);text-transform:uppercase;font-weight:400;}

.main-nav ul{display:flex;gap:2px;align-items:center;}
.main-nav a{
  padding:9px 16px;font-size:.95rem;color:var(--color-ink-soft);border-radius:var(--radius-sm);
  transition:color .15s ease, background .15s ease;
}
.main-nav a:hover{color:var(--color-primary);background:var(--color-surface-alt);}
.main-nav a.active{color:var(--color-primary);font-weight:600;}

.nav-toggle{
  display:none;background:none;border:1px solid var(--color-line);border-radius:var(--radius-sm);
  width:42px;height:42px;align-items:center;justify-content:center;font-size:1.3rem;color:var(--color-primary);cursor:pointer;
}

/* ---------- route divider signature ---------- */
.route-divider{
  width:100%;height:34px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.route-divider svg{width:100%;max-width:var(--maxw);height:34px;}
.route-divider .dash{
  stroke:var(--color-line);
  stroke-width:2;
  stroke-dasharray:8 10;
}
.route-divider .mover{
  fill:var(--color-accent);
}
@media (prefers-reduced-motion: no-preference){
  .route-divider .mover{
    animation:travel 9s linear infinite;
    offset-path:path("M0,17 H2000");
  }
}
@keyframes travel{
  from{offset-distance:0%;}
  to{offset-distance:100%;}
}

/* ---------- hero ---------- */
.hero{
  padding:72px 0 56px;
  background:linear-gradient(180deg,#F5F6F7 0%, #EEF1F2 100%);
}
.hero-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;
}
.hero-copy p.lead{font-size:1.12rem;max-width:46ch;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;}
.hero-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);}
.hero-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;}
.hero-media .tag{
  position:absolute;left:18px;bottom:18px;
  background:rgba(28,50,58,.88);color:#fff;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  padding:8px 14px;border-radius:20px;display:flex;align-items:center;gap:8px;
}
.hero-note{
  margin-top:18px;font-size:.85rem;color:var(--color-ink-faint);
  display:flex;gap:8px;align-items:flex-start;
}
.hero-note i{margin-top:2px;color:var(--color-accent);}

/* ---------- stats strip ---------- */
.stats{
  background:var(--color-primary);color:#fff;padding:36px 0;
}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
.stats-grid .num{font-family:var(--font-mono);font-size:2rem;color:var(--color-accent);}
.stats-grid .label{font-size:.82rem;color:#C7D2D6;text-transform:uppercase;letter-spacing:.08em;}

/* ---------- sections ---------- */
section{padding:76px 0;}
.section-head{max-width:640px;margin-bottom:44px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}

.card{
  background:var(--color-surface);
  border:1px solid var(--color-line);
  border-radius:var(--radius-md);
  padding:28px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card);border-color:transparent;}
.card .icon{
  width:46px;height:46px;border-radius:10px;background:var(--color-surface-alt);
  display:flex;align-items:center;justify-content:center;color:var(--color-primary);font-size:1.4rem;margin-bottom:16px;
}
.card h3{margin-bottom:8px;}
.card p{margin-bottom:0;font-size:.95rem;}

.split{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
}
.split img{border-radius:var(--radius-lg);box-shadow:var(--shadow-card);width:100%;aspect-ratio:5/4;object-fit:cover;}
.split .checklist li{
  display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;font-size:.97rem;color:var(--color-ink-soft);
}
.split .checklist i{color:var(--color-accent);font-size:1.2rem;margin-top:2px;}

.band{background:var(--color-surface-alt);}

.timeline{border-left:2px solid var(--color-line);margin-left:10px;}
.timeline li{position:relative;padding:0 0 34px 32px;}
.timeline li::before{
  content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;
  background:var(--color-accent);border:3px solid var(--color-bg);
}
.timeline h4{margin-bottom:4px;font-family:var(--font-display);font-size:1.05rem;}
.timeline .yr{font-family:var(--font-mono);font-size:.78rem;color:var(--color-ink-faint);text-transform:uppercase;letter-spacing:.08em;}

.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.values-grid .card{text-align:left;}

.cta-band{
  background:var(--color-primary);color:#fff;border-radius:var(--radius-lg);
  padding:52px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;
}
.cta-band h2{color:#fff;margin-bottom:6px;}
.cta-band p{color:#C7D2D6;margin-bottom:0;}

/* ---------- forms ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px;}
.field.full{grid-column:1/-1;}
label{font-size:.85rem;font-weight:600;color:var(--color-ink);}
input,textarea,select{
  font-family:var(--font-body);font-size:.97rem;
  padding:12px 14px;border:1px solid var(--color-line);border-radius:var(--radius-sm);
  background:#fff;color:var(--color-ink);
}
textarea{resize:vertical;min-height:130px;}
.field small{color:var(--color-ink-faint);font-size:.78rem;}
.form-status{
  margin-top:14px;padding:12px 16px;border-radius:var(--radius-sm);font-size:.9rem;display:none;
}
.form-status.ok{display:flex;gap:10px;align-items:center;background:#E7F2E9;color:#245A32;}
.form-status.err{display:flex;gap:10px;align-items:center;background:#FBE7E7;color:#7A2727;}

.contact-info-card{
  background:var(--color-primary);color:#fff;border-radius:var(--radius-lg);padding:32px;
}
.contact-info-card h3{color:#fff;}
.contact-info-card .row{display:flex;gap:12px;align-items:flex-start;margin-bottom:20px;}
.contact-info-card .row i{color:var(--color-accent);font-size:1.25rem;margin-top:2px;}
.contact-info-card .row a,.contact-info-card .row span{color:#DDE6E8;font-size:.95rem;}
.contact-info-card hr{border:none;border-top:1px solid rgba(255,255,255,.16);margin:22px 0;}

/* ---------- legal pages ---------- */
.legal-hero{padding:56px 0 32px;border-bottom:1px solid var(--color-line);}
.legal-body{padding:48px 0 90px;}
.legal-body h2{margin-top:2.2em;}
.legal-body h2:first-child{margin-top:0;}
.legal-body ul{list-style:disc;margin:0 0 1.2em 1.2em;}
.legal-body ul li{margin-bottom:8px;color:var(--color-ink-soft);}
.legal-body table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.92rem;}
.legal-body th,.legal-body td{text-align:left;padding:10px 12px;border:1px solid var(--color-line);}
.legal-body th{background:var(--color-surface-alt);}
.legal-toc{
  background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);
  padding:22px 26px;margin-bottom:36px;
}
.legal-toc a{color:var(--color-primary);font-size:.92rem;display:block;padding:4px 0;}
.legal-toc a:hover{text-decoration:underline;}
.update-note{font-family:var(--font-mono);font-size:.78rem;color:var(--color-ink-faint);text-transform:uppercase;letter-spacing:.06em;}

.disclaimer-box{
  background:#FBF3E4;border:1px solid var(--color-accent-soft);border-radius:var(--radius-md);
  padding:20px 22px;display:flex;gap:14px;align-items:flex-start;margin:36px 0;
}
.disclaimer-box i{color:var(--color-accent);font-size:1.3rem;margin-top:2px;}
.disclaimer-box p{margin:0;font-size:.92rem;color:var(--color-ink);}

/* ---------- footer ---------- */
.site-footer{background:var(--color-primary);color:#C7D2D6;padding:64px 0 28px;margin-top:60px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:44px;}
.footer-grid h4{color:#fff;font-size:.95rem;margin-bottom:16px;}
.footer-grid li{margin-bottom:10px;font-size:.9rem;}
.footer-grid a:hover{color:#fff;}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.footer-brand img{width:34px;height:34px;border-radius:7px;}
.footer-brand span{font-family:var(--font-display);font-weight:600;color:#fff;}
.footer-desc{font-size:.88rem;max-width:32ch;color:#AEBAC0;}
.footer-contact li{display:flex;gap:10px;align-items:flex-start;}
.footer-contact i{color:var(--color-accent);margin-top:3px;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.14);padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.82rem;color:#93A2A8;
}
.footer-bottom a{margin-left:16px;}
.footer-bottom a:hover{color:#fff;}

/* ---------- cookie banner ---------- */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:100;
  background:var(--color-primary);color:#EAF0F1;
  padding:20px 24px;
  transform:translateY(120%);
  transition:transform .35s ease;
  box-shadow:0 -6px 24px rgba(0,0,0,.18);
}
.cookie-banner.visible{transform:translateY(0);}
.cookie-inner{
  max-width:var(--maxw);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.cookie-inner p{margin:0;font-size:.88rem;color:#CBD8DA;max-width:62ch;}
.cookie-inner a{color:var(--color-accent);text-decoration:underline;}
.cookie-actions{display:flex;gap:12px;flex-shrink:0;}

/* ---------- utilities ---------- */
.text-center{text-align:center;}
.mt-0{margin-top:0;}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .hero-grid,.split{grid-template-columns:1fr;}
  .split{gap:32px;}
  .split .split-media{order:-1;}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:28px;}
  .grid-3{grid-template-columns:1fr 1fr;}
  .values-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:720px){
  .main-nav{
    position:fixed;top:70px;left:0;right:0;bottom:0;
    background:var(--color-bg);
    transform:translateX(100%);
    transition:transform .25s ease;
    padding:24px;
    overflow-y:auto;
  }
  .main-nav.open{transform:translateX(0);}
  .main-nav ul{flex-direction:column;align-items:stretch;gap:6px;}
  .main-nav a{padding:14px 16px;font-size:1.05rem;}
  .nav-toggle{display:flex;}
  .grid-3{grid-template-columns:1fr;}
  .values-grid{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .cta-band{padding:32px;}
  .cookie-inner{flex-direction:column;align-items:flex-start;}
}
