/*
Theme Name: TruCape Tours v14
Theme URI: https://trucapetours.com/
Author: TruCape Engineering
Author URI: https://trucapetours.com/
Description: TruCape Tours modern block theme for Cape Town private day routes, curated chauffeur itineraries, and intent-based commerce.
Version: 14.0.0
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.0
License: Proprietary
Text Domain: trucape-v14
*/

/* Load the brand fonts directly so Android and iOS do not depend on a
 * Google Fonts stylesheet being available before the first render. */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('https://fonts.gstatic.com/s/manrope/v20/xn7gYHE41ni1AdIRggexSvfedN4.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: 'Sora'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('https://fonts.gstatic.com/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwV6-xo6eeIw.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: 'Permanent Marker'; font-style: normal; font-weight: 400; font-display: swap; src: url('https://fonts.gstatic.com/s/permanentmarker/v16/Fh4uPib9Iyv2ucM6pGQMWimMp004La2Cf5b6jlg.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; }

/* ─── DESIGN TOKENS ───────────────────────────────── */
:root {
  --tc-crimson: #d3183e;
  --tc-crimson-dark: #a80f2e;
  --tc-crimson-hover: #b51032;
  --tc-crimson-subtle: rgba(211, 24, 62, 0.1);
  --tc-crimson-glow: rgba(211, 24, 62, 0.35);
  
  --tc-ink: #17202a;
  --tc-ink-950: #050a0f;
  --tc-ink-900: #0a1118;
  --tc-ink-800: #121d28;
  --tc-ink-700: #1c2b3a;
  
  --tc-navy: #124559;
  --tc-blue: #124559;
  --tc-navy-950: #124559;
  --tc-navy-900: #07151e;
  --tc-navy-800: #0e2330;
  --tc-navy-700: #15374a;
  
  --tc-slate: #598392;
  --tc-slate-700: #334450;
  --tc-slate-600: #4a6070;
  --tc-slate-400: #7b94a4;
  --tc-slate-200: #d4e0e6;
  
  --tc-amber: #ffb563;
  --tc-ice: #d6eeff;
  --tc-paper: #f5efe6;
  --tc-charcoal: #343a40;
  --tc-muted: #43545d;
  --tc-border: #ddd;
  --tc-radius: 14px;
  --tc-shadow: 0 8px 0 rgba(23, 32, 42, .12);

  --tc-canvas-50: #fbfaf8;
  --tc-canvas-100: #f3f1ec;
  --tc-canvas-200: #e8e4db;
  --tc-surface-white: #ffffff;
  
  --tc-border-subtle: rgba(10, 17, 24, 0.08);
  --tc-border-strong: rgba(10, 17, 24, 0.16);
  --tc-border-glass: rgba(255, 255, 255, 0.18);
  --tc-border-glass-strong: rgba(255, 255, 255, 0.3);

  --tc-body: "Manrope", Arial, sans-serif;
  --tc-display: "Sora", Arial, sans-serif;
  --tc-font-display: 'Sora', sans-serif;
  --tc-font-body: 'Manrope', sans-serif;
  --tc-font-script: 'Permanent Marker', cursive;

  --tc-type-2xs: clamp(.5rem, .48rem + .08vw, .58rem);
  --tc-type-xs: clamp(.625rem, .59rem + .12vw, .75rem);
  --tc-type-sm: clamp(.75rem, .7rem + .18vw, .95rem);
  --tc-type-body: clamp(1rem, .96rem + .2vw, 1.125rem);

  --tc-r-sm: 8px;
  --tc-r-md: 14px;
  --tc-r-lg: 20px;
  --tc-r-xl: 28px;
  --tc-r-pill: 9999px;

  --tc-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --tc-ease: cubic-bezier(0.16, 1, 0.3, 1);

  --tc-shadow-sm: 0 2px 8px rgba(10, 17, 24, 0.04);
  --tc-shadow-md: 0 8px 24px -2px rgba(10, 17, 24, 0.08);
  --tc-shadow-lg: 0 16px 40px -4px rgba(10, 17, 24, 0.14);
  --tc-shadow-crimson: 0 8px 24px -2px rgba(211, 24, 62, 0.35);
  --tc-shadow-floating: 0 20px 50px -10px rgba(5, 10, 15, 0.4);
}

/* ─── THEME-OWNED GLOBAL FOOTER (VOETSTOOTS STYLING) ─ */
.tc-site-footer, .tc-site-footer.wp-block-group, .wp-block-template-part:has(> .tc-site-footer) {
  margin-top: 0; overflow: hidden;
  background: var(--tc-crimson) !important;
  background-color: var(--tc-crimson) !important;
  color: #ffffff !important;
}
.tc-footer-main, .tc-footer-bottom { width: min(1200px, calc(100% - 36px)); margin-inline: auto; }
.tc-footer-main { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 32px; padding: 60px 0 45px; }
.tc-footer-brand { text-align: left !important; }
.tc-footer-brand p { max-width: 280px; color: rgba(255,255,255,0.9); font-size: 0.84rem; line-height: 1.6; margin-top: 0.4rem; text-align: left !important; }
.tc-footer-logo { color: #ffffff !important; font-family: var(--tc-font-display); font-size: 1.7rem; font-weight: 700; letter-spacing: -0.05em; text-align: left !important; display: block !important; margin-left: 0 !important; margin-right: auto !important; }
.tc-footer-logo span { color: #ffffff !important; }
.tc-footer-col { display: grid; align-content: start; gap: 9px; }
.tc-footer-col strong { margin-bottom: 5px; font: 700 0.76rem var(--tc-font-display); text-transform: uppercase; letter-spacing: 0.06em; color: #ffffff; }
.tc-footer-col a { color: rgba(255,255,255,0.9) !important; text-decoration: none; font-size: 0.82rem; }
.tc-footer-col a:hover { color: #ffffff !important; text-decoration: underline; }
.tc-footer-gallery { overflow: hidden; border-block: 1px solid rgba(255,255,255,0.22); }
.tc-footer-gallery-track { display: flex; width: max-content; animation: tc-gallery-scroll 38s linear infinite; }
.tc-footer-gallery img { width: 180px; height: 110px; object-fit: cover; }
@keyframes tc-gallery-scroll { to { transform: translateX(-50%); } }
.tc-footer-content { background: var(--tc-crimson) !important; background-color: var(--tc-crimson) !important; }
.tc-footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0; color: rgba(255,255,255,0.9); font-size: 0.78rem; }
.tc-footer-legal { color: rgba(255,255,255,0.9); }
.tc-footer-legal-nav { display: flex; flex-wrap: wrap; gap: 15px; }
.tc-footer-legal-nav a { color: rgba(255,255,255,0.9) !important; text-decoration: none; }
.tc-footer-legal-nav a:hover { color: #ffffff !important; text-decoration: underline; }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font: 400 0.88rem/1.65 var(--tc-font-body);
  color: var(--tc-ink-900);
  background-color: var(--tc-canvas-50);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  -webkit-tap-highlight-color: transparent;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; border: none; background: none; cursor: pointer; color: inherit; outline: none; }
input, select { font: inherit; border: none; outline: none; background: none; }

h1, h2, h3, h4, h5 {
  font-family: var(--tc-font-display);
  text-align: left;
  line-height: 1.15;
  letter-spacing: -0.035em;
  color: var(--tc-ink-900);
}

/* ─── ROOT FSE BLOCK THEME RESET & FULL WIDTH SPAN ─ */
body, .wp-site-blocks {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden;
}

.wp-block-post-content,
.entry-content,
main.wp-block-group,
main.wp-block-group > .wp-block-post-content {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.wp-block-post-content > *,
.entry-content > * {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ─── LAYOUT CONTAINERS (EXACT V13 SPECIFICATION) ─── */
.container, .tc-footer-main, .tc-footer-bottom {
  width: min(1200px, calc(100% - 36px)) !important;
  margin-inline: auto !important;
  position: relative !important;
  box-sizing: border-box !important;
  z-index: 5;
}
.container-narrow {
  width: min(840px, calc(100% - 36px)) !important;
  margin-inline: auto !important;
  position: relative !important;
  box-sizing: border-box !important;
  z-index: 5;
}

/* ─── SECTION MARGIN SNAPPING & BLOCK GAP ELIMINATION ─── */
.wp-block-post-content > *,
.entry-content > *,
main.wp-block-group > .wp-block-post-content > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.section-fw {
  width: 100% !important;
  position: relative !important;
  padding: 2rem 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

.hero-white-stage,
.tc-weather-bar,
.section-driver-profile,
.cta-dest-slider,
.cta-package-featured-bg {
  margin: 0 !important;
  width: 100% !important;
  position: relative;
  overflow: hidden;
}

/* Destination Directory dark section: inherits section-fw spacing */
.cta-dest-slider {
  background: linear-gradient(135deg, var(--tc-navy-800) 0%, var(--tc-navy-950) 100%) !important;
  color: var(--tc-surface-white) !important;
  padding: 2rem 0 !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

/* ─── SHARED DECORATIVE SVG OVERLAY (EXACT V13 SPEC) ─── */
.section-deco-svg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; overflow: visible;
  z-index: 0; /* Strictly behind container content */
}
/* light section variant (Hero & Carousel sections): warm beige + thick trail lines */
.section-deco-svg.deco-light,
.section-deco-svg.deco-hero { z-index: 0; opacity: 0.9; }
/* dark CTA sections: white-tinted thick trail lines */
.section-deco-svg.deco-dark { z-index: 0; opacity: 0.18; }
/* package bg photo CTA: subtle thick trail lines */
.section-deco-svg.deco-photo { z-index: 0; opacity: 0.16; }

.driver-bg-arc-rings {
  position: absolute; top: 0; right: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 0;
}

.container,
.container-narrow,
.section-fw > .container,
.section-fw > .wp-block-group > .container,
.section-driver-profile > .container,
.cta-dest-slider > .container,
.cta-package-featured-bg > .container {
  position: relative;
  z-index: 5;
}

/* ─── BACKGROUND COLOR ENFORCEMENTS ───────────────── */
.bg-canvas-50 { background-color: #fbfaf8 !important; color: #07151e !important; }
.bg-canvas-100 { background-color: #f3f1ec !important; color: #07151e !important; }
.bg-white { background-color: #ffffff !important; color: #07151e !important; }
.bg-navy-950 { background-color: var(--tc-navy, #124559) !important; color: #ffffff !important; }
.bg-navy-900 { background-color: #07151e !important; color: #ffffff !important; }

/* ─── SPOTLIGHT CTA BACKGROUND COVER ─────────────── */
.cta-package-featured-bg {
  background-image: var(--tc-cta-bg);
  background-size: cover;
  background-position: center;
  position: relative;
  padding: 2rem 0 !important;
  color: #ffffff;
}
.cta-pkg-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(4, 12, 18, 0.88) 0%, rgba(7, 21, 30, 0.72) 100%);
  z-index: 2;
}
.cta-pkg-grid {
  position: relative;
  z-index: 5;
}

/* ─── LIVE AJAX SEARCH AUTO-COMPLETE DROPDOWN ─────── */
.hero-ajax-results-list {
  display: grid;
  gap: 0.6rem;
  padding-top: 0.4rem;
}
.ajax-result-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.6rem 0.8rem;
  background: var(--tc-canvas-50);
  border: 1px solid var(--tc-canvas-200);
  border-radius: var(--tc-r-md);
  transition: all 0.2s var(--tc-ease);
  text-decoration: none;
  color: var(--tc-ink-900);
}
.ajax-result-item:hover {
  background: #ffffff;
  border-color: var(--tc-crimson);
  box-shadow: var(--tc-shadow-sm);
  transform: translateY(-1px);
}
.ajax-result-thumb {
  width: 50px;
  height: 42px;
  object-fit: cover;
  border-radius: var(--tc-r-sm);
  flex-shrink: 0;
}
.ajax-result-info {
  flex: 1;
  min-width: 0;
}
.ajax-result-pills {
  display: flex;
  gap: 0.4rem;
  margin-bottom: 0.25rem;
}
.ajax-pill-area {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--tc-crimson);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ajax-pill-dur {
  font-size: 0.68rem;
  color: var(--tc-ink-500);
}
.ajax-result-title {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--tc-ink-900);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ajax-result-arrow {
  color: var(--tc-crimson);
  font-size: 0.85rem;
  transition: transform 0.2s ease;
}
.ajax-result-item:hover .ajax-result-arrow {
  transform: translateX(3px);
}
.ajax-no-results {
  padding: 1rem;
  text-align: center;
  font-size: 0.85rem;
  color: var(--tc-ink-500);
}

/* ─── LIVE WEATHER MARQUEE BAR ────────────────────── */
.tc-weather-bar {
  background: var(--tc-crimson, #d3183e) !important;
  background-color: var(--tc-crimson, #d3183e) !important;
  color: #ffffff !important;
  padding: 0.75rem 0 !important;
  overflow: hidden !important;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  position: relative;
  z-index: 20;
}
.tc-weather-viewport {
  width: 100%;
  overflow: hidden;
  display: flex;
}
.tc-weather-track {
  display: flex;
  width: max-content;
  animation: weatherMarquee 32s linear infinite;
}
.tc-weather-track:hover {
  animation-play-state: paused;
}
.tc-weather-sequence {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  padding-right: 2.5rem;
  white-space: nowrap;
}
.tc-weather-item {
  font-size: 0.82rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.95);
  letter-spacing: 0.02em;
}
.tc-weather-item b {
  color: #ffffff;
  font-weight: 700;
}

@keyframes weatherMarquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ─── SITE NAVIGATION BAR ─────────────────────────── */
.site-header,
.tc-site-header {
  position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important;
  width: 100% !important; z-index: 1000 !important;
  padding: max(0.65rem, env(safe-area-inset-top)) 0 0.65rem;
  transition: transform 0.38s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  will-change: transform;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  pointer-events: none !important;
}
.site-header.header-hidden,
.tc-site-header.tc-header-hidden {
  transform: translateY(-115%) !important;
}
.site-header.header-visible,
.tc-site-header.header-visible {
  transform: translateY(0) !important;
}
.header-capsule,
.tc-header-inner {
  max-width: 1240px !important;
  width: 100% !important;
  margin-inline: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  pointer-events: none !important;
}
.tc-header-nav-pill {
  margin-inline: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
  pointer-events: auto !important;
}

/* ─── FLOATING ITINERARY ISLAND & SIDECART DRAWER MODAL ─── */
.app-itinerary-island {
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%) translateY(120%);
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  background: var(--tc-navy-950);
  color: #ffffff;
  padding: 0.65rem 1.2rem;
  border-radius: var(--tc-r-pill);
  box-shadow: var(--tc-shadow-floating);
  border: 1px solid rgba(255, 255, 255, 0.15);
  cursor: pointer;
  transition: transform 0.4s var(--tc-spring), opacity 0.3s var(--tc-ease);
  opacity: 0;
  pointer-events: none;
}
.app-itinerary-island.active {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.island-counter-pill {
  background: var(--tc-crimson);
  color: #fff;
  font-weight: 700;
  font-size: 0.8rem;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 0.6rem;
}
.island-label-text {
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: -0.01em;
}
.island-view-btn {
  font-size: 0.8rem;
  font-weight: 700;
  color: rgba(255,255,255,0.85);
  padding-left: 0.8rem;
  border-left: 1px solid rgba(255,255,255,0.2);
}
.app-itinerary-island:hover .island-view-btn {
  color: #fff;
}

/* Slide Sheet & Scrim Backdrop */
.drawer-scrim-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(4, 12, 18, 0.65);
  backdrop-filter: blur(6px);
  z-index: 10000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.drawer-scrim-backdrop.visible {
  opacity: 1;
  pointer-events: auto;
}
.app-slide-sheet {
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  max-width: 480px;
  height: 100vh;
  background: #ffffff;
  z-index: 10001;
  transform: translateX(100%);
  transition: transform 0.4s var(--tc-ease);
  display: flex;
  flex-direction: column;
  box-shadow: -10px 0 40px rgba(0, 0, 0, 0.2);
}
.app-slide-sheet.visible {
  transform: translateX(0);
}
.sheet-top-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--tc-canvas-200);
}
.sheet-heading-text {
  font: 700 1.1rem/1.2 var(--tc-font-display);
  color: var(--tc-ink-900);
}
.sheet-close-action {
  font-size: 1.2rem;
  color: var(--tc-ink-500);
  background: var(--tc-canvas-100);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.sheet-stops-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.sheet-empty-state {
  text-align: center;
  color: var(--tc-ink-500);
  font-size: 0.9rem;
  padding: 3rem 1rem;
  line-height: 1.6;
}
.sheet-stop-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  background: var(--tc-canvas-50);
  border: 1px solid var(--tc-canvas-200);
  border-radius: var(--tc-r-md);
}
.stop-num {
  font-weight: 700;
  font-size: 0.75rem;
  color: var(--tc-crimson);
  margin-right: 0.6rem;
}
.stop-title {
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--tc-ink-900);
}
.stop-del {
  font-size: 0.75rem;
  font-weight: 700;
  color: #dc2626;
  cursor: pointer;
}
.sheet-bottom-zone {
  padding: 1.25rem 1.5rem;
  border-top: 1px solid var(--tc-canvas-200);
  background: var(--tc-canvas-50);
}
.whatsapp-cta-button {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  background: #25d366;
  color: #ffffff;
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.85rem 1.2rem;
  border-radius: var(--tc-r-pill);
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.35);
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.whatsapp-cta-button:hover {
  background: #20bd5a;
  transform: translateY(-1px);
}
.site-header.scrolled {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}
.header-capsule {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.45rem 0.65rem 0.45rem 1.2rem;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--tc-border-strong);
  border-radius: var(--tc-r-pill);
  box-shadow: var(--tc-shadow-sm);
  transition: all 0.3s var(--tc-ease);
}
.site-header.scrolled .header-capsule {
  background: rgba(255, 255, 255, 0.95);
  border-color: var(--tc-border-strong);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}
.brand-wordmark {
  font-family: var(--tc-font-display); font-size: 1.15rem; font-weight: 600;
  letter-spacing: -0.05em; color: var(--tc-ink-900); transition: color 0.3s;
}
.brand-wordmark span { color: var(--tc-crimson); }

.nav-links-row { display: flex; align-items: center; gap: 1.6rem; }
.nav-anchor {
  font-size: 0.76rem; font-weight: 600; color: var(--tc-slate-700);
  transition: color 0.2s;
}
.nav-anchor:hover { color: var(--tc-crimson); }

.header-plan-trigger {
  display: flex; align-items: center; gap: 0.5rem;
  background: var(--tc-crimson); color: var(--tc-surface-white);
  padding: 0.42rem 0.95rem; border-radius: var(--tc-r-pill);
  font-size: 0.74rem; font-weight: 700; letter-spacing: 0.02em;
  box-shadow: var(--tc-shadow-crimson);
  transition: all 0.22s var(--tc-spring);
}
.header-plan-trigger:hover { background: var(--tc-crimson-hover); transform: scale(1.03); }
.header-plan-count {
  background: var(--tc-surface-white); color: var(--tc-crimson);
  font-size: 0.62rem; font-weight: 800; min-width: 18px; height: 18px;
  border-radius: var(--tc-r-pill); display: grid; place-items: center;
}

/* ─── HERO VIEWPORT (40VH–80VH ON MOBILE) ────────── */
.hero-white-stage {
  position: relative; min-height: 84vh;
  display: flex; align-items: center;
  padding: calc(max(1rem, env(safe-area-inset-top)) + 75px) 0 4rem;
  background-color: var(--tc-canvas-100);
  overflow: visible !important;
  z-index: 10;
}
.hero-slideshow-deck {
  position: absolute !important; inset: 0 !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100% !important; height: 100% !important; margin: 0 !important; padding: 0 !important; z-index: 0 !important; overflow: hidden !important;
}
.hero-slideshow-deck > .hero-photo-slide,
.hero-slideshow-deck > .hero-white-scrim {
  margin: 0 !important; margin-top: 0 !important; margin-block-start: 0 !important; margin-block-end: 0 !important; margin-bottom: 0 !important;
}
.hero-photo-slide {
  position: absolute !important; inset: 0 !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100% !important; height: 100% !important; margin: 0 !important; margin-top: 0 !important; margin-block-start: 0 !important;
  background-size: cover !important; background-position: center center !important;
  opacity: 0; transform: none !important; transition: opacity 1.4s ease;
}
.hero-photo-slide.active { opacity: 1; transform: none !important; }
.hero-photo-slide:nth-child(1) { background-image: url('https://trucapetours.com/wp-content/uploads/2026/08/table-mountain.jpg') !important; background-position: center center !important; }
.hero-photo-slide:nth-child(2) { background-image: url('https://trucapetours.com/wp-content/uploads/2026/08/kirstenbosch-national-botanical-gardens-family-walking-forest-path-trucape-photo-tour-cape-town-travel.jpg') !important; background-position: center center !important; }
.hero-photo-slide:nth-child(3) { background-image: url('https://trucapetours.com/wp-content/uploads/2026/08/planning-travel-itinerary-map-coffee-table-hands-trucape-photo-tour-cape-town-travel.jpg') !important; background-position: center center !important; }
.hero-photo-slide:nth-child(4) { background-image: url('https://trucapetours.com/wp-content/uploads/2026/08/sea-point-promenade-oceanfront-afternoon-walk-friends-trucape-photo-tour-cape-town-travel.jpg') !important; background-position: center center !important; }
.hero-photo-slide:nth-child(5) { background-image: url('https://trucapetours.com/wp-content/uploads/2026/08/sea-point-promenade-sunset-ocean-walk-kids-lions-head-trucape-photo-tour-cape-town-travel.jpg') !important; background-position: center center !important; }
.hero-white-scrim {
  position: absolute !important; inset: 0 !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100% !important; height: 100% !important; margin: 0 !important; margin-top: 0 !important; margin-block-start: 0 !important;
  z-index: 1 !important; pointer-events: none !important;
  background: 
    linear-gradient(0deg, rgba(251,250,248,0.95) 0%, rgba(251,250,248,0.6) 20%, transparent 45%),
    linear-gradient(90deg, rgba(251,250,248,0.97) 0%, rgba(251,250,248,0.92) 48%, rgba(251,250,248,0.55) 75%, rgba(251,250,248,0.25) 100%);
}

.hero-grid-layout {
  position: relative; z-index: 5;
  display: grid; grid-template-columns: 1.18fr 0.82fr; gap: 3rem; align-items: center;
}

.hero-vehicle-standalone {
  width: 15%; max-width: 110px; min-width: 85px; height: auto; object-fit: contain;
  display: block; margin-bottom: 0.45rem;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,0.12));
  transition: transform 0.3s var(--tc-ease);
}
.hero-vehicle-standalone:hover { transform: scale(1.04); }

.hero-script-tag,
h1.hero-script-tag {
  font-family: var(--tc-font-script); font-size: 1.05rem; font-weight: 400; color: var(--tc-crimson);
  display: block; margin-bottom: 0.35rem; margin-top: 0; line-height: 1.2; letter-spacing: normal;
}

.hero-main-headline,
h2.hero-main-headline {
  font-family: var(--tc-font-display);
  font-size: clamp(2.35rem, 5vw, 3.7rem);
  font-weight: 600; letter-spacing: -0.04em; line-height: 1.05;
  color: var(--tc-ink-950); margin-bottom: 0.8rem; margin-top: 0;
}
.hero-main-headline span { color: var(--tc-crimson); }
.hero-main-headline span i { font-style: italic; }
.hero-supporting-copy {
  font-size: 0.92rem; line-height: 1.65; font-weight: 600;
  color: var(--tc-slate-700); max-width: 520px; margin-bottom: 1.6rem;
}

/* Expanding Single-Row Search Console */
.search-capsule-box { position: relative; width: min(600px, 100%); z-index: 30; }
.search-single-row-bar {
  background: var(--tc-surface-white);
  border-radius: var(--tc-r-pill);
  padding: 0.45rem 0.5rem 0.45rem 1.25rem;
  box-shadow: 0 12px 36px rgba(10, 17, 24, 0.12);
  display: flex; align-items: center; justify-content: space-between; gap: 0.6rem;
  border: 1.5px solid var(--tc-border-strong);
  cursor: pointer;
  transition: transform 0.25s var(--tc-spring), box-shadow 0.25s ease;
}
.search-single-row-bar:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 44px rgba(10, 17, 24, 0.16);
  border-color: var(--tc-crimson);
}
.search-field-segment {
  display: flex; align-items: center; gap: 0.6rem; flex: 1; text-align: left;
}
.search-icon-svg { width: 17px; height: 17px; color: var(--tc-slate-600); flex-shrink: 0; }
.search-placeholder-text {
  font-size: 0.82rem; font-weight: 600; color: var(--tc-ink-900);
  flex: 1 1 auto !important;
  width: 100% !important;
  min-width: 0 !important;
}
input.search-placeholder-text {
  border: none !important;
  outline: none !important;
  background: transparent !important;
  width: 100% !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
  font-size: clamp(0.72rem, 3vw, 0.84rem) !important;
  font-weight: 600 !important;
  color: var(--tc-ink-900) !important;
  padding: 0 !important;
  margin: 0 !important;
}
input.search-placeholder-text::placeholder {
  color: var(--tc-ink-900) !important;
  opacity: 0.88 !important;
}
.search-divider-line { width: 1px; height: 22px; background: var(--tc-border-strong); }
.search-segment-date {
  font-size: 0.78rem; font-weight: 600; color: var(--tc-slate-600); padding: 0 0.4rem; white-space: nowrap;
}
.search-launch-btn {
  background: var(--tc-crimson); color: var(--tc-surface-white);
  padding: 0.62rem 1.25rem; border-radius: var(--tc-r-pill);
  font-size: 0.76rem; font-weight: 700; letter-spacing: 0.02em;
  display: flex; align-items: center; gap: 0.35rem;
  transition: all 0.2s var(--tc-spring); flex-shrink: 0;
}
.search-launch-btn:hover { background: var(--tc-crimson-hover); transform: scale(1.02); }
.search-launch-btn svg { width: .82rem; height: .82rem; flex: 0 0 .82rem; }

.search-expanded-panel {
  position: absolute; top: calc(100% + 10px); left: 0; right: 0;
  background: var(--tc-surface-white); color: var(--tc-ink-900);
  border-radius: var(--tc-r-lg); padding: 1.4rem;
  box-shadow: 0 24px 60px rgba(10,17,24,0.2);
  border: 1px solid var(--tc-border-strong);
  display: none; flex-direction: column; gap: 1.2rem;
  text-align: left; animation: panel-in 0.25s var(--tc-ease);
}
.search-expanded-panel.open { display: flex; }
@keyframes panel-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }

.search-modal-row { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 0.8rem; }
.search-box-input-group {
  background: var(--tc-canvas-50); border: 1px solid var(--tc-border-strong);
  padding: 0.55rem 0.85rem; border-radius: var(--tc-r-md);
  display: flex; flex-direction: column; gap: 0.15rem;
}
.search-box-label {
  font-size: 0.6rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--tc-slate-600);
}
.search-box-input {
  font-size: 0.8rem; font-weight: 600; color: var(--tc-ink-900); width: 100%;
}
.quick-destination-pills { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.quick-dest-chip {
  background: var(--tc-canvas-100); border: 1px solid var(--tc-border-strong);
  padding: 0.25rem 0.65rem; border-radius: var(--tc-r-pill);
  font-size: 0.68rem; font-weight: 600; color: var(--tc-slate-700);
  cursor: pointer; transition: all 0.18s;
}
.quick-dest-chip:hover {
  background: var(--tc-crimson-subtle); color: var(--tc-crimson); border-color: var(--tc-crimson);
}
.search-expanded-footer {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 0.6rem; border-top: 1px solid var(--tc-border-subtle);
}

/* ─── WEATHER MARQUEE BAR (PLACED BELOW HERO) ────── */
.tc-weather-bar {
  width: 100%; position: relative; z-index: 10;
  background: var(--tc-crimson, #d3183e) !important;
  background-color: var(--tc-crimson, #d3183e) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  color: #ffffff !important;
  overflow: hidden; display: flex; align-items: center;
  padding: 0.65rem 0 !important;
}
.tc-weather-viewport { width: 100%; overflow: hidden; display: flex; }
.tc-weather-track {
  display: flex; width: max-content; align-items: center;
  animation: tc-weather-marquee 28s linear infinite;
}
.tc-weather-track:hover { animation-play-state: paused; }
.tc-weather-sequence {
  display: flex; align-items: center; flex: 0 0 auto; gap: 2.5rem; padding-inline: 2.5rem; white-space: nowrap;
}
.tc-weather-item {
  display: inline-flex; align-items: center; gap: 0.4rem; white-space: nowrap; font-size: 0.78rem; letter-spacing: 0.025em;
  color: rgba(255, 255, 255, 0.95);
}
.tc-weather-item b { color: #ffffff; font-weight: 700; }
.tc-weather-item i { font-size: 0.84rem; color: var(--tc-amber, #e7ac34); vertical-align: middle; margin-right: 2px; }
.tc-weather-item .tc-status-open,
.tc-status-open {
  color: #86efac !important;
  font-weight: 700;
  text-shadow: 0 0 10px rgba(134, 239, 172, 0.35);
}
@keyframes tc-weather-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ─── SHARED DECORATIVE TRAIL SVG OVERLAYS ────────── */
.section-deco-svg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; overflow: hidden; z-index: 0;
}
.section-deco-svg.deco-light,
.section-deco-svg.deco-hero { z-index: 0; opacity: 0.9; stroke: #e3dbc8; }
.section-deco-svg.deco-dark { z-index: 0; opacity: 0.18; stroke: #ffffff; }
.section-deco-svg.deco-photo { z-index: 0; opacity: 0.16; stroke: #ffffff; }

/* ─── CAROUSEL WRAPPER WITH CENTERED RIGHT BUTTON ── */
.carousel-outer-wrapper { position: relative; width: 100%; margin-top: 1.4rem; }
.carousel-track-lane {
  display: flex; gap: 1.2rem; overflow-x: auto; scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch; padding: 0.6rem 0.2rem 1.6rem;
  scrollbar-width: none; cursor: grab; user-select: none;
}
.carousel-track-lane.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.carousel-track-lane::-webkit-scrollbar { display: none; }
.carousel-track-lane .tc-catalog-card,
.dcard-carousel-track .tc-catalog-card {
  flex: 0 0 280px;
  width: 280px;
  scroll-snap-align: start;
}
@media (min-width: 768px) {
  .carousel-track-lane .tc-catalog-card,
  .dcard-carousel-track .tc-catalog-card {
    flex: 0 0 300px;
    width: 300px;
  }
}

.carousel-fade-overlay-white {
  position: absolute; top: 0; right: 0; bottom: 1.2rem; width: clamp(60px, 12vw, 120px);
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.95) 100%);
  pointer-events: none; z-index: 10;
}
.carousel-fade-overlay-canvas {
  position: absolute; top: 0; right: 0; bottom: 1.2rem; width: clamp(60px, 12vw, 120px);
  background: linear-gradient(90deg, transparent 0%, rgba(243,241,236,0.95) 100%);
  pointer-events: none; z-index: 10;
}

.carousel-center-right-btn {
  position: absolute; right: 12px; top: 48%; transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--tc-crimson); color: var(--tc-surface-white);
  display: grid; place-items: center; font-size: 0.95rem;
  box-shadow: 0 4px 18px rgba(211, 24, 62, 0.45); z-index: 20;
  transition: all 0.22s var(--tc-spring); cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.25);
}
.carousel-center-right-btn:hover {
  background: var(--tc-crimson-hover); transform: translateY(-50%) scale(1.1);
  box-shadow: 0 6px 24px rgba(211, 24, 62, 0.6);
}

.carousel-bottom-action-row { display: flex; justify-content: flex-start; margin-top: 0.4rem; }
.btn-more-like-this {
  display: inline-flex; align-items: center; gap: 0.45rem;
  padding: 0.55rem 1.2rem; border-radius: var(--tc-r-pill);
  font-size: 0.78rem; font-weight: 700; letter-spacing: 0.02em;
  background: var(--tc-canvas-50); color: var(--tc-ink-900);
  border: 1.5px solid var(--tc-border-strong);
  transition: all 0.2s var(--tc-spring);
}
.btn-more-like-this:hover {
  background: var(--tc-crimson); color: #fff; border-color: var(--tc-crimson);
  transform: translateX(4px); box-shadow: var(--tc-shadow-crimson);
}

/* ─── FULL-BG DESTINATION PRODUCT CARDS ──────────── */
.dcard-compact-fullbg {
  flex: 0 0 clamp(230px, 24vw, 275px); scroll-snap-align: start;
  height: 340px; position: relative; border-radius: var(--tc-r-lg);
  overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end;
  box-shadow: var(--tc-shadow-md); transition: transform 0.3s var(--tc-ease), box-shadow 0.3s var(--tc-ease);
  cursor: pointer; border: 1px solid var(--tc-border-subtle); flex-shrink: 0;
}
.dcard-compact-fullbg:hover {
  transform: translateY(-5px); box-shadow: var(--tc-shadow-lg); border-color: var(--tc-crimson);
}
.dcard-compact-fullbg img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s var(--tc-ease);
}
.dcard-compact-fullbg:hover img { transform: scale(1.08); }
.dcard-compact-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(5,10,15,0.1) 0%, rgba(5,10,15,0.55) 45%, rgba(5,10,15,0.96) 100%);
}
.dcard-compact-content { position: relative; z-index: 5; padding: 1.15rem; color: #ffffff; }
.dcard-tags-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.35rem; }
.dcard-pill-tag {
  background: var(--tc-crimson); color: #fff; padding: 0.18rem 0.55rem; border-radius: var(--tc-r-pill);
  font-size: 0.56rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em;
  box-shadow: var(--tc-shadow-crimson);
}
.dcard-duration-tag { font-size: 0.62rem; font-weight: 700; color: rgba(255,255,255,0.85); }
.dcard-compact-title { font-size: 1.05rem; font-weight: 600; color: #fff; line-height: 1.25; margin-bottom: 0.3rem; }
.dcard-compact-desc {
  font-size: 0.72rem; color: rgba(255,255,255,0.8); line-height: 1.45; margin-bottom: 0.75rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.dcard-compact-actions {
  display: flex; align-items: center; justify-content: space-between; gap: 0.45rem;
  padding-top: 0.65rem; border-top: 1px solid rgba(255,255,255,0.2);
}

.btn-view-pill {
  background: var(--tc-surface-white); color: var(--tc-ink-950);
  padding: 0.32rem 0.75rem !important; border-radius: var(--tc-r-pill);
  font-size: 0.7rem !important; font-weight: 700 !important; letter-spacing: 0.02em !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  gap: 0.25rem !important; line-height: 1.2 !important; text-decoration: none !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25); transition: all 0.2s var(--tc-spring);
  box-sizing: border-box !important;
}
.btn-view-pill:hover { background: #f0f0f0; transform: scale(1.04); }

.btn-add-pill,
.dcard-compact-actions .btn-add-pill,
.dcard-compact-actions .tc-add-btn,
.dcard-compact-actions .tc-add-package {
  background: var(--tc-crimson); color: var(--tc-surface-white);
  padding: 0.32rem 12px !important; border-radius: var(--tc-r-pill);
  font-size: 0.7rem !important; font-weight: 700 !important; letter-spacing: 0.02em !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  gap: 0.25rem !important; line-height: 1.2 !important; text-decoration: none !important;
  border: none !important; cursor: pointer !important;
  box-shadow: var(--tc-shadow-crimson); transition: background-color 0.2s ease;
  box-sizing: border-box !important; transform: none !important;
  width: auto !important; min-width: unset !important; max-width: none !important;
  overflow: visible !important;
}
.btn-add-pill:hover,
.dcard-compact-actions .btn-add-pill:hover,
.dcard-compact-actions .tc-add-btn:hover { background: var(--tc-crimson-hover); transform: none; }

.btn-add-pill--pkg,
.dcard-compact-actions .btn-add-pill--pkg {
  background: var(--tc-amber, #e7ac34) !important;
  color: var(--tc-navy, #071d26) !important;
  box-shadow: 0 4px 14px rgba(231, 172, 52, 0.35) !important;
}
.btn-add-pill--pkg:hover,
.dcard-compact-actions .btn-add-pill--pkg:hover {
  background: #f3b942 !important;
  color: var(--tc-navy, #071d26) !important;
  transform: none !important;
}

/* ─── FULL-BG PACKAGE CARDS ──────────────────────── */
.pkg-compact-fullbg {
  flex: 0 0 clamp(260px, 28vw, 320px); scroll-snap-align: start;
  height: 360px; position: relative; border-radius: var(--tc-r-lg);
  overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end;
  box-shadow: var(--tc-shadow-md); transition: transform 0.3s var(--tc-ease), box-shadow 0.3s var(--tc-ease);
  cursor: pointer; border: 1.5px solid var(--tc-border-glass); flex-shrink: 0;
}
.pkg-compact-fullbg:hover { transform: translateY(-5px); box-shadow: var(--tc-shadow-lg); border-color: var(--tc-amber, #e7ac34); }
.pkg-compact-fullbg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--tc-ease); }
.pkg-compact-fullbg:hover img { transform: scale(1.08); }
.pkg-compact-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,69,89,0.25) 0%, rgba(18,69,89,0.7) 40%, rgba(18,69,89,0.98) 100%); }
.pkg-compact-ribbon {
  position: absolute; top: 0.85rem; left: 0.85rem; z-index: 5;
  background: var(--tc-amber, #e7ac34); color: var(--tc-navy, #071d26); padding: 0.22rem 0.65rem; border-radius: var(--tc-r-pill);
  font-size: 0.58rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em;
  box-shadow: 0 4px 12px rgba(231, 172, 52, 0.35);
}
.pkg-compact-content { position: relative; z-index: 5; padding: 1.2rem; color: #ffffff; }
.pkg-compact-title { font-size: 1.08rem; font-weight: 600; color: #fff; margin-bottom: 0.3rem; }
.pkg-compact-desc { font-size: 0.72rem; color: rgba(255,255,255,0.8); line-height: 1.45; margin-bottom: 0.65rem; }
.pkg-compact-nodes { display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; margin-bottom: 0.85rem; }
.pkg-compact-node {
  background: rgba(255,255,255,0.12); border: 1px solid var(--tc-border-glass-strong);
  padding: 0.18rem 0.48rem; border-radius: var(--tc-r-sm); font-size: 0.6rem; font-weight: 700; color: #fff;
}

/* ─── FULL-WIDTH CTA 1: FEATURED PACKAGE BACKGROUND ── */
.cta-package-featured-bg {
  width: 100%; position: relative; min-height: 480px;
  display: flex; align-items: center; padding: 2rem 0 !important;
  background: url('https://trucapetours.com/wp-content/uploads/2026/08/cape-point-lighthouse-hiking-trail-ocean-viewpoint-family-walking-trucape-photo-tour-cape-town-travel.jpg') center/cover no-repeat;
  color: var(--tc-surface-white); overflow: hidden;
  border-top: 1px solid var(--tc-border-glass); border-bottom: 1px solid var(--tc-border-glass);
}
.cta-pkg-scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,69,89,0.98) 0%, rgba(18,69,89,0.88) 55%, rgba(18,69,89,0.5) 100%); }
.cta-pkg-grid { position: relative; z-index: 5; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 3rem; align-items: center; }
.cta-coord-tag { font-family: monospace; font-size: 0.72rem; color: var(--tc-amber, #e7ac34) !important; letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 0.4rem; display: block; }
.cta-package-featured-bg h2 { font-size: clamp(2.1rem, 4.4vw, 3.2rem); font-weight: 600; color: #fff; margin-bottom: 0.75rem; }
.cta-package-featured-bg p { font-size: 0.92rem; color: rgba(255,255,255,0.85); line-height: 1.65; max-width: 520px; }

.stops-mini-carousel-box {
  background: rgba(7, 21, 30, 0.9); border: 1.5px solid var(--tc-border-glass-strong);
  border-radius: var(--tc-r-lg); padding: 1.6rem; backdrop-filter: blur(20px); box-shadow: var(--tc-shadow-floating);
}
.stops-mini-carousel-box > span:first-child {
  color: var(--tc-amber, #e7ac34) !important;
}
.stops-mini-track { display: flex; gap: 0.75rem; overflow-x: auto; scrollbar-width: none; padding: 0.3rem 0 0.8rem; margin-top: 0.8rem; }
.stops-mini-track::-webkit-scrollbar { display: none; }
.stop-thumbnail-tile {
  flex: 0 0 110px; height: 110px; position: relative; border-radius: var(--tc-r-md);
  overflow: hidden; border: 1px solid var(--tc-border-glass); box-shadow: var(--tc-shadow-sm); flex-shrink: 0;
}
.stop-thumbnail-tile img { width: 100%; height: 100%; object-fit: cover; }
.stop-tile-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(5,10,15,0.95) 100%); }
.stop-tile-info { position: absolute; bottom: 0.4rem; left: 0.45rem; right: 0.45rem; font-size: 0.62rem; font-weight: 700; color: #fff; line-height: 1.2; }
.stop-num-badge { position: absolute; top: 0.35rem; left: 0.35rem; background: var(--tc-crimson); color: #fff; font-size: 0.52rem; font-weight: 800; width: 16px; height: 16px; border-radius: 50%; display: grid; place-items: center; }

/* ─── FULL-WIDTH CTA 2: DESTINATION DIRECTORY MARQUEE ─ */
.cta-dest-slider {
  width: 100%; position: relative;
  background: linear-gradient(135deg, var(--tc-navy-800) 0%, var(--tc-navy-950) 100%);
  color: var(--tc-surface-white); padding: 2rem 0 !important;
  overflow: hidden; border-top: 1px solid var(--tc-border-glass); border-bottom: 1px solid var(--tc-border-glass);
}
.dest-marquee-lane {
  display: flex !important;
  gap: 1.2rem !important;
  margin: 2rem 0 !important;
  overflow-x: auto !important;
  scrollbar-width: none !important;
  padding: 0.5rem 0.2rem !important;
  -webkit-overflow-scrolling: touch !important;
}
.dest-marquee-lane::-webkit-scrollbar { display: none !important; }
.dest-marquee-lane > p { display: contents !important; margin: 0 !important; }
.dest-marquee-lane > p > .dest-slider-tile:not(:has(img)), .dest-marquee-lane > .dest-slider-tile:not(:has(img)) { display: none !important; }
.dest-slider-tile {
  display: block !important;
  flex: 0 0 240px !important;
  width: 240px !important;
  min-width: 240px !important;
  max-width: 240px !important;
  height: 160px !important;
  position: relative !important;
  border-radius: var(--tc-r-md) !important;
  overflow: hidden !important;
  border: 1px solid var(--tc-border-glass) !important;
  box-shadow: var(--tc-shadow-md) !important;
  text-decoration: none !important;
  transition: transform 0.3s var(--tc-ease) !important;
}
.dest-slider-tile:hover {
  transform: scale(1.04) !important;
  border-color: var(--tc-crimson) !important;
}
.dest-slider-tile img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border: none !important;
}
.dest-slider-tile-scrim {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, transparent 40%, rgba(5,10,15,0.9) 100%) !important;
  pointer-events: none !important;
}
.dest-slider-tile-label {
  position: absolute !important;
  bottom: 0.65rem !important;
  left: 0.75rem !important;
  right: 0.75rem !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  z-index: 2 !important;
}

/* ─── DRIVER PROFILE SECTION (IGSHAAN JONATHAN) ──── */
.section-driver-profile {
  width: 100% !important; position: relative !important;
  background-color: var(--tc-crimson, #d3183e) !important;
  background: var(--tc-crimson, #d3183e) !important;
  color: #ffffff !important;
  padding: 2rem 0 !important;
  overflow: hidden !important;
}
.section-driver-profile::before {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: radial-gradient(ellipse 80% 70% at 50% 50%, transparent 20%, rgba(120,8,24,0.45) 100%); pointer-events: none;
}
.section-driver-profile::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(135deg, rgba(255,255,255,0.08) 0%, transparent 40%, rgba(0,0,0,0.14) 100%); pointer-events: none;
}
.driver-bg-arc-rings { position: absolute; inset: 0; z-index: 1; pointer-events: none; width: 100%; height: 100%; overflow: hidden; }
.driver-grid {
  position: relative; z-index: 5;
  display: grid; grid-template-columns: 1fr 5fr;
  gap: clamp(1rem, 2.5vw, 2.2rem); align-items: center;
}
.driver-col-left {
  width: 13rem; max-width: 13rem;
  display: flex; flex-direction: column; align-items: center; gap: 1.2rem;
  flex-shrink: 0;
}
.driver-photo-frame { position: relative; width: 13rem; height: 13rem; aspect-ratio: 1 / 1; flex-shrink: 0; }
.driver-photo-frame::before { content: ''; position: absolute; inset: -8px; border-radius: 50%; border: 1.5px dashed rgba(255,255,255,0.45); animation: spin-slow 40s linear infinite; }
.driver-photo-frame::after { content: ''; position: absolute; inset: -18px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.15); animation: spin-slow 60s linear infinite reverse; }
@keyframes spin-slow { to { transform: rotate(360deg); } }

.driver-photo-img {
  width: 100% !important; height: 100% !important; aspect-ratio: 1 / 1 !important; border-radius: 50% !important; object-fit: cover !important; object-position: top center !important;
  border: 4px solid rgba(255,255,255,0.9); box-shadow: 0 16px 48px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.3); display: block;
}
.driver-id-badge {
  background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.35); backdrop-filter: blur(10px);
  padding: 0.45rem 1rem; border-radius: var(--tc-r-pill);
  display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.74rem; font-weight: 700; color: #ffffff; box-shadow: 0 4px 16px rgba(0,0,0,0.2);
  white-space: nowrap;
}

@media (max-width: 860px) {
  .driver-grid { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 2.5rem; }
  .driver-col-right { align-items: center; }
  .driver-cta-row { justify-content: center; }
}
.driver-stat-chips { display: flex; flex-direction: column; gap: 0.65rem; width: 100%; }
.driver-stat-chip {
  background: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.2); border-radius: var(--tc-r-md);
  padding: 0.7rem 1rem; display: flex; align-items: center; gap: 0.75rem; backdrop-filter: blur(8px);
}
.driver-stat-chip-icon {
  width: 34px; height: 34px; border-radius: var(--tc-r-sm); background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.25);
  display: grid; place-items: center; font-size: 0.78rem; color: #ffffff; flex-shrink: 0;
}
.driver-stat-chip-val { font-size: 1rem; font-weight: 700; color: #ffffff; line-height: 1; display: block; }
.driver-stat-chip-lbl { font-size: 0.62rem; color: rgba(255,255,255,0.65); display: block; margin-top: 0.15rem; }

.driver-col-right { display: flex; flex-direction: column; }
.driver-eyebrow { font-family: monospace; font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.55); display: block; margin-bottom: 0.6rem; }
.driver-col-right h2 { font-size: clamp(2rem, 4vw, 3.1rem); font-weight: 600; color: #ffffff; line-height: 1.08; letter-spacing: -0.04em; margin-bottom: 0.65rem; }
.driver-copy { font-size: 0.92rem; line-height: 1.7; color: rgba(255,255,255,0.82); max-width: 520px; margin-bottom: 2rem; }
.driver-rule { width: 48px; height: 2px; background: rgba(255,255,255,0.35); border-radius: 99px; margin-bottom: 1.8rem; }
.driver-cta-row { display: flex; align-items: center; gap: 0.9rem; flex-wrap: wrap; }

.btn-driver-call {
  background: #ffffff; color: var(--tc-crimson); padding: 0.78rem 1.6rem; border-radius: var(--tc-r-pill);
  font-size: 0.8rem; font-weight: 800; letter-spacing: 0.025em; display: inline-flex; align-items: center; gap: 0.5rem;
  box-shadow: 0 8px 24px rgba(0,0,0,0.2); transition: all 0.22s var(--tc-spring);
}
.btn-driver-call:hover { background: #f0f4f8; transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.25); }

.btn-driver-whatsapp {
  background: var(--tc-crimson-hover, #b51032);
  color: #ffffff;
  padding: 0.76rem 1.6rem;
  border-radius: var(--tc-r-pill);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 2px solid rgba(255,255,255,0.75);
  box-shadow: 0 8px 24px rgba(0,0,0,0.22);
  transition: all 0.22s var(--tc-spring);
}
.btn-driver-whatsapp:hover {
  background: #940a25;
  border-color: #ffffff;
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.32);
}
.btn-driver-whatsapp .wa-icon { color: #ffffff; font-size: 1.05rem; }

/* ─── ACTION BUTTONS ──────────────────────────────── */
.btn-primary {
  background: var(--tc-crimson); color: var(--tc-surface-white); padding: 0.68rem 1.4rem; border-radius: var(--tc-r-pill);
  font-size: 0.8rem; font-weight: 700; letter-spacing: 0.02em; display: inline-flex; align-items: center; gap: 0.45rem;
  box-shadow: var(--tc-shadow-crimson); transition: all 0.2s var(--tc-spring);
}
.btn-primary:hover { background: var(--tc-crimson-hover); transform: scale(1.03); }

.btn-secondary {
  background: transparent; color: inherit; border: 1.5px solid currentColor;
  padding: 0.64rem 1.3rem; border-radius: var(--tc-r-pill); font-size: 0.78rem; font-weight: 600;
  display: inline-flex; align-items: center; gap: 0.45rem; transition: all 0.2s;
}
.btn-secondary:hover { background: rgba(255, 255, 255, 0.12); transform: scale(1.02); }

/* ─── LIVE SITE TRAVEL PLAN STICKY BUTTON & DRAWER ─── */
.tc-mobile-cart-toggle {
  position: fixed;
  right: 20px;
  bottom: max(18px, env(safe-area-inset-bottom, 18px));
  z-index: 999;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--tc-navy, #124559);
  color: #fff;
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--tc-r-pill);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
  font-family: var(--tc-font-display);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.25s var(--tc-spring), opacity 0.25s ease;
  transform: translateY(120%);
  opacity: 0;
  pointer-events: none;
}
.tc-mobile-cart-toggle.has-items,
.tc-mobile-cart-toggle.tc-scroll-show {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.tc-mobile-cart-toggle b {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 50%;
  background: var(--tc-crimson, #d3183e);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 800;
}
/* ─── TRAVEL PLAN SIDECART FLOATING MODAL ─────────── */
.tc-mobile-cart-drawer {
  position: fixed !important;
  inset: 0 !important;
  z-index: 100000 !important;
  pointer-events: none !important;
  display: block !important;
}
.tc-mobile-cart-drawer.is-open {
  pointer-events: auto !important;
}
.tc-mobile-cart-backdrop {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(4, 12, 18, 0.6) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.3s ease !important;
  z-index: 100000 !important;
}
.tc-mobile-cart-drawer.is-open .tc-mobile-cart-backdrop {
  opacity: 1 !important;
  pointer-events: auto !important;
}
.tc-mobile-cart-panel {
  position: fixed !important;
  top: 1.25rem !important;
  right: 1.25rem !important;
  bottom: 1.25rem !important;
  left: auto !important;
  width: min(450px, calc(100vw - 2.5rem)) !important;
  height: calc(100vh - 2.5rem) !important;
  max-height: calc(100vh - 2.5rem) !important;
  margin: 0 !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: var(--tc-ink-900, #0a1118) !important;
  border-radius: 20px !important;
  box-shadow: 0 24px 64px rgba(4, 12, 18, 0.32), 0 4px 16px rgba(4, 12, 18, 0.08) !important;
  border: 1px solid rgba(10, 17, 24, 0.12) !important;
  display: flex !important;
  flex-direction: column !important;
  z-index: 100001 !important;
  overflow: hidden !important;
  transform: translateX(calc(100% + 2rem)) !important;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
  pointer-events: auto !important;
}
.tc-mobile-cart-drawer.is-open .tc-mobile-cart-panel {
  transform: translateX(0) !important;
}
.tc-mobile-cart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 1.5rem;
  background: #ffffff;
  border-bottom: 1px solid var(--tc-border-subtle, rgba(10, 17, 24, 0.08));
}
.tc-mobile-cart-head h2 {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--tc-ink-950, #050a0f);
  margin: 0;
  font-family: var(--tc-font-display, inherit);
}
.tc-mobile-cart-head button {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--tc-canvas-100, #f3f1ec);
  border: none;
  font-size: 1.15rem;
  color: var(--tc-ink-700, #1c2b3a);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background 0.2s ease, transform 0.2s ease;
}
.tc-mobile-cart-head button:hover {
  background: var(--tc-canvas-200, #e8e4db);
  transform: scale(1.05);
}
.tc-mobile-cart-body {
  padding: 1.25rem 1.5rem;
  overflow-y: auto;
  flex: 1 1 auto;
  background: #ffffff;
}
.tc-mobile-cart-actions {
  padding: 1.2rem 1.5rem max(1.2rem, env(safe-area-inset-bottom, 1.2rem));
  background: var(--tc-canvas-50, #fbfaf8);
  border-top: 1px solid var(--tc-border-subtle, rgba(10, 17, 24, 0.08));
  display: flex;
  gap: 0.8rem;
}
.tc-mobile-cart-actions .tc-search-btn {
  flex: 1;
  background: var(--tc-crimson, #d3183e);
  color: #fff !important;
  border-radius: var(--tc-r-pill, 9999px);
  padding: 0.75rem 1rem;
  text-align: center;
  font-weight: 700;
  font-size: 0.82rem;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(211, 24, 62, 0.35);
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.tc-mobile-cart-actions .tc-search-btn:hover {
  background: var(--tc-crimson-hover, #b51032);
  transform: translateY(-1px);
}
.tc-mobile-cart-actions .tc-cart-clear {
  background: transparent;
  border: 1px solid var(--tc-border-strong, rgba(10, 17, 24, 0.16));
  border-radius: var(--tc-r-pill, 9999px);
  padding: 0.75rem 1rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--tc-slate-700, #334450);
  cursor: pointer;
  transition: all 0.2s ease;
}
.tc-mobile-cart-actions .tc-cart-clear:hover {
  border-color: var(--tc-crimson, #d3183e);
  color: var(--tc-crimson, #d3183e);
}

@media (max-width: 600px) {
  .tc-mobile-cart-panel {
    top: 0.75rem !important;
    right: 0.75rem !important;
    bottom: 0.75rem !important;
    left: 0.75rem !important;
    width: calc(100vw - 1.5rem) !important;
    height: calc(100vh - 1.5rem) !important;
    max-height: calc(100vh - 1.5rem) !important;
    border-radius: 18px !important;
  }
}

/* ─── RESPONSIVE BREAKPOINTS ──────────────────────── */
@media (max-width: 960px) {
  .hero-white-stage {
    min-height: 520px !important; max-height: none !important; height: auto !important;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding-top: calc(max(1rem, env(safe-area-inset-top)) + 75px) !important;
    padding-bottom: max(2rem, env(safe-area-inset-bottom)) !important;
  }
  .hero-photo-slide {
    background-size: cover !important;
    background-position: center center !important;
  }
  .hero-white-scrim {
    background: linear-gradient(0deg, rgba(251,250,248,0.97) 0%, rgba(251,250,248,0.85) 38%, rgba(251,250,248,0.3) 78%, rgba(251,250,248,0.05) 100%) !important;
  }
  .hero-grid-layout { grid-template-columns: 1fr; gap: 0; width: 100%; }
  .hero-main-headline,
  h2.hero-main-headline {
    font-size: clamp(1.9rem, 5vw, 2.7rem) !important;
  }
  .hero-featured-package-card { display: none !important; }
  .hero-vehicle-standalone { width: 35% !important; max-width: 140px !important; min-width: 105px !important; margin-bottom: 0.45rem !important; }
  .cta-pkg-grid { grid-template-columns: 1fr; gap: 2rem; }
  .driver-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .driver-col-left { width: 100%; }
  .driver-col-right { text-align: center; }
  .driver-cta-row { justify-content: center; }
  .driver-rule { margin-left: auto; margin-right: auto; }
  .driver-stat-chips { max-width: 340px; margin: 0 auto; }
  .nav-links-row { display: none; }
  .search-modal-row { grid-template-columns: 1fr; }
  .benefit-feature-grid,
  .plan-strip-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
}

@media (max-width: 768px) {
  .hero-vehicle-standalone { width: 45% !important; max-width: 135px !important; min-width: 95px !important; margin-bottom: 0.4rem !important; }
  .section-fw,
  #brand-story,
  .section-driver-profile,
  .cta-dest-slider,
  .cta-package-featured-bg,
  .tc-plan-strip,
  .bg-navy-950,
  .bg-navy-900,
  .bg-canvas-50,
  .bg-canvas-100,
  .bg-white {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .dcard-compact-fullbg { flex: 0 0 calc(100vw / 1.7 - 24px); height: 310px; }
  .pkg-compact-fullbg { flex: 0 0 calc(100vw / 1.5 - 24px); height: 330px; }
}

@media (max-width: 480px) {
  .hero-vehicle-standalone { width: 50% !important; max-width: 130px !important; min-width: 90px !important; margin-bottom: 0.35rem !important; }
  .service-grid {
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
  }
  .plan-strip-steps {
    gap: 0.85rem !important;
  }
  .plan-step {
    gap: 0.75rem !important;
  }
  .plan-step b {
    flex: 0 0 1.8rem !important;
    font-size: 1.15rem !important;
  }
}

/* Portrait driver profile layout on tablet and mobile. */
@media (max-width: 1023px) {
  .section-driver-profile .driver-grid {
    grid-template-columns: 1fr !important;
    justify-items: start !important;
    align-items: start !important;
    text-align: left !important;
    gap: 2rem !important;
  }
  .section-driver-profile .driver-col-left {
    width: 100% !important;
    max-width: 100% !important;
    align-items: flex-start !important;
  }
  .section-driver-profile .driver-col-right {
    width: 100% !important;
    align-items: flex-start !important;
    text-align: left !important;
  }
  .section-driver-profile .driver-cta-row { justify-content: flex-start !important; }
  .section-driver-profile .driver-photo-frame {
    width: clamp(10rem, 38vw, 13rem) !important;
    height: clamp(10rem, 38vw, 13rem) !important;
    aspect-ratio: 1 / 1 !important;
  }
  .section-driver-profile .driver-photo-img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    object-position: top center !important;
  }
  .section-driver-profile .driver-id-badge { align-self: flex-start !important; }
  .section-driver-profile .driver-stat-chips { max-width: 100% !important; margin: 0 !important; }
}

/* ─── PHASE 3 SECTION COMPONENTS ─────────────────────── */

/* Section header pattern */
.section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.7rem !important;
  flex-wrap: wrap;
  margin-bottom: 0.8rem !important;
}
.section-head h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 600; margin-top: 0.25rem; }
.section-eyebrow { display: block; font-size: 0.65rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: var(--tc-crimson); margin-bottom: 0.25rem; }

/* ── Hero eyebrow location ─ */
.hero-eyebrow-location { display: flex; align-items: center; gap: 0.5rem; font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; color: var(--tc-crimson); margin-bottom: 0.2rem; }
.hero-eyebrow-location i { font-size: 0.8rem; }

/* ── Hero atlas nav ─ */
.hero-atlas-nav { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 1.4rem; }
.hero-atlas-nav a { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.85rem; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); border-radius: var(--tc-r-pill); color: var(--tc-ink-900); text-decoration: none; font-size: 0.72rem; font-weight: 600; transition: background 0.2s; backdrop-filter: blur(4px); }
.hero-atlas-nav a:hover { background: rgba(211,24,62,0.1); border-color: var(--tc-crimson); }
.hero-atlas-nav a b { font-size: 0.6rem; color: var(--tc-crimson); font-weight: 800; }
.hero-atlas-nav a span { font-weight: 700; }
.hero-atlas-nav a small { display: none; }
.hero-route-note { margin-top: 1rem; font-size: 0.78rem; color: var(--tc-slate-600); }
.hero-route-note strong { color: var(--tc-ink-900); }

/* ── Greeting animation ─ */
.tc-home-greeting { display: inline-block; transition: opacity 0.2s ease; }
.tc-home-greeting.is-changing { opacity: 0; }

/* ── Route Board ─ */
.route-board-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 1.5rem; }
.route-board-card { display: flex; flex-direction: column; gap: 0.3rem; padding: 1.4rem 1.2rem; background: var(--tc-surface-white); border: 1.5px solid var(--tc-border-subtle); border-radius: var(--tc-r-lg); text-decoration: none; color: var(--tc-ink-900); transition: border-color 0.2s, box-shadow 0.2s; position: relative; }
.route-board-card:hover { border-color: var(--tc-crimson); box-shadow: 0 4px 18px rgba(211,24,62,0.1); }
.route-board-card strong { font-size: 1.15rem; font-weight: 700; }
.route-board-card small { font-size: 0.74rem; color: var(--tc-slate-600); line-height: 1.4; }
.route-board-card b { position: absolute; top: 1.2rem; right: 1.2rem; font-size: 1.2rem; color: var(--tc-slate-400); font-weight: 400; }

/* ── Planner steps ─ */
.planner-steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 1.5rem; }
.planner-step-card { padding: 1.6rem; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--tc-r-lg); color: #fff; }
.planner-step-card b { display: block; font-size: 2rem; font-weight: 800; color: var(--tc-crimson); margin-bottom: 0.5rem; font-family: var(--tc-font-display); }
.planner-step-card h3 { font-size: 1rem; font-weight: 700; margin-bottom: 0.4rem; color: #fff; }
.planner-step-card p { font-size: 0.82rem; color: rgba(255,255,255,0.7); line-height: 1.5; margin: 0; }

/* ─── ENHANCED DARK PRODUCT/DESTINATION CATEGORY CARDS ─── */
.category-card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(0.85rem, 1.8vw, 1.25rem);
  margin-top: 2rem;
  position: relative;
  z-index: 5;
}

.tc-cat-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(1.1rem, 2.2vw, 1.5rem);
  min-height: 220px;
  border-radius: var(--tc-r-lg, 20px);
  overflow: hidden;
  background-color: #2b040a;
  border: 1.5px solid rgba(211, 24, 62, 0.28);
  text-decoration: none;
  color: #ffffff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: transform 0.3s var(--tc-spring), border-color 0.3s ease, box-shadow 0.3s ease;
  background-image: var(--tc-card-image);
  background-size: cover;
  background-position: center;
}

.category-card-grid .tc-cat-card:not([style*="--tc-card-image"]) { display: none; }
.category-card-grid .tc-cat-card:not(:has(.tc-cat-card-bg)) { display: none !important; }
.category-card-grid > p { display: none !important; }

.tc-cat-card-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-image: var(--tc-card-image);
  background-size: cover;
  background-position: center;
  transition: transform 0.6s var(--tc-ease), filter 0.4s ease;
  z-index: 0;
}

.tc-cat-card-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(140, 8, 28, 0.62) 0%, rgba(85, 4, 18, 0.86) 50%, rgba(4, 12, 18, 0.98) 100%);
  mix-blend-mode: soft-light;
  z-index: 1;
  transition: background 0.35s ease;
}

.tc-cat-card:hover {
  transform: translateY(-5px);
  border-color: var(--tc-crimson, #d3183e);
  box-shadow: 0 16px 40px rgba(211, 24, 62, 0.35), 0 8px 20px rgba(0, 0, 0, 0.5);
}

.tc-cat-card:hover .tc-cat-card-bg {
  transform: scale(1.08);
}

.tc-cat-card:hover .tc-cat-card-scrim {
  background: linear-gradient(180deg, rgba(185, 12, 38, 0.52) 0%, rgba(110, 6, 24, 0.82) 48%, rgba(4, 12, 18, 0.96) 100%);
}

.tc-cat-card-arrow {
  position: absolute;
  top: clamp(0.85rem, 2vw, 1.25rem);
  right: clamp(0.85rem, 2vw, 1.25rem);
  font-size: clamp(1.8rem, 3.2vw, 2.3rem);
  font-weight: 300;
  color: #ffffff !important;
  line-height: 1;
  z-index: 3;
  transition: transform 0.3s var(--tc-spring), text-shadow 0.3s ease;
  opacity: 0.95;
  user-select: none;
}

.tc-cat-card:hover .tc-cat-card-arrow {
  transform: translate(4px, -4px) scale(1.12);
  color: #ffffff !important;
  text-shadow: 0 0 16px rgba(255, 255, 255, 0.8);
  opacity: 1;
}

.tc-cat-card-body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.tc-cat-card-title {
  font-size: clamp(0.92rem, 1.6vw, 1.08rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

.tc-cat-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: clamp(0.64rem, 1.2vw, 0.72rem);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.78);
  margin-top: 0.15rem;
}

@media (max-width: 1024px) {
  .category-card-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 0.85rem;
  }
  .tc-cat-card {
    min-height: 200px;
    padding: 1.1rem 1rem 1rem;
  }
}

@media (max-width: 767px) {
  .category-card-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: clamp(0.65rem, 2.5vw, 0.95rem) !important;
  }
  .tc-cat-card {
    min-height: 170px;
    padding: 1rem 0.85rem 0.85rem;
  }
  .tc-cat-card-arrow {
    font-size: 1.6rem;
    top: 0.7rem;
    right: 0.7rem;
  }
  .tc-cat-card-title {
    font-size: 0.88rem;
  }
  .tc-cat-card-meta {
    font-size: 0.64rem;
  }
}

/* ── Benefit / service feature grid ─ */
.benefit-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.benefit-list { display: flex; flex-direction: column; gap: 1.2rem; }
.benefit-item { padding: 1rem 1.2rem; border-left: 3px solid var(--tc-crimson); background: var(--tc-surface-white); border-radius: 0 var(--tc-r-md) var(--tc-r-md) 0; box-shadow: 0 2px 8px rgba(5,10,15,0.06); }
.benefit-item strong { display: block; font-size: 0.88rem; font-weight: 700; color: var(--tc-ink-900); margin-bottom: 0.2rem; }
.benefit-item span { font-size: 0.78rem; color: var(--tc-slate-600); }
.service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.service-grid-item { padding: 1rem; background: var(--tc-canvas-100, #f3f1ec); border-radius: var(--tc-r-md); }
.service-grid-item b { display: block; font-size: 1.4rem; font-weight: 800; color: var(--tc-crimson); font-family: var(--tc-font-display); }
.service-grid-item strong { display: block; font-size: 0.82rem; font-weight: 700; margin-bottom: 0.2rem; }
.service-grid-item span { font-size: 0.74rem; color: var(--tc-slate-600); }

/* ── Plan strip CTA ─ */
.plan-strip-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.plan-strip-steps { display: flex; flex-direction: column; gap: 1rem; }
.plan-step { display: flex; align-items: flex-start; gap: 1rem; }
.plan-step b { flex: 0 0 2.2rem; font-size: 1.3rem; font-weight: 800; color: var(--tc-crimson); font-family: var(--tc-font-display); }
.plan-step strong { display: block; font-size: 0.88rem; font-weight: 700; color: #fff; margin-bottom: 0.15rem; }
.plan-step span { font-size: 0.78rem; color: rgba(255,255,255,0.65); }

/* ── FAQ accordions ─ */
.faq-list { display: flex; flex-direction: column; gap: 0.7rem; }
.faq-list details { background: var(--tc-surface-white); border: 1px solid var(--tc-border-strong); padding: 1rem 1.3rem; border-radius: var(--tc-r-md); cursor: pointer; }
.faq-list details summary { font-weight: 700; font-size: 0.9rem; color: var(--tc-ink-900); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq-list details summary::after { content: '+'; font-size: 1.2rem; color: var(--tc-crimson); flex-shrink: 0; }
.faq-list details[open] summary::after { content: '−'; }
.faq-list details p { font-size: 0.83rem; color: var(--tc-slate-700); margin-top: 0.7rem; line-height: 1.6; }

/* ── CTA featured bg section (v13 exact spec) ─ */
.cta-package-featured-bg {
  width: 100%; position: relative;
  min-height: auto; display: flex; align-items: center;
  padding: 2rem 0 !important;
  overflow: hidden;
  background: linear-gradient(135deg, var(--tc-navy-800), var(--tc-navy-950));
  color: var(--tc-surface-white);
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.cta-package-featured-bg::before {
  content: '';
  position: absolute; inset: 0;
  background: var(--tc-cta-bg) center/cover no-repeat;
  z-index: 0;
}
.cta-pkg-scrim {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(18,69,89,0.98) 0%, rgba(18,69,89,0.88) 55%, rgba(18,69,89,0.5) 100%);
}
.cta-package-featured-bg .container { position: relative; z-index: 2; min-width: 0; max-width: 100%; }
.cta-pkg-grid {
  position: relative; z-index: 5;
  display: grid; grid-template-columns: 1.15fr 0.85fr;
  gap: 3rem; align-items: center;
  min-width: 0; max-width: 100%; width: 100%;
}
.cta-pkg-grid > * {
  min-width: 0; max-width: 100%;
}
.cta-coord-tag {
  display: inline-block; font-family: monospace; font-size: 0.72rem;
  font-weight: 800; text-transform: uppercase; letter-spacing: 0.15em;
  color: var(--tc-amber, #e7ac34) !important; margin-bottom: 0.4rem;
  word-break: break-word;
}
.cta-package-featured-bg h2 {
  font-size: clamp(1.85rem, 4.4vw, 3.2rem); font-weight: 600;
  color: #fff; margin-bottom: 0.75rem;
  overflow-wrap: break-word; word-wrap: break-word;
}
.cta-package-featured-bg p {
  font-size: 0.92rem; color: rgba(255,255,255,0.85);
  line-height: 1.65; max-width: 520px;
  overflow-wrap: break-word; word-wrap: break-word;
}

/* ── Stops mini-carousel frosted box ─ */
.stops-mini-carousel-box {
  background: rgba(7, 21, 30, 0.9);
  border: 1.5px solid rgba(255,255,255,0.3);
  border-radius: var(--tc-r-lg); padding: clamp(1.1rem, 3vw, 1.6rem);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 20px 50px -10px rgba(5,10,15,0.4);
  max-width: 100%; width: 100%; box-sizing: border-box;
  overflow: hidden; min-width: 0;
}
.stops-mini-track {
  display: flex; gap: 0.75rem; overflow-x: auto; scrollbar-width: none;
  padding: 0.3rem 0 0.8rem; margin-top: 0.8rem;
  width: 100%; max-width: 100%; box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}
.stops-mini-track::-webkit-scrollbar { display: none; }

/* ── Individual stop thumbnail tile ─ */
.stop-thumbnail-tile {
  flex: 0 0 110px; height: 110px; position: relative;
  border-radius: var(--tc-r-md); overflow: hidden;
  border: 1px solid rgba(255,255,255,0.18);
  box-shadow: 0 2px 8px rgba(10,17,24,0.04);
  flex-shrink: 0;
}
.stop-thumbnail-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.stop-tile-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(5,10,15,0.95) 100%);
}
.stop-tile-info {
  position: absolute; bottom: 0.4rem; left: 0.45rem; right: 0.45rem;
  font-size: 0.62rem; font-weight: 700; color: #fff; line-height: 1.2; z-index: 3;
}
.stop-num-badge {
  position: absolute; top: 0.35rem; left: 0.35rem; z-index: 4;
  background: var(--tc-crimson); color: #fff;
  font-size: 0.52rem; font-weight: 800;
  width: 16px; height: 16px; border-radius: 50%;
  display: grid; place-items: center;
}

/* Responsive CTA grid */
@media (max-width: 960px) {
  .cta-package-featured-bg { padding: 2rem 0 !important; }
  .cta-pkg-scrim {
    background: linear-gradient(180deg, rgba(18,69,89,0.96) 0%, rgba(18,69,89,0.92) 55%, rgba(18,69,89,0.78) 100%);
  }
  .cta-pkg-grid { grid-template-columns: 1fr; gap: 2rem; min-width: 0; }
}

/* ── Reversed column layout (stops box on left, copy on right) ── */
/* Desktop ≥ 961px */
@media (min-width: 961px) {
  .cta-pkg-grid--reversed > :first-child { order: 2; }
  .cta-pkg-grid--reversed > :last-child  { order: 1; }
  .cta-pkg-grid--reversed {
    grid-template-columns: 0.85fr 1.15fr;
  }
}
/* Portrait tablet (481px – 960px) */
@media (min-width: 481px) and (max-width: 960px) {
  .cta-pkg-grid--reversed { grid-template-columns: 1fr; }
  .cta-pkg-grid--reversed > :first-child { order: 2; }
  .cta-pkg-grid--reversed > :last-child  { order: 1; }
}

@media (max-width: 480px) {
  .stops-mini-carousel-box { padding: 1.1rem 0.85rem; }
  .stop-thumbnail-tile { flex: 0 0 95px; height: 95px; }
}
/* ─── COMPACT FULL-BG PACKAGE CARDS (EXACT V13 SPEC) ─── */
.pkg-compact-fullbg {
  flex: 0 0 clamp(260px, 28vw, 320px);
  scroll-snap-align: start;
  height: 360px; position: relative; border-radius: var(--tc-r-lg, 20px);
  overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end;
  box-shadow: var(--tc-shadow-md); transition: transform 0.3s var(--tc-ease), box-shadow 0.3s var(--tc-ease);
  cursor: pointer; border: 1.5px solid var(--tc-border-glass, rgba(255,255,255,0.18)); flex-shrink: 0;
}
.pkg-compact-fullbg:hover {
  transform: translateY(-5px); box-shadow: var(--tc-shadow-lg); border-color: var(--tc-crimson, #d3183e);
}
.pkg-compact-fullbg img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s var(--tc-ease);
}
.pkg-compact-fullbg:hover img { transform: scale(1.08); }
.pkg-compact-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(18,69,89,0.25) 0%, rgba(18,69,89,0.7) 40%, rgba(18,69,89,0.98) 100%);
}
.pkg-compact-ribbon {
  position: absolute; top: 0.85rem; left: 0.85rem; z-index: 5;
  background: var(--tc-crimson, #d3183e); color: #fff; padding: 0.22rem 0.65rem; border-radius: var(--tc-r-pill, 9999px);
  font-size: 0.58rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em;
  box-shadow: var(--tc-shadow-crimson);
}
.pkg-compact-content {
  position: relative; z-index: 5; padding: 1.2rem; color: #ffffff;
}
.pkg-compact-title { font-size: 1.08rem; font-weight: 600; color: #fff; margin-bottom: 0.3rem; }
.pkg-compact-desc { font-size: 0.72rem; color: rgba(255,255,255,0.8); line-height: 1.45; margin-bottom: 0.65rem; }
.pkg-compact-nodes { display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; margin-bottom: 0.85rem; }
.pkg-compact-node {
  background: rgba(255,255,255,0.12); border: 1px solid var(--tc-border-glass-strong, rgba(255,255,255,0.3));
  padding: 0.18rem 0.48rem; border-radius: var(--tc-r-sm, 8px); font-size: 0.6rem; font-weight: 700; color: #fff;
}
.pkg-node-arrow { color: rgba(255,255,255,0.5); font-size: 0.6rem; }

/* ─── V14 SINGLE PRODUCT LANDING PAGE (FULLSCREEN HERO & CUSTOM SECTIONS) ─── */
.tc-product-landing-page {
  padding-bottom: 75px;
}

/* Product pages only have the simple footer (suppress global 4-column theme footer on single product/package pages) */
body.single-product .wp-block-template-part:has(> .tc-site-footer),
body.single-product footer.tc-site-footer:not(.tc-product-simple-footer),
body.single-trucape_package .wp-block-template-part:has(> .tc-site-footer),
body.single-trucape_package footer.tc-site-footer:not(.tc-product-simple-footer),
.tc-product-landing-page ~ .tc-commerce-footer-minimal,
.tc-product-landing-page ~ footer.tc-site-footer {
  display: none !important;
}

/* 1. Fullscreen Hero */
.tc-product-hero-fullscreen {
  position: relative;
  min-height: 85vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  padding: 6rem 0 4rem;
  box-sizing: border-box;
  text-align: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.tc-product-hero-breadcrumbs {
  margin-bottom: 1.5rem;
  font-size: 0.82rem;
  color: rgba(255,255,255,0.75);
}
.tc-product-hero-breadcrumbs a {
  color: #ffffff;
  text-decoration: none;
}
.tc-product-hero-breadcrumbs a:hover {
  text-decoration: underline;
}

.tc-product-eyebrow-badge {
  display: inline-block;
  background: var(--tc-crimson, #d3183e);
  color: #ffffff;
  padding: 0.3rem 0.85rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 1rem;
}

.tc-product-hero-title {
  font-family: var(--tc-font-display, "Sora", sans-serif);
  font-size: clamp(2.4rem, 5.5vw, 4.2rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.15;
  margin-bottom: 1rem;
}

.tc-product-hero-lede {
  font-size: clamp(0.95rem, 1.8vw, 1.2rem);
  line-height: 1.6;
  color: rgba(255,255,255,0.9);
  max-width: 720px;
  margin: 0 auto 1.5rem;
}

.tc-product-hero-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 2rem;
}
.tc-hero-tag-pill {
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.3);
  color: #ffffff;
  padding: 0.28rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 700;
}

.tc-product-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}
.tc-hero-add-lg {
  font-size: 0.95rem !important;
  padding: 0.85rem 1.8rem !important;
}
.tc-wa-hero-btn {
  background: #25d366 !important;
  border-color: #25d366 !important;
  color: #ffffff !important;
}

/* 2. Section 1 Description & Marquee */
.tc-sec-title {
  font-size: clamp(1.8rem, 3.5vw, 2.5rem);
  font-weight: 600;
  color: var(--tc-ink-900, #07151e);
  margin-bottom: 1.2rem;
}
.tc-product-full-description {
  font-size: 0.98rem;
  line-height: 1.8;
  color: var(--tc-slate-700, #334155);
}

.tc-gallery-marquee-container {
  margin-top: 2.5rem;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.tc-gallery-marquee-track {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding: 0.5rem 1rem 1rem;
  scrollbar-width: none;
}
.tc-gallery-marquee-track::-webkit-scrollbar { display: none; }

.tc-gallery-marquee-item {
  flex: 0 0 clamp(220px, 30vw, 320px);
  height: 220px;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(18,69,89,0.12);
  padding: 0;
  background: transparent;
  cursor: pointer;
}
.tc-gallery-marquee-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.tc-gallery-marquee-item:hover img {
  transform: scale(1.08);
}
.tc-marquee-zoom-icon {
  position: absolute;
  top: 0.6rem; right: 0.6rem;
  background: rgba(18,69,89,0.75);
  color: #fff;
  width: 28px; height: 28px;
  border-radius: 50%;
  display: grid; place-items: center;
  font-size: 0.75rem;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.tc-gallery-marquee-item:hover .tc-marquee-zoom-icon {
  opacity: 1;
}

/* 3. Section 2 Highlight */
.tc-highlight-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: center;
}
@media (max-width: 960px) {
  .tc-highlight-grid { grid-template-columns: 1fr; gap: 2rem; }
}
.tc-highlight-media {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0,0,0,0.12);
  height: 380px;
}
.tc-highlight-media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.tc-highlight-content h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 600;
  color: var(--tc-ink-900);
  margin-bottom: 1rem;
}
.tc-highlight-content p {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--tc-slate-700);
}
.tc-highlight-callout {
  margin-top: 1.2rem;
  padding: 1rem 1.2rem;
  background: #ffffff;
  border-left: 3.5px solid var(--tc-crimson);
  border-radius: 0 12px 12px 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.04);
}
.tc-highlight-callout strong {
  display: block; font-size: 0.82rem; font-weight: 700; color: var(--tc-ink-900); margin-bottom: 0.2rem;
}
.tc-highlight-callout p { margin: 0; font-size: 0.82rem; color: var(--tc-slate-600); }

/* 4. Section 3 Metacards Grid */
.tc-metacards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.2rem;
}
.tc-metacard {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem;
  background: #ffffff;
  border: 1.5px solid rgba(18,69,89,0.12);
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
  transition: transform 0.2s ease, border-color 0.2s ease;
}
.tc-metacard:hover {
  transform: translateY(-3px);
  border-color: var(--tc-crimson);
}
.tc-metacard-icon {
  flex: 0 0 42px; height: 42px;
  border-radius: 12px;
  background: rgba(18,69,89,0.08);
  color: var(--tc-navy, #124559);
  display: grid; place-items: center;
  font-size: 1.1rem;
}
.tc-metacard-body small {
  display: block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--tc-slate-500); margin-bottom: 0.25rem;
}
.tc-metacard-body strong {
  display: block; font-size: 0.88rem; font-weight: 700; color: var(--tc-ink-900); line-height: 1.45;
}
.tc-metacard-link {
  color: var(--tc-navy, #124559); font-size: 0.85rem; font-weight: 700; text-decoration: underline;
}

/* 5. Driver Note Section */
.tc-driver-planning-card {
  background: rgba(255,255,255,0.07);
  border: 1.5px solid rgba(255,255,255,0.18);
  border-radius: 20px;
  padding: clamp(1.2rem, 3vw, 2rem);
  color: #ffffff;
  backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px);
}
.tc-driver-profile-header {
  display: flex; align-items: center; gap: 0.85rem; margin-bottom: 1rem;
}
.tc-driver-avatar {
  width: 48px; height: 48px; border-radius: 50%; overflow: hidden; border: 2.5px solid var(--tc-crimson); flex-shrink: 0;
}
.tc-driver-avatar img { width: 100%; height: 100%; object-fit: cover; }
.tc-driver-name { font-size: 0.95rem; font-weight: 700; color: #ffffff; display: flex; align-items: center; gap: 0.4rem; }
.tc-driver-name i { color: var(--tc-crimson); font-size: 0.9rem; }
.tc-driver-title { font-size: 0.72rem; color: rgba(255,255,255,0.7); }
.tc-driver-note-text { font-size: 0.92rem; line-height: 1.65; color: rgba(255,255,255,0.92); margin-bottom: 1rem; }
.tc-driver-note-text strong { display: block; color: #ffffff; margin-bottom: 0.3rem; }
.tc-driver-access-text { font-size: 0.82rem; line-height: 1.5; color: rgba(255,255,255,0.75); border-top: 1px solid rgba(255,255,255,0.12); padding-top: 0.85rem; }

/* 6. Section 7 Related Two Grid */
.tc-related-two-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
@media (max-width: 768px) {
  .tc-related-two-grid { grid-template-columns: 1fr; }
}
.tc-related-card-item {
  height: 360px !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  position: relative !important;
}

/* 7. Floating Action Bar */
.tc-floating-plan-bar {
  position: fixed;
  bottom: 1rem;
  right: 1.2rem;
  z-index: 99999;
  background: var(--tc-navy, #124559);
  color: #ffffff;
  padding: 0.6rem 1rem;
  border-radius: 9999px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
  display: flex;
  align-items: center;
  gap: 1rem;
  border: 1px solid rgba(255,255,255,0.2);
}
@media (max-width: 768px) {
  .tc-floating-plan-bar {
    left: 0.75rem; right: 0.75rem; bottom: 0.75rem;
    border-radius: 16px; justify-content: space-between;
  }
}
.tc-floating-plan-info strong { display: block; font-size: 0.82rem; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; }
.tc-floating-plan-info span { font-size: 0.68rem; color: rgba(255,255,255,0.75); }

/* 8. Lightbox Modal */
.tc-lightbox-modal {
  position: fixed; inset: 0; z-index: 999999;
  display: flex; align-items: center; justify-content: center; padding: 1.5rem;
}
.tc-lightbox-backdrop {
  position: absolute; inset: 0; background: rgba(7, 21, 30, 0.92); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px);
}
.tc-lightbox-content {
  position: relative; z-index: 2; max-width: 90vw; max-height: 85vh; text-align: center;
}
.tc-lightbox-content img {
  max-width: 100%; max-height: 75vh; border-radius: 12px; box-shadow: 0 20px 50px rgba(0,0,0,0.5); object-fit: contain;
}
.tc-lightbox-close {
  position: absolute; top: -2.5rem; right: 0; background: transparent; border: none; color: #fff; font-size: 2rem; cursor: pointer; line-height: 1;
}
#tcLightboxCaption { margin-top: 0.75rem; color: rgba(255,255,255,0.85); font-size: 0.85rem; }

/* 9. Simple Copyright Footer */
.tc-product-simple-footer {
  background: var(--tc-navy, #124559);
  color: rgba(255,255,255,0.8);
  padding: 1.5rem 0;
  border-top: 1px solid rgba(255,255,255,0.1);
  font-size: 0.78rem;
}
.tc-simple-footer-inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
}
.tc-simple-inline-links {
  display: flex; flex-wrap: wrap; gap: 1rem;
}
.tc-simple-inline-links a {
  color: rgba(255,255,255,0.85); text-decoration: none; transition: color 0.2s ease;
}
.tc-simple-inline-links a:hover {
  color: #ffffff; text-decoration: underline;
}


/* ==========================================================================
   WOOCOMMERCE & CATALOGUE TEMPLATE STYLES (MIGRATED FROM V13)
   ========================================================================== */

/* Commerce refinement: compact planning workspace, universal sidecart, and
   app-like WooCommerce feedback. */
.tc-commerce-page .tc-v13-container { width: min(1240px, calc(100% - 40px)); margin-inline: auto; }
.tc-commerce-head { display: flex; align-items: end; justify-content: space-between; gap: 28px; padding: 118px 0 34px; }
.tc-commerce-head-copy { max-width: 720px; }
.tc-commerce-head h1 { margin: 7px 0 10px; font-size: clamp(2.2rem, 5vw, 4.35rem); line-height: 1; }
.tc-commerce-head > .tc-commerce-head-copy > p:last-child { margin: 0; max-width: 590px; }
.tc-commerce-head-mark { display: flex; align-items: center; gap: 9px; min-width: 86px; padding: 12px 14px; border-left: 3px solid var(--tc-crimson); color: var(--tc-navy); }
.tc-commerce-head-mark span { font: 800 2rem/1 var(--tc-display); }
.tc-commerce-head-mark small { color: var(--tc-muted); font-size: .64rem; font-weight: 800; line-height: 1.1; text-transform: uppercase; }
.tc-cart-form { gap: 42px; padding-bottom: 90px; }
.tc-cart-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.tc-cart-section-heading h2 { margin: 0; font-size: clamp(1.45rem, 3vw, 2rem); }
.tc-cart-section-heading > span { color: var(--tc-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.tc-cart-item { grid-template-columns: 148px 1fr; gap: 22px; margin-bottom: 12px; padding: 14px; border: 1px solid rgba(18,69,89,.12); border-radius: 18px; background: #fff; box-shadow: 0 8px 22px rgba(23,32,42,.06); }
.tc-cart-item-media img { width: 148px; height: 126px; border-radius: 12px; }
.tc-cart-item-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tc-cart-item-copy .tc-home-card-kicker { margin: 0; }
.tc-cart-package-label { color: var(--tc-muted); font-size: .7rem; font-weight: 700; }
.tc-cart-item-copy h3 { margin: 9px 0 4px; font-size: 1.15rem; }
.tc-cart-item-meta { margin-top: 17px; }
.tc-cart-item-meta strong { color: var(--tc-crimson); font: 800 1rem var(--tc-display); }
.tc-cart-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 20px; }
.tc-cart-actions .tc-cart-update { margin: 0; }
.tc-cart-clear { border: 0; background: transparent; color: var(--tc-crimson); cursor: pointer; font: 800 .76rem var(--tc-body); }
.tc-cart-clear:hover { text-decoration: underline; }
.tc-cart-summary { top: 98px; border: 1px solid rgba(18,69,89,.12); border-radius: 18px; box-shadow: 0 12px 28px rgba(23,32,42,.07); }
.tc-commerce-empty { margin: 12px 0 90px; border: 1px solid rgba(18,69,89,.12); border-radius: 18px; box-shadow: 0 12px 28px rgba(23,32,42,.06); }
.tc-commerce-empty-number { display: block; margin-bottom: 12px; color: var(--tc-crimson); font: 800 2rem/1 var(--tc-display); }
.tc-commerce-notices { min-height: 0; }
.tc-commerce-notices:empty { display: none; }
.tc-app-notification { position: fixed; top: 96px; right: 22px; z-index: 9800; width: min(380px, calc(100vw - 34px)); padding: 15px 18px; border: 1px solid rgba(255,255,255,.32); border-radius: 16px; background: var(--tc-navy); color: #fff; box-shadow: 0 18px 45px rgba(23,32,42,.25); font-size: .78rem; font-weight: 800; opacity: 0; transform: translateY(-12px) scale(.97); transition: opacity .22s ease, transform .22s ease; }
.tc-app-notification.is-visible { opacity: 1; transform: translateY(0) scale(1); }
.tc-app-notification-success { border-left: 5px solid #54c878; }
.tc-app-notification-info { border-left: 5px solid var(--tc-amber); }
.tc-app-notification-error { border-left: 5px solid #ff7a7a; background: #64182a; }
.tc-header-cart { display: inline-flex; align-items: center; gap: 6px; margin-right: 10px; padding: 10px 12px; border: 1px solid rgba(18,69,89,.16); border-radius: 999px; background: #fff; color: var(--tc-navy); cursor: pointer; font: 800 .72rem var(--tc-body); text-decoration: none; }
.tc-header-cart span { color: var(--tc-crimson); font-size: 1.05rem; line-height: 1; }
.tc-header-cart-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 50%; background: var(--tc-crimson, #d3183e); color: #fff; font-size: .68rem; font-style: normal; line-height: 1; }
.tc-header-cart:hover { background: var(--tc-ice); transform: translateY(-1px); }
.tc-site-footer { width: 100%; background: var(--tc-crimson); }
.tc-footer-main, .tc-footer-bottom, .tc-header-inner { width: min(1240px, calc(100% - 40px)); margin-inline: auto; }
.tc-commerce-footer-minimal .tc-footer-bottom { width: min(1240px, calc(100% - 40px)); min-height: 68px; padding: 18px 0; margin-inline: auto; background: var(--tc-crimson); }
.tc-commerce-footer-minimal .tc-footer-legal { color: #fff; }
.tc-mobile-cart-drawer { display: none; position: fixed; inset: 0; z-index: 9200; }
.tc-mobile-cart-drawer.is-open { display: block; }
.tc-mobile-cart-panel { position: absolute; top: 0; right: 0; bottom: 0; left: auto; width: min(430px, 100vw); max-height: none; padding: 24px; overflow: auto; border-radius: 24px 0 0 24px; background: var(--tc-paper); transform: translateX(100%); transition: transform .28s ease; }
.tc-mobile-cart-drawer.is-open .tc-mobile-cart-panel { transform: translateX(0); }
.tc-drawer-items article { border: 1px solid rgba(18,69,89,.1); border-radius: 14px; box-shadow: 0 6px 18px rgba(23,32,42,.05); }
.tc-drawer-items .tc-drawer-package { color: var(--tc-navy); font-weight: 800; }
.tc-mobile-cart-actions { display: grid; gap: 9px; }
.tc-mobile-cart-actions .tc-cart-clear { order: 2; text-align: center; }
.tc-mobile-cart-actions .tc-search-btn { order: 1; }
@media (max-width: 1023px) {
  .tc-commerce-head { align-items: start; padding: 100px 0 28px; }
  .tc-commerce-head-mark { min-width: 70px; }
  .tc-cart-item { grid-template-columns: 92px 1fr; gap: 13px; padding: 10px; }
  .tc-cart-item-media img { width: 92px; height: 92px; }
  .tc-cart-item-topline { display: block; }
  .tc-cart-package-label { display: block; margin-top: 7px; }
  .tc-cart-item-meta { gap: 10px; }
  .tc-header-cart b { display: none; }
  .tc-mobile-cart-panel { top: auto; width: 100%; max-height: 84vh; border-radius: 22px 22px 0 0; transform: translateY(100%); }
  .tc-mobile-cart-drawer.is-open .tc-mobile-cart-panel { transform: translateY(0); }
  .tc-mobile-cart-toggle { display: flex; }
  .tc-site-header .tc-header-cart { display: none !important; }
}
@media (prefers-reduced-motion: reduce) { .tc-app-notification, .tc-mobile-cart-panel { transition: none; } }

/* The full Travel Plan page owns its controls; suppress floating/header duplicates. */
body:has(.tc-cart-page) .tc-header-cart,
body:has(.tc-cart-page) #tcMobileCartToggle,
body:has(.tc-cart-page) #tcMobileCartDrawer { display: none !important; }

/* Commerce shell and cart drawer */
.tc-site-footer { width: 100%; background: #d3183e; }
.tc-commerce-page, .tc-shop-page { background: var(--tc-paper); }
.tc-commerce-head, .tc-shop-hero { padding: 150px 0 60px; }
.tc-commerce-head { max-width: 760px; }
.tc-commerce-head h1, .tc-shop-hero h1 { max-width: 820px; font-size: clamp(2.4rem, 6vw, 5rem); letter-spacing: -.06em; }
.tc-commerce-head > p:not(.tc-home-eyebrow), .tc-shop-hero p:not(.tc-home-eyebrow) { max-width: 650px; color: var(--tc-muted); }
.tc-shop-hero { color: #fff; background: linear-gradient(115deg, rgba(18,69,89,.96), rgba(18,69,89,.64)), linear-gradient(135deg, #124559, #d3183e); }
.tc-shop-hero p:not(.tc-home-eyebrow) { color: rgba(255,255,255,.86); font-size: 1.05rem; }
.tc-shop-sections { padding: 55px 0 100px; }
.tc-shop-lane { padding: 45px 0; border-bottom: 1px solid var(--tc-border); }
.tc-shop-lane > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .7fr); gap: 20px 45px; align-items: end; margin-bottom: 25px; }
.tc-shop-lane > header .tc-home-eyebrow, .tc-shop-lane > header h2 { grid-column: 1; }
.tc-shop-lane > header .tc-home-eyebrow { margin-bottom: 0; }
.tc-shop-lane > header h2 { margin: 0; font-size: clamp(1.65rem, 3vw, 2.8rem); }
.tc-shop-lane > header p:not(.tc-home-eyebrow) { grid-column: 2; grid-row: 1 / span 2; margin: 0; color: var(--tc-muted); font-size: .88rem; }
.tc-shop-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tc-shop-more { display: block; margin: 26px auto 0; padding: 12px 19px; border: 2px solid var(--tc-navy); border-radius: 99px; background: transparent; color: var(--tc-navy); cursor: pointer; font-weight: 800; }
.tc-shop-more.is-loading { opacity: .6; pointer-events: none; }
.tc-commerce-empty { margin: 35px 0 100px; padding: 55px; background: #fff; text-align: center; }
.tc-cart-form { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr); gap: 35px; padding-bottom: 100px; }
.tc-cart-items { min-width: 0; }
.tc-cart-items > h2 { margin-bottom: 18px; }
.tc-cart-item { display: grid; grid-template-columns: 135px 1fr; gap: 20px; padding: 20px 0; border-top: 1px solid var(--tc-border); }
.tc-cart-item-media img { width: 135px; height: 110px; object-fit: cover; }
.tc-cart-item-copy h3 { margin: 5px 0 8px; }
.tc-cart-item-copy .tc-home-card-kicker { font-size: .62rem; margin-bottom: 0; }
.tc-cart-context { margin: 4px 0; color: var(--tc-muted); font-size: .76rem; }
.tc-cart-item-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 15px; font-size: .82rem; }
.tc-cart-item-meta .quantity input { width: 55px; padding: 7px; border: 1px solid var(--tc-border); }
.tc-cart-item-meta .remove, .tc-drawer-remove { color: var(--tc-crimson); font-size: .75rem; font-weight: 800; }
.tc-cart-update { margin-top: 20px; border: 0; cursor: pointer; }
.tc-cart-summary { position: sticky; top: 110px; align-self: start; padding: 28px; background: #fff; }
.tc-cart-summary h2 { margin-top: 4px; }
.tc-cart-summary p:not(.tc-home-eyebrow) { color: var(--tc-muted); font-size: .86rem; }
.tc-cart-total { display: flex; justify-content: space-between; gap: 15px; margin: 25px 0; padding: 16px 0; border-block: 1px solid var(--tc-border); }
.tc-cart-summary .tc-search-btn, .tc-cart-summary .tc-details-btn { display: flex; justify-content: center; margin-top: 10px; text-decoration: none; }
.tc-mobile-cart-toggle, .tc-mobile-cart-drawer { display: none; }
.tc-modal-route-cards { display: grid; gap: 12px; }
.tc-modal-route-card { display: grid; grid-template-columns: 96px 1fr; gap: 13px; padding: 10px; border: 1px solid var(--tc-border); background: #fff; transition: opacity .18s ease, filter .18s ease; }
.tc-modal-route-card img { width: 96px; height: 90px; object-fit: cover; }
.tc-modal-route-card h4 { margin: 2px 0 4px; }
.tc-modal-route-card strong { color: var(--tc-crimson); font-size: .75rem; }
.tc-modal-route-card p { margin: 5px 0; font-size: .72rem; line-height: 1.4; }
.tc-modal-route-card.is-excluded { opacity: .5; filter: grayscale(1); }
.tc-exclude-stop { padding: 6px 10px; border: 1px solid var(--tc-crimson); border-radius: 99px; background: transparent; color: var(--tc-crimson); cursor: pointer; font-size: .68rem; font-weight: 800; }
.tc-exclusion-summary { color: var(--tc-muted); font-size: .76rem; }
.tc-modal-model-actions .tc-modal-add-package { padding: 12px 18px; border: 0; border-radius: 99px; background: var(--tc-crimson); color: #fff; cursor: pointer; font-weight: 800; }
.tc-modal-model-actions { position: sticky; bottom: -20px; z-index: 2; margin-inline: -20px; padding: 14px 20px 4px; background: linear-gradient(180deg, rgba(245,239,230,0), var(--tc-paper) 28%); }
.trucape-sheet-modal { width: min(760px, calc(100vw - 28px)); max-height: min(820px, calc(100vh - 28px)); overflow: hidden; border-radius: 28px; background: var(--tc-paper, #f5efe6); box-shadow: 0 24px 80px rgba(7,29,38,.3); }
.trucape-sheet-modal .modal-hero { min-height: 245px; border-radius: 28px 28px 0 0; overflow: hidden; }
.trucape-sheet-modal .modal-hero-content { padding: 28px 30px; }
.trucape-sheet-modal .modal-hero-tag { color: var(--tc-amber, #ffb563); font-weight: 700; letter-spacing: .08em; text-transform: capitalize; }
.trucape-sheet-modal .modal-hero-content h2 { max-width: 620px; margin: .35rem 0 0; color: #fff; font-family: var(--tc-display, "Sora", sans-serif); font-size: clamp(2rem, 5vw, 3.6rem); line-height: .98; letter-spacing: -.06em; }
.trucape-sheet-modal .modal-actions { display: flex; gap: 10px; padding: 16px 22px 0; background: var(--tc-paper, #f5efe6); }
.trucape-sheet-modal .modal-action-btn { min-height: 46px; padding: 0 20px; border: 0; border-radius: 999px; font-weight: 800; cursor: pointer; }
.trucape-sheet-modal .modal-action-quote { display: inline-flex; align-items: center; gap: 8px; background: var(--tc-crimson, #d3183e); color: #fff; }
.trucape-sheet-modal .modal-action-quote svg { width: 17px; height: 17px; }
.trucape-sheet-modal .modal-body { max-height: 470px; padding: 22px 22px 30px; overflow: auto; }
.trucape-sheet-modal .modal-body > div:not(.modal-skeleton) { display: grid; gap: 18px; }
.trucape-sheet-modal .tc-modal-model-actions { display: none !important; }
.trucape-sheet-modal .tc-modal-price { margin: 0; padding: 12px 15px; border-left: 3px solid var(--tc-amber, #ffb563); background: rgba(255,181,99,.12); color: var(--tc-ink, #17202a); font-weight: 700; }
.trucape-sheet-modal .tc-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.trucape-sheet-modal .tc-facts > div { padding: 12px; border: 1px solid rgba(7,29,38,.14); border-radius: 14px; background: rgba(255,255,255,.45); }
.trucape-sheet-modal .tc-modal-route-cards { gap: 10px; }
.trucape-sheet-modal .tc-modal-route-card { border-radius: 18px; border-color: rgba(7,29,38,.13); }
@media (max-width:620px){.trucape-sheet-modal{width:calc(100vw - 18px);max-height:calc(100vh - 18px);border-radius:22px}.trucape-sheet-modal .modal-hero{min-height:205px;border-radius:22px 22px 0 0}.trucape-sheet-modal .modal-hero-content{padding:22px}.trucape-sheet-modal .modal-actions{padding:13px 16px 0}.trucape-sheet-modal .modal-action-btn{flex:1;justify-content:center}.trucape-sheet-modal .modal-body{max-height:calc(100vh - 285px);padding:18px 16px 24px}.trucape-sheet-modal .tc-facts{grid-template-columns:1fr}}
.trucape-sheet-modal{padding-bottom:env(safe-area-inset-bottom);}
.trucape-sheet-modal .modal-close-btn{z-index:3;width:48px;height:48px;border-radius:50%;background:rgba(7,29,38,.78);color:#fff;box-shadow:0 6px 18px rgba(7,29,38,.2);}
.trucape-sheet-modal .modal-close-btn svg{width:20px;height:20px;}
.trucape-sheet-modal .modal-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:thin;}
.trucape-sheet-modal .modal-body p{max-width:62ch;color:var(--tc-muted,#43545d);font-size:clamp(.88rem,2vw,1rem);line-height:1.62;}
.trucape-sheet-modal .modal-body h3{margin:0;color:var(--tc-ink,#17202a);font-family:var(--tc-display,"Sora",sans-serif);font-size:1.25rem;letter-spacing:-.04em;}
@media (max-width:620px){.trucape-sheet-modal .modal-close-btn{top:12px;right:12px}.trucape-sheet-modal .modal-actions{position:sticky;bottom:0;z-index:4;padding-bottom:calc(13px + env(safe-area-inset-bottom));box-shadow:0 -8px 18px rgba(7,29,38,.08)}.trucape-sheet-modal .modal-action-btn{min-height:50px;font-size:.82rem}.trucape-sheet-modal .modal-body{max-height:calc(100dvh - 285px);padding-bottom:24px}.trucape-sheet-modal .tc-modal-route-card{grid-template-columns:82px 1fr;gap:10px;padding:10px}.trucape-sheet-modal .tc-modal-route-card img{width:82px;height:82px}.trucape-sheet-modal .tc-exclude-stop{min-height:44px;padding:0 13px}}
.trucape-modal-backdrop{background:rgba(23,32,42,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.trucape-sheet-modal{--tc-modal-gap:clamp(1rem,2vw,1.5rem);background:var(--tc-paper);color:var(--tc-ink);border:1px solid var(--tc-border);border-radius:var(--tc-radius);box-shadow:0 20px 0 rgba(23,32,42,.12),0 30px 70px rgba(23,32,42,.24);font-family:var(--tc-body);}
.trucape-sheet-modal .modal-hero{min-height:clamp(220px,34vw,300px);border-radius:var(--tc-radius) var(--tc-radius) 0 0;background:var(--tc-navy);}
.trucape-sheet-modal .modal-hero-overlay{background:linear-gradient(180deg,rgba(18,69,89,.08) 25%,rgba(23,32,42,.9) 100%);}
.trucape-sheet-modal .modal-hero-content{padding:var(--tc-modal-gap);}
.trucape-sheet-modal .modal-hero-tag{display:inline-block;padding:.35rem .65rem;border-radius:999px;background:var(--tc-amber);color:var(--tc-ink);font:700 var(--tc-type-2xs) var(--tc-body);letter-spacing:.08em;text-transform:capitalize;}
.trucape-sheet-modal .modal-hero-content h2{margin:.65rem 0 0;color:#fff;font:500 clamp(1.8rem,4vw,3.15rem)/1.04 var(--tc-display);letter-spacing:-.06em;}
.trucape-sheet-modal .modal-actions{display:flex;gap:.65rem;padding:var(--tc-modal-gap) var(--tc-modal-gap) 0;background:var(--tc-paper);}
.trucape-sheet-modal .modal-action-btn{min-height:48px;padding:0 1.2rem;border:1px solid transparent;border-radius:999px;font:700 var(--tc-type-xs) var(--tc-body);}
.trucape-sheet-modal .modal-action-quote{background:var(--tc-crimson);color:#fff;box-shadow:0 4px 0 var(--tc-crimson-dark);}
.trucape-sheet-modal .modal-action-quote:hover,.trucape-sheet-modal .modal-action-quote:focus-visible{background:var(--tc-crimson-dark);}
.trucape-sheet-modal .modal-body{max-height:min(480px,50vh);padding:var(--tc-modal-gap);background:var(--tc-paper);}
.trucape-sheet-modal .modal-body>div:not(.modal-skeleton){gap:var(--tc-modal-gap);}
.trucape-sheet-modal .tc-modal-price{border-left:3px solid var(--tc-amber);background:color-mix(in srgb,var(--tc-amber) 16%,transparent);color:var(--tc-ink);font:700 var(--tc-type-sm)/1.4 var(--tc-body);}
.trucape-sheet-modal .tc-facts>div,.trucape-sheet-modal .tc-modal-route-card{border:1px solid var(--tc-border);border-radius:var(--tc-radius);background:#fff;box-shadow:var(--tc-shadow);}
.trucape-sheet-modal .tc-facts>div{padding:.8rem;}
.trucape-sheet-modal .tc-modal-route-card{padding:.7rem;}
.trucape-sheet-modal .tc-modal-route-card h4{margin:0 0 .3rem;color:var(--tc-ink);font:700 var(--tc-type-sm)/1.2 var(--tc-display);}
.trucape-sheet-modal .tc-modal-route-card p{margin:.35rem 0;color:var(--tc-muted);font:400 var(--tc-type-xs)/1.45 var(--tc-body);}
.trucape-sheet-modal .tc-exclude-stop{border-color:var(--tc-crimson);color:var(--tc-crimson);background:transparent;font:700 var(--tc-type-2xs) var(--tc-body);}
@media (max-width:620px){.trucape-modal-backdrop{padding:9px}.trucape-sheet-modal{width:100%;max-height:calc(100dvh - 18px);border-radius:var(--tc-radius)}.trucape-sheet-modal .modal-hero{min-height:clamp(190px,52vw,240px)}.trucape-sheet-modal .modal-actions{gap:.5rem;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));}.trucape-sheet-modal .modal-body{max-height:calc(100dvh - 300px);padding:1rem}.trucape-sheet-modal .modal-action-btn{min-height:50px;padding-inline:1rem}.trucape-sheet-modal .modal-close-btn{top:10px;right:10px;box-shadow:0 4px 14px rgba(23,32,42,.24)}}
@media (prefers-reduced-motion:reduce){.trucape-sheet-modal *{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important;}}

/* Destination listing quick-view: image-led WooCommerce product details. */
.trucape-sheet-modal:has(.tc-modal-listing){width:min(980px,calc(100vw - 40px));max-height:min(860px,calc(100vh - 40px));border-radius:calc(var(--tc-radius) * 1.5);}
.trucape-sheet-modal:has(.tc-modal-listing) .modal-hero{min-height:145px;border-radius:calc(var(--tc-radius) * 1.5) calc(var(--tc-radius) * 1.5) 0 0;}
.trucape-sheet-modal:has(.tc-modal-listing) .modal-close-btn{position:absolute;top:1rem;right:1rem;float:none;margin:0;z-index:6;}
.trucape-sheet-modal:has(.tc-modal-listing) .modal-hero-overlay{background:linear-gradient(90deg,rgba(7,29,38,.92),rgba(7,29,38,.56));}
.trucape-sheet-modal:has(.tc-modal-listing) .modal-hero-content{display:flex;align-items:flex-start;justify-content:flex-end;flex-direction:column;min-height:145px;padding:1.25rem 1.5rem;}
.trucape-sheet-modal:has(.tc-modal-listing) .modal-hero-content h2{max-width:80%;font-size:clamp(1.7rem,3vw,2.7rem);}
.trucape-sheet-modal:has(.tc-modal-listing) .modal-actions{display:flex;justify-content:flex-end;position:relative;right:auto;top:auto;z-index:4;padding:.8rem 1.5rem;border-bottom:1px solid var(--tc-border);background:var(--tc-paper);}
.trucape-sheet-modal:has(.tc-modal-listing) .modal-action-quote{min-height:44px;padding-inline:1rem;box-shadow:0 3px 0 var(--tc-crimson-dark);}
.trucape-sheet-modal:has(.tc-modal-listing) .modal-body{max-height:calc(min(860px,100vh - 40px) - 145px);padding:0;}
.tc-modal-listing{display:grid;gap:0;padding-bottom:1.5rem;}
.tc-modal-listing-gallery{padding:1.1rem 0 0;overflow:hidden;}
.tc-modal-gallery-heading,.tc-modal-listing-intro,.tc-modal-listing-section,.tc-modal-planning-note{width:min(100% - 3rem,880px);margin-inline:auto;}
.tc-modal-gallery-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.65rem;color:var(--tc-muted);font:700 var(--tc-type-2xs) var(--tc-body);letter-spacing:.08em;text-transform:uppercase;}
.tc-modal-gallery-heading strong{color:var(--tc-crimson);font:700 var(--tc-type-2xs) var(--tc-body);}
.tc-modal-gallery-viewport{overflow:hidden;padding-inline:1.5rem;}
.tc-modal-gallery-track{display:flex;gap:.8rem;width:max-content;}
.tc-modal-gallery-track.is-marquee{animation:tc-modal-gallery-marquee 32s linear infinite;}
.tc-modal-gallery-track figure{width:clamp(175px,25vw,260px);height:155px;flex:0 0 auto;overflow:hidden;margin:0;border-radius:var(--tc-radius);background:var(--tc-navy);box-shadow:var(--tc-shadow);}
.tc-modal-gallery-track img{display:block;width:100%;height:100%;object-fit:cover;}
@keyframes tc-modal-gallery-marquee{from{transform:translateX(0)}to{transform:translateX(calc(-50% - .4rem))}}
.tc-modal-listing-intro{padding:1.4rem 0 1.2rem;}
.tc-modal-listing-kicker{margin:0 0 .35rem;color:var(--tc-crimson);font:700 var(--tc-type-2xs) var(--tc-body);letter-spacing:.09em;text-transform:uppercase;}
.tc-modal-listing-summary{max-width:68ch;margin:0;color:var(--tc-ink);font:500 clamp(1rem,1.4vw,1.2rem)/1.55 var(--tc-body);}
.tc-modal-listing-topics{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem;}
.tc-modal-listing-topics span{padding:.38rem .65rem;border:1px solid var(--tc-border);border-radius:999px;background:#fff;color:var(--tc-muted);font:700 var(--tc-type-2xs) var(--tc-body);}
.tc-modal-listing-section{padding:1.25rem 0;border-top:1px solid var(--tc-border);}
.tc-modal-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.8rem;}
.tc-modal-section-heading p{margin:0;color:var(--tc-ink);font:700 var(--tc-type-sm) var(--tc-display);letter-spacing:-.04em;}
.tc-modal-section-heading span{color:var(--tc-muted);font:400 var(--tc-type-2xs) var(--tc-body);text-align:right;}
.tc-modal-facts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;}
.tc-modal-facts-grid article{display:flex;gap:.65rem;min-height:78px;padding:.75rem;border:1px solid var(--tc-border);border-radius:var(--tc-radius);background:#fff;box-shadow:none;}
.tc-modal-fact-icon{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:var(--tc-ice);color:var(--tc-navy);}
.tc-modal-fact-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tc-modal-facts-grid small,.tc-modal-planning-note small{display:block;margin-bottom:.15rem;color:var(--tc-muted);font:700 var(--tc-type-2xs) var(--tc-body);letter-spacing:.05em;text-transform:uppercase;}
.tc-modal-facts-grid strong{display:block;color:var(--tc-ink);font:700 var(--tc-type-xs)/1.32 var(--tc-body);}
.tc-modal-planning-note{display:flex;gap:.75rem;margin-top:.1rem;padding:1rem 1.1rem;border-radius:var(--tc-radius);background:var(--tc-navy);color:#fff;}
.tc-modal-planning-note>span{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:var(--tc-amber);color:var(--tc-ink);}
.tc-modal-planning-note svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;}
.tc-modal-planning-note small{color:var(--tc-ice);}
.tc-modal-planning-note p{margin:0;color:#fff;font:500 var(--tc-type-xs)/1.45 var(--tc-body);}
.tc-modal-package-stops .tc-modal-route-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;}
.tc-modal-package-stops .tc-modal-route-card{grid-template-columns:72px 1fr;gap:.65rem;min-height:132px;padding:.6rem;border-radius:var(--tc-radius);box-shadow:none;}
.tc-modal-package-stops .tc-modal-route-card img{width:72px;height:100%;min-height:112px;border-radius:calc(var(--tc-radius) - 4px);object-fit:cover;}
.tc-modal-package-stops .tc-modal-route-card h4{font-size:var(--tc-type-xs);}
.tc-modal-package-stops .tc-modal-route-card p{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;}
.tc-modal-package-stops .tc-exclude-stop{min-height:34px;padding:.35rem .65rem;}
.tc-exclusion-summary{margin:.8rem 0 0;color:var(--tc-muted);font:400 var(--tc-type-xs) var(--tc-body);}
.tc-modal-description-copy{max-width:72ch;color:var(--tc-muted);font:400 var(--tc-type-sm)/1.7 var(--tc-body);}
.tc-modal-description-copy>*:first-child{margin-top:0;}.tc-modal-description-copy>*:last-child{margin-bottom:0;}
@media (max-width:620px){.trucape-sheet-modal:has(.tc-modal-listing){width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:calc(var(--tc-radius) * 1.35)}.trucape-sheet-modal:has(.tc-modal-listing) .modal-close-btn{top:.75rem;right:.75rem}.trucape-sheet-modal:has(.tc-modal-listing) .modal-hero{min-height:125px;border-radius:calc(var(--tc-radius) * 1.35) calc(var(--tc-radius) * 1.35) 0 0}.trucape-sheet-modal:has(.tc-modal-listing) .modal-hero-content{min-height:125px;padding:1rem}.trucape-sheet-modal:has(.tc-modal-listing) .modal-hero-content h2{max-width:75%;font-size:1.65rem}.trucape-sheet-modal:has(.tc-modal-listing) .modal-actions{position:sticky;top:0;right:auto;padding:.75rem 1rem .4rem;background:var(--tc-paper);box-shadow:0 6px 14px rgba(23,32,42,.08)}.trucape-sheet-modal:has(.tc-modal-listing) .modal-action-quote{width:100%;min-height:50px}.trucape-sheet-modal:has(.tc-modal-listing) .modal-body{max-height:calc(100dvh - 125px);}.tc-modal-listing-gallery{padding-top:.8rem}.tc-modal-gallery-heading,.tc-modal-listing-intro,.tc-modal-listing-section,.tc-modal-planning-note{width:calc(100% - 2rem)}.tc-modal-gallery-viewport{padding-inline:1rem}.tc-modal-gallery-track figure{width:175px;height:130px}.tc-modal-listing-intro{padding:1.1rem 0}.tc-modal-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.tc-modal-facts-grid article{min-height:72px;padding:.65rem}.tc-modal-section-heading{align-items:flex-start;flex-direction:column;gap:.15rem}.tc-modal-section-heading span{text-align:left}.tc-modal-package-stops .tc-modal-route-cards{grid-template-columns:1fr}.tc-modal-package-stops .tc-modal-route-card{grid-template-columns:88px 1fr;min-height:120px}.tc-modal-package-stops .tc-modal-route-card img{width:88px;min-height:102px}.tc-modal-description-copy{font-size:var(--tc-type-xs)}}
@media (prefers-reduced-motion:reduce){.tc-modal-gallery-track.is-marquee{animation:none;}.tc-modal-gallery-track figure[aria-hidden="true"]{display:none;}}

/* Native catalogue and product surfaces. The modal composition is reused as
   a calm, spacious product-page system while WooCommerce remains the data
   and Travel Plan authority. */
.tc-catalog-controls,.tc-catalog-results,.tc-product-shell{width:min(1240px,calc(100% - 40px));margin-inline:auto}
.tc-catalog-controls{margin-top:34px;padding:26px;border:1px solid var(--tc-border);border-radius:24px;background:rgba(255,255,255,.55)}
.tc-catalog-controls-head,.tc-catalog-results-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:0}.tc-catalog-controls-head h2,.tc-catalog-results-head h2{margin:0;font-size:clamp(1.7rem,3vw,2.4rem);color:var(--tc-ink);font-weight:700}.tc-catalog-controls-head>p,.tc-catalog-results-head>span{color:var(--tc-muted);font-size:.9rem}
.tc-catalog-controls-summary{display:flex;align-items:center;gap:16px}
.tc-filter-dropdown-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1.5px solid var(--tc-border-strong,#d1d5db);border-radius:999px;background:#fff;color:var(--tc-ink,#111827);font:700 0.85rem var(--tc-body);cursor:pointer;transition:all 0.2s ease;box-shadow:0 2px 6px rgba(0,0,0,0.05)}
.tc-filter-dropdown-btn:hover{border-color:var(--tc-amber,#e7ac34);background:#fffdf9}
.tc-filter-dropdown-btn .tc-nav-chevron{width:16px;height:16px;transition:transform 0.25s ease}
.tc-filter-dropdown-btn.is-open .tc-nav-chevron{transform:rotate(180deg)}
.tc-catalog-filter-form{display:none;grid-template-columns:2fr repeat(5,1fr);gap:10px;align-items:end;margin-top:20px;padding-top:20px;border-top:1px solid var(--tc-border)}
.tc-catalog-filter-form.is-open{display:grid}
.tc-catalog-filter{display:grid;gap:6px}.tc-catalog-filter>span{color:var(--tc-muted);font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.tc-catalog-filter input,.tc-catalog-filter select{width:100%;min-height:46px;padding:0 12px;border:1px solid var(--tc-border);border-radius:10px;background:#fff;color:var(--tc-ink);font:500 .88rem var(--tc-body)}.tc-catalog-filter-actions{display:flex;gap:8px;align-items:center}.tc-catalog-filter-actions .tc-search-btn,.tc-catalog-filter-actions .tc-details-btn{min-height:46px;padding-inline:14px}
.tc-apply-filters-btn,.tc-catalog-filter-actions .tc-apply-filters-btn{background:var(--tc-amber,#e7ac34) !important;color:#000000 !important;font-weight:700 !important;border:none !important;box-shadow:0 4px 12px rgba(231,172,52,0.3) !important}
.tc-apply-filters-btn:hover,.tc-catalog-filter-actions .tc-apply-filters-btn:hover{background:#f3b942 !important;color:#000000 !important}
.tc-results-heading{margin:0 !important;font-size:clamp(1.5rem,2.5vw,2.2rem) !important;font-weight:700 !important;color:var(--tc-ink) !important}
.tc-catalog-results{padding:44px 0 90px}.tc-catalog-results-head{border-bottom:1px solid var(--tc-border);padding-bottom:14px;margin-bottom:24px}.tc-catalog-results-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.tc-catalog-empty{padding:60px 24px;border:1px dashed var(--tc-border);border-radius:20px;text-align:center}.tc-catalog-empty h2{margin-top:0}.tc-catalog-empty p{max-width:560px;margin:0 auto;color:var(--tc-muted)}.tc-catalog-suggestions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:22px}.tc-catalog-suggestions a{padding:9px 13px;border:1px solid var(--tc-border);border-radius:999px;color:var(--tc-navy);font-weight:800;text-decoration:none}
.tc-product-page{padding:0 0 116px;background:var(--tc-paper,#f5efe6)}.tc-product-hero{position:relative;isolation:isolate;min-height:min(780px,calc(100vh - 20px));overflow:hidden;background:var(--tc-navy)}.tc-product-hero::after{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(7,29,38,.94) 0%,rgba(7,29,38,.72) 46%,rgba(7,29,38,.3) 100%);content:""}.tc-product-hero-image{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:opacity .35s ease}.tc-product-hero-inner,.tc-product-content{width:min(1240px,calc(100% - 40px));margin-inline:auto}.tc-product-hero-inner{display:flex;min-height:inherit;flex-direction:column;align-items:flex-start;padding:calc(132px + env(safe-area-inset-top)) 0 50px}.tc-product-breadcrumbs{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 auto;color:rgba(255,255,255,.72);font-size:.78rem}.tc-product-breadcrumbs a{color:#fff}.tc-product-hero-copy{max-width:840px;margin-top:clamp(64px,12vh,150px)}.tc-product-hero-copy .tc-home-eyebrow{display:inline-block}.tc-product-hero-copy h1{max-width:13ch;margin:15px 0 18px;color:#fff;font:600 clamp(3rem,7vw,7rem)/.91 var(--tc-display);letter-spacing:-.085em;text-wrap:balance}.tc-product-summary-lede{max-width:59ch;margin:0;color:rgba(255,255,255,.9);font-size:clamp(1rem,1.4vw,1.22rem);line-height:1.65}.tc-product-topics{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.tc-product-topics span{padding:7px 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(7,29,38,.28);color:#fff;font:700 .7rem var(--tc-body);backdrop-filter:blur(5px)}.tc-product-hero-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;max-width:1020px;gap:1px;margin-top:34px;overflow:hidden;border:1px solid rgba(255,255,255,.24);border-radius:16px;background:rgba(255,255,255,.16);backdrop-filter:blur(10px)}.tc-product-hero-facts article{min-height:74px;padding:13px 15px;background:rgba(7,29,38,.22)}.tc-product-hero-facts small{display:block;margin-bottom:5px;color:rgba(255,255,255,.7);font:700 .65rem var(--tc-body);letter-spacing:.08em;text-transform:uppercase}.tc-product-hero-facts strong{display:block;color:#fff;font:650 clamp(.78rem,1.1vw,.98rem)/1.28 var(--tc-body)}.tc-product-gallery-thumbs{display:flex;gap:9px;max-width:100%;margin-top:20px;overflow-x:auto;padding:2px 0 5px}.tc-product-gallery-thumb{width:82px;height:62px;flex:0 0 82px;padding:0;overflow:hidden;border:2px solid rgba(255,255,255,.36);border-radius:10px;background:var(--tc-navy);cursor:pointer;transition:border-color .2s ease,transform .2s ease}.tc-product-gallery-thumb:hover,.tc-product-gallery-thumb:focus-visible{transform:translateY(-2px);border-color:#fff}.tc-product-gallery-thumb.is-active{border-color:var(--tc-amber)}.tc-product-gallery-thumb img{display:block;width:100%;height:100%;object-fit:cover}.tc-product-content{padding-top:32px}.tc-product-section{padding:clamp(42px,6vw,78px) 0;border-top:1px solid var(--tc-border)}.tc-product-section:first-child{border-top:0}.tc-product-section-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:28px}.tc-product-section-head>div{max-width:760px}.tc-product-section-head .tc-home-eyebrow{margin-bottom:8px}.tc-product-section-head h2{margin:0;color:var(--tc-ink);font:650 clamp(2rem,4vw,4.2rem)/.98 var(--tc-display);letter-spacing:-.07em;text-wrap:balance}.tc-product-section-head>p{max-width:340px;margin:0;color:var(--tc-muted);font-size:.92rem;line-height:1.6}.tc-product-description-copy{max-width:820px;color:var(--tc-muted);font:400 clamp(1rem,1.35vw,1.16rem)/1.75 var(--tc-body)}.tc-product-description-copy>*:first-child{margin-top:0}.tc-product-description-copy>*:last-child{margin-bottom:0}.tc-product-description-copy h2,.tc-product-description-copy h3{margin-top:2.2em;color:var(--tc-ink);font-family:var(--tc-display);line-height:1.04;letter-spacing:-.045em}.tc-product-description-copy a{color:var(--tc-navy);font-weight:800}.tc-product-facts .tc-modal-facts-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tc-product-facts .tc-modal-facts-grid article{min-height:110px;padding:16px;background:#fff}.tc-product-itinerary-grid{display:grid;grid-template-columns:1fr;gap:14px}.tc-product-itinerary-card{display:grid;grid-template-columns:minmax(170px,245px) minmax(0,1fr);gap:22px;padding:14px;border:1px solid var(--tc-border);border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(18,69,89,.06)}.tc-product-itinerary-card>a{display:block}.tc-product-itinerary-card img{display:block;width:100%;height:100%;min-height:190px;object-fit:cover;border-radius:12px}.tc-product-itinerary-card h3{margin:.3rem 0 .6rem;font:700 clamp(1.25rem,2vw,1.65rem)/1.06 var(--tc-display);letter-spacing:-.04em}.tc-product-itinerary-card h3 a{color:var(--tc-ink);text-decoration:none}.tc-product-itinerary-card p:not(.tc-home-card-kicker){max-width:66ch;margin:.4rem 0 1rem;color:var(--tc-muted);font-size:.92rem;line-height:1.6}.tc-product-inline-add{min-height:40px;padding:8px 13px}.tc-product-planning-note{width:100%;margin:0}.tc-product-utilities{padding-bottom:44px}.tc-product-utility-links{display:flex;flex-wrap:wrap;gap:10px}.tc-product-related{padding:clamp(42px,6vw,78px) 0;border-top:1px solid var(--tc-border)}.tc-product-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.tc-product-plan-float{position:fixed;right:24px;bottom:24px;z-index:8900;display:flex;align-items:center;gap:14px;max-width:calc(100% - 48px);padding:9px 9px 9px 16px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(7,29,38,.94);color:#fff;box-shadow:0 14px 35px rgba(7,29,38,.28);backdrop-filter:blur(12px)}.tc-product-plan-float>span{max-width:180px;font:700 .73rem/1.25 var(--tc-body)}.tc-product-float-add{min-height:44px;padding:8px 14px;white-space:nowrap}
@media (max-width:1100px){.tc-catalog-filter-form{grid-template-columns:repeat(3,1fr)}.tc-catalog-filter-search{grid-column:span 3}.tc-catalog-filter-actions{grid-column:span 3}.tc-catalog-results-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.tc-catalog-controls,.tc-catalog-results{width:min(100% - 30px,1240px)}.tc-catalog-controls{padding:18px}.tc-catalog-controls-head{display:block}.tc-catalog-controls-head>p{margin-top:10px}.tc-catalog-filter-form{grid-template-columns:repeat(2,1fr)}.tc-catalog-filter-search,.tc-catalog-filter-actions{grid-column:span 2}.tc-catalog-filter-actions .tc-search-btn{flex:1}.tc-catalog-results{padding-top:28px}.tc-catalog-results-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tc-product-page{padding-bottom:92px}.tc-product-hero{min-height:680px}.tc-product-hero-inner,.tc-product-content{width:min(100% - 30px,1240px)}.tc-product-hero-inner{padding-top:calc(116px + env(safe-area-inset-top));padding-bottom:34px}.tc-product-hero-copy{margin-top:58px}.tc-product-hero-copy h1{font-size:clamp(3rem,13vw,5.2rem)}.tc-product-hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:25px}.tc-product-hero-facts article{min-height:68px;padding:11px}.tc-product-section-head{display:block;margin-bottom:22px}.tc-product-section-head>p{margin-top:14px}.tc-product-facts .tc-modal-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-product-itinerary-card{grid-template-columns:150px minmax(0,1fr);gap:15px}.tc-product-itinerary-card img{min-height:160px}.tc-product-related-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tc-product-plan-float{right:14px;bottom:14px;left:14px;justify-content:space-between;max-width:none;padding:8px 8px 8px 14px}.tc-product-plan-float>span{max-width:none}}
@media (max-width:480px){.tc-catalog-results-grid{grid-template-columns:1fr}.tc-catalog-filter-form{grid-template-columns:1fr}.tc-catalog-filter-search,.tc-catalog-filter-actions{grid-column:auto}.tc-catalog-filter-actions{display:grid;grid-template-columns:1fr auto}.tc-product-hero{min-height:640px}.tc-product-hero-inner{padding-top:calc(106px + env(safe-area-inset-top))}.tc-product-hero-copy{margin-top:45px}.tc-product-hero-facts{gap:1px;border-radius:12px}.tc-product-hero-facts strong{font-size:.75rem}.tc-product-gallery-thumb{width:70px;height:54px;flex-basis:70px}.tc-product-facts .tc-modal-facts-grid{grid-template-columns:1fr}.tc-product-itinerary-card{grid-template-columns:1fr}.tc-product-itinerary-card img{height:190px;min-height:0}.tc-product-related-grid{grid-template-columns:1fr}.tc-product-plan-float>span{font-size:.68rem}.tc-product-float-add{min-height:42px;padding-inline:12px}}
.tc-mobile-cart-toggle { position: fixed; right: 14px; bottom: 14px; left: 14px; z-index: 9050; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--tc-crimson); color: #fff; box-shadow: 0 8px 22px rgba(23,32,42,.25); cursor: pointer; font-weight: 800; transform: translateY(calc(100% + 30px)); transition: transform .25s ease; }
.tc-mobile-cart-toggle { transform: translateY(calc(100% + 30px)); opacity: 0; pointer-events: none; }
.tc-mobile-cart-toggle.tc-scroll-show { transform: translateY(0); opacity: 1; pointer-events: auto; }
.tc-mobile-cart-toggle b { display: grid; place-items: center; min-width: 24px; height: 24px; border-radius: 50%; background: #fff; color: var(--tc-crimson); font-size: .75rem; }
.tc-mobile-cart-drawer { position: fixed; inset: 0; z-index: 9200; }
.tc-mobile-cart-drawer.is-open { display: block; }
.tc-mobile-cart-backdrop { position: absolute; inset: 0; background: rgba(23,32,42,.45); }
.tc-mobile-cart-panel { position: absolute; right: 0; bottom: 0; left: 0; max-height: 82vh; padding: 20px; overflow: auto; border-radius: 22px 22px 0 0; background: var(--tc-paper); transform: translateY(100%); transition: transform .25s ease; }
.tc-mobile-cart-drawer.is-open .tc-mobile-cart-panel { transform: translateY(0); }
.tc-mobile-cart-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.tc-mobile-cart-head button { width: 34px; height: 34px; border: 0; background: #fff; cursor: pointer; font-size: 1.4rem; }
.tc-drawer-items { display: grid; gap: 12px; margin: 18px 0; }
.tc-drawer-items article { display: grid; grid-template-columns: 55px 1fr; gap: 12px; padding: 10px; background: #fff; }
.tc-drawer-items img { width: 55px; height: 55px; object-fit: cover; }
.tc-drawer-items strong, .tc-drawer-items small, .tc-drawer-items a { display: block; }
.tc-drawer-items small { margin: 3px 0; color: var(--tc-muted); font-size: .7rem; }
.tc-drawer-total { display: flex; justify-content: space-between; padding: 15px 0; border-block: 1px solid var(--tc-border); }
.tc-mobile-cart-actions .tc-search-btn { display: flex; justify-content: center; margin-top: 15px; text-decoration: none; }
@media (max-width: 1023px) { .tc-shop-lane > header { display: block; } .tc-shop-lane > header p:not(.tc-home-eyebrow) { margin-top: 12px; } .tc-cart-form { grid-template-columns: 1fr; } .tc-cart-summary { position: static; } .tc-mobile-cart-toggle { display: flex; } .tc-mobile-cart-drawer { display: none; } body.tc-cart-drawer-open { overflow: hidden; } }
@media (min-width: 1024px) { .tc-mobile-cart-toggle { display: none !important; } }
@media (prefers-reduced-motion: reduce) { .tc-mobile-cart-toggle, .tc-mobile-cart-panel { transition: none; } }

/* Destinations archive: Compacted Open Route page hero matching homepage stage */
.tc-destinations-compact-hero {
  min-height: auto !important;
  padding: calc(max(1rem, env(safe-area-inset-top)) + 80px) 0 3.5rem !important;
}
.tc-destinations-compact-hero .tc-dest-hero-content {
  display: block !important;
  max-width: min(1200px, calc(100% - 36px)) !important;
  margin-inline: auto !important;
}
.tc-destinations-compact-hero .tc-dest-breadcrumbs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin: 0.85rem 0 1.1rem !important;
  font-size: 0.78rem !important;
  color: var(--tc-slate-600, #4a5568) !important;
}
.tc-destinations-compact-hero .tc-dest-breadcrumbs a {
  color: var(--tc-crimson, #d3183e) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}
.tc-destinations-compact-hero .tc-dest-breadcrumbs a:hover {
  text-decoration: underline !important;
}
.tc-destinations-compact-hero .tc-dest-breadcrumbs span {
  color: var(--tc-slate-500, #718096) !important;
}
.tc-destinations-compact-hero .hero-main-headline {
  max-width: 820px !important;
  margin-bottom: 0.4rem !important;
}
.tc-destinations-compact-hero .hero-supporting-copy {
  max-width: 680px !important;
  margin-bottom: 0 !important;
}
.tc-term-archive-hero .tc-term-archive-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1.25rem;
}
.tc-term-archive-hero .tc-term-archive-hero-actions a {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  text-decoration: none;
}
@media (max-width: 960px) {
  .tc-destinations-compact-hero {
    min-height: auto !important;
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }
  .tc-term-archive-hero .tc-term-archive-hero-actions a { min-height: 42px; }
}

/* Sitewide Open Route catalog card: every shared destination/package card
   uses this single image-forward adapter. Editorial cards keep their own
   selectors and layout. */
.tc-catalog-card { position: relative; isolation: isolate; display: flex; min-height: 390px; align-items: flex-end; overflow: hidden; padding: 0; border: 1px solid rgba(255,255,255,.38); border-radius: 15px 15px 42px 15px; background: var(--tc-navy) var(--tc-card-image) center/cover no-repeat; color: #fff; box-shadow: 0 12px 26px rgba(18,69,89,.12); transition: transform .22s ease, box-shadow .22s ease; }
.tc-catalog-card.tc-catalog-package { border-radius: 32px 15px 15px 15px; background-color: #7b2f2f; }
.tc-catalog-card::before { content: ''; position: absolute; z-index: 0; inset: 0; display: block; border-radius: inherit; background: linear-gradient(180deg, rgb(7 29 38 / 31%) 16%, rgba(7, 29, 38, 1) 100%); pointer-events: none; }
.tc-catalog-card::after { content: ''; position: absolute; z-index: 1; inset: -10% 77% 0; width: 126px; height: 126px; display: block; border-radius: 50%; background: var(--tc-crimson); pointer-events: none; transition: transform .28s ease; }
.tc-catalog-card.tc-catalog-package::after { background: var(--tc-amber); }
.tc-catalog-card:hover { transform: translateY(-5px); box-shadow: 0 21px 34px rgba(18,69,89,.2); }
.tc-catalog-card:hover::after, .tc-catalog-card:focus-within::after { transform: scale(1.18); }
.tc-catalog-card > div { position: absolute; right: auto; bottom: 18px; left: 15px; z-index: 2; width: 84%; min-width: 0; padding: 0; }
.tc-catalog-card .tc-home-card-kicker { display: block; margin: 0 0 .50rem; padding: 0; background: transparent; color: var(--tc-amber); font-size: .55rem; font-weight: 600; letter-spacing: .3px; text-transform: capitalize; }
.tc-catalog-card h3 { max-width: 15ch; margin: 0; font: 540 clamp(1.16rem, 1.55vw, 1.45rem)/1.06 var(--tc-display); letter-spacing: -.06em; }
.tc-catalog-card h3 a { color: inherit; text-decoration: none; }
.tc-catalog-card h3 a:hover, .tc-catalog-card h3 a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.tc-catalog-card p:not(.tc-home-card-kicker) { min-height: 2.6em; margin: .63rem 0 0; color: #edf6f6; font-size: .74rem; line-height: 1.45; }
.tc-catalog-card .tc-catalog-price { display: block; margin: 0; padding: 0; border: 0; color: #e9e6ed; font-family: "Sora", var(--tc-display); font-size: 1.1rem; font-weight: 300; line-height: 1.1; }
.tc-catalog-price-unit { display: inline-block; margin-left: .25em; color: inherit; font-family: inherit; font-size: 55%; font-weight: inherit; letter-spacing: inherit; white-space: nowrap; }
.tc-catalog-card .tc-home-package-stops { display: flex; flex-wrap: wrap; gap: .32rem; margin-top: .72rem; color: #eff6f6; font-size: .57rem; font-weight: 700; line-height: 1.45; }

.tc-catalog-card.tc-catalog-package .tc-home-card-kicker { color: #ffb563; }
.tc-catalog-card .tc-home-package-stops span { display: inline-flex; align-items: center; padding: .28rem .58rem; border: 1px solid #fff; border-radius: 25px; color: #fff; }.tc-catalog-card .tc-home-card-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.tc-catalog-card .tc-details-btn, .tc-catalog-card .tc-add-btn, .tc-catalog-card .tc-add-package { border: 1px solid rgba(255,255,255,.48); box-shadow: none; }
.tc-catalog-card .tc-details-btn { background: rgba(255,255,255,.12); color: #fff; }
.tc-catalog-card .tc-add-btn, .tc-catalog-card .tc-add-package { background: var(--tc-crimson); color: #fff; }
.tc-home-paged-grid, .tc-home-product-grid, .tc-home-package-row, .tc-canonical-related-grid, .tc-canonical-archive-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.tc-shop-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.tc-home-paged-grid .tc-catalog-card:nth-child(n+5), .tc-home-lane-grid .tc-catalog-card:nth-child(n+5), .tc-shop-grid .tc-catalog-card:nth-child(n+5) { display: none; }
.tc-home-paged-grid .tc-catalog-card.is-revealed, .tc-home-lane-grid .tc-catalog-card.is-revealed, .tc-shop-grid .tc-catalog-card.is-revealed { display: flex; }
.tc-home-paginate { margin-inline: auto; }
@media (min-width: 621px) and (max-width: 1023px) {
  .tc-home-paged-grid, .tc-home-product-grid, .tc-home-package-row, .tc-shop-grid, .tc-canonical-related-grid, .tc-canonical-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tc-home-paged-grid .tc-catalog-card:nth-child(n+4), .tc-home-lane-grid .tc-catalog-card:nth-child(n+4), .tc-shop-grid .tc-catalog-card:nth-child(n+4) { display: none; }
  .tc-home-paged-grid .tc-catalog-card.is-revealed, .tc-home-lane-grid .tc-catalog-card.is-revealed, .tc-shop-grid .tc-catalog-card.is-revealed { display: flex; }
}
@media (max-width: 620px) {
  .tc-home-paged-grid, .tc-home-product-grid, .tc-home-package-row, .tc-shop-grid, .tc-canonical-related-grid, .tc-canonical-archive-grid { grid-template-columns: 1fr; }
  .tc-catalog-card { min-height: 340px; }
  .tc-home-paged-grid .tc-catalog-card:nth-child(n+4), .tc-home-lane-grid .tc-catalog-card:nth-child(n+4), .tc-shop-grid .tc-catalog-card:nth-child(n+4) { display: none; }
  .tc-home-paged-grid .tc-catalog-card.is-revealed, .tc-home-lane-grid .tc-catalog-card.is-revealed, .tc-shop-grid .tc-catalog-card.is-revealed { display: flex; }
}

/* About page: Open Route Journal composition using the live site shell and
   the shared package-card renderer. */
.tc-about-page { --tc-about-line: rgba(23,32,42,.16); overflow: hidden; background: var(--tc-paper); color: var(--tc-ink); }
.tc-about-page h1, .tc-about-page h2, .tc-about-page h3, .tc-about-page p { text-wrap: pretty; }
.tc-about-page h1, .tc-about-page h2, .tc-about-page h3 { font-family: var(--tc-display); }
.tc-about-wrap { width: min(1240px, calc(100% - 48px)); margin-inline: auto; }
.tc-about-hero { position: relative; isolation: isolate; min-height: 690px; display: flex; align-items: flex-end; overflow: hidden; padding-top: 92px; color: #fff; background: linear-gradient(90deg, rgba(10,27,35,.94), rgba(10,27,35,.76) 36%, rgba(10,27,35,.28) 72%, rgba(10,27,35,.42)), var(--tc-about-hero-image) center/cover no-repeat, var(--tc-navy); }
.tc-about-hero::after { content: ''; position: absolute; z-index: 0; right: 0; bottom: 0; left: 0; height: 34%; background: linear-gradient(transparent, rgba(0,0,0,.28)); pointer-events: none; }
.tc-about-disc { position: absolute; z-index: 0; border-radius: 50%; background: var(--tc-crimson); pointer-events: none; }
.tc-about-disc-top { top: -315px; right: 13%; width: 510px; height: 510px; }
.tc-about-disc-low { bottom: -112px; left: 43%; width: 220px; height: 220px; }
.tc-about-hero-inner { position: relative; z-index: 1; padding: 92px 0 88px; }
.tc-about-hero .tc-home-eyebrow { margin: 0 0 .9rem; padding: 0; background: transparent; color: var(--tc-ice); font-size: .69rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.tc-about-hero h1 { max-width: 720px; margin: 0; color: #fff; font-size: clamp(3.1rem, 7.35vw, 7.1rem); font-weight: 540; line-height: .96; letter-spacing: -.086em; }
.tc-about-hero h1 em { color: var(--tc-amber, #e7ac34) !important; font-style: normal; }
.tc-about-hero-intro { max-width: 520px; margin: 1.45rem 0 0; color: #edf6f6; font-size: clamp(.94rem, 1.4vw, 1.08rem); line-height: 1.6; }
.tc-about-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.75rem; }
.tc-about-actions .tc-search-btn, .tc-about-actions .tc-details-btn { width: auto; min-height: 44px; text-decoration: none; }
.tc-about-ghost-button { border: 1px solid rgba(255,255,255,.75) !important; background: transparent !important; color: #fff !important; box-shadow: none !important; }
.tc-about-ghost-button:hover, .tc-about-ghost-button:focus-visible { background: #fff !important; color: var(--tc-navy) !important; }
.tc-about-route-note { position: absolute; z-index: 1; right: clamp(1.5rem, 7vw, 7rem); bottom: 6.5rem; width: min(29vw, 390px); min-height: 152px; padding: 1.05rem 1.1rem; transform: rotate(-3deg); border: 1px solid rgba(255,255,255,.55); border-radius: 14px; background: rgba(18,69,89,.73); color: #fff; box-shadow: 0 18px 44px rgba(18,69,89,.12); backdrop-filter: blur(6px); }
.tc-about-route-note::before { content: ''; position: absolute; top: -18px; left: -15px; width: 42px; height: 42px; border: 7px solid var(--tc-crimson); border-radius: 50%; background: var(--tc-paper); }
.tc-about-route-note span { display: block; margin-bottom: 1.9rem; color: var(--tc-amber); font-size: .64rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.tc-about-route-note strong { display: block; max-width: 18ch; font: 550 clamp(1rem, 1.55vw, 1.32rem)/1.12 var(--tc-display); letter-spacing: -.045em; }
.tc-about-route-note small { display: block; margin-top: .55rem; color: var(--tc-ice); font-size: .7rem; }
.tc-about-signal { position: relative; z-index: 2; background: var(--tc-navy); color: #fff; }
.tc-about-signal-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.tc-about-signal-grid > div { min-height: 98px; display: flex; align-items: center; gap: .85rem; padding: 1.25rem 1.7rem; border-right: 1px solid rgba(255,255,255,.22); }
.tc-about-signal-grid > div:last-child { border-right: 0; }
.tc-about-signal-grid b { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--tc-crimson); font: 600 .78rem var(--tc-display); }
.tc-about-signal-grid p { margin: 0; color: #e4eff0; font-size: .78rem; line-height: 1.35; }
.tc-about-signal-grid strong { display: block; color: #fff; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.tc-about-section { padding: clamp(4.7rem, 8vw, 8.2rem) 0; }
.tc-about-editorial { display: grid; grid-template-columns: minmax(160px, .5fr) minmax(0, 2.1fr); gap: clamp(2rem, 7vw, 8rem); }
.tc-about-rail { padding-top: .55rem; }
.tc-about-section-number { display: block; margin-bottom: .7rem; color: var(--tc-crimson); font: 500 clamp(3.5rem, 6vw, 5.7rem)/.8 var(--tc-display); letter-spacing: -.1em; }
.tc-about-section-label { color: var(--tc-crimson); font: 700 .67rem var(--tc-display); letter-spacing: .14em; text-transform: uppercase; }
.tc-about-rail > p:last-child { max-width: 11rem; margin: 1rem 0 0; color: #33454d; font-size: .74rem; line-height: 1.45; }
.tc-about-content-column { max-width: 800px; }
.tc-about-content-column > h2, .tc-about-section-head h2 { max-width: 16ch; margin: 0; font: 530 clamp(2rem, 4.2vw, 4.25rem)/1.02 var(--tc-display); letter-spacing: -.075em; }
.tc-about-lead { max-width: 640px; margin: 1.6rem 0 0; color: #333; font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.62; }
.tc-about-body-copy { max-width: 655px; margin: 1.4rem 0 0; color: #4b4b4b; font-size: .94rem; }
.tc-about-route-scribble { display: flex; align-items: center; gap: .65rem; margin-top: 2.2rem; color: var(--tc-navy); font-size: .75rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.tc-about-route-scribble span { display: block; width: 78px; height: 16px; border-top: 2px dashed var(--tc-crimson); transform: rotate(-4deg); }
.tc-about-founder { position: relative; display: grid; grid-template-columns: 142px minmax(0, 1.4fr); gap: clamp(1.2rem, 3.5vw, 3rem); align-items: start; margin-top: 3.2rem; padding: clamp(1.4rem, 3vw, 2.25rem); overflow: hidden; border: 1px solid var(--tc-about-line); border-radius: 18px 18px 58px 18px; background: #fff; box-shadow: 0 18px 44px rgba(18,69,89,.12); }
.tc-about-founder::after { content: ''; position: absolute; right: -138px; bottom: -138px; width: 250px; height: 250px; border-radius: 50%; background: var(--tc-crimson); }
.tc-about-founder-mark { position: relative; z-index: 1; width: 122px; height: 122px; min-height: 122px; margin: .25rem auto 0; overflow: visible; border: 2px solid var(--tc-ink); border-radius: 50%; background: var(--tc-paper); box-shadow: 0 7px 0 var(--tc-ink); }
.tc-about-founder-mark::after { content: ''; position: absolute; z-index: -1; right: -22px; bottom: -19px; width: 68px; height: 68px; border-radius: 50%; background: var(--tc-crimson); }
.tc-about-founder-mark img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.tc-about-founder-copy { position: relative; z-index: 1; padding: .3rem 1rem .5rem 0; }
.tc-about-founder-copy h3 { margin: 0; font: 540 clamp(1.6rem, 2.35vw, 2.28rem)/1.06 var(--tc-display); letter-spacing: -.06em; }
.tc-about-founder-role { display: block; margin: .45rem 0 1.1rem; color: var(--tc-crimson); font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.tc-about-founder-copy > p { max-width: 500px; margin: 0; color: #4b4b4b; font-size: .87rem; }
.tc-about-founder-copy blockquote { margin: 1.25rem 0 0; padding: 1rem 1.1rem 1rem 1.25rem; border-left: 3px solid var(--tc-crimson); background: #ede8df; color: var(--tc-navy); font: 520 1rem/1.45 var(--tc-display); letter-spacing: -.035em; }
.tc-about-packages { margin-top: 3.15rem; }
.tc-about-subsection-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.tc-about-subsection-head .tc-home-eyebrow { margin: 0 0 .65rem; }
.tc-about-subsection-head h3 { margin: 0; font: 540 clamp(1.4rem, 2.15vw, 2rem)/1.08 var(--tc-display); letter-spacing: -.06em; }
.tc-about-subsection-head > a { color: var(--tc-navy); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tc-about-subsection-head > a:hover { color: var(--tc-crimson); }
.tc-about-package-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.tc-about-soft { position: relative; isolation: isolate; overflow: hidden; background: #ede8df; }
.tc-about-soft::before { content: ''; position: absolute; z-index: -1; top: -260px; right: 7%; width: 450px; height: 450px; border-radius: 50%; background: var(--tc-crimson); }
.tc-about-soft::after { content: ''; position: absolute; z-index: -1; bottom: -92px; left: 12%; width: 180px; height: 180px; border: 28px solid var(--tc-amber); border-radius: 50%; }
.tc-about-section-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.tc-about-section-head > p { max-width: 325px; margin: 0 0 .3rem; color: #454545; font-size: .9rem; }
.tc-about-principle-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 3rem; }
.tc-about-principle-grid article { position: relative; min-height: 270px; padding: 1.6rem; overflow: hidden; border: 1px solid rgba(23,23,23,.17); border-radius: 14px; background: rgba(255,255,255,.9); transition: transform .2s ease, box-shadow .2s ease; }
.tc-about-principle-grid article:hover { transform: translateY(-4px) rotate(-.35deg); box-shadow: 0 18px 44px rgba(18,69,89,.12); }
.tc-about-principle-grid article:nth-child(2) { transform: translateY(28px); background: var(--tc-navy); color: #fff; }
.tc-about-principle-grid article:nth-child(2):hover { transform: translateY(24px) rotate(.35deg); }
.tc-about-principle-grid article:nth-child(3) { border-radius: 14px 14px 42px 14px; }
.tc-about-principle-grid span { display: block; margin-bottom: 3.25rem; color: var(--tc-crimson); font: 600 1.45rem var(--tc-display); letter-spacing: -.08em; }
.tc-about-principle-grid article:nth-child(2) span { color: var(--tc-amber); }
.tc-about-principle-grid h3 { max-width: 12ch; margin: 0; font: 530 1.35rem/1.08 var(--tc-display); letter-spacing: -.05em; }
.tc-about-principle-grid p { margin: .7rem 0 0; color: #535353; font-size: .79rem; line-height: 1.5; }
.tc-about-principle-grid article:nth-child(2) p { color: rgba(255,255,255,.8); }
.tc-about-principle-grid article::after { content: ''; position: absolute; right: -63px; bottom: -63px; width: 120px; height: 120px; border-radius: 50%; background: var(--tc-crimson); opacity: .1; }
.tc-about-field { position: relative; isolation: isolate; overflow: hidden; padding: clamp(4.4rem, 8vw, 7.7rem) 0; background: var(--tc-navy); color: #fff; }
.tc-about-field::before { content: ''; position: absolute; z-index: -1; right: -150px; bottom: -250px; width: 520px; height: 520px; border: 48px solid var(--tc-crimson); border-radius: 50%; opacity: .92; }
.tc-about-field-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.tc-about-field .tc-home-eyebrow { background: var(--tc-amber); color: var(--tc-ink); }
.tc-about-field h2 { max-width: 13ch; margin: 0; color: #fff; font: 530 clamp(2.2rem, 4.6vw, 4.7rem)/1.01 var(--tc-display); letter-spacing: -.078em; }
.tc-about-field h2 em { color: var(--tc-amber); font-style: normal; }
.tc-about-field > .tc-about-wrap > div > p:last-child { max-width: 550px; margin: 1.3rem 0 0; color: #e2eef0; }
.tc-about-weather-card { position: relative; min-height: 356px; display: flex; align-items: end; overflow: hidden; border: 1px solid rgba(255,255,255,.45); border-radius: 18px 18px 18px 58px; background: linear-gradient(180deg, transparent 20%, rgba(9,34,44,.91) 94%), var(--tc-about-field-image) center/cover; box-shadow: 0 18px 44px rgba(18,69,89,.12); }
.tc-about-weather-card > span { position: absolute; top: 1rem; right: 1rem; display: grid; width: 55px; height: 55px; place-items: center; border-radius: 50%; background: var(--tc-crimson); color: #fff; font: 700 .65rem/1 var(--tc-display); letter-spacing: .02em; text-align: center; transform: rotate(9deg); }
.tc-about-weather-card > div { position: relative; z-index: 1; padding: 1.45rem; }
.tc-about-weather-card strong { display: block; font: 530 1.4rem/1.1 var(--tc-display); letter-spacing: -.055em; }
.tc-about-weather-card p { margin: .55rem 0 0; color: #edf6f6; font-size: .78rem; }
.tc-about-planning { background: var(--tc-paper); }
.tc-about-route-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.35rem; margin-top: 3.2rem; }
.tc-about-route-list article { position: relative; padding-top: 1.15rem; border-top: 2px solid var(--tc-crimson); }
.tc-about-route-list article::before { content: ''; position: absolute; top: -7px; left: 0; width: 11px; height: 11px; border-radius: 50%; background: var(--tc-crimson); }
.tc-about-route-list span { color: #33454d; font-size: .65rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.tc-about-route-list h3 { margin: .52rem 0 0; font: 540 1.23rem/1.13 var(--tc-display); letter-spacing: -.05em; }
.tc-about-route-list p { margin: .62rem 0 0; color: #525252; font-size: .8rem; }
.tc-about-cta { padding: 0 0 5.5rem; background: var(--tc-paper); }
.tc-about-cta > .tc-about-wrap > div { position: relative; isolation: isolate; overflow: hidden; padding: clamp(3rem, 6vw, 5.4rem) clamp(1.5rem, 6vw, 5rem); border-radius: 22px; background: var(--tc-navy); color: #fff; }
.tc-about-cta > .tc-about-wrap > div::before { content: ''; position: absolute; z-index: -1; top: -240px; right: -115px; width: 410px; height: 410px; border-radius: 50%; background: var(--tc-crimson); }
.tc-about-cta > .tc-about-wrap > div::after { content: ''; position: absolute; z-index: -1; bottom: -110px; left: 13%; width: 180px; height: 180px; border: 25px solid var(--tc-amber); border-radius: 50%; }
.tc-about-cta h2 { max-width: 16ch; margin: 0; color: #fff; font: 530 clamp(2.2rem, 5vw, 4.8rem)/1.01 var(--tc-display); letter-spacing: -.08em; }
.tc-about-cta p:not(.tc-home-eyebrow) { max-width: 590px; margin: 1rem 0 0; color: #e1eff0; }
.tc-about-cta-outline { border: 1px solid rgba(255,255,255,.8) !important; background: transparent !important; color: #fff !important; box-shadow: none !important; }
.tc-about-cta-outline:hover, .tc-about-cta-outline:focus-visible { background: #fff !important; color: var(--tc-navy) !important; }
@media (max-width: 1023px) {
  .tc-about-route-note { width: 260px; right: 1.7rem; bottom: 2.3rem; }
  .tc-about-founder, .tc-about-field-grid { grid-template-columns: 1fr; }
  .tc-about-founder-mark { justify-self: start; }
  .tc-about-principle-grid { grid-template-columns: repeat(2, 1fr); }
  .tc-about-principle-grid article:nth-child(2) { transform: none; }
  .tc-about-principle-grid article:nth-child(2):hover { transform: translateY(-4px) rotate(.35deg); }
  .tc-about-principle-grid article:nth-child(3) { grid-column: span 2; min-height: 210px; }
  .tc-about-package-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tc-about-route-list { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 680px) {
  .tc-about-wrap { width: calc(100% - 30px); }
  .tc-about-hero { min-height: 760px; display: block; padding-top: 70px; background-position: 62% center; }
  .tc-about-hero-inner { padding: 104px 0 42px; }
  .tc-about-hero h1 { font-size: clamp(2.8rem, 13vw, 4.3rem); }
  .tc-about-route-note { position: relative; right: auto; bottom: auto; width: min(260px, calc(100% - 30px)); margin: -16px 15px 28px auto; }
  .tc-about-signal-grid { display: block; }
  .tc-about-signal-grid > div { min-height: 58px; padding: 10px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }
  .tc-about-signal-grid > div:last-child { border-bottom: 0; }
  .tc-about-editorial { grid-template-columns: 1fr; gap: 2rem; }
  .tc-about-rail { padding-top: 0; }
  .tc-about-rail > p:last-child { max-width: 18rem; }
  .tc-about-section-head { display: block; }
  .tc-about-section-head > p { margin-top: 1rem; }
  .tc-about-founder { grid-template-columns: 1fr; padding: 1rem; border-radius: 15px 15px 42px 15px; }
  .tc-about-founder-mark { margin-left: .3rem; }
  .tc-about-founder-copy { padding: .45rem .2rem 1rem; }
  .tc-about-subsection-head { align-items: start; flex-direction: column; }
  .tc-about-package-grid, .tc-about-principle-grid, .tc-about-route-list { grid-template-columns: 1fr; }
  .tc-about-principle-grid article, .tc-about-principle-grid article:nth-child(3) { min-height: 210px; grid-column: auto; }
  .tc-about-principle-grid article:nth-child(2), .tc-about-principle-grid article:nth-child(2):hover { transform: none; }
  .tc-about-field { padding: 4.4rem 0; }
  .tc-about-weather-card { min-height: 300px; }
  .tc-about-cta { padding-bottom: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) { .tc-about-page *, .tc-about-page *::before, .tc-about-page *::after { transition: none !important; } }



/* TruCape quote-only commerce: never expose monetary markup. */
.tc-cart-item-meta > strong, .tc-cart-summary .tc-cart-total, .tc-drawer-total, .tc-mobile-cart-drawer .woocommerce-Price-amount, .tc-mobile-cart-drawer .woocommerce-Price-currencySymbol, body:has(.tc-commerce-page) .woocommerce-Price-amount, body:has(.tc-commerce-page) .woocommerce-Price-currencySymbol, body:has(.tc-commerce-page) .tc-catalog-price { display: none !important; }


/* TruCape quote-only commerce: hide modal and checkout money. */
/* Modal and Confirm Plan remain quote-only; retain product names, quantities, and form controls. */
.tc-modal-price, .tc-modal-route-card > div > strong, .woocommerce-checkout-review-order .product-total, .woocommerce-checkout-review-order .product-subtotal, .woocommerce-checkout-review-order .cart-subtotal, .woocommerce-checkout-review-order .order-total, .woocommerce-checkout-review-order .shipping, .woocommerce-checkout-review-order .fee, .woocommerce-checkout-review-order .tax, .woocommerce-checkout-review-order .woocommerce-Price-amount, .woocommerce-checkout-review-order .woocommerce-Price-currencySymbol, body:has(.tc-plan-confirmation) .woocommerce-Price-amount, body:has(.tc-plan-confirmation) .woocommerce-Price-currencySymbol { display: none !important; }




/* Live Confirm Plan Open Route reference UI. */
body.tc-confirm-plan-live .wp-block-post-content { width: 100%; max-width: none; }
body.tc-confirm-plan-live .wp-block-post-title { width: 100%; max-width: 1200px; margin: 0 auto; padding: 150px 0 0; color: var(--tc-ink); font: 500 clamp(2.75rem, 6.1vw, 5.9rem)/.98 var(--tc-display); letter-spacing: -.085em; }
body.tc-confirm-plan-live .tc-confirm-plan-intro { width: 100%; max-width: 1200px; margin: 1.2rem auto 2.2rem; color: var(--tc-muted); font-size: .98rem; }
body.tc-confirm-plan-live .woocommerce { width: 1200px; max-width: calc(100% - 40px); margin: 0 auto 100px; }
body.tc-confirm-plan-live form.checkout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 28px 48px; align-items: start; }
body.tc-confirm-plan-live .woocommerce form.checkout { width: 100%; max-width: 100%; margin-inline: 0; }
body.tc-confirm-plan-live #customer_details { min-width: 0; }
body.tc-confirm-plan-live .woocommerce-billing-fields,
body.tc-confirm-plan-live .woocommerce-additional-fields { margin: 0 0 24px; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid rgba(18,69,89,.14); border-radius: 18px; background: #fff; box-shadow: 0 12px 28px rgba(18,69,89,.06); }
body.tc-confirm-plan-live .woocommerce-billing-fields > h3,
body.tc-confirm-plan-live .woocommerce-additional-fields > h3 { margin: 0 0 1.1rem; font: 500 clamp(1.8rem, 3.2vw, 3rem)/1.04 var(--tc-display); letter-spacing: -.06em; }
body.tc-confirm-plan-live .tc-checkout-section-label { margin: 0 0 .65rem; color: var(--tc-crimson); font: 700 .68rem/1 var(--tc-display); letter-spacing: .11em; text-transform: uppercase; }
body.tc-confirm-plan-live .tc-checkout-subheading { margin: 1.8rem 0 1rem; padding-top: 1.25rem; border-top: 1px solid rgba(18,69,89,.14); }
body.tc-confirm-plan-live .tc-checkout-subheading h3 { margin: 0; font: 500 clamp(1.45rem, 2.5vw, 2.25rem)/1.06 var(--tc-display); letter-spacing: -.055em; }
body.tc-confirm-plan-live .tc-checkout-subheading > p:last-child { margin: .65rem 0 0; color: var(--tc-muted); font-size: .82rem; }
body.tc-confirm-plan-live .woocommerce form .form-row { margin-bottom: 14px; }
body.tc-confirm-plan-live .woocommerce form .form-row label { margin-bottom: 6px; color: var(--tc-ink); font-size: .72rem; font-weight: 800; }
body.tc-confirm-plan-live .woocommerce form .form-row input.input-text,
body.tc-confirm-plan-live .woocommerce form .form-row textarea,
body.tc-confirm-plan-live .woocommerce form .form-row select { min-height: 46px; padding: 12px 13px; border: 1px solid rgba(18,69,89,.2); border-radius: 10px; background: var(--tc-paper); color: var(--tc-ink); font: 500 .86rem var(--tc-body); }
body.tc-confirm-plan-live .woocommerce form .form-row textarea { min-height: 116px; }
body.tc-confirm-plan-live #order_review { position: sticky; top: 112px; min-width: 0; padding: 1.4rem; border: 1px solid rgba(18,69,89,.16); border-radius: 18px 18px 18px 48px; background: var(--tc-navy); color: #fff; box-shadow: 0 18px 44px rgba(18,69,89,.14); }
body.tc-confirm-plan-live #order_review_heading { color: #fff; font: 500 1.8rem/1.05 var(--tc-display); letter-spacing: -.06em; }
body.tc-confirm-plan-live .tc-checkout-review-note { margin: 0 0 1rem; color: rgba(255,255,255,.82); font-size: .78rem; line-height: 1.5; }
body.tc-confirm-plan-live #order_review .shop_table { border: 0; color: #fff; }
body.tc-confirm-plan-live #order_review .shop_table th,
body.tc-confirm-plan-live #order_review .shop_table td { padding: 10px 0; border-color: rgba(255,255,255,.2); }
body.tc-confirm-plan-live #order_review .woocommerce-Price-amount,
body.tc-confirm-plan-live #order_review .woocommerce-Price-currencySymbol,
body.tc-confirm-plan-live #order_review .cart-subtotal,
body.tc-confirm-plan-live #order_review .order-total,
body.tc-confirm-plan-live #order_review .shipping,
body.tc-confirm-plan-live #order_review .fee,
body.tc-confirm-plan-live #order_review .tax { display: none !important; }
body.tc-confirm-plan-live #payment { margin-top: 1rem; border-radius: 12px; background: transparent; }
body.tc-confirm-plan-live #place_order { width: 100%; min-height: 50px; border: 0; border-radius: 999px; background: var(--tc-crimson); color: #fff; font-weight: 800; }
body.tc-confirm-plan-live .woocommerce-privacy-policy-text { color: rgba(255,255,255,.75); font-size: .72rem; }
@media (max-width: 900px) {
  body.tc-confirm-plan-live form.checkout { grid-template-columns: 1fr; }
  body.tc-confirm-plan-live .woocommerce { width: calc(100% - 40px); max-width: calc(100% - 40px); }
  body.tc-confirm-plan-live #order_review { position: static; }
}
@media (max-width: 620px) {
  body.tc-confirm-plan-live .wp-block-post-title { width: calc(100% - 30px); padding-top: 105px; font-size: clamp(2.3rem, 12vw, 3.7rem); }
  body.tc-confirm-plan-live .tc-confirm-plan-intro,
  body.tc-confirm-plan-live .woocommerce { width: calc(100% - 30px); max-width: calc(100% - 30px); }
  body.tc-confirm-plan-live .woocommerce-billing-fields,
  body.tc-confirm-plan-live .woocommerce-additional-fields { padding: 1.15rem; border-radius: 14px; }
}


/* 11. Hide all numeric price elements from WooCommerce checkout/order pages */
.woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout-review-order-table .cart-subtotal,
.woocommerce-checkout-review-order-table .order-total,
.woocommerce-table--order-details .product-total,
.woocommerce-table--order-details tfoot,
.woocommerce-order-details .product-total,
.woocommerce-order-details tfoot {
  display: none !important;
}

/* Confirm Plan mobile refinement and WooCommerce-native success reading list. */
body.tc-confirm-plan-live .woocommerce { overflow: hidden; }
body.tc-confirm-plan-live .woocommerce form .form-row input.input-text,
body.tc-confirm-plan-live .woocommerce form .form-row textarea,
body.tc-confirm-plan-live .woocommerce form .form-row select { box-sizing: border-box; width: 100%; font-size: 16px; }
body.tc-confirm-plan-live .woocommerce form .form-row input.input-text:focus,
body.tc-confirm-plan-live .woocommerce form .form-row textarea:focus,
body.tc-confirm-plan-live .woocommerce form .form-row select:focus { outline: 3px solid rgba(231, 172, 52, .42); outline-offset: 2px; }
body.tc-confirm-plan-live #place_order { cursor: pointer; }
.tc-plan-success-stories { width: min(1240px, calc(100% - 40px)); margin: 64px auto 96px; padding: clamp(24px, 4vw, 48px); border-radius: 24px 24px 24px 64px; background: var(--tc-paper, #f7f4ef); }
.tc-plan-success-stories-head { display: flex; justify-content: space-between; gap: 32px; align-items: end; margin-bottom: 28px; }
.tc-plan-success-stories-head h2 { max-width: 680px; margin: .5rem 0 0; color: var(--tc-ink); font: 500 clamp(2rem, 4vw, 4rem)/.98 var(--tc-display); letter-spacing: -.07em; }
.tc-plan-success-stories-hint { max-width: 260px; margin: 0; color: var(--tc-muted); font-size: .86rem; line-height: 1.5; }
.tc-plan-success-stories-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.tc-plan-success-story { min-width: 0; overflow: hidden; border: 1px solid rgba(18,69,89,.14); border-radius: 18px 18px 18px 38px; background: #fff; box-shadow: 0 12px 28px rgba(18,69,89,.07); }
.tc-plan-success-story-image { display: block; aspect-ratio: 1.55; background: linear-gradient(135deg, rgba(18,69,89,.15), rgba(18,69,89,.72)), var(--tc-success-story-image) center/cover; }
.tc-plan-success-story-body { padding: 20px; }
.tc-plan-success-story-kicker { margin: 0 0 8px; color: var(--tc-crimson); font: 700 .65rem/1 var(--tc-display); letter-spacing: .1em; text-transform: uppercase; }
.tc-plan-success-story h3 { margin: 0; color: var(--tc-ink); font: 600 1.25rem/1.08 var(--tc-display); letter-spacing: -.04em; }
.tc-plan-success-story h3 a { color: inherit; text-decoration: none; }
.tc-plan-success-story-body > p:not(.tc-plan-success-story-kicker) { margin: 12px 0 16px; color: var(--tc-muted); font-size: .82rem; line-height: 1.5; }
.tc-plan-success-story-link { color: var(--tc-navy); font-size: .75rem; font-weight: 800; text-decoration: none; }
.tc-plan-success-story-link span { color: var(--tc-crimson); font-size: 1rem; }
@media (max-width: 900px) {
  .tc-plan-success-stories-head { display: block; }
  .tc-plan-success-stories-hint { max-width: 420px; margin-top: 12px; }
}
@media (max-width: 620px) {
  body.tc-confirm-plan-live .wp-block-post-title { padding-top: 96px; }
  body.tc-confirm-plan-live .tc-confirm-plan-intro { margin-bottom: 1.25rem; line-height: 1.55; }
  body.tc-confirm-plan-live .woocommerce { margin-bottom: 56px; }
  body.tc-confirm-plan-live form.checkout { gap: 14px; }
  body.tc-confirm-plan-live .woocommerce-billing-fields,
  body.tc-confirm-plan-live .woocommerce-additional-fields { margin-bottom: 14px; padding: 16px; border-radius: 16px; }
  body.tc-confirm-plan-live .woocommerce-billing-fields > h3,
  body.tc-confirm-plan-live .woocommerce-additional-fields > h3 { font-size: 1.85rem; }
  body.tc-confirm-plan-live .tc-checkout-subheading { margin-top: 1.35rem; padding-top: 1rem; }
  body.tc-confirm-plan-live #order_review { padding: 18px 16px; border-radius: 16px 16px 16px 34px; }
  body.tc-confirm-plan-live #order_review .shop_table { width: 100%; table-layout: fixed; font-size: .82rem; }
  body.tc-confirm-plan-live #order_review .shop_table th,
  body.tc-confirm-plan-live #order_review .shop_table td { overflow-wrap: anywhere; }
  body.tc-confirm-plan-live #place_order { min-height: 54px; font-size: .9rem; }
  .tc-plan-success-stories { width: calc(100% - 30px); margin: 38px auto 72px; padding: 22px 15px 24px; border-radius: 18px 18px 18px 42px; }
  .tc-plan-success-stories-head h2 { font-size: 2.15rem; }
  .tc-plan-success-stories-track { display: flex; gap: 14px; overflow-x: auto; padding: 2px 2px 12px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .tc-plan-success-stories-track::-webkit-scrollbar { display: none; }
  .tc-plan-success-story { flex: 0 0 min(82vw, 320px); scroll-snap-align: start; }
}
@media (prefers-reduced-motion: reduce) {
  .tc-plan-success-stories-track { scroll-behavior: auto; }
}
.tc-plan-success-intro { max-width: 760px; padding: clamp(120px, 15vw, 190px) 0 36px; }
.tc-plan-success-intro h1 { margin: .55rem 0 1rem; color: var(--tc-ink); font: 500 clamp(3rem, 7vw, 6.5rem)/.94 var(--tc-display); letter-spacing: -.085em; }
.tc-plan-success-intro p:not(.tc-home-eyebrow) { max-width: 560px; color: var(--tc-muted); font-size: 1rem; line-height: 1.6; }
@media (max-width: 620px) {
  .tc-plan-success-intro { padding: 104px 0 24px; }
  .tc-plan-success-intro h1 { font-size: clamp(2.6rem, 13vw, 4rem); }
  .tc-plan-success-intro p:not(.tc-home-eyebrow) { font-size: .92rem; }
}



/* The Travel Plan shell owns its visible title; remove the duplicate template
   title and leave a deliberate, header-safe breathing space above the shell. */
body:has(.tc-cart-page) .wp-block-post-title { display: none !important; }
body:has(.tc-cart-page) .tc-commerce-head { padding-top: 106px; }
@media (max-width: 620px) {
  body:has(.tc-cart-page) .tc-commerce-head { padding-top: 86px; }
}
#trucape-homepage .tc-home-product-gallery figure { position: relative; flex: 0 0 clamp(230px, 25vw, 360px); height: 170px; margin: 0; overflow: hidden; }
#trucape-homepage .tc-home-product-gallery figure::after { content: ''; position: absolute; z-index: 1; inset: 38% 0 0; background: linear-gradient(180deg, transparent, rgba(7,29,38,.88)); pointer-events: none; }
#trucape-homepage .tc-home-product-gallery img { display: block; width: 100%; height: 100%; object-fit: cover; }
#trucape-homepage .tc-home-product-gallery figure span { position: absolute; z-index: 2; right: 15px; bottom: 12px; left: 15px; color: #fff; font: 600 .68rem/1.1 var(--tc-body); }
@media (prefers-reduced-motion: reduce) { #trucape-homepage .tc-home-product-gallery .tc-footer-gallery-track { animation: none; transform: none; width: 100%; } #trucape-homepage .tc-home-product-gallery figure:nth-child(n+6) { display: none; } }
@media (max-width: 620px) { #trucape-homepage .tc-home-product-gallery figure { flex-basis: 75vw; height: 145px; } }

/* ─── PRODUCT PAGE TEMPLATE V14 REFINEMENTS ─── */
.tc-product-landing-v14 section {
  padding-top: 2.5rem !important;
  padding-bottom: 2.5rem !important;
}

/* Hero breadcrumb 100px top padding */
.tc-product-hero-left {
  padding-top: 100px !important;
  padding-bottom: 2.5rem !important;
}

/* Decorative trail SVGs inside At a glance: 5% - 20% opacity (12%) */
#destination-at-a-glance .tc-deco-trail,
#destination-at-a-glance svg {
  opacity: 0.12 !important;
}

#destination-at-a-glance .dcard-compact-fullbg {
  background-color: var(--tc-crimson, #d3183e) !important;
}

#destination-at-a-glance .dcard-compact-content small {
  color: #000000 !important;
  font-weight: 600 !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  display: block !important;
}

#destination-at-a-glance .dcard-compact-content h3,
#destination-at-a-glance .dcard-compact-content a {
  font-weight: 450 !important;
  font-size: 1rem !important;
  color: #ffffff !important;
  line-height: 1.35 !important;
}

#destination-at-a-glance .dcard-compact-fullbg i {
  color: rgba(255, 255, 255, 0.2) !important;
}

/* + Add to Plan standalone hero & floating button styling */
.tc-hero-action-box .tc-add-btn,
.tc-hero-action-box .btn-add-pill,
.tc-package-itinerary-sec .btn-add-pill,
.tc-product-plan-float .btn-add-pill,
.tc-modal-model-actions .tc-add-btn,
.tc-hero-add-lg {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  background-color: var(--tc-crimson, #d3183e) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  font-family: var(--tc-body, 'Manrope', sans-serif) !important;
  border: none !important;
  border-radius: 9999px !important;
  padding: 0.65rem 1.4rem !important;
  font-size: 0.9rem !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  width: auto !important;
  max-width: none !important;
  min-width: max-content !important;
  box-sizing: border-box !important;
  box-shadow: 0 4px 14px rgba(211, 24, 62, 0.25) !important;
  transition: opacity 0.25s ease, background-color 0.25s ease, transform 0.2s ease !important;
}

.tc-hero-add-lg {
  padding: 0.85rem 1.85rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
}

/* ─── UNIFIED CARD ACTION BUTTONS (View & Add matching sizing sitewide) ─── */
.dcard-compact-actions .btn-view-pill {
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.2 !important;
  padding: 0.32rem 0.75rem !important;
  gap: 0.25rem !important;
  border-radius: 9999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  height: auto !important;
  min-height: unset !important;
}

.dcard-compact-actions .btn-add-pill,
.dcard-compact-actions .tc-add-btn,
.dcard-compact-actions .tc-add-package {
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.2 !important;
  padding: 0.32rem 12px !important;
  gap: 0.25rem !important;
  border-radius: 9999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  height: auto !important;
  min-height: unset !important;
  width: auto !important;
  min-width: unset !important;
  max-width: none !important;
  overflow: visible !important;
  transform: none !important;
  transition: background-color 0.2s ease !important;
}

.dcard-compact-actions .btn-view-pill i,
.dcard-compact-actions .btn-view-pill svg,
.dcard-compact-actions .btn-add-pill i,
.dcard-compact-actions .btn-add-pill svg,
.dcard-compact-actions .tc-add-btn i,
.dcard-compact-actions .tc-add-btn svg {
  font-size: 0.7rem !important;
  line-height: 1 !important;
}

/* Button added state in card actions: circle background with checkmark only */
.dcard-compact-actions .tc-add-btn.is-added,
.dcard-compact-actions .btn-add-pill.is-added,
.dcard-compact-actions .tc-add-package.is-added {
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  min-height: 28px !important;
  border-radius: 50% !important;
  padding: 0 !important;
  margin: 0 !important;
  opacity: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--tc-crimson, #c92a42) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
  cursor: default !important;
  text-indent: 0 !important;
  overflow: hidden !important;
}

.dcard-compact-actions .btn-add-pill--pkg.is-added {
  background: var(--tc-amber, #e7ac34) !important;
  color: var(--tc-navy, #071d26) !important;
}

.dcard-compact-actions .tc-add-btn.is-added::before,
.dcard-compact-actions .btn-add-pill.is-added::before,
.dcard-compact-actions .tc-add-package.is-added::before {
  content: '✓' !important;
  font-family: inherit !important;
  font-size: 0.85rem !important;
  font-weight: 900 !important;
  color: inherit !important;
  line-height: 1 !important;
  display: inline-block !important;
  background: transparent !important;
  width: auto !important;
  height: auto !important;
  border-radius: 0 !important;
  place-items: unset !important;
}

/* Hide text and icon elements in circular added state */
.dcard-compact-actions .tc-add-btn.is-added span,
.dcard-compact-actions .btn-add-pill.is-added span,
.dcard-compact-actions .tc-add-package.is-added span,
.dcard-compact-actions .tc-add-btn.is-added i,
.dcard-compact-actions .btn-add-pill.is-added i,
.dcard-compact-actions .tc-add-package.is-added i,
.dcard-compact-actions .tc-add-btn.is-added svg,
.dcard-compact-actions .btn-add-pill.is-added svg {
  display: none !important;
}

/* Default / fallback added state for non-card buttons */
.tc-add-btn.is-added:not(.dcard-compact-actions *),
.btn-add-pill.is-added:not(.dcard-compact-actions *),
.tc-add-btn[disabled].is-added:not(.dcard-compact-actions *),
.btn-add-pill[disabled].is-added:not(.dcard-compact-actions *) {
  opacity: 0.1 !important;
  box-shadow: none !important;
  cursor: default !important;
}

/* Minimal Footer Red Background ALWAYS */
.tc-product-simple-footer {
  background-color: var(--tc-crimson, #d3183e) !important;
  color: #ffffff !important;
  padding: 2rem 0 !important;
}

.tc-product-simple-footer a {
  color: #ffffff !important;
}

/* Product Full Description Inner h2's: Red, 1.25rem, 10px margin-top */
.tc-product-full-description h2 {
  color: var(--tc-crimson, #d3183e) !important;
  font-size: 1.25rem !important;
  margin-top: 10px !important;
  margin-bottom: 0.5rem !important;
  font-weight: 700 !important;
}

/* View all places / View all tours button: No blur, no shadow */
.tc-product-landing-v14 .section-head .btn-primary {
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ─── STICKY / FLOATING ADD TO PLAN BUTTON ─── */
/* Hidden on desktop */
@media (min-width: 1024px) {
  .tc-product-plan-float {
    display: none !important;
  }
}

/* Mobile & Tablet layout */
@media (max-width: 1023px) {
  .tc-product-plan-float {
    position: fixed !important;
    right: 14px !important;
    left: auto !important;
    bottom: calc(69px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 9000 !important; /* Below sidecart modal z-index (9050+) */
    display: block !important;
    width: auto !important;
    max-width: max-content !important;
    margin-left: auto !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
  }

  .tc-product-plan-float.is-visible {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }

  .tc-product-plan-float .tc-float-add-btn,
  .tc-float-add-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.55rem !important;
    background-color: var(--tc-navy, #124559) !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    font-size: 0.88rem !important;
    padding: 0.65rem 1.3rem !important;
    border-radius: 9999px !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 6px 20px rgba(18, 69, 89, 0.35) !important;
    width: auto !important;
    max-width: max-content !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }

  .tc-product-plan-float .tc-float-add-btn i,
  .tc-product-plan-float .tc-float-add-btn svg,
  .tc-float-add-btn i,
  .tc-float-add-btn svg {
    color: #ffffff !important;
    fill: #ffffff !important;
    font-size: 0.95rem !important;
    flex-shrink: 0 !important;
  }

  /* Added state: 35% opacity for entire button while text remains white */
  .tc-product-plan-float .tc-float-add-btn.is-added,
  .tc-float-add-btn.is-added,
  .tc-add-btn.is-added {
    opacity: 0.35 !important;
    color: #ffffff !important;
    background-color: var(--tc-navy, #124559) !important;
    box-shadow: none !important;
    cursor: default !important;
  }

  .tc-product-plan-float .tc-float-add-btn.is-added span,
  .tc-float-add-btn.is-added span,
  .tc-add-btn.is-added span {
    color: #ffffff !important;
    opacity: 1 !important;
  }
}

/* ─── PRODUCT TOPICS SMALL WHITE BUTTONS & MOBILE HORIZONTAL SCROLL ─── */
.tc-product-topics {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
  margin-top: 1.2rem !important;
  margin-bottom: 0.5rem !important;
  width: 100% !important;
}

.tc-product-topics a,
.tc-compact-tag {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: #ffffff !important;
  color: var(--tc-navy, #124559) !important;
  font-weight: 550 !important;
  font-size: 0.76rem !important;
  line-height: 1.2 !important;
  padding: 0.35rem 0.85rem !important;
  border-radius: 9999px !important;
  border: 1px solid rgba(18, 69, 89, 0.12) !important;
  text-decoration: none !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06) !important;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.15s ease !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}

.tc-product-topics a:hover,
.tc-compact-tag:hover {
  background-color: var(--tc-navy, #124559) !important;
  color: #ffffff !important;
  border-color: var(--tc-navy, #124559) !important;
}

@media (max-width: 767px) {
  .tc-product-topics {
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0.4rem !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .tc-product-topics::-webkit-scrollbar {
    display: none !important;
  }
}

/* ─── RED DROPDOWN MENUS (WHITE TEXT & WHITE DIVIDERS) ─── */
.tc-has-dropdown {
  position: relative !important;
}

.tc-nav-chevron {
  width: 12px !important;
  height: 12px !important;
  display: inline-block !important;
  vertical-align: middle !important;
  margin-left: 4px !important;
  transition: transform 200ms ease !important;
}

.tc-nav-trigger[aria-expanded="true"] .tc-nav-chevron {
  transform: rotate(180deg) !important;
}

.tc-dropdown-panel,
.tc-mega-panel {
  position: absolute !important;
  top: calc(100% + 12px) !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(8px) !important;
  z-index: 9500 !important;
  min-width: 290px !important;
  max-width: 340px !important;
  background: var(--tc-crimson, #d3183e) !important;
  color: #ffffff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.22) !important;
  border-radius: 20px !important;
  box-shadow: 0 20px 50px rgba(7, 29, 38, 0.35) !important;
  padding: 18px 20px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
  transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1), opacity 200ms ease, visibility 200ms !important;
}

.tc-dropdown-panel.tc-mega-open,
.tc-mega-panel.tc-mega-open {
  opacity: 1 !important;
  pointer-events: auto !important;
  visibility: visible !important;
  transform: translateX(-50%) translateY(0) !important;
}

/* Desktop navigation dropdowns are hover/focus driven; no JS state is required. */
@media (min-width: 1024px) {
  .tc-header-nav-pill .tc-nav-item.tc-has-dropdown:hover > .tc-dropdown-panel,
  .tc-header-nav-pill .tc-nav-item.tc-has-dropdown:hover > .tc-mega-panel,
  .tc-header-nav-pill .tc-nav-item.tc-has-dropdown:focus-within > .tc-dropdown-panel,
  .tc-header-nav-pill .tc-nav-item.tc-has-dropdown:focus-within > .tc-mega-panel {
    opacity: 1 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    transform: translateX(-50%) translateY(0) !important;
  }
}

.tc-dropdown-inner {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.tc-dropdown-label {
  font-family: var(--display, 'Sora', sans-serif) !important;
  font-size: 0.65rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.9) !important;
  margin: 0 0 6px !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.25) !important;
}

.tc-dropdown-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

.tc-dropdown-list li {
  margin: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
}

.tc-dropdown-list li:last-child {
  border-bottom: none !important;
}

.tc-dropdown-list a {
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  color: #ffffff !important;
  text-decoration: none !important;
  display: block !important;
  padding: 7px 10px !important;
  border-radius: 8px !important;
  transition: background 150ms ease, color 150ms ease, padding-left 150ms ease !important;
}

.tc-dropdown-list a:hover {
  background: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  padding-left: 14px !important;
}

.tc-dropdown-all-link,
.tc-link-bold-red {
  font-weight: 800 !important;
  color: #ffffff !important;
  font-size: 0.88rem !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  padding: 10px 10px 4px !important;
  margin-top: 4px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.28) !important;
  border-radius: 8px !important;
  transition: background 150ms ease, padding-left 150ms ease !important;
}

.tc-dropdown-all-link:hover,
.tc-link-bold-red:hover {
  background: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  padding-left: 14px !important;
}

/* ─── NAVY BG & NAVY OVERLAY SECTION EYEBROWS (YELLOW / AMBER) ─── */
.bg-navy-950 .section-eyebrow,
.bg-navy-900 .section-eyebrow,
.bg-navy-800 .section-eyebrow,
.bg-navy-700 .section-eyebrow,
[class*="bg-navy"] .section-eyebrow,
[class*="bg-navy"] .cta-coord-tag,
.cta-package-featured-bg .cta-coord-tag,
.cta-package-featured-bg .section-eyebrow,
.cta-package-featured-bg .stops-mini-carousel-box > span,
.cta-dest-slider .cta-coord-tag,
.cta-dest-slider .section-eyebrow,
#travel-styles .section-eyebrow,
#destination-directory .cta-coord-tag,
#destination-directory .section-eyebrow,
#destination-at-a-glance .section-eyebrow,
.plan-strip-grid .section-eyebrow,
.tc-plan-strip-sec .section-eyebrow,
.tc-dark-section .section-eyebrow,
.tc-dark-section .cta-coord-tag {
  color: var(--tc-amber, #e7ac34) !important;
}

/* ─── FINAL HOMEPAGE MOBILE PRESENTATION ─────────────────────────── */
.tc-weather-bar,
.tc-weather-bar[style] {
  background: var(--tc-navy, #124559) !important;
  background-color: var(--tc-navy, #124559) !important;
}

@media (max-width: 768px) {
  .section-fw { padding-top: 0 !important; }
}

@media (max-width: 768px) {
  .tc-footer-main {
    width: min(100% - 36px, 520px) !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 42px 0 36px !important;
  }
  .tc-footer-brand,
  .tc-footer-brand p,
  .tc-footer-logo,
  .tc-footer-col {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    text-align: left !important;
  }
  .tc-footer-logo {
    display: block !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }
  .tc-footer-col { gap: 8px !important; }
}

@media (max-width: 960px) {
  .hero-white-stage {
    min-height: 420px !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: stretch !important;
    padding-top: 2.5rem !important;
    padding-bottom: 0 !important;
    padding-inline: 0 !important;
  }
  .hero-slideshow-deck {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    position: absolute !important;
    inset: 0 !important;
  }
  .hero-grid-layout {
    width: min(1200px, calc(100% - 36px)) !important;
    margin-inline: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: auto !important;
    padding-inline: 0 !important;
    flex: none !important;
    height: auto !important;
    min-height: 0 !important;
    align-content: end !important;
    align-items: end !important;
    padding-bottom: 0 !important;
    box-sizing: border-box !important;
    position: relative !important;
    z-index: 5 !important;
  }
  .hero-grid-layout > div:first-child {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    width: 100% !important;
  }
  .hero-vehicle-standalone {
    margin-top: auto !important;
    margin-bottom: 0.35rem !important;
  }
  .hero-main-headline,
  h2.hero-main-headline {
    font-size: clamp(1.85rem, 5vw, 2.7rem) !important;
    margin-bottom: 0.6rem !important;
  }
  .hero-supporting-copy {
    display: none !important;
  }
  .search-capsule-box {
    margin-bottom: 24px !important;
    width: 100% !important;
  }
  .search-single-row-bar {
    padding: 0.38rem 0.45rem 0.38rem 0.85rem !important;
    gap: 0.4rem !important;
  }
  .search-field-segment {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: 100% !important;
    gap: 0.45rem !important;
  }
  .search-launch-btn {
    padding: 0.55rem 0.95rem !important;
    flex-shrink: 0 !important;
  }
}

/* ─── TRAVEL PLAN ACTION COLORS ─────────────────────────────────── */
.tc-cart-summary .tc-search-btn {
  background: var(--tc-crimson, #d3183e) !important;
  color: #ffffff !important;
}
.tc-cart-actions .tc-cart-update {
  background: #000000 !important;
  color: #ffffff !important;
}
.tc-cart-actions .tc-cart-update:hover,
.tc-cart-actions .tc-cart-update:focus,
.tc-cart-actions .tc-cart-update:focus-visible,
.tc-cart-actions .tc-cart-update:active {
  background: #124559 !important;
  color: #ffffff !important;
}
/* Blog archive additions: post grid, load-more control, interest tags. */
.tc-blog-archive-results [data-blog-post-list] { margin-top: 1.5rem; }
.tc-blog-more-wrap { display:flex; justify-content:center; margin-top:2rem; }
.tc-blog-tag-buttons { display:flex; flex-wrap:wrap; gap:.65rem; }
.tc-blog-tag-button { display:inline-flex; padding:.7rem 1rem; border:1px solid var(--tc-border); border-radius:999px; background:#fff; color:var(--tc-navy); font:650 .78rem var(--tc-body); text-decoration:none; transition:transform .2s ease, border-color .2s ease, background .2s ease; }
.tc-blog-tag-button:hover,.tc-blog-tag-button:focus-visible { transform:translateY(-2px); border-color:var(--tc-crimson); background:#fff8f8; color:var(--tc-crimson); }
/* Travel Tips cards and single-post template share the homepage editorial rhythm. */
.tc-blog-archive .tc-home-content-card { min-height:310px; border-radius:15px 15px 42px 15px; box-shadow:0 12px 26px rgba(18,69,89,.12); transition:transform .22s ease,box-shadow .22s ease; }
.tc-blog-archive .tc-home-content-card:hover { transform:translateY(-5px); box-shadow:0 21px 34px rgba(18,69,89,.2); }
.tc-blog-archive .tc-home-content-card::after { background:linear-gradient(180deg,rgba(7,29,38,.08) 12%,rgba(7,29,38,.94) 100%); }
.tc-blog-archive .tc-home-content-card-body { right:18px; bottom:18px; left:18px; }
.tc-blog-archive .tc-home-content-card-body h3 { max-width:18ch; font:650 clamp(1.2rem,1.9vw,1.55rem)/1.04 var(--tc-display); letter-spacing:-.055em; }
.tc-blog-archive .tc-home-content-card-body h3 a { color:#fff; text-decoration:none; }
.tc-blog-archive .tc-home-content-card-body>p:not(.tc-home-card-kicker) { max-width:42ch; color:rgba(255,255,255,.82); }
.tc-blog-archive .tc-home-content-card-body .tc-home-card-kicker { color:var(--tc-amber,#e7ac34); font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.tc-blog-archive .tc-home-content-card .tc-details-btn { min-height:38px; padding:.55rem .85rem; border:1px solid rgba(7,29,38,.22); border-radius:999px; background:#fff; color:#050a0f; font-weight:800; text-decoration:none; box-shadow:none; transition:background .18s ease,color .18s ease,transform .18s ease; }
.tc-blog-archive .tc-home-content-card .tc-details-btn:hover,.tc-blog-archive .tc-home-content-card .tc-details-btn:focus-visible { background:var(--tc-navy,#124559); color:#fff; transform:translateY(-2px); }
.tc-single-blog-hero .hero-main-headline { max-width:900px !important; }
.tc-single-blog-meta { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; margin-top:1.15rem; color:var(--tc-muted,#43545d); font-size:.76rem; font-weight:700; }
.tc-blog-post-content-section { padding:clamp(42px,6vw,82px) 20px; background:#fff; }
.tc-blog-post-content { width:min(820px,100%); margin:0 auto; color:var(--tc-muted,#43545d); font:400 clamp(1rem,1.3vw,1.12rem)/1.78 var(--tc-body); }
.tc-blog-post-content>*:first-child { margin-top:0; }.tc-blog-post-content>*:last-child { margin-bottom:0; }
.tc-blog-post-content h2,.tc-blog-post-content h3 { color:var(--tc-ink,#050a0f); font-family:var(--tc-display); line-height:1.05; letter-spacing:-.05em; }
.tc-blog-post-content h2 { margin-top:2.1em; font-size:clamp(1.8rem,3.4vw,3rem); }.tc-blog-post-content h3 { margin-top:1.8em; font-size:clamp(1.35rem,2.5vw,2rem); }
.tc-blog-post-content a { color:var(--tc-navy,#124559); font-weight:800; }.tc-blog-post-content img { display:block; width:auto; max-width:100%; height:auto; margin:2rem auto; border-radius:16px; }
.tc-blog-related-products { padding:clamp(44px,6vw,82px) 20px; border-top:1px solid var(--tc-border,#dce3e3); background:var(--tc-paper,#f5efe6); }
.tc-blog-related-head { display:flex; align-items:end; justify-content:space-between; gap:24px; width:min(1240px,100%); margin:0 auto 26px; }.tc-blog-related-head h2 { margin:.2rem 0 0; color:var(--tc-ink,#050a0f); font:650 clamp(2rem,4vw,4rem)/.98 var(--tc-display); letter-spacing:-.07em; }.tc-blog-related-head>p { max-width:320px; margin:0; color:var(--tc-muted); font-size:.9rem; line-height:1.6; }
.tc-blog-related-carousel { width:min(1240px,100%); margin:0 auto; overflow:hidden; }.tc-blog-related-track { display:flex; gap:18px; overflow-x:auto; padding:4px 2px 16px; scroll-snap-type:x mandatory; scrollbar-width:thin; }.tc-blog-related-slide { flex:0 0 min(300px,calc(33.333% - 12px)); scroll-snap-align:start; }.tc-blog-related-slide .tc-catalog-card { min-height:360px; }
@media (max-width:760px){.tc-blog-related-head{display:block}.tc-blog-related-head>p{margin-top:12px}.tc-blog-related-slide{flex-basis:78%;}.tc-single-blog-meta{margin-top:1rem;}.tc-blog-post-content-section{padding-inline:15px;}}
/* Polished TruCape route drawer: warm paper, quiet controls, no coloured button glow. */
.tc-mobile-cart-panel { background:var(--tc-paper,#f5efe6)!important; border:1px solid rgba(7,29,38,.14)!important; border-radius:28px!important; box-shadow:0 24px 70px rgba(7,29,38,.24)!important; }
.tc-mobile-cart-head { align-items:flex-start!important; padding:1.65rem 1.65rem 1.3rem!important; background:var(--tc-paper,#f5efe6)!important; border-bottom:1px solid rgba(7,29,38,.13)!important; }
.tc-drawer-heading { min-width:0; }
.tc-drawer-script { margin:0 0 .4rem!important; color:var(--tc-crimson,#d3183e)!important; font:400 1.05rem/1.1 var(--tc-font-script,'Permanent Marker',cursive)!important; transform:rotate(-2deg); transform-origin:left center; }
.tc-mobile-cart-head h2 { margin:0!important; color:var(--tc-ink-950,#050a0f)!important; font:650 clamp(1.55rem,4vw,2rem)/1 var(--tc-display,'Sora',sans-serif)!important; letter-spacing:-.06em; }
.tc-drawer-subtitle { max-width:28ch; margin:.55rem 0 0!important; color:var(--tc-muted,#43545d)!important; font:500 .76rem/1.5 var(--tc-body,'Manrope',sans-serif)!important; }
.tc-mobile-cart-head button { flex:0 0 36px; width:36px!important; height:36px!important; background:#fff!important; border:1px solid rgba(7,29,38,.14)!important; color:var(--tc-ink)!important; box-shadow:none!important; }
.tc-mobile-cart-body { padding:1.2rem 1.65rem!important; background:var(--tc-paper,#f5efe6)!important; }
.tc-drawer-items { gap:.75rem!important; margin:.1rem 0 1.2rem!important; }
.tc-drawer-items article { grid-template-columns:64px minmax(0,1fr)!important; gap:12px!important; padding:10px!important; border:1px solid rgba(7,29,38,.12)!important; border-radius:18px!important; background:#fff!important; box-shadow:0 5px 0 rgba(7,29,38,.06)!important; }
.tc-drawer-items article>div:first-child img,.tc-drawer-items img { width:64px!important; height:64px!important; border-radius:12px!important; object-fit:cover!important; }
.tc-drawer-items strong { display:block; color:var(--tc-ink-950,#050a0f)!important; font:700 .86rem/1.25 var(--tc-display,'Sora',sans-serif)!important; }
.tc-drawer-item-qty { color:var(--tc-muted)!important; font:600 .67rem var(--tc-body)!important; }
.tc-drawer-items small { color:var(--tc-muted)!important; font:500 .68rem/1.35 var(--tc-body)!important; }
.tc-drawer-remove { margin-top:.45rem!important; color:var(--tc-crimson)!important; font:800 .66rem var(--tc-body)!important; text-decoration:none!important; }
.tc-drawer-package-heading { margin:.9rem .2rem .35rem!important; color:var(--tc-navy)!important; font:800 .63rem var(--tc-body)!important; letter-spacing:.1em; text-transform:uppercase; }
.tc-mobile-cart-actions { align-items:stretch!important; padding:1rem 1.65rem max(1.2rem,env(safe-area-inset-bottom,1.2rem))!important; background:var(--tc-paper,#f5efe6)!important; border-top:1px solid rgba(7,29,38,.13)!important; }
.tc-mobile-cart-actions .tc-search-btn { background:var(--tc-navy-900,#07151e)!important; color:#fff!important; border:1px solid var(--tc-navy-900,#07151e)!important; box-shadow:none!important; font-weight:800!important; }
.tc-mobile-cart-actions .tc-search-btn:hover,.tc-mobile-cart-actions .tc-search-btn:focus-visible { background:var(--tc-navy,#124559)!important; transform:none!important; box-shadow:none!important; }
.tc-mobile-cart-actions .tc-cart-clear { border:1px solid rgba(7,29,38,.2)!important; background:transparent!important; color:var(--tc-ink)!important; box-shadow:none!important; }
.tc-mobile-cart-actions .tc-cart-clear:hover { border-color:var(--tc-ink)!important; color:var(--tc-ink)!important; }
.tc-drawer-empty { margin:1rem 0!important; padding:2rem 1rem!important; border:1px dashed rgba(7,29,38,.2)!important; border-radius:18px!important; color:var(--tc-muted)!important; text-align:center; font:600 .85rem/1.5 var(--tc-body)!important; }
/* Search results: hero contains only the requested eyebrow and quoted keyword. */
.tc-search-results-hero .hero-script-tag { margin-bottom:.8rem; }
.tc-search-results-hero { min-height: 220px !important; }
.tc-search-results-hero .tc-search-results-capsule { width: min(600px, 100%); margin-top: 1rem; }
.tc-search-results-page { background:#fff!important; }
.tc-search-results-hero { overflow:hidden!important; }
.tc-search-results-page > .tc-search-results-grid-section { position:relative; z-index:1; min-height:260px; background:#fff!important; background-image:none!important; }
.tc-search-results-page > .tc-search-results-grid-section::before { display:none!important; }
@media (max-width: 960px) { .tc-search-results-hero { min-height: 320px !important; } .tc-search-results-hero .tc-search-results-capsule { width: 100%; } }
.tc-search-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
@media (max-width:1100px){.tc-search-product-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:760px){.tc-search-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}}
@media (max-width:480px){.tc-search-product-grid{grid-template-columns:1fr;}}

/* About hero: match the homepage hero type scale, palette, controls, and bottom anchor. */
#tc-about-page .tc-about-hero-eyebrow { margin: 0 0 .9rem; color: var(--tc-amber,#ffb563); font: 400 clamp(1.25rem,2.3vw,2rem)/1.1 var(--tc-font-script,'Permanent Marker',cursive); letter-spacing: 0; text-transform: none; transform: rotate(-2deg); transform-origin: left center; }
#tc-about-page .tc-about-hero-title { max-width: 18ch; margin: 0; color: #fff; font: 700 clamp(3rem,5.7vw,5.8rem)/.96 var(--tc-display,Sora,sans-serif); letter-spacing: -.09em; }
#tc-about-page .tc-about-hero-title em { color: var(--tc-amber,#ffb563); font-style: normal; }
#tc-about-page .tc-about-hero { min-height: 620px; align-items: flex-end; }
#tc-about-page .tc-about-hero-inner { align-self: stretch; display: flex; flex-direction: column; justify-content: flex-end; padding: 118px 0 42px; }
#tc-about-page .tc-about-hero .tc-home-eyebrow { margin: 0 0 .9rem; padding: 0; background: transparent; color: var(--tc-ice,#d6eeff); font: 400 .66rem/1.2 var(--tc-body,Manrope,sans-serif); letter-spacing: .13em; text-transform: uppercase; }
#tc-about-page .tc-about-hero h1 { max-width: 18ch; margin: 0 0 20px; color: #fff; font: 600 clamp(3rem,5.7vw,5.8rem)/.96 var(--tc-display,Sora,sans-serif); letter-spacing: -.09em; }
#tc-about-page .tc-about-hero h1 em { color: var(--tc-amber,#ffb563) !important; font-style: normal; }
#tc-about-page .tc-about-hero .tc-about-hero-intro { max-width: 640px; margin: 0 0 28px; color: #eef6f7; font: 400 .94rem/1.65 var(--tc-body,Manrope,sans-serif); }
#tc-about-page .tc-about-hero .tc-about-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 0; }
#tc-about-page .tc-about-hero .tc-about-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: .7rem 1.05rem; border: 2px solid var(--tc-ink-950,#050a0f); border-radius: 999px; font: 800 .72rem/1 var(--tc-body,Manrope,sans-serif); text-decoration: none; box-shadow: 3px 3px 0 var(--tc-ink-950,#050a0f); transition: transform .14s ease,box-shadow .14s ease,background-color .14s ease,color .14s ease; }
#tc-about-page .tc-about-hero .tc-about-actions .tc-search-btn { background: var(--tc-crimson,#d3183e); color: #fff; }
#tc-about-page .tc-about-hero .tc-about-actions .tc-details-btn { background: #fff; color: var(--tc-ink-950,#050a0f); }
#tc-about-page .tc-about-hero .tc-about-actions a:hover,#tc-about-page .tc-about-hero .tc-about-actions a:focus-visible { transform: translate(-1px,-1px); background: var(--tc-navy,#124559); color: #fff; box-shadow: 4px 4px 0 var(--tc-ink-950,#050a0f); }
@media (max-width:680px) {
  #tc-about-page .tc-about-hero { min-height: 620px; display: flex; padding-top: 70px; }
  #tc-about-page .tc-about-hero-inner { min-height: 620px; padding: 104px 0 42px; }
  #tc-about-page .tc-about-hero h1 { font-size: clamp(2.8rem,13vw,4.3rem); }
  #tc-about-page .tc-about-hero .tc-about-hero-intro { font-size: .94rem; }
  #tc-about-page .tc-about-route-note { position: absolute; right: 15px; bottom: 24px; width: min(260px,calc(100% - 30px)); margin: 0; }
}

/* Final About hero semantic typography overrides. */
#tc-about-page .tc-about-hero h1.tc-about-hero-eyebrow { max-width: none; margin: 0 0 .9rem; color: var(--tc-amber,#ffb563); font: 400 clamp(1.25rem,2.3vw,2rem)/1.1 var(--tc-font-script,'Permanent Marker',cursive); letter-spacing: 0; text-transform: none; transform: rotate(-2deg); transform-origin: left center; }
#tc-about-page .tc-about-hero h2.tc-about-hero-title { max-width: 18ch; margin: 0; color: #fff; font: 700 clamp(3rem,5.7vw,5.8rem)/.96 var(--tc-display,Sora,sans-serif); letter-spacing: -.09em; }
#tc-about-page .tc-about-hero h2.tc-about-hero-title em { color: var(--tc-amber,#ffb563); font-style: normal; }

/* About hero typography must use the exact shared archive-hero scale. */
#tc-about-page .tc-about-hero h1.tc-about-hero-eyebrow { font-family: var(--tc-font-script); font-size: 1.05rem; font-weight: 400; color: var(--tc-crimson); display: block; margin: 0 0 .35rem; line-height: 1.2; letter-spacing: normal; }
#tc-about-page .tc-about-hero h2.tc-about-hero-title { font-family: var(--tc-font-display); font-size: clamp(2.35rem, 5vw, 3.7rem); font-weight: 600; letter-spacing: -.04em; line-height: 1.05; color: #fff; margin: 0 0 .8rem; }
#tc-about-page .tc-about-hero h2.tc-about-hero-title span { color: var(--tc-crimson); }
@media (max-width:960px) { #tc-about-page .tc-about-hero h2.tc-about-hero-title { font-size: clamp(1.85rem, 5vw, 2.7rem) !important; margin-bottom: .6rem; } }
@media (max-width:960px) {
  #tc-about-page .tc-about-hero { flex-direction: column; }
  #tc-about-page .tc-about-route-note { position: relative; order: 1; right: auto; bottom: auto; margin: 0 15px 0 auto; }
  #tc-about-page .tc-about-hero-inner { order: 2; min-height: auto; }
}

/* Catalogue refinements: keep the filter label quiet and the results field clean. */
.tc-shop-page .tc-catalog-controls-head h2 { font-size: 1rem; font-weight: 600; }
.tc-shop-page .tc-catalog-results-head { display: none; }
.tc-shop-page .tc-catalog-results.tc-v13-container { background: #fff; }
.tc-shop-page.tc-catalog-directory { background: #fff; }
.tc-shop-page .tc-catalog-controls-head { display: flex; align-items: center; }
.tc-shop-page .tc-filter-dropdown-btn { position: relative; display: inline-flex; width: 42px; min-width: 42px; align-items: center; justify-content: center; padding-inline: 0; }
.tc-shop-page .tc-filter-dropdown-btn span { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.tc-shop-page .tc-filter-dropdown-btn::before { content: '\f0b0'; font-family: 'Font Awesome 6 Free'; font-size: .85rem; font-weight: 900; }
.tc-shop-page .tc-filter-dropdown-btn .tc-nav-chevron { display: none; }
@media (max-width: 960px) { .tc-shop-page .tc-catalog-controls-summary > p { display: none; } }
.tc-shop-page .tc-filter-dropdown-btn { box-sizing: border-box; width: 52px; min-width: 52px; min-height: 42px; padding: .7rem 1rem; border-color: var(--tc-navy, #124559); background: var(--tc-navy, #124559); color: #fff; }
.tc-shop-page .tc-filter-dropdown-btn:hover, .tc-shop-page .tc-filter-dropdown-btn:focus-visible { background: var(--tc-navy-dark, #0d3545); color: #fff; }
#tc-about-page .tc-about-hero { min-height: 350px; }
#tc-about-page .tc-about-hero-title { text-shadow: 3px 2px 8px #17202a; }
@media (max-width: 960px) { #tc-about-page .tc-about-hero-inner { padding: 104px 0 15px; } }

/* Package archive alternative hero: one reusable layout, page-specific content/image. */
.tc-package-page { background: var(--tc-paper); color: var(--tc-ink); }
.tc-package-hero { min-height: 520px; }
.tc-package-page > .tc-weather-bar { position: relative; z-index: 2; }
.tc-package-directory { background: #fff; padding: 32px 0; }
.tc-package-directory-head { margin-bottom: 2rem; }
.tc-package-directory-head h2 { margin: 4px 0 0; color: #0a1118; font-family: var(--tc-font-display); font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 600; line-height: 1.15; letter-spacing: -.035em; }
.tc-package-directory .tc-home-package-row { padding-top: 0; padding-bottom: 0; background: transparent; }
/* Keep package hero typography identical to the final About hero treatment. */
.tc-package-hero p.tc-home-eyebrow { font-family: var(--tc-font-script); font-size: 1.05rem; font-weight: 400; color: var(--tc-crimson); display: block; margin: 0 0 .35rem; line-height: 1.2; letter-spacing: normal; }
.tc-package-hero h1 { font-family: var(--tc-font-display); font-size: clamp(2.35rem, 5vw, 3.7rem); font-weight: 600; letter-spacing: -.04em; line-height: 1.05; color: #fff; text-shadow: 3px 2px 8px #17202a; margin: 0 0 .8rem; }
.tc-package-hero .tc-about-hero-intro { font-family: var(--tc-font-body); font-size: clamp(.94rem, 1.4vw, 1.08rem); font-weight: 400; line-height: 1.6; color: #edf6f6; }
@media (max-width: 960px) { .tc-package-hero { min-height: 420px; } .tc-package-hero h1 { font-size: clamp(1.85rem, 5vw, 2.7rem) !important; margin-bottom: .6rem; } .tc-package-directory { padding: 0 0 32px; } }
@media (max-width: 620px) { .tc-package-hero { min-height: 390px; } .tc-package-directory-head { margin-bottom: 1.35rem; } }

/* Final success refinements: full-bleed confirmation and Curated Places heading parity. */
.tc-plan-success-page>.tc-v13-container{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:0}.tc-plan-success-intro{width:100%;padding:112px 0 54px!important}.tc-plan-success-card{width:100%;padding:0;border-radius:0!important;box-shadow:none}.tc-plan-success-card-inner{width:min(1240px,calc(100% - 40px));margin-inline:auto;padding:clamp(44px,6vw,78px) clamp(22px,7vw,96px)}.tc-plan-success-stories-head>div .tc-home-eyebrow{margin:0 0 .25rem;color:var(--tc-crimson);font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tc-plan-success-stories-head h2{margin:0;color:var(--tc-ink);font:600 clamp(1.5rem,3vw,2.1rem)/1.15 var(--tc-display);letter-spacing:0}.tc-plan-success-stories-hint{max-width:340px;margin:.3rem 0 0;color:var(--tc-slate-600,#52636b);font:400 .84rem/1.5 var(--tc-body)}@media (max-width:620px){.tc-plan-success-intro{padding:96px 0 30px!important}.tc-plan-success-card-inner{width:calc(100% - 30px);padding:38px 0 44px}.tc-plan-success-stories-head h2{font-size:1.5rem}.tc-plan-success-stories-hint{font-size:.84rem}}

/* Travel Plan success state: clear completion, quiet delight, same site rhythm. */
.tc-blog-archive-results.tc-canonical-wrap,.tc-plan-success-stories{width:min(1200px,calc(100% - 40px))!important;margin-inline:auto!important}
@media (max-width:620px){.tc-blog-archive-results.tc-canonical-wrap,.tc-plan-success-stories{width:calc(100% - 30px)!important}}
.tc-plan-success-page{background:var(--tc-paper,#f5efe6)}.tc-plan-success-page>.tc-v13-container{width:min(1240px,calc(100% - 40px));margin-inline:auto}.tc-plan-success-intro{max-width:none!important;padding:clamp(112px,13vw,178px) 0 54px!important}.tc-plan-success-card{position:relative;isolation:isolate;overflow:hidden;padding:clamp(30px,6vw,78px) clamp(22px,7vw,96px);border-radius:28px 28px 28px 76px;background:var(--tc-navy,#124559);color:#fff;box-shadow:0 22px 55px rgba(18,69,89,.16)}.tc-plan-success-card::before{position:absolute;z-index:-1;top:-190px;right:-100px;width:390px;height:390px;border-radius:50%;background:var(--tc-crimson,#d3183e);content:"";opacity:.96}.tc-plan-success-card::after{position:absolute;z-index:-1;bottom:-120px;left:14%;width:190px;height:190px;border:24px solid var(--tc-amber,#ffb563);border-radius:50%;content:"";opacity:.82}.tc-plan-success-mark{display:grid;width:74px;height:74px;margin-bottom:24px;place-items:center;border:1px solid rgba(255,255,255,.38);border-radius:50%;background:rgba(255,255,255,.1)}.tc-plan-success-mark svg{width:55px;height:55px;overflow:visible}.tc-plan-success-ring{fill:none;stroke:var(--tc-amber,#ffb563);stroke-width:2;stroke-dasharray:157;stroke-dashoffset:157;animation:tc-success-ring .8s .15s cubic-bezier(.22,.8,.3,1) forwards}.tc-plan-success-check{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:38;stroke-dashoffset:38;animation:tc-success-check .55s .7s cubic-bezier(.22,.8,.3,1) forwards}.tc-plan-success-card>.tc-home-eyebrow{margin:0 0 .7rem;color:var(--tc-amber,#ffb563)}.tc-plan-success-card h1{max-width:12ch;margin:0;color:#fff;font:600 clamp(2.8rem,6vw,6rem)/.94 var(--tc-display);letter-spacing:-.085em}.tc-plan-success-copy{max-width:560px!important;margin:1.2rem 0 0!important;color:#e9f3f3!important;font:400 clamp(.94rem,1.4vw,1.08rem)/1.65 var(--tc-body)!important}.tc-plan-success-next{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:700px;gap:12px;margin:32px 0 0}.tc-plan-success-next>div{padding:17px 18px;border-top:2px solid var(--tc-amber,#ffb563);background:rgba(7,21,30,.2)}.tc-plan-success-next span{display:block;margin-bottom:15px;color:var(--tc-amber,#ffb563);font:800 .65rem/1 var(--tc-body);letter-spacing:.12em}.tc-plan-success-next strong{display:block;font:650 .95rem/1.2 var(--tc-body)}.tc-plan-success-next small{display:block;margin-top:7px;color:rgba(255,255,255,.72);font-size:.75rem;line-height:1.5}.tc-plan-success-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.tc-plan-success-actions a{min-height:44px;text-decoration:none}.tc-plan-success-actions .tc-search-btn{background:var(--tc-crimson,#d3183e);color:#fff}.tc-plan-success-actions .tc-details-btn{border:1px solid rgba(255,255,255,.75);background:transparent;color:#fff}.tc-plan-success-actions .tc-details-btn:hover,.tc-plan-success-actions .tc-details-btn:focus-visible{background:#fff;color:var(--tc-navy,#124559)}@keyframes tc-success-ring{to{stroke-dashoffset:0}}@keyframes tc-success-check{to{stroke-dashoffset:0}}@media (max-width:620px){.tc-plan-success-page>.tc-v13-container{width:calc(100% - 30px)}.tc-plan-success-intro{padding:96px 0 30px!important}.tc-plan-success-card{padding:28px 20px 30px;border-radius:22px 22px 22px 48px}.tc-plan-success-card::before{top:-150px;right:-160px}.tc-plan-success-mark{width:66px;height:66px;margin-bottom:20px}.tc-plan-success-card h1{font-size:clamp(2.55rem,13vw,4rem)}.tc-plan-success-next{grid-template-columns:1fr;margin-top:26px}.tc-plan-success-actions{display:grid;grid-template-columns:1fr}.tc-plan-success-actions a{text-align:center}.tc-plan-success-stories{margin-top:24px}}@media (prefers-reduced-motion:reduce){.tc-plan-success-ring,.tc-plan-success-check{animation:none;stroke-dashoffset:0}}

/* Final emergency hero parity with the About page content width and type. */
.tc-plan-success-page>.tc-v13-container{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:0}.tc-plan-success-intro{display:flex;min-height:620px;align-items:flex-end;width:100%;padding:0!important;background:var(--tc-navy,#124559)}.tc-plan-success-card{width:100%;padding:0;border-radius:0!important;background:transparent;box-shadow:none}.tc-plan-success-card-inner{width:min(1240px,calc(100% - 40px));margin-inline:auto;padding:clamp(118px,15vw,190px) clamp(22px,7vw,96px) 72px}@media (max-width:620px){.tc-plan-success-intro{min-height:560px;padding:0!important}.tc-plan-success-card-inner{width:calc(100% - 30px);padding:104px 0 48px}}
#tc-emergency-page .tc-emergency-hero-inner{width:min(1240px,calc(100% - 48px))}#tc-emergency-page h1.tc-emergency-hero-eyebrow{font-family:var(--tc-font-script,'Permanent Marker',cursive);font-size:clamp(1.25rem,2.3vw,2rem);font-weight:400;line-height:1.1;letter-spacing:0}#tc-emergency-page h2.tc-emergency-hero-title{font-family:var(--tc-font-display,'Sora',sans-serif);font-size:clamp(2.35rem,5vw,3.7rem);font-weight:600;line-height:1.05;letter-spacing:-.04em}@media (max-width:680px){#tc-emergency-page .tc-emergency-hero-inner{width:calc(100% - 30px)}#tc-emergency-page h2.tc-emergency-hero-title{font-size:clamp(1.85rem,5vw,2.7rem)}}

/* Emergency hero alignment: match the final About hero typography and width. */
.tc-emergency-hero-inner{padding:118px 0 42px}.tc-emergency-hero-eyebrow{max-width:none;margin:0 0 .9rem;color:var(--tc-amber,#ffb563);font:400 clamp(1.25rem,2.3vw,2rem)/1.1 var(--tc-font-script,'Permanent Marker',cursive);letter-spacing:0;transform:rotate(-2deg);transform-origin:left center}.tc-emergency-hero-title{max-width:18ch;margin:0;color:#fff;font:600 clamp(2.35rem,5vw,3.7rem)/1.05 var(--tc-font-display,'Sora',sans-serif);letter-spacing:-.04em;text-shadow:3px 2px 8px #17202a}.tc-emergency-hero-title span{color:var(--tc-crimson,#d3183e)}.tc-emergency-hero-intro{max-width:640px;margin:1.45rem 0 0;color:#eef6f7;font:400 .94rem/1.65 var(--tc-font-body,'Manrope',sans-serif)}
@media (max-width:960px){.tc-emergency-hero-title{font-size:clamp(1.85rem,5vw,2.7rem);margin-bottom:.6rem}}@media (max-width:640px){.tc-emergency-hero{min-height:350px;background-position:62% center}.tc-emergency-hero-inner{padding:104px 0 15px}.tc-emergency-hero-title{font-size:clamp(1.85rem,5vw,2.7rem)}.tc-emergency-hero-intro{font-size:.94rem}}

/* Emergency contacts: shared TruCape safety-first card system. */
.tc-emergency-page{background:var(--tc-paper,#f5efe6);color:var(--tc-ink,#050a0f)}.tc-emergency-hero{position:relative;min-height:430px;display:flex;align-items:flex-end;overflow:hidden;background:linear-gradient(90deg,rgba(5,10,15,.9),rgba(7,29,38,.7) 52%,rgba(7,29,38,.25)),var(--tc-emergency-hero-image) center/cover no-repeat;color:#fff}.tc-emergency-hero-inner{position:relative;z-index:1;width:100%;padding:90px 0 64px}.tc-emergency-hero .tc-home-eyebrow{color:#ffb563}.tc-emergency-hero h1{max-width:720px;margin:0;color:#fff;font:650 clamp(3.2rem,7vw,6.8rem)/.91 var(--tc-font-display,'Sora',sans-serif);letter-spacing:-.08em}.tc-emergency-hero h1 span{color:#ffb563}.tc-emergency-hero-intro{max-width:530px;margin:1.5rem 0 0;color:rgba(255,255,255,.86);font:500 1rem/1.65 var(--tc-font-body,'Manrope',sans-serif)}.tc-emergency-hero .tc-about-route-note{right:clamp(1rem,5vw,5rem);bottom:24px;background:#ffb563;color:#07151e;border:0}.tc-emergency-hero .tc-about-route-note small{color:rgba(7,21,30,.72)}.tc-emergency-content{padding:clamp(44px,7vw,92px) 0;background:var(--tc-paper,#f5efe6)}.tc-emergency-priority{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:32px;align-items:center;padding:clamp(28px,5vw,58px);border-radius:28px;background:var(--tc-navy,#124559);color:#fff;box-shadow:0 18px 45px rgba(7,29,38,.16)}.tc-emergency-priority .tc-home-eyebrow{color:#ffb563}.tc-emergency-priority h2{margin:.2rem 0 .75rem;color:#fff;font:650 clamp(2rem,4vw,3.5rem)/.98 var(--tc-font-display,'Sora',sans-serif);letter-spacing:-.07em}.tc-emergency-priority-copy>p:last-child{max-width:46ch;margin:0;color:rgba(255,255,255,.78);line-height:1.65}.tc-emergency-priority-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tc-emergency-action{display:flex;min-height:136px;flex-direction:column;justify-content:space-between;padding:18px;border-radius:18px;text-decoration:none;transition:transform .2s ease,background .2s ease}.tc-emergency-action:hover,.tc-emergency-action:focus-visible{transform:translateY(-3px)}.tc-emergency-action:focus-visible,.tc-emergency-card:focus-visible{outline:3px solid #ffb563;outline-offset:3px}.tc-emergency-action-primary{background:#d3183e;color:#fff}.tc-emergency-action-primary:hover{background:#b91435}.tc-emergency-action-light{background:#fff;color:#07151e}.tc-emergency-action-light:hover{background:#ffb563}.tc-emergency-action>span{font-size:1.4rem}.tc-emergency-action strong{font:750 1rem/1.1 var(--tc-font-body,'Manrope',sans-serif)}.tc-emergency-action small{font-size:.76rem;opacity:.78}.tc-emergency-services{padding-top:clamp(52px,8vw,100px)}.tc-emergency-section-head{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:26px}.tc-emergency-section-head h2{margin:.2rem 0 0;color:var(--tc-ink,#050a0f);font:650 clamp(2rem,4vw,3.8rem)/.98 var(--tc-font-display,'Sora',sans-serif);letter-spacing:-.07em}.tc-emergency-section-head>p{max-width:330px;margin:0;color:var(--tc-muted,#43545d);font-size:.88rem;line-height:1.6}.tc-emergency-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.tc-emergency-card{display:flex;min-height:218px;flex-direction:column;justify-content:space-between;padding:22px;border:1px solid rgba(7,29,38,.14);border-radius:20px;background:#fff;color:var(--tc-ink,#050a0f);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.tc-emergency-card:hover{transform:translateY(-4px);border-color:var(--tc-navy,#124559);box-shadow:0 14px 30px rgba(7,29,38,.1)}.tc-emergency-card-featured{background:var(--tc-crimson,#d3183e);border-color:var(--tc-crimson,#d3183e);color:#fff}.tc-emergency-card-number{font:750 clamp(1.85rem,3vw,2.7rem)/1 var(--tc-font-display,'Sora',sans-serif);letter-spacing:-.08em}.tc-emergency-card-label{max-width:16ch;font-weight:700;line-height:1.25}.tc-emergency-card-link{font-size:.76rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.tc-emergency-footnote{margin:26px 0 0;padding-top:20px;border-top:1px solid rgba(7,29,38,.14);color:var(--tc-muted,#43545d);font-size:.78rem;line-height:1.6}.tc-emergency-footnote strong{color:var(--tc-ink,#050a0f)}
@media (max-width:900px){.tc-emergency-priority{grid-template-columns:1fr}.tc-emergency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.tc-emergency-hero{min-height:500px;background-position:62% center}.tc-emergency-hero-inner{padding:86px 18px 54px}.tc-emergency-hero h1{font-size:clamp(3rem,15vw,4.6rem)}.tc-emergency-hero-intro{font-size:.9rem}.tc-emergency-content{padding:38px 15px}.tc-emergency-priority{padding:24px 20px;border-radius:22px}.tc-emergency-priority-actions{grid-template-columns:1fr}.tc-emergency-action{min-height:112px}.tc-emergency-section-head{display:block}.tc-emergency-section-head>p{margin-top:12px}.tc-emergency-grid{grid-template-columns:1fr 1fr;gap:10px}.tc-emergency-card{min-height:180px;padding:16px;border-radius:16px}.tc-emergency-card-number{font-size:1.55rem}.tc-emergency-card-label{font-size:.82rem}.tc-emergency-card-link{font-size:.66rem}}@media (prefers-reduced-motion:reduce){.tc-emergency-page *{transition:none!important}}
.tc-emergency-hero div.tc-about-wrap.tc-emergency-hero-inner{width:min(1240px,calc(100% - 48px))}.tc-emergency-hero h1.tc-emergency-hero-eyebrow{font-family:var(--tc-font-script,'Permanent Marker',cursive);font-size:clamp(1.25rem,2.3vw,2rem);font-weight:400;line-height:1.1;letter-spacing:0}.tc-emergency-hero h2.tc-emergency-hero-title{font-family:var(--tc-font-display,'Sora',sans-serif);font-size:clamp(2.35rem,5vw,3.7rem);font-weight:600;line-height:1.05;letter-spacing:-.04em}@media (max-width:680px){.tc-emergency-hero div.tc-about-wrap.tc-emergency-hero-inner{width:calc(100% - 30px)}.tc-emergency-hero h2.tc-emergency-hero-title{font-size:clamp(1.85rem,5vw,2.7rem)}}
.tc-emergency-hero-inner{padding:118px 0 42px}.tc-emergency-hero-eyebrow{max-width:none;margin:0 0 .9rem;color:var(--tc-amber,#ffb563);font:400 clamp(1.25rem,2.3vw,2rem)/1.1 var(--tc-font-script,'Permanent Marker',cursive);letter-spacing:0;transform:rotate(-2deg);transform-origin:left center}.tc-emergency-hero-title{max-width:18ch;margin:0;color:#fff;font:600 clamp(2.35rem,5vw,3.7rem)/1.05 var(--tc-font-display,'Sora',sans-serif);letter-spacing:-.04em;text-shadow:3px 2px 8px #17202a}.tc-emergency-hero-title span{color:var(--tc-crimson,#d3183e)}.tc-emergency-hero-intro{max-width:640px;margin:1.45rem 0 0;color:#eef6f7;font:400 .94rem/1.65 var(--tc-font-body,'Manrope',sans-serif)}@media (max-width:960px){.tc-emergency-hero-title{font-size:clamp(1.85rem,5vw,2.7rem);margin-bottom:.6rem}}@media (max-width:640px){.tc-emergency-hero{min-height:350px;background-position:62% center}.tc-emergency-hero-inner{padding:104px 0 15px}.tc-emergency-hero-title{font-size:clamp(1.85rem,5vw,2.7rem)}.tc-emergency-hero-intro{font-size:.94rem}}
.tc-emergency-hero div.tc-about-wrap.tc-emergency-hero-inner{width:min(1240px,calc(100% - 48px))}.tc-emergency-hero h1.tc-emergency-hero-eyebrow{font-family:var(--tc-font-script,'Permanent Marker',cursive);font-size:clamp(1.25rem,2.3vw,2rem);font-weight:400;line-height:1.1;letter-spacing:0}.tc-emergency-hero h2.tc-emergency-hero-title{font-family:var(--tc-font-display,'Sora',sans-serif);font-size:clamp(2.35rem,5vw,3.7rem);font-weight:600;line-height:1.05;letter-spacing:-.04em}
