/* Galactic — site-specific styles. Loaded after base.css. */

/* ---- Type: Switzer (the client's own face), two weights ------------- */
body{font-weight:400;letter-spacing:-.003em}
h1,h2,h3,h4{font-weight:500;letter-spacing:-.025em}
h2{color:var(--brand);font-size:clamp(1.9rem,1.4rem + 2.2vw,3rem)}
h3{font-size:var(--fs-lg)}
strong,b{font-weight:500}
a:hover{color:var(--brand-deep)}

/* ---- Buttons --------------------------------------------------------- */
.btn{font-weight:500;border-radius:999px;padding:.85em 1.45em}
.btn:hover{transform:none}
.btn-go{background:var(--accent);color:var(--accent-ink)}
.btn-go:hover{background:#00dd73;color:var(--accent-ink)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-line:hover{border-color:var(--ink);color:var(--ink)}
.btn svg{width:18px;height:18px;flex:none}

/* ---- Header ---------------------------------------------------------- */
.site-header{background:rgba(255,255,255,.94)}
.brand svg{height:28px;width:auto;color:var(--brand)}
.nav a{color:var(--ink);font-weight:400;font-size:.95rem}
.nav a.btn-go,.nav a.btn-go:hover{color:var(--accent-ink)}
.nav .login{color:var(--ink-2)}
@media(min-width:861px){.nav{gap:1.35rem}}

/* ---- Hero ------------------------------------------------------------ */
.hero{padding-block:clamp(2.25rem,6vw,5.5rem) clamp(1.5rem,3vw,2.5rem)}
.hero-grid{display:grid;gap:clamp(2rem,4vw,4rem);align-items:center}
@media(min-width:960px){.hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}
.hero h1{font-size:clamp(2.35rem,1.4rem + 4.1vw,4.9rem);line-height:1.02;letter-spacing:-.038em;margin-bottom:var(--s-5);max-width:14ch}
.hero .lede{color:var(--ink-2);max-width:52ch}
.hero .actions{margin-top:var(--s-6)}
.hero .patent{margin-top:var(--s-5);font-size:var(--fs-sm);color:var(--ink-3)}

/* The one memorable thing: what a test needs from you */
.needs{background:var(--brand);color:#fff;border-radius:18px;padding:clamp(1.5rem,3vw,2.4rem)}
.needs .needs-title{font-size:var(--fs-lg);font-weight:500;margin:0 0 var(--s-5);letter-spacing:-.01em}
.needs .tag{font-size:var(--fs-sm);color:rgba(255,255,255,.78);margin:0 0 var(--s-2)}
.needs ul{list-style:none;margin:0 0 var(--s-6);padding:0}
.needs li{font-size:clamp(1.15rem,1rem + .7vw,1.5rem);line-height:1.25;padding:.55em 0;border-bottom:1px solid rgba(255,255,255,.22)}
.needs li:last-child{border-bottom:0}
.needs .gone span{position:relative;color:rgba(255,255,255,.72)}
.needs .gone span::after{content:"";position:absolute;left:-.1em;right:-.1em;top:55%;height:2px;background:#fff;transform-origin:left center;animation:strike .5s var(--ease) both}
.needs .gone:nth-child(2) span::after{animation-delay:.18s}
.needs .gone:nth-child(3) span::after{animation-delay:.36s}
@keyframes strike{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.needs .gone span::after{animation:none}}
.needs .left{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.2rem);font-weight:500;letter-spacing:-.025em;line-height:1.1;margin:0}
.needs .left::before{content:"";display:inline-block;width:.5em;height:.5em;border-radius:50%;background:var(--accent);margin-right:.4em;vertical-align:.12em}
.needs .foot{margin:var(--s-4) 0 0;font-size:var(--fs-sm);color:rgba(255,255,255,.8)}

/* ---- How a test runs (a real four-step sequence) ------------------- */
.sequence{margin:0;padding:0;list-style:none;gap:0;grid-template-columns:1fr}
@media(min-width:820px){.sequence{grid-template-columns:repeat(4,1fr)}}
.sequence .step{padding:var(--s-6) var(--s-5) var(--s-5) 0;border-top:2px solid var(--ink)}
@media(min-width:820px){.sequence .step+.step{padding-left:var(--s-5);border-left:1px solid var(--line)}}
.sequence .step::before{position:static;display:block;margin-bottom:var(--s-4);font-weight:500;font-size:var(--fs-xl);color:var(--brand)}
.sequence h3{margin-bottom:var(--s-2)}
.sequence p{color:var(--ink-2);font-size:var(--fs-sm)}
.after-steps{margin-top:var(--s-6);color:var(--ink-2)}

/* ---- What it checks -------------------------------------------------- */
.checks-grid{display:grid;gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media(min-width:900px){.checks-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.list-rows li{grid-template-columns:minmax(9rem,13rem) 1fr;align-items:baseline;padding:var(--s-5) 0}
.list-rows h3{font-size:var(--fs-lg);font-weight:500}
.list-rows p{font-size:var(--fs-md);margin:0}
@media(max-width:560px){.list-rows li{grid-template-columns:1fr;gap:var(--s-1)}}
.report figure{margin:0}
.report img{width:100%;height:auto;aspect-ratio:960/1052}
.report figcaption{margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--ink-3);max-width:44ch}

/* ---- Independence ---------------------------------------------------- */
.indep{display:grid;gap:clamp(2rem,5vw,4rem)}
@media(min-width:900px){.indep{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}}
.statement{font-size:clamp(1.6rem,1.15rem + 2vw,2.7rem);line-height:1.15;letter-spacing:-.03em;font-weight:500;color:var(--ink);max-width:24ch;margin-bottom:var(--s-6)}
.facts{margin:0;display:grid;gap:0;border-top:1px solid #c5ccd6}
.facts div{padding:var(--s-4) 0;border-bottom:1px solid #c5ccd6}
.facts dt{font-size:var(--fs-xl);font-weight:500;letter-spacing:-.02em;color:var(--brand-deep)}
.facts dd{margin:.2em 0 0;color:var(--ink-2);font-size:var(--fs-sm)}

/* ---- For MSPs ------------------------------------------------------- */
.plans{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.plans li{display:grid;gap:var(--s-2) var(--s-6);padding:var(--s-6) 0;border-bottom:1px solid var(--line)}
@media(min-width:820px){.plans li{grid-template-columns:minmax(12rem,16rem) 1fr}}
.plans h3{margin:0;font-size:var(--fs-xl)}
.plans .who{margin:.3em 0 0;font-size:var(--fs-sm);color:var(--ink-3)}
.plans p{color:var(--ink-2)}
.audiences{display:grid;gap:var(--s-5);margin-top:var(--s-7)}
@media(min-width:760px){.audiences{grid-template-columns:1fr 1fr}}
.audiences p{margin:0;color:var(--ink-2)}
.audiences strong{color:var(--ink);display:block;margin-bottom:.2em;font-size:var(--fs-lg)}
.community{margin-top:var(--s-7);padding-top:var(--s-6);border-top:1px solid var(--line);display:grid;gap:var(--s-4)}
@media(min-width:900px){.community{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-7)}}
.community .big{font-size:var(--fs-xl);font-weight:500;letter-spacing:-.02em;line-height:1.25;margin:0;max-width:30ch;text-wrap:balance}

/* ---- Team ----------------------------------------------------------- */
.people{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));max-width:860px}
.people img{width:100%;height:auto;aspect-ratio:472/582;object-fit:cover;border-radius:var(--radius);background:var(--bg-alt)}
.people b{display:block;margin-top:var(--s-3);font-weight:500}
.people span{font-size:var(--fs-sm);color:var(--ink-2)}
.team-more{margin-top:var(--s-6)}

/* ---- Contact -------------------------------------------------------- */
.contact-grid{display:grid;gap:clamp(2rem,5vw,4.5rem)}
@media(min-width:900px){.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}
.contact-grid .phone{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem);font-weight:500;letter-spacing:-.02em;text-decoration:none;color:var(--ink)}
.contact-grid .phone:hover{color:var(--brand)}
.form{background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(1.25rem,3vw,2rem)}
.form label{font-weight:500}
.form .btn{justify-self:start}
.form-success{border-radius:14px}

/* ---- Footer --------------------------------------------------------- */
.site-footer{background:var(--ink)}
.site-footer .brand svg{color:#fff;height:26px}
.site-footer h2{color:#fff;font-size:var(--fs-sm);font-weight:500;letter-spacing:0;margin-bottom:var(--s-3)}
.site-footer address{font-style:normal;line-height:1.7}
.site-footer .tagline{margin-top:var(--s-4);max-width:30ch}
