:root{--cream:#faf7f2;--blush:#f5efeb;--forest:#1a382b;--slate:#313a35;--gold:#c5a059;--light-gold:#e2ca92;--brown:#8b603b;--ink:#22252a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;line-height:1.625}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #996812;outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Playfair Display',serif;font-weight:600;line-height:1.22}h2{font-size:38px;letter-spacing:-.6px}h3{font-size:22px}p+p{margin-top:20px}.container{width:min(1112px,calc(100% - 64px));margin-inline:auto}.narrow{max-width:768px}.section{padding:56px 0}.icon{flex-shrink:0}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--brown);margin-bottom:12px}.serif-italic{font:italic 19px/1.4 'Playfair Display',serif;color:var(--light-gold)}.script{font-family:'Dancing Script',cursive}.muted{color:#555a63}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 24px;border-radius:30px;font-size:14px;font-weight:700;text-align:center;line-height:1.4;transition:filter .2s,transform .2s}.button:hover{text-decoration:none;filter:brightness(1.08);transform:translateY(-2px)}.gold{background:var(--gold);color:var(--forest)}.green{background:var(--forest);color:var(--cream)}.cream{background:var(--cream);color:var(--forest)}.button-row{display:flex;gap:16px;flex-wrap:wrap}.round-icon{width:48px;height:48px;border-radius:50%;background:var(--slate);display:flex;align-items:center;justify-content:center;flex-shrink:0}.skip-link{position:absolute;left:16px;top:-100px;z-index:10;padding:12px;background:white;color:black}.skip-link:focus{top:16px}.site-header{background:var(--slate);color:var(--cream)}.header-inner{min-height:126px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand img{width:90px;height:auto}.nav-list{list-style:none;display:flex;gap:40px;padding:0;margin:0;align-items:center;font-family:Lato,sans-serif;font-size:14px}.nav-list a{display:block;padding:12px 0}.header-curve{background:var(--cream);height:32px;overflow:hidden}.header-curve img,.footer-curve img{width:100%;height:auto}.menu-toggle{display:none;background:transparent;color:var(--cream);border:1px solid var(--gold);border-radius:8px;padding:10px 14px}.hero{padding:28px 0 56px;background:linear-gradient(90deg,var(--cream) 66%,transparent 66%),repeating-linear-gradient(90deg,#faf7f2 0,#faf7f2 9px,#f2ede6 10px,#faf7f2 12px)}.hero-grid{display:grid;grid-template-columns:minmax(0,632fr) minmax(0,440fr);gap:40px;align-items:center}.hero-content{display:flex;flex-direction:column;gap:24px}.badges{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.approval{display:inline-flex;align-items:center;gap:8px;background:var(--forest);color:var(--light-gold);font-size:11px;font-weight:700;padding:6px 12px;border-radius:30px}.qualities{font-size:10px;font-weight:700;background:var(--blush);border-radius:20px;padding:8px 10px;color:#645444}.hero h1{font-size:52px;line-height:1.15;letter-spacing:-1.04px;color:var(--forest)}.hero-subtitle{font:italic 19px/26px 'Playfair Display',serif;color:var(--brown);margin-top:12px}.hero-intro{font-size:18px;line-height:28px;max-width:570px}.hero-script{font-size:33px;line-height:1.2;color:var(--forest);margin-top:16px}.hero-trust{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:#555a63}.hero-trust span{display:flex;align-items:center;gap:8px}.hero-mosaic{position:relative;min-width:0}.hero-photo{border-radius:40px;overflow:hidden;position:relative;box-shadow:0 16px 32px #313a3518}.hero-photo>img{width:100%;aspect-ratio:4/5;object-fit:cover}.qualification{position:absolute;bottom:20px;left:20px;right:20px;display:flex;align-items:center;gap:10px;background:var(--cream);border-radius:12px;padding:12px}.qualification .round-icon{width:40px;height:40px}.qualification strong{font-size:12px;display:block}.qualification small{display:block;font-size:10px}.qualified{margin-left:auto;font-size:9px;font-weight:700;background:#edf0e8;color:var(--forest);padding:4px 8px;border-radius:15px}.stamp{position:absolute;right:-16px;top:-14px;width:96px;height:96px;border-radius:50%;background:var(--forest);color:var(--gold);display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:0 6px 18px #0002;transform:rotate(10deg);border:3px solid var(--cream)}.stamp strong{font-size:14px;line-height:1.3}.stamp small{font-size:8px}.services{background:var(--blush)}.section-heading{text-align:center;max-width:700px;margin:0 auto 40px}.section-heading>p:last-child{margin-top:16px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.service-card{position:relative;background:var(--cream);border-radius:16px;box-shadow:0 8px 24px #313a3510;overflow:hidden;display:flex;flex-direction:column}.service-media{position:relative}.service-media>img:first-child{width:100%;aspect-ratio:344/237;object-fit:cover}.service-media .emmi-logo,.service-media .icmg-card{position:absolute;left:16px;top:16px;max-width:38%}.service-label{position:absolute;right:12px;top:18px;padding:5px 9px;border-radius:20px;background:var(--cream);font-size:9px;font-weight:700;color:var(--forest)}.service-label.training{background:var(--forest);color:var(--light-gold)}.service-icon{display:flex;align-items:center;justify-content:center;background:var(--forest);border:4px solid var(--cream);border-radius:50%;width:56px;height:56px;align-self:center;margin-top:-28px;z-index:1}.service-body{padding:12px 20px 32px;text-align:center;display:flex;flex-direction:column;align-items:center;flex:1}.service-body h3{margin-bottom:12px}.service-body p{font-size:15px;line-height:1.625;margin-bottom:24px;flex:1}.small{min-height:44px;font-size:12px;padding:10px 20px}.credentials{background:var(--forest);color:var(--cream);padding:32px 0}.credential-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;text-align:center}.credential .round-icon{margin:0 auto 12px}.credential h3{font-family:inherit;font-size:13px;line-height:20px;font-weight:600}.credential p{font-size:11px;line-height:18px;color:#d8dae0;margin-top:4px}.about-grid{display:grid;grid-template-columns:440fr 574fr;gap:98px;align-items:stretch}.about-copy h2{margin-bottom:24px;color:var(--forest)}.signature{margin-top:28px;padding:20px;background:var(--blush);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.signature h3{font-size:22px}.signature .eyebrow{font-size:10px;margin:8px 0 0}.signature .round-icon{background:var(--cream)}.why-panel{background:var(--slate);border-radius:16px;padding:32px 24px;display:grid;grid-template-columns:1.2fr 1fr;gap:12px;align-items:center;color:var(--cream)}.why-panel h3{color:var(--gold);margin-bottom:24px}.check-list{padding:0;list-style:none;display:grid;gap:18px;font-size:13px;line-height:1.6}.check-list li{display:flex;align-items:flex-start;gap:10px}.check-list .icon{margin-top:4px}.why-logo{width:100%}.dogs{padding-top:32px;padding-bottom:32px}.dogs-panel{background:var(--forest);color:var(--cream);border-radius:24px;padding:56px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}.dogs-panel h2{margin:8px 0 20px}.dogs-panel>div>p:not(.serif-italic){color:#d8dae0}.text-link{display:inline-flex;align-items:center;gap:12px;color:var(--gold);font-weight:600}.dogs-panel .text-link{margin-top:24px}.dogs-photo{border-radius:16px;width:100%;aspect-ratio:488/275;object-fit:cover}.testimonial{text-align:center}.stars{display:flex;gap:4px;justify-content:center;margin-bottom:24px}.testimonial blockquote{margin:0}.testimonial blockquote>p{font:500 28px/1.625 'Playfair Display',serif}.testimonial blockquote footer{margin-top:24px}.testimonial strong{display:block;font-size:18px}.testimonial footer span{display:block;font-size:13px;color:var(--brown);margin-top:4px}.footer-curve{height:auto;line-height:0;background:var(--cream);overflow:hidden}.contact,.site-footer{background:var(--slate);color:var(--cream)}.contact-top{display:grid;grid-template-columns:576fr 276fr;gap:180px;align-items:center}.contact h2{margin:8px 0 20px}.contact-top>div>p:last-child{color:#d8dae0}.contact-actions{display:grid;gap:16px}.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}.contact-card{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--cream);color:var(--ink);border-radius:12px;min-width:0}.contact-card .round-icon{background:var(--blush)}.contact-card>span:last-child{min-width:0}.contact-card small{display:block;font-size:12px;color:#555a63}.contact-card strong{font-size:16px;overflow-wrap:anywhere}.site-footer{padding:32px 0}.footer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px}.footer-grid h2{font-size:22px;color:var(--gold);margin-bottom:20px;letter-spacing:0}.footer-grid h3{font:600 13px/1.6 'Plus Jakarta Sans',sans-serif;color:var(--gold);margin-top:20px}.footer-grid p,.footer-grid ul,.footer-grid address,.footer-phone{font-size:12px;line-height:1.9;color:#d8dae0}.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.footer-grid address{font-style:normal}.footer-credentials{color:var(--light-gold)!important;font-size:11px!important}.footer-phone{display:block;margin-top:16px}.map-link{font-size:12px;margin-top:18px}.footer-bottom{border-top:1px solid #ffffff25;margin-top:40px;padding-top:24px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#d8dae0}.footer-bottom nav{display:flex;gap:24px;flex-wrap:wrap}.legal-main{padding:64px 0 80px}.legal-main h1{font-size:46px;color:var(--forest);margin-bottom:32px}.legal-main h2{font-size:28px;margin:32px 0 14px}.legal-main h3{margin:24px 0 12px}.legal-main p,.legal-main ul{margin-bottom:18px}.legal-main a,.additional-content a{text-decoration:underline;color:var(--forest)}.additional-content{padding-block:32px}.legal-main .button{color:var(--forest)}
@media(min-width:1600px){.header-curve{height:40px}}@media(max-width:1100px){.hero h1{font-size:44px}.hero-grid{gap:28px}.hero-content{gap:20px}.hero .button{padding:12px 16px;font-size:12px}.hero-intro{font-size:16px}.about-grid{gap:40px}.why-panel{grid-template-columns:1fr}.why-logo{width:150px;margin:auto}.contact-top{gap:60px}.service-grid{gap:24px}.dogs-panel{padding:40px}.qualification{left:12px;right:12px;padding:8px}.qualified{display:none}.footer-grid{gap:24px}.nav-list{gap:28px}}
@media(max-width:800px){.container{width:calc(100% - 40px)}h2{font-size:32px}.section{padding:40px 0}.header-inner{min-height:104px;flex-wrap:wrap;gap:12px;padding-block:12px}.brand img{width:76px}.menu-toggle:not([hidden]){display:flex;align-items:center;gap:8px}.site-nav{width:100%}.has-menu-js .site-nav{display:none}.has-menu-js .site-nav.is-open{display:block}.nav-list{flex-direction:column;align-items:stretch;gap:0;padding:8px 0}.nav-list a{padding:12px 16px;border-top:1px solid #ffffff20}.hero-grid{grid-template-columns:1fr 1fr;gap:24px}.hero h1{font-size:36px}.hero-intro{font-size:15px;line-height:24px}.hero-subtitle{font-size:17px}.hero-script{font-size:28px}.qualities{display:none}.hero .button-row{gap:10px}.hero-photo>img{aspect-ratio:3/4}.qualification strong{font-size:10px}.qualification small{font-size:9px}.stamp{width:80px;height:80px;right:-8px}.hero-trust{gap:10px;font-size:10px}.service-grid{gap:16px}.service-body{padding-inline:16px}.service-body h3{font-size:20px}.service-body p{font-size:13px}.service-label{top:8px;right:6px;font-size:7px;padding:3px 5px}.service-media .emmi-logo,.service-media .icmg-card{top:8px;left:8px}.credential-grid{grid-template-columns:repeat(3,1fr);row-gap:28px}.about-grid{gap:24px}.why-panel{padding:24px 20px}.signature{padding:16px}.signature h3{font-size:19px}.dogs-panel{padding:32px;grid-template-columns:1fr}.dogs-photo{max-height:340px}.contact-top{gap:32px;grid-template-columns:1.3fr 1fr}.contact-card{padding:16px;gap:12px}.contact-card strong{font-size:13px}.footer-grid{grid-template-columns:1fr 1fr;gap:32px}.testimonial blockquote>p{font-size:24px}.footer-bottom{flex-direction:column}.footer-curve img{min-height:28px;object-fit:cover}.header-curve{height:20px}}
@media(max-width:600px){.hero{padding:20px 0 40px;background:var(--cream)}.hero-grid{grid-template-columns:1fr;gap:36px}.hero h1{font-size:clamp(34px,9vw,46px)}.hero h1 br{display:none}.hero h1 br:after{content:' '}.hero-content{gap:22px}.hero-intro{font-size:16px;line-height:26px}.hero-subtitle{font-size:19px}.hero .button{font-size:13px;flex:1;min-width:130px;padding-inline:12px}.hero-trust{font-size:11px;justify-content:space-between}.hero-mosaic{max-width:440px;width:100%;margin:auto}.hero-photo>img{aspect-ratio:4/5}.qualification strong{font-size:12px}.qualification small{font-size:10px}.qualification{padding:12px;bottom:16px;left:16px;right:16px}.stamp{width:90px;height:90px}.section-heading{margin-bottom:28px}.service-grid{grid-template-columns:1fr;gap:28px}.service-card{max-width:440px;width:100%;margin:auto}.service-body{padding:12px 24px 28px}.service-body h3{font-size:24px}.service-body p{font-size:15px}.service-label{font-size:10px;top:16px;right:16px;padding:5px 10px}.service-media .emmi-logo,.service-media .icmg-card{top:16px;left:16px}.credential-grid{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:1fr;gap:32px}.why-panel{grid-template-columns:1.2fr 1fr;padding:28px 20px;gap:12px}.why-logo{width:100%}.check-list{font-size:12px}.dogs-panel{padding:28px 24px;gap:28px}.dogs{padding:20px 0}.testimonial blockquote>p{font-size:23px}.contact-top,.contact-cards{grid-template-columns:1fr;gap:24px}.contact-actions{max-width:360px;width:100%}.contact-card strong{font-size:15px}.contact-cards{gap:16px}.footer-grid{gap:32px 24px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:last-child{grid-column:1/-1}.footer-grid h2{font-size:20px}.legal-main{padding:40px 0}.legal-main h1{font-size:36px}.legal-main h2{font-size:26px}.eyebrow{font-size:11px}.nav-list a{min-height:44px}.footer-bottom nav a{padding-block:8px}.brand{flex-shrink:0}}@media(max-width:360px){.container{width:calc(100% - 32px)}.why-panel{grid-template-columns:1fr}.why-logo{max-width:160px}.hero-trust{flex-direction:column}.button-row{flex-direction:column}.contact-card{padding:14px}.contact-card strong{font-size:13px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}


/* ==========================================================================
   ELLIEROSE BUG FIXES & RESPONSIVE BREAKPOINT PATCHES
   ========================================================================== */

/* 1. Header & Navigation Scaling */
.site-header {
  background: var(--slate, #202d24);
  color: var(--cream, #faf7f2);
  position: relative;
  width: 100%;
}

.header-inner {
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(14px, 2.5vw, 36px);
  padding: 14px 24px;
}

.brand img {
  width: clamp(75px, 8vw, 105px);
  height: auto;
  display: block;
}

.nav-list {
  list-style: none;
  display: flex;
  gap: clamp(12px, 1.8vw, 32px);
  padding: 0;
  margin: 0;
  align-items: center;
  font-family: 'Lato', sans-serif;
  font-size: clamp(13px, 1.05vw, 15px);
}

.nav-list a {
  display: inline-block;
  color: var(--cream, #faf7f2);
  text-decoration: none;
  transition: color 0.2s ease;
  white-space: nowrap;
}

.nav-list a:hover {
  color: var(--gold, #cbac6c);
}

/* Early header breakpoint stacking to prevent menu clash */
@media (max-width: 991px) {
  .menu-toggle {
    display: inline-flex !important;
  }
  .site-nav {
    display: none;
    width: 100%;
  }
  .site-nav.is-open {
    display: block;
    padding-top: 14px;
  }
  .nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .nav-list a {
    padding: 12px 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }
}

/* 2. Hero Stamp / Badge Alignment & Centering */
.stamp {
  position: absolute;
  right: -12px;
  top: -12px;
  width: 104px !important;
  height: 104px !important;
  border-radius: 50% !important;
  background: var(--forest, #213328) !important;
  color: var(--gold, #cbac6c) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
  text-align: center !important;
  padding: 8px !important;
  box-sizing: border-box !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25) !important;
  border: 3px solid var(--cream, #faf7f2) !important;
  transform: rotate(6deg) !important;
  z-index: 4 !important;
}

.stamp svg {
  width: 22px !important;
  height: 22px !important;
  margin-bottom: 2px !important;
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.stamp strong {
  font-size: 11px !important;
  line-height: 1.15 !important;
  letter-spacing: 0.6px !important;
  text-transform: uppercase !important;
  display: block !important;
  font-weight: 700 !important;
  color: var(--gold, #cbac6c) !important;
  margin: 0 !important;
  text-align: center !important;
}

.stamp small {
  font-size: 9px !important;
  line-height: 1.2 !important;
  color: #d8dae0 !important;
  margin-top: 2px !important;
  display: block !important;
  text-align: center !important;
}

@media (max-width: 600px) {
  .stamp {
    width: 86px !important;
    height: 86px !important;
    right: -6px !important;
    top: -8px !important;
    padding: 6px !important;
  }
  .stamp svg {
    width: 18px !important;
    height: 18px !important;
  }
  .stamp strong {
    font-size: 9.5px !important;
  }
  .stamp small {
    font-size: 8px !important;
  }
}

/* 3. Hero Responsive Grid */
@media (max-width: 960px) {
  .hero-grid {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  .hero-mosaic {
    max-width: 500px;
    margin: 0 auto;
    width: 100%;
  }
}

/* 4. Service Cards Grid Responsive */
@media (max-width: 1024px) and (min-width: 681px) {
  .service-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
  }
  .service-grid article:last-child {
    grid-column: span 2;
    max-width: 540px;
    margin: 0 auto;
    width: 100%;
  }
}

@media (max-width: 680px) {
  .service-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

/* 5. About Us Responsive Grid */
@media (max-width: 900px) {
  .about-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
}

/* 6. Contact & Footer Responsive Grids */
@media (max-width: 850px) {
  .contact-top {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 32px 20px !important;
  }
}

@media (max-width: 540px) {
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
}


/* ==========================================================================
   UPDATED FONT PAIRING & PURE CSS CURVE HEADER
   ========================================================================== */
:root {
  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-sans: 'Raleway', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-script: 'Alex Brush', cursive;
}

body {
  font-family: var(--font-sans);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, .serif, .main-title, .brand-name, .hero-title, .section-heading h2 {
  font-family: var(--font-serif);
  font-weight: 500;
  letter-spacing: 0.02em;
}

.script, .hero-script, .script-quote {
  font-family: var(--font-script);
}

.button, .btn, .nav-list a, .badge, .eyebrow {
  font-family: var(--font-sans);
  font-weight: 600;
}

/* Pure CSS Scalable Curved Header Transition across all pages */
.site-header {
  background: var(--slate, #213328);
  position: relative;
  padding-bottom: 34px;
}

.header-curve {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 34px;
  background-color: var(--cream, #FAF7F2);
  border-top-left-radius: 50% 100%;
  border-top-right-radius: 50% 100%;
  border-top: 2px solid var(--gold, #C7A263);
  box-sizing: border-box;
  pointer-events: none;
  overflow: hidden;
}

.header-curve svg {
  display: none !important; /* Replaced by fluid CSS curve */
}

/* Pricing Page Responsive Table Styling */
.pricing-hero-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* replaced */ #pricingTable_old_hover {
  background-color: #faf6ee !important;
}

@media (max-width: 768px) {
  #pricingTable th:nth-child(2),
  #pricingTable td:nth-child(2) {
    display: none; /* Hide lengthy description on small phones to keep table compact & legible */
  }
}


/* ==========================================================================
   HEADER RECTANGLE & GOLD BOTTOM STROKE (NO CURVE)
   ========================================================================== */
.site-header {
  background: var(--slate, #213328) !important;
  border-bottom: 2px solid var(--gold, #C7A263) !important;
  padding-bottom: 0 !important;
  position: relative;
  width: 100%;
}

.header-curve {
  display: none !important;
}

/* Before / After Dental Slider Styling */
.teeth-slider-container {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 0 auto 30px;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 14px 34px rgba(0,0,0,0.18);
  border: 2px solid #dfd5c2;
  user-select: none;
  aspect-ratio: 188 / 75;
}

.teeth-slider-container img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

.teeth-slider-before {
  z-index: 1;
}

.teeth-slider-after-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 100%;
  overflow: hidden;
  z-index: 2;
}

.teeth-slider-after-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Ensure image inside stays anchored to container width */
  min-width: 100%;
}

.teeth-slider-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 3px;
  background: #ffffff;
  z-index: 3;
  transform: translateX(-50%);
  cursor: ew-resize;
}

.teeth-slider-handle-circle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 38px;
  height: 38px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: #213328;
  font-weight: bold;
}

.teeth-badge-label {
  position: absolute;
  top: 14px;
  background: rgba(33,51,40,0.85);
  color: #FAF7F2;
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 999px;
  z-index: 4;
  letter-spacing: 0.5px;
  font-weight: 600;
}
.teeth-badge-before { right: 14px; }
.teeth-badge-after { left: 14px; }


/* ==========================================================================
   PRICING PAGE FULL RESPONSIVE STACKING & TABLE HOVER FIXES
   ========================================================================== */

/* 1. TABLE HEADER FIX: Strictly lock thead colors, completely disable hover state on head */
#pricingTable {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 14px;
}

#pricingTable thead,
#pricingTable thead tr,
#pricingTable thead tr:hover,
#pricingTable thead th,
#pricingTable thead th:hover {
  background: var(--forest, #213328) !important;
  background-color: var(--forest, #213328) !important;
  color: var(--cream, #FAF7F2) !important;
  cursor: default !important;
}

#pricingTable thead th {
  padding: 18px 20px;
  font-family: var(--font-serif);
  font-size: 15px;
  letter-spacing: 0.5px;
  border: none !important;
}

#pricingTable tbody tr {
  border-bottom: 1px solid #f0ede6;
  background: #ffffff;
  transition: background-color 0.15s ease;
}

#pricingTable tbody tr:hover {
  background-color: #faf6ee !important;
}

#pricingTable tbody td {
  padding: 14px 20px;
}

@media (max-width: 768px) {
  #pricingTable th:nth-child(2),
  #pricingTable td:nth-child(2) {
    display: none !important; /* Hide long coat description column on small screens */
  }
  #pricingTable th,
  #pricingTable td {
    padding: 12px 14px !important;
  }
}

/* 2. HERO RESPONSIVE STACKING */
.pricing-hero-grid {
  display: grid;
  grid-template-columns: 1.18fr 0.82fr;
  gap: 48px;
  align-items: center;
}

.pricing-hero-media {
  position: relative;
  text-align: center;
  max-width: 440px;
  margin: 0 auto;
  width: 100%;
}

.pricing-hero-card {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(0,0,0,0.35);
  border: 2px solid rgba(199,162,99,0.35);
  width: 100%;
}

.pricing-salon-pill {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(33,51,40,0.95);
  border: 1px solid var(--gold, #C7A263);
  padding: 7px 16px;
  border-radius: 999px;
  font-size: 11px;
  color: var(--cream, #FAF7F2);
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(0,0,0,0.35);
  max-width: 90%;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

@media (max-width: 900px) {
  .pricing-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
  .pricing-hero-media {
    max-width: 420px !important;
    margin: 12px auto 0 !important;
  }
}

/* 3. DENTAL DETAILS RESPONSIVE STACKING */
.pricing-dental-details-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 32px;
  align-items: center;
  margin-top: 25px;
}

@media (max-width: 850px) {
  .pricing-dental-details-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

/* 4. COMPANION CARE RESPONSIVE STACKING */
.pricing-companion-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 48px;
  align-items: center;
}

.pricing-companion-media {
  border-radius: 16px;
  overflow: hidden;
  border: 2px solid rgba(199,162,99,0.3);
  box-shadow: 0 12px 30px rgba(0,0,0,0.3);
  max-width: 480px;
  width: 100%;
  margin: 0 auto;
}

@media (max-width: 900px) {
  .pricing-companion-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
}


/* ==========================================================================
   CONTACT PAGE RESPONSIVE STACKING
   ========================================================================== */
.contact-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 48px;
  align-items: flex-start;
}

@media (max-width: 900px) {
  .contact-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
  .booking-card {
    padding: 24px 20px !important;
  }
  .booking-card div[style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}

.contact-location-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

@media (max-width: 850px) {
  .contact-location-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
}

.contact-community-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 40px;
  align-items: center;
}

@media (max-width: 800px) {
  .contact-community-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    text-align: center !important;
  }
}


/* Contact Section Accreditation Logos */
.contact-logos {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
}
.contact-accreditation-logos {
  max-width: 100%;
  width: auto;
  max-height: 120px;
  object-fit: contain;
  display: block;
}
@media (max-width: 850px) {
  .contact-logos {
    justify-content: flex-start !important;
  }
  .contact-accreditation-logos {
    max-width: 280px;
    margin: 0 auto;
  }
}


/* ==========================================================================
   AFFIXED STICKY HEADER BAR
   ========================================================================== */
header.site-header {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  z-index: 1000 !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.2) !important;
  transition: background-color 0.25s ease, box-shadow 0.25s ease;
}

/* ==========================================================================
   MOBILE PRICING TABLE: HIDE COAT DESCRIPTION & RECOMMENDED FREQUENCY
   Keep strictly: Col 1 (Dog Breed / Type) and Col 4 (Price)
   ========================================================================== */
@media (max-width: 768px) {
  #pricingTable th:nth-child(2),
  #pricingTable td:nth-child(2),
  #pricingTable th:nth-child(3),
  #pricingTable td:nth-child(3) {
    display: none !important;
  }
  #pricingTable th:first-child,
  #pricingTable td:first-child {
    width: 70% !important;
    text-align: left !important;
    padding: 14px 16px !important;
    font-size: 14px !important;
  }
  #pricingTable th:last-child,
  #pricingTable td:last-child {
    width: 30% !important;
    text-align: right !important;
    padding: 14px 16px !important;
    font-size: 15px !important;
  }
}

/* ==========================================================================
   NAVIGATION DIVIDERS FULL WIDTH ON MOBILE
   ========================================================================== */
@media (max-width: 800px) {
  .site-nav {
    width: 100% !important;
  }
  .nav-list {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .nav-list li {
    width: 100% !important;
    display: block !important;
    border-top: 1px solid rgba(255, 255, 255, 0.15) !important;
    margin: 0 !important;
  }
  .nav-list a {
    display: block !important;
    width: 100% !important;
    padding: 14px 18px !important;
    box-sizing: border-box !important;
    border-top: none !important;
  }
}

/* ==========================================================================
   FULL WIDTH BUTTONS ON MOBILE
   ========================================================================== */
@media (max-width: 680px) {
  .hero-buttons {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    gap: 12px !important;
  }
  .hero-buttons .button,
  .pricing-hero .button,
  .contact-hero .button,
  .contact-community-grid .button,
  .contact-location-grid .button,
  .pricing-companion-grid .button,
  .booking-card button[type="submit"] {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
}


/* ==========================================================================
   REVIEW CAROUSEL BLEED-PREVENTION & PADDING FIX
   ========================================================================== */
.review-carousel-box {
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 0 !important; /* Zero padding on clipping container */
  overflow: hidden !important;
}

#fbReviewTrack {
  display: flex !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.review-slide {
  flex: 0 0 100% !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 38px 28px 26px !important; /* Internal consistent padding */
}

@media (max-width: 600px) {
  .review-slide {
    padding: 28px 18px 20px !important;
  }
}
