@charset "UTF-8";

/* Reading information is distinct from decorative English and image credits. */
:root {
    --reading-body: 18px;
    --reading-detail: 16px;
    --reading-label: 16px;
    --reading-ink: #343e36;
}
body { font-size: var(--reading-body); }
.panda-names { color: var(--green); font-weight: 700; }
.panda-names > span { white-space: nowrap; }
.profile .profile-text,
.profile .profile-tour-text,
.destinations .destination-card .destination-copy > p:not(.destination-en):not(.destination-highlight),
.past-tour .past-tour-copy > p:not(.handwritten):not(.eyebrow),
.itinerary .day-copy > p {
    font-size: var(--reading-body);
    line-height: 1.95;
    color: var(--reading-ink);
}
.section-heading > p:last-child,
.destinations .destinations-heading > p:last-child,
.closing-cta .closing-inner > p:not(.eyebrow):not(.closing-note) {
    font-size: var(--reading-body);
    line-height: 1.85;
    color: var(--reading-ink);
}
.profile .profile-role { font-size: 20px; line-height: 1.7; }
.profile .text-link { font-size: var(--reading-body); line-height: 1.7; }
.destinations .destination-tags li {
    padding: 7px 14px;
    font-size: var(--reading-label);
    line-height: 1.6;
}
.destinations .status-note p,
.itinerary .itinerary-notes,
.tour-info .info-footnote {
    font-size: var(--reading-detail);
    line-height: 1.9;
    color: #465148;
}
.itinerary .day-copy h3 { line-height: 1.6; }
.itinerary .day-block time { font-size: 20px; line-height: 1.6; }
.itinerary .day-block small { font-size: 16px; }
.itinerary .day-meta span { font-size: 15px; line-height: 1.6; padding: 4px 10px; }
.itinerary .itinerary-notes p + p { margin-top: 8px; }
.tour-info .info-grid dt { font-size: 17px; line-height: 1.65; color: #344f3d; }
.tour-info .info-grid dd { font-size: 18px; line-height: 1.8; color: var(--reading-ink); }
.tour-info .info-footnote { text-align: left; }
.past-tour .past-tour-action .button,
.closing-cta .closing-actions .button { font-size: 18px; min-height: 56px; }
.closing-cta .closing-actions .button-light { font-size: 17px; }
.floating-contact { font-size: 16px; min-height: 48px; }

@media (min-width: 1024px) and (min-height: 700px) {
    .hero-v3 .hero-v3-tags span {
        width: auto;
        min-height: 30px;
        padding-inline: 8px;
        font-size: max(16px, calc(18 * var(--hero-unit)));
        letter-spacing: .02em;
    }
    .hero-v3 .hero-v3-actions a {
        min-height: 44px;
        padding-inline: calc(14 * var(--hero-unit));
        gap: 6px;
        font-size: max(17px, calc(21 * var(--hero-unit)));
        letter-spacing: .02em;
    }
    .hero-v3 .hero-v3-actions .btn-dark { width: max(210px, calc(318 * var(--hero-unit))); }
    .hero-v3 .hero-v3-actions a > span { white-space: nowrap; }
}
@media (min-width: 1024px) and (max-width: 1100px) and (min-height: 700px) {
    .hero-v3 .hero-v3-actions { gap: 8px; }
}

@media (max-width: 767px) {
    .hero-v3 .hero-v3-subtitle { font-size: 17px; line-height: 1.8; white-space: normal; letter-spacing: .02em; }
    .hero-v3 .hero-v3-tags { flex-wrap: wrap; gap: 8px; }
    .hero-v3 .hero-v3-tags span { font-size: 15px; min-height: 36px; height: auto; padding: 6px 10px; line-height: 1.5; letter-spacing: 0; }
    .hero-v3 .hero-v3-actions { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .hero-v3 .hero-v3-actions a { font-size: 17px; height: auto; min-height: 52px; padding: 14px 20px; line-height: 1.5; }
}

@media (max-width: 640px) {
    :root { --reading-body: 17px; --reading-label: 15px; }
    .profile .profile-role { font-size: 18px; }
    .destinations .destinations-heading > p:last-child { max-width: 340px; padding: 0 4px; }
    .destinations .status-note { gap: 12px; padding: 16px 12px; }
    .itinerary .itinerary-row { grid-template-columns: 40px 24px minmax(0, 1fr); gap: 12px; padding: 24px 0; }
    .itinerary .day-block {
        grid-column: 1 / 3;
        grid-row: 1;
        display: flex;
        align-items: baseline;
        gap: 8px;
        width: max-content;
        border: 0;
    }
    .itinerary .day-block > span { writing-mode: horizontal-tb; }
    .itinerary .day-block time { font-size: 18px; }
    .itinerary .day-icon { grid-column: 3; grid-row: 1; justify-self: end; }
    .itinerary .day-copy { grid-column: 1 / -1; grid-row: 2; min-width: 0; }
    .itinerary .day-copy h3 { font-size: 21px; }
    .itinerary .day-meta { gap: 8px; margin-top: 12px; }
    .itinerary .itinerary-notes { margin-left: 0; }
    .tour-info .info-grid > div { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 8px; }
    .tour-info .info-grid dt,
    .tour-info .info-grid dd { padding: 0; border-right: 0; }
    .tour-info .info-grid dt { font-size: 16px; }
    .tour-info .info-grid dd { font-size: 18px; }
    .past-tour .past-tour-action .button,
    .closing-cta .closing-actions .button { font-size: 17px; }
    .closing-cta .closing-actions .button-light { font-size: 17px; min-height: 48px; padding-inline: 0; gap: 6px; }
    .closing-cta .closing-report-icon { width: 16px; }
    .closing-cta .button-light .closing-arrow { margin-left: 0; }
    .closing-cta .closing-inner > p:not(.eyebrow):not(.closing-note) { max-width: 340px; text-wrap: pretty; }
}
