/*
Theme Name: ALTIVA
Theme URI: https://altiva.ch
Author: ALTIVA
Description: Thème sur mesure pour ALTIVA — transport privé de personnes. Genève, Léman, Alpes. Palette teal/ivoire, accent rouge suisse. Coordonnées et textes clés éditables via Apparence → Personnaliser.
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: altiva
*/

:root{
  --teal-900:#06231f;
  --teal-800:#0a3630;
  --teal-700:#0f4a41;
  --teal-600:#166b5e;
  --teal-400:#3f9b8b;
  --teal-100:#d7e8e4;
  --ivory:#f6f4ef;
  --paper:#fbfaf7;
  --red:#d8232a;
  --ink:#12211f;
  --grey:#6d7d7a;
  --serif:'Bodoni Moda',Georgia,serif;
  --sans:'Jost',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
.eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;font-weight:500;color:var(--teal-400)}
.eyebrow.dark{color:var(--teal-600)}

/* ---------- NAV ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:100;transition:.4s;padding:18px 0}
header.scrolled{background:rgba(6,35,31,.96);backdrop-filter:blur(14px);padding:11px 0;box-shadow:0 1px 0 rgba(255,255,255,.08)}
nav{display:flex;align-items:center;gap:28px;flex-wrap:nowrap}
.logo{font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:23px;letter-spacing:.2em;color:var(--ivory);flex:0 0 auto;line-height:1.1;white-space:nowrap}
.logo b{font-weight:700;color:var(--red)}
.logo span{display:block;font-family:var(--sans);font-size:8px;letter-spacing:.34em;color:var(--teal-400);margin-top:3px;text-transform:uppercase;white-space:nowrap}
.links{display:flex;gap:26px;align-items:center;flex:1 1 auto;justify-content:center;min-width:0}
.links a{color:var(--ivory);font-size:12px;letter-spacing:.09em;text-transform:uppercase;opacity:.85;transition:.25s;white-space:nowrap}
.links a:hover{opacity:1;color:var(--teal-400)}
.nav-right{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.lang{display:flex;gap:7px;align-items:center;font-size:11px;letter-spacing:.1em;color:var(--ivory);white-space:nowrap}
.lang button{background:none;border:none;color:inherit;font-family:inherit;font-size:11px;letter-spacing:.1em;cursor:pointer;opacity:.5;transition:.2s;padding:0;line-height:1.6}
.lang button.on{opacity:1;border-bottom:1px solid var(--red)}
.lang i{font-style:normal;opacity:.3}
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:14px 30px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;transition:.3s;border:1px solid transparent}
.btn-mini{padding:9px 16px;font-size:10px;letter-spacing:.11em;white-space:nowrap}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:#b31d23}
.btn-line{border-color:rgba(246,244,239,.35);color:var(--ivory)}
.btn-line:hover{border-color:var(--ivory);background:rgba(246,244,239,.08)}
.btn-dark{background:var(--teal-800);color:var(--ivory)}
.btn-dark:hover{background:var(--teal-700)}
.burger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;flex:0 0 auto;padding:6px}
.burger i{width:24px;height:1.5px;background:var(--ivory);display:block;transition:.3s}
.burger.open i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open i:nth-child(2){opacity:0}
.burger.open i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mobile-menu{display:none;position:fixed;inset:0;top:0;background:var(--teal-900);z-index:99;padding:110px 30px 40px;flex-direction:column;gap:4px}
.mobile-menu.open{display:flex}
.mobile-menu a.ml{color:var(--ivory);font-family:var(--serif);font-size:30px;padding:13px 0;border-bottom:1px solid rgba(246,244,239,.1)}
.mobile-menu .mm-cta{display:flex;flex-direction:column;gap:10px;margin-top:32px}
.mobile-menu .lang{justify-content:center;margin-top:auto;padding-top:24px;font-size:13px}
.mobile-menu .lang button{font-size:13px}

/* ---------- HERO ---------- */
.hero{min-height:100vh;background:linear-gradient(180deg,rgba(6,35,31,.78),rgba(6,35,31,.92)),url('https://images.unsplash.com/photo-1519681393784-d120267933ba?auto=format&fit=crop&w=2000&q=80') center/cover;display:flex;align-items:center;position:relative}
.hero .wrap{width:100%;padding-top:80px}
.hero h1{font-size:clamp(44px,6.4vw,86px);color:var(--ivory);max-width:15ch;margin:22px 0 26px}
.hero h1 em{font-style:italic;color:var(--teal-400)}
.hero p{color:rgba(246,244,239,.72);font-size:18px;max-width:52ch;margin-bottom:38px;font-weight:300}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-strip{position:absolute;bottom:0;left:0;right:0;border-top:1px solid rgba(246,244,239,.14);background:rgba(6,35,31,.5);backdrop-filter:blur(6px)}
.hero-strip .wrap{display:flex;justify-content:space-between;gap:20px;padding-top:22px;padding-bottom:22px;flex-wrap:wrap}
.hs{color:var(--ivory)}
.hs b{display:block;font-family:var(--serif);font-size:24px;font-weight:400}
.hs span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-400)}
.swiss{position:absolute;top:0;right:0;width:78px;height:78px;background:var(--red);display:flex;align-items:center;justify-content:center;z-index:5}
.swiss::before,.swiss::after{content:'';position:absolute;background:#fff}
.swiss::before{width:30px;height:9px}
.swiss::after{width:9px;height:30px}

/* ---------- SECTIONS ---------- */
section{padding:118px 0}
.sec-head{max-width:660px;margin-bottom:62px}
.sec-head h2{font-size:clamp(32px,4vw,50px);margin:16px 0 20px}
.sec-head p{color:var(--grey);font-size:17px}

/* famille */
.famille{background:var(--ivory)}
.fam-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center}
.fam-img{position:relative;aspect-ratio:4/5;background:url('http://www.ludovic-charlec.eu/wp-content/uploads/2026/08/ChatGPT-Image-9-aout-2026-11_35_00.png') center/cover}
.fam-img::after{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(15,74,65,.28),transparent 60%)}
.fam-badge{position:absolute;bottom:-1px;left:-1px;background:var(--teal-800);color:var(--ivory);padding:26px 30px;z-index:2}
.fam-badge b{font-family:var(--serif);font-size:34px;display:block;font-weight:400}
.fam-badge span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-400)}
.fam-txt h2{font-size:clamp(30px,3.6vw,46px);margin:16px 0 24px}
.fam-txt p{color:var(--grey);margin-bottom:18px;font-size:16.5px}
.values{list-style:none;margin-top:34px;border-top:1px solid rgba(15,74,65,.14)}
.values li{padding:20px 0;border-bottom:1px solid rgba(15,74,65,.14);display:flex;gap:18px;align-items:flex-start}
.values li i{font-style:normal;font-family:var(--serif);color:var(--red);font-size:15px;min-width:26px}
.values li b{font-weight:500;font-size:15px;display:block;margin-bottom:3px}
.values li span{color:var(--grey);font-size:14.5px}

/* offres */
.offres{background:var(--teal-900);color:var(--ivory)}
.offres .sec-head p{color:rgba(246,244,239,.6)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:rgba(246,244,239,.13)}
.card{background:var(--teal-900);padding:0;position:relative;overflow:hidden}
.card-img{height:300px;background-size:cover;background-position:center;position:relative;filter:saturate(.85)}
.card-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(6,35,31,.92))}
.card-tag{position:absolute;top:22px;left:22px;z-index:2;background:var(--red);color:#fff;font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:7px 14px;font-weight:500}
.card-body{padding:38px 40px 46px}
.card-body h3{font-size:31px;margin-bottom:8px}
.card-body>span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-400);display:block;margin-bottom:20px}
.card-body p{color:rgba(246,244,239,.66);font-size:15.5px;margin-bottom:28px}
.card ul{list-style:none;margin-bottom:32px}
.card ul li{padding:11px 0;border-bottom:1px solid rgba(246,244,239,.1);font-size:14.5px;color:rgba(246,244,239,.85);display:flex;justify-content:space-between;gap:16px}
.card ul li em{font-style:normal;color:var(--teal-400);font-size:12.5px;letter-spacing:.05em}

/* flotte */
.flotte{background:var(--paper)}
.fleet{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.veh{border:1px solid rgba(15,74,65,.15);background:#fff;transition:.35s}
.veh:hover{border-color:var(--teal-600);transform:translateY(-4px)}
.veh-img{height:220px;background-size:cover;background-position:center}
.veh-in{padding:28px}
.veh-in h3{font-size:23px;margin-bottom:4px}
.veh-in>span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:16px}
.veh-in p{color:var(--grey);font-size:14.5px;margin-bottom:18px}
.spec{display:flex;gap:22px;border-top:1px solid rgba(15,74,65,.13);padding-top:16px}
.spec div b{display:block;font-family:var(--serif);font-size:20px;font-weight:400;color:var(--teal-700)}
.spec div span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}

/* destinations */
.dest{background:var(--teal-800);color:var(--ivory)}
.dest .sec-head p{color:rgba(246,244,239,.6)}
.dest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(246,244,239,.14);border:1px solid rgba(246,244,239,.14)}
.d{background:var(--teal-800);padding:34px 30px;transition:.35s;position:relative}
.d:hover{background:var(--teal-700)}
.d b{font-family:var(--serif);font-size:26px;font-weight:400;display:block;margin-bottom:6px}
.d span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-400)}
.d p{margin-top:14px;font-size:14px;color:rgba(246,244,239,.6)}
.dest-note{margin-top:40px;display:flex;gap:16px;align-items:center;font-size:14.5px;color:rgba(246,244,239,.7)}
.dest-note em{font-style:normal;color:var(--red);font-family:var(--serif);font-size:22px}

/* langues */
.langues{background:var(--ivory);text-align:center}
.langues h2{font-size:clamp(30px,3.8vw,46px);max-width:20ch;margin:16px auto 22px}
.langues>.wrap>p{color:var(--grey);max-width:56ch;margin:0 auto 52px;font-size:17px}
.lgs{display:flex;justify-content:center;gap:0;border-top:1px solid rgba(15,74,65,.15);border-bottom:1px solid rgba(15,74,65,.15)}
.lg{flex:1;padding:42px 20px;border-right:1px solid rgba(15,74,65,.15)}
.lg:last-child{border-right:none}
.lg b{font-family:var(--serif);font-size:30px;font-weight:400;display:block}
.lg span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey)}

/* contact */
.contact{background:var(--paper)}
.ct{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}
.ct-l h2{font-size:clamp(30px,3.6vw,44px);margin:16px 0 22px}
.ct-l p{color:var(--grey);margin-bottom:34px}
.ct-info{list-style:none}
.ct-info li{padding:18px 0;border-bottom:1px solid rgba(15,74,65,.14)}
.ct-info li span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-400);display:block;margin-bottom:4px}
.ct-info li b{font-weight:400;font-size:17px;font-family:var(--serif)}
form{background:#fff;border:1px solid rgba(15,74,65,.15);padding:42px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey);margin:18px 0 7px}
input,select,textarea{width:100%;padding:13px 14px;border:1px solid rgba(15,74,65,.2);background:var(--paper);font-family:var(--sans);font-size:15px;font-weight:300;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal-600)}
textarea{resize:vertical;min-height:96px}
form button{width:100%;margin-top:26px;padding:16px;border:none;cursor:pointer}

/* footer */
footer{background:var(--teal-900);color:rgba(246,244,239,.6);padding:76px 0 34px;font-size:14px}
.f-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(246,244,239,.12)}
.f-grid h4{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-400);margin-bottom:18px;font-family:var(--sans);font-weight:500}
.f-grid ul{list-style:none}
.f-grid ul li{margin-bottom:10px}
.f-grid ul li a:hover{color:var(--ivory)}
.f-about .logo{font-size:26px}
.f-about p{margin:18px 0 0;max-width:34ch}
.f-bot{padding-top:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:rgba(246,244,239,.42)}

@media(max-width:1340px){
  .links{gap:20px}
  .links a{font-size:11.5px}
  .nav-right{gap:11px}
}
@media(max-width:1180px){
  .lang{display:none}
  .btn-mini{padding:9px 14px;font-size:9.5px}
}
@media(max-width:1040px){
  .links{display:none}
  .nav-right{margin-left:auto}
}
@media(max-width:820px){
  .nav-right{display:none}
  .burger{display:flex;margin-left:auto}
}
@media(max-width:960px){
  .fam-grid,.duo,.ct{grid-template-columns:1fr;gap:44px}
  .fleet,.dest-grid{grid-template-columns:1fr}
  .f-grid{grid-template-columns:1fr 1fr;gap:34px}
  .lgs{flex-direction:column}
  .lg{border-right:none;border-bottom:1px solid rgba(15,74,65,.15);padding:28px}
  section{padding:78px 0}
  .wrap{padding:0 22px}
  .row{grid-template-columns:1fr}
}

/* ============================================================
   ALTIVA — Habillage du formulaire Fluent Forms
   À coller dans Apparence → Personnaliser → CSS additionnel,
   ou à la fin de style.css du thème.
   Reprend les variables du thème : angles droits, fond papier,
   focus vert sarcelle, bouton rouge suisse.
   ============================================================ */

/* Conteneur : reprend le cadre blanc de la maquette contact */
.fluform_success,
.ff-el-group,
.frm-fluent-form {
  font-family: var(--sans);
  color: var(--ink);
}

.frm-fluent-form {
  background: #fff;
  border: 1px solid rgba(15,74,65,.15);
  padding: 42px;
}

/* Libellés — en petites capitales espacées, comme le reste du site */
.frm-fluent-form .ff-el-input--label label {
  font-size: 10.5px !important;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--grey) !important;
  font-weight: 400;
  margin-bottom: 7px;
}

/* Astérisque des champs requis en rouge suisse */
.frm-fluent-form .ff-el-is-required.asterisk-right label:after,
.frm-fluent-form .ff_t_c .ff-el-is-required.asterisk-right:after {
  color: var(--red);
}

/* Champs texte, e-mail, tel, nombre, select, textarea */
.frm-fluent-form input[type="text"],
.frm-fluent-form input[type="email"],
.frm-fluent-form input[type="tel"],
.frm-fluent-form input[type="number"],
.frm-fluent-form input[type="date"],
.frm-fluent-form select,
.frm-fluent-form textarea {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid rgba(15,74,65,.2);
  border-radius: 0 !important;
  background: var(--paper);
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 300;
  color: var(--ink);
  box-shadow: none;
  transition: border-color .2s;
}

.frm-fluent-form textarea {
  resize: vertical;
  min-height: 96px;
}

/* Focus — bordure vert sarcelle, pas de halo bleu par défaut */
.frm-fluent-form input:focus,
.frm-fluent-form select:focus,
.frm-fluent-form textarea:focus {
  outline: none;
  border-color: var(--teal-600) !important;
  box-shadow: none !important;
}

/* Placeholder discret */
.frm-fluent-form input::placeholder,
.frm-fluent-form textarea::placeholder {
  color: var(--grey);
  opacity: .7;
}

/* Espacement vertical entre les groupes de champs */
.frm-fluent-form .ff-el-group {
  margin-bottom: 18px;
}

/* Bouton d'envoi — rouge suisse, angles droits, majuscules espacées */
.frm-fluent-form .ff-btn-submit,
.frm-fluent-form button[type="submit"] {
  width: 100%;
  margin-top: 8px;
  padding: 16px;
  background: var(--red) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 500;
  cursor: pointer;
  transition: background .3s;
  box-shadow: none;
}

.frm-fluent-form .ff-btn-submit:hover,
.frm-fluent-form button[type="submit"]:hover {
  background: #b31d23 !important;
}

/* Messages de validation — rouge suisse sobre */
.frm-fluent-form .error.text-danger,
.frm-fluent-form .ff-el-is-error .text-danger {
  color: var(--red);
  font-size: 12.5px;
  font-weight: 300;
  margin-top: 5px;
}

.frm-fluent-form .ff-el-is-error input,
.frm-fluent-form .ff-el-is-error select,
.frm-fluent-form .ff-el-is-error textarea {
  border-color: var(--red) !important;
}

/* Message de succès après envoi */
.ff-message-success {
  background: var(--ivory);
  border: 1px solid var(--teal-600);
  border-radius: 0;
  color: var(--teal-700);
  padding: 22px 24px;
  font-size: 15px;
}

/* Disposition 2 colonnes (Fluent Forms gère déjà .ff-el-column,
   on aligne juste les gouttières sur la maquette) */
.frm-fluent-form .ff-el-group.ff-el-form-hide_label > .ff-el-input--label { display: none; }
.frm-fluent-form .ff-t-cell { padding: 0 9px; }
.frm-fluent-form .ff-t-container { margin: 0 -9px; }

/* Sur mobile, les colonnes repassent en pleine largeur (natif Fluent Forms) */
@media (max-width: 600px) {
  .frm-fluent-form { padding: 28px 22px; }
}

/* ============================================================
   ALTIVA — Styles des pages SEO (contenu intérieur uniquement)
   À AJOUTER à la fin de style.css du thème.
   Le header, la nav, le topbar et le footer des pages SEO
   d'origine sont IGNORÉS : ces pages héritent désormais du
   header.php / footer.php du thème (déjà traduits, cohérents).
   Les couleurs reprennent les variables du thème (teal/ivoire/rouge).
   ============================================================ */

/* Largeur de lecture confortable pour le contenu SEO */
.page main,
.altiva-content {
  max-width: 860px;
  margin: 0 auto;
  padding: 40px 22px 20px;
}

/* Sur-titre */
.altiva-eyebrow {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .28em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--teal-400, #3f9b8b);
  margin: 0 0 10px;
}

/* Chapô */
.altiva-lead {
  font-family: var(--sans);
  font-size: 18px;
  font-weight: 300;
  color: var(--grey, #6d7d7a);
  line-height: 1.6;
  margin: 0 0 28px;
}

/* Fil d'Ariane */
.altiva-breadcrumb {
  max-width: 860px;
  margin: 0 auto;
  padding: 14px 22px 0;
  font-family: var(--sans);
  font-size: 13px;
  color: var(--grey, #6d7d7a);
}
.altiva-breadcrumb a { color: var(--teal-600, #166b5e); text-decoration: none; }
.altiva-breadcrumb a:hover { text-decoration: underline; }

/* Encadré de faits (distance, durée…) */
.altiva-factbox {
  background: var(--ivory, #f6f4ef);
  border: 1px solid rgba(15,74,65,.15);
  border-left: 3px solid var(--red, #d8232a);
  padding: 22px 26px;
  margin: 26px 0;
}
.altiva-factbox dl {
  margin: 0;
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 8px 22px;
}
.altiva-factbox dt {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--grey, #6d7d7a);
  align-self: center;
}
.altiva-factbox dd {
  margin: 0;
  font-family: var(--serif);
  font-size: 17px;
  color: var(--teal-700, #0f4a41);
}
.altiva-factbox dd a { color: var(--teal-600, #166b5e); }

/* Cartes (destinations liées, prestations liées) */
.altiva-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
  margin: 22px 0 34px;
}
.altiva-card {
  border: 1px solid rgba(15,74,65,.15);
  background: #fff;
  padding: 22px 24px;
  transition: border-color .25s, transform .25s;
}
.altiva-card:hover { border-color: var(--teal-600, #166b5e); transform: translateY(-3px); }
.altiva-card h3 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
  margin: 0 0 6px;
}
.altiva-card p {
  font-family: var(--sans);
  font-size: 14px;
  color: var(--grey, #6d7d7a);
  margin: 0 0 14px;
}
.altiva-card a {
  font-family: var(--sans);
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--red, #d8232a);
  text-decoration: none;
  font-weight: 500;
}
.altiva-card a:hover { text-decoration: underline; }

/* Listes éditoriales éventuelles */
.altiva-list { padding-left: 1.1em; }
.altiva-list li { margin: 6px 0; }

/* FAQ */
.altiva-faq { margin: 20px 0 34px; }
.altiva-faq dt {
  font-family: var(--serif);
  font-size: 18px;
  color: var(--teal-800, #0a3630);
  margin: 20px 0 6px;
}
.altiva-faq dd {
  margin: 0;
  font-family: var(--sans);
  font-weight: 300;
  color: var(--ink, #12211f);
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(15,74,65,.12);
}

/* Bandeau d'appel à l'action en bas de page */
.altiva-ctaband {
  background: var(--teal-900, #06231f);
  color: var(--ivory, #f6f4ef);
  text-align: center;
  padding: 46px 26px;
  margin: 40px 0 0;
}
.altiva-ctaband h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 28px;
  margin: 0 0 10px;
  color: var(--ivory, #f6f4ef);
}
.altiva-ctaband p {
  font-family: var(--sans);
  font-weight: 300;
  color: rgba(246,244,239,.72);
  margin: 0 0 24px;
}
.altiva-ctaband .altiva-cta,
.altiva-ctaband a {
  display: inline-block;
  margin: 0 6px;
  padding: 14px 28px;
  background: var(--red, #d8232a);
  color: #fff;
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 500;
  text-decoration: none;
  transition: background .3s;
}
.altiva-ctaband a:hover { background: #b31d23; }
/* Le second CTA (« Être rappelé ») en contour */
.altiva-ctaband a:last-child {
  background: transparent;
  border: 1px solid rgba(246,244,239,.4);
}
.altiva-ctaband a:last-child:hover { background: rgba(246,244,239,.08); }

/* Titres de contenu généraux */
.page main h2,
.altiva-content h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 27px;
  margin: 34px 0 12px;
  color: var(--teal-800, #0a3630);
}
.page main p,
.altiva-content p {
  font-family: var(--sans);
  font-weight: 300;
  line-height: 1.7;
}
.page main a,
.altiva-content a { color: var(--teal-600, #166b5e); }

@media (max-width: 600px) {
  .altiva-factbox dl { grid-template-columns: 1fr; gap: 2px 0; }
  .altiva-factbox dt { margin-top: 10px; }
}
