*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html body section {
	color: #222;
}

:root {
  /* Brand colours */
  --ttc-gold: #1c562a;
  --ttc-gold-light: rgba(241, 187, 28, 0.12);
  --ttc-gold-hover: #d9a617;
  --ttc-charcoal: #222;
  --ttc-dark-grey: #2D2D2D;
  --ttc-cream: #E3DFBE;
  --ttc-light-grey: #EDEDED;
  --ttc-white: #FFFFFF;
  --ttc-black: #000000;
  --ttc-red: #DD3333;
  --ttc-green: #22c55e;

  /* Typography */
  --font-heading: 'Poppins', Georgia, 'Times New Roman', serif;
  --font-body: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-accent: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;

  /* Shadows */
  --shadow-card: 0 5px 30px rgba(0, 22, 84, 0.10);
  --shadow-card-hover: 0 8px 40px rgba(0, 22, 84, 0.16);

  /* Radii */
  --radius-card: 20px;
  --radius-button: 50px;
  --radius-input: 12px;
  --radius-small: 8px;

  /* Layout */
  --container-max: 1140px;
  --section-padding: 80px 0;
  --section-padding-mobile: 48px 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.single-service a {
	pointer-events:none;
}


/* ----- Accessibility ----- */
.skip-link {
  position: absolute;
  top: -100%;
  left: 16px;
  background: var(--ttc-charcoal);
  color: var(--ttc-white);
  padding: 8px 16px;
  border-radius: var(--radius-small);
  z-index: 9999;
  font-size: 14px;
}

.skip-link:focus {
  top: 16px;
}

.nav-menu ul.menu>li.current-menu-item.nav-btn>a {
	color:#9e7a44;
	font-weight:500;
}

.nav-menu ul.menu>li.current-menu-item.nav-btn>a:hover {
	color:#fff;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


.section-subheading {
  text-align: center;
  color: #666;
  max-width: 600px;
  margin: 0 auto 48px;
  font-size: 1.15rem;
}

.section-heading {
	font-weight: 600;
}


/* ============================================
   BOOKING HERO — Calendar above the fold
   This is the primary section visitors see first.
   Supporting content (differentiators, how-it-works,
   stats, team, FAQ) lives below for cold/ad traffic.
   ============================================ */
.booking-hero {
  padding: 48px 0 60px;
  background: #e4dfbe54;
}

.booking-headline {
  font-family: var(--font-heading);
  font-size: 3rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 8px;
  color: #1C562A;
}

/* Social proof — prominent number + label */
.social-proof {
/*   display: flex; */
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
}

.social-proof-number {
  font-family: var(--font-heading);
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--ttc-charcoal);
  line-height: 1;
}

.social-proof-label {
  font-size: 1.05rem;
  color: #222;
}

/* Legacy class (kept for compatibility) */
.social-proof-text {
  font-size: 0.9rem;
  color: #666;
}

.single-service .service-icon img {
	margin-inline:auto;
}

.social-proof-text strong {
  color: var(--ttc-charcoal);
}

/* Physician referral proof line */
.referral-proof {
  text-align: center;
  font-size: 0.9rem;
  color: var(--ttc-gold-hover);
  font-weight: 600;
  margin-top: 8px;
  letter-spacing: 0.01em;
}

/* Existing patient — follow-up link (low-key, sits above calendar) */
.existing-patient-link {
  text-align: center;
  font-size: 0.875rem;
  color: #6B6B6B;
  margin: 18px 0 14px;
}
.existing-patient-link a {
  color: #9F7A43;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  font-weight: 600;
  transition: color 0.15s ease;
}
.existing-patient-link a:hover,
.existing-patient-link a:focus {
  color: #1C562A;
}

.header {
	border-bottom:solid 1px #ddd;
}

/* Caller preview — who you'll speak with */
.caller-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 24px auto 0;
  max-width: 600px;
}

.caller-photo {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--ttc-gold);
}

.caller-label {
  font-size: 0.85rem;
  color: #888;
  line-height: 1.3;
}

.caller-name {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ttc-charcoal);
  line-height: 1.3;
}

/* Province selector */
.province-selector {
  max-width: 600px;
  margin: 0 auto 24px;
}

.province-selector-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}

.province-icon {
  color: var(--ttc-gold);
  flex-shrink: 0;
}

.province-label {
  font-size: 0.95rem;
  color: #555;
}

.province-dropdown {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ttc-charcoal);
  background: var(--ttc-white);
  border: 2px solid var(--ttc-light-grey);
  border-radius: var(--radius-small);
  padding: 6px 32px 6px 12px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233C3C3C' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  transition: border-color 0.2s ease;
}

.province-dropdown:focus {
  outline: none;
  border-color: var(--ttc-gold);
  box-shadow: 0 0 0 3px var(--ttc-gold-light);
}

.province-dropdown:hover {
  border-color: var(--ttc-gold);
}

/* Calendar placeholder (shown before province selected) */
.calendar-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 400px;
  color: #999;
  text-align: center;
  padding: 40px 24px;
}

.calendar-placeholder p {
  font-size: 1rem;
  max-width: 300px;
}

/* ============================================
   DIFFERENTIATORS — 4 cards
   ============================================ */
.differentiators {
  padding: var(--section-padding);
  background: var(--ttc-cream);
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 48px;
}

.card-icon {
  margin-bottom: 16px;
}

.card-title {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 600;
  margin-bottom: 8px;
}

.card-text {
  font-size: 1rem;
  line-height: 1.7;
  color: #555;
}

/* ============================================
   HOW IT WORKS — 3 steps
   ============================================ */
.how-it-works {
  padding: var(--section-padding);
  background: var(--ttc-white);
}

.steps {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  margin-top: 48px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.step {
  text-align: center;
  flex: 1;
  padding: 0 24px;
}

.step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--ttc-gold);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 16px;
}

.step-connector {
  width: 60px;
  height: 2px;
  background: var(--ttc-light-grey);
  margin-top: 27px;
  flex-shrink: 0;
}

.step-title {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 600;
  margin-bottom: 8px;
}

.step-text {
  font-size: 1rem;
  line-height: 1.7;
  color: #555;
}

.steps-cta {
  text-align: center;
  margin-top: 40px;
}

/* ============================================
   BOOKING MODULE
   ============================================ */
.booking-section {
  padding: var(--section-padding);
}

.booking-header {
  text-align: center;
  margin-bottom: 32px;
}

.booking-subtitle {
  color: #666;
  font-size: 1.15rem;
  max-width: 560px;
  margin: 8px auto 0;
}

/* GHL Calendar — primary booking module (calendar-first flow) */
.ghl-calendar-wrapper {
  max-width: 600px;
  margin: 0 auto;
  min-height: 500px;
  background: var(--ttc-white);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  position: relative;
}

.ghl-calendar-wrapper iframe {
  width: 100%;
  min-height: 600px;
  border: none;
  color: #666;
}

/* Trust indicators */
.booking-trust {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 24px;
  flex-wrap: wrap;
  padding: 14px 24px;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

.trust-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #555;
  font-weight: 600;
}

.trust-item svg {
	color:#9F7A43;
	font-size:18px;
}

.font-bold {
	font-weight:600;
}

/* Phone callback */
.callback-section {
  max-width: 500px;
  margin: 40px auto 0;
}

.callback-divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.callback-divider::before,
.callback-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--ttc-light-grey);
}

.callback-divider span {
  font-size: 13px;
  color: #999;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.callback-content {
  text-align: center;
}

.callback-title {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  margin-bottom: 4px;
}

.callback-text {
  font-size: 0.95rem;
  color: #666;
  margin-bottom: 16px;
}

.callback-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
}

.form-row {
  display: flex;
  gap: 12px;
  width: 100%;
}

.form-input {
  font-family: var(--font-body);
  font-size: 16px;
  padding: 12px 16px;
  border: 2px solid var(--ttc-light-grey);
  border-radius: var(--radius-input);
  background: var(--ttc-white);
  color: var(--ttc-charcoal);
  flex: 1;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  min-width: 0;
}

.form-input:focus {
  outline: none;
  border-color: var(--ttc-gold);
  box-shadow: 0 0 0 3px var(--ttc-gold-light);
}

.form-input::placeholder {
  color: #aaa;
}

.callback-btn {
  width: 100%;
}

.callback-confirm {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: var(--ttc-green);
  font-weight: 600;
  margin-top: 12px;
}

/* ============================================
   BY THE NUMBERS — Verifiable stats
   ============================================ */
.stats-section {
  padding: var(--section-padding);
  background: #e4dfbe;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
	max-width:1000px;
	margin-inline:auto;
}

.main-wrapper section h2 {
	font-size:42px;
	line-height:1.2;
	font-weight:600;
	color:#1c562a;
}

.text-gold {
	color:#9F7A43 !important; 
}

.final-cta-actions .hover-link:hover {
	background-color:#fff !important;
	color:#1C562A;
}

.stat-card {
  background: #fff;
  padding: 32px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
	    border: solid 1px #9a7844;
	border-radius:10px;
}

.stat-number {
  font-family: var(--font-heading, 'Poppins', serif);
  font-size: 2.5rem;
  font-weight: 600;
  color: #1C562A;
  line-height: 1;
}

.stat-label {
  font-size: 0.9rem;
  color: #666;
  line-height: 1.4;
}

/* ============================================
   PATIENT EXPERIENCES — Process-only quotes
   ⚠️ PENDING APPROVAL from Jennifer/Tracey
   ============================================ */
.experiences {
  padding: var(--section-padding);
  background: var(--ttc-cream, #FAF8F5);
}

.experience-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 48px;
}

.experience-card {
  background: var(--ttc-white);
  border-left: 3px solid var(--ttc-gold);
  border-radius: var(--radius-card);
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
}

.experience-text {
  font-size: 0.95rem;
  line-height: 1.7;
  color: #444;
  font-style: italic;
  flex: 1;
}

.experience-author {
  font-size: 0.85rem;
  color: #888;
  font-style: normal;
}

/* ============================================
   TEAM
   ============================================ */
.team-section {
  padding: var(--section-padding);
  background: var(--ttc-cream);
}

.team-grid {
  display: flex;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
  margin-top: 48px;
}

.team-member {
  text-align: center;
  width: 190px;
}

.team-photo {
  width: 190px;
  height: 250px;
  border-radius: 0;
  object-fit: cover;
  object-position: top;
  margin: 0 auto 12px;
  border: none;
}

.team-name {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 2px;
}

.team-role {
  font-size: 0.95rem;
  color: var(--ttc-gold);
  font-weight: 600;
}

.team-more {
  text-align: center;
  margin-top: 32px;
}

.link-gold {
  color: var(--ttc-gold);
  font-weight: 600;
  transition: color 0.2s ease;
}

.link-gold:hover {
  color: var(--ttc-gold-hover);
}

/* ============================================
   FAQ
   ============================================ */
.faq-section {
  padding: var(--section-padding);
  background: var(--ttc-white);
}

.faq-list {
  max-width: 600px;
  margin: 48px auto 0;
}

.faq-item {
  border-bottom: 1px solid var(--ttc-light-grey);
}

.faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 0;
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  color: var(--ttc-charcoal);
  gap: 16px;
}

.faq-question::-webkit-details-marker {
  display: none;
}

.faq-question::marker {
  display: none;
  content: '';
}

.faq-chevron {
  flex-shrink: 0;
  transition: transform 0.3s ease;
  color: var(--ttc-gold);
}

.faq-item[open] .faq-chevron {
  transform: rotate(180deg);
}

.faq-answer {
  padding: 0 0 20px;
  color: #555;
  line-height: 1.7;
}

.faq-answer p {
  font-size: 1rem;
}

/* ============================================
   FINAL CTA
   ============================================ */
.final-cta {
  padding: var(--section-padding);
  background: var(--ttc-charcoal);
}

.final-cta-inner {
  text-align: center;
}

.final-cta-headline {
  color: var(--ttc-white);
  font-size: 2.75rem;
  margin-bottom: 12px;
}

.final-cta-text {
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.2rem;
  max-width: 500px;
  margin: 0 auto 32px;
}

.final-cta-actions {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

.final-cta .btn-primary {
  background: var(--ttc-gold);
  color: var(--ttc-charcoal);
  border-color: var(--ttc-gold);
}

.final-cta .btn-primary:hover {
  background: var(--ttc-gold-hover);
  border-color: var(--ttc-gold-hover);
}

.final-cta .btn-outline {
  color: var(--ttc-white);
  border-color: rgba(255, 255, 255, 0.3);
}

.final-cta .btn-outline:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--ttc-white);
  color: var(--ttc-white);
}

/* ============================================
   MOBILE STICKY BAR
   ============================================ */
.mobile-sticky-bar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 8px 16px;
  background: var(--ttc-white);
  box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.12);
  z-index: 90;
}

.mobile-sticky-bar.visible {
  display: block;
}

.mobile-sticky-btn {
  width: 100%;
  font-size: 16px;
  padding: 14px 24px;
}

/* ============================================
   EXIT-INTENT POPUP
   ============================================ */
.exit-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.exit-popup {
  background: var(--ttc-white);
  border-radius: var(--radius-card);
  padding: 40px 32px;
  max-width: 420px;
  width: 100%;
  position: relative;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.exit-popup-close {
  position: absolute;
  top: 12px;
  right: 16px;
  background: none;
  border: none;
  font-size: 28px;
  color: #999;
  cursor: pointer;
  line-height: 1;
  padding: 4px;
}

.exit-popup-close:hover {
  color: var(--ttc-charcoal);
}

.exit-popup-title {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  margin-bottom: 8px;
  text-align: center;
}

.exit-popup-text {
  font-size: 1.1rem;
  color: #666;
  text-align: center;
  margin-bottom: 20px;
}

.exit-popup-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.exit-popup-form .btn {
  width: 100%;
}

.exit-popup-confirm {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: var(--ttc-green);
  font-weight: 600;
  margin-top: 12px;
  text-align: center;
}

/* ============================================
   SCROLL ANIMATIONS
   ============================================ */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ============================================
   RESPONSIVE — Tablet (< 1100px)
   ============================================ */
@media (max-width: 1100px) {

  .booking-hero {
    padding: 32px 0 48px;
  }

  .card-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ============================================
   RESPONSIVE — Mobile (< 600px)
   ============================================ */
@media (max-width: 600px) {
  :root {
    --section-padding: 48px 0;
  }

  .container {
    padding: 0 16px;
  }

  .booking-hero {
    padding: 24px 0 36px;
  }

  .booking-headline {
    font-size: 2rem;
  }

  .btn-lg {
    font-size: 16px;
    padding: 14px 32px;
    width: 100%;
  }

  .section-heading {
    font-size: 2rem;
  }

  .card-grid {
    grid-template-columns: 1fr;
  }

  .steps {
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }

  .step-connector {
    width: 2px;
    height: 24px;
    margin: 0;
  }

  .form-row {
    flex-direction: column;
  }

  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .experience-grid {
    grid-template-columns: 1fr;
  }

  .team-grid {
    gap: 24px;
  }

  .team-member {
    width: 140px;
  }

  .team-photo {
    width: 140px;
    height: 185px;
  }

  .final-cta-headline {
    font-size: 2rem;
  }

  .final-cta-actions {
    flex-direction: column;
    align-items: center;
  }

  .final-cta .btn-lg {
    width: 100%;
    max-width: 320px;
  }

  .province-selector-inner {
    flex-direction: column;
    gap: 6px;
  }

  .province-dropdown {
    width: 100%;
    text-align: center;
  }

  .social-proof {
    flex-direction: column;
    gap: 2px;
    align-items: center;
  }

  .social-proof-number {
    font-size: 2rem;
  }

  .social-proof-label {
    font-size: 0.95rem;
    text-align: center;
  }

  .caller-preview {
    margin-top: 20px;
  }

  .booking-trust {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
  }

  /* Show mobile sticky bar on small screens */
  .mobile-sticky-bar.visible {
    display: block;
  }
}

#footer {
	margin-top:0;
}

.btn {
	border-radius:4px;
}

.all_location_page .card .content_wrap {
	padding-inline:15px !important;
}

.single-practitioner h3 {
    color: #1c562a;
}

#final-cta {
	min-height:400px;
	align-content:center;
}

.all_location_page .card {
	border-radius:10px;
}

botpenguin-root {
	display:none !important;
}

@media only screen and (max-width:600px) {
	.main-wrapper section h2 {
		font-size:32px;
	}
	
	.stat-number {
		font-size:24px;
	}
	
	    .stats-grid {
			gap: 10px;
			margin-top:30px;
		}
	.stat-card:last-child  {
		grid-column: span 2;
	}
	
	.single-service {
		max-width:50% !important;
	}
	
	.practitioner-profile-img img {
		margin-inline:auto;
	}
	#final-cta {
		min-height: 450px;
	}
	
	#services .single-service {
		border-top:solid 1px #fff !important; 
		border-right: solid 1px #fff !important;
	}
	
	#services .single-service:nth-child(even) {
		border-right: none !important;
	}
	
	#services .single-service:last-child {
		border-right: none !important;
	}
	
	.mobile-sticky-bar {
		display: block; 
	}
	
}
 



