/**
 * Platform mobile adaptation (phones 320–767, tablets 768–1023).
 * Loaded after responsive.css. UI only — no per-device hacks.
 *
 * Tokens: --cwb-bp-phone / --cwb-bp-tablet / --cwb-tap in caribico-foundation.css.
 * Hamburger chrome stays at 1100px (existing tests + tablet landscape).
 */

/* —— Contain page width; 16px gutters —— */
@media (max-width: 1023px) {
	html:has(body.caribico-platform-page),
	body.caribico-platform-page {
		overflow-x: clip;
	}
	body.caribico-platform-page .caribico-platform-shell,
	body.caribico-platform-page .caribico-wb-app,
	body.caribico-platform-page .cwb-platform-main {
		max-width: 100%;
		box-sizing: border-box;
	}
	.caribico-wb-app[data-view],
	.caribico-tr-search-app,
	.caribico-tr-booking-app {
		padding-left: var(--cwb-f-gutter, 16px) !important;
		padding-right: var(--cwb-f-gutter, 16px) !important;
	}
}

html.cwb-mobile-nav-lock,
html.cwb-mobile-nav-lock body {
	overflow: hidden !important;
	overscroll-behavior: none;
}
html.cwb-mobile-nav-lock body.cwb-mobile-nav-open {
	position: fixed;
	width: 100%;
	left: 0;
	right: 0;
}

/* —— Phones: type, tap, wrap, single column —— */
@media (max-width: 767px) {
	body.caribico-platform-page .cwb-platform-main {
		font-size: var(--cwb-fs-body-mobile, 16px);
		line-height: var(--cwb-lh-mobile, 1.5);
	}

	body.caribico-platform-page h1 {
		font-size: clamp(20px, 6vw, 28px);
		line-height: 1.25;
		overflow-wrap: anywhere;
	}
	body.caribico-platform-page h2 {
		font-size: clamp(18px, 5vw, 22px);
		line-height: 1.3;
		overflow-wrap: anywhere;
	}
	body.caribico-platform-page h3 {
		font-size: clamp(16px, 4.5vw, 18px);
		line-height: 1.35;
		overflow-wrap: anywhere;
	}

	body.caribico-platform-page p,
	body.caribico-platform-page li,
	body.caribico-platform-page td,
	body.caribico-platform-page dd,
	body.caribico-platform-page .cwb-booking-hotel-name,
	body.caribico-platform-page .cwb-booking-guest-name,
	body.caribico-platform-page .caribico-wb-hotel-name,
	body.caribico-platform-page a {
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	body.caribico-platform-page input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
	body.caribico-platform-page select,
	body.caribico-platform-page textarea {
		font-size: 16px !important;
		line-height: 1.4 !important;
		min-height: var(--cwb-tap, 44px);
		max-width: 100%;
		box-sizing: border-box;
		scroll-margin-bottom: 128px;
	}
	body.caribico-platform-page textarea {
		min-height: 88px;
	}

	body.caribico-platform-page .caribico-wb-btn,
	body.caribico-platform-page .cwb-c-btn,
	body.caribico-platform-page .cwb-search-submit,
	body.caribico-platform-page .cwb-auth-submit,
	body.caribico-platform-page .cwb-mobile-nav-toggle,
	body.caribico-platform-page .cwb-mobile-nav-close,
	body.caribico-platform-page .cwb-booking-detail-close,
	body.caribico-platform-page #cwb-confirm-booking-btn,
	body.caribico-platform-page #caribico-tr-booking-continue {
		min-height: var(--cwb-tap, 44px) !important;
		min-width: var(--cwb-tap, 44px);
	}

	.cwb-mobile-nav-section-label,
	.cwb-guest-label,
	.cwb-booking-guest-panel .caribico-wb-field label,
	.cwb-calendar-toolbar p,
	.cwb-room-cancellation-label,
	.cwb-special-requests summary {
		font-size: var(--cwb-fs-min, 12px) !important;
		line-height: 1.4 !important;
	}

	#cwb-booking-detail .cwb-bd-actions-row button.cwb-bd-action-btn {
		min-height: var(--cwb-tap, 44px) !important;
		height: auto !important;
		max-height: none !important;
		padding: 10px 14px !important;
		font-size: 12px !important;
		line-height: 1.3 !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.caribico-wb-hotel-card,
	.caribico-wb-hotel-card.is-compact,
	.cwb-workspace-card,
	.cwb-room-row {
		grid-template-columns: 1fr !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	.caribico-wb-hotel-thumb,
	.caribico-wb-hotel-card.is-compact .caribico-wb-hotel-thumb {
		max-width: none !important;
		width: 100% !important;
		aspect-ratio: 16 / 9;
		min-height: 0 !important;
		height: auto !important;
	}
	.caribico-wb-hotel-thumb img,
	.cwb-hotel-image-placeholder,
	.cwb-hotel-summary-image,
	.cwb-gallery-tile img,
	.cwb-booking-summary-card > img {
		width: 100% !important;
		height: 100% !important;
		max-width: 100%;
		object-fit: cover !important;
	}
	.caribico-wb-hotel-price,
	.cwb-room-price {
		grid-column: 1 / -1 !important;
		width: 100% !important;
	}
	.caribico-wb-hotel-price .caribico-wb-btn,
	.cwb-search-submit,
	.cwb-field-search-submit .cwb-search-submit {
		width: 100% !important;
	}

	.cwb-search-row-primary,
	.cwb-search-row-meta,
	.cwb-booking-top-fields,
	.cwb-guest-row {
		grid-template-columns: 1fr !important;
	}
	.cwb-guest-label {
		grid-column: 1 / -1 !important;
		white-space: normal !important;
	}

	.cwb-search-row-primary input,
	.cwb-search-row-primary select,
	.cwb-search-row-primary .cwb-field-button,
	.cwb-search-shell .caribico-wb-field input,
	.cwb-search-shell .caribico-wb-field select,
	.cwb-search-grid input,
	.cwb-search-grid select,
	.cwb-search-grid .cwb-field-button {
		height: auto !important;
		min-height: var(--cwb-tap, 44px) !important;
		max-height: none !important;
		font-size: 16px !important;
	}

	.cwb-booking-form-layout,
	.caribico-tr-booking .cwb-booking-form-layout,
	.caribico-tr-booking .caribico-tr-booking-layout {
		grid-template-columns: 1fr !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	.cwb-booking-summary-column,
	.caribico-tr-booking .caribico-tr-summary-card {
		order: 2 !important;
		position: sticky !important;
		bottom: 0;
		z-index: 40;
		width: 100%;
		background: #fff;
		padding-bottom: max(12px, env(safe-area-inset-bottom));
		box-shadow: 0 -8px 24px rgba(16, 24, 40, 0.1);
	}
	.cwb-booking-guest-panel {
		order: 1 !important;
	}
	.cwb-booking-guest-panel input,
	.cwb-booking-guest-panel select,
	.cwb-booking-guest-panel textarea,
	.caribico-tr-booking .caribico-wb-field input,
	.caribico-tr-booking .caribico-wb-field select {
		font-size: 16px !important;
		min-height: var(--cwb-tap, 44px) !important;
		height: auto !important;
	}
	.cwb-booking-final-actions,
	.caribico-tr-booking .cwb-booking-final-actions {
		width: 100%;
	}
	#cwb-confirm-booking-btn,
	#caribico-tr-booking-continue,
	.cwb-booking-final-actions .caribico-wb-btn {
		width: 100% !important;
	}
	#cwb-confirm-booking-btn:disabled,
	#caribico-tr-booking-continue:disabled,
	.caribico-wb-btn.is-processing:disabled {
		opacity: 0.65;
		cursor: wait;
	}

	.cwb-booking-summary-card h3,
	.cwb-booking-stay-line,
	.cwb-booking-room-line,
	.cwb-booking-summary-card dl,
	.cwb-booking-summary-card dl div,
	.cwb-clx-row {
		font-size: 12px !important;
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: clip !important;
		overflow-wrap: anywhere;
	}

	.cwb-booking-property strong,
	.cwb-booking-property p,
	.cwb-booking-card dd {
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: clip !important;
	}

	.cwb-request-table,
	.cwb-request-table--structured,
	.cwb-br-table {
		min-width: 0 !important;
	}
	.cwb-request-table-wrap,
	.cwb-br-table-wrap,
	.cwb-finance-table-wrap,
	.cwb-ops-table-scroll {
		display: block;
		width: 100%;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	[class*="modal"],
	.cwb-booking-detail,
	#cwb-booking-detail,
	.cwb-gallery-lightbox,
	.cwb-workspace-ambiguous-panel,
	.cwb-auth-modal-dialog,
	.cwb-date-range-panel {
		max-width: calc(100vw - 32px) !important;
		max-height: min(var(--cwb-vv-height, 100dvh), 100dvh) !important;
		box-sizing: border-box !important;
	}
	.cwb-booking-detail-close,
	.cwb-gallery-lightbox-close,
	#cwb-booking-detail .cwb-bd-close {
		position: sticky;
		top: 0;
		z-index: 6;
		min-width: var(--cwb-tap, 44px) !important;
		min-height: var(--cwb-tap, 44px) !important;
	}

	.caribico-tr-passenger-row,
	.caribico-tr-booking .cwb-guest-row.caribico-tr-passenger-row,
	.caribico-tr-flight-grid {
		grid-template-columns: 1fr !important;
	}

	.cwb-mobile-nav {
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	.cwb-mobile-nav-link.is-active,
	.cwb-platform-nav a.is-active {
		font-weight: 700;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.cwb-booking-form-layout,
	.caribico-tr-booking .cwb-booking-form-layout,
	.caribico-tr-booking .caribico-tr-booking-layout {
		grid-template-columns: 1fr !important;
	}
	body.caribico-platform-page input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
	body.caribico-platform-page select,
	body.caribico-platform-page textarea {
		font-size: 16px !important;
	}
}
