/* ==========================================
   STYLE.CSS — page-specific styles for index.html
   Requires base.css to be loaded first.
   VERSION COMPLÈTE AVEC CORRECTIONS MOBILE
========================================== */


/* ==========================================
   HERO SLIDER
========================================== */

/* `clip` keeps horizontal overflow hidden without breaking the sticky hero. */
body{
    overflow-x:clip;
}

/* The hero stays pinned behind the page while the next sections slide over it. */
.hero{
    height:100vh;
    height:100svh;
    position:sticky;
    top:0;
    z-index:0;
    overflow:hidden;
    background:#17141a;
    --hero-reveal:1.5s;
}

main>section:not(.hero){
    position:relative;
    z-index:1;
    background-color:var(--sand,#f7f2e8);
}

.slider{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}

/* Each slide is a mask: the picture is revealed from the top edge downwards. */
.slide{
    position:absolute;
    inset:0;
    overflow:hidden;
    z-index:0;
    /* The next image is revealed vertically from the top edge downward. */
    -webkit-clip-path:inset(0 0 100% 0);
    clip-path:inset(0 0 100% 0);
    transform:translate3d(0,0,0) !important;
    transition:-webkit-clip-path var(--hero-reveal) cubic-bezier(.62,.02,.2,1), clip-path var(--hero-reveal) cubic-bezier(.62,.02,.2,1);
    will-change:clip-path;
}

.slide-media{
    position:absolute;
    inset:0;
    background-image:var(--premium-image);
    background-size:cover;
    background-position:center;
    transform:scale(1.06) translateY(-2.5%);
    transition:transform var(--hero-reveal) cubic-bezier(.62,.02,.2,1);
    will-change:transform;
}

.slide.is-active{
    z-index:2;
        -webkit-clip-path:inset(0 0 0 0);
    clip-path:inset(0 0 0 0);
}

/* The slow zoom keeps running while the slide leaves, so there is no jump. */
.slide.is-active .slide-media,
.slide.is-leaving .slide-media{
    animation:heroKenBurns 9s ease-out forwards;
}

/* Previous slide stays underneath while the new one descends over it. */
.slide.is-leaving{
    z-index:1;
    -webkit-clip-path:inset(0 0 0 0);
    clip-path:inset(0 0 0 0);
}

.slide.no-transition,
.slide.no-transition .slide-media{
    transition:none;
}

@keyframes heroKenBurns{
    from{transform:scale(1.06) translateY(-2.5%)}
    to{transform:scale(1.14) translateY(1.2%)}
}

.overlay{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:3;
    pointer-events:none;
    background:
        linear-gradient(to bottom,rgba(23,20,26,.62) 0%,rgba(23,20,26,.12) 34%,rgba(23,20,26,.20) 60%,rgba(23,20,26,.78) 100%),
        radial-gradient(120% 90% at 50% 55%,rgba(23,20,26,0) 30%,rgba(23,20,26,.55) 100%);
}

/* --hero-exit goes from 0 to 1 while the hero is being covered. */
.hero-content{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,calc(-50% - var(--hero-exit,0) * 40px));
    opacity:calc(1 - var(--hero-exit,0));
    text-align:center;
    color:white;
    max-width:900px;
    padding:20px;
    z-index:4;
}

.hero-eyebrow{
    display:block;
    margin-bottom:18px;
    font-size:12px;
    font-weight:500;
    letter-spacing:.42em;
    text-transform:uppercase;
    color:rgba(255,255,255,.82);
    transition:opacity .55s ease,transform .55s ease;
}

.hero-eyebrow.is-changing{
    opacity:0;
    transform:translateY(8px);
}

.hero h1{
    font-family:var(--display);
    font-weight:600;
    font-size:70px;
    margin-bottom:20px;
    text-shadow:0 2px 30px rgba(0,0,0,.28);
}

.hero p{
    font-size:22px;
    margin-bottom:40px;
}

/* Entrance of the hero copy, staggered. */
.hero-eyebrow,
.hero h1,
.hero p,
.hero-actions{
    animation:heroRise 1.1s cubic-bezier(.22,.61,.36,1) both;
}

.hero h1{animation-delay:.12s}
.hero p{animation-delay:.24s}
.hero-actions{animation-delay:.36s}

@keyframes heroRise{
    from{opacity:0;transform:translateY(26px)}
    to{opacity:1;transform:translateY(0)}
}

/* Slide indicators */
.hero-dots,
.hero-scroll-cue{
    opacity:calc(1 - var(--hero-exit,0) * 1.8);
}

.hero-dots{
    position:absolute;
    left:50%;
    bottom:96px;
    transform:translateX(-50%);
    display:flex;
    gap:14px;
    z-index:5;
}

.hero-dot{
    position:relative;
    width:46px;
    height:2px;
    padding:0;
    border:0;
    border-radius:2px;
    background:rgba(255,255,255,.28);
    cursor:pointer;
    overflow:hidden;
}

.hero-dot::after{
    content:"";
    position:absolute;
    inset:0;
    width:0;
    background:rgba(255,255,255,.95);
}

.hero-dot[aria-selected="true"]::after{
    animation:heroDotFill var(--hero-interval,6500ms) linear forwards;
}

.hero-dot.is-paused::after{
    animation-play-state:paused;
}

.hero-dot:focus-visible{
    outline:1px solid rgba(255,255,255,.8);
    outline-offset:6px;
}

@keyframes heroDotFill{
    from{width:0}
    to{width:100%}
}

/* Scroll cue */
.hero-scroll-cue{
    position:absolute;
    left:50%;
    bottom:34px;
    transform:translateX(-50%);
    width:22px;
    height:38px;
    display:grid;
    place-items:start center;
    z-index:5;
}

.hero-scroll-line{
    width:1px;
    height:34px;
    background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.75));
    animation:heroScrollCue 2.4s ease-in-out infinite;
}

@keyframes heroScrollCue{
    0%{transform:scaleY(.3);transform-origin:top;opacity:.2}
    45%{transform:scaleY(1);transform-origin:top;opacity:.9}
    46%{transform-origin:bottom}
    100%{transform:scaleY(0);transform-origin:bottom;opacity:0}
}

@media(max-width:760px){
    .slide-media{
        background-image:var(--mobile-image,var(--premium-image));
    }
    .hero-eyebrow{font-size:10px;letter-spacing:.34em;margin-bottom:14px}
    .hero-dots{bottom:84px;gap:10px}
    .hero-dot{width:32px}
}

@media(prefers-reduced-motion:reduce){
    .slide{transition:opacity .5s ease;clip-path:none;opacity:0}
    .slide.is-active,.slide.is-leaving{opacity:1}
    .slide.is-leaving{opacity:0}
    .slide.is-active .slide-media,.slide.is-leaving .slide-media{animation:none}
    .slide-media{transform:none;transition:none}
    .hero-eyebrow,.hero h1,.hero p,.hero-actions,.hero-scroll-line{animation:none}
    .hero-content{transform:translate(-50%,-50%);opacity:1}
    .hero-dots,.hero-scroll-cue{opacity:1}
    .hero-dot[aria-selected="true"]::after{animation:none;width:100%}
}



/* ==========================================
   STATISTICS
========================================== */

.stats{
    background:var(--dusk);
    color:white;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    text-align:center;
    padding:70px 10%;
}

.stat-box{
    padding:20px;
}

.stat-box h2{
    font-family:var(--display);
    font-size:50px;
    margin-bottom:10px;
    color:var(--gold);
}

.stat-box p{
    font-size:18px;
}


/* ==========================================
   INTRODUCTION
========================================== */

.intro{
    padding:100px 12%;
    text-align:center;
}

.intro h2{
    font-family:var(--display);
    font-weight:600;
    font-size:45px;
    margin-bottom:30px;
    color:var(--bark);
}

.intro p{
    font-size:20px;
    line-height:1.8;
    max-width:900px;
    margin:auto;
}


/* ==========================================
   TRIP PLANNER
========================================== */

.planner{
    padding:120px 8%;
    background:var(--sand-deep);
    text-align:center;
}

.planner h2{
    font-family:var(--display);
    font-weight:600;
    font-size:45px;
    color:var(--bark);
    margin-bottom:15px;
}

.planner-box{
    max-width:820px;
    margin:50px auto 0;
    background:white;
    border-radius:var(--radius-card);
    padding:50px 44px;
    box-shadow:var(--shadow-soft);
    text-align:left;
}

.planner-destinations{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-bottom:34px;
}

.planner-chip{
    position:relative;
    cursor:pointer;
}

.planner-chip input{
    position:absolute;
    opacity:0;
    width:0;
    height:0;
}

.planner-chip span{
    display:inline-block;
    padding:12px 22px;
    border-radius:50px;
    border:1.5px solid rgba(59,42,32,.18);
    background:var(--sand);
    font-weight:600;
    font-size:14.5px;
    color:var(--bark);
    transition:.25s;
}

.planner-chip.active span{
    background:var(--ember);
    border-color:var(--ember);
    color:white;
}

.planner-days{
    margin-bottom:30px;
}

.planner-days label{
    display:block;
    font-weight:600;
    color:var(--bark);
    margin-bottom:10px;
    font-size:15px;
}

.planner-days input{
    width:160px;
    padding:14px 18px;
    border-radius:12px;
    border:1.5px solid rgba(59,42,32,.18);
    font-family:var(--body);
    font-size:16px;
    background:var(--sand);
}

.planner-days input:focus{
    outline:none;
    border-color:var(--ember);
}

.planner-result{
    margin-top:30px;
    padding:26px 28px;
    border-radius:16px;
    display:none;
    font-size:15px;
    line-height:1.7;
}

.planner-result.ok,
.planner-result.tight,
.planner-result.warning{
    display:block;
}

.planner-result.ok{
    background:rgba(92,110,82,.12);
    border:1px solid rgba(92,110,82,.3);
}

.planner-result.tight{
    background:rgba(224,168,62,.15);
    border:1px solid rgba(224,168,62,.4);
}

.planner-result.warning{
    background:rgba(193,85,43,.12);
    border:1px solid rgba(193,85,43,.35);
}

.planner-result ul{
    margin:16px 0 0;
    padding-left:20px;
}

.planner-result li{
    margin-bottom:6px;
    color:var(--bark-soft);
}

.planner-note{
    margin-top:16px;
    font-size:13.5px;
    color:var(--bark-soft);
}

.planner-note a{
    color:var(--ember);
    font-weight:600;
}

@media(max-width:600px){
    .planner-box{
        padding:34px 24px;
    }
    .planner-days input{
        width:100%;
    }
}

/* Wizard steps */
.planner-steps-nav{
    display:flex;
    justify-content:center;
    gap:10px;
    margin-bottom:40px;
}

.step-dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:rgba(59,42,32,.18);
    transition:.3s;
}

.step-dot.active{
    background:var(--ember);
    width:26px;
    border-radius:6px;
}

.step-dot.done{
    background:var(--gold);
}

.planner-step{
    display:none;
}

.planner-step.active{
    display:block;
    animation:plannerStepIn .35s ease;
}

@keyframes plannerStepIn{
    from{ opacity:0; transform:translateY(10px); }
    to{ opacity:1; transform:translateY(0); }
}

.planner-step h3{
    font-family:var(--display);
    font-size:22px;
    color:var(--bark);
    margin-bottom:24px;
}

.option-cards{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:16px;
    margin-bottom:10px;
}

.option-card{
    position:relative;
    cursor:pointer;
    display:block;
}

.option-card input{
    position:absolute;
    opacity:0;
    width:0;
    height:0;
}

.option-card-inner{
    display:block;
    padding:22px;
    border-radius:14px;
    border:1.5px solid rgba(59,42,32,.18);
    background:var(--sand);
    transition:.25s;
    height:100%;
}

.option-card input:checked + .option-card-inner{
    border-color:var(--ember);
    background:white;
    box-shadow:var(--shadow-soft);
}

.option-card-inner h4{
    font-family:var(--display);
    font-size:18px;
    color:var(--bark);
    margin-bottom:6px;
}

.option-card-inner p{
    font-size:14px;
    color:var(--bark-soft);
    margin-bottom:10px;
}

.option-card-inner .price{
    font-size:13px;
    font-weight:600;
    color:var(--ember);
}

.excursion-option{
    display:flex;
    align-items:flex-start;
    gap:14px;
    padding:16px 18px;
    border-radius:12px;
    border:1.5px solid rgba(59,42,32,.14);
    background:var(--sand);
    margin-bottom:12px;
    cursor:pointer;
    transition:.2s;
}

.excursion-option:has(input:checked){
    border-color:var(--ember);
    background:white;
}

.excursion-option input{
    margin-top:4px;
}

.excursion-option-text strong{
    display:block;
    color:var(--bark);
    font-size:15px;
    margin-bottom:2px;
}

.excursion-option-text span{
    font-size:13px;
    color:var(--bark-soft);
}

.excursion-group-title{
    font-family:var(--display);
    font-size:17px;
    color:var(--bark);
    margin:22px 0 12px;
}

.excursion-group-title:first-child{
    margin-top:0;
}

.planner-nav-buttons{
    display:flex;
    justify-content:space-between;
    margin-top:40px;
}

.planner-estimate{
    max-width:820px;
    margin:50px auto 0;
    background:white;
    border-radius:var(--radius-card);
    padding:50px 44px;
    box-shadow:var(--shadow-soft);
}

.planner-estimate h3{
    font-family:var(--display);
    font-size:26px;
    color:var(--bark);
    margin-bottom:20px;
    text-align:center;
}

.estimate-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px 30px;
}

.estimate-line{
    display:flex;
    justify-content:space-between;
    padding:12px 0;
    border-bottom:1px dashed rgba(59,42,32,.15);
    font-size:15px;
    color:var(--bark-soft);
}

.estimate-line strong{
    color:var(--bark);
}

.estimate-total{
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-family:var(--display);
    font-size:24px;
    color:var(--bark);
    padding-top:20px;
    margin-top:16px;
    border-top:2px solid var(--bark);
}

.estimate-total strong{
    color:var(--ember);
}

.planner-actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:34px;
}

.planner-restore-banner{
    max-width:820px;
    margin:0 auto 30px;
    background:rgba(224,168,62,.15);
    border:1px solid rgba(224,168,62,.4);
    border-radius:14px;
    padding:18px 24px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    font-size:14.5px;
    color:var(--bark);
}

/* Children toggle */
.planner-children-toggle{
    display:flex;
    align-items:center;
    gap:12px;
    margin:28px 0 18px;
    font-weight:600;
    font-size:16px;
    color:var(--bark);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
}

.planner-children-toggle input{
    width:22px;
    height:22px;
    accent-color:var(--ember);
    flex-shrink:0;
}

.planner-children-fields{
    display:none;
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    gap:18px;
    margin-bottom:10px;
}

.planner-children-fields.visible{
    display:grid;
}

.planner-children-fields .planner-days input{
    width:100%;
    min-height:48px;
    font-size:16px;
}

/* Nosy Be package */
.nosybe-package-toggle{
    display:none;
    margin-bottom:28px;
}

.nosybe-package-toggle.visible{
    display:block;
}

.excursion-option.package-toggle{
    border:2px solid var(--ember);
    background:rgba(193,85,43,.06);
}

.package-toggle .excursion-option-text strong{
    color:var(--ember);
    font-size:16px;
}

.package-toggle .excursion-option-text span{
    display:block;
    margin-top:4px;
    font-size:13.5px;
    color:var(--bark-soft);
}

.nosybe-package-details{
    display:none;
    margin-bottom:30px;
    padding:22px 18px;
    background:var(--sand);
    border-radius:16px;
}

.nosybe-package-details.visible{
    display:block;
}

.package-photos-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
    gap:12px;
    margin-bottom:28px;
}

.package-photo-item{
    border-radius:12px;
    overflow:hidden;
    box-shadow:var(--shadow-soft);
    background:white;
}

.package-photo-item img{
    width:100%;
    height:100px;
    object-fit:cover;
    display:block;
}

.package-photo-item span{
    display:block;
    padding:8px 10px;
    font-size:12px;
    font-weight:600;
    color:var(--bark);
    line-height:1.3;
}

.package-currency-choice{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-bottom:24px;
}

.package-info-lists{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-bottom:20px;
}

.package-info-lists h4{
    font-family:var(--display);
    font-size:15px;
    color:var(--bark);
    margin-bottom:8px;
}

.package-info-lists ul{
    padding-left:18px;
    margin:0;
}

.package-info-lists li{
    font-size:13.5px;
    color:var(--bark-soft);
    margin-bottom:5px;
}

.package-total{
    font-family:var(--display);
    font-size:20px;
    color:var(--ember);
    text-align:center;
    padding-top:16px;
    border-top:2px solid var(--bark);
    line-height:1.4;
}

/* Morondava circuit */
.destination-circuit-details{
    display:none;
    margin-top:30px;
    padding:26px 24px;
    background:var(--sand);
    border-radius:16px;
}

.destination-circuit-details.visible{
    display:block;
    animation:plannerStepIn .35s ease;
}

.destination-circuit-details h4{
    font-family:var(--display);
    font-size:20px;
    color:var(--bark);
    margin-bottom:4px;
}

.circuit-subtitle{
    font-size:13.5px;
    color:var(--ember);
    font-weight:600;
    margin-bottom:22px;
}

.circuit-days{
    margin-bottom:24px;
}

.circuit-day{
    display:flex;
    gap:16px;
    padding:14px 0;
    border-bottom:1px dashed rgba(59,42,32,.15);
}

.circuit-day:last-child{
    border-bottom:none;
}

.circuit-day-number{
    flex-shrink:0;
    width:64px;
    font-weight:700;
    font-size:13px;
    color:var(--ember);
    text-transform:uppercase;
}

.circuit-day-text strong{
    display:block;
    color:var(--bark);
    font-size:15px;
    margin-bottom:4px;
}

.circuit-day-text p{
    font-size:13.5px;
    color:var(--bark-soft);
    line-height:1.7;
}

.circuit-highlights{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:24px;
}

.circuit-highlights span{
    padding:7px 16px;
    border-radius:30px;
    background:white;
    color:var(--bark);
    font-size:13px;
    font-weight:600;
    box-shadow:var(--shadow-soft);
}

.circuit-info-lists{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    margin-bottom:18px;
}

.circuit-info-lists h4{
    font-size:14px;
    margin-bottom:8px;
}

.circuit-info-lists ul{
    padding-left:18px;
}

.circuit-info-lists li{
    font-size:13px;
    color:var(--bark-soft);
    margin-bottom:5px;
}

@media(max-width:600px){
    .circuit-day{
        flex-direction:column;
        gap:4px;
    }
    .circuit-day-number{
        width:auto;
    }
    .circuit-info-lists{
        grid-template-columns:1fr;
    }
}


/* ==========================================
   QUOTE MODAL
========================================== */

.quote-modal{
    position:fixed;
    inset:0;
    background:rgba(31,24,48,.6);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:2000;
    padding:20px;
}

.quote-modal.open{
    display:flex;
}

.quote-modal-content{
    background:white;
    border-radius:var(--radius-card);
    padding:44px;
    max-width:560px;
    width:100%;
    max-height:90vh;
    overflow-y:auto;
    position:relative;
    animation:plannerStepIn .3s ease;
}

.quote-modal-content h3{
    font-family:var(--display);
    font-size:26px;
    color:var(--bark);
    margin-bottom:10px;
}

.quote-modal-content > p{
    font-size:14.5px;
    color:var(--bark-soft);
    margin-bottom:10px;
}

.quote-modal-close{
    position:absolute;
    top:16px;
    right:20px;
    background:none;
    border:none;
    font-size:30px;
    line-height:1;
    cursor:pointer;
    color:var(--bark-soft);
}

.quote-summary{
    background:var(--sand);
    border-radius:12px;
    padding:20px 22px;
    margin:16px 0 26px;
    font-size:13.5px;
    line-height:1.9;
    color:var(--bark-soft);
}

.quote-summary strong{
    color:var(--bark);
}

#quote-form .field{
    margin-bottom:16px;
}

#quote-form textarea{
    width:100%;
    padding:14px 16px;
    border:1.5px solid rgba(59,42,32,.18);
    border-radius:12px;
    font-family:var(--body);
    font-size:14.5px;
    color:var(--bark);
    background:var(--sand);
    resize:vertical;
}

#quote-form textarea:focus{
    outline:none;
    border-color:var(--ember);
    background:white;
}


/* ==========================================
   DESTINATIONS
========================================== */

.destinations{
    padding:100px 8%;
    text-align:center;
    background:var(--sand-deep);
}

.destinations h2{
    font-family:var(--display);
    font-weight:600;
    font-size:45px;
    margin-bottom:15px;
    color:var(--bark);
}

.subtitle{
    font-size:18px;
    color:var(--bark-soft);
    margin-bottom:50px;
}

.destination-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:35px;
}

.card{
    background:white;
    border-radius:var(--radius-card);
    overflow:hidden;
    box-shadow:var(--shadow-soft);
    text-align:left;
    transition:.4s;
}

.card:hover{
    transform:translateY(-10px);
    box-shadow:var(--shadow);
}

.card img{
    width:100%;
    height:240px;
    object-fit:cover;
}

.card h3{
    font-family:var(--display);
    font-size:25px;
    margin:20px;
    color:var(--bark);
}

.card p{
    margin:0 20px 20px;
    color:var(--bark-soft);
    line-height:1.7;
}

.card a{
    display:inline-block;
    margin:0 20px 25px;
    color:var(--ember);
    text-decoration:none;
    font-weight:600;
}

.card a:hover{
    color:var(--gold);
}


/* ==========================================
   SERVICES / TOURS
========================================== */

.services{
    padding:100px 8%;
    background:var(--sand-deep);
    text-align:center;
}

.services h2{
    font-family:var(--display);
    font-weight:600;
    font-size:45px;
    color:var(--bark);
    margin-bottom:15px;
}

.services .subtitle{
    max-width:850px;
    margin:0 auto 60px;
    color:var(--bark-soft);
    font-size:18px;
    line-height:1.8;
}

.services-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:35px;
}

.service-card{
    background:white;
    border-radius:var(--radius-card);
    overflow:hidden;
    box-shadow:var(--shadow-soft);
    transition:.35s ease;
}

.service-card:hover{
    transform:translateY(-10px);
    box-shadow:var(--shadow);
}

.service-card img{
    width:100%;
    height:240px;
    object-fit:cover;
    transition:.4s;
}

.service-card:hover img{
    transform:scale(1.05);
}

.service-card h3{
    margin:25px 20px 15px;
    color:var(--bark);
    font-family:var(--display);
    font-size:24px;
}

.service-card p{
    margin:0 20px 30px;
    color:var(--bark-soft);
    line-height:1.8;
    font-size:16px;
}


/* ==========================================
   GALLERY
========================================== */

.gallery{
    padding:120px 8%;
    background:white;
    text-align:center;
}

.gallery h2{
    font-family:var(--display);
    font-weight:600;
    font-size:45px;
    color:var(--bark);
    margin-bottom:15px;
}

.gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    grid-auto-rows:220px;
    gap:16px;
    margin-top:50px;
}

.gallery-item{
    overflow:hidden;
    border-radius:14px;
    box-shadow:var(--shadow-soft);
}

.gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.6s;
}

.gallery-item:hover img{
    transform:scale(1.08);
}

.gallery-item:nth-child(1){
    grid-column:span 2;
    grid-row:span 2;
}

.gallery-item:nth-child(6){
    grid-column:span 2;
}

@media(max-width:900px){
    .gallery-grid{
        grid-template-columns:repeat(2,1fr);
    }
    .gallery-item:nth-child(1){
        grid-column:span 2;
        grid-row:span 1;
    }
}

@media(max-width:600px){
    .gallery-grid{
        grid-template-columns:1fr;
        grid-auto-rows:200px;
    }
    .gallery-item:nth-child(1),
    .gallery-item:nth-child(6){
        grid-column:span 1;
    }
}


/* ==========================================
   CONTACT
========================================== */

.contact{
    padding:110px 8%;
    text-align:center;
    background:var(--sand);
}

.contact h2{
    font-family:var(--display);
    font-weight:600;
    font-size:40px;
    color:var(--bark);
    margin-bottom:18px;
}

.contact > p{
    font-size:18px;
    color:var(--bark-soft);
    max-width:560px;
    margin:0 auto 36px;
}

.contact-buttons{
    display:flex;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
}


/* ==========================================
   FOOTER
========================================== */

.footer{
    background:var(--dusk);
    color:rgba(255,255,255,.75);
    padding:90px 8% 0;
}

.footer-container{
    display:grid;
    grid-template-columns:1.6fr 1fr 1fr;
    gap:50px;
    max-width:1300px;
    margin:0 auto;
    padding-bottom:60px;
    border-bottom:1px solid rgba(255,255,255,.12);
}

.footer-column h3{
    font-family:var(--display);
    font-weight:600;
    font-size:22px;
    color:var(--white);
    margin-bottom:18px;
}

.footer-column h4{
    font-family:var(--display);
    font-weight:600;
    font-size:15px;
    letter-spacing:.5px;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:20px;
}

.footer-column p{
    font-size:14.5px;
    line-height:1.8;
    color:rgba(255,255,255,.65);
}

.footer-column a{
    display:block;
    font-size:14.5px;
    color:rgba(255,255,255,.75);
    text-decoration:none;
    margin-bottom:14px;
    transition:.25s;
}

.footer-column a:last-child{
    margin-bottom:0;
}

.footer-column a:hover{
    color:var(--gold);
}

.footer-bottom{
    max-width:1300px;
    margin:0 auto;
    padding:26px 0 40px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
}

.footer-bottom p{
    font-size:13px;
    color:rgba(255,255,255,.5);
}

.footer-bottom strong{
    color:rgba(255,255,255,.75);
}
.footer-admin-link{
    color:rgba(255,255,255,.35);
    text-decoration:none;
    transition:.25s;
}

.footer-admin-link:hover{
    color:var(--gold);
}

/* ==========================================
   RESPONSIVE GENERAL
========================================== */

@media(max-width:900px){
    .hero h1{
        font-size:45px;
    }
    .stats{
        grid-template-columns:1fr 1fr;
    }
    .footer-container{
        grid-template-columns:1fr 1fr;
    }
    .footer-column:first-child{
        grid-column:1 / -1;
    }
}

@media(max-width:600px){
    .hero h1{
        font-size:35px;
    }
    .hero p{
        font-size:17px;
    }
    .stats{
        grid-template-columns:1fr;
    }
    .destinations h2,
    .services h2,
    .intro h2,
    .gallery h2,
    .planner h2{
        font-size:35px;
    }
    .footer{
        padding:70px 6% 0;
    }
    .footer-container{
        grid-template-columns:1fr;
        gap:36px;
    }
    .footer-bottom{
        flex-direction:column;
        align-items:flex-start;
    }
    .quote-modal-content{
        padding:30px 24px;
    }
    .planner-nav-buttons{
        gap:12px;
    }
    .estimate-grid{
        grid-template-columns:1fr;
    }
    .planner-children-toggle{
        font-size:15.5px;
        margin:24px 0 14px;
    }
    .planner-children-fields{
        grid-template-columns:1fr;
        gap:14px;
    }
    .package-currency-choice,
    .package-info-lists{
        grid-template-columns:1fr;
    }
    .package-photos-grid{
        grid-template-columns:repeat(2,1fr);
        gap:10px;
    }
    .package-photo-item img{
        height:90px;
    }
    .package-total{
        font-size:18px;
    }
    .option-card-inner{
        padding:18px 16px;
    }
    .excursion-option{
        padding:14px;
    }
}

/* Language switcher and quote CTA */
.language-link { font-size: .78rem; font-weight: 700; letter-spacing: .04em; margin-left: .35rem; opacity: .85; }
.nav-quote-btn { background: #c85d2e; color: #fff !important; border-radius: 999px; padding: .65rem 1rem !important; margin-left: .5rem; }
.hero-actions { display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; }
@media (max-width: 760px) { .nav-quote-btn { display: inline-block; margin: .5rem 0; } .hero-actions .btn { width: min(100%, 260px); } }

/* === Ma'Tour confirmed trust and conversion upgrade === */
.language-label{font-size:.72rem;opacity:.72;text-transform:uppercase;letter-spacing:.08em;margin-left:8px}.language-link{white-space:nowrap}.trust-section,.team-section,.testimonial-section,.faq-section{padding:86px 5%;max-width:1200px;margin:0 auto}.trust-section h2,.team-section h2,.testimonial-section h2,.faq-section h2{text-align:center}.trust-grid,.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:34px}.trust-card,.team-card{background:rgba(255,255,255,.82);border:1px solid rgba(42,36,56,.1);border-radius:18px;padding:24px;box-shadow:0 10px 26px rgba(42,36,56,.06)}.trust-card strong{display:block;color:#a95732;font-size:18px;margin-bottom:10px}.trust-card p,.team-card p{margin:0;line-height:1.6;color:#665c55}.team-card{text-align:center}.team-avatar{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#a95732;color:#fff;font-family:var(--display);font-size:28px}.team-card h3{margin:0 0 8px}.team-photo-note{text-align:center;color:#766e68;font-size:14px;margin-top:24px}.testimonial-section{text-align:center;background:#f2e7d5;border-radius:24px}.testimonial-section blockquote{max-width:760px;margin:28px auto 16px;font-family:var(--display);font-size:28px;line-height:1.35;color:#2a2438}.testimonial-section p{color:#665c55}.faq-section details{max-width:900px;margin:12px auto;border-bottom:1px solid rgba(42,36,56,.14);padding:14px 0}.faq-section summary{cursor:pointer;font-weight:600;font-size:18px;color:#2a2438}.faq-section details p{line-height:1.7;color:#665c55;margin:12px 0 4px}.package-confirmed-note{margin-top:20px;padding:16px 18px;background:#f2e7d5;border-left:4px solid #c85d2e;border-radius:0 12px 12px 0;line-height:1.6;color:#4e4843}.floating-whatsapp{position:fixed;left:22px;bottom:22px;z-index:30;display:inline-flex;align-items:center;justify-content:center;padding:14px 18px;border-radius:999px;background:#1f9d58;color:#fff!important;text-decoration:none;font-weight:700;box-shadow:0 8px 22px rgba(0,0,0,.2)}.floating-whatsapp:hover{transform:translateY(-2px);box-shadow:0 11px 26px rgba(0,0,0,.25)}@media(max-width:900px){.trust-grid,.team-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.trust-section,.team-section,.testimonial-section,.faq-section{padding:58px 6%}.trust-grid,.team-grid{grid-template-columns:1fr}.testimonial-section blockquote{font-size:22px}.floating-whatsapp{left:14px;bottom:14px;padding:12px 15px;font-size:14px}.language-label{display:none}}
.testimonial-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:34px auto 24px;max-width:1200px;text-align:left}
.testimonial-card{padding:26px 22px;border-radius:18px;display:flex;flex-direction:column;gap:10px}
.testimonial-stars{margin:0;color:#c8952e;letter-spacing:3px;font-size:15px}
.testimonial-grid blockquote{margin:0;font-family:var(--display);font-size:17px;line-height:1.5;color:#2a2438;max-width:none}
.testimonial-author{margin:0;color:#665c55;font-size:13.5px}
@media(max-width:1100px){.testimonial-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.testimonial-grid{grid-template-columns:1fr}}

/* Brief upgrade: identity, services and real team photos */
.identity-section,.services-section{padding:76px 5%;max-width:1200px;margin:0 auto}.identity-grid{display:grid;grid-template-columns:1.45fr .8fr;gap:34px;align-items:stretch}.identity-section h2,.services-section h2{font-family:var(--display);font-size:clamp(30px,4vw,48px);color:#2a2438;margin:10px 0 18px}.identity-section p,.services-section p{line-height:1.75;color:#665c55}.identity-card{background:#f2e7d5;border-radius:20px;padding:30px;display:flex;flex-direction:column;justify-content:center}.identity-card strong{color:#a95732;font-size:22px}.muted{font-size:14px;opacity:.8}.section-heading{text-align:center;max-width:760px;margin:0 auto 30px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{background:rgba(255,255,255,.82);border:1px solid rgba(42,36,56,.1);border-radius:18px;padding:26px;box-shadow:0 10px 26px rgba(42,36,56,.06)}.service-card h3{color:#a95732;margin-top:0}.team-grid-five{grid-template-columns:repeat(5,1fr)}.team-photo-wrap{width:112px;height:112px;margin:0 auto 14px;position:relative}.team-photo{width:112px;height:112px;object-fit:cover;border-radius:50%;display:block;border:4px solid #f2e7d5}.team-avatar-fallback{display:none;width:112px;height:112px;border-radius:50%;place-items:center;background:#a95732;color:#fff;font-family:var(--display);font-size:38px;position:absolute;inset:0}.team-photo-note{line-height:1.6}@media(max-width:1000px){.team-grid-five{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.identity-grid,.services-grid{grid-template-columns:1fr}.team-grid-five{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.team-grid-five{grid-template-columns:1fr}}

.location-section{padding:30px 5% 76px;max-width:1200px;margin:0 auto}.location-card{display:flex;justify-content:space-between;gap:30px;align-items:center;background:#2a2438;color:#fff;border-radius:22px;padding:34px 38px}.location-card h2{font-family:var(--display);margin:8px 0 12px;font-size:clamp(28px,4vw,42px)}.location-card p{margin:6px 0;color:rgba(255,255,255,.82);line-height:1.6}.location-actions{display:flex;gap:12px;flex-wrap:wrap}.location-actions .btn-outline{border-color:rgba(255,255,255,.6);color:#fff}@media(max-width:700px){.location-card{flex-direction:column;align-items:flex-start;padding:28px}.location-actions{width:100%}}

.circuit-page{max-width:1200px;margin:0 auto}.circuit-hero{padding:110px 6%;background:linear-gradient(135deg,#2a2438,#594055);color:#fff;border-radius:0 0 28px 28px}.circuit-hero h1{font-family:var(--display);font-size:clamp(38px,6vw,70px);margin:12px 0}.circuit-hero p{font-size:20px;line-height:1.6}.circuit-duration{font-weight:700;color:#f2d4a8}.circuit-price{font-size:34px;font-weight:800;color:#f2d4a8;margin:28px 0 8px}.circuit-price small{font-size:17px;font-weight:500}.circuit-note{max-width:700px;font-size:15px!important;color:rgba(255,255,255,.82)}.circuit-content{padding:70px 6% 20px}.circuit-content h2,.circuit-cta h2{font-family:var(--display);font-size:clamp(28px,4vw,44px);color:#2a2438}.itinerary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.day-card{padding:24px;background:#fff;border:1px solid rgba(42,36,56,.12);border-radius:18px;box-shadow:0 10px 24px rgba(42,36,56,.06)}.day-card h3{color:#a95732;margin-top:0}.day-card p{line-height:1.7;color:#665c55}.day-card strong{font-size:14px;color:#2a2438}.inclusions{display:grid;grid-template-columns:1fr 1fr;gap:40px}.inclusions ul{padding-left:20px;line-height:1.9;color:#665c55}.circuit-cta{margin:35px 6% 80px;padding:42px;border-radius:22px;text-align:center;background:#f2e7d5}.circuit-cta p{max-width:760px;margin:0 auto 24px;line-height:1.7;color:#665c55}.circuit-feature-card{border:2px solid rgba(169,87,50,.25)}.circuit-feature-card a{font-weight:700;color:#a95732}@media(max-width:700px){.itinerary-grid,.inclusions{grid-template-columns:1fr}.circuit-hero{padding:72px 6%}.circuit-price{font-size:28px}}

/* Dedicated circuit header */
.circuit-header{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 6%;background:#2a2438;color:#fff}.circuit-header .brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:700}.circuit-header .brand img{width:68px;height:68px;object-fit:contain;border-radius:12px;background:#f2e7d5}.circuit-header nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.circuit-header nav a{color:#fff;text-decoration:none;font-weight:600}.circuit-header nav .btn{color:#fff}.circuit-header .btn{padding:11px 17px}@media(max-width:760px){.circuit-header{align-items:flex-start;flex-direction:column}.circuit-header nav{gap:12px}.circuit-header .brand img{width:54px;height:54px}.circuit-header nav a{font-size:14px}}

/* Premium editorial refonte */
.stats{padding:34px 8%;grid-template-columns:repeat(4,1fr);background:rgba(42,36,56,.96)}.stat-box{padding:10px 14px}.stat-box h2{font-size:clamp(28px,3vw,42px);margin-bottom:5px}.stat-box p{font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.78}
.planner{padding:88px 8%}.planner h2{font-size:clamp(34px,5vw,58px)}.planner-box{padding:38px 40px}.planner-phase-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(42,36,56,.15);margin:0 0 28px;border:1px solid rgba(42,36,56,.12)}.planner-phase-overview>div{background:#fff;padding:18px 16px;display:flex;flex-direction:column;gap:5px}.planner-phase-overview span{font-size:11px;letter-spacing:.16em;color:var(--ember);font-weight:700}.planner-phase-overview strong{font-family:var(--display);font-size:17px;color:var(--bark)}.planner-phase-overview small{color:var(--bark-soft);font-size:12px}.planner-steps-nav{margin-bottom:22px;opacity:.55}.featured-journey{max-width:1200px;margin:30px auto 80px;display:grid;grid-template-columns:1.2fr 1fr;min-height:430px;background:#2a2438;color:#fff;overflow:hidden}.featured-journey-media{min-height:360px}.featured-journey-media img{width:100%;height:100%;object-fit:cover;display:block}.featured-journey-copy{padding:70px 9%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.featured-journey-copy h2{font-family:var(--display);font-size:clamp(36px,5vw,64px);line-height:1;margin:12px 0 16px}.featured-journey-copy p{font-size:18px;line-height:1.6;color:rgba(255,255,255,.82)}.featured-duration{font-size:12px!important;letter-spacing:.16em;text-transform:uppercase;color:#f2d4a8!important}.featured-price{font-size:23px;font-weight:700;color:#f2d4a8;margin:20px 0 26px}.featured-price small{font-size:13px;font-weight:400}.featured-journey-copy .btn{margin-top:4px}.editorial-accordions{max-width:1100px;margin:20px auto 76px;padding:0 5%}.editorial-heading{text-align:left;margin-bottom:30px}.editorial-heading h2{font-family:var(--display);font-size:clamp(36px,5vw,64px);font-weight:500;line-height:1.05}.accordion-list{border-top:1px solid rgba(42,36,56,.22)}.accordion-list details{border-bottom:1px solid rgba(42,36,56,.22);padding:0}.accordion-list summary{list-style:none;cursor:pointer;padding:22px 4px;font-size:12px;letter-spacing:.17em;font-weight:700;color:var(--bark);display:flex;justify-content:space-between;align-items:center}.accordion-list summary::-webkit-details-marker{display:none}.accordion-list summary span{font-size:25px;font-weight:300;line-height:1;transition:transform .3s;color:var(--ember)}.accordion-list details[open] summary span{transform:rotate(45deg)}.accordion-list details p{max-width:720px;padding:0 44px 25px 4px;margin:0;color:var(--bark-soft);font-size:17px;line-height:1.8;animation:editorialReveal .35s ease}@keyframes editorialReveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
/* Premium Back to Top */
.back-to-top {
    position: fixed;
    right: 26px;
    bottom: 26px;
    z-index: 998;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 250, 241, .26);
    border-radius: 50%;
    padding: 0;
    overflow: visible;
    appearance: none;
    background: rgba(20, 18, 24, .58);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .18);
    color: #fffaf1;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 10px, 0) scale(.94);
    transition: opacity .45s ease, visibility .45s ease, transform .45s cubic-bezier(.22, .61, .36, 1), background .3s ease;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0) scale(1);
}

.back-to-top:hover,
.back-to-top:focus-visible {
    background: rgba(20, 18, 24, .78);
    outline: none;
    transform: translate3d(0, -3px, 0) scale(1.02);
}

.back-to-top-progress {
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: conic-gradient(#d4b071 var(--scroll-progress, 0%), rgba(255, 250, 241, .13) 0);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1px), #000 0);
    mask: radial-gradient(farthest-side, transparent calc(100% - 1px), #000 0);
    pointer-events: none;
}

.back-to-top-icon {
    position: relative;
    width: 14px;
    height: 18px;
    display: block;
}

.back-to-top-line {
    position: absolute;
    top: 5px;
    left: 6.5px;
    width: 1px;
    height: 12px;
    background: currentColor;
}

.back-to-top-arrow {
    position: absolute;
    top: 2px;
    left: 3px;
    width: 7px;
    height: 7px;
    border-top: 1px solid currentColor;
    border-left: 1px solid currentColor;
    transform: rotate(45deg);
}

@media (max-width: 760px) {
    .back-to-top {
        right: 16px;
        bottom: 16px;
        width: 44px;
        height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .back-to-top {
        transition: opacity .01ms linear, visibility .01ms linear;
    }

    .back-to-top:hover,
    .back-to-top:focus-visible {
        transform: translate3d(0, 0, 0) scale(1);
    }
}


/* ==========================================
   ATLANTIS-INSPIRED EDITORIAL SCENES
   The image stays pinned while the next scene rises over it.
========================================== */
.editorial-scene-stack{
    position:relative;
    z-index:2;
    background:#17141a;
    overflow:visible;
}

.editorial-scene{
    position:relative;
    height:180vh;
    margin:0;
    isolation:isolate;
}

.editorial-scene + .editorial-scene{
    margin-top:-100vh;
}

.editorial-scene-panel{
    position:sticky;
    top:0;
    height:100vh;
    height:100svh;
    min-height:620px;
    overflow:hidden;
    background:#17141a;
}

.editorial-scene-media{
    position:absolute;
    inset:0;
    background-image:var(--scene-image);
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    transform:translate3d(0,0,0) scale(1.03);
    will-change:transform,clip-path;
}

.editorial-scene-overlay{
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(16,13,18,.12) 0%,rgba(16,13,18,.08) 35%,rgba(16,13,18,.82) 100%),radial-gradient(100% 90% at 50% 45%,transparent 30%,rgba(16,13,18,.5) 100%);
}

.editorial-scene-content{
    position:absolute;
    right:clamp(1.25rem,8vw,9rem);
    bottom:clamp(3rem,12vh,9rem);
    left:clamp(1.25rem,8vw,9rem);
    z-index:2;
    max-width:720px;
    color:#fffaf1;
    opacity:calc(1 - var(--scene-exit,0));
    transform:translateY(calc(var(--scene-exit,0) * -42px));
    transition:opacity .18s linear,transform .18s linear;
}

.editorial-scene-eyebrow{
    display:block;
    margin-bottom:1rem;
    color:#f2d4a8;
    font-size:.72rem;
    font-weight:600;
    letter-spacing:.28em;
    text-transform:uppercase;
}

.editorial-scene-content h2{
    max-width:760px;
    margin:0 0 1.25rem;
    font-family:var(--display,'Fraunces',Georgia,serif);
    font-size:clamp(3rem,7vw,7rem);
    font-weight:500;
    letter-spacing:-.045em;
    line-height:.94;
}

.editorial-scene-content p{
    max-width:560px;
    margin:0 0 1.7rem;
    color:rgba(255,250,241,.84);
    font-size:clamp(1rem,1.5vw,1.25rem);
    line-height:1.65;
}

.editorial-scene-link{
    display:inline-flex;
    gap:.65rem;
    align-items:center;
}





/* ==========================================
   CENTERED EDITORIAL HERO TREATMENT
   Inspired by luxury editorial hospitality layouts.
========================================== */
.hero-content{
    right:0;
    bottom:0;
    width:min(92vw,980px);
    max-width:980px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}

.hero-eyebrow,
.editorial-scene-eyebrow{
    font-family:var(--body,'Work Sans',Arial,sans-serif);
    font-weight:500;
    letter-spacing:.32em;
}

.hero h1,
.editorial-scene-content h2{
    font-family:var(--display,'Fraunces',Georgia,serif);
    font-weight:500;
    letter-spacing:-.045em;
    text-align:center;
}

.hero h1{
    max-width:820px;
    font-size:clamp(3.4rem,7.5vw,7.2rem);
    line-height:.95;
}

.hero p{
    max-width:680px;
    text-align:center;
    color:rgba(255,255,255,.86);
}

.hero-actions{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:14px;
}

.editorial-scene-content{
    right:0;
    bottom:0;
    left:0;
    width:min(90vw,900px);
    margin:auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
}

.editorial-scene-content h2{
    max-width:850px;
}

.editorial-scene-content p{
    text-align:center;
}

.glass-explore{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.7rem;
    min-width:154px;
    min-height:50px;
    padding:13px 22px;
    border:1px solid rgba(255,255,255,.52)!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.13)!important;
    color:#fff!important;
    box-shadow:0 10px 34px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.22);
    backdrop-filter:blur(14px) saturate(125%);
    -webkit-backdrop-filter:blur(14px) saturate(125%);
    font-family:var(--body,'Work Sans',Arial,sans-serif);
    font-size:.76rem;
    font-weight:600;
    letter-spacing:.14em;
    text-transform:uppercase;
    transition:background .35s ease,border-color .35s ease,box-shadow .35s ease,transform .35s ease;
}

.glass-explore span{
    font-size:1rem;
    line-height:1;
    transition:transform .35s ease;
}

.glass-explore:hover,
.glass-explore:focus-visible{
    border-color:rgba(255,255,255,.9)!important;
    background:rgba(255,255,255,.23)!important;
    box-shadow:0 14px 42px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.3);
    transform:translateY(-3px);
}

.glass-explore:hover span,
.glass-explore:focus-visible span{
    transform:translate(3px,-2px);
}

@media(max-width:760px){
    .hero-content{width:calc(100vw - 32px)}
    .hero h1{font-size:clamp(2.9rem,13vw,5rem)}
    .hero p{font-size:1rem;line-height:1.55}
    .hero-actions{gap:10px}
    .glass-explore{min-height:46px;padding:11px 18px;font-size:.68rem}
    .editorial-scene-content{width:calc(100vw - 36px)}
}

@media(prefers-reduced-motion:reduce){
    .glass-explore,.glass-explore span{transition:none}
}

/* ==========================================
   SINGLE HERO / BOTTOM-LEFT EDITORIAL VARIANT
========================================== */
.hero-content{
    top:auto;
    left:clamp(1.25rem,8vw,9rem);
    right:clamp(1.25rem,8vw,9rem);
    bottom:clamp(3rem,12vh,9rem);
    transform:translateY(calc(var(--hero-exit,0) * -40px));
    width:auto;
    max-width:820px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-end;
    text-align:left;
}

.hero h1{
    max-width:780px;
    font-size:clamp(3.2rem,7vw,6.6rem);
    line-height:.95;
    text-align:left;
}

.hero p{
    max-width:560px;
    text-align:left;
    color:rgba(255,255,255,.86);
}

.hero-actions{
    display:flex;
    justify-content:flex-start;
    align-items:center;
    flex-wrap:wrap;
    gap:14px;
}

.editorial-scene-content{
    left:clamp(1.25rem,8vw,9rem);
    right:clamp(1.25rem,8vw,9rem);
    bottom:clamp(3rem,12vh,9rem);
    width:auto;
    margin:0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    text-align:left;
}

.editorial-scene-content h2{
    max-width:720px;
    text-align:left;
}

.editorial-scene-content p{
    text-align:left;
}

@media(max-width:760px){
    .hero-content{left:1.25rem;right:1.25rem;bottom:3.25rem;width:auto}
    .hero h1{font-size:clamp(3rem,13vw,5.1rem)}
    .hero p{font-size:1rem;line-height:1.55}
    .editorial-scene-content{left:1.25rem;right:1.25rem;bottom:3.25rem;width:auto}
}

@media(prefers-reduced-motion:reduce){
    .hero-content{transform:none}
}

/* ==========================================
   CENTERED COMPACT EDITORIAL VARIANT
========================================== */
.hero-content{
    top:50%;
    left:50%;
    right:auto;
    bottom:auto;
    transform:translate(-50%,calc(-50% - var(--hero-exit,0) * 40px));
    width:min(92vw,760px);
    max-width:760px;
    align-items:center;
    justify-content:center;
    text-align:center;
}

.hero h1{
    max-width:640px;
    font-size:clamp(2.2rem,4vw,3.8rem);
    line-height:1.05;
    text-align:center;
}

.hero p{
    max-width:480px;
    font-size:1rem;
    text-align:center;
}

.hero-actions{
    justify-content:center;
}

.editorial-scene-content{
    top:50%;
    left:50%;
    right:auto;
    bottom:auto;
    transform:translate(-50%,calc(-50% + var(--scene-exit,0) * -42px));
    width:min(90vw,680px);
    margin:0;
    align-items:center;
    text-align:center;
}

.editorial-scene-content h2{
    max-width:600px;
    font-size:clamp(1.9rem,3.4vw,3.1rem);
    line-height:1.08;
    text-align:center;
}

.editorial-scene-content p{
    max-width:480px;
    font-size:1rem;
    text-align:center;
}

.hero-eyebrow,
.editorial-scene-eyebrow{
    font-size:.7rem;
    letter-spacing:.26em;
}

.editorial-scene-link.glass-explore,
.hero-actions .glass-explore{
    min-width:150px;
}

@media(max-width:760px){
    .hero-content{top:50%;left:50%;right:auto;bottom:auto;width:calc(100vw - 36px);max-width:560px}
    .hero h1{font-size:clamp(2.15rem,9vw,3.25rem)}
    .hero p{font-size:.95rem}
    .editorial-scene-content{top:50%;left:50%;right:auto;bottom:auto;width:calc(100vw - 36px)}
    .editorial-scene-content h2{font-size:clamp(1.85rem,8vw,2.7rem)}
}

/* ==========================================
   TRUST BADGE & SIGNATURE ITINERARIES
========================================== */
.stat-box-link{
    display:block;
    text-decoration:none;
    color:inherit;
    transition:transform .3s ease,opacity .3s ease;
}

.stat-box-link:hover,
.stat-box-link:focus-visible{
    transform:translateY(-4px);
    opacity:.9;
}

.stat-box-link h2 small{
    font-size:.4em;
    font-weight:500;
    opacity:.75;
}

.signature-itineraries{
    padding:90px 6%;
    background:var(--sand,#f7f2e8);
}

.signature-itineraries .section-heading{
    max-width:760px;
    margin:0 auto;
    text-align:center;
}

.signature-itineraries .section-heading p{
    color:var(--bark-soft,#665c55);
    line-height:1.7;
}

.signature-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:28px;
    max-width:1100px;
    margin:38px auto 0;
}

.signature-card{
    display:block;
    text-decoration:none;
    color:inherit;
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 10px 26px rgba(42,36,56,.08);
    transition:transform .35s ease,box-shadow .35s ease;
}

.signature-card:hover,
.signature-card:focus-visible{
    transform:translateY(-6px);
    box-shadow:0 18px 38px rgba(42,36,56,.14);
}

.signature-card img{
    width:100%;
    height:230px;
    object-fit:cover;
    display:block;
}

.signature-card-body{padding:26px 24px 30px}

.signature-duration{
    display:block;
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--ember,#c85d2e);
    margin-bottom:8px;
}

.signature-card-body h3{
    font-family:var(--display);
    font-size:22px;
    color:var(--bark,#2a2438);
    margin:0 0 8px;
}

.signature-card-body > p{
    color:var(--bark-soft,#665c55);
    font-size:14.5px;
    margin:0 0 14px;
}

.signature-price{
    display:block;
    font-weight:700;
    color:var(--bark,#2a2438);
    margin-bottom:16px;
}

.signature-price small{font-weight:400;opacity:.7}
.signature-link{font-weight:700;color:var(--ember,#c85d2e)}

@media(max-width:760px){
    .signature-grid{grid-template-columns:1fr}
    .signature-itineraries{padding:60px 6%}
}


/* ==========================================
   LIGHT PREMIUM NEUMORPHISM
   Applied only to tactile content surfaces.
========================================== */
:root{
    --neo-surface:#f4efe7;
    --neo-light:rgba(255,255,255,.82);
    --neo-dark:rgba(82,67,55,.14);
    --neo-shadow:8px 8px 18px var(--neo-dark),-8px -8px 18px var(--neo-light);
    --neo-shadow-soft:5px 5px 14px rgba(82,67,55,.10),-5px -5px 14px rgba(255,255,255,.72);
    --neo-shadow-inset:inset 4px 4px 10px rgba(82,67,55,.10),inset -4px -4px 10px rgba(255,255,255,.70);
}

/* Cards remain warm and tactile without affecting the cinematic hero. */
.signature-card,
.planner-box,
.testimonial-card,
.location-card,
.team-card,
.faq-section details{
    background:var(--neo-surface);
    border:1px solid rgba(255,255,255,.42);
    box-shadow:var(--neo-shadow-soft);
}

.signature-card:hover,
.signature-card:focus-visible,
.team-card:hover{
    box-shadow:var(--neo-shadow);
}

.signature-card-body{
    background:transparent;
}

/* Soft raised statistic tiles, including the TripAdvisor link. */
.stats .stat-box{
    margin:10px;
    border-radius:18px;
    background:rgba(255,255,255,.035);
    box-shadow:5px 5px 12px rgba(0,0,0,.13),-4px -4px 10px rgba(255,255,255,.035);
}

.stats .stat-box-link:hover,
.stats .stat-box-link:focus-visible{
    box-shadow:var(--neo-shadow-soft);
}

/* Form controls get a discreet pressed-in treatment. */
.planner-box{
    border:1px solid rgba(255,255,255,.55);
    box-shadow:var(--neo-shadow);
}

.field input,
.field select,
.planner-days input,
.planner-chip span{
    background:var(--neo-surface);
    border-color:rgba(82,67,55,.10);
    box-shadow:var(--neo-shadow-inset);
}

.field input:focus,
.field select:focus,
.planner-days input:focus{
    border-color:rgba(200,93,46,.48);
    box-shadow:var(--neo-shadow-inset),0 0 0 3px rgba(200,93,46,.10);
}

.planner-chip.active span{
    box-shadow:inset 3px 3px 8px rgba(71,28,12,.18),inset -3px -3px 8px rgba(255,255,255,.14);
}

@media(max-width:760px){
    .stats .stat-box{margin:6px 0}
    .signature-card,
    .planner-box,
    .testimonial-card,
    .location-card{box-shadow:var(--neo-shadow-soft)}
}

@media(prefers-reduced-motion:reduce){
    .signature-card,
    .team-card,
    .stat-box-link{transition:none}
}


/* ==========================================
   PREMIUM CONTACT CHANNEL SELECTOR
========================================== */
.contact-modal{
    position:fixed;
    inset:0;
    z-index:1200;
    display:grid;
    place-items:center;
    padding:24px;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s ease,visibility .35s ease;
}

.contact-modal.open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
}

.contact-modal-overlay{
    position:absolute;
    inset:0;
    background:rgba(23,20,26,.62);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
}

.contact-modal-content{
    position:relative;
    z-index:1;
    width:min(100%,620px);
    padding:42px;
    border:1px solid rgba(255,255,255,.42);
    border-radius:28px;
    background:rgba(244,239,231,.93);
    box-shadow:0 24px 80px rgba(0,0,0,.28),8px 8px 22px rgba(82,67,55,.12),-8px -8px 22px rgba(255,255,255,.42);
    transform:translateY(18px) scale(.98);
    transition:transform .4s cubic-bezier(.22,.61,.36,1);
}

.contact-modal.open .contact-modal-content{
    transform:translateY(0) scale(1);
}

.contact-modal-close{
    position:absolute;
    top:16px;
    right:18px;
    width:38px;
    height:38px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.36);
    color:var(--bark,#2a2438);
    font-size:25px;
    line-height:1;
    cursor:pointer;
    box-shadow:var(--neo-shadow-soft);
    transition:transform .25s ease,box-shadow .25s ease;
}

.contact-modal-close:hover,
.contact-modal-close:focus-visible{
    transform:translateY(-2px);
    box-shadow:var(--neo-shadow);
}

.contact-modal-header{text-align:center;margin-bottom:26px}
.contact-modal-header h2{margin:8px 0 10px;color:var(--bark,#2a2438)}
.contact-modal-header p{margin:0;color:var(--bark-soft,#665c55);line-height:1.6}

.contact-options{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

.contact-option-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:14px;
    padding:22px 14px;
    border:1px solid rgba(255,255,255,.50);
    border-radius:20px;
    background:rgba(255,255,255,.34);
    color:var(--bark,#2a2438);
    text-decoration:none;
    text-align:center;
    box-shadow:var(--neo-shadow-soft);
    transition:transform .3s ease,box-shadow .3s ease,background .3s ease;
}

.contact-option-card:hover,
.contact-option-card:focus-visible{
    transform:translateY(-4px);
    background:rgba(255,255,255,.58);
    box-shadow:var(--neo-shadow);
}

.contact-option-icon{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    border-radius:50%;
    color:#fff;
    box-shadow:0 8px 18px rgba(42,36,56,.18);
}

.contact-option-icon svg{width:25px;height:25px}
.contact-option-icon.whatsapp{background:#25d366}
.contact-option-icon.email{background:#c85d2e}
.contact-option-icon.messenger{background:#168aff}
.contact-option-body h3{margin:0 0 5px;font-size:16px;color:var(--bark,#2a2438)}
.contact-option-body p{margin:0;font-size:12px;line-height:1.45;color:var(--bark-soft,#665c55)}

@media(max-width:640px){
    .contact-modal{padding:16px}
    .contact-modal-content{padding:38px 18px 22px;border-radius:22px}
    .contact-options{grid-template-columns:1fr;gap:10px}
    .contact-option-card{flex-direction:row;text-align:left;padding:14px 16px}
    .contact-option-icon{flex:0 0 42px;width:42px;height:42px}
    .contact-option-body{flex:1}
}

@media(prefers-reduced-motion:reduce){
    .contact-modal,.contact-modal-content,.contact-option-card,.contact-modal-close{transition:none}
}


/* ==========================================
   CIRCUIT DETAIL PAGES
========================================== */
.circuit-detail-page{background:var(--sand,#f4efe7);color:var(--bark,#2a2438)}
.circuit-detail-page #navbar{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(23,20,26,.78);padding:18px 6%;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.circuit-detail-page #navbar .logo,.circuit-detail-page #navbar nav a{color:#fffaf1}
.circuit-detail-hero{min-height:78vh;display:grid;grid-template-columns:1.1fr .9fr;align-items:stretch;background:var(--dusk,#17141a);color:#fffaf1}
.circuit-detail-hero-media{min-height:78vh;overflow:hidden}
.circuit-detail-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.circuit-detail-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:120px 8% 80px}
.circuit-detail-hero-copy h1{font-family:var(--display,Georgia,serif);font-size:clamp(42px,5vw,76px);line-height:1.03;margin:16px 0 22px}
.circuit-detail-hero-copy p{font-size:20px;line-height:1.6;margin:0 0 30px;color:rgba(255,250,241,.8)}
.circuit-detail-content{max-width:1120px;margin:0 auto;padding:100px 6%}
.circuit-day-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:0;margin:40px 0 60px;list-style:none}
.circuit-day-list li{padding:22px 24px;border-radius:18px;background:var(--neo-surface,#f4efe7);box-shadow:var(--neo-shadow-soft,5px 5px 14px rgba(82,67,55,.1),-5px -5px 14px rgba(255,255,255,.72));line-height:1.6}
.circuit-day-list strong{display:block;color:var(--ember,#c85d2e);font-family:var(--display,Georgia,serif);font-size:18px;margin-bottom:5px}
.circuit-price-card{padding:36px;border-radius:24px;background:var(--neo-surface,#f4efe7);box-shadow:var(--neo-shadow,8px 8px 18px rgba(82,67,55,.14),-8px -8px 18px rgba(255,255,255,.82))}
.circuit-price-card h2{font-family:var(--display,Georgia,serif);font-size:clamp(30px,4vw,52px);margin:12px 0}
.circuit-price-card p{max-width:720px;line-height:1.7}
@media(max-width:760px){.circuit-detail-hero{grid-template-columns:1fr;min-height:auto}.circuit-detail-hero-media{min-height:48vh}.circuit-detail-hero-copy{padding:60px 7% 72px}.circuit-detail-hero-copy h1{font-size:46px}.circuit-day-list{grid-template-columns:1fr}.circuit-detail-content{padding:72px 7%}.circuit-price-card{padding:26px 22px}}

.circuit-whatsapp-cta{max-width:1120px;margin:0 auto 90px;padding:34px 40px;display:flex;align-items:center;justify-content:space-between;gap:28px;border-radius:24px;background:var(--neo-surface,#f4efe7);box-shadow:var(--neo-shadow,8px 8px 18px rgba(82,67,55,.14),-8px -8px 18px rgba(255,255,255,.82))}
.circuit-whatsapp-cta h2{font-family:var(--display,Georgia,serif);font-size:clamp(28px,4vw,48px);margin:8px 0}
.circuit-whatsapp-cta p{margin:0;color:var(--bark-soft,#6f6258)}
.circuit-whatsapp-cta .btn{flex:none}
@media(max-width:760px){.circuit-whatsapp-cta{margin:0 7% 64px;padding:28px 24px;display:block}.circuit-whatsapp-cta .btn{display:inline-block;margin-top:22px}}


/* ==========================================
   CIRCUIT WILDLIFE GALLERIES
   Documentary image plates below each circuit.
========================================== */
.circuit-wildlife{
    max-width:1120px;
    margin:0 auto 90px;
    padding:72px 6%;
}
.circuit-wildlife-heading{
    max-width:700px;
    margin:0 0 34px;
}
.circuit-wildlife-heading h2{
    margin:10px 0 12px;
    color:var(--bark,#2a2438);
    font-family:var(--display,Georgia,serif);
    font-size:clamp(30px,4vw,52px);
    line-height:1.05;
}
.circuit-wildlife-heading p{
    max-width:620px;
    color:var(--bark-soft,#665c55);
    line-height:1.75;
}
.circuit-wildlife-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}
.circuit-wildlife-plate{
    margin:0;
    overflow:hidden;
    background:#fff;
    border-radius:20px;
    box-shadow:0 16px 36px rgba(42,36,56,.1);
}
.circuit-wildlife-plate img{
    display:block;
    width:100%;
    aspect-ratio:3 / 2;
    object-fit:cover;
    transition:transform .35s cubic-bezier(.23,1,.32,1);
}
.circuit-wildlife-plate:hover img,
.circuit-wildlife-plate:focus-within img{transform:scale(1.035)}
.circuit-wildlife-plate figcaption{
    padding:16px 18px 18px;
    color:var(--bark-soft,#665c55);
    font-size:13px;
    line-height:1.55;
}
.circuit-wildlife-plate figcaption strong{
    display:block;
    margin-bottom:4px;
    color:var(--bark,#2a2438);
    font-family:var(--display,Georgia,serif);
    font-size:19px;
}
@media(max-width:760px){
    .circuit-wildlife{margin-bottom:64px;padding:56px 7%}
    .circuit-wildlife-grid{grid-template-columns:1fr;gap:18px}
}
@media(prefers-reduced-motion:reduce){
    .circuit-wildlife-plate img{transition:none}
}


/* ==========================================
   MOBILE HERO VISIBILITY PATCH
   Keeps the hero image visible on small screens
   and moves section controls away from the copy.
========================================== */
@media (max-width: 760px){
    .hero{
        visibility:visible !important;
    }

    .editorial-scene-stack{
        z-index:1;
    }

    .editorial-scene{
        height:140svh;
    }

    .editorial-scene + .editorial-scene{
        margin-top:-40svh;
    }

    .editorial-scene-panel{
        height:100svh;
        min-height:0;
    }

    .editorial-scene-content{
        right:1.25rem;
        bottom:calc(6.5rem + env(safe-area-inset-bottom));
        left:1.25rem;
    }

    .section-step-nav{
        top:auto;
        right:.75rem;
        bottom:calc(1rem + env(safe-area-inset-bottom));
        flex-direction:row;
        gap:.4rem;
        transform:none;
    }

    .section-step-nav button{
        width:2.35rem;
        height:2.35rem;
    }

    .section-step-count{
        display:none;
    }
}

@media (max-width: 380px){
    .editorial-scene-content{
        right:1rem;
        left:1rem;
    }

    .editorial-scene-content h2{
        font-size:clamp(2.35rem,11.5vw,3.2rem);
    }

    .editorial-scene-content p{
        font-size:.95rem;
        line-height:1.5;
    }
}


/* ==========================================
   FINAL MOBILE HERO FIX
   Ensures the hero is full-screen and visible,
   and prevents any side-by-side or overlap bugs.
========================================== */
@media (max-width: 760px){
    /* Force body to prevent horizontal shifts */
    body {
        overflow-x: hidden !important;
        position: relative;
        width: 100%;
    }

    .hero{
        position:relative !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100svh !important;
        min-height: 100svh !important;
        z-index: 1 !important;
        visibility:visible !important;
        overflow: hidden !important;
    }

    .hero .slider,
    .hero .slide,
    .hero .slide-media{
        width: 100% !important;
        height: 100% !important;
        min-height: 100% !important;
        left: 0 !important;
        top: 0 !important;
    }

    /* Disable all clip-paths on mobile to avoid rendering bugs */
    .hero .slide,
    .hero .slide.is-active,
    .hero .slide.is-leaving {
        -webkit-clip-path: none !important;
        clip-path: none !important;
        opacity: 0;
        transition: opacity 0.6s ease-in-out !important;
    }

    .hero .slide.is-active {
        opacity: 1;
        z-index: 2;
    }

    .editorial-scene-stack{
        position:relative !important;
        width: 100% !important;
        z-index: 2 !important;
        margin-top: 0 !important;
        background: #17141a;
    }

    .editorial-scene,
    .editorial-scene + .editorial-scene{
        width: 100% !important;
        height: auto !important;
        min-height: 100svh !important;
        margin-top: 0 !important;
        position: relative !important;
    }

    .editorial-scene-panel{
        position:relative !important;
        width: 100% !important;
        top: auto !important;
        height: 100svh !important;
        min-height: 560px;
        overflow: hidden !important;
    }

    .editorial-scene-media{
        position:absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        z-index: 0;
    }

    .editorial-scene-content{
        width: calc(100% - 2.5rem) !important;
        max-width: none !important;
        right: 1.25rem !important;
        left: 1.25rem !important;
        bottom: calc(6rem + env(safe-area-inset-bottom)) !important;
        z-index: 2;
        transform: none !important;
        opacity: 1 !important;
    }

    /* Masqué sur mobile : la navigation par flèches gênait l'affichage et interceptait des clics */
    .section-step-nav{
        display: none !important;
    }

    /* Fix the logo color which was inheriting white by default */
    .logo span {
        color: var(--gold) !important;
    }
}

/* ==========================================
   FIX MOBILE COMPLET : Boutons Explore & Request a quote
   CORRECTION DU PROBLÈME DE CLIC CÔTÉ DROIT
   ========================================== */

/* ==========================================
   1. CORRECTION PRIORITAIRE : ZONE CLIC
   ========================================== */
@media (max-width: 760px) {
    /* Force les boutons à être entièrement cliquables */
    .glass-explore,
    .hero-actions .btn,
    .hero-actions .btn-outline,
    .hero-actions a {
        position: relative !important;
        z-index: 15 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 54px !important;
        min-width: 170px !important;
        padding: 16px 28px !important;
        font-size: 0.8rem !important;
        border-radius: 999px !important;
        cursor: pointer !important;
        pointer-events: auto !important;
        -webkit-tap-highlight-color: transparent !important;
        touch-action: manipulation !important;
        user-select: none !important;
        -webkit-user-select: none !important;
    }

    /* Conteneur des boutons */
    .hero-actions {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 14px !important;
        justify-content: center !important;
        align-items: center !important;
        width: 100% !important;
        max-width: 450px !important;
        margin: 10px auto 0 !important;
        position: relative !important;
        z-index: 10 !important;
        pointer-events: auto !important;
    }

    /* Chaque bouton doit être dans son propre conteneur */
    .hero-actions a,
    .hero-actions .btn {
        flex: 0 1 auto !important;
        min-width: 160px !important;
        pointer-events: auto !important;
    }

    /* Empêche tout élément de masquer les boutons */
    .hero-content {
        padding-bottom: 120px !important;
        z-index: 5 !important;
        width: calc(100vw - 32px) !important;
        max-width: 480px !important;
        left: 50% !important;
        right: auto !important;
        top: 50% !important;
        bottom: auto !important;
        transform: translate(-50%, calc(-50% - var(--hero-exit,0) * 40px)) !important;
        pointer-events: none !important;
    }

    /* Réactive les événements sur les boutons */
    .hero-content * {
        pointer-events: auto !important;
    }

    .hero h1 {
        font-size: clamp(2.4rem, 12vw, 3.8rem) !important;
        text-align: center !important;
        pointer-events: none !important;
    }

    .hero p {
        font-size: 0.95rem !important;
        text-align: center !important;
        padding: 0 8px !important;
        pointer-events: none !important;
    }

    .hero-eyebrow {
        pointer-events: none !important;
    }

    /* Assure que l'overlay ne bloque pas les clics */
    .overlay {
        pointer-events: none !important;
    }

    /* Le slider ne doit pas bloquer les clics */
    .slider,
    .slide,
    .slide-media {
        pointer-events: none !important;
    }

    /* Supprime les éléments qui pourraient bloquer les clics */
    .hero-dots,
    .hero-scroll-cue {
        display: none !important;
    }
}

/* ==========================================
   2. CORRECTION SPÉCIFIQUE POUR LE BOUTON "EXPLORE"
   ========================================== */
@media (max-width: 760px) {
    .glass-explore {
        background: rgba(255, 255, 255, 0.18) !important;
        border: 1.5px solid rgba(255, 255, 255, 0.7) !important;
        color: #fff !important;
        backdrop-filter: blur(14px) saturate(125%) !important;
        -webkit-backdrop-filter: blur(14px) saturate(125%) !important;
        box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
        transition: all 0.3s ease !important;
        width: 100% !important;
        max-width: 220px !important;
    }

    .glass-explore:active {
        transform: scale(0.96) !important;
        background: rgba(255, 255, 255, 0.3) !important;
    }

    .glass-explore span {
        pointer-events: none !important;
    }

    /* Bouton "Request a quote" */
    .hero-actions .btn-outline {
        background: rgba(255, 255, 255, 0.12) !important;
        border: 1.5px solid rgba(255, 255, 255, 0.5) !important;
        color: #fff !important;
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
        width: 100% !important;
        max-width: 220px !important;
    }

    .hero-actions .btn-outline:active {
        transform: scale(0.96) !important;
        background: rgba(255, 255, 255, 0.25) !important;
    }

    /* Augmente la zone de clic sans affecter le design */
    .hero-actions a::after {
        content: '' !important;
        position: absolute !important;
        inset: -8px !important;
        border-radius: 999px !important;
        pointer-events: auto !important;
        z-index: -1 !important;
    }

    /* Force le clic sur toute la surface du bouton */
    .hero-actions a * {
        pointer-events: none !important;
    }

    .glass-explore span[aria-hidden="true"] {
        display: inline-block !important;
        margin-left: 4px !important;
        font-size: 1.1rem !important;
    }

    .hero-actions .btn {
        letter-spacing: 0.08em !important;
        font-weight: 600 !important;
        text-transform: uppercase !important;
    }
}

/* ==========================================
   3. CORRECTION CONTACT MODAL
   ========================================== */
@media (max-width: 640px) {
    .contact-modal {
        padding: 12px !important;
        z-index: 1200 !important;
        pointer-events: auto !important;
    }

    .contact-modal.open {
        display: grid !important;
    }

    .contact-modal-overlay {
        pointer-events: auto !important;
        cursor: pointer !important;
    }

    .contact-modal-content {
        padding: 32px 16px 24px !important;
        border-radius: 20px !important;
        margin: 0 !important;
        max-height: 92vh !important;
        overflow-y: auto !important;
        width: 100% !important;
        transform: translateY(0) scale(1) !important;
        pointer-events: auto !important;
        position: relative !important;
        z-index: 1201 !important;
        scrollbar-width: thin !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .contact-modal-content::-webkit-scrollbar {
        width: 4px !important;
    }

    .contact-modal-content::-webkit-scrollbar-track {
        background: transparent !important;
    }

    .contact-modal-content::-webkit-scrollbar-thumb {
        background: rgba(42, 36, 56, 0.2) !important;
        border-radius: 10px !important;
    }

    .contact-modal-header {
        margin-bottom: 20px !important;
    }

    .contact-modal-header h2 {
        font-size: 24px !important;
        margin: 6px 0 8px !important;
    }

    .contact-modal-header p {
        font-size: 14px !important;
        line-height: 1.5 !important;
    }

    .contact-options {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .contact-option-card {
        flex-direction: row !important;
        text-align: left !important;
        padding: 14px 16px !important;
        gap: 14px !important;
        min-height: 60px !important;
        align-items: center !important;
        border-radius: 16px !important;
        pointer-events: auto !important;
        cursor: pointer !important;
        touch-action: manipulation !important;
    }

    .contact-option-card:active {
        transform: scale(0.98) !important;
    }

    .contact-option-icon {
        flex: 0 0 44px !important;
        width: 44px !important;
        height: 44px !important;
    }

    .contact-option-icon svg {
        width: 22px !important;
        height: 22px !important;
    }

    .contact-option-body {
        flex: 1 !important;
    }

    .contact-option-body h3 {
        font-size: 15px !important;
        margin: 0 0 2px !important;
    }

    .contact-option-body p {
        font-size: 12px !important;
        margin: 0 !important;
        line-height: 1.3 !important;
    }

    .contact-modal-close {
        top: 12px !important;
        right: 12px !important;
        width: 34px !important;
        height: 34px !important;
        font-size: 22px !important;
        line-height: 1 !important;
        display: grid !important;
        place-items: center !important;
        pointer-events: auto !important;
        cursor: pointer !important;
        z-index: 1202 !important;
    }
}

/* ==========================================
   4. CORRECTION MENU BURGER
   ========================================== */
@media (max-width: 760px) {
    .nav-quote-btn {
        display: inline-block !important;
        margin: 0.4rem 0 !important;
        padding: 0.6rem 1.2rem !important;
        font-size: 0.75rem !important;
        border-radius: 999px !important;
        text-align: center !important;
        width: auto !important;
        pointer-events: auto !important;
        touch-action: manipulation !important;
        z-index: 15 !important;
        position: relative !important;
    }

    #navbar nav {
        padding-bottom: 24px !important;
        padding-top: 12px !important;
        pointer-events: auto !important;
    }

    #navbar nav a {
        padding: 10px 0 !important;
        font-size: 16px !important;
        pointer-events: auto !important;
        touch-action: manipulation !important;
    }

    #navbar nav a:last-of-type {
        margin-bottom: 8px !important;
    }

    #navbar .nav-burger {
        z-index: 110 !important;
        cursor: pointer !important;
        pointer-events: auto !important;
        touch-action: manipulation !important;
    }

    #navbar .logo {
        font-size: 18px !important;
        z-index: 110 !important;
        pointer-events: none !important;
    }

    #nav-toggle:checked ~ nav {
        padding-top: 80px !important;
        padding-bottom: 40px !important;
        overflow-y: auto !important;
        max-height: 100vh !important;
    }

    /* Le toggle ne doit pas bloquer les clics */
    .nav-toggle {
        pointer-events: auto !important;
        touch-action: manipulation !important;
        z-index: 120 !important;
        position: absolute !important;
        opacity: 0 !important;
        width: 44px !important;
        height: 44px !important;
        right: 16px !important;
        top: 14px !important;
        cursor: pointer !important;
    }
}

/* ==========================================
   5. CORRECTION POUR PETITS ÉCRANS
   ========================================== */
@media (max-width: 380px) {
    .hero-actions .btn,
    .hero-actions a {
        min-height: 48px !important;
        min-width: 130px !important;
        padding: 12px 16px !important;
        font-size: 0.7rem !important;
        max-width: 180px !important;
    }

    .glass-explore {
        min-height: 48px !important;
        padding: 12px 18px !important;
        font-size: 0.7rem !important;
        max-width: 180px !important;
    }

    .hero-actions .btn-outline {
        max-width: 180px !important;
    }

    .hero h1 {
        font-size: clamp(2rem, 10vw, 2.8rem) !important;
    }

    .hero-content {
        padding-bottom: 80px !important;
        width: calc(100vw - 24px) !important;
    }

    .hero-actions {
        gap: 10px !important;
        max-width: 380px !important;
    }

    .contact-modal-content {
        padding: 24px 12px 20px !important;
        border-radius: 16px !important;
    }

    .contact-option-card {
        padding: 12px 14px !important;
        min-height: 52px !important;
        gap: 10px !important;
    }

    .contact-option-icon {
        flex: 0 0 38px !important;
        width: 38px !important;
        height: 38px !important;
    }

    .contact-option-icon svg {
        width: 18px !important;
        height: 18px !important;
    }

    .contact-option-body h3 {
        font-size: 14px !important;
    }

    .contact-option-body p {
        font-size: 11px !important;
    }

    .contact-modal-header h2 {
        font-size: 20px !important;
    }
}

/* ==========================================
   6. CORRECTION POUR TABLETTES
   ========================================== */
@media (min-width: 641px) and (max-width: 1024px) {
    .hero-actions .btn,
    .hero-actions a {
        min-width: 180px !important;
        padding: 16px 32px !important;
    }

    .glass-explore {
        min-height: 52px !important;
        padding: 16px 32px !important;
    }

    .contact-options {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    .contact-modal-content {
        max-width: 500px !important;
        padding: 36px 28px !important;
    }
}


/* ==========================================
   HORIZONTAL HERO CAROUSEL — desktop + mobile
========================================== */
#hero-slider{overflow:hidden;touch-action:pan-y;}
#hero-slider .slider-track{position:absolute;inset:0;display:flex;width:100%;height:100%;transition:transform .75s cubic-bezier(.65,.05,.2,1);will-change:transform;}
#hero-slider .slide{position:relative;inset:auto;flex:0 0 100%;width:100%;height:100%;clip-path:none!important;opacity:1!important;transform:none!important;transition:none;overflow:hidden;}
#hero-slider .slide.is-active{z-index:1;}
#hero-slider .slide-media{transform:scale(1.06);transition:none;animation:heroKenBurns 9s ease-out forwards;}
#hero-slider .hero-carousel-controls{position:absolute;z-index:6;left:50%;bottom:42px;display:flex;align-items:center;gap:18px;transform:translateX(-50%);}
#hero-slider .hero-dots{position:static;display:flex;align-items:center;gap:9px;opacity:1;}
#hero-slider .hero-dot{width:34px;height:4px;padding:0;border:0;border-radius:99px;background:rgba(255,255,255,.42);cursor:pointer;transition:background .25s ease,transform .25s ease;}
#hero-slider .hero-dot.is-active,#hero-slider .hero-dot[aria-selected="true"]{background:#fff;transform:scaleY(1.5);}
#hero-slider .hero-dot:focus-visible{outline:2px solid #fff;outline-offset:4px;}
@media(max-width:760px){
  #hero-slider .hero-carousel-controls{bottom:calc(92px + env(safe-area-inset-bottom));gap:11px;}
  #hero-slider .hero-dot{width:27px;height:5px;}
  #hero-slider .slide-media{animation:none;transform:none;}
}
@media(prefers-reduced-motion:reduce){
  #hero-slider .slider-track{transition:none;}
  #hero-slider .slide-media{animation:none;}
}


/* ==========================================
   EDITORIAL SCENES — horizontal image + information carousel
   Overrides the former vertical pinned-scene effect.
========================================== */
#editorial-scenes{display:flex!important;position:relative!important;width:100%!important;height:100svh!important;min-height:560px!important;margin:0!important;overflow:hidden!important;transform:translate3d(0,0,0);transition:transform .75s cubic-bezier(.65,.05,.2,1);will-change:transform;background:#17141a;}
#editorial-scenes .editorial-scene{position:relative!important;flex:0 0 100%!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;isolation:isolate;overflow:hidden;}
#editorial-scenes .editorial-scene-panel{position:relative!important;top:auto!important;width:100%!important;height:100%!important;min-height:0!important;overflow:hidden!important;}
#editorial-scenes .editorial-scene-content{opacity:1!important;transform:none!important;transition:none!important;}
#editorial-scenes .editorial-scene-media{transform:scale(1.03);transition:transform 9s ease-out;}
#editorial-scenes .editorial-scene.is-active .editorial-scene-media{transform:scale(1.10);}
@media(max-width:760px){
  #editorial-scenes{height:100svh!important;min-height:560px!important;}
  #editorial-scenes .editorial-scene{height:100%!important;min-height:0!important;}
  #editorial-scenes .editorial-scene-panel{height:100%!important;min-height:0!important;}
  #editorial-scenes .editorial-scene-content{bottom:calc(4.5rem + env(safe-area-inset-bottom))!important;}
}
@media(prefers-reduced-motion:reduce){#editorial-scenes{transition:none!important;}#editorial-scenes .editorial-scene-media{transition:none!important;}}

/* ==========================================
   FACEBOOK FOLLOW SECTION
========================================== */
.facebook-follow-section{
    padding:90px 6%;
    text-align:center;
    background:var(--sand-deep,#EADFC7);
}
.facebook-follow-section .section-heading{
    max-width:640px;
    margin:0 auto 34px;
}
.facebook-follow-section .section-heading p{
    color:var(--bark-soft,#6B5644);
    line-height:1.7;
    margin-top:10px;
}
.facebook-embed-wrap{
    max-width:500px;
    width:100%;
    margin:0 auto;
}
.facebook-embed-wrap iframe{
    display:block;
    width:100%;
    aspect-ratio:500/683;
    height:auto;
    border:none;
    border-radius:var(--radius-card,20px);
    box-shadow:var(--shadow-soft,0 12px 30px rgba(43,26,10,.10));
}
@media(max-width:600px){
    .facebook-follow-section{padding:60px 6%}
}


/* Official agency references: visible, compact and accessible on every page. */
.official-accreditation{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center;margin-top:1rem;color:rgba(255,250,241,.72);font-size:.72rem;line-height:1.5;}
.official-accreditation strong{color:var(--gold,#d6a85f);letter-spacing:.08em;text-transform:uppercase;}
.official-accreditation span{display:inline-block;}
.official-accreditation a{color:inherit;text-decoration:underline;text-underline-offset:2px;}
.official-accreditation-page{max-width:760px;margin:2rem auto 5rem;padding:clamp(1.5rem,4vw,3rem);display:block;border:1px solid rgba(100,75,45,.18);border-radius:var(--radius-card,20px);background:rgba(255,255,255,.72);color:var(--bark,#3d2b1f);box-shadow:var(--shadow-soft,0 12px 30px rgba(43,26,10,.1));}
.official-accreditation-page h2{margin-top:0;color:var(--bark,#3d2b1f);}
.official-accreditation-page p{line-height:1.75;}
@media(max-width:700px){.official-accreditation{display:block;font-size:.68rem}.official-accreditation span,.official-accreditation a{display:block;margin-top:.25rem}.official-accreditation-page{margin:1rem 1rem 3rem}}


/* ==========================================
   CERTIFICATIONS
========================================== */
.certifications-section {
    background: var(--sand-deep);
    padding: 80px 5%;
    text-align: center;
}

.certifications-inner {
    max-width: 1100px;
    margin: 0 auto;
}

.certifications-section .eyebrow {
    display: inline-block;
    font-size: 12px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ember);
    background: rgba(193, 85, 43, 0.08);
    padding: 6px 18px;
    border-radius: 100px;
    margin-bottom: 12px;
}

.certifications-section h2 {
    font-family: var(--display);
    font-size: clamp(30px, 3.5vw, 44px);
    font-weight: 600;
    color: var(--bark);
    margin-bottom: 12px;
}

.certifications-section > p {
    font-size: 17px;
    color: var(--bark-soft);
    max-width: 640px;
    margin: 0 auto 32px;
    line-height: 1.7;
}

.certifications-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 32px 0;
}

.certification-card {
    background: #fff;
    border-radius: 18px;
    padding: 28px 24px;
    box-shadow: 0 4px 20px rgba(42, 36, 56, 0.06);
    border: 1px solid rgba(42, 36, 56, 0.06);
    transition: var(--transition);
    text-align: left;
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.certification-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(42, 36, 56, 0.1);
    border-color: var(--gold);
}

.cert-icon {
    font-size: 32px;
    flex-shrink: 0;
    line-height: 1;
    margin-top: 4px;
}

.cert-content h3 {
    font-family: var(--display);
    font-size: 16px;
    font-weight: 600;
    color: var(--bark);
    margin: 0 0 6px;
}

.cert-content p {
    font-size: 14px;
    color: var(--bark-soft);
    margin: 0;
    line-height: 1.5;
}

.cert-content p strong {
    color: var(--bark);
    font-weight: 600;
}

.cert-content .cert-date {
    font-size: 13px;
    color: var(--ember);
    font-weight: 500;
    margin-top: 2px;
}

.cert-note {
    font-size: 15px;
    color: var(--bark-soft);
    max-width: 560px;
    margin: 24px auto 0;
    padding: 16px 24px;
    background: rgba(193, 85, 43, 0.06);
    border-radius: 12px;
    border-left: 4px solid var(--gold);
}

@media (max-width: 768px) {
    .certifications-grid {
        grid-template-columns: 1fr;
        max-width: 420px;
        margin: 24px auto;
    }
    
    .certification-card {
        padding: 20px;
    }
}

@media (max-width: 480px) {
    .certifications-section {
        padding: 60px 5%;
    }
}
/* Three-step conversion planner */
.quick-planner{padding:86px 6%;background:#f7f2e8}.quick-planner-inner{max-width:780px;margin:auto}.quick-planner h2{font-size:clamp(32px,5vw,58px);margin:10px 0}.quick-intro{font-size:18px;color:#615b68}.quick-progress{display:flex;gap:10px;margin:28px 0}.quick-progress span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#d8d0c3;color:#2a2438;font-weight:700}.quick-progress span.active{background:#c85f38;color:#fff}.quick-step{display:none;background:#fff;padding:28px;border-radius:16px;box-shadow:0 10px 30px #2a24381c}.quick-step.active{display:grid;gap:15px}.quick-step h3{margin:0 0 4px}.quick-step label{display:grid;gap:6px;font-weight:600}.quick-step input,.quick-step select{padding:13px;border:1px solid #d6d0c7;border-radius:8px;font:inherit}.quick-actions{display:flex;justify-content:space-between;margin-top:18px}.quick-actions #quick-prev{visibility:hidden}.quick-note,.quick-status{font-size:13px;color:#615b68}.quick-status{min-height:20px}.quick-planner .btn{min-height:46px}
