/** English tours hub. Original French hub layout and palette; shared theme tokens. */
/* =========================================================
   BASE LOCALE AU HUB
   ========================================================= */

#tt-excursions-hub {
    --tt-hub-ink: var(--k4u-ink, #183e43);
    --tt-hub-muted: var(--k4u-muted, #576c6f);
    --tt-hub-teal: var(--k4u-teal, #17666b);
    --tt-hub-teal-dark: var(--k4u-teal-dark, #104e53);
    --tt-hub-orange: var(--k4u-orange, #ad492b);
    --tt-hub-sand: var(--k4u-sand, #f7f5ef);
    --tt-hub-soft: var(--k4u-soft, #eef4ef);
    --tt-hub-line: var(--k4u-line, #d8e3dd);
    --tt-hub-input-line: var(--k4u-input-line, #7e948c);
    --tt-hub-white: var(--k4u-white, #ffffff);
    --tt-hub-serif: Georgia, "Times New Roman", serif;
    --tt-hub-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --tt-hub-radius: 8px;
    --tt-hub-shadow: 0 12px 36px rgb(24 62 67 / 9%);
    --tt-hub-header-offset: var(--k4u-header-offset, 100px);
    --tt-hub-selection-space: 0px;

    display: block;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--tt-hub-ink);
    background: var(--tt-hub-white);
    font-family: var(--tt-hub-font);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.65;
    text-align: start;
    overflow-wrap: break-word;
    -webkit-text-size-adjust: 100%;
}

#tt-excursions-hub *,
#tt-excursions-hub *::before,
#tt-excursions-hub *::after {
    box-sizing: border-box;
}

/* Les règles de grille ne doivent jamais réafficher une carte filtrée. */
#tt-excursions-hub [hidden] {
    display: none !important;
}

#tt-excursions-hub :where(h1, h2, h3, p, figure, ul, ol, dl) {
    margin: 0;
    padding: 0;
}

#tt-excursions-hub :where(h1, h2, h3) {
    color: var(--tt-hub-ink);
    font-family: var(--tt-hub-serif);
    font-weight: 400;
    font-style: normal;
    text-transform: none;
    letter-spacing: -0.035em;
    line-height: 1.2;
    overflow-wrap: break-word;
}

#tt-excursions-hub h1 {
    font-size: clamp(32px, 7.6vw, 43px);
}

#tt-excursions-hub h2 {
    font-size: 31px;
}

#tt-excursions-hub h3 {
    font-size: 24px;
}

#tt-excursions-hub p {
    line-height: inherit;
}

#tt-excursions-hub a {
    color: var(--tt-hub-teal);
    text-decoration: none;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
}

#tt-excursions-hub a:hover {
    color: var(--tt-hub-teal-dark);
    text-decoration: underline;
}

#tt-excursions-hub img {
    display: block;
    max-width: 100%;
    height: auto;
    border: 0;
}

#tt-excursions-hub :where(button, input, select) {
    max-width: 100%;
    margin: 0;
    color: inherit;
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: normal;
    text-transform: none;
    box-shadow: none;
}

#tt-excursions-hub button {
    min-height: 44px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
}

#tt-excursions-hub button:hover,
#tt-excursions-hub button:focus {
    color: inherit;
    background: transparent;
}

#tt-excursions-hub button:disabled {
    opacity: 0.5;
    cursor: default;
}

#tt-excursions-hub :where(a, button, input, select, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--tt-hub-orange);
    outline-offset: 3px;
}

#tt-excursions-hub :where(a, button, input, select, summary) {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

#tt-excursions-hub :where(section[id], h1[id]) {
    scroll-margin-top: var(--tt-hub-header-offset);
}

#tt-excursions-hub .tt-hub-container {
    width: calc(100% - 36px);
    max-width: 1200px;
    min-width: 0;
    margin-inline: auto;
}

#tt-excursions-hub .tt-hub-eyebrow {
    margin: 0 0 12px;
    color: var(--tt-hub-teal);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.6;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

#tt-excursions-hub .tt-hub-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 48px;
    max-width: 100%;
    padding: 13px 18px;
    border: 1px solid transparent;
    border-radius: 5px;
    font-family: var(--tt-hub-font);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.45;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    transition: background-color 160ms ease, border-color 160ms ease;
}

#tt-excursions-hub .tt-hub-button--primary {
    color: var(--tt-hub-white);
    border-color: var(--tt-hub-teal);
    background: var(--tt-hub-teal);
}

#tt-excursions-hub .tt-hub-button--primary:hover,
#tt-excursions-hub .tt-hub-button--primary:focus {
    color: var(--tt-hub-white);
    border-color: var(--tt-hub-teal-dark);
    background: var(--tt-hub-teal-dark);
    text-decoration: none;
}

#tt-excursions-hub .tt-hub-button--secondary {
    color: var(--tt-hub-teal);
    border-color: var(--tt-hub-teal);
    background: var(--tt-hub-white);
}

#tt-excursions-hub .tt-hub-button--secondary:hover,
#tt-excursions-hub .tt-hub-button--secondary:focus {
    color: var(--tt-hub-teal-dark);
    border-color: var(--tt-hub-teal-dark);
    background: var(--tt-hub-soft);
    text-decoration: none;
}

/* =========================================================
   INTRODUCTION ET PRÉSENCE LOCALE
   ========================================================= */

#tt-excursions-hub .tt-hub-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 25px;
    padding-block: 22px 30px;
}

#tt-excursions-hub .tt-hub-hero__content {
    min-width: 0;
}

#tt-excursions-hub .tt-hub-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 26px;
    color: var(--tt-hub-muted);
    font-size: 12px;
}

#tt-excursions-hub .tt-hub-breadcrumb a {
    color: inherit;
}

#tt-excursions-hub .tt-hub-hero h1 {
    max-width: 650px;
    margin-bottom: 19px;
    line-height: 1.13;
}

#tt-excursions-hub .tt-hub-hero__content > p:not(.tt-hub-eyebrow):not(.tt-hub-hero__note) {
    max-width: 500px;
    margin-bottom: 23px;
    color: var(--tt-hub-muted);
    font-size: 15px;
    line-height: 1.85;
}

#tt-excursions-hub .tt-hub-hero__note {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-top: 17px;
    color: var(--tt-hub-muted);
    font-size: 12px;
}

#tt-excursions-hub .tt-hub-hero__note::before {
    content: "";
    flex: 0 0 6px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--tt-hub-teal);
}

#tt-excursions-hub .tt-hub-hero__image {
    position: relative;
    min-width: 0;
    margin: 0;
    aspect-ratio: 4 / 3;
    border-radius: 7px 7px 44px 7px;
    overflow: hidden;
    background: var(--tt-hub-soft);
}

#tt-excursions-hub .tt-hub-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 58%;
}

#tt-excursions-hub .tt-hub-hero__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgb(8 38 44 / 76%));
    pointer-events: none;
}

#tt-excursions-hub .tt-hub-hero__image figcaption {
    position: absolute;
    inset: auto 24px 26px;
    z-index: 1;
    color: var(--tt-hub-white);
    font-family: var(--tt-hub-serif);
    font-size: clamp(26px, 6vw, 34px);
    font-style: italic;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

#tt-excursions-hub .tt-hub-values {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 19px;
    padding-block: 25px 29px;
    border-top: 1px solid var(--tt-hub-line);
}

#tt-excursions-hub .tt-hub-values > div {
    position: relative;
    min-width: 0;
    padding-left: 20px;
}

#tt-excursions-hub .tt-hub-values > div::before {
    content: "";
    position: absolute;
    top: 7px;
    left: 0;
    width: 5px;
    height: 24px;
    border-radius: 2px;
    background: var(--tt-hub-orange);
}

#tt-excursions-hub .tt-hub-values h2 {
    margin-bottom: 4px;
    font-family: var(--tt-hub-font);
    font-size: 15px;
    font-weight: 650;
    letter-spacing: normal;
    line-height: 1.4;
}

#tt-excursions-hub .tt-hub-values p {
    color: var(--tt-hub-muted);
    font-size: 13px;
    line-height: 1.75;
}

/* =========================================================
   FILTRES : VERSION CLASSIQUE ET FUTURE VERSION INSTANTANÉE
   ========================================================= */

#tt-excursions-hub .tt-hub-catalogue {
    padding-block: 38px 40px;
    border-top: 1px solid #eceee6;
    background: var(--tt-hub-sand);
}

#tt-excursions-hub .tt-hub-section-heading {
    display: block;
    margin-bottom: 23px;
}

#tt-excursions-hub .tt-hub-section-heading h2 {
    margin-bottom: 12px;
}

#tt-excursions-hub .tt-hub-section-heading > p:last-child {
    max-width: 680px;
    color: var(--tt-hub-muted);
    font-size: 14px;
    line-height: 1.8;
}

#tt-excursions-hub .tt-hub-filters {
    margin: 0 0 26px;
    padding: 18px 16px;
    border: 1px solid var(--tt-hub-line);
    border-radius: var(--tt-hub-radius);
    background: var(--tt-hub-white);
    box-shadow: 0 5px 18px rgb(24 62 67 / 3%);
}

#tt-excursions-hub .tt-hub-filter-fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: 15px;
}

#tt-excursions-hub .tt-hub-field {
    min-width: 0;
}

#tt-excursions-hub .tt-hub-field label,
#tt-excursions-hub .tt-hub-card__offer-picker label {
    display: block;
    margin: 0 0 7px;
    color: var(--tt-hub-muted);
    font-size: 12px;
    font-weight: 550;
    line-height: 1.5;
}

/* 16px évite le zoom automatique des champs sur les téléphones concernés. */
#tt-excursions-hub .tt-hub-field :where(input, select),
#tt-excursions-hub .tt-hub-card__offer-picker select {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 11px 12px;
    border: 1px solid var(--tt-hub-input-line);
    border-radius: 5px;
    color: var(--tt-hub-ink);
    background: var(--tt-hub-white);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
}

#tt-excursions-hub .tt-hub-field select,
#tt-excursions-hub .tt-hub-card__offer-picker select {
    appearance: auto;
    padding-right: 8px;
    cursor: pointer;
}

#tt-excursions-hub .tt-hub-field input::placeholder {
    color: var(--tt-hub-muted);
    opacity: 1;
}

#tt-excursions-hub .tt-hub-filter-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-top: 19px;
}

#tt-excursions-hub .tt-hub-filter-actions .tt-hub-button {
    width: 100%;
}

#tt-excursions-hub .tt-hub-filter-actions > a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 13px;
    text-decoration: underline;
}

#tt-excursions-hub .tt-hub-results {
    margin-bottom: 17px;
    font-size: 15px;
    font-weight: 650;
}

#tt-excursions-hub .tt-hub-compare-hint {
    max-width: 680px;
    margin: -6px 0 21px;
    color: var(--tt-hub-muted);
    font-size: 13px;
    line-height: 1.7;
}

#tt-excursions-hub .tt-hub-admin-notice {
    margin-bottom: 20px;
    padding: 15px;
    border: 1px solid var(--tt-hub-orange);
    border-radius: 5px;
    font-size: 14px;
}

/* =========================================================
   CARTES ET ÉTATS DE SÉLECTION
   ========================================================= */

#tt-excursions-hub .tt-hub-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 23px;
}

#tt-excursions-hub .tt-hub-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 0;
    border: 1px solid var(--tt-hub-line);
    border-radius: var(--tt-hub-radius);
    background: var(--tt-hub-white);
    overflow: hidden;
    transition: box-shadow 180ms ease, border-color 180ms ease;
}

#tt-excursions-hub .tt-hub-card--selected,
#tt-excursions-hub .tt-hub-card.tt-hub--selected {
    border-color: var(--tt-hub-teal);
    box-shadow: 0 0 0 2px var(--tt-hub-teal);
}

#tt-excursions-hub .tt-hub-card__media {
    position: relative;
    min-width: 0;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--tt-hub-soft);
}

#tt-excursions-hub .tt-hub-card__media > a {
    display: block;
    height: 100%;
}

#tt-excursions-hub .tt-hub-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}

#tt-excursions-hub .tt-hub-card__badge {
    position: absolute;
    bottom: 14px;
    left: 14px;
    max-width: calc(100% - 28px);
    padding: 6px 10px;
    border: 1px solid rgb(255 255 255 / 72%);
    border-radius: 4px;
    color: var(--tt-hub-ink);
    background: rgb(255 255 255 / 96%);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

#tt-excursions-hub .tt-hub-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    padding: 21px 19px 0;
}

#tt-excursions-hub .tt-hub-card__origin {
    margin-bottom: 9px;
    color: var(--tt-hub-muted);
    font-size: 12px;
    line-height: 1.6;
}

#tt-excursions-hub .tt-hub-card h3 {
    margin-bottom: 13px;
    font-size: 25px;
    line-height: 1.24;
}

#tt-excursions-hub .tt-hub-card h3 a {
    color: var(--tt-hub-ink);
}

#tt-excursions-hub .tt-hub-card__description {
    margin-bottom: 17px;
    color: var(--tt-hub-muted);
    font-size: 15px;
    line-height: 1.8;
}

#tt-excursions-hub .tt-hub-card__duration {
    margin-bottom: 12px;
    font-size: 13px;
    font-weight: 550;
    line-height: 1.6;
}

#tt-excursions-hub .tt-hub-card__duration:empty {
    display: none;
}

#tt-excursions-hub .tt-hub-card__offer {
    margin-bottom: 17px;
    padding: 11px 12px;
    border-radius: 4px;
    color: var(--tt-hub-ink);
    background: var(--tt-hub-sand);
    font-size: 12px;
    font-weight: 550;
    line-height: 1.65;
}

#tt-excursions-hub .tt-hub-card__offer-picker {
    margin-bottom: 18px;
}

#tt-excursions-hub .tt-hub-card__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: auto;
    padding-block: 17px 20px;
    border-top: 1px solid var(--tt-hub-line);
}

#tt-excursions-hub .tt-hub-card__bottom > div {
    min-width: 0;
}

#tt-excursions-hub .tt-hub-card__price-label {
    display: block;
    margin-bottom: 3px;
    color: var(--tt-hub-muted);
    font-size: 11px;
    line-height: 1.6;
}

#tt-excursions-hub .tt-hub-card__price {
    display: block;
    font-family: var(--tt-hub-font);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.035em;
    white-space: normal;
}

#tt-excursions-hub .tt-hub-card__unit {
    display: block;
    margin-top: 3px;
    color: var(--tt-hub-muted);
    font-size: 12px;
    line-height: 1.5;
}

#tt-excursions-hub .tt-hub-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 44px;
    padding-block: 8px;
    font-size: 14px;
    font-weight: 650;
}

#tt-excursions-hub .tt-hub-card__compare {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    width: calc(100% + 38px);
    max-width: none;
    margin-inline: -19px;
    padding: 12px 18px;
    border: 0;
    border-top: 1px solid var(--tt-hub-line);
    color: var(--tt-hub-muted);
    background: #fafbf7;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
}

#tt-excursions-hub .tt-hub-card__compare:hover,
#tt-excursions-hub .tt-hub-card__compare:focus {
    color: var(--tt-hub-teal-dark);
    background: var(--tt-hub-soft);
}

#tt-excursions-hub .tt-hub-card__compare[aria-pressed="true"] {
    color: var(--tt-hub-teal-dark);
    background: #e5f0e7;
    font-weight: 650;
}

#tt-excursions-hub .tt-hub-card__compare[aria-pressed="true"]::before {
    content: "✓";
    font-size: 16px;
    line-height: 1;
}

#tt-excursions-hub .tt-hub-card__compare:focus-visible {
    outline-offset: -5px;
}

#tt-excursions-hub .tt-hub-price-note {
    max-width: 820px;
    margin: 28px auto 0;
    color: var(--tt-hub-muted);
    font-size: 12px;
    line-height: 1.85;
}

#tt-excursions-hub .tt-hub-empty {
    max-width: 600px;
    margin: 22px auto;
    padding: 28px 16px;
    border: 1px solid var(--tt-hub-line);
    border-radius: var(--tt-hub-radius);
    background: var(--tt-hub-white);
    text-align: center;
}

#tt-excursions-hub .tt-hub-empty h3 {
    margin-bottom: 13px;
    font-size: 28px;
}

#tt-excursions-hub .tt-hub-empty p {
    margin-bottom: 22px;
    color: var(--tt-hub-muted);
    font-size: 15px;
    line-height: 1.8;
}

/* =========================================================
   CONSEILS, AGENCE ET FAQ NATIVE
   ========================================================= */

#tt-excursions-hub .tt-hub-guide {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
    padding-block: 46px;
}

#tt-excursions-hub .tt-hub-guide > header h2,
#tt-excursions-hub .tt-hub-faq > header h2 {
    margin-bottom: 15px;
}

#tt-excursions-hub .tt-hub-guide > header > p:last-child {
    max-width: 500px;
    color: var(--tt-hub-muted);
    font-size: 15px;
    line-height: 1.8;
}

#tt-excursions-hub .tt-hub-guide__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 25px;
}

#tt-excursions-hub .tt-hub-guide__grid article {
    position: relative;
    min-width: 0;
    padding: 17px 0 0 39px;
    border-top: 1px solid var(--tt-hub-line);
}

#tt-excursions-hub .tt-hub-guide__grid article > span {
    position: absolute;
    top: 19px;
    left: 0;
    color: var(--tt-hub-orange);
    font-family: var(--tt-hub-serif);
    font-size: 20px;
    font-style: italic;
    line-height: 1.2;
}

#tt-excursions-hub .tt-hub-guide__grid h3 {
    margin-bottom: 10px;
    font-family: var(--tt-hub-font);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: normal;
}

#tt-excursions-hub .tt-hub-guide__grid p {
    color: var(--tt-hub-muted);
    font-size: 14px;
    line-height: 1.8;
}

#tt-excursions-hub .tt-hub-agency {
    padding-block: 43px;
    color: var(--tt-hub-white);
    background: var(--tt-hub-ink);
}

#tt-excursions-hub .tt-hub-agency__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 25px;
}

#tt-excursions-hub .tt-hub-agency h2 {
    max-width: 520px;
    color: #fff9ed;
    font-size: 35px;
}

#tt-excursions-hub .tt-hub-agency .tt-hub-eyebrow {
    color: #c2d9ca;
}

#tt-excursions-hub .tt-hub-agency__inner > div:last-child > p:first-child {
    margin-bottom: 23px;
    color: #e1eae3;
    font-size: 15px;
    line-height: 1.9;
}

#tt-excursions-hub .tt-hub-agency .tt-hub-button {
    width: 100%;
    color: var(--tt-hub-ink);
    border-color: var(--tt-hub-white);
    background: var(--tt-hub-white);
}

#tt-excursions-hub .tt-hub-agency .tt-hub-button:hover,
#tt-excursions-hub .tt-hub-agency .tt-hub-button:focus {
    color: var(--tt-hub-ink);
    border-color: var(--tt-hub-soft);
    background: var(--tt-hub-soft);
}

#tt-excursions-hub .tt-hub-agency__address {
    margin-top: 23px;
    color: #e1eae3;
    font-size: 13px;
    line-height: 1.9;
}

#tt-excursions-hub .tt-hub-agency a:not(.tt-hub-button) {
    color: #fff9ed;
    text-decoration: underline;
}

#tt-excursions-hub .tt-hub-agency__license {
    max-width: 510px;
    margin-top: 12px;
    color: #c2d9ca;
    font-size: 12px;
    line-height: 1.8;
}

#tt-excursions-hub .tt-hub-faq {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
    padding-block: 44px 52px;
}

#tt-excursions-hub .tt-hub-faq details {
    margin: 0;
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--tt-hub-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

#tt-excursions-hub .tt-hub-faq details:first-child {
    border-top: 1px solid var(--tt-hub-line);
}

#tt-excursions-hub .tt-hub-faq summary {
    position: relative;
    min-height: 55px;
    margin: 0;
    padding: 19px 38px 19px 0;
    color: var(--tt-hub-ink);
    font-size: 15px;
    font-weight: 550;
    line-height: 1.6;
    list-style: none;
    cursor: pointer;
}

#tt-excursions-hub .tt-hub-faq summary::-webkit-details-marker {
    display: none;
}

#tt-excursions-hub .tt-hub-faq summary::marker {
    content: "";
}

#tt-excursions-hub .tt-hub-faq summary::after {
    content: "+";
    position: absolute;
    top: 16px;
    right: 7px;
    color: var(--tt-hub-teal);
    font-size: 23px;
    font-weight: 400;
    line-height: 1.5;
}

#tt-excursions-hub .tt-hub-faq details[open] summary::after {
    content: "−";
}

#tt-excursions-hub .tt-hub-faq details p {
    margin: 0 14px 22px 0;
    color: var(--tt-hub-muted);
    font-size: 14px;
    line-height: 1.9;
}

/* =========================================================
   SÉLECTION ET COMPARATEUR — ACTIVÉS AU BLOC JAVASCRIPT
   ========================================================= */

#tt-excursions-hub.tt-hub--has-selection {
    --tt-hub-selection-space: calc(145px + env(safe-area-inset-bottom, 0px));
}

#tt-excursions-hub .tt-hub-selection {
    position: fixed;
    inset: auto 0 0;
    z-index: 900;
    max-width: 100%;
    margin: 0;
    padding: 12px 0 calc(12px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--tt-hub-line);
    color: var(--tt-hub-ink);
    background: rgb(255 255 255 / 98%);
    box-shadow: 0 -8px 35px rgb(24 62 67 / 10%);
}

#tt-excursions-hub .tt-hub-selection > .tt-hub-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 12px;
}

#tt-excursions-hub [data-hub-selection-count] {
    min-width: 0;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.5;
}

#tt-excursions-hub [data-hub-selection-items] {
    display: none;
    min-width: 0;
}

#tt-excursions-hub [data-hub-selection-clear] {
    min-width: 44px;
    min-height: 44px;
    padding: 6px;
    color: var(--tt-hub-muted);
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

#tt-excursions-hub [data-hub-comparison-open] {
    grid-column: 1 / -1;
    width: 100%;
}

#tt-excursions-hub .tt-hub-selection-item {
    display: flex;
    flex: 1;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 5px 5px 5px 7px;
    border: 1px solid var(--tt-hub-line);
    border-radius: 5px;
    background: var(--tt-hub-sand);
}

#tt-excursions-hub .tt-hub-selection-item img {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 3px;
    object-fit: cover;
}

#tt-excursions-hub .tt-hub-selection-item > span,
#tt-excursions-hub .tt-hub-selection-item > p {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    font-size: 11px;
    line-height: 1.6;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#tt-excursions-hub [data-hub-selection-remove] {
    flex: 0 0 44px;
    width: 44px;
    min-height: 44px;
    border-radius: 4px;
    color: var(--tt-hub-ink);
    font-size: 22px;
}

#tt-excursions-hub .tt-hub-dialog {
    position: fixed;
    inset: 0;
    width: 100%;
    max-width: 100%;
    height: 100vh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: var(--tt-hub-ink);
    background: var(--tt-hub-white);
    font-family: var(--tt-hub-font);
    font-size: 15px;
    line-height: 1.65;
    box-shadow: 0 18px 90px rgb(0 28 35 / 30%);
    overflow: hidden;
}

#tt-excursions-hub .tt-hub-dialog:not([open]) {
    display: none;
}

#tt-excursions-hub .tt-hub-dialog[open] {
    display: flex;
    flex-direction: column;
}

#tt-excursions-hub .tt-hub-dialog::backdrop {
    background: rgb(8 35 43 / 68%);
    backdrop-filter: blur(3px);
}

#tt-excursions-hub .tt-hub-dialog__header {
    display: flex;
    flex: 0 0 auto;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 21px 18px;
    border-bottom: 1px solid var(--tt-hub-line);
    background: var(--tt-hub-white);
}

#tt-excursions-hub .tt-hub-dialog__header > div {
    min-width: 0;
}

#tt-excursions-hub .tt-hub-dialog__header h2 {
    margin-bottom: 9px;
    font-size: 30px;
}

#tt-excursions-hub .tt-hub-dialog__header .tt-hub-eyebrow {
    margin-bottom: 8px;
    font-size: 10px;
}

#tt-excursions-hub .tt-hub-dialog__header > div > p:last-child {
    max-width: 500px;
    color: var(--tt-hub-muted);
    font-size: 12px;
    line-height: 1.7;
}

#tt-excursions-hub [data-hub-comparison-close] {
    flex: 0 0 auto;
    min-width: 64px;
    min-height: 44px;
    padding: 8px 10px;
    border: 1px solid var(--tt-hub-line);
    border-radius: 5px;
    color: var(--tt-hub-ink);
    background: var(--tt-hub-sand);
    font-size: 13px;
}

#tt-excursions-hub [data-hub-comparison-close]:hover,
#tt-excursions-hub [data-hub-comparison-close]:focus {
    color: var(--tt-hub-teal-dark);
    background: var(--tt-hub-soft);
}

#tt-excursions-hub .tt-hub-comparison-table {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

#tt-excursions-hub .tt-hub-comparison-table table {
    width: 100%;
    min-width: 620px;
    margin: 0;
    border: 0;
    border-spacing: 0;
    border-collapse: separate;
    table-layout: fixed;
    font-size: 13px;
    line-height: 1.7;
}

#tt-excursions-hub .tt-hub-comparison-table table[data-hub-columns="3"] {
    min-width: 850px;
}

#tt-excursions-hub .tt-hub-comparison-table caption {
    padding: 12px 16px;
    color: var(--tt-hub-muted);
    background: var(--tt-hub-sand);
    font-size: 12px;
    text-align: left;
    caption-side: top;
}

#tt-excursions-hub .tt-hub-comparison-table :where(th, td) {
    padding: 14px;
    border: 0;
    border-bottom: 1px solid var(--tt-hub-line);
    color: var(--tt-hub-ink);
    background: var(--tt-hub-white);
    text-align: left;
    vertical-align: top;
    overflow-wrap: anywhere;
}

#tt-excursions-hub .tt-hub-comparison-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--tt-hub-white);
    font-weight: 400;
}

#tt-excursions-hub .tt-hub-comparison-table tr > :first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    width: 110px;
    border-right: 1px solid var(--tt-hub-line);
    color: var(--tt-hub-muted);
    background: var(--tt-hub-sand);
    font-size: 12px;
    font-weight: 550;
}

#tt-excursions-hub .tt-hub-comparison-table thead tr > :first-child {
    z-index: 3;
}

#tt-excursions-hub .tt-hub-comparison-table thead img {
    width: 100%;
    height: 105px;
    margin-bottom: 11px;
    border-radius: 4px;
    object-fit: cover;
}

#tt-excursions-hub .tt-hub-comparison-table h3 {
    margin-bottom: 12px;
    font-size: 22px;
    line-height: 1.25;
}

#tt-excursions-hub .tt-hub-comparison-table a:not(.tt-hub-button) {
    text-decoration: underline;
}

#tt-excursions-hub .tt-hub-comparison-price {
    display: block;
    margin-bottom: 4px;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.03em;
    white-space: normal;
}

#tt-excursions-hub .tt-hub-comparison-unit {
    display: block;
    color: var(--tt-hub-muted);
    font-size: 12px;
    line-height: 1.6;
}

#tt-excursions-hub [data-hub-comparison-remove] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 6px 0;
    color: var(--tt-hub-muted);
    font-size: 12px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

#tt-excursions-hub .tt-hub-comparison-table .tt-hub-button {
    width: 100%;
    padding-inline: 10px;
    font-size: 13px;
}

#tt-excursions-hub .tt-hub-dialog__footer {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 16px;
    padding: 18px 18px calc(18px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--tt-hub-line);
    background: var(--tt-hub-white);
}

#tt-excursions-hub .tt-hub-dialog__footer p {
    max-width: 500px;
    color: var(--tt-hub-muted);
    font-size: 12px;
    line-height: 1.8;
}

#tt-excursions-hub .tt-hub-dialog__footer .tt-hub-button {
    width: 100%;
}

#tt-excursions-hub .tt-hub-toast {
    position: fixed;
    right: 18px;
    bottom: calc(150px + env(safe-area-inset-bottom, 0px));
    left: 18px;
    z-index: 950;
    width: max-content;
    max-width: calc(100% - 36px);
    margin: 0 auto;
    padding: 13px 17px;
    border: 1px solid var(--tt-hub-teal-dark);
    border-radius: 6px;
    color: var(--tt-hub-white);
    background: var(--tt-hub-ink);
    box-shadow: var(--tt-hub-shadow);
    font-size: 13px;
    line-height: 1.7;
    text-align: center;
    pointer-events: none;
}

/* =========================================================
   TABLETTE ET ÉCRAN LARGE : BASE MOBILE CONSERVÉE
   ========================================================= */

@media (min-width: 480px) {
    #tt-excursions-hub .tt-hub-selection > .tt-hub-container {
        display: flex;
        gap: 14px;
    }

    #tt-excursions-hub [data-hub-selection-count] {
        flex: 1;
    }

    #tt-excursions-hub [data-hub-comparison-open] {
        flex: 0 1 210px;
        width: auto;
    }

    #tt-excursions-hub.tt-hub--has-selection {
        --tt-hub-selection-space: calc(105px + env(safe-area-inset-bottom, 0px));
    }

    #tt-excursions-hub .tt-hub-toast {
        bottom: calc(115px + env(safe-area-inset-bottom, 0px));
    }
}

@media (min-width: 640px) {
    #tt-excursions-hub .tt-hub-container {
        width: calc(100% - 56px);
    }

    #tt-excursions-hub h1 {
        font-size: 46px;
    }

    #tt-excursions-hub h2 {
        font-size: 36px;
    }

    #tt-excursions-hub .tt-hub-hero {
        padding-block: 32px 38px;
    }

    #tt-excursions-hub .tt-hub-hero__image {
        aspect-ratio: 16 / 9;
    }

    #tt-excursions-hub .tt-hub-values {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 22px;
        padding-block: 27px 34px;
    }

    #tt-excursions-hub .tt-hub-filter-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    #tt-excursions-hub .tt-hub-filter-actions .tt-hub-button {
        width: auto;
    }

    #tt-excursions-hub .tt-hub-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 25px;
    }

    #tt-excursions-hub .tt-hub-card h3 {
        font-size: 24px;
    }

    #tt-excursions-hub .tt-hub-guide {
        padding-block: 62px;
    }

    #tt-excursions-hub .tt-hub-guide__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 30px;
    }

    #tt-excursions-hub .tt-hub-guide__grid article {
        padding-left: 0;
    }

    #tt-excursions-hub .tt-hub-guide__grid article > span {
        position: static;
        display: block;
        margin-bottom: 13px;
    }

    #tt-excursions-hub .tt-hub-agency {
        padding-block: 56px;
    }

    #tt-excursions-hub .tt-hub-agency .tt-hub-button {
        width: auto;
    }

    #tt-excursions-hub .tt-hub-faq {
        padding-block: 58px 65px;
    }
}

@media (min-width: 768px) {
    #tt-excursions-hub .tt-hub-dialog {
        inset: 24px;
        width: calc(100% - 48px);
        max-width: 1140px;
        height: auto;
        max-height: calc(100vh - 48px);
        max-height: calc(100dvh - 48px);
        margin: auto;
        border-radius: 9px;
    }

    #tt-excursions-hub .tt-hub-dialog__header {
        padding: 26px 28px;
    }

    #tt-excursions-hub .tt-hub-dialog__footer {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 25px;
        padding: 22px 28px;
    }

    #tt-excursions-hub .tt-hub-dialog__footer .tt-hub-button {
        flex: 0 0 auto;
        width: auto;
        max-width: 50%;
    }

    #tt-excursions-hub .tt-hub-comparison-table tr > :first-child {
        width: 140px;
    }

    #tt-excursions-hub .tt-hub-comparison-table :where(th, td) {
        padding: 18px;
    }
}

@media (min-width: 900px) {
    #tt-excursions-hub .tt-hub-filter-fields {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #tt-excursions-hub .tt-hub-field:nth-child(4) {
        grid-column: span 2;
    }
}

@media (min-width: 1024px) {
    #tt-excursions-hub h1 {
        font-size: clamp(44px, 4.2vw, 56px);
    }

    #tt-excursions-hub .tt-hub-hero {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.03fr);
        gap: 58px;
        padding-block: 43px 50px;
    }

    #tt-excursions-hub .tt-hub-breadcrumb {
        margin-bottom: 38px;
    }

    #tt-excursions-hub .tt-hub-hero__image {
        align-self: stretch;
        min-height: 450px;
        aspect-ratio: auto;
        border-bottom-right-radius: 64px;
    }

    #tt-excursions-hub .tt-hub-hero__image img {
        position: absolute;
        inset: 0;
    }

    #tt-excursions-hub .tt-hub-hero__image figcaption {
        right: 32px;
        bottom: 36px;
        left: 32px;
        font-size: 36px;
    }

    #tt-excursions-hub .tt-hub-catalogue {
        padding-block: 58px 54px;
    }

    #tt-excursions-hub .tt-hub-section-heading {
        margin-bottom: 28px;
    }

    #tt-excursions-hub .tt-hub-filters {
        padding: 24px;
    }

    #tt-excursions-hub .tt-hub-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 25px;
    }

    #tt-excursions-hub .tt-hub-card__body {
        padding: 22px 21px 0;
    }

    #tt-excursions-hub .tt-hub-card__compare {
        width: calc(100% + 42px);
        margin-inline: -21px;
    }

    #tt-excursions-hub .tt-hub-guide {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.8fr);
        gap: 65px;
        padding-block: 76px;
    }

    #tt-excursions-hub .tt-hub-agency__inner {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 80px;
    }

    #tt-excursions-hub .tt-hub-agency h2 {
        font-size: 42px;
    }

    #tt-excursions-hub .tt-hub-faq {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr);
        gap: 90px;
        padding-block: 70px 80px;
    }

    #tt-excursions-hub [data-hub-selection-count] {
        flex: 0 0 145px;
    }

    #tt-excursions-hub [data-hub-selection-items] {
        display: flex;
        flex: 1;
        gap: 8px;
    }

    #tt-excursions-hub .tt-hub-selection-item img {
        display: none;
    }
}

@media (min-width: 1200px) {
    #tt-excursions-hub .tt-hub-filter-fields {
        grid-template-columns: 1.05fr 1.1fr 1.1fr 1.15fr 0.95fr;
        gap: 16px;
    }

    #tt-excursions-hub .tt-hub-field:nth-child(4) {
        grid-column: auto;
    }

    #tt-excursions-hub .tt-hub-selection-item img {
        display: block;
    }
}

@media (hover: hover) and (pointer: fine) {
    #tt-excursions-hub .tt-hub-card:hover {
        border-color: #b6c9bf;
        box-shadow: var(--tt-hub-shadow);
    }

    #tt-excursions-hub .tt-hub-card:hover .tt-hub-card__media img {
        transform: scale(1.025);
    }
}

/* En paysage sur un petit écran, conserver de la place pour les lignes du tableau. */
@media (max-height: 560px) {
    #tt-excursions-hub .tt-hub-dialog__header {
        padding-block: 12px;
    }

    #tt-excursions-hub .tt-hub-dialog__header h2 {
        margin-bottom: 5px;
        font-size: 25px;
    }

    #tt-excursions-hub .tt-hub-dialog__header .tt-hub-eyebrow {
        display: none;
    }

    #tt-excursions-hub .tt-hub-dialog__header > div > p:last-child {
        font-size: 11px;
    }

    #tt-excursions-hub .tt-hub-dialog__footer {
        padding-block: 10px;
    }

    #tt-excursions-hub .tt-hub-dialog__footer p {
        display: none;
    }
}

/* Le mouvement reste facultatif ; le focus clavier reste visible. */
@media (prefers-reduced-motion: reduce) {
    #tt-excursions-hub *,
    #tt-excursions-hub *::before,
    #tt-excursions-hub *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

@media (forced-colors: active) {
    #tt-excursions-hub .tt-hub-card,
    #tt-excursions-hub .tt-hub-filters,
    #tt-excursions-hub .tt-hub-button,
    #tt-excursions-hub .tt-hub-card__compare,
    #tt-excursions-hub .tt-hub-selection {
        border: 1px solid CanvasText;
    }

    #tt-excursions-hub .tt-hub-card.tt-hub--selected,
    #tt-excursions-hub .tt-hub-card__compare[aria-pressed="true"] {
        outline: 2px solid Highlight;
        outline-offset: -3px;
    }
}


/* The comparison dock reserves room after the entire page, including its footer. */
body.k4u-tour-hub-page { padding-bottom: var(--k4u-hub-dock-height, 0px); }
#tt-excursions-hub .tt-hub-more-filters { margin-top: 18px; border-top: 1px solid var(--tt-hub-line); }
#tt-excursions-hub .tt-hub-more-filters > summary { padding: 13px 0; min-height: 48px; cursor: pointer; font-size: 14px; font-weight: 650; color: var(--tt-hub-teal); }
#tt-excursions-hub .tt-hub-more-filters > summary span { display: inline; margin-left: 8px; color: var(--tt-hub-muted); font-weight: 400; font-size: 12px; }
#tt-excursions-hub .tt-hub-more-fields { display: grid; gap: 16px; padding: 4px 0 16px; }
#tt-excursions-hub .tt-hub-more-fields select { width: 100%; min-width: 0; min-height: 48px; padding: 10px 34px 10px 12px; border: 1px solid var(--tt-hub-input-line); border-radius: 5px; background: var(--tt-hub-white); color: var(--tt-hub-ink); font: inherit; font-size: 16px; }
#tt-excursions-hub .tt-hub-card__features { display: grid; gap: 5px; margin: 12px 0 18px; padding-left: 18px; color: var(--tt-hub-ink); font-size: 13px; line-height: 1.6; }
#tt-excursions-hub .tt-hub-card__features:empty { display: none; }
#tt-excursions-hub .tt-hub-card__bottom { margin-top: auto; }
#tt-excursions-hub .tt-hub-card__child { margin: 10px 0 0; color: var(--tt-hub-muted); font-size: 12px; line-height: 1.7; }
#tt-excursions-hub .tt-hub-card__all-options { margin-top: 18px; border-top: 1px solid var(--tt-hub-line); font-size: 14px; }
#tt-excursions-hub .tt-hub-card__all-options summary { cursor: pointer; min-height: 44px; padding: 10px 0; color: var(--tt-hub-teal); }
#tt-excursions-hub .tt-hub-card__all-options ul { padding: 0; list-style: none; }
#tt-excursions-hub .tt-hub-card__all-options li { padding: 10px 0; border-top: 1px solid var(--tt-hub-line); }
#tt-excursions-hub .tt-hub-card__all-options li span { display: block; }
#tt-excursions-hub.tt-hub--enhanced [data-hub-fallback] { display: none; }
#tt-excursions-hub.tt-hub--enhanced [data-hub-submit] { display: none; }
#tt-excursions-hub .tt-hub-card__compare { margin-top: 18px; }
@media (min-width: 760px) {
    #tt-excursions-hub .tt-hub-filter-fields { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); }
    #tt-excursions-hub .tt-hub-more-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #tt-excursions-hub.tt-hub--compact .tt-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media print {
    body.k4u-tour-hub-page { padding-bottom: 0; }
    #tt-excursions-hub .tt-hub-more-filters { display: none; }
}
