/* Phone layouts: readable information panels and compact two-column collections. */
@media (max-width: 639px) {
    .ap-glass-content { width: calc(100% - 16px); margin: 12px auto 24px; border-radius: 18px; }
    .ap-glass-content > main { padding-left: 12px; padding-right: 12px; }
    .ap-glass-content > section,
    .ap-route-blog main > section,
    .ap-route-event main > section { padding-left: 12px; padding-right: 12px; }
    .ap-glass-content main > .grid { gap: 20px; }
    .ap-glass-content main > section + section { margin-top: 24px; }
    .ap-glass-content :is(h1,h2,h3,p,dd,li) { word-break: normal; overflow-wrap: break-word; }
    .ap-glass-content h1 { font-size: clamp(24px, 7vw, 30px); line-height: 1.45; letter-spacing: -.025em; }
    .ap-glass-content main > h2,
    .ap-glass-content section > h2 { font-size: 22px; line-height: 1.5; }
    .ap-glass-content :is(.prose,.about-prose,.page-content) { font-size: 14px; line-height: 1.85; }
    .ap-glass-content :is(.prose,.about-prose,.page-content) :is(p,li) { font-size: 14px; line-height: 1.85; }
    .ap-glass-content :is(.prose,.about-prose,.page-content) :is(img,iframe,video) { max-width: 100%; }
    .ap-glass-content :is(.prose,.page-content) table { display: block; max-width: 100%; overflow-x: auto; }
    .ap-glass-content main :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { min-width: 0; max-width: 100%; font-size: 16px; }
    .ap-glass-content form :is(button[type=submit],.tm-primary,.ticket-button,.event-button) { min-height: 44px; }

    .home-clean .home-main > * + * { margin-top: 32px; }
    .home-section-heading { gap: 12px; margin-bottom: 18px; }
    .home-section-heading h2, .about-section-head h2 { font-size: 21px; line-height: 1.5; letter-spacing: -.025em; }
    .home-view-all { padding: 8px 10px 8px 14px; gap: 8px; font-size: 11px; }
    .home-connections { padding-top: 12px; }
    .home-brand-sections { margin-top: 32px; }
    .home-brand-panel { padding: 10px 0; }
    .home-review { width: min(78vw, 300px); padding: 18px; }
    .home-review blockquote { font-size: 13px; line-height: 1.8; }
    .home-review__author strong, .home-review__author p { font-size: 12px; }
    .home-review__author { flex-wrap: nowrap; gap: 10px; }
    .about-team-grid .about-guide-info > div { display: block; }
    .about-team-grid .about-guide-info dt { display: block; font-size: 10px; line-height: 1.5; }
    .about-team-grid .about-guide-info dd { font-size: 12px; line-height: 1.6; }
    .about-team-grid .about-guide-role { line-height: 1.6; }
    .about-team-grid .about-details summary { font-size: 11px; line-height: 1.6; }
    .about-service-grid, .tm-why-grid,
    .trip-detail-layout .trip-detail-cards, .trip-detail-cards,
    .mobile-order-grid, .ticket-modes { grid-template-columns: minmax(0,1fr) !important; gap: 12px; }
    .about-service-grid > * { padding: 20px; }
    .about-service-grid h3, .tm-why-grid h3 { font-size: 16px; }
    .about-service-grid p, .tm-why-grid p { font-size: 13px; line-height: 1.85; }
    .about-main { padding-top: 20px; padding-bottom: 28px; }
    .about-lead { font-size: 14px; line-height: 1.85; }
    .about-photo, .about-photo > img { height: 220px; min-height: 220px; }
    .about-services, .about-team { margin-top: 28px; padding-top: 24px; }
    .about-direction-grid > div { font-size: 13px; }

    .tm-shell { padding-inline: 0; }
    .tailor-page { padding-top: 20px; }
    .tm-intro-block { padding: 20px 16px; margin-bottom: 20px; }
    .tm-intro-benefits { gap: 10px; flex-direction: column; }
    .tm-progress { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .tm-progress button { flex-direction: row; text-align: left; gap: 8px; padding: 10px; min-height: 52px; font-size: 11px; }
    .tm-progress i { display: none; }
    .tm-panel { padding: 14px 12px; }
    .tm-panel-title { gap: 10px; align-items: flex-start; }
    .tm-panel-title h2 { font-size: 18px; line-height: 1.5; }
    .tm-panel-description { font-size: 13px; }
    .tm-hint { max-width: 110px; font-size: 11px; }
    .tm-contact-fields, .tm-preferences { gap: 16px; }
    .tm-label, .tm-summary-facts { font-size: 12px; }
    .tm-panel-actions { flex-wrap: wrap; }
    .tm-panel-actions > span { max-width: none; width: 100%; }
    .tm-stop { flex-wrap: wrap; }
    .tm-stop-main { min-width: 0; flex: 1; }
    .tm-days { margin-left: 34px; }
    .tm-summary { padding: 18px; }
    .tm-why-grid article { padding: 20px; }

    .activities-page { padding-top: 20px; }
    .activities-hero { padding: 20px 16px; }
    .activities-hero-description { font-size: 13px; line-height: 1.85; }
    .activities-hero-visual { height: 220px; }
    .activities-category-intro { padding: 16px; }
    .activities-cta { padding: 20px !important; }
    .activities-cta > div:last-child { flex-direction: column; width: 100%; }
    .activities-cta a { width: 100%; text-align: center; }
    .activity-article { padding: 18px 14px; font-size: 14px; line-height: 1.85; }
    .activity-detail-hero > div { height: 280px; min-height: 280px; }
    .activity-detail-hero > div > div:last-child { padding: 18px; }
    .activity-detail-hero h1 { font-size: 25px; }

    .trip-detail-flow, .trip-detail-flow > .space-y-10 { gap: 24px; }
    .trip-detail-flow.space-y-10 > * + *, .trip-detail-flow .space-y-10 > * + * { margin-top: 24px; }
    .trip-detail-flow > div:first-child > .grid:first-child { gap: 8px; }
    .trip-detail-flow > div:first-child > .grid:first-child > div:first-child { height: 220px; border-radius: 16px; }
    .trip-detail-flow > div:first-child > .grid:first-child > div:last-child { flex-direction: row; gap: 8px; }
    .trip-detail-flow > div:first-child > .grid:first-child > div:last-child > div { width: 50%; height: 100px; border-radius: 12px; }
    .trip-detail-layout #trip-overview, .trip-detail-layout #trip-route,
    #trip-booking.trip-booking, .trip-detail-layout #trip-hotels { padding: 18px 14px; border-radius: 16px; }
    .trip-detail-layout :is(#trip-overview,#trip-route) :is(p,li) { font-size: 14px; line-height: 1.85; }
    .trip-detail-cards > * { padding: 16px; }
    .trip-detail-cards p { font-size: 13px; line-height: 1.8; }
    .trip-hotel-info { padding: 18px 14px; }
    .trip-hotel-heading { flex-wrap: wrap; }
    .trip-hotel-heading p { font-size: 12px; line-height: 1.7; }
    .trips-search-fields { gap: 12px; }
    .trips-list .trips-search { padding: 16px; }

    .ap-route-blog main > section { padding-top: 28px; padding-bottom: 28px; }
    .ap-route-blog main > section > .px-8 { padding-left: 4px; padding-right: 4px; }
    .ap-route-blog main > section > .grid { gap: 24px; }
    .ap-route-blog .prose { font-size: 14px; line-height: 1.85; }
    .ap-route-blog article > p { font-size: 14px; line-height: 1.85; padding-left: 12px; }
    .ap-route-blog main > section .text-lg { font-size: 14px; line-height: 1.8; }
    .ap-route-blog .mobile-blog-grid p { font-size: 12px; }
    .ap-route-blog main > section > .pt-32 { padding: 24px 12px; }
    .ap-route-event .event-catalog-intro { padding-top: 24px; padding-bottom: 24px; }
    .ap-route-event .event-catalog-description { font-size: 14px; line-height: 1.85; }
    .event-detail { padding-top: 20px; }
    .event-panel { padding: 18px 14px; }
    .event-panel p { font-size: 14px; line-height: 1.85; }
    .event-summary { display: flex; flex-direction: column; align-items: stretch; padding: 16px; }
    .event-summary .event-button { min-height: 44px; text-align: center; }
    .event-program > li { gap: 10px; }
    .event-related-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
    .event-related-card { display: block; }
    .event-related-card > img { height: 120px; min-height: 0; }
    .event-related-card > div { padding: 12px; }
    .event-related-card h3 { font-size: 13px; }
    .ticket-modes .ticket-mode-card { flex-direction: row; align-items: center; padding: 16px; }
    .tickets-main { padding-top: 20px; }
    .ticket-filters { padding: 14px; }
    .ticket-steps { flex-wrap: wrap; }
    .ticket-steps li { font-size: 12px; }
    #ticketModal { width: calc(100% - 20px); max-height: calc(100dvh - 24px); padding: 18px 14px; overflow-y: auto; }

    .ap-route-contact > .ap-glass-content > section,
    .ap-route-faqs > .ap-glass-content > section { padding: 28px 12px; }
    .ap-route-contact .p-8, .ap-route-contact .p-10,
    .ap-route-faqs .p-10, .page-content { padding: 20px 16px; }
    .ap-route-contact .gap-12 { gap: 24px; }
    .ap-route-contact .p-6 { padding: 16px; }
    .ap-route-contact .p-6 > .w-12 { width: 36px; height: 36px; }
    .ap-route-faqs .mt-20 { margin-top: 28px; }
    .ap-route-faqs .text-lg { font-size: 15px; line-height: 1.8; }
    .ap-route-page .ap-glass-content > main { padding-top: 28px; padding-bottom: 28px; gap: 24px; }
    .ap-route-page .page-content { font-size: 14px; line-height: 1.85; }
    .ap-route-page .p-8 { padding: 20px 16px; }
    .mobile-order-grid .text-xs { font-size: 12px; }
    .mobile-order-grid > .flex { flex-direction: row; gap: 12px; padding: 12px; }
    .mobile-order-grid > .flex > .w-32 { width: 80px; height: 90px; }
    .mobile-order-grid > .flex > div:not(.w-32) { padding: 0; min-width: 0; flex: 1; }
    .checkout-card { padding: 18px 14px; }
    .guide-profile-copy { padding: 18px 14px; }
    .ap-footer-inner { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 639px) {
    .ap-route-blog .ap-glass-content > main,
    .ap-route-event .ap-glass-content > main { padding-inline: 0; }
    .ap-route-event .event-detail { padding: 20px 12px 28px; }
    .ap-route-contact .ap-glass-content > section > .px-8,
    .ap-route-faqs .ap-glass-content > section > .px-8 { padding-inline: 4px; }
    .ap-route-contact .ap-glass-content > section > div > p { font-size: 14px; line-height: 1.85; }
    .faq-trigger { padding: 16px 12px; gap: 8px; }
    .faq-trigger > .flex { gap: 8px; }
    .faq-trigger .text-base { font-size: 14px; line-height: 1.65; }
    .faq-trigger .w-8 { width: 26px; height: 26px; font-size: 12px; }
    .faq-panel > div { padding: 0 16px 18px; font-size: 14px; line-height: 1.85; }
    .ap-route-login main { min-height: auto; padding-top: 20px; padding-bottom: 24px; }
    .ap-route-login main > .relative { padding: 20px 16px; border-radius: 20px; }
    .ap-route-hotel main .space-y-3 > p,
    .ap-route-destination main .space-y-3 > p,
    .trip-detail-layout .itin-desc { font-size: 14px; line-height: 1.85; }
    :is(.ap-route-hotel,.ap-route-destination) main .grid > .md\:col-span-7 { height: 220px; border-radius: 16px; }
    :is(.ap-route-hotel,.ap-route-destination) main .grid > .md\:col-span-5 { flex-direction: row; gap: 8px; }
    :is(.ap-route-hotel,.ap-route-destination) main .grid > .md\:col-span-5 > div { width: 50%; height: 100px; border-radius: 12px; }
    :is(.ap-route-hotel,.ap-route-destination) main .lg\:col-span-4 { padding: 18px 14px; border-radius: 18px; }
    :is(.ap-route-hotel,.ap-route-destination) main .rounded-full.px-6 { padding: 12px; border-radius: 16px; gap: 10px; }
    #siteFooter.ap-footer { padding-left: 16px; padding-right: 16px; }
    .ap-footer-inner { padding-inline: 0; }
}

/* Compact headings on phones; desktop typography stays unchanged. */
@media (max-width: 639px) {
    .home-section-heading { align-items: flex-start; }
}

/* Booking controls must not inherit text-field dimensions. */
#trip-booking .trip-buyer-options input[type=radio]{width:16px;height:16px;min-height:0;flex:0 0 16px;padding:0;border:0;border-radius:50%;box-shadow:none}
.restored-planner .planner-buyer-switch input[type=radio]{position:absolute;width:1px;height:1px;min-height:0;padding:0;opacity:0}
@media(max-width:767px){
    .ap-glass-content main,.ap-glass-content section,.trip-detail-content,.hotel-detail-content{min-width:0}
    .ap-glass-content form :is(fieldset,.grid>div){min-width:0}
    .ap-glass-content :is(img,video,iframe){max-width:100%}
    .uv-form,.uv-fields,.uv-card-copy{min-width:0}.uv-fields input{width:100%;box-sizing:border-box}
    .uv-heading{flex-wrap:wrap;gap:10px}.uv-points{white-space:nowrap}
    .trip-buyer-options label{font-size:12px;min-height:44px}
    #tripDepartureList{max-height:240px;overflow-y:auto;max-width:100%}
    #tripDepartureList button{gap:6px;white-space:normal}
    .planner-buyer-types label{min-width:0}.planner-buyer-types label span{overflow-wrap:break-word}
    .tm-panel-actions{justify-content:flex-end}.tm-panel-actions>span{width:auto;min-width:0;flex:1}
    .activities-cta>div:last-child{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;width:100%}
    .activities-cta a{width:auto;max-width:100%}
    .event-summary .event-button{align-self:flex-end;max-width:100%}
    #trip-booking form button[type=submit],#hotel-inquiry button[type=submit]{display:block;margin-left:auto}
    .customer-trip-history,.booking-item{min-width:0}.booking-item :is(h3,p,a){overflow-wrap:anywhere}
    #booking-filter-tabs{gap:8px}#booking-filter-tabs button{padding:8px 12px;min-height:40px}
    #surveyModal{width:calc(100% - 24px);max-height:calc(100dvh - 24px);overflow-y:auto}
}
@media(min-width:768px) and (max-width:1050px){
    .trip-detail-layout,.hotel-detail-layout{grid-template-columns:minmax(0,1fr) 300px;gap:16px}
    .trip-detail-layout #trip-booking,#hotel-inquiry.hotel-booking{padding:18px 14px;margin:0;max-width:none}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}

.ap-mobile-booking-launch[hidden]{display:none}
.ap-mobile-booking-launch{position:fixed;left:16px;right:86px;top:auto;bottom:calc(16px + env(safe-area-inset-bottom));z-index:70;min-height:44px;border:1px solid #b5d1e0;border-radius:12px;background:#21526d;color:#fff;padding:12px 14px;font:600 12px 'Comfortaa',sans-serif;box-shadow:0 5px 18px #123b5630;cursor:pointer}
.ap-mobile-booking-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(420px,calc(100% - 12px));height:100dvh;max-height:100dvh;max-width:none;padding:16px 12px calc(20px + env(safe-area-inset-bottom));border:0;border-radius:18px 0 0 18px;background:#f2f7fa;color:#21526d;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}
.ap-mobile-booking-dialog::backdrop{background:#123b5670}
.ap-mobile-booking-close{display:block;margin:0 0 14px auto;min-height:44px;padding:10px 14px;border:1px solid #cddfe9;border-radius:10px;background:#fff;color:#21526d;font:600 13px 'Comfortaa',sans-serif}
.ap-mobile-booking-dialog :is(#trip-booking,#hotel-inquiry){width:100%;max-width:none;margin:0}
.ap-mobile-booking-dialog :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]),textarea,select){min-width:0;max-width:100%;font-size:16px!important}
.ap-mobile-booking-dialog :is(h2,h3){font-size:19px;line-height:1.5}
.ap-mobile-booking-dialog .trip-buyer-options input[type=radio]{width:16px;height:16px;min-height:0}
@media(max-width:767px){#cwBtn{width:44px!important;height:44px!important;right:12px!important}#backToTop{width:40px!important;height:40px!important;right:14px!important}.cp-doc{flex-wrap:wrap}.cp-doc>div:last-child{justify-content:flex-end;margin-left:auto}}
.ap-mobile-booking-dialog .flatpickr-calendar{width:calc(100% - 24px);max-width:308px;box-sizing:border-box}
.ap-mobile-booking-dialog .flatpickr-innerContainer,.ap-mobile-booking-dialog .flatpickr-rContainer,.ap-mobile-booking-dialog .flatpickr-days{width:100%;min-width:0}
.ap-mobile-booking-dialog .dayContainer{width:100%;min-width:0;max-width:none;box-sizing:border-box}
.ap-mobile-booking-dialog .flatpickr-day{max-width:14.2857%;height:36px;line-height:36px}

.trip-buyer-options{display:flex;gap:8px;margin:12px 0}.trip-buyer-options label{display:flex;align-items:center;gap:8px;flex:1;min-width:0;min-height:44px;padding:10px;border:1px solid #d1dfe6;border-radius:12px;background:#fff;color:#21526d;font-size:12px;cursor:pointer}.trip-buyer-options label:has(input:checked){background:#e9f3f8;border-color:#21526d}.trip-buyer-options input[type=radio]{width:16px!important;height:16px!important;min-height:0!important;flex:0 0 16px;padding:0!important;accent-color:#21526d;box-shadow:none}.booking-company-fields{display:grid;gap:12px;margin-bottom:16px;border:0;min-width:0}.booking-company-fields[hidden],[data-buyer-details][hidden]{display:none}.booking-company-fields legend,[data-booking-contact-heading]{font-size:13px;font-weight:700;color:#21526d;margin:12px 0}.booking-company-fields label{display:grid;gap:6px;font-size:11px}.booking-company-fields input{width:100%;min-width:0;min-height:42px;padding:10px 12px;border:1px solid #d8e5ed;border-radius:11px;background:#fff;color:#21526d}.event-booking-form>[data-buyer-details]{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;border:0;padding:0;min-width:0}.event-booking-form>[data-buyer-details][hidden]{display:none}.event-booking-form .booking-company-fields,.event-booking-form [data-booking-contact-heading]{grid-column:1/-1}.hotel-reservation-form>[data-buyer-details]{display:grid;gap:14px;border:0;padding:0;min-width:0}.hotel-reservation-form>[data-buyer-details][hidden]{display:none}@media(max-width:639px){.event-booking-form>[data-buyer-details]{grid-template-columns:1fr}.booking-company-fields input{font-size:16px}}

@media(max-width:767px){body.ap-has-mobile-booking{padding-bottom:84px}}

/* A visible selected dot on every shared individual/company choice. */
.trip-buyer-options input[type=radio]{appearance:none!important;-webkit-appearance:none!important;box-sizing:border-box;border:2px solid #9db5c3!important;border-radius:50%!important;background:#fff!important;cursor:pointer;box-shadow:none!important}
.trip-buyer-options input[type=radio]:checked{border-color:#21526d!important;background:#21526d!important;box-shadow:inset 0 0 0 3px #fff!important}
.trip-buyer-options input[type=radio]:focus-visible{outline:2px solid #79afcc;outline-offset:3px}

/* Event catalog: keep category filters on one swipeable row and give event cards room on phones. */
@media(max-width:639px){
    .ap-route-event .event-catalog-intro{padding:24px 16px 18px}
    .ap-route-event .event-catalog-intro h1{font-size:25px!important;line-height:1.3!important;margin-bottom:12px}
    .ap-route-event .event-catalog-description{margin-top:10px;font-size:13px;line-height:1.7}
    .ap-route-event .event-catalog-intro>div:last-child{justify-content:flex-start;flex-wrap:nowrap;gap:8px;margin-top:18px!important;padding:0 2px 8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
    .ap-route-event .event-catalog-intro>div:last-child::-webkit-scrollbar{display:none}
    .ap-route-event .event-catalog-intro>div:last-child>a{flex:0 0 auto;min-height:38px;padding:9px 13px;font-size:11px}
    .ap-route-event main>section.px-8{padding-right:16px;padding-left:16px;padding-bottom:40px}
    .ap-route-event .mobile-event-grid{gap:12px}
    .ap-route-event .mobile-event-grid>.tl-card>.relative{height:150px;margin:6px;border-radius:12px}
    .ap-route-event .mobile-event-grid>.tl-card>div:not(.relative){padding:8px 10px 12px}
    .ap-route-event .mobile-event-grid>.tl-card h3{font-size:14px!important;line-height:1.5!important}
    .ap-route-event .mobile-event-grid>.tl-card p{font-size:11px!important;line-height:1.5}
}

.mobile-card-overlay{display:none}
/* Activity and destination catalogs share the image-overlay mobile card treatment. */
@media(max-width:767px){
    .ap-route-activities .activities-list .activity-card-photo,.ap-route-destinations .destinations-main .activity-card-photo{position:relative}
    .ap-route-activities .activities-list .mobile-card-overlay,.ap-route-activities .activities-list .activity-card-date,.ap-route-destinations .destinations-main .mobile-card-overlay,.ap-route-destinations .destinations-main .mobile-card-location{display:none!important}
    .ap-route-activities .activities-list .activity-card,.ap-route-destinations .destinations-main .activity-card{height:190px}
    .ap-route-activities .activities-list .activity-card-photo,.ap-route-destinations .destinations-main .activity-card-photo{height:100px!important;flex:0 0 100px}
    .ap-route-activities .activities-list .activity-card-content,.ap-route-destinations .destinations-main .activity-card-content{min-height:0;flex:1;padding:7px 10px!important;justify-content:space-between}
    .ap-route-activities .activities-list .activity-card-content>.activity-card-title,.ap-route-destinations .destinations-main .activity-card-content>.activity-card-title{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:2.6em;margin:0 0 3px!important;color:#1e4f6b;font-size:12px!important;line-height:1.35!important;font-weight:700}
    .ap-route-activities .activities-list .activity-card-content>span:last-child,.ap-route-destinations .destinations-main .activity-card-content>span:last-child{margin-top:auto!important;padding-top:0!important;border-top:0!important;font-size:10px!important;line-height:1.3!important;min-height:18px}
    .ap-route-activities .activities-list .activity-card-content>span:last-child>.material-symbols-outlined,.ap-route-destinations .destinations-main .activity-card-content>span:last-child>.material-symbols-outlined{width:22px;height:22px;font-size:14px}
}
