/* ═══════════════════════════════════════════════
   CONVIVIUM AGENCY — Côte d'Azur
   Palette : ivoire · azur · or · corail couchant
   ═══════════════════════════════════════════════ */

:root{
  --sand      : #FBF7F0;
  --sand-2    : #F4ECDF;
  --sand-3    : #E8DCC8;

  --ink       : #12293F;
  --ink-2     : #2A4257;
  --ink-soft  : #566B7E;

  --navy      : #0A2540;
  --navy-2    : #0E3757;
  --azur      : #1B6E92;
  --azur-lt   : #4EA3BE;
  --turq      : #63C6C0;

  --gold      : #C09A54;
  --gold-lt   : #E2C88E;
  --gold-dk   : #9A7736;

  --coral     : #E08160;
  --peach     : #F3C39B;

  --serif : "Cormorant Garamond", "Times New Roman", serif;
  --sans  : "Jost", "Helvetica Neue", Arial, sans-serif;

  --ease  : cubic-bezier(.19,1,.22,1);
  --ease2 : cubic-bezier(.65,.05,.36,1);

  --pad   : clamp(20px, 5vw, 80px);
  --maxw  : 1320px;
  --r     : 18px;
}

html[dir="rtl"]{ --sans:"Noto Kufi Arabic","Jost",sans-serif; --serif:"Noto Kufi Arabic","Cormorant Garamond",serif; }

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:150px; }

body{
  margin:0; background:var(--sand); color:var(--ink);
  font-family:var(--sans); font-weight:300; font-size:16px; line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body.is-locked{ overflow:hidden; }
img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
::selection{ background:var(--gold); color:#fff; }

.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.sec{ position:relative; padding:clamp(80px,10vw,150px) 0; }

/* ── typographie ─────────────────────────────── */
.h2{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(2.1rem, 5.2vw, 4.3rem); line-height:1.05;
  letter-spacing:-.015em; margin:.1em 0 .5em; color:var(--ink);
}
.h2--light{ color:var(--sand); }
html[dir="rtl"] .h2{ letter-spacing:0; line-height:1.35; }

.eyebrow{
  font-size:.68rem; letter-spacing:.34em; text-transform:uppercase;
  font-weight:400; color:var(--gold-dk); margin:0 0 1.1em;
}
.eyebrow--light{ color:var(--gold-lt); }
html[dir="rtl"] .eyebrow{ letter-spacing:.08em; }

.lead{ font-size:clamp(1.05rem,1.5vw,1.26rem); line-height:1.72; color:var(--ink); }
.quote{
  font-family:var(--serif); font-style:italic; font-size:clamp(1.25rem,2.1vw,1.7rem);
  line-height:1.45; color:var(--azur); border-inline-start:1px solid var(--gold);
  padding-inline-start:1.1em; margin:0;
}
html[dir="rtl"] .quote{ font-style:normal; }

.link{
  position:relative; display:inline-block; padding-bottom:3px; color:var(--gold-dk);
  font-size:.78rem; letter-spacing:.2em; text-transform:uppercase;
}
.link::after{ content:""; position:absolute; inset-inline:0; bottom:0; height:1px; background:currentColor; transform-origin:inline-start; transition:transform .5s var(--ease); }
.link:hover::after{ transform:scaleX(.4); }
html[dir="rtl"] .link{ letter-spacing:.04em; }

/* ── boutons ─────────────────────────────────── */
.btn{
  --bh:54px;
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  height:var(--bh); padding:0 2em; border:0; border-radius:999px; cursor:pointer;
  font-size:.76rem; letter-spacing:.2em; text-transform:uppercase; font-weight:400;
  overflow:hidden; isolation:isolate; text-align:center;
  transition:color .5s var(--ease), border-color .5s var(--ease), transform .35s var(--ease);
}
html[dir="rtl"] .btn{ letter-spacing:.02em; }
.btn::after{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
  transform:translateY(101%); transition:transform .6s var(--ease);
}
.btn:hover::after{ transform:translateY(0); }

.btn--gold{ background:linear-gradient(135deg,var(--gold) 0%,var(--gold-lt) 55%,var(--gold) 100%); color:#1b1408; box-shadow:0 10px 34px -14px rgba(192,154,84,.85); }
.btn--gold::after{ background:var(--navy); }
.btn--gold:hover{ color:var(--gold-lt); }

.btn--line{ border:1px solid rgba(255,255,255,.42); color:#fff; }
.btn--line::after{ background:var(--sand); }
.btn--line:hover{ color:var(--navy); border-color:var(--sand); }

.btn--dark{ border-color:rgba(18,41,63,.28); color:var(--ink); }
.btn--dark::after{ background:var(--navy); }
.btn--dark:hover{ color:var(--sand); border-color:var(--navy); }

.btn--ghost{ --bh:40px; border:1px solid rgba(255,255,255,.4); color:#fff; font-size:.66rem; padding:0 1.4em; }
.btn--ghost::after{ background:var(--gold); }
.btn--ghost:hover{ color:#1b1408; border-color:var(--gold); }
.head.is-solid .btn--ghost{ border-color:rgba(18,41,63,.25); color:var(--ink); }
.head.is-solid .btn--ghost:hover{ color:#1b1408; border-color:var(--gold); }

.btn--wide{ width:100%; }

/* ── préchargement ───────────────────────────── */
.loader{
  position:fixed; inset:0; z-index:10000; display:grid; place-items:center;
  background:linear-gradient(180deg,#0A2540 0%,#123c5c 55%,#1B6E92 100%);
  transition:opacity .8s var(--ease), visibility .8s;
}
.loader.is-out{ opacity:0; visibility:hidden; }
.loader__inner{ display:grid; justify-items:center; gap:22px; }
.loader__mark{ width:74px; height:74px; fill:none; stroke:var(--gold-lt); stroke-width:1.1; }
.lm-ring{ stroke-dasharray:327; stroke-dashoffset:327; animation:draw 1.5s var(--ease) forwards; opacity:.5; }
.lm-c{ stroke-dasharray:120; stroke-dashoffset:120; animation:draw 1.2s var(--ease) .3s forwards; stroke-width:1.6; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
.loader__word{ font-family:var(--serif); font-size:.95rem; letter-spacing:.62em; color:var(--sand); opacity:0; animation:fadeUp .8s var(--ease) .5s forwards; padding-inline-start:.62em; }
.loader__bar{ width:170px; height:1px; background:rgba(255,255,255,.18); overflow:hidden; }
.loader__bar i{ display:block; height:100%; width:0; background:var(--gold-lt); animation:load 1.5s var(--ease2) .15s forwards; }
@keyframes load{ to{ width:100%; } }
@keyframes fadeUp{ from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }

/* ── barre de progression ────────────────────── */
.scrollbar{ position:fixed; top:0; inset-inline:0; height:2px; z-index:900; }
.scrollbar i{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--turq),var(--gold-lt)); }

/* ── en-tête ─────────────────────────────────── */
.head{
  position:fixed; top:0; inset-inline:0; z-index:800;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:22px var(--pad); color:#fff;
  transition:transform .55s var(--ease), background .55s var(--ease), padding .55s var(--ease), box-shadow .55s;
}
.head.is-solid{
  background:rgba(251,247,240,.88); backdrop-filter:blur(18px) saturate(1.3);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);
  color:var(--ink); padding-block:14px; box-shadow:0 1px 0 rgba(18,41,63,.08);
}
.head.is-hidden{ transform:translateY(-104%); }

.head__logo{ display:flex; align-items:center; gap:12px; }
.head__mark{ width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.1; opacity:.9; transition:transform .8s var(--ease); }
.head__logo:hover .head__mark{ transform:rotate(-24deg); }
.head.is-solid .head__mark{ stroke:var(--gold); }
.head__name{ font-family:var(--serif); font-size:1.16rem; letter-spacing:.14em; line-height:1; }
.head__name em{ display:block; font-style:normal; font-family:var(--sans); font-size:.5rem; letter-spacing:.42em; opacity:.62; margin-top:4px; }
html[dir="rtl"] .head__name em{ letter-spacing:.1em; }

.head__nav{ display:flex; gap:clamp(12px,2vw,30px); }
.head__nav a{ position:relative; font-size:.74rem; letter-spacing:.17em; text-transform:uppercase; padding:6px 0; opacity:.84; transition:opacity .3s; }
html[dir="rtl"] .head__nav a{ letter-spacing:.02em; font-size:.82rem; }
.head__nav a::after{ content:""; position:absolute; inset-inline-start:0; bottom:0; height:1px; width:0; background:currentColor; transition:width .45s var(--ease); }
.head__nav a:hover{ opacity:1; }
.head__nav a:hover::after{ width:100%; }
.head__nav a[aria-current="page"]{ opacity:1; }
.head__nav a[aria-current="page"]::after{ width:100%; background:var(--gold-lt); }
.head.is-solid .head__nav a[aria-current="page"]::after{ background:var(--gold); }
@media (max-width:1120px){ .head__nav{ display:none; } }

.head__right{ display:flex; align-items:center; gap:14px; }
@media (max-width:640px){ .head__cta{ display:none; } }

.lang{ position:relative; }
.lang__btn{ display:flex; align-items:center; gap:7px; background:none; border:0; cursor:pointer; font-size:.7rem; letter-spacing:.18em; padding:6px 2px; }
.lang__btn svg{ width:9px; fill:none; stroke:currentColor; stroke-width:1.4; transition:transform .4s var(--ease); }
.lang.is-open .lang__btn svg{ transform:rotate(180deg); }
.lang__menu{
  position:absolute; top:calc(100% + 12px); inset-inline-end:0; min-width:132px;
  background:var(--sand); border:1px solid var(--sand-3); border-radius:12px; padding:6px;
  display:grid; opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:.4s var(--ease); box-shadow:0 24px 50px -26px rgba(10,37,64,.45);
}
.lang.is-open .lang__menu{ opacity:1; visibility:visible; transform:none; }
.lang__menu button{ background:none; border:0; cursor:pointer; text-align:start; padding:9px 12px; border-radius:8px; font-size:.82rem; color:var(--ink); transition:background .3s; }
.lang__menu button:hover{ background:var(--sand-2); }
.lang__menu button[aria-current="true"]{ color:var(--gold-dk); }

.burger{ display:none; width:40px; height:40px; background:none; border:0; cursor:pointer; position:relative; }
.burger i{ position:absolute; inset-inline-start:9px; width:22px; height:1px; background:currentColor; transition:.45s var(--ease); }
.burger i:nth-child(1){ top:17px; } .burger i:nth-child(2){ top:23px; width:14px; }
body.menu-open .burger i:nth-child(1){ transform:translateY(3px) rotate(45deg); }
body.menu-open .burger i:nth-child(2){ transform:translateY(-3px) rotate(-45deg); width:22px; }
@media (max-width:1120px){ .burger{ display:block; } }

/* ── menu plein écran ────────────────────────── */
.menu{
  position:fixed; inset:0; z-index:790; background:var(--navy); color:var(--sand);
  display:flex; flex-direction:column; justify-content:center; padding:110px var(--pad) 40px;
  clip-path:circle(0% at calc(100% - 46px) 40px); transition:clip-path .9s var(--ease);
  pointer-events:none;
}
html[dir="rtl"] .menu{ clip-path:circle(0% at 46px 40px); }
body.menu-open .menu{ clip-path:circle(150% at calc(100% - 46px) 40px); pointer-events:auto; }
html[dir="rtl"] body.menu-open .menu{ clip-path:circle(150% at 46px 40px); }
.menu__glow{ position:absolute; inset:auto -10% -30% -10%; height:70%; background:radial-gradient(60% 100% at 50% 100%, rgba(27,110,146,.75), transparent 70%); }
.menu__nav{ position:relative; display:grid; gap:6px; }
.menu__nav a{
  font-family:var(--serif); font-size:clamp(1.9rem,8vw,3.1rem); line-height:1.15; font-weight:300;
  display:flex; align-items:baseline; gap:18px; opacity:0; transform:translateY(28px);
  transition:opacity .7s var(--ease), transform .7s var(--ease), color .3s;
}
.menu__nav a em{ font-family:var(--sans); font-style:normal; font-size:.6rem; letter-spacing:.3em; color:var(--gold-lt); opacity:.75; }
.menu__nav a:hover,.menu__nav a[aria-current="page"]{ color:var(--gold-lt); }
body.menu-open .menu__nav a{ opacity:1; transform:none; }
body.menu-open .menu__nav a:nth-child(1){ transition-delay:.20s }
body.menu-open .menu__nav a:nth-child(2){ transition-delay:.26s }
body.menu-open .menu__nav a:nth-child(3){ transition-delay:.32s }
body.menu-open .menu__nav a:nth-child(4){ transition-delay:.38s }
body.menu-open .menu__nav a:nth-child(5){ transition-delay:.44s }
body.menu-open .menu__nav a:nth-child(6){ transition-delay:.50s }
.menu__foot{ position:relative; margin-top:auto; padding-top:34px; border-top:1px solid rgba(255,255,255,.14); display:grid; gap:7px; font-size:.85rem; opacity:.78; }

/* ═══════════ HÉROS ═══════════ */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; }
.riviera{ position:absolute; inset:0; }

.riviera__sky{
  position:absolute; inset:0;
  background:linear-gradient(180deg,#06243F 0%,#0C3355 16%,#1A5C86 36%,#3E90AC 52%,
    #86BFC4 62%,#E7C79B 68%,#F3D3A5 70%,transparent 70.5%);
}
.riviera__glow{
  position:absolute; left:50%; top:56%; width:150vw; height:60vh; transform:translate(-50%,-50%);
  background:radial-gradient(45% 60% at 50% 60%, rgba(243,195,155,.72), rgba(224,129,96,.28) 42%, transparent 72%);
  filter:blur(10px); animation:breathe 12s ease-in-out infinite;
}
@keyframes breathe{ 0%,100%{opacity:.85;transform:translate(-50%,-50%) scale(1)} 50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)} }

.riviera__sun{ position:absolute; left:50%; top:70%; transform:translate(-50%,-50%); }
.riviera__sun i{
  display:block; width:clamp(140px,17vw,240px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 50% 45%, #FFF6E4 0%, #FBE0B4 38%, #F3B57F 62%, rgba(224,129,96,0) 72%);
  box-shadow:0 0 120px 40px rgba(247,206,160,.45);
  animation:rise 26s var(--ease) forwards;
}
@keyframes rise{ from{ transform:translateY(70px) scale(.94); opacity:.75 } to{ transform:translateY(-14px) scale(1); opacity:1 } }

.riviera__hills{ position:absolute; inset-inline:0; top:calc(70% - 122px); width:100%; height:130px; }
.hill--far{ fill:rgba(28,72,104,.34); }
.hill--near{ fill:rgba(16,48,74,.5); }

.riviera__sea{
  position:absolute; inset-inline:0; top:70%; bottom:0; overflow:hidden;
  background:linear-gradient(180deg,#EBC79B 0%,#8FBEC0 5%,#3C8FAC 20%,#175C82 48%,#0B3252 78%,#081F36 100%);
}
#seaCanvas{ position:absolute; inset:0; width:100%; height:100%; opacity:.55; }
.riviera__path{
  position:absolute; left:50%; top:0; bottom:0; width:min(340px,30vw); transform:translateX(-50%);
  background:linear-gradient(180deg, rgba(255,232,192,.9), rgba(255,214,158,.3) 44%, transparent 80%);
  filter:blur(16px); mix-blend-mode:screen; animation:shimmerPath 7s ease-in-out infinite;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 34%, #000 66%, transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0%, #000 34%, #000 66%, transparent 100%);
}
@keyframes shimmerPath{ 0%,100%{opacity:.8} 50%{opacity:1} }

.palm{ position:absolute; bottom:0; fill:#071E33; }
.palm--l{ inset-inline-end:13.5%; width:min(168px,12vw); opacity:.5; }
.palm--r{ inset-inline-end:-2%;   width:min(268px,19vw); opacity:.95; }
.palm__g{ animation:sway 10s ease-in-out infinite; transform-origin:72% 100%; }
.palm--l .palm__g{ animation-duration:13s; animation-direction:reverse; }
@keyframes sway{ 0%,100%{ transform:rotate(-.7deg) } 50%{ transform:rotate(.9deg) } }
html[dir="rtl"] .palm{ transform:scaleX(-1); }
@media (max-width:900px){ .palm--l{ display:none; } .palm--r{ inset-inline-end:-8%; width:44vw; opacity:.78; } }

.dust{ position:absolute; inset:0; overflow:hidden; }
.dust b{ position:absolute; display:block; border-radius:50%; background:rgba(255,232,190,.85);
  box-shadow:0 0 8px 2px rgba(255,220,160,.5); animation:float linear infinite; }
@keyframes float{ from{ transform:translateY(0) translateX(0); opacity:0 } 12%{opacity:.9} 88%{opacity:.6} to{ transform:translateY(-115vh) translateX(40px); opacity:0 } }

.grain{
  position:absolute; inset:0; pointer-events:none; opacity:.3; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
.riviera__vign{ position:absolute; inset:0; background:radial-gradient(120% 90% at 50% 42%, transparent 45%, rgba(6,26,46,.55) 100%); }

.hero__body{ position:relative; z-index:3; width:100%; max-width:var(--maxw); margin-inline:auto; padding:0 var(--pad); color:#fff; }
.hero__title{
  font-family:var(--serif); font-weight:300; color:#fff;
  font-size:clamp(2.9rem, 8.4vw, 7.4rem); line-height:.99; letter-spacing:-.02em;
  margin:0 0 .38em; max-width:14ch; text-shadow:0 14px 60px rgba(4,22,40,.4);
}
html[dir="rtl"] .hero__title{ letter-spacing:0; line-height:1.28; }
.hero__sub{ font-size:clamp(1rem,1.7vw,1.32rem); max-width:38ch; color:rgba(255,255,255,.9); margin:0 0 2.4em; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; }
@media (max-width:560px){
  .hero .eyebrow{ font-size:.6rem; letter-spacing:.2em; }
  .hero__cta .btn{ flex:1 1 100%; }
}

.hero__scroll{ position:absolute; z-index:3; bottom:34px; left:50%; transform:translateX(-50%); display:grid; justify-items:center; gap:12px; color:rgba(255,255,255,.72); font-size:.6rem; letter-spacing:.32em; text-transform:uppercase; }
.hero__scroll i{ width:1px; height:52px; background:linear-gradient(180deg,rgba(255,255,255,.7),transparent); position:relative; overflow:hidden; }
.hero__scroll i::after{ content:""; position:absolute; inset:0; background:var(--gold-lt); animation:scrollLine 2.4s var(--ease2) infinite; }
@keyframes scrollLine{ 0%{ transform:translateY(-100%) } 60%,100%{ transform:translateY(100%) } }
@media (max-width:600px){ .hero__scroll{ display:none; } }

/* ═══════════ BANDEAU D'OUVERTURE (pages intérieures) ═══════════ */
.phead{
  position:relative; overflow:hidden; color:var(--sand);
  padding:clamp(140px,16vw,220px) 0 clamp(56px,7vw,96px);
  background:linear-gradient(160deg,#0A2540 0%,#12405F 52%,#0B2C48 100%);
}
.phead__wash{
  position:absolute; inset:0;
  background:
    radial-gradient(52% 70% at 88% -10%, rgba(99,198,192,.4), transparent 66%),
    radial-gradient(46% 60% at 6% 110%, rgba(226,200,142,.3), transparent 64%),
    radial-gradient(70% 80% at 46% 40%, rgba(27,110,146,.4), transparent 72%);
  animation:washMove 18s ease-in-out infinite alternate;
}
@keyframes washMove{ from{ transform:scale(1) } to{ transform:scale(1.1) } }
.phead__in{ position:relative; z-index:2; }
.phead__t{
  font-family:var(--serif); font-weight:300; color:#fff; margin:0;
  font-size:clamp(2.5rem,6.4vw,5.2rem); line-height:1.02; letter-spacing:-.02em; max-width:17ch;
}
html[dir="rtl"] .phead__t{ letter-spacing:0; line-height:1.3; }
.phead__sub{ margin:1.1em 0 0; max-width:52ch; font-size:clamp(1rem,1.5vw,1.2rem); color:rgba(251,247,240,.82); }

/* ═══════════ ACCUEIL — introduction ═══════════ */
.intro{ background:
  radial-gradient(90% 60% at 100% 0%, rgba(99,198,192,.14), transparent 60%),
  radial-gradient(70% 50% at 0% 100%, rgba(243,195,155,.2), transparent 62%),
  var(--sand); }
.intro__grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(28px,6vw,90px); align-items:start; }
@media (max-width:900px){ .intro__grid{ grid-template-columns:1fr; } }
.intro__grid p{ color:var(--ink-soft); }
.intro__grid .lead{ color:var(--ink); margin-top:0; }

/* valeurs */
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,30px); margin-top:clamp(48px,7vw,92px); }
@media (max-width:860px){ .values{ grid-template-columns:1fr; } }
.value{
  position:relative; padding:34px 30px 30px; border-radius:20px; overflow:hidden;
  background:linear-gradient(160deg, rgba(255,255,255,.92), rgba(244,236,223,.6));
  border:1px solid var(--sand-3);
  transition:transform .6s var(--ease), box-shadow .6s var(--ease), border-color .6s var(--ease);
}
.value::before{ content:""; position:absolute; inset:0; background:linear-gradient(140deg, rgba(192,154,84,.14), transparent 55%); opacity:0; transition:opacity .6s; }
.value:hover{ transform:translateY(-7px); box-shadow:0 40px 70px -46px rgba(10,37,64,.55); border-color:var(--gold-lt); }
.value:hover::before{ opacity:1; }
.value__num{ position:relative; font-family:var(--serif); font-size:.85rem; letter-spacing:.3em; color:var(--gold-dk); }
.value h3{ position:relative; font-family:var(--serif); font-weight:400; font-size:clamp(1.5rem,2.4vw,2rem); margin:.5em 0 .35em; }
.value p{ position:relative; margin:0; color:var(--ink-soft); font-size:.97rem; }

/* chiffres */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:clamp(46px,6vw,86px); padding-top:clamp(34px,4vw,54px); border-top:1px solid var(--sand-3); }
@media (max-width:760px){ .stats{ grid-template-columns:repeat(2,1fr); gap:30px; } }
.stat{ display:grid; gap:6px; }
.stat b{ font-family:var(--serif); font-weight:300; font-size:clamp(2.4rem,5vw,3.9rem); line-height:1; color:var(--azur); }
.stat span{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); }
html[dir="rtl"] .stat span{ letter-spacing:.04em; }

/* ═══════════ BANDEAU DÉFILANT ═══════════ */
.ticker{ background:var(--navy); color:var(--sand); overflow:hidden; padding:18px 0; border-block:1px solid rgba(226,200,142,.22); }
.ticker__row{ display:flex; width:max-content; animation:slide 42s linear infinite; }
.ticker__row span{ display:inline-flex; align-items:center; gap:26px; padding-inline:26px; font-family:var(--serif); font-size:clamp(1rem,1.7vw,1.5rem); letter-spacing:.13em; white-space:nowrap; opacity:.9; }
.ticker__row span::after{ content:""; width:5px; height:5px; border-radius:50%; background:var(--gold); }
@keyframes slide{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }
.ticker:hover .ticker__row{ animation-play-state:paused; }

/* ═══════════ ACCUEIL — tuiles des univers ═══════════ */
.tiles-sec{ position:relative; overflow:hidden; color:var(--sand); background:var(--navy); }
.tiles-sec__wash{ position:absolute; inset:0;
  background:
    radial-gradient(55% 60% at 82% 6%, rgba(99,198,192,.34), transparent 64%),
    radial-gradient(60% 70% at 8% 96%, rgba(27,110,146,.6), transparent 64%),
    linear-gradient(150deg,#07223A,#123F60 58%,#0A2A45); }
.tiles-sec__head{ position:relative; z-index:2; }
.tiles-sec__head .h2{ max-width:18ch; }
.tiles-sec__sub{ position:relative; z-index:2; max-width:54ch; color:rgba(251,247,240,.8); margin:0; font-size:clamp(1rem,1.4vw,1.16rem); }
.tiles{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(12px,1.4vw,18px); margin-top:clamp(38px,5vw,64px); }
@media (max-width:1040px){ .tiles{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .tiles{ grid-template-columns:1fr; } }
.tile{
  position:relative; display:block; padding:26px 22px 24px; border-radius:var(--r); overflow:hidden;
  border:1px solid rgba(226,200,142,.24); color:var(--sand); min-height:220px;
  transition:transform .6s var(--ease), border-color .6s var(--ease), box-shadow .6s var(--ease);
}
.tile__bg{ position:absolute; inset:0; opacity:.9; transition:opacity .6s var(--ease), transform 1s var(--ease); }
.tile:hover{ transform:translateY(-8px); border-color:var(--gold-lt); box-shadow:0 40px 70px -46px rgba(0,0,0,.7); }
.tile:hover .tile__bg{ opacity:1; transform:scale(1.06); }
.tile__num{ position:relative; font-family:var(--serif); font-size:.8rem; letter-spacing:.28em; color:var(--gold-lt); }
.tile__ico{ position:relative; display:block; width:34px; margin:16px 0 14px; color:var(--gold-lt); }
.tile__ico svg{ width:100%; height:auto; }
.tile__t{ position:relative; display:block; font-family:var(--serif); font-size:clamp(1.35rem,2vw,1.7rem); line-height:1.15; }
.tile__i{ position:relative; display:block; margin-top:.6em; font-size:.78rem; line-height:1.6; color:rgba(251,247,240,.7); }
.tiles-sec__more{ position:relative; z-index:2; margin-top:clamp(32px,4vw,52px); display:flex; justify-content:center; }

/* ═══════════ PAGE EXPÉRIENCES ═══════════ */
.xjump{
  /* colle juste sous l'en-tête compact (84 px) : sur cette page l'en-tête
     ne se rétracte pas au défilement, les deux barres restent solidaires. */
  position:sticky; top:84px; z-index:700; background:rgba(10,37,64,.92);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(226,200,142,.2); color:var(--sand);
}
.xjump__in{ display:flex; align-items:center; gap:20px; padding-block:12px; }
.xjump__lb{ font-size:.62rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold-lt); white-space:nowrap; }
html[dir="rtl"] .xjump__lb{ letter-spacing:.04em; }
.xjump__links{ display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; }
.xjump__links::-webkit-scrollbar{ display:none; }
.xjump__links a{
  display:inline-flex; align-items:baseline; gap:8px; white-space:nowrap;
  padding:8px 14px; border-radius:999px; border:1px solid transparent;
  font-size:.78rem; opacity:.72; transition:.4s var(--ease);
}
.xjump__links a em{ font-style:normal; font-size:.6rem; letter-spacing:.16em; color:var(--gold-lt); }
.xjump__links a:hover{ opacity:1; border-color:rgba(226,200,142,.4); }
.xjump__links a.is-on{ opacity:1; background:rgba(226,200,142,.14); border-color:var(--gold-lt); }
@media (max-width:700px){ .xjump__lb{ display:none; } }
@media (max-width:640px){ .xjump{ top:74px; } }

.xblock{ position:relative; overflow:hidden; padding:clamp(64px,8vw,120px) 0; }
.xblock__bg{ position:absolute; inset:0; }
.xblock__ghost{
  position:absolute; inset-inline-end:-1%; top:50%; transform:translateY(-50%);
  font-family:var(--serif); font-size:clamp(12rem,26vw,26rem); line-height:.8;
  pointer-events:none; user-select:none;
}
.xblock--dark{ color:var(--sand); }
.xblock--dark .xblock__ghost{ color:rgba(255,255,255,.045); }
.xblock--light{ color:var(--ink); }
.xblock--light .xblock__ghost{ color:rgba(18,41,63,.045); }

.xblock__in{
  position:relative; z-index:2; display:grid; grid-template-columns:1.02fr .98fr;
  gap:clamp(28px,5vw,80px); align-items:start;
}
@media (max-width:900px){ .xblock__in{ grid-template-columns:1fr; } }
/* les blocs clairs inversent l'ordre : rythme visuel de haut en bas */
@media (min-width:901px){
  .xblock--light .xblock__lead{ order:2; }
  .xblock--light .xblock__side{ order:1; }
}
.xblock__ico{ display:block; width:52px; color:var(--gold); margin-bottom:20px; }
.xblock--dark .xblock__ico{ color:var(--gold-lt); }
.xblock__ico svg{ width:100%; height:auto; }
.xblock__num{ margin:0 0 .5em; font-size:.66rem; letter-spacing:.3em; text-transform:uppercase; opacity:.7; }
html[dir="rtl"] .xblock__num{ letter-spacing:.06em; }
.xblock__t{ font-family:var(--serif); font-weight:300; font-size:clamp(2.2rem,5vw,3.8rem); line-height:1.04; letter-spacing:-.015em; margin:0 0 .35em; }
html[dir="rtl"] .xblock__t{ letter-spacing:0; line-height:1.32; }
.xblock__d{ margin:0; font-size:clamp(1rem,1.4vw,1.16rem); line-height:1.75; max-width:46ch; opacity:.86; }

.xblock__label{ margin:0 0 14px; font-size:.64rem; letter-spacing:.26em; text-transform:uppercase; opacity:.65; }
html[dir="rtl"] .xblock__label{ letter-spacing:.05em; }
.xitems{ list-style:none; margin:0; padding:0; display:grid; }
.xitems li{
  display:flex; align-items:baseline; gap:16px; padding:17px 4px;
  border-top:1px solid currentColor; transition:padding .45s var(--ease);
}
.xitems li{ border-color:rgba(127,127,127,.28); }
.xblock--dark .xitems li{ border-color:rgba(226,200,142,.26); }
.xblock--light .xitems li{ border-color:rgba(18,41,63,.14); }
.xitems li:last-child{ border-bottom:1px solid; border-color:inherit; }
.xblock--dark .xitems li:last-child{ border-bottom-color:rgba(226,200,142,.26); }
.xblock--light .xitems li:last-child{ border-bottom-color:rgba(18,41,63,.14); }
.xitem__n{ font-size:.62rem; letter-spacing:.2em; opacity:.55; min-width:2ch; }
.xitem__l{ font-family:var(--serif); font-size:clamp(1.1rem,1.8vw,1.42rem); line-height:1.25; }
.xitems li:hover{ padding-inline-start:14px; }
.xblock--dark .xitems li:hover .xitem__l{ color:var(--gold-lt); }
.xblock--light .xitems li:hover .xitem__l{ color:var(--gold-dk); }

.more{ background:linear-gradient(180deg,var(--sand) 0%,var(--sand-2) 100%); text-align:center; }
.more__in{ display:grid; justify-items:center; gap:6px; }
.more__p{ margin:0 0 22px; max-width:44ch; color:var(--ink-soft); font-size:clamp(1rem,1.4vw,1.14rem); }

/* ═══════════ DISCRÉTION ═══════════ */
.discretion{ position:relative; overflow:hidden; text-align:center; color:var(--sand);
  background:linear-gradient(180deg,#0A2946 0%,#123F5F 48%,#0C2B47 100%); }
.discretion__wash{ position:absolute; inset:0;
  background:
    radial-gradient(58% 70% at 50% -6%, rgba(78,163,190,.62), transparent 68%),
    radial-gradient(46% 52% at 16% 108%, rgba(99,198,192,.34), transparent 66%),
    radial-gradient(58% 62% at 84% 112%, rgba(226,200,142,.34), transparent 66%);
  animation:washMove 16s ease-in-out infinite alternate; }
.discretion__in{ position:relative; z-index:2; max-width:840px; margin-inline:auto; }
.discretion__p{ color:rgba(251,247,240,.82); font-size:clamp(1rem,1.5vw,1.2rem); margin:0 auto; max-width:56ch; }
.seals{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:34px; }
.seals span{ border:1px solid rgba(226,200,142,.34); border-radius:999px; padding:10px 18px; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-lt); }
html[dir="rtl"] .seals span{ letter-spacing:0; text-transform:none; font-size:.82rem; }

/* ═══════════ DESTINATIONS ═══════════ */
.dest{ background:linear-gradient(180deg,var(--sand) 0%,var(--sand-2) 100%); }
.dest__head .h2{ max-width:18ch; }
.dest__sub{ color:var(--ink-soft); font-size:clamp(1rem,1.4vw,1.15rem); margin:0; max-width:50ch; }
.dest__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.4vw,20px); margin-top:clamp(34px,4.5vw,64px); }
@media (max-width:1080px){ .dest__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .dest__grid{ grid-template-columns:1fr; } }
.dest__more{ margin-top:clamp(30px,4vw,50px); display:flex; justify-content:center; }

/* la transformation porte sur .dcard, le rognage arrondi sur .dcard__in :
   sans cela le survol carrait les angles (rastérisation du clip). */
.dcard{ position:relative; border-radius:var(--r); transition:transform .7s var(--ease); }
.dcard__in{
  position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:3/4;
  box-shadow:0 22px 50px -34px rgba(10,37,64,.6), inset 0 0 0 1px rgba(226,200,142,.18);
  transition:box-shadow .7s var(--ease);
}
.dcard:hover{ transform:translateY(-10px); }
.dcard:hover .dcard__in{ box-shadow:0 48px 90px -44px rgba(10,37,64,.72), inset 0 0 0 1px rgba(226,200,142,.55); }
.dcard__sky{ position:absolute; inset:0; filter:saturate(1.22) contrast(1.04); transition:transform 1.2s var(--ease); }
.dcard:hover .dcard__sky{ transform:scale(1.07); }
.dcard__art{ position:absolute; inset-inline:0; bottom:0; height:52%; }
.dcard__art path{ vector-effect:non-scaling-stroke; }
.dcard__veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,24,42,0) 46%, rgba(6,24,42,.42) 74%, rgba(4,18,32,.8) 100%); }
.dcard__txt{ position:absolute; inset:auto 0 0 0; padding:22px; color:#fff; z-index:2; }
.dcard__n{ font-family:var(--serif); font-size:clamp(1.4rem,2.1vw,1.85rem); line-height:1.1; margin:0; }
.dcard__s{ margin:.35em 0 0; font-size:.78rem; letter-spacing:.1em; color:rgba(255,255,255,.8); }
.dcard__line{ position:absolute; inset-inline:22px; bottom:0; height:1px; background:var(--gold-lt); transform:scaleX(0); transform-origin:inline-start; transition:transform .8s var(--ease); z-index:3; }
.dcard:hover .dcard__line{ transform:scaleX(1); }
.dcard__grain{ position:absolute; inset:0; opacity:.13; mix-blend-mode:overlay; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* ═══════════ PARTENAIRES ═══════════ */
.partners{ background:var(--sand-2); }
.partners__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.6vw,22px); }
@media (max-width:1000px){ .partners__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .partners__grid{ grid-template-columns:1fr; } }
.pcard{
  position:relative; padding:30px 26px 34px; border-radius:var(--r); background:var(--sand);
  border:1px solid var(--sand-3); overflow:hidden;
  transition:transform .6s var(--ease), box-shadow .6s var(--ease), border-color .6s var(--ease);
}
.pcard::after{ content:""; position:absolute; inset-inline:0; top:0; height:2px; background:linear-gradient(90deg,var(--turq),var(--gold-lt),var(--coral)); transform:scaleX(0); transform-origin:inline-start; transition:transform .8s var(--ease); }
.pcard:hover{ transform:translateY(-8px); box-shadow:0 44px 80px -50px rgba(10,37,64,.62); border-color:var(--gold-lt); }
.pcard:hover::after{ transform:scaleX(1); }
.pcard__cat{ font-size:.66rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold-dk); }
html[dir="rtl"] .pcard__cat{ letter-spacing:.04em; }
.pcard__n{ font-family:var(--serif); font-weight:400; font-size:clamp(1.35rem,2vw,1.7rem); margin:.6em 0 .5em; line-height:1.15; }
.pcard__d{ margin:0; font-size:.94rem; color:var(--ink-soft); line-height:1.65; }
.pcard__mark{ width:34px; height:34px; margin-bottom:18px; fill:none; stroke:var(--gold); stroke-width:1; opacity:.85; }

.partners__note{ margin-top:clamp(36px,4.4vw,60px); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; padding-top:30px; border-top:1px solid var(--sand-3); }
.partners__note p{ margin:0; max-width:52ch; color:var(--ink-soft); font-style:italic; font-family:var(--serif); font-size:clamp(1.05rem,1.6vw,1.3rem); }
html[dir="rtl"] .partners__note p{ font-style:normal; }

/* ═══════════ À PROPOS ═══════════ */
.about{ background:
  radial-gradient(90% 60% at 100% 0%, rgba(99,198,192,.14), transparent 60%),
  radial-gradient(70% 50% at 0% 100%, rgba(243,195,155,.2), transparent 62%),
  var(--sand); }
.about__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,6vw,80px); align-items:start; }
@media (max-width:900px){ .about__grid{ grid-template-columns:1fr; } }
.about__text p{ margin:0 0 1.2em; color:var(--ink-soft); }
.about__text .lead{ color:var(--ink); }
.about__aside{ padding-top:.4em; }

/* ═══════════ BANDE D'APPEL ═══════════ */
.band{ position:relative; overflow:hidden; color:var(--sand); background:var(--navy); text-align:center; }
.band__wash{ position:absolute; inset:0;
  background:
    radial-gradient(55% 60% at 88% 6%, rgba(99,198,192,.3), transparent 62%),
    radial-gradient(60% 70% at 6% 96%, rgba(224,129,96,.3), transparent 62%),
    radial-gradient(80% 60% at 50% 50%, rgba(27,110,146,.44), transparent 72%); }
.band__in{ position:relative; z-index:2; display:grid; justify-items:center; }
.band__in .h2{ max-width:16ch; }
.band__p{ margin:0 0 26px; max-width:46ch; color:rgba(251,247,240,.8); font-size:clamp(1rem,1.4vw,1.15rem); }
.band__cta{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }

/* ═══════════ CONTACT ═══════════ */
.contact{ position:relative; background:var(--sand); }
.contact__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,6vw,80px); align-items:start; }
@media (max-width:900px){ .contact__grid{ grid-template-columns:1fr; } }
.contact__list{ list-style:none; margin:0; padding:0; display:grid; }
.contact__list li{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:16px 0; border-top:1px solid var(--sand-3); }
.contact__list li:last-child{ border-bottom:1px solid var(--sand-3); }
.contact__list span:first-child{ font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-dk); }
html[dir="rtl"] .contact__list span:first-child{ letter-spacing:.04em; }
.contact__list a,.contact__list li>span:last-child{ font-family:var(--serif); font-size:clamp(1rem,1.5vw,1.25rem); transition:color .35s; text-align:end; }
.contact__list a:hover{ color:var(--gold-dk); }
.contact__note{ margin:28px 0 0; font-size:.94rem; color:var(--ink-soft); max-width:46ch; }

.form{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .form{ grid-template-columns:1fr; } }
.field{ position:relative; }
.field--full,.form>.btn,.form__note,.form__ok{ grid-column:1/-1; }
.field input,.field select,.field textarea{
  width:100%; background:#fff; border:1px solid var(--sand-3); border-radius:12px;
  padding:22px 16px 10px; color:var(--ink); font-family:var(--sans); font-size:.98rem; font-weight:300;
  transition:border-color .45s var(--ease), box-shadow .45s var(--ease); outline:none; appearance:none;
}
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(192,154,84,.14); }
.field label{ position:absolute; inset-inline-start:17px; top:17px; font-size:.95rem; color:var(--ink-soft); pointer-events:none; transition:.35s var(--ease); }
.field input:focus+label,.field input:not(:placeholder-shown)+label,
.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label{ top:7px; font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-dk); }
.field .lb-static{ top:7px; font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-dk); }
.field select{ padding-top:24px; padding-bottom:9px; }
.field__chev{ position:absolute; inset-inline-end:16px; top:50%; width:10px; transform:translateY(-50%); fill:none; stroke:var(--gold-dk); stroke-width:1.4; pointer-events:none; }
.field.is-bad input,.field.is-bad textarea{ border-color:var(--coral); }
.form__note{ margin:2px 0 0; font-size:.74rem; color:var(--ink-soft); letter-spacing:.06em; }
.form__ok{ margin:0; font-size:.9rem; color:var(--gold-dk); }

/* ═══════════ 404 ═══════════ */
.e404{ position:relative; overflow:hidden; color:var(--sand); background:var(--navy); text-align:center; min-height:70svh; display:grid; align-items:center; }
.e404__wash{ position:absolute; inset:0;
  background:radial-gradient(60% 70% at 50% 0%, rgba(27,110,146,.6), transparent 68%),
             radial-gradient(50% 60% at 50% 110%, rgba(226,200,142,.26), transparent 66%); }
.e404__in{ position:relative; z-index:2; display:grid; justify-items:center; gap:6px; }
.e404__in .band__p{ margin-bottom:22px; }

/* ═══════════ PIED DE PAGE ═══════════ */
.foot{ background:#061726; color:rgba(251,247,240,.8); padding:clamp(50px,6vw,80px) 0 26px; }
.foot__in{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:36px; align-items:start; }
@media (max-width:820px){ .foot__in{ grid-template-columns:1fr; } }
.foot__mark{ width:42px; height:42px; fill:none; stroke:var(--gold); stroke-width:1; margin-bottom:16px; }
.foot__claim{ font-family:var(--serif); font-size:clamp(1.4rem,2.4vw,2rem); color:var(--sand); margin:0; max-width:16ch; line-height:1.2; }
.foot__nav,.foot__meta{ display:grid; gap:11px; font-size:.9rem; }
.foot__nav a,.foot__meta a{ opacity:.72; transition:opacity .3s, color .3s; width:fit-content; }
.foot__nav a:hover,.foot__meta a:hover{ opacity:1; color:var(--gold-lt); }
.foot__nav a[aria-current="page"]{ opacity:1; color:var(--gold-lt); }
.foot__bar{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:clamp(38px,5vw,64px); padding-top:20px; border-top:1px solid rgba(255,255,255,.1); font-size:.74rem; letter-spacing:.14em; opacity:.55; }
html[dir="rtl"] .foot__bar{ letter-spacing:.02em; }

/* ═══════════ RÉVÉLATIONS ═══════════ */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
.split .w{ display:inline-block; overflow:hidden; vertical-align:top; }
.split .w > i{ display:inline-block; font-style:inherit; transform:translateY(105%); transition:transform 1s var(--ease); }
.split.is-in .w > i{ transform:none; }

/* ?still dans l'URL : tout est révélé d'emblée (captures, impression) */
html.is-still .reveal{ opacity:1 !important; transform:none !important; }
html.is-still .split .w > i{ transform:none !important; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal,.split .w>i{ opacity:1 !important; transform:none !important; transition:none !important; }
  .riviera__sun i,.palm__g,.dust b,.ticker__row,.discretion__wash,.phead__wash,
  .riviera__glow,.riviera__path,.hero__scroll i::after{ animation:none !important; }
}
