/* Large Print Puzzle Club - site styles. Palette: creative/brand/palette.json. Body >= 20px, nothing below 18px. */
@font-face{font-family:"Atkinson Hyperlegible";src:url(/fonts/atkinson-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(/fonts/atkinson-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(/fonts/atkinson-bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/fonts/fraunces-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}

:root{
  --teal:#1D4E5A; --marigold:#F0B03F; --ink:#24211E; --paper:#FBF6EC; --clay:#8B391A; --sage:#E4ECE3; --stone:#CFC6B6;
  --white:#fff; --measure:44rem; --wide:70rem; --radius:14px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Atkinson Hyperlegible",Verdana,Tahoma,sans-serif;font-size:1.25rem;line-height:1.6;overflow-wrap:break-word}
img,svg{max-width:100%;height:auto}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:600;font-variation-settings:"SOFT" 100,"WONK" 0;color:var(--teal);line-height:1.2;margin:0 0 .6em}
h1{font-size:2.375rem}
h2{font-size:1.875rem;margin-top:1.6em}
h3{font-family:"Atkinson Hyperlegible",Verdana,sans-serif;font-size:1.5rem;font-weight:700;font-variation-settings:normal;margin-top:1.3em;color:var(--ink)}
@media(min-width:700px){h1{font-size:2.875rem}h2{font-size:2.125rem}h3{font-size:1.625rem}}
p,ul,ol,table,blockquote,details{margin:0 0 1.1em}
ul,ol{padding-left:1.4em}
li{margin-bottom:.45em}
a{color:var(--teal);text-decoration:underline;text-underline-offset:.15em;text-decoration-thickness:2px}
a:hover{color:var(--clay)}
:focus-visible{outline:4px solid var(--teal);outline-offset:3px;box-shadow:0 0 0 7px var(--marigold);border-radius:4px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.75rem 1rem;z-index:100}
.skip:focus{left:8px;top:8px}
strong{font-weight:700}
.small{font-size:1.125rem}

/* layout */
.wrap{width:100%;max-width:var(--wide);margin:0 auto;padding:0 16px}
.measure{max-width:var(--measure)}
main{display:block}
.band{padding:40px 0}
.band.alt{background:var(--sage)}
.band.teal{background:var(--teal);color:var(--paper)}
.band.teal h2,.band.teal h3{color:var(--paper)}
.band.teal a{color:var(--paper)}
.page{padding:28px 0 56px}
.page .wrap>*{max-width:var(--measure)}
.page .wrap>.table-wrap,.page .wrap>.btn-row,.page .wrap>.cards{max-width:var(--wide)}

/* header */
.site-header{background:var(--white);border-bottom:3px solid var(--stone)}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding-top:12px;padding-bottom:12px}
.brand{display:block;line-height:0;border-radius:6px}
.brand img{height:56px;width:auto;display:block}
.site-nav{display:flex;flex-wrap:wrap;gap:4px 8px}
.site-nav a{display:inline-flex;align-items:center;min-height:48px;padding:6px 12px;text-decoration:none;font-weight:700;border-radius:8px}
.site-nav a:hover,.site-nav a[aria-current="page"]{background:var(--sage);color:var(--teal);text-decoration:underline}
@media(max-width:699px){.brand img{height:44px}}

.crumbs{font-size:1.125rem;padding:14px 0 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 0}
.crumbs li{margin:0}
.crumbs li+li::before{content:"\203A";padding:0 .55em;color:var(--clay);font-weight:700}
.crumbs a{display:inline-block;padding:12px 0}

/* buttons - 48px+ tall, 22px bold */
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin:1.2em 0}
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:56px;padding:12px 26px;font:700 1.375rem/1.25 "Atkinson Hyperlegible",Verdana,sans-serif;border-radius:var(--radius);border:3px solid var(--ink);text-decoration:none;cursor:pointer;max-width:100%}
.btn-primary{background:var(--marigold);color:var(--ink)}
.btn-primary:hover{background:#f5c15f;color:var(--ink)}
.btn-secondary{background:var(--white);color:var(--teal);border-color:var(--teal)}
.btn-secondary:hover{background:var(--sage);color:var(--teal)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
@media(max-width:520px){.btn{width:100%}}

/* hero */
.hero{padding:36px 0 44px;background:linear-gradient(180deg,var(--paper),var(--sage))}
.hero .grid{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:center}
@media(min-width:900px){.hero .grid{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}}
.hero .lede{font-size:1.375rem}
.hero-deco{justify-self:center;display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:14px;background:var(--white);border:3px solid var(--teal);border-radius:var(--radius);width:100%;max-width:340px;position:relative;font:700 1.75rem/1 "Atkinson Hyperlegible",sans-serif}
.hero-deco span{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border:2px solid var(--stone);border-radius:6px;background:var(--paper)}
.hero-deco span.hit{background:var(--marigold);border-color:var(--ink)}
.lead{font-size:1.375rem}

/* disclosure + cards */
.disclosure{background:var(--sage);border:3px solid var(--teal);border-radius:var(--radius);padding:16px 20px;margin:1.2em 0;font-size:1.25rem}
.disclosure p{margin:0 0 .6em}.disclosure p:last-child{margin:0}
.cards{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin:1.4em 0}
@media(min-width:860px){.cards{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.card{background:var(--white);border:3px solid var(--stone);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column}
.card.featured{border-color:var(--teal)}
.card h3{margin-top:0;color:var(--teal);font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:1.875rem}
.card ul{margin-bottom:1em}
.card .btn-row{margin-top:auto}
.price-note{color:var(--clay);font-weight:700}

/* tables */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.2em;border-radius:8px}
table{border-collapse:collapse;width:100%;background:var(--white);font-size:1.25rem}
th,td{border:2px solid var(--stone);padding:10px 14px;text-align:left;vertical-align:top}
thead th{background:var(--teal);color:var(--paper)}

/* FAQ */
.qa{border-top:2px solid var(--stone);padding:6px 0 0;margin:0 0 .4em}
.qa h3{font-size:1.375rem;margin:.7em 0 .3em;color:var(--teal)}
.qa p{margin:0 0 .8em}

/* forms */
form.stack{background:var(--white);border:3px solid var(--teal);border-radius:var(--radius);padding:22px;margin:1.2em 0;max-width:var(--measure)}
label{display:block;font-weight:700;margin-bottom:.3em}
input[type=email]{width:100%;min-height:56px;font:400 1.375rem "Atkinson Hyperlegible",Verdana,sans-serif;padding:10px 14px;border:3px solid var(--ink);border-radius:10px;background:var(--white);color:var(--ink)}
.check{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;margin:1.1em 0}
.check input{width:32px;height:32px;margin:4px 0 0;accent-color:var(--teal)}
.check label{font-weight:400;margin:0}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}

/* footer */
.site-footer{background:var(--teal);color:var(--paper);padding:36px 0;font-size:1.125rem}
.site-footer a{color:var(--paper)}
.site-footer a:hover{color:var(--marigold)}
.site-footer ul{list-style:none;padding:0;margin:1em 0;display:flex;flex-wrap:wrap;gap:0 22px}
.site-footer li{margin:0}
.site-footer li a{display:inline-block;padding:10px 0}
.site-footer p{margin:0 0 .8em}
.site-footer .name{font:600 1.5rem "Fraunces",Georgia,serif}

.notice{border-left:8px solid var(--marigold);background:var(--white);padding:16px 20px;border-radius:0 var(--radius) var(--radius) 0}
@media print{.site-header,.site-footer,.btn-row{display:none}body{font-size:14pt}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* owner tokens that are still waiting on a value stay visible */
mark.token,.token{background:#FFE08A;color:var(--ink);border:2px dashed var(--clay);border-radius:6px;padding:0 .3em;font-weight:700}
.badge{display:inline-block;background:var(--marigold);color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:2px 12px;font:700 1.125rem/1.4 "Atkinson Hyperlegible",sans-serif;vertical-align:middle}
.guarantee{background:var(--white);border:3px solid var(--teal);border-radius:var(--radius);padding:16px 20px;margin:1.4em 0}
.guarantee p{margin:0}
@media(min-width:1040px){.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}}
.card .disclosure{font-size:1.125rem;padding:12px 14px}
.internal-badge{position:fixed;right:8px;bottom:8px;z-index:50;background:var(--ink);color:var(--paper);padding:6px 12px;border-radius:8px;font:700 1.125rem "Atkinson Hyperlegible",sans-serif}
.site-footer .fine{font-size:1.125rem;opacity:.95}
.library li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:12px;font-weight:700}

/* ---- v2.1: compact header, sticky CTA bar, product images, one terms block ---- */
.hdr-join{min-height:48px;padding:6px 20px;font-size:1.25rem}
.m-only{display:none}
.site-nav-min{margin-left:auto;display:flex;gap:16px;align-items:center}
.site-nav.desk{display:none}
.mnav{margin-left:8px}
.mnav summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:48px;padding:6px 18px;font:700 1.25rem "Atkinson Hyperlegible",sans-serif;border:3px solid var(--teal);border-radius:var(--radius);color:var(--teal);background:var(--white)}
.mnav summary::-webkit-details-marker{display:none}
.mnav[open] summary{background:var(--sage)}
.mnav nav{display:flex;flex-direction:column;flex-basis:100%;width:100%;padding:8px 0 4px}
.mnav nav a{display:flex;align-items:center;min-height:52px;padding:6px 8px;font-size:1.375rem;font-weight:700;text-decoration:none;border-bottom:2px solid var(--stone)}
.site-header .wrap{flex-wrap:wrap;gap:8px 12px}
.site-header .brand{margin-right:auto}
.site-header .mnav{display:block}
.site-header .mnav nav{display:flex}
.m-only{display:inline-flex}
@media(min-width:900px){
  .site-nav.desk{display:flex;margin-left:auto;align-items:center}
  .site-nav.desk .hdr-join{margin-left:8px}
  .m-only,.mnav{display:none !important}
}
.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:10px;padding:8px 12px;background:var(--white);border-top:4px solid var(--teal)}
.cta-bar .btn{flex:1;min-height:52px;padding:6px 8px;font-size:1.25rem}
body.has-cta{padding-bottom:80px}
@media(min-width:700px){.cta-bar{display:none}body.has-cta{padding-bottom:0}}
.hero{padding:24px 0 32px}
.hero .lede{font-size:1.3125rem}
.fact-strip{font-size:1.25rem;margin:.6em 0 0}
figure.shot{margin:0;background:var(--white);border:3px solid var(--teal);border-radius:var(--radius);padding:8px;overflow:hidden}
figure.shot img{display:block;width:100%;height:auto;border-radius:6px}
figure.shot figcaption{font-size:1.125rem;padding:8px 4px 2px;line-height:1.4}
.hero-shot{max-width:420px;justify-self:center;width:100%}
.hero-shot.big{max-width:560px}
.inline-shot{max-width:460px;margin:0 0 1.2em}
.shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:1em 0}
.shots.stacked{grid-template-columns:minmax(0,1fr)}
@media(max-width:620px){.shots{grid-template-columns:minmax(0,1fr);}.shots figure.shot{max-width:420px;margin:0 auto}}
@media(min-width:900px){.shots.stacked{grid-template-columns:repeat(3,minmax(0,1fr))}}
.proof{padding-left:1.2em;margin:0}
.plan-strip{font-size:1.375rem;font-weight:700;margin:0 0 1em}
.badge.start{background:var(--sage)}
.card .badge{margin:0 0 .6em;display:inline-block}
.card h3{margin-bottom:.3em}
.card .btn{width:100%}
.card .terms-link{margin:.8em 0 0;font-size:1.125rem}
.terms-block{background:var(--sage);border:3px solid var(--teal);border-radius:var(--radius);padding:16px 20px;margin:1.4em 0}
.terms-block h3{margin-top:0}
.terms-plan p{margin:0 0 .6em}
.terms-plan{border-top:2px solid var(--stone);padding-top:.6em;margin-top:.6em}
.terms-plan:first-of-type{border-top:0;padding-top:0;margin-top:0}
.callout{font-size:1.25rem;margin:0}
.qa h3{font-size:1.375rem}
.site-footer .fine{font-size:1.125rem}

/* compact phone layout (home <= 7,500px) */
body{line-height:1.5}
.band{padding:28px 0}
.hero-shot{max-width:300px}
.shots{grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:8px}
.shots figure.shot{max-width:none !important;padding:4px;border-width:2px}
.shots figure.shot figcaption{font-size:1.125rem;padding:4px 2px 0}
.shots.stacked figure.shot{max-width:none}
@media(min-width:700px){.hero-shot{max-width:420px}.hero-shot.big{max-width:560px}}
.card{padding:18px}
.card li{margin-bottom:.3em}
.site-footer{padding:24px 0}
.site-footer li a{padding:10px 0}

.hero-shot{max-width:250px}
.terms-block{font-size:1.1875rem;line-height:1.45;padding:14px 16px}
.terms-block p{margin:0 0 .5em}
.guarantee{padding:12px 16px;margin:1em 0}
@media(max-width:699px){.band{padding:22px 0}.card{padding:14px}.hero{padding:16px 0 22px}h2{margin-top:.2em}}
@media(min-width:700px){.hero-shot{max-width:440px}.hero-shot.big{max-width:560px}}
.site-header .wrap{flex-wrap:nowrap;align-items:center;gap:10px}
.site-header .brand{flex:1 1 auto;min-width:0}
.site-header .brand img{height:44px;width:auto;max-width:100%}
.mnav{margin-left:0;position:static}
.mnav nav{position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:3px solid var(--stone);padding:8px 16px 12px;z-index:60}
.site-header{position:relative}
.site-header .wrap{position:static}
@media(max-width:380px){.hdr-join{padding:6px 12px}.mnav summary{padding:6px 12px}}
@media(min-width:900px){.site-header .wrap{flex-wrap:wrap}.site-header .brand img{height:56px}}
.hdr-join,.mnav{flex:0 0 auto}
.site-header .brand{flex:1 1 150px}
.site-header .brand img{height:auto;width:100%;max-width:190px;max-height:48px}
@media(min-width:900px){.site-header .brand{flex:0 0 auto}.site-header .brand img{width:auto;max-width:none;max-height:none;height:56px}}
@media(max-width:520px){.hdr-join{width:auto}.cta-bar .btn{width:auto}.site-nav-min .btn{width:auto}}
.brand{display:flex;align-items:center;min-height:48px}

.hdr-free{font-weight:700;text-decoration:none;padding:12px 6px}
.card .badge{align-self:flex-start}

/* v2.2 */
.proof-callout{font:700 1.5rem/1.3 "Atkinson Hyperlegible",sans-serif;color:var(--teal);margin:0 0 .5em;border-left:8px solid var(--marigold);padding:4px 0 4px 12px}
.hero-bullets{margin:.6em 0 0;padding-left:1.2em;font-size:1.25rem}
.card .btn{white-space:nowrap;padding:12px 10px;font-size:1.3125rem}
form.stack .btn{width:100%}
.hero.lp-b{padding:12px 0 18px}
.hero.lp-b h1{font-size:1.875rem;margin-bottom:.3em}
.hero.lp-b .lede{margin:0 0 .4em;font-size:1.25rem}
.hero.lp-b form.stack{padding:14px;margin:.5em 0}
.hero.lp-b .check{margin:.6em 0}
.hero.lp-b label{margin-bottom:.1em}
.hero.lp-b .fact-strip{margin-top:.4em}
@media(min-width:700px){.hero.lp-b h1{font-size:2.5rem}}
/* v2.2 phone density (type size unchanged: body stays 20px) */
@media(max-width:699px){
  body{line-height:1.45}
  li{margin-bottom:.25em}
  p,ul,ol,table{margin-bottom:.8em}
  h1{font-size:2.125rem}
  h2{font-size:1.75rem;margin-bottom:.4em}
  .terms-block{padding:12px 14px}
  .terms-plan{margin-top:.4em;padding-top:.4em}
  .qa h3{margin:.4em 0 .15em}
  .qa p{margin-bottom:.5em}
  .card h3{font-size:1.6875rem}
  .site-footer p{margin-bottom:.5em}
  .site-footer ul{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
}

/* =========================== T-55 (v3): fan hero, icon row, gallery + lightbox, compact cards, collapsed FAQ =========================== */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.band.tight{padding:.9rem 0}
/* header: Join and Menu are the same 48px box, brand never shrinks (text zoom wraps the buttons instead) */
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;padding-top:.5rem;padding-bottom:.5rem}
.site-header .brand{flex:0 0 auto;display:flex;align-items:center;min-height:48px;margin-right:auto}
.site-header .brand img{width:150px;height:auto;max-width:none;max-height:none}
.hdr-join,.mnav summary{box-sizing:border-box;min-height:48px;height:48px;padding:0 1rem;display:inline-flex;align-items:center;justify-content:center;font:700 1.125rem/1 "Atkinson Hyperlegible",Verdana,sans-serif;border-radius:var(--radius);border:3px solid var(--ink);margin:0;white-space:nowrap}
.mnav summary{border-color:var(--teal);color:var(--teal);background:var(--white)}
.mnav{margin:0;flex:0 0 auto;position:static}
.hdr-join{flex:0 0 auto}
.site-nav-min{margin-left:auto}
@media(min-width:900px){.site-header .brand img{width:200px}.site-nav.desk{gap:.15rem}.site-nav.desk a:not(.btn){font-size:1.125rem;padding:.4rem .6rem}}
/* sticky bar: hidden until the hero buttons have scrolled away; wraps instead of cutting text */
.cta-bar{transform:translateY(110%);transition:transform .2s ease;visibility:hidden;flex-wrap:wrap}
.cta-bar.show{transform:none;visibility:visible}
.cta-bar .btn{min-height:48px;padding:.35rem .5rem;font-size:1.125rem;line-height:1.15;flex:1 1 9rem}
body.has-cta{padding-bottom:0}
body.has-cta.cta-on{padding-bottom:5.5rem}
@media(prefers-reduced-motion:reduce){.cta-bar{transition:none}}
/* hero v3 */
.hero.v3{padding:1rem 0 1.4rem}
.hero.v3 h1{font-size:2rem;margin-bottom:.4rem}
.hero.v3 .grid{display:block}
.hero-art{display:flex;justify-content:center;margin:.2rem 0 .6rem}
.fan-img{display:block;height:auto;width:auto;max-width:100%;max-height:300px}
.fan-img.sm{max-height:180px}
.price-line{font-size:1.25rem;margin:.2rem 0 .6rem}
.price-line .price{font:600 2.1rem/1.1 "Fraunces",Georgia,serif;color:var(--teal);margin-right:.4rem}
.hero-ctas{margin:.4rem 0}
.hero-ctas .btn{flex:1 1 14rem}
.terms-seal{display:grid;grid-template-columns:1fr;gap:.5rem;align-items:center;margin:.5rem 0}
.terms-line{margin:0;font-size:1.125rem;color:var(--ink)}
.seal-link{display:flex;gap:.7rem;align-items:center;text-decoration:none;color:var(--ink);font-size:1.125rem;line-height:1.35}
.seal{flex:0 0 auto}
.gift-hint{margin:.4rem 0 0;font-size:1.125rem;background:var(--white);border-left:6px solid var(--marigold);padding:.5rem .8rem;border-radius:0 var(--radius) var(--radius) 0}
@media(min-width:900px){
  .hero.v3 .grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:2rem;align-items:center}
  .hero.v3 .hero-copy{display:contents}
  .hero.v3 h1{grid-column:1;font-size:2.7rem}
  .hero.v3 .hero-art{grid-column:2;grid-row:1 / span 6;margin:0}
  .fan-img{max-height:440px}
  .hero.v3 .hero-copy>*:not(h1):not(.hero-art){grid-column:1}
}
.demo{display:none;width:100%;max-width:440px;height:auto;border-radius:var(--radius);border:3px solid var(--teal);background:var(--paper)}
.hero-visual .demo{display:block}
.hero-visual .fan-wrap{display:none}
@media(max-width:899px){.hero-visual .demo{display:none}.hero-visual .fan-wrap{display:block}}
/* icon row */
.icon-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr));gap:.7rem}
.icon-row li{display:flex;gap:.6rem;align-items:center;background:var(--white);border:2px solid var(--stone);border-radius:var(--radius);padding:.6rem .7rem;margin:0;line-height:1.25;font-weight:700;font-size:1.125rem}
.icon-row .ico{flex:0 0 auto;width:2.4rem;height:2.4rem}
@media(min-width:900px){.icon-row{grid-template-columns:repeat(4,1fr)}}
.icon-row li>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:340px){.icon-row{grid-template-columns:1fr}}
/* true-size crop */
figure.true-size{max-width:24rem;margin:0 auto}
figure.true-size img{width:100%;height:auto}
figure.true-size figcaption{font-size:1.125rem}
/* gallery strip + lightbox */
.gallery{list-style:none;margin:0;padding:.2rem .1rem .6rem;display:flex;gap:.7rem;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.gallery li{flex:0 0 38%;max-width:11rem;scroll-snap-align:start;margin:0}
@media(min-width:700px){.gallery{justify-content:center;overflow:visible}.gallery li{flex:1 1 0;max-width:10rem}}
.g-item{display:block;text-decoration:none;color:var(--ink);background:var(--white);border:3px solid var(--teal);border-radius:var(--radius);padding:.3rem;text-align:center;font-size:1.125rem;font-weight:700;line-height:1.2}
.g-item img{display:block;width:100%;height:auto;border-radius:6px;margin-bottom:.25rem}
.gal-cap{margin:.2rem 0 0;font-size:1.125rem;text-align:center}
.tap-hint{display:block;font-size:1.125rem;color:var(--clay);font-weight:700}
dialog.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh}
dialog.lightbox::backdrop{background:rgba(36,33,30,.88)}
.lb-inner{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;height:100%;padding:.6rem;overflow:auto}
.lb-inner img{display:block;max-width:min(100%,46rem);width:auto;height:auto;max-height:calc(100vh - 6.2rem);background:#fff;border-radius:6px}
.lb-bar{display:flex;gap:.6rem;margin-bottom:.6rem;width:100%;max-width:46rem;justify-content:space-between}
.lb-bar .btn{min-height:48px;padding:.3rem 1rem;font-size:1.125rem}
/* plan cards */
.cards{gap:1rem}
.card{padding:1rem;display:flex;flex-direction:column}
.card h3{font-size:1.6rem;margin:0 0 .1rem}
.card-price{font:600 1.9rem/1.1 "Fraunces",Georgia,serif;color:var(--teal);margin:0 0 .5rem}
.card ul{padding-left:1.15rem;margin:0 0 .6rem}
.card li{margin-bottom:.35rem;line-height:1.35}
.card .btn{width:100%;white-space:normal;font-size:1.1875rem;padding:.7rem .6rem}
.card-seal{display:flex;gap:.5rem;align-items:center;margin:.2rem 0 .6rem;font-size:1.125rem;font-weight:700;color:var(--teal)}
.card-seal .seal{width:3.2rem;height:3.2rem}
.card .badge{margin:0 0 0 .3rem;vertical-align:middle;font-size:1.125rem}
.plan-terms{margin-top:.7rem;border-top:2px solid var(--stone);padding-top:.5rem;font-size:1.125rem}
.plan-terms summary,.faq-item summary{cursor:pointer;font-weight:700;color:var(--teal);min-height:48px;display:flex;align-items:center;padding:.2rem 0;list-style-position:inside}
.plan-terms>div p{margin:0 0 .6rem}
@media(min-width:900px){.cards.three{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}}
/* how it works */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;grid-template-columns:1fr}
.steps li{display:flex;gap:.8rem;align-items:flex-start;margin:0}
.steps .ico{flex:0 0 auto;width:3rem;height:3rem}
.steps h3{margin:0 0 .1rem;font-size:1.3rem}
.steps p{margin:0;font-size:1.125rem}
.email-shot{display:block;width:100%;max-width:20rem;height:auto;margin-top:.4rem;border-radius:8px;border:2px solid var(--stone)}
@media(min-width:900px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps.compact{gap:.7rem}
/* FAQ collapsed */
.faq-item{border-top:2px solid var(--stone);padding:0}
.faq-item:last-of-type{border-bottom:2px solid var(--stone)}
.faq-a{padding:0 0 .5rem}
.faq-a p{margin:0 0 .5rem}
.more{margin:.8rem 0 0}
/* gift band */
.gift-grid{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;align-items:center}
.gift-img{width:100%;height:auto;border-radius:6px;border:2px solid var(--stone)}
.gift-band h2{margin-top:0;font-size:1.5rem}
.gift-band p{margin:0 0 .6rem}
.gift-band .btn{width:100%}
@media(min-width:700px){.gift-grid{grid-template-columns:8rem 1fr}.gift-band .btn{width:auto}}
/* LP B */
.hero.lp-b{padding:.7rem 0 1rem}
.hero.lp-b h1{font-size:1.8rem;margin-bottom:.2rem}
.hero.lp-b .lede{margin:0 0 .3rem}
.fan-sm{display:flex;justify-content:center;margin:.1rem 0 .4rem}
.hero.lp-b form.stack{padding:.9rem;margin:.3rem auto;max-width:34rem}
.hero.lp-b .check{margin:.5rem 0}
.hero.lp-b .check input{width:2rem;height:2rem;border:3px solid var(--ink)}
input[type=checkbox]{accent-color:var(--teal);outline:3px solid var(--ink);outline-offset:0}
.hero.lp-b h1{text-align:center}.hero.lp-b .lede{text-align:center}
/* seo block + footer contact */
.seo-block h2{margin-top:0}
.site-footer .contact{font-size:1.1875rem}
/* 150% text zoom: nothing collapses to 3 words per line */
@media(max-width:480px){.wrap{padding-left:.9rem;padding-right:.9rem}.card{padding:.8rem}.card ul{padding-left:1rem}.terms-block{padding:.7rem}}
.btn{white-space:normal}

.terms-seal{display:flex;gap:.7rem;align-items:center;margin:.5rem 0}
.terms-seal .seal{width:4rem;height:4rem}
.guar-line{margin:.2rem 0 0;font-size:1.125rem;line-height:1.35}
.guar-line a{color:var(--teal);font-weight:700}
@media(max-width:699px){
  .hero.v3 h1{font-size:1.7rem;line-height:1.15}
  .fan-img{max-height:235px}
  .price-line{margin:.1rem 0 .4rem;font-size:1.125rem}
  .price-line .price{font-size:1.8rem}
  .hero.v3 .btn{min-height:3.1rem;padding:.5rem .8rem}
  .hero-ctas{gap:.5rem;margin:.3rem 0}
  .gift-hint{font-size:1.125rem;padding:.4rem .7rem}
}
.hero.lp-b .btn{font-size:1.2rem}
.hero-art{min-width:0}.hero-art picture,.fan-sm picture{display:block;min-width:0;max-width:100%}
.fan-img{object-fit:contain}
.step-h{font-family:"Atkinson Hyperlegible",Verdana,sans-serif;font-size:1.3rem;margin:0 0 .1rem;color:var(--ink)}
.check input{width:2.75rem;height:2.75rem}
.hero.lp-b .check input{width:2.75rem;height:2.75rem}
.check{grid-template-columns:2.75rem 1fr}
.video-sec .demo{display:block;margin:0 auto;max-width:22rem}
@media(min-width:900px){.video-sec{display:none}}
/* When the user's text size is large (em media queries follow the browser's text-size setting), the sticky bar keeps only the main button so it never eats the screen or cuts text */
@media(max-width:22em){.cta-bar .btn-secondary{display:none}.cta-bar .btn{flex-basis:100%}}

/* =========================== T-55b: type floor 18px, FAQ markers, one gift offer, equal-height cards =========================== */
.terms-line,.guar-line{font-size:1.25rem;line-height:1.4}
.gift-hint,.icon-row li,.g-item,.gal-cap,.tap-hint,figure.true-size figcaption,.plan-terms,.plan-terms summary,.faq-item summary,.card-seal,.price-line,.small,.badge,.steps p,.quiet,.fact-strip,.field-error,.guar-strip{font-size:1.125rem}
.price-line .price{font-size:2rem}
.hero.v3 h1{font-size:2rem;line-height:1.15}
@media(min-width:900px){.hero.v3 h1{font-size:2.7rem}}
@media(max-width:699px){.hero.v3 h1{font-size:2rem}.terms-line,.guar-line{font-size:1.25rem}.gift-hint,.icon-row li{font-size:1.125rem}.price-line{font-size:1.125rem}.fan-img{max-height:215px}}
/* FAQ + plan-terms rows: a visible +/- marker, no empty band under closed rows */
.faq-item summary,.plan-terms summary{list-style:none;position:relative;padding:.55rem 2.4rem .55rem 0;min-height:48px;display:flex;align-items:center;cursor:pointer}
.faq-item summary::-webkit-details-marker,.plan-terms summary::-webkit-details-marker{display:none}
.faq-item summary::after,.plan-terms summary::after{content:"+";position:absolute;right:.2rem;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border:2px solid var(--teal);border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 1.4rem/1 "Atkinson Hyperlegible",sans-serif;color:var(--teal);background:var(--white)}
.faq-item[open] summary::after,.plan-terms[open] summary::after{content:"\2212"}
.faq-item{margin:0;border-top:2px solid var(--stone)}
.faq-item:last-of-type{border-bottom:2px solid var(--stone)}
.faq-item:not([open]){padding-bottom:0}
.faq-a{padding:.1rem 0 .7rem}
/* cards: equal height, buttons on one line on desktop */
.cards{align-items:stretch}
.card{height:100%}
.card ul{flex:1 1 auto}
.card-seal{margin-top:auto}
.cards.two{grid-template-columns:minmax(0,1fr)}
@media(min-width:700px){.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:900px){.cards.three{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}}
.card.has-badge{border-color:var(--marigold)}
.card .btn{white-space:normal}
/* icon tiles: one per row on phones */
@media(max-width:480px){.icon-row{grid-template-columns:1fr}.icon-row li{padding:.45rem .7rem}}
/* gift band: stacked on phone, picture tappable */
.gift-grid{grid-template-columns:1fr}
.gift-link{padding:.25rem;max-width:9rem;margin:0 auto 0 0}
.gift-band .btn{width:100%}
@media(min-width:700px){.gift-grid{grid-template-columns:10rem 1fr}.gift-link{max-width:none;margin:0}.gift-band .btn{width:auto}}
.fan-open{display:block;text-decoration:none;border:0;background:none;padding:0;min-width:0}
.fan-open.g-item{border:0;background:none;padding:0}
.guar-strip{display:flex;gap:.8rem;align-items:center}
.guar-strip p{margin:0 0 .4rem}
.guar-strip .seal{flex:0 0 auto;width:3.5rem;height:3.5rem}
/* LP B */
.quiet{margin:.6rem 0 0;font-size:1.125rem}
.free-line{text-align:center;margin:.4rem 0 0}
@media(min-width:900px){.fan-img.sm{max-height:300px}.hero.lp-b h1{font-size:2.7rem}}
/* inline validation in the page's own type */
.field-error{color:#8B391A;font-weight:700;background:#fff;border-left:6px solid #8B391A;padding:.5rem .7rem;margin:.4rem 0 0;border-radius:0 8px 8px 0}
input[aria-invalid=true]{border-color:#8B391A}

@media(max-width:699px){
  .icon-row{gap:.4rem}.icon-row li{padding:.3rem .6rem;min-height:48px}.icon-row .ico{width:2rem;height:2rem}
  .band{padding:1.1rem 0}.band.tight{padding:.7rem 0}
  .guar-strip{gap:.6rem}.guar-strip p{margin:0}
  .gallery{padding-bottom:.3rem}
  .how-h,.steps{gap:.6rem}
}
.card-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.1rem .8rem;margin-bottom:.4rem}
.card-head h3,.card-head .card-price{margin:0}
.field-error{font-size:1.25rem}

/* T-55c: qualifier under the headline; the terms line sits directly under Join, body size, renewal clause bold, set off */
.qualifier{font-size:1.25rem;font-weight:700;margin:.1rem 0 .4rem;color:var(--ink)}
.cta-stack{display:flex;flex-direction:column;gap:.5rem;margin:.4rem 0}
.cta-stack .btn{width:100%}
.terms-line{margin:0;padding:.55rem .8rem;background:var(--white);border:2px solid var(--teal);border-radius:var(--radius);font-size:1.25rem;line-height:1.35;color:var(--ink)}
.terms-line strong{font-weight:700}
@media(min-width:900px){.cta-stack{max-width:30rem}}
figure.true-size{max-width:19rem}
@media(max-width:699px){.fan-img{max-height:190px}}
.card-head .seal{width:2.8rem;height:2.8rem;margin-left:auto;order:3}
.card-head h3{flex:1 1 auto}
.terms-seal{margin:.4rem 0}.terms-seal .seal{width:2.6rem;height:2.6rem}
.guar-line{margin:0}
figure.true-size{max-width:16rem}
@media(max-width:699px){.fan-img{max-height:175px}.gift-hint{margin-top:.3rem}}
.cta-stack .btn,.hero-ctas.cta-stack .btn{flex:0 0 auto}

/* ---- offer v3 (D-40/D-41): tagline, plan picker (monthly pre-selected), per-puzzle line + footnote, upgrade page ---- */
.hdr-tagline{display:none;margin:0;font:700 1.125rem/1.25 "Atkinson Hyperlegible",sans-serif;color:var(--teal);max-width:19rem}
@media(min-width:768px){.hdr-tagline{display:block;flex:0 1 auto;order:2}.site-header .brand{margin-right:0}.site-header .site-nav{margin-left:auto}.site-header .mnav,.site-header .m-only{order:5}}
.tagline-hero{font:700 1.375rem/1.3 "Fraunces",Georgia,serif;color:var(--teal);margin:.1rem 0 .5rem}
.positioning{max-width:46rem;margin:0 auto;text-align:center;font-size:1.3125rem;font-weight:700}
.plan-picker{position:relative}
.plan-picker .plan-radio{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.plan-picker label.plan-card{cursor:pointer;position:relative;border-width:3px;border-color:var(--stone);background:var(--white)}
.plan-picker .plan-radio:focus-visible + label.plan-card, .plan-picker .plan-radio:focus-visible ~ .cards label.plan-card{outline:4px solid var(--ink);outline-offset:3px}
.plan-card .sel-state{display:flex;align-items:center;gap:.6rem;font:700 1.25rem/1.2 "Atkinson Hyperlegible",sans-serif;margin:0 0 .5rem;color:var(--ink)}
.plan-card .sel-state::before{content:"";flex:0 0 1.6rem;width:1.6rem;height:1.6rem;border:3px solid var(--ink);border-radius:50%;background:var(--white);box-sizing:border-box}
.plan-card .sel-on{display:none}
.plan-card .sel-off{display:inline}
#plan-monthly:checked ~ .cards .plan-m, #plan-annual:checked ~ .cards .plan-y{border-color:var(--teal);background:#EFF5F3;box-shadow:inset 0 0 0 4px var(--teal)}
#plan-monthly:checked ~ .cards .plan-m .sel-on, #plan-annual:checked ~ .cards .plan-y .sel-on{display:inline}
#plan-monthly:checked ~ .cards .plan-m .sel-off, #plan-annual:checked ~ .cards .plan-y .sel-off{display:none}
#plan-monthly:checked ~ .cards .plan-m .sel-state::before, #plan-annual:checked ~ .cards .plan-y .sel-state::before{background:var(--teal);box-shadow:inset 0 0 0 4px var(--white)}
.plan-picker .join-row{margin:1rem 0 .4rem}
.plan-picker .join-row .btn{width:100%;max-width:34rem;white-space:normal;font-size:1.375rem}
#plan-annual:checked ~ .join-row .j-monthly, #plan-monthly:checked ~ .join-row .j-annual{display:none}
.plan-picker .join-terms{font-size:1.25rem;line-height:1.4;margin:.4rem 0 0}
.plan-picker .join-terms strong{font-weight:700}
.card .unit-line{font-weight:700;margin:.2rem 0 .4rem}
.card .compare{font-size:1.125rem;margin:.2rem 0 .6rem;color:var(--ink)}
.card .compare a{color:var(--teal)}
.footnote{font-size:1.125rem;line-height:1.45;margin:1rem 0 0;padding:.7rem .9rem;border-left:6px solid var(--stone);background:var(--white);max-width:60rem}
.gift-card{margin-top:1.2rem}
.gift-card .btn{max-width:34rem}
.upgrade-box{border:3px solid var(--teal);background:var(--white);padding:1rem 1.2rem;border-radius:var(--radius)}
.upgrade-box h2{margin-top:0}
.plan-col{display:flex;flex-direction:column;min-width:0}
.plan-col>label.card{flex:1 1 auto}
.plan-col .plan-terms{margin-top:.5rem}
.cards.one{grid-template-columns:minmax(0,1fr);max-width:44rem}
