/* Atelier Kuroi — responsive.css */

@media (max-width: 768px) {
	body::before {
		opacity: 0.012;
		background-size: 160px 160px;
	}

	.video-hero--luxe {
		min-height: clamp(480px, 92vh, 780px);
		min-height: clamp(480px, 92svh, 780px);
		min-height: clamp(480px, 92dvh, 780px);
		align-items: flex-end;
	}

	.hero-content--luxe {
		padding-bottom: clamp(3rem, 12vw, 4.5rem);
	}

	.hero-content--luxe .eyebrow::before,
	.hero-content--luxe .eyebrow::after {
		width: clamp(18px, 5vw, 32px);
	}

	.hero-content--luxe h1 {
		font-size: clamp(2.15rem, 9vw, 3.4rem);
	}

	.hero-tagline {
		font-size: clamp(1rem, 4.2vw, 1.1rem);
		margin-bottom: var(--space-lg);
		line-height: 1.65;
		color: rgba(234, 225, 210, 0.8);
	}

	.cta-main--luxe {
		width: 100%;
		max-width: 16rem;
		min-height: 48px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.cta-soft {
		min-height: 44px;
		line-height: 1.4;
		display: inline-flex;
		align-items: center;
	}

	.equip-zones--editorial {
		grid-template-columns: 1fr;
	}

	.equip-section--editorial,
	.essentials-section,
	.location-section,
	.rules-teaser-section {
		padding-top: var(--space-2xl);
		padding-bottom: var(--space-2xl);
	}

	.intro-split .lead {
		font-size: clamp(0.98rem, 3.8vw, 1.06rem);
		line-height: 1.85;
	}

	.intro-split .lead--secondary {
		display: none;
	}

	.intro-stats {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr 1fr;
	}

	.stat-box {
		padding: var(--space-md) var(--space-sm);
		min-height: 6.25rem;
	}

	.stat-num {
		font-size: clamp(1.5rem, 6vw, 2rem);
	}

	.section-divider,
	.sep {
		padding: var(--space-lg) var(--space-md);
		max-width: min(22rem, 82vw);
		gap: 0.65rem;
	}
	.section-divider::before,
	.section-divider::after,
	.sep::before,
	.sep::after {
		max-width: 5.5rem;
	}

	.resa-section--luxe {
		padding-top: var(--space-3xl);
		padding-bottom: var(--space-3xl);
	}

	.galerie-mosaic--preview,
	.galerie-mosaic--full {
		grid-template-columns: 1fr;
		grid-template-areas:
			"a"
			"b"
			"c"
			"d"
			"e"
			"f";
		max-height: none;
		gap: 0.65rem;
		height: auto;
		grid-template-rows: none;
	}

	.galerie-mosaic--full {
		grid-template-areas:
			"a"
			"b"
			"c"
			"d"
			"e"
			"f"
			"g";
	}

	.galerie-mosaic .mosaic-cell,
	.galerie-mosaic .photo-cell {
		aspect-ratio: 4 / 3;
		max-height: 80vh;
		min-height: 0;
		height: auto;
	}

	.hero-content {
		padding: var(--space-md) var(--space-sm);
	}

	h1 .hero-subtitle,
	h1 .kanji {
		font-size: 0.48em;
		letter-spacing: 0.18em;
		margin-top: 0.45em;
	}

	.hero-tagline {
		letter-spacing: 0.16em;
		line-height: 1.95;
		margin-bottom: var(--space-lg);
	}

	.hero-scroll {
		bottom: var(--space-lg);
	}

	.hero--photo .video-container .hero-poster--photo {
		object-position: center 40%;
		filter: brightness(0.72) saturate(0.66) contrast(1.1);
	}

	.hero--photo .video-overlay {
		background: linear-gradient(to bottom, rgba(0, 0, 0, 0.62), rgba(0, 0, 0, 0.88));
	}

	.intro-split {
		grid-template-columns: 1fr;
		gap: var(--space-2xl);
		padding: var(--space-2xl) var(--space-md);
	}

	.equip-zones {
		grid-template-columns: 1fr;
	}

	.galerie-grid:not(.galerie-grid--immersive) {
		grid-template-columns: 1fr 1fr;
		grid-auto-rows: minmax(175px, auto);
		gap: 2px;
	}

	.galerie-grid--immersive {
		gap: clamp(1.1rem, 4vw, 1.75rem);
	}

	.galerie-grid--immersive .photo-cell,
	.galerie-grid--immersive .photo-cell img,
	.galerie-grid--immersive .photo-cell .gallery-photo {
		min-height: clamp(220px, 52vw, 380px);
		max-height: 65vh;
	}

	.galerie-grid:not(.galerie-grid--immersive) .photo-cell.wide {
		grid-column: span 1;
	}

	.zone {
		padding: var(--space-xl) var(--space-md);
	}

	.avis-card {
		padding: var(--space-lg) var(--space-md);
	}

	.avis-text {
		font-size: clamp(1.06rem, 3.8vw, 1.14rem);
		line-height: 1.82;
	}

	.livreor-section,
	.reviews-section,
	.ambiances-section,
	.equip-section,
	.galerie-section,
	.resa-section,
	.partners-section {
		padding-left: var(--space-md);
		padding-right: var(--space-md);
	}

	.partners-section {
		padding-top: clamp(2.75rem, 8vw, 3.75rem);
		padding-bottom: clamp(2.75rem, 8vw, 3.75rem);
	}

	.partners-inner {
		gap: clamp(1.1rem, 3.5vw, 1.5rem);
	}

	.partners-grid {
		grid-template-columns: 1fr;
		gap: clamp(1.75rem, 6vw, 2.5rem);
	}

	.partner-logo {
		width: 180px;
		max-width: 180px;
	}

	.partner-logo-text {
		font-size: clamp(1.45rem, 5.5vw, 1.85rem);
		letter-spacing: 0.05em;
	}

	.partner-description {
		font-size: clamp(0.86rem, 3.2vw, 0.9rem);
		line-height: 1.7;
		padding: 0 var(--space-xs);
	}

	.price-note--hero {
		align-items: center;
		text-align: center;
		max-width: 22rem;
		margin-left: auto;
		margin-right: auto;
	}

	.resa-section {
		padding-top: var(--space-3xl);
		padding-bottom: var(--space-3xl);
	}

	.site-footer {
		padding: var(--space-2xl) var(--space-md) var(--space-xl);
	}

	.site-footer::before {
		margin-bottom: var(--space-xl);
	}

	.footer-links {
		flex-direction: column;
		align-items: center;
		gap: var(--space-md);
		padding: var(--space-lg) var(--space-sm);
	}

	.footer-logo {
		letter-spacing: 0.32em;
	}

	.footer-sub {
		letter-spacing: 0.24em;
		line-height: 2;
		padding: 0 var(--space-sm);
	}

	.footer-copy {
		padding: 0 var(--space-sm);
	}
}

@media (max-width: 480px) {
	.galerie-grid:not(.galerie-grid--immersive) {
		grid-template-columns: 1fr;
		grid-auto-rows: minmax(240px, auto);
	}

	.galerie-grid--immersive .photo-cell,
	.galerie-grid--immersive .photo-cell img,
	.galerie-grid--immersive .photo-cell .gallery-photo {
		min-height: clamp(200px, 58vw, 340px);
		object-position: var(--photo-focus, center center);
	}

	.photo-cell,
	.photo-cell img,
	.photo-cell .gallery-photo,
	.photo-ph {
		min-height: 200px;
	}

	.resa-cta-big {
		padding: 1.35rem var(--space-md);
		letter-spacing: 0.22em;
		width: 100%;
		max-width: 20rem;
	}

	.hero-ctas {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: 18rem;
		margin: 0 auto;
	}

	.cta-main,
	.cta-ghost {
		text-align: center;
		min-height: 48px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.resa-cta-big {
		min-height: 52px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.trust-bar {
		padding: var(--space-md) var(--space-sm);
		gap: var(--space-md);
	}

	.trust-item {
		font-size: clamp(0.66rem, 3vw, 0.7rem);
		letter-spacing: 0.12em;
	}

	.hero-ctas--luxe {
		width: 100%;
		max-width: 18rem;
		margin-left: auto;
		margin-right: auto;
	}

	.hero-ctas--luxe .cta-soft {
		width: 100%;
		justify-content: center;
		text-align: center;
	}

	.galerie-mosaic .mosaic-cell,
	.galerie-mosaic .photo-cell {
		aspect-ratio: 4 / 3;
		max-height: 82vh;
		min-height: 0;
	}

	.page-galerie .galerie-grid--full .photo-cell:nth-child(3n),
	.page-galerie .galerie-grid--full .photo-cell:nth-child(3n+2) {
		padding-left: 0;
		padding-right: 0;
	}

	.essential-card {
		padding: var(--space-md) var(--space-sm);
	}

	.item-name {
		font-size: clamp(0.86rem, 3.4vw, 0.92rem);
	}

	.item-desc {
		font-size: clamp(0.8rem, 3vw, 0.86rem);
		line-height: 1.68;
	}
}

@media (max-width: 430px) {
	.cta-main--luxe,
	.resa-cta-big,
	.resa-cta-big--luxe {
		letter-spacing: 0.18em;
		padding-left: 1.15rem;
		padding-right: 1.15rem;
	}

	.nav-menu .nav-resa {
		letter-spacing: 0.24em;
		padding: 0.85rem 1.65rem;
	}

	.nav-resa-mobile {
		letter-spacing: 0.16em;
		padding-left: 0.7rem;
		padding-right: 0.7rem;
		font-size: 0.58rem;
	}

	.resa-note {
		gap: var(--space-sm);
		font-size: clamp(0.66rem, 3.2vw, 0.72rem);
	}

	.trust-bar--compact {
		gap: var(--space-sm);
	}
}

/* Navigation mobile / tablette — hamburger sous 1360 px (entrée Avis + zoom). */
@media (max-width: 1359px) {
	.site-nav {
		padding:
			max(1.1rem, env(safe-area-inset-top))
			max(var(--space-md), env(safe-area-inset-right))
			1.1rem
			max(var(--space-md), env(safe-area-inset-left));
	}

	.nav-resa-mobile {
		display: inline-flex;
	}

	.nav-toggle {
		display: flex;
		position: relative;
		z-index: 10002;
	}

	.site-nav:has(.nav-menu.is-open) {
		z-index: 10001;
	}

	.nav-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 10000;
		background: rgba(5, 5, 4, 0.55);
		border: 0;
		padding: 0;
		cursor: pointer;
	}

	.nav-backdrop[hidden] {
		display: none;
	}

	.nav-menu {
		display: none;
		position: fixed;
		inset: 0;
		top: 0;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: var(--space-xl);
		background: var(--noir);
		z-index: 10001;
		padding:
			max(var(--space-4xl), env(safe-area-inset-top))
			max(var(--space-md), env(safe-area-inset-right))
			max(var(--space-4xl), env(safe-area-inset-bottom))
			max(var(--space-md), env(safe-area-inset-left));
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.nav-menu.is-open {
		display: flex;
	}

	.nav-menu-header {
		display: block;
		position: absolute;
		top: max(var(--space-md), env(safe-area-inset-top));
		right: max(var(--space-md), env(safe-area-inset-right));
		margin: 0;
		padding: 0;
	}

	.admin-bar .nav-menu-header {
		top: calc(32px + max(var(--space-md), env(safe-area-inset-top)));
	}

	.nav-close {
		display: inline-flex;
	}

	.nav-menu a {
		font-family: var(--font-serif);
		font-size: clamp(1.12rem, 4vw, 1.35rem);
		font-weight: 300;
		font-style: italic;
		letter-spacing: 0.12em;
		text-transform: none;
		color: rgba(240, 235, 228, 0.84);
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}

	.nav-menu a:hover,
	.nav-menu a:focus-visible {
		color: var(--blanc-soft);
	}

	.nav-menu .nav-resa {
		font-family: var(--font-sans);
		font-style: normal;
		font-size: var(--text-xs);
		letter-spacing: 0.32em;
		text-transform: uppercase;
		color: var(--or) !important;
		margin-top: var(--space-sm);
		padding: 0.85rem 2rem;
		border-color: var(--or-muted);
		min-height: 48px;
	}
}

@media (hover: hover) and (min-width: 1024px) {
	.photo-cell:hover img,
	.galerie-mosaic .photo-cell:hover .gallery-photo {
		filter: brightness(0.91) saturate(0.82) contrast(1.02);
	}

	.galerie-mosaic .photo-cell:hover img,
	.galerie-mosaic .photo-cell:hover .gallery-photo {
		transform: scale(1.018);
	}

	.zone:hover {
		background: #151413;
	}
}

@media (hover: none), (pointer: coarse) {
	body {
		cursor: auto;
	}

	html.has-custom-cursor #cursor,
	html.has-custom-cursor #cursor-ring,
	html.has-custom-cursor #cursor-x,
	body.has-custom-cursor #cursor,
	body.has-custom-cursor #cursor-ring,
	body.has-custom-cursor #cursor-x {
		display: none !important;
	}

	a,
	button {
		cursor: pointer;
	}

	.stat-box:hover {
		border-top-color: transparent;
		background: var(--g2);
	}

	.avis-card:hover {
		background: var(--g2);
	}

	.zone:hover {
		background: var(--g2);
	}

	.cta-main:hover,
	.cta-main:focus,
	.cta-main:focus-visible,
	.resa-cta-big:hover,
	.resa-cta-big:focus,
	.resa-cta-big:focus-visible {
		transform: none;
		background: #f2ede8;
		color: #080808;
		-webkit-text-fill-color: #080808;
		opacity: 1;
	}

	.galerie-mosaic .photo-cell:hover img,
	.galerie-mosaic .photo-cell:hover .gallery-photo {
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	#age-gate.is-closing {
		transition: none;
	}

	.reveal-on-scroll {
		opacity: 1 !important;
		transform: none !important;
	}
}

html.nav-open,
body.nav-open {
	overflow: hidden;
	touch-action: none;
}

/* Editorial prose — desktop : colonnes texte plus respirantes (520–680 px) */
@media (min-width: 1024px) {
	.equip-section--editorial .equip-inner > :is(.section-tag, h2, .lead),
	.rules-teaser-inner > :is(.section-tag, h2, .lead) {
		max-width: var(--prose-measure);
	}
}

@media (max-width: 768px) {
	.faq-item__summary {
		padding: 1rem 0.95rem;
		font-size: clamp(1rem, 4.2vw, 1.12rem);
	}
	.faq-closing__links,
	.exp-closing__links,
	.resa-final-ctas,
	.lieu-cta-block__actions {
		flex-direction: column;
	}
	.nav-menu li a {
		letter-spacing: 0.14em;
	}
}
