:root{--navy:#0a2340;--blue:#174b73;--gold:#b9873a;--cream:#f7f3ec;--white:#fff;--text:#172433;--muted:#6c7885;--line:#dfe4e8;--shadow:0 20px 60px rgba(10,35,64,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--text);background:#fff;line-height:1.65}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}.skip{position:fixed;left:12px;top:-60px;background:#fff;padding:10px 14px;z-index:999}.skip:focus{top:12px}.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(10,35,64,.08)}.nav{height:88px;display:flex;align-items:center;justify-content:space-between}.brand img{width:68px;height:68px;object-fit:cover;border-radius:50%;background:#fff;box-shadow:0 8px 24px rgba(10,35,64,.16)}.links{display:flex;align-items:center;gap:28px;font-size:.95rem;font-weight:600}.links a{position:relative}.links a:not(.nav-cta):after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--gold);transition:.25s}.links a:hover:after{right:0}.nav-cta{background:var(--navy);color:#fff;padding:11px 19px;border-radius:999px}.menu{display:none;border:0;background:none}.hero{min-height:760px;display:grid;grid-template-columns:46% 54%;background:var(--cream)}.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:70px clamp(28px,6vw,110px);align-items:flex-start}.hero-logo{width:min(260px,65%);aspect-ratio:1/1;object-fit:cover;border-radius:50%;background:#fff;box-shadow:0 18px 50px rgba(10,35,64,.16);margin-bottom:26px}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.19em;font-size:.74rem;font-weight:700;color:var(--gold);margin:0 0 14px}.hero h1,.section h2{font-family:'Playfair Display',serif;color:var(--navy);line-height:1.06;margin:0}.hero h1{font-size:clamp(3rem,6vw,6.2rem)}.hero h1 em{font-weight:600;color:var(--gold)}.hero-text{font-size:1.12rem;max-width:620px;margin:25px 0 30px;color:#44515d}.hero-photo{min-height:760px}.hero-photo img{width:100%;height:100%;object-fit:cover}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:999px;font-weight:700;border:1px solid transparent;cursor:pointer}.gold{background:var(--gold);color:#fff}.navy{background:var(--navy);color:#fff}.outline{border-color:rgba(255,255,255,.6);color:#fff}.intro-strip{background:var(--navy);color:#fff}.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);padding:28px 0}.intro-grid div{padding:0 35px;border-right:1px solid rgba(255,255,255,.16)}.intro-grid div:last-child{border:0}.intro-grid b,.intro-grid span{display:block}.intro-grid span{opacity:.7;font-size:.9rem}.section{padding:110px 0}.two-col{display:grid;grid-template-columns:1.08fr .92fr;gap:80px;align-items:center}.photo-block img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;box-shadow:var(--shadow)}.copy-block h2,.heading h2{font-size:clamp(2.3rem,4vw,4.2rem)}.lead{font-size:1.22rem;color:#43505c}.text-link{display:inline-block;margin-top:14px;color:var(--navy);font-weight:700}.routes{background:#f8fafb}.heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:45px}.heading>p{max-width:520px;color:var(--muted)}.route-list{display:grid;gap:35px}.route-list article{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.route-list article:nth-child(even){grid-template-columns:.9fr 1.1fr}.route-list article:nth-child(even) img{order:2}.route-list img{width:100%;height:360px;object-fit:cover}.route-list article div{padding:45px}.route-list span{color:var(--gold);font-weight:700}.route-list h3{font-family:'Playfair Display',serif;font-size:2.1rem;color:var(--navy);margin:8px 0}.price{background:var(--navy);color:#fff}.price h2{color:#fff;font-size:clamp(3rem,6vw,5.8rem)}.price h2 small{font-size:1.2rem;font-family:'DM Sans',sans-serif}.price-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.price-inner>div:first-child{max-width:700px}.price-actions{display:flex;gap:12px;flex-wrap:wrap}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.gallery-item{margin:0;display:none}.gallery-item:nth-child(-n+12){display:block}.gallery.expanded .gallery-item{display:block}.gallery-open{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;overflow:hidden;border-radius:6px}.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .35s}.gallery-open:hover img{transform:scale(1.035)}.gallery-controls{text-align:center;margin-top:32px}.practical{background:var(--cream)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.info-card{background:#fff;padding:38px;border-radius:8px;border:1px solid var(--line);transition:.25s}.info-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.info-card small{color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.12em}.info-card h3{font-family:'Playfair Display',serif;color:var(--navy);font-size:2rem;margin:8px 0}.contact{background:var(--blue);color:#fff}.contact-inner{display:grid;grid-template-columns:260px 1fr;gap:70px;align-items:center}.contact-inner img{width:260px;border-radius:50%}.contact h2{color:#fff;font-size:clamp(2.4rem,5vw,4.8rem)}footer{background:#07182b;color:#dce5ec}.footer{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:25px}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:100;display:none;align-items:center;justify-content:center}.lightbox.open{display:flex}.lightbox img{max-width:88vw;max-height:84vh;object-fit:contain}.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;width:48px;height:48px;border-radius:50%;font-size:2rem}.lightbox-close{top:22px;right:22px}.lightbox-prev{left:22px}.lightbox-next{right:22px}.lightbox-count{position:absolute;bottom:22px;color:#fff}.reveal{opacity:0;transform:translateY(24px);transition:.65s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.nav{height:72px}.brand img{width:54px;height:54px}.menu{display:flex;flex-direction:column;gap:4px;padding:8px}.menu span{width:24px;height:2px;background:var(--navy)}.menu b{display:none}.links{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;padding:24px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.links.open{display:flex}.hero{grid-template-columns:1fr}.hero-copy{padding:55px 24px}.hero-photo{min-height:430px}.intro-grid{grid-template-columns:1fr}.intro-grid div{padding:18px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}.two-col,.contact-inner{grid-template-columns:1fr;gap:35px}.route-list article,.route-list article:nth-child(even){grid-template-columns:1fr}.route-list article:nth-child(even) img{order:0}.heading,.price-inner{align-items:flex-start;flex-direction:column}.gallery{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr}.contact-inner img{width:190px}.section{padding:75px 0}}@media(max-width:560px){.wrap{width:min(100% - 28px,1180px)}.hero-logo{width:190px}.hero h1{font-size:3rem}.hero-photo{min-height:360px}.route-list img{height:260px}.route-list article div{padding:28px}.gallery{gap:8px}.footer{padding:24px 0;flex-direction:column;align-items:flex-start}.lightbox-prev{left:8px}.lightbox-next{right:8px}}


/* ===== Page créneaux de sortie ===== */
.schedule-page{background:#f5f8fc}
.schedule-hero{background:linear-gradient(135deg,#071e39 0%,#0b3563 100%);color:#fff;padding:150px 0 72px}
.schedule-hero-inner{max-width:880px}
.schedule-hero h1{font-family:"Playfair Display",serif;font-size:clamp(2.5rem,6vw,5.4rem);line-height:1;margin:.15em 0 .25em}
.schedule-hero p{font-size:1.08rem;line-height:1.75;max-width:760px;color:rgba(255,255,255,.87)}
.schedule-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.schedule-content{padding-top:54px}
.schedule-toolbar{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}
.schedule-toolbar p{margin:.4rem 0 0;color:#58708c}
.schedule-month{display:inline-block;font-size:clamp(1.7rem,4vw,3rem);font-weight:800;color:#0a3474;letter-spacing:.03em}
.schedule-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 24px}
.schedule-legend>div{display:grid;grid-template-columns:22px auto 1fr;align-items:center;gap:8px;background:#fff;border:1px solid #dbe6f2;border-radius:14px;padding:14px 16px;box-shadow:0 8px 26px rgba(7,30,57,.06)}
.legend-swatch{width:22px;height:22px;border-radius:5px;border:1px solid rgba(7,30,57,.22)}
.legend-swatch.sky{background:#87ceeb}.legend-swatch.green{background:#8ed858}.legend-swatch.white{background:#fff}
.schedule-card{background:#fff;border:1px solid #d9e4f1;border-radius:22px;padding:14px;box-shadow:0 18px 55px rgba(7,30,57,.11);overflow:hidden}
.schedule-card img{display:block;width:100%;height:auto;border-radius:12px}
.schedule-note{max-width:900px;margin:42px auto 0;text-align:center}
.schedule-note h2{font-family:"Playfair Display",serif;font-size:clamp(1.8rem,4vw,2.8rem);color:#0a2340}
.schedule-note p{line-height:1.75;color:#4b6078}
.schedule-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,11,28,.94);display:none;padding:56px 12px 20px;overflow:auto}
.schedule-lightbox.open{display:block}
.schedule-lightbox-inner{max-width:1180px;margin:0 auto}
.schedule-lightbox img{width:100%;height:auto;display:block;background:#fff;border-radius:14px}
.schedule-close{position:fixed;top:12px;right:18px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:#0a2340;font-size:32px;line-height:1;cursor:pointer;z-index:10000}
.links a.active{color:#c9912f}
.featured-slot{border-color:#d4ad5e!important;background:linear-gradient(180deg,#fffdf8,#fff)!important}
@media(max-width:760px){
  .schedule-hero{padding:120px 0 48px}
  .schedule-toolbar{align-items:stretch;flex-direction:column}
  .schedule-toolbar .btn{width:100%;text-align:center}
  .schedule-legend{grid-template-columns:1fr}
  .schedule-card{padding:7px;border-radius:14px}
  .schedule-card img{border-radius:8px}
  .schedule-content{padding-top:34px}
}


/* ===== V27 : tarifs + contenu SEO ===== */
.pricing-v27{background:#f7f4ed}
.pricing-v27 .section-head,.discover-v27 .section-head,.faq-v27 .section-head{max-width:900px;margin-bottom:38px}
.section-intro{font-size:1.08rem;line-height:1.8;color:#53657a;max-width:820px}
.tariff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tariff-card{background:#fff;border:1px solid #e5ded0;border-radius:22px;padding:28px;box-shadow:0 16px 42px rgba(7,30,57,.07);display:flex;flex-direction:column;min-height:260px}
.tariff-main{background:linear-gradient(145deg,#082846,#0c3e6c);color:#fff;border-color:transparent}
.tariff-main p{color:rgba(255,255,255,.82)}
.tariff-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:#b67b16}
.tariff-main .tariff-label{color:#efb44d}
.tariff-price{font-family:"Playfair Display",serif;font-size:clamp(2.7rem,5vw,4.8rem);line-height:1;color:#0a2340;margin:18px 0 4px}
.tariff-main .tariff-price{color:#fff}
.tariff-text{font-size:clamp(2.1rem,4vw,3.4rem)}
.tariff-unit{font-weight:700;color:#6b7c8f;margin-bottom:20px}
.tariff-main .tariff-unit{color:#e7c581}
.tariff-card p{line-height:1.7;color:#53657a;margin-top:auto}
.sunset-card{background:linear-gradient(180deg,#fff9eb,#fff);border-color:#e8c470}
.included-card{background:#fbfcfe}
.included-lines{display:grid;gap:13px;margin-top:28px;font-weight:700;color:#173653}
.included-lines span{padding-bottom:10px;border-bottom:1px solid #e5ebf1}
.pricing-cta{margin-top:24px;background:#fff;border-radius:22px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:28px;border:1px solid #e5ded0}
.pricing-cta h3{font-family:"Playfair Display",serif;font-size:1.8rem;color:#0a2340;margin:0 0 8px}
.pricing-cta p{margin:0;line-height:1.7;color:#53657a;max-width:700px}
.pricing-cta .price-actions{display:flex;gap:10px;flex-wrap:wrap;flex:none}

.discover-v27{background:#fff}
.discover-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.discover-card{position:relative;border-radius:22px;padding:30px;background:#f5f8fb;border:1px solid #dfe7ef;min-height:300px}
.discover-number{font-family:"Playfair Display",serif;font-size:2.2rem;color:#c68c28;display:block;margin-bottom:22px}
.discover-card h3{font-family:"Playfair Display",serif;font-size:1.55rem;color:#0a2340;margin:0 0 14px}
.discover-card p{line-height:1.75;color:#52667c;margin:0}
.discover-banner{margin-top:24px;border-radius:26px;background:linear-gradient(130deg,#061d37,#0c4373);color:#fff;padding:38px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.discover-banner>div{max-width:780px}
.discover-banner h2{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,3.3rem);line-height:1.08;margin:.2em 0 .35em}
.discover-banner p:not(.kicker){line-height:1.75;color:rgba(255,255,255,.82)}

.faq-v27{background:#f4f7fa}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.faq-grid details{background:#fff;border:1px solid #dfe7ef;border-radius:16px;padding:20px 22px}
.faq-grid summary{cursor:pointer;font-weight:800;color:#0a2340;line-height:1.4}
.faq-grid p{line-height:1.7;color:#53657a;margin:14px 0 0}

@media(max-width:920px){
  .tariff-grid,.discover-grid{grid-template-columns:1fr 1fr}
  .pricing-cta,.discover-banner{align-items:flex-start;flex-direction:column}
}
@media(max-width:620px){
  .tariff-grid,.discover-grid,.faq-grid{grid-template-columns:1fr}
  .tariff-card,.discover-card{min-height:auto}
  .pricing-cta,.discover-banner{padding:24px}
  .pricing-cta .price-actions{width:100%;flex-direction:column}
  .pricing-cta .btn,.discover-banner .btn{width:100%;text-align:center}
}


/* ===== V28 : menu explicite + 10 tableaux horaires ===== */
@media(max-width:900px){
  .menu{
    display:flex!important;
    flex-direction:row!important;
    align-items:center;
    gap:10px!important;
    padding:8px 10px!important;
    border:1px solid rgba(10,35,64,.16);
    border-radius:10px;
    color:var(--navy);
    font-family:'DM Sans',sans-serif;
    font-weight:800;
    cursor:pointer;
  }
  .menu b{
    display:block!important;
    font-size:.82rem;
    letter-spacing:.08em;
    line-height:1;
  }
  .menu .hamb{
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .menu .hamb span{
    display:block;
    width:22px;
    height:2px;
    background:var(--navy);
  }
}
.month-years{
  display:flex;
  gap:10px;
  margin:0 0 16px;
}
.year-filter{
  border:1px solid #cdd9e6;
  background:#fff;
  color:#173653;
  border-radius:999px;
  padding:9px 18px;
  font-weight:800;
  cursor:pointer;
}
.year-filter.active{
  background:#0a3474;
  border-color:#0a3474;
  color:#fff;
}
.month-selector{
  display:flex;
  gap:9px;
  overflow-x:auto;
  padding:2px 2px 14px;
  margin-bottom:14px;
  scrollbar-width:thin;
}
.month-tab{
  flex:0 0 auto;
  border:1px solid #d0dce8;
  background:#fff;
  color:#173653;
  border-radius:12px;
  padding:11px 16px;
  font-weight:800;
  cursor:pointer;
  transition:.2s ease;
}
.month-tab:hover{transform:translateY(-1px);border-color:#b9873a}
.month-tab.active{
  color:#fff;
  background:linear-gradient(135deg,#0a3474,#1359a4);
  border-color:#0a3474;
  box-shadow:0 8px 20px rgba(10,52,116,.18);
}
.month-tab[hidden]{display:none!important}
.schedule-card img{cursor:zoom-in}
@media(max-width:760px){
  .month-tab{padding:10px 13px;font-size:.9rem}
}

/* ===== V29 : créneaux affichés page par page au défilement ===== */
.schedule-year-title{
  margin:48px 0 20px;
  padding:12px 20px;
  border-radius:16px;
  background:linear-gradient(135deg,#082846,#0a4a86);
  color:#fff;
  font-size:clamp(1.6rem,3vw,2.4rem);
  font-weight:800;
  letter-spacing:.04em;
  text-align:center;
}
.schedule-month-block{
  margin:0 0 54px;
  scroll-margin-top:110px;
}
.schedule-month-block h2{
  margin:0 0 14px;
  font-family:"Playfair Display",serif;
  color:#0a2340;
  font-size:clamp(1.8rem,4vw,2.8rem);
}
.schedule-month-block .schedule-card{
  margin:0;
}
.schedule-month-block .schedule-card img{
  cursor:default;
}
@media(max-width:760px){
  .schedule-year-title{margin-top:36px}
  .schedule-month-block{margin-bottom:38px}
  .schedule-month-block h2{margin-left:2px}
}

/* --- V31 : nouvelle section Balades (8 cartes) --- */
.balades-heading{max-width:820px;margin:0 auto 48px;text-align:center}
.balades-heading h2{font-size:clamp(2.5rem,4.6vw,4.6rem);margin:0 0 18px}
.balades-heading>p:last-child{margin:0 auto;color:var(--muted);font-size:1.08rem;max-width:720px}
.balades-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.balade-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 14px 38px rgba(10,35,64,.08);transition:transform .25s ease,box-shadow .25s ease}
.balade-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(10,35,64,.14)}
.balade-card>img{width:100%;height:270px;object-fit:cover}
.balade-card-body{display:grid;grid-template-columns:46px 1fr;gap:16px;padding:25px 26px 28px}
.balade-number{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f1e3c9;color:var(--navy);font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:700}
.balade-card-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.balade-card h3{font-family:'Playfair Display',serif;color:var(--navy);font-size:clamp(1.45rem,2vw,1.85rem);line-height:1.13;margin:0 0 12px}
.balade-card p{color:#526272;margin:0 0 22px;line-height:1.65}
.balade-link{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:0 20px;border:1px solid rgba(185,135,58,.72);border-radius:999px;color:#8b6429;font-weight:700;background:#fffaf2;transition:.2s}
.balade-link:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.balade-actions{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.balade-actions .balade-link{margin-top:0}
.balade-video-link{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:0 20px;border:1px solid rgba(10,35,64,.22);border-radius:999px;color:var(--navy);font-weight:700;background:#f7fbff;transition:.2s}
.balade-video-link:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.balades-cta{margin-top:28px;padding:24px 28px;border:1px solid #e7d7b8;border-radius:22px;background:linear-gradient(110deg,#fff8eb,#fff);display:flex;align-items:center;justify-content:space-between;gap:28px;box-shadow:0 10px 30px rgba(10,35,64,.06)}
.balades-cta div{display:grid;gap:4px}
.balades-cta small{text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--gold)}
.balades-cta strong{font-family:'Playfair Display',serif;color:var(--navy);font-size:1.35rem;line-height:1.25}
@media(max-width:900px){.balades-grid{grid-template-columns:1fr}.balade-card>img{height:300px}.balades-cta{align-items:flex-start;flex-direction:column}.balades-heading{margin-bottom:34px}}
@media(max-width:560px){.balades-heading{text-align:left}.balade-card{border-radius:16px}.balade-card>img{height:225px}.balade-card-body{grid-template-columns:38px 1fr;gap:12px;padding:20px 18px 24px}.balade-number{width:34px;height:34px}.balade-actions{width:100%}.balade-actions .balade-link,.balade-video-link{width:100%}.balades-cta{padding:22px 20px}.balades-cta .btn{width:100%}}
