/* ==========================================================================
   Riviera 2026 : pages construites avec Elementor (accueil, croisières, contact)
   Les conteneurs et widgets portent des classes rtt-* ; le style vient d'ici,
   le contenu reste modifiable dans Elementor.
   ========================================================================== */

/* ---------- Remise à zéro des conteneurs Elementor ---------- */
.e-con[class*="rtt-"] {
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--content-width: var(--rtt-wrap);
	--margin-top: 0px;
	--margin-bottom: 0px;
}
.elementor-widget[class*="rtt-"] { margin: 0 !important; }
.elementor-widget[class*="rtt-"] p:last-child { margin-bottom: 0; }

/* Gouttière commune des sections encadrées */
.rtt-section,
.rtt-hero__inner,
.rtt-cruise__inner,
.rtt-reviews__inner,
.rtt-final__inner {
	--padding-left: 20px !important;
	--padding-right: 20px !important;
	width: 100%;
	max-width: calc(var(--rtt-wrap) + 40px);
	/* Elementor applique la marge via ces variables */
	--margin-left: auto !important;
	--margin-right: auto !important;
	margin-inline: auto;
}
.rtt-section { --padding-top: clamp(56px, 8vw, 104px) !important; --padding-bottom: clamp(56px, 8vw, 104px) !important; }

/* ---------- Typographie ---------- */
/* Le kit Elementor colore les titres en bleu : on reprend la main. */
.elementor-widget[class*="rtt-"] .elementor-heading-title { color: var(--rtt-ink) !important; }
.rtt-hero .elementor-widget .elementor-heading-title,
.rtt-cruise .rtt-h2 .elementor-heading-title { color: #fff !important; }
.rtt-final .elementor-widget .elementor-heading-title { color: var(--rtt-sun-ink) !important; }
.elementor-widget.rtt-eyebrow .elementor-heading-title { color: var(--rtt-sun) !important; }
.elementor-widget.rtt-tour__meta .elementor-heading-title { color: var(--rtt-sea) !important; }
.rtt-eyebrow .elementor-heading-title {
	font: 600 13px/1 var(--rtt-body) !important;
	letter-spacing: .14em !important;
	text-transform: uppercase;
	color: var(--rtt-sun) !important;
	margin-bottom: 14px;
}
.rtt-h2 .elementor-heading-title { font-size: clamp(30px, 4.4vw, 52px) !important; color: var(--rtt-ink); }
.rtt-muted, .rtt-muted p { color: var(--rtt-muted); }
.rtt-muted p { max-width: 60ch; margin-top: 12px; }

/* ---------- Boutons ---------- */
/* Le kit Elementor impose ses couleurs de bouton : !important nécessaire. */
.rtt-button .elementor-button {
	padding: 14px 24px !important;
	border-radius: 999px !important;
	border: 2px solid var(--rtt-sun) !important;
	background: var(--rtt-sun) !important;
	color: var(--rtt-sun-ink) !important;
	font: 600 16px/1 var(--rtt-body) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	box-shadow: none !important;
}
.rtt-button .elementor-button:hover { filter: brightness(1.08); }
.rtt-button--ghost .elementor-button { background: transparent !important; color: #fff !important; border-color: rgba(255, 255, 255, .7) !important; }
.rtt-button--navy .elementor-button { background: var(--rtt-navy) !important; border-color: var(--rtt-navy) !important; color: #fff !important; }
.rtt-textlink .elementor-button {
	background: none !important; border: 0 !important; border-radius: 0 !important;
	padding: 0 0 2px !important;
	border-bottom: 2px solid currentColor !important;
	color: var(--rtt-sea) !important; font: 600 16px/1.2 var(--rtt-body) !important;
	box-shadow: none !important;
}
.rtt-textlink .elementor-button:hover { color: var(--rtt-navy) !important; }
.rtt-actions { --gap: 14px !important; --row-gap: 14px !important; --column-gap: 14px !important; flex-wrap: wrap !important; }
.rtt-actions > .elementor-widget { width: auto !important; }

/* ---------- Bandeau d'accueil ---------- */
.rtt-hero { position: relative; isolation: isolate; }
.rtt-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 0;
	background: linear-gradient(180deg, rgba(6, 18, 27, .15) 0%, rgba(6, 18, 27, .15) 35%, rgba(6, 18, 27, .82) 100%);
}
.rtt-hero__inner {
	position: relative; z-index: 1;
	--padding-top: clamp(64px, 13vw, 150px) !important;
	--padding-bottom: 40px !important;
	--gap: 28px !important; --row-gap: 28px !important;
}
.rtt-hero .rtt-eyebrow .elementor-heading-title { margin-bottom: 0; }
.rtt-hero__title .elementor-heading-title {
	font-size: clamp(40px, 7vw, 84px) !important;
	max-width: 15ch;
	color: #fff !important;
}
.rtt-hero__lead p { font-size: clamp(18px, 2vw, 22px); max-width: 46ch; color: #E6F0F6; }
.rtt-proof {
	display: flex; flex-wrap: wrap; gap: 10px 28px;
	padding-top: 26px; margin-top: 10px;
	border-top: 1px solid rgba(255, 255, 255, .28);
	font-size: 15px; color: #fff;
}
.rtt-proof span { display: flex; align-items: baseline; }
.rtt-proof b { font: 700 20px var(--rtt-display); margin-right: 6px; }

/* ---------- En-tête de section ---------- */
.rtt-head {
	justify-content: space-between !important;
	align-items: flex-end !important;
	flex-wrap: wrap !important;
	--gap: 24px !important; --row-gap: 24px !important; --column-gap: 24px !important;
	margin-bottom: 36px !important;
}
.rtt-head__text { width: auto !important; flex: 1 1 420px; }
.rtt-head > .elementor-widget { width: auto !important; }

/* ---------- Cartes de tours ---------- */
.rtt-tours {
	display: grid !important;
	grid-template-columns: repeat(6, 1fr);
	gap: 24px !important;
}
.rtt-tour { grid-column: span 2; text-decoration: none !important; min-width: 0; display: flex !important; flex-direction: column; }
.rtt-tour--big { grid-column: span 3; }
.rtt-tour__img img {
	width: 100% !important; height: auto !important;
	aspect-ratio: 3 / 2; object-fit: cover;
	border-radius: var(--rtt-radius);
	transition: transform .5s;
}
.rtt-tour--big .rtt-tour__img img { aspect-ratio: 16 / 10; }
.rtt-tour__img { overflow: hidden; border-radius: var(--rtt-radius); }
.rtt-tour:hover .rtt-tour__img img { transform: scale(1.04); }
.rtt-tour__meta .elementor-heading-title {
	font: 600 12px/1 var(--rtt-body) !important;
	letter-spacing: .12em !important; text-transform: uppercase;
	color: var(--rtt-sea) !important;
	margin: 18px 0 8px;
}
.rtt-tour__title .elementor-heading-title { font-size: 22px !important; margin-bottom: 8px; color: var(--rtt-ink); }
.rtt-tour--big .rtt-tour__title .elementor-heading-title { font-size: 28px !important; }
.rtt-tour__desc p { color: var(--rtt-muted); font-size: 15.5px; }
@media (max-width: 900px) {
	.rtt-tours { grid-template-columns: 1fr 1fr; }
	.rtt-tour, .rtt-tour--big { grid-column: span 1; }
	.rtt-tour--big { grid-column: span 2; }
}
@media (max-width: 560px) {
	.rtt-tours { grid-template-columns: 1fr; }
	.rtt-tour--big { grid-column: span 1; }
}
@media (prefers-reduced-motion: reduce) { .rtt-tour__img img { transition: none; } }

/* ---------- Bandeau croisières ---------- */
.rtt-cruise { background: var(--rtt-navy); }
.rtt-cruise__inner {
	--padding-top: clamp(56px, 8vw, 104px) !important;
	--padding-bottom: clamp(56px, 8vw, 104px) !important;
	display: grid !important;
	grid-template-columns: 1.1fr .9fr;
	gap: 48px !important;
	align-items: center;
}
.rtt-cruise .rtt-h2 .elementor-heading-title { color: #fff !important; margin-bottom: 18px; }
.rtt-cruise__lead p { color: #BFD3DF; max-width: 50ch; margin-bottom: 28px; }
.rtt-cruise__text > .elementor-widget-button { width: auto !important; }
.rtt-ports { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255, 255, 255, .2); }
.rtt-ports li {
	display: flex; justify-content: space-between; gap: 16px;
	padding: 16px 0; border-bottom: 1px solid rgba(255, 255, 255, .2);
	font: 700 22px var(--rtt-display); color: #fff; margin: 0;
}
.rtt-ports span { font: 500 14px var(--rtt-body); color: var(--rtt-on-navy-muted); text-align: right; }
@media (max-width: 800px) { .rtt-cruise__inner { grid-template-columns: 1fr; gap: 32px !important; } }

/* ---------- Guide ---------- */
.rtt-guide {
	display: grid !important;
	grid-template-columns: 320px 1fr;
	gap: 56px !important;
	align-items: center;
}
.rtt-portrait { position: relative; }
.rtt-portrait img {
	width: 100% !important; height: auto !important;
	aspect-ratio: 4 / 5; object-fit: cover;
	border-radius: var(--rtt-radius);
}
.rtt-portrait::after {
	content: ""; position: absolute; inset: 14px -14px -14px 14px;
	border: 2px solid var(--rtt-sun); border-radius: var(--rtt-radius); z-index: -1;
}
.rtt-guide .rtt-h2 .elementor-heading-title { margin-bottom: 8px; }
.rtt-facts {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
	margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--rtt-line);
}
.rtt-facts b {
	display: block; font: 700 34px/1 var(--rtt-display);
	color: var(--rtt-sea); margin-bottom: 6px; font-variant-numeric: tabular-nums;
}
.rtt-facts span { display: block; font-size: 14px; line-height: 1.4; color: var(--rtt-muted); }
@media (max-width: 800px) {
	.rtt-guide { grid-template-columns: 1fr; gap: 40px !important; }
	.rtt-portrait { max-width: 260px !important; margin-left: 0 !important; }
}
@media (max-width: 480px) { .rtt-facts { grid-template-columns: 1fr 1fr; } }

/* ---------- Avis ---------- */
.rtt-reviews { background: var(--rtt-surface); }
.rtt-reviews__inner { --padding-top: clamp(56px, 8vw, 104px) !important; --padding-bottom: clamp(56px, 8vw, 104px) !important; }
.rtt-stars { color: var(--rtt-sun); letter-spacing: 3px; font-size: 22px; }
.rtt-quotes {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px !important;
}
.rtt-quote { min-width: 0; }
.rtt-quote blockquote {
	margin: 0; padding: 28px; height: 100%;
	background: var(--rtt-bg); border-radius: var(--rtt-radius); border: 0;
	display: flex; flex-direction: column; gap: 18px;
	font: 400 16.5px/1.6 var(--rtt-body); font-style: normal; color: var(--rtt-ink);
}
.rtt-quote blockquote { text-align: left !important; }
.rtt-quote blockquote::before,
.rtt-quote blockquote::after { content: none !important; display: none !important; }
.rtt-quote blockquote p { margin: 0; font-size: 16.5px; }
.rtt-quote footer { font: 600 14px var(--rtt-body); color: var(--rtt-muted); margin-top: auto; }
.rtt-quote footer b { color: var(--rtt-ink); }
@media (max-width: 900px) { .rtt-quotes { grid-template-columns: 1fr; } }

/* ---------- Appel final ---------- */
.rtt-final { background: var(--rtt-sun); }
.rtt-final__inner {
	--padding-top: clamp(56px, 8vw, 104px) !important;
	--padding-bottom: clamp(56px, 8vw, 104px) !important;
	align-items: center !important; text-align: center;
	--gap: 22px !important; --row-gap: 22px !important;
}
.rtt-final .rtt-h2 .elementor-heading-title { font-size: clamp(32px, 5.5vw, 64px) !important; max-width: 18ch; margin-inline: auto; color: var(--rtt-sun-ink) !important; }
.rtt-final__lead p { font-size: 19px; max-width: 52ch; margin-inline: auto; color: var(--rtt-sun-ink); }
.rtt-final > .e-con-inner, .rtt-final__inner > .elementor-widget { width: auto !important; }

/* Pages Elementor : pas de marge de contenu héritée de GrandTour */
.elementor-page #page_content_wrapper .inner { margin-top: 0 !important; }

/* ==========================================================================
   Shore Excursions
   ========================================================================== */
.rtt-hero--page .rtt-hero__inner { --padding-top: clamp(72px, 11vw, 130px) !important; --padding-bottom: 48px !important; --gap: 22px !important; --row-gap: 22px !important; }
.rtt-hero--page .rtt-hero__title .elementor-heading-title { font-size: clamp(36px, 6vw, 72px) !important; max-width: 16ch; }
.rtt-section--ports { --padding-top: 48px !important; --padding-bottom: 0px !important; }
.rtt-portrow { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--rtt-line); }
.rtt-portrow div { padding: 22px 18px; border-right: 1px solid var(--rtt-line); }
.rtt-portrow div:last-child { border-right: 0; }
.rtt-portrow b { display: block; font: 700 24px var(--rtt-display); color: var(--rtt-ink); }
.rtt-portrow span { font-size: 14px; color: var(--rtt-muted); }
@media (max-width: 700px) {
	.rtt-portrow { grid-template-columns: 1fr 1fr; }
	.rtt-portrow div:nth-child(2) { border-right: 0; }
	.rtt-portrow div:nth-child(-n+2) { border-bottom: 1px solid var(--rtt-line); }
}

.rtt-steps { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 24px !important; counter-reset: rttstep; }
.rtt-step {
	background: var(--rtt-surface); border: 1px solid var(--rtt-line); border-radius: var(--rtt-radius);
	--padding-top: 26px !important; --padding-bottom: 26px !important; --padding-left: 26px !important; --padding-right: 26px !important;
	counter-increment: rttstep; min-width: 0;
	display: block !important;
}
.rtt-step::before { content: counter(rttstep); display: block; font: 700 40px/1 var(--rtt-display); color: var(--rtt-sun); margin-bottom: 14px; }
.rtt-step__title .elementor-heading-title { font-size: 21px !important; margin-bottom: 8px; }
.rtt-step .rtt-muted p { margin-top: 0; font-size: 15.5px; }
@media (max-width: 800px) { .rtt-steps { grid-template-columns: 1fr; } }

.rtt-band { background: var(--rtt-surface); }
.rtt-grid3 { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 28px !important; }
.rtt-grid3 .rtt-tour { grid-column: auto; }
.rtt-tour__price .elementor-heading-title { font: 600 15px var(--rtt-display) !important; margin-top: 10px; }
@media (max-width: 900px) { .rtt-grid3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rtt-grid3 { grid-template-columns: 1fr; } }

.rtt-callout {
	margin-top: 40px !important;
	background: var(--rtt-bg); border-radius: var(--rtt-radius);
	--padding-top: 28px !important; --padding-bottom: 28px !important; --padding-left: 28px !important; --padding-right: 28px !important;
	justify-content: space-between !important; align-items: center !important; flex-wrap: wrap !important;
	--gap: 20px !important; --row-gap: 20px !important; --column-gap: 20px !important;
}
.rtt-callout__text { width: auto !important; flex: 1 1 360px; }
.rtt-callout > .elementor-widget { width: auto !important; }
.rtt-callout__title .elementor-heading-title { font-size: 24px !important; margin-bottom: 6px; }
.rtt-callout .rtt-muted p { margin-top: 0; }

/* ==========================================================================
   Contact
   ========================================================================== */
.rtt-contact-page { --padding-top: 56px !important; --padding-bottom: 96px !important; }
.rtt-contact-head { --gap: 16px !important; --row-gap: 16px !important; margin-bottom: 40px !important; }
.rtt-page-title .elementor-heading-title { font-size: clamp(36px, 6vw, 68px) !important; max-width: 16ch; }
.rtt-lead p { color: var(--rtt-muted); max-width: 56ch; font-size: 19px; }
.rtt-contact {
	display: grid !important; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
	gap: 48px !important; align-items: start;
}
@media (max-width: 860px) { .rtt-contact { grid-template-columns: 1fr; } }
.rtt-form {
	background: var(--rtt-surface); border: 1px solid var(--rtt-line); border-radius: 16px;
	--padding-top: clamp(22px, 4vw, 36px) !important; --padding-bottom: clamp(22px, 4vw, 36px) !important;
	--padding-left: clamp(22px, 4vw, 36px) !important; --padding-right: clamp(22px, 4vw, 36px) !important;
}
.rtt-cf7 .wpcf7-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; margin: 0; }
.rtt-cf7 .wpcf7-form > p { margin: 0; }
.rtt-cf7 .wpcf7-form > p:nth-of-type(n+5),
.rtt-cf7 .wpcf7-response-output,
.rtt-cf7 .hidden-fields-container { grid-column: 1 / -1; }
.rtt-cf7 .hidden-fields-container { display: none; }
.rtt-cf7 label { font: 600 14px/1.4 var(--rtt-body); color: var(--rtt-ink); display: block; }
.rtt-cf7 label br { display: none; }
.rtt-cf7 .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.rtt-cf7 input[type="text"],
.rtt-cf7 input[type="email"],
.rtt-cf7 input[type="tel"],
.rtt-cf7 textarea {
	width: 100% !important; min-width: 0;
	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;
}
.rtt-cf7 textarea { min-height: 150px; height: 150px; resize: vertical; }
.rtt-cf7 input:focus, .rtt-cf7 textarea:focus { outline: 3px solid var(--rtt-sea); outline-offset: 1px; }
.rtt-cf7 .wpcf7-submit { justify-self: start; }
@media (max-width: 520px) { .rtt-cf7 .wpcf7-form { grid-template-columns: 1fr; } }

.rtt-info-list { --gap: 22px !important; --row-gap: 22px !important; }
.rtt-info { border-top: 1px solid var(--rtt-line); --padding-top: 18px !important; }
.rtt-info__label .elementor-heading-title {
	font: 600 12px/1 var(--rtt-body) !important; letter-spacing: .12em !important;
	text-transform: uppercase; color: var(--rtt-muted) !important; margin-bottom: 8px;
}
.rtt-info__value .elementor-heading-title { font: 600 22px var(--rtt-display) !important; font-variant-numeric: tabular-nums; }
.rtt-info .rtt-muted p { margin-top: 4px; font-size: 15.5px; }
.rtt-guide-mini { align-items: center !important; --gap: 14px !important; --column-gap: 14px !important; margin-top: 6px !important; }
.rtt-guide-mini > .elementor-widget { width: auto !important; }
.rtt-guide-mini__img img { width: 56px !important; height: 56px !important; border-radius: 50%; object-fit: cover; }
.rtt-guide-mini .rtt-muted p { margin: 0; }

/* Sur-titre des bandeaux photo : ocre clair + ombre, lisible sur les façades colorées */
.rtt-hero .elementor-widget.rtt-eyebrow .elementor-heading-title {
	color: #FFE3B8 !important;
	text-shadow: 0 1px 10px rgba(6, 18, 27, .55);
}
.rtt-hero__title .elementor-heading-title,
.rtt-hero__lead p { text-shadow: 0 2px 18px rgba(6, 18, 27, .35); }

/* ---------- Correctifs mise en ligne (19/10) ---------- */
/* Elementor force les conteneurs de premier niveau en pleine largeur : on limite les sections encadrées */
html body .e-con.rtt-section {
	max-width: calc(var(--rtt-wrap) + 40px) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	width: 100% !important;
}

/* Étapes numérotées (Shore Excursions) : pastille ronde au-dessus du titre */
html body .e-con.rtt-step {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	--flex-direction: column !important;
	--gap: 0px !important;
}
html body .e-con.rtt-step::before {
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; border-radius: 50%;
	background: var(--rtt-sun); color: var(--rtt-sun-ink);
	font: 700 18px/1 var(--rtt-display); margin: 0 0 18px;
}
html body .e-con.rtt-step > .elementor-widget { width: 100% !important; }
/* Elementor positionne ::before en absolu (calque de fond) : la pastille reprend sa place dans le flux */
html body .e-con.rtt-step::before {
	position: static !important;
	inset: auto !important;
	width: 42px !important; height: 42px !important;
	opacity: 1 !important; mix-blend-mode: normal !important;
	background: var(--rtt-sun) !important;
	border-radius: 50% !important;
	flex: none;
}
