
/* Preserved October 2026 approved styles: tbm-button-continuity.css */
/* TBM BUTTON & LINK STANDARD — 10 October 2026
   One component vocabulary across all site pages.
   Action buttons = warm-gold or outlined, 12px rounded corners.
   Exploration links = navy text with a thin underline and arrow.
   Sitewide navigation controls use the same radius and heights.
*/
:root { --tbm-action-radius: 12px; --tbm-action-gold: #C8A96E; --tbm-action-ink: #152A45; --tbm-action-blue: #1E3A5F; }

/* Header desktop, compact header, and mobile controls. Keep Gift Cards beside Book Now. */
.site-header .nav-cta,
.site-header .tbm-gift-nav,
.site-header .menu-toggle,
.mobile-nav .mobile-book {
  box-sizing: border-box;
  border-radius: var(--tbm-action-radius) !important;
  min-height: 44px !important;
  padding: 9px 14px !important;
  font-family: 'Outfit', Arial, sans-serif;
  font-size: 13px !important;
  line-height: 1.25;
  font-weight: 650;
  text-align: center;
  text-decoration: none !important;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.site-header .nav-cta,
.mobile-nav .mobile-book {
  background: var(--tbm-action-gold) !important;
  border: 1px solid var(--tbm-action-gold) !important;
  color: var(--tbm-action-ink) !important;
}
.site-header .nav-cta:hover,
.mobile-nav .mobile-book:hover {
  background: #dfc38c !important;
  border-color: #dfc38c !important;
  color: var(--tbm-action-ink) !important;
}
.site-header .tbm-gift-nav {
  background: #fffaf1 !important;
  border: 1px solid var(--tbm-action-gold) !important;
  color: var(--tbm-action-ink) !important;
  margin-left: 0 !important;
}
.site-header .tbm-gift-nav:hover { background: #f6eddc !important; }
.site-header .menu-toggle {
  background: #fff !important;
  border: 1px solid #b8c5d1 !important;
  color: var(--tbm-action-ink) !important;
  cursor: pointer;
}
.site-header .menu-toggle:hover { background: #eef2f5 !important; }
/* Book Now + Gift Cards stick together in the header, even when space tightens. */
.site-header .nav-cta { margin-left: 0 !important; }
.site-header .desktop-nav { margin-right: auto; }
@media (max-width: 1100px) {
  .site-header .nav-cta,
  .site-header .tbm-gift-nav,
  .site-header .menu-toggle { min-height: 42px !important; padding: 8px 10px !important; font-size: 12px !important; }
}
@media (max-width: 420px) {
  .site-header .nav-cta,
  .site-header .tbm-gift-nav,
  .site-header .menu-toggle { min-height: 42px !important; padding: 7px 8px !important; font-size: 11px !important; }
}
/* In the expanded mobile menu, Gift Cards is an ordinary navigation link, not a fourth CTA. */
.mobile-nav a:not(.mobile-book) { border-radius: 0; }
.mobile-nav .mobile-book { display:flex !important; width:100%; }

/* Primary action controls: booking, gift purchase, signup and contact forms. */
a.button-primary:not(.tbm-arrow-link),
a.services-primary-link:not(.tbm-arrow-link),
a.btn.btn-gold:not(.tbm-arrow-link),
a.button.primary:not(.tbm-arrow-link),
a.tbm-action:not(.tbm-arrow-link),
.side-rail a.rail-book,
.tbm-async-form button[type='submit'] {
  border-radius: var(--tbm-action-radius) !important;
  background: var(--tbm-action-gold) !important;
  border: 1px solid var(--tbm-action-gold) !important;
  color: var(--tbm-action-ink) !important;
  font-family: 'Outfit', Arial, sans-serif;
  font-weight: 650;
  text-decoration: none !important;
  box-shadow: none !important;
  min-height: 44px;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
a.button-primary:not(.tbm-arrow-link):hover,
a.services-primary-link:not(.tbm-arrow-link):hover,
a.btn.btn-gold:not(.tbm-arrow-link):hover,
a.button.primary:not(.tbm-arrow-link):hover,
a.tbm-action:not(.tbm-arrow-link):hover,
.side-rail a.rail-book:hover,
.tbm-async-form button[type='submit']:hover {
  background: #dfc38c !important;
  border-color: #dfc38c !important;
  color: var(--tbm-action-ink) !important;
}
.side-rail a.rail-book { text-align: center; border-left: 1px solid var(--tbm-action-gold) !important; }
.tbm-async-form button[type='submit'] { padding:10px 17px; cursor:pointer; }
.tbm-async-form button[type='submit']:disabled { opacity:.7; cursor:wait; }

/* Secondary destination links: lines + arrows instead of assorted outlined boxes. */
a.tbm-arrow-link {
  display: inline-flex !important;
  align-items:center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 5px;
  width: auto;
  min-height: 34px !important;
  margin-left: 0;
  padding: 4px 0 5px !important;
  border: 0 !important;
  border-bottom: 1px solid currentColor !important;
  border-radius: 0 !important;
  color: #174365 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-align: left;
  font-family: 'Outfit', Arial, sans-serif;
  font-weight: 600;
  letter-spacing: 0;
  transition: color .2s ease, border-color .2s ease;
}
a.tbm-arrow-link::after {
  content: '→';
  font-weight: 600;
  font-size: 1.06em;
  line-height: 1;
  display: inline-block;
  margin-left: .1em;
  transition: transform .2s ease;
}
a.tbm-arrow-link:hover { color: #0a6395 !important; border-bottom-color: #0a6395 !important; background: transparent !important; transform:none !important; }
a.tbm-arrow-link:hover::after { transform: translateX(3px); }
/* Contextual contrast where links sit on a navy card or dark call-to-action section. */
.start-band a.tbm-arrow-link,
.contact-band a.tbm-arrow-link,
[style*='background:#1e3a5f'] a.tbm-arrow-link,
[style*='background:#152a45'] a.tbm-arrow-link {
  color: #fff !important;
  border-bottom-color: rgba(255,255,255,.7) !important;
}

/* Existing text links adopt the same quiet underline convention. */
a.text-link, a.services-text-link, a.services-inline-link,
a.card-link, a.affiliate-link, a.stories-link,
a.confirmation-text-link, a.services-offer-booking {
  text-decoration: none;
  text-underline-offset: 4px;
  border-radius: 0;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  background: transparent;
}
/* Footer stays a navigation list, not an assortment of boxed CTAs. */
.site-footer nav a:not(.tbm-action), .site-footer .footer-address a {
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.45);
  text-underline-offset: 4px;
}
.site-footer nav a:not(.tbm-action):hover, .site-footer .footer-address a:hover {
  text-decoration-color: currentColor;
}
/* Consistent visible keyboard focus for all action types. */
.site-header .nav-cta:focus-visible,
.site-header .tbm-gift-nav:focus-visible,
.site-header .menu-toggle:focus-visible,
.mobile-nav .mobile-book:focus-visible,
a.tbm-arrow-link:focus-visible,
a.button-primary:focus-visible,
a.btn:focus-visible,
.tbm-async-form button:focus-visible {
  outline: 3px solid #1777b2 !important;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  a.tbm-arrow-link::after,
  a.tbm-arrow-link,
  .site-header .nav-cta,
  .site-header .tbm-gift-nav,
  .site-header .menu-toggle,
  .tbm-async-form button[type='submit'] { transition:none !important; }
}


/* OCT 10 FINAL CONSISTENCY PASS: one action pair, quiet exploration links. */
/* Identical geometry for both persistent header calls to action. */
.site-header .nav-cta,
.site-header .tbm-gift-nav {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 46px !important;
  min-height: 46px !important;
  flex: 0 0 118px !important;
  width: 118px !important;
  padding: 8px 10px !important;
  border-radius: 12px !important;
  font: 650 13px/1.2 'Outfit', Arial, sans-serif !important;
  white-space: nowrap !important;
  margin: 0 !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
}
/* A matching mobile Menu button, without giving it the same priority as booking. */
.site-header .menu-toggle {
  box-sizing: border-box !important;
  height:46px !important;
  min-height:46px !important;
  padding:8px 12px !important;
  border-radius:12px !important;
  font:650 13px/1.2 'Outfit', Arial, sans-serif !important;
}
@media (max-width: 1080px) {
  .site-header .nav-cta,.site-header .tbm-gift-nav {
    height:42px !important;min-height:42px !important;
    flex-basis:105px !important;width:105px !important;
    padding:7px 7px !important;font-size:12px !important;
  }
  .site-header .menu-toggle {height:42px !important;min-height:42px !important;font-size:12px !important;}
}
@media (max-width: 390px) {
  .site-header .nav-cta,.site-header .tbm-gift-nav {
    flex-basis:88px !important;width:88px !important;
    padding:6px 5px !important;font-size:11px !important;
  }
  .site-header .menu-toggle {padding:6px 8px !important;font-size:11px !important;}
}
/* The homepage concern lists were non-interactive boxed spans.
   They are now actual links to the relevant condition guides. */
.concern-list {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  column-gap: 18px !important;
  row-gap: 7px !important;
  margin: 17px 0 21px !important;
}
.concern-list a.tbm-concern-link {
  display: inline-flex !important;
  align-items: center !important;
  padding: 4px 0 5px !important;
  width: auto !important;
  min-height: 32px !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid #68859b !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color:#174365 !important;
  font:600 13px/1.4 'Outfit',Arial,sans-serif !important;
  text-decoration: none !important;
  transition:color .2s ease,border-color .2s ease;
}
.concern-list a.tbm-concern-link::after { content:'→';margin-left:5px;font-size:1em; }
.concern-list a.tbm-concern-link:hover,
.concern-list a.tbm-concern-link:focus-visible {color:#0a6395 !important;border-bottom-color:currentColor !important;}
/* Pain-page and condition-page jump navigation should be text, not pills. */
.quick-nav-links {
  display:flex !important; flex-wrap:wrap !important;
  gap:8px 18px !important; align-items:flex-start !important;
}
.quick-nav-links a {
  display:inline-flex !important; align-items:center !important;
  padding:4px 0 5px !important;
  width:auto !important;min-height:30px !important;
  background:transparent !important;border:0 !important;
  border-bottom:1px solid currentColor !important;
  border-radius:0 !important;box-shadow:none !important;
  color:#174365 !important;text-decoration:none !important;
  font:600 13px/1.45 'Outfit',Arial,sans-serif !important;
}
.quick-nav-links a::after {content:'→';margin-left:5px;}
.quick-nav-links a:hover,.quick-nav-links a:focus-visible {background:transparent !important;color:#0a6395 !important;}
/* Booking directory entries read as link lines, never individual boxed cards. */
a.tbm-book-item {border:0 !important;border-bottom:1px solid #d9dfe3 !important;
  border-radius:0 !important;padding:11px 1px !important;background:transparent !important;
  box-shadow:none !important;}
a.tbm-book-item:hover,a.tbm-book-item:focus-visible {background:transparent !important;
  color:#0a6395 !important;border-bottom-color:#0a6395 !important;}
/* Exploration buttons from older page versions: reinforce text-first presentation. */
a.tbm-arrow-link {line-height:1.45 !important;}
@media (prefers-reduced-motion:reduce){.concern-list a.tbm-concern-link{transition:none !important;}}
/* Align the persistent actions as a tight pair, especially in compact headers.
   Older page-local CSS uses justify-content:space-between at 1320px. */
.site-header .header-inner {justify-content:flex-start !important;}
.site-header .brand {margin-right:auto !important;}
.site-header .desktop-nav {margin-right:0 !important;}
.site-header .tbm-gift-nav,
.site-header .nav-cta,
.site-header .menu-toggle {margin-left:0 !important; margin-right:0 !important;}


/* Preserved October 2026 approved styles: tbm-search-and-reviews.css */
/* Header search: visible on desktop; included in mobile menu when actions need space. */
.site-header a.tbm-header-search {display:inline-flex;flex:0 0 42px;align-items:center;justify-content:center;width:42px;height:44px;min-width:42px;border:1px solid transparent;border-radius:12px;color:#152a45;text-decoration:none;margin:0;box-sizing:border-box}
.site-header a.tbm-header-search:hover,.site-header a.tbm-header-search[aria-current="page"] {background:#eef2f5;border-color:#d9dfe3}
.site-header a.tbm-header-search:focus-visible {outline:3px solid #1777b2;outline-offset:3px}
.site-header .tbm-header-search svg {display:block;width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:710px){.site-header a.tbm-header-search{display:none}}
.tbm-search-mobile-link {display:block}
/* Google listing link: deliberately a small text link rather than another button. */
.site-footer .tbm-google-footer{display:inline-block;font-size:13px;margin-top:10px;color:inherit;text-decoration:underline;text-underline-offset:4px}
/* Review platform actions are text links with arrows, never more boxed CTAs. */
.stories-page .tbm-platform-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 34px;margin-top:24px}
.stories-page .tbm-platform-entry{background:transparent;border:0;border-top:1px solid #d9dfe3;padding:23px 0 24px;box-shadow:none;min-height:0;border-radius:0}
.stories-page .tbm-platform-name{font-size:11px;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:#8c6d33}
.stories-page .tbm-platform-entry h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:29px;line-height:1.08;margin:4px 0 11px;color:#152a45}
.stories-page .tbm-platform-entry p{font-size:14px;line-height:1.6;margin:0 0 13px;color:#526274}
.stories-page .tbm-platform-actions{display:flex;flex-wrap:wrap;gap:8px 23px;align-items:center}
.stories-page a.tbm-review-link,.tbm-google-context-link{display:inline-flex;align-items:center;gap:3px;color:#174365;background:transparent;border:0;border-bottom:1px solid currentColor;border-radius:0;padding:3px 0 4px;font-size:14px;font-weight:600;text-decoration:none}
.stories-page a.tbm-review-link:hover,.tbm-google-context-link:hover{color:#0a6395}
.stories-page a.tbm-review-link:focus-visible,.tbm-google-context-link:focus-visible{outline:3px solid #c8a96e;outline-offset:4px}
.stories-page .tbm-review-note{font-size:12px;line-height:1.5;color:#526274;margin-top:8px}
.stories-page .tbm-review-invitation{max-width:790px;border-left:3px solid #c8a96e;padding:2px 0 2px 18px;margin:20px 0 8px}
.stories-page .tbm-review-invitation h3{margin:0 0 7px;font-family:'Cormorant Garamond',Georgia,serif;font-size:31px;line-height:1.1;color:#152a45}
.stories-page .tbm-review-invitation p{margin:0;line-height:1.6;color:#526274}
@media(max-width:720px){.stories-page .tbm-platform-grid{grid-template-columns:1fr}.stories-page .tbm-platform-entry{padding:18px 0}.stories-page .tbm-platform-entry h3{font-size:27px}}

/* Very narrow screens: retain both matching CTAs and the Menu without sideways scrolling. */
@media(max-width:359px){.site-header .brand{flex:0 0 44px!important;width:44px!important;min-width:44px!important}.site-header .brand span{display:none!important}.site-header .brand img{width:42px!important;height:42px!important}.site-header .header-inner{padding-left:10px!important;padding-right:10px!important;gap:5px!important}}


/* Preserved October 2026 approved styles: tbm-accessibility-2026.css */
/* TBM October 2026 accessibility polish. Controls and action button styling are preserved. */
:root{--tbm-legible-text:#213c54;--tbm-focus:#bf8e29}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,video:focus-visible{outline:3px solid var(--tbm-focus)!important;outline-offset:3px!important}
.tbm-faq-jump{margin:0 0 24px}.tbm-faq-jump a{font-weight:700;color:#174365;text-underline-offset:4px}
.tbm-faq-jump a:hover,.tbm-faq-jump a:focus-visible{text-decoration-thickness:2px}
/* Accessible darker labels on mist and cream section backgrounds; gold decorative rules remain */
.hero .eyebrow, .block .eyebrow, .profile-hero .eyebrow{color:#526274}
.block .card-kicker,.service-card .card-kicker{color:#695327}
/* Readability on pale backgrounds without changing brand gold accents */
.tbm-creative-page .tbm-muted, .tbm-creative-page .creative-card p {color:#43566b}
@media(max-width:700px){
  .mobile-nav a,.mobile-nav button{min-height:44px!important;display:flex!important;align-items:center!important;line-height:1.3!important}
  .site-footer nav a{min-height:44px;display:flex;align-items:center;line-height:1.35}
  .tbm-faq-jump a{display:inline-flex;align-items:center;min-height:44px}
  .tbm-creative-page .creative-section-links a{min-height:44px;display:inline-flex;align-items:center}
}
@media(prefers-reduced-motion:reduce){.tbm-creative-page *, .tbm-creative-page *::before,.tbm-creative-page *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* October 13 performance/accessibility pass: deliberate contrast only; no changes to approved content. */
:root { --tbm-strong-navy:#152a45; --tbm-strong-gold:#e6bd68; }
/* Framed actions maintain the approved rounded shape and horizontal CTA spacing. */
.site-header .nav-cta,
.site-header .tbm-gift-nav,
.site-header .menu-toggle,
.mobile-nav .mobile-book,
a.button-primary:not(.tbm-arrow-link),
a.services-primary-link:not(.tbm-arrow-link),
a.btn.btn-gold:not(.tbm-arrow-link),
a.button.primary:not(.tbm-arrow-link),
a.tbm-action:not(.tbm-arrow-link),
.side-rail a.rail-book,
.tbm-async-form button[type='submit'] {
  border: 2px solid var(--tbm-strong-navy) !important;
  border-radius:12px !important;
  box-sizing:border-box !important;
}
/* On dark backgrounds, outlines stay warm gold, as requested. */
.start-band a.button-primary:not(.tbm-arrow-link),
.contact-band a.button-primary:not(.tbm-arrow-link),
.start-band a.tbm-action:not(.tbm-arrow-link),
.contact-band a.tbm-action:not(.tbm-arrow-link),
.site-footer a.tbm-action:not(.tbm-arrow-link),
[style*='background:#1e3a5f'] a.button-primary:not(.tbm-arrow-link),
[style*='background:#152a45'] a.button-primary:not(.tbm-arrow-link) {border-color:var(--tbm-strong-gold)!important;}
.site-header .nav-cta:hover,.site-header .tbm-gift-nav:hover,
.site-header .menu-toggle:hover,a.button-primary:not(.tbm-arrow-link):hover,
a.services-primary-link:not(.tbm-arrow-link):hover,
a.tbm-action:not(.tbm-arrow-link):hover,
.side-rail a.rail-book:hover{border-color:var(--tbm-strong-navy)!important;}
/* Text/outline contrast over light backgrounds. Keep brand gold for large decorative accents. */
.hero .eyebrow,.block .eyebrow,.profile-hero .eyebrow{color:#43566b!important;}
.block .card-kicker,.service-card .card-kicker{color:#695327!important;}
a.tbm-arrow-link{color:#174365!important;}
/* Comfortable, reachable tap areas without turning exploratory links into buttons. */
@media(max-width:700px){
 .site-header .menu-toggle,.site-header .nav-cta,.site-header .tbm-gift-nav {min-height:44px!important;}
 a.tbm-arrow-link{min-height:44px!important;display:inline-flex!important;align-items:center;}
 .site-footer nav a, .mobile-nav a{min-height:44px!important;}
 .quick-nav a,.page-links a,.service-card a.card-link {min-height:44px;display:inline-flex;align-items:center;}
}
/* Preserve keyboard visibility across paper, cream, mist and dark sections. */
.site-header a:focus-visible,.site-header button:focus-visible,
.site-footer a:focus-visible,a.tbm-arrow-link:focus-visible,
button:focus-visible,a.button-primary:focus-visible{outline:3px solid #edb751!important;outline-offset:3px!important;}
/* Targeted contrast repairs on actual dark/light sections. */
.mission .eyebrow,.foundation .mission .eyebrow{color:#f3d39b!important;}
.about-cta a.tbm-arrow-link{color:#ffffff!important;border-bottom-color:#f3d39b!important;}
.tbm-video-section .eyebrow,p.eyebrow{color:#43566b!important;}
.mission p.eyebrow,.about-cta p.eyebrow,.start-band p.eyebrow{color:#f3d39b!important;}
.tbm-browse-arrow{color:#70501b!important;}
/* Keep header image boxes stable while external fonts load. */
.site-header .brand img{aspect-ratio:560/279;object-fit:contain;}
.site-footer .footer-brand img{aspect-ratio:560/279;object-fit:contain;}
/* Hero image is responsive; the picture wrapper reserves predictable space. */
.hero-mark picture{display:block;width:min(100%,430px);max-width:100%;aspect-ratio:1/1;}
.hero-mark picture img{display:block;width:100%;height:auto;aspect-ratio:1/1;}
@media(prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto!important}}
