/* ==========================================================================
   Riviera 2026 : modèles PHP du thème enfant (tour, blog, article)
   ========================================================================== */

.rtt-wrap { max-width: var(--rtt-wrap); margin-inline: auto; padding-inline: 20px; }
.rtt-tour-page, .rtt-blog-page, .rtt-article-page {
	background: var(--rtt-bg);
	padding: 0 !important;
	margin: 0 !important;
}
.rtt-tour-page .rtt-wrap, .rtt-blog-page .rtt-wrap, .rtt-article-page .rtt-wrap { box-sizing: border-box; }

.rtt-btn { display: inline-flex; }
.rtt-textlink { font-weight: 600; color: var(--rtt-sea) !important; text-decoration: none; border-bottom: 2px solid currentColor; padding-bottom: 2px; }
.rtt-eyebrow-text { font: 600 13px/1 var(--rtt-body); letter-spacing: .14em; text-transform: uppercase; color: var(--rtt-sun); }

/* ---------- Fil d'Ariane et titre ---------- */
.rtt-crumbs { font-size: 14px; color: var(--rtt-muted); padding-block: 22px 18px; }
.rtt-crumbs a { color: var(--rtt-muted); text-decoration: none; }
.rtt-crumbs a:hover { color: var(--rtt-sea); }
.rtt-thead { display: grid; gap: 16px; padding-bottom: 28px; }
.rtt-thead__title { font-size: clamp(32px, 5.2vw, 60px) !important; max-width: 22ch; margin: 0 !important; padding: 0 !important; }
.rtt-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.rtt-chip {
	font: 600 13.5px/1 var(--rtt-body); padding: 9px 14px; border-radius: 999px;
	background: var(--rtt-surface); border: 1px solid var(--rtt-line);
	display: inline-flex; gap: 8px; align-items: center; color: var(--rtt-ink);
}
.rtt-chip i { font-style: normal; color: var(--rtt-sea); }

/* ---------- Mosaïque de photos (remplace le carrousel) ---------- */
.rtt-mosaic {
	display: grid; gap: 10px; border-radius: 16px; overflow: hidden;
	grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 230px 230px;
}
.rtt-mosaic figure { margin: 0; position: relative; overflow: hidden; background: var(--rtt-line); }
.rtt-mosaic img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; display: block; }
.rtt-mosaic figure:first-child { grid-row: span 2; }
.rtt-mosaic--4 figure:nth-child(4) { grid-column: 2 / 4; }
.rtt-mosaic--3 figure:nth-child(2), .rtt-mosaic--3 figure:nth-child(3) { grid-column: 2 / 4; }
.rtt-mosaic--2 { grid-template-columns: 2fr 1fr; }
.rtt-mosaic--1 { grid-template-columns: 1fr; grid-template-rows: 460px; }
.rtt-mosaic figcaption { position: absolute; left: 14px; bottom: 12px; color: #fff; font: 600 13px var(--rtt-body); text-shadow: 0 1px 8px rgba(0, 0, 0, .6); }
@media (max-width: 700px) {
	.rtt-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 240px 150px 150px; }
	.rtt-mosaic figure:first-child { grid-column: span 2; grid-row: auto; }
	.rtt-mosaic--4 figure:nth-child(4), .rtt-mosaic--3 figure:nth-child(2), .rtt-mosaic--3 figure:nth-child(3) { grid-column: auto; }
	.rtt-mosaic--1 { grid-template-rows: 260px; }
	.rtt-mosaic--2 { grid-template-rows: 240px 150px; }
}

/* ---------- Mise en page contenu + réservation ---------- */
.rtt-tlayout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: start; padding-block: 48px 80px; }
@media (max-width: 980px) { .rtt-tlayout { grid-template-columns: 1fr; gap: 40px; } }

/* Texte du tour (contenu libre saisi dans WordPress) */
.rtt-tcontent { font-size: 17.5px; line-height: 1.7; color: var(--rtt-ink); min-width: 0; }
.rtt-tcontent > *:first-child { margin-top: 0 !important; }
.rtt-tcontent h1 { font-size: clamp(24px, 2.6vw, 30px) !important; margin: 0 0 14px !important; }
.rtt-tcontent h2 { font-size: clamp(24px, 2.8vw, 32px) !important; margin: 44px 0 14px !important; padding: 0 !important; }
.rtt-tcontent h3 { font-size: 21px !important; margin: 32px 0 10px !important; padding: 0 !important; }
.rtt-tcontent p { margin: 0 0 18px; }
.rtt-tcontent hr { border: 0; border-top: 1px solid var(--rtt-line); margin: 36px 0; }
.rtt-tcontent ul { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 12px; }
.rtt-tcontent ul li { padding: 0 0 0 22px !important; position: relative; }
.rtt-tcontent ul li::before { content: ""; position: absolute; left: 0; top: .8em; width: 10px; height: 2px; background: var(--rtt-sea); }
.rtt-tcontent table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 16px; display: block; overflow-x: auto; }
.rtt-tcontent th, .rtt-tcontent td { padding: 14px 16px 14px 0; border: 0; border-bottom: 1px solid var(--rtt-line); text-align: left; vertical-align: top; background: none; }
.rtt-tcontent th, .rtt-tcontent td:first-child { font-family: var(--rtt-display); font-weight: 600; color: var(--rtt-ink); }
.rtt-tcontent td { color: var(--rtt-muted); }
.rtt-tcontent blockquote {
	margin: 32px 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--rtt-sun);
	font: 500 clamp(20px, 2.4vw, 26px)/1.35 var(--rtt-display); color: var(--rtt-ink); background: none;
}
.rtt-tcontent blockquote::before, .rtt-tcontent blockquote::after { content: none !important; }
.rtt-tcontent img { border-radius: 12px; height: auto; }
.rtt-tcontent a { color: var(--rtt-sea); }

.rtt-block { padding-top: 32px; margin-top: 32px; border-top: 1px solid var(--rtt-line); }
.rtt-incl { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rtt-incl > div { background: var(--rtt-surface); border: 1px solid var(--rtt-line); border-radius: 12px; padding: 20px; }
.rtt-incl h3 { margin: 0 0 10px !important; font-size: 17px !important; }
.rtt-incl ul { gap: 6px; margin: 0; font-size: 15.5px; color: var(--rtt-muted); }
@media (max-width: 560px) { .rtt-incl { grid-template-columns: 1fr; } }

.rtt-mini { display: flex; gap: 18px; align-items: center; background: var(--rtt-surface); border-radius: 14px; padding: 18px 20px; margin-top: 40px; }
.rtt-mini img { width: 68px !important; height: 68px !important; border-radius: 50% !important; object-fit: cover; flex: none; }
.rtt-mini p { margin: 0 !important; font-size: 15.5px; color: var(--rtt-muted); }
.rtt-mini b { color: var(--rtt-ink); }

/* ---------- Carte de réservation ---------- */
.rtt-book {
	position: sticky; top: calc(96px + env(safe-area-inset-top, 0px));
	background: var(--rtt-surface); border: 1px solid var(--rtt-line); border-radius: 16px;
	padding: 26px; display: grid; gap: 18px;
	box-shadow: 0 18px 40px -24px rgba(13, 43, 62, .35);
}
/* Carte plus haute que l'écran : elle défile seule, pour que tout le formulaire reste accessible */
@media (min-width: 981px) {
	.rtt-book {
		box-sizing: border-box; max-height: calc(100vh - 112px - env(safe-area-inset-top, 0px));
		overflow-y: auto; overscroll-behavior: contain;
		scrollbar-width: thin; scrollbar-color: var(--rtt-line) transparent;
	}
}
@media (max-width: 980px) { .rtt-book { position: static; } }
.rtt-price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.rtt-price b { font: 700 44px/1 var(--rtt-display); font-variant-numeric: tabular-nums; color: var(--rtt-ink); }
.rtt-price s { color: var(--rtt-muted); }
.rtt-price span { color: var(--rtt-muted); font-size: 15px; }
.rtt-times { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-block: 14px; border-block: 1px solid var(--rtt-line); }
.rtt-times small { display: block; font: 600 11.5px/1 var(--rtt-body); letter-spacing: .12em; text-transform: uppercase; color: var(--rtt-muted); margin-bottom: 6px; }
.rtt-times b { font: 600 18px var(--rtt-display); font-variant-numeric: tabular-nums; color: var(--rtt-ink); }
.rtt-call { display: grid; gap: 2px; text-align: center; padding-top: 14px; border-top: 1px solid var(--rtt-line); font-size: 14px; color: var(--rtt-muted); }
.rtt-call b { font: 600 20px var(--rtt-display); color: var(--rtt-ink); font-variant-numeric: tabular-nums; }
.rtt-badges { text-align: center; font: 600 12.5px var(--rtt-body); color: var(--rtt-muted); }

/* Formulaire de réservation Contact Form 7 (une colonne dans la carte) */
.rtt-book .wpcf7-form { display: grid; grid-template-columns: 1fr !important; gap: 14px; margin: 0; }
.rtt-book .wpcf7-form p { margin: 0; }
.rtt-book .wpcf7-form br { display: none; }
.rtt-book .wpcf7-form label { font: 600 13.5px/1.4 var(--rtt-body); color: var(--rtt-ink); display: block; }
.rtt-book .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.rtt-book .wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.rtt-book .wpcf7-form select,
.rtt-book .wpcf7-form textarea {
	width: 100% !important; min-width: 0; box-sizing: border-box;
	font: 400 16px var(--rtt-body) !important; color: var(--rtt-ink) !important;
	background: var(--rtt-bg) !important; border: 1px solid var(--rtt-line) !important;
	border-radius: 10px !important; padding: 12px 14px !important; box-shadow: none !important; height: auto;
}
.rtt-book .wpcf7-form textarea { min-height: 110px; height: 110px; }
.rtt-book .wpcf7-submit { width: 100%; }
.rtt-book .hidden-fields-container { display: none; }

/* ---------- Tours similaires / cartes ---------- */
.rtt-similar { background: var(--rtt-surface); padding-block: 72px; }
.rtt-similar__head { display: flex; justify-content: space-between; align-items: end; gap: 20px; flex-wrap: wrap; margin-bottom: 32px; }
.rtt-similar__head h2 { font-size: clamp(28px, 3.6vw, 42px) !important; margin: 0 !important; }
.rtt-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
@media (max-width: 900px) { .rtt-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rtt-cards { grid-template-columns: 1fr; } }
.rtt-card { display: flex; flex-direction: column; text-decoration: none !important; color: var(--rtt-ink); min-width: 0; }
.rtt-card__ph { aspect-ratio: 3 / 2; border-radius: var(--rtt-radius); overflow: hidden; background: var(--rtt-line); }
.rtt-card__ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; display: block; }
.rtt-card:hover .rtt-card__ph img { transform: scale(1.04); }
.rtt-card__meta { font: 600 12px/1 var(--rtt-body); letter-spacing: .12em; text-transform: uppercase; color: var(--rtt-sea); margin: 18px 0 8px; }
.rtt-card__title { font-size: 22px !important; margin: 0 0 8px !important; color: var(--rtt-ink) !important; }
.rtt-card__ph + .rtt-card__title { margin-top: 18px !important; }
.rtt-card__desc { margin: 0; color: var(--rtt-muted); font-size: 15.5px; }
.rtt-card__price { font: 600 15px var(--rtt-display); color: var(--rtt-ink); margin-top: 10px; }
@media (prefers-reduced-motion: reduce) { .rtt-card__ph img { transition: none; } }

/* ---------- Barre fixe mobile ---------- */
.rtt-sticky { display: none; }
@media (max-width: 980px) {
	.rtt-sticky {
		display: flex; position: sticky; bottom: 0; z-index: 9;
		justify-content: space-between; align-items: center; gap: 12px;
		background: var(--rtt-navy); color: #fff;
		padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px));
	}
	.rtt-sticky b { font: 700 22px var(--rtt-display); color: #fff; }
	.rtt-sticky small { display: block; font-size: 12px; color: var(--rtt-on-navy-muted); }
	.rtt-sticky .rtt-btn { padding: 12px 20px; font-size: 15px; }
}

/* ==========================================================================
   Blog : liste
   ========================================================================== */
.rtt-blog { padding-block: 56px 96px; }
.rtt-blog__head { display: grid; gap: 14px; margin-bottom: 40px; }
.rtt-blog__head h1 { font-size: clamp(36px, 6vw, 68px) !important; margin: 0 !important; max-width: 18ch; }
.rtt-feat { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; align-items: center; text-decoration: none !important; color: var(--rtt-ink); margin-bottom: 56px; }
.rtt-feat__ph { aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; background: var(--rtt-line); }
.rtt-feat__ph img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.rtt-feat h2 { font-size: clamp(28px, 3.6vw, 42px) !important; margin: 12px 0 14px !important; color: var(--rtt-ink) !important; }
.rtt-feat p { color: var(--rtt-muted); margin: 0 0 18px; }
@media (max-width: 800px) { .rtt-feat { grid-template-columns: 1fr; gap: 20px; } }
.rtt-date { font: 600 13px var(--rtt-body); color: var(--rtt-muted); font-variant-numeric: tabular-nums; }
.rtt-card__meta--date { color: var(--rtt-muted); letter-spacing: .06em; }
.rtt-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 56px; }
.rtt-pagination .page-numbers {
	min-width: 42px; padding: 10px 14px; border-radius: 999px; text-align: center;
	border: 1px solid var(--rtt-line); background: var(--rtt-surface); color: var(--rtt-ink); text-decoration: none; font-weight: 600;
}
.rtt-pagination .page-numbers.current { background: var(--rtt-ink); border-color: var(--rtt-ink); color: var(--rtt-bg); }

/* ==========================================================================
   Article
   ========================================================================== */
.rtt-art-head { max-width: 820px; margin-inline: auto; padding-block: 40px 28px; display: grid; gap: 18px; justify-items: center; text-align: center; }
.rtt-art-head h1 { font-size: clamp(32px, 5vw, 56px) !important; margin: 0 !important; }
.rtt-art-meta { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; font-size: 14.5px; color: var(--rtt-muted); }
.rtt-art-img { max-width: 1100px; margin-inline: auto; border-radius: 16px; overflow: hidden; aspect-ratio: 21 / 9; background: var(--rtt-line); }
.rtt-art-img img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
@media (max-width: 700px) { .rtt-art-img { aspect-ratio: 4 / 3; } }

.rtt-prose { max-width: 68ch; margin-inline: auto; padding-block: 48px 72px; font-size: 18.5px; line-height: 1.75; color: var(--rtt-ink); }
.rtt-prose > p:first-of-type { font-size: 21px; line-height: 1.6; }
.rtt-prose p { margin: 0 0 22px; }
.rtt-prose h2 { font-size: clamp(26px, 3vw, 34px) !important; margin: 48px 0 18px !important; padding: 0 !important; scroll-margin-top: 100px; }
.rtt-prose h3 { font-size: clamp(24px, 2.6vw, 30px) !important; margin: 44px 0 16px !important; padding: 0 !important; scroll-margin-top: 100px; }
.rtt-prose h4 { font-size: 22px !important; margin: 36px 0 12px !important; padding: 0 !important; scroll-margin-top: 100px; }
.rtt-prose ul { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 16px; }
.rtt-prose ul li { padding-left: 24px !important; position: relative; }
.rtt-prose ul li::before { content: ""; position: absolute; left: 0; top: .8em; width: 12px; height: 2px; background: var(--rtt-sun); }
.rtt-prose ol { padding-left: 22px; }
.rtt-prose a { color: var(--rtt-sea); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.rtt-prose img { border-radius: 12px; height: auto; }
.rtt-prose blockquote { margin: 32px 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--rtt-sun); font: 500 24px/1.4 var(--rtt-display); background: none; }
.rtt-prose blockquote::before, .rtt-prose blockquote::after { content: none !important; }

.rtt-toc { border: 1px solid var(--rtt-line); border-radius: 14px; padding: 20px 24px; margin-bottom: 36px; font-size: 16px; }
.rtt-toc b { display: block; font: 600 12px var(--rtt-body); letter-spacing: .12em; text-transform: uppercase; color: var(--rtt-muted); margin-bottom: 10px; }
.rtt-toc ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.rtt-toc a { text-decoration: none; color: var(--rtt-ink); }
.rtt-toc a:hover { color: var(--rtt-sea); }

.rtt-cta-box {
	background: var(--rtt-navy); color: #fff; border-radius: 16px; padding: 28px;
	display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; margin-block: 40px;
}
.rtt-cta-box img { width: 64px !important; height: 64px !important; border-radius: 50% !important; object-fit: cover; }
.rtt-cta-box p { margin: 0 !important; font-size: 16px; color: #BFD3DF; }
.rtt-cta-box b { display: block; color: #fff; font: 600 20px var(--rtt-display); margin-bottom: 4px; }
.rtt-cta-box .rtt-btn { text-decoration: none; }
@media (max-width: 640px) { .rtt-cta-box { grid-template-columns: 1fr; } }

.rtt-comments { max-width: 68ch; padding-block: 48px; }

/* ==========================================================================
   Pages non refondues (Content Builder GrandTour) : grilles de tours du thème
   GrandTour place les cartes en position absolue (calculée avec l'ancienne police) :
   on repasse en grille CSS simple, dans le style des cartes rtt-card.
   ========================================================================== */
.portfolio_filter_wrapper.classic {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	height: auto !important;
}
.portfolio_filter_wrapper.classic > .element {
	position: static !important;
	transform: none !important;
	width: auto !important;
	left: auto !important;
	top: auto !important;
	margin: 0 !important;
	float: none !important;
}
.portfolio_filter_wrapper.classic .one_third,
.portfolio_filter_wrapper.classic .one_fourth,
.portfolio_filter_wrapper.classic .one_half {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
.portfolio_filter_wrapper.classic .tour_image { display: block; aspect-ratio: 3 / 2; border-radius: var(--rtt-radius); overflow: hidden; }
.portfolio_filter_wrapper.classic .tour_image img { width: 100% !important; height: 100% !important; object-fit: cover; }
.portfolio_filter_wrapper.classic .portfolio_info_wrapper { padding: 18px 0 0 !important; text-align: left !important; background: transparent !important; }
.portfolio_filter_wrapper.classic .portfolio_info_wrapper h4 { font-size: 22px !important; text-align: left !important; margin: 0 0 8px !important; color: var(--rtt-ink) !important; }
.portfolio_filter_wrapper.classic .portfolio_info_wrapper p,
.portfolio_filter_wrapper.classic .tour_excerpt { text-align: left !important; color: var(--rtt-muted) !important; font-size: 15.5px; }
@media (max-width: 900px) { .portfolio_filter_wrapper.classic { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .portfolio_filter_wrapper.classic { grid-template-columns: 1fr; } }

/* Bandeau de titre des pages du thème et barre latérale */
#page_caption h1 { font-size: clamp(30px, 4.6vw, 54px) !important; letter-spacing: -0.02em; }
#page_caption.hasbg::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(6, 18, 27, 0) 40%, rgba(6, 18, 27, .6) 100%);
}
#page_caption .page_title_wrapper { position: relative; z-index: 1; }
.sidebar_widget li h2.widgettitle, .sidebar .widgettitle { font-family: var(--rtt-display) !important; color: var(--rtt-ink) !important; }
.sidebar .tour_price, .tour_image .tour_price { background: var(--rtt-sun) !important; color: var(--rtt-sun-ink) !important; font-family: var(--rtt-body) !important; }

/* ---------- Correctifs mise en ligne (19/10) ---------- */
/* GrandTour limite #page_content_wrapper à 1425 px, calé à gauche */
html body #page_content_wrapper.rtt-tour-page,
html body #page_content_wrapper.rtt-blog-page,
html body #page_content_wrapper.rtt-article-page {
	max-width: none !important;
	width: 100% !important;
	float: none !important;
}
.rtt-thead__title { max-width: none !important; line-height: 1.08 !important; }

/* Boutons d'envoi des formulaires Contact Form 7 : couleurs du thème, y compris au survol */
html body .wpcf7-form input.wpcf7-submit {
	background: var(--rtt-sun) !important; border: 2px solid var(--rtt-sun) !important;
	color: var(--rtt-sun-ink) !important; border-radius: 999px !important;
	font: 600 16px/1 var(--rtt-body) !important; text-transform: none !important; letter-spacing: 0 !important;
	padding: 15px 28px !important; box-shadow: none !important; height: auto !important;
	transition: background .2s, border-color .2s;
}
html body .wpcf7-form input.wpcf7-submit:hover,
html body .wpcf7-form input.wpcf7-submit:focus-visible {
	background: #C97614 !important; border-color: #C97614 !important; color: #fff !important;
}

/* Formulaire de réservation plus compact ; date et nombre de personnes sur une ligne */
.rtt-book .wpcf7-form { grid-template-columns: 1fr 1fr !important; gap: 12px 12px !important; }
.rtt-book .wpcf7-form > * { grid-column: 1 / -1; }
.rtt-book .wpcf7-form > p:has(input[type="date"]),
.rtt-book .wpcf7-form > p:has(select) { grid-column: auto; }
.rtt-book .wpcf7-form p { margin: 0 !important; padding: 0 !important; line-height: 1.3; }
.rtt-book .wpcf7-form label { margin: 0 !important; }
.rtt-book .wpcf7-form-control-wrap { margin-top: 5px !important; }
.rtt-book .wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.rtt-book .wpcf7-form select { padding: 10px 12px !important; margin: 0 !important; }
.rtt-book .wpcf7-form .wpcf7-submit { margin-top: 6px !important; }
.rtt-book .wpcf7-spinner { position: absolute; }

/* Barre fixe mobile : position fixe, masquée quand le formulaire est à l'écran (script dans functions.php) */
@media (max-width: 980px) {
	.rtt-sticky {
		position: fixed !important; left: 0; right: 0; bottom: 0;
		box-shadow: 0 -10px 30px -12px rgba(6, 18, 27, .45);
		transition: transform .25s ease, opacity .25s ease;
	}
	.rtt-sticky.is-hidden { transform: translateY(110%); opacity: 0; pointer-events: none; }
	.rtt-tour-page { padding-bottom: 76px !important; }
}
@media (prefers-reduced-motion: reduce) { .rtt-sticky { transition: none; } }
/* La règle du formulaire Contact (rtt-pages.css) s'applique aussi ici : on la surclasse */
html body .rtt-book .rtt-cf7 .wpcf7-form > p { grid-column: 1 / -1 !important; }
html body .rtt-book .rtt-cf7 .wpcf7-form > p:has(input[type="date"]),
html body .rtt-book .rtt-cf7 .wpcf7-form > p:has(select) { grid-column: auto !important; }
/* Indicateur de chargement du bouton d'envoi : à l'intérieur du bouton, sans déborder */
.rtt-book .wpcf7-form p:has(.wpcf7-submit) { position: relative; }
.rtt-book .wpcf7-form .wpcf7-spinner { position: absolute !important; right: 14px; top: 50%; margin: -12px 0 0 !important; }

/* Badge reCAPTCHA masqué : la mention obligatoire est ajoutée sous chaque formulaire CF7. */
.grecaptcha-badge { visibility: hidden !important; }
.rtt-recaptcha-note { grid-column: 1 / -1; margin: 0; font: 400 12px/1.5 var(--rtt-body); color: #6b7785; }
.rtt-recaptcha-note a { color: inherit; text-decoration: underline; }
/* Ancre #reserver : compense le header fixe (76 px, 64 px sur mobile). */
#reserver { scroll-margin-top: 96px; }
@media (max-width: 960px) { #reserver { scroll-margin-top: 80px; } }
