
/* ═══════════════════════════════════════════════════════════════
   LA PERLE DE MOGADOR — « Blanc & Bleu d'Essaouira »
   Design system — blanc éclatant · bleu cobalt · ocre sculpté
═══════════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  /* Bleus d'Essaouira */
  --blue:#0e4c8e;          /* cobalt principal */
  --blue-deep:#0a3462;     /* marine profond */
  --blue-ink:#08243f;      /* encre bleu nuit */
  --azur:#2f80c4;          /* azur clair, accent vif */
  --sky:#d4e6f4;           /* ciel pâle */
  --accent-text:#0e4c8e;   /* accent lisible AA sur fond clair */
  /* Ocre / plâtre sculpté (accent secondaire, parcimonieux) */
  --ochre:#c69a5e;
  --ochre-soft:#e7d3b1;
  /* Neutres */
  --white:#ffffff;
  --paper:#f4f8fc;         /* blanc chaulé des sections alternées */
  --paper-2:#e9f2f9;
  /* Sémantique (thème clair par défaut) */
  --bg:var(--white);
  --surface:var(--paper);
  --surface-2:var(--paper-2);
  --text:#0c2c4a;
  --heading:#08243f;
  --muted:#5a748e;
  --line:rgba(14,76,142,.14);
  --line-soft:rgba(14,76,142,.08);
  --shadow-color:20,60,110;
  /* Bandes sombres (identiques en clair/sombre) */
  --band:#0a3462;
  --band-2:#08243f;
  --band-text:rgba(255,255,255,.72);
  --band-heading:#ffffff;
  /* Courbes */
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-io:cubic-bezier(.77,0,.175,1);
}
[data-theme="dark"]{
  --bg:#071a2e;
  --surface:#0b2640;
  --surface-2:#0e2e4d;
  --text:#e7f0f9;
  --heading:#ffffff;
  --muted:#9db6cf;
  --line:rgba(255,255,255,.14);
  --line-soft:rgba(255,255,255,.07);
  --shadow-color:0,0,0;
  --accent-text:#7db8e8;
}

html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden;}
body{
  font-family:'Jost',sans-serif;color:var(--text);background:var(--bg);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
  transition:background .4s var(--ease-out),color .4s var(--ease-out);
}
img{display:block;width:100%;object-fit:cover;}
a{text-decoration:none;color:inherit;}
button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit;}
::selection{background:var(--blue);color:#fff;}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px;}
[data-theme="dark"] :focus-visible{outline-color:var(--sky);}
.skip-link{position:absolute;left:1rem;top:-4rem;z-index:2000;background:var(--blue);color:#fff;padding:.75rem 1.25rem;border-radius:0 0 4px 4px;font-size:.8rem;transition:top .2s var(--ease-out);}
.skip-link:focus{top:0;}

/* ─── TYPO ─── */
.serif{font-family:'Cormorant Garamond',serif;}
h1,h2,h3,h4{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.08;color:var(--heading);letter-spacing:-.01em;}
h1{font-size:clamp(3.4rem,8vw,7.5rem);font-weight:500;}
h2{font-size:clamp(2.3rem,4.2vw,3.8rem);}
h3{font-size:clamp(1.5rem,2.4vw,2.1rem);}
p{font-size:1.02rem;line-height:1.8;color:var(--muted);font-weight:300;}
em{font-style:italic;color:var(--blue);}
.label{font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;font-weight:600;color:var(--accent-text);display:block;}

/* ─── LAYOUT ─── */
.container{max-width:1320px;margin:0 auto;padding:0 2.5rem;}
.section{padding:clamp(5rem,9vw,8rem) 0;}
.section--paper{background:var(--surface);}
.divider{width:44px;height:2px;background:var(--ochre);margin:1.1rem 0 1.75rem;border-radius:2px;}
.divider--c{margin:1.1rem auto 1.75rem;}
.text-c{text-align:center;}

/* ─── REVEAL ─── */
.r{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);}
.r.in{opacity:1;transform:translateY(0);}
.r1{transition-delay:.08s;}.r2{transition-delay:.16s;}.r3{transition-delay:.24s;}.r4{transition-delay:.32s;}.r5{transition-delay:.4s;}
.split-word .word{display:inline-block;overflow:hidden;vertical-align:bottom;}
.split-word .word span{display:inline-block;transform:translateY(110%);transition:transform 1s var(--ease-out);}
.split-word.in .word span{transform:translateY(0);}
.split-word .word:nth-child(1) span{transition-delay:.05s;}
.split-word .word:nth-child(2) span{transition-delay:.13s;}
.split-word .word:nth-child(3) span{transition-delay:.21s;}
.split-word .word:nth-child(4) span{transition-delay:.29s;}
.split-word .word:nth-child(5) span{transition-delay:.37s;}
@media (prefers-reduced-motion:reduce){
  .r,.split-word .word span{transition:opacity .3s ease!important;transform:none!important;opacity:1;}
  *{scroll-behavior:auto!important;}
}

/* ─── BUTTONS ─── */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  padding:1.05rem 2rem;border-radius:2px;
  transition:transform .16s var(--ease-out),background .25s var(--ease-out),color .25s var(--ease-out),box-shadow .25s var(--ease-out),border-color .25s var(--ease-out);
}
.btn svg{width:16px;height:16px;stroke:currentColor;fill:none;transition:transform .25s var(--ease-out);}
.btn:hover svg{transform:translateX(4px);}
.btn:active{transform:scale(.97);}
.btn--primary{background:var(--blue);color:#fff;box-shadow:0 10px 30px -12px rgba(14,76,142,.6);}
.btn--primary:hover{background:var(--blue-deep);box-shadow:0 16px 40px -12px rgba(14,76,142,.75);}
.btn--light{background:#fff;color:var(--blue);box-shadow:0 10px 30px -14px rgba(0,0,0,.5);}
.btn--light:hover{background:var(--sky);color:var(--blue-deep);}
.btn--outline{border:1px solid rgba(255,255,255,.5);color:#fff;}
.btn--outline:hover{border-color:#fff;background:rgba(255,255,255,.1);}
.btn--ghost{border:1px solid var(--line);color:var(--text);}
.btn--ghost:hover{background:var(--blue);color:#fff;border-color:var(--blue);}

/* ─── THEME TOGGLE ─── */
.theme-toggle{
  width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,.28);color:#fff;transition:transform .16s var(--ease-out),background .25s,border-color .25s;
}
.theme-toggle:hover{background:rgba(255,255,255,.12);}
.theme-toggle:active{transform:scale(.92);}
.theme-toggle svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.6;}
.nav.up .theme-toggle,.nav--solid .theme-toggle{border-color:var(--line);color:var(--text);}
.nav.up .theme-toggle:hover,.nav--solid .theme-toggle:hover{background:var(--surface-2);}
.theme-toggle .moon{display:none;}
[data-theme="dark"] .theme-toggle .sun{display:none;}
[data-theme="dark"] .theme-toggle .moon{display:block;}

/* ─── NAV ─── */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.8rem 2.5rem;display:flex;align-items:center;justify-content:space-between;transition:padding .5s var(--ease-out),background .5s var(--ease-out),box-shadow .5s var(--ease-out);}
.nav.up{padding:1rem 2.5rem;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--line-soft);}
.nav__logo{display:flex;flex-direction:column;gap:.05rem;}
.nav__logo-main{font-family:'Cormorant Garamond',serif;font-size:1.32rem;font-weight:500;color:#fff;letter-spacing:.06em;line-height:1;transition:color .4s var(--ease-out);}
.nav__logo-sub{font-size:.55rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ochre);font-weight:500;}
.nav.up .nav__logo-main{color:var(--heading);}
.nav__links{display:flex;align-items:center;gap:2.3rem;list-style:none;}
.nav__links a{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.82);font-weight:400;position:relative;transition:color .2s;}
.nav__links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1.5px;background:var(--ochre);transition:width .3s var(--ease-out);}
.nav__links a:hover{color:#fff;}.nav__links a:hover::after{width:100%;}
.nav.up .nav__links a{color:var(--muted);}
.nav.up .nav__links a:hover{color:var(--blue);}
.nav__right{display:flex;align-items:center;gap:1.1rem;}
.nav__book{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--blue);padding:.85rem 1.7rem;font-weight:500;border-radius:2px;transition:transform .16s var(--ease-out),background .25s;}
.nav__book:hover{background:var(--blue-deep);}.nav__book:active{transform:scale(.97);}
.nav__burger{display:none;flex-direction:column;gap:5px;padding:6px;}
.nav__burger span{display:block;width:24px;height:1.6px;background:#fff;transition:background .4s;}
.nav.up .nav__burger span{background:var(--heading);}

.drawer-overlay{position:fixed;inset:0;background:rgba(8,36,63,.55);z-index:110;opacity:0;pointer-events:none;transition:opacity .4s var(--ease-out);}
.drawer-overlay.open{opacity:1;pointer-events:auto;}
.drawer{position:fixed;top:0;right:-100%;width:min(360px,100vw);height:100dvh;background:var(--blue-ink);z-index:120;transition:right .5s var(--ease-io);display:flex;flex-direction:column;padding:5rem 2.5rem 2.5rem;}
.drawer.open{right:0;}
.drawer__close{position:absolute;top:1.5rem;right:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2);}
.drawer__close svg{width:18px;stroke:#fff;fill:none;}
.drawer ul{list-style:none;display:flex;flex-direction:column;gap:1.4rem;}
.drawer ul li a{font-family:'Cormorant Garamond',serif;font-size:1.9rem;color:#fff;font-weight:400;transition:color .2s;}
.drawer ul li a:hover{color:var(--ochre);}

/* ─── HERO ─── */
.hero{position:relative;height:100dvh;min-height:640px;display:flex;align-items:center;overflow:hidden;}
.hero__layer{position:absolute;inset:0;}
.hero__bg{background:url('images/La perle du mogador-139.webp') center/cover no-repeat;transform:scale(1.08);animation:heroZoom 14s var(--ease-out) forwards;}
@keyframes heroZoom{to{transform:scale(1);}}
.hero__gradient{background:linear-gradient(to top,rgba(6,26,47,.96) 0%,rgba(6,26,47,.9) 34%,rgba(6,26,47,.78) 55%,rgba(6,26,47,.52) 72%,rgba(6,26,47,.2) 88%,rgba(6,26,47,0) 100%);}
.hero__content{position:relative;z-index:2;width:100%;max-width:1320px;margin:0 auto;padding:0 2.5rem;}
.hero__eyebrow{color:rgba(255,255,255,.92);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;margin-bottom:1.4rem;display:flex;align-items:center;gap:.75rem;text-shadow:0 1px 12px rgba(6,26,47,.5);}
.hero__eyebrow::before{content:'';width:34px;height:1px;background:var(--ochre);}
.hero__title{color:#fff;font-weight:500;font-size:clamp(3rem,6.4vw,5.8rem);text-shadow:0 2px 24px rgba(6,26,47,.9),0 1px 4px rgba(6,26,47,.6);}
.hero__title .line{display:block;overflow:hidden;}
.hero__title .line span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease-out);}
.hero.in .hero__title .line:nth-child(1) span{transition-delay:.15s;transform:translateY(0);}
.hero.in .hero__title .line:nth-child(2) span{transition-delay:.3s;transform:translateY(0);}
.hero__title em{color:var(--ochre-soft);font-style:italic;}
.hero__bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-top:1.75rem;flex-wrap:wrap;}
.hero__subtitle{color:rgba(255,255,255,.9);font-size:1.1rem;font-weight:300;max-width:440px;line-height:1.7;text-shadow:0 1px 14px rgba(6,26,47,.5);}
.hero__actions{display:flex;gap:1rem;flex-wrap:wrap;}
.hero__scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.6rem;color:rgba(255,255,255,.6);}
.hero__scroll span{font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;}
.hero__scroll-line{width:1px;height:44px;background:linear-gradient(to bottom,rgba(255,255,255,.6),transparent);animation:scrollPulse 2s var(--ease-out) infinite;}
@keyframes scrollPulse{0%,100%{opacity:.3;transform:scaleY(.7);}50%{opacity:1;transform:scaleY(1);}}

/* ─── BOOKING ─── */
.booking{position:relative;z-index:5;max-width:1120px;margin:-4.5rem auto 0;padding:0 2.5rem;}
.booking__inner{background:var(--bg);border:1px solid var(--line-soft);border-radius:6px;box-shadow:0 30px 70px -30px rgba(var(--shadow-color),.4);display:grid;grid-template-columns:repeat(4,1fr) auto;gap:0;overflow:hidden;}
.booking__field{padding:1.4rem 1.6rem;border-right:1px solid var(--line-soft);display:flex;flex-direction:column;gap:.4rem;}
.booking__label{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ochre);font-weight:500;}
.booking__val input,.booking__val select{width:100%;border:none;background:transparent;font-family:'Jost',sans-serif;font-size:.95rem;color:var(--text);font-weight:400;outline:none;cursor:pointer;}
.booking__val select{appearance:none;}
.booking__val input::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer;}
.booking__submit{background:var(--blue);color:#fff;padding:0 2.2rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;transition:background .25s var(--ease-out);}
.booking__submit:hover{background:var(--blue-deep);}

/* ─── STATS ─── */
.stats{padding:5rem 0 1rem;}
.stats__inner{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center;}
.stat__num{font-family:'Cormorant Garamond',serif;font-size:clamp(2.8rem,4.5vw,3.8rem);font-weight:500;color:var(--blue);line-height:1;display:inline-flex;align-items:flex-start;}
.stat__num sup{font-size:.4em;color:var(--ochre);margin-left:.15em;margin-top:.4em;}
.stat__label{display:block;margin-top:.7rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}

/* ─── INTRO ─── */
.intro{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.intro__visual{position:relative;}
.intro__img-main{aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:url('images/La perle du mogador-139.webp') center/cover;}
.intro__img-overlay{position:absolute;bottom:-2.5rem;right:-1.5rem;width:52%;aspect-ratio:1;border-radius:6px;overflow:hidden;border:8px solid var(--bg);box-shadow:0 30px 60px -25px rgba(var(--shadow-color),.5);}
.intro__deco{position:absolute;top:-1.5rem;left:-1.5rem;width:90px;height:90px;border:1px solid var(--ochre);border-radius:6px;z-index:-1;opacity:.5;}
.intro__badge{position:absolute;top:1.5rem;left:1.5rem;background:var(--blue);color:#fff;border-radius:6px;padding:1rem 1.2rem;text-align:center;box-shadow:0 16px 34px -14px rgba(14,76,142,.7);}
.intro__badge strong{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:500;line-height:1;display:block;}
.intro__badge span{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.8);}
.intro__content{display:flex;flex-direction:column;}
.intro__pull{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-style:italic;color:var(--heading);line-height:1.4;font-weight:400;border-left:2px solid var(--blue);padding-left:1.3rem;margin:.5rem 0 1.5rem;}
.intro__features{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2rem;}
.intro__feat{display:flex;gap:.9rem;align-items:flex-start;}
.intro__feat-icon{flex-shrink:0;width:42px;height:42px;border-radius:50%;background:var(--sky);display:flex;align-items:center;justify-content:center;}
.intro__feat-icon svg{width:19px;height:19px;stroke:var(--blue);fill:none;stroke-width:1.5;}
.intro__feat strong{display:block;font-size:.92rem;color:var(--heading);font-weight:500;}
.intro__feat span{font-size:.8rem;color:var(--muted);}

/* ─── ROOMS (bande sombre) ─── */
.rooms-section{background:var(--band);color:#fff;padding:clamp(5rem,9vw,8rem) 0;overflow:hidden;}
.rooms-section__header{max-width:1320px;margin:0 auto 3.5rem;padding:0 2.5rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;}
.rooms-section__header h2{color:#fff;margin-top:.5rem;}
.rooms-track-wrap{overflow-x:auto;scrollbar-width:none;padding:0 2.5rem;cursor:grab;}
.rooms-track-wrap::-webkit-scrollbar{display:none;}
.rooms-track-wrap:active{cursor:grabbing;}
.rooms-track{display:flex;gap:1.5rem;width:max-content;padding-bottom:.5rem;}
.room-slide{position:relative;width:min(78vw,440px);aspect-ratio:3/4;border-radius:6px;overflow:hidden;}
.room-slide__img{position:absolute;inset:0;}
.room-slide__img img{width:100%;height:100%;transition:transform .8s var(--ease-out);}
.room-slide:hover .room-slide__img img{transform:scale(1.06);}
.room-slide__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,36,63,.92) 0%,rgba(8,36,63,.15) 55%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;}
.room-slide__num{position:absolute;top:1.5rem;right:1.75rem;font-family:'Cormorant Garamond',serif;font-size:2.2rem;color:rgba(255,255,255,.35);}
.room-slide__type{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sky);font-weight:500;}
.room-slide__name{color:#fff;margin:.3rem 0 .4rem;font-size:1.8rem;}
.room-slide__size{font-size:.85rem;color:rgba(255,255,255,.65);margin-bottom:1rem;}
.room-slide__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem;}
.room-slide__tag{font-size:.66rem;letter-spacing:.05em;padding:.35rem .7rem;border:1px solid rgba(255,255,255,.25);border-radius:2px;color:rgba(255,255,255,.8);}
.room-slide__cta{display:inline-flex;align-items:center;gap:.5rem;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;font-weight:500;}
.room-slide__cta svg{width:15px;stroke:var(--sky);fill:none;transition:transform .25s var(--ease-out);}
.room-slide__cta:hover svg{transform:translateX(4px);}
.rooms-nav{max-width:1320px;margin:2.5rem auto 0;padding:0 2.5rem;display:flex;align-items:center;gap:1.5rem;}
.rooms-nav__arrows{display:flex;gap:.6rem;}
.rooms-nav__btn{width:46px;height:46px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .25s,border-color .25s,transform .16s var(--ease-out);}
.rooms-nav__btn:hover{background:rgba(255,255,255,.1);border-color:#fff;}
.rooms-nav__btn:active{transform:scale(.94);}
.rooms-nav__btn svg{width:18px;stroke:#fff;fill:none;}
.rooms-progress{flex:1;height:2px;background:rgba(255,255,255,.15);border-radius:2px;overflow:hidden;}
.rooms-progress__bar{width:25%;height:100%;background:var(--ochre);border-radius:2px;transition:width .2s var(--ease-out);}

/* ─── RESTAURANT ─── */
.resto{display:grid;grid-template-columns:1fr 1fr;min-height:80vh;}
.resto__visual{position:relative;overflow:hidden;min-height:420px;}
.resto__visual img{width:100%;height:100%;}
.resto__content{background:var(--surface);display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,6vw,6rem);}
.resto__highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem;}
.resto__hl{border-top:1px solid var(--line);padding-top:.9rem;}
.resto__hl strong{display:block;font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--blue);font-weight:500;}
.resto__hl span{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}

/* ─── PISCINE (bande photo) ─── */
.pool{position:relative;min-height:88vh;display:flex;align-items:center;overflow:hidden;}
.pool__bg{position:absolute;inset:-10% 0;background:url('images/unnamed-5.webp') center/cover no-repeat;will-change:transform;}
.pool__gradient{position:absolute;inset:0;background:linear-gradient(105deg,rgba(8,36,63,.9) 0%,rgba(10,52,98,.7) 45%,rgba(8,36,63,.25) 100%);}
.pool__content{position:relative;z-index:2;width:100%;max-width:1320px;margin:0 auto;padding:0 2.5rem;}
.pool__text{max-width:520px;}
.pool__text h2{color:#fff;margin-top:.5rem;}
.pool__text .label{color:var(--sky);}
.pool__text p{color:rgba(255,255,255,.78);}
.pool__perks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem;}
.pool__perk{position:relative;padding-left:2.3rem;}
.pool__perk-icon{position:absolute;left:0;top:2px;width:22px;height:22px;stroke:var(--ochre);fill:none;stroke-width:1.4;}
.pool__perk strong{display:block;color:#fff;font-size:.95rem;font-weight:500;}
.pool__perk span{font-size:.8rem;color:rgba(255,255,255,.6);}

/* ─── ESSAOUIRA ─── */
.ess{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;max-width:1320px;margin:0 auto;padding:clamp(5rem,9vw,8rem) 2.5rem;}
.ess__collage{position:relative;aspect-ratio:1;}
.ess__img-a{position:absolute;top:0;left:0;width:70%;aspect-ratio:3/4;border-radius:6px;overflow:hidden;box-shadow:0 30px 60px -28px rgba(var(--shadow-color),.5);}
.ess__img-b{position:absolute;bottom:0;right:0;width:52%;aspect-ratio:1;border-radius:6px;overflow:hidden;border:8px solid var(--bg);box-shadow:0 24px 50px -24px rgba(var(--shadow-color),.5);}
.ess__frame{position:absolute;top:12%;right:2%;width:120px;height:120px;border:1px solid var(--ochre);border-radius:6px;opacity:.5;z-index:-1;}
.ess__list{list-style:none;display:flex;flex-direction:column;gap:1.3rem;margin-top:1.75rem;}
.ess__item{display:flex;gap:1.1rem;align-items:flex-start;}
.ess__num{font-family:'Cormorant Garamond',serif;font-size:1.15rem;color:var(--blue);font-weight:500;flex-shrink:0;width:1.6rem;}
.ess__info strong{display:block;color:var(--heading);font-size:1rem;font-weight:500;}
.ess__info span{font-size:.86rem;color:var(--muted);line-height:1.6;}

/* ─── GALLERY ─── */
.gallery__mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:150px;gap:1rem;margin-top:3rem;}
.g-item{border-radius:6px;overflow:hidden;position:relative;cursor:pointer;}
.g-item img{width:100%;height:100%;transition:transform .7s var(--ease-out);}
.g-item::after{content:'';position:absolute;inset:0;background:rgba(8,36,63,0);transition:background .35s var(--ease-out);}
.g-item:hover img{transform:scale(1.07);}
.g-item:hover::after{background:rgba(8,36,63,.15);}
.g1{grid-column:1/6;grid-row:1/3;}
.g2{grid-column:6/9;grid-row:1/2;}
.g3{grid-column:9/13;grid-row:1/2;}
.g4{grid-column:6/8;grid-row:2/4;}
.g5{grid-column:8/11;grid-row:2/3;}
.g6{grid-column:11/13;grid-row:2/4;}
.g7{grid-column:1/5;grid-row:3/4;}
.g8{grid-column:5/8;grid-row:3/4;}
.g9{grid-column:8/11;grid-row:3/4;}

/* ─── REVIEWS (bande sombre) ─── */
.reviews{background:var(--band-2);color:#fff;padding:clamp(5rem,9vw,8rem) 0;}
.reviews h2{color:#fff;}
.reviews .label{color:var(--sky);}
.reviews>.container>div>p{color:rgba(255,255,255,.6);}
.reviews__track{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1320px;margin:3rem auto 0;padding:0 2.5rem;}
.review{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:2rem;transition:transform .3s var(--ease-out),border-color .3s;}
.review:hover{transform:translateY(-4px);border-color:rgba(198,154,94,.4);}
.review__stars{color:var(--ochre);letter-spacing:.1em;margin-bottom:1rem;font-size:.95rem;}
.review__text{color:rgba(255,255,255,.82);font-size:.95rem;line-height:1.7;font-style:italic;font-weight:300;}
.review__author{display:flex;align-items:center;gap:.85rem;margin-top:1.5rem;}
.review__av{width:42px;height:42px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:1.2rem;}
.review__name{color:#fff;font-size:.9rem;font-weight:500;}
.review__place{color:rgba(255,255,255,.5);font-size:.78rem;}

/* ─── CONTACT (bande sombre) ─── */
.contact-band{display:grid;grid-template-columns:1fr 1fr;min-height:70vh;background:var(--band);}
.contact-band__map{position:relative;min-height:360px;}
.contact-band__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.3);}
.contact-band__info{padding:clamp(3rem,6vw,6rem);display:flex;flex-direction:column;justify-content:center;color:#fff;}
.contact-band__info h2{color:#fff;margin-top:.5rem;}
.contact-band__info .label{color:var(--sky);}
.contact-band__details{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem;}
.cd{display:flex;gap:1rem;align-items:flex-start;}
.cd__icon{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;}
.cd__icon svg{width:19px;stroke:var(--ochre);fill:none;}
.cd strong{display:block;color:#fff;font-size:.95rem;font-weight:500;margin-bottom:.15rem;}
.cd span{font-size:.88rem;color:rgba(255,255,255,.65);line-height:1.6;}
.cd span a:hover{color:var(--ochre-soft);}

/* ─── CTA FINAL ─── */
.cta-final{position:relative;text-align:center;padding:clamp(5rem,9vw,7rem) 2.5rem;background:var(--surface);overflow:hidden;}
.cta-final__arch{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(90vw,560px);opacity:.12;pointer-events:none;}
.cta-final .label{color:var(--accent-text);}
.cta-final h2{margin:.6rem 0 1.2rem;position:relative;}
.cta-final p{max-width:480px;margin:0 auto 2.2rem;position:relative;}
.cta-final .btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;position:relative;}

/* ─── FOOTER ─── */
.footer{background:var(--blue-ink);color:#fff;padding-top:5rem;}
.footer__top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;}
.footer__logo-text{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:500;letter-spacing:.05em;}
.footer__logo-sub{font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--sky);margin-bottom:1.2rem;display:block;}
.footer__about{font-size:.88rem;max-width:300px;color:rgba(255,255,255,.5);line-height:1.7;}
.footer__social{display:flex;gap:.7rem;margin-top:1.5rem;}
.footer__soc{width:38px;height:38px;border:1px solid rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .25s,background .25s,transform .16s var(--ease-out);}
.footer__soc:hover{border-color:var(--ochre);background:rgba(198,154,94,.12);}
.footer__soc:active{transform:scale(.92);}
.footer__soc svg{width:16px;stroke:rgba(255,255,255,.7);fill:none;}
.footer__col-title{font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sky);font-weight:500;margin-bottom:1.2rem;display:block;}
.footer__col ul{list-style:none;display:flex;flex-direction:column;gap:.6rem;}
.footer__col ul li a{font-size:.88rem;color:rgba(255,255,255,.5);transition:color .2s;}
.footer__col ul li a:hover{color:#fff;}
.footer__bottom{border-top:1px solid rgba(255,255,255,.08);padding:1.5rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.footer__bottom p{font-size:.76rem;color:rgba(255,255,255,.35);}
.footer__bottom-links{display:flex;gap:1.5rem;}
.footer__bottom-links a{font-size:.76rem;color:rgba(255,255,255,.35);transition:color .2s;}
.footer__bottom-links a:hover{color:var(--ochre);}

/* ─── RESPONSIVE ─── */
@media (max-width:1024px){
  .footer__top{grid-template-columns:1fr 1fr;}
  .booking__inner{grid-template-columns:1fr 1fr;}
  .booking__submit{grid-column:1/3;padding:1.1rem;}
  .reviews__track{grid-template-columns:1fr;}
}
@media (max-width:860px){
  .intro,.ess,.resto,.contact-band{grid-template-columns:1fr;}
  .intro{gap:4.5rem;}.ess{gap:3.5rem;}
  .resto__visual{min-height:340px;order:-1;}
  .contact-band__map{min-height:300px;}
  .intro__features,.pool__perks{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  .nav__links,.nav__book{display:none;}
  .nav__burger{display:flex;}
  .container,.hero__content{padding-left:1.5rem;padding-right:1.5rem;}
  .stats__inner{grid-template-columns:1fr 1fr;gap:2.5rem 1rem;}
  .booking__inner{grid-template-columns:1fr;}
  .booking__field{border-right:none;border-bottom:1px solid var(--line-soft);}
  .booking__submit{grid-column:1;}
  .resto__highlight-grid{grid-template-columns:1fr;gap:.6rem;}
  .gallery__mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:130px;}
  .g1,.g2,.g3,.g4,.g5,.g6,.g7,.g8,.g9{grid-column:auto;grid-row:auto;}
  .footer__top{grid-template-columns:1fr;gap:2rem;}
  .footer__bottom{flex-direction:column;text-align:center;}
  .hero{align-items:stretch;}
  .hero__content{text-align:center;display:flex;flex-direction:column;justify-content:space-between;padding-top:4rem;padding-bottom:5.5rem;}
  .hero__title{font-size:clamp(1.85rem,8.4vw,2.4rem);}
  .hero__title .line{display:inline;}
  .hero__eyebrow{justify-content:center;}
  .hero__eyebrow::before{display:none;}
  .hero__bottom{flex-direction:column;align-items:center;}
  .hero__subtitle{margin-left:auto;margin-right:auto;}
  .hero__actions{justify-content:center;}
  .hero__meta{justify-content:center;}
  .hero__meta li{align-items:center;}
  .intro__features,.pool__perks{grid-template-columns:1fr;}
}


/* Hero : badges de confiance (façon golfimages, sans note Google) */
.hero__meta{list-style:none;display:flex;flex-wrap:wrap;gap:2.4rem;margin-top:2rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.2);}
.hero__meta li{display:flex;flex-direction:column;gap:.15rem;}
.hero__meta strong{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-weight:600;color:#fff;line-height:1;text-shadow:0 1px 14px rgba(6,26,47,.5);}
.hero__meta span{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ochre-soft);font-weight:600;}
@media(max-width:640px){.hero__meta{gap:.7rem 1.4rem;margin-top:1.1rem;padding-top:.9rem;}.hero__meta strong{font-size:1.3rem;}}
