/* Core site wireframe. Own CSS, system fonts, no external requests. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:#222;background:#fff;overflow-x:hidden}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 16px}
h1,h2,h3,h4,p,ul,figure{margin:0}
ul{padding:0;list-style:none}
a{color:inherit}
.box{background:#d9d9d9;border:1px dashed #9a9a9a;color:#555;font-size:13px;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px;min-height:40px;text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 20px;background:#555;color:#fff;font-weight:600;font-size:15px;border-radius:4px;text-align:center;width:100%;text-decoration:none}
.btn.alt{background:#fff;color:#444;border:2px solid #777}
button.btn{border:0;font-family:inherit;cursor:pointer}
.ctas{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.link{display:inline-block;margin-top:16px;text-decoration:underline;color:#555}
.sh{font-size:24px;line-height:1.2;margin-bottom:20px}

/* intro band */
.intro{background:#222;color:#fff;padding:24px 0}
.intro .it{font-size:22px;line-height:1.25;font-weight:700;margin-bottom:10px}
.intro p{font-size:15px;color:#ccc;max-width:80ch}
.intro .it{color:#fff}
.intro .pagelinks{font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#fff;margin-bottom:12px;max-width:none}
.intro .pagelinks a{color:#ffd54a}
.intro .key{margin-top:10px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#fff;max-width:none}

/* section label */
.sec{border-bottom:2px solid #bbb;padding-bottom:40px}
.sec .label{background:#fff3b0;border:1px solid #d9c24a;padding:10px 12px;margin:16px 0 20px;font-size:13px;line-height:1.4}
.lh{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:4px}
.ln{background:#222;color:#fff;border-radius:3px;padding:0 6px;font-weight:700}
.pill{background:#fff;border:1px solid #c9b33c;border-radius:10px;padding:0 8px;font-size:12px}
.pill.req{background:#dff0d8;border-color:#8bbf7a}
.pill.opt{background:#f0f0f0;border-color:#aaa}
.lr{margin-top:6px}
.ll .lay{display:none;margin-top:6px;color:#444}
.ll .l360{display:block}

/* section library frames */
.vframe{padding-bottom:28px;margin-bottom:8px;border-bottom:1px dashed #aaa}
.vframe:last-child{border-bottom:0;margin-bottom:0}
.vlabel{margin:6px 0 14px;font-size:13px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.vpill{background:#222;color:#fff;border-radius:10px;padding:1px 10px;font-weight:700;font-size:12px}
.vpill.rec{background:#2e7d32}
.vnote{color:#444;flex:1 1 260px}

/* image placeholders: real figure + img, the image fills the gray box */
.fig{position:relative;display:block;background:#d9d9d9;border:1px dashed #9a9a9a;min-height:40px}
.fig img{position:absolute;inset:0;width:100%;height:100%;display:block}
.fig.logo{width:120px;height:44px}
.fig.icon{width:56px;height:56px;min-height:0}
.fig.lg{min-height:44px}
.fig.tphoto{height:90px;margin-bottom:8px}
.fig.exlogo{height:80px;width:160px}
.fig.photo{height:220px}

/* ===== generic section grid: text block, media block, cta block ===== */
.sv{--tb:minmax(0,1fr) minmax(0,1fr);--bt:minmax(0,1fr) minmax(0,1fr);display:grid;gap:20px;grid-template-columns:minmax(0,1fr);grid-template-areas:"text" "body" "cta";align-items:start}
.sv.nocta{grid-template-areas:"text" "body"}
.sv-text{grid-area:text;min-width:0}
.sv-body{grid-area:body;min-width:0}
.sv-cta{grid-area:cta;min-width:0}
.sv-hero{--tb:minmax(0,55fr) minmax(0,45fr);--bt:minmax(0,45fr) minmax(0,55fr)}
.sv-value-stack,.sv-value-proposition,.sv-plan,.sv-packages-pricing{--tb:minmax(0,1fr) minmax(0,2fr);--bt:minmax(0,2fr) minmax(0,1fr)}
.sv-explanatory-paragraph{--tb:minmax(0,3fr) minmax(0,1fr);--bt:minmax(0,1fr) minmax(0,3fr);grid-template-areas:"body" "text"}
.sv-failure-reminder{--tb:minmax(0,2fr) minmax(0,1fr);--bt:minmax(0,1fr) minmax(0,2fr)}
.sv-hero .sv-text{display:flex;flex-direction:column;gap:10px}
.sv-hero .ctas{margin-top:10px}
.h1{font-size:14px;font-weight:600;color:#555}
.h2{font-size:30px;line-height:1.15;font-weight:700}
.h3{font-size:16px;font-weight:400;color:#555}

/* centered variant: short lines and headings centered, lists and long text stay left */
.sv[data-variant=center] .sv-text,.sv[data-variant=center] .sv-cta,.sv[data-variant=center] .short,.sv[data-variant=center] .sh{text-align:center}
.sv[data-variant=center] .long{max-width:640px;margin-left:auto;margin-right:auto;text-align:left}
.long{text-align:left}

/* cards */
.cards3{display:grid;grid-template-columns:1fr;gap:16px}
.card{border:1px solid #bbb;background:#f6f6f6;padding:16px;display:grid;grid-template-columns:56px 1fr;column-gap:12px;align-items:start}
.card .fig.icon{grid-row:span 2}
.card .ct,.step .ct{font-size:16px;font-weight:700}
.card .cs,.step .cs{color:#555;font-size:14px}
.pk .card{display:block}
.pk .price{height:56px;margin:10px 0}

/* stakes */
.sv.sv-stakes{grid-template-areas:none}
.sv-stakes .sv-cta{grid-area:auto}
.stakes-x{}
.sv-stakes .lead{font-size:18px;font-weight:600}
.sv-stakes .list{display:flex;flex-direction:column;gap:12px}
.sv-stakes .list li{border-left:4px solid #999;padding-left:12px}
.sv-stakes .st-end{display:flex;flex-direction:column;gap:12px}
.sv-stakes .philo{font-size:22px;font-weight:700;line-height:1.25}
.sv-stakes[data-variant=center] .list{max-width:420px;margin:0 auto;width:100%}

/* guide */
.sv.sv-guide{grid-template-areas:none}
.sv-guide .sv-cta{grid-area:auto}
.g-stmts p{margin-bottom:12px}
.g-tests{display:grid;gap:16px;min-width:0}
.quote{font-style:italic;color:#555}
.g-logos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;min-width:0}

/* plan */
.steps{display:grid;gap:20px}
.step{display:grid;grid-template-columns:36px 56px minmax(0,1fr);gap:12px;align-items:start}
.num{width:36px;height:36px;border-radius:50%;background:#555;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.step .ctas{flex-wrap:wrap}

/* explanatory */
.one{font-weight:600;margin-bottom:10px}
.narr-p{display:none}
.narr-d summary{cursor:pointer;color:#555;text-decoration:underline}
.narr-d p{margin-top:8px}

/* lead magnet */
.lm-f{display:flex;flex-direction:column;gap:12px;max-width:520px}
.sv[data-variant=center] .lm-f{margin:0 auto}
.lm-f .btn{width:100%}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}
.field>.tag{margin-bottom:4px}
.inp{height:48px;justify-content:flex-start;background:#eee;border-style:solid;width:100%;font:13px system-ui,sans-serif;text-align:left;display:block}
.err{font-size:12px;color:#8a3b3b;margin-top:4px}

/* failure reminder */
.s-failure-reminder{background:#eee}
.sv-failure-reminder .sv-body{align-self:center}
.sv-failure-reminder .sv-text .sh{margin-bottom:10px}

/* nav */
.s-nav{padding-bottom:0}
.nav{background:#eee;border-top:1px solid #ccc;border-bottom:1px solid #ccc;padding:12px 0}
.nav-in{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.nav .phone{margin-left:auto;width:150px}
.menu-nav{width:100%}
.menu{display:flex;flex-wrap:wrap;gap:8px 16px;color:#444;font-size:14px}
.menu a{text-decoration:underline}
.nav[data-variant=center] .nav-in{flex-direction:column;align-items:center}
.nav[data-variant=center] .phone{margin:0}
.nav[data-variant=center] .menu-nav{width:auto}
.nav[data-variant=center] .menu{justify-content:center}
.nav[data-variant=center] .btn{width:auto;min-width:220px}

/* footer */
.s-footer{padding-bottom:0;border-bottom:0}
.ft{background:#e4e4e4;padding:24px 0;border-top:1px solid #bbb}
.ft-in{display:flex;flex-direction:column;gap:24px}
.fg{display:flex;flex-direction:column;gap:6px;font-size:14px}
.fg ul{display:flex;flex-direction:column;gap:6px}
.fg a{text-decoration:underline;color:#555}
.fh{font-size:14px;font-weight:700}
.soc{display:flex;gap:8px;flex-wrap:wrap}
.soc .s{min-width:64px;min-height:32px;font-size:11px}
.copy{font-size:13px;color:#555}
.ft[data-variant=center] .ft-in{display:grid;grid-template-columns:auto auto;justify-content:center;justify-items:center;column-gap:48px}
.ft[data-variant=center] .fig.logo,.ft[data-variant=center] .soc,.ft[data-variant=center] .copy{grid-column:1/-1}
.ft[data-variant=center] .soc{justify-content:center}
.ft[data-variant=center] .copy{text-align:center}
.ft[data-variant=center] .fg{align-items:flex-start}

/* tag badges: small dark monospace pills naming the real HTML element.
   Text comes from the element selector itself, so it cannot disagree with the tag.
   IMG and INPUT are void elements (no pseudo-element), so each carries a span.tag beside it. */
.tag,
main h1::before,main h2::before,main h3::before,main h4::before,main p::before,main ul::before,main li::before,
main a::before,main button::before,main nav::before,main form::before,main label::before,main header::before,main footer::before{
 display:inline-block;font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#111;color:#fff;
 border:1px solid #fff;border-radius:3px;padding:3px 5px;margin:0 6px 0 0;vertical-align:middle;
 text-transform:none;letter-spacing:0;text-decoration:none;font-style:normal;font-weight:600;white-space:nowrap}
main h1::before{content:"H1"}main h2::before{content:"H2"}main h3::before{content:"H3"}main h4::before{content:"H4"}
main p::before{content:"P"}main ul::before{content:"UL"}main li::before{content:"LI"}main a::before{content:"A"}
main button::before{content:"BUTTON"}main nav::before{content:"NAV"}main form::before{content:"FORM"}
main label::before{content:"LABEL"}main header::before{content:"HEADER"}main footer::before{content:"FOOTER"}
main ul::before{align-self:flex-start}
main form::before{align-self:flex-start}
.fig .tag{position:absolute;top:2px;left:2px;margin:0;z-index:1}
header.nav::before,footer.ft::before{margin-left:16px}

@media (min-width:390px){
 .ll .l360{display:none}.ll .l390{display:block}
}

@media (min-width:768px){
 .ll .l390{display:none}.ll .l768{display:block}
 .wrap{padding:0 32px}
 header.nav::before,footer.ft::before{margin-left:32px}
 .intro .it{font-size:28px}
 .btn{width:auto}
 .lm-f .btn{width:100%}
 .ctas{flex-direction:row;align-items:center}
 .h2{font-size:34px}
 .fig.photo{height:320px}
 .fig.exlogo{width:100%;height:120px}

 /* generic: Left = text then media, Right = media then text, Center = one column */
 .sv[data-variant=left]{grid-template-columns:var(--tb);grid-template-areas:"text body" ". cta";column-gap:32px}
 .sv[data-variant=right]{grid-template-columns:var(--bt);grid-template-areas:"body text" "cta .";column-gap:32px}
 .sv.nocta[data-variant=left]{grid-template-areas:"text body"}
 .sv.nocta[data-variant=right]{grid-template-areas:"body text"}
 .sv[data-variant=center]{grid-template-columns:minmax(0,1fr);grid-template-areas:"text" "body" "cta"}
 .sv.nocta[data-variant=center]{grid-template-areas:"text" "body"}
 .sv-explanatory-paragraph[data-variant=center]{grid-template-areas:"text" "body"}
 .sv[data-variant=center] .ctas{justify-content:center}
 .sv[data-variant=center] .sv-body .fig.photo{max-width:720px;margin:0 auto;height:280px}
 .sv[data-variant=center] .sv-body .fig.exlogo{width:200px;margin:0 auto}
 .sv-failure-reminder[data-variant=center] .sv-body{justify-self:center}
 .sv-failure-reminder[data-variant=left] .sv-body{justify-self:end}

 /* card sections: Left/Right stack the cards beside the heading, Center shows three in a row */
 .sv[data-variant=center] .cards3{grid-template-columns:repeat(3,minmax(0,1fr))}
 .sv[data-variant=center] .card{display:block;text-align:center}
 .sv[data-variant=center] .card .fig.icon{margin:0 auto 10px}
 .sv[data-variant=center] .card .cs{text-align:center}
 .sv[data-variant=center] .pk .card .price{margin-left:auto;margin-right:auto}
 .sv[data-variant=right] .sv-text{text-align:left}

 /* plan */
 .sv-plan[data-variant=center] .steps{max-width:640px;margin:0 auto}
 .sv-plan[data-variant=center] .step{text-align:left}

 /* stakes and guide: one readable column at 768 */
 .sv.sv-stakes[data-variant]{grid-template-columns:minmax(0,664px);grid-template-areas:none}
 .sv.sv-stakes[data-variant=left]{justify-content:start}
 .sv.sv-stakes[data-variant=right]{justify-content:end}
 .sv.sv-stakes[data-variant=center]{justify-content:center}
 .sv-stakes[data-variant=center] .list{width:100%}
 .sv.sv-guide[data-variant]{grid-template-columns:minmax(0,1fr);grid-template-areas:none}
 .g-stmts{max-width:600px}
 .sv-guide[data-variant=right] .g-stmts{margin-left:auto}
 .sv-guide[data-variant=center] .g-stmts{margin:0 auto}
 .g-tests{grid-template-columns:1fr 1fr}
 .g-logos{grid-template-columns:repeat(5,1fr)}

 /* explanatory, lead magnet */
 .sv-lead-magnet[data-variant=right] .lm-f{margin-left:auto}

 /* nav */
 .nav-in .menu-nav{order:3;width:auto;flex:1}
 .nav-in .btn{order:4}
 .nav .logo{flex:0 0 140px}
 .nav[data-variant=right] .nav-in{flex-direction:row-reverse}
 .nav[data-variant=right] .phone{margin-left:0;margin-right:auto}
 .nav[data-variant=center] .nav-in .menu-nav{flex:0 0 auto}

 /* footer */
 .ft[data-variant=left] .ft-in,.ft[data-variant=right] .ft-in{display:grid;grid-template-columns:1fr 1fr;gap:20px}
 .ft[data-variant=left] .fig.logo,.ft[data-variant=right] .fig.logo{grid-column:1/-1}
 .ft[data-variant=right] .fig.logo{justify-self:end}
 .ft[data-variant=left] .soc{grid-column:1}.ft[data-variant=left] .copy{grid-column:2;text-align:right;align-self:center}
 .ft[data-variant=right] .soc{grid-column:2;justify-self:end}.ft[data-variant=right] .copy{grid-column:1;grid-row:3;text-align:left;align-self:center}
 .ft[data-variant=right] .g1{grid-row:2;grid-column:2;justify-self:end}
 .ft[data-variant=right] .g2{grid-row:2;grid-column:1}
 .ft[data-variant=right] .soc{grid-row:3}
}

@media (min-width:1024px){
 .ll .l768{display:none}.ll .l1024{display:block}
 .h2{font-size:40px}
 .sv-hero{--tb:minmax(0,1fr) minmax(0,1fr);--bt:minmax(0,1fr) minmax(0,1fr)}
 .narr-d{display:none}.narr-p{display:block}
 .sv-plan[data-variant=center] .steps{max-width:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
 .sv-plan[data-variant=center] .step{grid-template-columns:1fr;align-content:start}

 /* stakes: Left = statement left, list right; Right = mirrored; Center = one column */
 .sv.sv-stakes[data-variant=left],.sv.sv-stakes[data-variant=right]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);justify-content:normal;column-gap:40px}
 .sv-stakes[data-variant=left] .lead,.sv-stakes[data-variant=left] .st-end{grid-column:1}
 .sv-stakes[data-variant=left] .lead{grid-row:1}.sv-stakes[data-variant=left] .st-end{grid-row:2}
 .sv-stakes[data-variant=left] .list{grid-column:2;grid-row:1/3}
 .sv-stakes[data-variant=right] .lead,.sv-stakes[data-variant=right] .st-end{grid-column:2}
 .sv-stakes[data-variant=right] .lead{grid-row:1}.sv-stakes[data-variant=right] .st-end{grid-row:2}
 .sv-stakes[data-variant=right] .list{grid-column:1;grid-row:1/3}
 .sv-stakes[data-variant=left] .sv-cta,.sv-stakes[data-variant=right] .sv-cta{grid-column:1/-1;grid-row:3}
 .sv.sv-stakes[data-variant=center]{grid-template-columns:minmax(0,640px)}

 /* guide */
 .sv.sv-guide[data-variant=left],.sv.sv-guide[data-variant=right]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px}
 .sv-guide[data-variant=left] .g-stmts{grid-column:1;grid-row:1;margin:0}
 .sv-guide[data-variant=left] .g-tests{grid-column:2;grid-row:1}
 .sv-guide[data-variant=right] .g-stmts{grid-column:2;grid-row:1;margin:0}
 .sv-guide[data-variant=right] .g-tests{grid-column:1;grid-row:1}
 .sv-guide[data-variant=left] .g-logos,.sv-guide[data-variant=right] .g-logos{grid-column:1/-1;grid-row:2}
 .sv-guide[data-variant=left] .sv-cta,.sv-guide[data-variant=right] .sv-cta{grid-column:1/-1;grid-row:3}

 /* nav: one row for Left and Right */
 .nav-in{flex-wrap:nowrap}
 .nav .phone{order:5;margin-left:0;flex:0 0 150px}
 .nav .logo{flex:0 0 120px}
 .nav-in .menu-nav{order:2;min-width:0;flex:1}
 .nav-in .menu{justify-content:center}
 .nav-in .btn{order:6;flex:0 0 auto}
 .nav[data-variant=right] .phone{margin-right:0}
 .nav[data-variant=center] .nav-in{flex-wrap:wrap}
 .nav[data-variant=center] .nav-in .menu-nav{flex:0 0 auto}

 /* footer */
 .ft[data-variant=left] .ft-in{grid-template-columns:140px 1fr 1fr auto;align-items:start}
 .ft[data-variant=left] .fig.logo{grid-column:1;grid-row:1}.ft[data-variant=left] .g1{grid-column:2;grid-row:1}.ft[data-variant=left] .g2{grid-column:3;grid-row:1}
 .ft[data-variant=left] .soc{grid-column:4;grid-row:1}.ft[data-variant=left] .copy{grid-column:1/-1;grid-row:2;text-align:left}
 .ft[data-variant=right] .ft-in{grid-template-columns:auto 1fr 1fr 140px;align-items:start}
 .ft[data-variant=right] .fig.logo{grid-column:4;grid-row:1;justify-self:end}
 .ft[data-variant=right] .g1{grid-column:3;grid-row:1;justify-self:start}
 .ft[data-variant=right] .g2{grid-column:2;grid-row:1}
 .ft[data-variant=right] .soc{grid-column:1;grid-row:1;justify-self:start}
 .ft[data-variant=right] .copy{grid-column:1/-1;grid-row:2;text-align:right}
}

@media (min-width:1280px){
 .ll .l1024{display:none}.ll .l1280{display:block}
 header.nav::before,footer.ft::before{margin-left:calc((100% - 1200px)/2 + 32px)}
 .ft[data-variant=left] .copy,.ft[data-variant=right] .copy{text-align:center}
}
@media (min-width:1440px){
 .ll .l1280{display:none}.ll .l1440{display:block}
}
