/* Mapped legal pages and editable custom-trip canvas only. */
.tba-legal-page { --tba-legal-offset: 124px; background: #fff; }
.tba-legal-page #content, .tba-legal-page #content > .col-full { width: 100%; max-width: none; padding: 0; margin: 0; }
.tba-legal-page #primary { width: 100%; float: none; margin: 0; }
.tba-legal-page .site-main { margin: 0; }
.tba-legal-page .site-main > article { margin: 0; padding: 0; }
.tba-legal-page .site-main > article > .entry-header { display: none; }
.tba-legal-page .entry-content { margin: 0; }
.tba-legal, .tba-legal * { box-sizing: border-box; }
.tba-legal { color: #354b52; background: #fff; }
.tba-legal-width { width: min(1280px, calc(100% - 64px)); margin-inline: auto; }
.tba-legal-columns { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(48px, 7vw, 100px); padding-block: 58px 90px; }
.tba-legal-columns.is-single { display: block; max-width: 960px; }
.tba-legal-sidebar { align-self: start; position: sticky; top: var(--tba-legal-offset); max-height: calc(100dvh - var(--tba-legal-offset) - 24px); overflow-y: auto; scrollbar-width: thin; padding: 0 8px 8px 0; }
.tba-legal-toc { border: 0; margin: 0; padding: 0; }
.tba-legal-toc summary { padding: 0 0 20px; color: #36535c; font-size: 11px; line-height: 1.5; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; cursor: pointer; list-style: none; }
.tba-legal-toc summary::-webkit-details-marker { display: none; }
.tba-legal-toc summary::after { content: '−'; float: right; letter-spacing: 0; font-size: 16px; }
.tba-legal-toc:not([open]) summary::after { content: '+'; }
.tba-legal-toc ol { list-style: none; margin: 0; padding: 0; }
.tba-legal-toc li { margin: 0; padding: 0; border-top: 1px solid #dfe7e3; }
.tba-legal-toc a { display: block; padding: 13px 2px; color: #45606a; font-size: 13px; line-height: 1.65; text-decoration: none; overflow-wrap: anywhere; }
.tba-legal-toc .is-level-3 a { padding-left: 14px; }
.tba-legal-toc a:hover, .tba-legal-toc a[aria-current] { color: #17666d; text-decoration: underline; text-underline-offset: 4px; }
.tba-legal-copy { min-width: 0; font-size: 16px; line-height: 1.9; overflow-wrap: break-word; }
.tba-legal-copy p { margin: 0 0 22px; }
.tba-legal-copy h2, .tba-legal-copy h3 { color: #183f4b; scroll-margin-top: var(--tba-legal-offset); line-height: 1.3; }
.tba-legal-copy h2 { margin: 0 0 20px; font-size: clamp(25px, 2.4vw, 34px); letter-spacing: -.02em; }
.tba-legal-copy h2 strong, .tba-legal-copy h2 b { font-weight: inherit; }
.tba-legal-copy h3 { margin: 28px 0 14px; font-size: 23px; }
.tba-legal-section { margin-top: 42px; }
.tba-legal-section:first-child { margin-top: 0; }
.tba-legal-copy ul, .tba-legal-copy ol { margin: 0 0 22px; padding-left: 24px; }
.tba-legal-copy li { margin-bottom: 10px; }
.tba-legal-copy a { color: #17666d; text-decoration: underline; text-underline-offset: 3px; }
.tba-legal a:focus-visible, .tba-legal summary:focus-visible { outline: 2px solid #17666d; outline-offset: 4px; }
.tba-legal-copy [tabindex='-1']:focus { outline: none; }

.tba-custom-trip-page { background: #fff; }
.tba-custom-main { width: 100%; margin: 0; padding: 0; outline: none; }
.tba-custom-canvas, .tba-custom-canvas * { box-sizing: border-box; }
.tba-custom-canvas { color: #30343b; background: #fff; }
.tba-custom-banner { min-height: 250px; padding: 48px 4vw 40px; background: #66cccc; color: #fff; }
.tba-custom-banner-copy { width: 49%; max-width: 940px; }
.tba-custom-back { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; margin-bottom: 20px; color: #fff; font-size: 14px; font-weight: 700; text-decoration: none; }
.tba-custom-back:hover, .tba-custom-back:focus { color: #153e49; }
.tba-custom-eyebrow { margin: 0 0 4px; color: inherit; font-family: 'Thea Amelia', cursive; font-size: 31px; line-height: 1.25; }
.tba-custom-banner h1 { margin: 0; color: inherit; font-size: clamp(25px, 2.6vw, 39px); line-height: 1.2; letter-spacing: -.025em; }
.tba-custom-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(460px, 1fr); align-items: start; padding: 0 4vw 64px 0; }
.tba-custom-slideshow { position: relative; align-self: stretch; min-height: 620px; overflow: hidden; background: #d9ece7; }
.tba-custom-slide { position: absolute; inset: 0; }
.tba-custom-slide[hidden] { display: none; }
.tba-custom-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tba-custom-slide-controls { position: absolute; z-index: 2; left: 20px; bottom: 24px; display: flex; align-items: center; gap: 6px; padding: 6px; border-radius: 10px; background: rgba(13, 35, 42, .8); color: #fff; }
.tba-custom-slide-controls button { display: inline-flex; justify-content: center; align-items: center; min-width: 40px; min-height: 40px; padding: 7px 10px; border: 0; border-radius: 6px; color: #fff; background: transparent; font-size: 15px; line-height: 1; cursor: pointer; }
.tba-custom-slide-controls [data-tba-slide-pause] { margin-left: 4px; border-left: 1px solid #ffffff50; border-radius: 0; font-size: 12px; }
.tba-custom-slide-controls button:hover { background: #ffffff26; }
.tba-custom-slide-controls [data-tba-slide-count] { font: 12px/1.5 system-ui, sans-serif; min-width: 38px; text-align: center; }
.tba-custom-form-card { position: relative; z-index: 3; align-self: stretch; min-width: 0; margin: -176px 0 0; border: 1px solid #eadfce; border-radius: 20px 20px 0 0; background: #fff; box-shadow: 0 18px 38px #263b4130; }
.tba-custom-form-card .tba-trip-shell { display: block; width: 100%; min-height: 0; margin: 0; border-radius: 20px 20px 0 0; box-shadow: none; }
.tba-custom-form-card .tba-trip-visual { display: none; }
.tba-custom-form-card .tba-trip-panel { min-width: 0; }
.tba-custom-canvas a:focus-visible, .tba-custom-canvas button:focus-visible { outline: 3px solid #153e49; outline-offset: 3px; }
.tba-custom-slide-controls button:focus-visible { outline-color: #fff; }
.tba-custom-skip:focus { position: fixed !important; z-index: 99999; top: 10px; left: 10px; width: auto; height: auto; padding: 12px 18px; clip: auto; background: #fff; color: #153e49; }

/* Elementor's native containers remain individually selectable and styleable. */
.tba-custom-canvas.e-con, .tba-custom-canvas .e-con { --gap: 0px; gap: 0; --container-widget-width: 100%; max-width: none; }
.tba-custom-canvas.e-con { display: block; width: 100%; padding: 0; }
.tba-custom-banner.e-con { display: block; width: 100%; }
.tba-custom-banner-copy.e-con { padding: 0; gap: 0; }
.tba-custom-banner .elementor-widget-heading .elementor-heading-title { color: inherit; }
.tba-custom-eyebrow .elementor-heading-title { font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; }
.tba-custom-layout.e-con { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr) minmax(460px, 1fr); align-items: stretch; padding: 0 4vw 64px 0; }
.tba-custom-photo-column.e-con { display: block; width: 100%; min-width: 0; padding: 0; }
.tba-custom-photo-column .elementor-widget-tba-triply-planner-slideshow, .tba-custom-photo-column .elementor-widget-container, .tba-custom-photo-column .tba-custom-slideshow { height: 100%; }
.tba-custom-form-card.e-con { width: 100%; padding: 0; }
.tba-custom-brand.e-con { display: grid; grid-template-columns: minmax(105px, 145px) minmax(0, 1fr); align-items: center; gap: 24px; width: 100%; padding: 52px 8% 34px; }
.tba-custom-brand-logo img { display: block; width: 100%; max-width: 145px; height: auto; object-fit: contain; }
.tba-custom-brand-intro { color: var(--e-global-color-text, #70757d); font-size: 14px; line-height: 1.6; }
.tba-custom-brand-intro p { margin: 0; }
.tba-custom-form-card .tba-trip-embedded { border-radius: 0; }
.tba-custom-form-card .tba-trip-embedded .tba-trip-panel { padding-top: 0; }
.tba-legal-document.e-con { padding: 0; width: 100%; max-width: none; gap: 0; }
.tba-legal-copy .tba-legal-section.e-con { display: block; width: 100%; max-width: none; padding: 0; }
.tba-legal-copy .elementor-widget-heading[id] { scroll-margin-top: var(--tba-legal-offset); }
.tba-legal-copy .elementor-widget-text-editor { width: 100%; }
.tba-legal-copy .elementor-widget-container > :last-child { margin-bottom: 0; }

@media (max-width: 1024px) {
    .tba-custom-banner { min-height: 218px; padding: 28px 28px 40px; }
    .tba-custom-banner-copy { width: 100%; max-width: 720px; }
    .tba-custom-banner h1 { font-size: clamp(27px, 4.5vw, 36px); }
    .tba-custom-layout, .tba-custom-layout.e-con { display: block; padding: 0; }
    .tba-custom-slideshow { min-height: 300px; height: 36vw; max-height: 420px; }
    .tba-custom-slide-controls { bottom: auto; top: 16px; left: 16px; }
    .tba-custom-form-card, .tba-custom-form-card.e-con { width: auto; margin: -36px 28px 44px; border-radius: 20px; }
    .tba-custom-form-card .tba-trip-shell { border-radius: 20px; }
}
@media (max-width: 800px) {
    .tba-legal-width { width: calc(100% - 40px); }
    .tba-legal-columns { display: block; padding-block: 30px 54px; }
    .tba-legal-sidebar { position: static; max-height: none; overflow: visible; padding: 0; margin-bottom: 36px; }
    .tba-legal-toc { padding: 16px 18px; border: 1px solid #dfe7e3; border-radius: 6px; }
    .tba-legal-toc summary { padding: 0; min-height: 24px; }
    .tba-legal-toc[open] summary { margin-bottom: 14px; }
    .tba-legal-copy { font-size: 15px; line-height: 1.85; }
    .tba-legal-copy h2 { font-size: 28px; }
}
@media (max-width: 540px) {
    .tba-custom-banner { padding: 20px 20px 36px; }
    .tba-custom-back { margin-bottom: 15px; }
    .tba-custom-eyebrow { font-size: 28px; }
    .tba-custom-banner h1 { font-size: 28px; }
    .tba-custom-slideshow { min-height: 230px; }
    .tba-custom-form-card, .tba-custom-form-card.e-con { margin: -28px 12px 30px; border-radius: 16px; }
    .tba-custom-banner-copy.e-con { width: 100%; }
    .tba-custom-brand.e-con { padding: 28px 20px 24px; grid-template-columns: 90px minmax(0, 1fr); gap: 16px; }
    .tba-custom-brand-intro { font-size: 12px; }
    .tba-custom-form-card .tba-trip-shell { border-radius: 16px; }
    .tba-custom-slide-controls { left: 12px; top: 12px; }
}
@media (prefers-reduced-motion: no-preference) { html:has(.tba-legal) { scroll-behavior: smooth; } }
@media print {
    .tba-legal-sidebar { display: none; }
    .tba-legal-width { width: 100%; }
    .tba-legal-columns { display: block; padding: 0; }
    .tba-legal-copy { color: #000; }
    .tba-legal-copy h2, .tba-legal-copy h3 { break-after: avoid; }
}

/* Let native Elementor controls own these layout values after the initial document is seeded. */
.tba-custom-canvas.e-con, .tba-custom-canvas .e-con, .tba-legal-document.e-con, .tba-legal-copy .tba-legal-section.e-con {
    display: var(--display); width: var(--width); max-width: min(100%, var(--width));
    padding: var(--padding-top) var(--padding-right) var(--padding-bottom) var(--padding-left);
    margin: var(--margin-top) var(--margin-right) var(--margin-bottom) var(--margin-left);
    gap: var(--row-gap) var(--column-gap); flex-direction: var(--flex-direction);
    grid-template-columns: var(--e-con-grid-template-columns); grid-template-rows: var(--e-con-grid-template-rows);
    align-items: var(--align-items); min-height: var(--min-height);
}
.tba-custom-form-card.e-con { border-radius: var(--border-radius); }
.tba-custom-banner.e-con { --width: 100%; }
.tba-custom-photo-column.e-con { --min-height: 620px; }
.tba-legal-copy .tba-legal-section.e-con + .tba-legal-section.e-con { --margin-top: 42px; }
@media (max-width: 1024px) {
    .tba-custom-form-card.e-con { --width: auto; max-width: none; }
    .tba-custom-photo-column.e-con { --min-height: 300px; }
}
@media (max-width: 540px) { .tba-custom-photo-column.e-con { --min-height: 230px; } }
