/* Aimosti redesign — funnel surfaces (the /analyze reveal + checkout).
   Loaded via head_extra on those pages (which extend redesign/base.html). */

.funnel{max-width:760px;margin-inline:auto;padding:clamp(2rem,5vw,4rem) clamp(1.2rem,4vw,2rem) var(--space)}
.funnel__head{margin-bottom:1.8rem}
.funnel__head .eyebrow{margin-bottom:1rem}
.funnel h1{font-size:clamp(1.9rem,4vw,2.8rem);font-weight:700;letter-spacing:-.035em}
.funnel .lede{max-width:56ch;margin-top:1rem;font-size:clamp(1.05rem,1.1vw,1.18rem);color:var(--ink-soft);line-height:1.5}

/* drop zone */
.drop-zone{display:flex;align-items:center;justify-content:center;text-align:center;min-height:180px;
  padding:2rem;border:2px dashed var(--line-2);border-radius:var(--radius-lg);background:var(--tint);
  color:var(--ink-soft);cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.drop-zone:hover,.drop-zone:focus-visible{border-color:var(--primary);background:var(--primary-wash);color:var(--ink)}
.drop-zone--active{border-style:solid;border-color:var(--primary);background:var(--primary-wash);color:var(--ink);font-family:var(--font-mono);font-size:.95rem}

/* alerts */
.alert{border-radius:var(--radius);padding:.8rem 1rem;font-size:.92rem;margin:1rem 0;border:1.5px solid}
.alert-error{background:var(--attention-wash);border-color:var(--attention);color:var(--attention)}
.alert-warning{background:var(--signal-wash);border-color:var(--signal);color:var(--signal-ink)}
.alert p{margin:.2rem 0}

/* spinner */
.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--paper-line);border-top-color:var(--primary);
  border-radius:50%;animation:spin .7s linear infinite;vertical-align:-3px;margin-right:.4rem}
@keyframes spin{to{transform:rotate(360deg)}}

/* reveal */
.reveal{margin-top:1rem}
.reveal__pitch{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  padding-bottom:1.2rem;margin-bottom:1.2rem;border-bottom:1.5px solid var(--ink)}
.reveal__pitch h2{font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:700;letter-spacing:-.03em;max-width:18ch}
.reveal__notice{text-align:left;padding:1.4rem;border:1.5px solid var(--line-2);border-radius:var(--radius-lg);background:var(--tint)}
.reveal__notice h2{font-size:1.4rem;margin-bottom:.5rem}
.reveal__notice .btn{margin-top:1rem;margin-right:.6rem}

/* price tag */
.price-tag{text-align:right;white-space:nowrap}
.price-tag__amount{display:block;font:700 2.2rem var(--font-sans);letter-spacing:-.03em;color:var(--primary);line-height:1}
.price-tag__unit{font:500 .82rem var(--font-mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}

/* the detected-coverage matrix (Alpine x-for) */
.matrix{list-style:none;margin:1.2rem 0;padding:0;border:1.5px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.matrix li{display:flex;align-items:baseline;gap:.8rem;padding:.75rem 1rem;border-bottom:1px solid var(--line)}
.matrix li:last-child{border-bottom:0}
.matrix__label{font-weight:600;flex:1}
.matrix__count{font:700 1rem var(--font-mono);color:var(--primary)}
.matrix__note{font-size:.84rem;color:var(--ink-faint)}
.matrix__row--off{background:var(--tint);color:var(--ink-faint)}
.matrix__row--off .matrix__label{font-weight:500;color:var(--ink-faint)}
.matrix__off{font:600 .72rem var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint)}

.btn--lg{padding:.9em 1.5em;font-size:1.05rem;margin-top:.5rem}
.btn + .btn{margin-left:.6rem}

/* checkout */
.checkout-card{max-width:540px;margin-inline:auto;border:1.5px solid var(--line-2);border-radius:var(--radius-lg);
  padding:clamp(1.4rem,4vw,2.2rem);background:var(--panel);box-shadow:0 24px 50px -34px oklch(0.46 0.13 252 / .4)}
.checkout-card h1{font-size:1.6rem;margin-bottom:.4rem}
.checkout-summary{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:1rem 0;margin:1rem 0;border-block:1.5px solid var(--line)}
.checkout-summary .price-tag__amount{font-size:1.8rem}
.checkout-note{font-size:.86rem;color:var(--ink-soft);margin-top:1rem}

/* generic card */
.card{border:1.5px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);padding:clamp(1.3rem,3vw,1.8rem)}
.card h2{font-size:1.2rem;margin-bottom:.6rem}

/* checkout layout */
.checkout{max-width:980px;margin-inline:auto;padding:clamp(2rem,5vw,4rem) clamp(1.2rem,4vw,2rem) var(--space)}
.checkout__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem 2rem;
  padding-bottom:1.4rem;margin-bottom:1.8rem;border-bottom:1.5px solid var(--ink)}
.checkout__head h1{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700;letter-spacing:-.03em;max-width:20ch}
.checkout__head .lede{max-width:60ch;margin-top:.7rem;color:var(--ink-soft)}
.checkout__head .price-tag{margin-left:auto}
.checkout__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:start}
@media(max-width:820px){.checkout__grid{grid-template-columns:1fr}}
.check-list{list-style:none;margin:.6rem 0;padding:0;display:grid;gap:.55rem}
.check-list li{padding-left:1.5rem;position:relative;color:var(--ink-soft);font-size:.95rem}
.check-list li::before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:700}
.checkout__note{margin-top:1rem;font-size:.84rem}
.checkout__pay h2{font-size:1.15rem}
.addon-toggle{display:flex;gap:.7rem;align-items:flex-start;border:1.5px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem;margin:.6rem 0 1rem;cursor:pointer}
.addon-toggle input{margin-top:.2rem}
.addon-toggle strong{display:block}
.addon-toggle .muted{font-size:.86rem}
.checkout__assurance{font-size:.84rem;margin:1rem 0}
.checkout__waiver{margin:.8rem 0}
.checkout-consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;color:var(--ink-soft);cursor:pointer}
.checkout-consent input{margin-top:.2rem;flex:none}
.beta-badge{display:inline-block;font:600 .7rem var(--font-mono);text-transform:uppercase;letter-spacing:.04em;
  color:var(--signal-ink);background:var(--signal-wash);border:1px solid var(--signal);border-radius:100px;padding:.25em .7em;margin-bottom:.8rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn[disabled]:hover{transform:none;background:var(--primary)}

/* notice — shared inline callout (consent reconsent, verify-gate resend) */
.notice{border:1.5px solid var(--line-2);border-radius:var(--radius);background:var(--tint);padding:.9rem 1.1rem;font-size:.95rem;color:var(--ink-soft);margin:1.2rem 0}
.notice--tip{border-color:var(--primary);background:var(--primary-wash);color:var(--ink)}

/* email-verification gate — the _verify_email_panel partial; rides on checkout / deep-read /
   analyze / verify_email_needed, so it lives in funnel.css (loaded by all of them). */
.verify-gate{max-width:560px;margin-inline:auto}
.verify-gate .eyebrow{margin-bottom:.6rem}
.verify-gate h2{font-size:1.4rem;font-weight:700;letter-spacing:-.02em}
.verify-gate p{margin:.6rem 0;color:var(--ink-soft)}
.verify-gate strong{color:var(--ink)}
.verify-gate__resend{margin-top:1.2rem}
.verify-gate__logout{margin-top:1rem;border-top:1px solid var(--line);padding-top:1rem}
.verify-gate__logout .muted{margin:0}
.verify-gate__logout .btn{margin-left:.3rem}
