/* Tour identity and optional CMS banner. */
.tour-detail-page.travel-pattern .td-heading-refined { margin: 0 0 28px; border: 1px solid var(--td-border); border-radius: 22px; background: #fffdf8; overflow: hidden; box-shadow: 0 8px 30px #192c3106; }
.td-header-image { margin: 0; background: #eef2ed; }
.td-header-image[hidden] { display: none; }
.td-header-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 1; object-fit: cover; object-position: center; }
.td-heading-content { padding: 30px 32px 0; }
.td-heading-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 244px); align-items: start; gap: 32px; }
.tour-detail-page .td-heading-refined .tp-heading-note { display: block; margin-bottom: 14px; color: #6e8177; font-size: 10px; font-weight: 700; letter-spacing: 2px; }
.tour-detail-page .td-heading-refined h1 { margin: 14px 0 18px; color: var(--tp-ink); font-size: clamp(24px, 2.4vw, 34px); line-height: 1.55; }
.td-heading-refined .td-heading-meta { gap: 8px 14px; }
.td-heading-refined .td-trip-tags { gap: 10px 18px; }
.td-heading-refined .td-trip-tags > span { padding: 0; color: #52665e; }
.td-code-card { display: grid; gap: 9px; padding: 20px; border: 1px solid #e6cbd2; border-radius: 16px; background: #fff2f5; }
.td-code-label { display: inline-flex; align-items: center; gap: 7px; color: #9c3654; font-size: 12px; font-weight: 600; }
.td-code-label .material-icons { font-size: 19px; }
.tour-detail-page .td-heading-refined .td-package-code { margin: 0; color: #a62649; font-size: clamp(20px, 2vw, 26px); font-weight: 800; letter-spacing: .3px; line-height: 1.4; overflow-wrap: anywhere; }
.td-copy-code { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; margin-top: 4px; padding: 8px 12px; border: 1px solid #e3bdc8; border-radius: 10px; background: #fffdf8; color: #9c3654; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.td-copy-code .material-icons { font-size: 17px; }
.td-copy-code:hover { background: #fce4eb; }
.td-heading-refined .td-heading-bottom { margin: 24px 0 0; padding: 14px 0; border-top: 1px solid var(--td-border); }
.tour-detail-page .td-heading-refined :is(button, a):focus-visible { outline: 3px solid var(--td-accent); outline-offset: 3px; }
@media (max-width: 960px) {
    .td-heading-content { padding: 24px 24px 0; }
    .td-heading-intro { grid-template-columns: minmax(0, 1fr) minmax(0, 204px); gap: 24px; }
    .td-code-card { padding: 16px; }
}
@media (max-width: 767px) {
    .tour-detail-page.travel-pattern .td-heading-refined { margin-bottom: 20px; border-radius: 16px; }
    .td-heading-content { padding: 20px 18px 0; }
    .td-heading-intro { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .td-code-card { grid-row: 1; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px 12px; padding: 14px 16px; border-radius: 12px; }
    .td-code-label, .td-package-code { grid-column: 1; }
    .td-copy-code { grid-column: 2; grid-row: 1 / 3; width: 44px; padding: 0; margin: 0; font-size: 0; }
    .td-copy-code .material-icons { font-size: 20px; }
    .td-copy-code [data-code-copy-label] { display: none; }
    .tour-detail-page .td-heading-refined .tp-heading-note { display: none; }
    .tour-detail-page .td-heading-refined h1 { font-size: 24px; margin: 12px 0 14px; }
    .td-heading-refined .td-trip-tags { gap: 8px 14px; font-size: 12px; }
    .td-heading-refined .td-heading-bottom { margin-top: 18px; flex-wrap: wrap; gap: 6px 12px; }
    .td-header-image img { aspect-ratio: 2 / 1; }
}

/* Programme journal: scanned facts, daily notes and a clear return to booking. */
.td-cover-disclosure > summary { display: none; }
.tour-detail-page.travel-pattern :is(.td-program-section .detail-content, .tour-review-section .detail-content, .review-form-card) { background: #fffdf8; border-color: var(--tp-line); }
.tour-detail-page.travel-pattern .td-journal-heading { margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px dashed var(--tp-line); }
.tour-detail-page.travel-pattern .td-journal-heading h2 { margin: 8px 0 10px; }
.tour-detail-page.travel-pattern .td-journal-heading p { margin: 0; color: var(--tp-muted); font-size: 13px; }
.tour-detail-page.travel-pattern .td-pdf-card { border: 1px dashed #c8cec4; border-radius: 16px; background: #eef2ed; }
.tour-detail-page.travel-pattern .td-pdf-icon { display: grid; place-items: center; border: 1px dashed #adc1ad; border-radius: 9px; background: #fffdf8; color: #365b4e; }
.tour-detail-page.travel-pattern .td-pdf-type { border-color: #afbeaf; color: #365b4e; background: #fffdf8; }
.tour-detail-page.travel-pattern .td-help-card { position: relative; background: var(--tp-ink); color: #fff9ed; border-color: #2d4549; }
.tour-detail-page.travel-pattern .td-help-card h2 { color: #fff9ed; }
.tour-detail-page.travel-pattern .td-help-card p { color: #d2dfdc; }
.tour-detail-page.travel-pattern .td-help-card .td-help-kicker { color: #ffb3c4; margin-bottom: 8px; font-size: 9px; }
.tour-detail-page.travel-pattern .td-help-icon { display: grid; place-items: center; background: #ffffff0d; color: #ffb3c4; border: 1px dashed #b3c7bd66; }
.tour-detail-page.travel-pattern .td-help-card .detail-secondary-button { border-color: #fff9ed; background: #fff9ed; color: var(--tp-ink); }
.tour-detail-page.travel-pattern .td-help-card .td-pdf-link { color: #ffb3c4; }
.td-day-index { margin-top: 16px; padding: 22px; border: 1px solid var(--td-border); border-radius: 18px; background: #fffdf8; }
.td-mobile-day-index { display: none; }
.td-day-index h3 { margin: 6px 0 14px; font-size: 16px; line-height: 1.7; }
.td-day-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 250px; overflow-y: auto; overscroll-behavior: contain; padding: 3px; }
.td-day-links a { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 10px; border: 1px dashed #d0cabc; border-radius: 8px; color: #596766; background: var(--tp-paper); font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; }
.td-day-links a[aria-current] { background: #edf2e9; border-color: #9fb39b; color: #365b4e; }
.td-day-links a:hover { border-color: var(--td-accent); color: var(--td-accent); }
.tour-detail-page.travel-pattern .itinerary-day[id] { scroll-margin-top: calc(var(--td-header-height) + var(--td-nav-height) + 20px); }
.tour-detail-page.travel-pattern .itinerary-day-marker { border: 1px dashed #b8c3b1; border-radius: 8px; background: #edf2e9; color: #365b4e; }
.tour-detail-page.travel-pattern .itinerary-day:not(:last-child)::before { width: 0; border-left: 1px dashed #b8c3b1; background: none; }
.tour-detail-page.travel-pattern .itinerary-day-body { border-color: var(--tp-line); border-radius: 14px; background: #fffdf8; box-shadow: 0 5px 16px #192c3105; }
.tour-detail-page.travel-pattern .itinerary-day-body[open] { border-color: #bfcaba; }
.tour-detail-page.travel-pattern .itinerary-day-body[open] summary { border-bottom: 1px dashed var(--tp-line); margin-bottom: 16px; background: #edf2e950; border-radius: 14px 14px 0 0; }
.tour-detail-page.travel-pattern .itinerary-day-body summary h3 { color: var(--tp-ink); }
.tour-detail-page.travel-pattern .itinerary-meal-list { gap: 8px; padding-top: 10px; border-top: 1px dashed var(--tp-line); }
.tour-detail-page.travel-pattern .meal-unknown { color: #626d6e; background: #eeeae1; }
.tour-detail-page.travel-pattern .itinerary-hotel-line { padding-top: 12px; border-top: 1px dashed var(--tp-line); }
.tour-detail-page.travel-pattern .tour-review-item { padding: 22px; border: 1px solid var(--tp-line); border-radius: 16px; background: var(--tp-paper); }
.tour-detail-page.travel-pattern .tour-review-item + .tour-review-item { margin-top: 16px; }
.td-review-note { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px dashed var(--tp-line); color: var(--td-accent); font-size: 9px; font-weight: 700; letter-spacing: 1.5px; }
.td-review-note > span:last-child { height: 22px; color: #bfc9bd; font-size: 36px; line-height: 1.3; }
.td-review-title { margin: 8px 0; color: var(--tp-ink); font-size: 16px; line-height: 1.8; }
.tour-detail-page.travel-pattern .tour-review-image { border: 5px solid #fffdf8; border-radius: 12px; }
.td-next-step { padding: 0 0 40px; }
.td-next-step-card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: center; gap: 40px; padding: 34px 36px; border: 1px solid #2d4549; border-radius: 20px; color: #fff9ed; background: var(--tp-ink); }
.tour-detail-page.travel-pattern .td-next-step-card .section-kicker { color: #ffb3c4; }
.td-next-step-card h2 { margin: 12px 0; color: #fff9ed; font-size: clamp(24px, 2.5vw, 32px); line-height: 1.55; }
.td-next-step-card p { margin: 0; max-width: 540px; color: #d2dfdc; font-size: 13px; line-height: 1.9; }
.td-next-step-actions { display: grid; gap: 10px; }
.tour-detail-page.travel-pattern .td-next-step-actions .primary-link-button { background: #fff9ed; color: var(--tp-ink); border-color: #fff9ed; }
.tour-detail-page.travel-pattern .td-next-step-actions .detail-secondary-button { margin: 0; background: #ffffff08; color: #ffb3c4; border-color: #8ba39b88; }
.td-next-step-actions p { font-size: 12px; margin-bottom: 6px; }
@media (max-width: 960px) {
    .tour-detail-page.travel-pattern .td-help-card .td-help-kicker { grid-column: 1 / -1; }
    .tour-detail-page.travel-pattern .td-help-icon { grid-row: 2 / 4; }
    .td-day-index { display: none; }
    .td-mobile-day-index { display: block; margin: 0 0 22px; }
    .td-mobile-day-index .td-day-links { display: flex; max-height: none; overflow-x: auto; overscroll-behavior-inline: contain; padding: 4px 3px 10px; }
    .td-mobile-day-index .td-day-links a { flex: none; min-width: 94px; }
    .td-day-links { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .td-cover-disclosure { border: 1px solid var(--td-border); border-radius: 14px; background: #fffdf8; }
    .td-cover-disclosure > summary { display: flex; align-items: center; gap: 10px; min-height: 50px; padding: 12px 16px; color: var(--td-muted); font-size: 13px; font-weight: 600; cursor: pointer; list-style: none; }
    .td-cover-disclosure > summary::-webkit-details-marker { display: none; }
    .td-cover-disclosure > summary .material-icons:first-child { color: var(--td-accent); font-size: 20px; }
    .td-cover-disclosure > summary .material-icons:last-child { margin-left: auto; font-size: 22px; }
    .td-cover-disclosure[open] > summary .material-icons:last-child { transform: rotate(180deg); }
    .tour-detail-page .td-cover-disclosure:not([open]) ~ .td-sold-out-note { display: none; }
    .tour-detail-page .td-cover-disclosure[open] ~ .td-sold-out-note { top: 66px; }
    .tour-detail-page.travel-pattern .td-cover-disclosure .td-cover-button { border-radius: 0 0 14px 14px; box-shadow: none; }
    .tour-detail-page.travel-pattern .td-journal-heading { margin-bottom: 20px; padding-bottom: 16px; }
    .tour-detail-page.travel-pattern .itinerary-meal-list { grid-template-columns: 1fr; }
    .td-day-index { padding: 18px; }
    .td-day-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .tour-detail-page.travel-pattern .tour-review-item { padding: 18px; }
    .td-next-step { padding-bottom: 28px; }
    .td-next-step-card { grid-template-columns: 1fr; gap: 22px; padding: 26px 22px; border-radius: 16px; }
}
@media (max-width: 359px) { .td-day-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
