/* Shared page components for the Foundation and The Fetus Inside.
   Uses each brand's tokens (foundation.css / tfi.css); every class is prefixed p- to stay clear of the home-page styles. */
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
:root[data-lang="en"] .es,:root[data-lang="es"] .en{display:none!important}

/* Page hero */
.p-hero{background:var(--surface);border-bottom:1px solid var(--line)}
.b-tfi .p-hero{background:var(--navy);color:var(--on-navy);border-bottom:0;position:relative;overflow:hidden}
.b-tfi .p-hero::after{content:"";position:absolute;right:-120px;top:-160px;width:420px;height:420px;border-radius:50%;border:1px dashed rgba(217,108,85,.35);pointer-events:none}
.p-hero .wrap{padding-block:44px 48px;display:flex;flex-direction:column;gap:14px;position:relative;z-index:1}
.p-hero h1{font-family:var(--f-display);font-weight:900;font-stretch:80%;font-size:clamp(36px,5.2vw,60px);line-height:.98;letter-spacing:-.01em;text-wrap:balance;margin:0;max-width:22ch}
.b-tfi .p-hero h1{text-transform:uppercase;font-stretch:78%}
.p-hero .lede{max-width:64ch}
.b-tfi .p-hero .lede{color:var(--on-navy-muted)}
.b-tfi .p-hero .eyebrow{color:var(--coral)}
.p-hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.p-crumbs{font-family:var(--f-mono);font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.p-crumbs a{text-decoration:none}.p-crumbs a:hover{color:var(--coral-ink)}
.p-crumbs span.sep{opacity:.6}
.b-tfi .p-crumbs{color:var(--on-navy-muted)}
.b-tfi .p-crumbs a:hover{color:var(--coral)}

/* Sections */
.p-sec{padding-block:clamp(52px,6vw,84px)}
.p-sec.alt{background:var(--surface);border-block:1px solid var(--line)}
.p-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 56px;align-items:end;margin-bottom:32px}
.p-head h2{font-family:var(--f-display);font-size:clamp(26px,3.4vw,38px);font-weight:800;font-stretch:88%;line-height:1.08;margin:8px 0 0;text-wrap:balance}
.p-head p{color:var(--muted);font-size:17px;max-width:62ch;margin:0}
@media (max-width:820px){.p-head{grid-template-columns:1fr}}
.p-prose{max-width:68ch;display:flex;flex-direction:column;gap:14px;font-size:17px}
.p-prose p{margin:0}
.p-prose h3{font-family:var(--f-display);font-size:22px;margin:14px 0 0}
.p-prose ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}

/* Grids and cards */
.p-g2,.p-g3,.p-g4{display:grid;gap:18px}
.p-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.p-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.p-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:980px){.p-g4{grid-template-columns:repeat(2,minmax(0,1fr))}.p-g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.p-g2,.p-g3,.p-g4{grid-template-columns:1fr}}
.p-card{background:var(--surface);border:1px solid var(--line);padding:22px;display:flex;flex-direction:column;gap:10px;min-width:0;text-decoration:none;color:inherit}
a.p-card:hover{border-color:var(--coral)}
.p-card .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.p-card h3{font-family:var(--f-display);font-size:20px;font-weight:700;margin:0;line-height:1.15}
.p-card p{margin:0;font-size:15px;color:var(--muted)}
.p-card ul{margin:0;padding-left:18px;font-size:15px;display:flex;flex-direction:column;gap:4px}
.p-card .go{margin-top:auto;font-family:var(--f-display);font-weight:700;font-size:14px;color:var(--coral-ink)}
.p-card.top{border-top:4px solid var(--pc,var(--coral))}
.p-card.dark{background:var(--navy-2);color:var(--on-navy);border-color:var(--navy-2)}
.p-card.dark p,.p-card.dark .k{color:var(--on-navy-muted)}
.p-card.dark .go{color:var(--coral)}

/* At a glance */
.p-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--ink);margin:0}
.p-facts div{padding:14px 16px 14px 0;border-bottom:1px solid var(--line);min-width:0}
.p-facts dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.p-facts dd{margin:4px 0 0;font-family:var(--f-display);font-weight:600;font-size:16px}
@media (max-width:700px){.p-facts{grid-template-columns:1fr 1fr}}
.p-tbd{display:inline-block;font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border:1px dashed var(--coral-ink);color:var(--coral-ink);border-radius:2px}

/* Module list (curriculum order) */
.p-mods{list-style:none;margin:0;padding:0;counter-reset:m;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.p-mods li{counter-increment:m;display:grid;grid-template-columns:44px 1fr;gap:10px;padding:14px 0;border-top:1px solid var(--line)}
.p-mods li::before{content:counter(m,decimal-leading-zero);font-family:var(--f-mono);font-size:13px;color:var(--coral-ink);padding-top:2px}
.p-mods b{font-family:var(--f-display);font-size:16.5px;display:block}
.p-mods span.d{font-size:14.5px;color:var(--muted)}
@media (max-width:720px){.p-mods{grid-template-columns:1fr}}

/* Process steps (a real sequence) */
.p-steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.p-steps li{counter-increment:s;border-top:3px solid var(--coral);padding-top:14px;display:flex;flex-direction:column;gap:6px}
.p-steps li::before{content:counter(s);font-family:var(--f-display);font-weight:900;font-size:30px;line-height:1;color:var(--coral-ink)}
.p-steps b{font-family:var(--f-display);font-size:17px}
.p-steps span{font-size:15px;color:var(--muted)}

/* Figures */
.p-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.p-stats div{background:var(--surface);padding:22px}
.p-stats b{display:block;font-family:var(--f-display);font-weight:900;font-stretch:78%;font-size:clamp(36px,4.4vw,52px);line-height:1;color:var(--coral-ink);font-variant-numeric:tabular-nums}
.p-stats span{display:block;margin-top:8px;font-size:14.5px;color:var(--muted)}
@media (max-width:820px){.p-stats{grid-template-columns:1fr 1fr}}

/* Forms (prototype: submit is handled in the page) */
.p-form{background:var(--surface);border:1px solid var(--line);padding:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.p-form .full{grid-column:1/-1}
.p-form label{display:flex;flex-direction:column;gap:5px;font-family:var(--f-display);font-weight:600;font-size:13.5px;color:var(--muted)}
.p-form input,.p-form select,.p-form textarea{font:400 15.5px var(--f-body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:10px 12px;width:100%;min-width:0}
.p-form textarea{min-height:110px;resize:vertical}
.p-form [aria-invalid="true"]{border-color:var(--coral-ink);outline:1px solid var(--coral-ink)}
.p-form .check{flex-direction:row;align-items:flex-start;gap:10px;font-family:var(--f-body);font-weight:400;font-size:14.5px;color:var(--ink)}
.p-form .check input{width:auto;margin-top:4px}
.p-form .row{grid-column:1/-1;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.p-form .msg{font-family:var(--f-mono);font-size:12.5px;color:var(--coral-ink);margin:0}
@media (max-width:600px){.p-form{grid-template-columns:1fr}}

/* Notice / callout */
.p-note{border-left:4px solid var(--coral);background:var(--surface);padding:14px 18px;font-size:15px;color:var(--ink)}
.p-note b{font-family:var(--f-display)}
.p-note.gold{border-left-color:#C9A24B}

/* Call-to-action band */
.p-cta{background:var(--navy-2);color:var(--on-navy)}
.p-cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-block:40px}
.p-cta h2{font-family:var(--f-display);font-size:clamp(22px,2.6vw,30px);font-weight:800;margin:0;max-width:30ch;text-wrap:balance}
.p-cta p{color:var(--on-navy-muted);margin:6px 0 0;font-size:15.5px;max-width:56ch}
.p-cta .btns{display:flex;gap:10px;flex-wrap:wrap}
.p-cta .btn-ghost,.p-cta .btn-line{border:1.5px solid var(--on-navy);color:var(--on-navy);background:transparent}

/* FAQ */
.p-faq{border-top:1px solid var(--line)}
.p-faq details{border-bottom:1px solid var(--line);padding:14px 0}
.p-faq summary{cursor:pointer;font-family:var(--f-display);font-weight:700;font-size:17px;list-style-position:outside}
.p-faq details p{margin:10px 0 0;color:var(--muted);max-width:70ch;font-size:15.5px}

/* Tiers */
.p-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.p-tier{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--pc,var(--line));padding:22px;display:flex;flex-direction:column;gap:10px}
.p-tier h3{font-family:var(--f-display);font-size:21px;font-weight:800;margin:0}
.p-tier .for{font-size:14.5px;color:var(--muted);margin:0}
.p-tier ul{margin:0;padding-left:18px;font-size:15px;display:flex;flex-direction:column;gap:5px}
.p-tier .btn{margin-top:auto;align-self:flex-start}
@media (max-width:860px){.p-tiers{grid-template-columns:1fr}}

/* Donation amounts */
.amounts{display:flex;gap:8px;flex-wrap:wrap}
.amounts button{all:unset;cursor:pointer;font-family:var(--f-display);font-weight:700;font-size:16px;padding:10px 18px;border:1.5px solid var(--line);border-radius:3px;font-variant-numeric:tabular-nums}
.amounts button[aria-pressed="true"]{border-color:var(--coral);background:var(--coral-soft);color:var(--coral-ink)}
.amounts button:focus-visible{outline:2px solid var(--coral)}

/* Contact lines */
.p-lines{display:flex;flex-direction:column;gap:10px}
.p-line{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--line);background:var(--surface);padding:12px 16px}
.p-line span{font-size:14.5px;color:var(--muted)}
.p-line code{font-family:var(--f-mono);font-size:15px;color:var(--ink);user-select:all}
.p-line a{font-family:var(--f-display);font-weight:700;font-size:14.5px;color:var(--coral-ink);text-decoration:none}
.p-copy{all:unset;cursor:pointer;font-family:var(--f-mono);font-size:11.5px;border:1px solid var(--line);padding:3px 8px;color:var(--muted)}
.p-copy:hover,.p-copy.done{border-color:var(--coral);color:var(--coral-ink)}

/* Empty state */
.p-empty{border:1px dashed var(--line);padding:28px;text-align:left;color:var(--muted);font-size:15.5px;background:var(--surface)}
.p-empty b{display:block;font-family:var(--f-display);color:var(--ink);font-size:17px;margin-bottom:4px}

/* Sitemap tree */
.p-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.p-map section{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--pc);padding:22px}
.p-map h3{font-family:var(--f-display);font-size:20px;margin:0 0 4px}
.p-map .dom{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.p-map ul{list-style:none;margin:14px 0 0;padding:0}
.p-map ul ul{margin:0 0 4px;padding-left:18px;border-left:1px solid var(--line)}
.p-map li a{display:flex;justify-content:space-between;gap:12px;padding:6px 0;text-decoration:none;font-family:var(--f-display);font-weight:600;font-size:15px}
.p-map li a:hover{color:var(--coral-ink)}
.p-map li a code{font-family:var(--f-mono);font-weight:400;font-size:11.5px;color:var(--muted)}
.p-map .ext{grid-column:1/-1}
@media (max-width:820px){.p-map{grid-template-columns:1fr}}

/* Table */
.p-table{overflow-x:auto;border:1px solid var(--line);background:var(--surface)}
.p-table table{border-collapse:collapse;width:100%;min-width:620px;font-size:15px}
.p-table th,.p-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.p-table th{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500}
.p-table td b{font-family:var(--f-display)}

/* Footer sitemap link */
.p-sitemap-link{color:inherit}

/* Navigation fixes: menu button only on narrow screens; items never wrap */
.menu-btn{display:none}
nav.main .top{white-space:nowrap}
.b-fdn nav.main .top{padding-inline:10px}
.b-tfi nav.main .top{padding-inline:10px}
@media (max-width:1120px){.b-fdn .menu-btn{display:block}}
@media (max-width:1240px){
  .b-tfi .menu-btn{display:block}
  .b-tfi nav.main{position:absolute;left:0;right:0;top:100%;background:var(--navy-2);flex-direction:column;align-items:stretch;padding:8px var(--gut) 20px;max-height:75vh;overflow:auto;display:none;border-bottom:3px solid var(--coral)}
  .b-tfi nav.main.open{display:flex}
  .b-tfi nav.main > ul{flex-direction:column}
  .b-tfi nav.main .top{padding:12px 0;border-bottom:1px solid var(--navy-3)}
  .b-tfi .has-sub > .top::after{display:none}
  .b-tfi .sub{position:static;display:block;box-shadow:none;background:transparent;color:var(--on-navy);border:0;padding:4px 0 8px 12px;min-width:0}
  .b-tfi .sub a em{color:var(--on-navy-muted)}
  .b-tfi .sub a:hover{background:var(--navy-3)}
  .b-tfi nav.main .btn{margin-top:14px;align-self:flex-start}
}
@media (max-width:640px){
  .b-fdn .util .wrap > span:first-child{display:none}
  .b-tfi .util .wrap > a:first-child{display:none}
}

/* ---------- Member sign-in (assets/member.js) ---------- */
.m-session{display:inline-flex;align-items:center;gap:12px}
.m-session.m-pending{visibility:hidden}
.m-out{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;opacity:.85}
.m-out:hover{opacity:1}
.m-out:disabled{opacity:.5;cursor:default}
.m-raw{color:var(--muted)}
.m-wait{min-height:180px}
.p-form [hidden],#m-forms[hidden],#m-welcome[hidden],#m-approval[hidden]{display:none}
.m-profile img{border-radius:50%;object-fit:cover;margin-bottom:10px}
.m-profile dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:12px 0 18px}
.m-profile dt{font-family:var(--f-display);font-weight:600;font-size:13.5px;color:var(--muted)}
.m-profile dd{margin:0}
.m-profile .row,.m-welcome-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.p-form .hint{font-family:var(--f-body);font-weight:400;font-size:13px;color:var(--muted)}

/* ---------- Membership plans (assets/plans.js) ---------- */
.m-price{min-height:2.4em;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:2px 0 4px}
.m-price b{font-family:var(--f-display);font-size:30px;font-weight:800;color:var(--ink)}
.m-price small{font-size:14px;color:var(--muted)}
.m-price .m-fee{flex-basis:100%}
.m-wait-line{display:block;min-height:1.6em}
.m-cta{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.p-tier .m-cta .btn{margin-top:0}
.m-more{font-size:14.5px}
#plans-error{margin-top:14px;font-size:14px;color:var(--coral-ink)}
#plans-error:empty{display:none}
#acct-plan{margin-top:18px}

/* ---------- Launch announcement (12 Nov 2026) ---------- */
.launch-strip{background:#D96C55;color:#0B1730;font-family:var(--f-display,Archivo,system-ui,sans-serif)}
.launch-strip .wrap{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;padding-block:11px;font-size:14.5px;line-height:1.35}
.launch-strip .ls-k{font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:12px;background:#0B1730;color:#fff;padding:4px 9px}
.launch-strip .ls-t{flex:1 1 320px}
.launch-strip .ls-cta{font-weight:800;color:#0B1730;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.launch-strip .ls-cta:hover{color:#fff}
.launch-card{border-top:4px solid var(--coral)}
.launch-card .lc-when{font-family:var(--f-display);font-weight:700;font-size:18px;margin:0}
.launch-card .lc-case{font-family:var(--f-display);font-weight:700;font-size:16px;color:var(--coral-ink);margin:0}
.launch-card .lc-times{font-size:14px;color:var(--muted);margin:0}
.launch-card .btn{align-self:flex-start}
.hero-card .hc-cta{margin-top:18px;display:inline-flex}
