/*
Theme Name: Trentfield Education
Theme URI: https://trentfieldeducation.com
Author: Trentfield Education London
Description: Official WordPress theme for Trentfield Education — globally recognised UK diploma and degree programmes, online learning, and education consultancy.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: Private
Text Domain: trentfield
Tags: education, lms, university, courses, responsive, mobile-first
*/

/* =====================================================
   DESIGN TOKENS
===================================================== */
:root {
  --navy:       #1a2a5e;
  --navy-dark:  #0f172a;
  --navy-mid:   #1e3a8a;
  --red:        #cc1f2e;
  --red-dark:   #b01a27;
  --white:      #FFFFFF;
  --slate-50:   #f8fafc;
  --slate-100:  #f1f5f9;
  --slate-200:  #e2e8f0;
  --slate-300:  #cbd5e1;
  --slate-400:  #94a3b8;
  --slate-500:  #64748b;
  --slate-600:  #475569;
  --slate-700:  #334155;
  --slate-800:  #1e293b;
  --green:      #059669;
  --purple:     #7c3aed;
  --amber:      #b45309;
  --cyan:       #0891b2;
  --emerald:    #10b981;
  --font-sans:  'Inter','Helvetica Neue',Arial,sans-serif;
  --shadow-xl:  0 20px 60px rgba(0,0,0,.13);
  --shadow-lg:  0 10px 30px rgba(0,0,0,.10);
  --shadow-md:  0 4px 16px rgba(0,0,0,.08);
  --shadow-sm:  0 2px 8px rgba(0,0,0,.06);
  --transition: all .25s cubic-bezier(.4,0,.2,1);
  /* Topbar height used for offset */
  --topbar-h:   36px;
  --header-h:   64px;
}

/* =====================================================
   RESET & BASE
===================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-sans);
  color:var(--slate-800);
  background:#fff;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  /* push below fixed header + topbar */
  padding-top:calc(var(--topbar-h) + var(--header-h));
}
img,video{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit;transition:var(--transition)}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,select,textarea{font-family:inherit;font-size:1rem}
:focus-visible{outline:3px solid var(--red);outline-offset:2px}

/* =====================================================
   TYPOGRAPHY — fluid scale
===================================================== */
h1,h2,h3,h4,h5,h6{
  font-weight:900;line-height:1.15;
  letter-spacing:-.02em;color:var(--navy);
}
h1{font-size:clamp(1.85rem,5vw,3.5rem)}
h2{font-size:clamp(1.5rem,4vw,2.6rem)}
h3{font-size:clamp(1.1rem,2.5vw,1.55rem)}
h4{font-size:clamp(.95rem,2vw,1.15rem);font-weight:800}
p{color:var(--slate-500);line-height:1.7;margin-bottom:.75rem}
p:last-child{margin-bottom:0}
strong{color:var(--slate-800);font-weight:800}

/* =====================================================
   LAYOUT
===================================================== */
.tf-container{
  width:100%;max-width:80rem;
  margin:0 auto;
  padding:0 1.5rem;
}
.tf-section   {padding:5rem 0}
.tf-section-sm{padding:3rem 0}

/* =====================================================
   BUTTONS
===================================================== */
.tf-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.85em 1.8em;font-size:.85rem;font-weight:800;letter-spacing:.01em;
  border-radius:.75rem;border:2px solid transparent;
  transition:var(--transition);white-space:nowrap;cursor:pointer;
  touch-action:manipulation;
}
.tf-btn-red       {background:var(--red);     color:#fff;border-color:var(--red)}
.tf-btn-red:hover {background:var(--red-dark);border-color:var(--red-dark);color:#fff;transform:translateY(-1px);box-shadow:0 8px 24px rgba(204,31,46,.3)}
.tf-btn-white     {background:#fff;color:var(--navy);border-color:#fff}
.tf-btn-white:hover{background:#f1f5f9;color:var(--navy)}
.tf-btn-navy      {background:var(--navy);color:#fff;border-color:var(--navy)}
.tf-btn-navy:hover{background:#0f172a;color:#fff}
.tf-btn-ghost     {background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.tf-btn-ghost:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.7);color:#fff}
.tf-btn-outline-navy{background:transparent;color:var(--navy);border-color:var(--navy)}
.tf-btn-outline-navy:hover{background:var(--navy);color:#fff}
/* Full-width on mobile */
@media(max-width:480px){
  .tf-btn-full-mob{width:100%;justify-content:center}
}

/* =====================================================
   BADGES / TAGS
===================================================== */
.tf-eyebrow{
  display:inline-block;font-size:.7rem;font-weight:900;
  letter-spacing:.15em;text-transform:uppercase;color:var(--red);
}
.tf-tag{
  display:inline-flex;align-items:center;padding:.3em .9em;
  border-radius:100px;font-size:.7rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;
}
.tf-tag-navy {background:var(--navy);color:#fff}
.tf-tag-red  {background:var(--red); color:#fff}
.tf-tag-green{background:#dcfce7;color:#166534}
.tf-tag-slate{background:var(--slate-100);color:var(--slate-700)}
.tf-red-line {height:4px;width:5rem;background:var(--red);border-radius:100px;margin:.75rem 0 1.5rem}

/* =====================================================
   TOPBAR
===================================================== */
#tf-topbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--topbar-h);
  background:var(--navy-dark);
  padding:0;
  font-size:.75rem;font-weight:600;
  display:flex;align-items:center;
}
.tf-topbar-inner{
  display:flex;align-items:center;
  justify-content:space-between;
  gap:1rem;
  width:100%;
}
.tf-topbar-left{display:flex;gap:1.25rem;align-items:center}
.tf-topbar-left a,
.tf-topbar-right a{
  color:rgba(255,255,255,.72);
  display:flex;align-items:center;gap:.3rem;
  transition:color .2s;
  font-size:.72rem;
}
.tf-topbar-left a:hover,.tf-topbar-right a:hover{color:#fbbf24}
.tf-topbar-right{display:flex;gap:.875rem;align-items:center}
.tf-topbar-apply{
  background:var(--red);color:#fff!important;
  padding:.2em .75em;border-radius:.4rem;
  font-weight:900!important;font-size:.68rem!important;
  letter-spacing:.02em;
}
.tf-topbar-apply:hover{background:var(--red-dark)!important}

/* =====================================================
   MAIN HEADER
===================================================== */
#tf-header{
  position:fixed;
  top:var(--topbar-h);left:0;right:0;
  z-index:999;height:var(--header-h);
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--slate-200);
  box-shadow:var(--shadow-sm);
  transition:var(--transition);
}
#tf-header.tf-scrolled{
  box-shadow:0 4px 24px rgba(0,0,0,.12);
}
.tf-header-inner{
  display:flex;align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:0 1.5rem;
  height:100%;
  max-width:80rem;margin:0 auto;
}

/* Logo */
.tf-logo{display:flex;align-items:center;gap:.65rem;text-decoration:none;flex-shrink:0}
.tf-logo-text{display:flex;flex-direction:column;line-height:1.05}
.tf-logo-name{font-weight:900;font-size:.92rem;color:var(--navy);letter-spacing:-.01em;line-height:1.1}
.tf-logo-sub{font-size:.55rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin-top:1px}
.tf-logo-divider{height:2px;background:var(--red);border-radius:2px;margin:2px 0}

/* Desktop Nav */
.tf-nav{display:flex;align-items:center;gap:.15rem;flex:1;justify-content:center}
.tf-nav a{
  padding:.5rem .8rem;font-size:.8rem;font-weight:700;
  color:var(--slate-600);border-radius:.5rem;
  transition:var(--transition);white-space:nowrap;
}
.tf-nav a:hover,.tf-nav a.tf-nav-active{color:var(--navy);background:var(--slate-100)}
.tf-nav a.tf-nav-active{color:var(--red)}

/* Header CTA */
.tf-header-cta{display:flex;align-items:center;gap:.6rem;flex-shrink:0}
.tf-hdr-apply{font-size:.78rem;padding:.6em 1.3em}

/* Hamburger */
.tf-hamburger{
  display:none;flex-direction:column;
  justify-content:center;gap:5px;
  padding:8px;cursor:pointer;
  background:none;border:none;
  border-radius:.5rem;
  transition:background .2s;
  -webkit-tap-highlight-color:transparent;
}
.tf-hamburger:hover{background:var(--slate-100)}
.tf-hamburger span{
  display:block;width:22px;height:2px;
  background:var(--navy);border-radius:2px;
  transition:all .3s ease;
  transform-origin:center;
}
/* Animated X when open */
.tf-hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.tf-hamburger.is-open span:nth-child(2){opacity:0;transform:scaleX(0)}
.tf-hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* =====================================================
   MOBILE FULLSCREEN MENU
===================================================== */
#tf-mobile-menu{
  position:fixed;inset:0;
  background:var(--navy);
  z-index:9999;
  transform:translateX(100%);
  transition:transform .32s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
#tf-mobile-menu.open{transform:translateX(0)}
.tf-mob-header{
  display:flex;align-items:center;
  justify-content:space-between;
  padding:1.1rem 1.25rem;
  border-bottom:1px solid rgba(255,255,255,.1);
  flex-shrink:0;
}
.tf-mob-close{
  color:rgba(255,255,255,.8);font-size:1.5rem;
  cursor:pointer;line-height:1;
  padding:.35rem;border-radius:.4rem;
  transition:background .2s;
  -webkit-tap-highlight-color:transparent;
}
.tf-mob-close:hover{background:rgba(255,255,255,.1)}
.tf-mob-nav{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.15rem}
.tf-mob-nav a{
  display:flex;align-items:center;gap:.65rem;
  padding:.95rem .75rem;
  font-size:1rem;font-weight:700;
  color:rgba(255,255,255,.85);
  border-bottom:1px solid rgba(255,255,255,.06);
  border-radius:.5rem;
  transition:var(--transition);
  -webkit-tap-highlight-color:transparent;
}
.tf-mob-nav a:hover{color:#fbbf24;background:rgba(255,255,255,.05)}
.tf-mob-ctas{
  padding:1.25rem;
  display:flex;flex-direction:column;gap:.65rem;
  margin-top:auto;
}

/* =====================================================
   HERO
===================================================== */
.tf-hero{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 60%,var(--navy-dark) 100%);
  color:#fff;min-height:88vh;
  display:flex;align-items:center;
  position:relative;overflow:hidden;
  padding:4rem 0;
}
.tf-hero-deco{position:absolute;inset:0;pointer-events:none}
.tf-hero-circle1{
  position:absolute;top:-8rem;right:-8rem;
  width:clamp(18rem,35vw,30rem);height:clamp(18rem,35vw,30rem);
  border-radius:50%;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
}
.tf-hero-circle2{
  position:absolute;bottom:-4rem;left:-5rem;
  width:clamp(10rem,20vw,16rem);height:clamp(10rem,20vw,16rem);
  border-radius:50%;background:rgba(204,31,46,.08);
}
.tf-hero-dot1{position:absolute;top:45%;right:27%;width:10px;height:10px;border-radius:50%;background:rgba(253,224,71,.6);animation:ping 2s infinite}
.tf-hero-dot2{position:absolute;top:25%;left:34%;width:7px;height:7px;border-radius:50%;background:rgba(147,197,253,.6);animation:pulseAnim 3s infinite}
@keyframes ping{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
@keyframes pulseAnim{0%,100%{opacity:.6}50%{opacity:.2}}
.tf-hero-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;align-items:center;width:100%;
}

/* Hero badge */
.tf-hero-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  color:rgba(255,255,255,.92);padding:.4em 1.1em;border-radius:100px;
  font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:1.25rem;
}
.tf-hero h1{color:#fff;margin-bottom:.5rem}
.tf-hero h1 .tf-red{color:var(--red)}
.tf-hero-sub{color:rgba(255,255,255,.72);font-size:clamp(.88rem,2vw,1.05rem);line-height:1.65;margin-bottom:.75rem;max-width:34rem}
.tf-hero-sub2{color:rgba(255,255,255,.55);font-size:clamp(.82rem,1.8vw,.9rem);line-height:1.65;margin-bottom:1.75rem;max-width:34rem}
.tf-hero-sub2 .tf-emerald{color:#6ee7b7;font-weight:800}
.tf-hero-chips{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;max-width:28rem;margin-bottom:1.75rem}
.tf-hero-chip{
  display:flex;align-items:center;gap:.6rem;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);
  border-radius:.75rem;padding:.65rem .875rem;
}
.tf-hero-chip-icon{font-size:1.1rem;line-height:1;flex-shrink:0}
.tf-hero-chip-text{font-size:.72rem;font-weight:800;color:rgba(255,255,255,.88)}
.tf-hero-btns{display:flex;flex-wrap:wrap;gap:.65rem}

/* Hero right card */
.tf-hero-right{}
.tf-hero-card{
  background:rgba(255,255,255,.1);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18);border-radius:1.5rem;padding:1.75rem;
}
.tf-hero-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:1.25rem}
.tf-hero-stat{background:rgba(255,255,255,.1);border-radius:1rem;padding:.875rem;text-align:center}
.tf-hero-stat-num{font-size:1.4rem;font-weight:900;color:#fff;line-height:1}
.tf-hero-stat-label{font-size:.6rem;font-weight:700;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.08em;margin-top:.25rem}
.tf-hero-checklist{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.25rem}
.tf-hero-check{display:flex;align-items:center;gap:.55rem;font-size:.83rem;color:rgba(255,255,255,.82)}
.tf-hero-check-icon{color:#6ee7b7;flex-shrink:0}
.tf-hero-contact{
  background:rgba(204,31,46,.18);border:1px solid rgba(204,31,46,.35);
  border-radius:1rem;padding:1rem 1.1rem;
  display:flex;flex-direction:column;gap:.65rem;
}
.tf-hero-contact-label{font-size:.82rem;font-weight:800;color:#fff}
.tf-hero-contact-btns{display:flex;gap:.45rem;flex-wrap:wrap}
.tf-hero-contact-btn{
  display:flex;align-items:center;gap:.3rem;
  font-size:.7rem;font-weight:800;color:#fff;
  background:rgba(255,255,255,.13);border:none;border-radius:.5rem;
  padding:.45rem .75rem;cursor:pointer;
  transition:var(--transition);text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.tf-hero-contact-btn:hover{background:rgba(255,255,255,.22);color:#fff}

/* =====================================================
   WHY / FEATURE CARDS
===================================================== */
.tf-why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.tf-why-card{
  padding:1.6rem;border-radius:1.25rem;
  border:2px solid var(--slate-100);
  text-align:center;transition:var(--transition);background:#fff;
}
.tf-why-card:hover{
  border-color:transparent;
  box-shadow:var(--shadow-xl);
  transform:translateY(-3px);
}
.tf-why-icon{
  width:3.25rem;height:3.25rem;border-radius:.875rem;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto .875rem;font-size:1.4rem;
}
.tf-why-card h4{font-weight:900;color:var(--navy);font-size:.92rem;margin-bottom:.5rem}
.tf-why-card p{font-size:.8rem;line-height:1.6;margin:0}

/* =====================================================
   PROGRAMME CARDS
===================================================== */
.tf-prog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.tf-prog-card{
  padding:1.6rem;background:#fff;border-radius:1.25rem;
  border:2px solid var(--slate-100);transition:var(--transition);
  cursor:pointer;display:flex;flex-direction:column;gap:.875rem;
  text-decoration:none;
}
.tf-prog-card:hover{border-color:transparent;box-shadow:var(--shadow-xl);transform:translateY(-4px)}
.tf-prog-emoji{font-size:2.1rem;line-height:1}
.tf-prog-card h3{font-size:1rem;font-weight:900;line-height:1.2;margin:0}
.tf-prog-card-sub{font-size:.68rem;font-weight:800;color:var(--slate-400);text-transform:uppercase;letter-spacing:.08em}
.tf-prog-card p{font-size:.8rem;line-height:1.6;margin:0;flex:1}

/* =====================================================
   PARTNER LOGOS
===================================================== */
.tf-partners-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1.25rem}
.tf-partner-card{
  border-radius:1.25rem;padding:1.1rem;
  border:2px solid transparent;
  text-align:center;transition:var(--transition);
}
.tf-partner-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.tf-partner-logo-wrap{
  width:3.75rem;height:3.75rem;border-radius:.875rem;overflow:hidden;
  margin:0 auto .65rem;background:#fff;
  border:1px solid var(--slate-100);box-shadow:var(--shadow-md);
  padding:.45rem;display:flex;align-items:center;justify-content:center;
}
.tf-partner-logo-wrap img{max-width:100%;max-height:100%;object-fit:contain}
.tf-partner-name{font-weight:900;font-size:.68rem;line-height:1.2}
.tf-partner-note{font-size:.62rem;color:var(--slate-400);font-weight:600;margin-top:.2rem}

/* =====================================================
   ABOUT PAGE
===================================================== */
.tf-about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start}
.tf-vision-card{
  display:flex;gap:.875rem;padding:1.1rem;
  border-radius:1rem;border:1px solid var(--slate-100);
  background:rgba(248,250,252,.5);transition:var(--transition);
  margin-bottom:.65rem;align-items:flex-start;
}
.tf-vision-card:hover{box-shadow:var(--shadow-md)}
.tf-vision-icon{
  width:2.6rem;height:2.6rem;border-radius:.65rem;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:1.1rem;
}
.tf-about-right-card{
  background:linear-gradient(135deg,var(--navy),var(--navy-dark));
  border-radius:1.5rem;padding:1.75rem;color:#fff;margin-bottom:1.25rem;
}
.tf-about-check{display:flex;align-items:center;gap:.5rem;font-size:.83rem;color:rgba(255,255,255,.85);margin-bottom:.55rem}
.tf-about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.875rem}
.tf-about-stat{
  text-align:center;padding:.875rem;
  background:var(--slate-50);border:1px solid var(--slate-100);
  border-radius:.875rem;
}
.tf-about-stat-num{font-size:1.4rem;font-weight:900;color:var(--navy);line-height:1}
.tf-about-stat-label{font-size:.62rem;font-weight:800;color:var(--slate-400);text-transform:uppercase;letter-spacing:.08em;margin-top:.2rem}

/* =====================================================
   CONTACT PAGE
===================================================== */
.tf-contact-cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:3rem}
.tf-contact-card{padding:1.4rem;border-radius:1.25rem;border:2px solid var(--slate-100);text-align:center;transition:var(--transition)}
.tf-contact-card:hover{box-shadow:var(--shadow-lg)}
.tf-contact-icon{width:3rem;height:3rem;border-radius:.75rem;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem;font-size:1.2rem}
.tf-contact-card h3{font-size:.8rem;font-weight:900;margin-bottom:.5rem}
.tf-contact-card p{font-size:.73rem;font-weight:700;color:var(--slate-700);margin:.12rem 0}
.tf-contact-card span{font-size:.63rem;font-weight:600;color:var(--slate-400)}
.tf-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
.tf-contact-form-wrap{
  background:#fff;border-radius:1.5rem;
  box-shadow:var(--shadow-xl);border:1px solid var(--slate-100);
  padding:2.25rem;position:relative;overflow:hidden;
}
.tf-contact-form-wrap::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--navy),var(--red));
}
.tf-form-group{margin-bottom:1.1rem}
.tf-form-label{display:block;font-size:.65rem;font-weight:900;color:var(--slate-600);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.35rem}
.tf-form-input{
  width:100%;padding:.7em .9em;font-size:.88rem;
  color:var(--slate-800);background:var(--slate-50);
  border:1.5px solid var(--slate-200);border-radius:.75rem;
  outline:none;transition:var(--transition);
  -webkit-appearance:none;appearance:none;
}
.tf-form-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(26,42,94,.1);background:#fff}
textarea.tf-form-input{min-height:120px;resize:vertical}
.tf-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}

/* =====================================================
   COURSES PAGE
===================================================== */
.tf-courses-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem}
.tf-course-tab{
  padding:.55em 1.1em;border-radius:.6rem;
  font-size:.78rem;font-weight:800;
  border:2px solid var(--slate-200);color:var(--slate-600);
  cursor:pointer;transition:var(--transition);background:#fff;
  display:flex;align-items:center;gap:.4rem;
  -webkit-tap-highlight-color:transparent;
}
.tf-course-tab:hover,.tf-course-tab.active{border-color:var(--navy);background:var(--navy);color:#fff}
.tf-institution-header{border-radius:1.25rem;padding:1.5rem;margin-bottom:1.5rem;border:2px solid transparent}
.tf-course-card{background:#fff;border-radius:1rem;padding:1.1rem;border:1.5px solid var(--slate-100);transition:var(--transition)}
.tf-course-card:hover{border-color:transparent;box-shadow:var(--shadow-md);transform:translateY(-2px)}
.tf-course-card h4{font-size:.87rem;font-weight:800;color:var(--slate-800);margin-bottom:.4rem}
.tf-course-meta{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.65rem}
.tf-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.875rem}

/* =====================================================
   PAGE HERO (inner pages)
===================================================== */
.tf-page-hero{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-dark) 100%);
  color:#fff;padding:5rem 0 3.5rem;
  position:relative;overflow:hidden;
}
.tf-page-hero h1{color:#fff;margin-bottom:.75rem}
.tf-page-hero p{color:rgba(255,255,255,.7);max-width:38rem;font-size:1rem;line-height:1.65}
.tf-page-hero-deco{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.tf-page-hero-circle{
  position:absolute;top:-6rem;right:-8rem;
  width:clamp(16rem,30vw,26rem);height:clamp(16rem,30vw,26rem);
  border-radius:50%;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);
}

/* =====================================================
   STUDY ABROAD
===================================================== */
.tf-study-card{background:#fff;border-radius:1.25rem;padding:1.5rem;border:2px solid var(--slate-100);transition:var(--transition)}
.tf-study-card:hover{box-shadow:var(--shadow-lg);border-color:transparent}

/* =====================================================
   PARTNER PAGE
===================================================== */
.tf-partner-detail-card{background:#fff;border-radius:1.5rem;padding:1.75rem;border:2px solid;transition:var(--transition)}
.tf-partner-detail-card:hover{box-shadow:var(--shadow-xl)}

/* =====================================================
   FOOTER
===================================================== */
#tf-footer{background:var(--slate-800);color:rgba(255,255,255,.7)}
.tf-footer-main{padding:3.5rem 0 2.5rem}
.tf-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.5rem}
.tf-footer-logo{display:flex;align-items:center;gap:.65rem;margin-bottom:.875rem;text-decoration:none}
.tf-footer-logo-mark{width:36px;height:36px;background:var(--red);border-radius:.45rem;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:.95rem;flex-shrink:0}
.tf-footer-name{font-weight:900;font-size:.9rem;color:#fff;line-height:1.1}
.tf-footer-tagline{font-size:.55rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:var(--red)}
.tf-footer-desc{font-size:.82rem;line-height:1.65;margin-bottom:1.1rem;color:rgba(255,255,255,.5)}
.tf-footer-socials{display:flex;gap:.45rem}
.tf-social{width:32px;height:32px;background:rgba(255,255,255,.07);border-radius:.45rem;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55);font-size:.82rem;transition:var(--transition);text-decoration:none}
.tf-social:hover{background:var(--red);color:#fff}
.tf-footer-col-title{font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.38);margin-bottom:.8rem}
.tf-footer-links{display:flex;flex-direction:column;gap:.45rem}
.tf-footer-links a{font-size:.82rem;color:rgba(255,255,255,.52);transition:var(--transition)}
.tf-footer-links a:hover{color:var(--red)}
.tf-footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding:1.1rem 0}
.tf-footer-bottom-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.65rem}
.tf-footer-copy{font-size:.75rem;color:rgba(255,255,255,.28)}
.tf-footer-legal{display:flex;gap:1.25rem}
.tf-footer-legal a{font-size:.75rem;color:rgba(255,255,255,.28);transition:var(--transition)}
.tf-footer-legal a:hover{color:rgba(255,255,255,.7)}

/* =====================================================
   VISITOR ANALYTICS WIDGET
===================================================== */
.tf-visitor-widget{
  display:inline-flex;align-items:center;gap:.65rem;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:.875rem;
  padding:.6rem 1rem;
  font-size:.72rem;
  color:rgba(255,255,255,.65);
  font-weight:700;
  flex-wrap:wrap;
}
.tf-visitor-widget .tf-vis-item{
  display:flex;align-items:center;gap:.35rem;
  white-space:nowrap;
}
.tf-visitor-widget .tf-vis-num{
  font-weight:900;color:#fff;
  font-size:.82rem;
  font-variant-numeric:tabular-nums;
}
.tf-visitor-widget .tf-vis-live{
  display:inline-flex;align-items:center;gap:.3rem;
}
.tf-vis-live-dot{
  width:7px;height:7px;border-radius:50%;
  background:#22c55e;
  animation:tf-live-blink 1.4s ease-in-out infinite;
}
@keyframes tf-live-blink{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.35;transform:scale(.75)}
}

/* Standalone visitor counter (used in footer or widget area) */
.tf-visitor-counter{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:1rem;
  padding:1.1rem 1.5rem;
  display:flex;
  flex-wrap:wrap;
  gap:1.25rem;
  align-items:center;
}
.tf-vc-block{text-align:center}
.tf-vc-num{
  display:block;
  font-size:1.6rem;font-weight:900;
  color:#fff;line-height:1;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;
}
.tf-vc-label{
  display:block;
  font-size:.6rem;font-weight:800;
  color:rgba(255,255,255,.42);
  text-transform:uppercase;letter-spacing:.12em;
  margin-top:.2rem;
}
.tf-vc-divider{
  width:1px;height:2.5rem;
  background:rgba(255,255,255,.12);
}
/* Odometer-style flip counter */
.tf-flip-num{
  display:inline-flex;gap:1px;
}
.tf-flip-digit{
  display:inline-block;
  background:rgba(255,255,255,.15);
  color:#fff;
  font-weight:900;font-size:1.5rem;
  width:1.6rem;height:2rem;
  line-height:2rem;text-align:center;
  border-radius:.3rem;
  font-variant-numeric:tabular-nums;
  transition:opacity .15s;
}

/* =====================================================
   WORDPRESS UTILITY
===================================================== */
.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}
.aligncenter{display:block;margin:0 auto}
.alignleft{float:left;margin-right:1.5rem}
.alignright{float:right;margin-left:1.5rem}
.wp-caption-text{font-size:.83rem;color:var(--slate-400);text-align:center;margin-top:.45rem}
.entry-content ul{list-style:disc;margin:1rem 0 1rem 1.5rem}
.entry-content ol{list-style:decimal;margin:1rem 0 1rem 1.5rem}
.entry-content a{color:var(--red);text-decoration:underline}
.entry-content h2{margin:2rem 0 .75rem}
.entry-content h3{margin:1.5rem 0 .5rem}

/* =====================================================
   RESPONSIVE — TABLET 1200px
===================================================== */
@media(max-width:1200px){
  .tf-partners-grid{grid-template-columns:repeat(3,1fr)}
  .tf-footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .tf-why-grid{grid-template-columns:repeat(2,1fr)}
  .tf-prog-grid{grid-template-columns:repeat(2,1fr)}
}

/* =====================================================
   RESPONSIVE — TABLET 1024px
===================================================== */
@media(max-width:1024px){
  .tf-contact-cards-grid{grid-template-columns:repeat(2,1fr)}
  .tf-course-grid{grid-template-columns:repeat(2,1fr)}
  .tf-nav a{padding:.45rem .65rem;font-size:.75rem}
}

/* =====================================================
   RESPONSIVE — TABLET 900px (hamburger breakpoint)
===================================================== */
@media(max-width:900px){
  :root{--header-h:58px;--topbar-h:32px}
  .tf-hero{min-height:auto;padding:3.5rem 0}
  .tf-hero-inner{grid-template-columns:1fr}
  .tf-hero-right{display:none}
  .tf-about-grid{grid-template-columns:1fr}
  .tf-contact-grid{grid-template-columns:1fr}
  /* Show hamburger, hide desktop nav & CTA */
  .tf-nav{display:none}
  .tf-hamburger{display:flex}
  .tf-header-cta{display:none}
  /* Topbar: hide email on tablet */
  .tf-tb-hide-sm{display:none}
}

/* =====================================================
   RESPONSIVE — MOBILE 640px
===================================================== */
@media(max-width:640px){
  :root{--header-h:54px;--topbar-h:30px}
  .tf-container{padding:0 .875rem}
  .tf-section{padding:2.75rem 0}
  .tf-section-sm{padding:2rem 0}
  /* Grids → single column */
  .tf-why-grid{grid-template-columns:1fr}
  .tf-prog-grid{grid-template-columns:1fr}
  .tf-partners-grid{grid-template-columns:repeat(2,1fr)}
  .tf-contact-cards-grid{grid-template-columns:1fr}
  .tf-footer-grid{grid-template-columns:1fr;gap:1.75rem}
  .tf-course-grid{grid-template-columns:1fr}
  .tf-form-row{grid-template-columns:1fr}
  .tf-hero-chips{grid-template-columns:1fr}
  .tf-hero-btns{flex-direction:column}
  .tf-hero-btns .tf-btn{justify-content:center}
  .tf-about-stats{grid-template-columns:repeat(3,1fr);gap:.5rem}
  /* Typography */
  h1{font-size:clamp(1.65rem,7vw,2.2rem)}
  h2{font-size:clamp(1.3rem,5.5vw,1.75rem)}
  /* Contact form */
  .tf-contact-form-wrap{padding:1.5rem}
  /* Hero card hidden on all small phones */
  .tf-hero-right{display:none!important}
  /* Topbar: show just phone on tiny screens */
  .tf-tb-hide-xs{display:none}
  /* Footer */
  .tf-footer-bottom-inner{flex-direction:column;text-align:center}
  .tf-footer-legal{justify-content:center;flex-wrap:wrap;gap:.75rem}
  /* Visitor counter responsive */
  .tf-visitor-counter{justify-content:center}
  .tf-vc-divider{display:none}
}

/* =====================================================
   RESPONSIVE — SMALL MOBILE 375px
===================================================== */
@media(max-width:375px){
  :root{--header-h:52px}
  .tf-container{padding:0 .75rem}
  .tf-hero{padding:2.75rem 0}
  .tf-hero-chips{grid-template-columns:1fr}
  .tf-hero-badge{font-size:.62rem}
  .tf-hero-stat-num{font-size:1.1rem}
  .tf-partners-grid{grid-template-columns:1fr}
  .tf-mob-nav a{font-size:.95rem;padding:.85rem .65rem}
  .tf-flip-digit{width:1.4rem;height:1.75rem;line-height:1.75rem;font-size:1.3rem}
}

/* =====================================================
   PRINT
===================================================== */
@media print{
  #tf-topbar,#tf-header,#tf-mobile-menu,.tf-wa-float,#tf-footer{display:none!important}
  body{padding-top:0}
}

/* =====================================================
   WHATSAPP FLOAT BUTTON (kept from v6)
===================================================== */
.tf-wa-float{position:fixed;bottom:24px;right:22px;z-index:9990;display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-family:var(--font-sans)}
.tf-wa-bubble{background:#fff;border-radius:14px 14px 4px 14px;box-shadow:0 8px 32px rgba(0,0,0,.18);padding:14px 18px;max-width:230px;position:relative;animation:tf-bubble-in .35s cubic-bezier(.34,1.56,.64,1) both;display:none}
.tf-wa-bubble.show{display:block}
@keyframes tf-bubble-in{from{opacity:0;transform:scale(.7) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
.tf-wa-bubble::after{content:'';position:absolute;bottom:-7px;right:16px;border:7px solid transparent;border-top-color:#fff;border-bottom:0}
.tf-wa-bubble-header{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.tf-wa-bubble-avatar{width:34px;height:34px;background:linear-gradient(135deg,#25D366,#128C7E);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tf-wa-bubble-name{font-size:.78rem;font-weight:800;color:#1a2a5e;line-height:1.1}
.tf-wa-bubble-status{font-size:.65rem;color:#25D366;font-weight:700}
.tf-wa-bubble-msg{font-size:.78rem;color:#475569;line-height:1.5;margin-bottom:10px}
.tf-wa-bubble-cta{display:block;background:#25D366;color:#fff;text-align:center;border-radius:7px;padding:.5em .875em;font-size:.75rem;font-weight:800;text-decoration:none;transition:background .2s}
.tf-wa-bubble-cta:hover{background:#128C7E;color:#fff}
.tf-wa-bubble-close{position:absolute;top:7px;right:9px;background:none;border:none;font-size:.95rem;color:#94a3b8;cursor:pointer;padding:2px 4px}
.tf-wa-btn{width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(37,211,102,.45);cursor:pointer;text-decoration:none;border:none;transition:transform .2s,box-shadow .2s;position:relative;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.tf-wa-btn:hover{transform:scale(1.08);box-shadow:0 10px 32px rgba(37,211,102,.55)}
.tf-wa-btn:active{transform:scale(.96)}
.tf-wa-btn::before,.tf-wa-btn::after{content:'';position:absolute;border-radius:50%;border:3px solid rgba(37,211,102,.3)}
.tf-wa-btn::before{inset:-6px;animation:tf-wa-pulse 2.2s ease-out infinite}
.tf-wa-btn::after{inset:-12px;border-color:rgba(37,211,102,.15);animation:tf-wa-pulse 2.2s ease-out infinite .5s}
@keyframes tf-wa-pulse{0%{transform:scale(.9);opacity:1}70%{transform:scale(1.25);opacity:0}100%{opacity:0}}
.tf-wa-notif{position:absolute;top:-2px;right:-2px;width:17px;height:17px;background:#cc1f2e;border-radius:50%;border:2px solid #fff;font-size:.58rem;font-weight:900;color:#fff;display:flex;align-items:center;justify-content:center;animation:tf-wa-bounce 1.8s ease-in-out infinite}
@keyframes tf-wa-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.tf-wa-label{position:absolute;right:68px;top:50%;transform:translateY(-50%);background:rgba(15,23,42,.85);color:#fff;padding:.3em .75em;border-radius:5px;font-size:.68rem;font-weight:700;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s}
.tf-wa-btn:hover~.tf-wa-label{opacity:1}
@media(max-width:480px){
  .tf-wa-float{bottom:16px;right:14px}
  .tf-wa-btn{width:50px;height:50px}
}
