/* Tb Tutors: navy and gold. Design tokens and components come from the approved prototype. */
:root{
  --navy:#101f3f;--navy-2:#16294f;--gold:#d9a72c;--gold-dark:#c2941f;
  --bg:#f1f2f5;--white:#fff;--ink:#101f3f;--muted:#5c6478;--border:#e3e5ea;--radius:10px;
}
*{box-sizing:border-box}
html{background:var(--navy)}
html body.tbtutors-theme{
  margin:0;font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color:var(--ink)!important;background:var(--bg)!important;-webkit-font-smoothing:antialiased;
}
body.tbtutors-theme a{text-decoration:none}
body.tbtutors-theme img{max-width:100%;height:auto}
.container{max-width:1120px;margin:0 auto;padding:0 24px}
svg.i{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
svg.f{fill:currentColor}

/* ---------- Header ---------- */
header.site-header{background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08);padding-top:env(safe-area-inset-top,0px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1120px;margin:0 auto;flex-wrap:wrap;gap:16px}
.logo{display:flex;align-items:center;gap:10px}
.logo-badge{width:34px;height:34px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-badge svg{width:18px;height:18px;stroke:var(--navy)}
.logo-text{font-weight:700;font-size:17px;color:#fff;white-space:nowrap}
.logo-text .sub{color:var(--gold);font-weight:700}
nav.main-nav{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
nav.main-nav a{color:rgba(255,255,255,.82);font-size:14.5px;font-weight:500;transition:color .15s}
nav.main-nav a:hover{color:#fff}
nav.main-nav a.active{color:var(--gold);font-weight:600}
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:8px;font-size:14.5px;font-weight:600;border:0;cursor:pointer;font-family:inherit;transition:background .12s}
.btn svg{width:16px;height:16px}
.btn-gold{background:var(--gold);color:var(--navy)}
.btn-gold:hover{background:var(--gold-dark)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-2)}

/* ---------- Footer ---------- */
footer.site-footer{background:var(--navy);color:rgba(255,255,255,.6);padding:32px 24px calc(32px + env(safe-area-inset-bottom,0px));text-align:center;font-size:13.5px}
footer.site-footer a{color:rgba(255,255,255,.85)}
footer.site-footer .host-credit{margin-top:10px;font-size:12.5px;color:rgba(255,255,255,.5)}
footer.site-footer .host-credit a{color:var(--gold)}

/* ---------- Plain-PHP page parts (blog posts, archives, 404) ---------- */
.hero{background:var(--navy);color:#fff;padding:64px 24px 72px;text-align:center}
.hero.compact{padding:44px 24px 52px;text-align:left}
.hero h1{font-size:clamp(28px,4.2vw,42px);font-weight:700;line-height:1.18;max-width:780px;margin:0 0 16px;letter-spacing:-.01em;color:#fff}
.hero p.lede{color:rgba(255,255,255,.78);font-size:16.5px;max-width:600px;line-height:1.55}
.section{padding:56px 24px}
.section h2{font-size:22px;font-weight:700;margin:0 0 28px;color:var(--ink)}
.post-body{max-width:760px;font-size:16.5px;line-height:1.75}
.post-body h2,.post-body h3{margin:32px 0 12px}
.post-body p{margin:0 0 18px}
.post-body a{color:var(--gold-dark);text-decoration:underline}

/* ---------- Cards, pills, forms (used by the shortcodes) ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
body.tbtutors-theme .card,body.tbtutors-theme .card:hover{color:var(--ink)}
.card{display:block;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px;transition:box-shadow .15s ease,transform .15s ease}
a.card:hover{box-shadow:0 6px 18px rgba(16,31,63,.08);transform:translateY(-2px)}
.icon-circle{width:42px;height:42px;border-radius:50%;background:#faf0d8;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.icon-circle svg{width:19px;height:19px;stroke:var(--gold-dark)}
.card .tag{font-size:11.5px;font-weight:700;color:var(--gold-dark);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;display:block}
.card h3{font-size:16px;font-weight:600;line-height:1.4;color:var(--ink);margin:0}
.card .date{font-size:13px;color:var(--muted);margin-top:10px}
.pill-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.pill{padding:9px 18px;border-radius:999px;font-size:13.5px;font-weight:600;background:#fff;border:1px solid var(--border);color:var(--ink)}
.pill.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.search-bar{display:flex;background:#fff;border-radius:10px;overflow:hidden;max-width:560px;margin:0 auto;border:1px solid rgba(255,255,255,.15)}
.search-bar svg{width:18px;height:18px;stroke:var(--muted);margin:0 4px 0 16px;align-self:center;flex-shrink:0}
.search-bar input{flex:1;min-width:0;border:none;padding:14px 10px;font-size:14.5px;font-family:inherit;outline:none;background:transparent;color:var(--ink)}
.search-bar button{background:var(--navy);color:#fff;padding:0 22px;font-weight:600;font-size:14px;border:0;cursor:pointer;font-family:inherit}
.form-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:28px;position:relative}
.field{margin-bottom:18px}
.field>label{display:block;font-size:13.5px;font-weight:600;color:var(--muted);margin-bottom:8px}
.field input[type=text],.field input[type=number],.field input[type=tel],.field textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14.5px;color:var(--ink);background:#fafafb}
.tbt-exams{display:flex;flex-wrap:wrap;gap:10px}
.tbt-check{display:inline-flex!important;align-items:center;gap:8px;margin:0!important;padding:9px 16px;border:1px solid var(--border);border-radius:999px;background:#fafafb;font-size:13.5px!important;font-weight:600!important;color:var(--ink)!important;cursor:pointer}
.tbt-check input{accent-color:var(--navy)}
.tbt-note{margin:0 0 16px;font-weight:600;font-size:14.5px}
.tbt-note.ok{color:#1f7a3d}
.tbt-note.bad{color:#c0392b}

/* ---------- Elementor pages ---------- */
.site-main .elementor-widget:not(:last-child){margin-bottom:0}
body.tbtutors-theme .elementor h1,
body.tbtutors-theme .elementor h2,
body.tbtutors-theme .elementor h3,
body.tbtutors-theme .elementor p,
body.tbtutors-theme .elementor a,
body.tbtutors-theme .elementor li,
body.tbtutors-theme .elementor button,
body.tbtutors-theme .elementor input,
body.tbtutors-theme .elementor textarea,
body.tbtutors-theme .elementor label{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}

/* section containers */
.elementor .tbt-sec{padding:56px 24px!important}
.elementor .tbt-sec>.e-con-inner{max-width:1120px!important;width:100%;margin:0 auto;padding:0;gap:0}
.elementor .tbt-sec.e-con{--gap:0px;row-gap:0;column-gap:0}
.elementor .tbt-hero{background:var(--navy)!important;padding:64px 24px 72px!important}
.elementor .tbt-hero>.e-con-inner{align-items:center;text-align:center}
.elementor .tbt-hero.tbt-compact{padding:44px 24px 52px!important}
.elementor .tbt-hero.tbt-compact:not(.tbt-centered)>.e-con-inner{align-items:flex-start;text-align:left}
.elementor .tbt-hero.tbt-hero-search{padding-bottom:40px!important}
.elementor .tbt-white{background:#fff!important;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.elementor .tbt-dark{background:var(--navy)!important}
.elementor .tbt-nopt{padding-top:0!important}
.elementor .tbt-narrow>.e-con-inner{max-width:760px!important}

/* headings */
.elementor .tbt-h1 .elementor-heading-title{font-size:clamp(28px,4.2vw,42px)!important;font-weight:700!important;line-height:1.18!important;letter-spacing:-.01em;color:#fff!important;margin:0 0 16px}
.elementor .tbt-h1.tbt-h1-sm .elementor-heading-title{font-size:24px!important;margin-bottom:8px}
.elementor .tbt-hero .tbt-h1{max-width:780px}
.elementor .tbt-h2 .elementor-heading-title{font-size:22px!important;font-weight:700!important;line-height:1.3!important;color:var(--ink)!important;margin:0 0 28px}
.elementor .tbt-h2.tbt-h2c .elementor-heading-title{font-size:clamp(24px,3.4vw,32px)!important;line-height:1.2!important;letter-spacing:-.01em;margin:0 0 14px;text-align:center}
.elementor .tbt-dark .tbt-h2 .elementor-heading-title{color:#fff!important}
.elementor .tbt-h2.tbt-h2c{max-width:680px;margin-left:auto;margin-right:auto;width:100%}
.elementor .tbt-eyebrow{text-align:center;width:100%}
.elementor .tbt-eyebrow p{display:inline-block;margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dark)}
.elementor .tbt-dark .tbt-eyebrow p{color:var(--gold)}
.elementor .tbt-secp{max-width:680px;margin:0 auto 36px;width:100%;text-align:center}
.elementor .tbt-secp p{margin:0;font-size:16px;line-height:1.6;color:var(--muted)}
.elementor .tbt-dark .tbt-secp p{color:rgba(255,255,255,.75)}
.elementor .tbt-lede{max-width:600px;width:100%;margin:0 0 32px}
.elementor .tbt-lede p{margin:0;font-size:16.5px;line-height:1.55;color:rgba(255,255,255,.78)}
.elementor .tbt-hero:not(.tbt-compact) .tbt-lede,.elementor .tbt-centered .tbt-lede{margin-left:auto;margin-right:auto}
.elementor .tbt-hero.tbt-compact .tbt-lede{margin-bottom:0}
.elementor .tbt-lede.tbt-lede-sm p{font-size:15px;line-height:1.6;color:rgba(255,255,255,.8)}
.elementor .tbt-hero-search .tbt-lede{margin-bottom:28px}
.elementor .tbt-hero .elementor-shortcode{width:100%}

/* buttons */
.elementor .tbt-btn .elementor-button{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:8px;font-size:14.5px;font-weight:600;line-height:1.4;box-shadow:none;border:0;transition:background .12s}
.elementor .tbt-btn .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:8px;flex-direction:row}
.elementor .tbt-btn .elementor-button-icon{margin:0;display:inline-flex}
.elementor .tbt-btn .elementor-button-icon i{font-size:16px}
.elementor .tbt-btn .elementor-button-icon svg{width:16px;height:16px}
.elementor .tbt-btn-gold .elementor-button{background:var(--gold)!important;color:var(--navy)!important}
.elementor .tbt-btn-gold .elementor-button:hover{background:var(--gold-dark)!important}
.elementor .tbt-btn-gold .elementor-button *{color:var(--navy)!important;fill:var(--navy)!important}
.elementor .tbt-btn-navy .elementor-button{background:var(--navy)!important;color:#fff!important}
.elementor .tbt-btn-navy .elementor-button:hover{background:var(--navy-2)!important}
.elementor .tbt-btn-navy .elementor-button *{color:#fff!important;fill:#fff!important}
.elementor .tbt-w100 .elementor-button{width:100%;justify-content:center}
.elementor .tbt-mt{margin-top:36px}

/* grid of cards */
.elementor .tbt-grid{display:grid!important;grid-template-columns:repeat(3,1fr);gap:20px;width:100%;padding:0}
.elementor .tbt-grid>.elementor-widget{width:auto;margin:0}

/* icon-box = card (light) */
.elementor .tbt-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px;transition:box-shadow .15s ease,transform .15s ease;height:100%}
.elementor .tbt-card:hover{box-shadow:0 6px 18px rgba(16,31,63,.08);transform:translateY(-2px)}
.elementor .tbt-card .elementor-icon-box-wrapper,.elementor .tbt-feat .elementor-icon-box-wrapper{display:block;text-align:left}
.elementor .tbt-card .elementor-icon-box-icon,.elementor .tbt-feat .elementor-icon-box-icon{display:block;margin:0 0 14px!important}
.elementor .tbt-card .elementor-icon,.elementor .tbt-feat .elementor-icon{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:18px}
.elementor .tbt-card .elementor-icon{background:#faf0d8;color:var(--gold-dark)}
.elementor .tbt-card .elementor-icon i{color:var(--gold-dark);font-size:18px}
.elementor .tbt-card .elementor-icon svg{width:18px;height:18px;fill:var(--gold-dark)}
.elementor .tbt-card .elementor-icon-box-title,.elementor .tbt-card .elementor-icon-box-title span,.elementor .tbt-card .elementor-icon-box-title a{font-size:16px;font-weight:600;line-height:1.4;color:var(--ink);margin:0 0 6px}
.elementor .tbt-card .elementor-icon-box-description{margin:0;font-size:13.5px;line-height:1.6;color:var(--muted)}

/* icon-box = card (dark section) */
.elementor .tbt-feat{background:var(--navy-2);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:26px;height:100%}
.elementor .tbt-feat .elementor-icon{background:var(--gold);color:var(--navy)}
.elementor .tbt-feat .elementor-icon i{color:var(--navy);font-size:18px}
.elementor .tbt-feat .elementor-icon svg{width:18px;height:18px;fill:var(--navy)}
.elementor .tbt-feat .elementor-icon-box-title,.elementor .tbt-feat .elementor-icon-box-title span{font-size:17px;font-weight:600;line-height:1.35;color:#fff;margin:0 0 8px}
.elementor .tbt-feat .elementor-icon-box-description{margin:0;font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.72)}

/* two-column rows (Prep/Tutor and Contact) */
.elementor .tbt-split>.e-con-inner{display:grid;gap:32px;align-items:start}
.elementor .tbt-split-prep>.e-con-inner{grid-template-columns:1.3fr 1fr}
.elementor .tbt-split-contact>.e-con-inner{grid-template-columns:1fr 1.3fr;gap:40px}
.elementor .tbt-col{padding:0;width:100%}
.elementor .tbt-pills ul{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.elementor .tbt-pills li{padding:10px 18px;border-radius:999px;background:#fff;border:1px solid var(--border);font-size:14px;font-weight:600;color:var(--ink);margin:0}
.elementor .tbt-trial{background:#fff;border:2px solid var(--gold);border-radius:var(--radius);padding:26px;text-align:center;align-items:stretch}
.elementor .tbt-badge{text-align:center}
.elementor .tbt-badge p{display:inline-block;margin:0 0 14px;background:#faf0d8;color:var(--gold-dark);font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px}
.elementor .tbt-big .elementor-heading-title{font-size:20px!important;font-weight:700!important;color:var(--ink)!important;margin:0 0 4px;text-align:center}
.elementor .tbt-small p{margin:0 0 20px;font-size:13.5px;color:var(--muted);text-align:center}

/* contact list */
.elementor .tbt-contact-list .elementor-icon-list-item{margin-bottom:18px;font-size:15px}
.elementor .tbt-contact-list .elementor-icon-list-text{color:var(--ink);font-size:15px}
.elementor .tbt-contact-list .elementor-icon-list-icon i{color:var(--navy);font-size:18px}
.elementor .tbt-contact-list .elementor-icon-list-icon svg{fill:var(--navy);width:18px;height:18px}

/* about */
.elementor .tbt-about-row{display:flex!important;flex-direction:row;align-items:center;gap:20px;padding:0}
.elementor .tbt-avatar .elementor-icon{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px}
.elementor .tbt-avatar .elementor-icon i{color:#fff;font-size:28px}
.elementor .tbt-avatar .elementor-icon svg{width:28px;height:28px;fill:#fff}
.elementor .tbt-avatar{flex-shrink:0;width:auto}

/* FAQ accordion */
.elementor .tbt-faq .elementor-accordion-item{background:#fff;border:1px solid var(--border)!important;border-radius:var(--radius);margin-bottom:12px;overflow:hidden}
.elementor .tbt-faq .elementor-tab-title{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;border:0!important}
.elementor .tbt-faq .elementor-accordion-icon{order:2;margin:0 0 0 12px;color:var(--muted)}
.elementor .tbt-faq .elementor-accordion-icon i{color:var(--muted);font-size:13px}
.elementor .tbt-faq .elementor-accordion-icon svg{fill:var(--muted);width:13px;height:13px}
.elementor .tbt-faq .elementor-accordion-title{font-size:15px;font-weight:600;color:var(--ink)!important}
.elementor .tbt-faq .elementor-tab-content{padding:0 22px 18px;border:0!important;font-size:14.5px;line-height:1.6;color:var(--muted)}

/* ---------- Responsive ---------- */
@media (max-width:820px){
  .card-grid,.elementor .tbt-grid{grid-template-columns:repeat(2,1fr)}
  .elementor .tbt-split-prep>.e-con-inner,.elementor .tbt-split-contact>.e-con-inner{grid-template-columns:1fr}
  nav.main-nav{order:3;width:100%;justify-content:flex-start;gap:16px}
}
@media (max-width:520px){
  .card-grid,.elementor .tbt-grid{grid-template-columns:1fr}
  .hero,.elementor .tbt-hero{padding-left:20px!important;padding-right:20px!important}
  .elementor .tbt-about-row{flex-direction:column;align-items:flex-start}
}
