
/* ===== TBD-FONTS-BEGIN (fonts-kit 2026-10-09): self-hosted, latin subset, OFL-1.1 (see fonts-kit/licenses). Replaces the Google Fonts import line. ===== */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter-latin-wght-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter-latin-wght-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter-latin-wght-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/montserrat-latin-wght-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/montserrat-latin-wght-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/montserrat-latin-wght-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ===== TBD-FONTS-END ===== */

:root {
  --tbd-teal: #8EB8B6;
  --tbd-deep: #3E6E6B;
  --tbd-charcoal: #2F3437;
  --tbd-white: #FFFFFF;
  --tbd-offwhite: #F6F3EE;
  --tbd-mist: #EAF2F1;
  --tbd-coral: #D4876F;
  --tbd-radius: 18px;
  --tbd-shadow: 0 8px 28px rgba(47, 52, 55, 0.08);
  --tbd-font-display: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --tbd-font-body: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --tbd-font-quote: "Cormorant Garamond", Georgia, serif;
}

body, .entry-content, .ct-header, .ct-footer {
  font-family: var(--tbd-font-body);
  color: var(--tbd-charcoal);
  line-height: 1.65;
}

h1, h2, h3, h4, h5, .hero-headline, .section-title {
  font-family: var(--tbd-font-display);
  color: var(--tbd-charcoal);
  font-weight: 700;
  letter-spacing: -0.01em;
}

a { color: var(--tbd-deep); }
a:hover { color: var(--tbd-coral); }

/* Soft CTA buttons */
.tbd-btn,
a.tbd-btn,
.wp-block-button__link.tbd-btn {
  display: inline-block;
  background: var(--tbd-deep) !important;
  color: #fff !important;
  padding: 0.85rem 1.6rem;
  border-radius: 999px;
  text-decoration: none !important;
  font-weight: 500;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  border: none;
  box-shadow: none;
  transition: background 0.2s ease, transform 0.15s ease;
}
.tbd-btn:hover,
a.tbd-btn:hover {
  background: #345c59 !important;
  color: #fff !important;
  transform: translateY(-1px);
}

/* Nav Contact Us as soft pill (NOT a circle — no fixed square / border-radius:50%) */
.ct-header .tbd-nav-cta > a,
.ct-header .menu-item.tbd-nav-cta > a,
header .menu .menu-item.tbd-nav-cta > a,
.menu-item.tbd-nav-cta > a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--tbd-deep) !important;
  color: #fff !important;
  border-radius: 999px !important; /* pill ends; width follows text */
  padding: 0.5rem 1.25rem !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  aspect-ratio: auto !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}
.ct-header .tbd-nav-cta > a:hover,
.menu-item.tbd-nav-cta > a:hover {
  background: #345c59 !important;
  color: #fff !important;
}

/* Sections */
.tbd-section {
  padding: 4.5rem 1.5rem;
}
.tbd-section--mist { background: var(--tbd-mist); }
.tbd-section--off { background: var(--tbd-offwhite); }
.tbd-wrap {
  max-width: 1120px;
  margin: 0 auto;
}
.tbd-section .section-title {
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  margin: 0 0 0.75rem;
  text-align: center;
}
.tbd-section .section-intro {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 2.5rem;
  color: #4a5154;
  font-size: 1.05rem;
}

/* Hero */
.tbd-hero {
  position: relative;
  min-height: 68vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
  color: #fff;
  text-align: center;
  border-radius: 0 0 var(--tbd-radius) var(--tbd-radius);
  overflow: hidden;
}
.tbd-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(47,52,55,0.35) 0%, rgba(47,52,55,0.55) 100%);
}

/* Groups hero â richer top-to-bottom dark scrim for white type (not muddy black) */
.tbd-hero--groups::before,
.page-id-23 .tbd-hero::before {
  background: linear-gradient(
    180deg,
    rgba(47, 52, 55, 0.55) 0%,
    rgba(47, 52, 55, 0.62) 45%,
    rgba(47, 52, 55, 0.72) 100%
  );
}
.tbd-hero--groups .hero-headline,
.page-id-23 .tbd-hero .hero-headline {
  text-shadow: 0 1px 2px rgba(47, 52, 55, 0.35);
}
.tbd-hero--groups .hero-sub,
.page-id-23 .tbd-hero .hero-sub {
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 1px 2px rgba(47, 52, 55, 0.3);
}
.tbd-hero-inner {
  position: relative;
  z-index: 2;
  padding: 4rem 1.5rem;
  max-width: 820px;
}
.tbd-hero .hero-headline {
  color: #fff;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  line-height: 1.15;
  margin: 0 0 1rem;
}
.tbd-hero .hero-sub {
  color: rgba(255,255,255,0.92);
  font-size: 1.15rem;
  margin: 0 0 1.75rem;
}

/* Cards grid */
.tbd-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
}
.tbd-card {
  background: var(--tbd-white);
  border-radius: var(--tbd-radius);
  box-shadow: var(--tbd-shadow);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-decoration: none !important;
  color: inherit !important;
  display: block;
}
.tbd-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(47,52,55,0.12);
}
.tbd-card-media {
  display: block;
  margin: 0;
  padding: 0;
  line-height: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}
.tbd-card img,
.tbd-card-media img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
  border-radius: 0; /* corners come from parent .tbd-card overflow */
  box-shadow: none;
  margin: 0;
}
.tbd-card-body {
  display: block;
  padding: 1.15rem 1.25rem 1.4rem;
  background: var(--tbd-white);
}
.tbd-card-body h3,
.tbd-card-body h2 {
  margin: 0 0 0.35rem;
  font-size: 1.35rem;
}
.tbd-card-body p {
  margin: 0;
  font-size: 0.92rem;
  color: #5a6164;
}
.tbd-card-body p + p { margin-top: 1rem; }

/* Team placeholders */
.tbd-avatar {
  width: 100%;
  aspect-ratio: 1;
  background: var(--tbd-mist);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--tbd-font-display);
  font-size: 2.4rem;
  color: var(--tbd-deep);
  font-weight: 700;
  border-radius: var(--tbd-radius) var(--tbd-radius) 0 0;
}
/* Team photo avatars (square crop; rounded top corners inherit from .tbd-avatar) */
.tbd-avatar--photo {
  padding: 0;
  overflow: hidden;
  background: var(--tbd-mist);
}
.tbd-avatar--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  border-radius: inherit;
}

.tbd-team-card .tbd-card-body { text-align: center; }
.tbd-team-card .role {
  color: var(--tbd-deep);
  font-size: 0.9rem;
  font-weight: 500;
}

/* Icon boxes */
.tbd-iconbox {
  background: var(--tbd-white);
  border-radius: var(--tbd-radius);
  box-shadow: var(--tbd-shadow);
  padding: 1.75rem 1.4rem;
  text-align: center;
}
.tbd-iconbox .dot {
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--tbd-coral);
  margin: 0 auto 1rem;
  display: block;
}
.tbd-iconbox h3 { margin: 0 0 0.5rem; font-size: 1.25rem; }
.tbd-iconbox p { margin: 0; font-size: 0.95rem; color: #5a6164; }

/* Groups teaser band */
.tbd-band {
  background: var(--tbd-deep);
  color: #fff;
  border-radius: var(--tbd-radius);
  padding: 2.5rem 2rem;
  text-align: center;
}
.tbd-band h2 { color: #fff; margin: 0 0 0.75rem; }
.tbd-band p { margin: 0 0 1.25rem; opacity: 0.92; }
.tbd-band .tbd-btn {
  background: #fff !important;
  color: var(--tbd-deep) !important;
}
.tbd-band .chips {
  display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center;
  margin-bottom: 1.25rem;
}
.tbd-band .chip {
  border: 1px solid rgba(255,255,255,0.45);
  border-radius: 999px;
  padding: 0.35rem 0.9rem;
  font-size: 0.85rem;
}

/* How it starts */
.tbd-cta-block {
  text-align: center;
  padding: 3rem 1.5rem;
  background: var(--tbd-offwhite);
  border-radius: var(--tbd-radius);
}
.tbd-cta-block h2 { margin-bottom: 0.75rem; }
.tbd-cta-block p { max-width: 560px; margin: 0 auto 1.5rem; }

/* Destination page â unified single cards (image + copy in ONE white box) */
.tbd-dest-list {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}
.tbd-dest-card.tbd-card {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0;
  align-items: stretch;
  margin: 0;
  text-decoration: none;
}
.tbd-dest-card .tbd-card-media {
  min-height: 100%;
}
.tbd-dest-card .tbd-card-media img,
.tbd-dest-card img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
  display: block;
  border-radius: 0;
  box-shadow: none;
}
.tbd-dest-card .tbd-card-body {
  padding: 1.75rem 1.6rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.tbd-dest-card .tbd-card-body h2 {
  margin: 0 0 0.65rem;
  font-size: 1.75rem;
}
.tbd-dest-card .tbd-card-body > p {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  color: #5a6164;
  line-height: 1.55;
}
.tbd-dest-card .tbd-card-body > p:last-child { margin-bottom: 0; }
/* legacy class kept harmless if any residual markup */
.tbd-dest-block {
  display: block;
  margin: 0 0 1.75rem;
  padding: 0;
  border: 0;
  background: var(--tbd-white);
  border-radius: var(--tbd-radius);
  box-shadow: var(--tbd-shadow);
  overflow: hidden;
}
.tbd-dest-block img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  border-radius: 0;
  box-shadow: none;
  display: block;
}
@media (max-width: 760px) {
  .tbd-dest-card.tbd-card {
    grid-template-columns: 1fr;
  }
  .tbd-dest-card .tbd-card-media img,
  .tbd-dest-card img {
    min-height: 200px;
    height: 200px;
  }
}

/* Footer polish */
.ct-footer, footer.tbd-footer-note {
  font-size: 0.9rem;
}
.tbd-footer-tag {
  color: #5a6164;
  margin: 0.35rem 0 0.75rem;
}


/* Homepage traveler reviews - light/clean static cards */
.tbd-reviews .section-title { margin-bottom: 0.5rem; }
.tbd-reviews-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.35rem;
  margin-top: 2rem;
}
.tbd-review-card {
  margin: 0;
  background: var(--tbd-white);
  border-radius: var(--tbd-radius);
  box-shadow: var(--tbd-shadow);
  padding: 1.6rem 1.45rem 1.35rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  border: 1px solid rgba(142, 184, 182, 0.28);
}
.tbd-review-card blockquote {
  margin: 0;
  padding: 0;
  border: none;
  font-family: var(--tbd-font-quote);
  font-size: 1.08rem;
  line-height: 1.65;
  color: #3a4043;
  font-weight: 500;
  font-style: italic;
  quotes: none;
}
.tbd-review-card blockquote::before,
.tbd-review-card blockquote::after {
  content: none;
}
.tbd-review-card figcaption {
  margin: 0;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(142, 184, 182, 0.35);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--tbd-deep);
}

/* Hide reviews if any empty shell sneaks in */
.tbd-reviews-hidden { display: none !important; }

/* WPForms soft style */
div.wpforms-container-full .wpforms-form input[type=text],
div.wpforms-container-full .wpforms-form input[type=email],
div.wpforms-container-full .wpforms-form input[type=tel],
div.wpforms-container-full .wpforms-form textarea,
div.wpforms-container-full .wpforms-form select {
  border-radius: 12px !important;
  border-color: #d5e0df !important;
}
div.wpforms-container-full .wpforms-form button[type=submit] {
  background: var(--tbd-deep) !important;
  border-radius: 999px !important;
  border: none !important;
  padding: 0.85rem 1.6rem !important;
}

/* Quiet coral accent rule under section titles */
.tbd-section .section-title::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  background: var(--tbd-coral);
  margin: 0.75rem auto 0;
  border-radius: 2px;
}


/* ===== P0 chrome kills 2026-10-06 asset swap ===== */

/* 1. Kill CreativeThemes / Blocksy theme credit â keep Â© TBD Vacations only */
.ct-footer-copyright a[href*="creativethemes"],
.ct-footer-copyright a[href*="CreativeThemes"],
.ct-footer-copyright .ct-theme-link,
.ct-footer [class*="theme-link"],
footer a[href*="creativethemes.com"],
.ct-footer-copyright > span:has(a[href*="creativethemes"]) {
  display: none !important;
}
/* Fallback: hide entire stock copyright row if it still contains CreativeThemes text;
   our .tbd-footer-brand carries the real Â© TBD Vacations line */
.ct-footer-copyright:has(a[href*="creativethemes"]) {
  display: none !important;
}

/* 2. Kill duplicate theme page titles / visible "Home" above hero */
.hero-section[data-type="type-1"],
.hero-section[data-type="type-2"],
.ct-page-title,
.entry-header .page-title,
.entry-header .entry-title,
.wp-block-post-title,
header.entry-header,
.ct-container > .hero-section {
  display: none !important;
}
/* Front page: never show theme "Home" title */
.home .hero-section,
.page-id-21 .hero-section {
  display: none !important;
}

/* 3. Remove header search icon + modal */
[data-id="search"],
.ct-header-search,
.ct-header [data-id="search"],
.ct-search-button,
button[data-toggle-panel*="search"],
.ct-header-search-modal,
#search-modal,
.ct-panel[data-panel="search"],
.ct-header .ct-search-toggle {
  display: none !important;
}

/* 4. Override Blocksy blue #2872fa â deep teal / charcoal */
:root {
  --theme-palette-color-1: #3E6E6B;
  --theme-palette-color-2: #2F3437;
  --theme-button-background-initial-color: #3E6E6B;
  --theme-button-background-hover-color: #345c59;
  --theme-link-initial-color: #3E6E6B;
  --theme-link-hover-color: #D4876F;
  --theme-form-field-border-focus-color: #3E6E6B;
}
a { color: #3E6E6B; }
a:hover { color: #D4876F; }
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus,
.wp-block-button__link:focus {
  outline-color: #3E6E6B !important;
  box-shadow: 0 0 0 2px rgba(62, 110, 107, 0.35) !important;
}
/* Kill leftover #2872fa utilities */
[style*="#2872fa"],
[style*="#2872FA"],
[style*="40, 114, 250"] {
  /* cannot strip attr; override common elements instead */
}
.ct-button,
button,
.button,
input[type="submit"],
.wp-block-button__link {
  --theme-button-background-initial-color: #3E6E6B;
}
/* Form accents */
input[type="checkbox"]:checked,
input[type="radio"]:checked {
  accent-color: #3E6E6B;
}

/* Stronger: hide Blocksy copyright column entirely (TBD brand strip has Â©) */
.ct-footer [data-column="copyright"],
.ct-footer-copyright {
  display: none !important;
}


/* ===== Groups page rebuild 2026-10-06 ===== */
.tbd-hero-note {
  margin: 1rem 0 0;
  color: rgba(255,255,255,0.88);
  font-size: 0.92rem;
}
.tbd-prose {
  max-width: 720px;
  margin: 0 auto;
  font-size: 1.05rem;
  color: #4a5154;
}
.tbd-prose p { margin: 0 0 1rem; }
.tbd-center { text-align: center; margin-top: 1.5rem; }

.tbd-options-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.15rem;
}
.tbd-option-tile {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  background: var(--tbd-white);
  border-radius: var(--tbd-radius);
  box-shadow: var(--tbd-shadow);
  padding: 1.25rem 1.15rem;
  text-decoration: none !important;
  color: inherit !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  overflow: hidden;
}
.tbd-option-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(47,52,55,0.12);
}
.tbd-option-tile--photo { padding: 0 0 1.15rem; }
.tbd-option-media {
  line-height: 0;
  margin: 0 0 0.85rem;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: var(--tbd-radius) var(--tbd-radius) 0 0;
  background: #e8eef0;
}
.tbd-option-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.tbd-option-tile--photo .tbd-option-title,
.tbd-option-tile--photo .tbd-option-line { padding: 0 1.15rem; }
.tbd-option-title {
  font-family: var(--tbd-font-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--tbd-charcoal);
  line-height: 1.25;
}
.tbd-option-line {
  font-size: 0.9rem;
  color: #5a6164;
  line-height: 1.45;
}

.tbd-pillar-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.tbd-pillar-card .tbd-card-media img {
  height: 200px;
}
.tbd-pillar-card .tbd-card-body h3 {
  font-size: 1.35rem;
  margin: 0 0 0.65rem;
}
.tbd-bullets {
  margin: 0 0 1rem;
  padding-left: 1.15rem;
  color: #5a6164;
  font-size: 0.92rem;
}
.tbd-bullets li { margin: 0 0 0.4rem; }
.tbd-text-link {
  font-weight: 500;
  text-decoration: none;
  color: var(--tbd-deep) !important;
}
.tbd-text-link:hover { color: var(--tbd-coral) !important; }

.tbd-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 2rem;
  align-items: start;
}
.tbd-detail-grid--flip .tbd-detail-media { order: 2; }
.tbd-detail-grid--flip .tbd-detail-body { order: 1; }
.tbd-detail-media img {
  width: 100%;
  height: auto;
  max-height: 360px;
  object-fit: cover;
  border-radius: var(--tbd-radius);
  box-shadow: var(--tbd-shadow);
  display: block;
}
.tbd-detail-media img + img { margin-top: 0.85rem; }
.tbd-detail-secondary { max-height: 180px !important; }
.tbd-detail-body h2 {
  font-size: clamp(1.6rem, 2.5vw, 2.1rem);
  margin: 0 0 0.85rem;
}
.tbd-detail-body h3 {
  font-size: 1.15rem;
  margin: 1.25rem 0 0.5rem;
  color: var(--tbd-deep);
}
.tbd-detail-body > p { margin: 0 0 0.85rem; color: #4a5154; }
.tbd-bestfor { font-size: 0.95rem; }
.tbd-helper {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
  color: #5a6164;
}

.tbd-steps {
  max-width: 720px;
  margin: 0 auto 1.75rem;
  padding-left: 1.35rem;
  color: #4a5154;
  font-size: 1.02rem;
}
.tbd-steps li { margin: 0 0 0.75rem; }

.tbd-faq {
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.tbd-faq-item {
  background: var(--tbd-white);
  border-radius: var(--tbd-radius);
  box-shadow: var(--tbd-shadow);
  padding: 0.85rem 1.15rem;
}
.tbd-faq-item summary {
  cursor: pointer;
  font-weight: 700;
  font-family: var(--tbd-font-display);
  font-size: 1.05rem;
  color: var(--tbd-charcoal);
  list-style: none;
}
.tbd-faq-item summary::-webkit-details-marker { display: none; }
.tbd-faq-item summary::after {
  content: "+";
  float: right;
  color: var(--tbd-deep);
  font-weight: 600;
}
.tbd-faq-item[open] summary::after { content: "\2013"; /* en dash; was mojibake â → green squares */ }
.tbd-faq-item p {
  margin: 0.65rem 0 0.25rem;
  color: #5a6164;
  font-size: 0.95rem;
}

/* Reviews grid: balance 8 cards â 4Ã2 desktop / 2-col tablet / 1-col mobile */
.tbd-reviews-grid {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 1024px) {
  .tbd-reviews-grid { grid-template-columns: repeat(2, 1fr); }
  .tbd-options-grid { grid-template-columns: repeat(2, 1fr); }
  .tbd-pillar-grid { grid-template-columns: 1fr 1fr; }
  .tbd-detail-grid,
  .tbd-detail-grid--flip {
    grid-template-columns: 1fr;
  }
  .tbd-detail-grid--flip .tbd-detail-media,
  .tbd-detail-grid--flip .tbd-detail-body { order: unset; }
}
@media (max-width: 640px) {
  .tbd-reviews-grid,
  .tbd-options-grid,
  .tbd-pillar-grid { grid-template-columns: 1fr; }
  .tbd-pillar-card .tbd-card-media img { height: 180px; }
}


/* ===== Sticky header + larger logo + brand title (2026-10-06) =====
   Brand title uses Blocksy .site-title as <span> (NOT <h1>) â styled H1-like.
   Accessible pattern: visible .site-title text is the name; logo img alt emptied via shell-extras.
   Do NOT demote page content H1s. Hero watermark removed 2026-10-06 (clean Amalfi photo).
*/
#header.ct-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background-color: rgba(255, 255, 255, 0.97);
  backdrop-filter: saturate(1.1) blur(8px);
  -webkit-backdrop-filter: saturate(1.1) blur(8px);
  box-shadow: 0 1px 0 rgba(47, 52, 55, 0.06), 0 6px 18px rgba(47, 52, 55, 0.04);
}
/* Logged-in admin bar offset */
.admin-bar #header.ct-header {
  top: 32px;
}
@media screen and (max-width: 782px) {
  .admin-bar #header.ct-header {
    top: 46px;
  }
}

/* Logo + brand title: horizontal lockup (override Blocksy data-logo="top" column) */
.ct-header .site-branding,
.ct-header .site-branding[data-logo="top"] {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap;
  align-items: center !important;
  gap: 0.7rem 0.85rem;
  text-align: left;
}

/* Larger header logo (Blocksy default --logo-max-height ~50px) */
.ct-header .site-branding {
  --logo-max-height: 68px;
  --logo-shrink-height: 68px;
}
.ct-header .site-logo-container {
  height: var(--logo-max-height, 68px);
  flex-shrink: 0;
}
.ct-header .site-logo-container img.default-logo,
.ct-header .site-logo-container img {
  height: inherit;
  width: auto;
  max-height: var(--logo-max-height, 68px);
}

/* Brand title â visually H1-like, element remains <span class="site-title"> (NOT h1) */
.ct-header .site-title-container {
  display: flex;
  align-items: center;
  min-width: 0;
}
.ct-header .site-title,
.ct-header .site-title.tbd-site-brand-title,
.ct-header .tbd-site-brand-title {
  font-family: var(--tbd-font-display) !important;
  font-weight: 800 !important;
  font-style: normal !important;
  font-size: clamp(1.25rem, 2vw, 1.7rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em;
  text-transform: none;
  margin: 0;
  white-space: nowrap;
}
.ct-header .site-title a,
.ct-header .site-title.tbd-site-brand-title a,
.ct-header .tbd-site-brand-title a {
  color: var(--tbd-charcoal, #2F3437) !important;
  text-decoration: none !important;
  --theme-link-initial-color: var(--tbd-charcoal, #2F3437);
}
.ct-header .site-title a:hover,
.ct-header .tbd-site-brand-title a:hover {
  color: var(--tbd-deep, #3E6E6B) !important;
}

/* Keep Contact Us CTA usable; don't let brand crush nav */
.ct-header [data-id="menu"] {
  flex-shrink: 1;
  min-width: 0;
}

/* Tablet: slightly smaller logo; title shrinks via clamp */
@media (max-width: 999.98px) {
  .ct-header .site-branding {
    --logo-max-height: 52px;
    --logo-shrink-height: 52px;
  }
  .ct-header .site-title,
  .ct-header .tbd-site-brand-title {
    font-size: 1.25rem !important;
  }
}

/* Mobile: keep sticky; hide brand title if crowded so logo + hamburger/CTA stay clear */
@media (max-width: 689.98px) {
  .ct-header .site-branding {
    --logo-max-height: 44px;
    --logo-shrink-height: 44px;
    gap: 0.5rem;
  }
  .ct-header .site-title-container {
    display: none;
  }
}


/* Team card names (2026-10-08): full names always visible.
   Was: white-space:nowrap + .tbd-card overflow:hidden clipped "Lindsey Wagenmaker" at ~1280px.
   Now: wrap allowed (balanced), card-relative clamp() size so all 4 names share one size per grid,
   slightly tighter side padding on team cards only. No ellipsis / nowrap / overflow on names. */
.tbd-team-card {
  container-type: inline-size;
}
.tbd-team-card .tbd-card-body {
  padding-left: 1rem;
  padding-right: 1rem;
}
.tbd-team-card h3,
.tbd-team-grid h3,
.tbd-team-card .tbd-team-name {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: manual;
  text-wrap: balance;
  max-width: 100%;
  font-size: 1.25rem; /* fallback without container units */
  font-size: clamp(1.1rem, 7.2cqi, 1.35rem);
  line-height: 1.25;
}

/* Groups options grid — 9 tiles (Escorted Groups added 2026-10-08).
   Desktop: 3x3 (base rule). Tablet 761-1024: stay 3-col so 9 tiles = 3x3 (no orphan).
   Small tablet 641-760: 2-col; odd last tile centered at single-column width. Mobile <=640: 1-col. */
@media (min-width: 761px) and (max-width: 1024px) {
  .tbd-options-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 641px) and (max-width: 760px) {
  .tbd-options-grid { grid-template-columns: repeat(2, 1fr); }
  .tbd-options-grid > .tbd-option-tile:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc(50% - 0.575rem);
  }
}

/* Groups detail anchors (2026-10-08): land below the sticky header when a tile is clicked */
.tbd-detail[id] { scroll-margin-top: 96px; }
@media (max-width: 689.98px) { .tbd-detail[id] { scroll-margin-top: 72px; } }


/* ===== Dana Oct 8 pack (2026-10-08 ~3:30pm ET) — header into Amalfi water + Florida one-line ===== */
/* Sticky header shorter so more of the Amalfi waterline shows under it; hero tucks slightly under the bar.
   Blocksy row --height 120px→92px desktop (70→62 tablet/mobile); logo 68→56 / 52→46 / 44→40. */
#header.ct-header [data-row*="middle"] {
  --height: 92px;
}
.ct-header .site-branding {
  --logo-max-height: 56px;
  --logo-shrink-height: 56px;
}
.ct-header .site-title,
.ct-header .tbd-site-brand-title {
  font-size: clamp(1.15rem, 1.8vw, 1.55rem) !important;
}
/* Home only: drop Blocksy 60px content top-spacing above the hero and tuck the hero ~24px under the
   sticky bar so the Amalfi water meets the header (no white strip). */
body.home #main .ct-container-full,
body.page-id-21 #main .ct-container-full {
  padding-top: 0 !important;
}
body.home .entry-content > .tbd-hero:first-child,
body.page-id-21 .entry-content > .tbd-hero:first-child {
  margin-top: -24px !important;
  padding-top: 24px;
}
@media (max-width: 999.98px) {
  #header.ct-header [data-row*="middle"] { --height: 62px; }
  .ct-header .site-branding {
    --logo-max-height: 46px;
    --logo-shrink-height: 46px;
  }
  body.home .entry-content > .tbd-hero:first-child,
  body.page-id-21 .entry-content > .tbd-hero:first-child {
    margin-top: -16px !important;
    padding-top: 16px;
  }
}
@media (max-width: 689.98px) {
  .ct-header .site-branding {
    --logo-max-height: 40px;
    --logo-shrink-height: 40px;
  }
}

/* Hero sub: keep "…West Michigan & Florida." on one line when space allows */
.tbd-hero .hero-sub {
  font-size: clamp(0.95rem, 1.35vw, 1.15rem);
  letter-spacing: -0.01em;
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 900px) {
  .tbd-hero .hero-sub {
    white-space: nowrap;
    font-size: 1.05rem;
  }
}
@media (max-width: 899.98px) {
  .tbd-hero .hero-sub { white-space: normal; }
}

/* Groups topic row under contact CTA (replaced "Type of vacation" helper) */
.tbd-topic-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.45rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}
.tbd-topic-row li,
.tbd-topic-chip {
  display: inline-block;
  background: var(--tbd-mist, #eef3f4);
  color: var(--tbd-charcoal, #2F3437);
  border-radius: 999px;
  padding: 0.35rem 0.85rem;
  font-size: 0.85rem;
  font-weight: 500;
  line-height: 1.3;
}

/* 2026-10-08 PM: long hero subtitles (Groups etc.) must wrap — nowrap only suits the short Home line */
body:not(.home):not(.page-id-21) .tbd-hero .hero-sub {
  white-space: normal !important;
  max-width: 44rem;
  text-wrap: balance;
  line-height: 1.5;
}

/* ===== 2026-10-08 SEO kit: social links, contact line, footer contact, team h2 names ===== */
/* Reusable social link (2026-10-09 social kit: muted on-brand colours, centred, secondary variant).
   Markup:
   <div class="tbd-social [tbd-social--compact] [tbd-social--secondary]"><a class="tbd-social-link tbd-social-link--facebook" href="…" target="_blank" rel="noopener"
   aria-label="… on Facebook (opens in a new tab)"><svg class="tbd-social-icon" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
   <path fill="currentColor" fill-rule="evenodd" d="(circle)(f cut-out)"/></svg><span class="tbd-social-label">…</span></a></div>
   The icon is one currentColor path with the "f" cut out, so the "f" always shows the button colour.
   Contrast (WCAG 2.x), text and icon:
     primary   #FFFFFF on --tbd-deep #3E6E6B = 5.76:1; hover/focus #FFFFFF on #345C59 = 7.44:1
     secondary --tbd-deep #3E6E6B on --tbd-mist #EAF2F1 = 5.06:1; hover/focus #345C59 on #DCEBE9 = 6.06:1
     focus ring: 3px, offset 2px. The site-wide a:focus rule earlier in this file sets its colour to #3E6E6B !important,
     so the ring is #3E6E6B vs white 5.76:1, offwhite 5.20:1, mist 5.06:1 (non-text minimum 3:1) */
.tbd-social {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  margin: 0.85rem 0 0;
  text-align: center;
}
.tbd-social-link {
  --tbd-social-bg: var(--tbd-deep, #3E6E6B);
  --tbd-social-fg: var(--tbd-white, #FFFFFF);
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  max-width: 100%;
  min-height: 44px;
  padding: 0.5rem 1rem;
  border: 0;
  border-radius: 999px;
  background: var(--tbd-social-bg);
  color: var(--tbd-social-fg) !important;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.tbd-social-link:hover,
.tbd-social-link:focus-visible {
  --tbd-social-bg: #345C59; /* same darker deep as .tbd-btn:hover */
  color: var(--tbd-social-fg) !important;
}
.tbd-social-link:focus-visible {
  outline: 3px solid var(--tbd-charcoal, #2F3437);
  outline-offset: 2px;
}
.tbd-social-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  color: inherit;
}
/* Older two-shape icon markup (circle + "f" path with its own fill): paint the "f" in the button colour */
.tbd-social-icon circle + path {
  fill: var(--tbd-social-bg);
}
.tbd-social-label {
  min-width: 0;
  text-align: center;
}
/* Inside the narrow team cards: slightly smaller label so it wraps less; stays centred when it wraps */
.tbd-team-card .tbd-social-link {
  font-size: 0.82rem;
  padding: 0.45rem 0.9rem;
  text-align: center;
}
/* Secondary (quieter) variant: advisor buttons. Light tint + thin teal outline, same 44px target. */
.tbd-social--secondary .tbd-social-link {
  --tbd-social-bg: var(--tbd-mist, #EAF2F1);
  --tbd-social-fg: var(--tbd-deep, #3E6E6B);
  --tbd-social-border: var(--tbd-teal, #8EB8B6);
  border: 1px solid var(--tbd-social-border);
  font-size: 0.8rem;
  padding: 0.4rem 0.85rem;
  gap: 0.4rem;
}
.tbd-social--secondary .tbd-social-link:hover,
.tbd-social--secondary .tbd-social-link:focus-visible {
  --tbd-social-bg: #DCEBE9; /* light teal tint between --tbd-mist and --tbd-teal */
  --tbd-social-fg: #345C59;
  --tbd-social-border: var(--tbd-deep, #3E6E6B);
}
.tbd-social--secondary .tbd-social-icon {
  width: 18px;
  height: 18px;
}
/* Compact (icon-only) variant: home team cards. Label stays for screen readers. */
.tbd-social--compact {
  margin-top: 0.6rem;
}
.tbd-social--compact .tbd-social-link {
  width: 44px;
  height: 44px;
  padding: 0;
  justify-content: center;
}
.tbd-social--compact .tbd-social-icon {
  width: 22px;
  height: 22px;
}
.tbd-social--compact .tbd-social-label {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
/* 2026-10-09 social kit v2: team cards (Team + Home) are equal height in each row and their Facebook buttons
   sit on one line. Card = flex column, card body = flex column, button wrapper pushed down with margin-top:auto
   (its old top margin becomes padding, so the minimum gap is unchanged). Scoped to .tbd-team-card only. */
.tbd-grid > .tbd-team-card {
  display: flex;
  flex-direction: column;
}
.tbd-team-card > .tbd-avatar {
  flex: 0 0 auto;
}
.tbd-team-card > .tbd-card-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}
.tbd-team-card > .tbd-card-body > .tbd-social {
  margin-top: auto;
  padding-top: 0.85rem;
}
.tbd-team-card > .tbd-card-body > .tbd-social--compact {
  padding-top: 0.6rem;
}
/* 2+ columns (tablet 2x2, desktop 4 across): every row as tall as the tallest card, so the buttons line up
   across rows too. One column (phones): cards keep their natural height. */
@media (min-width: 600px) {
  .tbd-grid:has(> .tbd-team-card) {
    grid-auto-rows: 1fr;
  }
}
/* Team page names are now <h2 class="tbd-team-name"> (outline H1 -> H2); keep the old H3 look */
.tbd-team-card h2.tbd-team-name {
  margin: 0 0 0.35rem;
  line-height: 1.25;
}
/* Contact page: secondary contact line under the form (form stays the main CTA) */
.tbd-contact-alt {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(47, 52, 55, 0.12);
  text-align: center;
  color: var(--tbd-charcoal, #2F3437);
}
.tbd-contact-alt p {
  margin: 0;
}
/* Sitewide footer contact line (printed by the TBD-SEO PHP block under the footer brand strip) */
.tbd-footer-contact {
  background: #F6F3EE;
  text-align: center;
  padding: 0.25rem 1rem 1.25rem;
  color: #2F3437;
  font-size: 0.9rem;
}
.tbd-footer-contact__line {
  margin: 0.5rem 0 0;
}
.tbd-footer-contact .tbd-social {
  margin-top: 0.5rem;
}
.tbd-footer-contact a.tbd-email-link,
.tbd-contact-alt a.tbd-email-link {
  color: var(--tbd-deep, #3E6E6B);
  text-decoration: underline;
}

/* ===== TBD-HERO-WEBP-BEGIN v1.0 (2026-10-08) =====
 * Hero backgrounds for Home (.tbd-hero--amalfi) and Groups (.tbd-hero--beach) as WebP, one file per viewport.
 * Phones (max-width: 767px) get the small WebP; everything wider gets the desktop WebP. Browsers without
 * image-set() type() support use the plain url() line above it (the existing JPEG on staging).
 * The TBD-SEO PHP block (v1.1+) READS these two rules to print its <link rel=preload> tags, so the preload always
 * matches what this CSS loads. Keep the format: one url("...webp") per image-set, media query exactly as below.
 * Paths are root-relative ("/wp-content/uploads/...") so they work on staging and after launch. */
.tbd-hero--amalfi {
  background-image: url("/wp-content/uploads/2026/10/hero-amalfi-1600x900-1.jpg");
  background-image: image-set(url("/wp-content/uploads/2026/10/tbd-hero-amalfi-1280w.webp") type("image/webp"), url("/wp-content/uploads/2026/10/hero-amalfi-1600x900-1.jpg") type("image/jpeg"));
}
.tbd-hero--beach {
  background-image: url("/wp-content/uploads/2026/10/hero-groups-beach-1920.jpg");
  background-image: image-set(url("/wp-content/uploads/2026/10/tbd-hero-groups-beach-1600w.webp") type("image/webp"), url("/wp-content/uploads/2026/10/hero-groups-beach-1920.jpg") type("image/jpeg"));
}
@media (max-width: 767px) {
  .tbd-hero--amalfi {
    background-image: image-set(url("/wp-content/uploads/2026/10/tbd-hero-amalfi-900w.webp") type("image/webp"), url("/wp-content/uploads/2026/10/hero-amalfi-1600x900-1.jpg") type("image/jpeg"));
  }
  .tbd-hero--beach {
    background-image: image-set(url("/wp-content/uploads/2026/10/tbd-hero-groups-beach-1000w.webp") type("image/webp"), url("/wp-content/uploads/2026/10/hero-groups-beach-1920.jpg") type("image/jpeg"));
  }
}
/* ===== TBD-HERO-WEBP-END ===== */