/* =========================================================
   AI-Godoit — Stylesheet
   Palette: Deep Slate #0F172A · White #FFFFFF · Electric Cobalt #2563EB
   ========================================================= */

:root {
  --slate:#0F172A; --slate-800:#1E293B; --slate-700:#334155;
  --slate-500:#64748B; --slate-400:#94A3B8;
  --white:#FFFFFF; --cobalt:#2563EB; --cobalt-600:#1D4ED8;
  --cobalt-soft:#EFF4FF; --bg-soft:#F8FAFC; --border:#E2E8F0;

  --radius:18px; --radius-sm:11px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.08);
  --shadow-md:0 12px 34px rgba(15,23,42,.10);
  --shadow-lg:0 28px 70px rgba(15,23,42,.18);

  --maxw:1180px; --gutter:clamp(20px,5vw,40px); --section-y:clamp(64px,9vw,120px);
  --font-head:'Plus Jakarta Sans', system-ui, sans-serif;
  --font-body:'Inter', system-ui, sans-serif;
}

*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:84px; overflow-x:hidden; }
body { margin:0; font-family:var(--font-body); color:var(--slate); background:var(--white);
  line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
h1,h2,h3,h4 { font-family:var(--font-head); line-height:1.08; margin:0; letter-spacing:-.025em; }
p { margin:0; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
.container { width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }

/* Type scale helpers — big/small contrast */
.eyebrow { display:inline-flex; align-items:center; font-family:var(--font-head); font-weight:700;
  font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--cobalt); margin-bottom:18px; }
.eyebrow-light { color:#93B4FF; }
.muted { color:var(--slate-400); }

/* ---------- Buttons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-head); font-weight:700; font-size:1rem; border:1px solid transparent;
  border-radius:var(--radius-sm); padding:13px 24px; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease; white-space:nowrap; }
.btn-lg { padding:15px 30px; font-size:1.05rem; }
.btn-xl { padding:18px 30px; font-size:1.12rem; }
.btn-block { width:100%; }
.btn-primary { background:var(--cobalt); color:var(--white); box-shadow:0 8px 22px rgba(37,99,235,.32); }
.btn-primary:hover { background:var(--cobalt-600); transform:translateY(-2px); box-shadow:0 14px 30px rgba(37,99,235,.4); }
.btn-primary:active { transform:translateY(0); }
.btn-ghost { background:transparent; color:var(--slate); border-color:var(--border); }
.btn-ghost:hover { background:var(--white); border-color:var(--slate-400); transform:translateY(-2px); }
:focus-visible { outline:3px solid var(--cobalt); outline-offset:3px; border-radius:4px; }

/* ---------- Header ---------- */
.site-header { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.82);
  backdrop-filter:saturate(160%) blur(12px); border-bottom:1px solid var(--border); }
.header-inner { display:flex; align-items:center; justify-content:space-between; height:72px; transition:height .3s ease; }
.brand { display:inline-flex; align-items:center; gap:12px; }
.brand-logo { height:52px; width:auto; display:block; transition:height .3s ease; }
.site-header.scrolled .brand-logo { height:44px; }
.footer-logo { height:76px; width:auto; display:block; border-radius:16px; box-shadow:0 8px 22px rgba(0,0,0,.25); }
@media (max-width:680px){ .brand-logo { height:42px; } }
.brand-text { font-family:var(--font-head); font-weight:800; font-size:1.4rem; letter-spacing:-.03em; color:var(--slate); }
.brand-accent { color:var(--cobalt); }
.brand-mark { width:34px; height:34px; border-radius:9px; background:var(--slate); display:grid; place-items:center; position:relative; overflow:hidden; }
.brand-mark::before,.brand-mark::after { content:""; position:absolute; width:12px; height:12px; border-radius:3px; }
.brand-mark::before { background:var(--cobalt); top:6px; left:6px; }
.brand-mark::after { background:rgba(255,255,255,.22); bottom:6px; right:6px; }
.brand-dot { width:11px; height:11px; border-radius:50%; background:var(--white); z-index:1; box-shadow:0 0 0 3px rgba(37,99,235,.45); }
.main-nav { display:flex; align-items:center; gap:28px; }
.main-nav a { font-family:var(--font-head); font-weight:600; font-size:.98rem; color:var(--slate-700); transition:color .15s ease; }
.main-nav a:hover { color:var(--slate); }
.main-nav .nav-cta { background:var(--cobalt); color:var(--white); padding:9px 18px; border-radius:var(--radius-sm); box-shadow:0 6px 16px rgba(37,99,235,.28); }
.main-nav .nav-cta:hover { background:var(--cobalt-600); color:var(--white); }
.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px; }
.nav-toggle span { width:24px; height:2px; background:var(--slate); border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.mobile-nav { display:none; flex-direction:column; gap:4px; padding:8px var(--gutter) 18px; border-bottom:1px solid var(--border); background:var(--white); }
.mobile-nav.open { display:flex; }
.mobile-nav a { padding:12px 4px; font-family:var(--font-head); font-weight:600; color:var(--slate-700); border-bottom:1px solid var(--border); }
.mobile-nav a:last-child { border-bottom:0; }
.mobile-nav .nav-cta { color:var(--cobalt); }
.site-header.scrolled { box-shadow:0 6px 24px rgba(15,23,42,.07); }
.site-header.scrolled .header-inner { height:60px; }

/* ---------- Hero ---------- */
.hero { position:relative; overflow:hidden; background:var(--bg-soft); padding:clamp(56px,8vw,104px) 0 clamp(64px,9vw,120px); }
.hero-orbs { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.orb { position:absolute; border-radius:50%; filter:blur(64px); opacity:.5; }
.orb-1 { width:440px; height:440px; background:radial-gradient(circle,rgba(37,99,235,.45),transparent 70%); top:-130px; right:-40px; animation:float1 16s ease-in-out infinite; }
.orb-2 { width:380px; height:380px; background:radial-gradient(circle,rgba(96,165,250,.4),transparent 70%); bottom:-150px; left:-80px; animation:float2 20s ease-in-out infinite; }
@keyframes float1 { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-40px,40px) scale(1.12);} }
@keyframes float2 { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(50px,-30px) scale(1.08);} }

.hero-grid { position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,64px); align-items:center; }
.hero-title { font-size:clamp(2.5rem,6vw,4.6rem); font-weight:800; color:var(--slate); }
.hero-sub { margin-top:20px; font-size:clamp(1.05rem,2vw,1.3rem); color:var(--slate-700); max-width:460px; }
.hero-actions { margin-top:32px; display:flex; flex-wrap:wrap; gap:14px; }
.hero-trust { margin-top:18px; font-size:.85rem; font-weight:600; color:var(--slate-500); letter-spacing:.01em; }
.pulse-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--cobalt); margin-right:7px;
  box-shadow:0 0 0 0 rgba(37,99,235,.6); animation:pulse 2s infinite; }
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(37,99,235,.55);} 70%{box-shadow:0 0 0 9px rgba(37,99,235,0);} 100%{box-shadow:0 0 0 0 rgba(37,99,235,0);} }
.grad-text { background:linear-gradient(100deg,var(--cobalt),#60A5FA,#2563EB); background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
  animation:gradShift 5s ease-in-out infinite; }
@keyframes gradShift { 0%,100%{background-position:0% 50%;} 50%{background-position:100% 50%;} }

/* Hero media + floating cards */
.hero-media { position:relative; }
.hero-photo { border-radius:24px; overflow:hidden; box-shadow:var(--shadow-lg); transform:rotate(1.2deg);
  transition:transform .5s ease; }
.hero-media:hover .hero-photo { transform:rotate(0deg); }
.hero-photo img { width:100%; height:clamp(320px,42vw,500px); object-fit:cover; transition:transform .8s ease; }
.hero-media:hover .hero-photo img { transform:scale(1.05); }
.float-card { position:absolute; background:var(--white); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow-md); padding:14px 18px; display:flex; flex-direction:column; gap:2px; }
.float-card-a { top:18px; left:-22px; animation:bob 5s ease-in-out infinite; }
.float-card-b { bottom:24px; right:-18px; flex-direction:row; align-items:center; gap:10px; animation:bob 6s ease-in-out infinite .5s; }
@keyframes bob { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }
.fc-num { font-family:var(--font-head); font-weight:800; font-size:1.9rem; color:var(--cobalt); letter-spacing:-.03em; }
.fc-label { font-size:.78rem; color:var(--slate-500); max-width:150px; }
.fc-label strong { color:var(--slate); }
.fc-dot { width:10px; height:10px; border-radius:50%; background:#22C55E; box-shadow:0 0 0 0 rgba(34,197,94,.6); animation:pulse-g 2s infinite; }
@keyframes pulse-g { 0%{box-shadow:0 0 0 0 rgba(34,197,94,.5);} 70%{box-shadow:0 0 0 8px rgba(34,197,94,0);} 100%{box-shadow:0 0 0 0 rgba(34,197,94,0);} }

/* ---------- Marquee ---------- */
.marquee { background:var(--slate); color:var(--white); overflow:hidden; padding:18px 0; white-space:nowrap;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee-track { display:inline-flex; align-items:center; gap:22px; animation:marquee 30s linear infinite; will-change:transform; }
.marquee:hover .marquee-track { animation-play-state:paused; }
.marquee-track span { font-family:var(--font-head); font-weight:700; font-size:1.1rem; }
.marquee-track .dot { color:var(--cobalt); }
@keyframes marquee { from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ---------- Mission ---------- */
.mission { background:var(--slate); color:var(--white); padding:var(--section-y) 0; }
.mission-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(30px,5vw,64px); align-items:center; }
.mission-photo { border-radius:24px; overflow:hidden; box-shadow:var(--shadow-lg); }
.mission-photo img { width:100%; height:clamp(280px,34vw,420px); object-fit:cover; transition:transform .8s ease; }
.mission-photo:hover img { transform:scale(1.05); }
.mission-title { font-size:clamp(1.9rem,4vw,3rem); font-weight:800; color:var(--white); }
.mission-body { margin-top:18px; font-size:clamp(1.05rem,1.7vw,1.25rem); color:#CBD5E1; max-width:520px; }
.mission-points { list-style:none; margin:28px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:14px 28px; }
.mission-points li { display:flex; align-items:center; gap:10px; font-family:var(--font-head); font-weight:700; font-size:1.05rem; color:var(--white); }
.mp-ic { width:26px; height:26px; border-radius:50%; display:grid; place-items:center; background:var(--cobalt); color:var(--white); font-size:.85rem; flex:none; }

/* ---------- Showcase band ---------- */
.showcase { padding:var(--section-y) 0 clamp(40px,6vw,72px); }
.showcase-head { margin-bottom:32px; }
.showcase-title { font-size:clamp(1.8rem,4vw,2.8rem); font-weight:800; }
.showcase-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.showcase-item { margin:0; position:relative; border-radius:22px; overflow:hidden; box-shadow:var(--shadow-md); }
.showcase-item img { width:100%; height:clamp(260px,30vw,360px); object-fit:cover; transition:transform .8s ease; }
.showcase-item:hover img { transform:scale(1.06); }
.showcase-item figcaption { position:absolute; left:0; right:0; bottom:0; padding:28px 22px 18px;
  display:flex; flex-direction:column; gap:3px; color:var(--white);
  background:linear-gradient(to top, rgba(15,23,42,.85), rgba(15,23,42,0)); }
.showcase-item figcaption strong { font-family:var(--font-head); font-weight:800; font-size:1.25rem; letter-spacing:-.02em; }
.showcase-item figcaption span { font-size:.92rem; color:#CBD5E1; }
@media (max-width:680px) { .showcase-grid { grid-template-columns:1fr; } }

/* ---------- Services / cards ---------- */
.services { padding:var(--section-y) 0; }
.section-head { max-width:640px; margin-bottom:48px; }
.section-title { font-size:clamp(2rem,4.4vw,3.2rem); font-weight:800; }
.section-lede { margin-top:14px; font-size:1.05rem; color:var(--slate-500); }

.cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.svc-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.svc-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:var(--cobalt); }
.svc-card.open { border-color:var(--cobalt); box-shadow:var(--shadow-md); }
.svc-trigger { width:100%; background:none; border:0; cursor:pointer; text-align:left;
  display:flex; flex-direction:column; gap:8px; padding:26px 24px 22px; }
.svc-ic { width:48px; height:48px; border-radius:13px; display:grid; place-items:center; font-size:1.4rem;
  background:var(--cobalt-soft); margin-bottom:6px; transition:transform .25s ease; }
.svc-card:hover .svc-ic { transform:scale(1.1) rotate(-4deg); }
.svc-tag { font-family:var(--font-head); font-weight:700; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--cobalt); }
.svc-name { font-family:var(--font-head); font-weight:800; font-size:1.32rem; color:var(--slate); letter-spacing:-.02em; }
.svc-hook { font-size:.98rem; color:var(--slate-700); }
.svc-more { margin-top:6px; display:inline-flex; align-items:center; gap:7px; font-family:var(--font-head); font-weight:700; font-size:.85rem; color:var(--cobalt); }
.chev { width:8px; height:8px; border-right:2px solid var(--cobalt); border-bottom:2px solid var(--cobalt); transform:rotate(45deg); transition:transform .25s ease; }
.svc-card.open .chev { transform:rotate(-135deg); }
.svc-detail { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.svc-card.open .svc-detail { max-height:320px; }
.svc-detail p { padding:0 24px 24px; color:var(--slate-500); font-size:.96rem; line-height:1.6; }

/* ---------- Audit Form ---------- */
.audit { padding:var(--section-y) 0; background:var(--bg-soft); }
.audit-card { max-width:880px; margin-inline:auto; background:var(--white); border:1px solid var(--border);
  border-radius:24px; box-shadow:var(--shadow-lg); padding:clamp(26px,5vw,56px); }
.audit-card-head { text-align:center; margin-bottom:36px; }
.audit-title { font-size:clamp(1.7rem,3.6vw,2.5rem); font-weight:800; }
.audit-lede { margin:14px auto 0; max-width:520px; color:var(--slate-500); font-size:1.05rem; }
.form-part { border:0; padding:0; margin:0 0 34px; }
.form-part legend { display:flex; align-items:center; gap:12px; font-family:var(--font-head); font-weight:700; font-size:1.2rem; color:var(--slate); padding:0; margin-bottom:8px; }
.part-num { width:30px; height:30px; border-radius:8px; flex:none; display:grid; place-items:center; background:var(--slate); color:var(--white); font-size:.9rem; font-weight:800; }
.part-hint { color:var(--slate-500); font-size:.95rem; margin-bottom:18px; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field { display:flex; flex-direction:column; gap:7px; }
.field label { font-family:var(--font-head); font-weight:600; font-size:.92rem; color:var(--slate-700); }
.req { color:var(--cobalt); }
input[type="text"],input[type="email"],input[type="tel"],input[type="url"],select {
  width:100%; font-family:var(--font-body); font-size:1rem; color:var(--slate); padding:12px 14px;
  border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--white);
  transition:border-color .15s ease, box-shadow .15s ease; }
input:focus,select:focus { outline:none; border-color:var(--cobalt); box-shadow:0 0 0 4px rgba(37,99,235,.14); }
input.invalid { border-color:#DC2626; box-shadow:0 0 0 4px rgba(220,38,38,.12); }
select:disabled { background:var(--bg-soft); color:var(--slate-400); cursor:not-allowed; }
.rate-row { display:grid; grid-template-columns:1fr 160px; gap:16px; align-items:center; padding:15px 16px;
  border:1px solid var(--border); border-radius:var(--radius); margin-bottom:12px;
  transition:transform .2s ease, border-color .15s ease, background-color .15s ease, box-shadow .2s ease; }
.rate-row:hover { transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.rate-row:has(input[type="checkbox"]:checked) { border-color:var(--cobalt); background:var(--cobalt-soft); }
.rate-check { display:flex; gap:12px; align-items:flex-start; cursor:pointer; }
.rate-check input[type="checkbox"] { flex:none; width:20px; height:20px; margin-top:1px; accent-color:var(--cobalt); cursor:pointer; }
.rate-text { color:var(--slate-700); font-size:.96rem; }
.rate-select { display:flex; flex-direction:column; gap:5px; }
.rate-select label { font-family:var(--font-head); font-weight:600; font-size:.72rem; letter-spacing:.03em; text-transform:uppercase; color:var(--slate-500); }
.radio-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.radio-card { display:flex; align-items:center; gap:12px; cursor:pointer; padding:16px 18px; border:1px solid var(--border);
  border-radius:var(--radius); font-family:var(--font-head); font-weight:600; color:var(--slate-700);
  transition:transform .2s ease, border-color .15s ease, background-color .15s ease, box-shadow .2s ease; }
.radio-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.radio-card input { width:19px; height:19px; accent-color:var(--cobalt); cursor:pointer; }
.radio-card:has(input:checked) { border-color:var(--cobalt); background:var(--cobalt-soft); color:var(--slate); }
.form-consent { margin-top:14px; text-align:center; font-size:.85rem; color:var(--slate-500); }
.form-consent a { color:var(--cobalt); font-weight:600; }
.form-error { margin-top:16px; color:#DC2626; font-weight:600; text-align:center; }
.audit-success { text-align:center; padding:clamp(30px,6vw,60px) 10px; }
.success-icon { width:64px; height:64px; border-radius:50%; margin:0 auto 20px; display:grid; place-items:center;
  font-size:2rem; color:var(--white); background:var(--cobalt); box-shadow:0 10px 26px rgba(37,99,235,.4); }
.audit-success h3 { font-size:1.6rem; font-weight:800; }
.audit-success p { margin-top:12px; color:var(--slate-500); max-width:460px; margin-inline:auto; }

/* ---------- Contact ---------- */
.contact { padding:var(--section-y) 0; }
.contact-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:8px; }
.contact-card { display:flex; flex-direction:column; gap:6px; padding:30px 26px; border:1px solid var(--border);
  border-radius:var(--radius); background:var(--white); text-align:left;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.contact-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:var(--cobalt); }
.contact-ic { width:50px; height:50px; border-radius:14px; display:grid; place-items:center; font-size:1.5rem; background:var(--cobalt-soft); margin-bottom:8px; }
.contact-label { font-family:var(--font-head); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cobalt); }
.contact-val { font-family:var(--font-head); font-weight:700; font-size:1.15rem; color:var(--slate); line-height:1.4; }
@media (max-width:680px){ .contact-grid { grid-template-columns:1fr; } }

/* ---------- Footer ---------- */
.site-footer { background:var(--slate); color:var(--slate-400); padding-top:clamp(48px,7vw,80px); }
.footer-inner { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:40px; }
.footer-brand p { margin-top:18px; max-width:340px; color:var(--slate-400); font-size:.95rem; }
.footer-h { font-family:var(--font-head); font-weight:700; font-size:.95rem; color:var(--white); margin-bottom:16px; letter-spacing:.01em; }
.footer-nav { display:flex; flex-direction:column; gap:11px; }
.footer-nav a { font-family:var(--font-head); font-weight:600; font-size:.95rem; color:var(--slate-400); transition:color .15s ease; }
.footer-nav a:hover { color:var(--white); }
.footer-contact { font-style:normal; display:flex; flex-direction:column; gap:12px; font-size:.95rem; color:var(--slate-400); }
.footer-contact a { color:var(--slate-400); font-weight:600; transition:color .15s ease; }
.footer-contact a:hover { color:#93B4FF; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  border-top:1px solid var(--slate-700); padding:22px 0; font-size:.9rem; }
.footer-bottom a { color:var(--slate-400); font-weight:600; transition:color .15s ease; }
.footer-bottom a:hover { color:var(--white); }
@media (max-width:780px){ .footer-inner { grid-template-columns:1fr 1fr; } .footer-brand { grid-column:1 / -1; } }
@media (max-width:520px){ .footer-inner { grid-template-columns:1fr; } }

/* ---------- Legal page ---------- */
.legal-hero { background:var(--bg-soft); padding:clamp(48px,7vw,90px) 0 clamp(32px,4vw,48px); border-bottom:1px solid var(--border); }
.legal-hero .eyebrow { margin-bottom:12px; }
.legal-hero h1 { font-size:clamp(2rem,5vw,3.2rem); font-weight:800; color:var(--slate); }
.legal-hero .updated { margin-top:14px; color:var(--slate-500); font-size:.95rem; }
.legal-body { padding:clamp(40px,6vw,72px) 0 var(--section-y); }
.legal-wrap { max-width:820px; margin-inline:auto; }
.legal-wrap h2 { font-size:1.4rem; font-weight:800; color:var(--slate); margin:38px 0 12px; }
.legal-wrap h2:first-child { margin-top:0; }
.legal-wrap p, .legal-wrap li { color:var(--slate-700); font-size:1.02rem; line-height:1.75; }
.legal-wrap p { margin-bottom:14px; }
.legal-wrap ul { margin:0 0 16px; padding-left:22px; }
.legal-wrap li { margin-bottom:8px; }
.legal-wrap a { color:var(--cobalt); font-weight:600; }
.legal-toc { background:var(--bg-soft); border:1px solid var(--border); border-radius:var(--radius); padding:22px 26px; margin-bottom:40px; }
.legal-toc strong { font-family:var(--font-head); display:block; margin-bottom:10px; color:var(--slate); }
.legal-toc ol { margin:0; padding-left:20px; columns:2; gap:24px; }
.legal-toc a { color:var(--slate-700); font-weight:500; }
@media (max-width:600px){ .legal-toc ol { columns:1; } }

/* ---------- Effects ---------- */
.scroll-progress { position:fixed; top:0; left:0; height:3px; width:0; background:linear-gradient(90deg,var(--cobalt),#60A5FA);
  z-index:100; transition:width .1s linear; box-shadow:0 0 12px rgba(37,99,235,.6); }
.btn-shine { position:relative; overflow:hidden; }
.btn-shine::after { content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent); transform:skewX(-20deg); }
.btn-shine:hover::after { animation:shine .9s ease; }
@keyframes shine { to { left:130%; } }

/* ---------- Scroll reveal ---------- */
.reveal { opacity:0; transform:translateY(30px); transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
.reveal.visible { opacity:1; transform:none; }
.reveal[data-reveal="1"].visible { transition-delay:.05s; }
.reveal[data-reveal="2"].visible { transition-delay:.15s; }
.reveal[data-reveal="3"].visible { transition-delay:.28s; }
.reveal[data-reveal="4"].visible { transition-delay:.40s; }
.reveal[data-reveal="5"].visible { transition-delay:.52s; }
/* staggered service cards */
.cards-grid .svc-card:nth-child(3n+2).visible { transition-delay:.08s; }
.cards-grid .svc-card:nth-child(3n).visible { transition-delay:.16s; }

/* ---------- Responsive ---------- */
@media (max-width:980px) {
  .hero-grid { grid-template-columns:1fr; }
  .hero-sub { max-width:560px; }
  .hero-media { order:-1; max-width:520px; }
  .mission-grid { grid-template-columns:1fr; }
  .mission-photo { order:-1; }
  .cards-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:860px) { .main-nav { display:none; } .nav-toggle { display:flex; } }
@media (max-width:680px) {
  .cards-grid { grid-template-columns:1fr; }
  .grid-2 { grid-template-columns:1fr; }
  .radio-grid { grid-template-columns:1fr; }
  .rate-row { grid-template-columns:1fr; }
  .rate-select { flex-direction:row; align-items:center; justify-content:space-between; }
  .rate-select select { max-width:120px; }
  /* Mobile: drop both float cards inside the image so they don't overflow the viewport */
  .float-card { padding:10px 12px; }
  .float-card-a { top:auto; bottom:16px; left:8px; }
  .float-card-b { bottom:16px; right:8px; }
  .fc-num { font-size:1.5rem; }
  .fc-label { font-size:.7rem; max-width:112px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; animation:none !important; }
  .reveal { opacity:1; transform:none; }
}
