/*
Theme Name:   Rebuilto Child
Description:  Thème enfant de Rebuilto pour le site de Tropic Holding (Aurelius-DC). Le thème parent charge lui-même cette feuille de style (inc/class-main.php).
Author:       Aurelius-DC
Template:     rebuilto
Version:      1.17.4
Text Domain:  rebuilto-child
*/

/*
 * Focus visible au clavier. Le thème le retire partout (`:focus { outline: none }` dans son style.css) :
 * un visiteur au clavier ne voyait pas où il se trouvait (constaté le 2026-10-12). Clavier seulement
 * (`:focus-visible`) : le rendu à la souris ne change pas. Couleur du texte de l'élément, donc contrastée
 * avec son fond.
 */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

/* Boutons : contour à l'intérieur, sur le fond du bouton (à l'extérieur, de la couleur du texte, il disparaîtrait
   sur une page de la même couleur — texte blanc sur page blanche). */
.elementor-button:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible {
	outline-offset: -5px;
}

/*
 * Accueil : fin du titre du bandeau en orange (« faire germer l’industrie », 2026-10-14 ; fin de chacun des quatre
 * titres du diaporama depuis le 2026-10-16), comme l'ancienne formule défilante. Sur les photos claires du diaporama,
 * l'orange de la charte (#D95300) n'atteint pas 3:1 (mesuré le 2026-10-16, fond au 90e centile sous le texte : 1,0 à
 * 2,8:1) : orange clair #F07D2E au-dessus de 1200 px, où le texte est dans le bas sombre du voile en dégradé
 * (3,5:1 au moins à 1280 px, 4,1:1 à 1440 px) ; en dessous, le texte remonte au milieu de la photo et aucun orange
 * n'y atteint 3:1 (2,9:1 au mieux à 1024 px) : titre entièrement blanc (4,5:1 au moins).
 */
.tropic-titre-accueil .tropic-orange {
	color: #FFFFFF;
}

@media (min-width: 1201px) {
	.tropic-titre-accueil .tropic-orange {
		color: #F07D2E;
	}
}

/*
 * En-tête de l'accueil, vidéo de la vue 1 (2026-10-16) : sous 1025 px, les messages remontent sur le haut de l'image
 * (ciel en contre-jour) ; le surtitre (13 px) n'y avait que 3,4:1 (mesuré à 768 et 390 px) → voile du haut porté de 45
 * à 60 % (5,9:1 attendu), pour toutes les vues. Mêmes éléments que le voile d'Elementor : conteneur, cadre de la vidéo
 * et diaporama, aussi dans `.e-con-inner` pour un conteneur « boxed » (sans ce dernier sélecteur, la vidéo gardait le
 * voile de 45 %, constaté à 768 px).
 */
@media (max-width: 1024px) {
	.e-con.tropic-heros::before,
	.e-con.tropic-heros > .elementor-background-video-container::before,
	.e-con.tropic-heros > .e-con-inner > .elementor-background-video-container::before,
	.e-con.tropic-heros > .elementor-background-slideshow::before,
	.e-con.tropic-heros > .e-con-inner > .elementor-background-slideshow::before {
		background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.6) 30%, rgba(0, 0, 0, 0.85) 100%) !important;
	}
}

/*
 * Vidéo de la vue 1 du diaporama (assets/js/diaporama-accueil.js) : couche posée dans le diaporama d'Elementor,
 * au-dessus des photos (`.swiper-wrapper`, z-index 1) et sous le voile ; même fondu que les photos (1,2 s). L'adresse
 * est dans un élément masqué de la page.
 */
.tropic-heros .tropic-heros-video {
	position: absolute;
	inset: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 1.2s ease-in-out;
	pointer-events: none;
}

.tropic-heros .tropic-heros-video.est-visible {
	opacity: 1;
}

/*
 * Zoom avant lent des vues photo (« Ken Burns » d'Elementor, 2026-10-16, d'après le site de référence) : Elementor fait
 * revenir l'image à sa taille en 10 s dès qu'elle n'est plus active, donc pendant le fondu de sortie (léger dézoom
 * visible) → retour instantané, après le fondu (1,2 s).
 * Vue vidéo (`tropic-vue-video`, posée par le script) : pas de zoom. Agrandie peu à peu, la vidéo (1280 × 720)
 * scintillait dans ses détails fins (« la vidéo tremblote », 16/10) ; son affiche, dessous, reste à sa taille pour
 * coïncider avec elle pendant les fondus.
 */
.tropic-heros .elementor-ken-burns:not(.elementor-ken-burns--active) {
	transition: transform 0s linear 1.3s;
}

.tropic-heros .tropic-vue-video .elementor-ken-burns,
.tropic-heros .tropic-heros-video {
	transform: none !important;
}

/* Animations réduites demandées par le visiteur : aucun zoom. */
@media (prefers-reduced-motion: reduce) {
	.tropic-heros .elementor-ken-burns {
		transform: none !important;
	}
}

.tropic-video-source {
	display: none !important;
}

/*
 * Accueil : un message par photo du diaporama de l'en-tête (2026-10-16, assets/js/diaporama-accueil.js). Les quatre
 * messages occupent la même case (grille), alignés en bas, au-dessus de la barre des boutons : la hauteur est celle
 * du plus long, rien ne bouge quand le message change. Fondu de 1,2 s, comme les photos ; aucun sans animation.
 */
.e-con.tropic-messages {
	display: grid;
	align-items: end;
}

.e-con.tropic-messages > .tropic-message {
	grid-area: 1 / 1;
	opacity: 0;
	transition: opacity 1.2s ease;
}

.e-con.tropic-messages > .tropic-message.est-actif {
	opacity: 1;
}

.tropic-phrases-accueil p {
	margin: 0;
}

/* Petits textes blancs (surtitre, phrases) sur les photos claires du diaporama (tracteurs, carrière : voile de 40 %
   seulement) : ombre portée discrète, sans changer le voile des photos. */
.tropic-surtitre-accueil .elementor-heading-title,
.tropic-phrases-accueil {
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6), 0 0 10px rgba(0, 0, 0, 0.45);
}

.tropic-diapo-commandes {
	gap: 4px;
}

/* Pastilles : cible de 32 px (WCAG 2.5.8 : 24 px au moins), point de 10 px ; message affiché : point plein. */
.tropic-pastille,
.tropic-diapo-pause {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #FFFFFF;
	cursor: pointer;
}

.tropic-pastille::before {
	content: "";
	width: 10px;
	height: 10px;
	border: 2px solid #FFFFFF;
	border-radius: 50%;
	box-sizing: border-box;
}

.tropic-pastille[aria-current="true"]::before {
	background: #FFFFFF;
}

/* Pause : deux barres ; arrêté : triangle de lecture. Cercle blanc de 32 px. */
.tropic-diapo-pause {
	margin-left: 8px;
	border: 2px solid #FFFFFF;
}

.tropic-diapo-pause::before {
	content: "";
	width: 8px;
	height: 10px;
	border-left: 3px solid #FFFFFF;
	border-right: 3px solid #FFFFFF;
	box-sizing: border-box;
}

.tropic-diapo-pause.est-arrete::before {
	width: 0;
	height: 0;
	margin-left: 3px;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 9px solid #FFFFFF;
	border-right: 0;
}

.tropic-pastille:hover::before,
.tropic-diapo-pause:hover {
	border-color: var(--e-global-color-orange, #D95300);
}

@media (prefers-reduced-motion: reduce) {
	.e-con.tropic-messages > .tropic-message {
		transition: none;
	}
}

/*
 * Typographie française : la feuille de base du thème met une capitale à chaque mot de tous les boutons
 * (`.elementor-button { text-transform: capitalize }`, usage anglais). En français, seule la première lettre
 * est en capitale : les textes sont écrits ainsi, sans transformation.
 */
body .elementor-button,
body .button-style span {
	text-transform: none;
}

/*
 * Zones sombres (en-tête, sections noires, méga-menu, pied de page) : le vert de la charte (#226E49) n'y a que
 * 2,8:1 de contraste sur #191919 ; on y emploie sa nuance claire du kit, « Vert clair » (#2E9462, 4,6:1), et un
 * survol plus clair (#37A86F, 5,9:1). Texte secondaire : le gris du kit (#707070, choisi pour les fonds clairs)
 * n'a que 3,55:1 sur #191919 (pied de page : libellés, copyright, liens légaux, constaté le 2026-10-13) ; on y
 * reprend le gris de la démo, #888888 (5,25:1 sur #191919, 5,9:1 sur noir). Classe posée sur les conteneurs concernés.
 */
.tropic-sombre {
	--primary: var(--e-global-color-vert_clair, #2E9462);
	--primary_hover: #37A86F;
	--e-global-color-primary: var(--e-global-color-vert_clair, #2E9462);
	--e-global-color-primary_hover: #37A86F;
	--text_light: #888888;
	--e-global-color-text_light: #888888;
}

/* Cartes des filiales (logos sur fond blanc) : voile en dégradé limité au bas de la carte, sous le titre blanc,
   au lieu du voile noir à 40 % sur toute la carte (pensé pour des photos). Carrousels marqués `tropic-cartes-logos`
   et archive d'un pays (/pays/<pays>/, cible du fil d'Ariane des fiches filiales). */
.tropic-cartes-logos .project-item[class*="project-style"] .project-post-thumbnail::before,
.tax-rebuilto_project_cat .project-item[class*="project-style"] .project-post-thumbnail::before {
	background-color: transparent; /* règle du thème plus spécifique (.project-item.project-style-1 …) : à neutraliser */
	background-image: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.35) 32%, rgba(0, 0, 0, 0) 58%);
}

/*
 * Bandeau de titre des pages intérieures (modèle de fil d'Ariane du thème) : photo par défaut. La démo n'en avait
 * aucune (fond gris). Une fiche peut la remplacer dans ses réglages Elementor (« Breadcrumb Settings » du thème,
 * règle `.elementor-page-<id> .breadcrumb-wrap`, plus forte). Pas dans les réglages du modèle 620 lui-même : le
 * thème y écrit l'identifiant de la page en cours au moment où la feuille du modèle est générée (`get_the_ID()`,
 * inc/elementor/modules/page-settings.php) — la règle par défaut et celle de la fiche devenaient identiques et la
 * dernière chargée (le modèle) l'emportait (constaté le 2026-10-13). Voile noir à 60 % : conteneur du modèle.
 */
.breadcrumb-wrap {
	background: #191919 url("assets/images/bandeau-defaut-1920.jpg") center center / cover no-repeat;
}

@media (max-width: 767px) {
	.breadcrumb-wrap {
		background-image: url("assets/images/bandeau-defaut-800.jpg");
	}
}

/*
 * Fiche d'identité des filiales (widget « Project Information » du thème) : libellés à 25 % de la largeur, soit
 * 85 px sur mobile — « Pôle d’intervention » y était coupé en plein mot (« d’interventi / on », constaté le
 * 2026-10-13 à 390 px). 40 % sur mobile.
 */
@media (max-width: 767px) {
	.sinlge-project-meta .meta-item .title {
		flex-basis: 40%;
		max-width: 40%;
	}
}

/*
 * Menus déroulants de l'en-tête sur fond noir (réglages du widget de menu, entete-pied/construire.py) : filets
 * entre les entrées et page en cours lisibles sur ce fond. Le thème prévoit des filets clairs (--border) et la
 * page en cours en noir (--accent, !important) pour un menu sur fond blanc.
 */
.tropic-sombre .main-navigation ul.menu li.menu-item .sub-menu .menu-item {
	border-bottom-color: rgba(255, 255, 255, 0.12);
}

.tropic-sombre .main-navigation ul.menu li.menu-item .sub-menu .menu-item.current-menu-item > a span,
.tropic-sombre .main-navigation ul.menu li.menu-item .sub-menu .menu-item.current-menu-parent > a span,
.tropic-sombre .main-navigation ul.menu li.menu-item .sub-menu .menu-item.current-menu-ancestor > a span {
	color: var(--primary) !important;
}

/*
 * Frise historique (widget « Scroll Timeline », page Qui sommes-nous) : le thème étire l'image de l'étape sur toute
 * la hauteur de la liste (1 500 px pour 9 étapes) en mode « cover » — pensé pour des photos, il rognait les cartes
 * logo des filiales (« TAC Logi… », constaté le 2026-10-13). Carte entière, collée sous l'en-tête pendant le défilement.
 */
.tropic-frise .scroll-timeline-image img {
	position: sticky;
	top: 140px;
	height: auto;
	max-height: 460px;
	object-fit: contain;
}

/*
 * Liens dans les textes courants (mentions légales, politique, coordonnées) : distingués par la seule couleur, noir
 * sur texte gris #555 (2,8:1 < 3:1, WCAG 1.4.1, constaté le 2026-10-13) → soulignés. Boutons exclus.
 */
.elementor-widget-text-editor a:not(.elementor-button) {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* Message « aucun article » de la page Actualités (code court du thème enfant, inc/actualites.php). */
.tropic-aucun-article {
	margin: 0;
}

/*
 * Lettre d'information (bandeau sombre de l'accueil, formulaire Contact Form 7 « Newsletter (FR) ») : champ blanc
 * arrondi et bouton rond à enveloppe, comme le formulaire Mailchimp de la démo Home 1 ; case d'accord en clair.
 */
.tropic-newsletter-form {
	max-width: 740px;
}

.tropic-newsletter-champ {
	position: relative;
}

.tropic-newsletter-champ .wpcf7-form-control-wrap {
	display: block;
}

.tropic-newsletter-champ input[type="email"] {
	width: 100%;
	height: 64px;
	padding: 0 84px 0 28px;
	border: 0;
	border-radius: 32px;
	background: #fff;
	color: #000;
	font-size: 15px;
}

.tropic-newsletter-champ input[type="email"]::placeholder {
	color: #555;
	opacity: 1;
}

.tropic-newsletter-bouton {
	position: absolute;
	top: 6px;
	right: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--primary);
	color: #fff;
	font-size: 20px;
	cursor: pointer;
	transition: background-color 0.2s;
}

.tropic-newsletter-bouton:hover,
.tropic-newsletter-bouton:focus-visible {
	background: var(--primary_hover, #1a5a3b);
}

.tropic-newsletter-form .tropic-accord {
	margin-top: 18px;
	color: #c8c8c8;
	font-size: 14px;
}

.tropic-newsletter-form .tropic-accord a {
	color: #fff;
	text-decoration: underline;
}

.tropic-newsletter-form .wpcf7-not-valid-tip,
.tropic-sombre .wpcf7-not-valid-tip {
	color: #ff9a8f; /* rouge de Contact Form 7 (#dc3232) : 3,9:1 sur le fond sombre, sous le seuil */
}

.tropic-newsletter .wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0;
	color: #fff;
}

/* Retour du lien de confirmation de la lettre d'information (inc/newsletter.php). */
.tropic-avis {
	position: relative;
	z-index: 1000;
	padding: 14px 20px;
	background: var(--primary);
	color: #fff;
	font-size: 15px;
	text-align: center;
}

.tropic-avis-expiree {
	background: #191919;
}

/* Case d'accord des formulaires (contact, lettre d'information) : retrait de 1 em de Contact Form 7 retiré, la case
   s'aligne sur les champs. */
.tropic-accord .wpcf7-list-item {
	margin-left: 0;
}

/* Formulaire de contact : les rangées du thème (`.ct-form .row`) sont décalées de -10 px, rattrapés par les colonnes
   (`[class*=column-]`, 10 px) ; la rangée de la case d'accord n'a pas de colonne → même marge intérieure. */
.ct-form .row.tropic-accord {
	padding: 0 10px;
}

/*
 * Page 404 et recherche (404.php, search.php, content-none.php, inc/recherche.php). « 404 » en orange de la charte
 * (accent décoratif ; le rouge #DE3431 du thème est hors charte) ; titre passé de H2 à H1 avec la taille d'un H2 du
 * thème (50 px, 36 px sur petit écran comme le thème). Bandeau de la 404 = celui des articles : bouton
 * « Toutes les actualités » masqué.
 */
.error404 .page-content .error-heading {
	color: var(--e-global-color-orange, #D95300);
}

.error404 .page-content .error-title {
	font-size: 50px;
	line-height: 1.08;
}

@media (max-width: 568px) {
	.error404 .page-content .error-title {
		font-size: 36px;
	}
}

.error404 .breadcrumb-wrap .elementor-widget-rebuilto-button {
	display: none;
}

/* Pastille de l'icône en vert, comme les autres boutons du site (noire dans le gabarit du thème). */
.error404 .error-button .elementor-button i {
	background-color: var(--primary);
}

.error404 .error-button .elementor-button:hover i,
.error404 .error-button .elementor-button:focus-visible i {
	background-color: var(--primary_hover, #1a5a3b);
}

.tropic-recherche {
	max-width: 880px;
	margin: 0 auto 48px;
	text-align: center;
}

.search-results .tropic-recherche {
	margin-bottom: 60px;
}

.tropic-recherche .search-form {
	display: flex;
	gap: 10px;
	max-width: 560px;
	margin: 24px auto 32px;
}

.tropic-recherche .search-form label {
	flex: 1;
	margin: 0;
}

.tropic-recherche .search-field {
	width: 100%;
	height: 56px;
	padding: 0 24px;
	border: 1px solid #c4c4c4;
	border-radius: 28px;
	background: #fff;
	color: #000;
	font-size: 15px;
}

.tropic-recherche .search-field::placeholder {
	color: #555;
	opacity: 1;
}

.tropic-recherche .search-submit {
	height: 56px;
	padding: 0 28px;
	border: 0;
	border-radius: 28px;
	background: var(--primary);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s;
}

.tropic-recherche .search-submit:hover,
.tropic-recherche .search-submit:focus-visible {
	background: var(--primary_hover, #1a5a3b);
}

.tropic-liens-utiles ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tropic-liens-utiles a {
	display: inline-block;
	padding: 10px 20px;
	border: 1px solid #c4c4c4;
	border-radius: 24px;
	color: #191919;
	font-size: 15px;
	transition: border-color 0.2s, color 0.2s;
}

.tropic-liens-utiles a:hover,
.tropic-liens-utiles a:focus-visible {
	border-color: var(--primary);
	color: var(--primary);
}

/* Résultats de recherche : la pastille de date du thème n'a de sens que pour un article (pôles, filiales : date de
   création de la fiche). */
.search-results article:not(.type-post) .posted-on-square {
	display: none;
}

@media (max-width: 567px) {
	.tropic-recherche .search-form {
		flex-direction: column;
	}
}

/*
 * Panneau du menu mobile fermé : le thème le pousse seulement hors de l'écran (translate) — ses liens restaient
 * atteignables à la touche Tab, invisibles (constaté le 2026-10-14). Masqué une fois l'animation de fermeture
 * finie (visibilité retardée de 0,25 s), visible dès l'ouverture. Voir assets/js/menu-mobile.js.
 */
.rebuilto-mobile-nav {
	visibility: hidden;
	transition: transform 0.25s ease, visibility 0s linear 0.25s;
}

.mobile-nav-active .rebuilto-mobile-nav {
	visibility: visible;
	transition: transform 0.25s ease, visibility 0s linear 0s;
}

/*
 * Numéros de téléphone (liens « tel: ») dans les encarts à icône des zones sombres — pied de page, encart « Une
 * question ? » des fiches pôles : couleur du texte de l'encart (le thème met les liens en noir, illisibles sur
 * #191919, constaté le 2026-10-14) ; soulignés au survol et au focus.
 */
.tropic-sombre .elementor-icon-box-description a {
	color: inherit;
}

.tropic-sombre .elementor-icon-box-description a:hover,
.tropic-sombre .elementor-icon-box-description a:focus-visible {
	text-decoration: underline;
}

/* Lien d'évitement « Aller au contenu » (inc/accessibilite.php) : hors de l'écran, affiché au focus. */
.tropic-evitement {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 100000;
	padding: 0.75em 1.5em;
	background: #fff;
	color: #226e49;
	font-weight: 600;
	text-decoration: underline;
	transform: translateY(-120%);
}

.tropic-evitement:focus {
	transform: none;
	outline: 2px solid #226e49;
	outline-offset: -4px;
}

#contenu:focus {
	outline: none;
}

/*
 * Appels finals (bloc a-propos-06 de la démo : surtitre, titre, bouton rond de 180 px qui suit la souris) sur tablette :
 * la colonne du titre et le bouton se partageaient une largeur fixe, le widget du bouton tombait à 100 px et le rond
 * débordait de 50 à 80 px hors de l'écran (coupé), le titre se coupait en plein mot (« CANDIDATUR / E ») — constaté
 * à la recette du 2026-10-15, 22 pages, de 768 à ~985 px. Sur tablette, bouton sous le texte, comme sur mobile.
 */
@media (min-width: 768px) and (max-width: 1024px) {
	.e-con:has(> .elementor-widget-rebuilto-button-mousemove) {
		flex-wrap: wrap;
		flex: 1 1 0;
		min-width: 0;
	}

	.e-con:has(> .elementor-widget-rebuilto-button-mousemove) > .elementor-widget-rebuilto-button-mousemove {
		flex: 0 0 100%;
		margin-top: 30px;
	}

	.e-con:has(> .elementor-widget-rebuilto-button-mousemove) > :not(.elementor-widget-rebuilto-button-mousemove) {
		flex: 1 1 100%;
		max-width: 100%;
	}

	/* Surtitre à la hauteur de la première ligne du titre (centré, il tombait entre le titre et le bouton). */
	.e-con-inner:has(> .e-con > .elementor-widget-rebuilto-button-mousemove) {
		align-items: flex-start;
	}

	.e-con-inner:has(> .e-con > .elementor-widget-rebuilto-button-mousemove) > .e-con:first-child {
		padding-top: 20px;
	}
}

/*
 * Cartes des pôles (rebuilto-services, style 1 « à effet », accueil et page Pôles) : quatre cartes sur toute la
 * largeur, titres de 20 à 28 px — de 768 à ~1300 px, « hydroélectricité » était plus large que sa carte et passait
 * sous la carte voisine (recette du 2026-10-15). Tablette : deux cartes par ligne ; ordinateur : titre proportionné
 * à la largeur d'une carte (un quart de l'écran), 28 px au plus. Survol (titre agrandi à 36 px par le thème, carte
 * élargie à 37,5 % de l'écran) : même plafond, calculé sur la carte survolée.
 */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-widget-rebuilto-services.elementor-style-effect-yes.elementor-service-style-1 .d-grid {
		flex-wrap: wrap;
	}

	.elementor-widget-rebuilto-services.elementor-style-effect-yes.elementor-service-style-1 .d-grid .grid-item {
		flex: 0 0 50%;
		width: 50%;
	}

	.elementor-widget-rebuilto-services.elementor-style-effect-yes.elementor-service-style-1 .service-item .service-inner:hover .service-title {
		font-size: min(36px, calc((50vw - 64px) / 10));
	}
}

@media (min-width: 1025px) {
	.elementor-widget-rebuilto-services.elementor-style-effect-yes.elementor-service-style-1 .service-item .service-title {
		font-size: min(28px, calc((25vw - 64px) / 10));
	}

	.elementor-widget-rebuilto-services.elementor-style-effect-yes.elementor-service-style-1 .service-item .service-inner:hover .service-title {
		font-size: min(36px, calc((37.5vw - 64px) / 10));
	}
}

/*
 * Entrée « Contact » du menu principal (classe tropic-menu-mobile, build/menus/creer_menu_fr.php) : panneau du menu
 * mobile seulement — sur ordinateur, le bouton « Nous contacter » de l'en-tête en tient lieu (2026-10-15).
 */
.main-navigation .menu-item.tropic-menu-mobile {
	display: none;
}
