/* /free-concept/ page styles.
   Every colour here is one of the theme's existing custom properties, read off
   the live site: --ink #0B0D14, --panel #1F2030, --panel-2 #282A3C,
   --line #2A2A33, --muted #B9B7C9, --muted-2 #8B889E, --purple #FF9D42
   (orange, despite the name), --amber #FFB020. Nothing new is invented. */

.tmfc-hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:26px}
.tmfc-hero-note{color:var(--muted-2);font-size:.86rem}

/* Hero visual: a homepage drawing itself.
   CSS-only on purpose. LiteSpeed delays JS until the first interaction on this
   site, so a scripted animation would sit frozen until the visitor touched
   something, which is the one moment it needs to be moving. Everything below
   stops entirely under prefers-reduced-motion. */
.tmfc-mock{position:relative;border:1px solid var(--line);border-radius:14px;background:var(--panel);
  overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.tmfc-mock-bar{display:flex;gap:6px;align-items:center;padding:10px 12px;background:var(--panel-2);
  border-bottom:1px solid var(--line)}
.tmfc-mock-bar i{width:9px;height:9px;border-radius:50%;background:#3A3C50;flex:0 0 auto}
.tmfc-mock-bar i:first-child{background:var(--purple)}
.tmfc-mock-bar u{flex:1;height:7px;margin-left:8px;border-radius:4px;background:#33354A;text-decoration:none}
.tmfc-mock-body{padding:18px;position:relative}

.tmfc-mock-hero{position:relative;height:74px;border-radius:9px;overflow:hidden;
  background:linear-gradient(120deg,var(--purple) 0%,var(--amber) 55%,var(--panel-2) 100%);opacity:.92}
.tmfc-mock-hero b{position:absolute;inset:0;display:block;
  background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.34) 50%,transparent 65%)}

.tmfc-mock-line{height:9px;border-radius:5px;background:#33354A;margin-top:13px}
.tmfc-mock-line.w80{width:80%}
.tmfc-mock-line.w55{width:55%}
.tmfc-mock-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.tmfc-mock-row span{height:42px;border-radius:8px;background:#2C2E42}
.tmfc-mock-cta{margin-top:16px;width:118px;height:26px;border-radius:999px;background:var(--purple);opacity:.9}

/* a pass of light, as though the page were being checked */
.tmfc-mock-scan{position:absolute;left:0;right:0;top:0;height:120px;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(255,157,66,.13) 55%,transparent);opacity:0}
/* the designer's pointer */
.tmfc-mock-cursor{position:absolute;width:13px;height:13px;border-radius:50%;
  border:2px solid var(--purple-2);background:rgba(255,157,66,.22);opacity:0;left:28%;top:62%}
/* the score, landing last */
.tmfc-mock-badge{position:absolute;right:14px;bottom:14px;display:flex;align-items:baseline;gap:2px;
  padding:7px 12px;border-radius:999px;background:var(--ink);border:1px solid #3A3146;opacity:0;transform:translateY(6px)}
.tmfc-mock-badge em{font-style:normal;font-weight:700;font-size:1rem;color:var(--purple)}
.tmfc-mock-badge i{font-style:normal;font-size:.66rem;color:var(--muted-2)}

@media (prefers-reduced-motion:no-preference){
  .tmfc-mock-hero{animation:tmfcHero 9s ease-in-out infinite}
  .tmfc-mock-hero b{animation:tmfcSheen 9s ease-in-out infinite}
  .tmfc-mock-bar u{animation:tmfcBar 9s ease-in-out infinite}
  .tmfc-mock-line.w80{animation:tmfcDraw80 9s ease-in-out infinite}
  .tmfc-mock-line.w55{animation:tmfcDraw55 9s ease-in-out infinite}
  .tmfc-mock-row span{animation:tmfcCard 9s ease-in-out infinite;opacity:0}
  .tmfc-mock-row span:nth-child(2){animation-delay:.18s}
  .tmfc-mock-row span:nth-child(3){animation-delay:.36s}
  .tmfc-mock-cta{animation:tmfcCta 9s ease-in-out infinite}
  .tmfc-mock-scan{animation:tmfcScan 9s ease-in-out infinite}
  .tmfc-mock-cursor{animation:tmfcCursor 9s ease-in-out infinite}
  .tmfc-mock-badge{animation:tmfcBadge 9s ease-in-out infinite}

  @keyframes tmfcHero{0%,4%{clip-path:inset(0 100% 0 0)}16%,100%{clip-path:inset(0 0 0 0)}}
  @keyframes tmfcSheen{0%,20%{transform:translateX(-120%)}38%,100%{transform:translateX(120%)}}
  @keyframes tmfcBar{0%,2%{width:0}12%,100%{width:auto;max-width:100%}}
  @keyframes tmfcDraw80{0%,16%{transform:scaleX(0)}26%,100%{transform:scaleX(1)}}
  @keyframes tmfcDraw55{0%,20%{transform:scaleX(0)}30%,100%{transform:scaleX(1)}}
  @keyframes tmfcCard{0%,30%{opacity:0;transform:translateY(12px)}42%,100%{opacity:1;transform:none}}
  @keyframes tmfcCta{0%,44%{opacity:0;transform:translateY(10px)}54%,100%{opacity:.9;transform:none}}
  @keyframes tmfcScan{0%,56%{opacity:0;transform:translateY(-40%)}64%{opacity:1}78%{opacity:1;transform:translateY(240%)}84%,100%{opacity:0;transform:translateY(240%)}}
  @keyframes tmfcCursor{0%,40%{opacity:0;left:28%;top:62%}
    48%{opacity:1;left:28%;top:62%}
    58%{opacity:1;left:62%;top:40%}
    70%{opacity:1;left:44%;top:74%}
    80%{opacity:0;left:44%;top:74%}100%{opacity:0}}
  @keyframes tmfcBadge{0%,80%{opacity:0;transform:translateY(6px)}88%,96%{opacity:1;transform:none}100%{opacity:0;transform:translateY(6px)}}
}
.tmfc-mock-line{transform-origin:left center}

/* The two-part offer. The lead part is visually heavier on purpose: the
   concept is the product and the check is the hook, and the page should not
   pretend otherwise. */
.tmfc-parts{display:grid;grid-template-columns:1.15fr 1fr;gap:22px;margin-top:30px}
.tmfc-part{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:28px}
.tmfc-part-lead{background:linear-gradient(170deg,var(--panel-2) 0%,var(--panel) 62%);border-color:#3A3146}
.tmfc-part-tag{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--purple);margin-bottom:12px}
.tmfc-part h3{margin:0 0 10px;font-size:1.3rem;line-height:1.25}
.tmfc-part>p{color:var(--muted);margin:0 0 16px}
.tmfc-list{list-style:none;margin:0;padding:0}
.tmfc-list li{position:relative;padding-left:24px;margin-bottom:9px;color:var(--muted);font-size:.94rem}
.tmfc-list li::before{content:"";position:absolute;left:0;top:.52em;width:9px;height:9px;border-radius:50%;border:2px solid var(--purple)}

/* Form + aside */
.tmfc-start{display:grid;grid-template-columns:1.5fr .9fr;gap:24px;align-items:start;margin-top:30px}

/* Results */
.tmfc-score{display:flex;align-items:center;gap:18px;margin:4px 0 20px}
.tmfc-score-ring{position:relative;display:grid;place-items:center;width:92px;height:92px;border-radius:50%;
  background:conic-gradient(var(--purple) calc(var(--pct,0)*1%),#2B2D40 0);flex:0 0 auto}
.tmfc-score-ring::after{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--panel)}
.tmfc-score-ring span,.tmfc-score-ring small{position:relative;z-index:1}
.tmfc-score-ring span{font-size:1.65rem;font-weight:700;line-height:1}
.tmfc-score-ring small{font-size:.7rem;color:var(--muted-2)}
.tmfc-score-meta strong{display:block;font-size:1.05rem;word-break:break-word}
.tmfc-score-meta span{color:var(--muted-2);font-size:.88rem}

.tmfc-checks{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.tmfc-checks li{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.tmfc-pip{width:10px;height:10px;border-radius:50%;margin-top:.42em}
.tmfc-pip.pass{background:#49C17E}
.tmfc-pip.warn{background:var(--amber)}
.tmfc-pip.fail{background:#E8663F}
.tmfc-check-label{font-weight:600}
.tmfc-check-detail{color:var(--muted);font-size:.92rem;margin-top:2px}
.tmfc-check-why{color:var(--muted-2);font-size:.85rem;margin-top:5px}
.tmfc-caveat{color:var(--muted-2);font-size:.84rem;margin-top:18px;line-height:1.6}

.tmfc-err{color:#F0A08A;font-size:.92rem}

@media (max-width:980px){
  .tmfc-parts,.tmfc-start{grid-template-columns:1fr}
}
@media (max-width:560px){
  .tmfc-part{padding:22px}
  .tmfc-score{gap:14px}
  .tmfc-score-ring{width:78px;height:78px}
}
@media (prefers-reduced-motion:reduce){
  .tmfc-mock{box-shadow:none}
}

/* Consent row. The checkbox is the thing that makes the terms bind, so it is
   given real weight rather than being tucked under the button as fine print. */
.tmfc-agree{margin:22px 0 4px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:rgba(255,157,66,.045)}
.tmfc-agree label{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;cursor:pointer;margin:0}
.tmfc-agree input{width:19px;height:19px;margin:1px 0 0;accent-color:var(--purple);flex:0 0 auto;cursor:pointer}
.tmfc-agree span{color:var(--muted);font-size:.88rem;line-height:1.55}
.tmfc-agree a{color:var(--purple-2);text-decoration:underline}
.tmfc-success-sub{color:var(--muted-2);font-size:.86rem;margin-top:12px}
.tmfc-success-sub a{color:var(--purple-2)}

/* Terms page */
.hero.hero-short{padding-bottom:12px}
.tmfc-legal{max-width:72ch;margin:0 auto}
.tmfc-legal-lead{font-size:1.05rem;line-height:1.7;color:var(--purple-text);border-left:3px solid var(--purple);padding:4px 0 4px 18px;margin:0 0 34px}
.tmfc-legal h2{font-size:1.18rem;margin:34px 0 10px;line-height:1.3}
.tmfc-legal p{color:var(--muted);line-height:1.75;margin:0 0 12px}
.tmfc-legal ul{margin:0 0 14px;padding-left:20px}
.tmfc-legal li{color:var(--muted);line-height:1.7;margin-bottom:9px}
.tmfc-legal strong{color:var(--paper)}
.tmfc-legal a{color:var(--purple-2)}

/* Persistent entry point. Bottom-LEFT on purpose: the theme's own sticky
   "Book a Call" and the cookie notice both live on the right/bottom-right. */
.tmfc-pill{position:fixed;left:18px;bottom:18px;z-index:9000;display:none;align-items:center;gap:10px;
  padding:11px 16px;border-radius:999px;background:var(--panel-2);border:1px solid #3A3146;
  box-shadow:0 14px 34px rgba(0,0,0,.5);max-width:calc(100vw - 36px)}
.tmfc-pill.show{display:flex}
.tmfc-pill a{color:var(--paper);font-size:.86rem;font-weight:700;text-decoration:none;white-space:nowrap}
.tmfc-pill a span{color:var(--purple)}
.tmfc-pill button{background:none;border:0;color:var(--muted-2);cursor:pointer;font-size:17px;line-height:1;padding:3px 2px}
.tmfc-pill button:hover{color:var(--paper)}

/* Exit modal */
.tmfc-exit{position:fixed;inset:0;z-index:9500;display:none;align-items:center;justify-content:center;padding:20px;
  background:rgba(6,7,12,.72)}
.tmfc-exit.show{display:flex}
.tmfc-exit-box{position:relative;width:min(520px,100%);background:var(--panel);border:1px solid #3A3146;
  border-radius:18px;padding:34px 32px;box-shadow:0 40px 90px rgba(0,0,0,.6)}
.tmfc-exit h2{margin:0 0 10px;font-size:1.5rem;line-height:1.22}
.tmfc-exit p{color:var(--muted);line-height:1.65;margin:0 0 20px}
.tmfc-exit .tmfc-exit-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.tmfc-exit .btn{white-space:nowrap}
.tmfc-exit-no{background:none;border:0;color:var(--muted-2);text-decoration:underline;cursor:pointer;font:inherit;font-size:.88rem}
.tmfc-exit-close{position:absolute;top:12px;right:14px;background:none;border:0;color:var(--muted-2);
  font-size:24px;line-height:1;cursor:pointer;padding:6px 8px;border-radius:8px}
.tmfc-exit-close:hover{color:var(--paper)}
.tmfc-exit-close:focus-visible,.tmfc-exit-no:focus-visible{outline:3px solid var(--purple);outline-offset:2px}
.tmfc-exit-eyebrow{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--purple);margin:0 0 12px}

@media (max-width:560px){
  .tmfc-pill{left:12px;bottom:12px;padding:10px 14px}
  .tmfc-pill a{font-size:.8rem;white-space:normal}
  .tmfc-exit-box{padding:28px 22px}
  .tmfc-exit h2{font-size:1.3rem}
}
@media (prefers-reduced-motion:no-preference){
  .tmfc-exit.show .tmfc-exit-box{animation:tmfcIn .22s ease-out}
  @keyframes tmfcIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}

/* Secondary header CTA, inserted in header.php before .nav-cta.
   Desktop only: at 900px and below the theme swaps to the burger, and the bar
   already holds brand + CTA + burger with no spare room at 360px, so a second
   button there would overflow. Mobile gets the pill instead. */
.nav-cta-free{display:none}
@media(min-width:901px){
  .nav-cta-free{display:inline-block;margin-right:10px;background:transparent;color:var(--paper);
    border:1px solid #3A3146;font-weight:650;font-size:13.5px;padding:12px 18px;border-radius:999px;
    text-decoration:none;white-space:nowrap;transition:border-color .15s,color .15s,transform .12s}
  .nav-cta-free:hover{border-color:var(--purple);color:var(--purple-2);transform:translateY(-1px)}
  .nav-cta-free:focus-visible{outline:3px solid var(--purple);outline-offset:2px}
}


/* Mobile-menu variant, inside the burger panel. Shown only where the desktop
   button is hidden, so the offer has exactly one entry point at any width. */
.nav-cta-free-m{display:none}
@media(max-width:900px){
  .nav-cta-free-m{display:block;background:transparent;border:1px solid #3A3146;color:var(--paper)}
  .nav-cta-free-m:hover{border-color:var(--purple);color:var(--purple-2)}
}

/* FIX-20261002
   1) The nav button text computed to rgb(35,19,1), a near-black on a dark
      header, so it read as an empty pill. That colour comes from a style
      block echoed late in wp_head, which a plugin stylesheet cannot outrank
      by load order, so it is forced here with two-class specificity. Scoped
      to this one button on purpose.
   2) .tmfc-mock measured 156px inside a 502px flex column: it had no width
      of its own, and a flex item shrinks to its content. */
@media(min-width:901px){
  .nav-cta.nav-cta-free{color:#F4F3F8 !important;background:transparent !important}
  .nav-cta.nav-cta-free:hover{color:#FFCE8A !important;border-color:#FF9D42}
}
@media(max-width:900px){
  .nav-cta.call.nav-cta-free-m{color:#F4F3F8 !important;background:transparent !important}
}
.tmfc-mock{width:100%;max-width:440px;flex:1 1 auto;align-self:center}

/* FIX-20261002b: make the Free Concept button easy to see in the menu.
   It was an outline pill with a thin grey border (desktop) and an outline row inside
   the hamburger (<=900px). Amber tint, amber border, a pulsing dot. Hover fills solid.
   Kept visually distinct from the solid amber Book button next to it. */
@keyframes tmfc-nav-dot{0%{box-shadow:0 0 0 0 rgba(255,157,66,.55)}70%,100%{box-shadow:0 0 0 7px rgba(255,157,66,0)}}
@media (min-width:901px){
  .nav-cta.nav-cta-free{display:inline-flex;align-items:center;gap:8px;border-color:#FF9D42;background:rgba(255,157,66,.14) !important;color:#FFCE8A !important;font-weight:700}
  .nav-cta.nav-cta-free::before{content:"";width:7px;height:7px;border-radius:50%;background:#FF9D42;animation:tmfc-nav-dot 2.4s ease-out infinite}
  .nav-cta.nav-cta-free:hover{background:#FF9D42 !important;color:#231301 !important;border-color:#FF9D42}
  .nav-cta.nav-cta-free:hover::before{background:#231301;animation:none}
}
@media (max-width:900px){
  .nav-cta.call.nav-cta-free-m{display:flex;align-items:center;justify-content:center;gap:10px;border-color:#FF9D42;background:rgba(255,157,66,.14) !important;color:#FFCE8A !important;font-weight:700}
  .nav-cta.call.nav-cta-free-m::before{content:"";width:8px;height:8px;border-radius:50%;background:#FF9D42;animation:tmfc-nav-dot 2.4s ease-out infinite}
  .nav-cta.call.nav-cta-free-m:hover,.nav-cta.call.nav-cta-free-m:active{background:#FF9D42 !important;color:#231301 !important}
  .nav-cta.call.nav-cta-free-m:hover::before{background:#231301;animation:none}
}
@media (prefers-reduced-motion:reduce){.nav-cta.nav-cta-free::before,.nav-cta.call.nav-cta-free-m::before{animation:none}}
/* FIX-20261002c: the Free Concept row now leads the phone menu (markup moved in nav-v2.php). */
@media (max-width:900px){
  .tm-mob-free{padding:8px 0 12px;margin-bottom:2px;border-bottom:1px solid rgba(255,255,255,.08)}
  .tm-mob-free .nav-cta-free-m{margin:0;padding:15px 20px;font-size:15.5px}
}

/* FIX-20261003 exit popup redesign: two columns, the funnel's animated mock-up on the left, a stronger offer on the right. Trigger logic (promo.js) is unchanged. */
.tmfc-exit{background:rgba(6,7,12,.8);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.tmfc-exit .tmfc-exit-box{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);width:min(900px,100%);max-height:calc(100vh - 32px);overflow:hidden;padding:0;border-color:#4a3826;box-shadow:0 50px 120px rgba(0,0,0,.7),0 0 0 1px rgba(255,157,66,.2),0 0 90px rgba(255,157,66,.14)}
.tmfc-exit .tmfc-exit-box::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:3;background:linear-gradient(90deg,var(--purple),var(--amber),rgba(255,157,66,0))}
.tmfc-exit-visual{position:relative;display:flex;align-items:center;justify-content:center;padding:44px 30px;overflow:hidden;background:radial-gradient(120% 90% at 15% 8%,rgba(255,157,66,.34),rgba(255,157,66,0) 62%),radial-gradient(90% 70% at 95% 100%,rgba(255,206,138,.14),rgba(255,206,138,0) 60%),linear-gradient(160deg,var(--panel-2),#14151f)}
.tmfc-exit-visual .tmfc-mock{width:100%;max-width:330px;flex:none;transform:rotate(-2.2deg);box-shadow:0 34px 70px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.05)}
.tmfc-exit-tag{position:absolute;left:20px;top:20px;z-index:2;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#231301;background:var(--purple);padding:6px 10px;border-radius:3px;font-weight:700}
.tmfc-exit-copy{padding:46px 40px 34px;display:flex;flex-direction:column;align-items:flex-start}
.tmfc-exit .tmfc-exit-eyebrow{margin:0 0 14px}
.tmfc-exit h2{margin:0 0 14px;font-family:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;font-size:clamp(1.75rem,3.1vw,2.3rem);line-height:1.08;letter-spacing:-.01em;color:var(--paper)}
.tmfc-exit h2 em{font-style:normal;color:var(--purple)}
.tmfc-exit .tmfc-exit-lead{margin:0 0 18px;font-size:1rem;color:var(--muted)}
.tmfc-exit-list{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:10px;width:100%}
.tmfc-exit-list li{position:relative;padding-left:30px;color:var(--paper);font-size:.95rem;line-height:1.45}
.tmfc-exit-list li::before{content:"";position:absolute;left:0;top:.12em;width:19px;height:19px;border-radius:50%;background:rgba(255,157,66,.18)}
.tmfc-exit-list li::after{content:"";position:absolute;left:6.5px;top:.36em;width:5px;height:9px;border:solid var(--purple);border-width:0 2px 2px 0;transform:rotate(45deg)}
.tmfc-exit .tmfc-exit-actions{gap:18px;margin:0 0 16px}
.tmfc-exit .tmfc-exit-actions .btn{padding:1em 1.7em;font-size:1.02rem;box-shadow:0 12px 34px rgba(255,157,66,.34)}
.tmfc-exit .tmfc-exit-no{font-size:.88rem;padding:10px 4px}
.tmfc-exit .tmfc-exit-note{margin:0;font-size:.82rem;color:var(--muted-2)}
.tmfc-exit .tmfc-exit-close{z-index:4;top:14px;right:14px;width:34px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;background:rgba(10,11,18,.55);border:1px solid rgba(255,255,255,.12)}
@media (prefers-reduced-motion:no-preference){
  .tmfc-exit.show .tmfc-exit-box{animation:tmfcPop .5s cubic-bezier(.2,.8,.2,1)}
  .tmfc-exit.show .tmfc-exit-copy>*{animation:tmfcRise .55s cubic-bezier(.2,.8,.2,1) both}
  .tmfc-exit.show .tmfc-exit-copy>*:nth-child(2){animation-delay:.06s}
  .tmfc-exit.show .tmfc-exit-copy>*:nth-child(3){animation-delay:.12s}
  .tmfc-exit.show .tmfc-exit-copy>*:nth-child(4){animation-delay:.18s}
  .tmfc-exit.show .tmfc-exit-copy>*:nth-child(5){animation-delay:.24s}
  .tmfc-exit.show .tmfc-exit-copy>*:nth-child(6){animation-delay:.3s}
  @keyframes tmfcPop{from{opacity:0;transform:translateY(22px) scale(.965)}to{opacity:1;transform:none}}
  @keyframes tmfcRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
}
@media (max-width:760px){
  .tmfc-exit{padding:12px;align-items:center}
  .tmfc-exit .tmfc-exit-box{grid-template-columns:1fr;overflow-y:auto;max-height:calc(100vh - 24px)}
  .tmfc-exit-visual{height:128px;padding:34px 26px 0;align-items:flex-start}
  .tmfc-exit-visual::after{content:"";position:absolute;left:0;right:0;bottom:0;height:46px;background:linear-gradient(180deg,rgba(20,21,31,0),#1c1d2b)}
  .tmfc-exit-tag{left:14px;top:14px}
  .tmfc-exit-copy{padding:24px 22px 26px}
  .tmfc-exit h2{font-size:1.65rem}
  .tmfc-exit .tmfc-exit-actions{width:100%;flex-direction:column;align-items:stretch;gap:6px;text-align:center}
  .tmfc-exit .tmfc-exit-actions .btn{width:100%;text-align:center}
  .tmfc-exit .tmfc-exit-no{min-height:44px}
}