/* VERSION 20261107 — si cette ligne est visible sur drvictorverbat.ch/css/style.css, la bonne feuille est en ligne */
:root{
  --ink:#14181A;
  --bone:#F6F3EC;
  --brass:#96784F;
  --alpine:#33422F;
  --stone:#6E6A5F;
  --dark-brown:#271C0E;
  --line:rgba(20,24,26,0.12);
  --line-on-dark:rgba(246,243,236,0.16);
  --error:#96784F;
  /* Piles de polices. Newsreader n'a pas de cyrillique : pour le russe, le navigateur
     passe automatiquement à Source Serif 4 (même style de serif, cyrillique complet). */
  --serif:'Newsreader','Source Serif 4',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bone);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-0.01em;
}
a{color:inherit; text-decoration:none;}
.wrap{
  max-width:1180px;
  margin:0 auto;
  padding:0 40px;
}
img,svg{display:block; max-width:100%;}

/* ---------- Header ---------- */
header{
  position:fixed; top:0; left:0; right:0;
  z-index:50;
  background:rgba(246,243,236,0.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1280px; margin:0 auto; padding:26px clamp(24px, 4vw, 56px);
  display:flex; align-items:center;
  gap:0;
}
.brand{
  font-family:var(--serif);
  font-size:21px;
  display:flex; align-items:baseline; gap:11px;
  white-space:nowrap;
  flex-shrink:0;
}
.brand span{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:0.04em;
  color:var(--stone);
  white-space:nowrap;
}
nav{margin-left:clamp(24px, 4vw, 56px);}
nav ul{
  list-style:none; display:flex; gap:clamp(16px, 2.2vw, 32px); white-space:nowrap;
}
nav a{
  font-size:14px; color:var(--ink); position:relative; padding-bottom:4px;
}
nav a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--brass); transition:width .35s ease;
}
nav a:hover::after, nav a[aria-current="page"]::after{width:100%;}
nav a[aria-current="page"]{color:var(--brass);}
.nav-cta-mobile{display:none;}
.nav-cta{
  font-size:13px; padding:11px 26px; border:1px solid var(--ink);
  border-radius:999px;
  transition:background .3s ease, color .3s ease;
  white-space:nowrap;
  margin-left:32px;
}
.nav-cta:hover{background:var(--ink); color:var(--bone);}
.menu-btn{display:none; background:none; border:none; cursor:pointer;}
.menu-btn span{display:block; width:24px; height:1px; background:var(--ink); margin:6px 0;}

/* ---------- Sélecteur de langue (menu déroulant) ---------- */
.lang-switch{position:relative; margin-left:auto;}
.lang-trigger{
  display:flex; align-items:center; gap:8px;
  background:var(--bone); border:1px solid var(--ink); border-radius:2px;
  padding:9px 14px; cursor:pointer; font-size:12.5px; color:var(--ink); font-weight:500;
  transition:background .25s ease, color .25s ease;
}
.lang-trigger:hover{background:var(--ink); color:var(--bone);}
.lang-trigger svg{display:block; flex-shrink:0;}
.lang-current{letter-spacing:.03em;}
.lang-menu{
  display:none; position:absolute; top:calc(100% + 8px); right:0;
  background:var(--bone); border:1px solid var(--line); min-width:150px;
  box-shadow:0 12px 28px rgba(20,24,26,0.10); z-index:60; padding:6px;
}
.lang-menu.open{display:block;}
.lang-menu button{
  display:block; width:100%; text-align:left; padding:9px 12px;
  font-size:13px; background:none; border:none; cursor:pointer; color:var(--ink);
  border-radius:2px;
}
.lang-menu button:hover{background:rgba(150,120,79,0.08);}
.lang-menu button.active{color:var(--brass); font-weight:600;}

/* ---------- Page hero (sous-pages) ---------- */
.page-hero{
  padding-top:150px; padding-bottom:60px;
  border-bottom:1px solid var(--line);
}
.page-hero .kicker{margin-bottom:14px;}
.page-hero h1{font-size:clamp(32px,4vw,46px); max-width:20ch;}
.page-hero p{color:var(--stone); font-size:15.5px; max-width:56ch; margin-top:16px;}
.page-hero-grid{
  display:grid; grid-template-columns:1.6fr 1fr; gap:50px; align-items:center;
}
.hero-motif{justify-self:end; opacity:.9;}
.landscape-banner{width:100%; height:auto; display:block;}
img.landscape-banner{aspect-ratio:4/3; object-fit:cover;}
.landscape-frame{border:1px solid var(--brass); padding:8px; justify-self:end; width:100%;}

/* ---------- Mise en avant (2 blocs équivalents) ---------- */
.highlight-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line);
  border:1px solid var(--line); margin:56px 0 0;
}
.highlight-card{
  background:var(--bone); padding:40px; display:block; transition:background .3s ease;
}
.highlight-card:hover{background:rgba(150,120,79,0.06);}
.highlight-card h3{font-size:22px; margin:14px 0 8px; font-weight:400;}
.highlight-card p{color:var(--stone); font-size:14.5px;}
.highlight-card-accent{background:var(--dark-brown); color:var(--bone);}
.highlight-card-accent p{color:#B7B3A6;}
.highlight-card-accent:hover{background:#332413;}
.highlight-card-accent .badge{border-color:#C9AE84; color:#C9AE84;}
.breadcrumb{
  font-size:12.5px; color:var(--stone); margin-bottom:18px;
}
.breadcrumb a{color:var(--brass);}

/* ---------- Hero (accueil) : image plein cadre avec fondu ---------- */
.hero-split{
  position:relative;
  display:flex;
  align-items:stretch;
  min-height:640px;
  padding-top:118px;
  opacity:0;
  transform:translateY(14px);
  animation:rise 1.1s cubic-bezier(.22,.61,.36,1) forwards;
  animation-delay:.15s;
}
@keyframes rise{to{opacity:1; transform:translateY(0);}}
.hero-split-text{
  width:40%; flex-shrink:0; max-width:600px;
  display:flex; flex-direction:column; justify-content:center;
  padding:40px 4vw 60px 40px;
  position:relative; z-index:2;
}
.hero-split-image{
  flex:1; position:relative; overflow:hidden; min-width:0;
}
.hero-split-image img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.hero-fade{
  position:absolute; top:0; left:0; bottom:0; width:18%;
  background:linear-gradient(to right, var(--bone) 0%, rgba(246,243,236,0.55) 55%, rgba(246,243,236,0) 100%);
  pointer-events:none;
}
.hero-eyebrow{
  font-size:14px; color:var(--brass); margin-bottom:26px;
  font-style:italic; font-family:var(--serif);
}
.hero-split-text h1{
  font-size:clamp(36px, 3.6vw, 54px);
  line-height:1.08;
}
.hero-sub{
  font-size:16px;
  color:var(--stone);
  margin-top:26px;
}
.hero-meta{
  display:flex; flex-wrap:wrap; gap:30px; margin-top:46px;
  border-top:1px solid var(--line);
  padding-top:22px;
}
.hero-meta div{font-size:13px; color:var(--stone);}
.hero-meta strong{
  display:block; font-family:var(--serif); font-size:22px; color:var(--ink); font-weight:400;
}

/* ---------- Section shells ---------- */
section{padding:110px 0;}
.section-head{
  display:grid; grid-template-columns:0.9fr 1.5fr; gap:60px;
  margin-bottom:60px;
}
.section-head-portrait{grid-template-columns:0.85fr 1.15fr 0.45fr; align-items:center;}
.section-head-plain{margin-bottom:56px; max-width:680px;}
.section-head-plain h2{font-size:clamp(30px, 3.4vw, 42px); margin-bottom:14px;}
.section-head-plain p{color:var(--stone); font-size:15.5px; max-width:52ch;}
.section-head-plain.stone-on-dark p{color:#B7B3A6;}
.section-head-plain.with-portrait{
  display:grid; grid-template-columns:1.5fr 0.5fr; gap:50px; align-items:center; max-width:none;
}
.divider{border-top:1px solid var(--line); margin-bottom:50px;}
.dark .divider{border-top-color:var(--line-on-dark);}

/* ---------- Carte des lieux (Google Maps, style "Ultra Light with Labels") ---------- */
.site-map-frame{
  margin-top:44px; border:1px solid var(--line-on-dark); overflow:hidden;
}
#gmap{width:100%; height:420px; background:var(--stone); position:relative;}
#gmap-fallback{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; padding:20px; text-align:center; background:#EDEAE1;
}
#gmap-fallback p{font-size:13.5px; color:var(--stone); max-width:34ch;}
.bio-portrait{
  width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top center;
  border:1px solid var(--brass); padding:8px;
}
.section-head h2{font-size:clamp(30px, 3.4vw, 42px);}
.section-head p{color:var(--stone); font-size:15.5px; max-width:46ch;}
.kicker{
  font-size:15px; color:var(--brass); font-family:var(--serif); font-style:normal;
  font-weight:500; letter-spacing:.02em; padding-bottom:10px; margin-bottom:4px;
  border-bottom:1px solid var(--line); display:inline-block;
}
.kicker-light{color:#C9AE84; border-bottom-color:var(--line-on-dark);}
.dark{background:var(--dark-brown); color:var(--bone);}
.dark .stone-on-dark{color:#B7B3A6;}

/* ---------- Boutons / CTA ---------- */
.cta-row{display:flex; flex-wrap:wrap; gap:16px; margin-top:30px;}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14px; padding:13px 28px; border-radius:999px;
  transition:opacity .3s ease, background .3s ease, color .3s ease;
}
.btn-primary{background:var(--brass); color:var(--bone);}
.btn-primary:hover{opacity:.88;}
.btn-outline{border:1px solid var(--ink); color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--bone);}
.dark .btn-outline{border-color:var(--line-on-dark); color:var(--bone);}
.dark .btn-outline:hover{background:var(--bone); color:var(--ink);}

/* ---------- Cartes de cabinet / clinique ---------- */
.info-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.info-grid-3{grid-template-columns:1fr 1fr 1fr;}
.info-card{background:var(--bone); padding:36px;}
.info-card h3{font-size:21px; margin-bottom:12px; font-weight:400;}
.info-card p{font-size:15.5px; color:var(--stone); margin-bottom:8px;}
.info-card .addr{font-size:15px; margin-bottom:20px;}
.info-card .hours{font-size:14px; color:var(--stone); margin-bottom:20px;}
.location-photo{
  width:100%; aspect-ratio:5/4; object-fit:cover;
  border:1px solid var(--line); margin-bottom:24px;
}

.clinic-card{
  border:1px solid var(--line); padding:32px; background:var(--bone);
}
.clinic-card h3{font-size:20px; margin-bottom:8px; font-weight:400;}
.clinic-card p{font-size:14.5px; color:var(--stone); margin-bottom:16px;}
.clinic-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}

.badge{
  display:inline-block; font-size:11.5px; letter-spacing:.03em;
  border:1px solid var(--brass); color:var(--brass);
  padding:4px 10px; border-radius:2px; margin-bottom:16px;
}

/* ---------- Philosophie ---------- */
.philo{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.philo div{background:var(--bone); padding:44px 36px;}
.philo h3{font-size:20px; margin-bottom:14px; font-weight:400;}
.philo p{font-size:14.5px; color:var(--stone);}

/* ---------- Expertise ---------- */
.expertise-list{border-top:1px solid var(--line);}
.expertise-row{
  display:grid; grid-template-columns:70px 1fr 1.2fr;
  gap:30px; padding:30px 0; border-bottom:1px solid var(--line); align-items:baseline;
}
.expertise-row .num{font-family:var(--serif); font-style:italic; color:var(--brass); font-size:15px;}
.expertise-row h3{font-size:21px; font-weight:400;}
.expertise-row p{font-size:14.5px; color:var(--stone);}
.expertise-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
.expertise-card{background:var(--bone); padding:38px 34px; transition:background .3s ease;}
.expertise-card:hover{background:rgba(150,120,79,0.05);}
.expertise-card .icon{margin-bottom:20px;}
.expertise-card h3{font-size:19px; margin-bottom:10px; font-weight:400;}
.expertise-card p{font-size:14.5px; color:var(--stone);}

/* ---------- Sites / horaire suisse ---------- */
.timetable{border-top:2px solid var(--ink);}
.tt-row{
  display:grid; grid-template-columns:200px 1fr 200px 160px;
  gap:20px; padding:26px 0; border-bottom:1px solid var(--line); align-items:center;
}
.tt-row.head{font-size:12px; color:var(--stone); padding:14px 0; border-bottom:1px solid var(--ink);}
.tt-row a.tt-city{transition:color .25s ease;}
.tt-row a.tt-city:hover{color:var(--brass);}
.tt-city{font-family:var(--serif); font-size:23px;}
.tt-addr{font-size:14px; color:var(--stone);}
.tt-hours{font-size:14px;}
.tt-tag{font-size:12px; justify-self:start; border:1px solid var(--brass); color:var(--brass); padding:5px 12px; border-radius:2px;}

/* ---------- VIP ---------- */
.vip{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.vip-list{list-style:none;}
.vip-list li{display:grid; grid-template-columns:26px 1fr; gap:16px; padding:20px 0; border-bottom:1px solid var(--line-on-dark);}
.vip-list li:first-child{border-top:1px solid var(--line-on-dark);}
.vip-list .mark{width:6px; height:6px; border-radius:50%; background:var(--brass); margin-top:8px;}
.vip-list h3{font-size:17.5px; font-weight:400; margin-bottom:6px;}
.vip-list p{font-size:14px; color:#B7B3A6;}
.vip-quote{font-family:var(--serif); font-style:italic; font-size:26px; line-height:1.45; border-left:1px solid var(--brass); padding-left:28px;}
.vip-quote span{display:block; margin-top:22px; font-family:var(--sans); font-style:normal; font-size:13px; color:#B7B3A6;}

/* ---------- Parcours ---------- */
.timeline{position:relative; padding-left:40px; border-left:1px solid var(--line);}
.tl-item{position:relative; padding-bottom:40px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{
  content:''; position:absolute; left:-45px; top:4px;
  width:9px; height:9px; border-radius:50%; background:var(--bone); border:1px solid var(--brass);
}
.tl-year{font-size:13px; color:var(--brass); margin-bottom:6px;}
.tl-item h3{font-size:18px; font-weight:400; margin-bottom:5px;}
.tl-item p{font-size:14px; color:var(--stone); max-width:56ch;}
.dark .tl-item::before{background:var(--dark-brown);}
.dark .timeline{border-color:var(--line-on-dark);}
.dark .tl-year{color:#C9AE84;}
.dark .tl-item p{color:#B7B3A6;}

/* ---------- Formation (CV deux colonnes) ---------- */

/* ---------- Marqueur "à préciser" ---------- */
.missing{
  display:inline-block; font-size:11.5px; font-style:italic;
  border:1px dashed var(--brass); color:var(--brass);
  padding:1px 8px; border-radius:2px; margin-left:4px;
}
.dark .missing{color:#C9AE84; border-color:#C9AE84;}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
.contact-grid h2{font-size:clamp(28px,3.2vw,40px); max-width:14ch; margin-bottom:24px;}
.contact-grid > div:first-child p{color:#B7B3A6; font-size:15px; max-width:38ch; margin-bottom:36px;}
.contact-line{display:flex; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--line-on-dark); font-size:14.5px; gap:20px;}
.contact-line span:first-child{color:#B7B3A6; flex-shrink:0;}
.contact-line span:last-child{text-align:right;}
.contact-line a:hover{color:var(--brass);}

.site-links{
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--line-on-dark); border:1px solid var(--line-on-dark);
  margin-top:32px;
}
.site-links a{
  display:block; padding:20px 22px; background:var(--dark-brown);
  transition:background .25s ease;
}
.site-links a:hover{background:#332413;}
.site-links .city{
  font-family:var(--serif); font-size:18px; color:var(--bone);
  margin-bottom:5px; display:flex; align-items:center; justify-content:space-between;
}
.site-links .city svg{opacity:.6; flex-shrink:0;}
.site-links .desc{font-size:12.5px; color:#B7B3A6; line-height:1.5;}

form{display:flex; flex-direction:column; gap:20px;}
.urgency-toggle{
  display:flex; align-items:center; gap:10px; padding:13px 16px;
  border:1px solid var(--error); border-radius:2px; cursor:pointer;
  font-size:14px; color:var(--bone);
}
.urgency-toggle input{width:16px; height:16px; accent-color:var(--error); cursor:pointer; flex-shrink:0;}
.urgency-fields{
  display:flex; flex-direction:column; gap:20px;
  border-left:2px solid var(--error); padding-left:18px;
}
.hp-field{position:absolute; left:-9999px; top:-9999px;}
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-size:12.5px; color:#B7B3A6;}
.field input, .field textarea, .field select{
  background:transparent; border:none; border-bottom:1px solid var(--line-on-dark);
  color:var(--bone); font-family:var(--sans); font-size:15px; padding:10px 0; outline:none;
  box-sizing:border-box; width:100%; border-radius:0;
}
.field select{color:var(--bone);}
.field select option{color:var(--ink);}
.field input:focus, .field textarea:focus, .field select:focus{border-color:var(--brass);}
.field.has-error input, .field.has-error textarea, .field.has-error select{border-color:var(--error);}
.field input[type="date"]{color-scheme:dark;}
.field input[type="file"]{font-size:13px; color:#B7B3A6; padding:8px 0;}
.field input[type="file"]::file-selector-button{
  background:transparent; border:1px solid var(--line-on-dark); color:var(--bone);
  padding:7px 14px; margin-right:14px; border-radius:2px; cursor:pointer; font-size:12.5px;
  transition:border-color .25s ease;
}
.field input[type="file"]::file-selector-button:hover{border-color:var(--brass);}
.error{font-size:12.5px; color:#C9AE84; min-height:1em; display:block;}
.submit{
  margin-top:12px; align-self:flex-start; padding:14px 32px; background:var(--bone); color:var(--ink);
  border:none; border-radius:999px; font-size:14px; cursor:pointer; transition:opacity .3s ease;
}
.submit:hover{opacity:.85;}
.submit:disabled{opacity:.5; cursor:not-allowed;}
.form-status{font-size:14px; min-height:1.2em; margin-top:6px;}
.form-status.success{color:#9FC79A;}
.form-status.error{color:#C9AE84;}
.privacy-note{font-size:12.5px; color:#8A8676; line-height:1.6;}
.privacy-note a{color:#C9AE84; text-decoration:underline;}
.privacy-note a:hover{color:var(--bone);}

footer{padding:40px 0; border-top:1px solid var(--line-on-dark); font-size:12.5px; color:#8A8676;}
.footer-inner{display:flex; justify-content:space-between; width:100%; gap:20px; flex-wrap:wrap;}
.footer-links{display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.footer-links a{color:#8A8676; transition:color .25s ease;}
.footer-links a:hover{color:var(--brass);}

/* ---------- Politique de confidentialité ---------- */
.privacy-block{padding:28px 0; border-bottom:1px solid var(--line);}
.privacy-block:first-child{padding-top:0;}
.privacy-block:last-of-type{border-bottom:none;}
.privacy-block h2{font-size:19px; font-weight:400; margin-bottom:12px;}
.privacy-block p{font-size:14.5px; color:var(--stone); line-height:1.7; margin-bottom:10px;}
.privacy-block p:last-child{margin-bottom:0;}
.privacy-list{list-style:none; padding:0;}
.privacy-list li{
  font-size:14.5px; color:var(--stone); line-height:1.7;
  padding:10px 0 10px 22px; position:relative; border-bottom:1px solid var(--line);
}
.privacy-list li:last-child{border-bottom:none;}
.privacy-list li::before{
  content:''; position:absolute; left:0; top:19px;
  width:6px; height:6px; border-radius:50%; background:var(--brass);
}
.privacy-updated{font-size:13px; color:var(--stone); margin-top:30px; font-style:italic;}

:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}

@media (max-width: 1040px){
  .wrap{padding:0 24px;}
  .nav-inner{padding:18px 24px;}
  nav{margin-left:0;}
  nav ul{display:none;}
  .nav-cta{display:none;}
  .menu-btn{display:block;}
  nav ul.open{
    display:flex; flex-direction:column; position:fixed; top:70px; left:0; right:0;
    background:var(--bone); padding:20px 24px; gap:18px; border-bottom:1px solid var(--line);
  }
  .nav-cta-mobile{display:block; margin-top:4px;}
  .nav-cta-mobile a{
    display:inline-block; font-size:13px; padding:11px 26px; border:1px solid var(--ink);
    border-radius:999px;
  }
  .hero-split{flex-direction:column; min-height:auto; padding-top:96px;}
  .hero-split-text{width:100%; max-width:none; padding:0 24px 30px;}
  .hero-split-image{height:280px;}
  .hero-fade{display:none;}
  .page-hero{padding-top:120px; padding-bottom:40px;}
  .page-hero-grid{grid-template-columns:1fr; gap:20px;}
  .hero-motif{display:none;}
  .section-head{grid-template-columns:1fr; gap:20px;}
  .section-head-plain.with-portrait{grid-template-columns:1fr; gap:20px;}
  .bio-portrait{max-width:160px; aspect-ratio:3/4; order:-1;}
  .philo{grid-template-columns:1fr;}
  .expertise-row{grid-template-columns:40px 1fr;}
  .expertise-row p{grid-column:2; margin-top:6px;}
  .expertise-grid{grid-template-columns:1fr;}
  .tt-row{grid-template-columns:1fr; gap:6px; padding:22px 0;}
  .tt-row.head{display:none;}
  .vip{grid-template-columns:1fr;}
  .info-grid{grid-template-columns:1fr;}
  .info-grid-3{grid-template-columns:1fr;}
  .highlight-grid{grid-template-columns:1fr;}
  .clinic-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr; gap:48px;}
  .site-links{grid-template-columns:1fr;}
  .footer-inner{flex-direction:column; gap:6px;}
}

/* ==========================================================
   Pages Expertise / Traitements / Chirurgie du sport
   ========================================================== */
.subnav{border-bottom:1px solid var(--line); background:var(--bone);}
.subnav .wrap{display:flex; gap:clamp(18px, 3vw, 40px); overflow-x:auto;}
.subnav a{
  display:block; padding:18px 0; font-size:14px; color:var(--stone); white-space:nowrap;
  border-bottom:2px solid transparent; transition:color .25s ease, border-color .25s ease;
}
.subnav a:hover{color:var(--ink);}
.subnav a[aria-current="page"]{color:var(--ink); border-bottom-color:var(--brass);}

.lead{font-family:var(--serif); font-size:clamp(20px, 2.2vw, 25px); line-height:1.5; max-width:40ch;}
.prose p{font-size:15.5px; line-height:1.75; color:var(--stone); margin-bottom:14px; max-width:68ch;}
.prose p:last-child{margin-bottom:0;}
.dark .prose p{color:#B7B3A6;}

.domain-block{
  display:grid; grid-template-columns:1fr; gap:56px;
  padding:52px 0; border-top:1px solid var(--line);
}
.domain-block:last-child{border-bottom:1px solid var(--line);}
.domain-icon{width:64px; height:64px;}
.domain-block h2{font-size:clamp(28px, 3vw, 36px); margin-bottom:18px;}

.tag-list{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; list-style:none; padding:0;}
.tag-list li{
  font-size:13px; padding:8px 16px; border:1px solid var(--line); border-radius:999px; color:var(--ink);
}
.dark .tag-list li{border-color:var(--line-on-dark); color:var(--bone);}
.text-link{display:inline-block; margin-top:20px; font-size:14px; color:#7A5F3A; border-bottom:1px solid currentColor;}
.dark .text-link{color:#C9AE84;}

.dot-list{list-style:none; padding:0; margin:18px 0; max-width:68ch;}
.dot-list li{
  position:relative; padding:9px 0 9px 22px; font-size:15px; line-height:1.6; color:var(--stone);
  border-bottom:1px solid var(--line);
}
.dot-list li:last-child{border-bottom:none;}
.dot-list li::before{
  content:''; position:absolute; left:0; top:18px; width:6px; height:6px; border-radius:50%; background:var(--brass);
}
.dark .dot-list li{color:#B7B3A6; border-bottom-color:var(--line-on-dark);}
.dark .dot-list li::before{background:#C9AE84;}

.compare-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.compare-card{background:var(--bone); padding:40px;}
.compare-card h3{font-size:24px; margin-bottom:8px;}
.compare-card .compare-sub{font-size:14px; color:var(--stone); margin-bottom:6px;}
.compare-card-accent{background:var(--dark-brown); color:var(--bone);}
.compare-card-accent .compare-sub{color:#B7B3A6;}

.steps{display:grid; grid-template-columns:repeat(4, 1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.step{background:var(--bone); padding:32px 28px;}
.step h3{font-size:19px; margin-bottom:8px;}
.step p{font-size:14px; line-height:1.6; color:var(--stone);}

.pull-quote{
  font-family:var(--serif); font-style:italic; font-size:clamp(24px, 3vw, 32px); line-height:1.35;
  padding-left:28px; border-left:1px solid var(--brass); max-width:30ch; margin:8px 0 36px;
}
.dark .pull-quote{border-left-color:#C9AE84;}

.article-layout{display:grid; grid-template-columns:240px 1fr; gap:72px; align-items:start;}
.toc{position:sticky; top:118px; display:flex; flex-direction:column; border-left:1px solid var(--line);}
.toc span{font-size:12px; letter-spacing:.06em; color:var(--stone); padding:0 0 12px 18px;}
.toc a{font-size:14px; color:var(--stone); padding:7px 0 7px 18px; margin-left:-1px; border-left:1px solid transparent; transition:color .25s ease, border-color .25s ease;}
.toc a:hover{color:var(--ink); border-left-color:var(--brass);}
.article-section{padding:0 0 56px; margin-bottom:56px; border-bottom:1px solid var(--line); scroll-margin-top:120px;}
.article-section:last-child{border-bottom:none; margin-bottom:0;}
.article-section h2{font-size:clamp(26px, 2.8vw, 34px); margin-bottom:8px;}
.article-section .article-kicker{font-family:var(--serif); font-style:italic; font-size:17px; color:#7A5F3A; margin-bottom:18px;}
.article-section h3{font-size:20px; margin:28px 0 10px;}

.principles{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line-on-dark); border:1px solid var(--line-on-dark);}
.principles div{background:var(--dark-brown); padding:30px 32px; font-family:var(--serif); font-size:19px; line-height:1.45;}

.teaser-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.teaser-card{background:var(--bone); padding:40px; display:flex; flex-direction:column; gap:12px; transition:background .3s ease;}
.teaser-card:hover{background:rgba(150,120,79,0.06);}
.teaser-card h3{font-size:24px;}
.teaser-card p{font-size:14.5px; line-height:1.65; color:var(--stone);}
.teaser-card .text-link{margin-top:auto; align-self:flex-start;}

@media (max-width: 1040px){
  .domain-block{grid-template-columns:1fr; gap:18px; padding:40px 0;}
  .domain-icon{width:52px; height:52px;}
  .compare-grid, .teaser-grid, .principles{grid-template-columns:1fr;}
  .compare-card, .teaser-card{padding:30px 24px;}
  .steps{grid-template-columns:1fr 1fr;}
  .article-layout{grid-template-columns:1fr; gap:32px;}
  .toc{position:static; flex-direction:row; flex-wrap:wrap; border-left:none; gap:8px;}
  .toc span{width:100%; padding:0 0 4px;}
  .toc a{padding:7px 14px; border:1px solid var(--line); border-radius:999px; margin-left:0;}
}
@media (max-width: 560px){
  .steps{grid-template-columns:1fr;}
  .brand span{display:none;}
  .lang-trigger{padding:9px 11px;}
  .spec-list a{grid-template-columns:28px minmax(0, 1fr) 20px; gap:12px;}
  .spec-desc{display:none;}
}

/* ==========================================================
   Accueil — portrait éditorial + pictogrammes (piste C)
   ========================================================== */
.home-hero{
  display:grid; grid-template-columns:1fr minmax(320px, 440px);
  padding-top:96px; min-height:100vh; box-sizing:border-box;
}
.home-portrait{position:relative; background:var(--dark-brown); overflow:hidden;}
.home-portrait img{width:100%; height:100%; min-height:560px; object-fit:cover; object-position:top center; display:block;}
.home-portrait-caption{
  position:absolute; left:0; right:0; bottom:0; padding:22px 32px;
  background:rgba(39,28,14,0.9); color:var(--bone); display:flex; flex-direction:column; gap:3px;
}
.home-portrait-caption .name{font-family:var(--serif); font-size:20px;}
.home-portrait-caption .role{font-size:12.5px; color:#C9AE84;}
.home-hero-content{
  padding:56px clamp(24px, 5vw, 72px); display:flex; flex-direction:column; justify-content:center; gap:20px;
  animation:rise 1.1s cubic-bezier(.22,.61,.36,1) both; animation-delay:.1s;
}
.home-hero-content h1{font-size:clamp(34px, 3.8vw, 50px); line-height:1.08;}
.home-hero-content .hero-sub{margin-top:0; max-width:56ch;}
.picto-intro{font-size:14px; color:var(--stone);}
.picto-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
.picto-card{
  background:var(--bone); padding:24px 22px; display:flex; flex-direction:column; gap:10px;
  transition:background .3s ease, color .3s ease;
}
.picto-card svg{width:44px; height:44px; stroke:#7A5F3A; transition:stroke .3s ease;}
.picto-title{font-family:var(--serif); font-size:19px; line-height:1.25;}
.picto-desc{font-size:13px; line-height:1.55; color:var(--stone); transition:color .3s ease;}
.picto-more{font-size:12.5px; color:#7A5F3A; margin-top:auto; transition:color .3s ease;}
.picto-card:hover, .picto-card:focus-visible{background:var(--dark-brown); color:var(--bone);}
.picto-card:hover svg, .picto-card:focus-visible svg{stroke:#C9AE84;}
.picto-card:hover .picto-desc, .picto-card:focus-visible .picto-desc{color:#B7B3A6;}
.picto-card:hover .picto-more, .picto-card:focus-visible .picto-more{color:#C9AE84;}

/* ---------- Index typographique des spécialités (accueil) ---------- */
.spec-index{margin-top:6px;}
.spec-label{font-size:12.5px; letter-spacing:.04em; color:var(--stone); margin-bottom:12px;}
.spec-list{list-style:none; padding:0; margin:0; border-top:1px solid var(--line);}
.spec-list a{
  display:grid; grid-template-columns:34px minmax(0, 1fr) auto 22px; align-items:baseline; gap:16px;
  padding:14px 0; border-bottom:1px solid var(--line); color:var(--ink);
}
.spec-num{font-family:var(--serif); font-style:italic; font-size:14px; color:#7A5F3A;}
.spec-name{font-family:var(--serif); font-size:clamp(19px, 1.8vw, 23px); transition:color .25s ease;}
.spec-desc{font-size:13px; color:var(--stone); text-align:right;}
.spec-arrow{color:#7A5F3A; text-align:right; transition:transform .3s ease;}
.spec-list a:hover .spec-name, .spec-list a:focus-visible .spec-name{color:#7A5F3A;}
.spec-list a:hover .spec-arrow, .spec-list a:focus-visible .spec-arrow{transform:translateX(5px);}

/* ---------- Illustrations des domaines (page Expertise) ---------- */
.domain-block.has-visual{grid-template-columns:1fr minmax(260px, 380px);}
.domain-figure, .photo-figure{margin:0;}
.domain-visual-contain{object-fit:contain;}
.photo-credit{margin-top:8px; font-size:11px; line-height:1.4; color:#8A8676; letter-spacing:.02em;}
.photo-credit a{color:inherit; text-decoration:underline; text-decoration-color:rgba(138,134,118,0.4);}
.photo-credit .missing{font-size:10px; padding:0 5px;}
.domain-block, #urgences{scroll-margin-top:110px;}
.domain-visual{width:100%; aspect-ratio:3/2; object-fit:cover; display:block; background:#05070A;}

/* ---------- Héros photo (page Chirurgie du sport) ---------- */
.photo-hero{display:grid; grid-template-columns:1fr 1.1fr; gap:56px; align-items:center;}
.photo-hero img{width:100%; aspect-ratio:3/2; object-fit:cover; display:block;}
.photo-hero h1{font-size:clamp(38px, 4.6vw, 60px); line-height:1.05; max-width:14ch;}

@media (max-width: 1040px){
  .home-hero{grid-template-columns:1fr; padding-top:80px; min-height:0;}
  .home-portrait{order:-1;}
  .home-portrait img{height:420px; min-height:0;}
  .home-hero-content{padding:36px 24px 56px;}
  .picto-grid{grid-template-columns:1fr 1fr;}
  .picto-card{padding:20px 16px;}
  .domain-block.has-visual{grid-template-columns:1fr;}
  .photo-hero{grid-template-columns:1fr; gap:28px;}
  .photo-hero .photo-figure{order:-1;}
}

@media (prefers-reduced-motion: reduce){
  .hero{animation:none; opacity:1; transform:none;}
  .home-hero-content{animation:none;}
  html{scroll-behavior:auto;}
}

/* ================= HOME V2 — accueil premium ================= */
.hero-v2{min-height:calc(100vh - 88px);margin-top:88px;display:grid;grid-template-columns:1.03fr .97fr;background:var(--bone);overflow:hidden;}
.hero-v2-copy{padding:clamp(56px,8vw,110px) clamp(28px,6vw,92px);display:flex;flex-direction:column;justify-content:center;position:relative;}
.hero-v2-kicker{font-size:11px;letter-spacing:.16em;color:var(--brass);font-weight:600;margin-bottom:28px;}
.hero-v2 h1{font-size:clamp(52px,6vw,88px);line-height:.94;letter-spacing:-.035em;max-width:760px;margin:0 0 28px;}
.hero-v2 h1 em,.home-section-intro h2 em{font-style:italic;color:var(--brass);}
.hero-v2-lead{font-size:17px;line-height:1.75;color:var(--stone);max-width:610px;}
.hero-v2-actions{display:flex;align-items:center;gap:28px;margin-top:34px;flex-wrap:wrap;}
.hero-v2-actions .btn{padding:15px 25px;}
.hero-text-link{font-size:13px;text-decoration:none;border-bottom:1px solid var(--brass);padding-bottom:5px;}
.hero-text-link span{color:var(--brass);margin-left:6px;}
.hero-v2-meta{display:flex;gap:30px;flex-wrap:wrap;margin-top:64px;padding-top:22px;border-top:1px solid var(--line);font-size:11px;color:var(--stone);text-transform:uppercase;letter-spacing:.06em;}
.hero-v2-meta b{font-family:var(--serif);font-size:17px;color:var(--ink);font-weight:400;margin-right:5px;}
.hero-v2-visual{position:relative;min-height:680px;background:var(--dark-brown);overflow:hidden;}
.hero-v2-visual img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;filter:saturate(.9);}
.hero-v2-caption{position:absolute;left:0;right:0;bottom:0;padding:22px 28px;background:linear-gradient(transparent,rgba(20,14,8,.92));color:var(--bone);display:flex;flex-direction:column;padding-top:72px;}
.hero-v2-caption span{font-family:var(--serif);font-size:22px;}
.hero-v2-caption small{font-size:11px;color:#d1c5b0;margin-top:3px;}
.hero-v2-stamp{position:absolute;right:28px;top:28px;border:1px solid rgba(246,243,236,.55);color:var(--bone);font-size:8px;letter-spacing:.17em;text-align:center;padding:12px 10px;line-height:1.5;backdrop-filter:blur(4px);}
.hero-v2-stamp span{font-family:var(--serif);font-size:14px;line-height:1;}
.trust-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#efebe2;}
.trust-strip>div{padding:28px 34px;display:grid;grid-template-columns:38px 1fr;column-gap:15px;border-right:1px solid var(--line);}
.trust-strip>div:last-child{border-right:0;}
.trust-strip span{grid-row:1/3;color:var(--brass);font-family:var(--serif);font-style:italic;font-size:15px;}
.trust-strip strong{font-family:var(--serif);font-size:18px;font-weight:400;}
.trust-strip small{color:var(--stone);font-size:12px;line-height:1.5;margin-top:4px;}
.expertises-home{padding:110px 0 120px;background:var(--bone);}
.home-section-intro{display:grid;grid-template-columns:150px 1fr 1fr;gap:40px;align-items:end;margin-bottom:60px;}
.home-section-number{font-size:10px;letter-spacing:.16em;color:var(--brass);padding-bottom:9px;border-bottom:1px solid var(--brass);align-self:start;}
.home-section-intro h2{font-size:clamp(36px,4vw,54px);line-height:1.03;}
.home-section-intro p{color:var(--stone);font-size:15px;max-width:42ch;line-height:1.7;}
.expertises-home-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.expertise-home-card{background:var(--bone);padding:30px 26px 28px;min-height:250px;display:flex;flex-direction:column;transition:transform .3s ease,background .3s ease,color .3s ease;}
.expertise-home-card:hover{background:var(--dark-brown);color:var(--bone);transform:translateY(-5px);}
.expertise-home-card span{font-size:11px;color:var(--brass);margin-bottom:45px;}
.expertise-home-card h3{font-size:27px;margin-bottom:9px;}
.expertise-home-card p{font-size:13px;color:var(--stone);line-height:1.55;margin-bottom:22px;}
.expertise-home-card:hover p{color:#c7c0b3;}
.expertise-home-card b{margin-top:auto;font-size:11px;color:var(--brass);font-weight:500;}
@media(max-width:900px){.hero-v2{grid-template-columns:1fr;min-height:auto}.hero-v2-copy{padding-top:60px;padding-bottom:55px}.hero-v2-visual{min-height:620px}.home-section-intro{grid-template-columns:1fr 1fr}.home-section-number{grid-column:1/-1}.expertises-home-grid{grid-template-columns:1fr 1fr}.trust-strip{grid-template-columns:1fr}.trust-strip>div{border-right:0;border-bottom:1px solid var(--line)}.trust-strip>div:last-child{border-bottom:0}}
@media(max-width:600px){.hero-v2{margin-top:76px}.hero-v2 h1{font-size:50px}.hero-v2-lead{font-size:15px}.hero-v2-meta{gap:15px;margin-top:42px}.hero-v2-visual{min-height:500px}.hero-v2-stamp{display:none}.home-section-intro{grid-template-columns:1fr;gap:18px}.expertises-home{padding:75px 0}.expertises-home-grid{grid-template-columns:1fr}.expertise-home-card{min-height:210px}.trust-strip>div{padding:24px}}

/* ================= En-tête : hauteur fixe et responsive propre ================= */
/* Une seule variable pilote la hauteur de l'en-tête et l'espace réservé sous lui. */
:root{--header-h:88px;}
header{height:var(--header-h); box-sizing:border-box;}
.nav-inner{height:100%; padding-top:0; padding-bottom:0; box-sizing:border-box;}
.lang-trigger{height:40px; box-sizing:border-box;}
html{scroll-padding-top:var(--header-h);}

/* Accueil : le héros commence juste sous l'en-tête (plus de marge héritée de 110 px) */
.hero-v2{margin-top:var(--header-h); min-height:calc(100vh - var(--header-h)); padding:0;}
.trust-strip{padding:0;}
.hero-v2-copy{padding-top:clamp(40px, 5vw, 72px); padding-bottom:clamp(40px, 5vw, 72px);}

/* Menu replié dès 1180 px : évite que « Prendre rendez-vous » sorte de l'écran */
@media (max-width: 1180px){
  :root{--header-h:72px;}
  .nav-inner{padding-left:24px; padding-right:24px;}
  nav{margin-left:0;}
  nav ul{display:none;}
  .nav-cta{display:none;}
  .menu-btn{
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    width:44px; height:44px; margin-left:12px; padding:0; flex-shrink:0;
  }
  .menu-btn span{margin:3px 0;}
  nav ul.open{
    display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0;
    background:var(--bone); padding:20px 24px; gap:18px;
    border-bottom:1px solid var(--line); box-shadow:0 12px 24px rgba(20,24,26,0.06);
  }
  .nav-cta-mobile{display:block; margin-top:4px;}
  .nav-cta-mobile a{display:inline-block; font-size:13px; padding:11px 26px; border:1px solid var(--ink); border-radius:999px;}
}
@media (max-width: 900px){
  .hero-v2{min-height:auto;}
  .hero-v2-copy{padding-top:36px; padding-bottom:44px;}
}
@media (max-width: 680px){
  .brand span{display:none;}
}

/* Cartes : un contenu long (adresse e-mail) ne doit jamais élargir la page */
.info-grid > *{min-width:0;}
.info-card .btn{max-width:100%; overflow-wrap:anywhere; text-align:center;}


/* Bandeau d'engagements et cartes d'expertise, sans numérotation */
.trust-strip>div{grid-template-columns:1fr;}
.expertise-home-card h3{margin-top:0;}

/* Bannière pleine largeur en tête de page */
.page-banner{margin-top:var(--header-h); background:var(--dark-brown);}
.page-banner img{width:100%; height:clamp(220px, 38vh, 420px); object-fit:cover; object-position:center 42%; display:block;}
.page-hero-under-banner{padding-top:clamp(36px, 5vw, 64px);}

/* ---------- Apparition des blocs au défilement (voir js/anim.js) ---------- */
.anim{
  opacity:0; transform:translateY(16px);
  transition:opacity .75s cubic-bezier(.22,.61,.36,1), transform .75s cubic-bezier(.22,.61,.36,1);
  will-change:opacity, transform;
}
.anim-visible{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
  .anim{opacity:1; transform:none; transition:none;}
}

/* Phrase descriptive sous l'introduction des pages de lieux */
.hero-note{font-size:14.5px; line-height:1.65; color:var(--stone); max-width:62ch; margin-top:14px;}

/* Réseaux sociaux et badge de sécurité en pied de page */
.footer-social{display:flex; align-items:center; gap:18px;}
.footer-social a{color:#8A8676; display:flex; align-items:center; transition:color .25s ease;}
.footer-social a:hover{color:var(--brass);}

/* Mention de copyright en pied de page */
.footer-copy{color:#8A8676;}

/* Tableau des lieux (accueil) : sans traits de séparation */
.timetable{border-top:none;}
.tt-row{border-bottom:none;}
.tt-row.head{border-bottom:none;}

/* Logo dans l'en-tête */
.brand{gap:12px; align-items:center;}
.brand-mark{width:38px; height:auto; display:block; flex-shrink:0;}
@media (max-width: 680px){ .brand-mark{width:32px;} }

.optional{color:#8A8676; font-size:11.5px;}

/* ==========================================================
   En-tête : aucun risque de chevauchement
   ==========================================================
   Le menu complet ne s'affiche que s'il y a vraiment la place.
   En dessous, on passe au menu déroulant. */
.nav-inner{flex-wrap:nowrap;}
nav{min-width:0; margin-left:clamp(20px, 2.4vw, 40px);}
nav ul{gap:clamp(14px, 1.5vw, 28px);}
.lang-switch{flex-shrink:0;}
.nav-cta{flex-shrink:0; margin-left:20px;}

/* Le sous-titre reste hors de l'en-tête : la barre est limitée à 1280 px,
   l'afficher supprimerait toute marge entre le menu et le sélecteur de langue. */
.brand span{display:none;}

/* Menu replié sous 1280 px (au lieu de 1180) */
@media (max-width: 1280px){
  :root{--header-h:72px;}
  .nav-inner{padding-left:24px; padding-right:24px;}
  nav{margin-left:0;}
  nav ul{display:none;}
  .nav-cta{display:none;}
  .menu-btn{
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    width:44px; height:44px; margin-left:12px; padding:0; flex-shrink:0;
  }
  .menu-btn span{margin:3px 0;}
  nav ul.open{
    display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0;
    background:var(--bone); padding:20px 24px; gap:18px;
    border-bottom:1px solid var(--line); box-shadow:0 12px 24px rgba(20,24,26,0.06);
  }
  .nav-cta-mobile{display:block; margin-top:4px;}
  .nav-cta-mobile a{display:inline-block; font-size:13px; padding:11px 26px; border:1px solid var(--ink); border-radius:999px;}
}

/* Photo en haut des pages Expertise et Traitements */
/* Photo en format paysage (ordinateur, tablette et téléphone) */
.page-hero-grid.hero-photo-grid{grid-template-columns:1fr 1.05fr; gap:56px;}
.hero-photo{display:block; justify-self:end; width:100%; max-width:380px; border:0; padding:0; border-radius:2px; box-shadow:0 2px 6px rgba(39,28,14,.07), 0 18px 40px -20px rgba(39,28,14,.30);}
.hero-photo img{width:100%; height:auto; display:block; border:0; border-radius:2px; aspect-ratio:4/3; object-fit:cover; object-position:center 30%;}
@media (max-width: 1040px){
  /* Téléphone / tablette : photo en pleine largeur, sous le texte, format paysage soigné */
  .page-hero-grid.hero-photo-grid{grid-template-columns:1fr; gap:20px;}
  .hero-photo{justify-self:stretch; max-width:none; order:0; margin-top:8px;}
  .hero-photo img{aspect-ratio:4/3; object-fit:cover; object-position:center 30%;}
}

/* Pages Genève et Moutier : texte + image côte à côte sur ordinateur */
.page-hero-grid.hero-2col{grid-template-columns:1.15fr 1fr;}
@media (max-width: 1040px){
  /* Téléphone / tablette : titre et texte en pleine largeur, puis image en pleine largeur sous le texte */
  .page-hero-grid.hero-2col{grid-template-columns:1fr; gap:28px;}
  .hero-2col-media{display:block; width:100%; margin-top:4px;}
  .hero-2col-media img{width:100%; height:auto; aspect-ratio:16/9; object-fit:cover;}
  .landscape-frame.hero-2col-media{padding:5px;}
}
@media (max-width: 560px){
  .hero-2col-media img{aspect-ratio:3/2;}
}

/* ==========================================================
   Formats d'image
   ==========================================================
   Les attributs width/height (utiles pour éviter les sauts de mise
   en page au chargement) fixaient aussi la hauteur, ce qui annulait
   le format demandé en CSS. On rend la hauteur automatique : elle est
   alors déduite du format. */
.domain-visual,
.location-photo,
.photo-hero img,
.landscape-banner,
img[style*="aspect-ratio"]{height:auto;}

.brand-mark{height:auto;}

/* Champagne et Lausanne : le texte d'en-tête utilise toute la largeur disponible
   sur ordinateur et ne passe à la ligne que lorsque la fenêtre se réduit. */
@media (min-width: 1041px){
  .page-hero.hero-wide h1,
  .page-hero.hero-wide p,
  .page-hero.hero-wide .hero-note{max-width:none;}
}
/* Champagne uniquement : titre sans coupure prématurée sur téléphone et tablette */
@media (max-width: 1040px){
  .page-hero.hero-wide-all h1{max-width:none; line-height:1.2; text-wrap:balance;}
}

/* Photo Expertise / Traitements sur ordinateur : rapprochée du texte et légèrement abaissée */
@media (min-width: 1041px){
  .hero-photo{justify-self:start; margin-left:24px; position:relative; top:34px;}
}

/* En-tête (menu) sur toute la largeur de la page, de gauche à droite */
.nav-inner{max-width:none; width:100%;}
@media (min-width: 1281px){
  .nav-inner{padding-left:clamp(32px, 3.4vw, 64px); padding-right:clamp(32px, 3.4vw, 64px);}
}

/* Menu (Accueil, Genève, Champagne, Moutier, Lausanne, Expertise) toujours centré dans l'en-tête */
@media (min-width: 1281px){
  .nav-inner{position:relative;}
  header nav{position:absolute; left:50%; top:50%; margin:0; transform:translate(-50%,-50%);}
}


/* ---------- Langues plus longues que le français (allemand, russe) ---------- */
/* Un mot trop long ne déborde jamais de l'écran. */
h1, h2, h3, .lead, .pull-quote { overflow-wrap: break-word; }
/* « zurückgewinnen. » : le titre de l'accueil en allemand reste dans l'écran sur petit téléphone */
@media (max-width: 600px) {
  html[lang="de"] .hero-v2 h1 { font-size: clamp(34px, 11vw, 44px); }
}

/* Carte « Prise en charge rapide » (contact) : bouton qui mène au formulaire */
a.urgence-card{display:block; color:inherit; text-decoration:none; border-color:var(--brass); cursor:pointer;
  transition:background-color .25s ease, box-shadow .25s ease, transform .25s ease;}
a.urgence-card:hover, a.urgence-card:focus-visible{background:#fff; box-shadow:0 10px 30px rgba(42,33,22,.10); transform:translateY(-2px);}
a.urgence-card:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}
.urgence-card-cta{display:inline-flex; align-items:center; gap:10px; margin-top:4px; padding:13px 28px;
  background:var(--brass); color:var(--bone); font-size:14px; border-radius:999px; transition:opacity .3s ease;}
a.urgence-card:hover .urgence-card-cta{opacity:.88;}
.urgence-card-arrow{display:inline-block; transition:transform .3s ease;}
a.urgence-card:hover .urgence-card-arrow{transform:translateY(3px);}
#contact-form{scroll-margin-top:24px;}
@media (prefers-reduced-motion: reduce){
  a.urgence-card, a.urgence-card:hover, a.urgence-card:focus-visible{transform:none;}
  a.urgence-card:hover .urgence-card-arrow{transform:none;}
}

/* Avertissement « urgence vitale » (page Contact) */
.vital-note{margin-top:18px; padding:14px 18px; border-left:3px solid var(--brass); background:rgba(150,120,79,.09); font-size:14.5px; color:var(--ink); line-height:1.55;}

/* Case de consentement du formulaire */
.consent-check{display:flex; align-items:flex-start; gap:12px; font-size:13px; line-height:1.6; color:#B8B3A3; cursor:pointer;}
.consent-check input{width:16px; height:16px; margin-top:3px; accent-color:var(--brass); flex-shrink:0; cursor:pointer;}
.consent-check a{color:#C9AE84; text-decoration:underline;}
.consent-check a:hover{color:var(--bone);}

/* ---------- Bannière cookies (js/consent.js) — mêmes codes que le site ---------- */
#cookie-banner{position:fixed; z-index:9999; left:24px; right:24px; bottom:24px; display:flex; justify-content:flex-start; pointer-events:none;}
#cookie-banner[hidden]{display:none;}
#cookie-banner:not([hidden]){animation:ck-in .45s ease both;}
#cookie-banner .ck-box{pointer-events:auto; width:100%; max-width:520px; max-height:calc(100vh - 48px); overflow:auto; background:var(--bone); color:var(--ink); border:1px solid var(--line); border-top:2px solid var(--brass); border-radius:2px; box-shadow:0 2px 6px rgba(39,28,14,.07), 0 24px 48px -18px rgba(39,28,14,.32); padding:30px 32px 28px;}
@keyframes ck-in{from{opacity:0; transform:translateY(12px);} to{opacity:1; transform:none;}}
#cookie-banner .ck-kicker{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:12px;}
#cookie-banner .ck-title{font-family:var(--serif); font-weight:400; font-size:26px; line-height:1.15; letter-spacing:-0.01em; margin-bottom:12px;}
#cookie-banner .ck-intro{font-size:14px; line-height:1.65; color:var(--stone);}
#cookie-banner .ck-intro strong{color:var(--ink); font-weight:500;}
#cookie-banner .ck-intro a{color:var(--brass); border-bottom:1px solid currentColor; white-space:nowrap;}
#cookie-banner .ck-details{margin-top:20px; border-top:1px solid var(--line);}
#cookie-banner .ck-details[hidden]{display:none;}
#cookie-banner .ck-cat{padding:16px 0; border-bottom:1px solid var(--line);}
#cookie-banner .ck-cat-head{display:flex; align-items:center; justify-content:space-between; gap:16px;}
#cookie-banner .ck-cat-title{font-family:var(--serif); font-size:18px;}
#cookie-banner .ck-cat p{font-size:13px; line-height:1.6; color:var(--stone); margin-top:4px; padding-right:60px;}
#cookie-banner .ck-always{font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--brass); font-weight:600; white-space:nowrap;}
#cookie-banner .ck-switch{position:relative; display:inline-block; width:40px; height:22px; flex:none; cursor:pointer;}
#cookie-banner .ck-switch input{position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; z-index:1;}
#cookie-banner .ck-slider{position:absolute; inset:0; background:transparent; border:1px solid var(--stone); border-radius:999px; transition:background .25s, border-color .25s;}
#cookie-banner .ck-slider::after{content:""; position:absolute; top:3px; left:3px; width:14px; height:14px; background:var(--stone); border-radius:50%; transition:transform .25s, background .25s;}
#cookie-banner .ck-switch input:checked + .ck-slider{background:var(--brass); border-color:var(--brass);}
#cookie-banner .ck-switch input:checked + .ck-slider::after{transform:translateX(18px); background:var(--bone);}
#cookie-banner .ck-switch input:focus-visible + .ck-slider{outline:2px solid var(--brass); outline-offset:3px;}
#cookie-banner .ck-sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}
#cookie-banner .ck-actions{display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:24px;}
#cookie-banner .ck-btn{flex:1 1 0; min-width:140px; font:500 14px/1 var(--sans); padding:13px 22px; border-radius:999px; cursor:pointer; transition:opacity .3s ease, background .3s ease, color .3s ease; border:1px solid var(--ink); background:transparent; color:var(--ink);}
#cookie-banner .ck-btn:hover{background:var(--ink); color:var(--bone);}
#cookie-banner .ck-btn[data-ck="accept"]{background:var(--brass); border-color:var(--brass); color:var(--bone);}
#cookie-banner .ck-btn[data-ck="accept"]:hover{opacity:.88;}
#cookie-banner .ck-btn-link{flex:0 0 100%; min-width:0; padding:6px 0 0; border:0; border-radius:0; background:none; color:var(--stone); font-size:13px; text-decoration:underline; text-underline-offset:3px; text-align:center;}
#cookie-banner .ck-btn-link:hover{background:none; color:var(--ink);}
#cookie-banner .ck-btn:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}
@media (max-width:560px){
  #cookie-banner{left:10px; right:10px; bottom:10px;}
  #cookie-banner .ck-box{padding:24px 20px 20px;}
  #cookie-banner .ck-title{font-size:23px;}
  #cookie-banner .ck-cat p{padding-right:0;}
  #cookie-banner .ck-btn{flex:1 1 100%;}
}
@media (prefers-reduced-motion:reduce){#cookie-banner:not([hidden]){animation:none;}}
