/* HugFit v3. Palette: white base, ink #121212 (Dashing Diva / ohora), pink #c2447a + blush #fdeff1 / #fddfea (Olive & June, Dashing Diva),
   Didot-style display (Static Nails -> Bodoni Moda), geometric sans (Olive & June Futura / Glamnetic Jost fallback -> Jost). */
:root{--ink:#121212;--paper:#fff;--pink:#c2447a;--blush:#fdeff1;--blush2:#fddfea;--muted:#595a5b;--line:#e5e5e5;
  --serif:'Bodoni Moda',Didot,'Bodoni 72',Georgia,serif;--sans:'Jost',Futura,'Century Gothic',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.5}
body.loading .hero,body.loading .trust,body.loading .ann,body.loading .nav{opacity:0}
.hero,.trust,.ann,.nav{transition:opacity .25s ease}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{display:block;max-width:100%}
.ann{background:var(--blush);text-align:center;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;font-weight:500}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}
.wm{font-weight:500;font-size:17px;letter-spacing:.34em;color:var(--ink);text-decoration:none}
.nav-cta{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;padding:9px 0;border-bottom:1px solid var(--ink)}
.hero{display:grid;grid-template-areas:"text" "img" "cta";padding:36px 20px 8px;gap:0;max-width:1240px;margin:0 auto}
.hero-text{grid-area:text}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(40px,10.5vw,52px);line-height:1.04;letter-spacing:-.025em}
h1 .hy,.rbrand .hy{font-optical-sizing:none;font-variation-settings:'opsz' 11}
h1 em{font-style:italic;color:var(--pink);white-space:nowrap}
.sub{font-size:16.5px;line-height:1.62;color:#333;margin-top:18px;max-width:470px}
.hero-img{grid-area:img;margin:30px -20px 0;position:relative}
.hero-img img{width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;object-position:center 62%}
.hero-cta{grid-area:cta;padding:26px 0 34px}
.btn{display:block;width:100%;background:var(--ink);color:#fff;font-size:13px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:19px 34px;transition:background .15s}
.btn:hover{background:#000}
.btn:focus-visible,.nav-cta:focus-visible,.opt:focus-visible,.chip:focus-visible{outline:2px solid var(--pink);outline-offset:3px}
.cta-line{font-size:14px;color:var(--muted);margin-top:14px;line-height:1.55;max-width:420px}
.trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;max-width:1240px;margin:0 auto}
.trust p{font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;text-align:center;padding:13px 16px;color:var(--ink);font-weight:500}
.trust p+p{border-top:1px solid var(--line)}
.foot{font-size:11px;color:#8a8a8a;text-align:center;padding:14px 20px 16px}
@media(min-width:900px){
  .ann{font-size:11px}
  .nav{padding:20px 48px}.wm{font-size:19px}
  .hero{grid-template-columns:1fr minmax(380px,.82fr);grid-template-rows:auto 1fr;grid-template-areas:"text img" "cta img";column-gap:72px;padding:40px 48px 36px;align-items:start}
  .hero-text{align-self:end;padding-top:24px}
  h1{font-size:clamp(56px,5.4vw,74px)}
  .sub{font-size:18px;margin-top:24px}
  .hero-img{margin:0;align-self:stretch}
  .hero-img img{aspect-ratio:4/5;height:100%;max-height:min(600px,calc(100vh - 240px));min-height:420px}
  .hero-cta{padding:36px 0 0}
  .btn{display:inline-block;width:auto;padding:19px 46px}
  .trust{grid-template-columns:repeat(3,1fr);margin-bottom:0}
  .trust p{padding:16px 12px;white-space:nowrap}
  .trust p+p{border-top:0;border-left:1px solid var(--line)}
}

/* ---------- quiz modal ---------- */
body.modal-open{overflow:hidden}
.modal{position:fixed;inset:0;z-index:50}
.modal[hidden]{display:none}
.scrim{position:absolute;inset:0;background:rgba(18,18,18,.38);animation:fade .2s ease}
.sheet{position:absolute;inset:0;background:#fff;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:up .24s ease;display:flex;flex-direction:column}
@keyframes fade{from{opacity:0}}
@keyframes up{from{opacity:0;transform:translateY(14px)}}
@media(min-width:700px){.sheet{inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:620px;max-height:90vh;animation:fade .2s ease}}
.qhead{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 0;gap:16px;position:sticky;top:0;background:#fff;z-index:2}
.qstep{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500}
.x{width:40px;height:40px;display:grid;place-items:center;margin-right:-10px}
.prog{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:12px 20px 0;position:sticky;top:56px;background:#fff;z-index:2}
.prog i{height:2px;background:var(--line)}
.prog i.on{background:var(--pink)}
.qbody{padding:26px 20px 28px;flex:1}
.qbody h2{font-family:var(--serif);font-weight:400;font-size:31px;line-height:1.1;letter-spacing:-.02em}
.qhelp{font-size:14.5px;color:var(--muted);margin-top:8px}
.opts{display:grid;gap:10px;margin-top:24px}
.opt{display:grid;grid-template-columns:56px 1fr;align-items:center;gap:14px;text-align:left;border:1px solid var(--line);padding:14px 16px;min-height:76px;background:#fff;transition:border-color .12s,background .12s}
.opt:hover{border-color:#bdbdbd}
.opt.on{border-color:var(--ink);background:var(--blush)}
.opt svg{width:56px;height:56px;display:block}
.opt b{display:block;font-weight:500;font-size:16px}
.opt small{display:block;font-size:13px;color:var(--muted);margin-top:2px;line-height:1.35}
.glabel{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:24px 0 10px}
.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.chip{border:1px solid var(--line);padding:12px 4px;font-size:14px;text-align:center;background:#fff;min-height:46px}
.chip.on{border-color:var(--ink);background:var(--blush)}
.shapes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.shape{border:1px solid var(--line);padding:12px 4px 10px;text-align:center;background:#fff;font-size:14px}
.shape svg{width:34px;height:52px;margin:0 auto 6px;display:block}
.shape.on{border-color:var(--ink);background:var(--blush)}
.qfoot{display:flex;align-items:center;justify-content:space-between;padding:0 20px 22px;gap:16px}
.back{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:10px 0;font-weight:500}
.back[disabled]{visibility:hidden}
.qfoot .btn{width:auto;flex:1;max-width:260px;padding:16px 24px}
.qfoot .btn[disabled]{background:#cfcfcf;cursor:default}
@media(min-width:700px){
  .qhead{padding:20px 30px 0}.prog{padding:12px 30px 0;top:60px}.qbody{padding:30px 30px 30px}.qfoot{padding:0 30px 26px}
  .qbody h2{font-size:34px}
  .opts.three{grid-template-columns:repeat(3,1fr)}
  .opts.three .opt{grid-template-columns:1fr;justify-items:center;text-align:center;padding:20px 12px 18px;gap:10px}
  .opts.three .opt svg{width:64px;height:64px}
  .shapes{grid-template-columns:repeat(6,1fr)}
}

/* ---------- result ---------- */
.rimg{width:100%;height:210px;object-fit:cover;object-position:center 40%}
.rbody{padding:24px 20px 10px}
.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--pink);font-weight:500}
.rbrand{font-family:var(--serif);font-weight:400;font-size:40px;line-height:1.05;letter-spacing:-.02em;margin-top:6px}
.rbrand small{display:block;font-family:var(--sans);font-size:14px;letter-spacing:0;color:var(--muted);margin-top:4px}
.spec{margin-top:18px;border-top:1px solid var(--line)}
.spec div{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.spec dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500;padding-top:3px}
.spec dd{font-size:16px}
.spec dd .tag{font-size:12px;color:var(--muted)}
.note{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.5}
.fitwhy{color:var(--ink)}
.quotes{margin-top:18px;display:grid;gap:12px}
.quotes blockquote{font-size:13px;line-height:1.5;color:#333;border-left:2px solid var(--blush2);padding-left:12px}
.quotes cite{display:block;font-style:normal;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8a8a8a;margin-top:4px}
.alts{padding:8px 20px 6px}
.alts h3{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:18px 0 4px}
.alt{padding:14px 0;border-bottom:1px solid var(--line)}
.alt:last-child{border-bottom:0}
.alt .n{font-family:var(--serif);font-size:23px;letter-spacing:-.01em}
.alt .n small{font-family:var(--sans);font-size:13px;color:var(--muted);margin-left:6px}
.alt p{font-size:13.5px;color:#333;margin-top:3px}
.alt blockquote{font-size:12.5px;color:#555;margin-top:6px;line-height:1.45}
.alt blockquote cite{font-style:normal;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#8a8a8a}
.method{font-size:11.5px;color:#8a8a8a;line-height:1.5;padding:6px 20px 0}
.rfoot{padding:18px 20px 26px}
.rfoot .btn{background:#fff;color:var(--ink);border:1px solid var(--ink)}
@media(min-width:700px){.rimg{height:250px}.rbody,.alts,.method{padding-left:30px;padding-right:30px}.rfoot{padding:18px 30px 30px}.rbrand{font-size:46px}}

.hero-cta{padding-bottom:20px}
@media(min-width:900px){.hero-cta{padding-bottom:0}}
/* v3b result additions */
.dims{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.dims li{font-size:14px;line-height:1.45}
.alt .dc{font-size:12.5px;color:var(--muted)}
.avoid{padding:4px 20px 6px}
.avoid h3{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:18px 0 6px}
.avoid ul{list-style:none;margin:0;padding:0}
.avoid li{font-size:13.5px;color:#333;padding:9px 0;border-bottom:1px solid var(--line);line-height:1.45}
.avoid li b{font-weight:500;color:var(--ink)}
.avoid p{font-size:13.5px;color:#555}
@media(min-width:700px){.avoid{padding-left:30px;padding-right:30px}}
.alt.has-thumb{display:grid;grid-template-columns:76px 1fr;column-gap:14px;align-items:start}
.alt.has-thumb>*:not(.athumb){grid-column:2}
.athumb{grid-row:1 / span 4;width:76px;height:76px;object-fit:cover;display:block}

.nav{justify-content:flex-end}
/* readability: sturdier strokes, less tight */
h1{font-weight:500;font-optical-sizing:none;font-variation-settings:'opsz' 14;letter-spacing:-.005em;line-height:1.1}
h1 em{font-weight:500}
