/* The homepage's Dosis introduction is the shared public page-title scale. */
:root { --tb-public-title-size: clamp(1.5rem, 2.4vw, 2.25rem); }
body #primary :is(.tb-entry-title, .tb-entry-content h1, .tb-contact h1, .tb-practical-hero h1, .tb-inquiry-header h1, .tb-inquiry-result h1, .tb-results-header h1, .tb-unified-search-hero h1),
.tb-home-v2 .tb-home-hero__kicker {
  font-family: var(--tb-font-body); font-size: var(--tb-public-title-size); font-weight: 700;
  line-height: 1.25; letter-spacing: 0.025em; overflow-wrap: anywhere;
}
.tb-service-page, .tb-inquiry-page { background: var(--tb-color-canvas); padding-top: 1.5rem; }
.tb-service-media { margin-bottom: 1.5rem; }
.tb-service-hero { margin-bottom: 1.5rem; }
.tb-service-page .tb-content-layout { padding-top: 0; }
.tb-service-page .tb-content-layout--single { max-width: 58rem; margin-inline: auto; }
.tb-service-page .tb-entry { padding: 0; border: 0; background: transparent; }
.tb-service-page .tb-entry-content > p { text-align: left; }
.tb-service-page .tb-form-shell {
  background: var(--tb-color-white); border: 1px solid var(--tb-color-border-subtle); border-radius: 0.75rem;
  padding: clamp(1.25rem, 4vw, 2.5rem); margin-top: 1.5rem;
}
.tb-service-page .tb-form-shell__title { color: var(--tb-color-navy); font-family: var(--tb-font-body); font-size: clamp(1.35rem, 2.3vw, 1.75rem); line-height: 1.25; margin: 0 0 0.75rem; }
.tb-service-page .tb-form-shell__intro { color: var(--tb-color-muted); margin-bottom: 1.5rem; max-width: 65ch; }
.tb-service-page .tb-form { margin: 0; padding: 0; border: 0; background: transparent; }
.tb-service-page .tb-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.tb-service-page .tb-form__field { min-width: 0; }
.tb-service-page :is(.tb-form__field--type-5, .tb-form__field--type-11, .tb-form__source-html) { grid-column: 1 / -1; }
.tb-service-page .tb-form__field > label { display: block; color: var(--tb-color-navy); font-weight: 650; margin-bottom: 0.4rem; }
.tb-service-page .tb-form :is(input:not([type="checkbox"]), select, textarea) { width: 100%; min-height: 3.5rem; padding: 0.8rem 1rem; border: 1px solid #b8c5d4; border-radius: 0.5rem; background: #fff; font: inherit; }
.tb-service-page .tb-form textarea { min-height: 7rem; resize: vertical; }
.tb-service-page .tb-form__choice { min-height: 2.75rem; display: flex; align-items: center; gap: 0.6rem; }
.tb-service-page .tb-form__submit { min-height: 3.5rem; padding: 0.85rem 1.4rem; margin-top: 1.5rem; border: 0; border-radius: 0.5rem; background: var(--tb-color-navy); color: #fff; font: inherit; font-weight: 700; }
.tb-service-page .tb-form [hidden] { display: none; }
.tb-service-information { margin-top: 1.5rem; }
.tb-service-information > summary { cursor: pointer; min-height: 2.75rem; padding: 0.75rem 0; font-weight: 700; }
.tb-form-status--inquiry-received { background: var(--tb-color-success-surface); border-color: var(--tb-color-success); }
@media (max-width: 640px) {
  :root { --tb-public-title-size: clamp(1.35rem, 5.5vw, 1.75rem); }
  .tb-service-page, .tb-inquiry-page { padding-top: 0.875rem; }
  .tb-service-page .tb-form__fields { grid-template-columns: minmax(0, 1fr); }
  .tb-service-page .tb-form__submit { width: 100%; }
}

.tb-brand img { mix-blend-mode: multiply; }

/* Imported module decoration must not nest a second card around the shared form. */
.tb-service-page .tb-component--contact-form { padding: 0; background: transparent; color: var(--tb-color-navy); border: 0; box-shadow: none; }
.tb-service-page .tb-content-layout__main-group { padding-bottom: 0; }
.tb-service-page .tb-entry-content h1 { text-align: left !important; margin: 0 0 1rem; }
.tb-service-page .tb-content-layout__main-group--page .tb-entry-content > h2 { text-align: left !important; font-size: 1.25rem; line-height: 1.35; margin: 0 0 0.75rem; }
.tb-service-page .tb-entry-content p { text-indent: 0 !important; margin: 0 0 0.875rem; }
.tb-service-page .tb-entry-content p:empty { display: none; }
.tb-service-page .tb-content-layout { padding-inline: max(1rem, env(safe-area-inset-left)); }
.tb-service-page .tb-form-shell__intro p { margin: 0; }
.tb-service-page .tb-form__field fieldset { margin: 0; padding: 0; border: 0; }
.tb-service-page .tb-form__choice { color: var(--tb-color-navy); }

.tb-service-page .tb-contact__form .tb-form-shell { margin-top: 1.5rem; padding: 0; border: 0; background: transparent; }
.tb-service-page .tb-contact__form .tb-form__fields { grid-template-columns: minmax(0, 1fr); }

/* Voucher: paired contact, value and billing rows; one column on narrow phones. */
#travelbay-form-3 { max-width: none; padding: clamp(1rem, 3vw, 2rem); }
#travelbay-form-3 .tb-form__fields { grid-template-columns: minmax(0, 1fr); gap: 1rem 1.25rem; align-items: start; }
#travelbay-form-3 .tb-form__field > label { font-size: 1rem; line-height: 1.4; margin-bottom: 0.5rem; }
#travelbay-form-3 .tb-form__hint { font-size: 0.875rem; line-height: 1.4; margin: 0.4rem 0 0; }
#travelbay-form-3 .tb-form__source-html p { margin: 0; }
#travelbay-form-3 .tb-form__field:has(#travelbay-field-3-14) { grid-column: auto; }
#travelbay-form-3 #travelbay-field-3-14 { min-height: 3.5rem; height: 3.5rem; }
#travelbay-form-3 [data-travelbay-condition] { grid-column: 1 / -1; }
#travelbay-form-3 .tb-form__field--type-11 { border-top: 1px solid var(--tb-color-border-subtle); padding-top: 1rem; }
#travelbay-form-3 .tb-form__submit { width: 100%; }
@media (min-width: 560px) {
  #travelbay-form-3 .tb-form__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #travelbay-form-3 .tb-form__field > label { min-height: 1.4em; display: flex; align-items: end; flex-wrap: wrap; column-gap: 0.2em; }
  #travelbay-form-3 .tb-form__submit { width: auto; min-width: 15rem; }
}
