/* TBM unified site shell | 2026-10-13 | authoritative final override.
   Applies to the identical site-header/site-footer markup on every full page.
   No changes to body content, page-specific service buttons, or creative gallery. */
.site-header.site-header.site-header {
  position: sticky !important; top:0 !important; z-index:100 !important;
  background:rgba(251,250,247,.97) !important;
  border-bottom:1px solid #d7dfe5 !important;
  backdrop-filter:blur(12px);
}
.site-header.site-header .header-inner {
  display:flex !important; align-items:center !important;
  justify-content:flex-start !important;
  width:100% !important; max-width:1510px !important;
  min-height:78px !important; padding:9px 20px !important;
  margin:0 auto !important; gap:10px !important;
  box-sizing:border-box !important;
}
.site-header.site-header a.brand {
  display:inline-flex !important; flex:0 0 auto !important;
  align-items:center !important; gap:10px !important;
  margin-right:auto !important; min-width:0 !important;
  text-decoration:none !important; color:#152a45 !important;
}
.site-header.site-header .brand img {
  display:block !important; width:48px !important; height:48px !important;
  object-fit:contain !important; border-radius:0 !important;
  background:transparent !important; flex:0 0 auto !important;
}
.site-header.site-header .brand span {display:block !important; white-space:nowrap !important;}
.site-header.site-header .brand strong {
  display:block !important; color:#152a45 !important;
  font:700 21px/1 'Cormorant Garamond',Georgia,serif !important;
}
.site-header.site-header .brand small {
  display:block !important; color:#526274 !important;
  font:500 10px/1.4 'Outfit',Arial,sans-serif !important;
  letter-spacing:.11em !important; margin-top:4px !important;
  text-transform:uppercase !important;
}
.site-header.site-header .desktop-nav {
  display:flex !important; flex:0 1 auto !important;
  align-items:center !important; justify-content:flex-end !important;
  gap:2px !important; margin:0 !important;
}
.site-header.site-header .desktop-nav .nav-link,
.site-header.site-header .desktop-nav .nav-trigger {
  display:inline-flex !important; align-items:center !important;
  min-height:44px !important; padding:9px 6px !important; gap:4px !important;
  font:500 12px/1.25 'Outfit',Arial,sans-serif !important;
  color:#152a45 !important; background:transparent !important;
  border:0 !important; border-radius:6px !important;
  text-decoration:none !important; white-space:nowrap !important;
}
.site-header.site-header .desktop-nav .nav-link:hover,
.site-header.site-header .desktop-nav .nav-trigger:hover,
.site-header.site-header .desktop-nav .nav-trigger[aria-expanded="true"] {
  background:#e9f0f4 !important;
}
.site-header.site-header .desktop-nav .dropdown {
  background:#fff !important; border:1px solid #d7dfe5 !important;
  border-radius:10px !important; box-shadow:0 15px 38px #152a4526 !important;
}
.site-header.site-header a.tbm-header-search {
  display:inline-flex !important; align-items:center !important;
  justify-content:center !important; width:44px !important;
  height:44px !important; min-width:44px !important;
  padding:0 !important; margin:0 !important; color:#152a45 !important;
  border:1px solid transparent !important; border-radius:12px !important;
  box-sizing:border-box !important; text-decoration:none !important;
}
.site-header.site-header a.tbm-header-search:hover {background:#edf2f5 !important; border-color:#cfdae1 !important;}
.site-header.site-header a.tbm-header-search svg {width:20px !important;height:20px !important;stroke:currentColor !important;fill:none !important;}
/* The Book Now and Gift Cards twins use identical dimensions on every page. */
.site-header.site-header a.nav-cta,
.site-header.site-header a.tbm-gift-nav,
.site-header.site-header button.menu-toggle {
  display:inline-flex !important; align-items:center !important;
  justify-content:center !important; flex:0 0 auto !important;
  min-height:44px !important; height:auto !important;
  padding:9px 12px !important; margin:0 !important;
  width:118px !important; min-width:118px !important; max-width:118px !important;
  box-sizing:border-box !important;
  border:2px solid #152a45 !important; border-radius:12px !important;
  font:600 12px/1.25 'Outfit',Arial,sans-serif !important;
  text-align:center !important; text-decoration:none !important;
  white-space:nowrap !important; letter-spacing:0 !important;
}
.site-header.site-header a.nav-cta {
  background:#e6bd68 !important; color:#152a45 !important;
}
.site-header.site-header a.nav-cta:hover {background:#f2d594 !important; color:#152a45 !important;}
.site-header.site-header a.tbm-gift-nav {
  background:#fffaf0 !important; color:#152a45 !important;
}
.site-header.site-header a.tbm-gift-nav:hover {background:#f8edd7 !important; color:#152a45 !important;}
.site-header.site-header button.menu-toggle {
  display:none !important; background:#fff !important; color:#152a45 !important;
  cursor:pointer !important;
}
.site-header.site-header button.menu-toggle:hover {background:#edf2f5 !important;}
.site-header.site-header .mobile-nav[hidden],
.site-header.site-header .mobile-sub[hidden] {display:none !important;}
.site-header.site-header .mobile-nav {display:none !important;}
.site-header.site-header a:focus-visible,
.site-header.site-header button:focus-visible,
.site-footer.site-footer a:focus-visible,
.site-footer.site-footer button:focus-visible {
  outline:3px solid #ebb85a !important;outline-offset:3px !important;
}
/* Uniform footer hierarchy and spacing, regardless of former inline overrides. */
.site-footer.site-footer.site-footer {
  background:#152a45 !important; color:#dae3eb !important;
  border-top:4px solid #c9a465 !important;
  padding:58px 0 25px !important;
  font-family:'Outfit',Arial,sans-serif !important;
}
.site-footer.site-footer > .wrap {max-width:1240px !important; margin:0 auto !important; padding:0 24px !important;box-sizing:border-box !important;}
.site-footer.site-footer .footer-layout {
  display:grid !important; grid-template-columns:1.35fr repeat(3,minmax(0,1fr)) !important;
  gap:38px !important; align-items:start !important;
}
.site-footer.site-footer .footer-brand {
  display:flex !important; gap:12px !important; align-items:center !important;
  color:#fff !important; text-decoration:none !important;
}
.site-footer.site-footer .footer-brand img {
  flex:0 0 auto !important; width:57px !important; height:57px !important;
  object-fit:contain !important; background:#fff !important; border-radius:3px !important;
  border:0 !important; box-shadow:none !important; mix-blend-mode:normal !important;
}
.site-footer.site-footer .footer-brand span {
  font:600 25px/1 'Cormorant Garamond',Georgia,serif !important; color:#fff !important;
}
.site-footer.site-footer .footer-brand small {
  display:block !important; margin-top:5px !important;
  font:500 11px/1.35 'Outfit',Arial,sans-serif !important;
  text-transform:uppercase !important; letter-spacing:.1em !important;
}
.site-footer.site-footer h2 {
  color:#fff !important; text-transform:uppercase !important;
  letter-spacing:.15em !important; font:600 11px/1.5 'Outfit',Arial,sans-serif !important;
  margin:4px 0 15px !important;
}
.site-footer.site-footer nav {display:grid !important;gap:8px !important;}
.site-footer.site-footer nav a,
.site-footer.site-footer .footer-address a {
  color:#e3ecf2 !important;text-decoration:none !important;
  font:400 13px/1.4 'Outfit',Arial,sans-serif !important;
}
.site-footer.site-footer nav a:hover,
.site-footer.site-footer .footer-address a:hover {text-decoration:underline !important;color:#fff !important;}
.site-footer.site-footer nav a[aria-current="page"] {color:#f4d7a5 !important;font-weight:700 !important;}
.site-footer.site-footer .footer-address,
.site-footer.site-footer .tbm-footer-hours {
  color:#e2e8ee !important; font:400 13px/1.7 'Outfit',Arial,sans-serif !important;
}
.site-footer.site-footer .footer-address{margin:17px 0 0 !important;}
.site-footer.site-footer .tbm-footer-hours {margin-top:12px !important;}
.site-footer.site-footer .tbm-footer-hours strong {display:block !important;}
.site-footer.site-footer .tbm-google-footer {display:inline-block !important;margin-top:8px !important;text-decoration:underline !important;text-underline-offset:3px !important;}
.site-footer.site-footer .tbm-newsletter {
  margin-top:34px !important; padding:25px 0 0 !important;
  border-top:1px solid #ffffff2c !important;
}
.site-footer.site-footer .tbm-newsletter h2 {margin:0 0 8px !important;}
.site-footer.site-footer .tbm-newsletter p {color:#dbe5ed !important;}
.site-footer.site-footer .tbm-newsletter form {display:flex !important;flex-wrap:wrap !important;gap:10px !important;align-items:center !important;}
.site-footer.site-footer .tbm-newsletter input[type=email] {
  min-height:44px !important; padding:10px 12px !important;
  border:1px solid #a8bccb !important; border-radius:8px !important;
}
.site-footer.site-footer .tbm-newsletter button[type=submit] {
  min-height:44px !important;border:2px solid #e6bd68 !important;
  border-radius:12px !important; background:#e6bd68 !important;
  color:#152a45 !important; font-weight:700 !important; padding:9px 17px !important;
}
.site-footer.site-footer .footer-bottom {
  display:flex !important; justify-content:space-between !important; gap:12px !important;
  margin-top:34px !important; padding-top:18px !important;
  border-top:1px solid #ffffff2b !important; color:#c8d6e2 !important;
  font:400 12px/1.6 'Outfit',Arial,sans-serif !important;
}
@media(max-width:1320px){
  .site-header.site-header .desktop-nav{display:none !important;}
  .site-header.site-header button.menu-toggle{display:inline-flex !important; width:60px !important; min-width:60px !important; max-width:60px !important;}
  .site-header.site-header a.nav-cta,
  .site-header.site-header a.tbm-gift-nav{width:105px !important; min-width:105px !important; max-width:105px !important;}
  .site-header.site-header .mobile-nav:not([hidden]){
    display:block !important; background:#fff !important;
  }
  .site-header.site-header .mobile-nav a,
  .site-header.site-header .mobile-nav button {
    min-height:44px !important; box-sizing:border-box !important;
    font:500 14px/1.3 'Outfit',Arial,sans-serif !important;
  }
  .site-header.site-header .mobile-nav .mobile-book {
    display:flex !important; align-items:center !important;
    justify-content:center !important; border:2px solid #152a45 !important;
    border-radius:12px !important; background:#e6bd68 !important;
    color:#152a45 !important; text-decoration:none !important;
    min-height:44px !important;
  }
}
@media(max-width:940px){
  .site-footer.site-footer .footer-layout {grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:30px !important;}
}
@media(max-width:710px){
  .site-header.site-header a.tbm-header-search{display:none !important;}
  .site-header.site-header .header-inner {min-height:68px !important;padding:7px 10px !important;gap:7px !important;}
  .site-header.site-header a.brand {margin-right:auto !important;}
  .site-header.site-header .brand img {width:93px !important;height:46px !important;}
  .site-header.site-header .brand span {display:none !important;}
  .site-header.site-header a.nav-cta,
  .site-header.site-header a.tbm-gift-nav,
  .site-header.site-header button.menu-toggle {min-height:44px !important;padding:8px 9px !important;font-size:12px !important;}
  .site-footer.site-footer >.wrap{padding:0 20px !important;}
  .site-footer.site-footer nav a {min-height:44px !important;display:flex !important;align-items:center !important;line-height:1.3 !important;}
}
@media(max-width:490px){
  .site-footer.site-footer .footer-layout {grid-template-columns:1fr !important;gap:28px !important;}
  .site-footer.site-footer .footer-bottom {flex-direction:column !important;}
  .site-header.site-header a.nav-cta,
  .site-header.site-header a.tbm-gift-nav,
  .site-header.site-header button.menu-toggle {padding:8px 8px !important;font-size:11px !important;}
  .site-header.site-header .header-inner {gap:5px !important;}
  .site-header.site-header a.nav-cta,
  .site-header.site-header a.tbm-gift-nav {width:88px !important; min-width:88px !important; max-width:88px !important;}
  .site-header.site-header button.menu-toggle {width:50px !important; min-width:50px !important; max-width:50px !important;}
}
@media(max-width:359px){
  .site-header.site-header .header-inner {padding:6px 6px !important;gap:4px !important;}
  .site-header.site-header .brand img {width:57px !important;height:40px !important;}
  .site-header.site-header a.nav-cta,
  .site-header.site-header a.tbm-gift-nav {width:80px !important; min-width:80px !important; max-width:80px !important;}
  .site-header.site-header button.menu-toggle {width:44px !important; min-width:44px !important; max-width:44px !important;}
  .site-header.site-header a.nav-cta,
  .site-header.site-header a.tbm-gift-nav,
  .site-header.site-header button.menu-toggle {font-size:10px !important;padding:8px 6px !important;}
}
@media(prefers-reduced-motion:reduce){
 .site-header.site-header *, .site-footer.site-footer *{scroll-behavior:auto !important;transition:none !important;}
}


/* October 13: readable approved logo and stable responsive header/footer.
   The original approved horizontal artwork is preserved.  Its emblem is
   displayed within a square viewport while the adjacent live text supplies
   the full practice name without shrinking it into illegibility. */
@media (min-width:711px) {
  .site-header.site-header .header-inner {
    min-height:94px !important;
  }
  .site-header.site-header .brand img {
    width:76px !important;
    height:76px !important;
    object-fit:cover !important;
    object-position:left center !important;
    border-radius:0 !important;
  }
  .site-footer.site-footer .footer-brand img {
    width:76px !important;
    height:76px !important;
    object-fit:cover !important;
    object-position:left center !important;
    background:transparent !important;
    border-radius:0 !important;
  }
}
@media (max-width:710px) {
  .site-header.site-header .header-inner {
    min-height:76px !important;
  }
  .site-header.site-header .brand img {
    width:60px !important;
    height:60px !important;
    object-fit:cover !important;
    object-position:left center !important;
    border-radius:0 !important;
  }
  .site-footer.site-footer .footer-brand img {
    width:64px !important;
    height:64px !important;
    object-fit:cover !important;
    object-position:left center !important;
    background:transparent !important;
    border-radius:0 !important;
  }
}
/* Avoid the decorative full-system section protruding past tablet screens. */
@media (min-width:711px) and (max-width:800px) {
  .services-page .services-system {
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
    max-width:100% !important;
  }
}
@media (max-width:359px) {
  .site-header.site-header .brand img {
    width:48px !important;
    height:48px !important;
  }
}
