/* ============================================================
   YachtME Riviera - main.css
   Palette marine + or, fonts Cormorant Garamond / Marcellus / Jost
   ============================================================ */

:root{
  --fond:#ffffff; --fond2:#eef3f6; --fond3:#e2eaef;
  --marine:#0f2236; --marine2:#16314a; --marine3:#0c1b2c;
  --encre:#15212e; --encre2:#33414f; --gris:#6f7d88;
  --or:#b8893a; --or2:#c8a04a; --or3:#B99D75; --or-soft:rgba(184,137,58,.30);
  --ligne:#dce5eb; --ombre:0 18px 50px rgba(15,34,54,.10);
  --serif:'Cormorant Garamond',Georgia,serif;
  --display:'Marcellus',Georgia,serif;
  --sans:'Jost',-apple-system,Segoe UI,Roboto,sans-serif;
  --radius:10px; --hero-overlay:.45;
  --wrap:1200px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{margin:0;font-family:var(--sans);font-weight:300;color:var(--encre2);background:var(--fond);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%;max-width:100%;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{margin:0;color:var(--encre);font-weight:400;line-height:1.18;}
p{margin:0 0 1em;}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 28px;}
em{font-style:italic;color:var(--or);}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:15px 30px;border-radius:2px;border:1px solid transparent;cursor:pointer;transition:.35s;}
.btn-gold{background:var(--or);color:#fff;border-color:var(--or);}
/* Au survol, le fond s'efface : la bordure doit rester visible, sinon le
   bouton parait blanc et sans contour. */
.btn-gold:hover{background:transparent;color:var(--or);border-color:var(--or);}
.btn-outline{background:transparent;color:var(--encre);border-color:var(--ligne);}
.btn-outline:hover{border-color:var(--or);color:var(--or);}

/* Sur-titres / labels */
.eyebrow,.sec-label{display:inline-flex;align-items:center;gap:14px;font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--or);}
.sec-label::before{content:"";width:34px;height:1px;background:var(--or);}
.eyebrow-center{justify-content:center;}
.eyebrow-center::after{content:"";width:34px;height:1px;background:rgba(255,255,255,.6);}

.sec-head{margin-bottom:46px;}
.sec-head.center{text-align:center;}
.sec-head.center .sec-label{justify-content:center;}
.sec-h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,4vw,50px);letter-spacing:.5px;}
.sec-head.light .sec-h2{color:#fff;}
.sec-head.light .sec-label{color:var(--or2);}

/* ===== HEADER ===== */
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;padding:22px 0;transition:.4s;}
.site-header.scrolled{background:rgba(233,239,243,.98);box-shadow:0 8px 30px rgba(15,34,54,.08);padding:14px 0;}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:14px;}
.site-logo{display:inline-block;font-family:var(--display);color:#fff;line-height:1;}
.site-logo .logo-main{display:block;font-size:26px;letter-spacing:3px;}
.site-logo .gold{color:var(--or2);}
.site-logo small{display:block;width:100%;font-family:var(--sans);font-weight:300;font-size:11px;letter-spacing:0;margin-top:6px;opacity:.85;text-align:justify;text-align-last:justify;-moz-text-align-last:justify;}
.site-header.scrolled .site-logo,.site-header.scrolled .nav-menu a{color:var(--encre);}
.site-header.scrolled .nav-menu .sub-menu a{color:#fff;}
.site-header.scrolled .nav-menu .sub-menu a:hover{color:var(--or2);}
.site-header.scrolled .site-logo .gold{color:var(--or);}

/* Logo image : bascule clair (haut) / fonce (sticky) */
.site-logo-img{display:inline-block;line-height:0;}
.site-logo-img img{display:block;max-height:var(--logo-h,54px);width:auto;transition:.3s;}
.site-header.scrolled .site-logo-img img{max-height:calc(var(--logo-h,54px) * var(--logo-h-sticky,.74));}
.site-logo-img .logo-dark{display:none;}
.site-header.scrolled .site-logo-img .logo-light{display:none;}
.site-header.scrolled .site-logo-img .logo-dark{display:block;}

.nav-menu{list-style:none;display:flex;gap:34px;margin:0;padding:0;}
.nav-menu li{position:relative;}
.nav-menu a{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#fff;font-weight:300;position:relative;padding:4px 0;transition:.3s;}
.nav-menu a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--or);transition:.3s;}
.nav-menu a:hover{color:var(--or2);}
.nav-menu a:hover::after{width:100%;}
.nav-menu .menu-item-has-children > a{padding-right:16px;}
.nav-menu .menu-item-has-children > a::before{content:"";position:absolute;right:0;top:50%;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-65%) rotate(45deg);opacity:.7;}
.nav-menu .sub-menu{position:absolute;top:100%;left:-18px;min-width:240px;background:var(--marine);padding:10px 0;margin:0;list-style:none;opacity:0;visibility:hidden;transform:translateY(10px);transition:.3s;box-shadow:var(--ombre);z-index:50;}
.nav-menu li:hover > .sub-menu{opacity:1;visibility:visible;transform:translateY(0);}
.nav-menu .sub-menu a{display:block;padding:9px 22px;color:#fff;text-transform:none;letter-spacing:.04em;font-size:13.5px;}
.nav-menu .sub-menu a::after{display:none;}
.nav-menu .sub-menu a:hover{color:var(--or2);background:rgba(255,255,255,.05);}

.header-actions{display:flex;align-items:center;gap:20px;}
.nav-lang{display:none;}
.nav-contact{display:none;}
.header-lang ul{list-style:none;display:flex;gap:6px;margin:0;padding:0;}
.header-lang a{font-size:12px;letter-spacing:.08em;color:#fff;opacity:.7;padding:2px 5px;}
.site-header.scrolled .header-lang a{color:var(--encre);}
.header-lang .current-lang a{opacity:1;color:var(--or2);}
.site-header.scrolled .header-lang .current-lang a{color:var(--or);}

.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.nav-toggle span{width:24px;height:2px;background:#fff;transition:.3s;}
.site-header.scrolled .nav-toggle span{background:var(--encre);}

/* ===== HERO ===== */
.hero{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:140px 0 220px;overflow:visible;}
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background:linear-gradient(160deg,var(--marine2),var(--marine3));background-size:cover;background-position:center;}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-embed-wrap{position:absolute;inset:0;overflow:hidden;}
.hero-embed{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;transform:translate(-50%,-50%);pointer-events:none;border:0;}
.hero-veil{position:absolute;inset:0;background:rgba(8,16,26,var(--hero-overlay));}
.hero-slider{position:absolute;inset:0;}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.4s ease;}
.hero-slide.is-active{opacity:1;}
@media(max-width:760px){.hero-video-layer.hide-on-mobile{display:none;}}
.hero-inner{position:relative;z-index:2;text-align:center;color:#fff;}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(32px,6vw,var(--hero-title-size,86px));line-height:1.05;color:#fff;margin:22px auto 0;text-shadow:0 2px 30px rgba(0,0,0,.25);}
.hero-sub{max-width:640px;margin:24px auto 0;color:rgba(255,255,255,.82);font-size:17px;}

/* Barre de demande rapide */
.hero-bar{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:0;max-width:1000px;margin:42px auto 0;background:rgba(255,255,255,.96);border-radius:60px;padding:8px 8px 8px 14px;box-shadow:0 30px 70px rgba(8,16,26,.35);}
.hero-field{flex:1;min-width:170px;display:flex;align-items:center;gap:12px;padding:6px 22px;border-right:1px solid var(--ligne);}
.hero-field-ic{flex:0 0 auto;width:22px;height:22px;color:var(--or);display:inline-flex;}
.hero-field-ic .ymr-ic{width:100%;height:100%;}
.hero-field select{width:100%;border:none;background:none;font-family:var(--sans);font-size:15px;color:var(--encre);font-weight:400;cursor:pointer;outline:none;}
.hero-bar-btn{margin:0 0 0 14px;flex:0 0 auto;border-radius:50px;padding:13px 30px;}

/* Cartes 3 poles qui chevauchent */
.zone-cards{position:absolute;left:50%;transform:translateX(-50%);bottom:-200px;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.zone-card{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;box-shadow:var(--ombre);}
.zone-card-bg{position:absolute;inset:0;background:linear-gradient(160deg,var(--marine2),var(--marine3));background-size:cover;background-position:center;transition:transform .8s cubic-bezier(.16,1,.3,1);}
.zone-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,16,26,.55),rgba(8,16,26,.30));transition:.45s;}
.zone-card:hover::after{background:linear-gradient(to top,rgba(8,16,26,.80),rgba(8,16,26,.60));}
.zone-card:hover .zone-card-bg{transform:scale(1.08);}
.zone-card-body{position:relative;z-index:2;padding:30px;color:#fff;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.zone-card-body::before{content:"";position:absolute;top:22px;left:22px;right:22px;bottom:22px;border:1px solid rgba(255,255,255,.55);pointer-events:none;transition:.45s;}
.zone-card:hover .zone-card-body::before{top:16px;left:16px;right:16px;bottom:16px;border-color:rgba(255,255,255,.85);}
.zone-sub{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:10px;}
.zone-title{display:block;font-family:var(--serif);font-size:42px;font-weight:500;line-height:1.1;}
.zone-more{display:inline-block;margin-top:16px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#fff;border-bottom:1px solid var(--or2);padding-bottom:3px;transition:.4s;}
.zone-card:hover .zone-more{color:var(--or2);}
/* Cartes Care Plans sous le hero */
.plan-cards{align-items:stretch;}
.plan-card{position:relative;display:flex;flex-direction:column;min-height:300px;padding:32px 28px;background:#fff;border:1px solid var(--ligne);border-radius:var(--radius);box-shadow:var(--ombre);text-align:left;transition:.4s;}
.plan-card:hover{transform:translateY(-6px);box-shadow:0 24px 52px rgba(15,34,54,.18);}
.plan-card-feat{background:linear-gradient(160deg,var(--marine),#16314a);border-color:var(--or);}
.plan-card-name{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.1;color:var(--encre);}
.plan-card-feat .plan-card-name{color:#fff;}
.plan-card-price{font-family:var(--display,Marcellus),serif;font-size:18px;color:var(--or);margin:10px 0 16px;padding-bottom:14px;border-bottom:1px solid var(--ligne);}
.plan-card-feat .plan-card-price{color:var(--or2);border-color:rgba(255,255,255,.22);}
.plan-card-desc{font-size:14px;line-height:1.55;color:var(--gris);flex:1;}
.plan-card-feat .plan-card-desc{color:rgba(255,255,255,.82);}
.plan-card-more{margin-top:18px;align-self:flex-start;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--or);border-bottom:1px solid var(--or2);padding-bottom:3px;transition:.4s;}
.plan-card-feat .plan-card-more{color:#fff;}
.plan-card:hover .plan-card-more{color:var(--marine);border-color:var(--marine);}
.plan-card-feat:hover .plan-card-more{color:var(--or2);border-color:var(--or2);}
@media(max-width:760px){.plan-card{min-height:0;}}

/* ===== PRESTATIONS (grille filtrable) ===== */
.prestations{position:relative;z-index:1;padding:110px 0 120px;background:var(--fond);}
.filters{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:46px;}
.filter{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);background:none;border:1px solid var(--ligne);padding:10px 22px;border-radius:2px;cursor:pointer;transition:.3s;}
.filter:hover{color:var(--or);border-color:var(--or-soft);}
.filter.is-active{background:var(--marine);color:#fff;border-color:var(--marine);}
.presta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.presta-card{background:var(--fond);border:1px solid var(--ligne);border-radius:var(--radius);overflow:hidden;transition:.4s;display:flex;flex-direction:column;}
.presta-card:hover{box-shadow:var(--ombre);transform:translateY(-6px);}
.presta-card.is-hidden{display:none;}
.presta-img{position:relative;display:block;height:200px;background:linear-gradient(160deg,var(--fond3),var(--fond2));background-size:cover;background-position:center;}
.presta-cat{position:absolute;top:14px;left:14px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;background:rgba(15,34,54,.85);color:#fff;padding:5px 12px;border-radius:2px;}
.presta-body{padding:24px 22px 26px;}
.presta-body h3{font-family:var(--serif);font-size:23px;font-weight:500;margin-bottom:6px;}
.presta-body p{font-size:14px;color:var(--gris);margin-bottom:14px;}
.presta-link{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--or);font-weight:400;}

/* ===== BLOCS ALTERNES NUMEROTES ===== */
.features{padding:260px 0 110px;background:var(--fond2);}
@media(max-width:760px){.features{padding-top:72px;}}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;margin-bottom:90px;}
.feature:last-child{margin-bottom:0;}
.feature.is-reverse .feature-media{order:2;}
.feature-media{position:relative;}
.feature-img{display:block;aspect-ratio:4/3.2;background:linear-gradient(160deg,var(--marine2),var(--marine3));background-size:cover;background-position:center;border-radius:var(--radius);box-shadow:var(--ombre);position:relative;z-index:1;}
.feature-num{position:absolute;top:-38px;left:-22px;z-index:2;font-family:var(--serif);font-style:italic;font-size:120px;line-height:1;color:var(--or);opacity:.22;}
.feature-text .feature-ic{display:inline-flex;width:46px;height:46px;color:var(--or);margin-bottom:18px;}
.feature-text h2{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.4vw,42px);margin-bottom:18px;}
.feature-text p{color:var(--encre2);max-width:46ch;margin-bottom:26px;}

/* ===== CE QUE NOUS OFFRONS ===== */
.offer{padding:110px 0;background:linear-gradient(120deg,var(--marine) 0%,var(--marine3) 60%,var(--marine2) 100%);}
.offer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;}
.offer-item{text-align:center;color:#fff;padding:0 10px;}
.offer-ic{display:inline-flex;width:54px;height:54px;color:var(--or2);margin-bottom:18px;}
.offer-item h3{font-family:var(--serif);font-size:26px;font-weight:500;color:#fff;margin-bottom:10px;}
.offer-item p{font-size:14px;color:rgba(255,255,255,.7);}

/* ===== GALERIE MOSAIQUE ===== */
.gallery{padding:120px 0 0;background:var(--fond);}
.gallery-mosaic{margin-top:46px;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:14px;}
.mosaic-item{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--fond3),var(--fond2));background-size:cover;background-position:center;}
.mosaic-item.tall{grid-row:span 2;}
.mosaic-item::after{content:"";position:absolute;inset:0;background:rgba(8,16,26,0);transition:.45s;}
.mosaic-item:hover::after{background:rgba(8,16,26,.22);}
.mosaic-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--or-soft);}
.mosaic-ph .ymr-ic{width:42px;height:42px;}

/* ===== AVIS ===== */
.reviews{padding:120px 0;background:linear-gradient(120deg,var(--marine3),var(--marine));}
.reviews-track{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.review{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:34px 30px;margin:0;}
.review-stars{color:var(--or2);letter-spacing:3px;margin-bottom:16px;}
.review blockquote{margin:0 0 22px;font-family:var(--serif);font-size:21px;font-style:italic;line-height:1.5;color:#fff;}
.review figcaption strong{display:block;color:#fff;font-weight:400;letter-spacing:.04em;}
.review figcaption span{font-size:13px;color:rgba(255,255,255,.6);}

/* ===== CONTACT ===== */
.contact{padding:120px 0;background:var(--fond2);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.contact-text p{max-width:48ch;color:var(--encre2);}
.contact-info{list-style:none;margin:26px 0 0;padding:0;}
.contact-info li{display:flex;align-items:center;gap:14px;padding:10px 0;font-size:15px;}
.contact-info .ymr-ic{width:24px;height:24px;color:var(--or);flex:0 0 auto;}
.contact-form{background:var(--fond);border:1px solid var(--ligne);border-radius:var(--radius);padding:38px 34px;box-shadow:var(--ombre);}
.contact-placeholder{color:var(--gris);font-size:14px;}

/* ===== FOOTER ===== */
.site-footer{background:var(--marine);color:#c2cdd6;padding:70px 0 34px;}
.footer-top{display:flex;justify-content:space-between;gap:50px;flex-wrap:wrap;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.1);}
.footer-brand{max-width:340px;}
.footer-brand .site-logo{color:#fff;}
.footer-brand p{font-size:13.5px;color:#92a0ab;margin-top:16px;}
.footer-zone{display:flex;align-items:center;gap:10px;}
.footer-zone .ymr-ic{width:20px;height:20px;color:var(--or2);}
.footer-cols{display:flex;gap:64px;flex-wrap:wrap;}
.footer-widget-title{font-family:var(--display);font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:18px;}
.footer-col a,.footer-col p,.footer-menu a{display:block;font-size:13.5px;color:#92a0ab;padding:5px 0;transition:.3s;}
.footer-col a:hover{color:var(--or2);}
.footer-menu{list-style:none;margin:0;padding:0;}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:30px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6f7d88;}
.footer-bottom a{color:var(--or2);}

/* ===== ICONES ===== */
.ymr-ic{width:100%;height:100%;display:block;}

/* ===== REVEAL ===== */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:none;}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .presta-grid{grid-template-columns:repeat(2,1fr);}
  .zone-cards{position:static;transform:none;margin-top:50px;}
  .hero{min-height:auto;padding:150px 0 70px;}
  .feature{gap:40px;}
}
@media(max-width:760px){
  .site-nav{position:fixed;inset:0 0 0 auto;width:78%;max-width:340px;background:var(--marine);flex-direction:column;justify-content:flex-start;padding:90px 40px 40px;transform:translateX(100%);transition:.4s;z-index:70;overflow-y:auto;}
  .header-actions .btn-ghost{display:none;}
  .nav-contact{display:inline-block;margin-top:auto;text-align:center;}
  body.nav-open .site-nav{transform:translateX(0);}
  .site-nav .nav-menu{flex-direction:column;gap:22px;}
  .site-nav .nav-menu a{color:#fff;font-size:16px;}
  .site-nav .nav-menu .sub-menu a,.site-nav .menu-item-has-children > a{color:#fff;}
  .site-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;background:transparent;box-shadow:none;padding:8px 0 0 14px;min-width:0;}
  .site-nav .sub-menu a{padding:6px 0;font-size:14px;}
  .site-nav .menu-item-has-children > a::before{display:none;}
  .nav-toggle{display:flex;}
  /* Le burger doit rester au-dessus du panneau pour pouvoir fermer le menu */
  body.nav-open .site-header{z-index:80;}
  body.nav-open .nav-toggle{position:relative;z-index:81;}
  body.nav-open .nav-toggle span,
  body.nav-open .site-header.scrolled .nav-toggle span{background:#fff;}
  /* Liens du menu : rester blancs meme quand l'entete passe en mode scrolled */
  .site-header.scrolled .site-nav .nav-menu a,
  .site-header.scrolled .site-nav .nav-menu .sub-menu a,
  .site-header.scrolled .site-nav .menu-item-has-children > a{color:#fff;}
  .site-header.scrolled .site-nav .nav-lang .header-lang a{color:rgba(255,255,255,.7);}
  .site-header.scrolled .site-nav .nav-lang .header-lang .current-lang a{color:var(--or);}
  /* Mobile : on retire la barre du haut, on garde logo + burger */
  .header-utility{display:none;}
  .header-actions .header-lang{display:none;}
  /* Selecteur de langue deplace dans le menu burger */
  .nav-lang{display:block;margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);}
  .nav-lang .header-lang ul{display:flex;gap:18px;list-style:none;margin:0;padding:0;}
  .nav-lang .header-lang a{color:rgba(255,255,255,.7);font-size:15px;letter-spacing:.08em;text-decoration:none;}
  .nav-lang .header-lang .current-lang a{color:var(--or);}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0;}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .header-actions .btn-gold{display:none;}
  .zone-cards{grid-template-columns:1fr;}
  .presta-grid{grid-template-columns:1fr 1fr;gap:14px;}
  .feature,.feature.is-reverse{grid-template-columns:1fr;}
  .feature.is-reverse .feature-media{order:0;}
  .feature-num{font-size:80px;top:-26px;left:-6px;}
  .offer-grid{grid-template-columns:1fr 1fr;gap:30px 20px;}
  .gallery-mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:180px;}
  .reviews-track{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;gap:40px;}
  .hero-bar{flex-direction:column;align-items:stretch;border-radius:18px;padding:8px;gap:2px;margin-top:30px;}
  .hero-field{border-right:none;border-bottom:1px solid var(--ligne);padding:10px 14px;min-width:0;gap:10px;}
  .hero-field-ic{width:18px;height:18px;}
  .hero-field select{font-size:14px;}
  .hero-bar-btn{margin:8px 0 0;padding:12px 20px;font-size:11px;}
  .footer-top{flex-direction:column;gap:34px;}
  /* Centrage mobile : titres de section + texte contact + formulaire */
  .sec-head{text-align:center;}
  .sec-head .sec-label{justify-content:center;}
  .feature-text{text-align:center;}
  .feature-text .feature-ic{margin-left:auto;margin-right:auto;}
  .feature-text p{margin-left:auto;margin-right:auto;}
  .contact-text{text-align:center;}
  .contact-text .sec-label{justify-content:center;}
  .contact-text p{margin-left:auto;margin-right:auto;}
  .contact-info{display:inline-block;text-align:left;}
  .contact-form{text-align:left;}
}
@media(max-width:420px){
  .presta-grid{grid-template-columns:1fr;}
  .offer-grid{grid-template-columns:1fr;}
}

/* ===== FORMULAIRE (Contact Form 7) ===== */
.contact-form label{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);margin:0 0 16px;font-weight:400;}
.contact-form .wpcf7-form-control-wrap{display:block;margin-top:7px;}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form input[type=tel],
.contact-form select,
.contact-form textarea{
  width:100%;font-family:var(--sans);font-size:15px;font-weight:300;color:var(--encre);
  background:var(--fond2);border:1px solid var(--ligne);border-radius:4px;
  padding:13px 15px;transition:.3s;outline:none;
}
.contact-form select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23b8893a' stroke-width='1.5' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center;padding-right:38px;}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{border-color:var(--or);background:var(--fond);box-shadow:0 0 0 3px var(--or-soft);}
.contact-form textarea{min-height:130px;resize:vertical;}
.contact-form input::placeholder,
.contact-form textarea::placeholder{color:#9aa6b0;}

/* Cases d'acceptation */
.contact-form .wpcf7-acceptance{display:block;margin:18px 0 6px;}
.contact-form .wpcf7-acceptance .wpcf7-list-item{margin:0;}
.contact-form .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:10px;text-transform:none;letter-spacing:0;font-size:13px;color:var(--encre2);margin:0;}
.contact-form .wpcf7-acceptance input{width:auto;margin-top:3px;accent-color:var(--or);}
.contact-form .wpcf7-acceptance a{color:var(--or);text-decoration:underline;text-underline-offset:2px;}
.contact-form .wpcf7-acceptance a:hover{color:var(--marine);}

/* Cases a cocher facultatives (recontact, newsletter) */
.contact-form .wpcf7-checkbox{display:block;margin:12px 0 0;}
.contact-form .wpcf7-checkbox .wpcf7-list-item{display:block;margin:0 0 8px;}
.contact-form .wpcf7-checkbox label{display:flex;align-items:flex-start;gap:10px;text-transform:none;letter-spacing:0;font-size:13px;line-height:1.5;color:var(--encre2);margin:0;font-weight:400;cursor:pointer;}
.contact-form .wpcf7-checkbox input{width:auto;margin-top:3px;accent-color:var(--or);}

/* Bouton envoyer */
.contact-form .wpcf7-submit{
  margin-top:22px;width:100%;font-family:var(--sans);font-weight:400;font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--or);
  border:1px solid var(--or);border-radius:2px;padding:16px 30px;cursor:pointer;transition:.35s;
}
.contact-form .wpcf7-submit:hover{background:var(--marine);border-color:var(--marine);}

/* Messages & validation CF7 */
.contact-form .wpcf7-not-valid-tip{color:#c0392b;font-size:12px;letter-spacing:0;text-transform:none;margin-top:5px;}
.contact-form .wpcf7-not-valid{border-color:#c0392b !important;}
.contact-form .wpcf7-response-output{margin:18px 0 0 !important;padding:13px 16px !important;border-radius:4px;font-size:13px;letter-spacing:0;text-transform:none;border-width:1px !important;}
.contact-form .wpcf7-spinner{margin:0 auto;}
.contact-form .wpcf7 form.sent .wpcf7-response-output{border-color:#1e7a46 !important;background:#eafaf0;color:#1e7a46;}

/* ===== FORMULAIRE compact / 2 colonnes ===== */
.contact-form .cf7-row{display:grid !important;grid-template-columns:1fr 1fr;gap:0 18px;align-items:start;}
.contact-form .cf7-row > label,
.contact-form .cf7-row > p{margin:0 0 14px !important;}
/* neutralise les <p>/<br> parasites que CF7 peut injecter dans une ligne */
.contact-form .cf7-row br{display:none;}
.contact-form .cf7-row > p:empty{display:none;}
.contact-form label{margin-bottom:14px;}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form input[type=tel],
.contact-form select,
.contact-form textarea{padding:11px 14px;}
.contact-form .wpcf7-form > p{margin:0 0 14px;}
.contact-form textarea{min-height:110px;}
@media(max-width:520px){.contact-form .cf7-row{grid-template-columns:1fr;gap:0;}}

/* ===== PAGES INTERIEURES ===== */
.page-hero{position:relative;padding:170px 0 70px;overflow:hidden;text-align:center;}
.page-hero-bg{position:absolute;inset:0;background:linear-gradient(160deg,var(--marine2),var(--marine3));background-size:cover;background-position:center;}
.page-hero-veil{position:absolute;inset:0;background:rgba(8,16,26,var(--pagehero-overlay,.6));}
.page-hero-inner{position:relative;z-index:2;color:#fff;}
.page-hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(32px,5vw,58px);color:#fff;margin:14px 0 0;}
.breadcrumb{margin-top:16px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7);}
.breadcrumb a{color:var(--or2);}
.breadcrumb span{margin:0 8px;color:rgba(255,255,255,.5);}

.page-body{padding:80px 0;background:var(--fond);}
.page-body .entry-content{max-width:820px;}
.entry-content{font-size:16.5px;line-height:1.85;color:#111;font-weight:400;}
/* Texte courant en noir pour la lisibilite des pages de contenu (CGV, mentions,
   articles). Le mode sombre conserve son texte clair. */
html[data-theme="dark"] .entry-content{color:var(--encre2);}
.entry-content h2{font-family:var(--serif);font-weight:500;font-size:clamp(24px,3vw,34px);color:var(--encre);margin:42px 0 16px;}
.entry-content h2 em,.entry-content h3 em{color:var(--or);}
.entry-content h3{font-family:var(--display);font-size:19px;letter-spacing:.04em;color:var(--or);margin:28px 0 12px;}
.entry-content p{margin:0 0 18px;}
.entry-content a{color:var(--or);text-decoration:underline;text-underline-offset:2px;}
.entry-content a:hover{color:var(--marine);}
.entry-content img{border-radius:var(--radius);margin:24px 0;}
.entry-content ul{list-style:none;margin:0 0 22px;padding:0;}
.entry-content ul li{position:relative;padding:2px 0 2px 22px;}
.entry-content ul li::before{content:"";position:absolute;left:4px;top:13px;width:6px;height:6px;border-radius:50%;background:var(--or);}
/* Un paragraphe eventuellement insere dans un element de liste ne doit
   pas rouvrir d'espace entre les puces. */
.entry-content ul li > p{margin:0;}
.entry-content ol{margin:0 0 22px;padding-left:22px;}
.entry-content ol li{padding:5px 0;}
.entry-content blockquote{margin:26px 0;padding:18px 26px;border-left:3px solid var(--or);background:var(--fond2);font-family:var(--serif);font-size:21px;font-style:italic;color:var(--encre);}

/* Fond et texte pilotes depuis Personnaliser > Couleurs du site. Le bouton
   reprend la couleur du texte, seule facon de rester lisible quel que soit
   le fond choisi. */
.page-cta{
  background:var(--cta-bg,#F5EBD8);
  color:var(--cta-txt,var(--marine));
  text-align:center;padding:56px 0;
  border-bottom:1px solid color-mix(in srgb, var(--cta-txt,#0f2236) 14%, transparent);
}
.page-cta .cta-mark{display:inline-flex;width:48px;height:48px;color:var(--cta-txt,var(--marine));margin-bottom:18px;}
.page-cta h2,.page-cta h3{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3.4vw,40px);color:var(--cta-txt,var(--marine));margin-bottom:12px;}
.page-cta p{color:color-mix(in srgb, var(--cta-txt,#0f2236) 80%, transparent);max-width:46ch;margin:0 auto 28px;}
.page-cta .btn-gold{background:var(--cta-txt,var(--marine));border-color:var(--cta-txt,var(--marine));color:var(--cta-bg,#fff);}
.page-cta .btn-gold:hover{background:transparent;color:var(--cta-txt,var(--marine));border-color:var(--cta-txt,var(--marine));}
.page-cta .btn-outline,
.page-cta .btn-outline-light{border-color:var(--cta-txt,var(--marine));color:var(--cta-txt,var(--marine));}

/* ===== BOUTON RETOUR EN HAUT ===== */
.back-to-top{position:fixed;right:26px;bottom:26px;z-index:80;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--or);color:#fff;border:1px solid var(--or);border-radius:50%;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(14px);transition:.4s;box-shadow:0 10px 26px rgba(15,34,54,.28);}
.back-to-top svg{width:20px;height:20px;}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-top:hover{background:var(--marine);border-color:var(--marine);}
@media(max-width:760px){.back-to-top{right:16px;bottom:16px;width:44px;height:44px;}}

/* Ville issue de la recherche (page prestation) */
.page-zone{margin-top:14px;font-family:var(--sans);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--or2);}
.page-zone::before{content:"";display:inline-block;width:26px;height:1px;background:var(--or2);vertical-align:middle;margin-right:10px;}

/* Ville dans le H1 de la page prestation */
.page-hero h1 .h1-zone{color:var(--or2);font-style:italic;}

/* Libelle accessible masque visuellement (lecteurs d'ecran / SEO) */
.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ===== BARRE UTILITAIRE (haut a gauche) ===== */
.header-utility{border-bottom:1px solid rgba(255,255,255,.12);}
.header-utility .wrap{display:flex;justify-content:flex-start;align-items:center;gap:22px;padding-top:8px;padding-bottom:14px;}
.utility-contact{display:flex;align-items:center;gap:22px;}
.utility-sep{opacity:.4;}
.utility-social{display:inline-flex;align-items:center;gap:14px;}
.utility-social a{display:inline-flex;color:rgba(255,255,255,.85);transition:.3s;}
.utility-social .ymr-soc{width:17px;height:17px;}
.utility-social a:hover{color:var(--or2);}
.site-header.scrolled .utility-social a{color:var(--encre2);}
.site-header.scrolled .utility-social a:hover{color:var(--or);}
.header-utility .wrap .login-link{margin-left:auto;}
.footer-social{display:inline-flex;align-items:center;gap:14px;margin-top:14px;}
.footer-social a{display:inline-flex;color:var(--or2);transition:.3s;}
.footer-social .ymr-soc{width:18px;height:18px;}
.footer-social a:hover{color:#fff;}
.utility-item{display:inline-flex;align-items:center;gap:7px;color:rgba(255,255,255,.85);font-family:var(--sans);font-size:12px;letter-spacing:.06em;transition:.3s;}
.utility-item .ymr-ic{width:15px;height:15px;color:var(--or2);}
.utility-item:hover{color:var(--or2);}
.site-header.scrolled .utility-item{color:var(--encre2);}
.site-header.scrolled .utility-item:hover{color:var(--or);}
.login-link{display:inline-flex;align-items:center;gap:7px;background:none;border:none;cursor:pointer;color:rgba(255,255,255,.85);font-family:var(--sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:0;transition:.3s;}
.login-link .ymr-ic{width:16px;height:16px;}
.login-link:hover{color:var(--or2);}
.site-header.scrolled .header-utility{border-bottom-color:var(--ligne);}
.site-header.scrolled .login-link{color:var(--encre2);}
.site-header.scrolled .login-link:hover{color:var(--or);}

/* ===== BOUTON Nous contacter (or, arrondi) ===== */
.btn-ghost{background:var(--or);border:1px solid var(--or);color:#fff;padding:10px 24px;font-size:11px;letter-spacing:.12em;border-radius:50px;}
.btn-ghost:hover{background:var(--marine);border-color:var(--marine);color:#fff;}
.site-header.scrolled .btn-ghost{background:var(--or);border-color:var(--or);color:#fff;}
.site-header.scrolled .btn-ghost:hover{background:var(--marine);border-color:var(--marine);color:#fff;}

/* ===== POPUP LOGIN / REGISTER ===== */
.ymr-modal{position:fixed;inset:0;z-index:200;display:none;}
.ymr-modal.open{display:block;}
.ymr-modal-veil{position:absolute;inset:0;background:rgba(8,16,26,.62);backdrop-filter:blur(2px);}
.ymr-modal-box{position:relative;z-index:2;max-width:420px;margin:9vh auto 0;background:#fff;border-radius:12px;padding:34px 32px 30px;box-shadow:0 30px 80px rgba(8,16,26,.4);animation:ymrPop .3s ease;}
@keyframes ymrPop{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.ymr-modal-x{position:absolute;top:12px;right:16px;background:none;border:none;font-size:26px;line-height:1;color:var(--gris);cursor:pointer;}
.ymr-modal-x:hover{color:var(--encre);}
.ymr-modal-tabs{display:flex;gap:6px;margin-bottom:22px;}
.ymr-mtab{flex:1;background:none;border:1px solid var(--ligne);border-radius:3px;padding:11px;cursor:pointer;font-family:var(--sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);}
.ymr-mtab.act{background:var(--marine);color:#fff;border-color:var(--marine);}
.ymr-mpane{display:none;}
.ymr-mpane.act{display:block;}
.ymr-modal-box .login-username,.ymr-modal-box .login-password{margin-bottom:14px;}
.ymr-modal-box label{display:block;font-size:12px;letter-spacing:.06em;color:var(--gris);margin-bottom:5px;}
.ymr-modal-box input[type=text],.ymr-modal-box input[type=password]{width:100%;padding:12px 14px;border:1px solid var(--ligne);border-radius:6px;background:var(--fond2);}
.ymr-modal-box .login-remember{font-size:13px;color:var(--encre2);margin:6px 0 14px;}
.ymr-modal-box .login-submit input{width:100%;background:var(--or);color:#fff;border:none;border-radius:4px;padding:13px;letter-spacing:.1em;text-transform:uppercase;font-size:12px;cursor:pointer;}
.ymr-modal-box .login-submit input:hover{background:var(--marine);}
.ymr-modal-intro{font-size:14px;color:var(--encre2);line-height:1.6;margin-bottom:18px;}
.ymr-modal-btn{display:block;text-align:center;}
.ymr-modal-alt{font-size:13px;color:var(--gris);margin-top:16px;text-align:center;}
.ymr-modal-alt a,.ymr-link-login{color:var(--or);background:none;border:none;cursor:pointer;font-size:13px;padding:0;text-decoration:underline;}
@media(max-width:760px){.header-utility .wrap{flex-direction:column;gap:6px;justify-content:center;}.utility-contact{gap:16px;}.utility-item span{font-size:11px;}.ymr-modal-box{margin-top:6vh;max-width:92%;}}

/* ===== Légende par image du hero ===== */
.hero-slide-cap{
  position:absolute; right:34px; bottom:30px; z-index:3;
  font-family:'Marcellus',serif; letter-spacing:.18em; text-transform:uppercase;
  font-size:13px; color:rgba(243,239,230,.92);
  padding:8px 16px; border-left:2px solid var(--or);
  background:rgba(10,20,32,.32); backdrop-filter:blur(2px);
  text-shadow:0 1px 6px rgba(0,0,0,.5);
}
@media(max-width:760px){
  .hero-slide-cap{right:18px; bottom:18px; font-size:11px; letter-spacing:.12em; padding:6px 12px;}
}

/* ===== Care Plans / Abonnements (accueil) ===== */
.careplans{padding:100px 0;background:var(--fond2);}
.sec-intro{max-width:640px;margin:14px auto 0;color:var(--gris);font-size:16px;line-height:1.7;}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;align-items:stretch;}
.plan-card{position:relative;background:#fff;border:1px solid var(--ligne);border-radius:var(--radius);padding:34px 28px;display:flex;flex-direction:column;text-align:center;box-shadow:0 10px 30px rgba(15,34,54,.06);}
.plan-card.is-featured{border-color:var(--or);box-shadow:0 18px 44px rgba(184,137,58,.18);transform:translateY(-6px);}
.plan-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--or2,#d2a657),var(--or));color:#0f2236;font-family:var(--serif);letter-spacing:.12em;text-transform:uppercase;font-size:11px;padding:5px 16px;border-radius:30px;white-space:nowrap;}
.plan-name{font-family:var(--serif);font-size:26px;color:var(--encre);margin:6px 0 12px;}
.plan-ic{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 8px;border-radius:50%;background:rgba(184,137,58,.1);color:var(--or);}
.plan-ic .ymr-ic{width:28px;height:28px;}
.plan-card.is-featured .plan-ic{background:rgba(184,137,58,.18);}
.plan-tagline{color:var(--encre);font-size:15px;line-height:1.6;margin:0 0 14px;}
.plan-ideal{color:var(--gris);font-size:13.5px;line-height:1.6;margin:0 0 24px;flex:1 1 auto;}
.plan-card .btn{align-self:center;}
.careplans-more{text-align:center;margin-top:34px;}
.careplans-more a{color:var(--or);text-decoration:none;font-family:var(--serif);letter-spacing:.04em;}
.careplans-more a:hover{text-decoration:underline;}
@media(max-width:860px){
  .plan-grid{grid-template-columns:1fr;max-width:440px;margin-left:auto;margin-right:auto;}
  .plan-card.is-featured{transform:none;}
}

/* ===== Tableau comparatif (page Abonnements) ===== */
.ymr-compare{width:100%;border-collapse:collapse;margin:18px 0 30px;font-size:15px;}
.ymr-compare th,.ymr-compare td{border:1px solid var(--ligne);padding:11px 14px;text-align:center;}
.ymr-compare th:first-child,.ymr-compare td:first-child{text-align:left;}
.ymr-compare thead th{background:var(--marine);color:#fff;font-family:var(--serif);font-weight:500;letter-spacing:.03em;}
.ymr-compare tbody tr:nth-child(even){background:var(--fond2);}
.ymr-compare td{color:var(--encre);}

/* ===== Page Abonnements : formules en colonnes ===== */
.entry-content .ymr-plans{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
  width:min(1100px,94vw); margin:26px 50% 38px; transform:translateX(-50%);
  align-items:stretch;
}
.ymr-plan{
  background:#fff; border:1px solid var(--ligne); border-radius:var(--radius);
  padding:28px 24px; display:flex; flex-direction:column;
  box-shadow:0 10px 30px rgba(15,34,54,.06);
}
.ymr-plan h3{
  font-family:var(--serif); font-size:24px; color:var(--encre);
  letter-spacing:0; text-transform:none; margin:0 0 10px;
}
.ymr-plan .ymr-plan-price{font-family:var(--display,Marcellus),serif; font-size:18px; color:var(--or); margin:0 0 14px; padding-bottom:12px; border-bottom:1px solid var(--ligne); line-height:1.3;}
.ymr-plan .ymr-plan-price span{display:block; font-family:var(--sans,inherit); font-size:12.5px; color:var(--gris); margin-top:2px;}
.ymr-plan .ymr-plan-tag{font-size:14.5px; line-height:1.6; color:var(--encre); margin:0 0 12px;}
.ymr-plan .ymr-plan-plus{font-size:13.5px; font-weight:600; color:var(--marine); margin:0 0 8px;}
.ymr-plan ul{margin:0 0 16px; padding-left:18px;}
.ymr-plan li{font-size:13.5px; line-height:1.55; color:var(--encre); margin:0 0 7px;}
.ymr-plan .ymr-plan-ideal{
  margin:auto 0 0; padding-top:14px; border-top:1px solid var(--ligne);
  font-size:12.5px; line-height:1.55; color:var(--gris);
}
.ymr-plan .ymr-plan-ideal em{color:var(--gris);}
.ymr-plan-feat{border-color:var(--or); box-shadow:0 16px 40px rgba(184,137,58,.16);}
@media(max-width:860px){
  .entry-content .ymr-plans{grid-template-columns:1fr; width:auto; margin:24px 0 30px; transform:none; max-width:440px;}
}

/* ===== Carte zone d'intervention (pleine largeur) ===== */
.ymr-zonemap{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-top:34px;border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne);background:var(--fond2);}
.ymr-zonemap .leaflet-container{font-family:inherit;}
.entry-content .ymr-zonemap{margin-bottom:0;}

/* ===== Formulaire de contact natif ===== */
.ymr-cform{display:flex;flex-direction:column;gap:14px;}
/* border:none supprimait le contour : au survol, le fond dore s'effacant,
   le bouton devenait entierement blanc. La bordure est retablie et le
   survol bascule vers le marine, plus lisible qu'un simple contour. */
.ymr-cform .btn{margin-top:6px;width:100%;text-align:center;cursor:pointer;border:1px solid var(--or);}
.ymr-cform .btn-gold:hover{background:var(--marine);border-color:var(--marine);color:#fff;}
.ymr-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.ymr-cform-msg{padding:12px 16px;border-radius:6px;margin-bottom:18px;font-size:14px;line-height:1.5;}
.ymr-cform-msg.ok{background:#eafaf0;border:1px solid #bfe6cf;color:#1e7a46;}
.ymr-cform-msg.err{background:#fdecec;border:1px solid #f0c2c2;color:#a12727;}

/* ===== Style CF7 generique : s'applique a toute page (ex. page Contact) ===== */
.wpcf7 label{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);margin:0 0 16px;font-weight:400;}
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 input[type=url],
.wpcf7 input[type=date],
.wpcf7 input[type=number],
.wpcf7 select,
.wpcf7 textarea{
  width:100%;font-family:var(--sans);font-size:15px;font-weight:300;color:var(--encre);
  background:var(--fond2);border:1px solid var(--ligne);border-radius:4px;
  padding:13px 15px;transition:.3s;outline:none;margin-top:7px;
}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{border-color:var(--or);background:var(--fond);box-shadow:0 0 0 3px var(--or-soft);}
.wpcf7 textarea{min-height:150px;resize:vertical;}
.wpcf7 input::placeholder,.wpcf7 textarea::placeholder{color:#9aa6b0;}
.wpcf7 .wpcf7-acceptance,.wpcf7 .wpcf7-checkbox{display:block;margin:14px 0 4px;}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item,.wpcf7 .wpcf7-checkbox .wpcf7-list-item{display:block;margin:0 0 8px;}
.wpcf7 .wpcf7-acceptance label,.wpcf7 .wpcf7-checkbox label{display:flex;align-items:flex-start;gap:10px;text-transform:none;letter-spacing:0;font-size:13px;line-height:1.5;color:var(--encre2);margin:0;font-weight:400;cursor:pointer;}
.wpcf7 .wpcf7-acceptance input,.wpcf7 .wpcf7-checkbox input{width:auto;margin-top:3px;accent-color:var(--or);}
.wpcf7 .wpcf7-acceptance a{color:var(--or);text-decoration:underline;text-underline-offset:2px;}
.wpcf7 .wpcf7-acceptance a:hover{color:var(--marine);}
.wpcf7 .wpcf7-submit{
  margin-top:22px;font-family:var(--sans);font-weight:400;font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--or);
  border:1px solid var(--or);border-radius:2px;padding:16px 34px;cursor:pointer;transition:.35s;
}
.wpcf7 .wpcf7-submit:hover{background:var(--marine);border-color:var(--marine);}
.wpcf7 .wpcf7-not-valid-tip{color:#c0392b;font-size:12px;letter-spacing:0;text-transform:none;margin-top:5px;}
.wpcf7 .wpcf7-not-valid{border-color:#c0392b !important;}
.wpcf7-response-output{margin:18px 0 0 !important;padding:13px 16px !important;border-radius:4px;font-size:13px;letter-spacing:0;text-transform:none;border-width:1px !important;}
.wpcf7 form.sent .wpcf7-response-output{border-color:#1e7a46 !important;background:#eafaf0;color:#1e7a46;}

/* Ligne 2 colonnes CF7 (toute page) */
.wpcf7 .cf7-row{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;align-items:start;}
.wpcf7 .cf7-row > label,.wpcf7 .cf7-row > p{margin:0 0 14px !important;}
.wpcf7 .cf7-row br{display:none;}
.wpcf7 .cf7-row > p:empty{display:none;}
@media(max-width:520px){.wpcf7 .cf7-row{grid-template-columns:1fr;gap:0;}}

/* ===== Espace client 24/7 (accueil) ===== */
.clientportal{background:var(--marine);color:#fff;padding:96px 0;}
.clientportal .sec-label{color:var(--or2);}
.clientportal .sec-h2{color:#fff;}
.clientportal-intro{max-width:620px;margin:14px auto 0;color:rgba(255,255,255,.82);text-align:center;line-height:1.7;}
.clientportal-list{list-style:none;padding:0;margin:36px auto 32px;max-width:760px;display:grid;grid-template-columns:1fr 1fr;gap:14px 34px;}
.clientportal-list li{display:flex;align-items:flex-start;gap:12px;color:rgba(255,255,255,.92);font-size:15px;line-height:1.5;}
.clientportal-list svg{flex:0 0 auto;width:20px;height:20px;color:var(--or2);margin-top:1px;}
.clientportal-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:4px;}
.btn-outline-light{border:1px solid rgba(255,255,255,.45);color:#fff;background:transparent;}
.btn-outline-light:hover{border-color:#fff;background:rgba(255,255,255,.08);}
@media(max-width:680px){.clientportal-list{grid-template-columns:1fr;max-width:420px;}}

/* ===== Sécurités centrage / débordement mobile ===== */
.hero-video-layer,.hero-media{overflow:hidden;}
.contact-info li{overflow-wrap:anywhere;word-break:break-word;}
@media(max-width:760px){
  .wrap{padding-left:20px;padding-right:20px;}
  .sec-head,.sec-head.center{text-align:center;}
  .reviews-track,.plan-grid,.gallery-mosaic,.presta-grid,.offer-grid,.clientportal-list{margin-left:auto;margin-right:auto;}
  .contact-info{display:inline-block;text-align:left;max-width:100%;}
}
@media(max-width:480px){
  .gallery-mosaic{grid-template-columns:1fr;grid-auto-rows:200px;}
  .reviews-track .review blockquote{font-size:19px;}
}

/* ===== Robustesse mobile : centrage garanti + anti-débordement ===== */
.contact-grid > *, .gallery-mosaic > *, .presta-grid > *, .offer-grid > *,
.reviews-track > *, .plan-grid > *, .clientportal-list > *, .feature > *{min-width:0;}
.sec-h2, .contact-text h2, .hero h1, .clientportal h2{overflow-wrap:break-word;}
.contact-form, .contact-form *{max-width:100%;}
.wpcf7 input, .wpcf7 textarea, .wpcf7 select,
.contact-form input, .contact-form textarea, .contact-form select{max-width:100%;box-sizing:border-box;}
@media(max-width:760px){
  .wrap, .contact-grid{padding-left:20px;padding-right:20px;}
  .contact, .gallery, .reviews, .features, .clientportal, .offer, .careplans{padding-left:0;padding-right:0;}
  .contact-form{padding:26px 20px;}
  .cf7-row, .wpcf7 .cf7-row, .contact-form .cf7-row{grid-template-columns:1fr !important;gap:0 !important;}
  .contact-text, .sec-head.center{text-align:center;}
}

/* ===== Blog (liste, cartes, pagination) ===== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.blog-card{background:var(--fond);border:1px solid var(--ligne);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.35s;box-shadow:0 8px 26px rgba(15,34,54,.05);}
.blog-card:hover{box-shadow:0 16px 40px rgba(15,34,54,.10);transform:translateY(-4px);}
.blog-card-img{display:block;aspect-ratio:16/10;background-size:cover;background-position:center;}
.blog-card-body{padding:24px 24px 28px;display:flex;flex-direction:column;flex:1;}
.blog-card-meta{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--or);margin-bottom:10px;}
.blog-card h3{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.25;margin:0 0 10px;}
.blog-card h3 a{color:var(--encre);text-decoration:none;transition:.2s;}
.blog-card h3 a:hover{color:var(--or);}
.blog-card p{color:var(--encre2);font-size:14.5px;line-height:1.6;margin:0 0 16px;flex:1;}
.blog-card-link{color:var(--or);font-family:var(--serif);letter-spacing:.04em;text-decoration:none;font-size:15px;align-self:flex-start;}
.blog-card-link:hover{text-decoration:underline;}
.archive-intro{max-width:680px;margin:0 auto 36px;text-align:center;color:var(--encre2);}
.ymr-pagination{margin-top:54px;}
.ymr-pagination .nav-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;}
.ymr-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:10px 15px;border:1px solid var(--ligne);border-radius:30px;color:var(--encre);text-decoration:none;font-size:14px;transition:.25s;}
.ymr-pagination .page-numbers:hover{border-color:var(--or);color:var(--or);}
.ymr-pagination .page-numbers.current{background:var(--marine);color:#fff;border-color:var(--marine);}
.ymr-pagination .page-numbers.dots{border-color:transparent;}
.single-back{display:inline-block;margin-top:40px;color:var(--or);font-family:var(--serif);letter-spacing:.04em;text-decoration:none;}
.single-back:hover{text-decoration:underline;}
@media(max-width:980px){.blog-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr;max-width:440px;margin-left:auto;margin-right:auto;}}

/* ===== Carrousel prestations ===== */
.presta-carousel{position:relative;margin-top:48px;}
.presta-viewport{overflow:hidden;}
.presta-track{display:flex;gap:26px;transition:transform .55s cubic-bezier(.4,0,.2,1);will-change:transform;}
.presta-track .presta-card{flex:0 0 calc((100% - 52px) / 3);min-width:0;}
.presta-arrow{position:absolute;top:46%;transform:translateY(-50%);z-index:3;width:50px;height:50px;border-radius:50%;border:1px solid var(--ligne);background:#fff;color:var(--encre);font-size:24px;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(15,34,54,.12);transition:.25s;display:flex;align-items:center;justify-content:center;padding:0;}
.presta-arrow:hover{background:var(--marine);color:#fff;border-color:var(--marine);}
.presta-arrow:disabled{opacity:.3;cursor:default;box-shadow:none;}
.presta-arrow:disabled:hover{background:#fff;color:var(--encre);border-color:var(--ligne);}
.presta-arrow.prev{left:-22px;}
.presta-arrow.next{right:-22px;}
.presta-dots{display:flex;justify-content:center;gap:9px;margin-top:36px;}
.presta-dot{width:9px;height:9px;border-radius:50%;background:var(--ligne);border:none;cursor:pointer;padding:0;transition:.3s;}
.presta-dot.active{background:var(--marine);width:28px;border-radius:30px;}
@media(max-width:980px){.presta-track .presta-card{flex:0 0 calc((100% - 26px) / 2);}}
@media(max-width:760px){.presta-arrow.prev{left:-4px;}.presta-arrow.next{right:-4px;}}
@media(max-width:640px){.presta-track{gap:18px;}.presta-track .presta-card{flex:0 0 100%;}}

/* ===== Respiration : plus d'espace (sections, titres, écarts) ===== */
.sec-head{margin-bottom:58px;}
.sec-intro,.clientportal-intro,.contact-text p{margin-top:18px;}
.offer-grid{gap:44px;}
.gallery-mosaic{gap:18px;}
.blog-grid{gap:38px;}
.reviews-track{gap:34px;}
.clientportal-list{gap:18px 44px;margin:42px auto 38px;}
.careplans .plan-grid,.plan-grid{gap:30px;}

@media(min-width:761px){
  .hero{padding:150px 0 240px;}
  .prestations{padding:150px 0 160px;}
  .features{padding:300px 0 140px;}
  .offer{padding:140px 0;}
  .gallery{padding:150px 0 10px;}
  .reviews{padding:150px 0;}
  .contact{padding:150px 0;}
  .careplans{padding:140px 0;}
  .clientportal{padding:140px 0;}
  .page-body{padding:110px 0;}
  .page-cta{padding:130px 0;}
  .presta-carousel{margin-top:60px;}
  .blog-grid{gap:44px;}
}

@media(max-width:760px){
  .prestations,.offer,.gallery,.reviews,.contact,.careplans,.clientportal{padding-top:84px;padding-bottom:84px;}
  .features{padding-top:96px;padding-bottom:80px;}
  .page-body{padding:72px 0;}
  .sec-head{margin-bottom:40px;}
}

/* ===== Bouton d'installation PWA ===== */
.ymr-install{position:fixed;left:20px;bottom:20px;z-index:60;display:inline-flex;align-items:center;gap:9px;padding:12px 20px 12px 16px;border:none;border-radius:30px;background:var(--marine);color:#fff;font-family:var(--sans);font-size:13.5px;letter-spacing:.02em;cursor:pointer;box-shadow:0 12px 30px rgba(15,34,54,.28);transition:.25s;}
.ymr-install:hover{background:var(--or);color:#0f2236;}
.ymr-install svg{width:20px;height:20px;flex:0 0 auto;}
.ymr-install[hidden]{display:none;}
@media(max-width:760px){.ymr-install{left:14px;bottom:14px;padding:11px 16px 11px 13px;font-size:13px;}.ymr-install svg{width:18px;height:18px;}}

/* ===== Lien d'installation (footer) + aide iOS ===== */
.ymr-install-link{display:inline-flex;align-items:center;gap:7px;color:var(--or)!important;}
.ymr-install-link::before{content:"";width:15px;height:15px;flex:0 0 auto;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v10'/%3E%3Cpolyline points='8 11 12 15 16 11'/%3E%3Cpath d='M5 19h14'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v10'/%3E%3Cpolyline points='8 11 12 15 16 11'/%3E%3Cpath d='M5 19h14'/%3E%3C/svg%3E") center/contain no-repeat;}
.ymr-install-link[hidden]{display:none;}
/* ===== Aide a l'installation sur iOS =====
   Safari n'expose aucun mecanisme d'installation : la manoeuvre doit etre
   expliquee. L'ancien bandeau de bas d'ecran passait inapercu ; il devient
   une fenetre guidee, avec une fleche pointant vers le bouton Partager. */
.ymr-ios-hint{
  position:fixed;inset:0;z-index:9500;display:flex;
  align-items:center;justify-content:center;padding:24px;
  background:rgba(6,16,28,.72);backdrop-filter:blur(4px);
  opacity:0;animation:ymrIosIn .3s ease forwards;
}
.ymr-ios-hint[hidden]{display:none;}
.ymr-ios-card{
  position:relative;width:100%;max-width:380px;
  background:var(--fond);border-radius:18px;
  padding:34px 26px 26px;text-align:center;
  box-shadow:0 30px 80px rgba(6,16,28,.45);
  transform:translateY(16px);animation:ymrIosUp .35s ease forwards;
}
.ymr-ios-close{
  position:absolute;top:8px;right:12px;width:34px;height:34px;
  background:none;border:0;cursor:pointer;color:var(--gris);
  font-size:24px;line-height:1;
}
.ymr-ios-close:hover{color:var(--marine);}
.ymr-ios-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;margin-bottom:14px;
  background:rgba(184,137,58,.12);color:var(--or);
}
.ymr-ios-icon svg{width:26px;height:26px;}
.ymr-ios-t{
  margin:0 0 6px;font-family:var(--display);font-weight:400;
  font-size:19px;line-height:1.3;color:var(--marine);
}
.ymr-ios-s{margin:0 0 20px;font-size:13.5px;line-height:1.6;color:var(--gris);}
.ymr-ios-steps{
  list-style:none;margin:0 0 22px;padding:0;text-align:left;
  display:flex;flex-direction:column;gap:12px;
}
.ymr-ios-steps li{display:flex;align-items:flex-start;gap:12px;}
.ymr-ios-num{
  flex:0 0 auto;width:24px;height:24px;border-radius:50%;
  background:var(--marine);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-size:12px;font-weight:500;
}
.ymr-ios-txt{font-size:14.5px;line-height:1.5;color:var(--encre);}
.ymr-ios-txt strong{color:var(--marine);font-weight:600;}
.ymr-ios-mini{
  width:15px;height:15px;vertical-align:-3px;
  color:var(--or);margin-left:1px;
}
.ymr-ios-alt{margin:0 0 16px;font-size:13px;line-height:1.55;color:var(--gris);}
.ymr-ios-alt:empty{display:none;}
.ymr-ios-ok{width:100%;}
/* Fleche vers le bouton Partager de Safari, en bas de l'ecran. */
.ymr-ios-arrow{
  position:absolute;left:50%;bottom:12px;margin-left:-12px;
  width:24px;height:40px;color:var(--or2);
  animation:ymrIosArrow 1.4s ease-in-out infinite;
}
.ymr-ios-arrow svg{width:100%;height:100%;}
@keyframes ymrIosIn{to{opacity:1;}}
@keyframes ymrIosUp{to{transform:translateY(0);}}
@keyframes ymrIosArrow{0%,100%{transform:translateY(0);opacity:.55;}50%{transform:translateY(7px);opacity:1;}}
@media (min-width:900px){.ymr-ios-arrow{display:none;}}
.ymr-ios-close{position:absolute;top:8px;right:10px;background:none;border:none;color:rgba(255,255,255,.7);font-size:26px;line-height:1;cursor:pointer;padding:4px;}
.ymr-ios-close:hover{color:#fff;}

/* ===== Formulaire de devis ===== */
.ymr-devis{max-width:640px;margin:0 auto;}
.ymr-devis-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.ymr-devis-form select{width:100%;padding:13px 15px;border:1px solid var(--ligne);border-radius:8px;background:var(--fond2);font-family:inherit;font-size:15px;color:var(--encre);margin-bottom:14px;transition:.25s;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236f7d88' stroke-width='1.8'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:42px;}
.ymr-devis-form select:focus{border-color:var(--or);background-color:#fff;outline:none;box-shadow:0 0 0 3px rgba(184,137,58,.18);}
.ymr-devis-form input,.ymr-devis-form textarea{margin-bottom:14px;}
@media(max-width:600px){.ymr-devis-row{grid-template-columns:1fr;gap:0;}}
/* Appel d'urgence : discret sous le bouton, mis en avant apres l'envoi. */
.ymr-devis-urg{margin:12px 0 0;font-size:.9rem;line-height:1.5;color:#5A6B7B;}
.ymr-devis-urg a{color:#C68A1E;font-weight:600;text-decoration:none;white-space:nowrap;}
.ymr-devis-urg a:hover,.ymr-devis-urg a:focus{text-decoration:underline;}
.ymr-devis-urg.sur-msg{margin-top:10px;padding-top:10px;border-top:1px solid rgba(198,138,30,.35);color:inherit;}

/* Bouton installer l'app */
.nav-install{margin-left:6px;}
.ymr-pwa-btn[hidden],.nav-install[hidden]{display:none!important;}

/* Intro de la page blog (texte saisi dans la page des articles) */
.blog-intro{max-width:760px;margin:0 auto 38px;text-align:center;color:var(--encre2);font-size:1.05rem;line-height:1.7;}
.blog-intro h2{font-family:var(--display);color:var(--encre);font-size:1.6rem;margin:0 0 10px;}
.blog-intro p{margin:0 0 12px;}
.blog-intro a{color:var(--or2);}

/* Bouton installer l'app dans le footer */
.footer-install-btn{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:10px 18px;background:var(--or);color:#10202f;border:none;border-radius:30px;font-family:var(--sans);font-weight:600;font-size:.9rem;letter-spacing:.02em;cursor:pointer;transition:.25s;}
.footer-install-btn:hover{background:var(--or2);transform:translateY(-1px);}
.footer-install-btn::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E") center/contain no-repeat;}
.footer-install-btn[hidden]{display:none!important;}

/* Sous-titre dans l'en-tête de page */
.page-subtitle{margin:12px auto 0;max-width:680px;color:rgba(255,255,255,.86);font-size:1.08rem;line-height:1.6;text-align:center;}

/* Intro de la page Actualités, dans le bandeau sous le titre */
.page-hero-intro{max-width:720px;margin:14px auto 0;text-align:center;color:rgba(255,255,255,.88);font-size:1.08rem;line-height:1.7;}
.page-hero-intro h2{font-family:var(--display);color:#fff;font-size:1.5rem;font-weight:500;margin:0 0 8px;}
.page-hero-intro p{margin:0 0 8px;}
.page-hero-intro a{color:var(--or2);}

/* Filtre par catégorie (blog) */
.cat-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 34px;}
.cat-pill{display:inline-block;padding:8px 18px;border:1px solid var(--ligne);border-radius:30px;font-family:var(--sans);font-size:.9rem;font-weight:500;color:var(--encre2);text-decoration:none;transition:.22s;background:#fff;}
.cat-pill:hover{border-color:var(--or);color:var(--encre);}
.cat-pill.active{background:var(--encre);border-color:var(--encre);color:#fff;}

/* Bandeau d'installation de l'application (PWA) */
.ymr-install-banner{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:1200;display:flex;align-items:center;gap:14px;width:100%;max-width:780px;padding:14px 18px;background:linear-gradient(120deg,#0f2236,#16314a);color:#fff;border-radius:14px 14px 0 0;box-shadow:0 -10px 40px rgba(15,34,54,.30);animation:ymrBannerUp .45s ease;}
@keyframes ymrBannerUp{from{transform:translate(-50%,100%);}to{transform:translate(-50%,0);}}
.ymr-banner-ic{flex:0 0 auto;}
.ymr-banner-ic svg{width:28px;height:28px;color:var(--or2,#c8a04a);display:block;}
.ymr-banner-txt{margin:0;flex:1;line-height:1.3;}
.ymr-banner-txt strong{display:block;font-family:var(--display,Marcellus),serif;font-weight:500;font-size:1rem;}
.ymr-banner-txt span{display:block;font-size:.82rem;opacity:.82;margin-top:2px;}
.ymr-banner-btn{flex:0 0 auto;background:var(--or,#b8893a);color:#10202f;border:none;border-radius:30px;padding:10px 20px;font-family:var(--sans,inherit);font-weight:600;font-size:.9rem;cursor:pointer;transition:.25s;}
.ymr-banner-btn:hover{background:var(--or2,#c8a04a);}
.ymr-banner-close{flex:0 0 auto;background:none;border:none;color:rgba(255,255,255,.7);font-size:24px;line-height:1;cursor:pointer;padding:0 4px;transition:.2s;}
.ymr-banner-close:hover{color:#fff;}
.ymr-install-banner[hidden]{display:none!important;}
@media(max-width:600px){.ymr-install-banner{border-radius:0;gap:10px;padding:12px 14px;}.ymr-banner-txt span{display:none;}.ymr-banner-btn{padding:9px 16px;font-size:.85rem;}}

/* Grille des pages prestations (page Prestations) */
.presta-pages-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:32px 0;width:100%;}
.entry-content .presta-pages-grid{width:min(94vw,1480px);margin-left:50%;transform:translateX(-50%);}
@media(max-width:1000px){.presta-pages-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.presta-pages-grid{grid-template-columns:1fr;}}
.pp-card{display:flex;flex-direction:column;align-items:stretch;background:#fff;border:1px solid #e6ebf0;border-radius:14px;overflow:hidden;text-decoration:none;color:var(--encre);transition:transform .25s,box-shadow .25s,border-color .25s;}
.entry-content a.pp-card,.entry-content a.pp-card:hover{text-decoration:none;color:var(--encre);}
.pp-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(15,34,54,.12);border-color:var(--or-soft);}
.pp-img{display:block;width:100%;height:180px;background-size:cover;background-position:center;}
.pp-body{display:flex;flex-direction:column;align-items:flex-start;padding:28px 30px;flex:1 1 auto;}
.pp-ic{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:rgba(184,137,58,.1);color:var(--or);margin-bottom:16px;}
.pp-ic .ymr-ic{width:28px;height:28px;}
.pp-title{font-family:var(--serif,serif);font-size:22px;color:var(--marine);margin:0 0 10px;}
.pp-exc{font-size:15px;line-height:1.55;color:var(--gris);margin:0 0 18px;}
.pp-more{margin-top:auto;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--or);font-weight:600;}

/* Page prestation : texte a gauche, image a droite */
.presta-single{display:grid;grid-template-columns:1fr 42%;gap:48px;align-items:start;margin:24px 0;}
.presta-single.no-media{grid-template-columns:1fr;}
.presta-single .ps-media{position:sticky;top:100px;}
.presta-single .ps-media img{width:100%;border-radius:14px;display:block;box-shadow:0 20px 50px rgba(15,34,54,.14);}
.presta-single .ps-text h2{margin-top:28px;}
.presta-single .ps-text h2:first-child,.presta-single .ps-text p:first-child{margin-top:0;}
@media(max-width:900px){.presta-single{grid-template-columns:1fr;gap:28px;}.presta-single .ps-media{position:static;order:-1;}}

/* Page Prestations facon maquette */
.entry-content .pp-carousel{display:flex;align-items:center;gap:14px;width:min(94vw,1480px);margin:36px 50%;transform:translateX(-50%);}
.pp-track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 16px;flex:1 1 auto;-ms-overflow-style:none;scrollbar-width:none;}
.pp-track::-webkit-scrollbar{display:none;}
.pp-slide{flex:0 0 calc((100% - 44px)/3);scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1px solid #e6ebf0;border-radius:14px;padding:30px 24px;text-decoration:none;transition:transform .25s,box-shadow .25s;}
.pp-slide:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(15,34,54,.12);}
.pp-slide .pp-ic{width:60px;height:60px;border-radius:50%;background:rgba(184,137,58,.1);color:var(--or);display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.pp-slide .pp-ic .ymr-ic{width:30px;height:30px;}
.pp-slide-t{font-family:var(--serif,serif);font-size:20px;color:var(--marine);margin-bottom:8px;}
.pp-slide-e{font-size:14px;line-height:1.5;color:var(--gris);}
.pp-nav{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:1px solid var(--or-soft);background:#fff;color:var(--or);font-size:18px;cursor:pointer;transition:.2s;}
.pp-nav:hover{background:var(--or);color:#fff;}
@media(max-width:900px){.pp-slide{flex-basis:80%;}.pp-nav{display:none;}}

.entry-content .pp-alt{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;width:min(94vw,1480px);margin:64px 50%;transform:translateX(-50%);}
.pp-alt--rev .pp-alt-text{order:2;}
.pp-alt-text h2{font-family:var(--serif,serif);color:var(--marine);font-size:30px;margin:0 0 16px;}
.pp-alt-text p{color:var(--encre2);font-size:16px;line-height:1.7;margin:0 0 22px;}
.pp-alt-more{color:var(--or);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:600;text-decoration:none;}
.pp-alt-media img{width:100%;border-radius:16px;display:block;box-shadow:0 24px 60px rgba(15,34,54,.16);}
.pp-alt-media--empty{display:flex;align-items:center;justify-content:center;min-height:300px;border:2px dashed #cdd7df;border-radius:16px;color:#9aa7b2;font-size:14px;letter-spacing:.04em;text-transform:uppercase;background:#f4f7f9;}
@media(max-width:900px){.entry-content .pp-alt{grid-template-columns:1fr;gap:24px;}.pp-alt--rev .pp-alt-text{order:0;}}

/* ============ Block patterns YachtME ============ */
.has-marine-background-color{background-color:var(--marine)!important;}
.has-marine2-background-color{background-color:var(--marine2)!important;}
.has-encre-background-color{background-color:var(--encre)!important;}
.has-creme-background-color{background-color:#fdfcf8!important;}
.has-or-background-color{background-color:var(--or)!important;}
.has-marine-color{color:var(--marine)!important;}
.has-or-color{color:var(--or)!important;}
.ymr-eyebrow{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--or2);letter-spacing:.05em;margin-bottom:6px;}
.ymr-eyebrow--dark{color:var(--or);}
.ymr-hero-title{font-family:var(--serif);font-weight:500;font-size:clamp(34px,6vw,74px);line-height:1.06;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.28);}
.ymr-hero-sub{color:rgba(255,255,255,.9);font-size:18px;max-width:640px;margin:14px auto 26px;}
.ymr-h2{font-family:var(--serif);font-weight:500;font-size:clamp(28px,4vw,46px);color:var(--marine);line-height:1.1;margin-bottom:10px;}
.ymr-pattern-textimg,.ymr-pattern-cards{padding:64px 0;}
.ymr-round img{border-radius:16px;box-shadow:0 24px 60px rgba(15,34,54,.16);}
.wp-block-button.ymr-btn-gold .wp-block-button__link{background:var(--or);color:#fff;border-radius:40px;padding:14px 30px;letter-spacing:.04em;text-transform:uppercase;font-size:13px;}
.wp-block-button.ymr-btn-gold .wp-block-button__link:hover{background:var(--or2);}
.wp-block-button.ymr-btn-outline .wp-block-button__link{background:transparent;color:var(--marine);border:1px solid var(--or);border-radius:40px;padding:13px 28px;letter-spacing:.04em;text-transform:uppercase;font-size:13px;}
.wp-block-button.ymr-btn-outline .wp-block-button__link:hover{background:var(--or);color:#fff;}
.ymr-card{background:#fff;border:1px solid #e6ebf0;border-radius:14px;padding:30px 28px;height:100%;box-shadow:0 8px 26px rgba(15,34,54,.05);transition:transform .25s,box-shadow .25s;}
.ymr-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(15,34,54,.12);}
.ymr-card-title{font-family:var(--serif);font-weight:500;font-size:23px;color:var(--marine);margin-bottom:8px;}
.ymr-card-more a{color:var(--or);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:600;text-decoration:none;}

/* Accueil editable : le texte saisi dans la page prend le style des sections */
.hero-inner > p{max-width:640px;margin:24px auto 0;color:rgba(255,255,255,.82);font-size:17px;}
.sec-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,4vw,50px);letter-spacing:.5px;}
.sec-head.light h2{color:#fff;}
.sec-head > p{max-width:640px;margin:14px auto 0;color:var(--gris);font-size:16px;line-height:1.7;}
.sec-head.light > p{color:rgba(255,255,255,.78);}
.contact-text > p{margin-top:18px;}

/* ===== Barre mobile : burger + recherche | logo | compte + langue ===== */
.mobile-tools{display:none;align-items:center;gap:14px;}
.mobile-login{background:none;border:none;cursor:pointer;padding:6px;color:#fff;display:inline-flex;line-height:0;}
.mobile-login .ymr-ic{width:22px;height:22px;}
.site-header.scrolled .mobile-login{color:var(--encre);}
.mobile-login:hover{color:var(--or2);}
.lang-flag{display:inline-flex;width:20px;height:20px;border-radius:50%;overflow:hidden;border:1px solid rgba(255,255,255,.55);align-items:center;justify-content:center;text-decoration:none;flex:0 0 auto;}
.lang-flag img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%;}
.lang-flag-code{font-size:8px;letter-spacing:.02em;color:#fff;font-weight:600;}
.site-header.scrolled .lang-flag{border-color:rgba(21,33,46,.35);}
.site-header.scrolled .lang-flag-code{color:var(--encre);}
@media(max-width:760px){
  .mobile-tools{display:flex;}
  .header-inner{justify-content:space-between;gap:10px;}
  .site-brand{flex:1 1 auto;display:flex;justify-content:center;}
  .header-actions{display:none;}
  body.nav-open .mobile-right{position:relative;z-index:81;}
}

/* Drapeaux dans le selecteur de langue (bureau + menu burger) */

/* Barre mobile : logo centre et compact, drapeau plus petit */
@media(max-width:760px){
  /* Cotes de largeur egale => logo reellement centre */
  .mobile-tools{flex:0 0 72px;gap:8px;}
  .mobile-left{justify-content:flex-start;}
  .mobile-right{justify-content:flex-end;}
  .site-brand{flex:1 1 auto;min-width:0;justify-content:center;}
  /* Logo plus petit (surcharge de max-height:var(--logo-h)) */
  .site-logo-img img,.site-header.scrolled .site-logo-img img{max-height:38px;}
  .site-logo .logo-main{font-size:19px;letter-spacing:2px;}
  .site-logo small{font-size:8px;margin-top:4px;}
  /* Drapeau plus petit */
  .lang-flag{width:20px;height:20px;}
  .mobile-login{padding:4px;}
  .mobile-login .ymr-ic{width:19px;height:19px;}
  .nav-toggle span{width:20px;}
}

/* Mobile : en-tete blanc en permanence (facon Excellence Riviera) */
@media(max-width:760px){
  .site-header,.site-header.scrolled{background:#fff;box-shadow:0 2px 14px rgba(15,34,54,.08);padding:8px 0;}
  .header-inner{padding-top:0;}
  /* Logo version foncee + un peu plus grand */
  .site-logo-img .logo-light{display:none;}
  .site-logo-img .logo-dark{display:block;}
  .site-logo-img img,.site-header.scrolled .site-logo-img img{max-height:44px;}
  .site-logo,.site-header .site-logo{color:var(--encre);}
  .site-logo .gold,.site-header .site-logo .gold{color:var(--or);}
  /* Icones foncees sur fond blanc */
  .nav-toggle span{background:var(--encre);}
  .mobile-login{color:var(--encre);}
  .lang-flag{border-color:rgba(21,33,46,.3);}
  .lang-flag-code{color:var(--encre);}
}

/* Drapeaux : Polylang fournit des images 16x11 px, un cercle large les
   agrandit et les rend flous. On reduit la taille pour rester net. */
.lang-flag{width:20px;height:20px;}
@media(max-width:760px){
  .lang-flag{width:16px;height:16px;border-width:1px;}
}

/* ===== Cartes 3 poles : format plus compact =====
   Largeur du bloc reduite (1200 -> 980) et cartes moins hautes (1/1 -> 5/4).
   Le debord sous le hero et le degagement de .features sont recalcules
   en consequence, ces trois valeurs etant liees. */
.zone-cards{max-width:980px;gap:20px;}
.zone-card{aspect-ratio:5/4;}
.zone-card-body{padding:22px;}
.zone-card-body::before{top:16px;left:16px;right:16px;bottom:16px;}
.zone-card:hover .zone-card-body::before{top:11px;left:11px;right:11px;bottom:11px;}
.zone-sub{font-size:10px;letter-spacing:.2em;margin-bottom:7px;}
.zone-title{font-size:30px;}
.zone-more{margin-top:12px;font-size:10px;letter-spacing:.18em;}
@media(min-width:761px){
  .zone-cards{bottom:-125px;}   /* debord : 200 -> 125 */
  .features{padding-top:225px;} /* degagement : 300 -> 225 */
}
@media(max-width:600px){
  .zone-card{aspect-ratio:16/9;} /* une seule colonne : cartes moins hautes */
  .zone-title{font-size:26px;}
}

/* ===== Selecteur de langue : FR / EN avec trait anime =====
   Le trait se deploie de la gauche vers la droite (scaleX + origine a gauche).
   Il reste affiche en permanence sur la langue active. */
.header-lang ul{align-items:center;gap:0;}
.header-lang .lang-item{display:inline-flex;align-items:center;}
.header-lang .lang-item + .lang-item::before{content:"/";margin:0 6px;color:rgba(255,255,255,.4);}
.site-header.scrolled .header-lang .lang-item + .lang-item::before{color:rgba(21,33,46,.35);}
.header-lang .lang-item a{position:relative;display:inline-block;padding:2px 3px 5px;line-height:1.2;text-decoration:none;}
.header-lang .lang-item a > span{display:inline-block;}
.header-lang .lang-item a::after{content:"";position:absolute;left:3px;right:3px;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.16,1,.3,1);}
.header-lang .lang-item a:hover::after,.header-lang .current-lang a::after{transform:scaleX(1);}
.header-lang .lang-item a:hover{opacity:1;}
/* Menu burger : meme logique, separateur clair */
.nav-lang .header-lang .lang-item + .lang-item::before,
.site-header.scrolled .site-nav .nav-lang .header-lang .lang-item + .lang-item::before{color:rgba(255,255,255,.4);margin:0 10px;}

/* Selecteur FR / EN dans la barre mobile (en-tete blanc) */
@media(max-width:760px){
  .mobile-left .header-lang a{color:var(--encre);opacity:.75;font-size:11px;letter-spacing:.06em;padding:2px 2px 5px;}
  .mobile-left .header-lang .current-lang a{color:var(--or);opacity:1;}
  .mobile-left .header-lang .lang-item + .lang-item::before{color:rgba(21,33,46,.35);margin:0 4px;}
  .mobile-left .header-lang a::after{left:2px;right:2px;}
}

/* ===== Blocs image + texte : ecarts mobile =====
   Chaque [accueil_bloc] est une <section class="features"> autonome :
   l'ecart entre deux blocs cumulait padding-bottom (80) + padding-top (96).
   On annule le haut des sections consecutives. */
@media(max-width:760px){
  .features + .features{padding-top:0;}
  .features{padding-bottom:44px;}
  .feature{gap:28px;}
}

/* Blocs image + texte : ecarts bureau.
   Le padding-top de 225px degage les cartes 3 poles : il n'a de sens que
   pour le premier bloc. On l'annule pour les blocs suivants. */
@media(min-width:761px){
  .features + .features{padding-top:0;}
  .features{padding-bottom:100px;}
}

/* Cartes 3 poles : lisibilite du texte
   Voile renforce (30/55% -> 45/78%), ombre portee sur le texte et
   libelles moins etires. */
.zone-card::after{background:linear-gradient(to top,rgba(8,16,26,.78),rgba(8,16,26,.45));}
.zone-card:hover::after{background:linear-gradient(to top,rgba(8,16,26,.88),rgba(8,16,26,.62));}
.zone-card-body{text-shadow:0 1px 10px rgba(8,16,26,.5);}
.zone-sub{font-size:11px;letter-spacing:.16em;color:#fff;}
.zone-title{font-size:30px;text-shadow:0 2px 14px rgba(8,16,26,.55);}
.zone-more{font-size:11px;letter-spacing:.14em;}

/* Carte de zone en fin de page : elle vient au contact du bloc suivant.
   La marge basse de .page-body (80/110/72px selon l'ecran) creait un vide
   sous la carte, qui est en pleine largeur. */
.page-body:has(> .entry-content > .ymr-zonemap:last-child){padding-bottom:0;}
.entry-content > .ymr-zonemap:last-child{margin-bottom:0;border-bottom:none;}

/* Cartes 3 poles : image plus lisible, titre toujours net.
   Le voile uniforme est remplace par un halo centre : sombre derriere le
   texte, quasi transparent sur les bords, donc la photo reste visible.
   La lisibilite est reportee sur une double ombre (halo large + trait net). */
.zone-card::after{background:radial-gradient(ellipse at center,rgba(8,16,26,.58) 0%,rgba(8,16,26,.32) 58%,rgba(8,16,26,.14) 100%);}
.zone-card:hover::after{background:radial-gradient(ellipse at center,rgba(8,16,26,.68) 0%,rgba(8,16,26,.44) 58%,rgba(8,16,26,.24) 100%);}
.zone-card-body{text-shadow:0 2px 16px rgba(8,16,26,.85),0 1px 3px rgba(8,16,26,.55);}
.zone-title{text-shadow:0 2px 22px rgba(8,16,26,.9),0 1px 4px rgba(8,16,26,.65);}

/* Cartes 3 poles : le titre grossit au survol, en meme temps que la photo. */
.zone-title{transform-origin:center;transition:transform .45s cubic-bezier(.16,1,.3,1);}
.zone-card:hover .zone-title{transform:scale(1.14);}

/* Cartes 3 poles : la photo part legerement agrandie et revient a sa
   taille normale au survol (zoom arriere). Elle reste toujours a
   scale >= 1, donc aucun bord vide n'apparait. */
.zone-card-bg{transform:scale(1.1);}
.zone-card:hover .zone-card-bg{transform:scale(1);}

/* ===== Page 404 « hors des eaux balisees » ===== */
.ymr-404{position:relative;background:linear-gradient(165deg,var(--marine),var(--encre));color:#fff;padding:190px 0 120px;overflow:hidden;text-align:center;}
.ymr-404-grid{position:absolute;inset:0;pointer-events:none;opacity:.28;
  background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(ellipse at center,#000 35%,transparent 78%);
  mask-image:radial-gradient(ellipse at center,#000 35%,transparent 78%);}
.ymr-404-inner{position:relative;z-index:2;max-width:760px;}
.ymr-404-chart{display:block;width:100%;max-width:640px;margin:0 auto 6px;color:var(--or2);}
.ymr-404-num{font-family:var(--serif);font-size:44px;font-weight:500;fill:#fff;letter-spacing:2px;}
.ymr-404-label{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;fill:currentColor;fill-opacity:.75;}
.ymr-404-route{stroke-dashoffset:0;animation:ymr404flow 2.4s linear infinite;}
@keyframes ymr404flow{to{stroke-dashoffset:-32;}}
.ymr-404-rose{transform-box:fill-box;transform-origin:center;animation:ymr404spin 26s linear infinite;}
@keyframes ymr404spin{to{transform:rotate(360deg);}}
.ymr-404-buoy{transform-box:fill-box;transform-origin:center;animation:ymr404pulse 3.4s ease-in-out infinite;}
@keyframes ymr404pulse{0%,100%{transform:scale(1);opacity:.5;}50%{transform:scale(1.22);opacity:.15;}}
.ymr-404-swell{animation:ymr404swell 5s ease-in-out infinite;}
@keyframes ymr404swell{0%,100%{transform:translateY(0);}50%{transform:translateY(-5px);}}
.ymr-404-title{font-family:var(--serif);font-weight:500;font-size:clamp(34px,5vw,58px);line-height:1.1;margin:14px 0 16px;}
.ymr-404-title em{color:var(--or2);font-style:italic;}
.ymr-404-text{color:rgba(255,255,255,.78);font-size:17px;line-height:1.7;max-width:560px;margin:0 auto 30px;}
.ymr-404-search{max-width:440px;margin:0 auto 34px;}
.ymr-404-search form{display:flex;gap:10px;}
.ymr-404-search label{flex:1 1 auto;margin:0;}
.ymr-404-search input[type=search],.ymr-404-search .search-field{width:100%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:#fff;border-radius:30px;padding:12px 18px;font-size:15px;}
.ymr-404-search input[type=search]::placeholder{color:rgba(255,255,255,.45);}
.ymr-404-search input[type=submit],.ymr-404-search .search-submit{background:var(--or);color:#fff;border:none;border-radius:30px;padding:12px 22px;cursor:pointer;font-size:12px;letter-spacing:.08em;text-transform:uppercase;}
.ymr-404-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:center;}
.ymr-404-link{color:var(--or2);font-size:13px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:.3s;}
.ymr-404-link:hover{color:#fff;}
@media(max-width:760px){
  .ymr-404{padding:130px 0 80px;}
  .ymr-404-num{font-size:34px;}
  .ymr-404-search form{flex-direction:column;}
}
@media(prefers-reduced-motion:reduce){
  .ymr-404-route,.ymr-404-rose,.ymr-404-buoy,.ymr-404-swell{animation:none;}
}

/* Zones de texte des formulaires : les navigateurs leur imposent une police
   a chasse fixe par defaut, contrairement aux autres champs. */
.ymr-cform textarea,.ymr-devis-form textarea{font-family:inherit;font-size:15px;line-height:1.6;color:var(--encre);}

/* Champs texte du formulaire de devis : ils n'avaient qu'une marge et
   gardaient donc l'apparence par defaut du navigateur, contrairement aux
   selects. On aligne bordure, fond, rayon et focus dore. */
.ymr-devis-form input[type=text],
.ymr-devis-form input[type=email],
.ymr-devis-form input[type=tel],
.ymr-devis-form textarea{
  width:100%;padding:13px 15px;border:1px solid var(--ligne);border-radius:8px;
  background:var(--fond2);font-family:inherit;font-size:15px;color:var(--encre);
  transition:.25s;-webkit-appearance:none;appearance:none;
}
.ymr-devis-form textarea{resize:vertical;min-height:120px;}
.ymr-devis-form input[type=text]:focus,
.ymr-devis-form input[type=email]:focus,
.ymr-devis-form input[type=tel]:focus,
.ymr-devis-form textarea:focus{
  border-color:var(--or);background-color:#fff;outline:none;
  box-shadow:0 0 0 3px rgba(184,137,58,.18);
}
.ymr-devis-form input::placeholder,
.ymr-devis-form textarea::placeholder{color:var(--gris);opacity:1;}
/* Le champ « Ne pas remplir » (anti-spam) reste invisible. */
.ymr-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* ===== Page prestation : image en tete, texte en colonnes dessous =====
   Remplace la disposition texte a gauche / image a droite.
   Les titres et les listes ne doivent jamais etre coupes entre deux
   colonnes, d'ou les regles break-inside / break-after. */
.presta-single{display:block;margin:24px 0;}
.presta-single .ps-media{position:static;margin:0 0 40px;}
.presta-single .ps-media img{width:100%;max-height:440px;object-fit:cover;border-radius:14px;display:block;box-shadow:0 20px 50px rgba(15,34,54,.14);}
.presta-single .ps-text{columns:2;column-gap:52px;}
.presta-single .ps-text > *{break-inside:avoid;}
.presta-single .ps-text h2{margin-top:26px;break-after:avoid;}
.presta-single .ps-text h2:first-child,.presta-single .ps-text p:first-child{margin-top:0;}
.presta-single .ps-text ul{margin-bottom:18px;}
@media(max-width:860px){
  .presta-single .ps-text{columns:1;}
  .presta-single .ps-media{margin-bottom:28px;}
  .presta-single .ps-media img{max-height:300px;}
}

/* ===== Pages prestations redigees a la main (sans shortcode) =====
   Image en tete pleine largeur, puis texte sur deux colonnes.
   L'image est sortie du flux des colonnes par column-span:all, qu'elle
   soit seule ou enveloppee dans un paragraphe par l'editeur. */
.page-presta .page-body .entry-content{columns:2;column-gap:52px;max-width:960px;}
.page-presta .page-body .entry-content > *{break-inside:avoid;}
.page-presta .page-body .entry-content h2,
.page-presta .page-body .entry-content h3{break-after:avoid;margin-top:26px;}
.page-presta .page-body .entry-content > *:first-child{margin-top:0;}
.page-presta .page-body .entry-content > img,
.page-presta .page-body .entry-content > p:has(> img),
.page-presta .page-body .entry-content > figure{column-span:all;margin:0 0 36px;}
.page-presta .page-body .entry-content img{width:100%;height:auto;max-height:440px;object-fit:cover;border-radius:14px;display:block;}
@media(max-width:860px){
  .page-presta .page-body .entry-content{columns:1;}
  .page-presta .page-body .entry-content img{max-height:300px;}
  .page-presta .page-body .entry-content > img,
  .page-presta .page-body .entry-content > p:has(> img),
  .page-presta .page-body .entry-content > figure{margin-bottom:26px;}
}

/* Cadre blanc exterieur autour du trio de cartes.
   .zone-cards porte aussi la classe .wrap (padding:0 28px) : on la surcharge
   pour obtenir une marge blanche reguliere sur les quatre cotes. */
.zone-cards{background:#fff;padding:24px;border-radius:4px;box-shadow:0 30px 70px rgba(15,34,54,.18);}
@media(max-width:760px){.zone-cards{padding:14px;}}

/* Ecart entre les trois cartes, elargi : dans un cadre blanc, une gouttiere
   trop fine ne se distingue plus du fond. */
.zone-cards{gap:30px;}
@media(max-width:760px){.zone-cards{gap:16px;}}

/* ===== Cadre blanc arrondi autour de CHAQUE carte =====
   Annule le cadre pose autour du trio (1.72.1) et le reporte sur les cartes.
   box-sizing:border-box etant global, la bordure s'inscrit dans la carte :
   l'aspect-ratio 5/4 et la grille ne bougent pas.
   .zone-card-bg et ::after sont en inset:0, donc caches DANS la bordure ;
   overflow:hidden arrondit la photo au rayon interieur. */
.zone-cards{background:none;padding:0 28px;box-shadow:none;border-radius:0;}
.zone-card{border:10px solid #fff;border-radius:16px;box-shadow:0 18px 45px rgba(15,34,54,.18);}
.zone-card:hover{box-shadow:0 26px 60px rgba(15,34,54,.26);}
@media(max-width:760px){.zone-card{border-width:8px;border-radius:14px;}}

/* Filet fin interieur supprime, cadre blanc rendu translucide :
   le hero transparait legerement au travers. */
.zone-card-body::before,.zone-card:hover .zone-card-body::before{display:none;content:none;}
.zone-card{border-color:rgba(255,255,255,.78);}

/* ===== Reflet balaye au survol des cartes =====
   Bande blanche inclinee qui traverse la carte. overflow:hidden clippe au
   niveau de la boite de padding : le reflet reste sur la photo et ne deborde
   pas sur le cadre blanc. z-index:3 pour passer au-dessus du voile. */
.zone-card::before{
  content:"";position:absolute;top:0;bottom:0;left:-70%;width:45%;z-index:3;
  pointer-events:none;opacity:0;transform:skewX(-18deg);
  background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.45) 50%,rgba(255,255,255,0) 100%);
}
.zone-card:hover::before{animation:ymrCardFlash .85s ease-out;}
@keyframes ymrCardFlash{
  0%{left:-70%;opacity:0;}
  12%{opacity:1;}
  100%{left:130%;opacity:0;}
}
@media(prefers-reduced-motion:reduce){
  .zone-card:hover::before{animation:none;}
}

/* Meme reflet sur les visuels du carrousel des prestations.
   L'animation ymrCardFlash est mutualisee avec les cartes des 3 poles. */
.presta-img{overflow:hidden;}
.presta-img::after{
  content:"";position:absolute;top:0;bottom:0;left:-70%;width:45%;z-index:2;
  pointer-events:none;opacity:0;transform:skewX(-18deg);
  background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.45) 50%,rgba(255,255,255,0) 100%);
}
.presta-card:hover .presta-img::after{animation:ymrCardFlash .85s ease-out;}
@media(prefers-reduced-motion:reduce){
  .presta-card:hover .presta-img::after{animation:none;}
}

/* Cadre blanc affine : 10 -> 6 px (8 -> 5 px sur mobile). */
.zone-card{border-width:6px;}
@media(max-width:760px){.zone-card{border-width:5px;}}

/* Cadre : 6 -> 3 px, blanc opaque. */
.zone-card{border-width:3px;border-color:#fff;}
@media(max-width:760px){.zone-card{border-width:3px;}}

/* Espace sous les cartes : degagement 225 -> 285 px, soit 160 px sous les
   cartes au lieu de 100 (elles debordent de 125 px sous le hero).
   Seul le premier bloc est concerne, .features + .features garde 0. */
@media(min-width:761px){
  .features{padding-top:285px;}
}

/* Carrousel de la page Prestations : image en tete de diapositive.
   Sans image, l'icone reste affichee et la diapositive garde son padding
   d'origine ; avec image, le padding passe sur .pp-slide-body. */
.pp-slide{overflow:hidden;}
.pp-slide-body{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;}
.pp-slide.has-img{padding:0;}
.pp-slide.has-img .pp-slide-body{padding:22px 20px 26px;}
.pp-slide-img{display:block;width:100%;height:150px;background-size:cover;background-position:center;transition:transform .6s cubic-bezier(.16,1,.3,1);}
.pp-slide.has-img:hover .pp-slide-img{transform:scale(1.06);}
@media(max-width:900px){.pp-slide-img{height:130px;}}

/* Correctif : ne pas cumuler les deux mises en page des pages prestations.
   Quand le contenu utilise [ymr_prestation_layout] (.presta-single), il gere
   deja image + colonnes ; les colonnes de .entry-content (posees pour les
   pages redigees a la main) le decoupaient en deux, ecrasant l'image. */
.page-presta .page-body .entry-content:has(.presta-single){columns:auto;max-width:960px;}

/* Section « Parlons de votre navire » : hauteur resserree. */
.page-cta{padding:40px 0;}
@media(min-width:761px){.page-cta{padding:54px 0;}}

/* Article : image placee en tete du texte, mise en forme comme sur les pages
   prestations. Seule la premiere image est traitee en bandeau ; les suivantes
   gardent leur taille naturelle, un recadrage force serait indesirable au fil
   du texte. */
.single-post .page-body .entry-content > img:first-child,
.single-post .page-body .entry-content > *:first-child img{
  width:100%;height:auto;max-height:440px;object-fit:cover;
  border-radius:14px;display:block;
}
.single-post .page-body .entry-content > img:first-child,
.single-post .page-body .entry-content > p:first-child,
.single-post .page-body .entry-content > figure:first-child{margin:0 0 34px;}
@media(max-width:860px){
  .single-post .page-body .entry-content > img:first-child,
  .single-post .page-body .entry-content > *:first-child img{max-height:280px;}
}

/* ===== Pied de page : marque centree, 4 colonnes, bande newsletter ===== */
.footer-head{text-align:center;padding-bottom:44px;}
.footer-head .site-logo{margin-bottom:16px;}
.footer-head .footer-intro,.footer-head p{max-width:640px;margin:0 auto 10px;color:rgba(255,255,255,.7);font-size:14.5px;line-height:1.75;}
.footer-head .footer-zone{display:inline-flex;align-items:center;justify-content:center;gap:9px;}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:34px;align-items:start;}
.footer-news{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:34px;
  margin-top:48px;padding-top:38px;border-top:1px solid rgba(255,255,255,.12);}
.footer-news-form{flex:1 1 420px;max-width:520px;}
.footer-news-social{flex:0 0 auto;}
.footer-news .footer-widget-title{margin-bottom:14px;}
/* Icones reseaux en pastilles carrees */
.footer-social--box{display:inline-flex;gap:12px;margin-top:0;}
.footer-social--box a{width:42px;height:42px;border-radius:10px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);display:inline-flex;align-items:center;justify-content:center;
  color:#fff;transition:.3s;}
.footer-social--box a:hover{background:var(--or);border-color:var(--or);color:#fff;transform:translateY(-2px);}
.footer-social--box .ymr-soc{width:19px;height:19px;}
@media(max-width:760px){
  .footer-head{padding-bottom:34px;}
  .footer-cols{grid-template-columns:repeat(2,1fr);gap:26px;}
  .footer-news{margin-top:34px;padding-top:28px;gap:24px;}
  .footer-news-form{flex-basis:100%;}
}

/* ===== Images de contenu : proportions respectees, aucun recadrage =====
   object-fit:cover + max-height rognaient les images larges (schemas,
   infographies). On revient a la hauteur naturelle, largeur fluide.
   Le hero et les drapeaux ronds conservent leur recadrage : il y est voulu. */
.presta-single .ps-media img,
.page-presta .page-body .entry-content img,
.single-post .page-body .entry-content > img:first-child,
.single-post .page-body .entry-content > *:first-child img{
  width:100%;height:auto;max-height:none;object-fit:initial;
}
@media(max-width:860px){
  .presta-single .ps-media img,
  .page-presta .page-body .entry-content img,
  .single-post .page-body .entry-content > img:first-child,
  .single-post .page-body .entry-content > *:first-child img{max-height:none;}
}

/* Logo image du pied de page : centre et dimensionne independamment de
   l'en-tete (--logo-h y vaut 54px, trop petit ici). */
.footer-head .footer-logo{display:inline-block;line-height:0;margin:0 auto 16px;}
.footer-head .footer-logo img{max-height:74px;width:auto;max-width:100%;display:block;margin:0 auto;}
.footer-head .site-logo{display:inline-block;}
@media(max-width:760px){.footer-head .footer-logo img{max-height:58px;}}

/* ===== Formulaire newsletter (pied de page) ===== */
.ymr-news-intro{color:rgba(255,255,255,.65);font-size:13.5px;line-height:1.6;margin:0 0 16px;max-width:46ch;}
.ymr-news-msg{font-size:13px;border-radius:8px;padding:9px 13px;margin:0 0 12px;}
.ymr-news-msg.ok{background:rgba(30,122,70,.18);border:1px solid rgba(90,200,140,.4);color:#bfeacf;}
.ymr-news-msg.err{background:rgba(161,39,39,.18);border:1px solid rgba(220,120,120,.4);color:#f2c7c7;}
.ymr-news-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.ymr-news-row{display:flex;gap:10px;flex-wrap:wrap;}
.ymr-news-row input[type=email]{flex:1 1 220px;min-width:0;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.06);color:#fff;border-radius:30px;padding:12px 18px;font-size:14.5px;font-family:inherit;}
.ymr-news-row input[type=email]::placeholder{color:rgba(255,255,255,.45);}
.ymr-news-row input[type=email]:focus{outline:none;border-color:var(--or);background:rgba(255,255,255,.1);}
.ymr-news-row .btn{flex:0 0 auto;border:none;cursor:pointer;}
.ymr-news-consent{display:flex;align-items:flex-start;gap:9px;margin-top:12px;
  color:rgba(255,255,255,.55);font-size:12px;line-height:1.5;max-width:46ch;cursor:pointer;}
.ymr-news-consent input{margin-top:2px;flex:0 0 auto;accent-color:var(--or);}
@media(max-width:760px){.ymr-news-row .btn{width:100%;}}

/* ===== Section « Une équipe à votre écoute » ===== */
.team{padding:110px 0;background:var(--fond2);}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:38px;max-width:900px;margin:0 auto;}
.team-card{margin:0;text-align:center;}
.team-photo{display:block;width:180px;height:180px;margin:0 auto 20px;border-radius:50%;
  background-size:cover;background-position:center;background-color:var(--fond3);
  border:3px solid #fff;box-shadow:0 16px 40px rgba(15,34,54,.16);
  transition:transform .45s cubic-bezier(.16,1,.3,1);
  display:flex;align-items:center;justify-content:center;}
.team-card:hover .team-photo{transform:translateY(-5px);}
.team-ph{color:var(--gris);opacity:.5;}
.team-ph .ymr-ic{width:52px;height:52px;}
.team-name{display:block;font-family:var(--serif);font-weight:500;font-size:22px;color:var(--marine);}
.team-role{display:block;margin-top:5px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--or);}
@media(max-width:760px){
  .team{padding:84px 0;}
  .team-grid{gap:30px;}
  .team-photo{width:150px;height:150px;}
}

/* Section « Quatre engagements » : hauteur reduite (140 -> 84 px de marge
   sur bureau, 110 -> 64 px sinon). */
.offer{padding:64px 0;}
@media(min-width:761px){.offer{padding:84px 0;}}

/* Logo du pied de page : centrage force.
   text-align:center suffit si le logo reste en inline-block, mais pas s'il
   est rendu par un widget qui impose son propre alignement. On centre donc
   par marges automatiques, independamment de l'heritage. */
.footer-head,.footer-head .footer-widget{text-align:center;}
.footer-head .site-logo,
.footer-head .footer-logo{
  display:block;width:-moz-max-content;width:max-content;max-width:100%;
  margin-left:auto;margin-right:auto;
}
.footer-head img{display:block;margin-left:auto;margin-right:auto;}

/* Degrade vertical partant d'un marine clair, avec le filet blanc
   translucide qui marque nettement la limite avec le pied de page. */
.clientportal{
  background:linear-gradient(180deg,#1d3d5c 0%,#16314a 45%,var(--marine) 100%);
  border-bottom:1px solid rgba(255,255,255,.08);
}

/* ===== Rythme vertical des sections, resserre =====
   Les marges d'origine (150 px en tete sur bureau) donnaient une page tres
   aeree. On ramene l'ensemble a 90 px sur bureau et 64 px sur mobile.
   .offer et .page-cta gardent les valeurs deja reduites. */
@media(min-width:761px){
  .prestations{padding:90px 0 96px;}
  .careplans{padding:90px 0;}
  .gallery{padding:90px 0 10px;}
  .reviews{padding:90px 0;}
  .clientportal{padding:90px 0;}
  .team{padding:90px 0;}
  .contact{padding:90px 0;}
}
@media(max-width:760px){
  .prestations,.careplans,.gallery,.reviews,.clientportal,.team,.contact{
    padding-top:64px;padding-bottom:64px;
  }
}
.sec-head{margin-bottom:34px;}

/* ===== Mode clair / sombre =====
   Seules les surfaces claires basculent. Le hero, le pied de page et les
   sections marine restent sombres dans les deux modes : ils font partie de
   l'identite, pas du fond de page. */
.theme-toggle{background:none;border:none;cursor:pointer;padding:5px;display:inline-flex;
  align-items:center;color:inherit;line-height:0;transition:color .3s;}
.theme-toggle .ymr-ic{width:17px;height:17px;}
.theme-toggle:hover{color:var(--or2);}
.theme-toggle .ymr-ic:nth-child(2){display:none;}
[data-theme="dark"] .theme-toggle .ymr-ic:nth-child(1){display:none;}
[data-theme="dark"] .theme-toggle .ymr-ic:nth-child(2){display:inline-block;}
.mobile-right .theme-toggle .ymr-ic{width:19px;height:19px;}
.site-header.scrolled .theme-toggle{color:var(--encre);}

html[data-theme="dark"]{
  --fond:#0e1620; --fond2:#121c27; --fond3:#18242f;
  --encre:#e7eef4; --encre2:#c3cfda; --gris:#8fa0ad;
  --ligne:rgba(255,255,255,.13);
  --ombre:0 18px 50px rgba(0,0,0,.5);
}
/* Surfaces figees en blanc dans la feuille */
[data-theme="dark"] .plan-card,
[data-theme="dark"] .pp-card,
[data-theme="dark"] .pp-slide,
[data-theme="dark"] .presta-card,
[data-theme="dark"] .ymr-card,
[data-theme="dark"] .ymr-modal-box,
[data-theme="dark"] .presta-arrow,
[data-theme="dark"] .pp-nav,
[data-theme="dark"] .cat-pill{background:var(--fond3);border-color:var(--ligne);color:var(--encre);}
[data-theme="dark"] .zone-card{border-color:var(--fond3);}
[data-theme="dark"] .site-header.scrolled{background:rgba(14,22,32,.97);}
/* Titres qui utilisent --marine comme couleur de texte */
[data-theme="dark"] .pp-title,
[data-theme="dark"] .pp-slide-t,
[data-theme="dark"] .pp-alt-text h2,
[data-theme="dark"] .ymr-h2,
[data-theme="dark"] .ymr-card-title,
[data-theme="dark"] .team-name{color:var(--encre);}
/* En-tete mobile blanc */
@media(max-width:760px){
  [data-theme="dark"] .site-header,[data-theme="dark"] .site-header.scrolled{background:var(--fond);}
  [data-theme="dark"] .site-logo-img .logo-light{display:block;}
  [data-theme="dark"] .site-logo-img .logo-dark{display:none;}
  [data-theme="dark"] .nav-toggle span{background:var(--encre);}
  [data-theme="dark"] .mobile-login,[data-theme="dark"] .theme-toggle{color:var(--encre);}
}

/* ===== Mode sombre : corrections d'en-tete =====
   Le logo « dark » (bleu) est prevu pour fond clair : en mode sombre, l'entete
   retracte devient fonce, il faut donc garder la version claire partout. */
html[data-theme="dark"] .site-logo-img .logo-light{display:block;}
html[data-theme="dark"] .site-logo-img .logo-dark{display:none;}
html[data-theme="dark"] .site-header.scrolled .site-logo,
html[data-theme="dark"] .site-header.scrolled .nav-menu a,
html[data-theme="dark"] .site-header.scrolled .theme-toggle,
html[data-theme="dark"] .site-header.scrolled .mobile-login,
html[data-theme="dark"] .site-header.scrolled .utility-social a,
html[data-theme="dark"] .site-header.scrolled .header-lang a{color:var(--encre);}
html[data-theme="dark"] .site-header.scrolled .nav-toggle span{background:var(--encre);}
html[data-theme="dark"] .site-header.scrolled .site-logo .gold{color:var(--or2);}
/* Contour de focus : discret et seulement au clavier */
.theme-toggle:focus{outline:none;}
.theme-toggle:focus-visible{outline:2px solid var(--or2);outline-offset:3px;border-radius:50%;}

/* Mode sombre : la barre de devis du hero garde son fond blanc (96 %), son
   texte doit donc rester fonce — sinon --encre l'eclaircit et il disparait. */
html[data-theme="dark"] .hero-field select,
html[data-theme="dark"] .hero-field select option,
html[data-theme="dark"] .hero-bar input{color:#15212e;}
html[data-theme="dark"] .hero-field{border-right-color:#dce5eb;}
html[data-theme="dark"] .hero-field-ic{color:var(--or);}
/* Logo : version blanche imposee en mode sombre, y compris en repli texte. */
html[data-theme="dark"] .site-logo,
html[data-theme="dark"] .site-header.scrolled .site-logo{color:#fff;}
html[data-theme="dark"] .site-logo .gold,
html[data-theme="dark"] .site-header.scrolled .site-logo .gold{color:var(--or2);}

/* Bouton de mode : pastille ronde cerclee d'or, doree dans les deux modes.
   Elle ne suit plus la couleur du texte de l'entete, l'anneau assurant sa
   lisibilite sur fond clair comme sur fond sombre. */
.theme-toggle{
  width:34px;height:34px;padding:0;border-radius:50%;
  border:1px solid var(--or-soft);background:transparent;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--or2);transition:border-color .3s,background .3s,color .3s;
}
.theme-toggle .ymr-ic{width:16px;height:16px;}
.theme-toggle:hover{border-color:var(--or);background:rgba(184,137,58,.14);color:var(--or);}
.site-header.scrolled .theme-toggle,
html[data-theme="dark"] .site-header.scrolled .theme-toggle,
html[data-theme="dark"] .theme-toggle{color:var(--or2);border-color:var(--or-soft);}
.site-header.scrolled .theme-toggle:hover{color:var(--or);border-color:var(--or);}
.mobile-right .theme-toggle{width:32px;height:32px;}
.mobile-right .theme-toggle .ymr-ic{width:16px;height:16px;}
@media(max-width:760px){
  html[data-theme="dark"] .theme-toggle{color:var(--or2);}
}

/* Mode sombre : le logo blanc doit primer AUSSI sur l'entete retracte.
   .site-header.scrolled .site-logo-img .logo-dark = (0,4,0) l'emportait sur
   html[data-theme="dark"] .site-logo-img .logo-dark = (0,3,1).
   On repasse devant en ciblant explicitement l'etat .scrolled : (0,5,1). */
html[data-theme="dark"] .site-header .site-logo-img .logo-light,
html[data-theme="dark"] .site-header.scrolled .site-logo-img .logo-light{display:block;}
html[data-theme="dark"] .site-header .site-logo-img .logo-dark,
html[data-theme="dark"] .site-header.scrolled .site-logo-img .logo-dark{display:none;}

/* ===== Pages prestations : carte image a gauche / texte a droite =====
   Remplace la disposition image en bandeau + texte en colonnes.
   L'image n'est pas recadree (consigne 1.77.1) : elle est calee en haut de
   sa colonne plutot que d'etre etiree pour la remplir. */
.presta-single{
  display:grid;grid-template-columns:44% 1fr;gap:0;align-items:start;
  background:var(--fond);border:1px solid var(--ligne);border-radius:16px;
  box-shadow:0 22px 60px rgba(15,34,54,.13);overflow:hidden;margin:8px 0 0;
}
.presta-single.no-media{grid-template-columns:1fr;}
.presta-single .ps-media{margin:0;position:static;}
.presta-single .ps-media img{
  width:100%;height:auto;max-height:none;object-fit:initial;
  border-radius:0;box-shadow:none;display:block;
}
.presta-single .ps-text{columns:auto;column-gap:normal;padding:42px 44px;}
.presta-single .ps-text h2{margin-top:26px;font-size:26px;}
.presta-single .ps-text h2:first-child,
.presta-single .ps-text p:first-child{margin-top:0;}
html[data-theme="dark"] .presta-single{background:var(--fond3);border-color:var(--ligne);}
@media(max-width:900px){
  .presta-single{grid-template-columns:1fr;border-radius:14px;}
  .presta-single .ps-text{padding:28px 24px;}
}

/* ===== Menu deroulant : bouton de mode, plus de selecteur de langue =====
   Les langues restent accessibles depuis la barre mobile (FR / EN a gauche),
   les repeter dans le tiroir faisait doublon. */
.nav-mode{display:flex;align-items:center;gap:12px;margin-top:26px;
  color:rgba(255,255,255,.75);font-size:12px;letter-spacing:.1em;text-transform:uppercase;}
.nav-mode .theme-toggle{flex:0 0 auto;}
@media(min-width:901px){.nav-mode{display:none;}}

/* ===== Tablette : menu et bouton resserres =====
   Entre 901 et 1180px la navigation complete tient a l'etroit. */
@media(min-width:901px) and (max-width:1180px){
  .nav-menu a{font-size:12px;letter-spacing:.1em;}
  .nav-menu > li{margin-left:16px;}
  .header-actions .btn-ghost{padding:9px 16px;font-size:10.5px;letter-spacing:.08em;}
  .header-actions{gap:12px;}
  .site-logo-img img{max-height:44px;}
}

/* ===== Pages prestations : carte (visuels + intro), puis texte en colonnes ===== */
.presta-single{display:block;background:none;border:none;border-radius:0;box-shadow:none;margin:8px 0 0;}
/* Ombre portee retiree : elle debordait sous la carte et se voyait comme
   un halo gris au-dessus du contenu suivant. */
.ps-card{
  display:grid;grid-template-columns:44% 1fr;gap:0;align-items:stretch;
  background:var(--fond);border:1px solid var(--ligne);border-radius:16px;
  box-shadow:none;overflow:hidden;
}
.ps-card.no-media{grid-template-columns:1fr;}
/* La colonne media doit occuper toute la hauteur de la carte, quelle que
   soit la longueur du texte a cote : sans hauteur explicite sur toute la
   chaine, le carrousel s'arretait a sa hauteur minimale et laissait le
   fond gris visible sous l'image. */
.ps-media{margin:0;position:relative;height:100%;min-height:100%;align-self:stretch;}
.ps-slider{position:relative;height:100%;min-height:260px;overflow:hidden;background:var(--fond3);}
.ps-slides{position:absolute;inset:0;}
.ps-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .5s ease;}
.ps-slide.is-on{opacity:1;}
.ps-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.5);
  background:rgba(8,16,26,.35);color:#fff;font-size:18px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:.3s;}
.ps-arrow:hover{background:var(--or);border-color:var(--or);}
.ps-prev{left:12px;} .ps-next{right:12px;}
.ps-dots{position:absolute;left:0;right:0;bottom:12px;z-index:2;display:flex;justify-content:center;gap:7px;}
.ps-dot{width:7px;height:7px;padding:0;border-radius:50%;border:none;cursor:pointer;
  background:rgba(255,255,255,.5);transition:.3s;}
.ps-dot.is-on{background:var(--or2);transform:scale(1.3);}
.ps-intro{padding:40px 42px;display:flex;flex-direction:column;justify-content:center;}
.ps-intro p{margin:0;font-size:16.5px;line-height:1.75;}
/* Texte restant, sous la carte */
.presta-single .ps-text{columns:2;column-gap:52px;padding:0;margin-top:44px;}
.presta-single .ps-text > *{break-inside:avoid;}
.presta-single .ps-text h2{margin-top:26px;break-after:avoid;}
.presta-single .ps-text > *:first-child{margin-top:0;}
html[data-theme="dark"] .ps-card{background:var(--fond3);}
@media(max-width:900px){
  .ps-card{grid-template-columns:1fr;border-radius:14px;}
  /* Sur une colonne, la hauteur se fixe par le rapport de forme : une
     hauteur minimale en pixels donnait une bande trop basse. */
  .ps-media{height:auto;min-height:0;}
  .ps-slider{min-height:0;aspect-ratio:4/3;height:auto;}
  .ps-intro{padding:26px 24px;}
  .presta-single .ps-text{columns:1;margin-top:30px;}
}

/* Tiroir mobile : le selecteur de langue y faisait doublon avec le
   « FR / EN » de la barre du haut, toujours visible. */
@media(max-width:900px){
  .nav-lang{display:none;}
}

/* Tablette (901-1180px) : le menu horizontal et le bouton sont a l'etroit.
   Texte et bouton resserres pour eviter le passage a la ligne. */
@media(min-width:901px) and (max-width:1180px){
  .header-inner{gap:16px;}
  .nav-menu{gap:20px;}
  .nav-menu a{font-size:11.5px;letter-spacing:.08em;}
  .btn-ghost{padding:8px 15px;font-size:10px;letter-spacing:.08em;}
  .header-actions{gap:12px;}
}

/* ===== Carte de zone : rendu bleu marine =====
   Les tuiles CARTO « dark » sont grises. Un filtre les vire au bleu :
   sepia les teinte, hue-rotate amene au bleu, saturate renforce.
   Le filtre porte sur le calque de tuiles seul, pour ne pas alterer
   les marqueurs ni les popups. */
.ymr-zonemap{background:#0b1c2e;}
.ymr-zonemap .leaflet-tile-pane{
  filter:sepia(1) hue-rotate(168deg) saturate(2.8) brightness(.92) contrast(1.05);
}
.ymr-pin-wrap{background:none;border:none;}
.ymr-pin{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  background:#fff;color:var(--marine);
  box-shadow:0 6px 18px rgba(8,16,26,.45);
  transition:transform .25s,background .25s,color .25s;
}
.ymr-pin .ymr-ic{width:20px;height:20px;}
.ymr-pin-wrap:hover .ymr-pin{transform:scale(1.12);background:var(--or);color:#fff;}
.ymr-zonemap .leaflet-popup-content-wrap{
  background:#fff;border-radius:10px;box-shadow:0 12px 34px rgba(8,16,26,.35);
}
.ymr-zonemap .leaflet-popup-content{margin:10px 14px;font-family:var(--sans);font-size:14px;color:var(--encre);}
.ymr-zonemap .leaflet-popup-tip{background:#fff;}
.ymr-zonemap .leaflet-control-attribution{background:rgba(11,28,46,.7);color:rgba(255,255,255,.6);}
.ymr-zonemap .leaflet-control-attribution a{color:rgba(255,255,255,.8);}
.ymr-zonemap .leaflet-bar a{background:#fff;color:var(--marine);border-color:rgba(0,0,0,.15);}
.ymr-zonemap .leaflet-bar a:hover{background:var(--or);color:#fff;}

/* Correctif : dans le carrousel de la carte, l'image DOIT remplir sa colonne.
   .page-presta .page-body .entry-content img = (0,3,1) l'emportait sur
   .ps-slide = (0,1,0) et lui rendait sa hauteur naturelle, laissant le fond
   gris du carrousel visible. On repasse devant avec (0,4,0).
   Les images du corps de texte, elles, restent non rognees. */
.page-presta .page-body .entry-content .ps-slide,
.entry-content .ps-slider .ps-slide,
.ps-slider .ps-slide{
  position:absolute;inset:0;width:100%;height:100%;
  max-height:none;object-fit:cover;border-radius:0;box-shadow:none;margin:0;
}

/* Marqueur : le voilier est deja sur pastille blanche dans l'image,
   le conteneur ne doit donc plus en dessiner une seconde. */
.ymr-pin{background:none;width:38px;height:38px;box-shadow:none;}
.ymr-pin img{width:38px;height:38px;display:block;border-radius:50%;box-shadow:0 6px 18px rgba(8,16,26,.45);}
.ymr-pin-wrap:hover .ymr-pin{transform:scale(1.12);background:none;}

/* ===== Bulle Google Maps =====
   Le balisage est genere par l'API : on cible ses classes internes, d'ou les
   !important. La croix par defaut est masquee ; la bulle se ferme au clic
   sur la carte. */
.ymr-zonemap .gm-style-iw-c{
  background:var(--marine)!important;border:1px solid rgba(255,255,255,.16)!important;
  border-radius:10px!important;padding:0!important;
  box-shadow:0 16px 40px rgba(8,16,26,.55)!important;
  max-width:none!important;
}
.ymr-zonemap .gm-style-iw-d{overflow:hidden!important;max-width:none!important;max-height:none!important;padding:0!important;}
.ymr-zonemap .gm-style-iw-tc::after{background:var(--marine)!important;}
.ymr-zonemap .gm-style-iw button.gm-ui-hover-effect{display:none!important;}
.ymr-iw{
  font-family:var(--serif);font-size:17px;font-weight:500;letter-spacing:.02em;
  color:#fff;white-space:nowrap;padding:11px 20px;line-height:1.2;
}
.ymr-iw::after{
  content:"";display:block;width:26px;height:1px;background:var(--or2);margin-top:8px;
}
/* Repli Leaflet : meme habillage */
.ymr-zonemap .leaflet-popup-content-wrap{background:var(--marine);border:1px solid rgba(255,255,255,.16);}
.ymr-zonemap .leaflet-popup-content{color:#fff;font-family:var(--serif);font-size:17px;font-weight:500;}
.ymr-zonemap .leaflet-popup-tip{background:var(--marine);}
.ymr-zonemap .leaflet-popup-close-button{color:rgba(255,255,255,.6)!important;}

/* ===== Carte prestation : texte a gauche, visuel vertical a droite =====
   La colonne image passe en portrait (3/4) : c'est ce qui permet d'y placer
   une image verticale sans qu'elle soit ecrasee. Elle reste recadree, les
   trois visuels du carrousel devant occuper la meme surface. */
.ps-card{grid-template-columns:1fr 42%;}
.ps-media{aspect-ratio:3/4;height:100%;}
.ps-slider{height:100%;min-height:0;}
.ps-intro{padding:46px 46px 46px 48px;}
@media(max-width:900px){
  .ps-card{grid-template-columns:1fr;}
  .ps-media{aspect-ratio:4/3;}
  .ps-intro{padding:26px 24px;}
}

/* ===== Montage : grande image + trois vignettes qui la chevauchent =====
   Positions en pourcentage, relevees sur la maquette (rapport 1.45).
   Le conteneur porte l'aspect-ratio : le montage se met a l'echelle sans
   jamais se disloquer. */
.ymr-montage{position:relative;width:100%;aspect-ratio:1.45;margin:36px 0;}
.ymr-mt{position:absolute;margin:0;overflow:hidden;border-radius:14px;
  box-shadow:0 18px 46px rgba(15,34,54,.22);background:var(--fond3);}
.ymr-mt img{width:100%;height:100%;object-fit:cover;display:block;}
.ymr-mt--main{left:17.7%;top:17.3%;width:66.8%;height:61.5%;z-index:1;}
.ymr-mt--a{left:4.9%;top:34.4%;width:26.5%;height:23.3%;z-index:2;border:4px solid var(--fond);}
.ymr-mt--b{left:65%;top:5.1%;width:32.3%;height:32.1%;z-index:2;border:4px solid var(--fond);}
.ymr-mt--c{left:48.2%;top:69.6%;width:18.1%;height:22.4%;z-index:2;border:4px solid var(--fond);}
html[data-theme="dark"] .ymr-mt--a,
html[data-theme="dark"] .ymr-mt--b,
html[data-theme="dark"] .ymr-mt--c{border-color:var(--fond);}
/* Sous 760px, le chevauchement devient illisible : on empile. */
@media(max-width:760px){
  .ymr-montage{position:static;aspect-ratio:auto;display:grid;
    grid-template-columns:1fr 1fr;gap:12px;}
  .ymr-mt{position:static;width:auto;height:auto;aspect-ratio:4/3;border:none;}
  .ymr-mt--main{grid-column:1 / -1;aspect-ratio:16/10;}
}

/* Le montage doit traverser les colonnes des pages prestations redigees a la
   main, sinon il serait coupe en deux. */
.entry-content .ymr-montage,
.entry-content > p:has(> .ymr-montage){column-span:all;break-inside:avoid;}

/* Correctif : dans le montage, l'image DOIT remplir son cadre.
   .page-presta .page-body .entry-content img = (0,3,1) l'emportait sur
   .ymr-mt img = (0,1,1), rendant sa hauteur naturelle a l'image et laissant
   apparaitre le fond gris du cadre. On repasse devant avec (0,4,1). */
.page-presta .page-body .entry-content .ymr-mt img,
.entry-content .ymr-montage .ymr-mt img,
.ymr-montage .ymr-mt img{
  width:100%;height:100%;max-height:none;object-fit:cover;
  display:block;border-radius:0;box-shadow:none;margin:0;
}

/* Le montage deborde de la colonne de contenu (bridee a 820-960px) pour
   occuper la largeur de la page. Meme technique que la carte de zone. */
.entry-content .ymr-montage{
  width:min(92vw,1320px);max-width:none;
  margin-left:50%;transform:translateX(-50%);
  margin-top:48px;margin-bottom:48px;
}
@media(max-width:760px){
  .entry-content .ymr-montage{width:100%;margin-left:0;transform:none;margin-top:30px;margin-bottom:30px;}
}

/* Montage : largeur reduite (92vw/1320px -> 84vw/1120px). */
.entry-content .ymr-montage{width:min(84vw,1120px);}

/* Montage : sans ombre. */
.ymr-mt{box-shadow:none;}

/* ===== Montage : composition desktop (positionnement absolu) =====
   Chaque vignette mord l'image centrale. Sous 760px on bascule en grille
   empilee : ces regles ne doivent donc PAS s'appliquer en mobile, sinon
   les vignettes conservent leur largeur en % et deviennent minuscules. */
@media(min-width:761px){
  .ymr-mt--main{left:19%;top:17%;width:62%;height:62%;z-index:1;}
  .ymr-mt--a{left:3%;top:31%;width:25%;height:24%;z-index:2;}
  .ymr-mt--b{left:67%;top:6%;width:30%;height:29%;z-index:2;}
  .ymr-mt--c{left:44%;top:69%;width:19%;height:23%;z-index:3;}
  .ymr-mt--d{left:52%;top:6%;width:13%;height:15%;z-index:3;border:4px solid var(--fond);}
}

/* --- Bloc texte SEO (bas de page) ------------------------------------ */
.page-seo{margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(0,0,0,.08);}
.page-seo-inner{max-width:900px;margin:0 auto;font-size:.95rem;line-height:1.75;color:var(--ymr-muted,#5a6772);}
.page-seo-inner h2,.page-seo-inner h3{color:var(--ymr-navy,#12233a);margin:1.4rem 0 .6rem;}
.page-seo-inner p{margin:0 0 1rem;}
[data-theme="dark"] .page-seo{border-top-color:rgba(255,255,255,.12);}
[data-theme="dark"] .page-seo-inner{color:rgba(255,255,255,.72);}
[data-theme="dark"] .page-seo-inner h2,[data-theme="dark"] .page-seo-inner h3{color:#fff;}

/* ===== Page Zones d'intervention : villes en cartes ===== */
.entry-content .ymr-citycards{
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
  width:min(1180px,94vw); margin:30px 50% 40px; transform:translateX(-50%);
  align-items:stretch;
}
.ymr-citycard{
  position:relative; display:flex; flex-direction:column; text-decoration:none;
  background:#fff; border:1px solid var(--ligne); border-radius:var(--radius);
  padding:24px 22px 20px; box-shadow:0 10px 30px rgba(15,34,54,.06);
  transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s, border-color .4s;
}
.ymr-citycard::before{
  content:""; position:absolute; left:0; top:22px; bottom:22px; width:2px;
  background:var(--or); opacity:0; transition:opacity .4s;
}
.ymr-citycard:hover{transform:translateY(-6px); box-shadow:0 20px 44px rgba(15,34,54,.14); border-color:var(--or);}
.ymr-citycard:hover::before{opacity:1;}
.ymr-citycard-name{
  font-family:var(--serif); font-size:22px; font-weight:500; line-height:1.15;
  color:var(--encre); margin:0 0 10px;
}
.ymr-citycard-ports{
  font-size:13px; line-height:1.55; color:var(--gris); flex:1;
  padding-bottom:14px;
}
.ymr-citycard-more{
  align-self:flex-start; font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--or); border-bottom:1px solid var(--or); padding-bottom:3px; transition:.4s;
}
.ymr-citycard:hover .ymr-citycard-more{color:var(--marine); border-color:var(--marine);}
@media(max-width:1024px){
  .entry-content .ymr-citycards{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:860px){
  .entry-content .ymr-citycards{
    grid-template-columns:repeat(2,1fr); width:auto; margin:24px 0 32px; transform:none;
  }
}
@media(max-width:520px){
  .entry-content .ymr-citycards{grid-template-columns:1fr; max-width:440px;}
  .ymr-citycard{padding:20px 18px 18px;}
  .ymr-citycard-name{font-size:20px;}
}

/* ===== Mode application : accueil dedie ===== */
.ymr-appmain{width:min(680px,92vw);margin:0 auto;padding:120px 0 70px;}
.ymr-apphead{text-align:center;margin-bottom:34px;}
.ymr-appkicker{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--or);margin:0 0 12px;}
.ymr-apptitle{font-family:var(--serif);font-size:38px;font-weight:400;line-height:1.1;color:var(--encre);margin:0 0 10px;}
.ymr-appsub{font-size:15px;color:var(--gris);margin:0;}
.ymr-apptiles{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:44px;}
.ymr-apptile{display:flex;align-items:center;gap:14px;text-decoration:none;background:#fff;
  border:1px solid var(--ligne);border-radius:var(--radius);padding:20px 18px;
  box-shadow:0 8px 24px rgba(15,34,54,.06);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .35s;}
.ymr-apptile:hover,.ymr-apptile:active{transform:translateY(-4px);box-shadow:0 18px 38px rgba(15,34,54,.13);border-color:var(--or);}
.ymr-apptile-ico{flex:0 0 42px;height:42px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:rgba(201,162,39,.12);color:var(--or);}
.ymr-apptile-ico svg{width:20px;height:20px;}
.ymr-apptile-txt{display:flex;flex-direction:column;min-width:0;}
.ymr-apptile-title{font-family:var(--serif);font-size:17px;color:var(--encre);line-height:1.2;}
.ymr-apptile-desc{font-size:12px;color:var(--gris);margin-top:3px;line-height:1.35;}
.ymr-apptile--urgent{background:var(--marine);border-color:var(--marine);}
.ymr-apptile--urgent .ymr-apptile-title{color:#fff;}
.ymr-apptile--urgent .ymr-apptile-desc{color:rgba(255,255,255,.72);}
.ymr-apptile--urgent .ymr-apptile-ico{background:rgba(255,255,255,.14);color:var(--or);}
.ymr-applinks{border-top:1px solid var(--ligne);padding-top:30px;}
.ymr-applinks-title{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);
  font-family:var(--display);font-weight:400;margin:0 0 16px;}
.ymr-applinks-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ymr-applinks-grid a{display:block;padding:14px 16px;border:1px solid var(--ligne);border-radius:var(--radius);
  text-decoration:none;color:var(--encre);font-size:14px;transition:border-color .3s,color .3s;}
.ymr-applinks-grid a:hover{border-color:var(--or);color:var(--or);}
.ymr-appfull{text-align:center;margin:28px 0 0;}
.ymr-appfull a{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--or);
  border-bottom:1px solid var(--or);padding-bottom:3px;text-decoration:none;}
@media(max-width:560px){
  .ymr-appmain{padding:105px 0 55px;}
  .ymr-apptitle{font-size:31px;}
  .ymr-apptiles{grid-template-columns:1fr;}
  .ymr-apptile{padding:17px 16px;}
}

/* ===== Cartes prestations : double action ===== */
.presta-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:2px;}
.presta-more{
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:400;
  color:var(--encre);border-bottom:1px solid var(--ligne);padding-bottom:2px;
  transition:color .3s,border-color .3s;
}
.presta-more:hover{color:var(--or);border-color:var(--or);}
.presta-actions .presta-link{border-bottom:1px solid transparent;padding-bottom:2px;transition:border-color .3s;}
.presta-actions .presta-link:hover{border-color:var(--or);}
@media(max-width:420px){
  .presta-actions{flex-direction:column;align-items:flex-start;gap:9px;}
}

/* ===== En-tete sticky : lisibilite renforcee ===== */
/* Le fond gris-bleu clair offrait un contraste insuffisant sur les liens.
   Fond blanc quasi opaque, texte en marine, filet or de separation. */
.site-header.scrolled{
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);
  box-shadow:0 6px 26px rgba(15,34,54,.10);
  border-bottom:1px solid rgba(184,137,58,.28);
}
.site-header.scrolled .nav-menu > li > a{
  color:var(--marine);
  font-weight:300;
  opacity:1;
}
.site-header.scrolled .nav-menu > li > a:hover,
.site-header.scrolled .nav-menu > li.current-menu-item > a,
.site-header.scrolled .nav-menu > li.current_page_item > a{color:var(--or);}
.site-header.scrolled .utility-contact,
.site-header.scrolled .utility-contact a{color:var(--encre2);}
.site-header.scrolled .utility-contact a:hover{color:var(--or);}
.site-header.scrolled .utility-sep{opacity:.28;}
.site-header.scrolled .login-link{color:var(--marine);}
.site-header.scrolled .login-link:hover{color:var(--or);}
.site-header.scrolled .header-lang a{color:var(--gris);}
.site-header.scrolled .header-lang .current-lang a{color:var(--or);}
.site-header.scrolled .theme-toggle{border-color:rgba(15,34,54,.18);color:var(--marine);}
/* Le bouton doré garde son contraste sur fond clair */
.site-header.scrolled .btn-gold{box-shadow:0 4px 14px rgba(184,137,58,.30);}

/* ===== En-tete sticky : logo reduit ===== */
/* Le logo conservait sa taille pleine alors que la barre se resserre,
   il paraissait donc plus grand une fois defile. */
.site-header.scrolled .site-logo-img img{max-height:calc(var(--logo-h,54px) * var(--logo-h-sticky,.74));}
.site-header.scrolled .site-logo .logo-main{font-size:21px;}
.site-header.scrolled .site-logo small{font-size:9px;margin-top:4px;}
@media(max-width:1024px){
  .site-logo-img img,.site-header.scrolled .site-logo-img img{max-height:38px;}
}

/* ===== Page prestations : damier icone / photo ===== */
.pp-mosaic{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
  margin:36px 0 60px;
}
.pp-tile{
  position:relative; display:flex; flex-direction:column; overflow:hidden;
  aspect-ratio:1/.78; border-radius:var(--radius); text-decoration:none;
  transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s;
}
.pp-tile:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(15,34,54,.20);}

/* Carte pleine : marine, icone doree, texte centre */
.pp-tile--solid{
  background:linear-gradient(160deg,var(--marine2) 0%,var(--marine3) 100%);
  align-items:center; justify-content:center; text-align:center;
  padding:30px 26px; box-shadow:0 10px 30px rgba(15,34,54,.10);
}
.pp-tile--solid::after{
  content:""; position:absolute; right:-30px; bottom:-30px; width:150px; height:150px;
  border-radius:50%; border:1px solid rgba(184,137,58,.20); pointer-events:none;
}
.pp-tile-ic{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; margin-bottom:16px; border-radius:50%;
  background:rgba(184,137,58,.14); color:var(--or2);
}
.pp-tile-ic .ymr-ic{width:26px;height:26px;}
.pp-tile--solid .pp-tile-t{
  font-family:var(--serif); font-size:23px; font-weight:500; line-height:1.15;
  color:#fff; margin-bottom:9px;
}
.pp-tile-e{
  font-size:13.5px; line-height:1.55; color:rgba(255,255,255,.72);
  max-width:26ch; margin-bottom:16px;
}
.pp-tile--solid .pp-tile-more{color:var(--or2);}

/* Carte photo : visuel plein cadre, titre en bas */
.pp-tile--photo{background-size:cover;background-position:center;justify-content:flex-end;}
.pp-tile-veil{
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(12,27,44,.86) 0%,rgba(12,27,44,.28) 52%,rgba(12,27,44,.10) 100%);
  transition:background .45s;
}
.pp-tile--photo:hover .pp-tile-veil{background:linear-gradient(to top,rgba(12,27,44,.90) 0%,rgba(12,27,44,.42) 58%,rgba(12,27,44,.18) 100%);}
.pp-tile-in{position:relative;padding:26px 24px;}
.pp-tile--photo .pp-tile-t{
  display:block; font-family:var(--serif); font-size:23px; font-weight:500;
  line-height:1.15; color:#fff; margin-bottom:8px;
}
.pp-tile-more{
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:#fff; transition:color .3s;
}
.pp-tile:hover .pp-tile-more{color:var(--or2);}

@media(max-width:1024px){
  .pp-mosaic{grid-template-columns:repeat(2,1fr);gap:18px;}
}
@media(max-width:620px){
  .pp-mosaic{grid-template-columns:1fr;gap:16px;}
  .pp-tile{aspect-ratio:1/.62;}
  .pp-tile--solid{padding:26px 22px;}
}

/* ===== Damier prestations : correctifs de mise en page ===== */
/* La page prestations affiche son contenu sur deux colonnes limitees a 960px.
   Le damier doit s'en extraire et occuper toute la largeur utile. */
.entry-content .pp-mosaic,
.page-presta .page-body .entry-content .pp-mosaic{
  column-span:all;
  width:min(1240px,94vw);
  max-width:none;
  margin:40px 50% 56px;
  transform:translateX(-50%);
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
/* Aucun soulignement : .entry-content a souligne tous les liens par defaut. */
.entry-content .pp-tile,
.entry-content .pp-tile:hover,
.entry-content .pp-tile *{text-decoration:none;color:inherit;}
.entry-content .pp-tile:hover{color:inherit;}

/* Hauteur pilotee par le contenu : plus rien n'est rogne. */
.pp-tile{aspect-ratio:auto;min-height:290px;}
.pp-tile--solid{padding:34px 26px 30px;justify-content:center;}
.pp-tile--solid .pp-tile-t{margin-bottom:10px;}
.pp-tile-e{margin-bottom:18px;}
.pp-tile--photo{min-height:290px;}
.pp-tile-in{padding:28px 24px 24px;}
/* Le cercle decoratif ne doit pas passer sous l'icone. */
.pp-tile--solid::after{z-index:0;}
.pp-tile-ic,.pp-tile--solid .pp-tile-t,.pp-tile-e,.pp-tile--solid .pp-tile-more{position:relative;z-index:1;}

@media(max-width:1024px){
  .entry-content .pp-mosaic,
  .page-presta .page-body .entry-content .pp-mosaic{
    grid-template-columns:repeat(2,1fr);width:auto;margin:32px 0 44px;transform:none;
  }
}
@media(max-width:620px){
  .entry-content .pp-mosaic,
  .page-presta .page-body .entry-content .pp-mosaic{grid-template-columns:1fr;}
  .pp-tile{min-height:240px;}
}

/* ===== Damier prestations : cartes beige ===== */
/* Fond sable plutot que marine, texte en encre pour le contraste. */
.pp-tile--solid,
.pp-tile--cta{
  background:linear-gradient(158deg,#EADCC6 0%,#E0CFB2 100%);
  box-shadow:0 10px 30px rgba(15,34,54,.07);
  border:1px solid rgba(184,137,58,.18);
}
.pp-tile--solid::after,
.pp-tile--cta::after{
  content:""; position:absolute; right:-30px; bottom:-30px; width:150px; height:150px;
  border-radius:50%; border:1px solid rgba(184,137,58,.28); pointer-events:none; z-index:0;
}
.pp-tile--solid .pp-tile-ic,
.pp-tile--cta .pp-tile-ic{background:rgba(15,34,54,.07);color:#8a6320;}
.pp-tile--solid .pp-tile-t,
.pp-tile--cta .pp-tile-t{color:var(--marine);}
.pp-tile--solid .pp-tile-e,
.pp-tile--cta .pp-tile-e{color:var(--encre2);}
.pp-tile--solid .pp-tile-more,
.pp-tile--cta .pp-tile-more{color:var(--marine);border-bottom:1px solid rgba(184,137,58,.55);padding-bottom:2px;}
.pp-tile--solid:hover .pp-tile-more,
.pp-tile--cta:hover .pp-tile-more{color:#8a6320;border-color:#8a6320;}
.pp-tile--solid:hover,
.pp-tile--cta:hover{border-color:var(--or);box-shadow:0 22px 44px rgba(15,34,54,.14);}
.entry-content .pp-tile--solid .pp-tile-t,
.entry-content .pp-tile--cta .pp-tile-t,
.entry-content .pp-tile--solid .pp-tile-e,
.entry-content .pp-tile--cta .pp-tile-e,
.entry-content .pp-tile--solid .pp-tile-more,
.entry-content .pp-tile--cta .pp-tile-more{color:inherit;}
.entry-content .pp-tile--solid .pp-tile-t,
.entry-content .pp-tile--cta .pp-tile-t{color:var(--marine);}
.entry-content .pp-tile--solid .pp-tile-more,
.entry-content .pp-tile--cta .pp-tile-more{color:var(--marine);}
.entry-content .pp-tile--solid:hover .pp-tile-more,
.entry-content .pp-tile--cta:hover .pp-tile-more{color:#8a6320;}

/* Case d'appel a l'action : liseré doré plus marqué */
.pp-tile--cta{
  align-items:center;justify-content:center;text-align:center;
  padding:34px 26px 30px;border-color:rgba(184,137,58,.38);
}
.pp-tile--cta,.pp-tile--cta *{position:relative;z-index:1;}
.pp-tile--cta::after{z-index:0;}

/* Mode sombre : conserver un fond sable assourdi */
[data-theme="dark"] .pp-tile--solid,
[data-theme="dark"] .pp-tile--cta{
  background:linear-gradient(158deg,#2a2620 0%,#221f19 100%);
  border-color:rgba(184,137,58,.24);
}
[data-theme="dark"] .pp-tile--solid .pp-tile-t,
[data-theme="dark"] .pp-tile--cta .pp-tile-t,
[data-theme="dark"] .entry-content .pp-tile--solid .pp-tile-t,
[data-theme="dark"] .entry-content .pp-tile--cta .pp-tile-t{color:#f4efe6;}
[data-theme="dark"] .pp-tile--solid .pp-tile-e,
[data-theme="dark"] .pp-tile--cta .pp-tile-e{color:rgba(244,239,230,.72);}

/* ===== Cartes photo : lisibilite du texte ===== */
/* Le voile precedent laissait passer le sujet clair de la photo (pont blanc,
   ciel, ecume) juste derriere le titre. Voile plus dense en bas, et bloc de
   texte pose sur son propre fond degrade. */
.pp-tile-veil{
  background:linear-gradient(to top,
    rgba(9,21,35,.94) 0%,
    rgba(9,21,35,.82) 26%,
    rgba(9,21,35,.42) 58%,
    rgba(9,21,35,.12) 100%);
}
.pp-tile--photo:hover .pp-tile-veil{
  background:linear-gradient(to top,
    rgba(9,21,35,.96) 0%,
    rgba(9,21,35,.88) 30%,
    rgba(9,21,35,.55) 62%,
    rgba(9,21,35,.22) 100%);
}
.pp-tile--photo .pp-tile-t,
.entry-content .pp-tile--photo .pp-tile-t{
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.55), 0 0 18px rgba(0,0,0,.35);
}
.pp-tile--photo .pp-tile-more,
.entry-content .pp-tile--photo .pp-tile-more{
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.55);
  border-bottom:1px solid rgba(255,255,255,.45);
  padding-bottom:2px;
}
.pp-tile--photo:hover .pp-tile-more,
.entry-content .pp-tile--photo:hover .pp-tile-more{
  color:var(--or2);border-color:var(--or2);
}

/* ===== Motif d'angle des cartes (Customizer) ===== */
/* Taille pilotee par le Customizer dans tous les cas. */
.pp-tile--solid::after,
.pp-tile--cta::after{
  width:var(--motif-size,150px);
  height:var(--motif-size,150px);
}
/* Image reglee : la classe ymr-has-motif est posee sur <body> par le theme.
   Le cercle trace laisse alors place au visuel. */
.ymr-has-motif .pp-tile--solid::after,
.ymr-has-motif .pp-tile--cta::after{
  border:none;
  opacity:var(--motif-op,.14);
  background-image:var(--motif-img);
  background-size:contain;
  background-position:center;
  background-repeat:no-repeat;
}

/* ===== Abonnements Stripe ===== */
.ymr-abo-btn{margin-top:14px;}
.ymr-abo-portal{margin-top:10px;}
.ymr-abo-warn{
  background:#fff8e8;border:1px solid #f0dcb0;color:#8a6320;
  border-radius:8px;padding:10px 14px;font-size:13.5px;margin:12px 0;
}
.ymr-abo-notice{
  border-radius:12px;padding:14px 18px;margin:0 0 24px;font-size:14.5px;
  border:1px solid var(--ligne);
}
.ymr-abo-notice--ok{background:#eafaf0;border-color:#bfe6cf;color:#1e7a46;}
.ymr-abo-notice--warn{background:#fff8e8;border-color:#f0dcb0;color:#8a6320;}
.ymr-abo-notice--err{background:#fdeded;border-color:#f2c2c2;color:#a12a2a;}

/* ===== Cartes formules : rendu maquette ===== */
.plan-grid{gap:28px;}
.plan-card{
  background:#fdfbf7;
  border:1px solid rgba(184,137,58,.55);
  border-radius:16px;
  text-align:center;
  padding:44px 30px 34px;
  box-shadow:0 10px 34px rgba(15,34,54,.06);
  overflow:visible;
}
.plan-card:hover{box-shadow:0 24px 52px rgba(15,34,54,.14);border-color:var(--or);}
/* Mise en avant : liseré doré plus dense, pas de fond marine. */
.plan-card.is-featured{
  background:#fdfbf7;
  border-color:var(--or);
  box-shadow:0 16px 44px rgba(184,137,58,.16);
}
.plan-card.is-featured .plan-name,
.plan-card.is-featured .plan-tagline{color:var(--encre);}
.plan-card.is-featured .plan-ideal{color:var(--gris);}

/* Pastille d'icone */
.plan-ic{
  width:96px;height:96px;margin:0 auto 26px;
  background:rgba(184,137,58,.09);color:var(--or);
}
.plan-ic .ymr-ic{width:44px;height:44px;}
.plan-card.is-featured .plan-ic{background:rgba(184,137,58,.13);}

/* Titre en petites capitales */
.plan-name{
  font-family:var(--serif);
  font-size:31px;font-weight:500;letter-spacing:.03em;
  font-variant:small-caps;text-transform:lowercase;
  color:var(--encre);margin:0 0 4px;
}
.plan-name::first-letter{text-transform:uppercase;}

/* Ornement : filet, losange, filet */
.plan-orn{
  display:block;position:relative;height:1px;margin:18px auto 22px;
  width:82%;background:linear-gradient(90deg,transparent,var(--or-soft) 12%,var(--or-soft) 88%,transparent);
}
.plan-orn::after{
  content:"";position:absolute;left:50%;top:50%;
  width:9px;height:9px;background:var(--or);
  transform:translate(-50%,-50%) rotate(45deg);
}

.plan-tagline{font-size:17px;line-height:1.5;font-weight:500;color:var(--encre);margin:0 0 16px;}
.plan-ideal{font-size:14px;line-height:1.6;color:var(--gris);margin:0 0 28px;}

/* Badge chevauchant le liseré */
.plan-badge{
  top:-15px;font-size:11.5px;letter-spacing:.16em;padding:7px 22px;
  box-shadow:0 6px 16px rgba(184,137,58,.28);
}

.plan-card .btn{align-self:center;min-width:180px;}

@media(max-width:900px){
  .plan-grid{grid-template-columns:1fr;gap:34px;max-width:440px;margin-left:auto;margin-right:auto;}
  .plan-card{padding:38px 26px 30px;}
  .plan-ic{width:82px;height:82px;margin-bottom:22px;}
  .plan-ic .ymr-ic{width:38px;height:38px;}
  .plan-name{font-size:27px;}
}
.plan-ic-img{width:46px;height:46px;object-fit:contain;display:block;}
@media(max-width:900px){.plan-ic-img{width:40px;height:40px;}}

/* Icone fournie par le Customizer : elle contient son propre disque,
   la pastille doree du theme est donc effacee. */
.plan-ic--img{background:none !important;width:96px;height:96px;}
.plan-ic--img .plan-ic-img{width:100%;height:100%;}
@media(max-width:900px){.plan-ic--img{width:82px;height:82px;}}

/* ===== Page Abonnements : icone des formules ===== */
.ymr-plan-ic{text-align:center;margin:0 0 14px;}
.ymr-plan-ic img{width:96px;height:96px;display:inline-block;object-fit:contain;}
.ymr-plans .ymr-plan h3{text-align:center;}
.ymr-plans .ymr-plan-price{text-align:center;}
@media(max-width:900px){.ymr-plan-ic img{width:82px;height:82px;}}

/* ===== Signature de marque ===== */
.ymr-baseline{
  display:block;
  font-family:var(--sans);
  font-weight:300;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.4;
}
/* En-tete : sous le logo, aligne sur lui.
   Limite au desktop : la barre mobile centre la marque et ne doit pas
   passer en colonne, sous peine de decaler le logo vers la gauche. */
@media(min-width:1025px){
  .site-brand{display:flex;flex-direction:column;align-items:flex-start;}
}
.ymr-baseline--header{
  font-size:9.5px;
  color:var(--or);
  margin-top:5px;
  opacity:.92;
  transition:color .35s,opacity .35s;
}
.site-header.scrolled .ymr-baseline--header{color:var(--or);opacity:1;}
/* Sur le hero, le logo clair impose une signature claire */
.site-header:not(.scrolled) .ymr-baseline--header{color:rgba(255,255,255,.78);}
.site-header:not(.scrolled) .site-logo-img ~ .ymr-baseline--header{color:rgba(255,255,255,.78);}

/* Pied de page : sous le logo, avant l'accroche */
.ymr-baseline--footer{
  font-size:10.5px;
  color:var(--or2);
  margin:12px 0 14px;
}

@media(max-width:1024px){
  .ymr-baseline--header{display:none;}
}
@media(max-width:600px){
  .ymr-baseline--footer{font-size:9.5px;letter-spacing:.13em;}
}

/* ===== En-tete mobile : centrage et taille du logo ===== */
@media(max-width:1024px){
  .site-brand{
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    flex:1 1 auto;
    min-width:0;
  }
  .site-logo-img img,
  .site-header.scrolled .site-logo-img img{max-height:46px;}
}
@media(max-width:600px){
  .site-logo-img img,
  .site-header.scrolled .site-logo-img img{max-height:42px;}
}

/* La signature n'est plus affichee dans l'en-tete : elle est integree au logo. */
.ymr-baseline--header{display:none !important;}

/* ===== Menu mobile : correctif de positionnement ===== */
/* backdrop-filter cree un bloc conteneur pour les descendants en
   position:fixed. Le panneau de navigation se retrouvait alors confine
   dans l'en-tete au lieu de couvrir l'ecran, une fois celui-ci fixe.
   Le flou est donc retire sur mobile, le fond restant opaque. */
@media(max-width:1024px){
  .site-header.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff;}
}
/* Voile d'arriere-plan derriere le panneau ouvert */
@media(max-width:760px){
  body.nav-open::after{
    content:"";position:fixed;inset:0;background:rgba(10,22,36,.55);
    z-index:65;pointer-events:none;
  }
  .site-nav{z-index:70;}
}

/* ===== Panneau de choix d'urgence ===== */
.ymr-urg{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-end;justify-content:center;
  background:rgba(9,21,35,.62);backdrop-filter:blur(3px);padding:0;}
.ymr-urg[hidden]{display:none;}
.ymr-urg-box{position:relative;width:100%;max-width:520px;background:#fff;
  border-radius:20px 20px 0 0;padding:26px 22px 30px;box-shadow:0 -14px 44px rgba(0,0,0,.28);
  animation:ymrUrgUp .32s cubic-bezier(.16,1,.3,1);}
@keyframes ymrUrgUp{from{transform:translateY(24px);opacity:0;}to{transform:none;opacity:1;}}
.ymr-urg-close{position:absolute;top:12px;right:16px;background:none;border:none;
  font-size:28px;line-height:1;color:var(--gris);cursor:pointer;padding:4px 8px;}
.ymr-urg-close:hover{color:var(--encre);}
.ymr-urg-t{font-family:var(--serif);font-size:22px;color:var(--marine);margin:0 0 18px;text-align:center;}
.ymr-urg-opt{display:flex;align-items:center;gap:14px;text-decoration:none;
  border:1px solid var(--ligne);border-radius:14px;padding:16px 16px;margin-bottom:12px;
  transition:border-color .3s,box-shadow .3s,transform .3s;}
.ymr-urg-opt:hover,.ymr-urg-opt:active{border-color:var(--or);box-shadow:0 10px 26px rgba(15,34,54,.10);transform:translateY(-2px);}
.ymr-urg-ic{flex:0 0 44px;height:44px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:rgba(184,137,58,.13);color:var(--or);}
.ymr-urg-ic .ymr-ic{width:21px;height:21px;}
.ymr-urg-txt{display:flex;flex-direction:column;min-width:0;}
.ymr-urg-l{font-family:var(--serif);font-size:17px;color:var(--encre);line-height:1.2;}
.ymr-urg-d{font-size:12.5px;color:var(--gris);margin-top:2px;line-height:1.35;}
.ymr-urg-n{font-size:13px;color:var(--or);margin-top:5px;letter-spacing:.02em;}
@media(min-width:620px){
  .ymr-urg{align-items:center;padding:20px;}
  .ymr-urg-box{border-radius:20px;}
}

/* ===== Liens automatiques vers les pages villes ===== */
.entry-content a.ymr-citylink{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid var(--or-soft);
  transition:color .3s,border-color .3s;
}
.entry-content a.ymr-citylink:hover{color:var(--or);border-color:var(--or);}
.ymr-pay-btn{margin-top:12px;}

/* ===== Souscription Care Plans ===== */
.ymr-sub{margin-top:16px;}
.ymr-sub-box{margin-top:14px;text-align:left;background:#fff;border:1px solid var(--ligne);
  border-radius:12px;padding:18px 18px 14px;box-shadow:0 10px 26px rgba(15,34,54,.08);}
.ymr-sub-box[hidden]{display:none;}
.ymr-sub-t{font-family:var(--serif);font-size:19px;color:var(--marine);margin:0 0 6px;}
.ymr-sub-d{font-size:13px;line-height:1.55;color:var(--gris);margin:0 0 14px;}
.ymr-sub-box p{margin:0 0 11px;}
.ymr-sub-box label{display:block;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--gris);margin-bottom:4px;}
.ymr-sub-box input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:14px;
  border:1px solid var(--ligne);border-radius:8px;transition:border-color .25s;}
.ymr-sub-box input:focus{border-color:var(--or);outline:none;}
.ymr-sub-actions{margin:14px 0 0;}
.ymr-sub-actions .btn{width:100%;}
.ymr-sub-mode{border:1px solid var(--ligne);border-radius:10px;padding:12px 14px 6px;margin:4px 0 12px;}
.ymr-sub-mode legend{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--gris);padding:0 6px;}
.ymr-sub-radio{display:flex;align-items:center;gap:9px;margin:0 0 8px;cursor:pointer;}
.ymr-sub-radio input{width:auto;margin:0;}
.ymr-sub-radio span{font-size:14px;color:var(--encre);text-transform:none;letter-spacing:0;}

/* Accroches plus longues dans le damier : hauteur libre et texte resserre. */
.pp-tile{min-height:320px;}
.pp-tile--solid{padding:30px 24px 26px;}
.pp-tile-e{max-width:34ch;font-size:13px;line-height:1.6;}
@media(max-width:620px){
  .pp-tile{min-height:auto;}
  .pp-tile-e{max-width:none;}
}

/* ===== Pages dediees aux formules Care Plans ===== */
/* Les classes existantes ne s'appliquaient qu'a l'interieur de .ymr-plans,
   les pages formule les utilisent hors de cette grille. */
.page .ymr-plan-lead{
  font-family:var(--display,Marcellus),serif; font-size:clamp(18px,2.2vw,22px);
  line-height:1.5; color:var(--encre); margin:0 0 18px;
}
.page .ymr-plan-price{
  font-family:var(--display,Marcellus),serif; font-size:22px; color:var(--or);
  margin:0 0 26px; padding-bottom:14px; border-bottom:1px solid var(--ligne); line-height:1.3;
}
.page .ymr-plan-price span{
  display:block; font-family:var(--sans,inherit); font-size:13px;
  color:var(--gris); margin-top:3px;
}
.ymr-plan-sub{margin:22px 0 34px;}
/* Le bouton est pousse en pied de carte : les trois cartes etant etirees
   a la meme hauteur, les boutons se retrouvent sur la meme ligne. */
.ymr-plan .ymr-plan-cta{margin:auto 0 0;padding-top:20px;text-align:center;}
.ymr-plan-cta{margin:18px 0 0;text-align:center;}
.ymr-plan-cta .btn{display:inline-block;min-width:180px;}

/* Boutons places dans le contenu editorial : la regle generique
   .entry-content a imposait la couleur or et le soulignement, ce qui
   rendait le libelle du bouton dore invisible sur son propre fond. */
.entry-content a.btn{text-decoration:none;}
.entry-content a.btn-gold{color:#fff;}
.entry-content a.btn-gold:hover{color:var(--or);background:transparent;border-color:var(--or);}
.entry-content a.btn-outline{color:var(--encre);}
.entry-content a.btn-outline:hover{color:var(--or);}

/* Mot « Formule » devant le titre des pages Care Plan. */
.page-hero h1 .h1-pref{color:var(--or2);font-style:italic;font-weight:400;}

/* ===== Page Prestations — variante en sequence numerotee ===== */
/* Bandes pleine largeur : image d'un cote, texte sur sable de l'autre. */
.ps-seq{margin:0 calc(50% - 50vw);width:100vw;max-width:100vw;}
/* Les bandes touchent le bandeau et le pied de page : la marge verticale
   de .page-body creerait sinon deux bandes blanches. */
.page-body:has(.ps-seq){padding:0;}
.page-body:has(.ps-seq) .entry-content{max-width:none;}
.page-body:has(.ps-seq) + .page-cta{margin-top:0;}
/* Un paragraphe reste possible avant les bandes : on le remet dans la
   largeur du site et on lui rend une respiration propre. */
.page-body:has(.ps-seq) .entry-content > p{
  max-width:820px;margin:0 auto;padding:60px 24px;text-align:center;
}
.ps-seq-row{display:grid;grid-template-columns:1fr 1fr;min-height:clamp(420px,52vw,620px);}
.ps-seq-row--rev .ps-seq-media{order:2;}
.ps-seq-row--rev .ps-seq-text{order:1;}
.ps-seq-media{background-size:cover;background-position:center;min-height:320px;}
/* Liseré : pose en ombre interne plutot qu'en bordure, pour que les
   cellules gardent exactement la meme taille et restent jointives. */
.ps-seq-media,
.ps-seq-text{box-shadow:inset 0 0 0 1px rgba(184,137,58,.45);}
.ps-seq-media--empty{
  display:flex;align-items:center;justify-content:center;
  background:var(--fond2);color:var(--gris);
  font-size:12px;letter-spacing:.24em;text-transform:uppercase;
}
/* Sable eclairci : le beige du damier assombrissait trop des bandes de
   cette taille et ecrasait le contraste du texte. */
.ps-seq-text{
  display:flex;align-items:center;
  background:linear-gradient(158deg,#FAF5EC 0%,#F2E9DA 100%);
  padding:clamp(38px,6vw,86px) clamp(24px,5vw,72px);
}
.ps-seq-in{position:relative;max-width:520px;width:100%;}
.ps-seq-num{
  display:block;font-family:var(--serif);font-style:italic;
  font-size:26px;color:var(--or);opacity:.75;margin-bottom:10px;
}
.ps-seq-t{
  margin:0;font-family:var(--display);font-weight:400;
  font-size:clamp(22px,2.4vw,30px);line-height:1.25;
  letter-spacing:.06em;text-transform:uppercase;color:var(--marine);
}
.ps-seq-rule{display:block;width:52px;height:1px;background:var(--or);margin:20px 0 22px;}
.ps-seq-e{margin:0 0 26px;font-size:15.5px;line-height:1.8;color:var(--encre2);}
.ps-seq-more{
  display:inline-block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--marine);text-decoration:none;
  border-bottom:1px solid var(--or);padding-bottom:5px;transition:.3s;
}
.ps-seq-more:hover{color:var(--or);}
.entry-content .ps-seq-more{text-decoration:none;}


@media (max-width:860px){
  .ps-seq-row{grid-template-columns:1fr;}
  .ps-seq-row--rev .ps-seq-media{order:0;}
  .ps-seq-row--rev .ps-seq-text{order:0;}
  .ps-seq-media{min-height:250px;}
}

/* Texte de reference place en tete : le filet passe en dessous et les
   marges s'inversent, sans quoi il decollerait du bandeau. */
.page-seo--haut{margin-top:0;margin-bottom:3rem;padding-top:0;padding-bottom:2rem;border-top:0;border-bottom:1px solid rgba(0,0,0,.08);}
[data-theme="dark"] .page-seo--haut{border-bottom-color:rgba(255,255,255,.12);}

/* Introduction placee en tete de page, hors gabarit prestation. */
.page-intro{margin:0 0 2.4rem;}
.page-intro-inner{max-width:900px;margin:0 auto;}
.page-intro p{font-size:16.5px;line-height:1.85;color:var(--encre2);}
.page-intro p:first-child{margin-top:0;}
.page-body:has(.ps-seq) .page-intro{padding:56px 24px 0;margin-bottom:0;}

/* ===== Images de couverture indexables =====
   Les visuels etaient poses en background-image : invisibles pour Google
   Images et sans texte alternatif. Ils passent en balise img, recadree en
   couverture sur son conteneur, l'aspect reste identique. */
.pp-img,.pp-tile--photo,.presta-img,.ps-seq-media{position:relative;overflow:hidden;}
.ymr-cover{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;display:block;border:0;
}
.pp-tile--photo .pp-tile-veil,
.pp-tile--photo .pp-tile-in{position:relative;z-index:1;}
.ps-seq-media .ymr-cover{position:absolute;}
.ps-seq-media--empty{position:relative;}



/* Lien permanent de reinstallation, iOS uniquement : Safari ne signalant
   pas une desinstallation, l'utilisateur doit garder un acces direct. */
.ymr-install-link{
  position:fixed;left:14px;bottom:14px;z-index:60;
  background:rgba(15,34,54,.88);color:#fff;border:1px solid var(--or-soft);
  border-radius:40px;padding:9px 16px;cursor:pointer;
  font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  backdrop-filter:blur(6px);
}
.ymr-install-link:hover{background:var(--marine);border-color:var(--or);}
@media (min-width:900px){.ymr-install-link{display:none;}}

/* ===== Repli des introductions sur mobile ===== */
@media (max-width:760px){
  .ymr-clamp{
    position:relative;overflow:hidden;
    max-height:11.2em; /* environ sept lignes */
    transition:max-height .35s ease;
  }
  .ymr-clamp::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:3.2em;
    background:linear-gradient(to bottom,rgba(255,255,255,0),var(--fond));
    pointer-events:none;transition:opacity .25s;
  }
  .ymr-clamp.is-open{max-height:none;}
  .ymr-clamp.is-open::after{opacity:0;}
  .ymr-clamp-more{
    display:inline-block;margin:10px 0 4px;padding:0 0 3px;
    background:none;border:0;border-bottom:1px solid var(--or);
    color:var(--marine);cursor:pointer;
    font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  }
  .ymr-clamp-more:hover{color:var(--or);}
  html[data-theme="dark"] .ymr-clamp::after{
    background:linear-gradient(to bottom,rgba(15,34,54,0),var(--fond));
  }
  html[data-theme="dark"] .ymr-clamp-more{color:#fff;}
}

/* Correctif de specificite : .entry-content img (0,2,1) et sa variante
   .page-presta .page-body .entry-content img (0,3,1) l'emportaient sur
   .ymr-cover (0,1,0), rendant a l'image sa hauteur naturelle et ses marges.
   D'ou la bande blanche au-dessus et au-dessous du visuel. */
.page-presta .page-body .entry-content img.ymr-cover,
.page-body .entry-content img.ymr-cover,
.entry-content img.ymr-cover,
img.ymr-cover{
  position:absolute;inset:0;width:100%;height:100%;
  max-height:none;object-fit:cover;object-position:center;
  border-radius:0;margin:0;display:block;
}

/* Case de consentement des formulaires. */
.ymr-consent{
  display:flex;align-items:flex-start;gap:10px;
  margin:6px 0 16px;font-size:13px;line-height:1.6;color:var(--gris);
  cursor:pointer;
}
.ymr-consent input{margin-top:3px;flex:0 0 auto;accent-color:var(--or);}
.ymr-consent a{color:var(--or);text-decoration:underline;text-underline-offset:2px;}
.ymr-consent a:hover{color:var(--marine);}

/* ===== Champs des formulaires natifs =====
   Seul le conteneur etait style : les champs eux-memes gardaient
   l'apparence par defaut du navigateur. On reprend l'habillage deja
   defini pour Contact Form 7, pour un rendu identique. */
.ymr-cform input[type=text],
.ymr-cform input[type=email],
.ymr-cform input[type=tel],
.ymr-cform input[type=url],
.ymr-cform input[type=number],
.ymr-cform select,
.ymr-cform textarea,
.ymr-sub-box input[type=text],
.ymr-sub-box input[type=email],
.ymr-sub-box input[type=tel],
.ymr-sub-box textarea{
  width:100%;font-family:var(--sans);font-size:15px;font-weight:300;color:var(--encre);
  background:var(--fond2);border:1px solid var(--ligne);border-radius:4px;
  padding:13px 15px;transition:.3s;outline:none;
}
.ymr-cform input:focus,
.ymr-cform select:focus,
.ymr-cform textarea:focus,
.ymr-sub-box input:focus,
.ymr-sub-box textarea:focus{
  border-color:var(--or);background:var(--fond);box-shadow:0 0 0 3px var(--or-soft);
}
.ymr-cform textarea{min-height:150px;resize:vertical;}
.ymr-cform input::placeholder,
.ymr-cform textarea::placeholder{color:#9aa6b0;}
.ymr-cform select{appearance:none;background-image:none;}
/* La case de consentement garde sa taille propre. */
.ymr-cform .ymr-consent input[type=checkbox]{width:auto;padding:0;}

html[data-theme="dark"] .ymr-cform input,
html[data-theme="dark"] .ymr-cform select,
html[data-theme="dark"] .ymr-cform textarea{background:var(--fond3);color:var(--encre);}

/* ===== Fenetre de confirmation apres envoi d'un formulaire =====
   Classe distincte de .ymr-modal, deja utilisee par la fenetre de
   connexion : le style commun la rendait visible en permanence.
   Le message sous le bouton passait inapercu lorsque la page revenait en
   haut : il est repris dans une fenetre modale, fermable au clic, a la
   touche Echap ou apres huit secondes. */
.ymr-flash{
  position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(15,34,54,.62);backdrop-filter:blur(3px);
  opacity:0;animation:ymrFlashIn .3s ease forwards;
}
.ymr-flash-box{
  position:relative;max-width:460px;width:100%;background:var(--fond);
  border:1px solid var(--ligne);border-radius:10px;padding:38px 34px 32px;
  text-align:center;box-shadow:0 30px 80px rgba(15,34,54,.28);
  transform:translateY(14px);animation:ymrFlashUp .35s ease forwards;
}
.ymr-flash-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;margin-bottom:18px;
  background:rgba(184,137,58,.12);color:var(--or);font-size:26px;line-height:1;
}
.ymr-flash--err .ymr-flash-mark{background:rgba(193,57,43,.10);color:#c0392b;}
.ymr-flash-t{
  margin:0 0 10px;font-family:var(--display);font-weight:400;
  font-size:21px;line-height:1.3;color:var(--marine);
}
.ymr-flash-p{margin:0;font-size:15px;line-height:1.7;color:var(--encre2);}
.ymr-flash-close{
  position:absolute;top:10px;right:12px;width:32px;height:32px;
  background:none;border:0;cursor:pointer;color:var(--gris);font-size:22px;line-height:1;
}
.ymr-flash-close:hover{color:var(--marine);}
.ymr-flash-btn{margin-top:22px;}
@keyframes ymrFlashIn{to{opacity:1;}}
@keyframes ymrFlashUp{to{transform:translateY(0);}}
@media (max-width:520px){.ymr-flash-box{padding:32px 22px 26px;}}

/* Carrousel des autres prestations, place sous une page de prestation :
   il sort de la colonne de lecture pour reprendre la pleine largeur. */
.presta-single .prestations{margin-top:46px;}
.page-presta .page-body .entry-content .prestations{max-width:none;}
/* Carrousel insere dans le contenu d'une page : il reprend la pleine
   largeur de la zone de lecture. */
.entry-content .prestations{max-width:none;margin-top:10px;}


/* 2.70.3 - Lien Connexion / Inscription du bandeau superieur en mode sombre :
   la couleur marine fixee au defilement le rendait invisible sur fond sombre. */
html[data-theme="dark"] .site-header.scrolled .login-link{color:var(--encre);}
html[data-theme="dark"] .site-header.scrolled .login-link:hover{color:var(--or2);}

/* 2.70.4 - overflow-x:hidden sur html et body faisait de body un conteneur
   de defilement : tout element position:sticky de la page (menu de l'espace
   client) cessait de coller. clip coupe le debordement horizontal de la meme
   facon, sans creer de conteneur de defilement. Les navigateurs anciens
   gardent hidden. */
@supports (overflow-x:clip){
  html,body{overflow-x:clip;}
}
