/* ==========================================================================
   RESPONSIVE — Mobile-first breakpoints: 480 / 768 / 1024 / 1280
   ========================================================================== */

/* ---- Tablet and below (max 1024px) ---- */
@media (max-width: 1024px) {
	/* Layout */
	:root {
		--header-height: 64px;
	}

	/* Hide desktop nav + header CTA, show hamburger */
	.primary-nav,
	.header-cta {
		display: none;
	}

	.nav-toggle {
		display: flex;
		margin-left: auto;
	}

	/* Footer */
	.footer-widget-area {
		grid-template-columns: 1fr 1fr;
	}

	.footer-default-info {
		grid-template-columns: 1fr;
		gap: var(--gap-md);
	}

	/* Amenities: 2 columns */
	.amenities-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Location: stack */
	.location-layout {
		grid-template-columns: 1fr;
		gap: var(--gap-lg);
	}

	.location-map {
		aspect-ratio: 16 / 9;
	}

	/* Reviews: 2 cards visible */
	.reviews-carousel .review-card {
		flex: 0 0 calc(50% - 0.5rem);
	}

	/* Gallery mosaic: collapse to 2 columns */
	.gallery-mosaic {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 260px 260px 260px;
	}
	.mosaic-tile--1 {
		grid-column: 1 / 3;
		grid-row: 1;
	}
	.mosaic-tile--2 { grid-column: 1; grid-row: 2; }
	.mosaic-tile--3 { grid-column: 2; grid-row: 2; }
	.mosaic-tile--4 { grid-column: 1; grid-row: 3; }
	.mosaic-tile--5 { grid-column: 2; grid-row: 3; }

	/* Gallery overlay strip smaller */
	.strip-thumb {
		width: 60px;
		height: 44px;
	}
}

/* ---- Tablet portrait and below (max 768px) ---- */
@media (max-width: 768px) {
	/* Typography */
	h1 { font-size: var(--text-3xl); }
	h2 { font-size: var(--text-2xl); }
	h3 { font-size: var(--text-xl); }

	/* Hero */
	.hero-content {
		text-align: left;
		padding-bottom: 5rem;
	}

	.hero-eyebrow { margin-bottom: 0.75rem; }

	.hero-sub {
		margin-left: 0;
		margin-right: 0;
		max-width: 100%;
	}

	.hero-actions {
		justify-content: flex-start;
	}

	/* Amenities: still 2 cols, just narrower padding */
	.amenity-item {
		padding: 1.25rem 1rem;
	}

	/* Reviews: 1 card visible, peek at next */
	.reviews-carousel .review-card {
		flex: 0 0 85vw;
	}

	.reviews-carousel-footer {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	/* Posts grid */
	.posts-grid {
		grid-template-columns: 1fr;
	}

	/* Footer */
	.footer-widget-area {
		grid-template-columns: 1fr;
	}
}

/* ---- Mobile (max 480px) ---- */
@media (max-width: 480px) {
	:root {
		--section-pad: 3rem;
		--container-pad: 1rem;
	}

	/* Amenities: 1 column on very small screens */
	.amenities-grid {
		grid-template-columns: 1fr;
	}

	/* Gallery mosaic: single column stack on mobile */
	.gallery-mosaic {
		grid-template-columns: 1fr;
		grid-template-rows: 260px 200px 200px 200px 200px;
	}
	.mosaic-tile--1,
	.mosaic-tile--2,
	.mosaic-tile--3,
	.mosaic-tile--4,
	.mosaic-tile--5 {
		grid-column: 1;
		grid-row: auto;
	}
	/* Hide tiles 3–5 on very small screens, show "view all" button instead */
	.mosaic-tile--3,
	.mosaic-tile--4,
	.mosaic-tile--5 {
		display: none;
	}
	.mosaic-view-all-mobile {
		display: block;
		margin: 0.75rem auto;
		width: calc(100% - 2rem);
	}

	/* Overlay viewer: tighter padding */
	.gallery-overlay__viewer {
		padding: 0 44px;
	}
	.gallery-overlay__prev { left: 4px; }
	.gallery-overlay__next { right: 4px; }

	/* Hero tweaks */
	.hero-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.hero-actions .btn {
		text-align: center;
		justify-content: center;
	}

	/* Lightbox nav on small screens */
	.lightbox-prev { left: 0.5rem; }
	.lightbox-next { right: 0.5rem; }

	/* Buttons */
	.btn-lg {
		padding: 0.875rem 1.75rem;
		font-size: var(--text-sm);
	}

	/* Footer */
	.footer-default-info {
		gap: var(--gap-md);
	}
}

/* ---- Large screens (min 1280px) ---- */
@media (min-width: 1280px) {
	.amenities-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.hero-media {
		transform: none !important;
		transition: none !important;
	}

	.js-fade-up,
	.js-stagger > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* ---- Print ---- */
@media print {
	.site-header,
	.site-footer,
	.nav-toggle,
	.mobile-nav-drawer,
	.mobile-nav-overlay,
	.hero-scroll-hint,
	.section-booking {
		display: none !important;
	}
}
