/* ===== Design tokens — re-verified against the LIVE reference's actual
   computed custom properties (the static globals.css source file has
   several superseded :root blocks; these values are the ones the
   live site actually renders with). ===== */
:root {
	--taxi-navy: #06394b;
	--taxi-navy-2: #022a38;
	--taxi-orange: #ef7048;
	--taxi-yellow: #f7c95d;
	--taxi-cream: #f3f8f6;
	--taxi-ink: #07384a;
	--taxi-muted: #526c73;
	--taxi-line: #bfd4d2;
	--taxi-sea: #168ca0;
	--taxi-lagoon: #65c6c5;
	--taxi-foam: #e6f4f1;
	/* kept as aliases so existing rules below don't need renaming */
	--taxi-teal: var(--taxi-sea);
	--taxi-teal-light: var(--taxi-lagoon);
}

/* ===== Base ===== */
body {
	background: var(--taxi-cream);
	color: var(--taxi-ink);
}

/* ===== Header brand: checkers either side of the logo (decorative,
   matches the reference's conic-gradient checkerboard). Blocksy's own
   header CSS sets .site-branding/.site-title-container display later in
   the cascade, so these need !important to actually win. ===== */
.site-branding {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: 10px;
}
.site-branding .site-logo-container {
	order: 2;
}
.site-branding .site-title-container {
	order: 1;
	display: block !important;
	width: auto !important;
}
.site-branding .site-title a {
	font-weight: 800;
	color: var(--taxi-navy);
	white-space: nowrap;
}
#header.ct-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(247, 251, 249, 0.91);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 5px 24px rgba(3, 45, 59, 0.11);
}
/* Checkers: identical motif movement and timing to the HTML reference. */
.site-branding::before, .site-branding::after {
 transition: transform .28s ease, background-position .28s ease;
}
.site-branding::before,
.site-branding::after {
	content: "";
	display: block;
	width: 44px;
	height: 14px;
	flex-shrink: 0;
	background-image: conic-gradient(var(--taxi-navy) 25%, transparent 0deg, transparent 50%, var(--taxi-navy) 0deg, var(--taxi-navy) 75%, transparent 0deg);
	background-size: 14px 14px;
	order: 0;
}
.site-branding::after {
	order: 3;
}


/* ===== Header call button (Blocksy builder button, not a Gutenberg block) ===== */
.ct-header .ct-button {
	background-color: var(--taxi-orange) !important;
	color: #fff !important;
	border-radius: 30px !important;
}

/* ===== Compact-menu action bar ===== */
.mobile-actions {
	display: none;
}
@media (max-width: 1150px) {
	.mobile-actions {
		display: flex;
		position: fixed;
		z-index: 500;
		left: 10px;
		right: 10px;
		bottom: calc(9px + env(safe-area-inset-bottom));
		gap: 8px;
		padding: 7px;
		background: rgba(247, 251, 249, .96);
		border: 1px solid rgba(101, 198, 197, .72);
		border-radius: 8px;
		box-shadow: 0 7px 24px #00151f55;
	}
	.mobile-actions a {
		flex: 1;
		min-height: 44px;
		display: grid;
		place-items: center;
		border-radius: 5px;
		font: 800 13px/1 Arial, Helvetica, sans-serif;
		text-decoration: none;
		letter-spacing: .04em;
		text-transform: uppercase;
	}
	.mobile-actions__call { background: var(--taxi-navy); color: #fff; }
	.mobile-actions__book { background: var(--taxi-orange); color: #fff; }
}

.entry-content .wp-block-group.alignfull > .wp-block-group__inner-container,
.entry-content.is-layout-constrained > * {
	max-width: none;
}

/* ===== Section rhythm ===== */
.wp-block-group.section,
.wp-block-group.popular,
.wp-block-group.faq,
.wp-block-group.company {
	padding: 70px 24px;
	max-width: 1180px;
	margin-inline: auto;
}
.wp-block-group.process,
.wp-block-group.routes-section,
.wp-block-group.contact-section {
	padding: 70px 24px;
}
.wp-block-group.process.alignfull {
	position: relative;
	overflow: hidden;
	background: linear-gradient(125deg, #08758a, #0d93a2 58%, #07556c);
	color: #fff;
	width: auto !important;
	margin: 0 5vw 82px !important;
	border-radius: 18px;
}
.wp-block-group.process::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: repeating-radial-gradient(at 95% 105%, transparent 0, transparent 34px, rgba(255, 255, 255, 0.075) 35px, rgba(255, 255, 255, 0.075) 37px);
}
.process-whale {
	position: absolute;
	right: 0;
	bottom: 0;
	width: min(660px, 58vw);
	opacity: 0.58;
	pointer-events: none;
	filter: saturate(1.35) contrast(1.08);
}
.wp-block-group.process h2,
.wp-block-group.process p {
	color: #fff;
	position: relative;
}
.wp-block-group.process .kicker {
	color: var(--taxi-yellow);
	position: relative;
}
.wp-block-group.process .wp-block-button__link {
	background-color: #fff !important;
	color: var(--taxi-navy) !important;
}
.wp-block-group.process .wp-block-buttons {
	position: relative;
}
.wp-block-group.facts {
	background: linear-gradient(105deg, #0e778b, #1698a8 58%, #0a6074);
	color: #fff;
	padding: 30px 24px;
}
.wp-block-group.facts .wp-block-columns {
	max-width: 1180px;
	margin-inline: auto;
}

/* ===== Kickers / tags / fine print ===== */
.kicker {
	color: var(--taxi-orange);
	font-weight: 900;
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.kicker.ink {
	color: var(--taxi-orange);
}
.tag {
	display: inline-block;
	background: var(--taxi-orange);
	color: #fff;
	font-weight: 800;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	padding: 8px 12px;
	border-radius: 3px;
	transform: rotate(-2deg);
	box-shadow: 5px 5px 0 0 var(--taxi-sea);
}
.fine-note {
	color: var(--taxi-muted);
	font-size: 0.85rem;
	margin-top: 20px;
}
.fine-note.light-text {
	color: #b9c3c1;
}

/* ===== Hero (Cover block) ===== */
.wp-block-cover.hero-new {
	padding-top: 92px;
	position: relative;
}
.wp-block-cover.hero-new::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: 0.35;
	background-image:
		radial-gradient(circle at 12% 18%, rgba(114, 216, 208, 0.17) 0, rgba(114, 216, 208, 0.17) 2px, transparent 3px),
		linear-gradient(115deg, transparent 68%, rgba(255, 255, 255, 0.094) 68.2%, transparent 68.5%);
	background-size: 34px 34px, auto;
}
.wp-block-cover.hero-new .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	max-width: 1180px;
	margin-inline: auto;
	width: 100%;
	padding: 60px 24px;
	text-align: left;
}
.hero-title {
	position: relative;
	font-size: clamp(2.4rem, 6vw, 4.5rem);
	line-height: 1.05;
	letter-spacing: -0.07em;
	margin: 20px 0 32px;
	text-shadow: 0 4px 22px #001923, 0 1px 2px #001923;
}
.hero-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -16px;
	width: 154px;
	height: 5px;
	background: linear-gradient(90deg, var(--taxi-lagoon), var(--taxi-yellow));
	transition: width 0.3s ease;
}
.hero-title em {
	font-style: italic;
	color: var(--taxi-yellow);
	display: inline-block;
	transition: color 0.25s ease, transform 0.25s ease;
}
@media (hover: hover) {
	.hero-title:hover span {
		display: inline-block;
		transition: transform 0.25s ease;
		transform: translateX(10px);
	}
	.hero-title:hover em {
		color: #ffe083;
		transform: translateX(-7px);
	}
	.hero-title:hover::after {
		width: 72%;
	}
}
.hero-lead {
	max-width: 560px;
	color: #dce7e9;
	font-size: 1.05rem;
	line-height: 1.6;
}
.review-link a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	color: var(--taxi-navy);
	font-weight: 700;
	text-decoration: none;
	border-radius: 8px;
	padding: 13px 17px;
	margin-top: 20px;
}
.hero-route-form {
	background: linear-gradient(155deg, rgba(6, 57, 75, 0.95), rgba(7, 85, 104, 0.93));
	backdrop-filter: blur(7px);
	-webkit-backdrop-filter: blur(7px);
	border: 1px solid #bce6e1;
	border-radius: 18px;
	box-shadow: 10px 10px 0 0 var(--taxi-orange);
	padding: 24px;
	margin-top: 32px;
	max-width: 420px;
}
@media (min-width: 901px) {
	.hero-layout {
		display: grid;
		grid-template-columns: 1.3fr 1fr;
		gap: 60px;
		align-items: start;
	}
	.hero-route-form {
		margin-top: 0;
		max-width: none;
		justify-self: end;
		width: 100%;
	}
}
.hero-route-form h2 {
	color: #fff;
	font-size: 1.1rem;
	margin-top: 0;
}
.route-form-fields {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.route-form-fields label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	color: #fff;
	font-size: 0.8rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.route-form-fields select,
.route-form-fields input {
	padding: 10px;
	background: #fff;
	color: var(--taxi-navy);
	border-radius: 7px;
	border: none;
	font-size: 0.95rem;
	text-transform: none;
	letter-spacing: normal;
}
.continue-button {
	background: var(--taxi-teal-light);
	color: var(--taxi-navy);
	border: none;
	border-radius: 7px;
	padding: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	cursor: pointer;
	margin-top: 6px;
}
.continue-button:hover {
	background: #4fb3b2;
}

/* ===== Buttons ===== */
.wp-block-button__link {
	background-color: var(--taxi-orange) !important;
	color: #fff !important;
	border-radius: 4px;
	font-weight: 800;
	padding: 14px 26px;
	text-transform: uppercase;
	font-size: 0.85rem;
	letter-spacing: 0.03em;
}
.wp-block-button__link:hover {
	background-color: #e8471f !important;
	color: #fff !important;
}
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	border: 2px solid var(--taxi-navy);
	color: var(--taxi-navy) !important;
}
.wp-block-group.contact-section .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: #fff;
	color: #fff !important;
}
.wp-block-button.is-style-reviews .wp-block-button__link {
	background-color: var(--taxi-yellow) !important;
	color: var(--taxi-navy) !important;
	text-transform: none;
}

/* ===== Destination pages: reference geometry, native Gutenberg groups ===== */
.wp-block-cover.page-hero { padding: 68px max(24px, calc((100% - 1180px) / 2)); min-height: 500px; }
.wp-block-cover.page-hero .wp-block-cover__inner-container { width: 100%; max-width: 1180px; padding: 0; margin-inline: auto; }
.wp-block-cover.page-hero .page-hero-title { max-width: 920px; font-size: clamp(2.8rem, 7vw, 6.2rem); line-height: .9; letter-spacing: -.06em; margin: 22px 0; color: white; }
.wp-block-cover.page-hero .page-lead { max-width: 650px; color: #edf8f6; font-size: 19px; line-height: 1.65; margin: 24px 0; }
.breadcrumb { color: #edf8f6; font-size: 12px; margin-bottom: 20px; }
.breadcrumb a { color: inherit; }
.page-hero .wp-block-button__link, .final-cta .wp-block-button__link { background: var(--taxi-yellow) !important; color: var(--taxi-navy) !important; border: 2px solid var(--taxi-yellow); border-radius: 6px; font-size: 13px; font-weight: 900; min-height: 54px; padding: 14px 24px; }
.page-hero .wp-block-button.is-style-outline .wp-block-button__link, .final-cta .wp-block-button.is-style-outline .wp-block-button__link { border-color: white !important; color: white !important; background: transparent !important; }
.wp-block-group.final-cta .wp-block-button.is-style-outline .wp-block-button__link { border-color: var(--taxi-navy) !important; color: var(--taxi-navy) !important; }
.page-hero .wp-block-button__link:hover, .final-cta .wp-block-button__link:hover { transform: translateY(-2px); filter: brightness(1.06); }
.wp-block-group.split-wrap { display: grid; grid-template-columns: 1.333fr 1fr; gap: 70px; align-items: stretch; margin-top: 0; }
.split-wrap > * { min-width: 0; width: 100%; max-width: none; margin: 0 !important; }
.wp-block-group.section .split-col h2 { font-size: clamp(2.2rem, 4.6vw, 4.14rem); line-height: .98; letter-spacing: -.045em; margin: 20px 0; }
.panel { background: white; border: 3px solid #2d7180; border-radius: 0; padding: 30px; }
.panel .metric { display: block; color: var(--taxi-orange); font-size: 42px; line-height: 1.55; font-weight: 900; margin: 0; }
.panel h3 { margin: 0; font-size: 16px; font-weight: 400; line-height: 1.55; }
.panel ul { padding-left: 0; list-style: none; margin-top: 0; }
.panel li { padding-block: 12px; border-top: 1px solid var(--taxi-line); }
.wp-block-group.final-cta { background: var(--taxi-lagoon); color: var(--taxi-ink); text-align: center; padding: 90px 24px; }
.wp-block-group.final-cta .kicker { color: var(--taxi-navy); }
.wp-block-group.final-cta h2 { font-size: clamp(2.2rem, 4.83vw, 4.35rem); line-height: .96; letter-spacing: -.055em; margin: 20px 0; }
.final-cta .wp-block-buttons { justify-content: center; margin-top: 26px; }
.destination-routes h2 { font-size: clamp(1.8rem, 3.06vw, 2.75rem); line-height: 1; letter-spacing: -.035em; }
.route-list { border-top: 2px solid var(--taxi-lagoon); }
.route-row { display: flex; justify-content: space-between; gap: 20px; padding: 16px 0; border-bottom: 1px solid #ffffff24; }
.route-row > p { margin: 0 !important; }
.route-row > p:last-child { flex-shrink: 0; color: var(--taxi-yellow); }
@media (max-width: 900px) {
 .wp-block-cover.page-hero { padding: 48px 24px; min-height: 0 !important; }
 .wp-block-group.split-wrap { grid-template-columns: 1fr; gap: 30px; }
 .wp-block-group.final-cta { padding: 60px 24px; }
 .page-hero .wp-block-buttons { gap: 12px; }
}

/* ===== Columns as cards (trajets populaires, destinations, tarifs) ===== */
.card-grid {
	margin-top: 20px;
}
.card-grid .wp-block-column {
	background: linear-gradient(155deg, #fff 0%, #edf8f5 100%);
	border-radius: 12px;
	padding: 22px;
	box-shadow: inset 0 5px 0 0 var(--taxi-sea), 0 8px 24px rgba(7, 58, 72, 0.07);
}
.card-teal .wp-block-column {
	border: 2px solid var(--taxi-sea);
}
.card-navy .wp-block-column {
	position: relative;
	overflow: hidden;
	border: 2px solid var(--taxi-navy);
	padding: 28px;
	transition: transform 0.25s ease, background 0.25s ease;
}
.card-navy .wp-block-column h3 {
	font-size: 1.8rem;
	color: var(--taxi-navy);
}
.card-navy .wp-block-column::after {
	content: "";
	position: absolute;
	left: 22px;
	bottom: 25px;
	width: 40%;
	height: 3px;
	background: linear-gradient(90deg, var(--taxi-sea), var(--taxi-lagoon), transparent);
	transform: scaleX(0.35);
	transform-origin: left;
	transition: transform 0.3s ease;
}
@media (hover: hover) {
	.card-navy .wp-block-column:hover {
		background: var(--taxi-yellow);
		transform: translateY(-6px);
	}
	.card-navy .wp-block-column:hover::after {
		transform: scaleX(1);
	}
}
.fare-callout .wp-block-column {
	border: none;
	border-radius: 0;
	padding: 20px 22px;
	box-shadow: none;
}

/* ===== Table ===== */
.wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 24px;
}
.wp-block-table th,
.wp-block-table td {
	border: 1px solid var(--taxi-line);
	padding: 12px;
	text-align: left;
	font-size: 0.92rem;
}
.wp-block-table thead th {
	background: var(--taxi-teal-light);
	color: var(--taxi-navy);
	font-weight: 800;
}
.table-quote {
	display: inline-block;
	background: var(--taxi-sea);
	color: #fff !important;
	white-space: nowrap;
	border-radius: 6px;
	padding: 6px 12px;
	font-weight: 700;
	font-size: 0.85rem;
	transition: background 0.2s ease;
}
.table-quote:hover {
	background: var(--taxi-orange);
}
.section .wp-block-table,
.section .wp-block-table + .wp-element-caption {
	box-shadow: 0 8px 25px rgba(6, 57, 75, 0.07);
	border-radius: 12px;
	overflow: hidden;
}

/* ===== FAQ / Details ===== */
.wp-block-details {
	border: 2px solid var(--taxi-teal);
	border-radius: 10px;
	padding: 16px 20px;
	margin-bottom: 12px;
	background: linear-gradient(155deg, #fff 0%, #edf8f5 100%);
	box-shadow: 0 8px 24px rgba(7, 58, 72, 0.07);
}
.wp-block-details summary {
	font-weight: 700;
	cursor: pointer;
}

/* ===== Company / dark sections ===== */
.wp-block-group.routes-section.alignfull {
	position: relative;
	overflow: hidden;
	background: var(--taxi-navy);
	color: #fff;
	width: auto !important;
	margin: 0 5vw 82px !important;
	border-radius: 20px;
}
.wp-block-group.routes-section::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.043) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.043) 1px, transparent 1px);
	background-size: 48px 48px, 48px 48px;
}
.wp-block-group.routes-section > * {
	position: relative;
}
.wp-block-group.routes-section .kicker,
.wp-block-group.routes-section h2 {
	color: #fff;
}
/* Row-list look (no boxed table) for the dark routes/durations table,
   matching the reference's list-with-dividers treatment. */
.wp-block-group.routes-section .wp-block-table table,
.wp-block-group.routes-section .wp-block-table thead,
.wp-block-group.routes-section .wp-block-table tbody,
.wp-block-group.routes-section .wp-block-table tr {
	display: block;
	width: 100%;
}
.wp-block-group.routes-section .wp-block-table thead {
	display: none;
}
.wp-block-group.routes-section .wp-block-table tr {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	border: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	padding: 16px 0;
}
.wp-block-group.routes-section .wp-block-table th,
.wp-block-group.routes-section .wp-block-table td {
	border: none;
	padding: 0;
	background: transparent;
	color: #fff;
}
.wp-block-group.routes-section .wp-block-table td:last-child {
	color: var(--taxi-yellow);
	font-weight: 800;
	text-align: right;
}

/* ===== Contact ===== */
.wp-block-group.contact-section {
	background: linear-gradient(#edf7f4, #dcefeb);
	color: var(--taxi-ink);
}
.wp-block-group.contact-section .kicker {
	color: var(--taxi-orange);
}
.wp-block-group.contact-section h2 {
	color: var(--taxi-navy);
}
.wp-block-group.contact-section .wp-block-columns a {
	color: var(--taxi-navy);
}
.booking-form {
	background: var(--taxi-navy);
	color: #fff;
	border-radius: 24px;
	padding: 24px 18px;
	margin-top: 30px;
	box-shadow: 14px 14px 0 0 var(--taxi-sea);
}
/* Desktop 2-column splits: company (kicker+title | body), contact
   (copy | form), FAQ (2 equal columns of accordion cards) — native
   Gutenberg Columns already stack on mobile by default, no extra
   media query needed for that part. */
@media (min-width: 782px) {
	.company-columns {
		gap: 60px;
	}
	.company-columns > .wp-block-column:first-child {
		flex: 1.1;
	}
	.company-columns > .wp-block-column:last-child {
		flex: 0.9;
	}
	.contact-columns {
		gap: 50px;
		align-items: start;
	}
	.contact-columns > .wp-block-column:first-child {
		flex: 0.4;
		position: sticky;
		top: 30px;
	}
	.contact-columns > .wp-block-column:last-child {
		flex: 0.6;
	}
	.faq-columns {
		gap: 30px;
	}
}
.company-actions a,
.company-actions summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 4px;
	border-bottom: 1px solid var(--taxi-line);
	transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}
@media (hover: hover) {
	.company-actions a:hover,
	.company-actions summary:hover {
		background: var(--taxi-yellow);
		color: var(--taxi-navy);
		transform: translateX(8px);
	}
}
.booking-form label {
	display: block;
	color: #fff;
	font-weight: 700;
	font-size: 0.85rem;
	margin-bottom: 14px;
}
.booking-form input:not([type="checkbox"]),
.booking-form select,
.booking-form textarea {
	display: block;
	width: 100%;
	margin-top: 6px;
	padding: 10px;
	background: #fff;
	color: var(--taxi-navy);
	border: none;
	border-radius: 7px;
	font-size: 0.95rem;
}
.booking-form .wpcf7-submit,
.booking-form input[type="submit"] {
	background: var(--taxi-teal-light) !important;
	color: var(--taxi-navy) !important;
	border: none;
	border-radius: 7px;
	padding: 12px 22px;
	font-weight: 800;
	text-transform: uppercase;
	cursor: pointer;
	width: auto;
}
.booking-form .consent {
	color: #fff;
	font-size: 0.85rem;
	display: block;
	margin: 10px 0;
}
.booking-form .form-note {
	color: #cfe3e3;
	font-size: 0.8rem;
}

/* ===== Section anchors (invisible scroll targets) ===== */
.section-anchor {
	display: block;
	position: relative;
	top: -100px;
	visibility: hidden;
}

/* ===== Footer: dark navy band (missing entirely before — verified via
   getComputedStyle on the reference: background is a diagonal gradient,
   headings/labels are lagoon-teal uppercase, body/links are a muted
   light blue-gray). ===== */
.ct-footer {
	background: linear-gradient(145deg, #022b3a, #011f2a 70%);
	color: #c5d6dc;
	padding-top: 52px;
	padding-bottom: 25px;
}
.ct-footer h3.wp-block-heading,
.ct-footer p > strong:first-child {
	color: var(--taxi-lagoon);
	text-transform: uppercase;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.03em;
}
.ct-footer p,
.ct-footer li,
.ct-footer a {
	color: #c5d6dc;
}
.ct-footer a {
	text-decoration: none;
}
.ct-footer a:hover {
	color: var(--taxi-lagoon);
}
.ct-footer .wp-block-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ct-footer .wp-block-list li {
	margin-bottom: 10px;
}
.ct-footer-copyright {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	margin-top: 40px;
	padding-top: 20px;
	font-size: 0.85rem;
	color: #90a8ae;
}

/* ===== Footer: activities badges (moved into the middle-row as a 4th
   column so they sit beside the other footer columns like the reference,
   instead of rendering as their own oversized row above them). ===== */
.footer-activities {
	gap: 22px;
	align-items: flex-start;
}
.footer-activities .activity-badge {
	width: 108px;
	margin: 0;
	text-align: center;
}
.footer-activities .activity-badge img {
	width: 100%;
	height: auto;
	border-radius: 50%;
	display: block;
}
.footer-activities .activity-badge figcaption {
	margin-top: 10px;
	font-size: 0.8rem;
	font-weight: 700;
	color: #fff;
	line-height: 1.3;
}
.footer-activities .activity-badge figcaption a {
	color: inherit;
	text-decoration: none;
}

/* =====================================================================
   Audit fixes (responsive audit of 18 Sept 2026)
   ===================================================================== */

/* -- Contrast: darker coral / turquoise wherever small text sits on them
   (>= 4.5:1). The lighter original tones stay on purely decorative fills. */
:root {
	--taxi-orange-ink: #c2461f;
	--taxi-sea-ink: #0f7385;
}
.kicker,
.kicker.ink,
.wp-block-group.contact-section .kicker {
	color: var(--taxi-orange-ink);
}
.wp-block-group.process .kicker {
	color: var(--taxi-yellow);
}
.tag {
	background: var(--taxi-orange-ink);
}
.wp-block-button__link,
.ct-header .ct-button {
	background-color: var(--taxi-orange-ink) !important;
}
.wp-block-button__link:hover {
	background-color: #a53a17 !important;
}
.table-quote {
	background: var(--taxi-sea-ink);
}
.table-quote:hover {
	background: var(--taxi-orange-ink);
}

/* -- No empty band between header and first section. */
.site-main .ct-container-full {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
.site-main .entry-content > .wp-block-cover.hero-new {
	margin-top: 0;
}

/* -- Typographic scale taken from the reference (fluid clamp()). */
.hero-title {
	font-size: clamp(3.9rem, 6.1vw, 5.4rem);
	font-weight: 700;
	line-height: 0.88;
	letter-spacing: -0.07em;
}
.wp-block-group.section h2,
.wp-block-group.popular h2,
.wp-block-group.process h2,
.wp-block-group.routes-section h2,
.wp-block-group.faq h2,
.wp-block-group.company h2,
.wp-block-group.contact-section h2 {
	font-size: clamp(2.6rem, 4.2vw, 4.35rem);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.05em;
	margin: 0 0 24px;
}
.card-navy .wp-block-column h3 {
	font-size: clamp(1.8rem, 2.5vw, 2.125rem);
}
.hero-route-form h2 {
	font-size: 1.62rem;
	display: flex;
	align-items: center;
	gap: 10px;
}
.hero-route-form h2::before {
	content: "\2693";
	color: var(--taxi-lagoon);
	font-size: 1.3rem;
}
.wp-block-group.process h2 span {
	color: var(--taxi-yellow);
}
@media (min-width: 901px) {
	.hero-layout {
		grid-template-columns: minmax(0, 1fr) 400px;
		gap: 32px;
	}
}

/* -- Editorial intros: title left, lead paragraph right (desktop). */
@media (min-width: 782px) {
	.head-split {
		display: grid;
		grid-template-columns: 1.15fr 0.85fr;
		column-gap: 60px;
		align-items: end;
	}
	.head-split > * {
		grid-column: 1 / -1;
		max-width: none;
		margin-left: 0;
		margin-right: 0;
	}
	.head-split > h2 {
		grid-column: 1;
	}
	.head-split > h2 + p {
		grid-column: 2;
		margin: 0 0 28px;
	}
}

/* -- Destination cards fully clickable. */
.card-navy .wp-block-button__link::after {
	content: "";
	position: absolute;
	inset: 0;
}
.card-navy .wp-block-button {
	position: static;
}

/* -- Tables: horizontal scroll instead of clipping, with a visible hint. */
.wp-block-table {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.section .wp-block-table {
	overflow-x: auto;
	overflow-y: hidden;
}
@media (max-width: 782px) {
	.section .wp-block-table table {
		min-width: 620px;
	}
	.section .wp-block-table::before {
		content: "Faites glisser pour voir tous les tarifs \2192";
		display: block;
		position: sticky;
		left: 0;
		padding: 8px 12px;
		font-size: 0.8rem;
		color: var(--taxi-muted);
	}
}

/* -- Facts strip: 2 x 2 grid on small screens. */
@media (max-width: 781px) {
	.wp-block-group.facts .wp-block-columns {
		flex-wrap: wrap !important;
		flex-direction: row !important;
		gap: 18px 16px;
	}
	.wp-block-group.facts .wp-block-column {
		flex: 0 0 calc(50% - 8px) !important;
	}
}

/* -- Booking form: paired fields on desktop, larger touch targets. */
.booking-form br {
	display: none;
}
@media (min-width: 768px) {
	.booking-form .field-row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 16px;
	}
}
.booking-form input:not([type="checkbox"]),
.booking-form select,
.route-form-fields select,
.route-form-fields input {
	min-height: 46px;
}
.continue-button,
.booking-form .wpcf7-submit {
	min-height: 48px;
}
.booking-form .consent a {
	color: var(--taxi-lagoon);
	text-decoration: underline;
}

/* -- Compact-menu action bar: leaves room at the page end. */
@media (max-width: 1150px) {
	body {
		padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important;
	}
	.ct-header .ct-button {
		min-height: 44px;
	}
}

/* -- Footer badges: light disc + ring so the logos stay legible. */
.footer-activities .activity-badge img {
	background: #f4faf7;
	border: 3px solid var(--taxi-lagoon);
	box-sizing: border-box;
}

/* -- Nav links: navy, underlined on hover (as on the reference). */
:root {
	--theme-font-family: Arial, Helvetica, sans-serif;
}
body,
h1, h2, h3, h4, h5, h6,
button, input, select, textarea,
.ct-menu-link {
	font-family: Arial, Helvetica, sans-serif;
}
p.tag {
	width: fit-content;
	max-width: 100%;
	margin-inline: 0;
}
.ct-header .ct-menu-link,
nav[class*="menu"] .ct-menu-link {
	color: var(--taxi-navy) !important;
	font-weight: 800;
	text-underline-offset: 7px;
	text-decoration-thickness: 2px;
}
.ct-header .ct-menu-link:hover {
	color: var(--taxi-navy);
	text-decoration: underline;
	text-decoration-color: var(--taxi-sea);
}

.hero-copy > *,
.wp-block-cover.page-hero .wp-block-cover__inner-container > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.footer-activities .activity-badge {
	width: 100px;
}

/* =====================================================================
   Pass 2 — values measured directly on the reference (1366 px viewport)
   ===================================================================== */

/* Header brand: big title, signature centred beneath, 58 x 18 checkers */
@media (min-width: 901px) {
	.site-branding {
		display: grid !important;
		grid-template-columns: auto auto auto;
		grid-template-areas: "a t b" "a l b";
		column-gap: 14px;
		row-gap: 0;
		justify-items: center;
		align-items: center;
	}
	.site-branding::before {
		grid-area: a;
		width: 58px;
		height: 18px;
		background-size: 18px 18px;
		align-self: start;
		margin-top: 12px;
	}
	.site-branding::after {
		grid-area: b;
		width: 58px;
		height: 18px;
		background-size: 18px 18px;
		align-self: start;
		margin-top: 12px;
	}
	.site-branding .site-title-container {
		grid-area: t;
	}
	.site-branding .site-logo-container {
		grid-area: l;
	}
	.site-branding .site-title,
	.site-branding .site-title a {
		font-size: 59.2px;
		font-weight: 900;
		letter-spacing: -0.065em;
		line-height: 1;
	}
	.site-branding .site-logo-container img {
		width: 116px;
		height: 52px;
		object-fit: contain;
	}
	#header [data-row="middle"] {
		min-height: 107px;
	}
}
.ct-header .ct-menu-link,
nav[class*="menu"] .ct-menu-link {
	font-size: 10.4px !important;
	letter-spacing: 0.025em;
}
@media (min-width: 901px) {
	#header nav.header-menu-1 {
		margin-right: 0;
	}
	#header .ct-container {
		max-width: 1180px;
	}
}
.hero-title em {
	white-space: nowrap;
}
.ct-header .ct-button {
	font-size: 12px !important;
	font-weight: 800 !important;
	border-radius: 8px !important;
	padding: 12px 14px !important;
	box-shadow: 0 8px 20px rgba(239, 112, 72, 0.3);
}

/* Hero: reference geometry */
.wp-block-cover.hero-new {
	min-height: 697px !important;
	padding: 76px 0 !important;
	align-items: center;
}
/* Cover overlay opacity is controlled by the native Gutenberg block. */
.wp-block-cover.hero-new .wp-block-cover__inner-container {
	max-width: 1030px;
	padding: 0 !important;
}
@media (min-width: 901px) {
	.hero-layout {
		grid-template-columns: minmax(0, 560px) 360px;
		justify-content: space-between;
		gap: 40px;
		align-items: center;
	}
}
p.tag {
	font-size: 13.12px;
	font-weight: 900;
	letter-spacing: 0;
	padding: 8px 12px;
	margin-bottom: 0;
}
.hero-title {
	line-height: 0.84;
	letter-spacing: -0.07em;
	margin: 26px 0 28px;
}
.hero-title span {
	display: block;
}
.hero-title br {
	display: none;
}
.hero-title em {
	display: block;
	font-style: normal;
	font-size: 0.623em;
	line-height: 0.84;
	letter-spacing: -0.045em;
	margin-top: 22px;
}
.hero-title::after {
	bottom: -22px;
}
.hero-lead {
	font-size: 1.3rem;
	line-height: 1.5;
	color: #edf9f6;
	max-width: 520px;
}
.review-link a {
	font-size: 15.2px;
	font-weight: 900;
	background: #fff;
	border-radius: 0;
}
.hero-route-form {
	padding: 25px 27px;
	max-width: 360px;
}
.hero-route-form h2 {
	font-size: 1.62rem;
	font-weight: 400;
	margin-bottom: 17px;
}
.route-form-fields {
	gap: 12px;
}
.route-form-fields label {
	font-size: 12.8px;
	letter-spacing: 0.1em;
}
.route-form-fields select,
.route-form-fields input {
	background-color: #fff !important;
	color: #062d41 !important;
	border: none !important;
	border-radius: 7px !important;
	padding: 11px 12px !important;
	font-size: 16px;
	min-height: 41px;
	appearance: auto;
	-webkit-appearance: menulist;
}
.continue-button {
	font-size: 13.12px;
	font-weight: 900;
	letter-spacing: 0;
	background: var(--taxi-lagoon);
	color: var(--taxi-navy);
	padding: 14px;
	border-radius: 7px;
}

#header [data-row="middle"] {
	--height: 107px;
}
@media (min-width: 901px) {
	.site-branding .site-title,
	.site-branding .site-title a {
		line-height: 0.73;
	}
	#header [data-row="middle"] > .ct-container {
		position: relative;
	}
	#header [data-row="middle"] > .ct-container::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 330px;
		height: 3px;
		background: linear-gradient(90deg, var(--taxi-sea), var(--taxi-orange));
	}
}
.hero-title {
	margin: 26px 0 0;
}
.hero-title em {
	margin-top: 24px;
}
.hero-lead {
	margin-top: 44px;
	margin-bottom: 0;
}
.review-link {
	margin-top: 25px;
	margin-bottom: 0;
}
.hero-copy > :last-child {
	margin-bottom: 0;
}
.route-form-fields label {
	gap: 0;
	line-height: 1.6;
	margin: 0;
}
.hero-route-form h2 {
	line-height: 1.05;
}
.hero-layout > * {
	margin-block: 0 !important;
}
.continue-button {
	padding: 12px 14px;
	line-height: 1.2;
}
.route-form-fields .continue-button {
	min-height: 0;
}
.route-form-fields select,
.route-form-fields input {
	margin-top: 6px;
}
.review-link a {
	margin-top: 0;
}

/* ---- Sections rhythm (reference: 82px vertical, 1180px content, no side padding on desktop) ---- */
.entry-content > .wp-block-group,
.entry-content > .wp-block-cover {
	margin-block: 0 !important;
}
.wp-block-group.section,
.wp-block-group.popular,
.wp-block-group.faq,
.wp-block-group.company {
	padding: 82px 0;
}
@media (max-width: 1230px) {
	.wp-block-group.section,
	.wp-block-group.popular,
	.wp-block-group.faq,
	.wp-block-group.company {
		padding-inline: 24px;
	}
}
.kicker {
	font-size: 12px;
	letter-spacing: 0.19em;
	line-height: 18.6px;
	margin: 0;
}
.wp-block-group.section h2,
.wp-block-group.popular h2,
.wp-block-group.process h2,
.wp-block-group.routes-section h2,
.wp-block-group.faq h2,
.wp-block-group.company h2,
.wp-block-group.contact-section h2 {
	color: #053b4d;
	margin: 12px 0 32px;
}
.wp-block-group.process h2,
.wp-block-group.routes-section h2 {
	color: #fff;
}
@media (min-width: 782px) {
	.wp-block-group.section h2,
	.wp-block-group.popular h2,
	.wp-block-group.faq h2,
	.wp-block-group.company h2,
	.wp-block-group.routes-section h2 {
		line-height: 1.55;
	}
}

/* ---- Facts strip ---- */
.wp-block-group.facts {
	padding: 0;
	border-bottom: 4px solid var(--taxi-lagoon);
	background: linear-gradient(105deg, #0e778b, #1698a8 58%, #0a6074);
}
.wp-block-group.facts .wp-block-columns {
	max-width: none;
	gap: 0;
	margin: 0;
}
.section-anchor {
	margin: 0 !important;
	height: 0;
}
.card-grid {
	margin-block: 0 !important;
}
.card-grid + .card-grid {
	margin-top: 14px !important;
}
.wp-block-group.facts .wp-block-column {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 29px 0 29px 55px;
	border-left: 1px solid rgba(255, 255, 255, 0.22);
}
.wp-block-group.facts .wp-block-column:first-child {
	border-left: 0;
}
.wp-block-group.facts p {
	margin: 0;
	color: #fff;
	font-size: 14.4px;
	line-height: 1.5;
}
.wp-block-group.facts p strong,
.wp-block-group.facts a strong {
	display: block;
	font-size: 34.4px;
	font-weight: 700;
	line-height: 1;
	margin-bottom: 6px;
}
.wp-block-group.facts a {
	color: #fff;
	text-decoration: none;
}
.wp-block-group.facts a br {
	display: none;
}
.wp-block-group.facts p {
	line-height: 1.3;
}

/* ---- Popular routes cards ---- */
.card-grid {
	gap: 14px;
	margin-top: 14px;
}
.card-teal .wp-block-column {
	background: #fff;
	border: 2px solid #2d7180;
	padding: 23px;
	box-shadow: inset 0 5px 0 0 var(--taxi-sea), 0 8px 24px rgba(7, 58, 72, 0.07);
}
.card-teal p {
	margin: 0;
}
.card-teal p strong {
	font-size: 17.92px;
	line-height: 1.55;
	color: var(--taxi-ink);
}
.card-teal p + p {
	margin-top: 14px;
	font-weight: 900;
	color: var(--taxi-orange-ink);
}
.card-teal + .card-teal .wp-block-column:last-child {
	background: #8fdcd6;
}
.card-teal + .card-teal .wp-block-column:last-child a {
	color: var(--taxi-navy);
}

p.kicker,
p.kicker.ink {
	margin: 0 !important;
}
.card-navy .wp-block-column::after {
	left: 32px;
	bottom: 26px;
	width: 110px;
	transform: none;
}
@media (hover: hover) {
	.card-navy .wp-block-column:hover::after {
		width: calc(100% - 64px);
	}
}

/* ---- Process band: 2 columns, text link CTA, whale at reference position ---- */
.wp-block-group.process.alignfull {
	padding: 62px 5vw !important;
}
@media (min-width: 782px) {
	.wp-block-group.process.alignfull {
		display: grid;
		grid-template-columns: 1.385fr 1fr;
		column-gap: 56px;
		align-items: start;
	}
	.wp-block-group.process > * {
		grid-column: 1 / -1;
		max-width: none;
		margin-left: 0;
		margin-right: 0;
	}
	.wp-block-group.process > .kicker {
		grid-column: 1;
	}
	.wp-block-group.process > h2 {
		grid-column: 1;
		grid-row: 2 / span 3;
		font-size: clamp(2.6rem, 5vw, 5.4rem);
		line-height: 1.11;
		margin: 0;
	}
	.wp-block-group.process > h2 ~ p,
	.wp-block-group.process > .wp-block-buttons {
		grid-column: 2;
	}
	.wp-block-group.process > p:not(.kicker) {
		font-size: 18px;
		line-height: 1.55;
		margin: 0;
		color: #fff;
	}
	.wp-block-group.process > h2 {
		margin-top: 23px;
	}
	.wp-block-group.process > h2 + p {
		grid-row: 2;
	}
	.wp-block-group.process > h2 + p + p {
		grid-row: 3;
	}
	.wp-block-group.process > .wp-block-buttons {
		grid-row: 4;
		margin-top: 16px;
	}
	.wp-block-group.process .wp-block-button__link {
		line-height: 1.7;
	}
}
.wp-block-group.process .process-whale {
	left: 27%;
	right: auto;
	top: 6px;
	bottom: auto;
	width: 54.4%;
	max-width: none;
	margin: 0;
}
.wp-block-group.process .wp-block-button__link {
	background: transparent !important;
	color: #fff !important;
	padding: 0;
	font-size: 18px;
	font-weight: 900;
	letter-spacing: 0;
	border-radius: 0;
}

/* ---- Tarifs: callout + table as in the reference ---- */
.fare-callout {
	gap: 0 !important;
	margin: 40px 0 0 !important;
	border: 2px solid #2d7180;
	border-radius: 12px;
	overflow: hidden;
	background: linear-gradient(155deg, #fff 0%, #edf8f5 100%);
}
.fare-callout .wp-block-column {
	padding: 21px 22px !important;
	border: 0 !important;
	border-left: 2px solid #2d7180 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	min-height: 114px;
	flex-grow: 1 !important;
	flex-basis: 0 !important;
}
.fare-callout .wp-block-column:first-child {
	border-left: 0 !important;
	background: var(--taxi-sea) !important;
	color: #fff;
	flex-grow: 1.3 !important;
}
.fare-callout p {
	margin: 0;
	font-size: 13px;
	text-transform: uppercase;
	line-height: 1.5;
}
.fare-callout p strong {
	display: block;
	font-size: 19px;
	text-transform: none;
	color: var(--taxi-orange-ink);
	line-height: 1.5;
}
.fare-callout .wp-block-column:first-child p strong {
	color: #fff;
	font-size: 16px;
	text-transform: uppercase;
}
.fare-callout .wp-block-column:last-child p strong {
	color: var(--taxi-navy);
	font-size: 13px;
	text-transform: uppercase;
}
.fare-callout .wp-block-column:last-child a {
	display: block;
	color: var(--taxi-orange-ink);
	font-weight: 900;
	font-size: 16px;
	text-transform: none;
	text-decoration: none;
	line-height: 1.5;
}
.section .wp-block-table {
	margin-top: 32px;
	border: 2px solid #2d7180;
	border-radius: 12px;
	background: linear-gradient(155deg, #fff 0%, #edf8f5 100%);
	box-shadow: 0 8px 25px rgba(6, 57, 75, 0.07);
}
.section .wp-block-table table {
	margin: 0;
	border-collapse: collapse;
}
.section .wp-block-table th,
.section .wp-block-table td {
	border: 0;
	border-bottom: 1px solid #bfd4d2;
	padding: 17px 21px;
	vertical-align: middle;
}
.section .wp-block-table tr:last-child td {
	border-bottom: 0;
}
.section .wp-block-table thead th {
	background: var(--taxi-lagoon);
	color: var(--taxi-navy);
	font-size: 12.8px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	border-bottom: 0;
	padding: 21px;
}
.section .wp-block-table td:first-child {
	font-weight: 700;
	font-size: 17.6px;
	color: var(--taxi-navy);
}
.section .wp-block-table td:nth-child(2),
.section .wp-block-table td:nth-child(3),
.section .wp-block-table td:nth-child(4) {
	font-weight: 900;
	font-size: 20.8px;
	color: var(--taxi-orange);
	white-space: nowrap;
}
.section .wp-block-table th:nth-child(1) { width: 17%; }
.section .wp-block-table th:nth-child(2) { width: 17%; }
.section .wp-block-table th:nth-child(3) { width: 30%; }
.section .wp-block-table th:nth-child(4) { width: 13%; }
.section .wp-block-table + .fine-note,
.section .fine-note,
.popular .fine-note {
	margin: 0;
	font-size: 13.6px;
	line-height: 19px;
}
/* Home tariff details share the existing children's-note type size. */
.home #tarifs > p:nth-of-type(n+3):nth-of-type(-n+5) {
 font-family: Arial, Helvetica, sans-serif;
 font-size: 13.6px;
 font-weight: 400;
 line-height: 19px;
 color: var(--taxi-muted);
}
.table-quote {
	font-size: 12.8px;
	font-weight: 800;
	padding: 11px 12px;
	text-decoration: none;
}

/* ---- Head-split intros: reference proportions ---- */
@media (min-width: 782px) {
	.head-split {
		grid-template-columns: 1.35fr 1fr;
		column-gap: 56px;
		align-items: start;
	}
	.head-split > h2 + p {
		align-self: start;
		margin: 0;
		padding-top: 34px;
		font-size: 18px;
		line-height: 1.65;
		color: var(--taxi-muted);
	}
	.wp-block-group.head-split:has(> h2 + p) > h2 {
		font-size: clamp(2.6rem, 5vw, 5.4rem);
		line-height: 0.96;
	}
}

@media (min-width: 782px) {
	.wp-block-group.head-split:has(> h2 + p) > h2 {
		margin-bottom: 0;
		margin-top: 10px;
	}
	.wp-block-group.head-split > h2 + p + * {
		margin-top: 42px !important;
	}
}

.section .wp-block-table {
	margin-top: 30px;
}
.section .wp-block-table thead th {
	line-height: 1.1;
}
.section .wp-block-table td {
	padding-block: 18px;
}
.table-quote {
	line-height: 1.2;
}

/* ---- Company: full-width title, then note+button | action rows ---- */
.wp-block-group.company {
	border-bottom: 2px solid var(--taxi-navy);
}
@media (min-width: 782px) {
	.wp-block-group.company h2 {
		font-size: clamp(2.6rem, 5vw, 5.4rem);
		line-height: 0.96;
		margin: 12px 0 33px;
	}
	.company-columns {
		gap: 55px;
		margin: 0;
	}
	.company-columns > .wp-block-column:first-child {
		flex: 592 1 0;
	}
	.company-columns > .wp-block-column:last-child {
		flex: 532 1 0;
	}
}
.company-intro {
	font-size: 18px;
	line-height: 1.55;
	margin: 0 0 42px;
	color: var(--taxi-ink);
}
.company-note {
	background: var(--taxi-foam);
	border-left: 4px solid var(--taxi-sea);
	padding: 24px 24px 22px 21px !important;
	margin: 0;
}
.company-note + .wp-block-buttons {
	margin-top: 49px !important;
}
.company-actions a strong {
	max-width: 62%;
}
.company-note p {
	margin: 0;
	font-size: 18px;
	line-height: 1.5;
	color: var(--taxi-ink);
}
.company-note .company-note-link {
	margin-top: 10px;
}
.company-note .company-note-link a {
	font-size: 18px;
	font-weight: 900;
	color: var(--taxi-sea);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}
.wp-block-button.is-style-reviews .wp-block-button__link {
	font-size: 12.8px;
	font-weight: 900;
	text-transform: uppercase;
	border-radius: 4px;
	padding: 16px 16px;
	box-shadow: 6px 6px 0 0 var(--taxi-sea);
}
.company-actions {
	border-top: 1px solid #68a7b2;
}
.company-actions .wp-block-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.company-actions .wp-block-list li {
	margin: 0;
	padding: 0;
}
.company-actions a,
.company-actions summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 16px 14px;
	border-bottom: 1px solid #68a7b2;
	color: var(--taxi-orange-ink);
	font-size: 12.16px;
	font-weight: 900;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1.5;
}
.company-actions a strong,
.company-actions summary {
	font-size: 18px;
	font-weight: 850;
	text-transform: none;
	color: var(--taxi-ink);
	line-height: 1.55;
}
.company-actions .wp-block-list a { text-align: right; }
.company-actions .wp-block-list a strong { text-align: left; }
.company-actions summary::after { text-align: right; }
.company-actions summary {
	list-style: none;
}
.company-actions summary::-webkit-details-marker {
	display: none;
}
.company-actions summary::after {
	content: "EN SAVOIR PLUS +";
	font-size: 12.16px;
	font-weight: 900;
	color: var(--taxi-orange-ink);
	white-space: nowrap;
}
.company-actions details[open] summary::after {
	content: "FERMER \2212";
}
.company-actions .wp-block-details {
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: none;
	padding: 0;
	margin: 0;
}
.company-actions .wp-block-details p {
	padding: 14px;
	margin: 0;
	font-size: 16px;
}

/* ---- FAQ: 2-column grid read row by row ---- */
.faq-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	align-items: start;
}
.faq-grid > * {
	margin: 0 !important;
	max-width: none;
}
@media (max-width: 781px) {
	.faq-grid {
		grid-template-columns: 1fr;
	}
}
.faq .wp-block-details {
	border: 2px solid #2d7180;
	border-radius: 10px;
	padding: 22px 24px;
	margin: 0;
	background: linear-gradient(155deg, #fff 0%, #edf8f5 100%);
}
.faq .wp-block-details summary {
	font-size: 16px;
	font-weight: 900;
	color: var(--taxi-ink);
}
.faq .wp-block-details p {
	color: var(--taxi-muted);
	font-size: 16px;
	margin: 10px 0 0;
}

/* ---- Contact: reference geometry ---- */
.wp-block-group.contact-section {
	padding: 82px 0 100px;
	background: linear-gradient(#edf7f4, #dcefeb);
}
.wp-block-group.contact-section > * {
	max-width: 1180px;
	margin-left: auto !important;
	margin-right: auto !important;
}
@media (max-width: 1230px) {
	.wp-block-group.contact-section {
		padding-inline: 24px;
	}
}
@media (min-width: 782px) {
	.contact-columns {
		gap: 65px;
		align-items: flex-start;
		margin: 0;
	}
	.contact-columns > .wp-block-column:first-child {
		flex: 446 1 0;
		position: static;
	}
	.contact-columns > .wp-block-column:last-child {
		flex: 669 1 0;
	}
	.wp-block-group.contact-section h2 {
		font-size: clamp(2.6rem, 5vw, 5.4rem);
		line-height: 0.96;
		margin: 15px 0 15px;
	}
}
.contact-columns .wp-block-column:first-child > p:not(.kicker) {
	font-size: 16px;
	line-height: 1.55;
	margin: 0 0 30px;
	color: var(--taxi-navy);
}
.contact-direct-cols {
	flex-direction: column;
	gap: 0 !important;
	margin: 0;
}
.contact-direct-cols > .wp-block-column {
	flex: none !important;
	width: 100%;
	border-top: 2px solid var(--taxi-navy);
	padding: 14px 0 18px;
}
.contact-direct-cols > .wp-block-column p {
	margin: 0;
}
.contact-direct-cols a {
	display: block;
	text-decoration: none;
	color: var(--taxi-navy);
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	line-height: 1.5;
}
.contact-direct-cols a strong {
	display: block;
	font-size: 20px;
	letter-spacing: 0.02em;
	text-transform: none;
	line-height: 1.4;
}
.booking-form {
	padding: 36px;
	margin-top: 0;
}
.booking-form label {
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	margin-bottom: 16px;
}
.booking-form .field-row {
	column-gap: 15px;
}
.booking-form .consent {
	font-size: 12.5px;
	line-height: 1.4;
}
.booking-form .consent a {
	color: var(--taxi-yellow);
}
.booking-form .wpcf7-submit,
.booking-form input[type="submit"] {
	display: block;
	width: 100%;
	font-size: 16px;
	font-weight: 900;
	letter-spacing: 0.02em;
	padding: 16px 22px;
}

/* ---- Booking form: field rhythm from the reference ---- */
.booking-form label {
	line-height: 1.6;
	margin-bottom: 15px;
}
.booking-form .field-row {
	margin: 0 0 15px;
}
.booking-form .field-row label {
	margin-bottom: 0;
}
.booking-form input:not([type="checkbox"]),
.booking-form select,
.booking-form textarea {
	min-height: 42px;
	padding: 10px 12px;
	text-transform: none;
	font-weight: 400;
	letter-spacing: normal;
	font-size: 16px;
}
.booking-form textarea {
	min-height: 96px;
}

/* ---- Fine tuning (details, textarea, consent, process link) ---- */
.faq .wp-block-details summary {
	margin: 0 !important;
}
.faq .wp-block-details[open] summary {
	margin-bottom: 10px !important;
}
.booking-form textarea {
	min-height: 0;
	height: 96px;
}
.booking-form .consent {
	margin: 4px 0 14px;
}
.booking-form .consent label,
.booking-form .consent .wpcf7-list-item-label {
	display: inline;
	margin: 0;
	font-weight: 400;
	font-size: 12.5px;
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.4;
}
.booking-form .consent input[type="checkbox"] {
	min-height: 0;
	width: auto;
	display: inline-block;
	margin: 0 8px 0 0;
	vertical-align: middle;
}
.wp-block-group.process .wp-block-button__link {
	padding: 0 !important;
	border: 0;
	line-height: 1.7;
}
/* ---- Tuning pass 3 ---- */
.wp-block-group.process .wp-block-button__link,
.card-navy .wp-block-button__link {
	min-height: 0 !important;
}
.booking-form .wpcf7-form-control-wrap {
	display: block;
}
.booking-form .wpcf7-submit,
.booking-form input[type="submit"] {
	padding: 20px 22px;
	min-height: 0;
}
.section .wp-block-table {
	margin-bottom: 0;
}
.section .wp-block-table thead th {
	padding: 19.5px 21px;
}
.section .wp-block-table td {
	padding-block: 17.5px;
}
.wp-block-group.routes-section .wp-block-table thead th {
	padding: 17px 10px 15px;
}
/* ---- Tuning pass 4 ---- */
form.booking-form label {
	font-size: 12px !important;
	line-height: 1.6 !important;
	font-weight: 900;
	text-transform: uppercase;
}
form.booking-form .consent label,
form.booking-form .consent .wpcf7-list-item-label {
	font-size: 12.5px !important;
	font-weight: 400;
	text-transform: none;
}
@media (min-width: 782px) {
	.wp-block-group.head-split > .kicker {
		grid-row: 1;
		grid-column: 1;
	}
	.wp-block-group.head-split > h2 {
		grid-row: 2;
	}
	.wp-block-group.head-split > h2 + p {
		grid-row: 1 / span 2;
		grid-column: 2;
	}
}
.routes-section .fine-note {
	line-height: 20px;
	margin-top: 1px;
}
/* ---- Tuning pass 5 ---- */
form.booking-form select,
form.booking-form input:not([type="checkbox"]):not([type="submit"]) {
	height: 42px;
	min-height: 42px;
}
form.booking-form input[type="submit"],
form.booking-form .wpcf7-submit {
	height: 58px;
	padding: 0 22px;
	line-height: 1;
}
form.booking-form p:has(.wpcf7-submit) {
	margin: 0;
}
form.booking-form .form-note {
	margin: 0;
}
/* ---- Tuning pass 6 ---- */
form.booking-form .consent a {
	color: var(--taxi-yellow) !important;
	text-decoration: underline;
}
form.booking-form select {
	appearance: auto;
	-webkit-appearance: menulist;
	background-image: none;
}
form.booking-form input[type="submit"]:disabled,
form.booking-form .wpcf7-submit:disabled {
	opacity: 1;
	cursor: not-allowed;
}
/* ---- Routes band: reference list-table on the dark card ---- */
.wp-block-group.routes-section.alignfull {
	padding: 64px 5vw !important;
}
.wp-block-group.routes-section .kicker {
	color: var(--taxi-yellow);
}
.wp-block-group.routes-section .head-split > h2 + p,
.wp-block-group.routes-section > h2 + p {
	color: #bcd0d7;
}
.wp-block-group.routes-section .wp-block-table {
	border: 0;
	background: none;
	box-shadow: none;
	border-radius: 0;
	overflow: visible;
	margin: 0;
}
.wp-block-group.routes-section .wp-block-table table {
	display: table;
	width: 100%;
	margin: 0;
	border-top: 2px solid var(--taxi-lagoon);
	table-layout: fixed;
}
.wp-block-group.routes-section .wp-block-table thead {
	display: table-header-group;
}
.wp-block-group.routes-section .wp-block-table tbody {
	display: table-row-group;
}
.wp-block-group.routes-section .wp-block-table tr {
	display: table-row;
	border: 0;
	padding: 0;
}
.wp-block-group.routes-section .wp-block-table th,
.wp-block-group.routes-section .wp-block-table td {
	display: table-cell;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	padding: 15.5px 10px;
	background: transparent;
	color: #bed0d6;
	font-size: 16px;
	font-weight: 400;
	text-align: left;
	vertical-align: middle;
}
.wp-block-group.routes-section .wp-block-table thead th {
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #89a7b2;
	padding: 18px 10px 14px;
}
.wp-block-group.routes-section .wp-block-table td:first-child {
	color: #fff;
	font-weight: 700;
}
.wp-block-group.routes-section .wp-block-table td:last-child {
	color: var(--taxi-lagoon);
	font-weight: 700;
	text-align: right;
}
.wp-block-group.routes-section .wp-block-table th:nth-child(1) { width: 44%; }
.wp-block-group.routes-section .wp-block-table th:nth-child(2) { width: 35%; }

/* ---- Destination cards: tall, text link at the bottom ---- */
.card-navy .wp-block-column {
	display: flex;
	flex-direction: column;
	min-height: 289px;
	padding: 62px 32px 33px;
	background: linear-gradient(155deg, #fff 0%, #edf8f5 100%);
}
.card-navy .wp-block-column h3 {
	font-size: 34px;
	font-weight: 400;
	line-height: 0.95;
	margin: 0 0 18px;
	text-transform: uppercase;
}
.card-navy .wp-block-column p {
	color: var(--taxi-muted);
	margin: 0;
}
.card-navy .wp-block-buttons {
	margin-top: auto !important;
}
.card-navy .wp-block-button__link {
	background: transparent !important;
	color: var(--taxi-navy) !important;
	padding: 0;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	border-radius: 0;
}
.card-navy .wp-block-button__link:hover {
	background: transparent !important;
	color: var(--taxi-navy) !important;
}

/* ---- Footer: reference grid (brand over nav+contact | badges right) ---- */
.ct-footer p > strong:first-child {
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
}
.ct-footer p a {
	color: var(--taxi-lagoon);
	font-weight: 800;
	text-decoration: underline;
	text-underline-offset: 4px;
}
@media (min-width: 900px) {
	.ct-footer [data-row="middle"] > .ct-container {
		display: grid !important;
		grid-template-columns: 198px 245px 1fr !important;
		grid-template-areas: "brand brand badges" "nav contact badges";
		column-gap: 33px;
		row-gap: 0;
		align-items: start;
	}
	.ct-footer [data-column="widget-area-1"] { grid-area: brand; }
	.ct-footer [data-column="widget-area-2"] { grid-area: nav; }
	.ct-footer [data-column="widget-area-3"] { grid-area: contact; }
	.ct-footer [data-column="widget-area-4"] {
		grid-area: badges;
		justify-self: end;
		padding-top: 64px;
	}
	.footer-activities {
		gap: 24px;
		align-items: center;
		justify-content: flex-end;
	}
}
@media (min-width: 1151px) {
 .footer-activities { align-items: flex-start; }
}
.footer-activities .activity-badge {
	width: 155px;
}
.footer-activities .activity-badge img {
	width: 142px;
	height: 142px;
	padding: 5px;
	margin: 0 auto;
	object-fit: contain;
	box-sizing: border-box;
}
.footer-activities .activity-badge figcaption {
	margin-top: 12px;
	line-height: 1.25;
	font-size: 12.16px;
	font-weight: 800;
}
.ct-footer-copyright {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	font-size: 12.5px;
	color: #fff;
}
@media (min-width: 900px) {
	.ct-footer .ct-container {
		max-width: 1180px;
	}
}

/* ---- Footer spacing pass ---- */
.ct-footer p {
	margin: 0;
	line-height: 1.55;
}
.ct-footer [data-column="widget-area-1"] p + p + p {
	margin-top: 8px;
}
.ct-footer [data-column="widget-area-1"] p:first-child {
	margin-bottom: 0;
}
.ct-footer .wp-block-list li {
	margin-bottom: 8px;
	line-height: 1.55;
}
.ct-footer h3.wp-block-heading {
	margin: 0 0 12px;
	line-height: 1.5;
}
.ct-footer [data-row="middle"] {
	padding: 0 !important;
}
.ct-footer-copyright,
.ct-footer-copyright span,
.ct-footer-copyright a {
	color: #fff !important;
	font-size: 12.5px;
}
.ct-footer-copyright {
	margin-top: 47px;
}

/* ---- Footer spacing pass 2 ---- */
.ct-footer [data-row="bottom"] {
	padding: 0 !important;
}
.ct-footer [data-column="widget-area-2"],
.ct-footer [data-column="widget-area-3"] {
	margin-top: 27px;
}
.ct-footer {
	padding-bottom: 25px !important;
}

/* ---- Footer spacing pass 3 ---- */
.ct-footer [data-row="middle"] > .ct-container {
	padding: 52px 0 33px !important;
}
.ct-footer [data-row="bottom"] > .ct-container {
	padding: 0 !important;
}
.ct-footer .ct-footer-copyright {
	margin-top: 0 !important;
}

/* ---- Booking form: paragraph rhythm ---- */
form.booking-form > p {
	margin: 0 0 15px;
}
form.booking-form > p.consent {
	margin: 0 0 15px;
}
form.booking-form .wpcf7-spinner {
	position: absolute;
	margin: 0;
}
form.booking-form > p:has(.wpcf7-submit) {
	margin: 0;
	line-height: 0;
	position: relative;
}
form.booking-form > p.form-note {
	margin-top: 20px;
}

form.booking-form > p:has(.wpcf7-submit) {
	display: flex;
	height: 58px;
}
form.booking-form > p.form-note {
	margin-top: 0;
}

/* ---- Polish: header translucency, card tint, last-card link ---- */
#header [data-row],
#header .ct-container {
	background: transparent !important;
}
#header.ct-header {
	border-bottom: 1px solid rgba(101, 198, 197, 0.5);
}
.card-teal .wp-block-column {
	background: linear-gradient(155deg, #fff 0%, #f2faf7 100%);
}
.card-teal + .card-teal .wp-block-column:last-child {
	background: #8fdcd6;
}
.card-teal + .card-teal .wp-block-column:last-child a {
	color: var(--taxi-orange-ink);
	text-decoration: none;
	font-weight: 900;
}

/* ===== Responsive ===== */
@media (max-width: 782px) {
	.wp-block-cover.hero-new .wp-block-cover__inner-container {
		padding: 40px 20px;
	}
	.footer-activities {
		justify-content: center;
	}
}

/* ---- Mobile fixes ---- */
@media (max-width: 900px) {
	.hero-title em {
		white-space: normal;
	}
	.wp-block-cover.hero-new {
		min-height: 0 !important;
		padding: 40px 0 !important;
	}
	.wp-block-cover.hero-new .wp-block-cover__inner-container {
		padding: 0 20px !important;
	}
	.hero-route-form {
		margin-top: 32px;
		max-width: none;
	}
	.hero-layout > * {
		margin-block: 0 !important;
	}
}
@media (max-width: 900px) {
 .site-branding { display: grid !important; grid-template-columns: 16px auto 16px; grid-template-areas: "a t b" ". l ."; gap: 0 5px; justify-items: center; }
 .site-branding::before { grid-area: a; }
 .site-branding::after { grid-area: b; }
 .site-branding::before, .site-branding::after { display: block; width: 16px; height: 12px; background-size: 8px 8px; }
 .site-branding .site-title-container { grid-area: t; }
 .site-branding .site-logo-container { grid-area: l; display: block; }
 .site-branding .site-logo-container img { width: 75px; height: 32px; object-fit: contain; }
 .site-branding .site-title, .site-branding .site-title a { font-size: 28px; line-height: 1; letter-spacing: -.065em; }
 #header .ct-button { white-space: nowrap; padding: 10px !important; font-size: 11px !important; }
}

/* Hover of the destination cards, as measured on the reference */
@media (hover: hover) {
	.card-navy .wp-block-column:hover {
		background: var(--taxi-foam) !important;
		transform: translateY(-3px);
	}
}

/* Hover states measured on the reference */
@media (hover: hover) {
	.site-branding:hover .site-logo-container img {
		transform: none;
		filter: none;
	}
	.site-branding:hover::before {
		transform: translateX(-5px);
		background-position: 9px 0;
	}
	.site-branding:hover::after {
		transform: translateX(5px);
		background-position: -9px 0;
	}
	.footer-activities .activity-badge {
		position: relative;
	}
	.footer-activities .activity-badge img {
		transform-origin: center bottom;
		transition: transform 0.25s ease, filter 0.25s ease, box-shadow 0.25s ease;
	}
	.footer-activities .activity-badge:hover {
		z-index: 5;
	}
	.footer-activities .activity-badge:hover img {
		transform: translateY(-10px) scale(2.05);
		filter: drop-shadow(0 12px 18px rgba(0, 21, 31, 0.53));
		box-shadow: 0 16px 34px rgba(0, 21, 31, 0.53);
	}
	.footer-activities .activity-badge:hover figcaption a {
		color: var(--taxi-yellow);
	}
}

/* Hero review link + hover of header button / quote buttons (reference) */
.review-link a {
	border-radius: 8px;
	padding: 13px 17px;
	box-shadow: 5px 5px 0 0 var(--taxi-lagoon);
}
.ct-header .ct-button:hover {
	background-color: var(--taxi-orange-ink) !important;
	filter: none;
	box-shadow: 0 7px 18px rgba(197, 82, 52, 0.22);
}
.table-quote:hover {
	background: var(--taxi-orange);
}

/* ---- User audit round 2 ---- */
.review-link a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 13px 17px;
}
.review-link a strong {
	color: var(--taxi-orange);
	font-weight: 900;
}
.wp-block-button.is-style-reviews .wp-block-button__link {
	display: flex;
	align-items: center;
	height: 50px;
	padding: 0 17px !important;
	font-size: 12.48px;
	border-radius: 8px;
	color: #062d41 !important;
	box-shadow: 5px 5px 0 0 var(--taxi-sea);
	min-height: 0;
}
.wp-block-group.process .wp-block-button__link {
	display: inline-block;
	color: #fff !important;
	border-bottom: 3px solid var(--taxi-yellow) !important;
	background: none !important;
	padding: 0 !important;
}
form.booking-form input:focus,
form.booking-form select:focus,
form.booking-form textarea:focus,
.route-form-fields input:focus,
.route-form-fields select:focus {
	background-color: #fff !important;
	color: #062d41 !important;
	outline: 2px solid var(--taxi-lagoon);
	outline-offset: 1px;
	box-shadow: none;
}
form.booking-form select option,
.route-form-fields select option {
	background: #fff;
	color: #062d41;
}
.footer-activities .activity-badge figcaption,
.footer-activities .activity-badge figcaption a {
	color: #fff;
}
@media (hover: hover) {
	.footer-activities .activity-badge:hover figcaption,
	.footer-activities .activity-badge:hover figcaption a {
		color: var(--taxi-yellow) !important;
	}
}
.wp-block-group.routes-section .wp-block-table thead th:last-child {
	text-align: right;
}

/* Routes table: remove Gutenberg's default white borders */
.wp-block-group.routes-section .wp-block-table table {
	border: 0 !important;
	border-top: 2px solid var(--taxi-lagoon) !important;
}
.wp-block-group.routes-section .wp-block-table thead,
.wp-block-group.routes-section .wp-block-table tbody,
.wp-block-group.routes-section .wp-block-table tr {
	border: 0 !important;
}
.wp-block-group.routes-section .wp-block-table th,
.wp-block-group.routes-section .wp-block-table td {
	border-left: 0 !important;
	border-right: 0 !important;
	border-top: 0 !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
}

.review-link a {
	gap: 19px;
}

/* Footer badges: whole badge is a link; note under the form breathes */
.footer-activities .activity-badge > a {
	display: block;
}
.footer-activities .activity-badge figcaption a {
	text-decoration: none;
}
form.booking-form > p.form-note {
	margin-top: 16px !important;
}

/* Native anchors, full-card links and motion preferences. */
[id="contact"], [id="trajets"], [id="destinations"], [id="tarifs"], [id="faq"] { scroll-margin-top: 125px; }
.admin-bar #header.ct-header { top: 32px; }
.card-navy > .wp-block-column { position: relative; }
.card-navy .wp-block-buttons, .card-navy .wp-block-button, .card-navy .wp-block-button__link { position: static; }
.card-navy .wp-block-button__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card-navy > .wp-block-column:focus-within { outline: 3px solid var(--taxi-sea); outline-offset: 4px; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--taxi-sea); outline-offset: 4px; }
@media (max-width: 782px) { .admin-bar #header.ct-header { top: 46px; } }
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto !important; }
 *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
 .site-branding:hover::before, .site-branding:hover::after, .card-navy .wp-block-column:hover, .footer-activities .activity-badge:hover img, .page-hero .wp-block-button__link:hover { transform: none !important; }
}

/* Activity badges: match reference stacking and keep editable captions visible. */
.footer-activities .activity-badge { position: relative; z-index: 1; overflow: visible; }
.footer-activities .activity-badge img { transform-origin: center bottom; }
.footer-activities .activity-badge figcaption { display: block; position: relative; color: #fff; }
.footer-activities .activity-badge figcaption a { color: inherit; transition: none; }
.footer-activities .activity-badge:has(a:focus-visible) { z-index: 5; }
.footer-activities .activity-badge:has(a:focus-visible) img { transform: translateY(-10px) scale(2.05); outline: 3px solid #fff; outline-offset: 5px; }
.footer-activities .activity-badge:has(a:focus-visible) figcaption { color: var(--taxi-yellow); }
@media (max-width: 620px) {
 .footer-activities { justify-content: center; gap: 8px; flex-wrap: nowrap; }
 .footer-activities .activity-badge { width: 31%; min-width: 0; }
 .footer-activities .activity-badge img { width: 88px; height: 88px; max-width: 100%; border-width: 2px; padding: 3px; }
 .footer-activities .activity-badge figcaption { font-size: .65rem; }
}
@media (prefers-reduced-motion: reduce) {
 .footer-activities .activity-badge:has(a:focus-visible) img { transform: none; }
 .site-branding:hover::before, .site-branding:hover::after { background-position: 0 0; }
}

/* Keep destination titles consistent and intact on narrow phones. */
@media (max-width: 414px) {
 #destinations .card-navy > .wp-block-column > h3 {
  font-size: clamp(20px, calc(12vw - 16px), 34px);
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
 }
}

/* Header refinements: decorative transparent whale, readable overflow menu. */
#header [data-row="middle"] { background: transparent; }
#header .site-title-container { position: relative; }
#header .site-title-container::after {
 content: "";
 position: absolute;
 right: -9px;
 top: calc(100% - 7px);
 width: 128px;
 height: 66px;
 background: url("../../../../uploads/2026/09/queue-baleine-filigraine.png") center / contain no-repeat;
 transform: rotate(-12deg);
 pointer-events: none;
}
#header .sub-menu { background-color: #06394b; }
#header .sub-menu .ct-menu-link {
 color: #fff !important;
 font-size: 13px !important;
}
#header .sub-menu .ct-menu-link:hover,
#header .sub-menu .ct-menu-link:focus-visible {
 color: #f7c95d !important;
 background-color: #022a38;
}
/* Enlarged pixels must not expand the hover hit area or keep a logo stuck. */
.footer-activities .activity-badge img { pointer-events: none; }
@media (max-width: 900px) {
 #header .site-title-container::after { width: 62px; height: 35px; right: -8px; top: calc(100% - 3px); }
}

/* Compact, evenly aligned facts strip on portrait phones. */
@media (max-width: 781px) {
 .wp-block-group.facts .wp-block-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
 }
 .wp-block-group.facts .wp-block-column {
  min-width: 0;
  margin: 0;
  padding: 20px 14px;
  text-align: center;
  border-left: 0;
 }
 .wp-block-group.facts .wp-block-column:nth-child(even) {
  border-left: 1px solid rgba(255, 255, 255, .22);
 }
 .wp-block-group.facts .wp-block-column:nth-child(n+3) {
  border-top: 1px solid rgba(255, 255, 255, .22);
 }
 .wp-block-group.facts p { font-size: 14px; line-height: 1.4; }
 .wp-block-group.facts p strong { font-size: 28px; line-height: 1.15; }
 .wp-block-group.facts a strong {
  font-size: 22px;
  overflow-wrap: normal;
  word-break: normal;
 }
}
@media (min-width: 901px) {
 #header .site-branding { column-gap: 11px; transform: translateY(-4px); }
 #header .site-branding .site-title,
 #header .site-branding .site-title a { font-size: 42px; line-height: .9; }
 #header .site-branding::before,
 #header .site-branding::after { width: 44px; height: 14px; background-size: 14px 14px; margin-top: 10px; }
 #header .site-branding .site-logo-container { margin-top: -3px; }
 #header .site-branding .site-logo-container img { width: 136px; height: 56px; }
 .hero-copy .hero-brand-intro { font-size: 13px; }
 .hero-copy .hero-brand-intro strong { font-size: 21px; white-space: nowrap; letter-spacing: .025em; }
}
@media (max-width: 900px) {
 #header .site-branding { transform: translateY(-4px); column-gap: 4px; }
 #header .site-branding .site-title,
 #header .site-branding .site-title a { font-size: 24px; }
 #header .site-branding::before,
 #header .site-branding::after { width: 12px; height: 10px; background-size: 7px 7px; }
 #header .site-branding .site-logo-container { margin-top: -2px; }
 #header .site-branding .site-logo-container img { width: 98px; height: 43px; }
}

/* September 2026: compact, editable page banners and reliable narrow navigation. */
#header .site-title-container::after { right: -62px; }
.hero-copy .hero-brand-intro {
 margin: 0 0 22px;
 padding: 12px 0 18px; border-bottom: 1px solid rgba(101,198,197,.55);
 font: 400 17px/1.45 Arial, Helvetica, sans-serif; color: #edf9f6;
 text-shadow: 0 2px 6px #001923;
}
.hero-copy .hero-brand-intro strong {
 display: block; margin-bottom: 10px; font: 700 28px/1.05 Arial, Helvetica, sans-serif;
 letter-spacing: -.055em; color: white; white-space: nowrap;
}
.hero-copy .hero-brand-intro br { display: none; }
.wp-block-cover.hero-new { min-height: 590px !important; padding: 20px 24px 38px !important; align-items: flex-start; }
.hero-new .hero-layout { align-items: center; }
.hero-new .hero-title { font-size: clamp(44px,4.8vw,64px); margin: 22px 0 28px; line-height: .98; }
.hero-new .hero-title em { margin-top: 12px; font-size: .64em; line-height: 1.1; }
.hero-new .hero-lead { font-size: 18px; line-height: 1.5; }
.wp-block-cover.page-hero { padding: 40px max(24px,calc((100% - 1180px)/2)); }
.wp-block-cover.page-hero .page-hero-title { font-size: clamp(38px,4.2vw,58px); line-height: 1.03; max-width: 760px; margin: 16px 0; }
.wp-block-cover.page-hero .page-lead { font-size: 17px; line-height: 1.5; max-width: 600px; margin: 18px 0; }
@media (min-width: 901px) {
 .entry-content .wp-block-group.section h2, .entry-content .popular h2,
 .entry-content .destinations h2, .entry-content .process h2,
 .entry-content .routes-section h2, .entry-content .company h2,
 .entry-content .faq h2, .entry-content .contact-section h2,
 .entry-content .final-cta h2 { font-size: clamp(32px,3vw,44px); line-height: 1.08; }
 .ct-footer [data-row='middle'] > .ct-container { padding: 28px 0 20px !important; row-gap: 16px; }
 .ct-footer [data-column='widget-area-4'] { padding-top: 20px; }
 .ct-footer [data-column='widget-area-2'], .ct-footer [data-column='widget-area-3'] { margin-top: 0; }
 .footer-activities .activity-badge { width: 130px; }
 .footer-activities .activity-badge img { width: 112px; height: 112px; }
}
.ct-footer { padding-bottom: 14px !important; }
.ct-footer .wp-block-list li { margin-bottom: 4px; }
.ct-footer h3.wp-block-heading { margin-bottom: 8px; }
.ct-footer .btp-facebook {
 margin-top: 32px;
 line-height: 0;
}
.ct-footer .btp-facebook a {
 display: block;
 width: 42px;
 height: 42px;
 line-height: 0;
 border: 0;
 border-radius: 0;
 background: transparent;
 box-shadow: none;
 outline: none;
 overflow: visible;
 clip-path: none;
}
.ct-footer .btp-facebook img {
 display: block;
 width: 100%;
 height: 100%;
 object-fit: cover;
 border: 0;
 border-radius: 0;
 background: transparent;
 box-shadow: none;
 outline: none;
}
@media (max-width: 900px) {
 .ct-footer .btp-facebook {
  margin-top: 2px;
 }
 .ct-footer .btp-facebook a {
  width: 40px;
  height: 40px;
 }
}
/* This menu uses native details/summary and the existing WordPress menu. */
.btp-compact-menu { display: none; }
@media (max-width: 1150px) {
 #header nav.header-menu-1 { display: none !important; }
 #header .site-title-container::after { right: -78px; top: calc(100% - 2px); width: 134px; height: 69px; }
 #header [data-device] { position: relative; }
 .btp-compact-menu { display: block; position: absolute; right: 210px; top: 36px; z-index: 20; }
 .btp-compact-menu summary { cursor: pointer; list-style: none; padding: 10px 14px; font: 700 13px/1.4 Arial,sans-serif; color: #06394b; border: 1px solid #bad3d5; border-radius: 5px; background: #f3f8f6; }
 .btp-compact-menu summary::-webkit-details-marker { display: none; }
 .btp-compact-menu summary::after { content: ' ▾'; }
 .btp-compact-menu[open] summary::after { content: ' ▴'; }
 .btp-compact-menu nav { position: absolute; right: 0; top: calc(100% + 6px); width: 220px; padding: 8px; background: #06394b; border-radius: 6px; box-shadow: 0 8px 24px #00192340; }
 .btp-compact-menu ul { padding: 0; margin: 0; list-style: none; }
 .btp-compact-menu a { display: block; padding: 12px; color: #fff !important; font: 600 14px/1.4 Arial,sans-serif; }
 .btp-compact-menu a:hover, .btp-compact-menu a:focus-visible { color: #f7c95d !important; background: #022a38; }
}
@media (max-width: 999px) {
 #header [data-device='mobile'] [data-row='middle'] { --height: 120px; min-height: 120px; }
 #header [data-device='mobile'] .ct-header-cta { transform: translateY(-14px); }
 #header [data-device='mobile'] .btp-compact-menu { top: 50%; bottom: auto; right: 210px; transform: translateY(-50%); }
 .btp-compact-menu summary { padding: 5px 12px; }
}
@media (min-width: 560px) and (max-width: 900px) and (max-height: 500px) and (orientation: landscape) {
 #header [data-device='mobile'] [data-row='middle'] { --height: 100px; min-height: 100px; }
 #header [data-device='mobile'] .btp-compact-menu {
  top: 36px;
  right: 210px;
  bottom: auto;
  left: auto;
  transform: none;
 }
}
@media (max-width: 900px) {
 #header .site-title-container::after { right: -48px; top: calc(100% - 2px); width: 65px; height: 37px; }
 .wp-block-cover.hero-new { min-height: 0 !important; padding: 14px 0 32px !important; }
 .hero-copy .hero-brand-intro { padding-top: 6px; }
 .hero-new .hero-title { font-size: clamp(42px,7vw,60px); }
 .ct-footer [data-row='middle'] > .ct-container { padding: 26px 0 18px !important; gap: 18px; }
 .ct-footer [data-column='widget-area-2'], .ct-footer [data-column='widget-area-3'] { margin-top: 0; }
}
@media (max-width: 600px) {
 .hero-copy .hero-brand-intro { padding: 8px 0 14px; font-size: 14px; }
 .hero-copy .hero-brand-intro strong { font-size: clamp(19px,5.2vw,25px); white-space: nowrap; margin-bottom: 10px; }
 .hero-new .hero-lead { font-size: 17px; }
 .wp-block-cover.page-hero { padding: 32px 22px; }
 .wp-block-cover.page-hero .page-hero-title { font-size: 38px; }
}

/* Final desktop rhythm: retain the hierarchy while using the available height
   more efficiently. The footer stays on its existing two-row layout below
   this breakpoint, where that keeps the links and activity badges readable. */
@media (min-width: 1151px) {
 .wp-block-group.routes-section > h2 {
  font-size: clamp(32px, 3vw, 44px) !important;
  line-height: 1.08;
  margin-top: 12px;
  margin-bottom: 24px;
 }

 .ct-footer [data-row='middle'] > .ct-container {
  grid-template-columns: 220px 130px minmax(200px, 1fr) auto !important;
  grid-template-areas: 'brand nav contact badges';
  column-gap: 24px;
  row-gap: 0;
  padding: 24px 0 16px !important;
 }

 .ct-footer [data-column='widget-area-4'] {
  padding-top: 0;
  align-self: center;
 }

 .footer-activities { gap: 16px; }
 .footer-activities .activity-badge { width: 116px; }
 .footer-activities .activity-badge img { width: 100px; height: 100px; }
}

@media (max-width: 900px) {
 .ct-footer [data-row='middle'] > .ct-container {
  padding: 18px 0 12px !important;
  gap: 12px;
 }

 .ct-footer p,
 .ct-footer .wp-block-list li { line-height: 1.4; }

 .ct-footer .wp-block-list li { margin-bottom: 2px; }
 .ct-footer h3.wp-block-heading { margin-bottom: 6px; }
 .footer-activities .activity-badge img { width: 80px; height: 80px; }
}

@media (max-width: 600px) {
 /* Keep the logo, menu and direct call together on one compact phone row. */
 #header [data-device='mobile'] [data-row='middle'] {
  --height: 78px;
  min-height: 78px;
 }
 #header [data-device='mobile'] .site-branding {
  transform: translateY(-2px);
 }
 #header [data-device='mobile'] .site-branding .site-title,
 #header [data-device='mobile'] .site-branding .site-title a {
  font-size: 20px;
 }
 #header [data-device='mobile'] .site-branding .site-logo-container img {
  width: 80px;
  height: 35px;
 }
 #header [data-device='mobile'] .ct-header-cta {
  transform: none;
 }
 #header [data-device='mobile'] .ct-header-cta .ct-button {
  padding: 9px 8px !important;
  font-size: 10px !important;
 }
 #header [data-device='mobile'] .btp-compact-menu {
  top: 50%;
  right: auto;
  bottom: auto;
  left: calc(50% + 14px);
  transform: translate(-50%, -50%);
 }
 #header [data-device='mobile'] .btp-compact-menu summary {
  padding: 6px 8px;
  font-size: 11px;
 }

 /* Separate the hero review action from the compact route form on phones. */
 .hero-route-form {
  margin-top: 18px !important;
 }
}

/* Tighter editorial rhythm without changing Gutenberg content. */
.entry-content .wp-block-group > p {
 margin-block: 0 .7rem;
}

/* Keep destination names readable in the compact routes table on phones. */
@media (max-width: 600px) {
 .wp-block-group.routes-section .wp-block-table td {
  padding-inline: 6px;
  font-size: 13px;
 }
 .wp-block-group.routes-section .wp-block-table td:nth-child(2) {
  white-space: nowrap;
 }
}

@media (max-width: 375px) {
 #header [data-device='mobile'] .site-branding .site-title,
 #header [data-device='mobile'] .site-branding .site-title a {
  font-size: 19px;
 }
 #header [data-device='mobile'] .site-branding .site-logo-container img {
  width: 70px;
  height: 32px;
 }
 #header [data-device='mobile'] .ct-header-cta .ct-button {
  padding-inline: 7px !important;
  font-size: 9px !important;
 }
 #header [data-device='mobile'] .btp-compact-menu {
  left: calc(50% + 18px);
 }
}

@media (max-width: 340px) {
 #header [data-device='mobile'] .site-branding {
  grid-template-columns: 11px auto 11px;
  gap: 0 3px;
 }
 #header [data-device='mobile'] .site-branding .site-title,
 #header [data-device='mobile'] .site-branding .site-title a {
  font-size: 17px;
 }
 #header [data-device='mobile'] .site-branding .site-logo-container img {
  width: 64px;
  height: 30px;
 }
 #header [data-device='mobile'] .ct-header-cta .ct-button {
  padding-inline: 6px !important;
  font-size: 8.5px !important;
 }
 #header [data-device='mobile'] .btp-compact-menu {
  left: calc(50% + 13px);
 }
}

/* Keep the full brand signature slightly lower while compact navigation is in use. */
@media (min-width: 901px) and (max-width: 1150px) {
 #header [data-device] .site-branding { transform: translateY(-4px); }
 #header .site-title-container::after { width: 100px; height: 52px; }
}
@media (max-width: 900px) {
 #header [data-device] .site-branding { transform: translateY(8px); }
}
@media (max-width: 600px) {
 #header [data-device='mobile'] .site-branding { transform: translateY(6px); }
}


/* ---- Shared public-page spacing scale ---- */
:root {
 --btp-space-1: 8px;
 --btp-space-2: 12px;
 --btp-space-3: 20px;
 --btp-space-4: 32px;
 --btp-section-space: 64px;
}

/* These groups are reused on the home page and destination pages. */
.entry-content .wp-block-group.section > h3 {
 margin-block: var(--btp-space-4) var(--btp-space-2);
}
.entry-content .wp-block-group.section > h2 + h3 {
 margin-top: var(--btp-space-3);
}
.entry-content .wp-block-group.panel > h3 + p {
 margin-top: var(--btp-space-1);
}
.wp-block-group.section,
.wp-block-group.popular,
.wp-block-group.faq,
.wp-block-group.company {
 padding-block: var(--btp-section-space);
}
.wp-block-group.contact-section {
 padding-block: var(--btp-section-space) 72px;
}
.wp-block-group.process.alignfull {
 padding-block: 56px !important;
}
.wp-block-group.final-cta {
 padding-block: var(--btp-section-space);
}
.wp-block-group.split-wrap {
 gap: 48px;
}
.wp-block-group.section h2,
.wp-block-group.popular h2,
.wp-block-group.process h2,
.wp-block-group.routes-section h2,
.wp-block-group.faq h2,
.wp-block-group.company h2,
.wp-block-group.contact-section h2 {
 margin: var(--btp-space-1) 0 var(--btp-space-3);
}
.entry-content .wp-block-group > p {
 margin-block: 0 var(--btp-space-2);
}
.section .wp-block-table,
.fare-callout {
 margin-top: var(--btp-space-4) !important;
}
.company-intro {
 margin-bottom: var(--btp-space-4);
}
.company-note + .wp-block-buttons {
 margin-top: var(--btp-space-4) !important;
}
.head-split > h2 + p + * {
 margin-top: var(--btp-space-4) !important;
}

@media (max-width: 900px) {
 :root { --btp-section-space: 48px; }
 .wp-block-group.contact-section { padding-bottom: 60px; }
 .wp-block-group.process.alignfull { padding-block: 48px !important; }
 .wp-block-group.final-cta { padding-block: 52px; }
 .wp-block-group.split-wrap { gap: 32px; }
 .wp-block-group.section h2,
 .wp-block-group.popular h2,
 .wp-block-group.process h2,
 .wp-block-group.routes-section h2,
 .wp-block-group.faq h2,
 .wp-block-group.company h2,
 .wp-block-group.contact-section h2 { margin-bottom: var(--btp-space-3); }
 .faq .wp-block-details { padding: 18px 20px; }
}

@media (max-width: 600px) {
 :root { --btp-section-space: 40px; }
 .wp-block-group.contact-section { padding-bottom: 56px; }
 .wp-block-group.process.alignfull { padding-block: 40px !important; }
 .wp-block-group.final-cta { padding-block: 44px; }
 .wp-block-group.split-wrap { gap: 24px; }
 .wp-block-group.section h2,
 .wp-block-group.popular h2,
 .wp-block-group.process h2,
 .wp-block-group.routes-section h2,
 .wp-block-group.faq h2,
 .wp-block-group.company h2,
 .wp-block-group.contact-section h2 { margin-bottom: 18px; }
 .faq-grid { gap: var(--btp-space-2); }
}
