/**
 * Phase 11 — Responsive pass
 * Breakpoints: 320 / 375 / 390 / 414 / 768 / 1024 / 1366 / 1440 / 1920
 * Mobile is designed intentionally — not a shrunk desktop.
 */

/* -------------------------------------------------------------------------- */
/* Global safety                                                              */
/* -------------------------------------------------------------------------- */

html {
	overflow-x: clip;
}

body {
	overflow-x: clip;
}

img,
svg,
video,
iframe {
	max-width: 100%;
	height: auto;
}

.fbs-container,
.fbs-widget__inner.fbs-container,
.elementor-section .fbs-container {
	width: 100%;
	max-width: var(--fbs-container);
	margin-inline: auto;
	padding-inline: var(--fbs-gutter);
	box-sizing: border-box;
}

.fbs-container-wide {
	max-width: var(--fbs-container-wide);
}

/* Sticky header + WP admin bar */
.admin-bar .fbs-header.is-sticky {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .fbs-header.is-sticky {
		top: 46px;
	}
}

body.fbs-nav-open {
	overflow: hidden;
}

/* -------------------------------------------------------------------------- */
/* Large desktop (1366+)                                                      */
/* -------------------------------------------------------------------------- */

@media (min-width: 1366px) {
	:root {
		--fbs-section-y: var(--fbs-space-5xl);
	}

	.fbs-hero .fbs-widget__heading {
		font-size: clamp(3rem, 4vw, 4rem);
	}
}

@media (min-width: 1440px) {
	.fbs-container,
	.fbs-widget__inner.fbs-container {
		padding-inline: 1.5rem;
	}
}

/* -------------------------------------------------------------------------- */
/* Tablet landscape / small laptop (≤1023)                                    */
/* -------------------------------------------------------------------------- */

@media (max-width: 1023px) {
	.fbs-hero {
		padding-bottom: 2.5rem;
	}

	.fbs-hero__content {
		padding-block: clamp(3.25rem, 8vw, 5.5rem) clamp(3.5rem, 7vw, 5rem);
	}

	.fbs-features--bar {
		margin-top: calc(var(--fbs-space-2xl) * -1);
	}

	.fbs-about--overlap .fbs-about__card {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.fbs-about__stage {
		grid-template-columns: 1fr;
	}

	.fbs-about__media {
		min-height: 280px;
		order: -1;
	}

	.fbs-location__body {
		grid-template-columns: 1fr;
	}

	.fbs-nearby__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fbs-cta--split .fbs-cta__inner {
		grid-template-columns: 1fr;
		justify-items: start;
		text-align: left;
	}

	.fbs-single-studio__layout {
		grid-template-columns: 1fr;
	}

	.fbs-gallery__layout {
		grid-template-columns: 1fr;
	}

	.fbs-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* -------------------------------------------------------------------------- */
/* Tablet portrait (≤767)                                                     */
/* -------------------------------------------------------------------------- */

@media (max-width: 767px) {
	:root {
		--fbs-gutter: 1rem;
		--fbs-header-height-mobile: 3.75rem;
	}

	.fbs-hero .fbs-widget__heading {
		font-size: clamp(1.85rem, 8vw, 2.5rem);
		line-height: 1.15;
	}

	.fbs-hero .fbs-widget__subtitle,
	.fbs-hero .fbs-subtitle {
		font-size: clamp(1.25rem, 5vw, 1.65rem);
	}

	.fbs-hero .fbs-widget__description {
		font-size: var(--fbs-fs-base);
	}

	.fbs-features--bar .fbs-features__shell {
		padding: var(--fbs-space-lg) var(--fbs-space-md);
		border-radius: var(--fbs-radius-lg);
	}

	.fbs-features--bar .fbs-icon-box__icon {
		width: 3.25rem;
		height: 3.25rem;
	}

	.fbs-about__card {
		padding: var(--fbs-space-lg);
	}

	.fbs-studio-cards__header,
	.fbs-nearby__header,
	.fbs-location__intro {
		text-align: left;
		margin-inline: 0;
	}

	.fbs-studio-cards__grid,
	.fbs-nearby__grid {
		grid-template-columns: 1fr;
	}

	.fbs-cta {
		padding-block: var(--fbs-space-2xl);
	}

	.fbs-cta .fbs-widget__heading {
		font-size: clamp(1.5rem, 6vw, 2rem);
	}

	.fbs-cta__inner .fbs-btn {
		width: 100%;
		justify-content: center;
	}

	.fbs-footer__grid {
		grid-template-columns: 1fr;
		gap: var(--fbs-space-xl);
	}

	.fbs-form-card {
		padding: var(--fbs-space-lg);
	}

	.fbs-gallery__nav {
		width: 2.5rem;
		height: 2.5rem;
	}

	.fbs-gallery__grid {
		grid-template-columns: 1fr;
	}

	.fbs-amenities__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fbs-contact-info__grid {
		grid-template-columns: 1fr;
	}

	.fbs-header__inner {
		gap: var(--fbs-space-sm);
		padding-inline: 0;
	}

	.fbs-header__logo img {
		max-height: 2.5rem;
	}
}

/* -------------------------------------------------------------------------- */
/* Large phones (≤414 / 390)                                                  */
/* -------------------------------------------------------------------------- */

@media (max-width: 414px) {
	:root {
		--fbs-gutter: 0.875rem;
		--fbs-section-y: var(--fbs-space-xl);
	}

	.fbs-features--bar .fbs-features__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--fbs-space-md);
	}

	.fbs-features--bar .fbs-icon-box__title {
		max-width: none;
		font-size: 0.7rem;
	}

	.fbs-about__features {
		grid-template-columns: 1fr;
	}

	.fbs-hero__actions .fbs-btn {
		width: 100%;
		justify-content: center;
	}

	.fbs-mobile-booking {
		font-size: var(--fbs-fs-sm);
		min-height: 3rem;
		padding: 0.75rem 1rem;
	}
}

/* -------------------------------------------------------------------------- */
/* Small phones (≤375)                                                        */
/* -------------------------------------------------------------------------- */

@media (max-width: 375px) {
	.fbs-hero__content {
		padding-block: 3rem 2.75rem;
	}

	.fbs-hero .fbs-widget__heading {
		font-size: 1.75rem;
	}

	.fbs-features--bar {
		margin-top: calc(var(--fbs-space-md) * -1);
		margin-bottom: var(--fbs-space-xl);
	}

	.fbs-studio-card__meta {
		gap: var(--fbs-space-xs);
	}

	.fbs-amenities__grid {
		grid-template-columns: 1fr;
	}
}

/* -------------------------------------------------------------------------- */
/* Tiny phones (≤320)                                                         */
/* -------------------------------------------------------------------------- */

@media (max-width: 320px) {
	:root {
		--fbs-gutter: 0.75rem;
	}

	.fbs-hero .fbs-widget__heading {
		font-size: 1.6rem;
	}

	.fbs-hero .fbs-widget__subtitle,
	.fbs-hero .fbs-subtitle {
		font-size: 1.15rem;
	}

	.fbs-btn {
		padding: 0.75rem 1rem;
		font-size: var(--fbs-fs-sm);
	}

	.fbs-features--bar .fbs-features__shell {
		padding: var(--fbs-space-md) var(--fbs-space-sm);
	}

	.fbs-about__card,
	.fbs-form-card,
	.fbs-cta .fbs-container {
		padding-inline: var(--fbs-space-md);
	}
}

/* -------------------------------------------------------------------------- */
/* Mobile booking CTA vs sticky booking form                                  */
/* -------------------------------------------------------------------------- */

@media (max-width: 781px) {
	body:has(.fbs-mobile-booking) {
		padding-bottom: 3.5rem;
	}

	body:has(.fbs-mobile-booking) .fbs-booking-cta.is-sticky-mobile {
		bottom: 3.25rem;
	}
}

/* -------------------------------------------------------------------------- */
/* Prefer reduced motion                                                      */
/* -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.fbs-studio-card,
	.fbs-gallery__grid-item img,
	.fbs-gallery__carousel-item img,
	.fbs-header {
		transition: none !important;
	}

	.fbs-studio-card:hover {
		transform: none;
	}
}
