/* Wrappers preserve the mobile paywall's existing flow and spacing. */
.pw-overview,.pw-purchase{display:contents}

/* Wide layouts use document scrolling, including on touch-screen tablets.
   Keep these overrides after the mobile styles and short-screen adjustments. */
@media (min-width:768px){
  body{background:var(--bg)!important}
  body[data-ground="dark"]{--ink:#FFF3E0;--ink-muted:rgba(255,243,224,.75)}
  body[data-ground="green"]{--ink:#FFFFFD;--ink-muted:rgba(255,255,253,.75)}
  .page,body:not([data-screen="landing"]) .page{width:100%;min-height:100dvh;height:auto;padding:0;overflow:visible}
  .dtop,body:not([data-screen="landing"]) .dtop{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;width:100%;max-width:1200px;height:88px;padding:24px 40px;border-bottom:1px solid var(--track)}
  .dtop img{height:32px}
  .dtop span{font-size:13px;font-weight:600;color:var(--ink-muted)}
  .page .frame,.page .frame[data-screen="landing"],.page .frame[data-screen="paywall"],.page .frame[data-screen="why"]{flex:1 0 auto;width:100%;max-width:none;min-height:0;height:auto;border:0;border-radius:0;box-shadow:none;overflow:visible}

  .topbar,.topbar.simple,.frame[data-screen="paywall"] .topbar{position:relative;top:auto;width:100%;max-width:1200px;height:72px;margin:0 auto;padding:12px 40px;gap:24px;background:transparent}
  .back{width:44px;height:44px;border:1px solid var(--track)}
  .prog{max-width:640px;margin:0 auto;gap:8px}
  .spacer{width:44px}
  .stage{flex:1 0 auto;width:100%;max-width:1200px;margin:0 auto;overflow:visible;overscroll-behavior:auto;gap:24px;padding:32px 40px 48px}
  .frame:has(.foot) .stage,.frame[data-screen="email"]:has(.foot) .stage,.frame[data-screen="name"]:has(.foot) .stage,.frame[data-screen="why"]:has(.foot) .stage{padding-bottom:48px}
  /* Anchor content below navigation instead of sharing free space above/below. */
  .stage>:first-child{margin-top:0}
  .stage>:last-child{margin-bottom:0}
  .foot,.frame[data-screen="why"] .foot{position:sticky;bottom:0;left:auto;right:auto;flex:0 0 auto;width:100%;gap:12px;padding:20px 40px max(24px,env(safe-area-inset-bottom,0px));border-top:1px solid var(--track);background:var(--bg)}
  .cta,.frame[data-screen="why"] .cta{width:320px;height:60px;font-size:18px}
  .t-hero{max-width:800px;font-size:56px;line-height:1.15;letter-spacing:-1.5px}
  .t-q,.t-edu{max-width:720px;font-size:40px;line-height:1.2;letter-spacing:-1px}
  .sub{max-width:560px;font-size:17px;line-height:26px}
  .opts,.scale{max-width:560px;gap:12px}
  .chip{min-height:68px;padding:16px 24px;border-radius:18px}
  .scale .row{gap:12px}
  .scale .row button{height:72px}
  .card{max-width:560px;padding:24px}
  .legalline,.optin{max-width:480px}
  .frame .form-field{max-width:480px!important}
  .input{height:68px;border-radius:18px}

  /* A full-width opening with a readable, deliberately bounded headline. */
  body[data-screen="landing"] .page{height:auto;min-height:100dvh}
  .frame[data-screen="landing"] .stage{justify-content:flex-start;padding:64px 40px;gap:0}
  .landing-hero{display:none}
  .landing-copy{flex:0 0 auto;justify-content:center;gap:28px;max-width:880px;padding:0;background:transparent}
  .landing-title{max-width:800px;font-size:clamp(48px,5vw,68px);line-height:1.08;letter-spacing:-2px}
  .landing-copy .sub{max-width:500px;font-size:20px;line-height:30px}
  .landing-copy .cta{width:320px;height:64px;margin-top:8px}
  .landing-copy .trust{gap:12px 24px;max-width:740px;margin-top:12px}
  body[data-screen="landing"] .legal,
  body[data-screen="paywall"] .legal{padding:20px 40px 24px}

  /* Credentials and photography share the available horizontal space. */
  .frame[data-screen="why"] .stage{padding:32px 40px 48px}
  .frame[data-screen="why"] .stage>.why-content{margin-top:0;margin-bottom:0}
  .why-content{max-width:1040px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 40px;align-items:center}
  .why-lead{grid-column:1;grid-row:1;text-align:left}
  .why-lead h2{font-size:clamp(36px,3.6vw,48px);line-height:1.15;letter-spacing:-1px}
  .why-lead p{margin-top:20px;font-size:17px;line-height:26px}
  .why-hero{grid-column:2;grid-row:1 / 4;width:100%;height:100%;min-height:340px;max-height:460px;border-radius:28px}
  .why-creds{grid-column:1;grid-row:2;gap:12px}
  .why-creds>div{gap:10px;padding:20px 10px;font-size:12px;line-height:18px}
  .why-creds .ic{width:40px;height:40px}
  .why-ce{grid-column:1;grid-row:3;font-size:12px;line-height:18px;text-align:left}
  .frame[data-screen="why"] .foot{flex-direction:column;justify-content:center;align-items:center;gap:16px}
  .why-proof .faces{width:81px;height:33px}
  .why-proof .who span{font-size:13px;line-height:18px}
  .why-proof .who b{font-size:16px;line-height:21px}

  /* Let the profile chart and facts sit together instead of stacking tall. */
  .starting-overview{max-width:960px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px;padding:32px}
  .starting-overview>h3,.starting-overview>.legend{grid-column:1}
  .starting-overview>.chart{grid-column:1;grid-row:3;padding-bottom:0}
  .starting-point .chart svg{max-width:360px}
  .starting-facts{grid-column:2;grid-row:1 / 4;align-content:center;gap:24px;margin:0;padding-left:32px;border-left:1px solid #E5EAF2}
  .starting-forward{grid-column:1 / -1;margin-top:28px;padding:20px 24px}
  .plan-recap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:start;align-items:center;gap:24px 56px;max-width:1040px;text-align:left}
  .plan-recap>.focusic{grid-column:1;grid-row:1;margin:0}
  .plan-recap>.t-edu{grid-column:1;grid-row:2}
  .plan-recap>.sub{grid-column:1;grid-row:3;margin:0}
  .plan-recap>.card{grid-column:2;grid-row:1 / 4;max-width:none;margin:0;padding:32px;background:#F5F7FB;border:0;border-radius:24px;gap:24px}

  /* The offer becomes a page: overview left, subscription choices right. */
  .stage.top.pw{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:start;align-items:start;gap:32px 48px;max-width:1120px;padding:16px 40px 64px}
  .pw-offer{grid-column:1 / -1;margin:0;padding:14px 20px;border-radius:16px}
  .pw-title{grid-column:1 / -1;margin:0;font-size:44px;line-height:1.15;letter-spacing:-1px}
  .pw-overview,.pw-purchase{display:block;min-width:0;margin:0}
  .pw-overview{align-self:center}
  .pw-graph{margin:0}
  .pw-purchase{padding:24px;border:1px solid var(--line);border-radius:24px;background:#fff}
  .pw-purchase .pw-plans{margin-top:12px}
  .pw-purchase .quiet{display:block;margin:8px auto 0}
  .pw-incl{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 24px;margin:16px 0 0;padding:32px;background:#F5F7FB;border-radius:28px}
  .pw-incl>h3,.pw-incl-intro{grid-column:1 / -1;margin:0}
  .pw-incl h3{font-size:28px;line-height:36px}
  .pw-incl-intro{font-size:15px;line-height:22px}
  .pw-program{padding:24px}
  .pw-program-overview{grid-template-columns:minmax(0,1fr) minmax(104px,148px)}
  .pw-program h4{font-size:24px;line-height:32px}
  .pw-program p{font-size:14px;line-height:21px}
  .pw-practice{margin:0}
  .pw-feature-card{height:100%;min-height:250px}
  .pw-checkin{margin:0;align-self:center}
  .pw-incl>.pw-cta{align-self:center;justify-self:center;max-width:360px;margin:0}
  .sheet{max-width:520px}
  .email-confirmation{max-width:440px}
}

/* Tablet widths still get a real page, with simpler columns where needed. */
@media (min-width:1024px){
  .frame[data-screen="room"] .opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:960px;gap:16px}
  .frame[data-screen="room"] .chip{min-height:88px}
}

@media (min-width:768px) and (max-width:1023px){
  .dtop,body:not([data-screen="landing"]) .dtop{padding-left:32px;padding-right:32px}
  .why-content{gap:20px 28px}
  .why-creds>div{padding:16px 8px}
  .starting-overview{column-gap:24px;padding:24px}
  .starting-facts{padding-left:24px}
  .stage.top.pw{gap:28px;grid-template-columns:minmax(0,1fr);max-width:760px}
  .pw-overview{max-width:520px;width:100%;justify-self:center}
  .pw-incl{padding:24px;grid-template-columns:minmax(0,1fr)}
  .pw-practice{min-height:280px}
}

@media (min-width:768px) and (hover:hover){
  .chip:hover{border-color:var(--green)}
  .cta:not(:disabled):hover,.pw-cta:not(:disabled):hover{opacity:.9}
}
