/* Ker Coast Escapades — intégration publique */
:root{
  --kce-deep:#073c32;
  --kce-deep-2:#0b594a;
  --kce-mint:#83e1c7;
  --kce-mint-soft:#d9f7ee;
  --kce-cream:#f7f3eb;
  --kce-surface:#ffffff;
  --kce-ink:#173a31;
  --kce-muted:#5f746d;
  --kce-line:#d5e5df;
  --kce-copper:#cb754d;
  --kce-copper-dark:#a95436;
  --kce-shadow:0 22px 55px rgba(6,55,47,.12);
}

/* Accueil : une gamme distincte des séjours sur mesure. */
.kc-escapade-home{
  background:#edf8f3;
  padding:92px 0;
}
.kc-escapade-home-card{
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);
  min-height:520px;
  overflow:hidden;
  border:1px solid #bddfd4;
  border-radius:24px;
  background:var(--kce-deep);
  box-shadow:var(--kce-shadow);
}
.kc-escapade-home-media{
  position:relative;
  min-height:480px;
  margin:0;
}
.kc-escapade-home-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 64%;
}
.kc-escapade-home-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(7,60,50,.02) 50%,rgba(7,60,50,.88) 100%);
}
.kc-escapade-home-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:54px clamp(28px,4.2vw,62px);
  color:#fff;
}
.kc-escapade-home-copy .eyebrow{color:#a8ead7}
.kc-escapade-home-copy h2{
  margin:0;
  color:var(--kce-mint);
  font-size:clamp(2.45rem,4.5vw,4.35rem);
  line-height:1;
  letter-spacing:-.035em;
}
.kc-escapade-home-copy>p:not(.eyebrow){
  margin:22px 0 0;
  color:#d6e7e1;
  line-height:1.7;
}
.kc-escapade-home-facts{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:25px 0 0;
}
.kc-escapade-home-facts span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  color:#dff1eb;
  font-size:.76rem;
  font-weight:800;
}
.kc-escapade-home-price{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin-top:24px;
}
.kc-escapade-home-price strong{
  color:var(--kce-mint);
  font-family:Georgia,"Times New Roman",serif;
  font-size:2.05rem;
}
.kc-escapade-home-price span{color:#bfd4cd;font-size:.78rem}
.kc-escapade-home-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:17px;
  margin-top:25px;
}
.kc-escapade-home-actions a:last-child{
  color:#dff2ec;
  font-size:.82rem;
  font-weight:800;
  text-underline-offset:4px;
}

/* Page Escapade. Tous les composants sont préfixés pour éviter les collisions. */
.kce-page main{overflow:hidden;background:var(--kce-cream)}
.kce-shell{width:min(1120px,calc(100% - 42px));margin-inline:auto}
.kce-breadcrumb{
  background:#eef8f4;
  border-bottom:1px solid var(--kce-line);
}
.kce-breadcrumb .kce-shell{
  padding-block:13px;
  color:#61776f;
  font-size:.78rem;
}
.kce-breadcrumb a{text-decoration:none}
.kce-hero{
  position:relative;
  min-height:690px;
  display:flex;
  align-items:center;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(4,44,38,.94) 0%,rgba(5,52,44,.82) 46%,rgba(4,41,35,.25) 75%,rgba(4,41,35,.1) 100%),
    url('/assets/images/itineraires/bretagne-sud-7-jours/quiberon-cote-sauvage-hero.webp') center 62%/cover no-repeat;
}
.kce-hero-content{position:relative;max-width:790px;padding:78px 0}
.kce-kicker{
  margin:0 0 16px;
  color:#9be7d1;
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.kce-hero h1{
  max-width:780px;
  margin:0;
  color:#dff7ef;
  font-size:clamp(3.6rem,6.6vw,6.55rem);
  line-height:.93;
  letter-spacing:-.05em;
}
.kce-hero-lead{
  max-width:660px;
  margin:25px 0 0;
  color:#e2f0eb;
  font-size:1.08rem;
  line-height:1.72;
}
.kce-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.kce-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 22px;
  border:1px solid transparent;
  border-radius:999px;
  text-decoration:none;
  font-weight:900;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.kce-button:hover{transform:translateY(-1px)}
.kce-button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.kce-button--copper{background:var(--kce-copper);color:#fff}
.kce-button--copper:hover{background:var(--kce-copper-dark)}
.kce-button--ghost{border-color:rgba(255,255,255,.42);color:#fff;background:rgba(6,55,47,.24)}
.kce-status{
  display:flex;
  flex-wrap:wrap;
  gap:9px 18px;
  margin-top:19px;
  color:#cae0d9;
  font-size:.78rem;
  font-weight:800;
}
.kce-status span{position:relative;padding-left:14px}
.kce-status span::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--kce-mint);
}
.kce-strip{background:var(--kce-deep);color:#fff;border-top:1px solid rgba(255,255,255,.11)}
.kce-strip-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.kce-strip-item{padding:25px 22px;border-right:1px solid rgba(255,255,255,.13)}
.kce-strip-item:last-child{border-right:0}
.kce-strip-item strong{display:block;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:1.18rem}
.kce-strip-item span{display:block;margin-top:4px;color:#bcd1ca;font-size:.72rem;line-height:1.45}
.kce-section{padding:88px 0}
.kce-section--light{background:#fbf8f1}
.kce-section--white{background:#fff}
.kce-section--mint{background:#eef8f4}
.kce-section--deep{background:var(--kce-deep);color:#fff}
.kce-section .kce-kicker{color:#187e69}
.kce-section--deep .kce-kicker{color:#9be7d1}
.kce-section h2{
  max-width:920px;
  margin:0;
  color:var(--kce-deep);
  font-size:clamp(2.45rem,4.8vw,4.55rem);
  line-height:1.02;
  letter-spacing:-.04em;
}
.kce-section--deep h2{color:var(--kce-mint)}
.kce-intro{max-width:760px;margin:22px 0 0;color:var(--kce-muted);font-size:1.02rem;line-height:1.76}
.kce-section--deep .kce-intro{color:#c8ddd6}
.kce-proof-grid{
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
  gap:58px;
  align-items:center;
  margin-top:42px;
}
.kce-photo-card{margin:0;overflow:hidden;border-radius:22px;background:#dce7e2;box-shadow:var(--kce-shadow)}
.kce-photo-card img{display:block;width:100%;height:520px;object-fit:cover}
.kce-photo-card figcaption{padding:13px 16px;color:#61766f;background:#fff;font-size:.77rem;line-height:1.5}
.kce-proof-list{display:grid;gap:12px}
.kce-proof-item{
  border:1px solid var(--kce-line);
  border-radius:18px;
  padding:21px 22px;
  background:#fff;
}
.kce-proof-item small{display:block;color:#21826e;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.kce-proof-item h3{margin:8px 0 6px;color:var(--kce-deep);font-size:1.35rem}
.kce-proof-item p{margin:0;color:var(--kce-muted);line-height:1.62}
.kce-route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:40px}
.kce-route-card{
  position:relative;
  min-height:430px;
  overflow:hidden;
  border-radius:20px;
  background:#173a31;
}
.kce-route-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.kce-route-card--friday img{object-position:center 58%}
.kce-route-card--saturday img{object-position:center 58%}
.kce-route-card--sunday img{object-position:center 48%}
.kce-route-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,39,33,.9),rgba(3,42,35,.08) 68%)}
.kce-route-copy{position:absolute;z-index:1;left:23px;right:23px;bottom:23px;color:#fff}
.kce-route-copy small{color:#a7ead7;font-size:.7rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.kce-route-copy h3{margin:8px 0 7px;color:#fff;font-size:1.6rem}
.kce-route-copy p{margin:0;color:#d8e9e3;font-size:.88rem;line-height:1.55}
.kce-preview-grid{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);
  gap:34px;
  align-items:start;
  margin-top:40px;
}
.kce-preview-card{
  border:1px solid var(--kce-line);
  border-radius:22px;
  padding:30px;
  background:#fff;
  box-shadow:0 14px 36px rgba(7,60,50,.07);
}
.kce-preview-card h3{margin:0 0 9px;color:var(--kce-deep);font-size:1.8rem}
.kce-preview-card>p{color:var(--kce-muted);line-height:1.68}
.kce-timeline{margin-top:25px}
.kce-timeline-row{display:grid;grid-template-columns:62px 1fr;gap:16px;padding:17px 0;border-top:1px solid var(--kce-line)}
.kce-timeline-row time{color:#19826b;font-weight:900;font-size:.82rem}
.kce-timeline-row strong{display:block;color:var(--kce-deep)}
.kce-timeline-row span{display:block;margin-top:4px;color:var(--kce-muted);font-size:.86rem;line-height:1.5}
.kce-notice{margin-top:17px;border-left:4px solid #1b816d;border-radius:13px;background:#eaf8f3;padding:18px 19px;color:#496d62}
.kce-notice strong{display:block;color:var(--kce-deep);margin-bottom:4px}
.kce-notice p{margin:0;line-height:1.58}
.kce-phone{
  width:min(100%,360px);
  justify-self:center;
  padding:11px;
  border-radius:39px;
  background:#101915;
  box-shadow:0 30px 65px rgba(4,44,37,.23);
}
.kce-phone-screen{overflow:hidden;min-height:590px;border-radius:30px;background:#f9fcfa;color:var(--kce-ink)}
.kce-phone-image{height:190px;background:url('/assets/images/itineraires/bretagne-sud-7-jours/quiberon-cote-rochers.webp') center 60%/cover no-repeat}
.kce-phone-content{padding:23px 20px}
.kce-phone-content small{color:#1b816d;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.11em}
.kce-phone-content h3{margin:8px 0 19px;color:var(--kce-deep);font-size:1.65rem}
.kce-phone-stop{display:grid;grid-template-columns:50px 1fr;gap:9px;padding:13px 0;border-top:1px solid var(--kce-line)}
.kce-phone-stop time{color:#16826b;font-size:.75rem;font-weight:900}
.kce-phone-stop strong{display:block;font-size:.82rem}
.kce-phone-stop span{display:block;margin-top:2px;color:#71827c;font-size:.7rem}
.kce-offer{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(310px,.82fr);
  gap:48px;
  align-items:start;
}
.kce-inclusions{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:31px 0 0;padding:0;list-style:none}
.kce-inclusions li{
  position:relative;
  min-height:52px;
  padding:14px 14px 14px 42px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:13px;
  color:#dcebe6;
  font-size:.86rem;
}
.kce-inclusions li::before{
  content:"✓";
  position:absolute;
  left:15px;
  color:var(--kce-mint);
  font-weight:900;
}
.kce-price-card{
  position:sticky;
  top:96px;
  border-radius:22px;
  padding:30px;
  background:#f8f4ec;
  color:var(--kce-ink);
  box-shadow:0 20px 55px rgba(0,20,17,.24);
}
.kce-price-badge{display:inline-flex;padding:7px 11px;border-radius:999px;background:var(--kce-mint-soft);color:#116b59;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em}
.kce-price{margin-top:18px;color:var(--kce-deep);font-family:Georgia,"Times New Roman",serif;font-size:3.7rem;line-height:1}
.kce-price sup{font-size:1.38rem}
.kce-price-caption{display:block;margin-top:8px;color:#6a7b75;font-size:.78rem;font-weight:800}
.kce-price-note{margin:19px 0;color:#60736c;line-height:1.62;font-size:.9rem}
.kce-price-card .kce-button{width:100%}
.kce-microcopy{margin:12px 0 0;color:#74847f;font-size:.72rem;line-height:1.48;text-align:center}
.kce-custom-link{display:block;margin-top:20px;padding-top:18px;border-top:1px solid #ddd7cb;color:#0a6655;font-size:.84rem;line-height:1.55;text-align:center;text-underline-offset:3px}
.kce-faq-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:56px;align-items:start;margin-top:34px}
.kce-faq-intro{position:sticky;top:100px}
.kce-faq-intro p{color:var(--kce-muted);line-height:1.65}
.kce-faq details{padding:18px 0;border-top:1px solid var(--kce-line)}
.kce-faq details:last-child{border-bottom:1px solid var(--kce-line)}
.kce-faq summary{cursor:pointer;color:var(--kce-deep);font-family:Georgia,"Times New Roman",serif;font-size:1.15rem;font-weight:700}
.kce-faq details p{margin:11px 0 0;color:var(--kce-muted);line-height:1.66}
.kce-final{
  display:grid;
  grid-template-columns:1fr auto;
  gap:35px;
  align-items:center;
  border:1px solid #bbe0d4;
  border-radius:23px;
  padding:34px 36px;
  background:linear-gradient(110deg,#e8faf3,#fff);
}
.kce-final h2{font-size:clamp(2.1rem,4vw,3.5rem)}
.kce-final p{margin:12px 0 0;color:var(--kce-muted);line-height:1.65}
.kce-final .kce-button{white-space:nowrap}

:root[data-theme="dark"] .kc-escapade-home,
:root[data-theme="dark"] .kce-page main,
:root[data-theme="dark"] .kce-section--light,
:root[data-theme="dark"] .kce-section--mint{background:#17231f}
:root[data-theme="dark"] .kce-section--white,
:root[data-theme="dark"] .kce-breadcrumb{background:#101b17}
:root[data-theme="dark"] .kc-escapade-home-card{border-color:#34574c;background:#052e27}
:root[data-theme="dark"] .kce-breadcrumb{border-color:#34483f}
:root[data-theme="dark"] .kce-breadcrumb .kce-shell,
:root[data-theme="dark"] .kce-intro,
:root[data-theme="dark"] .kce-faq-intro p,
:root[data-theme="dark"] .kce-faq details p{color:#a8b9b2}
:root[data-theme="dark"] .kce-section h2,
:root[data-theme="dark"] .kce-proof-item h3,
:root[data-theme="dark"] .kce-preview-card h3,
:root[data-theme="dark"] .kce-timeline-row strong,
:root[data-theme="dark"] .kce-faq summary{color:#e8f0ed}
:root[data-theme="dark"] .kce-photo-card figcaption,
:root[data-theme="dark"] .kce-proof-item,
:root[data-theme="dark"] .kce-preview-card{background:#101c18;border-color:#34483f;color:#e1ebe7}
:root[data-theme="dark"] .kce-proof-item p,
:root[data-theme="dark"] .kce-preview-card>p,
:root[data-theme="dark"] .kce-timeline-row span{color:#a7b7b1}
:root[data-theme="dark"] .kce-photo-card{background:#101c18}
:root[data-theme="dark"] .kce-timeline-row,
:root[data-theme="dark"] .kce-faq details{border-color:#34483f}
:root[data-theme="dark"] .kce-notice{background:#153028;color:#bdd3cb}
:root[data-theme="dark"] .kce-notice strong{color:#9de6d1}
:root[data-theme="dark"] .kce-phone-screen{background:#101c18;color:#e2ece8}
:root[data-theme="dark"] .kce-phone-content h3{color:#e8f0ed}
:root[data-theme="dark"] .kce-phone-stop{border-color:#34483f}
:root[data-theme="dark"] .kce-price-card{background:#111e19;color:#e1ebe7}
:root[data-theme="dark"] .kce-price{color:#9de6d1}
:root[data-theme="dark"] .kce-price-note,
:root[data-theme="dark"] .kce-price-caption,
:root[data-theme="dark"] .kce-microcopy{color:#a8b9b2}
:root[data-theme="dark"] .kce-custom-link{border-color:#34483f;color:#9de6d1}
:root[data-theme="dark"] .kce-final{background:linear-gradient(110deg,#143027,#101c18);border-color:#396556}
:root[data-theme="dark"] .kce-final p{color:#a8b9b2}

@media(max-width:980px){
  .kc-escapade-home-card,
  .kce-proof-grid,
  .kce-preview-grid,
  .kce-offer,
  .kce-faq-grid,
  .kce-final{grid-template-columns:1fr}
  .kc-escapade-home-media{min-height:410px}
  .kc-escapade-home-media::after{background:linear-gradient(0deg,rgba(7,60,50,.9),rgba(7,60,50,.02) 56%)}
  .kce-route-grid{grid-template-columns:1fr;max-width:650px}
  .kce-route-card{min-height:390px}
  .kce-phone{margin-top:10px}
  .kce-price-card,.kce-faq-intro{position:static}
  .kce-final .kce-button{justify-self:start}
}

/* Le lien Escapades rend la navigation plus dense : basculer plus tôt sur le menu. */
@media(max-width:940px) and (min-width:721px){
  .kc-home-with-escapade .site-header,
  .kce-page .site-header{padding-inline:22px}
  .kc-home-with-escapade .desktop-nav,
  .kce-page .desktop-nav{
    display:none;
    position:absolute;
    top:72px;
    left:0;
    right:0;
    padding:18px 24px 24px;
    flex-direction:column;
    align-items:flex-start;
    background:var(--kce-deep);
    box-shadow:0 18px 32px rgba(0,25,21,.24);
  }
  .kc-home-with-escapade .desktop-nav.open,
  .kce-page .desktop-nav.open{display:flex}
  .kc-home-with-escapade .desktop-nav .nav-cta,
  .kce-page .desktop-nav .nav-cta{display:inline-flex}
  .kc-home-with-escapade .menu-toggle,
  .kce-page .menu-toggle{display:block}
  .kc-home-with-escapade .footer-top,
  .kce-page .footer-top{display:block}
  .kc-home-with-escapade .footer-links,
  .kce-page .footer-links{flex-wrap:wrap;margin-top:18px}
}

@media(max-width:720px){
  .kc-escapade-home{padding:67px 0}
  .kc-escapade-home-card{border-radius:18px}
  .kc-escapade-home-media{min-height:300px}
  .kc-escapade-home-copy{padding:34px 24px 39px}
  .kc-escapade-home-copy h2{font-size:clamp(2.4rem,11vw,3.25rem)}
  .kc-escapade-home-actions{align-items:stretch;flex-direction:column}
  .kc-escapade-home-actions .kce-button{width:100%}
  .kce-shell{width:min(100% - 30px,1120px)}
  .kce-hero{
    min-height:720px;
    align-items:flex-end;
    background:
      linear-gradient(0deg,rgba(4,43,36,.96) 0%,rgba(5,49,41,.72) 54%,rgba(3,34,29,.12) 100%),
      url('/assets/images/itineraires/bretagne-sud-7-jours/quiberon-cote-sauvage-mobile.webp') center 48%/cover no-repeat;
  }
  .kce-hero-content{padding:260px 0 52px}
  .kce-hero h1{font-size:clamp(3rem,13vw,4.4rem)}
  .kce-actions{flex-direction:column;align-items:stretch}
  .kce-button{width:100%}
  .kce-status{display:grid;gap:7px}
  .kce-strip-grid{grid-template-columns:1fr 1fr}
  .kce-strip-item{border-bottom:1px solid rgba(255,255,255,.13)}
  .kce-strip-item:nth-child(even){border-right:0}
  .kce-strip-item:nth-child(n+3){border-bottom:0}
  .kce-section{padding:66px 0}
  .kce-section h2{font-size:clamp(2.35rem,11vw,3.35rem)}
  .kce-proof-grid{gap:32px;margin-top:32px}
  .kce-photo-card img{height:340px}
  .kce-proof-item{padding:19px}
  .kce-route-grid{margin-top:30px}
  .kce-route-card{min-height:340px}
  .kce-preview-card{padding:23px 20px}
  .kce-timeline-row{grid-template-columns:53px 1fr;gap:10px}
  .kce-phone{width:min(100%,330px)}
  .kce-inclusions{grid-template-columns:1fr}
  .kce-price-card{padding:25px 22px}
  .kce-final{padding:28px 23px}
}

@media(prefers-reduced-motion:reduce){
  .kce-button{transition:none}
}
