/* ==========================================================================
   TFH Hope — white · warm yellow · light purple
   ========================================================================== */
:root{
  --white:#fff;
  --yellow:#FFC83D;--yellow-2:#FFD97A;--yellow-soft:#FFF6DA;--yellow-deep:#E0A300;
  --purple:#B9A2F2;--purple-2:#D8CBF8;--purple-soft:#F3EEFF;--purple-deep:#5E3FA8;
  --ink:#2B2447;--muted:#5C5675;--line:#E9E1FA;
  --r-sm:14px;--r:22px;--r-lg:34px;
  --shadow-sm:0 4px 14px rgba(94,63,168,.08);
  --shadow:0 16px 44px rgba(94,63,168,.14);
  --shadow-y:0 10px 26px rgba(224,163,0,.34);
  --ff-h:'Fredoka','Nunito',system-ui,sans-serif;
  --ff-b:'Nunito',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --wrap:1200px;
  --ease:cubic-bezier(.22,1,.36,1);
  --rv:opacity .8s var(--ease) var(--d,0ms),translate .8s var(--ease) var(--d,0ms),scale .8s var(--ease) var(--d,0ms);
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--ff-b);font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,video,iframe{max-width:100%;display:block}
img{height:auto}
a{color:var(--purple-deep);text-decoration-color:var(--purple-2);text-underline-offset:3px;transition:color .2s}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--purple-deep);outline-offset:3px;border-radius:8px}
h1,h2,h3,h4{font-family:var(--ff-h);font-weight:600;line-height:1.15;margin:0 0 .6em;color:var(--ink);letter-spacing:-.005em}
h1{font-size:clamp(2.1rem,4.4vw,3.5rem)}
h2{font-size:clamp(1.8rem,3.6vw,2.7rem)}
h3{font-size:clamp(1.15rem,1.8vw,1.4rem)}
h4{font-size:1.05rem}
p{margin:0 0 1.1em}
ul,ol{margin:0 0 1.1em;padding-left:1.2em}
.screen-reader-text,.tfh-hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tfh-skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:10px;z-index:1000}
.tfh-skip:focus{left:8px;color:#fff}
.tfh-wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.tfh-narrow{width:min(100% - 2.5rem,820px)}
.tfh-center{text-align:center}
.hl{background:linear-gradient(transparent 62%,var(--yellow-2) 62% 92%,transparent 92%);padding:0 .1em;border-radius:4px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.hl-p{color:var(--purple-deep)}
.tfh-svg{flex:none}

/* ---------- progress bar ---------- */
.tfh-progress-bar{position:fixed;inset:0 0 auto 0;height:4px;z-index:200;pointer-events:none}
.tfh-progress-bar i{display:block;height:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--yellow),var(--purple))}

/* ---------- announcement bar ---------- */
.tfh-topbar{background:var(--yellow);color:var(--ink);font-size:.92rem;font-weight:700;position:relative;z-index:60}
.tfh-topbar.is-gone{display:none}
.tfh-topbar__in{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.5rem 2.2rem .5rem 0;position:relative;text-align:center}
.tfh-topbar p{margin:0;line-height:1.35}
.tfh-topbar a{color:var(--ink);font-weight:800;margin-left:.4rem;text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:rgba(43,36,71,.35)}
.tfh-topbar__dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--purple-deep);margin-right:.5rem;animation:tfh-pulse 2s infinite}
.tfh-topbar__x{position:absolute;right:0;top:50%;translate:0 -50%;background:none;border:0;color:var(--ink);cursor:pointer;padding:.4rem;border-radius:50%;display:grid;place-items:center;transition:background .2s}
.tfh-topbar__x:hover{background:rgba(43,36,71,.1)}

/* ---------- header ---------- */
.tfh-header{position:sticky;top:0;z-index:100;background:#fff;transition:transform .45s var(--ease),box-shadow .3s,background .3s}
.tfh-header.is-stuck{box-shadow:0 6px 26px rgba(94,63,168,.12)}
.tfh-header.is-hidden{transform:translateY(-110%)}
.tfh-header__in{display:flex;align-items:center;gap:1.25rem;min-height:82px;transition:min-height .3s var(--ease)}
.tfh-header.is-stuck .tfh-header__in{min-height:68px}
.tfh-logo{display:flex;align-items:center;flex:none;text-decoration:none}
.tfh-logo__img{height:42px;width:auto;transition:height .3s var(--ease)}
.tfh-header.is-stuck .tfh-logo__img{height:36px}
.tfh-logo__text{font-family:var(--ff-h);font-weight:700;font-size:1.3rem;color:var(--ink)}
.tfh-nav{margin-left:auto;display:flex;align-items:center;min-width:0}
.tfh-menu,.tfh-menu ul{list-style:none;margin:0;padding:0}
.tfh-menu{display:flex;align-items:center;gap:.1rem}
.tfh-menu>li{position:relative;display:flex;align-items:center}
.tfh-menu a{display:block;padding:.6rem .7rem;border-radius:999px;color:var(--ink);font-weight:800;font-size:.97rem;text-decoration:none;white-space:nowrap;position:relative;transition:background .25s,color .25s}
.tfh-menu>li>a:hover,.tfh-menu>li:focus-within>a,.tfh-menu>li.is-open>a{background:var(--purple-soft);color:var(--purple-deep)}
.tfh-menu>li.current-menu-item>a,.tfh-menu>li.current-menu-ancestor>a,.tfh-menu>li.current_page_item>a{color:var(--purple-deep)}
.tfh-menu>li.current-menu-item>a::after,.tfh-menu>li.current-menu-ancestor>a::after{content:"";position:absolute;left:50%;bottom:2px;width:18px;height:5px;translate:-50% 0;background:var(--yellow);border-radius:99px}
.tfh-sub-toggle{background:none;border:0;color:var(--ink);cursor:pointer;margin-left:-.5rem;padding:.3rem;border-radius:50%;display:grid;place-items:center;transition:rotate .3s var(--ease)}
.tfh-menu>li:hover>.tfh-sub-toggle,.tfh-menu>li.is-open>.tfh-sub-toggle{rotate:180deg}
.tfh-menu .sub-menu{position:absolute;top:100%;left:50%;translate:-50% 10px;min-width:270px;background:#fff;border-radius:var(--r);padding:.6rem;box-shadow:var(--shadow);border:2px solid var(--line);opacity:0;visibility:hidden;transition:opacity .25s,translate .3s var(--ease),visibility .25s;z-index:5}
.tfh-menu>li:hover>.sub-menu,.tfh-menu>li:focus-within>.sub-menu,.tfh-menu>li.is-open>.sub-menu{opacity:1;visibility:visible;translate:-50% 0}
.tfh-menu .sub-menu a{border-radius:14px;padding:.6rem .9rem;font-weight:700}
.tfh-menu .sub-menu a:hover{background:var(--yellow-soft);color:var(--ink);padding-left:1.2rem}
.tfh-menu .sub-menu a{transition:background .2s,padding .25s var(--ease)}
.tfh-header__actions{display:flex;align-items:center;gap:.8rem;flex:none}
.tfh-phone{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);font-weight:800;font-size:.95rem}
.tfh-phone__ic{width:38px;height:38px;border-radius:50%;background:var(--purple-soft);color:var(--purple-deep);display:grid;place-items:center;transition:background .25s,transform .3s var(--ease)}
.tfh-phone:hover .tfh-phone__ic{background:var(--purple);color:#fff;transform:rotate(-12deg) scale(1.06)}
.tfh-nav__extra,.tfh-mact{display:none}
@media (max-width:1560px){.tfh-phone{display:none}}
@media (max-width:1320px){
  .tfh-header__actions{display:none}
  .tfh-mact{display:flex;align-items:center;gap:.5rem;margin-left:auto}
  .tfh-mact__btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--purple-soft);color:var(--purple-deep);transition:transform .2s}
  .tfh-mact__btn--wa{background:#E3F8EA;color:#128C4A}
  .tfh-mact__btn:active{transform:scale(.92)}
  .tfh-burger{width:46px;height:46px;border-radius:50%;border:0;background:var(--yellow);cursor:pointer;display:grid;place-content:center;gap:5px;padding:0}
  .tfh-burger span{display:block;width:20px;height:2.5px;border-radius:3px;background:var(--ink);transition:transform .35s var(--ease),opacity .2s}
  .tfh-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .tfh-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .tfh-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .tfh-nav{position:fixed;top:0;right:0;height:100dvh;width:min(92vw,420px);background:#fff;z-index:2;margin:0;display:block;padding:5.5rem 1.4rem 2rem;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;pointer-events:auto;translate:105% 0;visibility:hidden;transition:translate .5s var(--ease),visibility 0s .5s;box-shadow:-20px 0 60px rgba(43,36,71,.18);border-radius:var(--r-lg) 0 0 var(--r-lg)}
  body.nav-open .tfh-nav{translate:0 0;visibility:visible;transition:translate .5s var(--ease),visibility 0s}
  .tfh-menu{display:block}
  .tfh-menu>li{display:flex;flex-wrap:wrap;border-bottom:2px dashed var(--line);opacity:0;translate:24px 0}
  body.nav-open .tfh-menu>li{opacity:1;translate:0 0;transition:opacity .5s var(--ease) calc(var(--i,0)*55ms + 150ms),translate .5s var(--ease) calc(var(--i,0)*55ms + 150ms)}
  .tfh-menu>li>a{flex:1;font-family:var(--ff-h);font-size:1.2rem;padding:.9rem .4rem;border-radius:12px}
  .tfh-menu>li.current-menu-item>a::after,.tfh-menu>li.current-menu-ancestor>a::after{display:none}
  .tfh-sub-toggle{margin:0;width:44px;height:44px;background:var(--purple-soft)}
  .tfh-menu .sub-menu{position:static;translate:none!important;opacity:1;visibility:visible;box-shadow:none;border:0;background:transparent;width:100%;min-width:0;max-height:0;overflow:hidden;padding:0 0 0 .6rem;transition:max-height .45s var(--ease)}
  .tfh-menu>li.is-open>.sub-menu{max-height:640px;padding-bottom:.6rem}
  .tfh-nav__extra{display:grid;gap:.8rem;margin-top:1.6rem}
  .tfh-phone-big{display:flex;align-items:center;gap:.6rem;justify-content:center;padding:.9rem;border-radius:999px;background:var(--purple-soft);color:var(--purple-deep);font-weight:800;text-decoration:none;font-size:1.1rem}
  .tfh-scrim{position:fixed;inset:0;background:rgba(43,36,71,.45);z-index:1;opacity:0;visibility:hidden;pointer-events:none;touch-action:none;transition:opacity .35s,visibility .35s}
  body.nav-open .tfh-scrim{opacity:1;visibility:visible;pointer-events:auto}
  /* lock page scroll on <html> (not <body>): a scrolling <body> would unstick the header while the menu is open */
  html.nav-open{overflow:hidden}
}

/* ---------- buttons ---------- */
.tfh-btn{--bg:var(--yellow);--fg:var(--ink);position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.95rem 1.65rem;border-radius:999px;border:2px solid transparent;background:var(--bg);color:var(--fg);font-family:var(--ff-b);font-weight:800;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s,background .25s,color .25s,border-color .25s}
.tfh-btn:hover{color:var(--fg);transform:translateY(-3px)}
.tfh-btn:active{transform:translateY(0) scale(.97)}
.tfh-btn .tfh-svg{transition:transform .3s var(--ease)}
.tfh-btn:hover .tfh-svg{transform:translateX(5px)}
.tfh-btn--yellow{box-shadow:var(--shadow-y)}
.tfh-btn--yellow:hover{background:var(--yellow-2);box-shadow:0 14px 30px rgba(224,163,0,.42)}
.tfh-btn--purple{--bg:var(--purple);--fg:var(--ink);box-shadow:0 10px 24px rgba(94,63,168,.25)}
.tfh-btn--purple:hover{background:var(--purple-2)}
.tfh-btn--ghost{--bg:transparent;border-color:var(--purple);color:var(--ink)}
.tfh-btn--ghost:hover{background:var(--purple-soft);border-color:var(--purple-deep)}
.tfh-btn--sm{padding:.7rem 1.2rem;font-size:.95rem}
.tfh-btn .rip{position:absolute;border-radius:50%;background:rgba(255,255,255,.65);transform:scale(0);animation:tfh-rip .7s ease-out;pointer-events:none}
.tfh-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.6rem 0 .8rem}
.tfh-actions--center{justify-content:center}
.tfh-link{display:inline-flex;align-items:center;gap:.35rem;font-weight:800;text-decoration:none}
.tfh-link .tfh-svg{transition:transform .3s var(--ease)}
.tfh-link:hover .tfh-svg{transform:translateX(5px)}

/* ---------- sections ---------- */
.tfh-sec{position:relative;padding:clamp(3.2rem,7vw,6rem) 0}
.tfh-sec.is-sun,.tfh-sec.is-lav{margin-inline:clamp(.5rem,2vw,1.6rem);border-radius:clamp(28px,4vw,60px);overflow:hidden}
.tfh-sec.is-sun{background:var(--yellow-soft)}
.tfh-sec.is-lav{background:var(--purple-soft)}
.tfh-sec.is-tight{padding:clamp(2rem,4vw,3.2rem) 0}
.tfh-sec__head{max-width:760px;margin:0 0 2.4rem}
.tfh-sec__head.is-center{margin-inline:auto;text-align:center}
.tfh-sec__head p{color:var(--muted);font-size:1.1rem}
.tfh-eyebrow{display:inline-flex;align-items:center;gap:.5rem;padding:.38rem .95rem;border-radius:999px;background:var(--yellow-soft);color:var(--ink);font-weight:800;font-size:.82rem;letter-spacing:.07em;text-transform:uppercase;margin-bottom:1.1rem;border:2px solid var(--yellow-2)}
.tfh-eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--yellow-deep)}
.is-sun .tfh-eyebrow{background:#fff}
.is-lav .tfh-eyebrow{background:#fff;border-color:var(--purple-2)}
.is-lav .tfh-eyebrow::before{background:var(--purple-deep)}
.tfh-lead{font-size:clamp(1.1rem,1.5vw,1.28rem);color:var(--muted);max-width:60ch}
.tfh-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,4.5rem);align-items:center}
.tfh-split.rev>:first-child{order:2}
@media (max-width:900px){.tfh-split{grid-template-columns:1fr}.tfh-split.rev>:first-child{order:0}}
.tfh-grid{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.tfh-grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.tfh-grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.tfh-grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.tfh-pagehead{background:linear-gradient(180deg,var(--purple-soft),#fff);padding:clamp(2.5rem,6vw,4.5rem) 0 2rem}
.tfh-pagehead h1{margin:0}
.tfh-crumbs{font-size:.9rem;font-weight:700;color:var(--muted);margin-bottom:.9rem}
.tfh-crumbs a{text-decoration:none}
.tfh-crumbs i{font-style:normal;margin:0 .2rem;color:var(--purple)}
.tfh-prose{font-size:1.1rem}
.tfh-prose h2{margin-top:1.6em}
.tfh-prose img{border-radius:var(--r);margin:1.4rem 0}
.tfh-prose blockquote{border-left:6px solid var(--yellow);background:var(--yellow-soft);padding:1rem 1.4rem;border-radius:0 var(--r) var(--r) 0;margin:1.6rem 0;font-weight:700}
.tfh-fine{font-size:.9rem;color:var(--muted);text-align:center;margin-top:1.2rem}
.tfh-empty{color:var(--muted);text-align:center}

/* ---------- hero ---------- */
.tfh-hero{padding:clamp(2.6rem,6vw,5rem) 0 clamp(3rem,6vw,5rem);background:linear-gradient(180deg,var(--purple-soft) 0%,#fff 78%);overflow:hidden}
.tfh-hero--slim{padding:clamp(2.4rem,5vw,4rem) 0}
.tfh-hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;position:relative;z-index:2}
.tfh-hero__text h1{margin-bottom:.45em}
.tfh-hero__text .tfh-lead{margin-bottom:0}
.tfh-meta{font-size:.98rem;color:var(--muted);margin:.4rem 0 0}
.tfh-hero__media{position:relative;display:grid;place-items:center}
@media (max-width:900px){.tfh-deco.d1,.tfh-deco.d5{display:none}.tfh-hero__grid{grid-template-columns:1fr}.tfh-hero__media{order:-1;max-width:520px;margin-inline:auto;width:100%}}
.tfh-deco{position:absolute;z-index:1;pointer-events:none;color:var(--yellow);width:48px;height:48px;animation:tfh-float 7s ease-in-out infinite}
.tfh-deco.d1{top:5%;left:47%;width:40px;height:40px;color:var(--yellow-deep);animation-delay:-1s}
.tfh-deco.d2{top:62%;left:46%;width:26px;height:26px;border-radius:50%;background:var(--purple-2);animation-delay:-3s}
.tfh-deco.d3{top:6%;right:4%;width:64px;height:64px;color:var(--purple);animation-delay:-2s}
.tfh-deco.d4{bottom:8%;right:3%;width:54px;height:54px;border-radius:18px;background:var(--yellow-2);opacity:.7;rotate:14deg;animation-delay:-4s}
.tfh-deco.d5{bottom:7%;left:46%;width:38px;height:38px;border:6px solid var(--purple-2);border-radius:50%;animation-delay:-5s}
.tfh-deco .tfh-svg{width:100%;height:100%;fill:currentColor;stroke:none}
.tfh-blob{margin:0;position:relative;border-radius:58% 42% 55% 45%/48% 55% 45% 52%;overflow:hidden;box-shadow:var(--shadow);animation:tfh-morph 14s ease-in-out infinite;background:var(--purple-soft);aspect-ratio:4/3.4;width:100%;border:8px solid #fff;outline:3px solid var(--yellow)}
.tfh-blob img{width:100%;height:100%;object-fit:cover}
.tfh-photo{margin:0;position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);background:var(--purple-soft);aspect-ratio:4/3}
.tfh-photo img{width:100%;height:100%;object-fit:cover}
.tfh-photo.is-missing,.tfh-blob.is-missing{background:linear-gradient(135deg,var(--yellow-soft),var(--purple-soft))}
.tfh-photo.is-missing img,.tfh-blob.is-missing img{display:none}
.tfh-art{width:100%;max-width:520px}
.tfh-art svg{width:100%;height:auto;filter:drop-shadow(0 18px 30px rgba(94,63,168,.14))}
.c-y{fill:var(--yellow)}.c-yd{fill:var(--yellow-deep)}.c-ys{fill:var(--yellow-soft)}.c-p{fill:var(--purple)}.c-p2{fill:var(--purple-2)}.c-ps{fill:var(--purple-soft)}.c-pd{fill:var(--purple-deep)}.c-i{fill:var(--ink)}.c-w{fill:#fff}
.s-y{stroke:var(--yellow)}.s-p{stroke:var(--purple)}.s-p2{stroke:var(--purple-2)}.s-i{stroke:var(--ink)}.s-yd{stroke:var(--yellow-deep)}
.tfh-badge{position:absolute;z-index:3;display:flex;align-items:center;gap:.55rem;background:#fff;padding:.6rem 1rem;border-radius:999px;box-shadow:var(--shadow);font-weight:800;font-size:.92rem;animation:tfh-bob 5s ease-in-out infinite}
.tfh-badge .tfh-svg{color:var(--purple-deep)}
.tfh-badge.b1{top:6%;left:-2%}
.tfh-badge.b2{bottom:8%;right:-1%;animation-delay:-2s}
.tfh-badge.b2 .tfh-svg{color:var(--yellow-deep)}
@media (max-width:600px){.tfh-badge.b1{left:0}.tfh-badge.b2{right:0}}
.tfh-trust{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2.6rem;position:relative;z-index:2}
.tfh-trust span{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:2px solid var(--line);padding:.55rem 1rem;border-radius:999px;font-weight:700;font-size:.93rem;box-shadow:var(--shadow-sm)}
.tfh-trust .tfh-svg{color:var(--purple-deep)}

/* ---------- cards ---------- */
.tfh-card{position:relative;background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:1.6rem;display:flex;flex-direction:column;gap:.35rem;text-decoration:none;color:var(--ink);transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform .3s var(--ease),box-shadow .35s,border-color .3s,var(--rv)}
a.tfh-card:hover,.tfh-card.is-link:hover{border-color:var(--purple);box-shadow:var(--shadow);color:var(--ink)}
.tfh-card h3{margin:.3rem 0 .2rem}
.tfh-card p{margin:0;color:var(--muted);font-size:1rem}
.tfh-card .tfh-link{margin-top:auto;padding-top:.8rem}
.tfh-ico{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:var(--yellow-soft);color:var(--ink);transition:transform .4s var(--ease),background .3s}
.tfh-ico .tfh-svg{width:28px;height:28px}
.tfh-card:hover .tfh-ico{transform:rotate(-8deg) scale(1.1)}
.tfh-grid>.tfh-card:nth-child(3n+2) .tfh-ico{background:var(--purple-soft);color:var(--purple-deep)}
.tfh-grid>.tfh-card:nth-child(3n+3) .tfh-ico{background:#E9F8EF;color:#1E7A4D}
.tfh-grid>.tfh-card:nth-child(3n+1) .tfh-ico{background:var(--yellow-soft);color:#8A5F00}
.tfh-card--soft{background:var(--purple-soft);border-color:transparent}
.tfh-card--sun{background:var(--yellow-soft);border-color:transparent}
.tfh-worry{flex-direction:row;gap:1rem;align-items:flex-start}
.tfh-worry h3{font-size:1.1rem}
.tfh-worry .tfh-ico{flex:none}

/* ---------- lists ---------- */
.tfh-list{list-style:none;padding:0;margin:0 0 1.2rem}
.tfh-list li{position:relative;padding:.3rem 0 .3rem 2.1rem}
.tfh-list li::before{content:"";position:absolute;left:0;top:.5rem;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2447' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/70% no-repeat}
.tfh-list.is-p li::before{background-color:var(--purple-2)}
.tfh-list.cols{columns:2;column-gap:2rem}
.tfh-list.cols li{break-inside:avoid}
@media (max-width:700px){.tfh-list.cols{columns:1}}
.tfh-facts{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:.8rem 0 0}
.tfh-facts li{background:var(--purple-soft);border-radius:999px;padding:.3rem .9rem;font-size:.9rem;font-weight:700}
.tfh-facts b{color:var(--purple-deep)}
.tfh-pending{color:var(--muted);font-style:italic;font-weight:600}
.tfh-note{background:var(--yellow-soft);border-left:6px solid var(--yellow);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:.9rem 1.2rem;font-weight:700;margin:1.2rem 0}
.tfh-note.is-p{background:var(--purple-soft);border-color:var(--purple)}

/* ---------- steps / timeline ---------- */
.tfh-steps{list-style:none;margin:0;padding:0;position:relative;counter-reset:s}
.tfh-steps--v{padding-left:0}
.tfh-steps--v::before{content:"";position:absolute;left:27px;top:20px;bottom:20px;width:5px;border-radius:5px;background:var(--line)}
.tfh-steps--v::after{content:"";position:absolute;left:27px;top:20px;width:5px;border-radius:5px;background:linear-gradient(var(--yellow),var(--purple));height:calc((100% - 40px)*var(--p,0));transition:height .2s linear}
.tfh-steps--v .tfh-step{display:grid;grid-template-columns:60px 1fr;gap:1.4rem;padding-bottom:2.4rem;position:relative;z-index:1}
.tfh-steps--v .tfh-step:last-child{padding-bottom:0}
.tfh-step__n{width:60px;height:60px;border-radius:50%;background:#fff;border:4px solid var(--line);display:grid;place-items:center;font-family:var(--ff-h);font-weight:700;font-size:1.4rem;transition:background .4s,border-color .4s,transform .5s var(--ease)}
.tfh-step.is-active .tfh-step__n{background:var(--yellow);border-color:var(--yellow);transform:scale(1.12) rotate(-6deg)}
.tfh-step__body{background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:1.4rem 1.6rem;box-shadow:var(--shadow-sm)}
.tfh-step__body h3{margin-bottom:.35rem}
.tfh-step__body p:last-child{margin-bottom:0}
.tfh-steps--h{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1.4rem;counter-reset:s}
.tfh-steps--h .tfh-step{position:relative;background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:2.9rem 1.4rem 1.6rem;transition:transform .35s var(--ease),box-shadow .3s,var(--rv)}
.tfh-steps--h .tfh-step:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.tfh-steps--h .tfh-step__n{position:absolute;top:-26px;left:1.2rem;background:var(--yellow);border-color:#fff;box-shadow:var(--shadow-y)}
.tfh-steps--h .tfh-step:nth-child(even) .tfh-step__n{background:var(--purple);box-shadow:0 10px 24px rgba(94,63,168,.25)}
.tfh-steps--h .tfh-step:not(:last-child)::after{content:"";position:absolute;top:2px;right:-1.4rem;width:1.4rem;border-top:4px dotted var(--purple-2)}
@media (max-width:900px){.tfh-steps--h .tfh-step::after{display:none}}
.tfh-steps--h h3{margin-bottom:.3rem}
.tfh-steps--h p{margin:0;color:var(--muted)}

/* ---------- bubbles (familiar) ---------- */
.tfh-familiar{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem;margin-bottom:1.6rem}
.tfh-bubble{position:relative;text-align:left;font:inherit;font-weight:700;color:var(--ink);background:#fff;border:3px solid transparent;border-radius:28px 28px 28px 6px;padding:1.2rem 3.4rem 1.2rem 1.4rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),border-color .3s,background .3s,box-shadow .3s,var(--rv)}
.tfh-bubble:nth-child(even){border-radius:28px 28px 6px 28px}
.tfh-bubble:hover{transform:translateY(-4px) rotate(-.6deg);box-shadow:var(--shadow)}
.tfh-bubble i{position:absolute;right:1rem;top:50%;translate:0 -50%;width:30px;height:30px;border-radius:50%;border:3px solid var(--purple-2);transition:background .3s,border-color .3s,transform .4s var(--ease)}
.tfh-bubble[aria-pressed="true"]{background:var(--yellow-soft);border-color:var(--yellow)}
.tfh-bubble[aria-pressed="true"] i{background:var(--yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2447' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/70% no-repeat;border-color:var(--yellow);transform:scale(1.15) rotate(8deg)}
.tfh-familiar__foot{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.6rem;justify-content:space-between}
.tfh-familiar__foot p{margin:0;max-width:60ch;font-weight:700;font-size:1.1rem}
.tfh-familiar__cta{opacity:0;translate:0 12px;pointer-events:none;transition:opacity .5s var(--ease),translate .5s var(--ease)}
.tfh-familiar.has-yes .tfh-familiar__cta{opacity:1;translate:0 0;pointer-events:auto}
.tfh-familiar__count{display:inline-block;background:var(--purple);color:var(--ink);border-radius:999px;padding:.1rem .8rem;font-weight:800;font-size:.9rem;margin-right:.4rem}

/* ---------- accordion ---------- */
.tfh-acc-list{display:grid;gap:.8rem}
.tfh-acc{background:#fff;border:2px solid var(--line);border-radius:var(--r);transition:border-color .3s,box-shadow .3s,var(--rv)}
.tfh-acc[open],.tfh-acc.is-open{border-color:var(--purple);box-shadow:var(--shadow-sm)}
.tfh-acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.4rem;font-family:var(--ff-h);font-weight:500;font-size:1.15rem}
.tfh-acc summary::-webkit-details-marker{display:none}
.tfh-acc__ic{flex:none;width:34px;height:34px;border-radius:50%;background:var(--yellow);position:relative;transition:rotate .4s var(--ease),background .3s}
.tfh-acc__ic::before,.tfh-acc__ic::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:3px;border-radius:3px;background:var(--ink);translate:-50% -50%}
.tfh-acc__ic::after{rotate:90deg;transition:rotate .4s var(--ease)}
.tfh-acc.is-open .tfh-acc__ic{background:var(--purple);rotate:180deg}
.tfh-acc.is-open .tfh-acc__ic::after{rotate:0deg}
.tfh-acc__body{overflow:hidden;height:auto;transition:height .38s var(--ease)}
.tfh-acc__body>div{padding:0 1.4rem 1.3rem;color:var(--muted)}
.tfh-acc__body>div>:last-child{margin-bottom:0}
.tfh-faq__bar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.6rem}
.tfh-faq__search{flex:1 1 280px;position:relative}
.tfh-faq__search input{width:100%;padding:.95rem 1.2rem .95rem 3rem;border-radius:999px;border:2px solid var(--line);font:inherit;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E3FA8' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") 1rem center/22px no-repeat;transition:border-color .2s,box-shadow .2s}
.tfh-faq__search input:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 5px rgba(185,162,242,.3)}
.tfh-faq__group{margin-bottom:2.4rem}
.tfh-faq__group h2{font-size:1.5rem;display:flex;align-items:center;gap:.6rem}
.tfh-faq__group h2::before{content:"";width:14px;height:14px;border-radius:5px;background:var(--yellow);rotate:15deg}
.tfh-faq__empty{display:none;text-align:center;color:var(--muted);padding:2rem}
.tfh-faq.no-hits .tfh-faq__empty{display:block}
.is-hidden-item{display:none!important}

/* ---------- chips & filters ---------- */
.tfh-filter{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.8rem}
.tfh-chip{font:inherit;font-weight:800;font-size:.95rem;border:2px solid var(--line);background:#fff;color:var(--ink);padding:.55rem 1.1rem;border-radius:999px;cursor:pointer;text-decoration:none;transition:background .25s,border-color .25s,transform .25s var(--ease),color .25s}
.tfh-chip:hover{border-color:var(--purple);transform:translateY(-2px);color:var(--ink)}
.tfh-chip.is-on{background:var(--yellow);border-color:var(--yellow);box-shadow:var(--shadow-y)}

/* ---------- tabs ---------- */
.tfh-tabs__nav{position:relative;display:flex;gap:.4rem;overflow-x:auto;padding:.4rem;background:#fff;border-radius:999px;border:2px solid var(--line);scrollbar-width:none;margin-bottom:1.6rem;max-width:100%}
.tfh-tabs__nav::-webkit-scrollbar{display:none}
.tfh-tabs__tab{position:relative;z-index:1;flex:none;font:inherit;font-weight:800;border:0;background:none;padding:.7rem 1.2rem;border-radius:999px;cursor:pointer;color:var(--muted);transition:color .3s}
.tfh-tabs__tab[aria-selected="true"]{color:var(--ink)}
.tfh-tabs__ink{position:absolute;z-index:0;top:.4rem;bottom:.4rem;left:0;width:0;border-radius:999px;background:var(--yellow);box-shadow:var(--shadow-y);transition:left .45s var(--ease),width .45s var(--ease)}
.tfh-tabs__panel{display:none}
.tfh-tabs__panel.is-on{display:block;animation:tfh-pop .55s var(--ease)}
.tfh-compare{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
@media (max-width:760px){.tfh-compare{grid-template-columns:1fr}}
.tfh-compare>div{border-radius:var(--r);padding:1.6rem}
.tfh-compare h3{display:flex;align-items:center;gap:.6rem}
.tfh-compare .ok{background:var(--purple-soft)}
.tfh-compare .talk{background:var(--yellow-soft)}

/* ---------- finder ---------- */
.tfh-finder__opts{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem}
.tfh-finder__res{display:none;background:#fff;border:3px solid var(--yellow);border-radius:var(--r-lg);padding:clamp(1.3rem,3vw,2.2rem);box-shadow:var(--shadow)}
.tfh-finder__res.is-on{display:grid;grid-template-columns:auto 1fr;gap:1.2rem 1.6rem;align-items:center;animation:tfh-pop .55s var(--ease)}
.tfh-finder__res .tfh-ico{width:72px;height:72px;border-radius:24px}
.tfh-finder__res h3{margin:0 0 .3rem;font-size:1.5rem}
.tfh-finder__res p{margin:0 0 .8rem;color:var(--muted)}
.tfh-finder__hint{color:var(--muted);font-weight:700}
@media (max-width:600px){.tfh-finder__res.is-on{grid-template-columns:1fr}}

/* ---------- tables ---------- */
.tfh-table-wrap{overflow-x:auto;border-radius:var(--r);border:2px solid var(--line);background:#fff}
.tfh-table{width:100%;border-collapse:collapse;min-width:520px}
.tfh-table th{background:var(--yellow-soft);text-align:left;font-family:var(--ff-h);font-weight:600;padding:1rem 1.2rem}
.tfh-table td{padding:1rem 1.2rem;border-top:2px solid var(--line);vertical-align:top}
.tfh-table tr:hover td{background:var(--purple-soft)}
.tfh-table td:first-child{font-weight:800}

/* ---------- compare two columns (learning) ---------- */
.tfh-two{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
@media (max-width:760px){.tfh-two{grid-template-columns:1fr}}
.tfh-two>div{border-radius:var(--r-lg);padding:clamp(1.4rem,3vw,2.2rem)}
.tfh-two .a{background:var(--yellow-soft)}
.tfh-two .b{background:var(--purple-soft)}

/* ---------- CTA band ---------- */
.tfh-cta{position:relative;overflow:hidden;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--purple) 0%,var(--purple-2) 100%);padding:clamp(2rem,5vw,3.6rem);display:grid;grid-template-columns:1.4fr 1fr;gap:1.6rem;align-items:center}
.tfh-cta::before,.tfh-cta::after{content:"";position:absolute;border-radius:50%;background:var(--yellow);opacity:.9}
.tfh-cta::before{width:180px;height:180px;right:-50px;top:-60px;animation:tfh-float 8s ease-in-out infinite}
.tfh-cta::after{width:90px;height:90px;right:30%;bottom:-40px;background:#fff;opacity:.5;animation:tfh-float 9s ease-in-out infinite reverse}
.tfh-cta>*{position:relative;z-index:1}
.tfh-cta h2{margin-bottom:.4em}
.tfh-cta p{margin:0 0 .5rem;font-weight:600}
.tfh-cta .tfh-actions{justify-content:flex-end;margin:0}
.tfh-cta .tfh-btn--ghost{border-color:var(--ink)}
@media (max-width:800px){.tfh-cta{grid-template-columns:1fr}.tfh-cta .tfh-actions{justify-content:flex-start}}
.tfh-band{border-radius:var(--r-lg);background:var(--yellow);padding:clamp(1.8rem,4vw,3rem);display:grid;grid-template-columns:1.5fr 1fr;gap:1.4rem;align-items:center;position:relative;overflow:hidden}
.tfh-band::after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.35);right:-70px;bottom:-110px}
.tfh-band h2{margin-bottom:.3em}
.tfh-band p{margin:0;font-weight:600}
.tfh-band .tfh-actions{justify-content:flex-end;margin:0;position:relative;z-index:1}
@media (max-width:800px){.tfh-band{grid-template-columns:1fr}.tfh-band .tfh-actions{justify-content:flex-start}}
.tfh-final{text-align:center}
.tfh-final .tfh-actions{justify-content:center}
.tfh-contactline{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.4rem;color:var(--muted);font-weight:700;margin-top:1rem}

/* ---------- reasons ---------- */
.tfh-reasons{list-style:none;padding:0;margin:0;display:grid;gap:1rem}
.tfh-reasons li{display:grid;grid-template-columns:48px 1fr;gap:1rem;align-items:start;background:#fff;border-radius:var(--r);padding:1.1rem 1.3rem;box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),var(--rv)}
.tfh-reasons li:hover{transform:translateX(6px)}
.tfh-reasons b.n{width:48px;height:48px;border-radius:16px;background:var(--yellow);display:grid;place-items:center;font-family:var(--ff-h);font-size:1.3rem}
.tfh-reasons li:nth-child(even) b.n{background:var(--purple)}
.tfh-reasons strong{display:block;font-family:var(--ff-h);font-weight:600;font-size:1.15rem}
.tfh-reasons span{color:var(--muted)}

/* ---------- stats ---------- */
.tfh-stats{display:flex;flex-wrap:wrap;gap:1.2rem}
.tfh-stat{flex:1 1 180px;background:#fff;border-radius:var(--r);padding:1.4rem;text-align:center;box-shadow:var(--shadow-sm)}
.tfh-stat b{display:block;font-family:var(--ff-h);font-size:3rem;line-height:1;color:var(--purple-deep)}
.tfh-stat span{font-weight:700;color:var(--muted)}

/* ---------- checklist ---------- */
.tfh-checklist{list-style:none;padding:0;margin:0 0 1.4rem;display:grid;gap:.7rem}
.tfh-checklist label{display:flex;gap:.9rem;align-items:flex-start;background:#fff;border:2px solid var(--line);border-radius:var(--r-sm);padding:.9rem 1.1rem;cursor:pointer;transition:border-color .25s,background .25s,transform .25s var(--ease)}
.tfh-checklist label:hover{border-color:var(--purple);transform:translateX(4px)}
.tfh-checklist input,.tfh-check input{position:absolute;opacity:0;pointer-events:none}
.tfh-checklist .box,.tfh-check__box{flex:none;width:26px;height:26px;border-radius:9px;border:3px solid var(--purple-2);display:grid;place-items:center;margin-top:.1rem;transition:background .25s,border-color .25s,transform .35s var(--ease)}
.tfh-checklist input:checked+.box,.tfh-check input:checked+.tfh-check__box{background:var(--yellow);border-color:var(--yellow);transform:scale(1.1) rotate(-6deg)}
.tfh-checklist input:checked+.box::after,.tfh-check input:checked+.tfh-check__box::after{content:"";width:14px;height:8px;border-left:3.5px solid var(--ink);border-bottom:3.5px solid var(--ink);rotate:-45deg;translate:0 -2px}
.tfh-checklist input:checked~span:last-child{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--purple)}
.tfh-checklist input:focus-visible+.box,.tfh-check input:focus-visible+.tfh-check__box{outline:3px solid var(--purple-deep);outline-offset:2px}
.tfh-meter{display:flex;align-items:center;gap:1rem;font-weight:800}
.tfh-meter__bar{flex:1;height:14px;border-radius:99px;background:var(--line);overflow:hidden}
.tfh-meter__bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--yellow),var(--purple));transition:width .6s var(--ease)}
.tfh-conf{position:fixed;width:10px;height:14px;border-radius:3px;z-index:300;pointer-events:none;animation:tfh-conf 1.6s ease-out forwards}

/* ---------- team / people ---------- */

/* ---------- partners ---------- */
.tfh-pgroup{margin-bottom:3rem}
.tfh-pgroup h2{font-size:1.6rem}
.tfh-partner{background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:1.4rem;display:flex;flex-direction:column;gap:.4rem;transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform .3s var(--ease),box-shadow .3s,var(--rv)}
.tfh-partner:hover{box-shadow:var(--shadow);border-color:var(--purple)}
.tfh-partner__logo{height:86px;display:grid;place-items:center;background:#fff;border-radius:var(--r-sm);margin-bottom:.4rem}
.tfh-partner__logo img{max-height:80px;width:auto;object-fit:contain}
.tfh-partner h3{font-size:1.1rem;margin:0}
.tfh-partner p{margin:0;color:var(--muted);font-size:.97rem}
.tfh-partner .tfh-link{margin-top:auto;padding-top:.6rem}
.tfh-marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.tfh-marquee__track{display:flex;gap:1.4rem;width:max-content;animation:tfh-marquee var(--dur,45s) linear infinite}
.tfh-marquee:hover .tfh-marquee__track{animation-play-state:paused}
.tfh-marquee__item{width:170px;height:96px;flex:none;background:#fff;border:2px solid var(--line);border-radius:var(--r);display:grid;place-items:center;padding:.8rem;transition:transform .3s var(--ease),border-color .3s}
.tfh-marquee__item:hover{transform:translateY(-6px) scale(1.05);border-color:var(--purple)}
.tfh-marquee__item img{max-height:68px;width:auto;object-fit:contain}

/* ---------- testimonials ---------- */
.tfh-slider{position:relative;max-width:860px;margin-inline:auto;padding-bottom:3.4rem}
.tfh-slider__track{position:relative;display:grid}
.tfh-slide{grid-area:1/1;margin:0;background:#fff;border-radius:var(--r-lg);padding:clamp(1.8rem,4vw,3rem);box-shadow:var(--shadow);opacity:0;visibility:hidden;translate:40px 0;transition:opacity .6s var(--ease),translate .7s var(--ease),visibility .6s;position:relative}
.tfh-slide.is-on{opacity:1;visibility:visible;translate:0 0}
.tfh-slide.is-prev{translate:-40px 0}
.tfh-slide__q{position:absolute;top:-.4rem;left:1.4rem;font-family:var(--ff-h);font-size:7rem;line-height:1;color:var(--yellow)}
.tfh-slide blockquote{margin:1rem 0 1rem;font-family:var(--ff-h);font-weight:400;font-size:clamp(1.2rem,2.4vw,1.65rem);line-height:1.5;position:relative}
.tfh-slide blockquote p{margin:0}
.tfh-slide figcaption{font-weight:800;color:var(--purple-deep)}
.tfh-slider__ui{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:1rem}
.tfh-slider__btn{width:44px;height:44px;border-radius:50%;border:2px solid var(--purple-2);background:#fff;color:var(--purple-deep);cursor:pointer;display:grid;place-items:center;transition:background .2s,transform .2s var(--ease)}
.tfh-slider__btn:hover{background:var(--yellow);transform:scale(1.1)}
.tfh-slider__dots{display:flex;gap:.5rem}
.tfh-slider__dot{width:12px;height:12px;border-radius:99px;border:0;background:var(--purple-2);cursor:pointer;padding:0;transition:width .4s var(--ease),background .3s}
.tfh-slider__dot.is-on{width:34px;background:var(--purple-deep)}
.tfh-slides-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1.4rem}
.tfh-slides-grid .tfh-slide{opacity:1;visibility:visible;translate:none;grid-area:auto}

/* ---------- posts ---------- */
.tfh-postcard{display:flex;flex-direction:column;background:#fff;border:2px solid var(--line);border-radius:var(--r);overflow:hidden;transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform .3s var(--ease),box-shadow .3s,border-color .3s,var(--rv)}
.tfh-postcard:hover{box-shadow:var(--shadow);border-color:var(--purple)}
.tfh-postcard__img{display:block;aspect-ratio:16/10;background:linear-gradient(135deg,var(--yellow-soft),var(--purple-soft));overflow:hidden}
.tfh-postcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.tfh-postcard:hover .tfh-postcard__img img{transform:scale(1.08)}
.tfh-postcard__ph{display:grid;place-items:center;height:100%;color:var(--yellow-deep)}
.tfh-postcard__body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.tfh-postcard h3{margin:.3rem 0 .1rem;font-size:1.2rem}
.tfh-postcard h3 a{color:var(--ink);text-decoration:none}
.tfh-postcard p{margin:0;color:var(--muted);font-size:.98rem}
.tfh-postcard .tfh-link{margin-top:auto;padding-top:.7rem}
.tfh-tag{align-self:flex-start;background:var(--purple-soft);color:var(--purple-deep);border-radius:99px;padding:.15rem .8rem;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.tfh-pager .nav-links{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-top:2.4rem}
.tfh-pager .page-numbers{padding:.5rem 1rem;border-radius:99px;background:var(--purple-soft);font-weight:800;text-decoration:none;color:var(--ink)}
.tfh-pager .page-numbers.current{background:var(--yellow)}
.tfh-byline{color:var(--muted);font-weight:700}
.tfh-article__img{margin:0 0 2rem;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.tfh-next{background:var(--yellow-soft);border-radius:var(--r-lg);padding:1.8rem;margin:2.4rem 0 1rem;text-align:center}
.tfh-next .tfh-actions{justify-content:center}
.tfh-empty-card{background:var(--purple-soft);border-radius:var(--r-lg);text-align:center;padding:clamp(1.8rem,4vw,3rem)}
.tfh-empty-card p{max-width:52ch;margin-inline:auto}

/* ---------- events ---------- */
.tfh-events{display:grid;gap:1rem}
.tfh-event{display:grid;grid-template-columns:auto 1fr auto;gap:1.2rem;align-items:center;background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:1rem 1.3rem;transition:transform .3s var(--ease),border-color .3s,var(--rv)}
.tfh-event:hover{transform:translateX(6px);border-color:var(--purple)}
.tfh-event__date{width:72px;height:72px;border-radius:20px;background:var(--yellow);display:grid;place-content:center;text-align:center;line-height:1}
.tfh-event__date b{font-family:var(--ff-h);font-size:1.8rem}
.tfh-event__date span{font-weight:800;text-transform:uppercase;font-size:.8rem;letter-spacing:.06em}
.tfh-event h3{margin:0}
.tfh-event h3 a{text-decoration:none;color:var(--ink)}
.tfh-event__meta{margin:0;color:var(--muted);font-size:.95rem}
@media (max-width:640px){.tfh-event{grid-template-columns:auto 1fr}.tfh-event .tfh-btn{grid-column:1/-1}}

/* ---------- forms ---------- */
.tfh-form{background:#fff;border:2px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.3rem,3.5vw,2.4rem);box-shadow:var(--shadow-sm)}
.tfh-form__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem 1.1rem}
.tfh-field{grid-column:span 12;min-width:0}
.tfh-field--half{grid-column:span 6}
.tfh-field--quarter{grid-column:span 3}
@media (max-width:640px){.tfh-field--half,.tfh-field--quarter{grid-column:span 12}}
.tfh-field>label,.tfh-field>legend,.tfh-field legend{display:block;font-weight:800;margin-bottom:.35rem;font-size:.97rem;padding:0}
.tfh-field fieldset,fieldset.tfh-field{border:0;padding:0;margin:0}
.tfh-field input[type=text],.tfh-field input[type=email],.tfh-field input[type=tel],.tfh-field input[type=url],.tfh-field select,.tfh-field textarea,.tfh-search input{width:100%;font:inherit;color:var(--ink);padding:.85rem 1.1rem;border-radius:16px;border:2px solid var(--line);background:#fff;transition:border-color .2s,box-shadow .2s}
.tfh-field select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E3FA8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 1rem center/20px no-repeat;padding-right:2.6rem}
.tfh-field input:focus,.tfh-field select:focus,.tfh-field textarea:focus,.tfh-search input:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 5px rgba(185,162,242,.3)}
.tfh-field.is-bad input,.tfh-field.is-bad select,.tfh-field.is-bad textarea{border-color:#E0566B;background:#FFF5F6}
.tfh-req{color:#C23A52}
.tfh-field--heading{margin:.6rem 0 0;font-size:1.25rem;padding-top:.6rem;border-top:2px dashed var(--line)}
.tfh-field--heading:first-child{border:0;padding:0;margin:0}
.tfh-pills{display:flex;flex-wrap:wrap;gap:.5rem}
.tfh-pill{position:relative;cursor:pointer}
.tfh-pill input{position:absolute;opacity:0;pointer-events:none}
.tfh-pill span{display:inline-block;padding:.5rem 1rem;border-radius:99px;border:2px solid var(--line);font-weight:700;font-size:.95rem;transition:background .25s,border-color .25s,transform .3s var(--ease)}
.tfh-pill:hover span{border-color:var(--purple)}
.tfh-pill input:checked+span{background:var(--yellow);border-color:var(--yellow);transform:scale(1.04)}
.tfh-pill input:focus-visible+span{outline:3px solid var(--purple-deep);outline-offset:2px}
fieldset.is-bad .tfh-pill span{border-color:#E0566B}
.tfh-check{display:flex;gap:.8rem;align-items:flex-start;cursor:pointer;font-weight:600}
.tfh-form__foot{display:flex;flex-wrap:wrap;gap:1rem 1.6rem;align-items:center;margin-top:1.4rem}
.tfh-form__note{margin:0;color:var(--muted);font-size:.92rem;flex:1 1 240px}
.tfh-form__msg{margin:.8rem 0 0;font-weight:800;color:#C23A52;min-height:1.2em}
.tfh-form.is-busy .tfh-btn{opacity:.6;pointer-events:none}
.tfh-done{text-align:center;padding:2.4rem 1rem;background:#fff;border:3px solid var(--yellow);border-radius:var(--r-lg);animation:tfh-pop .6s var(--ease)}
.tfh-done__ic{display:inline-grid;place-items:center;width:76px;height:76px;border-radius:50%;background:var(--yellow);margin-bottom:.8rem;animation:tfh-bob 3s ease-in-out infinite}
.tfh-search{display:flex;gap:.6rem;max-width:520px;margin:1.6rem auto 0}
.tfh-map{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);border:6px solid #fff;outline:3px solid var(--purple-2);aspect-ratio:16/9}
.tfh-map iframe{width:100%;height:100%;border:0}
.tfh-contact-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem;margin-bottom:2rem}
.tfh-contact-cards .tfh-card{padding:1.3rem}
.tfh-contact-cards .tfh-card strong{font-size:1.05rem;word-break:break-word}

/* ---------- RTL / Urdu ---------- */
.tfh-rtl{font-family:'Noto Nastaliq Urdu','Nunito',serif;line-height:2.15;text-align:right}
.tfh-rtl h1,.tfh-rtl h2,.tfh-rtl h3{font-family:'Noto Nastaliq Urdu','Fredoka',serif;line-height:1.9;font-weight:700}
.tfh-rtl .tfh-list{padding:0}
.tfh-rtl .tfh-list li{padding:.3rem 2.1rem .3rem 0}
.tfh-rtl .tfh-list li::before{left:auto;right:0}
.tfh-rtl .tfh-btn,.tfh-rtl .tfh-eyebrow{font-family:'Noto Nastaliq Urdu','Nunito',serif}
.tfh-rtl .tfh-step__body{text-align:right}

/* ---------- footer ---------- */
.tfh-footer{position:relative;background:var(--purple-soft);margin-top:clamp(3rem,6vw,5rem);padding-top:3.5rem;border-radius:var(--r-lg) var(--r-lg) 0 0}
.tfh-footer__wave{position:absolute;inset:-1px 0 auto 0;height:44px;overflow:hidden;translate:0 -99%}
.tfh-footer__wave svg{width:100%;height:100%;fill:var(--purple-soft)}
.tfh-footer__grid{display:grid;grid-template-columns:1.3fr 1.2fr .8fr 1fr;gap:2.4rem;padding-bottom:2.4rem}
@media (max-width:1000px){.tfh-footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.tfh-footer__grid{grid-template-columns:1fr}}
.tfh-footer h4{font-size:1.1rem;margin:1.2rem 0 .6rem;color:var(--purple-deep)}
.tfh-footer h4:first-child{margin-top:0}
.tfh-footer p{margin:0 0 .7rem}
.tfh-footer a{color:var(--ink);text-decoration-color:var(--purple)}
.tfh-footer a:hover{color:var(--purple-deep)}
.tfh-footer__logo{width:auto;height:84px;max-width:100%;object-fit:contain;margin-bottom:.8rem}
.tfh-footer__line{display:flex;gap:.6rem;align-items:flex-start}
.tfh-footer__line .tfh-svg{margin-top:.2rem;color:var(--purple-deep)}
.tfh-footer__menu,.tfh-footer__small,.tfh-social{list-style:none;padding:0;margin:0}
.tfh-footer__menu li{margin:.35rem 0}
.tfh-footer__menu a{text-decoration:none;font-weight:700;display:inline-block;transition:translate .25s var(--ease),color .2s}
.tfh-footer__menu a:hover{translate:6px 0}
.tfh-social{display:flex;gap:.6rem;flex-wrap:wrap}
.tfh-social a{width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--purple-deep);transition:transform .3s var(--ease),background .25s}
.tfh-social a:hover{background:var(--yellow);transform:translateY(-4px) rotate(-8deg);color:var(--ink)}
.tfh-footer__legal{border-top:2px dashed var(--purple-2);padding:1.4rem 0 6.5rem}
.tfh-disclaimer{font-size:.92rem;color:var(--muted);max-width:90ch}
.tfh-footer__bottom{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;justify-content:space-between;font-size:.92rem}
.tfh-footer__bottom p{margin:0}
.tfh-footer__small{display:flex;gap:.4rem 1.2rem;flex-wrap:wrap}
.tfh-footer__small a{text-decoration:none;font-weight:700}

/* ---------- WhatsApp float ---------- */
.tfh-wa{position:fixed;right:1.1rem;bottom:1.1rem;z-index:90;display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#fff}
.tfh-wa__ic{position:relative;width:60px;height:60px;border-radius:50%;background:#25D366;display:grid;place-items:center;color:#fff;box-shadow:0 10px 26px rgba(18,140,74,.45);transition:transform .3s var(--ease)}
.tfh-wa__ic::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;animation:tfh-ring 2.4s ease-out infinite;z-index:-1}
.tfh-wa:hover .tfh-wa__ic{transform:scale(1.1) rotate(-8deg)}
.tfh-wa__label{background:#fff;color:var(--ink);font-weight:800;font-size:.92rem;padding:.55rem 1rem;border-radius:99px;box-shadow:var(--shadow);opacity:0;translate:14px 0;pointer-events:none;transition:opacity .35s,translate .4s var(--ease);white-space:nowrap}
.tfh-wa.show-label .tfh-wa__label,.tfh-wa:hover .tfh-wa__label{opacity:1;translate:0 0}
@media (max-width:600px){.tfh-wa__ic{width:54px;height:54px}.tfh-wa.show-label .tfh-wa__label{opacity:0}}

/* ---------- reveal ---------- */
html.js [data-reveal]{opacity:0;translate:0 30px;transition:var(--rv)}
html.js [data-reveal="left"]{translate:-40px 0}
html.js [data-reveal="right"]{translate:40px 0}
html.js [data-reveal="zoom"]{translate:0 0;scale:.88}
html.js [data-reveal].is-in{opacity:1;translate:0 0;scale:1}
html.reveal-fallback [data-reveal]{opacity:1!important;translate:none!important;scale:1!important}

/* ---------- keyframes ---------- */
@keyframes tfh-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-16px) rotate(6deg)}}
@keyframes tfh-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes tfh-morph{0%,100%{border-radius:58% 42% 55% 45%/48% 55% 45% 52%}33%{border-radius:44% 56% 42% 58%/55% 42% 58% 45%}66%{border-radius:52% 48% 60% 40%/42% 58% 42% 58%}}
@keyframes tfh-pulse{0%{box-shadow:0 0 0 0 rgba(94,63,168,.5)}70%{box-shadow:0 0 0 9px rgba(94,63,168,0)}100%{box-shadow:0 0 0 0 rgba(94,63,168,0)}}
@keyframes tfh-ring{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.8);opacity:0}}
@keyframes tfh-rip{to{transform:scale(4);opacity:0}}
@keyframes tfh-pop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
@keyframes tfh-marquee{to{transform:translateX(-50%)}}
@keyframes tfh-conf{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--cx),var(--cy)) rotate(540deg);opacity:0}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  html.js [data-reveal]{opacity:1;translate:none;scale:1}
  .tfh-marquee__track{animation:none}
}
@media print{.tfh-header,.tfh-topbar,.tfh-wa,.tfh-progress-bar,.tfh-footer__wave{display:none!important}}

/* ---------- v1.1 ---------- */
body.admin-bar .tfh-header{top:32px}
@media (max-width:782px){body.admin-bar .tfh-header{top:46px}}
@media (max-width:1320px){body.admin-bar .tfh-nav{top:32px;height:calc(100dvh - 32px)}}
@media (max-width:782px){body.admin-bar .tfh-nav{top:46px;height:calc(100dvh - 46px)}}
.tfh-header{will-change:auto}
.tfh-nav__social{display:none}
@media (max-width:1320px){.tfh-nav__social{display:block;margin-top:.4rem}.tfh-nav__social .tfh-social{justify-content:center}}
.tfh-prose h4{font-size:1.3rem;margin-top:1.4em}

/* ---------- v1.1.1 ---------- */
@media (max-width:1320px){
  .tfh-header__in{gap:.6rem}
  .tfh-logo{min-width:0;flex:0 1 auto}
  .tfh-logo__img,.tfh-header.is-stuck .tfh-logo__img{height:36px;max-width:100%}
  .tfh-mact{flex:none}
}
@media (max-width:480px){
  .tfh-header__in,.tfh-header.is-stuck .tfh-header__in{min-height:66px}
  .tfh-logo__img,.tfh-header.is-stuck .tfh-logo__img{height:30px}
  .tfh-mact{gap:.35rem}
  .tfh-mact__btn{width:38px;height:38px}
  .tfh-burger{width:42px;height:42px}
  .tfh-logo__text{font-size:1.05rem}
}
@media (max-width:370px){.tfh-logo__img,.tfh-header.is-stuck .tfh-logo__img{height:25px}.tfh-mact__btn{width:34px;height:34px}.tfh-burger{width:38px;height:38px}}


/* back to top */
.tfh-top{position:fixed;right:1.1rem;bottom:5.2rem;z-index:89;width:52px;height:52px;border-radius:50%;border:0;background:#fff;color:var(--purple-deep);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);opacity:0;visibility:hidden;translate:0 16px;transition:opacity .35s,translate .45s var(--ease),visibility .35s,background .25s,color .25s}
.tfh-top.is-on{opacity:1;visibility:visible;translate:0 0}
.tfh-top:hover{background:var(--yellow);color:var(--ink)}
.tfh-top:hover .tfh-svg{animation:tfh-bob 1s ease-in-out infinite}
.tfh-top .tfh-svg{position:relative}
.tfh-top__ring{position:absolute;inset:0;width:100%;height:100%;rotate:-90deg}
.tfh-top__ring circle{fill:none;stroke-width:3}
.tfh-top__ring .bg{stroke:var(--line)}
.tfh-top__ring .fg{stroke:var(--purple);stroke-linecap:round;stroke-dasharray:132;stroke-dashoffset:var(--o,132)}
@media (max-width:600px){.tfh-top{width:46px;height:46px;bottom:4.6rem;right:1.2rem}}

/* v1.2 two numbers */
.tfh-phone-big--alt{background:var(--yellow-soft);color:var(--ink);font-size:1rem;flex-wrap:wrap}
.tfh-phone-big--alt small{display:block;font-weight:700;color:var(--muted);font-size:.78rem}
.tfh-footer__line br+a{display:inline-block;margin-top:.1rem}
.tfh-dual{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1rem}


/* ==========================================================================
   v1.3 — Team (leadership first, large portraits), bigger autoplay hero video, smoother UI
   ========================================================================== */
[hidden]{display:none!important}

/* ---------- team ---------- */
.tfh-team{--gap:clamp(1.1rem,2.2vw,1.8rem)}
.tfh-team .tfh-filter{position:sticky;top:calc(var(--hdr,82px) + 8px);z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:.7rem .8rem;margin:0 0 2.4rem;border:2px solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
.tfh-team .tfh-filter::-webkit-scrollbar{display:none}
.tfh-team .tfh-filter .tfh-chip{flex:none;white-space:nowrap}
.tfh-chip em{font-style:normal;font-size:.8rem;margin-left:.3rem;opacity:.6}
.tfh-chip.is-on em{opacity:.8}
body.admin-bar .tfh-team .tfh-filter{top:calc(var(--hdr,82px) + 40px)}

.tfh-tgroup{margin:0 0 clamp(2.6rem,6vw,4.6rem);scroll-margin-top:150px}
.tfh-tgroup[hidden]{display:none}
.tfh-tgroup__head{display:flex;align-items:baseline;gap:.4rem 1.2rem;flex-wrap:wrap;margin:0 0 1.5rem}
.tfh-tgroup__head h2{margin:0;font-size:clamp(1.6rem,3vw,2.2rem);position:relative;padding-left:1.1rem}
.tfh-tgroup__head h2::before{content:"";position:absolute;left:0;top:.14em;bottom:.14em;width:6px;border-radius:6px;background:linear-gradient(var(--yellow),var(--purple))}
.tfh-tgroup__head p{margin:0;color:var(--muted)}

/* leadership: biggest cards, always first */
.tfh-tgroup--lead{padding:clamp(1.4rem,3vw,2.4rem);background:linear-gradient(180deg,var(--yellow-soft),#fff 85%);border-radius:var(--r-lg);border:2px solid var(--yellow-2)}
.tfh-lead-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--gap)}
.tfh-lead-grid>.tfh-leader{flex:1 1 300px;max-width:390px}
.tfh-leader{background:#fff;border:2px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.tfh-leader .tfh-person__av{aspect-ratio:4/5}
.tfh-leader h3{font-size:clamp(1.3rem,2vw,1.6rem)}
.tfh-leader .tfh-person__role{font-size:1.02rem}
.tfh-leader .tfh-person__body{padding:1.4rem 1.5rem 1.6rem}
.tfh-person__bio{display:block;color:var(--muted);font-size:.98rem;line-height:1.6;margin:.7rem 0 .2rem}

/* everyone else */
.tfh-team__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,255px),1fr));gap:var(--gap)}
.tfh-person{position:relative;display:flex;flex-direction:column;background:#fff;border:2px solid var(--line);border-radius:var(--r);overflow:hidden;text-align:left;transition:transform .45s var(--ease),box-shadow .4s,border-color .3s,opacity .35s,var(--rv)}
.tfh-person:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:var(--purple)}
.tfh-person.is-out{opacity:0;transform:scale(.94)}
.tfh-person__av{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;background:linear-gradient(160deg,var(--yellow-soft),var(--purple-soft));text-decoration:none}
.tfh-person[data-g="1"] .tfh-person__av{background:linear-gradient(160deg,var(--purple-soft),var(--yellow-soft))}
.tfh-person__av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%;transition:transform .9s var(--ease)}
.tfh-person:hover .tfh-person__av img{transform:scale(1.06)}
.tfh-person__ini{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--ff-h);font-weight:600;font-size:clamp(2.6rem,6vw,4rem);color:var(--purple-deep)}
.tfh-person__body{display:flex;flex-direction:column;flex:1;padding:1.1rem 1.25rem 1.3rem}
.tfh-person h3{margin:0 0 .15rem;font-size:1.2rem}
.tfh-person h3 a{text-decoration:none;color:var(--ink)}
.tfh-person h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.tfh-person__role{font-weight:800;color:var(--purple-deep);font-size:.95rem;margin:.1rem 0 0;line-height:1.35}
.tfh-person__tags{display:flex;flex-wrap:wrap;gap:.3rem;margin:.55rem 0 .3rem}
.tfh-person__tags span{background:var(--yellow-soft);border-radius:99px;padding:.15rem .7rem;font-size:.8rem;font-weight:700}
.tfh-person .tfh-link{margin-top:auto;padding-top:.7rem;font-size:.95rem}

/* single profile */
.tfh-profile{display:grid;grid-template-columns:minmax(240px,400px) 1fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center}
.tfh-profile__av{position:relative;width:100%;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(160deg,var(--yellow-soft),var(--purple-soft));border:8px solid #fff;outline:3px solid var(--yellow);box-shadow:var(--shadow)}
.tfh-profile__av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%}
.tfh-profile .tfh-person__ini{font-size:5rem}
.tfh-profile .tfh-person__tags{margin-top:.8rem}
@media (max-width:760px){.tfh-profile{grid-template-columns:1fr;justify-items:center;text-align:center}.tfh-profile__av{max-width:340px}.tfh-profile .tfh-person__tags{justify-content:center}}
@media (max-width:560px){.tfh-lead-grid>.tfh-leader{flex-basis:100%;max-width:none}.tfh-team__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.tfh-person__body{padding:.85rem .9rem 1rem}.tfh-person h3{font-size:1.02rem}.tfh-person__role{font-size:.85rem}.tfh-person__tags span{font-size:.72rem}}

/* ---------- hero video: large, plays at once ---------- */
.tfh-hero.has-video .tfh-wrap{width:min(100% - 2.5rem,1380px)}
.tfh-hero.has-video .tfh-hero__grid{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(1.5rem,3.4vw,3.6rem)}
.tfh-hero__media.has-video{display:block;overflow:visible}
.tfh-video{position:relative;width:100%;aspect-ratio:16/10;border-radius:clamp(22px,3vw,40px);overflow:hidden;background:var(--ink);border:clamp(5px,.7vw,9px) solid #fff;outline:3px solid var(--yellow);box-shadow:0 30px 70px rgba(94,63,168,.28);isolation:isolate}
.tfh-video__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .8s var(--ease);z-index:1}
.tfh-video iframe{position:absolute;left:50%;top:50%;width:100%;height:100%;border:0;pointer-events:none;transform:translate(-50%,-50%) scale(1.55);opacity:0;transition:opacity .8s var(--ease);z-index:0}
.tfh-video.is-live iframe{opacity:1;z-index:2}
.tfh-video.is-live .tfh-video__poster{opacity:0;pointer-events:none}
.tfh-video__ctrl{position:absolute;right:.9rem;top:.9rem;bottom:auto;z-index:4;display:flex;gap:.45rem;opacity:0;transition:opacity .4s}
.tfh-video.has-played .tfh-video__ctrl,.tfh-video:hover .tfh-video__ctrl,.tfh-video:focus-within .tfh-video__ctrl{opacity:1}
.tfh-video__ctrl button{width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .25s var(--ease),background .2s}
.tfh-video__ctrl button:hover{background:var(--yellow);transform:scale(1.1)}
.tfh-hero__media.has-video .tfh-badge.b1{left:clamp(.6rem,2vw,1.4rem);top:auto;bottom:clamp(.6rem,2vw,1.4rem)}
.tfh-hero__media.has-video .tfh-badge.b2{right:clamp(.6rem,2vw,1.4rem);bottom:clamp(.6rem,2vw,1.4rem)}
@media (max-width:1100px){.tfh-hero.has-video .tfh-hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}
@media (max-width:900px){
  .tfh-hero.has-video .tfh-hero__grid{grid-template-columns:1fr}
  .tfh-hero__media.has-video{max-width:none;width:100%;order:-1}
  .tfh-video{aspect-ratio:16/10;border-width:5px}
  .tfh-hero__media.has-video .tfh-badge{display:none}
}

/* ---------- smooth UI ---------- */
html{scroll-padding-top:104px}
@keyframes tfh-page-in{from{opacity:0}to{opacity:1}}
html.js .tfh-main{animation:tfh-page-in .5s ease backwards}
body.is-leaving .tfh-main{opacity:0;transition:opacity .18s ease}

/* images ease in instead of popping */
html.js img.tfh-fade{opacity:0;transition:opacity .7s var(--ease)}
html.js img.tfh-fade.is-loaded{opacity:1}
html.reveal-fallback img.tfh-fade{opacity:1!important}

/* richer reveal: soft lift with a tiny scale */
html.js [data-reveal]{opacity:0;translate:0 34px;scale:.985;transition:var(--rv);will-change:opacity,translate}
html.js [data-reveal="left"]{translate:-44px 0}
html.js [data-reveal="right"]{translate:44px 0}
html.js [data-reveal="zoom"]{translate:0 0;scale:.9}
html.js [data-reveal].is-in{opacity:1;translate:0 0;scale:1;will-change:auto}

/* buttons: shine + press */
.tfh-btn{isolation:isolate}
.tfh-btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);translate:-120% 0;transition:translate .7s var(--ease)}
.tfh-btn:hover::after{translate:120% 0}
.tfh-btn:active{transform:translateY(0) scale(.97)}
.tfh-chip:active,.tfh-bubble:active{transform:scale(.96)}

/* links: underline draws in */
.tfh-prose a:not(.tfh-btn),.tfh-footer__menu a,.tfh-footer__small a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .4s var(--ease),color .2s,translate .25s var(--ease)}
.tfh-prose a:not(.tfh-btn):hover,.tfh-footer__menu a:hover,.tfh-footer__small a:hover{background-size:100% 2px}
@media (min-width:1321px){
.tfh-menu>li>a::after{content:"";position:absolute;left:.9rem;right:.9rem;bottom:.35rem;height:3px;border-radius:3px;background:var(--yellow);scale:0 1;transform-origin:left;transition:scale .4s var(--ease)}
.tfh-menu>li>a:hover::after,.tfh-menu>li.current-menu-item>a::after,.tfh-menu>li.current-menu-ancestor>a::after{scale:1 1}
}

/* cards and tiles share one lift curve */
.tfh-card,.tfh-postcard,.tfh-partner,.tfh-event,.tfh-acc,.tfh-reasons li{transition-timing-function:var(--ease)}
.tfh-card:hover,.tfh-postcard:hover,.tfh-partner:hover{box-shadow:var(--shadow)}

/* form fields glow gently when focused */
input:not([type=checkbox]):not([type=radio]),textarea,select{transition:border-color .25s,box-shadow .3s var(--ease),background .25s}
input:not([type=checkbox]):not([type=radio]):focus,textarea:focus,select:focus{border-color:var(--purple);box-shadow:0 0 0 5px rgba(185,162,242,.3);outline:none}

/* headings wrap evenly */
h1,h2,h3,.tfh-lead{text-wrap:balance}
.tfh-prose p,.tfh-sec__head p{text-wrap:pretty}

@media (prefers-reduced-motion:reduce){
  html.js .tfh-main{animation:none}
  html.js img.tfh-fade{opacity:1}
  .tfh-btn::after{display:none}
}

/* ---------- team network (home "Meet the team" + Team page): a hub joined to one icon per specialty ---------- */
.tfh-net{position:relative;width:min(100%,540px);aspect-ratio:1;margin-inline:auto;container-type:inline-size}
.tfh-net__glow{position:absolute;inset:3%;border-radius:50%;background:radial-gradient(circle at 50% 45%,#fff 0,var(--purple-soft) 62%,rgba(236,229,252,0) 72%)}
.tfh-net__lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.tfh-net__orbit{fill:none;stroke:var(--purple);stroke-opacity:.35;stroke-width:.35;stroke-dasharray:1.2 2.2;stroke-linecap:round;vector-effect:non-scaling-stroke}
.tfh-net__orbit--in{stroke:var(--yellow-2,var(--yellow));stroke-opacity:.6}
.tfh-net__spoke{stroke:var(--purple);stroke-width:2;stroke-opacity:.55;stroke-linecap:round;stroke-dasharray:2 7;vector-effect:non-scaling-stroke;animation:tfh-net-flow 2.8s linear infinite;animation-delay:calc(var(--i)*-.4s)}
.tfh-net__rim{stroke:var(--yellow);stroke-width:2.4;stroke-opacity:.9;stroke-linecap:round;vector-effect:non-scaling-stroke}
@keyframes tfh-net-flow{to{stroke-dashoffset:-18}}
.tfh-net__node{position:absolute;translate:-50% -50%;display:flex;flex-direction:column;align-items:center;gap:.35rem;width:max-content;animation:tfh-net-bob 5.5s ease-in-out infinite;animation-delay:calc(var(--i)*-.8s)}
@keyframes tfh-net-bob{50%{transform:translateY(-6px)}}
.tfh-net__ic{width:clamp(48px,15.5cqw,82px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;border:clamp(3px,.9cqw,5px) solid #fff;box-shadow:var(--shadow-sm);color:var(--purple-deep);background:var(--yellow);transition:transform .4s var(--ease)}
.tfh-net__ic .tfh-svg{width:46%;height:46%}
.tfh-net__node.is-p .tfh-net__ic{background:var(--purple);color:#fff}
.tfh-net__node:hover .tfh-net__ic{transform:scale(1.1) rotate(-6deg)}
.tfh-net__tag{font-family:var(--ff-h);font-weight:600;font-size:clamp(.62rem,2.5cqw,.86rem);line-height:1.15;color:var(--ink);background:#fff;border-radius:99px;padding:.18rem .6rem;box-shadow:var(--shadow-sm);white-space:nowrap}
.tfh-net__hub{position:absolute;left:50%;top:50%;translate:-50% -50%;width:29%;aspect-ratio:1;display:grid;place-items:center}
.tfh-net__core{position:relative;z-index:1;width:100%;height:100%;border-radius:50%;background:linear-gradient(150deg,var(--yellow),#ffb21a);color:var(--ink);border:clamp(4px,1.2cqw,7px) solid #fff;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.05;padding:.3rem}
.tfh-net__core .tfh-svg{width:20%;height:auto;color:var(--purple-deep);margin-bottom:.1rem}
.tfh-net__core b{font-family:var(--ff-h);font-weight:700;font-size:clamp(1.5rem,8.2cqw,2.7rem);line-height:1}
.tfh-net__core>span{font-weight:800;font-size:clamp(.55rem,2.5cqw,.8rem)}
.tfh-net__pulse{position:absolute;inset:0;border-radius:50%;border:3px solid var(--yellow);opacity:0;animation:tfh-net-pulse 3.2s ease-out infinite}
.tfh-net__pulse.p2{animation-delay:1.6s}
@keyframes tfh-net-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}
.tfh-net__spark{position:absolute;border-radius:50%;background:var(--purple);opacity:.5;animation:tfh-net-bob 6s ease-in-out infinite}
.tfh-net__spark.s1{width:12px;height:12px;left:7%;top:30%}
.tfh-net__spark.s2{width:9px;height:9px;right:9%;top:16%;background:var(--yellow);opacity:.9;animation-delay:-2s}
.tfh-net__spark.s3{width:14px;height:14px;right:5%;bottom:30%;animation-delay:-3s}
.tfh-net__spark.s4{width:10px;height:10px;left:14%;bottom:12%;background:var(--yellow);opacity:.9;animation-delay:-1s}
@media (max-width:520px){.tfh-net__tag{font-size:.6rem;padding:.14rem .45rem}.tfh-net__node{gap:.22rem}}
@media (max-width:900px){.tfh-net{width:min(100%,460px)}}
@media (prefers-reduced-motion:reduce){.tfh-net__node,.tfh-net__spark,.tfh-net__spoke,.tfh-net__pulse{animation:none}.tfh-net__pulse{display:none}}

/* ---------- v1.3.2 mobile header fixes ---------- */
/* v1.3.3: the dimmed backdrop and the menu are both inside the header, so they share one stacking context: the menu is always above the backdrop. */
/* On phones the WordPress admin bar scrolls away, so the sticky header must stick to the very top (no gap). */
@media (max-width:600px){
  body.admin-bar .tfh-header{top:0}
  body.admin-bar .tfh-nav{top:0;height:100dvh}
}
/* Compact announcement bar on phones. */
@media (max-width:600px){
  .tfh-topbar{font-size:.78rem}
  .tfh-topbar__in{padding:.4rem 2.2rem .4rem .8rem}
  .tfh-topbar__dot{display:none}
  .tfh-topbar a{display:block;margin:0}
}

.tfh-nav__close{display:none}
@media (max-width:1320px){
  .tfh-nav__close{display:grid;place-items:center;position:absolute;top:1rem;right:1rem;width:46px;height:46px;border-radius:50%;border:0;background:var(--yellow);color:var(--ink);cursor:pointer}
}
@media (max-width:782px){body.admin-bar .tfh-nav__close{top:calc(46px + .6rem)}}


/* ==========================================================================
   v1.3.3 — header fit + mobile menu hardening
   ========================================================================== */
@media (min-width:1321px){
  .tfh-header .tfh-wrap{width:min(100% - 2.5rem,1440px)}
  .tfh-nav{flex:0 1 auto}
  .tfh-menu a{padding-inline:.62rem}
}
@media (max-width:1759px){.tfh-phone{display:none}}
.tfh-burger,.tfh-nav__close,.tfh-sub-toggle,.tfh-mact__btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent}

/* ---------- v1.3.3 hero video: the player stays hidden unless it is really playing ---------- */
.tfh-video__tap{position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:3;width:76px;height:76px;border-radius:50%;border:5px solid #fff;background:var(--yellow);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);transition:transform .3s var(--ease)}
.tfh-video__tap:hover{transform:scale(1.08)}
.tfh-video__tap[hidden]{display:none!important}
.tfh-video__tap .tfh-svg{margin-left:3px}
.tfh-video__tap .tfh-svg path{fill:currentColor}

/* ==========================================================================
   v1.3.4 — mobile fit: tables, schedules, grids, long text
   ========================================================================== */
.tfh-card,.tfh-step__body,.tfh-note,.tfh-two>div,.tfh-compare>div,.tfh-split>*,.tfh-hero__grid>*,.tfh-cta>*,.tfh-band>*{min-width:0}
.tfh-card,.tfh-card h3,.tfh-card p,.tfh-table td,.tfh-table th,.tfh-list li,.tfh-step__body,.tfh-note{overflow-wrap:anywhere;word-break:normal}
.tfh-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.tfh-steps--v .tfh-step{grid-template-columns:60px minmax(0,1fr)}
.tfh-table-wrap{max-width:100%}

@media (max-width:640px){
  .tfh-table-wrap{overflow:visible;border:0;background:transparent;border-radius:0}
  .tfh-table,.tfh-table tbody,.tfh-table tr,.tfh-table td{display:block;width:100%;min-width:0}
  .tfh-table{border-collapse:separate}
  .tfh-table thead{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .tfh-table tr{background:#fff;border:2px solid var(--line);border-radius:var(--r);margin:0 0 .9rem;overflow:hidden;box-shadow:var(--shadow-sm)}
  .tfh-table td{border-top:0;padding:.65rem 1rem}
  .tfh-table td:first-child{background:var(--yellow-soft);font-family:var(--ff-h);font-weight:600;padding:.8rem 1rem}
  .tfh-table td+td{border-top:1px solid var(--line)}
  .tfh-table td[data-label]::before{content:attr(data-label);display:block;font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--purple-deep);margin-bottom:.15rem}
  .tfh-table td:first-child::before{display:none}
  .tfh-table tr:hover td{background:transparent}
  .tfh-table tr:hover td:first-child{background:var(--yellow-soft)}
  .tfh-table td:empty{display:none}
}
@media (max-width:480px){
  .tfh-card{padding:1.3rem}
  .tfh-step__body{padding:1.1rem 1.2rem}
  .tfh-steps--v .tfh-step{grid-template-columns:48px minmax(0,1fr);gap:1rem}
  .tfh-steps--v .tfh-step__n{width:48px;height:48px;font-size:1.15rem}
  .tfh-steps--v::before,.tfh-steps--v::after{left:21px}
  .tfh-actions .tfh-btn{max-width:100%}
  .tfh-tabs__tab{padding:.65rem 1rem}
}
/* v1.3.4: safety nets so long emails/words never push the layout wider than the screen */
.tfh-footer__grid>*,.tfh-contact-cards>*,.tfh-team__grid>*,.tfh-slides-grid>*,.tfh-event__body{min-width:0}
.tfh-footer a,.tfh-footer__line,.tfh-contact-cards a,.tfh-event__meta{overflow-wrap:anywhere}
.tfh-blob,.tfh-photo,.tfh-article__img,.tfh-map,.tfh-video{max-width:100%}
