/* landing.css — direction D "Studio" marketing page (landing + pricing).
   Loaded only on the public landing/pricing pages via {% block head %}.
   No colour literals: tokens only. Serif (display) is used for H1 + section
   titles only (DESIGN.md §3). */

/* The landing uses full-bleed sections; override the shared .wrap padding. */
body.landing main{padding:0}
/* Header + footer must share ONE container width/padding with the hero sections so the
   logo and nav line up with the hero copy (coord finding 1). */
body.landing header.top .wrap,body.landing footer.foot .wrap{max-width:1200px;padding-left:40px;padding-right:40px}
@media (max-width:1280px){body.landing header.top .wrap,body.landing footer.foot .wrap{padding-left:32px;padding-right:32px}}
@media (max-width:560px){body.landing header.top .wrap,body.landing footer.foot .wrap{padding-left:20px;padding-right:20px}}
.lp{color:var(--text)}
.lwrap{max-width:1200px;margin:0 auto;padding:0 40px}
.lp .serif{font-family:var(--font-display);font-weight:400;letter-spacing:.2px;color:var(--ink)}

/* ---------- hero: split copy + product proof ---------- */
.lp-hero{padding:48px 0 44px}
.lp-hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:52px;align-items:center}
.lp-hero-grid>*{min-width:0}
.lp-eyebrow{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);margin:0 0 14px}
h1.lp-h1{font-size:56px;line-height:1.04;letter-spacing:-.5px;margin:0 0 18px}
.lp-lead{font-size:19px;line-height:1.5;color:var(--text);max-width:44ch;margin:0 0 24px}
.lp-lead b{color:var(--ink);font-weight:600}

/* hero CTA (open mode) */
.lp-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.lp-cta .btn{min-height:48px;font-size:16px;padding:12px 20px}
.lp-fineprint{font-size:14px;color:var(--muted);margin:16px 0 0}

/* waitlist form (waitlist mode): rhythm on the 8/12/16 scale (coord finding 8),
   visible email label (finding 5), consent above the button (finding 4) */
.lp-signup{max-width:460px}
.lp-emaillab{display:block;font-size:14px;font-weight:600;color:var(--ink);margin:0 0 8px}
.lp-signup .row-f{display:flex;gap:8px;flex-wrap:wrap}
.lp-signup input[type=email]{flex:1 1 100%;min-width:0;min-height:48px;font-size:16px;
  padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r-md);
  background:var(--panel);color:var(--ink)}
.lp-signup .consent{margin:12px 0 16px}
.lp-signup .consent label{display:flex;gap:10px;align-items:flex-start;font-weight:400;
  font-size:14px;color:var(--text);line-height:1.4}
.lp-signup .consent input{flex:none;width:20px;height:20px;margin:1px 0 0}
.lp-signup .consent-copy{flex:1 1 auto;min-width:0}
.lp-signup>.btn{display:flex;width:100%;min-height:48px;font-size:16px;padding:12px 20px}
.lp-signup .errorlist,.lp-signup .err{color:var(--danger);list-style:none;padding:0;margin:0 0 8px;font-size:14px}
.lp-signup .fineprint{font-size:14px;color:var(--muted);margin:12px 0 0}
.lp-joined{max-width:460px}
.lp-joined p{font-size:17px;color:var(--text);margin:0}

/* product proof: review window with a client phone peeking at the bottom-right.
   The window keeps its full width (readable cards); the phone sits to the RIGHT of the
   window in the hero's right margin, clearing the card text/buttons (coord finding 2). */
.lp-art{position:relative;padding:0 24px 40px 0}
.appwin{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-2);overflow:hidden;width:100%}
.win-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--band)}
.win-dot{width:10px;height:10px;border-radius:50%;background:var(--line-strong)}
.win-title{margin-left:8px;font-size:13px;color:var(--muted);font-weight:500}
.win-body{display:grid;grid-template-columns:200px minmax(0,1fr)}
.win-tree{border-right:1px solid var(--line);padding:14px 12px;background:var(--band);min-width:0}
.win-tree .proj{font-size:14px;font-weight:700;color:var(--ink);margin:0 0 10px;padding:0 6px}
.win-tree ul{list-style:none;margin:0;padding:0}
.win-tree li{font-size:15px;color:var(--text);padding:8px 10px;border-radius:var(--r-sm);
  display:flex;align-items:center;justify-content:space-between;gap:8px;white-space:nowrap}
.win-tree li.sel{background:var(--accent-wash);color:var(--accent-hover);font-weight:600}
.win-tree .pg{color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}
.win-tree li.sel .pg{color:var(--accent)}
.win-detail{padding:16px 18px;min-width:0}
.win-detail h4{margin:0 0 3px;font-size:16px;color:var(--ink)}
.win-detail .sub{font-size:14px;color:var(--muted);margin:0 0 14px}
.fcard{border:1px solid var(--line);border-radius:var(--r-md);padding:12px 13px;margin-bottom:10px;background:var(--panel)}
.fcard.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.fcard-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.fcard-top .flab{white-space:nowrap;font-size:15px;font-weight:600;color:var(--ink)}
.lp .chip{font-size:14px}
.fcard .fval{font-size:15px;color:var(--text);line-height:1.45}
.fcard-actions{display:flex;gap:8px;margin-top:11px}
.fmini{font-size:14px;font-weight:600;border-radius:var(--r-sm);padding:8px 13px;cursor:default;
  border:1px solid transparent;font-family:inherit}
.fmini.ok{background:var(--accent);color:var(--panel)}
.fmini.ghost{background:var(--panel);color:var(--ink);border-color:var(--line-strong)}
.fnote{margin-top:10px;background:var(--warn-wash);border-radius:var(--r-md);padding:10px 11px;
  font-size:14px;color:var(--warn);line-height:1.4}
.fnote b{color:var(--warn);font-weight:700}

.lp-phone{position:absolute;right:-115px;bottom:-40px;width:146px;background:var(--panel);
  border:1px solid var(--line);border-radius:26px;padding:9px;box-shadow:var(--shadow-2);z-index:5}
.lp-phone-screen{background:var(--paper);border-radius:19px;overflow:hidden;border:1px solid var(--line)}
.ph-top{padding:11px 13px 9px;border-bottom:1px solid var(--line);background:var(--panel)}
.ph-top .pt{font-size:14px;font-weight:700;color:var(--ink)}
.ph-prog{font-size:13px;color:var(--muted);margin:4px 0 7px}
.ph-track{height:6px;background:var(--band);border-radius:var(--r-pill);overflow:hidden}
.ph-track span{display:block;height:100%;background:var(--accent)}
.ph-body{padding:12px 13px}
.ph-lab{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:5px}
.ph-lab .req{color:var(--accent)}
.ph-input{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);
  padding:9px 10px;font-size:14px;color:var(--text);min-height:34px;line-height:1.4}
.ph-save{font-size:13px;color:var(--muted);margin-top:7px;display:flex;align-items:center;gap:5px}
.ph-save .d{width:6px;height:6px;border-radius:50%;background:var(--accent)}

/* ---------- section shared ---------- */
.lp-sec{padding:52px 0;border-top:1px solid var(--line)}
.lp-sec.band{background:var(--band)}
.lp-head{max-width:640px;margin:0 0 28px}
h2.lp-h2{font-size:38px;line-height:1.1;letter-spacing:-.3px;margin:0 0 12px}
.lp-head p{font-size:18px;color:var(--text);margin:0;line-height:1.5}

/* review chapter: copy + proof card */
.lp-media{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;align-items:center}
.lp-media>*{min-width:0}
.lp-mcopy h2{font-size:34px;line-height:1.12;letter-spacing:-.3px;margin:0 0 12px}
.lp-mcopy>p{margin:0 0 14px;color:var(--text);font-size:18px;line-height:1.5;max-width:46ch}
.lp-feat{list-style:none;margin:18px 0 0;padding:0}
.lp-feat li{display:flex;gap:12px;align-items:flex-start;margin-bottom:13px;font-size:16px;line-height:1.45}
.lp-feat .tick{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--accent-wash);
  color:var(--accent);display:grid;place-items:center;margin-top:1px}
.lp-feat .tick .ic{width:14px;height:14px}
.lp-feat b{color:var(--ink);font-weight:600}
.proofcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-2);overflow:hidden}
.proofcard .ph{padding:13px 16px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);
  font-weight:500;background:var(--band)}
.proofcard .pb{padding:4px 16px 14px}
.prow{padding:14px 2px;border-bottom:1px solid var(--line)}
.prow:last-child{border-bottom:0}
.prow .pt{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}
.prow .plab{white-space:nowrap;font-size:15px;font-weight:600;color:var(--ink)}
.prow .pkind{font-size:13px;color:var(--muted)}
.prow .pval{font-size:14px;color:var(--text);margin:0 0 2px;line-height:1.45}
.prow .pacts{display:flex;gap:8px;margin-top:10px}

/* ---------- export band (dark) ---------- */
.lp-export{background:var(--ink)}
.lp-export .lp-head h2{color:var(--paper)}
.lp-export .lp-head p{color:var(--line)}
.export-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:44px;align-items:center}
.export-grid>*{min-width:0}
.filetree{background:var(--band);border-radius:var(--r-lg);padding:20px 22px;color:var(--text);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.8;
  box-shadow:var(--shadow-2);overflow-x:auto;white-space:nowrap}
.filetree .fa{color:var(--accent)}
.filetree .cm{color:var(--muted)}
.filetree .root{color:var(--ink);font-weight:700}
.rendered{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-2)}
.rendered .rh{padding:10px 15px;border-bottom:1px solid var(--line);font-family:ui-monospace,Menlo,monospace;
  font-size:13px;color:var(--muted);background:var(--band)}
.rendered .rb{padding:20px 22px}
.rendered h4{font-size:22px;margin:0 0 4px}
.rendered .rmeta{font-size:13px;color:var(--muted);margin:0 0 14px}
.rendered p{margin:0 0 12px;font-size:15px;color:var(--text);line-height:1.5}
.rendered .himg{height:92px;border-radius:var(--r-md);background:var(--band);border:1px solid var(--line);
  margin-bottom:14px;display:flex;align-items:flex-end;padding:9px 11px;font-size:13px;color:var(--muted)}

/* ---------- pricing row (open mode) ---------- */
.pricetable{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1)}
.p-head,.prow2{display:grid;grid-template-columns:200px 150px minmax(0,1fr);gap:20px;align-items:center}
.p-head{padding:11px 22px;background:var(--band);border-bottom:1px solid var(--line);
  font-size:13px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.prow2{padding:17px 22px;border-bottom:1px solid var(--line)}
.prow2:last-child{border-bottom:0}
.prow2.pop{background:var(--accent-wash)}
.prow2>*{min-width:0}
.p-name{font-size:17px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pbadge{display:inline-block;font-size:12px;font-weight:600;color:var(--accent);background:var(--panel);
  border:1px solid var(--line);border-radius:var(--r-pill);padding:2px 9px}
.p-price{font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-.5px}
.p-price small{font-size:14px;font-weight:500;color:var(--muted)}
.p-for{font-size:15px;color:var(--text)}
.lp-pricelead{font-size:14px;color:var(--muted);margin:14px 0 0}
/* closing CTA before the footer (brief L2) */
.lp-close{border-top:1px solid var(--line)}
.lp-close-head{max-width:640px;margin:0 auto;text-align:center}
.lp-close-head h2{font-size:34px;line-height:1.12;letter-spacing:-.3px;margin:0 0 12px}
.lp-close-head p{font-size:18px;color:var(--text);margin:0 0 20px;line-height:1.5}
.lp-close-head .lp-cta{justify-content:center}
/* pricing.html 4-column variant (Plan / Price / Active projects / Best for) */
.p-head-4,.prow2-4{grid-template-columns:180px 130px 130px minmax(0,1fr)}
.p-proj{font-size:15px;color:var(--text);font-weight:600}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  .lwrap{padding:0 32px}
  h1.lp-h1{font-size:46px}
  .lp-hero-grid{gap:40px}
}
/* phone overlay: below 1400 the -115px bleed would pass the viewport edge, so keep it inside the content box */
@media (max-width:1400px) and (min-width:981px){
  .lp-art{padding-right:120px}
  .lp-phone{right:0;bottom:-40px}
}
@media (max-width:980px){
  .lp-hero-grid,.lp-media,.export-grid{grid-template-columns:1fr;gap:36px}
  .lp-art{padding:0 0 40px 0;max-width:560px}
  .lp-phone{right:6px;bottom:-14px}
  h2.lp-h2{font-size:32px}
}
@media (max-width:560px){
  .lwrap{padding:0 20px}
  .lp-hero{padding:32px 0 28px}
  h1.lp-h1{font-size:34px;margin-bottom:14px}
  .lp-lead{font-size:17px;margin-bottom:20px}
  .lp-sec{padding:36px 0}
  h2.lp-h2{font-size:28px}
  .lp-head{margin-bottom:20px}
  .lp-mcopy h2{font-size:26px}
  /* MOBILE PROOF: one readable focal crop — drop the sidebar + phone, show the
     live detail panel full width (DESIGN.md §8.2). */
  .lp-art{padding:0;max-width:none}
  .win-body{grid-template-columns:1fr}
  .win-tree{display:none}
  .win-detail{padding:14px 16px 16px}
  .lp-phone{display:none}
  .filetree{font-size:12px;padding:16px}
  .p-head{display:none}
  .prow2{grid-template-columns:1fr auto;gap:4px 14px;padding:16px 18px;align-items:baseline}
  .p-name{grid-column:1;grid-row:1}
  .p-price{grid-column:2;grid-row:1;text-align:right}
  .p-for{grid-column:1 / -1;grid-row:3}
  .p-proj{grid-column:1 / -1;grid-row:2}
}
