/* Additions to Julia's shared-styles.css. Julia's file is never edited. */

/* Imported images carry width/height attributes; Julia's CSS sets width:100% without height:auto. Zero specificity so her logo heights still win. */
:where(img){height:auto}

/* Paid landing page: Julia's paid page sets .vid to 700px wide (the shared file says 630px). */
.page-landing .vid{max-width:700px}

/* iOS zooms any focused input under 16px. Flagged to Julia; 16px from 620px down. */
@media(max-width:620px){
  .scanform input,.emailform input{font-size:16px}
}

/* Step 1: URL error under each form. */
.field-error{flex-basis:100%;margin:6px 0 0;font-size:14px;line-height:1.4;color:var(--fix);text-align:left}
.field-error[hidden]{display:none}
.is-invalid{border-color:var(--fix)!important;box-shadow:0 0 0 3px var(--fix-bg)!important}

/* The order-link page. */
.details-sec{padding:40px 0 64px}
.details-sec .narrow{max-width:560px;margin:0 auto}
.form-note{font-size:13.5px;color:var(--ink-faint);margin:0}

/* ---- Step 2 rules, copied verbatim from order-step2-from-landing-page.html ---- */
.compact .s2{padding:64px 0 170px;text-align:center}
.stepbar{display:flex;gap:6px;justify-content:center;margin:0 auto 20px;max-width:260px}
.stepbar i{flex:1;height:4px;border-radius:2px;background:var(--line)}
.stepbar i.on{background:var(--brand)}
.s2 h1{font-size:25px;font-weight:700;letter-spacing:-.015em;margin:0 0 30px;line-height:1.2}
.f2{max-width:520px;margin:0 auto;text-align:left}
.frow{display:flex;gap:12px}
.frow>div{flex:1}
.fl{display:block;font-size:13.5px;font-weight:600;color:var(--ink-soft);margin:0 0 4px}
.fh{display:block;font-size:12.5px;color:var(--ink-faint);margin:0 0 8px}
.f2 input[type=text],.f2 input[type=email]{width:100%;box-sizing:border-box;font:inherit;font-size:16px;
  padding:13px 15px;border-radius:10px;background:transparent;color:var(--ink);outline:none;
  border:1px solid var(--brand);transition:border-color .12s,box-shadow .12s}
.f2 input::placeholder{color:color-mix(in srgb,var(--ink-faint) 62%,transparent)}
.f2 input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--accent-soft)}
.fgap{margin-top:16px}
.cb{display:flex;gap:11px;align-items:flex-start;margin-top:22px}
.cb input{margin:1px 0 0;width:18px;height:18px;accent-color:var(--brand);flex:none;cursor:pointer}
.cb label{font-size:14.5px;color:var(--ink-soft);line-height:1.5;cursor:pointer}
.btn-go{display:block;width:100%;margin-top:26px;font:inherit;font-size:16.5px;font-weight:700;
  background:var(--brand);color:#fff;border:0;border-radius:10px;padding:15px 20px;cursor:pointer;transition:opacity .15s}
.btn-go[disabled]{opacity:.35;cursor:not-allowed}
.finep{font-size:13px;color:var(--ink-faint);text-align:center;margin:16px auto 0;line-height:1.6}
.finep a{color:var(--ink-faint);text-decoration:underline}
/* Our additions to Julia's step 2: let the name columns shrink at 320px, and place the
   moved-date panel and form error, which her design has no slot for. */
.f2 .frow>div{min-width:0}
.f2 .panel{margin:22px 0 0;text-align:left}
.f2 #form-error{margin-top:16px}
#turnstile{min-height:0;max-width:100%;overflow:hidden}
.panel{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:22px 20px;margin:0 0 20px}
.panel h2{font-size:20px;margin:0 0 8px}
.panel p{margin:0 0 14px;color:var(--ink-soft)}
.panel[hidden]{display:none}
.btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;
  border-radius:10px;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600}

/* Legal pages. */
.doc{padding:40px 0 64px}
.doc .narrow{max-width:720px;margin:0 auto}
.doc h1{font-size:clamp(28px,6vw,40px);margin:0 0 8px}
.doc h2{font-size:20px;margin:32px 0 8px}
.doc p,.doc li{font-size:16px;line-height:1.65;color:var(--ink-soft)}
.doc a{color:var(--accent);overflow-wrap:anywhere}
.draft-note{background:#fff4e5;color:#6b3d00;border:1px solid #f0c27b;border-radius:10px;padding:10px 14px;font-size:14px;margin:0 0 20px}

/* FAQ summaries: comfortable tap targets on phones. */
@media(max-width:620px){.fq summary{min-height:44px}}

/* ---- Confirmation page rules, copied verbatim from confirmation-page.html ---- */
.confirm-hero{padding:52px 0 56px;text-align:center}
.confirm-hero h1{margin:0 auto 14px}
.confirm-hero .lede{font-size:17px;max-width:62ch;margin:0 auto}
.confirm-hero .lede b{color:var(--ink);font-weight:700}
.tl{list-style:none;margin:28px auto 0;padding:0 0 0 34px;position:relative;max-width:600px;text-align:left}
.tl::before{content:"";position:absolute;left:9px;top:8px;bottom:14px;width:2px;background:var(--line)}
.tl li{position:relative;margin:0 0 26px}
.tl li::before{content:"";position:absolute;left:-32px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px var(--paper)}
.tl li:last-child{margin-bottom:0}
.tl .when{display:block;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}
.tl .what{display:block;font-size:16.5px;font-weight:700;color:var(--ink);margin-bottom:4px}
.tl p{margin:0;font-size:15px;color:var(--ink-soft);line-height:1.55}
.notbox{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:26px 28px;max-width:600px;margin:40px auto 0;text-align:left}
.notbox h3{margin:0 0 10px;font-size:18px;font-weight:700}
.notbox p{margin:0 0 10px;font-size:15px;color:var(--ink-soft);line-height:1.55}
.notbox ol{margin:6px 0 0;padding-left:20px;font-size:15px;color:var(--ink-soft);line-height:1.6}
.notbox b{color:var(--ink);font-weight:500}
.series{text-align:center}
.series .lede{font-size:16.5px;max-width:60ch;margin:0 auto}
.series .when{font-size:17px;font-weight:700;color:var(--ink);margin:14px 0 0}
.series .btn{display:inline-block;background:var(--brand);color:#fff;font-weight:700;font-size:16px;padding:14px 26px;border-radius:10px;text-decoration:none;margin-top:22px}
.series .small{font-size:13.5px;color:var(--ink-faint);margin-top:14px}

/* ---- Mobile fixes found in Task 21 ---- */
/* Nav lockup is 384px wide (195px logo + byline), which scrolled every page sideways at 320, 375 and 390.
   Julia's v2 rule: below 431px the byline is hidden. */
@media(max-width:430px){
  .byline{display:none}
}
/* Thank-you page "What you get" heading is nowrap (about 299px at 25px), wider than the 264px column at 320.
   Allowing a wrap only changes anything when the line does not fit. */
@media(max-width:430px){
  .split .h2{white-space:normal}
}

/* Page videos: the native player fills Julia's .vid / .vid-sm box. Without a video the
   landing "What you get" split drops to the bullets alone. */
.vid video,.vid-sm video{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;background:#000;object-fit:contain}
.split.solo{grid-template-columns:minmax(0,640px);justify-content:center}

/* "(+ VAT where applicable)" after a displayed price: smaller, on its own line inside a button. */
.vat-note{font-size:.8em;font-weight:500;white-space:nowrap}
.btn .vat-note{display:block;font-size:10.5px;font-weight:500;margin-top:1px;opacity:.8}

/* Legal pages: numbered subheadings and the Privacy notice's lawful-basis table. */
.doc p+p,.doc .doc-table+p{margin-top:10px}
.doc h3{font-size:17px;margin:24px 0 6px}
.doc-table{overflow-x:auto;margin:12px 0 20px}
.doc table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.5;color:var(--ink-soft)}
.doc th,.doc td{text-align:left;vertical-align:top;padding:8px 10px;border-bottom:1px solid var(--line,rgba(0,0,0,.12))}
.doc th{color:var(--ink);font-weight:700}

/* The line under the scan button sits as close to it as a field error does to the input. */
.paid-hero .under,.buy .under{margin-top:6px}
