/* Charte Rojom-Bavaka — bleu ardoise, or mat, blanc, gris clair. */
:root{
  --navy:#273749;
  --orange:#bc944a;
  --paper:#f2f5f8;
  --muted:#5b6978;
  --line:#d7e0e9;
  --brand-blue:#4b6b96;
  --brand-blue-deep:#395576;
  --brand-gold:#bc944a;
  --brand-gold-deep:#806124;
  --brand-ink:#273749;
  --brand-surface:#f2f5f8;
  --brand-white:#fff;
  --brand-shadow:0 18px 46px rgba(39,55,73,.09)
}
html{accent-color:var(--brand-blue)}
body{font-family:"Segoe UI Variable","Segoe UI",Arial,sans-serif;color:var(--brand-ink);background:var(--brand-white)}
h1,h2,h3{color:var(--brand-ink);letter-spacing:-.025em}
p,li{line-height:1.72}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--brand-gold);outline-offset:4px}
.top{background:var(--brand-ink);color:#fff;border-bottom:2px solid var(--brand-gold)}
header{background:rgba(255,255,255,.97);border-color:var(--line)}
.mark{background:var(--brand-blue);color:#fff;border-radius:12px;box-shadow:inset 0 -3px 0 rgba(39,55,73,.18)}
nav a{color:var(--brand-ink)}
nav a:hover{color:var(--brand-blue)}
nav a[aria-current]{color:var(--brand-blue-deep);border-color:var(--brand-gold)}
.menu{border-color:#b8c7d7;border-radius:10px;color:var(--brand-ink);background:#fff}
.btn{background:var(--brand-blue);border-color:var(--brand-blue);color:#fff;border-radius:12px;box-shadow:0 7px 18px rgba(75,107,150,.18);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn:hover{background:var(--brand-blue-deep);box-shadow:0 11px 25px rgba(75,107,150,.24);transform:translateY(-2px)}
.btn.outline{background:#fff;border-color:#9aacc0;color:var(--brand-blue-deep);box-shadow:none}
.btn.outline:hover{background:var(--brand-surface);border-color:var(--brand-blue);color:var(--brand-blue-deep)}
.nav-quote{background:var(--brand-gold);border-color:var(--brand-gold);color:var(--brand-ink);box-shadow:0 7px 18px rgba(188,148,74,.18)}
.nav-quote:hover{background:#caa45f;color:var(--brand-ink)}
.eyebrow,.num,.service-from{color:var(--brand-gold-deep)}
.hero,.inner-hero{background:#fff;color:var(--brand-ink)}
.hero h1 em,.inner-hero h1 em{color:var(--brand-blue)}
.hero .eyebrow{color:var(--brand-gold-deep)}
.hero .lead,.inner-hero p,.section-head p,.card p,.content p,.content li{color:var(--muted)}
.hero-art{border-color:var(--line);box-shadow:var(--brand-shadow)}
.hero-art .route{background:var(--brand-surface)}
.route-line span:nth-child(2){background:linear-gradient(90deg,var(--brand-blue),var(--brand-gold))}
.route small,.hero .image-note{color:var(--muted)}
.anniversary-badge .anniversary-laurel,.anniversary-number{color:var(--brand-blue-deep)}
.anniversary-badge .anniversary-laurel:before,.anniversary-number:before{background:var(--brand-gold);-webkit-mask:url('image/anniversary-laurel-fine.webp') center/contain no-repeat;mask:url('image/anniversary-laurel-fine.webp') center/contain no-repeat;opacity:.78}
.anniversary-badge .emblem-years,.anniversary-number span{color:var(--brand-gold-deep)}
.gray,.strip,.contact-form-section,.map-consent{background:var(--brand-surface)}
.strip{border-block:1px solid var(--line)}
.card,.step,.price-cards article,.contact-form,.note,.network-detail,.estimate-result{border-color:var(--line);border-radius:20px}
.card,.step,.price-cards article{background:#fff;box-shadow:0 8px 28px rgba(39,55,73,.055)}
.card{border-top:3px solid var(--brand-gold);transition:transform .22s ease,box-shadow .22s ease}
.card:hover{transform:translateY(-4px);box-shadow:var(--brand-shadow)}
.num{border-color:var(--brand-gold)}
.note{background:linear-gradient(135deg,#f8fafc,var(--brand-surface));border-left-color:var(--brand-gold)}
.band,.dark,.tracking-panel,.contact-card,footer{background:var(--brand-ink);color:#fff}
.band{border-radius:24px;box-shadow:var(--brand-shadow)}
.band h2,.dark h2,.dark h3,.tracking-panel h2,.contact-card h2,footer h2{color:#fff}
.band p,.dark p,.contact-card p,footer p,footer a,.copyright{color:#dce5ef}
.dark .eyebrow,.contact-card .eyebrow{color:#dfbd78}
.dark .btn,.band .btn,.contact-card .btn{background:var(--brand-gold);border-color:var(--brand-gold);color:var(--brand-ink)}
.dark .btn:hover,.band .btn:hover,.contact-card .btn:hover{background:#cfaa61;color:var(--brand-ink)}
.confirmed-route{stroke:var(--brand-gold)!important}
.network-view circle[fill]{fill:var(--brand-gold)!important}
.network-view{background:#304357;border-color:#58718c}
.network-status{background:#e9eef5;color:var(--brand-blue-deep);border-color:#cbd7e4}
.estimate-result{background:#eaf0f7;border:1px solid #cedae6}
.estimate-result h3,.price-cards strong{color:var(--brand-blue-deep)}
input,select,textarea{border-color:#9cadbf;color:var(--brand-ink);background:#fff;border-radius:10px}
input:focus,select:focus,textarea:focus{border-color:var(--brand-blue);box-shadow:0 0 0 3px rgba(75,107,150,.14)}
.quote-progress li[aria-current],.quote-progress li.active{color:var(--brand-blue-deep);border-color:var(--brand-gold)}
dialog{border-color:var(--line);box-shadow:0 28px 80px rgba(39,55,73,.24)}
.quick-contact{background:var(--brand-ink);border-color:#51657b;box-shadow:0 16px 36px rgba(39,55,73,.25)}
.quick-contact button{background:var(--brand-gold);color:var(--brand-ink)}
.progress{background:var(--brand-gold)}
.photo-block{border-radius:24px;overflow:hidden;box-shadow:var(--brand-shadow)}
.photo-block figcaption{background:var(--brand-ink);color:#fff}
.text-link{color:var(--brand-blue-deep);text-decoration-color:var(--brand-gold);text-underline-offset:4px}
.footer-preferences{border-color:#536579}
@media(max-width:800px){
  .hero-copy{background:var(--brand-surface)}
  .nav-dropdown,nav.open{background:#fff}
  .band{border-radius:18px}
}
@media(prefers-reduced-motion:reduce){.card,.btn{transition:none}.card:hover,.btn:hover{transform:none}}

/* Correctifs de contraste et de débordement après contrôle sur téléphone. */
section.section.dark{
  background:var(--brand-ink);
  color:#fff;
}
section.section.dark h2,
section.section.dark h3,
section.section.dark strong,
section.section.dark .stop>span{color:#fff}
section.section.dark p,
section.section.dark small,
section.section.dark dt,
section.section.dark dd,
section.section.dark .map-hint,
section.section.dark .map-toolbar{color:#dce5ef}
section.section.dark .eyebrow{color:#e1bd76}
section.section.dark .journey-track{background:#304357;border-color:#60758b}
section.section.dark .travel-line{background:linear-gradient(var(--brand-gold) 55%,transparent 0);background-size:2px 14px}
section.section.dark .stop>span{background:rgba(255,255,255,.06);border-color:var(--brand-gold)}
section.section.dark .network-detail{background:#fff;color:var(--brand-ink);border-color:var(--line)}
section.section.dark .network-detail h3,
section.section.dark .network-detail strong{color:var(--brand-ink)}
section.section.dark .network-detail p,
section.section.dark .network-detail dt,
section.section.dark .network-detail dd{color:var(--muted)}

footer{background:var(--brand-ink);color:#fff}
footer .brand,footer .brand span,footer .footer-grid h2{color:#fff}
footer .footer-grid p,
footer .footer-grid a:not(.brand),
footer .copyright,
footer .footer-preferences,
footer .footer-preferences a,
footer .footer-preferences button{color:#dce5ef}
footer .footer-grid a:not(.brand):hover,
footer .footer-preferences a:hover,
footer .footer-preferences button:hover{color:#fff}
footer .copyright,footer .footer-preferences{border-color:#536579}

.quick-contact{
  right:max(12px,env(safe-area-inset-right));
  bottom:max(12px,env(safe-area-inset-bottom));
  width:min(330px,calc(100vw - 24px));
  max-width:calc(100vw - 24px);
  display:grid;
  grid-template-columns:1.16fr 1fr .92fr;
  gap:4px;
  padding:4px;
  overflow:hidden;
  border:1px solid #51657b;
  border-radius:999px;
  background:var(--brand-ink);
}
.quick-contact a,.quick-contact button{
  min-width:0;
  min-height:44px;
  padding:10px 8px;
  border-radius:999px;
  text-align:center;
  white-space:nowrap;
}
.quick-contact a{background:#334c66;color:#fff}
.quick-contact .whatsapp{background:#126a42;color:#fff}
.quick-contact button{background:var(--brand-gold);color:var(--brand-ink)}
@media(max-width:380px){
  .quick-contact{grid-template-columns:1.12fr 1fr .86fr;gap:3px;padding:3px}
  .quick-contact a,.quick-contact button{padding-inline:6px;font-size:.75rem}
}

/* Barre haute lisible et accès rapides allégés. */
.top,.top .wrap{color:#fff}
.top .wrap>a,
.top .utility-links a{color:#fff!important;opacity:.94;font-weight:600}
.top .wrap>a:hover,
.top .utility-links a:hover{color:#efd59c!important;opacity:1}

.floating-actions{
  position:fixed;
  right:max(16px,env(safe-area-inset-right));
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:25;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:9px;
}
.whatsapp-fab{
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  border-radius:50%;
  color:#fff;
  background:#147a50;
  border:2px solid #fff;
  box-shadow:0 10px 26px rgba(39,55,73,.24);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.whatsapp-fab svg{width:29px;height:29px}
.whatsapp-fab:hover{background:#0e6641;transform:translateY(-2px);box-shadow:0 14px 32px rgba(39,55,73,.29)}
.reservation-fab{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:7px 13px 7px 10px;
  border:1px solid #d5c08f;
  border-radius:14px;
  color:var(--brand-ink);
  background:rgba(255,255,255,.97);
  box-shadow:0 8px 22px rgba(39,55,73,.16);
  font-size:.86rem;
  font-weight:750;
  line-height:1.05;
  text-decoration:none!important;
}
.reservation-fab>span:first-child{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#f4ead5;color:#76591e}
.reservation-fab small{display:block;margin-bottom:3px;color:#806124;font-size:.58rem;letter-spacing:.11em;font-weight:800}
.reservation-fab:hover{border-color:var(--brand-gold);background:#fff;transform:translateY(-1px)}
@media(max-width:800px){
  .floating-actions{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));gap:7px}
  .whatsapp-fab{width:52px;height:52px}
  .whatsapp-fab svg{width:27px;height:27px}
  .reservation-fab{min-height:39px;padding:6px 10px 6px 8px;font-size:.78rem}
  .reservation-fab>span:first-child{width:23px;height:23px}
}
@media(prefers-reduced-motion:reduce){.whatsapp-fab,.reservation-fab{transition:none}}
