/* Base styles, lifted from the brand kit. Components go in their own file when the page map is agreed. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;line-height:1.5}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:var(--sky-dark)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.section{padding:var(--section-y) 0}

/* type */
h1,h2,h3{font-family:var(--font-head);color:var(--navy);letter-spacing:-.03em;line-height:1.06}
h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:700}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:600}
h3{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
h1 em,h2 em{font-family:var(--font-emph);font-style:italic;font-weight:500}
.eyebrow{font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);display:inline-flex;align-items:center;gap:8px}
.lede{font-size:1.1rem;line-height:1.6;max-width:60ch}

/* dark sections */
.dark{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff}
.dark h1,.dark h2,.dark h3{color:#fff}
.dark p{color:rgba(255,255,255,.72)}
.dark .eyebrow{color:rgba(255,255,255,.7)}

/* buttons — red is never a button */
.btn{display:inline-block;font-family:var(--font-head);font-weight:700;font-size:15px;padding:1rem 1.7rem;border-radius:var(--r-pill);cursor:pointer;border:1.5px solid transparent;text-decoration:none;transition:transform .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn-navy{background:var(--navy);color:#fff;box-shadow:var(--shadow-cta)}
.btn-navy:hover{background:var(--navy-hover);box-shadow:var(--shadow-cta-hover)}
.btn-white{background:#fff;color:var(--navy);box-shadow:var(--shadow-cta)}
.btn-white:hover{background:#eef1f6;box-shadow:var(--shadow-cta-hover)}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}
.btn-ghost-dark{background:rgba(10,21,48,.4);color:#fff;border-color:rgba(255,255,255,.6)}
.btn-ghost-dark:hover{border-color:#fff}
.btns{display:flex;gap:13px;flex-wrap:wrap;align-items:center}

/* cards */
.card{background:var(--grey-card);border:1px solid var(--border);border-radius:var(--r-card);padding:24px}
.card.raised{background:#fff;border:0;box-shadow:var(--shadow)}

/* stars — gold is for ratings only */
.stars{color:var(--gold);letter-spacing:.05em}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.btn:hover{transition:none;transform:none}}
