/* ═══════════════════════════════════════════════════
   program-details.css — Program Details Page v2
   ═══════════════════════════════════════════════════ */

/* ── Page-wide container padding (prototype: 1.5rem each side) ── */
.pd-hero-content.container,
[data-sticky-container].container {
    --bs-gutter-x: 3rem;
}

/* ── Hero ── */
.pd-hero {
    position: relative;
    height: 480px;
    overflow: hidden;
    background: #111;
}
.pd-hero-blur-bg {
    position: absolute;
    inset: -30px;
    width: calc(100% + 60px); height: calc(100% + 60px);
    object-fit: cover;
    object-position: center;
    filter: blur(18px);
    opacity: .55;
    z-index: 0;
}
.pd-hero-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    position: relative;
    z-index: 1;
    transition: opacity .35s;
}
.pd-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.15) 55%, transparent 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    z-index: 2;
}
.pd-hero-content {
    padding-bottom: 1.75rem;
}
.pd-breadcrumb {
    display: flex;
    gap: .4rem;
    align-items: center;
    font-size: .8rem;
    color: rgba(255,255,255,.7);
    margin-bottom: .75rem;
    flex-wrap: wrap;
}
.pd-breadcrumb a { color: rgba(255,255,255,.7); text-decoration: none; }
.pd-breadcrumb a:hover { color: #fff; }
.pd-breadcrumb .sep { opacity: .5; }
.pd-title-row {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: 0;
}
.pd-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1.15;
    color: #fff;
    text-shadow: 0 1px 4px rgba(0,0,0,.4);
    margin: 0;
}
.pd-badge-new {
    background: #b45309;
    color: #fff;
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: .2rem .5rem;
    border-radius: 5px;
    vertical-align: middle;
    position: relative;
    top: -4px;
}
.pd-badge-week {
    background: #6366f1;
    color: #fff;
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: .2rem .5rem;
    border-radius: 5px;
    vertical-align: middle;
    position: relative;
    top: -4px;
}

/* Hero bottom row: title left, thumbnails right */
.pd-hero-bottom-row {
    display: flex;
    align-items: flex-end;
    gap: 1rem;
}
.pd-hero-bottom-row .pd-title-row {
    flex: 1 1 0;
    min-width: 0;
}

/* Hero thumbnails (desktop, in-flow on the right) */
.pd-hero-thumbs {
    display: flex;
    gap: .5rem;
    align-items: flex-end;
    flex-shrink: 0;
}
.pd-hero-thumb {
    width: 72px;
    height: 52px;
    border-radius: 6px;
    overflow: hidden;
    border: 2px solid rgba(255,255,255,.45);
    cursor: pointer;
    flex-shrink: 0;
    transition: border-color .15s, transform .15s;
}
.pd-hero-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-hero-thumb:hover { border-color: #fff; transform: scale(1.05); }
.pd-hero-thumb.active { border-color: var(--et-primary); border-width: 2.5px; }
.pd-hero-thumb-more {
    width: 72px;
    height: 52px;
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid rgba(255,255,255,.35);
    flex-shrink: 0;
    background: rgba(11,10,18,.78);
    backdrop-filter: blur(4px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    gap: .15rem;
    text-decoration: none;
    transition: background .15s;
}
.pd-hero-thumb-more:hover { background: rgba(0,0,0,.7); color: #fff; }
.pd-hero-thumb-more i { font-size: 1.1rem; }

/* Mobile thumbnail strip (below hero, hidden on desktop) */
.pd-mobile-thumb-strip {
    display: none;
    gap: 3px;
    overflow-x: auto;
    background: #111;
    padding: 3px 0;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.pd-mobile-thumb-strip::-webkit-scrollbar { display: none; }
.pd-mobile-thumb-strip .pd-hero-thumb {
    flex-shrink: 0;
    width: 80px;
    height: 58px;
    border-radius: 4px;
    opacity: .7;
    border: 2px solid transparent;
    transform: none;
}
.pd-mobile-thumb-strip .pd-hero-thumb:hover { transform: none; }
.pd-mobile-thumb-strip .pd-hero-thumb.active { opacity: 1; border-color: #fff; }
.pd-mobile-thumb-strip .pd-hero-thumb-more {
    flex-shrink: 0;
    width: 80px;
    height: 58px;
    border-radius: 4px;
    background: rgba(255,255,255,.15);
    border: none;
}

/* ── Icons strip ── */
.pd-icons-strip {
    background: #f3f4f6;
    border-top: 1px solid #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
}
.pd-icons-grid {
    display: flex;
    align-items: stretch;
}
.pd-icon-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1.5rem;
    flex: 1;
    border-right: 1px solid #e5e7eb;
}
.pd-icon-item:last-child { border-right: none; }
.pd-icon-glyph {
    width: 38px;
    height: 38px;
    background: rgba(var(--et-primary-rgb),.12);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--et-primary);
    flex-shrink: 0;
}
.pd-icon-text { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.pd-icon-label {
    font-size: .67rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #9ca3af;
    line-height: 1;
}
.pd-icon-value { font-weight: 700; font-size: .88rem; line-height: 1.25; color: #111827; }
.pd-icon-sub { font-size: .75rem; color: #5a6268; line-height: 1.2; }
.pd-icon-badge {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    background: rgba(var(--et-primary-rgb),.1);
    color: var(--et-primary-dark);
    border-radius: 20px;
    padding: .15rem .55rem;
    font-size: .68rem;
    font-weight: 600;
    line-height: 1;
}
.pd-icon-badge--neutral { background: #f3f4f6; color: #374151; }
.pd-diff-squares { display: flex; gap: 3px; margin-top: .2rem; }
.pd-diff-faq-link { font-size: .7rem; color: var(--et-primary-strong); text-decoration: none; margin-top: .25rem; display: inline-block; }
.pd-diff-faq-link:hover { text-decoration: underline; color: var(--et-primary-strong); }
.pd-diff-sq { width: 13px; height: 5px; border-radius: 3px; background: #e5e7eb; }
.pd-diff-sq.on { background: var(--et-primary); }

/* ── Main 2-col section ── */
.pd-main-section {
    padding-top: 1.75rem;
    padding-bottom: 4rem;
}

@media (min-width: 1200px) {
    .pd-main-section .pd-sidebar-col {
        width: calc(340px + var(--bs-gutter-x, 3rem));
        flex: 0 0 calc(340px + var(--bs-gutter-x, 3rem));
        max-width: calc(340px + var(--bs-gutter-x, 3rem));
    }
    .pd-main-section .col-xl-8 {
        flex: 1 1 0;
        width: auto;
        max-width: none;
    }
    .pd-sidebar-col > div {
        position: sticky;
        top: 90px;
    }
}

/* ── Content sections ── */
.pd-section { margin-bottom: 2.25rem; }
.pd-section > h2 {
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: .85rem;
    scroll-margin-top: 80px;
}
.pd-lead { color: #374151; line-height: 1.8; font-size: .97rem; }
.pd-lead p + p { margin-top: .75rem; }

/* Kayak options under the description */
.pd-kayaks { margin-top: 1.5rem; border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden; }
.pd-kayaks-head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; padding: .7rem 1rem; border-bottom: 1px solid #e5e7eb; background: #fff; }
.pd-kayaks-head > i { color: var(--et-primary); }
.pd-kayaks-title { font-size: .9rem; font-weight: 700; color: #1a1a1a; margin-right: auto; }
.pd-kayaks-tag { font-size: .7rem; font-weight: 600; color: #15803d; background: var(--et-primary-tint); border: 1px solid #bbf7d0; border-radius: 20px; padding: .15rem .6rem; white-space: nowrap; }
.pd-kayaks-grid { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.pd-kayak-opt { display: flex; align-items: center; gap: .85rem; padding: .95rem 1rem; }
.pd-kayak-opt + .pd-kayak-opt { border-left: 1px solid #e5e7eb; }
.pd-kayak-boat { display: block; flex-shrink: 0; }
.pd-kayak-boat .hull { fill: #dcfce7; stroke: var(--et-primary); stroke-width: 1.6; }
.pd-kayak-boat .seat { fill: #fff; stroke: var(--et-primary); stroke-width: 1.4; }
.pd-kayak-name { font-size: .9rem; font-weight: 700; color: #1a1a1a; }
.pd-kayak-desc { font-size: .78rem; color: #6b7280; margin-top: .1rem; line-height: 1.4; }
.pd-kayak-extra { display: inline-block; margin-top: .35rem; font-size: .72rem; font-weight: 600; color: #b45309; background: #fffbeb; border: 1px solid #fde68a; border-radius: 20px; padding: .08rem .5rem; }
.pd-kayak-state { margin-left: auto; align-self: flex-start; font-size: 1.05rem; color: var(--et-primary); }
.pd-kayak-opt--off { background: #fafafa; }
.pd-kayak-opt--off .pd-kayak-name { color: #9ca3af; }
.pd-kayak-opt--off .pd-kayak-state { color: #d1d5db; }
.pd-kayak-opt--off .pd-kayak-boat .hull { fill: #f3f4f6; stroke: #cbd5e1; }
.pd-kayak-opt--off .pd-kayak-boat .seat { stroke: #cbd5e1; }
@media (max-width: 575.98px) {
    .pd-kayaks-grid { grid-auto-flow: row; }
    .pd-kayak-opt + .pd-kayak-opt { border-left: 0; border-top: 1px solid #e5e7eb; }
}

/* Highlights */
.pd-highlights { list-style: none; padding: 0; margin: 0; }
.pd-highlights li {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    font-size: .9rem;
    color: #374151;
    padding: .4rem 0;
    border-bottom: 1px solid #f9fafb;
}
.pd-highlights li:last-child { border-bottom: none; }
.pd-highlights li i { color: var(--et-primary); flex-shrink: 0; margin-top: .05rem; }

/* Includes / Excludes */
.pd-inc-exc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; font-size: .875rem; }
.pd-inc-col h3, .pd-exc-col h3 {
    font-size: .95rem;
    font-weight: 700;
    margin-bottom: .75rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.pd-inc-col h3 { color: #15803d; }
.pd-exc-col h3 { color: #b91c1c; }
.pd-inc-list, .pd-exc-list { list-style: none; padding: 0; margin: 0; }
.pd-inc-list li, .pd-exc-list li {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .3rem 0;
    color: #374151;
    line-height: 1.4;
    font-size: .875rem;
}
.pd-inc-list li i { color: #16a34a; flex-shrink: 0; margin-top: .1rem; }
.pd-exc-list li i { color: #dc2626; flex-shrink: 0; margin-top: .1rem; }

/* Compliments of the agency — full-width callout under both columns */
.pd-gift-box {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: .85rem;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 12px;
    padding: .9rem 1rem;
}
.pd-gift-glyph {
    width: 38px;
    height: 38px;
    background: rgba(217,119,6,.12);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: #d97706;
    flex-shrink: 0;
}
.pd-gift-text { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.pd-gift-label {
    font-size: .67rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #b45309;
    line-height: 1;
}
.pd-gift-value {
    font-weight: 600;
    font-size: .88rem;
    line-height: 1.35;
    color: #111827;
    overflow-wrap: anywhere;
}

/* ── Timeline / Itinerary ── */
.pd-tl { display: flex; flex-direction: column; gap: .5rem; }
.pd-tl-item {
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    transition: border-color .15s;
}
.pd-tl-item:has(.pd-tl-header:not(.collapsed)) { border-color: var(--et-primary); }
.pd-tl-header {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem .9rem;
    cursor: pointer;
    user-select: none;
    background: #fff;
    transition: background .15s;
    text-decoration: none;
    color: inherit;
    border: none;
    width: 100%;
    text-align: left;
}
.pd-tl-header:not(.collapsed) { background: var(--et-primary-tint); }
.pd-tl-header:not(.collapsed) .pd-tl-title { color: var(--et-primary-dark); }
.pd-tl-header:not(.collapsed) .pd-tl-day-badge {
    background: var(--et-primary-strong);
    color: #fff;
}
.pd-tl-header:not(.collapsed) .pd-tl-chevron {
    transform: rotate(180deg);
    background: var(--et-primary-tint);
    border-color: var(--et-primary);
    color: var(--et-primary-strong);
}
.pd-tl-day-badge {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    flex-shrink: 0;
    background: rgba(var(--et-primary-rgb),.12);
    color: var(--et-primary-strong);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    font-weight: 800;
    transition: background .15s, color .15s;
}
.pd-tl-title-wrap { display: flex; flex-direction: column; gap: .1rem; flex: 1; min-width: 0; }
.pd-tl-date { font-size: .73rem; color: #4b5563; font-weight: 500; }
.pd-tl-title { font-size: .93rem; font-weight: 700; color: #1a1a1a; }
.pd-tl-chevron {
    flex-shrink: 0;
    font-size: .8rem;
    color: #6b7280;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s, background .15s, color .15s;
}
.pd-tl-body-inner {
    background: #f9fafb;
    border-top: 1px solid #e5e7eb;
    padding: .9rem 1.1rem 1rem;
    font-size: .9rem;
    color: #374151;
    line-height: 1.75;
}
.pd-tl-body-inner p + p { margin-top: .5rem; }
.pd-tl-day-imgs {
    display: flex;
    gap: .5rem;
    margin-top: .85rem;
    overflow-x: auto;
    scrollbar-width: none;
}
.pd-tl-day-imgs::-webkit-scrollbar { display: none; }
.pd-tl-day-img {
    flex-shrink: 0;
    width: 140px;
    height: 95px;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
}
.pd-tl-day-img a { display: block; width: 100%; height: 100%; }
.pd-tl-day-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .2s;
}
.pd-tl-day-img:hover img { transform: scale(1.06); }
.pd-itin-stats { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .75rem; }
.pd-itin-stat {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .8rem;
    color: #6b7280;
    background: #fff;
    border: 1px solid #e5e7eb;
    padding: .25rem .65rem;
    border-radius: 20px;
}
.pd-itin-stat i { color: var(--et-primary); }

/* Accommodation card (inside an itinerary day) */
.pd-accom-card {
    margin-top: 1rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    scroll-margin-top: 100px;
}
.pd-accom-card-header {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    padding: .65rem .85rem;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
}
.pd-accom-card-header > i { color: var(--et-primary); font-size: .95rem; }
.pd-accom-card-title { font-size: .87rem; font-weight: 700; color: #1a1a1a; margin-right: auto; }
.pd-accom-card-body { padding: .85rem; }
.pd-accom-gallery {
    display: flex;
    gap: .5rem;
    overflow-x: auto;
    scrollbar-width: none;
    margin-bottom: .75rem;
}
.pd-accom-gallery::-webkit-scrollbar { display: none; }
.pd-accom-photo {
    flex-shrink: 0;
    width: 140px;
    height: 95px;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
}
.pd-accom-photo a { display: block; width: 100%; height: 100%; }
.pd-accom-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .2s;
}
.pd-accom-photo:hover img { transform: scale(1.06); }
.pd-accom-facts { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: .65rem; }
.pd-accom-note { font-size: .85rem; color: #374151; line-height: 1.65; margin: 0; }

/* Compact reference row shown instead of a full card on repeat nights */
.pd-accom-repeat {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1rem;
    background: #fff;
    border: 1px dashed #e5e7eb;
    border-radius: 10px;
    padding: .65rem .85rem;
    font-size: .85rem;
    color: #374151;
}
.pd-accom-repeat i { color: var(--et-primary); flex-shrink: 0; }
.pd-accom-repeat a { color: var(--et-primary-strong); font-weight: 600; text-decoration: none; }
.pd-accom-repeat a:hover { text-decoration: underline; }

/* Pickup / return location row */
.pd-pickup-row {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .75rem;
    font-size: .82rem;
    color: #6b7280;
}
.pd-pickup-link {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    color: var(--et-primary-dark);
    font-weight: 600;
    text-decoration: none;
}
.pd-pickup-link:hover { text-decoration: underline; color: var(--et-primary-dark); }
.pd-pickup-time { color: #1a1a1a; font-weight: 600; font-size: .82rem; }

/* ── Mobile inline price card (hidden on desktop) ── */
.pd-mpc {
    display: none;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 2rem;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.pd-mpc-head {
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    padding: .7rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.pd-mpc-head-label {
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #5a6268;
}
.pd-mpc-confirmed {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .75rem;
    font-weight: 600;
    color: #15803d;
}
.pd-mpc-body { padding: .9rem 1rem; }
.pd-mpc-price-row { display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; margin-bottom: .15rem; }
.pd-mpc-price-main { font-size: 1.9rem; font-weight: 800; color: var(--et-primary); line-height: 1; }
.pd-mpc-price-old { font-size: 1rem; color: #6b7280; text-decoration: line-through; font-weight: 400; }
.pd-mpc-price-save { font-size: .72rem; font-weight: 700; color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; border-radius: 20px; padding: .1rem .45rem; line-height: 1.4; white-space: nowrap; }
.pd-mpc-discount-note { display: flex; align-items: center; gap: .3rem; font-size: .72rem; color: #6b7280; font-style: italic; margin-bottom: .65rem; }
.pd-mpc-discount-note i { font-style: normal; flex-shrink: 0; }
.pd-mpc-variants { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .6rem; }
.pd-mpc-variant { display: flex; align-items: center; gap: .5rem; font-size: .84rem; color: #374151; }
.pd-mpc-variant i { font-size: .9rem; color: var(--et-primary); width: 16px; text-align: center; flex-shrink: 0; }
.pd-mpc-variant--orange i { color: #d97706; }
.pd-mpc-variant--orange { color: #92400e; }
.pd-mpc-vat {
    font-size: .72rem;
    color: #6b7280;
    font-style: italic;
    padding-top: .5rem;
    border-top: 1px solid #e5e7eb;
}
.pd-mpc-full-banner {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: .65rem 1rem;
    font-size: .82rem;
    color: #991b1b;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.pd-mpc-confirmed-banner {
    background: var(--et-primary-tint);
    border-bottom: 1px solid #bbf7d0;
    padding: .65rem 1rem;
    font-size: .82rem;
    color: #15803d;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.pd-mpc-soon-banner {
    background: #fffbeb;
    border-bottom: 1px solid #fde68a;
    padding: .65rem 1rem;
    font-size: .82rem;
    color: #92400e;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.pd-mpc-soon-banner i { color: #d97706; }
.pd-mpc-no-dates {
    padding: 1.5rem;
    text-align: center;
    font-size: .9rem;
    color: #6b7280;
}
.pd-mpc-no-dates i { font-size: 2rem; color: #d1d5db; margin-bottom: .5rem; display: block; }

/* ── Sidebar price card ── */
.pd-price-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1rem;
    box-shadow: 0 4px 20px rgba(0,0,0,.06);
}
.pd-price-card-body { padding: 1.4rem; }
.pd-price-label { font-size: .82rem; color: #6b7280; font-weight: 500; margin-bottom: .3rem; }

.pd-price-row { display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; margin-bottom: .1rem; }
.pd-price-main { font-size: 1.7rem; font-weight: 800; color: var(--et-primary); line-height: 1.15; word-break: break-word; }
.pd-price-old { font-size: .95rem; color: #9ca3af; text-decoration: line-through; font-weight: 400; }
.pd-price-save { font-size: .72rem; font-weight: 700; color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; border-radius: 20px; padding: .1rem .45rem; line-height: 1.4; white-space: nowrap; }

.pd-price-until { display: flex; align-items: center; gap: .3rem; font-size: .75rem; color: #6b7280; font-style: italic; margin-top: .2rem; }
.pd-price-until i { font-style: normal; flex-shrink: 0; }
.pd-price-variants { margin-top: .65rem; display: flex; flex-direction: column; gap: .35rem; }
.pd-price-variant { display: flex; align-items: center; gap: .5rem; font-size: .87rem; }
.pd-price-variant i { color: var(--et-primary-strong); font-size: .95rem; }
.pd-price-variant--orange i { color: #d97706; }
.pd-price-variant--orange { color: #92400e; }
.pd-price-vat { font-size: .75rem; color: #6b7280; font-style: italic; margin-top: .5rem; }
.pd-price-confirmed {
    display: flex;
    align-items: center;
    gap: .4rem;
    background: var(--et-primary-tint);
    border: 1px solid #bbf7d0;
    border-radius: 8px;
    padding: .5rem .75rem;
    font-size: .82rem;
    color: #15803d;
    font-weight: 500;
    margin-top: .65rem;
}
.pd-price-recalc {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    padding: .5rem .75rem;
    font-size: .82rem;
    color: #92400e;
    margin-top: .65rem;
}
.pd-price-full-banner {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: .75rem 1.4rem;
    font-size: .84rem;
    color: #991b1b;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.pd-price-confirmed-banner {
    background: var(--et-primary-tint);
    border-bottom: 1px solid #bbf7d0;
    padding: .75rem 1.4rem;
    font-size: .84rem;
    color: #15803d;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.pd-price-no-dates {
    padding: 1.5rem 1.4rem;
    text-align: center;
}
.pd-price-no-dates i { font-size: 2.5rem; color: #d1d5db; display: block; margin-bottom: .5rem; }
.pd-price-no-dates p { font-size: .9rem; color: #6b7280; margin: 0; }
.pd-own-transport-banner {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    padding: .6rem .85rem;
    font-size: .82rem;
    color: #92400e;
    margin-top: .65rem;
    display: flex;
    align-items: flex-start;
    gap: .4rem;
}
.pd-own-transport-banner i { color: #d97706; flex-shrink: 0; margin-top: .1rem; }
.pd-price-soon-banner {
    background: #fffbeb;
    border-bottom: 1px solid #fde68a;
    padding: .75rem 1.4rem;
    font-size: .84rem;
    color: #92400e;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.pd-price-soon-banner i { color: #d97706; }
.pd-soon-note {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin-top: .9rem;
    padding-top: .9rem;
    border-top: 1px solid #e5e7eb;
    font-size: .85rem;
    line-height: 1.5;
    color: #4b5563;
}
.pd-soon-note:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.pd-soon-note i { color: #9ca3af; font-size: .95rem; flex-shrink: 0; margin-top: .1rem; }
.pd-btn-book {
    width: 100%;
    background: var(--et-primary-strong);
    color: #fff;
    border: none;
    border-radius: 11px;
    padding: .95rem;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    transition: background .15s;
    margin-top: 1rem;
}
.pd-btn-book:hover { background: var(--et-primary-dark); color: #fff; }
.pd-btn-book.disabled, .pd-btn-book[aria-disabled="true"] { opacity: .55; pointer-events: none; }
.pd-price-trust {
    margin-top: .9rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
    padding-top: .9rem;
    border-top: 1px solid #e5e7eb;
}
.pd-trust-item { display: flex; align-items: center; gap: .45rem; font-size: .8rem; color: #6b7280; }
.pd-trust-item i { color: var(--et-primary); font-size: .9rem; }

/* Guides card */
.pd-guides-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1rem;
    box-shadow: 0 4px 20px rgba(0,0,0,.06);
}
.pd-guides-body { padding: 1rem 1.4rem; }
.pd-guides-label {
    font-size: .75rem;
    font-weight: 700;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .4rem;
}
.pd-guides-group + .pd-guides-group { margin-top: .75rem; }

/* Auth benefits card */
.pd-auth-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1rem;
    box-shadow: 0 4px 20px rgba(0,0,0,.06);
}
.pd-auth-head {
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    padding: .85rem 1.4rem;
}
.pd-auth-head h3 { font-size: .95rem; font-weight: 700; margin: 0; }
.pd-auth-body { padding: .2rem 0; }
.pd-auth-item {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .6rem 1.4rem;
    border-bottom: 1px solid #e5e7eb;
    font-size: .87rem;
    color: #374151;
}
.pd-auth-item:last-child { border-bottom: none; }
.pd-auth-item i { color: var(--et-primary); flex-shrink: 0; }

/* Help card */
.pd-help-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,.06);
    margin-bottom: 1rem;
}
.pd-help-head {
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    padding: .9rem 1.4rem;
}
.pd-help-head h3 { font-size: 1rem; font-weight: 700; margin: 0; }
.pd-help-body { padding: .25rem 0; }
.pd-help-row {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .8rem 1.4rem;
    border-bottom: 1px solid #e5e7eb;
    text-decoration: none;
    color: #1a1a1a;
    font-size: .9rem;
    transition: background .15s;
}
.pd-help-row:hover { background: #f9fafb; color: #1a1a1a; }
.pd-help-row:last-child { border-bottom: none; }
.pd-help-row .pd-hi { font-size: 1.2rem; width: 26px; text-align: center; flex-shrink: 0; }
.pd-help-row .pd-ht { font-weight: 500; }
.pd-help-row .pd-hs { font-size: .8rem; color: #6b7280; }

/* ── Mobile bottom bar ── */
.pd-mobile-bar {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    border-top: 1px solid #e5e7eb;
    padding: .85rem 1.25rem;
    z-index: 300;
    gap: 1rem;
    align-items: center;
    box-shadow: 0 -4px 12px rgba(0,0,0,.08);
}
.pd-mobile-price { font-size: 1.3rem; font-weight: 800; color: var(--et-primary); }
.pd-mobile-price span { font-size: .8rem; font-weight: 400; color: #6b7280; }
.pd-mobile-book-btn {
    flex: 1;
    background: var(--et-primary-strong);
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: .85rem;
    font-size: .95rem;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    display: block;
    transition: background .15s;
}
.pd-mobile-book-btn:hover { background: var(--et-primary-dark); color: #fff; }
.pd-mobile-full-text {
    flex: 1;
    font-size: .9rem;
    font-weight: 600;
    color: #991b1b;
    text-align: center;
}
.pd-mobile-pending-text {
    flex: 1;
    font-size: .82rem;
    color: #6b7280;
    text-align: center;
}
.pd-mobile-soon { display: flex; flex-direction: column; gap: .1rem; }
.pd-mobile-soon .pd-mobile-price { line-height: 1.1; }
.pd-mobile-soon-label {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .8rem;
    font-weight: 600;
    color: #92400e;
    white-space: nowrap;
}
.pd-mobile-soon-label i { color: #d97706; }
.pd-mobile-bar-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.pd-mobile-bar-row {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.pd-mobile-waitlist-btn {
    width: 100%;
    background: transparent;
    border: 1.5px solid #fed7aa;
    border-radius: 10px;
    padding: .55rem 1rem;
    font-size: .82rem;
    font-weight: 600;
    color: #92400e;
    cursor: pointer;
    text-align: center;
    transition: background .15s;
}
.pd-mobile-waitlist-btn:hover { background: #fff7ed; }

/* ── Waitlist bottom sheet (mobile) ── */
.pd-sheet-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 400;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
}
.pd-sheet-backdrop.open {
    opacity: 1;
    pointer-events: auto;
}
.pd-sheet {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 401;
    background: #fff;
    border-radius: 18px 18px 0 0;
    padding: 1.25rem 1.25rem 2rem;
    transform: translateY(100%);
    transition: transform .3s ease;
}
.pd-sheet-backdrop.open .pd-sheet {
    transform: translateY(0);
}
.pd-sheet-handle {
    width: 36px;
    height: 4px;
    background: #e5e7eb;
    border-radius: 2px;
    margin: 0 auto .9rem;
}
.pd-sheet h3 {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: .5rem;
}
.pd-sheet p {
    font-size: .88rem;
    color: #6b7280;
    margin-bottom: .9rem;
}

/* ── Important notes ── */
.pd-important-box {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 12px;
    padding: 1.25rem;
}
.pd-important-item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .55rem 0;
    border-bottom: 1px solid #fde68a;
    font-size: .87rem;
    color: #374151;
    line-height: 1.55;
}
.pd-important-item:last-child { border-bottom: none; }
.pd-important-item > i {
    color: #d97706;
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: .2rem;
}

/* ── Cancellation rows (inside pd-important-box) ── */
.pd-cancel-text { display: flex; flex-direction: column; gap: .2rem; flex: 1; min-width: 0; }
.pd-cancel-when { font-weight: 600; color: #374151; }
.pd-cancel-penalty { font-size: .85rem; color: #374151; }

/* ── Waitlist ── */
.pd-waitlist-toggle {
    width: 100%;
    margin-top: .6rem;
    background: none;
    border: 1px solid #fed7aa;
    border-radius: 10px;
    padding: .65rem 1rem;
    font-size: .85rem;
    font-weight: 600;
    color: #92400e;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    transition: background .15s, border-color .15s;
}
.pd-waitlist-toggle:hover { background: #fff7ed; }
.pd-waitlist-toggle.success { background: var(--et-primary-tint); border-color: #bbf7d0; color: #15803d; cursor: default; }
.pd-waitlist-toggle--primary {
    margin-top: 1rem;
    background: var(--et-primary-strong);
    border-color: var(--et-primary-strong);
    border-radius: 11px;
    padding: .85rem 1rem;
    font-size: .95rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}
.pd-waitlist-toggle--primary:hover { background: var(--et-primary-dark); }
.pd-waitlist-toggle--primary.success,
.pd-waitlist-toggle--primary.success:hover { background: var(--et-primary-tint); border-color: #bbf7d0; color: #15803d; font-size: .88rem; }
.pd-waitlist-panel { overflow: hidden; max-height: 0; opacity: 0; transition: max-height .35s ease, opacity .25s ease; }
.pd-waitlist-panel.open { max-height: 420px; opacity: 1; }
.pd-waitlist-panel-inner { display: flex; flex-direction: column; gap: .55rem; padding: .75rem 0 0; }
.pd-waitlist-input {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 9px;
    padding: .6rem .85rem;
    font-size: .88rem;
    font-family: inherit;
    color: #111827;
    outline: none;
    transition: border-color .15s;
}
.pd-waitlist-input:focus { border-color: var(--et-primary); }
.pd-waitlist-submit {
    width: 100%;
    background: #111827;
    color: #fff;
    border: none;
    border-radius: 9px;
    padding: .7rem;
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    transition: background .15s;
}
.pd-waitlist-submit:hover { background: #374151; }
.pd-waitlist-submit:disabled { opacity: .6; cursor: not-allowed; }
.pd-waitlist-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 7px;
    padding: .5rem .75rem;
    font-size: .8rem;
    color: #dc2626;
    display: none;
}

/* ── Share strip ── */
.pd-share-strip {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}
.pd-share-label {
    font-size: .85rem;
    color: #6b7280;
    font-weight: 500;
}
.pd-share-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .9rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: .82rem;
    font-weight: 500;
    background: #fff;
    cursor: pointer;
    text-decoration: none;
    color: #111827;
    transition: background .15s;
}
.pd-share-btn:hover { background: #f9fafb; color: #111827; }

/* ── Responsive breakpoints ── */
@media (max-width: 1199.98px) {
    .pd-sidebar-col { display: none !important; }
    .pd-mobile-bar { display: flex; }
    .pd-mpc { display: block; }
    body { padding-bottom: 80px; }
    .pd-main-section { padding-top: 1rem; }
}

@media (max-width: 767.98px) {
    .pd-hero { height: 320px; }
    .pd-title { font-size: 1.5rem; }
    .pd-hero-thumbs { display: none; }
    .pd-mobile-thumb-strip { display: flex; }
    .pd-icons-grid { flex-wrap: wrap; padding-left: 0; padding-right: 0; }
    .pd-icon-item {
        flex: 1 1 50%;
        padding: .85rem 1rem;
        border-right: none;
        border-bottom: 1px solid #e5e7eb;
    }
    .pd-icon-item:nth-child(odd) { border-right: 1px solid #e5e7eb; }
    .pd-icon-item:last-child,
    .pd-icon-item:nth-last-child(2):nth-child(odd) { border-bottom: none; }
    .pd-inc-exc-grid { grid-template-columns: 1fr; }
    .pd-gift-box { align-items: flex-start; gap: .7rem; padding: .8rem .85rem; }
}

/* Kayak Zone: the gallery thumbnails are buttons, so they work from the keyboard */
.pd-hero-thumb, .pd-hero-thumb-more { padding: 0; border-style: solid; font: inherit; }
.pd-hero-thumb:focus-visible, .pd-hero-thumb-more:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
