/*
 * theme-custom.css
 * Tout ce qui ne rentre pas dans theme.json : animations, texture,
 * réglages spécifiques au SVG du logo. À enqueue en plus du style
 * généré par theme.json (ex. wp_enqueue_block_style ou
 * wp_enqueue_style dans functions.php).
 */

html {
	scroll-behavior: smooth;
}

:where(.wp-site-blocks)>* {
	margin-block-start: 0;
}

/* Texture grain subtile sur les sections sombres */
.bg-grain {
	background-image: radial-gradient(rgba(255, 200, 1, 0.06) 1px, transparent 1px);
	background-size: 22px 22px;
}

@keyframes float-slow {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50% { transform: translateY(-14px) rotate(-1.5deg); }
}
.animate-float-slow {
	animation: float-slow 7s ease-in-out infinite;
}

@keyframes float-slower {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50% { transform: translateY(-9px) rotate(1deg); }
}
.animate-float-slower {
	animation: float-slower 9s ease-in-out infinite;
}

@keyframes marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
.animate-marquee {
	animation: marquee 28s linear infinite;
}

@keyframes pulse-ring {
	0% { box-shadow: 0 0 0 0 rgba(145, 77, 41, 0.45); }
	70% { box-shadow: 0 0 0 14px rgba(145, 77, 41, 0); }
	100% { box-shadow: 0 0 0 0 rgba(145, 77, 41, 0); }
}
.animate-pulse-ring {
	animation: pulse-ring 2.4s ease-out infinite;
}

::selection {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy-900);
}

/* ---- Logo Touki-Touki (SVG inline) ---- */
.tt-logo svg {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 1rem;
	max-height: 1rem;
}

/* Neutralise le mix-blend-mode multiply (invisible sur fond sombre) */
.tt-logo .st0,
.tt-logo .st2 {
	mix-blend-mode: normal;
}

/* Anime la partie ronde du toucan */
.tt-logo #Toucan {
	transform-box: fill-box;
	transform-origin: center;
	animation: tt-toucan-float 6s ease-in-out infinite;
}

@keyframes tt-toucan-float {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50% { transform: translateY(-6px) rotate(-2deg); }
}

@media (prefers-reduced-motion: reduce) {
	.tt-logo #Toucan {
		animation: none;
	}
}

/* ---- Header : classes custom ---- */
.tt-nav .wp-block-navigation-item__content {
	position: relative;
	color: rgba(247, 241, 232, 0.9);
	transition: color 0.3s ease;
}

.tt-nav .wp-block-navigation-item__content:hover,
.tt-nav .current-menu-item>.wp-block-navigation-item__content {
	color: var(--wp--preset--color--gold);
}

.tt-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 2px;
	border-radius: 9999px;
	background-color: var(--wp--preset--color--gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s ease;
}

.tt-nav .wp-block-navigation-item__content:hover::after,
.tt-nav .current-menu-item>.wp-block-navigation-item__content::after {
	transform: scaleX(1);
}

.tt-head-logo img {
	transition-duration: .25s;
}
.tt-head-logo img:hover {
	scale: 1.03;
	transition-duration: .25s;
}


/* ---- Footer : classes custom  ---- */

footer a {
	transition-duration: 0.15s;
	transition-property: color,
		background-color,
		border-color,
		outline-color,
		text-decoration-color,
		fill,
		stroke,
		--tw-gradient-from,
		--tw-gradient-via,
		--tw-gradient-to;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	text-decoration: none;
}
.wp-block-social-link:hover {
	transform: scale(1);
}

:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link {
	background-color: color-mix(in oklab, var(--wp--preset--color--cream) 10%, transparent);
	color: var(--wp--preset--color--cream);
}
:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link:hover {
	background-color: var(--wp--preset--color--gold);
}
.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,
:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link .wp-block-social-link-anchor span {
	transition-duration: 0.15s;
	transition-property: color,
		background-color,
		border-color,
		outline-color,
		text-decoration-color,
		fill,
		stroke,
		--tw-gradient-from,
		--tw-gradient-via,
		--tw-gradient-to;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.wp-block-social-links .wp-block-social-link.wp-social-link:hover .wp-block-social-link-anchor svg,
:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link:hover .wp-block-social-link-anchor span {
	color: var(--wp--preset--color--navy-900);
	fill: var(--wp--preset--color--navy-900);
}


.tt-footer-top {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: var(--wp--preset--spacing--16);
	padding-bottom: var(--wp--preset--spacing--16);
}
.tt-footer-top .mailto > a {
	text-decoration: none;
}
.tt-footer-top .mailto > a:hover {
	color: var(--wp--preset--color--gold);
}

.tt-footer-bottom {
	padding-top: var(--wp--preset--spacing--10);
	padding-bottom: var(--wp--preset--spacing--10);
}
.tt-footer-bottom nav a span {
	font-weight: 600;
}
.tt-footer-bottom nav a:hover span {
	color: var(--wp--preset--color--gold);
}

.tt-footer-legal {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	margin-top: var(--wp--preset--spacing--10);
	padding-top: var(--wp--preset--spacing--6);
}
.tt-footer-legal a:where(:not(.wp-element-button)) {
	color: rgba(247, 241, 232, 0.7);
}
.tt-footer-legal a:where(:not(.wp-element-button)):hover {
	color: rgba(247, 241, 232, 1);
}

.tt-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	background-color: rgba(255, 200, 1, 0.15);
	color: var(--wp--preset--color--gold);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.025em;
}

.tt-badge svg {
	width: 0.875rem;
	height: 0.875rem;
	flex-shrink: 0;
}

.tt-cta-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1rem;
	padding: 0.375rem 0.75rem;
	border-radius: 8px;
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--cream);
	font-weight: 700;
}

.tt-hours-row {
	margin-bottom: 0.5rem;
}

.tt-muted {
	color: rgba(255, 255, 255, 0.7);
}

.tt-faint {
	color: rgba(255, 255, 255, 0.5);
}

.tt-strong {
	font-weight: 600;
}

.tt-gold-dot {
	color: var(--wp--preset--color--gold);
}

/* ---- Hero d'accueil (pattern toukitouki/hero) ---- */

.wp-block-cover.tt-hero {
	min-height: calc(100svh - 5rem);
	/* 5rem = hauteur approx. du header sticky */
	padding: 4rem 1.25rem;
	overflow: hidden;
	text-align: center;
	background-color: var(--wp--preset--color--navy-900);
}

@media (min-width: 640px) {
	.wp-block-cover.tt-hero {
		padding-inline: 2rem;
	}
}

.hero-title {
	color: #f5efe3;
	font-size: clamp(3.5rem, 7vw, 6rem);
	font-weight: 900;
	line-height: 0.95;
	text-align: center;
	margin: 0;
}

.hero-title .hero-title-gold {
	color: #ffc801;
}

.hero-title .hero-title-subtitle {
	font-size: clamp(1.5rem, 3vw, 2.5rem);
	font-weight: 600;
	line-height: 1.1;
	color: rgba(245, 239, 227, 0.8);
}

/* Dégradé + lueurs rouge/or + grain, en un seul calque */
.tt-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background-image:
		radial-gradient(rgba(255, 200, 1, 0.036) 1px, transparent 1px),
		radial-gradient(circle at 0% 38%, rgba(145, 77, 41, 0.2), transparent 18rem),
		radial-gradient(circle at 100% 28%, rgba(255, 200, 1, 0.2), transparent 20rem),
		linear-gradient(to bottom, rgba(0, 42, 74, 0.8), rgba(0, 58, 99, 0.7) 50%, var(--wp--preset--color--navy-900));
	background-size: 22px 22px, auto, auto, auto;
}

.tt-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

/* Indicateur de scroll */
.tt-hero::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 1.5rem;
	z-index: 2;
	box-sizing: border-box;
	width: 1.25rem;
	height: 2.25rem;
	transform: translateX(-50%);
	border: 2px solid rgba(247, 241, 232, 0.3);
	border-radius: 9999px;
	background: linear-gradient(var(--wp--preset--color--gold), var(--wp--preset--color--gold)) center 4px / 4px 8px no-repeat;
	animation: tt-scroll-cue 1.2s ease-in-out infinite;
}

@keyframes tt-scroll-cue {

	0%,
	100% {
		background-position: center 4px;
	}

	50% {
		background-position: center 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tt-hero::after {
		animation: none;
	}
}

.tt-hero-logo {
	margin: 0 0 1.5rem;
}

.tt-hero-logo img {
	width: 7rem;
	height: auto;
	filter: drop-shadow(0 8px 24px rgba(242, 169, 0, 0.25));
}

@media (min-width: 640px) {
	.tt-hero-logo img {
		width: 8rem;
	}
}

.tt-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1.5rem;
	padding: 0.375rem 1rem;
	border: 1px solid rgba(255, 200, 1, 0.4);
	border-radius: 9999px;
	background-color: rgba(255, 200, 1, 0.1);
	color: var(--wp--preset--color--gold);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	backdrop-filter: blur(8px);
}

.tt-hero-kicker {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	letter-spacing: 0.025em;
	color: var(--wp--preset--color--cream);
}

@media (min-width: 640px) {
	.tt-hero-kicker {
		font-size: 1.25rem;
	}
}

.tt-hero-title {
	margin: 0;
	font-size: 3rem;
	font-weight: 900;
	line-height: 0.95;
	color: var(--wp--preset--color--cream);
}

.tt-hero-title .tt-gold {
	color: var(--wp--preset--color--gold);
}

.tt-hero-title .tt-sub {
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.025em;
	color: rgba(247, 241, 232, 0.8);
}

@media (min-width: 640px) {
	.tt-hero-title {
		font-size: 3.75rem;
	}

	.tt-hero-title .tt-sub {
		font-size: 1.875rem;
	}
}

@media (min-width: 768px) {
	.tt-hero-title {
		font-size: 4.5rem;
	}

	.tt-hero-title .tt-sub {
		font-size: 2.25rem;
	}
}

@media (min-width: 1024px) {
	.tt-hero-title {
		font-size: 6rem;
	}
}

.tt-hero-text {
	max-width: 36rem;
	margin: 1.75rem auto 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(247, 241, 232, 0.8);
}

@media (min-width: 640px) {
	.tt-hero-text {
		font-size: 1.125rem;
	}
}

.tt-hero-buttons {
	margin-top: 2.25rem;
	gap: 0.75rem;
}

@media (min-width: 640px) {
	.tt-hero-buttons {
		gap: 1rem;
	}
}

.tt-hero-address {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin: 2.5rem 0 0;
	font-size: 0.875rem;
	font-weight: 500;
	color: rgba(247, 241, 232, 0.6);
}

.tt-hero-address::before {
	content: "";
	width: 0.375rem;
	height: 0.375rem;
	border-radius: 9999px;
	background-color: var(--wp--preset--color--gold);
}

/* ---- Section carte (pattern touki-touki/carte) + carte "plat" ---- */

.tt-eyebrow {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--wp--preset--color--gold);
}

.tt-carte {
	position: relative;
	overflow: hidden;
	padding: 5rem 1.25rem;
	background-image: linear-gradient(to bottom right, var(--wp--preset--color--navy-900), var(--wp--preset--color--navy-700), var(--wp--preset--color--terracotta));
}

@media (min-width: 640px) {
	.tt-carte {
		padding: 7rem 2rem;
	}
}

/* Grain + lueurs */
.tt-carte::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		radial-gradient(rgba(255, 200, 1, 0.03) 1px, transparent 1px),
		radial-gradient(circle at 100% 15%, rgba(145, 77, 41, 0.3), transparent 18rem),
		radial-gradient(circle at 0% 85%, rgba(0, 58, 99, 0.4), transparent 18rem);
	background-size: 22px 22px, auto, auto;
}

.tt-carte>* {
	position: relative;
	z-index: 1;
}

.tt-carte__head {
	gap: 1.5rem;
	margin-bottom: 3.5rem;
}

.tt-carte__lead {
	max-width: 36rem;
}

.tt-carte__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 1.25;
	color: var(--wp--preset--color--cream);
}

@media (min-width: 640px) {
	.tt-carte__title {
		font-size: 3rem;
	}
}

.tt-carte__intro {
	max-width: 24rem;
	margin: 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(247, 241, 232, 0.7);
}

.tt-carte__cta {
	margin-top: 3rem;
}

/* ---- Grille : 1 colonne mobile, 3 colonnes dès 768px ---- */
.tt-dishesHome .wp-block-post-template {
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.tt-dishesHome .wp-block-post-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.tt-dishesHome .wp-block-post {
	display: flex;
	margin: 0;
}

/* ---- Section ambiances midi/soir (pattern touki-touki/ambiances) ---- */

.tt-ambiances {
	position: relative;
	overflow: hidden;
	padding: 5rem 1.25rem;
	background-color: var(--wp--preset--color--linen);
}

@media (min-width: 640px) {
	.tt-ambiances {
		padding: 7rem 2rem;
	}
}

.tt-ambiances__deco {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 0;
	width: auto;
	height: 18rem;
	margin: 0;
	opacity: 0.25;
	pointer-events: none;
}

@media (min-width: 640px) {
	.tt-ambiances__deco {
		height: 24rem;
	}
}

@media (min-width: 1024px) {
	.tt-ambiances__deco {
		height: 28rem;
	}
}

.tt-ambiances__intro {
	position: relative;
	z-index: 1;
	max-width: 42rem;
	margin: 0 auto 3.5rem;
	text-align: center;
}

.tt-amb-eyebrow {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--wp--preset--color--terracotta);
}

.tt-ambiances__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--wp--preset--color--navy-900);
}

@media (min-width: 640px) {
	.tt-ambiances__title {
		font-size: 3rem;
	}
}

/* ---- Grille : columns natif, empilé sur mobile ---- */
.tt-amb-grid {
	position: relative;
	z-index: 1;
	gap: 1.5rem !important;
}

@media (min-width: 1024px) {
	.tt-amb-grid {
		gap: 2rem !important;
	}
}

/* ---- Carte ---- */
.tt-amb-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border-radius: 2rem;
	box-shadow: var(--wp--preset--shadow--warm);
	transition: transform 0.5s ease;
}

.tt-amb-card:hover {
	transform: translateY(-0.25rem);
}

.tt-amb-card--midi {
	background-color: var(--wp--preset--color--cream);
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
}

.tt-amb-card--soir {
	background-color: var(--wp--preset--color--navy-900);
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(255, 255, 255, 0.05);
}

.tt-amb-card__media {
	position: relative;
	height: 16rem;
	overflow: hidden;
}

@media (min-width: 640px) {
	.tt-amb-card__media {
		height: 18rem;
	}
}

.tt-amb-card__img {
	height: 100%;
	margin: 0;
}

.tt-amb-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s ease;
}

.tt-amb-card:hover .tt-amb-card__img img {
	transform: scale(1.05);
}

.tt-amb-card--soir .tt-amb-card__img img {
	opacity: 0.8;
}

.tt-amb-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.tt-amb-card--midi .tt-amb-card__media::after {
	background-image: linear-gradient(to top, rgba(247, 241, 232, 0.9), rgba(247, 241, 232, 0.1) 60%, transparent);
}

.tt-amb-card--soir .tt-amb-card__media::after {
	background-image: linear-gradient(to top, var(--wp--preset--color--navy-900), rgba(0, 58, 99, 0.4) 60%, transparent);
}

.tt-amb-card__badge {
	position: absolute;
	left: 1.25rem;
	top: 1.25rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0.375rem 1rem;
	border-radius: 9999px;
	background-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy-900);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.tt-amb-card__badge--soir {
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--cream);
}

.tt-amb-card__body {
	padding: 1.75rem;
}

@media (min-width: 640px) {
	.tt-amb-card__body {
		padding: 2.25rem;
	}
}

.tt-amb-card__title {
	margin: 0;
	font-size: 1.875rem;
	font-weight: 900;
	color: var(--wp--preset--color--navy-900);
}

.tt-amb-card__title--soir {
	color: var(--wp--preset--color--cream);
}

.tt-amb-card__text {
	margin: 0.75rem 0 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(0, 58, 99, 0.7);
}

.tt-amb-card__text--soir {
	color: rgba(247, 241, 232, 0.7);
}

.tt-amb-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.tt-amb-card__tags li {
	margin: 0;
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	background-color: rgba(255, 224, 122, 0.4);
	color: var(--wp--preset--color--navy-900);
	font-size: 0.875rem;
	font-weight: 600;
}

.tt-amb-card__tags--soir li {
	background-color: rgba(255, 255, 255, 0.1);
	color: var(--wp--preset--color--cream);
}

.tt-amb-card__hours {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 1.5rem 0 0;
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
}

.tt-amb-card__hours--soir {
	color: var(--wp--preset--color--cream);
}

.tt-ambiances__link {
	position: relative;
	z-index: 1;
	margin: 2.5rem 0 0;
	text-align: center;
}

.tt-ambiances__link a {
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
	text-decoration: none;
	transition: color 0.3s ease;
}

.tt-ambiances__link a:hover {
	color: var(--wp--preset--color--terracotta);
}

/* ---- Carte d'un plat ---- */
.tt-dish {
	display: flex;
	flex-direction: column;
	flex: 1;
	overflow: hidden;
	border-radius: 1.75rem;
	background-color: var(--wp--preset--color--cream);
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
	transition: transform 0.5s ease;
}

.tt-dish:hover {
	transform: translateY(-0.375rem);
}

.tt-dish__media {
	position: relative;
	height: 14rem;
	overflow: hidden;
}

.tt-dish__img {
	height: 100%;
	margin: 0;
}

.tt-dish .tt-dish__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s ease;
}

.tt-dish:hover .tt-dish .tt-dish__img img {
	transform: scale(1.1);
}

.tt-dish__media::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: linear-gradient(to top, rgba(0, 58, 99, 0.4), transparent);
	opacity: 0;
	transition: opacity 0.5s ease;
}

.tt-dish:hover .tt-dish__media::after {
	opacity: 1;
}

/* Pastille Midi / Soir (taxonomie "moment") */
.tt-dish__moment {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 2;
	margin: 0;
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	background-color: rgba(0, 58, 99, 0.85);
	color: var(--wp--preset--color--cream);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	backdrop-filter: blur(8px);
}

.tt-dish__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.5rem;
}

.tt-dish__meta {
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 0.75rem;
}

/* Pastille catégorie (taxonomie "categorie_plat") */
.tt-dish__tag {
	margin: 0;
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	background-color: rgba(145, 77, 41, 0.1);
	color: var(--wp--preset--color--terracotta);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.tt-dish__tag a,
.tt-dish__moment a {
	color: inherit;
	text-decoration: none;
	pointer-events: none;
}

.tt-dish__price {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--wp--preset--color--navy-900);
}

.tt-dish__title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 900;
	line-height: 1.25;
	color: var(--wp--preset--color--navy-900);
}

.tt-dish__desc {
	flex: 1;
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(0, 58, 99, 0.65);
}

/* ==== Page La Carte : en-tête + sections Midi / Soir ==== */

/* ---- En-tête ---- */
.tt-carte-header {
	position: relative;
	overflow: hidden;
	padding: 8rem 1.25rem 4rem;
	background-color: var(--wp--preset--color--navy-900);
}

@media (min-width: 640px) {
	.tt-carte-header {
		padding: 10rem 2rem 5rem;
	}
}

.tt-carte-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		radial-gradient(rgba(255, 200, 1, 0.035) 1px, transparent 1px),
		radial-gradient(circle at 5% 30%, rgba(145, 77, 41, 0.25), transparent 16rem),
		radial-gradient(circle at 95% 40%, rgba(255, 200, 1, 0.2), transparent 18rem),
		linear-gradient(to bottom, rgba(0, 42, 74, 0.8), var(--wp--preset--color--navy-900));
	background-size: 22px 22px, auto, auto, auto;
}

.tt-carte-header>* {
	position: relative;
	z-index: 1;
}

.tt-eyebrow {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
}

.tt-eyebrow--gold {
	color: var(--wp--preset--color--gold);
}

.tt-eyebrow--red {
	color: var(--wp--preset--color--terracotta);
}

.tt-carte-header__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 0.95;
	color: var(--wp--preset--color--cream);
}

.tt-carte-header__title-accent {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 0.95;
	color: var(--wp--preset--color--gold);
}

@media (min-width: 640px) {
	.tt-carte-header__title-accent {
		font-size: 3rem;
	}
}

@media (min-width: 768px) {
	.tt-carte-header__title-accent {
		font-size: 3.75rem;
	}
}

@media (min-width: 640px) {
	.tt-carte-header__title {
		font-size: 3rem;
	}
}

@media (min-width: 768px) {
	.tt-carte-header__title {
		font-size: 3.75rem;
	}
}

.tt-carte-header__intro {
	max-width: 42rem;
	margin: 1.5rem auto 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(247, 241, 232, 0.8);
}

@media (min-width: 640px) {
	.tt-carte-header__intro {
		font-size: 1.125rem;
	}
}

.tt-carte-header__anchors {
	gap: 0.75rem;
	margin-top: 2.25rem;
}

@media (min-width: 640px) {
	.tt-carte-header__anchors {
		gap: 1rem;
	}
}

.tt-anchor-pill {
	margin: 0;
}

.tt-anchor-pill a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.875rem 1.75rem;
	border: 2px solid rgba(247, 241, 232, 0.3);
	border-radius: 9999px;
	background-color: rgba(247, 241, 232, 0.05);
	color: var(--wp--preset--color--cream);
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	backdrop-filter: blur(8px);
	transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}

.tt-anchor-pill a:hover {
	border-color: var(--wp--preset--color--gold);
	background-color: rgba(255, 200, 1, 0.1);
	color: var(--wp--preset--color--gold);
}

/* ---- Sections Midi / Soir ---- */
.tt-carte-section {
	position: relative;
	overflow: hidden;
	padding: 5rem 1.25rem;
}

@media (min-width: 640px) {
	.tt-carte-section {
		padding: 6rem 2rem;
	}
}

.tt-carte-section--midi {
	background-color: var(--wp--preset--color--linen);
}

.tt-carte-section--soir {
	background-color: var(--wp--preset--color--navy-900);
}

.tt-carte-section--soir::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		radial-gradient(rgba(255, 200, 1, 0.03) 1px, transparent 1px),
		radial-gradient(circle at 92% 10%, rgba(145, 77, 41, 0.25), transparent 16rem),
		radial-gradient(circle at 5% 90%, rgba(255, 200, 1, 0.18), transparent 16rem);
	background-size: 22px 22px, auto, auto;
}

.tt-carte-section--soir>* {
	position: relative;
	z-index: 1;
}

.tt-carte-section__head {
	gap: 1rem;
	margin-bottom: 3rem;
	align-items: center;
}

.tt-carte-section__icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	margin: 0;
	border-radius: 9999px;
	font-size: 1.5rem;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.tt-carte-section__icon--midi {
	background-color: var(--wp--preset--color--gold);
}

.tt-carte-section__icon--soir {
	background-color: var(--wp--preset--color--terracotta);
}

.tt-carte-section__icon--soir .sbtl-icon svg {
	color: var(--wp--preset--color--cream);
}

.tt-carte-section__title {
	margin: 0;
	font-size: 1.875rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--wp--preset--color--navy-900);
}

.tt-carte-section__title--soir {
	color: var(--wp--preset--color--cream);
}

@media (min-width: 640px) {
	.tt-carte-section__title {
		font-size: 2.25rem;
	}
}
/* ==== Filtres + grille de plats (shortcode [touki_carte_filtree]) ==== */

.tt-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 2rem;
}

.tt-filter {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1rem;
	border-radius: 9999px;
	border: 2px solid;
	background-color: transparent;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.tt-filter__icon {
	display: flex;
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
	color: currentColor;
}

.tt-filter__icon svg {
	display: block;
	width: 1rem;
	height: 1rem;
}

/* Survol : fond jaune, quelle que soit la section */
.tt-filter:hover {
	background-color: var(--wp--preset--color--gold);
	border-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy-900);
}

/* Variante claire (section Midi, fond sable) */
.tt-carte-section--midi .tt-filter {
	border-color: rgba(0, 58, 99, 0.15);
	color: var(--wp--preset--color--navy-900);
}

.tt-carte-section--midi .tt-filter.is-active {
	border-color: var(--wp--preset--color--terracotta);
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--cream);
}

/* Variante sombre (section Soir, fond navy) */
.tt-carte-section--soir .tt-filter {
	border-color: rgba(247, 241, 232, 0.25);
	color: var(--wp--preset--color--cream);
}
.tt-carte-section--soir .tt-filter:hover {
	color: var(--wp--preset--color--navy-900);
}

.tt-carte-section--soir .tt-filter.is-active {
	border-color: var(--wp--preset--color--gold);
	background-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy-900);
}

/* ---- Grille des plats ---- */
.tt-dishes {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.tt-dishes {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.tt-dishes {
		grid-template-columns: repeat(3, 1fr);
	}
}

.tt-dish.is-hidden {
	display: none;
}

.tt-dish {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 1.75rem;
	background-color: var(--wp--preset--color--cream);
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
	transition: transform 0.5s ease;
}

.tt-dish:hover {
	transform: translateY(-0.375rem);
}

.tt-dish__media {
	position: relative;
	height: 14rem;
	overflow: hidden;
	background-color: rgba(0, 58, 99, 0.05);
}

.tt-dish__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s ease;
}

.tt-dish:hover .tt-dish__img {
	transform: scale(1.1);
}

.tt-dish__moment {
	position: absolute;
	top: 1rem;
	right: 1rem;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	background-color: rgba(0, 58, 99, 0.85);
	color: var(--wp--preset--color--cream);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	backdrop-filter: blur(8px);
}

.tt-dish__moment-icon {
	display: flex;
	width: 0.875rem;
	height: 0.875rem;
	flex-shrink: 0;
}

.tt-dish__moment-icon svg {
	width: 100%;
	height: 100%;
}

.tt-dish__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.5rem;
}

.tt-dish__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin: 0 0 0.75rem;
}

.tt-dish__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}

.tt-dish__tag {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.2rem 0.65rem;
	border-radius: 9999px;
	background-color: rgba(145, 77, 41, 0.1);
	color: var(--wp--preset--color--terracotta);
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.tt-dish__tag-icon {
	display: flex;
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
}

.tt-dish__tag-icon svg {
	display: block;
	width: 1rem;
	height: 1rem;
}

.tt-dish__price {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 900;
	color: var(--wp--preset--color--navy-900);
}

.tt-dish__title {
	margin: 0;
	font-size: 1.375rem;
	font-weight: 900;
	line-height: 1.25;
	color: var(--wp--preset--color--navy-900);
}

.tt-dish__desc {
	flex: 1;
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(0, 58, 99, 0.65);
}

.tt-carte-empty {
	margin: 0;
	font-size: 1rem;
	color: rgba(0, 58, 99, 0.6);
}

.tt-carte-section--soir .tt-carte-empty {
	color: rgba(247, 241, 232, 0.6);
}


/* ==== Page Le Concept : Notre histoire + Où nous trouver ==== */

.tt-eyebrow {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
}

.tt-eyebrow--gold {
	color: var(--wp--preset--color--gold);
}

.tt-eyebrow--red {
	color: var(--wp--preset--color--terracotta);
}

/* ---- Notre histoire ---- */
.tt-histoire {
	padding: 5rem 1.25rem;
	background-color: var(--wp--preset--color--linen);
}

@media (min-width: 640px) {
	.tt-histoire {
		padding: 7rem 2rem;
	}
}

.tt-histoire__grid {
	gap: 2.5rem !important;
}

@media (min-width: 1024px) {
	.tt-histoire__grid {
		gap: 4rem !important;
	}
}

.tt-histoire__img {
	overflow: hidden;
	margin: 0;
	border-radius: 2rem;
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
}

.tt-histoire__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tt-histoire__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--wp--preset--color--navy-900);
}

@media (min-width: 640px) {
	.tt-histoire__title {
		font-size: 3rem;
	}
}

.tt-histoire__text {
	margin: 1rem 0 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(0, 58, 99, 0.7);
}

.tt-histoire__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 2rem 0 0;
	padding: 0;
	list-style: none;
}

.tt-histoire__tags li {
	margin: 0;
	padding: 0.375rem 1rem;
	border-radius: 9999px;
	background-color: rgba(255, 224, 122, 0.4);
	color: var(--wp--preset--color--navy-900);
	font-size: 0.875rem;
	font-weight: 600;
}

/* ---- Où nous trouver ---- */
.tt-infos {
	position: relative;
	overflow: hidden;
	padding: 5rem 1.25rem;
	background-color: var(--wp--preset--color--navy-900);
}

@media (min-width: 640px) {
	.tt-infos {
		padding: 7rem 2rem;
	}
}

.tt-infos::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		radial-gradient(rgba(255, 200, 1, 0.03) 1px, transparent 1px),
		radial-gradient(circle at 95% 15%, rgba(145, 77, 41, 0.25), transparent 16rem),
		radial-gradient(circle at 5% 90%, rgba(255, 200, 1, 0.15), transparent 16rem);
	background-size: 22px 22px, auto, auto;
}

.tt-infos__grid {
	position: relative;
	z-index: 1;
	gap: 2.5rem !important;
}

@media (min-width: 1024px) {
	.tt-infos__grid {
		gap: 4rem !important;
	}
}

/* Ordre inversé sur mobile : l'image passe avant le texte, comme sur le composant d'origine */
@media (max-width: 781px) {
	.tt-infos__col-media {
		order: -1;
	}
}

.tt-infos__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--wp--preset--color--cream);
}

@media (min-width: 640px) {
	.tt-infos__title {
		font-size: 3rem;
	}
}

.tt-infos__text {
	margin: 1.5rem 0 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(247, 241, 232, 0.7);
}

.tt-infos-row {
	align-items: flex-start;
	gap: 0.75rem;
	margin-top: 1rem;
}

.tt-infos-row__icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	margin: 0.125rem 0 0;
	border-radius: 9999px;
	background-color: rgba(255, 200, 1, 0.15);
	font-size: 1.125rem;
}

.tt-infos-row__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 900;
	color: var(--wp--preset--color--cream);
}

.tt-infos-row__sub {
	margin: 0;
	font-size: 0.875rem;
	color: rgba(247, 241, 232, 0.6);
}

.tt-infos__cta {
	margin-top: 2rem;
}

.tt-infos__media {
	position: relative;
	overflow: hidden;
	border-radius: 2rem;
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.tt-infos__img {
	margin: 0;
}

.tt-infos__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tt-infos__media::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: linear-gradient(to top, rgba(0, 58, 99, 0.5), transparent);
}

.tt-infos__pin {
	position: absolute;
	left: 1.25rem;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 2;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	border-radius: 1rem;
	background-color: rgba(0, 58, 99, 0.85);
	backdrop-filter: blur(8px);
}

.tt-infos__pin-icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	margin: 0;
	border-radius: 9999px;
	background-color: var(--wp--preset--color--terracotta);
	font-size: 1rem;
}

.tt-infos__pin-title {
	margin: 0;
	overflow: hidden;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.875rem;
	font-weight: 900;
	color: var(--wp--preset--color--cream);
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tt-infos__pin-sub {
	margin: 0;
	overflow: hidden;
	color: rgba(247, 241, 232, 0.7);
	font-size: 0.75rem;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ==== Page Infos pratiques : cartes, accès, équipements, FAQ ==== */

.tt-eyebrow {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
}

.tt-eyebrow--gold {
	color: var(--wp--preset--color--gold);
}

.tt-eyebrow--red {
	color: var(--wp--preset--color--terracotta);
}

/* ---- 1. Adresse / Horaires / Contact ---- */
.tt-infoscards {
	padding: 5rem 1.25rem;
	background-color: var(--wp--preset--color--linen);
}

@media (min-width: 640px) {
	.tt-infoscards {
		padding: 7rem 2rem;
	}
}

.tt-infoscards__grid {
	gap: 1.5rem !important;
}

@media (min-width: 1024px) {
	.tt-infoscards__grid {
		gap: 2rem !important;
	}
}

.tt-icard {
	height: 100%;
	padding: 1.75rem;
	border-radius: 2rem;
	box-shadow: var(--wp--preset--shadow--warm);
}

@media (min-width: 640px) {
	.tt-icard {
		padding: 2.25rem;
	}
}

.tt-icard--light {
	background-color: #fff;
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
}

.tt-icard--dark {
	background-color: var(--wp--preset--color--navy-900);
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(255, 255, 255, 0.05);
}

.tt-icard__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	margin: 0 0 1.25rem;
	border-radius: 9999px;
	font-size: 1.5rem;
}

.tt-icard__icon--navy {
	background-color: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--gold);
}

.tt-icard__icon--gold {
	background-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy-900);
}

.tt-icard__icon--terracotta {
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--cream);
}

.tt-icard__title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 900;
	color: var(--wp--preset--color--navy-900);
}

.tt-icard__title--light {
	color: var(--wp--preset--color--cream);
}

.tt-icard__text {
	margin: 0.75rem 0 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(0, 58, 99, 0.7);
}

.tt-icard__sub {
	margin: 0.75rem 0 0;
	font-size: 0.875rem;
	color: rgba(0, 58, 99, 0.6);
}

.tt-icard__link {
	margin: 1.25rem 0 0;
}

.tt-icard__link a {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--wp--preset--color--terracotta);
	text-decoration: none;
}

.tt-icard__link a:hover {
	color: var(--wp--preset--color--terracotta-dark);
}

.tt-hours-list {
	gap: 0.75rem;
	margin: 1rem 0 0;
}

.tt-hours-list__row {
	padding-bottom: 0.5rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 0.875rem;
}

.tt-hours-list__row--last {
	border-bottom: none;
	padding-bottom: 0;
}

.tt-hours-list__day {
	margin: 0;
	color: rgba(247, 241, 232, 0.7);
}

.tt-hours-list__time {
	margin: 0;
	font-weight: 600;
	color: var(--wp--preset--color--cream);
}

.tt-hours-list__time--faint {
	color: rgba(247, 241, 232, 0.5);
}

.tt-icard__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 1rem 0 0;
	padding: 0.375rem 0.75rem;
	border-radius: 0.5rem;
	background-color: rgba(145, 77, 41, 0.15);
	color: var(--wp--preset--color--terracotta);
	font-size: 0.875rem;
	font-weight: 700;
}

.tt-icard__badge::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 9999px;
	background-color: var(--wp--preset--color--terracotta);
	animation: pulse-ring 2.4s ease-out infinite;
}

.tt-contact-list {
	gap: 0.75rem;
	margin: 1rem 0 0;
}

.tt-contact-list__row {
	margin: 0;
}

.tt-contact-list__row a {
	font-size: 1rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
	text-decoration: none;
}

.tt-contact-list__row a:hover {
	color: var(--wp--preset--color--terracotta);
}

.tt-icard__cta {
	margin-top: 1.5rem;
}

/* ---- 2. Accès & transports ---- */
.tt-acces {
	position: relative;
	overflow: hidden;
	padding: 5rem 1.25rem;
	background-color: var(--wp--preset--color--navy-900);
}

@media (min-width: 640px) {
	.tt-acces {
		padding: 7rem 2rem;
	}
}

.tt-acces::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		radial-gradient(rgba(255, 200, 1, 0.03) 1px, transparent 1px),
		radial-gradient(circle at 95% 10%, rgba(145, 77, 41, 0.25), transparent 16rem),
		radial-gradient(circle at 5% 90%, rgba(255, 200, 1, 0.18), transparent 16rem);
	background-size: 22px 22px, auto, auto;
}

.tt-acces>* {
	position: relative;
	z-index: 1;
}

.tt-acces__intro {
	max-width: 42rem;
	margin: 0 auto 3.5rem;
	text-align: center;
}

.tt-acces__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--wp--preset--color--cream);
}

@media (min-width: 640px) {
	.tt-acces__title {
		font-size: 3rem;
	}
}

.tt-acces__grid {
	gap: 1.5rem !important;
}

.tt-transport {
	height: 100%;
	padding: 1.75rem;
	border-radius: 1.75rem;
	background-color: var(--wp--preset--color--cream);
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
	transition: transform 0.5s ease;
}

.tt-transport:hover {
	transform: translateY(-0.375rem);
}

.tt-transport__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin: 0 0 1rem;
	border-radius: 9999px;
	font-size: 1.25rem;
}

.tt-transport__icon--red {
	background-color: rgba(145, 77, 41, 0.1);
	color: var(--wp--preset--color--terracotta);
}

.tt-transport__icon--green {
	background-color: rgba(22, 106, 25, 0.1);
	color: var(--wp--preset--color--forest);
}

.tt-transport__icon--gold {
	background-color: rgba(255, 200, 1, 0.2);
	color: var(--wp--preset--color--navy-900);
}

.tt-transport__title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 900;
	color: var(--wp--preset--color--navy-900);
}

.tt-transport__text {
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(0, 58, 99, 0.7);
}

.tt-transport__text strong {
	color: var(--wp--preset--color--navy-900);
	font-weight: 600;
}

.tt-acces__map {
	margin-top: 2.5rem;
	overflow: hidden;
	border-radius: 2rem;
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.tt-acces__map iframe {
	display: block;
	width: 100%;
	height: 360px;
	border: 0;
}

/* ---- 3. Services & équipements ---- */
.tt-equip {
	padding: 5rem 1.25rem;
	background-color: var(--wp--preset--color--linen);
}

@media (min-width: 640px) {
	.tt-equip {
		padding: 7rem 2rem;
	}
}

.tt-equip__intro {
	max-width: 42rem;
	margin: 0 auto 3.5rem;
	text-align: center;
}

.tt-equip__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--wp--preset--color--navy-900);
}

@media (min-width: 640px) {
	.tt-equip__title {
		font-size: 3rem;
	}
}

.tt-equip__grid {
	gap: 1rem !important;
}

.tt-amenity {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	padding: 1.5rem;
	border-radius: 1rem;
	text-align: center;
	background-color: #fff;
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
	transition: transform 0.3s ease;
}

.tt-amenity:hover {
	transform: translateY(-0.25rem);
}

.tt-amenity__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin: 0 0 0.75rem;
	border-radius: 9999px;
	background-color: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--gold);
}

.tt-amenity__label {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
}

/* ---- 4. FAQ ---- */
.tt-faq {
	position: relative;
	overflow: hidden;
	padding: 5rem 1.25rem;
	background-image: linear-gradient(to bottom right, var(--wp--preset--color--navy-900), var(--wp--preset--color--navy-700), var(--wp--preset--color--terracotta));
}

@media (min-width: 640px) {
	.tt-faq {
		padding: 7rem 2rem;
	}
}

.tt-faq::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		radial-gradient(rgba(255, 200, 1, 0.03) 1px, transparent 1px),
		radial-gradient(circle at 95% 10%, rgba(145, 77, 41, 0.35), transparent 16rem),
		radial-gradient(circle at 5% 90%, rgba(0, 58, 99, 0.4), transparent 16rem);
	background-size: 22px 22px, auto, auto;
}

.tt-faq>* {
	position: relative;
	z-index: 1;
}

.tt-faq__intro {
	max-width: 36rem;
	margin: 0 auto 3.5rem;
	text-align: center;
}

.tt-faq__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--wp--preset--color--cream);
}

@media (min-width: 640px) {
	.tt-faq__title {
		font-size: 3rem;
	}
}

.tt-faq__intro-text {
	max-width: 32rem;
	margin: 1.25rem auto 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(247, 241, 232, 0.7);
}

/* Accordéon natif (core/details), sans dépendance JS */
.tt-faq-item {
	position: relative;
	z-index: 1;
	margin: 0 0 0.75rem;
	padding: 0;
	border-radius: 1rem;
	overflow: hidden;
	background-color: var(--wp--preset--color--cream);
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
}

.tt-faq-item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
	cursor: pointer;
	list-style: none;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
}

.tt-faq-item summary::-webkit-details-marker {
	display: none;
}

.tt-faq-item summary::after {
	content: "";
	flex-shrink: 0;
	width: 0.625rem;
	height: 0.625rem;
	border-right: 2px solid var(--wp--preset--color--terracotta);
	border-bottom: 2px solid var(--wp--preset--color--terracotta);
	transform: rotate(45deg);
	transition: transform 0.3s ease;
}

.tt-faq-item[open] summary::after {
	transform: rotate(-135deg);
}

.tt-faq-item p {
	margin: 0;
	padding: 0 1.5rem 1.25rem;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(0, 58, 99, 0.7);
}

/* Chaque item s'ouvre indépendamment (pas d'exclusivité native entre blocs core/details) */

.tt-faq__closing {
	margin-top: 2.5rem;
	text-align: center;
}

.tt-faq__closing-text {
	margin: 0;
	font-size: 1rem;
	color: rgba(247, 241, 232, 0.7);
}

.tt-faq__closing-cta {
	margin-top: 1rem;
}

/* ==== Page Contact : coordonnées + formulaire (Ninja Forms) ==== */

.tt-eyebrow {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
}

.tt-eyebrow--red {
	color: var(--wp--preset--color--terracotta);
}

.tt-contact {
	padding: 5rem 1.25rem;
	background-color: var(--wp--preset--color--linen);
}

@media (min-width: 640px) {
	.tt-contact {
		padding: 7rem 2rem;
	}
}

.tt-contact__grid {
	gap: 2.5rem !important;
}

@media (min-width: 1024px) {
	.tt-contact__grid {
		gap: 4rem !important;
	}
}

.tt-contact__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: 900;
	line-height: 1.2;
	color: var(--wp--preset--color--navy-900);
}

@media (min-width: 640px) {
	.tt-contact__title {
		font-size: 3rem;
	}
}

.tt-contact__intro {
	margin: 1rem 0 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(0, 58, 99, 0.7);
}

/* ---- Lignes de coordonnées (adresse / email / instagram) ---- */
.tt-contact-row {
	align-items: flex-start;
	gap: 0.75rem;
	margin-top: 1.25rem;
}

.tt-contact-row__icon {
	flex-shrink: 0;
	width: 2.5rem;
	height: 2.5rem;
	margin: 0.125rem 0 0;
	border-radius: 9999px;
	background-color: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--gold);
}

.tt-contact-row__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.125rem;
	font-weight: 900;
	color: var(--wp--preset--color--navy-900);
}

.tt-contact-row__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.3s ease;
}

.tt-contact-row__title a:hover {
	color: var(--wp--preset--color--terracotta);
}

.tt-contact-row__sub {
	margin: 0;
	font-size: 0.875rem;
	color: rgba(0, 58, 99, 0.6);
}

/* ---- Carte Horaires ---- */
.tt-contact-hours {
	margin-top: 2rem;
	padding: 1.5rem;
	border-radius: 1rem;
	background-color: #fff;
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
}

.tt-contact-hours__badge {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1rem;
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	background-color: rgba(255, 200, 1, 0.15);
	color: var(--wp--preset--color--navy-900);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.tt-contact-hours__row {
	padding-bottom: 0.5rem;
	margin-bottom: 0.5rem;
	border-bottom: 1px solid rgba(0, 58, 99, 0.08);
	font-size: 0.875rem;
}

.tt-contact-hours__row--last {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.tt-contact-hours__day {
	margin: 0;
	color: rgba(0, 58, 99, 0.7);
}

.tt-contact-hours__time {
	margin: 0;
	font-weight: 600;
	color: var(--wp--preset--color--navy-900);
}

.tt-contact-hours__time--faint {
	color: rgba(0, 58, 99, 0.4);
}

.tt-contact-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 1rem 0 0;
	padding: 0.375rem 0.75rem;
	border-radius: 0.5rem;
	background-color: rgba(145, 77, 41, 0.15);
	color: var(--wp--preset--color--terracotta);
	font-size: 0.875rem;
	font-weight: 700;
}

.tt-contact-pill::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 9999px;
	background-color: var(--wp--preset--color--terracotta);
	animation: pulse-ring 2.4s ease-out infinite;
}

/* ---- Carte formulaire ---- */
.tt-contact-card {
	padding: 1.75rem;
	border-radius: 2rem;
	background-color: #fff;
	box-shadow: var(--wp--preset--shadow--warm), 0 0 0 1px rgba(0, 58, 99, 0.05);
}

@media (min-width: 640px) {
	.tt-contact-card {
		padding: 2.5rem;
	}
}

.tt-contact-card__title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 900;
	color: var(--wp--preset--color--navy-900);
}

@media (min-width: 640px) {
	.tt-contact-card__title {
		font-size: 1.875rem;
	}
}

.tt-contact-card__text {
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(0, 58, 99, 0.6);
}

.tt-contact-card__form {
	margin-top: 2rem;
}

/* ---- Habillage des champs Ninja Forms, pour matcher la maquette ---- */
.tt-contact-card__form .nf-form-cont input[type="text"],
.tt-contact-card__form .nf-form-cont input[type="email"],
.tt-contact-card__form .nf-form-cont input[type="tel"],
.tt-contact-card__form .nf-form-cont select,
.tt-contact-card__form .nf-form-cont textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 2px solid rgba(0, 58, 99, 0.1);
	border-radius: 0.75rem;
	background-color: rgba(239, 228, 217, 0.5);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1rem;
	color: var(--wp--preset--color--navy-900);
	outline: none;
	transition: border-color 0.3s ease, background-color 0.3s ease;
}

.tt-contact-card__form .nf-form-cont input:focus,
.tt-contact-card__form .nf-form-cont select:focus,
.tt-contact-card__form .nf-form-cont textarea:focus {
	border-color: var(--wp--preset--color--gold);
	background-color: #fff;
}

.tt-contact-card__form .nf-form-cont label {
	font-weight: 700;
	color: var(--wp--preset--color--navy-900);
}

.tt-contact-card__form .nf-form-cont .submit-wrap input[type="submit"],
.tt-contact-card__form .nf-form-cont button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 0.875rem 1.75rem;
	border: none;
	border-radius: 9999px;
	background-color: var(--wp--preset--color--terracotta);
	box-shadow: var(--wp--preset--shadow--warm);
	color: var(--wp--preset--color--cream);
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

.tt-contact-card__form .nf-form-cont .submit-wrap input[type="submit"]:hover,
.tt-contact-card__form .nf-form-cont button[type="submit"]:hover {
	background-color: var(--wp--preset--color--terracotta-dark);
}

