
:root{
  --ink:#1c1917; --ink-soft:#4a4340; --line:#e8e0d9;
  --paper:#fbf8f5; --paper-2:#f4ede7;
  --rose:#c0788a; --rose-deep:#a25c6e; --rose-pale:#f7e9ec;
  --gold:#b08d57;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost','Helvetica Neue',Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.65;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
/* i18n : masquage avant l'exécution du JS, ensuite piloté en inline-style */
.boot [data-l="en"]{display:none}

/* ---------- top bar ---------- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:60;transition:.35s;border-bottom:1px solid transparent}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}
.topbar.solid{background:rgba(251,248,245,.94);backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.brand{font-family:var(--serif);font-size:20px;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;color:#fff;transition:.35s}
.brand small{display:block;font-family:var(--sans);font-size:8.5px;letter-spacing:.34em;margin-top:1px;color:rgba(255,255,255,.7);transition:.35s}
.topbar.solid .brand{color:var(--ink)}
.topbar.solid .brand small{color:var(--rose)}
.lang{display:flex;border:1px solid rgba(255,255,255,.45);border-radius:100px;overflow:hidden;transition:.35s}
.topbar.solid .lang{border-color:var(--line);background:#fff}
.lang button{border:0;background:none;font-family:var(--sans);font-size:11px;letter-spacing:.16em;font-weight:500;padding:7px 15px;cursor:pointer;color:#fff;transition:.25s}
.topbar.solid .lang button{color:var(--ink-soft)}
.lang button.on{background:#fff;color:var(--ink)}
.topbar.solid .lang button.on{background:var(--ink);color:#fff}

/* ---------- hero video ---------- */
.hero{position:relative;min-height:640px;height:88vh;max-height:860px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:#1a1512}
.hero video,.hero .fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero::after{content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(20,16,14,.62) 0%,rgba(20,16,14,.34) 34%,rgba(20,16,14,.5) 66%,rgba(120,100,92,.82) 86%,rgba(251,248,245,1) 100%)}
.hero .inner{position:relative;z-index:2;padding:110px 24px 130px;max-width:820px}
.eyebrow{font-size:10.5px;letter-spacing:.34em;text-transform:uppercase;color:#fff;font-weight:500;margin-bottom:24px;opacity:.9}
.eyebrow::before,.eyebrow::after{content:'';display:inline-block;width:26px;height:1px;background:rgba(255,255,255,.55);vertical-align:middle;margin:0 12px}
h1{font-family:var(--serif);font-weight:300;font-size:clamp(36px,6.4vw,62px);line-height:1.07;letter-spacing:-.012em;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.35)}
h1 em{font-style:italic;color:#f0c9d2}
.sub{font-size:clamp(15px,2.1vw,18px);color:rgba(255,255,255,.86);max-width:540px;margin:22px auto 0;text-shadow:0 1px 16px rgba(0,0,0,.4)}
.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;font-size:9.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-soft);opacity:.7}
.scroll-hint::after{content:'';display:block;width:1px;height:26px;background:var(--ink-soft);margin:9px auto 0;opacity:.45}

/* ---------- offer card ---------- */
.offer-zone{position:relative;z-index:5;margin-top:-88px;padding-bottom:76px}
.offer{margin:0 auto;max-width:560px;background:#fff;border:1px solid var(--line);border-radius:3px;padding:40px 30px 34px;text-align:center;position:relative;box-shadow:0 30px 70px -34px rgba(28,25,23,.5)}
.offer::before{content:'';position:absolute;inset:7px;border:1px solid var(--rose-pale);border-radius:2px;pointer-events:none}
.pct{font-family:var(--serif);font-size:clamp(66px,15vw,102px);line-height:.86;font-weight:400;letter-spacing:-.03em}
.pct sup{font-size:.34em;vertical-align:super;color:var(--rose-deep)}
.pct-label{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft);margin-top:14px;font-weight:500}
.plus{display:flex;align-items:center;gap:14px;margin:26px 0 22px}
.plus::before,.plus::after{content:'';flex:1;height:1px;background:var(--line)}
.plus span{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--rose-deep)}
.gift-txt{font-size:15px;line-height:1.55}
.gift-txt strong{font-weight:500;letter-spacing:.04em}
.gift-txt small{display:block;font-size:12.5px;color:var(--ink-soft);margin-top:7px}
.code{margin-top:26px;padding:15px;background:var(--paper-2);border:1px dashed var(--rose);border-radius:2px}
.code i{display:block;font-style:normal;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}
.code b{font-size:23px;letter-spacing:.24em;font-weight:600;color:var(--rose-deep)}
.cd{display:flex;justify-content:center;gap:10px;margin-top:30px}
.cd div{background:var(--paper);border:1px solid var(--line);border-radius:2px;min-width:66px;padding:11px 6px}
.cd b{display:block;font-family:var(--serif);font-size:30px;font-weight:400;line-height:1}
.cd i{display:block;font-style:normal;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px}
.deadline{margin-top:16px;font-size:12.5px;letter-spacing:.1em;color:var(--ink-soft)}

.tw-wrap{margin:34px auto 0;max-width:960px;text-align:center}
.tw-frame{background:#fff;border:1px solid var(--line);border-radius:3px;box-shadow:0 26px 60px -36px rgba(28,25,23,.45);padding:8px}
#wahanda-online-booking-widget-iframe{display:block;width:100%;min-height:780px}
#wahanda-online-booking-widget-iframe iframe{width:100%!important;min-height:780px;height:100%;border:0;display:block}
@media(max-width:640px){#wahanda-online-booking-widget-iframe,#wahanda-online-booking-widget-iframe iframe{min-height:640px}}
.tw-hint{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}

/* ---------- buttons ---------- */
.cta-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:32px}
.btn{display:inline-block;padding:16px 34px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;text-decoration:none;border-radius:2px;transition:.28s;border:1px solid transparent;cursor:pointer}
.btn-1{background:var(--ink);color:#fff}
.btn-1:hover{background:var(--rose-deep)}
.btn-2{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-2:hover{background:var(--ink);color:#fff}

/* ---------- sections ---------- */
section{padding:76px 0}
.alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
h2{font-family:var(--serif);font-weight:300;font-size:clamp(29px,4.6vw,42px);line-height:1.16;text-align:center;margin-bottom:14px}
.lede{text-align:center;color:var(--ink-soft);max-width:600px;margin:0 auto 46px;font-size:15.5px}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.card{background:var(--paper);padding:34px 26px;text-align:center;transition:.3s}
.alt .card{background:#fff}
.card:hover{background:var(--rose-pale)}
.card .ico{color:var(--rose);margin-bottom:16px;line-height:0}
.card .ico svg{width:46px;height:46px;display:inline-block;stroke-width:1.3}
.card h3{font-family:var(--serif);font-weight:500;font-size:21px;margin-bottom:9px}
.card p{font-size:13.5px;color:var(--ink-soft);line-height:1.6}
.card .price{margin-top:15px;padding-top:13px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-soft)}
.card .price b{color:var(--rose-deep);font-size:19px;font-weight:500;font-family:var(--serif)}
.card .price s{opacity:.5;margin-right:7px}

.steps{max-width:640px;margin:0 auto;counter-reset:s}
.step{display:flex;gap:22px;padding:24px 0;border-bottom:1px solid var(--line)}
.step:last-child{border:0}
.step::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-family:var(--serif);font-size:26px;color:var(--rose);min-width:42px;line-height:1.1}
.step h4{font-size:15px;font-weight:500;letter-spacing:.03em;margin-bottom:5px}
.step p{font-size:14px;color:var(--ink-soft)}

.addr{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:22px;max-width:860px;margin:0 auto}
.addr-c{background:#fff;border:1px solid var(--line);padding:32px 28px;position:relative}
.addr-c.new{border-color:var(--rose)}
.tag{position:absolute;top:-10px;left:28px;background:var(--rose);color:#fff;font-size:9px;letter-spacing:.22em;text-transform:uppercase;padding:4px 12px;font-weight:500}
.addr-c h3{font-family:var(--serif);font-size:24px;font-weight:500;margin-bottom:12px}
.addr-c p{font-size:14px;color:var(--ink-soft);line-height:1.75}
.addr-c a{color:var(--rose-deep);text-decoration:none;border-bottom:1px solid var(--rose-pale)}
.addr-c a:hover{border-color:var(--rose-deep)}

details{border-bottom:1px solid var(--line);padding:17px 0}
summary{cursor:pointer;font-size:14.5px;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:'+';font-family:var(--serif);font-size:22px;color:var(--rose);line-height:1}
details[open] summary::after{content:'−'}
details p{font-size:14px;color:var(--ink-soft);margin-top:11px;padding-right:30px}

/* ---------- final CTA ---------- */
.final{background:var(--ink);color:#fff;text-align:center;padding:78px 0}
.final h2{color:#fff}
.final .lede{color:rgba(255,255,255,.62)}
.final .btn-1{background:#fff;color:var(--ink)}
.final .btn-1:hover{background:var(--rose);color:#fff}
.final .btn-2{border-color:rgba(255,255,255,.4);color:#fff}
.final .btn-2:hover{background:#fff;color:var(--ink)}

/* ---------- gift cards ---------- */
.giftsec{background:#0f0d0c;color:#fff;padding:0;overflow:hidden}
.giftgrid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;max-width:1080px;margin:0 auto}
.giftvid{position:relative;background:#0f0d0c;min-height:400px;display:flex;align-items:center;justify-content:center;padding:44px 24px}
.giftvid video{width:min(290px,72%);aspect-ratio:406/720;height:auto;object-fit:cover;border-radius:6px;box-shadow:0 26px 60px -22px rgba(0,0,0,.9);border:1px solid rgba(255,255,255,.1)}
.gifttxt{padding:64px 48px}
.gifttxt .eyebrow{color:var(--rose);opacity:1;margin-bottom:18px;text-align:left}
.gifttxt .eyebrow::before{display:none}
.gifttxt .eyebrow::after{background:rgba(192,120,138,.5)}
.gifttxt h2{text-align:left;color:#fff;margin-bottom:16px;font-size:clamp(27px,3.6vw,36px)}
.gifttxt p{color:rgba(255,255,255,.62);font-size:15px;margin-bottom:26px;max-width:420px}
.amounts{display:flex;gap:10px;margin-bottom:28px;flex-wrap:wrap}
.amounts span{border:1px solid rgba(255,255,255,.22);padding:9px 20px;font-family:var(--serif);font-size:19px;border-radius:2px;color:#fff}
.gifttxt .btn-2{border-color:rgba(255,255,255,.45);color:#fff}
.gifttxt .btn-2:hover{background:#fff;color:var(--ink)}

footer{background:#141211;color:rgba(255,255,255,.5);text-align:center;padding:42px 0;font-size:12px;line-height:1.9}
footer a{color:rgba(255,255,255,.72);text-decoration:none}
footer .fine{margin-top:14px;font-size:10.5px;color:rgba(255,255,255,.32);max-width:640px;margin-left:auto;margin-right:auto;line-height:1.7}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

@media(max-width:860px){
  .giftgrid{grid-template-columns:1fr}
  .giftvid{min-height:330px}
  .gifttxt{padding:48px 26px 56px;text-align:center}
  .gifttxt h2,.gifttxt .eyebrow{text-align:center}
  .gifttxt p{margin-left:auto;margin-right:auto}
  .amounts{justify-content:center}
}
@media(max-width:640px){
  section{padding:56px 0}
  .hero{height:78vh;min-height:600px}
  .offer{padding:32px 22px 28px}
  .offer-zone{margin-top:-56px}
  .cd div{min-width:58px}
  .btn{width:100%;text-align:center}
}
