/*
Theme Name: Haven Theme
Theme URI: https://example.org/haven
Author: The Haven Initiative
Description: Presentation layer for Teen Hav3n. Design tokens from the brand guide. No business logic: everything functional lives in the Haven Core plugin.
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 8.1
License: Proprietary
Text Domain: haven-theme
*/

@font-face{font-family:"Fraunces";src:url("assets/fonts/fraunces-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito";src:url("assets/fonts/nunito-latin-wght-normal.woff2") format("woff2");font-weight:200 1000;font-style:normal;font-display:swap}
@font-face{font-family:"Caveat";src:url("assets/fonts/caveat-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

:root{
  --haven-teal:#1F6F78;--haven-teal-deep:#185a62;--haven-plum:#5B3A5E;--haven-gold:#F2B84B;--haven-gold-deep:#A66A10;
  --haven-apricot:#F4B9A4;--haven-sand:#F7F1E8;--haven-ink:#2B2B33;--haven-mist:#DCEBEC;
  --haven-heading:"Fraunces",Georgia,"Times New Roman",serif;
  --haven-body:"Nunito","Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --haven-script:"Caveat","Segoe Script",cursive;
  --hv-gutter:clamp(1.1rem,4vw,2rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--haven-sand);color:var(--haven-ink);font-family:var(--haven-body);font-size:1.0625rem;line-height:1.7}
img,svg{max-width:100%;height:auto}
a{color:var(--haven-teal)}
a:hover{color:var(--haven-teal-deep)}
:focus-visible{outline:3px solid var(--haven-gold);outline-offset:3px;border-radius:2px}
.hv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hv-skip{position:absolute;left:-9999px;top:0;background:#fff;padding:.6rem 1rem;z-index:10}
.hv-skip:focus{left:.5rem;top:.5rem}
.hv-wrap{max-width:68rem;margin:0 auto;padding-left:var(--hv-gutter);padding-right:var(--hv-gutter)}

/* type */
h1,h2,h3{font-family:var(--haven-heading);font-weight:600;line-height:1.15;color:var(--haven-plum);margin:0 0 .6em;font-variation-settings:"opsz" 72}
h1{font-size:clamp(2.2rem,6vw,3.6rem)}
h2{font-size:clamp(1.55rem,3.6vw,2.15rem)}
p{margin:0 0 1.1em}
.hv-prose{max-width:40rem}
.hv-prose a{font-weight:700}
main.hv-prose{padding-top:2.5rem;padding-bottom:4rem}
.hv-lead{font-size:clamp(1.1rem,2.2vw,1.3rem);max-width:34rem}

/* wordmark */
.hv-wordmark{font-family:var(--haven-heading);font-weight:700;color:var(--haven-teal);letter-spacing:-.01em;line-height:1}
.hv-wm-teen{font-weight:500;font-style:italic}
.hv-wm-3{color:var(--haven-gold-deep);font-weight:800}
.hv-wm-light{color:#fff}.hv-wm-light .hv-wm-3{color:var(--haven-gold)}

/* header */
.hv-header{border-bottom:2px solid var(--haven-mist)}
.hv-header-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-top:.8rem;padding-bottom:.8rem}
.hv-brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font-size:1.6rem}
.hv-brand-mark{width:1.7rem;height:auto}
.hv-menu{display:flex;flex-wrap:wrap;gap:.3rem 1.3rem;list-style:none;margin:0;padding:0;align-items:center}
.hv-menu a{text-decoration:none;font-weight:700;color:var(--haven-ink)}
.hv-menu a:hover,.hv-menu a[aria-current=page]{color:var(--haven-teal);text-decoration:underline;text-decoration-color:var(--haven-gold);text-decoration-thickness:3px;text-underline-offset:6px}
.hv-menu .hv-menu-cta{background:var(--haven-teal);color:#fff;padding:.45rem 1.1rem;border-radius:2rem;text-decoration:none}
.hv-menu .hv-menu-cta:hover{background:var(--haven-teal-deep);color:#fff}

/* buttons */
.hv-btn{display:inline-block;background:var(--haven-teal);color:#fff;border:2px solid var(--haven-teal);padding:.75rem 1.5rem;border-radius:2rem;font:inherit;font-weight:700;text-decoration:none;min-height:2.75rem}
.hv-btn:hover{background:var(--haven-teal-deep);border-color:var(--haven-teal-deep);color:#fff}
.hv-btn-quiet{background:transparent;color:var(--haven-teal)}
.hv-btn-quiet:hover{background:var(--haven-mist);color:var(--haven-teal-deep)}
.hv-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}

/* hero: the arch is the one memorable thing */
.hv-hero{padding:clamp(2rem,6vw,4.5rem) 0 clamp(2.5rem,6vw,4rem)}
.hv-hero-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:2rem;align-items:end}
.hv-hero-copy h1{margin-bottom:.45em}
.hv-hero-art{justify-self:center;width:min(100%,19rem)}
.hv-arch-hero{display:block;width:100%;height:auto}
@media (max-width:760px){.hv-hero-grid{grid-template-columns:1fr}.hv-hero-art{order:-1;width:11rem;justify-self:start}}

/* sections */
.hv-section{padding-top:clamp(2rem,5vw,3.5rem);padding-bottom:clamp(2rem,5vw,3.5rem)}
.hv-split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1rem 3rem;align-items:start}
.hv-split h2{margin:0}
.hv-split-alt{border-top:2px solid var(--haven-mist)}
@media (max-width:760px){.hv-split{grid-template-columns:1fr}}
.hv-safe{background:var(--haven-mist);padding:clamp(2rem,5vw,3.5rem) 0}
.hv-checks{list-style:none;margin:0;padding:0;max-width:40rem}
.hv-checks li{position:relative;padding-left:2rem;margin:0 0 .8rem}
.hv-checks li::before{content:"";position:absolute;left:.15rem;top:.55rem;width:.9rem;height:.9rem;border-radius:50%;background:var(--haven-gold)}

/* footer */
.hv-footer{background:var(--haven-teal);color:#fff;margin-top:3rem;padding:2.5rem 0}
.hv-footer a{color:#fff}
.hv-footer-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 3rem}
@media (max-width:640px){.hv-footer-row{grid-template-columns:1fr}}
.hv-footer-name{font-size:1.5rem;margin:0 0 .4rem}
.hv-footer-note{margin:0 0 .6rem;font-size:.97rem;max-width:30rem}
.hv-script{font-family:var(--haven-script);font-size:1.7rem;margin:.4rem 0 0;color:var(--haven-gold)}
.hv-footer-links{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem 1.2rem}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
