/*
Theme Name:   TSDC Kadence Child
Theme URI:    https://topsmiledentalclinic.com
Description:  Luxury dental clinic child theme for Top Smile Dental Clinic. Teal + Champagne Gold + Navy palette.
Author:       Top Smile Dental Clinic
Template:     kadence
Version:      1.0.0
License:      GNU General Public License v2 or later
Text Domain:  tsdc-kadence-child
*/

/* ════════════════════════════════════════════════════════════════════
   DESIGN TOKENS — Top Smile Dental Clinic
   Palette: Teal #0A7C8C · Gold #C9A84C · Navy #1A1A2E
   Fonts:   Cormorant Garamond (display) · DM Sans (body)
════════════════════════════════════════════════════════════════════ */
:root {
  /* ── Brand Palette ── */
  --tsdc-teal:       #0A7C8C;
  --tsdc-teal-dk:    #085f6c;
  --tsdc-teal-lt:    #0d9cb0;
  --tsdc-teal-pale:  #e8f5f7;
  --tsdc-gold:       #C9A84C;
  --tsdc-gold-lt:    #d9bc72;
  --tsdc-gold-pale:  #faf6ec;
  --tsdc-navy:       #1A1A2E;
  --tsdc-navy-lt:    #2a2a45;
  --tsdc-navy-pale:  #f0f0f5;
  --tsdc-white:      #ffffff;
  --tsdc-off:        #f9f8f6;
  --tsdc-grey:       #6b7280;
  --tsdc-grey-lt:    #e5e7eb;
  --tsdc-text:       #1a1a2e;
  --tsdc-border:     #dde3e8;

  /* ── Spacing Scale ── */
  --sp-1:  4px;
  --sp-2:  8px;
  --sp-3:  12px;
  --sp-4:  16px;
  --sp-5:  20px;
  --sp-6:  24px;
  --sp-8:  32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: 64px;
  --sp-20: 80px;
  --sp-24: 96px;

  /* ── Border Radius ── */
  --rad-sm:  4px;
  --rad:     8px;
  --rad-md:  12px;
  --rad-lg:  20px;
  --rad-xl:  32px;
  --rad-full: 9999px;

  /* ── Shadows ── */
  --sh-xs:  0 1px 3px rgba(26,26,46,.08);
  --sh-sm:  0 2px 8px rgba(26,26,46,.10);
  --sh:     0 4px 20px rgba(10,124,140,.12);
  --sh-md:  0 8px 32px rgba(10,124,140,.16);
  --sh-lg:  0 16px 56px rgba(10,124,140,.20);
  --sh-gold: 0 4px 20px rgba(201,168,76,.25);

  /* ── Typography Scale ── */
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body:    'DM Sans', system-ui, sans-serif;
  --text-xs:   0.75rem;   /* 12px */
  --text-sm:   0.875rem;  /* 14px */
  --text-base: 1rem;      /* 16px */
  --text-lg:   1.125rem;  /* 18px */
  --text-xl:   1.25rem;   /* 20px */
  --text-2xl:  1.5rem;    /* 24px */
  --text-3xl:  1.875rem;  /* 30px */
  --text-4xl:  2.25rem;   /* 36px */
  --text-5xl:  3rem;      /* 48px */
  --text-6xl:  3.75rem;   /* 60px */

  /* ── Transitions ── */
  --ease:     cubic-bezier(.4, 0, .2, 1);
  --ease-out: cubic-bezier(0, 0, .2, 1);
  --dur-fast: 150ms;
  --dur:      250ms;
  --dur-slow: 400ms;

  /* ── Kadence overrides ── */
  --global-palette1: #0A7C8C;   /* Teal (primary) */
  --global-palette2: #C9A84C;   /* Gold (accent) */
  --global-palette3: #1A1A2E;   /* Navy (dark) */
  --global-palette4: #085f6c;   /* Teal dark */
  --global-palette5: #d9bc72;   /* Gold light */
  --global-palette6: #f9f8f6;   /* Off-white */
  --global-palette7: #6b7280;   /* Grey */
  --global-palette8: #ffffff;   /* White */
  --global-palette9: #e8f5f7;   /* Teal pale */
}

/* ════════════════════════════════════════════════════════════════════
   GLOBAL BASE STYLES
════════════════════════════════════════════════════════════════════ */
html {
  font-size: 17px;
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
}

body {
  font-family: var(--font-body);
  color: var(--tsdc-text);
  background-color: var(--tsdc-white);
  line-height: 1.75;
  font-size: 1rem;
}

/* Slightly larger body text throughout */
p, li, td, label, input, select, textarea, button {
  font-size: 1rem;
}
.entry-content p, .entry-content li { font-size: 1rem; line-height: 1.8; }

/* ── Display / Heading Font ── */
h1, h2, h3, h4,
.wp-block-heading h1,
.wp-block-heading h2,
.entry-title,
.kadence-advanced-heading,
.tsdc-display {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--tsdc-navy);
}

h1 { font-size: clamp(2.5rem, 5vw, 3.75rem); }
h2 { font-size: clamp(1.875rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); }
h4 { font-size: 1.25rem; }
h5, h6 { font-family: var(--font-body); font-weight: 700; }

p { margin-bottom: var(--sp-4); }
a { color: var(--tsdc-teal); transition: color var(--dur) var(--ease); }
a:hover { color: var(--tsdc-teal-dk); }

/* ════════════════════════════════════════════════════════════════════
   BUTTON SYSTEM
════════════════════════════════════════════════════════════════════ */
.tsdc-btn,
.wp-block-button__link,
.kb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--text-sm);
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: all var(--dur) var(--ease);
  border-radius: var(--rad);
  padding: 14px 32px;
}

/* Primary — Teal */
.tsdc-btn-primary,
.wp-block-button.is-style-fill .wp-block-button__link {
  background: var(--tsdc-teal);
  color: var(--tsdc-white) !important;
  box-shadow: var(--sh);
}
.tsdc-btn-primary:hover,
.wp-block-button.is-style-fill .wp-block-button__link:hover {
  background: var(--tsdc-teal-dk);
  transform: translateY(-2px);
  box-shadow: var(--sh-md);
  color: var(--tsdc-white) !important;
}

/* Gold — Accent CTA */
.tsdc-btn-gold {
  background: var(--tsdc-gold);
  color: var(--tsdc-navy) !important;
  box-shadow: var(--sh-gold);
}
.tsdc-btn-gold:hover {
  background: var(--tsdc-gold-lt);
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(201,168,76,.35);
  color: var(--tsdc-navy) !important;
}

/* Outline — Teal border */
.tsdc-btn-outline,
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  border: 2px solid var(--tsdc-teal);
  color: var(--tsdc-teal) !important;
}
.tsdc-btn-outline:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--tsdc-teal);
  color: var(--tsdc-white) !important;
}

/* Ghost — white for dark backgrounds */
.tsdc-btn-ghost {
  background: transparent;
  border: 2px solid rgba(255,255,255,.6);
  color: var(--tsdc-white) !important;
}
.tsdc-btn-ghost:hover {
  background: rgba(255,255,255,.12);
  border-color: #fff;
}

/* ════════════════════════════════════════════════════════════════════
   HEADER
════════════════════════════════════════════════════════════════════ */
.site-header,
#masthead {
  border-bottom: 1px solid var(--tsdc-grey-lt);
  background: var(--tsdc-white);
}

/* Top bar */
.tsdc-topbar {
  background: var(--tsdc-navy);
  color: rgba(255,255,255,.75);
  font-size: var(--text-xs);
  font-weight: 500;
  padding: 8px 0;
  letter-spacing: .03em;
}
.tsdc-topbar a { color: var(--tsdc-gold); }
.tsdc-topbar a:hover { color: var(--tsdc-gold-lt); }

/* Main nav */
.main-navigation a,
.header-navigation a {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--text-sm);
  letter-spacing: .02em;
  color: var(--tsdc-navy);
}
.main-navigation a:hover { color: var(--tsdc-teal); }

/* Dropdown */
.main-navigation .sub-menu {
  border-top: 3px solid var(--tsdc-teal);
  box-shadow: var(--sh-md);
  border-radius: 0 0 var(--rad) var(--rad);
}

/* CTA in nav */
.header-cta-btn {
  background: var(--tsdc-gold);
  color: var(--tsdc-navy) !important;
  padding: 10px 22px;
  border-radius: var(--rad);
  font-weight: 700;
  font-size: var(--text-xs);
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: all var(--dur) var(--ease);
}
.header-cta-btn:hover {
  background: var(--tsdc-gold-lt);
  transform: translateY(-1px);
  box-shadow: var(--sh-gold);
}

/* ════════════════════════════════════════════════════════════════════
   SECTION HELPERS
════════════════════════════════════════════════════════════════════ */
.tsdc-section { padding: var(--sp-24) 0; }
.tsdc-section-sm { padding: var(--sp-16) 0; }
.tsdc-container { max-width: 1200px; margin: 0 auto; padding: 0 var(--sp-6); }

.tsdc-eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tsdc-gold);
  margin-bottom: var(--sp-3);
}
.tsdc-eyebrow::before { content: '—  '; }
.tsdc-eyebrow::after  { content: '  —'; }

/* Section divider rule */
.tsdc-rule {
  width: 60px; height: 3px;
  background: linear-gradient(90deg, var(--tsdc-teal), var(--tsdc-gold));
  border-radius: var(--rad-full);
  margin: var(--sp-4) 0 var(--sp-6);
}

/* ════════════════════════════════════════════════════════════════════
   CARDS
════════════════════════════════════════════════════════════════════ */
.tsdc-card {
  background: var(--tsdc-white);
  border: 1px solid var(--tsdc-border);
  border-radius: var(--rad-lg);
  padding: var(--sp-8);
  transition: all var(--dur) var(--ease);
}
.tsdc-card:hover {
  border-color: var(--tsdc-teal);
  box-shadow: var(--sh-md);
  transform: translateY(-4px);
}

/* Service cards */
.tsdc-service-card {
  border-top: 3px solid transparent;
  background: var(--tsdc-white);
  border-radius: var(--rad-lg);
  padding: var(--sp-8) var(--sp-6);
  box-shadow: var(--sh-xs);
  transition: all var(--dur) var(--ease);
}
.tsdc-service-card:hover {
  border-top-color: var(--tsdc-teal);
  box-shadow: var(--sh-md);
  transform: translateY(-6px);
}
.tsdc-service-icon {
  width: 56px; height: 56px;
  background: var(--tsdc-teal-pale);
  border-radius: var(--rad-md);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: var(--sp-5);
  color: var(--tsdc-teal);
  font-size: 1.5rem;
}

/* Doctor cards */
.tsdc-doctor-card {
  border-radius: var(--rad-xl);
  overflow: hidden;
  box-shadow: var(--sh-sm);
  transition: all var(--dur-slow) var(--ease);
  background: var(--tsdc-white);
}
.tsdc-doctor-card:hover { box-shadow: var(--sh-lg); transform: translateY(-6px); }
.tsdc-doctor-card img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.tsdc-doctor-card-body { padding: var(--sp-6); }
.tsdc-doctor-name {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  color: var(--tsdc-navy);
  margin-bottom: var(--sp-1);
}
.tsdc-doctor-title {
  font-size: var(--text-sm);
  color: var(--tsdc-teal);
  font-weight: 600;
  letter-spacing: .03em;
  margin-bottom: var(--sp-3);
}
.tsdc-dha-badge {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--tsdc-teal-pale);
  color: var(--tsdc-teal);
  font-size: var(--text-xs); font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase;
  padding: 4px 10px; border-radius: var(--rad-full);
}

/* Testimonial cards */
.tsdc-testimonial {
  background: var(--tsdc-white);
  border-radius: var(--rad-lg);
  padding: var(--sp-8);
  border-left: 4px solid var(--tsdc-gold);
  box-shadow: var(--sh-xs);
}
.tsdc-stars { color: var(--tsdc-gold); font-size: 1rem; letter-spacing: 2px; margin-bottom: var(--sp-3); }
.tsdc-quote {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-style: italic;
  line-height: 1.6;
  color: var(--tsdc-navy);
  margin-bottom: var(--sp-5);
}

/* ════════════════════════════════════════════════════════════════════
   HERO SECTION
════════════════════════════════════════════════════════════════════ */
.tsdc-hero {
  background: linear-gradient(135deg, var(--tsdc-navy) 0%, #0e2a3a 60%, var(--tsdc-teal-dk) 100%);
  min-height: 90vh;
  display: flex; align-items: center;
  position: relative; overflow: hidden;
}
.tsdc-hero::after {
  content: '';
  position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3z' fill='%23C9A84C' fill-opacity='0.05' fill-rule='evenodd'/%3E%3C/svg%3E") repeat;
  pointer-events: none;
}
.tsdc-hero h1 { color: var(--tsdc-white); font-size: clamp(3rem, 6vw, 5rem); }
.tsdc-hero .hero-sub { color: rgba(255,255,255,.75); font-size: var(--text-lg); max-width: 560px; }
.tsdc-hero-gold { color: var(--tsdc-gold); }

/* ════════════════════════════════════════════════════════════════════
   FORMS (CF7 + Kadence)
════════════════════════════════════════════════════════════════════ */
.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form select,
.wpcf7-form textarea,
.kb-field input,
.kb-field select,
.kb-field textarea {
  width: 100%;
  padding: 13px 16px;
  border: 1.5px solid var(--tsdc-border);
  border-radius: var(--rad);
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--tsdc-text);
  background: var(--tsdc-white);
  transition: border var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--tsdc-teal);
  box-shadow: 0 0 0 3px rgba(10,124,140,.12);
}
.wpcf7-form input[type=submit] {
  background: var(--tsdc-teal);
  color: var(--tsdc-white);
  border: none;
  padding: 14px 36px;
  border-radius: var(--rad);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--text-sm);
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--dur) var(--ease);
  width: 100%;
  margin-top: var(--sp-2);
}
.wpcf7-form input[type=submit]:hover {
  background: var(--tsdc-teal-dk);
  transform: translateY(-2px);
  box-shadow: var(--sh-md);
}

/* ════════════════════════════════════════════════════════════════════
   TRUST / BADGE STRIP
════════════════════════════════════════════════════════════════════ */
.tsdc-trust-strip {
  background: var(--tsdc-navy);
  padding: var(--sp-5) 0;
}
.tsdc-trust-item {
  display: flex; align-items: center; gap: var(--sp-3);
  color: rgba(255,255,255,.8);
  font-size: var(--text-sm); font-weight: 500;
  padding: 0 var(--sp-8);
  border-right: 1px solid rgba(255,255,255,.12);
}
.tsdc-trust-item:last-child { border-right: none; }
.tsdc-trust-item svg, .tsdc-trust-item .icon { color: var(--tsdc-gold); }

/* ════════════════════════════════════════════════════════════════════
   FAQ ACCORDION
════════════════════════════════════════════════════════════════════ */
.tsdc-faq-item {
  border: 1px solid var(--tsdc-border);
  border-radius: var(--rad-md);
  margin-bottom: var(--sp-3);
  overflow: hidden;
  background: var(--tsdc-white);
}
.tsdc-faq-item.open { border-color: var(--tsdc-teal); }
.tsdc-faq-q {
  padding: var(--sp-5) var(--sp-6);
  font-weight: 600;
  cursor: pointer;
  display: flex; justify-content: space-between; align-items: center;
  color: var(--tsdc-navy);
  gap: var(--sp-4);
}
.tsdc-faq-q:hover { background: var(--tsdc-teal-pale); }
.tsdc-faq-item.open .tsdc-faq-q { color: var(--tsdc-teal); }
.tsdc-faq-a { display: none; padding: 0 var(--sp-6) var(--sp-5); color: var(--tsdc-grey); line-height: 1.75; }
.tsdc-faq-item.open .tsdc-faq-a { display: block; }

/* ════════════════════════════════════════════════════════════════════
   FOOTER
════════════════════════════════════════════════════════════════════ */
.site-footer, #colophon {
  background: var(--tsdc-navy);
  color: rgba(255,255,255,.65);
}
.site-footer h3, .site-footer h4 {
  font-family: var(--font-body);
  color: var(--tsdc-white);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: var(--sp-5);
}
.site-footer a { color: rgba(255,255,255,.65); }
.site-footer a:hover { color: var(--tsdc-gold); }
.footer-logo-area { border-bottom: 1px solid rgba(255,255,255,.1); padding-bottom: var(--sp-8); margin-bottom: var(--sp-8); }

/* ════════════════════════════════════════════════════════════════════
   UTILITY CLASSES
════════════════════════════════════════════════════════════════════ */
.bg-teal    { background: var(--tsdc-teal); }
.bg-teal-pale { background: var(--tsdc-teal-pale); }
.bg-navy    { background: var(--tsdc-navy); }
.bg-gold    { background: var(--tsdc-gold); }
.bg-off     { background: var(--tsdc-off); }
.text-teal  { color: var(--tsdc-teal); }
.text-gold  { color: var(--tsdc-gold); }
.text-navy  { color: var(--tsdc-navy); }
.text-white { color: var(--tsdc-white); }
.rounded-lg { border-radius: var(--rad-lg); }
.shadow     { box-shadow: var(--sh); }
.shadow-md  { box-shadow: var(--sh-md); }

/* ════════════════════════════════════════════════════════════════════
   RESPONSIVE
════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  :root {
    --sp-20: 56px;
    --sp-24: 64px;
    --sp-16: 48px;
  }
  .tsdc-trust-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.1); }
}

/* ════════════════════════════════════════════════════════════════════
   CONTACT FORM 7 — Brand Overrides
════════════════════════════════════════════════════════════════════ */
.wpcf7 .cf7-field-group {
  margin-bottom: 18px;
}
.wpcf7 .cf7-field-group label {
  display: block;
  font-size: .85rem;
  font-weight: 600;
  color: #374151;
  margin-bottom: 6px;
  letter-spacing: .02em;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid #dde3e8;
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: .95rem;
  color: #1A1A2E;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
  box-sizing: border-box;
}
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: var(--tsdc-teal);
  box-shadow: 0 0 0 3px rgba(10,124,140,.12);
}
.wpcf7 textarea { height: 110px; resize: vertical; }
.wpcf7 input[type="submit"] {
  width: 100%;
  background: var(--tsdc-teal);
  color: #fff;
  padding: 14px 24px;
  border: none;
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s, transform .1s;
  margin-top: 8px;
}
.wpcf7 input[type="submit"]:hover {
  background: var(--tsdc-teal-dk);
  transform: translateY(-1px);
}
.wpcf7 .wpcf7-not-valid-tip { color: #e53e3e; font-size: .8rem; margin-top: 4px; }
.wpcf7 .wpcf7-response-output {
  margin: 12px 0 0;
  padding: 12px 16px;
  border-radius: 8px;
  font-size: .9rem;
  border: none;
}
.wpcf7 .wpcf7-mail-sent-ok { background: #d1fae5; color: #065f46; }
.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-validation-errors { background: #fee2e2; color: #991b1b; }

/* ════════════════════════════════════════════════════════════════════
   WHATSAPP FLOAT BUTTON
════════════════════════════════════════════════════════════════════ */
.tsdc-wa-float {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #25D366;
  color: #fff;
  padding: 14px 20px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: 700;
  font-size: .9rem;
  box-shadow: 0 4px 20px rgba(37,211,102,.4);
  transition: transform .2s, box-shadow .2s;
  animation: wa-bounce 2s ease-in-out 3s 2;
}
.tsdc-wa-float:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 32px rgba(37,211,102,.5);
  color: #fff;
}
@keyframes wa-bounce {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}
.tsdc-wa-float svg { width: 22px; height: 22px; flex-shrink: 0; }

/* ════════════════════════════════════════════════════════════════════
   KADENCE HEADER OVERRIDES — Sticky + Mega Menu
════════════════════════════════════════════════════════════════════ */

/* ── Sticky header ── */
.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 9990 !important;
  background: var(--tsdc-navy) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,.25);
  transition: box-shadow .3s;
}
.site-header.scrolled { box-shadow: 0 4px 32px rgba(0,0,0,.35) !important; }
.kadence-sticky-header .site-header { background: var(--tsdc-navy) !important; }

/* Nav link styles */
.main-navigation a,
.main-navigation .nav-drop-toggle,
header .header-logo-link {
  color: rgba(255,255,255,.88) !important;
  font-size: .93rem !important;
  font-weight: 500 !important;
  letter-spacing: .01em !important;
}
.main-navigation a:hover,
.main-navigation li.current-menu-item > a,
.main-navigation li:hover > a {
  color: var(--tsdc-gold) !important;
}
/* Book Appointment CTA in nav */
.header-cta-button a,
.kadence-header-button a,
.main-navigation li:last-child > a {
  background: var(--tsdc-gold) !important;
  color: var(--tsdc-navy) !important;
  border-radius: 6px !important;
  padding: 8px 18px !important;
  font-weight: 700 !important;
}

/* ── Kadence dropdown fixes ── */
.sub-menu {
  background: #fff !important;
  border: 1px solid #eaecef !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 32px rgba(26,26,46,.15) !important;
  min-width: 220px !important;
  padding: 8px !important;
}
.sub-menu a {
  color: #1A1A2E !important;
  font-size: .88rem !important;
  border-radius: 6px !important;
  padding: 9px 14px !important;
  display: block;
  transition: background .15s, color .15s !important;
}
.sub-menu a:hover { background: #e8f5f7 !important; color: #0A7C8C !important; }
.sub-menu li.current-menu-item > a { color: #0A7C8C !important; font-weight: 600 !important; }

/* ── MEGA MENU for Dental Services ── */
/* Identify the Dental Services parent item */
.main-navigation > div > ul > li.menu-item-has-children:hover > .sub-menu,
.main-navigation > ul > li.menu-item-has-children:hover > .sub-menu {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Wide mega panel for Dental Services */
li.menu-item-has-children.is-mega-menu > .sub-menu {
  min-width: 680px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 4px 16px !important;
  padding: 16px !important;
}
li.menu-item-has-children.is-mega-menu > .sub-menu li {
  display: block !important;
}
li.menu-item-has-children.is-mega-menu > .sub-menu a {
  padding: 10px 14px !important;
}
li.menu-item-has-children.is-mega-menu > .sub-menu a::before {
  content: '→ ';
  color: #0A7C8C;
  font-weight: 700;
}

/* CTA button in nav */
.header-cta-button a,
.kadence-header-button a {
  background: var(--tsdc-gold) !important;
  color: var(--tsdc-navy) !important;
  border-radius: 6px !important;
  padding: 8px 20px !important;
  font-weight: 700 !important;
}

/* ════════════════════════════════════════════════════════════════════
   BLOG PAGE
════════════════════════════════════════════════════════════════════ */
.entry-title a { color: var(--tsdc-navy); }
.entry-title a:hover { color: var(--tsdc-teal); }
.wp-block-post-excerpt { color: #6b7280; }
.wp-block-read-more,
.more-link {
  color: var(--tsdc-teal);
  font-weight: 600;
  text-decoration: none;
}
.wp-block-read-more:hover,
.more-link:hover { color: var(--tsdc-teal-dk); }

/* ════════════════════════════════════════════════════════════════════
   PAGE HERO (for pages using Kadence blocks hero without custom PHP)
════════════════════════════════════════════════════════════════════ */
.page-title-wrap,
.kadence-page-title-inner {
  background: linear-gradient(135deg, var(--tsdc-navy) 0%, #0e2a3a 55%, var(--tsdc-teal-dk) 100%);
}
.page-title-wrap h1,
.page-title-inner h1 { color: #fff; }

/* ════════════════════════════════════════════════════════════════════
   MOBILE RESPONSIVE EXTRAS
════════════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  /* Stack 2-col grids on mobile */
  section > div > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  /* Reduce section padding */
  section[style*="padding:80px"] { padding: 52px 0 !important; }
  section[style*="padding:100px"] { padding: 64px 0 !important; }
}
@media (max-width: 600px) {
  .tsdc-wa-float span { display: none; }
  .tsdc-wa-float { padding: 14px; border-radius: 50%; }
}

/* ════════════════════════════════════════════════════════════════════
   UI/UX ENHANCEMENT LAYER v2
   Scroll animations · Mobile CTA bar · Social proof toast
   Enhanced cards · Better typography · Micro-interactions
════════════════════════════════════════════════════════════════════ */

/* ── Scroll Entrance Animations ─────────────────────────────────── */
.tsdc-animate {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .6s cubic-bezier(.4,0,.2,1), transform .6s cubic-bezier(.4,0,.2,1);
}
.tsdc-animate.tsdc-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Sticky Header states ─────────────────────────────────────── */
.site-header {
  transition: box-shadow .3s ease, transform .3s ease, background .3s ease;
  position: sticky;
  top: 0;
  z-index: 1000;
}
.site-header.scrolled {
  box-shadow: 0 4px 24px rgba(26,26,46,.15) !important;
}
.site-header.header-hidden {
  transform: translateY(-100%);
}

/* ── Section eyebrow pill style ─────────────────────────────── */
.tsdc-pill-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(201,168,76,.12);
  border: 1px solid rgba(201,168,76,.35);
  color: #C9A84C;
  padding: 7px 18px;
  border-radius: 9999px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.tsdc-pill-label-teal {
  background: rgba(10,124,140,.1);
  border-color: rgba(10,124,140,.3);
  color: #0A7C8C;
}

/* ── Enhanced card hover — depth effect ─────────────────────── */
.tsdc-service-card,
.tsdc-card {
  position: relative;
  transition: transform .3s cubic-bezier(.4,0,.2,1),
              box-shadow .3s cubic-bezier(.4,0,.2,1),
              border-color .3s ease;
  will-change: transform;
}
.tsdc-service-card::after,
.tsdc-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: 0 20px 40px rgba(10,124,140,.18);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.tsdc-service-card:hover::after,
.tsdc-card:hover::after { opacity: 1; }

/* ── Doctor card enhanced ────────────────────────────────────── */
.tsdc-doctor-card {
  position: relative;
  transition: transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s ease;
}
.tsdc-doctor-card::before {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #0A7C8C, #C9A84C);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s cubic-bezier(.4,0,.2,1);
  z-index: 1;
}
.tsdc-doctor-card:hover::before { transform: scaleX(1); }

/* ── Gradient text effect for display headings ──────────────── */
.tsdc-gradient-text {
  background: linear-gradient(135deg, #0A7C8C 0%, #C9A84C 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Gold CTA pulse ring ─────────────────────────────────────── */
.tsdc-btn-gold-pulse {
  position: relative;
}
.tsdc-btn-gold-pulse::before {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 12px;
  background: #C9A84C;
  opacity: .35;
  animation: gold-pulse 2.4s ease-in-out infinite;
  z-index: -1;
}
@keyframes gold-pulse {
  0%, 100% { transform: scale(1); opacity: .35; }
  50%       { transform: scale(1.06); opacity: .15; }
}

/* ── Review stars strip ─────────────────────────────────────── */
.tsdc-star-strip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 9999px;
  padding: 6px 16px;
  font-size: .82rem;
  color: rgba(255,255,255,.85);
}
.tsdc-star-strip .stars { color: #F59E0B; letter-spacing: 1px; }
.tsdc-star-strip strong { color: #fff; }

/* ── Glassmorphism card (hero form card) ────────────────────── */
.tsdc-glass-card {
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 20px;
  box-shadow: 0 24px 60px rgba(0,0,0,.22), 0 0 0 1px rgba(255,255,255,.1);
}

/* ── Stat items ─────────────────────────────────────────────── */
.tsdc-stat-item {
  text-align: center;
  position: relative;
}
.tsdc-stat-number {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 700;
  color: #C9A84C;
  line-height: 1;
  display: block;
}
.tsdc-stat-label {
  font-size: .75rem;
  color: rgba(255,255,255,.55);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-top: 6px;
  display: block;
}

/* ── Divider with icon ──────────────────────────────────────── */
.tsdc-section-divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 48px;
}
.tsdc-section-divider::before,
.tsdc-section-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, #dde3e8);
}
.tsdc-section-divider::after {
  background: linear-gradient(90deg, #dde3e8, transparent);
}
.tsdc-section-divider span {
  font-size: 1.5rem;
  flex-shrink: 0;
}

/* ── Mobile Sticky CTA Bar ──────────────────────────────────── */
.tsdc-mobile-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9998;
  display: flex;
  box-shadow: 0 -4px 20px rgba(26,26,46,.2);
  transition: transform .3s ease;
}
.tsdc-mobile-cta-book {
  flex: 1.6;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #C9A84C;
  color: #1A1A2E !important;
  font-weight: 700;
  font-size: .85rem;
  padding: 15px 12px;
  text-decoration: none;
  letter-spacing: .02em;
  transition: background .2s;
}
.tsdc-mobile-cta-book:hover { background: #d9bc72; color: #1A1A2E !important; }
.tsdc-mobile-cta-call {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #0A7C8C;
  color: #fff !important;
  font-weight: 700;
  font-size: .85rem;
  padding: 15px 12px;
  text-decoration: none;
  transition: background .2s;
}
.tsdc-mobile-cta-call:hover { background: #085f6c; color: #fff !important; }
.tsdc-mobile-cta-wa {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #25D366;
  color: #fff !important;
  font-weight: 700;
  font-size: .85rem;
  padding: 15px 10px;
  text-decoration: none;
  transition: background .2s;
}
.tsdc-mobile-cta-wa:hover { background: #1ebe5d; color: #fff !important; }
/* Hide mobile sticky bar on desktop */
@media (min-width: 900px) { .tsdc-mobile-cta { display: none !important; } }

/* Add bottom padding to body on mobile to clear the sticky bar */
@media (max-width: 899px) {
  body { padding-bottom: 58px; }
  .tsdc-wa-float { bottom: 76px; }
  .tsdc-fab-cluster { bottom: 72px; right: 14px; }
}

/* ── Social Proof Toast ─────────────────────────────────────── */
.tsdc-toast {
  position: fixed;
  bottom: 28px;
  left: 24px;
  z-index: 10000;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border-radius: 14px;
  padding: 14px 16px;
  box-shadow: 0 8px 32px rgba(26,26,46,.18), 0 0 0 1px rgba(26,26,46,.06);
  max-width: 290px;
  transform: translateX(calc(-100% - 40px));
  opacity: 0;
  transition: transform .4s cubic-bezier(.34,1.56,.64,1), opacity .3s ease;
}
.tsdc-toast.tsdc-toast-in {
  transform: translateX(0);
  opacity: 1;
}
.tsdc-toast-ico {
  font-size: 1.6rem;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: #e8f5f7;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tsdc-toast-body {
  font-size: .8rem;
  color: #374151;
  line-height: 1.4;
  flex: 1;
}
.tsdc-toast-body strong { color: #1A1A2E; }
.tsdc-toast-body span { color: #6b7280; }
.tsdc-toast-close {
  background: none;
  border: none;
  color: #9ca3af;
  font-size: 1.1rem;
  cursor: pointer;
  padding: 0 2px;
  line-height: 1;
  align-self: flex-start;
}
@media (max-width: 899px) {
  .tsdc-toast { bottom: 70px; max-width: 240px; }
}

/* ── Progress/Process step numbers ─────────────────────────── */
.tsdc-step-num {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #0A7C8C, #085f6c);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0 auto 16px;
  box-shadow: 0 4px 12px rgba(10,124,140,.35);
  flex-shrink: 0;
}

/* ── Gold accent line under section headings ────────────────── */
.tsdc-heading-accent {
  position: relative;
  padding-bottom: 20px;
}
.tsdc-heading-accent::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 56px;
  height: 3px;
  background: linear-gradient(90deg, #0A7C8C, #C9A84C);
  border-radius: 9999px;
}
.tsdc-heading-accent-left::after { left: 0; transform: none; }

/* ── Enhanced FAQ (inline style pages) ─────────────────────── */
.tsdc-faq-ans {
  overflow: hidden;
  transition: max-height .35s cubic-bezier(.4,0,.2,1), opacity .3s ease;
}

/* ── Urgency badge ──────────────────────────────────────────── */
.tsdc-urgency-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(239,68,68,.12);
  border: 1px solid rgba(239,68,68,.25);
  color: #dc2626;
  padding: 5px 14px;
  border-radius: 9999px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.tsdc-urgency-badge::before { content: '●'; animation: blink 1.2s ease-in-out infinite; }
@keyframes blink { 0%,100% { opacity: 1; } 50% { opacity: .3; } }

/* ── Before/After Label pair ─────────────────────────────── */
.tsdc-ba-label {
  display: inline-block;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 9999px;
}
.tsdc-ba-before { background: rgba(107,114,128,.15); color: #6b7280; }
.tsdc-ba-after  { background: rgba(10,124,140,.15); color: #0A7C8C; }

/* ── Insurance logo strip ──────────────────────────────────── */
.tsdc-insurance-pill {
  background: #fff;
  border: 1.5px solid #dde3e8;
  border-radius: 9999px;
  padding: 10px 24px;
  font-weight: 600;
  color: #374151;
  font-size: .88rem;
  transition: border-color .2s, box-shadow .2s;
  white-space: nowrap;
}
.tsdc-insurance-pill:hover {
  border-color: #0A7C8C;
  box-shadow: 0 0 0 3px rgba(10,124,140,.1);
}

/* ── Blog post card ──────────────────────────────────────── */
.tsdc-post-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(10,124,140,.07);
  transition: transform .3s ease, box-shadow .3s ease;
  display: flex;
  flex-direction: column;
}
.tsdc-post-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 36px rgba(10,124,140,.14);
}
.tsdc-post-card-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.tsdc-post-card-body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.tsdc-post-card-tag {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #0A7C8C;
  margin-bottom: 10px;
}
.tsdc-post-card-title {
  font-family: var(--font-display);
  font-size: 1.3rem;
  color: #1A1A2E;
  line-height: 1.3;
  margin-bottom: 12px;
  flex: 1;
}
.tsdc-post-card-meta { font-size: .8rem; color: #9ca3af; margin-top: auto; }
.tsdc-post-card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #0A7C8C;
  font-weight: 600;
  font-size: .88rem;
  text-decoration: none;
  margin-top: 16px;
}

/* ── Floating CTA on service pages (desktop) ────────────────── */
@media (min-width: 1024px) {
  .tsdc-sticky-cta-wrap {
    position: sticky;
    top: 100px;
  }
}

/* ── Checklist items ────────────────────────────────────────── */
.tsdc-check-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.tsdc-check-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.85);
  font-size: .95rem;
  line-height: 1.55;
}
.tsdc-check-list li:last-child { border-bottom: none; }
.tsdc-check-list li::before {
  content: '✓';
  color: #C9A84C;
  font-weight: 700;
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ── Light version checklist ──────────────────────────────── */
.tsdc-check-list-light li {
  color: #374151;
  border-bottom-color: #f0f0f5;
}
.tsdc-check-list-light li::before { color: #0A7C8C; }

/* ── Responsive grid helpers ──────────────────────────────── */
.tsdc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.tsdc-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.tsdc-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

@media (max-width: 1024px) {
  .tsdc-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .tsdc-grid-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .tsdc-grid-2, .tsdc-grid-3, .tsdc-grid-4 { grid-template-columns: 1fr; }
}

/* ── Section background alternation ──────────────────────── */
.tsdc-bg-white  { background: #ffffff; }
.tsdc-bg-off    { background: #f9f8f6; }
.tsdc-bg-pale   { background: #e8f5f7; }
.tsdc-bg-navy   { background: #1A1A2E; }
.tsdc-bg-teal   { background: #0A7C8C; }
.tsdc-bg-gradient-hero {
  background: linear-gradient(135deg, #1A1A2E 0%, #0e2a3a 55%, #085f6c 100%);
}
.tsdc-bg-gradient-cta {
  background: linear-gradient(135deg, #1A1A2E 0%, #085f6c 100%);
}

/* ── Text overflow helpers ────────────────────────────────── */
.tsdc-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Scrollbar styling ────────────────────────────────────── */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #f9f8f6; }
::-webkit-scrollbar-thumb { background: #0A7C8C; border-radius: 9999px; }
::-webkit-scrollbar-thumb:hover { background: #085f6c; }

/* ── Focus ring (accessibility) ──────────────────────────── */
:focus-visible {
  outline: 3px solid #0A7C8C;
  outline-offset: 3px;
  border-radius: 4px;
}

/* ── Print styles ──────────────────────────────────────── */
@media print {
  .tsdc-wa-float, .tsdc-mobile-cta, .tsdc-toast { display: none !important; }
}

/* ── Final responsive tweaks ─────────────────────────────── */
@media (max-width: 768px) {
  /* Service page 2-col grids to 1 col */
  section > div[style*="grid-template-columns:1fr 1fr"],
  section > div > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  /* Step grids */
  div[style*="grid-template-columns:repeat(auto-fit"] {
    grid-template-columns: 1fr 1fr !important;
  }
  /* Stat row */
  div[style*="gap:40px"][style*="border-top"] {
    gap: 24px !important;
    flex-wrap: wrap;
    justify-content: center;
  }
  /* Reduce heavy paddings */
  section[style*="padding:80px 0"] { padding: 48px 0 !important; }
  section[style*="padding:100px 0"] { padding: 60px 0 !important; }
}
@media (max-width: 480px) {
  /* Doctor grid in hero */
  div[style*="grid-template-columns:340px"] {
    grid-template-columns: 1fr !important;
  }
  div[style*="grid-template-columns:340px"] > div:first-child {
    display: none; /* hide photo on very small, show initials in name area */
  }
}

/* ════════════════════════════════════════════════════════════════════
   LAYOUT CLEAN-UP v3 — May 2026
   Fix Kadence page-hero overhead · Consistent spacing · Mobile grids
════════════════════════════════════════════════════════════════════ */

/* ── Hide Kadence empty page-hero on front page ──────────────────── */
.home .entry-hero,
.home .page-hero-section,
.home .entry-header.page-title {
  display: none !important;
}
.home .content-area     { margin-top: 0 !important; padding-top: 0 !important; }
.home .entry-content-wrap { padding: 0 !important; }
.home .entry-content    { margin: 0 !important; }

/* Also hide on service/info pages that use full-width custom sections */
.page-template-default .page-hero-section .entry-header h1:empty,
.page-template-default .entry-hero:not([class*="content"]) { display: none; }

/* ── Consistent section wrapper ──────────────────────────────────── */
.tsdc-section-v3 {
  padding: 96px 0;
}
.tsdc-section-v3.is-narrow { padding: 72px 0; }
.tsdc-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 28px;
}

/* ── Section header block (centered label + heading + sub) ──────── */
.tsdc-section-header {
  text-align: center;
  margin-bottom: 56px;
}
.tsdc-section-header h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 2.75rem);
  color: #1A1A2E;
  margin: 12px 0 16px;
  line-height: 1.15;
}
.tsdc-section-header p {
  color: #6b7280;
  font-size: 1.05rem;
  max-width: 520px;
  margin: 0 auto;
  line-height: 1.75;
}
.tsdc-section-header--left { text-align: left; }
.tsdc-section-header--light h2 { color: #fff; }
.tsdc-section-header--light p { color: rgba(255,255,255,.65); }

/* ── Clean grid system ───────────────────────────────────────────── */
.tsdc-cols-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.tsdc-cols-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.tsdc-cols-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.tsdc-cols-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }

/* ── Clean service card ──────────────────────────────────────────── */
.tsdc-svc-card {
  background: #fff;
  border: 1px solid #eaecef;
  border-radius: 16px;
  padding: 32px 28px;
  transition: border-color .25s, box-shadow .25s, transform .25s;
  position: relative;
  overflow: hidden;
}
.tsdc-svc-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #0A7C8C, #C9A84C);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}
.tsdc-svc-card:hover {
  border-color: #dde3e8;
  box-shadow: 0 8px 32px rgba(10,124,140,.12);
  transform: translateY(-4px);
}
.tsdc-svc-card:hover::before { transform: scaleX(1); }
.tsdc-svc-icon {
  width: 52px; height: 52px;
  background: #e8f5f7;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
  margin-bottom: 20px;
}
.tsdc-svc-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.35rem;
  color: #1A1A2E;
  margin: 0 0 10px;
  font-weight: 600;
}
.tsdc-svc-desc {
  color: #6b7280;
  font-size: .9rem;
  line-height: 1.65;
  margin: 0 0 18px;
}
.tsdc-svc-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #0A7C8C;
  font-weight: 600;
  font-size: .85rem;
  text-decoration: none;
  letter-spacing: .02em;
}
.tsdc-svc-link:hover { color: #085f6c; gap: 10px; }

/* ── Clean doctor card ───────────────────────────────────────────── */
.tsdc-doc-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #eaecef;
  transition: border-color .25s, box-shadow .25s, transform .25s;
  text-decoration: none;
  display: block;
}
.tsdc-doc-card:hover {
  border-color: #0A7C8C;
  box-shadow: 0 10px 36px rgba(10,124,140,.13);
  transform: translateY(-5px);
}
.tsdc-doc-photo {
  aspect-ratio: 3/4;
  width: 100%;
  object-fit: cover;
  display: block;
}
.tsdc-doc-initials {
  aspect-ratio: 3/4;
  width: 100%;
  background: linear-gradient(135deg, #0A7C8C, #085f6c);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.5rem;
  color: rgba(255,255,255,.8);
  font-weight: 700;
  letter-spacing: .05em;
}
.tsdc-doc-info {
  padding: 18px 16px;
  border-top: 1px solid #f0f0f5;
}
.tsdc-doc-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  color: #1A1A2E;
  font-weight: 700;
  margin: 0 0 4px;
}
.tsdc-doc-specialty {
  font-size: .78rem;
  color: #0A7C8C;
  font-weight: 600;
  letter-spacing: .03em;
}

/* ── Clean testimonial card ──────────────────────────────────────── */
.tsdc-testi-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px;
  padding: 32px 28px;
  position: relative;
}
.tsdc-testi-stars { color: #F59E0B; font-size: .9rem; letter-spacing: 2px; margin-bottom: 16px; }
.tsdc-testi-quote {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem;
  font-style: italic;
  color: rgba(255,255,255,.9);
  line-height: 1.65;
  margin: 0 0 20px;
}
.tsdc-testi-meta { display: flex; align-items: center; gap: 12px; }
.tsdc-testi-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(10,124,140,.4);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
  color: rgba(255,255,255,.8);
  font-size: .85rem;
  flex-shrink: 0;
}
.tsdc-testi-name { font-weight: 600; color: #fff; font-size: .9rem; margin: 0 0 2px; }
.tsdc-testi-tag {
  display: inline-block;
  background: rgba(201,168,76,.15);
  border: 1px solid rgba(201,168,76,.25);
  color: #C9A84C;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 9999px;
}

/* ── Clean feature/why card ──────────────────────────────────────── */
.tsdc-feat-card {
  padding: 28px 24px;
  border-radius: 14px;
  border: 1px solid #eaecef;
  background: #fff;
  transition: border-color .25s, box-shadow .2s;
}
.tsdc-feat-card:hover {
  border-color: #0A7C8C;
  box-shadow: 0 4px 20px rgba(10,124,140,.09);
}
.tsdc-feat-icon {
  font-size: 1.6rem;
  margin-bottom: 14px;
}
.tsdc-feat-title {
  font-weight: 700;
  color: #1A1A2E;
  font-size: .95rem;
  margin: 0 0 8px;
}
.tsdc-feat-desc { color: #6b7280; font-size: .88rem; line-height: 1.6; margin: 0; }

/* ── Clean form card ─────────────────────────────────────────────── */
.tsdc-form-card {
  background: #fff;
  border-radius: 20px;
  padding: 36px 32px;
  box-shadow: 0 20px 60px rgba(0,0,0,.18);
}
.tsdc-form-card-eyebrow {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #0A7C8C;
  margin-bottom: 6px;
}
.tsdc-form-card h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.7rem;
  color: #1A1A2E;
  margin: 0 0 6px;
}
.tsdc-form-card p {
  color: #9ca3af;
  font-size: .85rem;
  margin: 0 0 24px;
}

/* ── Hero stats row ──────────────────────────────────────────────── */
.tsdc-hero-stats {
  display: flex;
  gap: 0;
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 32px;
  margin-top: 40px;
}
.tsdc-hero-stat {
  flex: 1;
  text-align: center;
  padding: 0 16px;
  border-right: 1px solid rgba(255,255,255,.1);
}
.tsdc-hero-stat:first-child { padding-left: 0; text-align: left; }
.tsdc-hero-stat:last-child  { border-right: none; }
.tsdc-hero-stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.4rem;
  font-weight: 700;
  color: #C9A84C;
  line-height: 1;
  display: block;
}
.tsdc-hero-stat-lbl {
  font-size: .72rem;
  color: rgba(255,255,255,.5);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-top: 5px;
  display: block;
}

/* ── Trust bar ───────────────────────────────────────────────────── */
.tsdc-trust-bar {
  background: #1A1A2E;
  padding: 0;
}
.tsdc-trust-bar-inner {
  display: flex;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
}
.tsdc-trust-bar-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 32px;
  border-right: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.75);
  font-size: .82rem;
  font-weight: 500;
  white-space: nowrap;
}
.tsdc-trust-bar-item:last-child { border-right: none; }
.tsdc-trust-bar-item .ico { color: #C9A84C; font-size: 1rem; flex-shrink: 0; }

/* ── About section split ─────────────────────────────────────────── */
.tsdc-about-visual {
  background: linear-gradient(145deg, #1A1A2E, #0e2a3a);
  border-radius: 20px;
  padding: 48px 40px;
  position: relative;
  overflow: hidden;
}
.tsdc-about-visual::before {
  content: '"';
  position: absolute;
  top: -20px; left: 20px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 14rem;
  color: rgba(201,168,76,.07);
  line-height: 1;
  pointer-events: none;
}
.tsdc-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
}
.tsdc-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  color: #374151;
  font-size: .93rem;
  line-height: 1.5;
  border-bottom: 1px solid #f0f0f5;
}
.tsdc-checklist li:last-child { border-bottom: none; }
.tsdc-checklist li::before {
  content: '✓';
  color: #0A7C8C;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ── FAQ clean ───────────────────────────────────────────────────── */
.tsdc-faq-v3 { display: flex; flex-direction: column; gap: 10px; }
.tsdc-faq-v3-item {
  border: 1px solid #eaecef;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  transition: border-color .2s;
}
.tsdc-faq-v3-item.open { border-color: #0A7C8C; }
.tsdc-faq-v3-q {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 18px 22px;
  font-weight: 600;
  font-size: .93rem;
  color: #1A1A2E;
  cursor: pointer;
  user-select: none;
  transition: background .15s;
}
.tsdc-faq-v3-q:hover { background: #f9f8f6; }
.tsdc-faq-v3-item.open .tsdc-faq-v3-q { color: #0A7C8C; }
.tsdc-faq-v3-icon {
  width: 26px; height: 26px;
  background: #e8f5f7;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #0A7C8C;
  font-size: 1rem;
  font-weight: 700;
  flex-shrink: 0;
  transition: background .2s, transform .2s;
}
.tsdc-faq-v3-item.open .tsdc-faq-v3-icon {
  background: #0A7C8C;
  color: #fff;
  transform: rotate(45deg);
}
.tsdc-faq-v3-a {
  padding: 0 22px;
  color: #6b7280;
  font-size: .9rem;
  line-height: 1.75;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .35s cubic-bezier(.4,0,.2,1), opacity .3s ease, padding .3s ease;
}
.tsdc-faq-v3-item.open .tsdc-faq-v3-a {
  padding: 0 22px 18px;
  opacity: 1;
}

/* ── Section bg alternation ──────────────────────────────────────── */
.tsdc-bg-white-section { background: #fff; }
.tsdc-bg-off-section   { background: #f9f8f6; }
.tsdc-bg-dark-section  { background: #1A1A2E; }

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .tsdc-cols-5 { grid-template-columns: repeat(3, 1fr); }
  .tsdc-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .tsdc-section-v3 { padding: 64px 0; }
  .tsdc-cols-2, .tsdc-cols-3, .tsdc-cols-4 { grid-template-columns: 1fr; }
  .tsdc-cols-5 { grid-template-columns: repeat(2, 1fr); }
  .tsdc-section-header { margin-bottom: 36px; }
  .tsdc-wrap { padding: 0 20px; }
  .tsdc-form-card { padding: 28px 22px; }
  .tsdc-about-visual { padding: 32px 28px; }
  .tsdc-trust-bar-item { padding: 12px 18px; font-size: .78rem; }
  /* Hero 2-col → stacked */
  [style*="grid-template-columns:1.1fr 0.9fr"],
  [style*="grid-template-columns:1.15fr"] {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  /* Stat row wrap */
  .tsdc-hero-stats { flex-wrap: wrap; gap: 16px; }
  .tsdc-hero-stat { border-right: none; text-align: center; flex: 0 0 calc(50% - 8px); }
  .tsdc-hero-stat:first-child { text-align: center; }
}
@media (max-width: 480px) {
  .tsdc-cols-5 { grid-template-columns: 1fr 1fr; }
  .tsdc-section-v3 { padding: 52px 0; }
}

/* ── CF7 select field styling ────────────────────────────────────── */
.wpcf7 select.wpcf7-select {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid #dde3e8;
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: .95rem;
  color: #1A1A2E;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s;
  box-sizing: border-box;
}
.wpcf7 select:focus {
  outline: none;
  border-color: #0A7C8C;
  box-shadow: 0 0 0 3px rgba(10,124,140,.12);
}

/* ── Content area max-width tightening (cleaner on wide screens) ── */
.entry.page .site-container { max-width: 100% !important; }

/* ════════════════════════════════════════════════════════════════════
   CONVERSION ELEMENTS v2 — Sticky FABs · Desktop Tab · Mobile Bar
   May 2026
════════════════════════════════════════════════════════════════════ */

/* ── Remove old wa-float rule side-effects ────────────────────────── */
.tsdc-wa-float { display: none !important; }

/* ── FAB Cluster ──────────────────────────────────────────────────── */
.tsdc-fab-cluster {
  position: fixed;
  right: 20px;
  bottom: 28px;
  z-index: 9997;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}

.tsdc-fab {
  display: inline-flex;
  align-items: center;
  gap: 0;
  height: 50px;
  width: 50px;
  border-radius: 50px;
  text-decoration: none;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .02em;
  white-space: nowrap;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,.22);
  transition:
    width .3s cubic-bezier(.4,0,.2,1),
    gap .3s cubic-bezier(.4,0,.2,1),
    padding .3s cubic-bezier(.4,0,.2,1),
    transform .2s ease,
    box-shadow .2s ease;
  padding: 0 15px;
  justify-content: center;
  cursor: pointer;
}
.tsdc-fab:hover,
.tsdc-fab:focus-visible {
  width: auto;
  gap: 9px;
  padding: 0 20px 0 16px;
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(0,0,0,.28);
}

.tsdc-fab-ico {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tsdc-fab-lbl {
  max-width: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    max-width .3s cubic-bezier(.4,0,.2,1),
    opacity .2s ease;
}
.tsdc-fab:hover .tsdc-fab-lbl,
.tsdc-fab:focus-visible .tsdc-fab-lbl {
  max-width: 120px;
  opacity: 1;
}

/* WhatsApp FAB */
.tsdc-fab-wa {
  background: #25D366;
  color: #fff !important;
  animation: fab-bounce-wa 2.4s ease-in-out 4s 2;
}
.tsdc-fab-wa:hover { color: #fff !important; }

/* Call FAB */
.tsdc-fab-call {
  background: #0A7C8C;
  color: #fff !important;
}
.tsdc-fab-call:hover { color: #fff !important; }

@keyframes fab-bounce-wa {
  0%, 100% { transform: translateY(0); box-shadow: 0 4px 18px rgba(37,211,102,.35); }
  50%       { transform: translateY(-6px); box-shadow: 0 10px 28px rgba(37,211,102,.45); }
}

/* On mobile: push above sticky bar */
@media (max-width: 899px) {
  .tsdc-fab-cluster { bottom: 66px; right: 14px; }
  /* Collapse labels on mobile — icon only */
  .tsdc-fab:hover .tsdc-fab-lbl { max-width: 0; opacity: 0; }
  .tsdc-fab:hover { width: 50px; gap: 0; padding: 0 15px; }
  .tsdc-fab { width: 46px; height: 46px; }
}

/* ── Desktop Sticky Booking Tab ───────────────────────────────────── */
.tsdc-desk-tab {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%) translateX(calc(100% - 42px));
  z-index: 9996;
  display: none; /* shown by JS on desktop scroll */
  align-items: center;
  background: #C9A84C;
  color: #1A1A2E !important;
  text-decoration: none;
  border-radius: 12px 0 0 12px;
  box-shadow: -4px 0 20px rgba(201,168,76,.35);
  transition: transform .35s cubic-bezier(.4,0,.2,1), box-shadow .2s ease;
  overflow: hidden;
}
.tsdc-desk-tab.is-visible { display: flex; }
.tsdc-desk-tab.is-expanded {
  transform: translateY(-50%) translateX(0);
  box-shadow: -4px 0 28px rgba(201,168,76,.45);
}
.tsdc-desk-tab-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px 14px 14px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Pulse on first appearance */
@keyframes tab-pulse {
  0%, 100% { box-shadow: -4px 0 20px rgba(201,168,76,.35); }
  50%       { box-shadow: -4px 0 32px rgba(201,168,76,.6); }
}
.tsdc-desk-tab.is-visible { animation: tab-pulse 2s ease-in-out 0.5s 3; }

/* Hide on mobile */
@media (max-width: 899px) {
  .tsdc-desk-tab { display: none !important; }
}

/* ── Mobile Sticky Bottom Bar (improved) ───────────────────────────── */
.tsdc-mobile-cta {
  /* Override previous rules — cleaner design */
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9998;
  display: flex;
  box-shadow: 0 -2px 16px rgba(26,26,46,.15);
  border-top: 1px solid rgba(255,255,255,.1);
  transform: translateY(0);
  transition: transform .3s ease;
}
.tsdc-mobile-cta.is-hidden { transform: translateY(100%); }

.tsdc-mobile-cta-book {
  flex: 1.5;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #C9A84C;
  color: #1A1A2E !important;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-weight: 700;
  font-size: .83rem;
  letter-spacing: .03em;
  padding: 14px 10px;
  text-decoration: none;
  transition: background .15s;
}
.tsdc-mobile-cta-book:hover,
.tsdc-mobile-cta-book:active { background: #d9bc72; color: #1A1A2E !important; }

.tsdc-mobile-cta-call {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: #0A7C8C;
  color: #fff !important;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-weight: 700;
  font-size: .83rem;
  padding: 14px 10px;
  text-decoration: none;
  border-left: 1px solid rgba(255,255,255,.15);
  transition: background .15s;
}
.tsdc-mobile-cta-call:hover,
.tsdc-mobile-cta-call:active { background: #085f6c; color: #fff !important; }

/* Body clearance so content isn't hidden behind bar */
@media (max-width: 899px) {
  body { padding-bottom: 52px; }
  .tsdc-fab-cluster { bottom: 62px; }
}

/* ════════════════════════════════════════════════════════════════════
   GLOBAL FIXES — FAQ hover, comments, font sizes, misc
════════════════════════════════════════════════════════════════════ */

/* ── FAQ button: ensure text never disappears on hover ── */
/* Covers both global .tsdc-faq and page-specific .hp-faq / .sv-faq */
.hp-faq-q,
.sv-faq-q,
.tsdc-faq-q {
  color: #1A1A2E !important;
  background: transparent;
}
.hp-faq-q:hover,
.sv-faq-q:hover,
.tsdc-faq-q:hover {
  background: #f5fafb !important;
  color: #0A7C8C !important;
}
.hp-faq-item.is-open .hp-faq-q,
.sv-faq-item.is-open .sv-faq-q,
.tsdc-faq-item.open .tsdc-faq-q {
  color: #0A7C8C !important;
  background: #f0f9fa !important;
}
/* Icon in FAQ always visible */
.hp-faq-ico svg,
.sv-faq-ico svg { color: #0A7C8C !important; }
.hp-faq-item.is-open .hp-faq-ico svg,
.sv-faq-item.is-open .sv-faq-ico svg { color: #fff !important; }

/* ── Increase body text sizes on page content ── */
.hp-hero-sub  { font-size: 1.1rem !important; }
.hp-svc-desc, .hp-why-desc, .hp-testi-text { font-size: .95rem !important; }
.sv-hero p, .bk-hero p, .sh-hero p { font-size: 1.1rem !important; }
.sv-two-col-body p { font-size: 1rem !important; }
.sv-price-sub, .sv-faq-a, .hp-faq-a, .sv-why-desc, .sv-testi-text { font-size: .95rem !important; }
.sv-process-desc, .sh-svc-desc { font-size: .9rem !important; }
.bk-form-hdr p, .bk-option-note { font-size: .9rem !important; }

/* ── Hide comment sections sitewide ── */
#comments,
.comment-respond,
.comments-area,
.comment-list,
.wp-block-comments,
.post-comments { display: none !important; }

/* ── Remove Kadence footer branding ── */
.kadence-footer-credit,
.kadence-footer-credits,
.site-info .powered-by,
.site-info a[href*="kadencewp"],
.site-info a[href*="kadence"],
.footer-credit,
.site-credits { display: none !important; }
.site-footer .site-info { justify-content: center !important; }

/* ── Sticky header shadow on scroll (JS adds .is-scrolled) ── */
.site-header.is-scrolled {
  box-shadow: 0 4px 28px rgba(0,0,0,.32) !important;
}

/* ── Mobile nav menu overlay: ensure it's visible ── */
@media (max-width: 1024px) {
  .main-navigation.toggled-open,
  .main-navigation[aria-expanded="true"] {
    background: var(--tsdc-navy) !important;
    z-index: 9991 !important;
  }
  .main-navigation.toggled-open a { color: #fff !important; }
}

/* ── Mega menu: keep positioned correctly on scroll ── */
.main-navigation li { position: relative; }
.sub-menu { position: absolute !important; top: 100% !important; z-index: 9995 !important; }

/* ════════════════════════════════════════════════════════════════════
   FULL-WIDTH LAYOUT OVERRIDES — break out of Kadence containers
════════════════════════════════════════════════════════════════════ */

/* Pages/posts using Kadence fullwidth layout */
.page .entry-content-wrap,
.page .entry-content,
.page .content-wrap,
.page .site-main,
.page .content-area,
.kadence-fullwidth .content-container,
.kadence-fullwidth .site-container,
[class*="kadence-fullwidth"] .content-wrap,
.post-template-default.page .content-container {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Any page using our custom block content */
.entry-content .hp-hero,
.entry-content .sv-hero,
.entry-content .bk-hero,
.entry-content .sh-hero,
.entry-content .hp-stats,
.entry-content .sv-stats,
.entry-content .hp-section,
.entry-content .sv-section,
.entry-content .sv-doc,
.entry-content .sv-cta,
.entry-content .hp-cta-band,
.entry-content .bk-options,
.entry-content .bk-form-section,
.entry-content .bk-trust-strip,
.entry-content .sh-cta,
.entry-content .sh-section {
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  width: 100vw !important;
  max-width: 100vw !important;
  box-sizing: border-box;
}

/* Kadence fullwidth template specific */
.page .site-container { max-width: 100% !important; }
.page .content-container { max-width: 100% !important; padding: 0 !important; }
.page .content-wrap { max-width: 100% !important; padding: 0 !important; }

/* Remove default page title (we use our own heroes) */
.page .page-title,
.page .entry-title,
.page .kadence-page-title-inner { display: none !important; }

/* Remove post meta on pages */
.page .entry-meta,
.page .entry-footer,
.page .post-footer { display: none !important; }

/* ── Homepage (front-page.php) — full-width, no constraints ── */
.tsdc-home-wrap {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}
.tsdc-home-wrap > * {
  max-width: 100%;
}
/* Ensure HP sections are full-width */
.tsdc-home-wrap .hp-hero,
.tsdc-home-wrap .hp-stats,
.tsdc-home-wrap .hp-section,
.tsdc-home-wrap .hp-cta-band,
.tsdc-home-wrap [class^="hp-"] {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}
/* Push homepage down past fixed nav */
.home .tsdc-home-wrap { padding-top: 70px; }

/* ════════════════════════════════════════════════════════════════════
   CUSTOM STICKY MEGA NAV — tsdc-nav
   Fully independent from Kadence nav system
════════════════════════════════════════════════════════════════════ */

/* ── Nav bar ── */
.tsdc-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 99990;
  background: var(--tsdc-navy);
  border-bottom: 1px solid rgba(255,255,255,.08);
  transition: box-shadow .3s, background .3s;
}
.tsdc-nav--scrolled {
  box-shadow: 0 4px 32px rgba(0,0,0,.4);
}
.tsdc-nav-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 28px;
  height: 70px;
  display: flex;
  align-items: center;
  gap: 32px;
}

/* ── Logo ── */
.tsdc-nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}
.tsdc-nav-logo-mark {
  font-size: 1.4rem;
  color: var(--tsdc-gold);
  line-height: 1;
}
.tsdc-nav-logo-text {
  font-family: var(--font-display);
  font-size: .95rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.25;
}
.tsdc-nav-logo-text em {
  color: var(--tsdc-gold);
  font-style: normal;
  font-size: .85rem;
}

/* ── Primary links ── */
.tsdc-nav-links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1;
}
.tsdc-nav-item {
  position: relative;
}
.tsdc-nav-link {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  font-size: .875rem;
  font-weight: 500;
  color: rgba(255,255,255,.85);
  text-decoration: none;
  border-radius: 6px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-body);
  letter-spacing: .01em;
  transition: color .2s, background .2s;
  white-space: nowrap;
}
.tsdc-nav-link:hover,
.tsdc-nav-link[aria-expanded="true"] {
  color: #fff;
  background: rgba(255,255,255,.1);
}
.tsdc-nav-caret {
  transition: transform .25s;
  flex-shrink: 0;
}
.tsdc-nav-link[aria-expanded="true"] .tsdc-nav-caret {
  transform: rotate(180deg);
}

/* ── Mega panel ── */
.tsdc-mega-panel {
  position: absolute;
  top: 100%;         /* flush to trigger — no gap so hover stays connected */
  left: 50%;
  transform: translateX(-50%);
  width: 640px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(26,26,46,.18);
  padding: 32px 24px 24px; /* extra top padding bridges the visual gap */
  margin-top: 0;
  display: none;
  grid-template-columns: 1fr 1fr;
  gap: 0 20px;
  z-index: 99995;
}
.tsdc-mega-panel--open {
  display: grid;
}

/* ── Mega panel columns ── */
.tsdc-mega-col-hdr {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tsdc-teal);
  padding: 0 8px 10px;
  border-bottom: 1px solid #f0f0f5;
  margin-bottom: 8px;
}
.tsdc-mega-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 8px;
  border-radius: 8px;
  text-decoration: none;
  transition: background .15s;
}
.tsdc-mega-item:hover { background: #f5fafb; }
.tsdc-mega-icon {
  font-size: 1.25rem;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.tsdc-mega-item strong {
  display: block;
  font-size: .88rem;
  font-weight: 600;
  color: var(--tsdc-navy);
  line-height: 1.3;
}
.tsdc-mega-item em {
  font-style: normal;
  font-size: .78rem;
  color: var(--tsdc-grey);
}

/* ── Mega footer row ── */
.tsdc-mega-footer {
  grid-column: 1 / -1;
  border-top: 1px solid #f0f0f5;
  margin-top: 12px;
  padding-top: 12px;
}
.tsdc-mega-all-link {
  font-size: .82rem;
  font-weight: 600;
  color: var(--tsdc-teal);
  text-decoration: none;
}
.tsdc-mega-all-link:hover { color: var(--tsdc-teal-dk); }

/* ── Right CTA group ── */
.tsdc-nav-cta-group {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  margin-left: auto;
}
.tsdc-nav-tel {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  font-weight: 500;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  transition: color .2s;
}
.tsdc-nav-tel:hover { color: #fff; }
.tsdc-nav-book {
  display: inline-flex;
  align-items: center;
  padding: 9px 20px;
  background: var(--tsdc-gold);
  color: var(--tsdc-navy);
  font-size: .8rem;
  font-weight: 700;
  font-family: var(--font-body);
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 6px;
  transition: background .2s, transform .2s;
  white-space: nowrap;
}
.tsdc-nav-book:hover {
  background: var(--tsdc-gold-lt);
  color: var(--tsdc-navy);
  transform: translateY(-1px);
}

/* ── Hamburger (mobile only) ── */
.tsdc-nav-burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  margin-left: auto;
  flex-shrink: 0;
}
.tsdc-nav-burger span {
  display: block;
  width: 24px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform .25s, opacity .25s;
}

/* ── Mobile overlay ── */
.tsdc-nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.4);
  z-index: 99988;
}
.tsdc-nav-overlay--show { display: block; }

/* ── Push page content below fixed nav ── */
body { padding-top: 70px !important; }

/* ── Desktop: hide burger ── */
@media (min-width: 960px) {
  .tsdc-nav-burger { display: none !important; }
  .tsdc-nav-links { display: flex !important; }
}

/* ── Mobile: drawer ── */
@media (max-width: 959px) {
  .tsdc-nav-tel { display: none; }
  .tsdc-nav-burger { display: flex; }
  .tsdc-nav-inner { gap: 16px; }

  .tsdc-nav-links {
    display: none;
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: 300px;
    background: var(--tsdc-navy);
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 80px 20px 32px;
    z-index: 99990;
    overflow-y: auto;
    box-shadow: -8px 0 32px rgba(0,0,0,.3);
  }
  .tsdc-nav-links--open { display: flex; }

  .tsdc-nav-item { border-bottom: 1px solid rgba(255,255,255,.08); }
  .tsdc-nav-link {
    padding: 14px 8px;
    font-size: 1rem;
    color: #fff;
    border-radius: 0;
    width: 100%;
    justify-content: space-between;
  }
  .tsdc-nav-link:hover { background: rgba(255,255,255,.08); }

  /* Mobile mega panel: stacked below trigger */
  .tsdc-mega-panel {
    position: static;
    transform: none;
    width: 100%;
    box-shadow: none;
    border: none;
    border-radius: 0;
    padding: 8px 0 16px 16px;
    background: rgba(255,255,255,.05);
    grid-template-columns: 1fr;
    display: none;
  }
  .tsdc-mega-panel--open { display: grid; }
  .tsdc-mega-col-hdr { color: var(--tsdc-gold); }
  .tsdc-mega-item strong { color: #fff; }
  .tsdc-mega-item em { color: rgba(255,255,255,.6); }
  .tsdc-mega-item:hover { background: rgba(255,255,255,.08); }
  .tsdc-mega-all-link { color: var(--tsdc-gold); }
  .tsdc-mega-footer { border-color: rgba(255,255,255,.1); }

  .tsdc-nav-cta-group { display: none; }
}

/* ── Hide Kadence header — custom tsdc-nav replaces it ── */
#masthead,
.site-header,
.kadence-sticky-header { display: none !important; }

/* ── Hide Kadence default footer on homepage — custom footer in content ── */
.home .site-footer,
.home #colophon,
.home .footer-wrap {
  display: none !important;
}
/* ── Also hide Kadence header on homepage — custom tsdc-nav replaces it ── */
.home #masthead,
.home #mobile-header {
  display: none !important;
}
/* ── Remove content area margins on homepage ── */
.home .content-area {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ══════════════════════════════════════════════════════════════════
   FIX: Consistent white background across all pages
   Problem: Kadence content-style-unboxed sets site bg to #e8f5f7
   causing teal "blocks" between/around white content sections.
   Solution: Override site bg to white, remove content wrap padding,
   remove entry box-shadow. Let page sections handle their own bg.
══════════════════════════════════════════════════════════════════ */

/* Kill teal base background on all pages */
body,
body.content-style-unboxed .site,
body .content-bg,
.content-bg,
.site,
#wrapper.site,
.wp-site-blocks {
  background: #fff !important;
}

/* Remove content wrap padding — our sections handle their own spacing */
.entry-content-wrap {
  padding: 0 !important;
}

/* Remove entry card shadow on all pages */
.entry.single-entry {
  box-shadow: none !important;
  border: none !important;
  background: transparent !important;
}

/* Remove content-area top/bottom margins — our sections have own padding */
.content-area {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Ensure full-width bleed for our custom sections on inner pages too */
.entry-content .pg-hero,
.entry-content .pg-body,
.entry-content .pg-section,
.entry-content .pg-cta,
.entry-content .pg-footer-cta,
.entry-content .pg-trust,
.entry-content .pg-faq {
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  width: 100vw !important;
  max-width: 100vw !important;
  box-sizing: border-box;
}

/* Inner page wrapper — full white, no gaps */
.pg-body {
  background: #fff;
}
.pg-body-inner {
  background: #fff;
  max-width: 100%;
}
.pg-content {
  background: #fff;
}

/* Make pg-wrap fill full width with no visible bg gap */
.pg-wrap {
  background: #fff !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* ══════════════════════════════════════════════════════════════════
   FIX: Kill ALL blank space from Kadence wrappers
   These inline Kadence styles add 5rem margins + 2rem padding
   that create massive white gaps between sections.
══════════════════════════════════════════════════════════════════ */

/* Nuclear override — Kadence content-area has margin-top:5rem;margin-bottom:5rem inline */
#inner-wrap,
.wrap.kt-clear,
main.wrap {
  padding: 0 !important;
  margin: 0 !important;
}

/* Homepage: hide Kadence footer completely */
.home #colophon,
.home .site-footer,
.home .site-footer-wrap,
.home .site-bottom-footer-wrap,
.home footer#colophon {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* Homepage: kill ALL Kadence spacing around content */
.home .content-area,
.home .entry-content-wrap,
.home .entry.single-entry,
.home .tsdc-home-wrap {
  margin: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  border: none !important;
}

/* Homepage: the tsdc-home-wrap should touch edges */
.home .tsdc-home-wrap > section,
.home .tsdc-home-wrap > footer {
  margin: 0 !important;
}

/* Kill Kadence content-vertical-padding on homepage */
.home.content-vertical-padding-show .content-area {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE CTA OVERLAP FIX — 22 Jul 2026
   Problem: FAB cluster + mobile CTA bar + wa-float all stacking
   Fix: Hide FABs on mobile (sticky bar has same CTAs), fix bar sizing
════════════════════════════════════════════════════════════════════ */

/* Hide FAB cluster on mobile — the sticky CTA bar already has Call + WhatsApp */
@media (max-width: 899px) {
  .tsdc-fab-cluster {
    display: none !important;
  }

  /* Fix mobile CTA bar — prevent text overflow and button squishing */
  .tsdc-mobile-cta {
    bottom: 0;
    left: 0;
    right: 0;
    height: 54px;
  }
  .tsdc-mobile-cta-book,
  .tsdc-mobile-cta-call,
  .tsdc-mobile-cta-wa {
    font-size: .78rem;
    padding: 0 8px;
    gap: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
  }
  /* Give Book button more space since it is the primary CTA */
  .tsdc-mobile-cta-book {
    flex: 1.4;
    font-size: .82rem;
  }
  .tsdc-mobile-cta-call {
    flex: 1;
  }
  .tsdc-mobile-cta-wa {
    flex: 0.9;
  }

  /* Adequate body padding so content is not hidden behind sticky bar */
  body {
    padding-bottom: 60px !important;
  }
}

/* Extra small phones — stack to 2 buttons (hide Call, keep Book + WhatsApp) */
@media (max-width: 374px) {
  .tsdc-mobile-cta-call {
    display: none !important;
  }
  .tsdc-mobile-cta-book {
    flex: 1.2;
  }
  .tsdc-mobile-cta-wa {
    flex: 1;
  }
}
