/* ===================================
   MÉRIDIEN — Agence de voyages sur-mesure
   Premium · navy + or sable · mega nav
   =================================== */
:root{
  --navy:#0c1d3f;--navy-deep:#06122a;--navy-soft:#1d3258;
  --sand:#d4b681;--sand-deep:#b39763;--sand-soft:#e8d6b1;
  --ivory:#f6f1e6;--cream:#fbf8f0;
  --ink:#0b1729;--mute:#6a7689;
  --coral:#c46a4a;
  --serif:"Playfair Display",serif;
  --sans:"Lato","Helvetica Neue",sans-serif;
  --mono:"IBM Plex Mono",monospace;
  --pad:clamp(20px,4vw,64px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color .25s ease}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;color:var(--navy);letter-spacing:-0.01em;line-height:1.1}
h1{font-size:clamp(48px,8vw,116px);font-weight:300}
h2{font-size:clamp(34px,4.8vw,64px)}
h3{font-size:clamp(22px,2.4vw,30px)}
h4{font-family:var(--sans);font-size:12px;letter-spacing:0.28em;text-transform:uppercase;color:var(--mute);font-weight:700}

.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--sand-deep);display:inline-flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--sand-deep)}

/* ===== HEADER + MEGA NAV ===== */
.topbar{background:var(--navy-deep);color:var(--sand-soft);padding:8px var(--pad);display:flex;justify-content:space-between;font-size:12px;font-family:var(--mono);letter-spacing:0.08em}
.topbar a{color:var(--sand-soft)}
.topbar a:hover{color:var(--sand)}

.site-header{background:var(--navy);color:var(--ivory);padding:20px var(--pad);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:40px;position:sticky;top:0;z-index:60}
.brand{display:flex;align-items:center;gap:14px;color:var(--ivory)}
.brand-mark{width:48px;height:48px;border:1px solid var(--sand);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--sand);font-family:var(--serif);font-size:24px;font-style:italic}
.brand-text{font-family:var(--serif);font-size:26px;line-height:1}
.brand-text small{display:block;font-family:var(--mono);font-size:9px;letter-spacing:0.4em;text-transform:uppercase;color:var(--sand);margin-top:6px}

.main-nav{display:flex;justify-content:center;gap:36px}
.main-nav > a,.main-nav .has-mega{font-size:13px;letter-spacing:0.16em;text-transform:uppercase;font-weight:600;color:var(--ivory);position:relative;padding:30px 0;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.main-nav > a::after,.main-nav .has-mega::after{content:"";position:absolute;left:0;bottom:24px;width:0;height:1px;background:var(--sand);transition:width .3s ease}
.main-nav > a:hover::after,.main-nav .has-mega:hover::after,.main-nav > a.active::after{width:100%}
.has-mega .chev{font-size:10px;opacity:.6}

.mega{
  position:absolute;top:100%;left:0;right:0;background:var(--navy-deep);color:var(--ivory);
  padding:50px var(--pad);display:none;z-index:60;border-top:1px solid var(--navy-soft);
}
.mega.is-open{display:block}
.mega-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;max-width:1400px;margin:0 auto}
.mega-col h4{color:var(--sand);margin-bottom:14px;letter-spacing:0.15em}
.mega-col a{display:block;padding:6px 0;color:var(--sand-soft);font-size:14px;font-family:var(--serif);font-style:italic}
.mega-col a:hover{color:var(--sand)}
.mega-feature{background:var(--navy);padding:24px;border-radius:8px}
.mega-feature img{aspect-ratio:4/3;object-fit:cover;border-radius:4px;margin-bottom:14px;width:100%}
.mega-feature h4{color:var(--sand)}
.mega-feature p{font-size:13px;margin-top:8px;color:var(--sand-soft)}

.btn-quote{background:var(--sand);color:var(--navy);padding:12px 24px;font-size:13px;letter-spacing:0.16em;text-transform:uppercase;font-weight:700;border-radius:2px;transition:background .2s ease}
.btn-quote:hover{background:var(--ivory)}

.burger{display:none;background:none;border:none;color:var(--ivory);cursor:pointer;width:40px;height:40px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0}
.burger span{width:24px;height:1px;background:var(--ivory)}
@media(max-width:1000px){
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy);flex-direction:column;padding:30px var(--pad);gap:14px;border-top:1px solid var(--navy-soft)}
  .main-nav.open{display:flex}
  .main-nav > a,.main-nav .has-mega{padding:10px 0}
  .mega{position:static;padding:14px 0 0 20px;display:none;background:transparent;border:none}
  .has-mega:hover .mega,.has-mega.is-open .mega{display:block}
  .burger{display:flex}
  .topbar{font-size:10px}
}

/* ===== HERO ===== */
.hero{position:relative;height:90vh;min-height:600px;overflow:hidden;display:flex;align-items:end;color:var(--ivory);padding:0 var(--pad) 60px}
.hero::before{content:"";position:absolute;inset:0;background:url('../img/hero.jpg') center/cover;filter:brightness(.65)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,29,63,.4) 0%,transparent 40%,rgba(12,29,63,.85) 100%)}
.hero-content{position:relative;z-index:2;max-width:1000px}
.hero h1{color:var(--ivory);font-style:italic;font-weight:300;margin:20px 0 28px;max-width:14ch}
.hero h1 .sand{color:var(--sand);font-style:italic}
.hero .lede{font-size:21px;color:rgba(246,241,230,.85);max-width:54ch;line-height:1.6;margin-bottom:30px;font-family:var(--serif);font-style:italic;font-weight:400}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap}

.btn-pri{background:var(--sand);color:var(--navy);padding:18px 32px;font-family:var(--sans);font-size:13px;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;display:inline-flex;align-items:center;gap:10px;border:none;cursor:pointer;transition:background .2s ease}
.btn-pri:hover{background:var(--ivory)}
.btn-out{background:transparent;color:var(--ivory);padding:18px 32px;border:1px solid var(--ivory);font-size:13px;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;display:inline-flex;align-items:center;gap:10px}
.btn-out:hover{background:var(--ivory);color:var(--navy)}

.hero-search{position:absolute;bottom:60px;right:var(--pad);z-index:3;background:rgba(246,241,230,.97);padding:24px 28px;border-radius:6px;color:var(--navy);width:340px;box-shadow:0 20px 50px rgba(6,18,42,.4)}
.hero-search h4{margin-bottom:14px;color:var(--navy)}
.hero-search label{display:block;font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--mute);margin-bottom:4px;margin-top:14px}
.hero-search input,.hero-search select{width:100%;padding:10px 12px;border:1px solid #d8cfb8;border-radius:4px;font-family:var(--sans);font-size:14px;background:#fff}
.hero-search .btn-pri{width:100%;justify-content:center;margin-top:18px;padding:14px}
@media(max-width:900px){.hero{height:auto;min-height:80vh}.hero-search{position:relative;right:auto;bottom:auto;width:100%;margin-top:30px}}

/* ===== INTRO ===== */
.intro{padding:120px var(--pad);text-align:center;max-width:1000px;margin:0 auto}
.intro p{font-family:var(--serif);font-style:italic;font-size:clamp(26px,3vw,42px);line-height:1.4;color:var(--navy);font-weight:300}
.intro p em{color:var(--sand-deep);font-style:italic}

/* ===== DESTINATIONS ===== */
.dest{padding:80px var(--pad) 100px;background:var(--ivory)}
.dest-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.dest-card{position:relative;overflow:hidden;background:var(--navy);color:var(--ivory);cursor:pointer}
.dest-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1);aspect-ratio:4/5}
.dest-card:hover img{transform:scale(1.05)}
.dest-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(6,18,42,.85))}
.dest-card .meta{position:absolute;bottom:24px;left:24px;right:24px;z-index:2}
.dest-card .meta .pays{font-family:var(--mono);font-size:10px;letter-spacing:0.25em;text-transform:uppercase;color:var(--sand)}
.dest-card .meta h3{color:var(--ivory);margin-top:8px;font-style:italic}
.dest-card .meta .from{font-family:var(--mono);font-size:12px;color:var(--sand-soft);margin-top:8px;letter-spacing:0.1em}
.dest-card.s7{grid-column:span 7;aspect-ratio:3/2}
.dest-card.s5{grid-column:span 5;aspect-ratio:3/4}
.dest-card.s4{grid-column:span 4;aspect-ratio:3/4}
.dest-card.s8{grid-column:span 8;aspect-ratio:16/9}
.dest-card.s6{grid-column:span 6;aspect-ratio:4/3}
@media(max-width:900px){.dest-card{grid-column:span 12!important;aspect-ratio:4/3!important}}

/* ===== METHOD ===== */
.method{padding:120px var(--pad);background:var(--navy);color:var(--ivory)}
.method h2{color:var(--ivory);font-style:italic;text-align:center;max-width:18ch;margin:14px auto 60px}
.method h2 em{color:var(--sand);font-style:italic}
.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--navy-soft);border-bottom:1px solid var(--navy-soft)}
.method-step{padding:40px 30px;border-right:1px solid var(--navy-soft)}
.method-step:last-child{border-right:none}
.method-step .n{font-family:var(--serif);font-style:italic;font-size:72px;color:var(--sand);line-height:1;display:block}
.method-step h4{color:var(--ivory);margin:14px 0 10px;letter-spacing:0.06em;text-transform:none;font-family:var(--serif);font-size:22px}
.method-step p{font-size:14px;color:rgba(246,241,230,.7);line-height:1.6}
@media(max-width:900px){.method-grid{grid-template-columns:1fr 1fr}.method-step{border-bottom:1px solid var(--navy-soft)}}
@media(max-width:500px){.method-grid{grid-template-columns:1fr}}

/* ===== TESTIMONIAL ===== */
.testi-band{padding:140px var(--pad);background:var(--ivory)}
.testi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px;max-width:1200px;margin:50px auto 0}
.testi-card{background:#fff;padding:40px;border-radius:6px;box-shadow:0 8px 30px rgba(6,18,42,.06)}
.testi-card .stars{color:var(--sand-deep);letter-spacing:2px;font-size:18px;margin-bottom:16px}
.testi-card p{font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.5;color:var(--navy);margin-bottom:24px}
.testi-card cite{display:flex;align-items:center;gap:14px;font-style:normal}
.testi-card cite .av{width:50px;height:50px;border-radius:50%;background:var(--sand);color:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;font-size:22px}
.testi-card cite strong{display:block;font-size:14px;color:var(--navy)}
.testi-card cite span{font-size:12px;color:var(--mute);letter-spacing:0.08em;text-transform:uppercase;font-family:var(--mono)}
@media(max-width:800px){.testi-grid{grid-template-columns:1fr}}

/* ===== CTA ===== */
.cta-band{background:var(--navy-deep);color:var(--ivory);padding:100px var(--pad);display:grid;grid-template-columns:1fr auto;gap:60px;align-items:center}
.cta-band h2{color:var(--ivory);font-style:italic}
.cta-band h2 em{color:var(--sand)}
@media(max-width:800px){.cta-band{grid-template-columns:1fr}}

/* ===== PAGE HEADERS ===== */
.page-hero{padding:80px var(--pad);background:var(--navy);color:var(--ivory)}
.page-hero h1{color:var(--ivory);font-style:italic;font-weight:300;margin-bottom:18px;max-width:18ch}
.page-hero h1 em{color:var(--sand)}
.page-hero p{font-family:var(--serif);font-style:italic;font-size:21px;max-width:60ch;color:rgba(246,241,230,.8)}

/* ===== VOYAGES CATALOGUE ===== */
.catalogue{padding:80px var(--pad)}
.cat-row{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;padding:60px 0;border-bottom:1px solid #e0d4ba;align-items:center}
.cat-row:nth-child(even){grid-template-columns:1fr 1.2fr}
.cat-row:nth-child(even) .cat-img{order:2}
.cat-img{aspect-ratio:5/4;overflow:hidden}
.cat-img img{width:100%;height:100%;object-fit:cover}
.cat-row h3{font-style:italic;font-size:36px;margin-bottom:10px}
.cat-row .pays{font-family:var(--mono);font-size:11px;letter-spacing:0.25em;text-transform:uppercase;color:var(--sand-deep)}
.cat-row .lede{font-size:16px;color:var(--mute);margin:18px 0 22px;max-width:50ch;line-height:1.7}
.cat-row .meta{display:flex;gap:30px;margin-bottom:22px}
.cat-row .meta div{font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--mute);font-weight:700}
.cat-row .meta strong{display:block;font-family:var(--serif);font-style:italic;font-size:22px;color:var(--navy);text-transform:none;letter-spacing:0;font-weight:400;margin-top:4px}
@media(max-width:800px){.cat-row,.cat-row:nth-child(even){grid-template-columns:1fr;gap:30px}.cat-row:nth-child(even) .cat-img{order:initial}}

/* ===== DESTINATIONS DETAIL ===== */
.world{padding:80px var(--pad)}
.world-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.world-card{position:relative;aspect-ratio:3/4;overflow:hidden}
.world-card img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.world-card:hover img{transform:scale(1.08)}
.world-card .name{position:absolute;bottom:18px;left:18px;right:18px;color:#fff;font-family:var(--serif);font-style:italic;font-size:24px;text-shadow:0 2px 12px rgba(0,0,0,.4)}
.world-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.6))}
@media(max-width:900px){.world-grid{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.world-grid{grid-template-columns:1fr}}

/* ===== SUR-MESURE ===== */
.tailor{padding:120px var(--pad);background:var(--navy);color:var(--ivory)}
.tailor-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center}
.tailor h2{color:var(--ivory);font-style:italic;margin-bottom:18px}
.tailor h2 em{color:var(--sand)}
.tailor p{color:rgba(246,241,230,.8);font-size:17px;line-height:1.7;margin-bottom:14px;max-width:50ch}
.tailor-img{aspect-ratio:4/5;overflow:hidden}
.tailor-img img{width:100%;height:100%;object-fit:cover}
@media(max-width:800px){.tailor-grid{grid-template-columns:1fr}}

.feature-list{margin-top:28px;display:grid;gap:18px}
.feat-item{display:grid;grid-template-columns:50px 1fr;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--navy-soft)}
.feat-item .num{font-family:var(--serif);font-style:italic;color:var(--sand);font-size:32px;line-height:1}
.feat-item h4{color:var(--ivory);margin-bottom:4px;font-family:var(--serif);font-size:18px;text-transform:none;letter-spacing:0}
.feat-item p{font-size:13px;color:rgba(246,241,230,.7);margin:0}

/* ===== ABOUT TEAM ===== */
.story-block{padding:80px var(--pad);display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center}
.story-block img{aspect-ratio:4/5;object-fit:cover;width:100%}
.story-block h2{font-style:italic;margin-bottom:18px}
.story-block h2 em{color:var(--sand-deep)}
.story-block p{font-size:17px;color:var(--mute);margin-bottom:14px;line-height:1.7;max-width:48ch}
@media(max-width:800px){.story-block{grid-template-columns:1fr}}

.team{padding:80px var(--pad);background:var(--ivory)}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:50px}
.tm img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;margin-bottom:20px}
.tm h3{font-style:italic;font-size:24px;text-align:center}
.tm .role{display:block;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--sand-deep);margin-top:4px}
.tm p{text-align:center;font-size:14px;color:var(--mute);margin-top:14px}
@media(max-width:800px){.team-grid{grid-template-columns:1fr}}

/* ===== CONTACT PAGE ===== */
.contact-page{padding:80px var(--pad);display:grid;grid-template-columns:1fr 1.4fr;gap:60px}
.contact-info .card{background:var(--ivory);padding:28px;margin-bottom:18px;border-left:4px solid var(--sand)}
.contact-info h4{color:var(--navy);margin-bottom:8px;letter-spacing:0.1em}
.contact-info p{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--navy);line-height:1.4}

.contact-form{background:#fff;padding:40px;border:1px solid #e0d4ba}
.contact-form h3{font-style:italic;margin-bottom:24px}
.contact-form label{display:block;font-size:11px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:14px;background:var(--ivory);border:1px solid #e0d4ba;font-family:var(--sans);font-size:15px;color:var(--navy);outline:none;margin-bottom:18px;transition:border-color .25s ease}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--sand-deep)}
.contact-form textarea{min-height:130px;resize:vertical}
.contact-form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:800px){.contact-page{grid-template-columns:1fr}.contact-form .row{grid-template-columns:1fr}}

/* ===== FOOTER ===== */
.site-footer{background:var(--navy-deep);color:rgba(246,241,230,.7);padding:80px var(--pad) 30px}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid var(--navy-soft)}
.footer-brand .brand{color:var(--ivory)}
.footer-brand .brand-text{color:var(--ivory)}
.footer-brand p{margin-top:16px;font-family:var(--serif);font-style:italic;font-size:17px;color:rgba(246,241,230,.7);max-width:36ch}
.footer-col h4{color:var(--sand);margin-bottom:18px;letter-spacing:0.15em}
.footer-col a,.footer-col span{display:block;padding:5px 0;font-size:14px}
.footer-col a:hover{color:var(--sand)}
.footer-bot{padding-top:24px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(246,241,230,.4)}
@media(max-width:800px){.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-bot{flex-direction:column;gap:8px;text-align:center}}

.reveal{opacity:0;transform:translateY(36px);transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal[data-delay="1"]{transition-delay:.1s}
.reveal[data-delay="2"]{transition-delay:.2s}
