/* VisionFox Tools v1.3
   Pages are built from the theme's own classes (vf-page-hero, vf-shell, vf-section, vf-final-cta),
   so the theme styles them. Everything here is scoped to .vft. Rules wrapped in :where() are
   zero-specificity fallbacks that only apply if the theme ever drops those classes. */

.vft{
  /* Theme tokens first, brand hex as fallback */
  --vft-ink: var(--vf-ink, #112F45);
  --vft-muted: var(--vf-slate, #5D6A72);
  --vft-line: var(--vf-line, #D7D1C5);
  --vft-paper: var(--vf-paper, #F4F0E7);
  --vft-cream: var(--vf-white, #FFFEFA);
  --vft-surface: #ffffff;
  --vft-accent: var(--vf-copper, #C65F32);
  --vft-accent-ink: var(--vf-copper-dark, #98452C);
  --vft-accent-soft: #F6E7DD;
  --vft-on-accent: #ffffff;
  --vft-good: #2A6E52; --vft-good-soft: #E3F0E8;
  --vft-bad: #B0383A; --vft-bad-soft: #F7E4E2;
  --vft-shadow: var(--vf-shadow, 0 18px 44px rgba(16,47,67,.10));
  --vft-head: var(--wp--preset--font-family--heading, "Manrope", Arial, sans-serif);
  --vft-body: var(--wp--preset--font-family--body, "Source Sans 3", Arial, sans-serif);
  font-family: var(--vft-body); color: var(--vft-ink); line-height: 1.55; text-align: left;
  width: 100%; max-width: none !important; margin-inline: 0 !important; margin-block: 0 !important;
}
.vft *, .vft *::before, .vft *::after{box-sizing:border-box}
.vft p{margin:0}

/* ---------- Fallbacks for theme classes (zero specificity) ---------- */
:where(.vft) .vft-shell{width:calc(100% - 64px);max-width:1440px;margin-inline:auto}
:where(.vft) .vft-hero{background:var(--vft-ink);color:#fff;padding-block:clamp(4.5rem,8vw,7.5rem)}
:where(.vft) .vft-sec{padding-block:clamp(4.4rem,7vw,6.5rem)}
:where(.vft) .vf-white{background:var(--vft-cream)}
:where(.vft) .vf-paper{background:var(--vft-paper)}
:where(.vft) .vft-eyebrow{margin:0 0 1.1rem;color:var(--vft-accent);font-family:var(--vft-body);font-size:.72rem;font-weight:800;letter-spacing:.16em;line-height:1.4;text-transform:uppercase}
:where(.vft) .vft-display{max-width:760px;margin:0 0 1.45rem;font-family:var(--vft-head);font-size:clamp(3rem,5.4vw,5rem);font-weight:600;letter-spacing:-.055em;line-height:.99}
:where(.vft) .vft-lead{max-width:700px;font-size:clamp(1.04rem,1.5vw,1.18rem);line-height:1.68}
:where(.vft) .vft-cta-band{background:var(--vft-accent);color:#fff;padding-block:clamp(4rem,6vw,5rem)}
:where(.vft) .vft-sec-title,:where(.vft) .vft-cta-title{margin:0 0 1.3rem;font-family:var(--vft-head);font-size:clamp(2.25rem,4vw,3.85rem);font-weight:600;letter-spacing:-.045em;line-height:1.03}

/* ---------- Hero (theme styles it; these only pin what we rely on) ---------- */
.vft .vft-hero .vft-display{color:#fff}
.vft .vft-hero .vft-eyebrow{color:#EFAD8D}
.vft .vft-hero .vft-lead{color:#C3D0D7}

/* ---------- Sections ---------- */
.vft .vft-sec-tool{padding-block:clamp(3rem,5vw,4.5rem) clamp(4rem,6vw,5.5rem)}
.vft-stack{display:flex;flex-direction:column;gap:clamp(2.5rem,4vw,3.5rem)}
.vft-sec-head{max-width:820px}
.vft-sec-head .vft-sec-title{margin-bottom:0}
.vft-ref{display:flex;flex-direction:column;gap:20px}
.vft-ref > p{color:var(--vft-muted);max-width:70ch;font-size:1.05rem}

/* ---------- Calculator layout ---------- */
.vft-main{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:clamp(20px,2.5vw,36px);align-items:start}
@media (max-width:960px){.vft-main{grid-template-columns:minmax(0,1fr)}}
.vft-results{display:flex;flex-direction:column;gap:24px;min-width:0}

/* Cards: square corners, hairline border, soft shadow, like the theme's outcome boxes */
.vft-panel,.vft-verdict,.vft-chartcard,.vft-report{border:1px solid var(--vft-line);box-shadow:var(--vft-shadow);border-radius:0}
.vft-panel{background:var(--vft-paper);padding:28px;display:flex;flex-direction:column;gap:22px;margin:0}
.vft-verdict,.vft-chartcard,.vft-report{background:var(--vft-surface);padding:clamp(22px,2.6vw,36px);display:flex;flex-direction:column;gap:20px;container-type:inline-size}

.vft h3.vft-h2{margin:0;font-family:var(--vft-head);font-size:1.35rem;font-weight:600;letter-spacing:-.025em;line-height:1.2;color:var(--vft-ink);text-transform:none}
.vft-k{display:block;font-family:var(--vft-body);font-size:.68rem;font-weight:800;letter-spacing:.14em;line-height:1.35;text-transform:uppercase;color:var(--vft-muted)}
.vft-panel > .vft-k{color:var(--vft-accent-ink)}

/* Inputs */
.vft-field{display:flex;flex-direction:column;gap:8px}
.vft-field-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.vft label{display:block;margin:0;font-family:var(--vft-body);font-weight:700;font-size:.95rem;color:var(--vft-ink);text-transform:none;letter-spacing:0}
.vft-hint{color:var(--vft-muted);font-size:.86rem;line-height:1.45}
.vft-opt{font-weight:400;color:var(--vft-muted);font-size:.85rem}
.vft-num{display:flex;align-items:center;flex:none;width:140px;border:1px solid var(--vft-line);background:var(--vft-surface);overflow:hidden}
.vft-num.vft-wide{width:100%}
.vft-num span{padding:0 0 0 12px;color:var(--vft-muted);font-family:var(--vft-head);font-size:.95rem}
.vft-num span.vft-after{padding:0 12px 0 0}
.vft .vft-num input{width:100%;min-width:0;height:auto;min-height:0;margin:0;padding:10px 12px;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--vft-ink);font-family:var(--vft-head);font-size:1.02rem;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.vft .vft-num input:focus{outline:none;box-shadow:none}
.vft-num:focus-within{border-color:var(--vft-accent);box-shadow:0 0 0 3px var(--vft-accent-soft)}
.vft input[type=range]{width:100%;margin:0;padding:0;border:0;background:transparent;box-shadow:none;accent-color:var(--vft-accent)}
.vft input[type=range]:focus-visible{outline:2px solid var(--vft-accent);outline-offset:4px}
.vft-divider{height:1px;background:var(--vft-line)}

/* Results */
.vft-big{font-family:var(--vft-head);font-weight:600;font-size:clamp(1.5rem,2.3vw,2.15rem);line-height:1.18;letter-spacing:-.035em;text-wrap:balance;color:var(--vft-ink)}
.vft-big em{font-style:normal;color:var(--vft-accent-ink)}
.vft-status{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:8px 14px;font-size:.92rem;font-weight:700;line-height:1.3}
.vft-status.good{background:var(--vft-good-soft);color:var(--vft-good)}
.vft-status.bad{background:var(--vft-bad-soft);color:var(--vft-bad)}
.vft-status.even{background:var(--vft-paper);color:var(--vft-muted)}
.vft-status i{width:8px;height:8px;border-radius:50%;background:currentColor;display:block;flex:none}

.vft-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--vft-line);border:1px solid var(--vft-line)}
.vft-stat{background:var(--vft-surface);padding:16px 18px;display:flex;flex-direction:column;gap:6px;min-width:0}
.vft-v{font-family:var(--vft-head);font-weight:600;font-size:clamp(1.35rem,2vw,1.75rem);line-height:1.15;letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:var(--vft-ink);overflow-wrap:anywhere}
.vft-s{font-size:.86rem;color:var(--vft-muted);line-height:1.35}
.vft-v.pos{color:var(--vft-good)} .vft-v.neg{color:var(--vft-bad)}
@container (max-width:560px){.vft-stats{grid-template-columns:minmax(0,1fr)}.vft-stats-6{grid-template-columns:repeat(2,minmax(0,1fr))}}

.vft-value{display:grid;grid-template-columns:minmax(150px,auto) minmax(0,1fr) auto;align-items:center;gap:10px 28px;background:var(--vft-accent-soft);padding:20px 22px}
.vft-value-num{display:block;margin-top:4px;font-family:var(--vft-head);font-weight:600;font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--vft-ink)}
.vft-value p{font-size:.95rem;color:var(--vft-ink);line-height:1.5}
.vft-value .vft-k{color:var(--vft-accent-ink)}
.vft .vft-link{color:var(--vft-accent-ink);font-weight:800;font-size:.92rem;text-decoration:none;white-space:nowrap}
.vft .vft-link:hover{text-decoration:underline}
@container (max-width:720px){.vft-value{grid-template-columns:minmax(0,1fr)}}

/* Tables */
.vft-tablebox,.vft-gridbox{overflow-x:auto}
.vft table{margin:0;border:0;background:transparent;width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.vft table th,.vft table td{border:0;background:transparent;color:var(--vft-ink);font-family:var(--vft-body)}
.vft-compare th,.vft-compare td{padding:11px 12px;text-align:right;border-bottom:1px solid var(--vft-line) !important;font-size:1rem;white-space:nowrap}
.vft-compare th:first-child,.vft-compare td:first-child{text-align:left}
.vft table thead th{font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--vft-muted)}
.vft-compare td:first-child{color:var(--vft-muted)}
.vft-compare tr:last-child td{border-bottom:0 !important;font-weight:700;color:var(--vft-ink);background:var(--vft-paper)}

/* Chart */
.vft-chartcard > p{color:var(--vft-muted);font-size:.95rem}
.vft svg{display:block;max-width:100%;height:auto}
.vft svg text{font-family:var(--vft-body);font-size:12px;fill:var(--vft-muted)}
.vft-legend{display:flex;flex-wrap:wrap;gap:18px;font-size:.88rem;color:var(--vft-muted)}
.vft-legend span{display:inline-flex;align-items:center;gap:6px}
.vft-sw{width:16px;height:3px;display:inline-block}
.vft-sw-good{background:var(--vft-good)} .vft-sw-bad{background:var(--vft-bad)} .vft-sw-you{background:var(--vft-accent)}

/* Break-even table */
.vft-gridbox{background:var(--vft-surface);border:1px solid var(--vft-line);box-shadow:var(--vft-shadow)}
.vft-grid{min-width:680px;font-size:1rem}
.vft-grid th,.vft-grid td{padding:10px 6px;text-align:center}
.vft-grid thead th{border-bottom:1px solid var(--vft-line) !important}
.vft-grid tbody th{width:110px;padding-right:16px;text-align:right;border-right:1px solid var(--vft-line) !important;color:var(--vft-muted);font-weight:700;font-size:.9rem;white-space:nowrap}
.vft .vft-grid td button{all:unset;display:block;width:100%;padding:5px 0;text-align:center;cursor:pointer;color:var(--vft-ink);font:inherit}
.vft .vft-grid td button:hover{background:var(--vft-paper)}
.vft .vft-grid td button:focus-visible{outline:2px solid var(--vft-accent)}
.vft .vft-grid th.colhl{background:var(--vft-paper);color:var(--vft-ink)}
.vft .vft-grid td.hit button{background:var(--vft-accent);color:var(--vft-on-accent);font-weight:700}
.vft .vft-grid .vft-corner{width:110px;text-align:left;padding-left:16px;line-height:1.35;letter-spacing:.08em}

/* Formula cards */
.vft-formula{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.vft-formula > div{background:var(--vft-surface);border:1px solid var(--vft-line);padding:clamp(22px,2.6vw,34px);display:flex;flex-direction:column;gap:12px;min-width:0}
.vft-formula p{color:var(--vft-muted)}
.vft-eq{padding:16px 18px;background:var(--vft-paper);border-left:3px solid var(--vft-accent);font-family:var(--vft-head);font-weight:600;font-size:1.08rem;letter-spacing:-.01em;color:var(--vft-ink);overflow-x:auto}
@media (max-width:760px){.vft-formula{grid-template-columns:minmax(0,1fr)}}
.vft-fine{font-size:.82rem;color:var(--vft-muted);max-width:90ch}

/* CTA band (theme styles .vf-final-cta; pin layout + light button) */
.vft .vft-cta-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px 48px;align-items:center}
@media (max-width:860px){.vft .vft-cta-grid{grid-template-columns:minmax(0,1fr)}.vft .vft-cta-btn{white-space:normal;text-align:center}}
.vft .vft-cta-band .vft-cta-title{color:#fff;max-width:900px}
.vft .vft-cta-band .vft-eyebrow{color:#fff;opacity:.92}
.vft .vft-cta-band .vft-cta-text{color:#fff;max-width:760px}
.vft .vft-cta-band .wp-block-buttons{display:flex;margin:0}
.vft .vft-cta-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.85rem 1.4rem;background:var(--vft-cream);color:var(--vft-ink);border:1px solid transparent;border-radius:0;font-family:var(--vft-body);font-weight:800;font-size:.94rem;text-decoration:none;white-space:nowrap}
.vft .vft-cta-btn:hover{background:#fff;color:var(--vft-ink)}

/* Buttons used inside cards */
.vft .vft-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.85rem 1.4rem;border:1px solid transparent;border-radius:0;background:var(--vft-accent);color:var(--vft-on-accent);font-family:var(--vft-body);font-weight:800;font-size:.94rem;line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap}
.vft .vft-btn:hover{background:var(--vft-accent-ink);color:var(--vft-on-accent)}
.vft .vft-btn:focus-visible{outline:2px solid var(--vft-ink);outline-offset:3px}
.vft .vft-btn:disabled{opacity:.7;cursor:default}

/* ---------- Sales Growth extras ---------- */
.vft-track-wrap{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--vft-line);padding-top:20px}
.vft-track-text{font-size:1rem;color:var(--vft-ink)}
.vft-track{position:relative;height:10px;background:var(--vft-paper);margin:28px 8px 4px}
.vft-track-fill{position:absolute;top:0;bottom:0;background:var(--vft-good);opacity:.35}
.vft-track-be{position:absolute;top:-8px;bottom:-8px;width:2px;margin-left:-1px;background:var(--vft-ink)}
.vft-track-be span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;line-height:1.8;color:var(--vft-ink)}
.vft-track-dot{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:3px solid var(--vft-surface)}
.vft-dot-now{background:var(--vft-muted)} .vft-dot-goal{background:var(--vft-accent)} .vft-dot-be{background:var(--vft-ink)}
.vft-track-legend{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:.88rem;color:var(--vft-muted)}
.vft-track-legend span{display:inline-flex;align-items:center;gap:6px}
.vft-track-legend b{font-family:var(--vft-head);font-weight:600;color:var(--vft-ink)}
.vft-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.vft-dot.vft-dot-be{border-radius:0;width:3px;height:12px}

.vft-levers{min-width:620px}
.vft-levers th,.vft-levers td{padding:14px 18px;text-align:right;border-bottom:1px solid var(--vft-line) !important;white-space:nowrap;font-size:1rem}
.vft-levers th:first-child,.vft-levers td:first-child{text-align:left}
.vft-levers td:first-child{font-weight:700}
.vft-levers td:last-child{color:var(--vft-muted)}
.vft-levers tr:last-child td{border-bottom:0 !important}
.vft-levers tr.vft-total td{background:var(--vft-paper)}
.vft-levers .vft-bar-col{width:32%;text-align:left}
.vft-bar{display:block;height:10px;background:var(--vft-accent);min-width:2px}
@media (max-width:600px){
  .vft-levers{min-width:0}
  .vft-levers .vft-bar-col{display:none}
  .vft-levers th,.vft-levers td{padding:11px 8px;font-size:.9rem}
  .vft-levers thead th{white-space:normal}
}

/* ---------- Email-PDF form ---------- */
.vft-report{gap:16px}
.vft-report-head{display:flex;flex-direction:column;gap:6px}
.vft-report-head p{color:var(--vft-muted)}
.vft-report-form{display:flex;flex-direction:column;gap:14px;margin:0}
.vft-report-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:14px;align-items:end}
@container (max-width:620px){.vft-report-fields{grid-template-columns:minmax(0,1fr)}}
.vft .vft-text{width:100%;min-width:0;height:auto;min-height:52px;margin:0;padding:12px 14px;border:1px solid var(--vft-line);border-radius:0;background:var(--vft-cream);box-shadow:none;color:var(--vft-ink);font-family:var(--vft-body);font-size:1rem}
.vft .vft-text:focus{outline:none;border-color:var(--vft-accent);box-shadow:0 0 0 3px var(--vft-accent-soft)}
.vft .vft-check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:.9rem;color:var(--vft-muted);cursor:pointer}
.vft .vft-check input{flex:none;width:auto;height:auto;margin:4px 0 0;accent-color:var(--vft-accent)}
.vft-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden}
.vft-report-msg{font-weight:700}
.vft-report-msg:empty{display:none}
.vft-report-msg.is-ok{color:var(--vft-good)}
.vft-report-msg.is-error{color:var(--vft-bad)}
.vft-report .vft-fine a{color:inherit;text-decoration:underline}

/* ---------- Tools hub ---------- */
.vft-hub{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.vft .vft-card{display:flex;flex-direction:column;gap:12px;padding:clamp(24px,2.6vw,36px);background:var(--vft-surface);border:1px solid var(--vft-line);box-shadow:var(--vft-shadow);color:var(--vft-ink);text-decoration:none;transition:border-color .15s,transform .15s}
.vft .vft-card:hover{border-color:var(--vft-accent);transform:translateY(-3px)}
.vft .vft-card:focus-visible{outline:2px solid var(--vft-accent);outline-offset:3px}
.vft .vft-card .vft-eyebrow{margin:0}
.vft-card-title{font-family:var(--vft-head);font-weight:600;font-size:1.5rem;letter-spacing:-.03em;line-height:1.15}
.vft-card-blurb{flex:1;color:var(--vft-muted)}
.vft-card-go{color:var(--vft-accent-ink);font-weight:800;font-size:.92rem}
@media (prefers-reduced-motion:reduce){.vft .vft-card{transition:none}.vft .vft-card:hover{transform:none}}

/* Phones: theme shells keep 32px gutters; tighten cards */
@media (max-width:560px){
  .vft-panel{padding:20px}
  .vft-num{width:120px}
}
