/* ============================================================
   Coverly — calm protective theme. Mobile-width layout, NO device frame:
   a clean centered column on a flat backdrop, normal document scroll.
   teal + warm amber on cool porcelain · Outfit / Figtree / Spline Sans Mono
   ============================================================ */
:root{
  --ink:#112a2e; --ink-2:#39585c; --muted:#5f7378;
  --bg:#f2f6f5; --surface:#ffffff; --surface-2:#ecf3f2;
  --line:#dbe7e5; --line-2:#c4d8d5;
  --primary:#0d9488; --primary-d:#0b7a70; --primary-soft:#d7f1ed;
  --accent:#f59e0b; --accent-d:#d98500; --accent-soft:#fdeccd;
  --ok:#159d6e; --ok-soft:#dff4ec; --bad:#e05a5a; --bad-soft:#fbe7e7;
  --warn:#f59e0b;
  --shadow:0 6px 20px rgba(17,42,46,.07); --shadow-lg:0 16px 44px rgba(17,42,46,.13);
  --r:14px; --r-lg:22px; --r-pill:999px;
  --maxw:460px; --pad:clamp(16px,5vw,22px);
  --disp:"Outfit",system-ui,sans-serif;
  --body:"Figtree",system-ui,sans-serif;
  --mono:"Spline Sans Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{ background:#e4eceb; -webkit-text-size-adjust:100%; }   /* flat gutter, not a phone frame */
body{
  max-width:var(--maxw); margin:0 auto; min-height:100vh;
  background:var(--bg); color:var(--ink);
  font-family:var(--body); font-size:16px; line-height:1.55;
  overflow-x:clip; -webkit-font-smoothing:antialiased;
}
@media (min-width:480px){ body{border-inline:1px solid var(--line-2);} }  /* subtle flat edges */

img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
h1,h2,h3{font-family:var(--disp); line-height:1.14; letter-spacing:-.012em; margin:0}
.wrap{padding-inline:var(--pad)}
.skip{position:absolute; left:-999px}
.skip:focus{left:8px; top:8px; background:#fff; padding:8px 12px; border-radius:8px; z-index:50}
:focus-visible{outline:3px solid var(--primary); outline-offset:2px; border-radius:6px}

/* nav */
.nav{position:sticky; top:0; z-index:30; background:rgba(255,255,255,.93);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line)}
.nav-in{display:flex; align-items:center; justify-content:space-between; padding:12px var(--pad)}
.brand{display:flex; align-items:center; gap:8px; font-family:var(--disp); font-weight:700; font-size:1.13rem; color:var(--ink)}
.brand-mark{width:24px; height:24px; color:var(--primary)}
.menu-btn{font-size:1.4rem; background:none; border:0; color:var(--ink); cursor:pointer; line-height:1; padding:4px}
.nav-links{position:absolute; top:100%; left:0; right:0; background:#fff; border-bottom:1px solid var(--line);
  flex-direction:column; gap:2px; padding:8px var(--pad) 14px; display:none; box-shadow:var(--shadow)}
.nav-links.open{display:flex}
.nav-links a{padding:11px 6px; border-radius:10px; font-weight:500; color:var(--ink-2)}
.nav-links a:hover{background:var(--surface-2); color:var(--ink)}
.nav-cta{background:var(--primary); color:#fff!important; text-align:center; font-weight:600; margin-top:6px}
.nav-cta:hover{background:var(--primary-d)}

/* buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--disp);
  font-weight:600; font-size:.98rem; cursor:pointer; border:0; border-radius:var(--r-pill); padding:13px 22px; transition:.16s}
.btn-primary{background:var(--primary); color:#fff; box-shadow:0 8px 18px rgba(13,148,136,.26)}
.btn-primary:hover{background:var(--primary-d); transform:translateY(-1px)}
.btn-ghost{background:#fff; color:var(--ink); border:1.5px solid var(--line-2)}
.btn-ghost:hover{border-color:var(--primary); color:var(--primary)}
.btn.big{font-size:1.06rem; padding:15px 26px}
.btn.wide{display:flex; width:100%}

/* hero */
.hero{position:relative; padding:26px var(--pad) 12px; overflow:clip}
.hero::before{content:""; position:absolute; inset:-45% -20% auto -20%; height:330px; z-index:-1;
  width:min(140%,100%); background:radial-gradient(closest-side,#0d948826,transparent 70%)}
.hero-top{display:flex; align-items:center; gap:10px; margin-bottom:14px}
.hero-mark{width:38px; height:38px; color:var(--primary)}
.kicker{font-family:var(--disp); font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.12em; color:var(--primary)}
.hero h1{font-size:clamp(2rem,9vw,2.55rem); font-weight:700; margin-bottom:10px}
.hero .hl{color:var(--accent-d)}
.lede{color:var(--ink-2); font-size:1.04rem; margin:0 0 16px}
.trust{display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:var(--muted); font-size:.82rem; font-weight:500; margin-bottom:18px}
.micro{font-size:.76rem; color:var(--muted); margin:10px 0 0}

/* sections */
.section{padding:30px var(--pad)}
.section.narrow{padding-top:24px}
.eyebrow{font-family:var(--disp); font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent-d)}
.section h2{font-size:clamp(1.5rem,6.5vw,1.85rem); font-weight:700; margin:.3rem 0 .5rem}
.section .sub{color:var(--ink-2); margin:0 0 18px}
.h3{font-family:var(--disp); font-size:1.16rem; font-weight:600; margin:22px 0 12px}

/* category chips */
.cchips{display:grid; grid-template-columns:repeat(2,1fr); gap:10px}
.cchip{display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:13px 14px; font-weight:600; font-size:.93rem; color:var(--ink); box-shadow:var(--shadow); transition:.16s}
.cchip:hover{border-color:var(--primary); transform:translateY(-2px)}
.cchip-i{font-size:1.22rem; line-height:1}

/* guide cards */
.gcards{display:grid; gap:16px}
.gcard{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); transition:.18s; display:block}
.gcard:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg)}
.gcard-img{aspect-ratio:16/9}
.gcard-b{padding:16px 17px 18px}
.tag{display:inline-block; font-family:var(--disp); font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em;
  color:var(--primary); background:var(--primary-soft); padding:3px 9px; border-radius:var(--r-pill); margin-bottom:9px}
.gcard h3{font-size:1.1rem; margin-bottom:6px}
.gcard p{color:var(--ink-2); font-size:.91rem; margin:0 0 10px}
.readmore{font-family:var(--disp); font-weight:600; font-size:.9rem; color:var(--primary)}

/* image fallback */
.ph{position:relative; background-size:cover; background-position:center; overflow:hidden}
.ph img{width:100%; height:100%; object-fit:cover}

/* quiz console */
.console{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); overflow:hidden}
.quiz{padding:0}
.quiz-inner{padding:20px 18px 22px}
.q-progress{display:flex; gap:5px; padding:14px 18px 0}
.q-progress .seg{height:5px; flex:1; border-radius:99px; background:var(--line-2)}
.q-progress .seg.done{background:var(--primary)}
.q-progress .seg.on{background:var(--accent)}
.q-count{font-family:var(--mono); font-size:.76rem; color:var(--muted); margin:14px 0 4px; display:block}
.quiz h3{font-size:1.18rem; font-weight:600; margin:2px 0 14px; line-height:1.28}
.opts{display:grid; gap:10px}
.opt{display:flex; align-items:center; gap:11px; text-align:left; width:100%; background:var(--surface-2);
  border:1.5px solid var(--line); border-radius:var(--r); padding:13px 14px; font-family:var(--body);
  font-size:.95rem; font-weight:500; color:var(--ink); cursor:pointer; transition:.14s}
.opt:hover:not(:disabled){border-color:var(--primary); background:#fff}
.opt .mark{flex:none; width:22px; height:22px; border-radius:50%; border:2px solid var(--line-2); display:grid;
  place-items:center; font-size:.74rem; color:#fff; font-weight:700}
.opt.correct{border-color:var(--ok); background:var(--ok-soft)}
.opt.correct .mark{background:var(--ok); border-color:var(--ok)}
.opt.wrong{border-color:var(--bad); background:var(--bad-soft)}
.opt.wrong .mark{background:var(--bad); border-color:var(--bad)}
.opt:disabled{cursor:default}
.explain{margin:14px 0 0; padding:13px 14px; background:var(--primary-soft); border-radius:var(--r); font-size:.89rem;
  color:var(--ink-2); border-left:3px solid var(--primary)}
.explain.bad{background:var(--bad-soft); border-left-color:var(--bad)}
.quiz-nav{display:flex; justify-content:space-between; gap:10px; margin-top:16px}

/* focus picker */
.focus-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:9px}
.focus{display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:left; background:var(--surface-2);
  border:1.5px solid var(--line); border-radius:var(--r); padding:12px 13px; cursor:pointer; transition:.14s; font-family:var(--body); color:var(--ink)}
.focus:hover{border-color:var(--primary); background:#fff}
.focus.sel{border-color:var(--primary); background:var(--primary-soft)}
.focus b{font-family:var(--disp); font-size:.95rem}
.focus span{font-size:1.18rem}

/* ---------- segmented protection-level meter (signature) ---------- */
.result{padding:24px 18px 26px; text-align:center}
.level-top{display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:4px}
.level-umb{width:30px; height:30px; color:var(--primary)}
.level-score{font-family:var(--mono); font-size:2.2rem; font-weight:500; color:var(--ink); line-height:1}
.level-score small{font-size:.95rem; color:var(--muted)}
.level-bar{display:flex; gap:6px; margin:14px 0 4px; justify-content:center}
.level-bar i{height:14px; flex:1; max-width:46px; border-radius:6px; background:var(--line-2); transition:.2s}
.level-bar i.on{background:var(--primary)}
.level-bar i.on.hi{background:var(--accent)}
.level-cap{font-family:var(--mono); font-size:.72rem; color:var(--muted); letter-spacing:.06em; margin-bottom:8px}
.tier-name{font-family:var(--disp); font-size:1.45rem; font-weight:700; margin:8px 0 2px}
.tier-blurb{color:var(--ink-2); font-size:.95rem; margin:0 auto 16px; max-width:32ch}
.next-steps{display:grid; gap:9px; text-align:left; margin:6px 0 14px}
.next-steps a{display:flex; align-items:center; gap:10px; background:var(--surface-2); border:1px solid var(--line);
  border-radius:var(--r); padding:12px 14px; font-weight:500; color:var(--ink)}
.next-steps a:hover{border-color:var(--primary); background:#fff}

/* checks / terms / callout */
.checks{list-style:none; padding:0; margin:0; display:grid; gap:9px}
.checks li{position:relative; padding-left:28px; color:var(--ink-2)}
.checks li::before{content:"✓"; position:absolute; left:0; top:1px; width:19px; height:19px; background:var(--primary);
  color:#fff; border-radius:50%; display:grid; place-items:center; font-size:.7rem; font-weight:700}
.terms{display:grid; gap:10px}
.term{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:12px 14px}
.term b{font-family:var(--disp); display:block; margin-bottom:2px}
.term span{color:var(--muted); font-size:.9rem}
.callout{background:#fff7ec; border:1px solid #f6e0b8; border-left:3px solid var(--warn); border-radius:var(--r);
  padding:13px 15px; color:var(--ink-2); font-size:.92rem; margin:16px 0}
.cat-hero,.guide-hero{aspect-ratio:16/10; border-radius:var(--r-lg); margin:4px 0 18px; box-shadow:var(--shadow)}

/* calculator */
.calc{padding:18px; display:grid; gap:12px; margin-bottom:16px}
.calc-field{display:grid; gap:5px}
.calc-field label{font-size:.84rem; font-weight:600; color:var(--ink-2)}
.calc-field input{font-family:var(--mono); font-size:1rem; padding:11px 13px; border:1.5px solid var(--line);
  border-radius:var(--r); background:var(--surface-2); color:var(--ink)}
.calc-field input:focus{border-color:var(--primary); background:#fff; outline:none}
.calc-result{padding:20px 18px}
.calc-head{font-family:var(--disp); font-weight:600; color:var(--muted); font-size:.84rem; text-transform:uppercase; letter-spacing:.08em}
.calc-big{font-family:var(--mono); font-size:2.4rem; font-weight:500; color:var(--primary); margin:4px 0 14px}
.calc-rows,.calc-grid{display:grid; gap:7px; border-top:1px solid var(--line); padding-top:13px}
.calc-rows div,.calc-grid div{display:flex; justify-content:space-between; font-size:.92rem; color:var(--ink-2)}
.calc-rows b,.calc-grid b{font-family:var(--mono); color:var(--ink); font-weight:500}
.calc-rows .minus b,.calc-grid .minus b{color:var(--bad)}

/* prose / legal */
.prose p{margin:0 0 14px; color:var(--ink-2)}
.prose b{color:var(--ink)}
.prose a,.legal a{color:var(--primary); font-weight:600}
.legal p{color:var(--ink-2); margin:0 0 13px}
.legal h2{margin-bottom:14px}
.contact-form{display:grid; gap:6px; margin-top:10px}
.contact-form label{font-size:.84rem; font-weight:600; color:var(--ink-2); margin-top:6px}
.contact-form input,.contact-form textarea{font-family:var(--body); padding:11px 13px; border:1.5px solid var(--line);
  border-radius:var(--r); background:var(--surface-2)}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--primary); background:#fff; outline:none}
.contact-form button{margin-top:12px}

/* ads */
.ad-slot{margin:8px var(--pad) 4px; min-height:280px; display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(45deg,#eaf2f1,#eaf2f1 12px,#e2eeec 12px,#e2eeec 24px);
  border:1px dashed var(--line-2); border-radius:var(--r); text-align:center}
.ad-slot[data-ad="top"]{margin-top:12px}
.ad-label{font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:#94a8a5; font-weight:600}
.ad-note{font-size:.86rem; color:#a6b8b5; margin-top:2px}

/* footer */
.foot{background:var(--ink); color:#bcd0cd; margin-top:24px; padding:26px var(--pad) 32px}
.foot-cats{display:flex; flex-wrap:wrap; gap:8px 14px; margin-bottom:16px; font-weight:600; font-size:.9rem}
.foot-cats a{color:#d6e6e3}
.foot-cats a:hover{color:var(--accent)}
.foot .disc{font-size:.78rem; line-height:1.6; color:#86a09c; margin:0 0 14px}
.foot .disc b{color:#bcd0cd}
.foot-links{font-size:.82rem; line-height:2; color:#a6b8b5}
.foot-links a:hover{color:#fff}
.copy{font-size:.78rem; color:#789490; margin:12px 0 0}

/* toast */
.toast{position:fixed; left:50%; bottom:20px; transform:translateX(-50%) translateY(20px); background:var(--ink); color:#fff;
  padding:12px 18px; border-radius:var(--r-pill); font-size:.9rem; font-weight:500; box-shadow:var(--shadow-lg);
  opacity:0; pointer-events:none; transition:.25s; z-index:60; max-width:90%}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0)}

.fade-in{animation:fade .32s ease both}
@keyframes fade{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}
@media (prefers-reduced-motion:reduce){ *{animation:none!important; transition:none!important} .btn-primary:hover,.gcard:hover,.cchip:hover{transform:none} }
