:root{--gold:#ffb81c;--ink:#1e2224;--muted:#626665;--line:#e5e7e5;--cyan:#29c6bf}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit}.preview-note{background:#f6f7f4;padding:7px 18px;text-align:center;font-size:11px;letter-spacing:.015em;color:#656968;border-bottom:1px solid #eceeeb}.preview-dot{display:inline-block;background:#a9b0ab;width:6px;height:6px;border-radius:50%;vertical-align:middle;margin-right:5px}
.site-header{background:#fff;border-bottom:1px solid #e9e9e7}.header-inner{height:82px;margin:auto;width:min(calc(100% - 64px),1300px);display:flex;align-items:center;justify-content:space-between;gap:25px}
.brand{display:flex;align-items:center;flex:none}.brand img{display:block;width:162px;height:auto}.desktop-nav{display:flex;align-items:center;justify-content:center;gap:clamp(15px,2.3vw,33px);margin:auto}.desktop-nav a{font-weight:700;font-size:13px;text-decoration:none;white-space:nowrap}.desktop-nav a:hover,.menu-panel a:hover{color:#007c76}.header-right{display:flex;align-items:center;gap:15px}.notif{display:inline-flex;align-items:center}.login{background:var(--ink);color:#fff;border-radius:7px;padding:14px 16px;text-decoration:none;font-size:13px;font-weight:800;white-space:nowrap}.mobile-menu{display:none}
.main{max-width:1300px;margin:0 auto;padding:0 32px 50px}.back{display:inline-block;margin:30px 0 27px;font-size:13px;text-decoration:underline;text-underline-offset:4px;color:#3d615c}
.hero{display:grid;grid-template-columns:minmax(0,1.23fr) minmax(320px,.86fr);gap:clamp(28px,4.5vw,70px);align-items:center;margin-bottom:24px}.hero-copy{min-width:0}.pill{display:inline-block;padding:9px 16px;border-radius:99px;background:#fff1c5;font-size:12px;letter-spacing:.025em;font-weight:900}.hero h1{font-size:clamp(36px,3.7vw,52px);line-height:1.085;font-weight:900;letter-spacing:-.048em;margin:23px 0 25px;max-width:750px}.identity{display:flex;gap:12px;align-items:center}.identity img{width:53px;height:53px;border-radius:15px;object-fit:cover}.identity strong{display:block;font-size:18px;letter-spacing:-.015em}.identity span{display:block;font-size:13px;margin-top:5px;color:#6b6e6c}.location{border-left:4px solid var(--gold);padding:4px 0 4px 15px;margin-top:23px;font-size:14px;line-height:1.65;color:#414746;max-width:660px}
.hero-photo{aspect-ratio:1.12;max-width:505px;border-radius:22px;overflow:hidden;background:#ecece8;justify-self:end;box-shadow:0 16px 40px #171c1e0b}.hero-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 50%}
.booking{background:var(--gold);border-radius:20px;display:grid;grid-template-columns:minmax(225px,1.1fr) minmax(340px,1fr) minmax(215px,.8fr);align-items:center;gap:20px;padding:23px 25px;margin:25px 0}.booking-name{display:flex;align-items:center;gap:14px}.booking-icon{height:58px;min-width:64px;display:flex;align-items:center;justify-content:center;border-right:1px solid #161a1c7d;padding-right:16px}.booking-name h2{font-size:25px;line-height:1.09;font-weight:900;margin:0 0 8px;letter-spacing:-.03em}.booking-name p{margin:0;font-size:13px;line-height:1.55;max-width:300px}.session-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.session{border:2px solid transparent;min-height:88px;background:#fff;border-radius:13px;font:inherit;cursor:pointer;color:var(--ink);box-shadow:0 2px 6px #8a660820;padding:10px 6px}.session span{display:block;font-size:13px;font-weight:800}.session strong{display:block;font-size:25px;letter-spacing:-.025em;margin-top:6px}.session.selected{border-color:var(--ink);background:#fffdf7;box-shadow:0 0 0 1px #fff}.session:focus-visible,.cta:focus-visible,.login:focus-visible,.mobile-menu summary:focus-visible{outline:3px solid #0d6560;outline-offset:3px}
.cta{display:flex;align-items:center;justify-content:center;gap:11px;min-height:84px;border-radius:13px;text-align:center;text-decoration:none;padding:15px;background:var(--ink);color:white;font-weight:850;font-size:15px;line-height:1.25}.cta:hover{background:#343a3d}.cta svg{flex:none}
.story{border:1px solid #e1e5e3;border-radius:20px;padding:31px 36px;background:#fff}.section-overline{font-size:11px;color:#747878;font-weight:750;letter-spacing:.11em}.story h2{font-size:32px;margin:6px 0 13px;line-height:1.2;letter-spacing:-.04em}.line{width:59px;height:5px;border-radius:10px;background:var(--gold);margin:0 0 18px}.story p{font-size:15px;line-height:1.83;color:#414647;margin:0 0 15px;max-width:1120px}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0 10px}.facts>div{border-radius:12px;padding:14px 16px;background:#f6f6f3}.facts strong{display:block;font-size:14px}.facts span{display:block;font-size:12px;line-height:1.5;color:#6a6d6d;margin-top:4px}
.more{border-top:1px solid var(--line);margin-top:23px;padding-top:12px}.more summary{padding:10px 0;font-size:14px;font-weight:800;cursor:pointer;color:#2c5551;display:flex;justify-content:space-between}.more summary::marker{content:""}.more summary span{font-size:22px;line-height:.7}.more[open] summary span{transform:rotate(180deg)}.more-text{padding:17px 0 1px}
.brand-quote{background:var(--ink);color:#fff;margin-top:24px;padding:24px 35px;border-radius:19px;text-align:center}.brand-quote p{font-size:clamp(19px,2.4vw,29px);line-height:1.3;letter-spacing:-.03em;font-weight:820;margin:0}.brand-quote em{font-style:normal;color:var(--gold)}
.site-footer{max-width:1300px;margin:auto;padding:0 32px 45px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px;color:#717675}.site-footer a{text-underline-offset:4px}
@media(max-width:1160px){.header-inner{width:min(calc(100% - 40px),1250px)}.brand img{width:149px}.desktop-nav{gap:15px}.desktop-nav a{font-size:12px}.booking{grid-template-columns:1fr 1.12fr;gap:16px}.cta{grid-column:1/-1;min-height:56px}.hero{grid-template-columns:1.25fr .9fr}.hero-photo{aspect-ratio:1}.hero h1{font-size:clamp(34px,4vw,45px)}}
@media(max-width:850px){.desktop-nav{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{font-size:24px;list-style:none;cursor:pointer;user-select:none}.mobile-menu summary::-webkit-details-marker{display:none}.menu-panel{position:absolute;z-index:20;right:0;top:38px;width:min(320px,calc(100vw - 45px));border:1px solid var(--line);border-radius:12px;box-shadow:0 15px 45px #0002;background:#fff;padding:9px}.menu-panel a{display:block;text-decoration:none;font-size:14px;font-weight:750;padding:13px}.hero{grid-template-columns:minmax(0,1fr) minmax(230px,.8fr);gap:22px}.hero h1{font-size:35px}.main{padding:0 20px 35px}.hero-photo{aspect-ratio:.9}.booking{grid-template-columns:1fr}.cta{grid-column:auto}.booking-name h2 br{display:none}.booking-name h2{font-size:24px}.booking-name p{max-width:unset}.site-footer{padding:0 20px 30px}}
@media(max-width:650px){.header-inner{height:68px;width:calc(100% - 32px);gap:10px}.brand img{width:138px}.notif{display:none}.header-right{gap:10px}.login{font-size:12px;padding:11px 10px}.main{padding:0 16px 30px}.back{margin:20px 0 21px}.hero{grid-template-columns:1fr;gap:22px}.hero h1{font-size:clamp(33px,8vw,40px);margin:17px 0 23px;line-height:1.14}.pill{font-size:11px;padding:8px 12px}.hero-photo{grid-row:2;width:100%;max-width:none;aspect-ratio:1.15;justify-self:stretch;border-radius:17px}.location{margin-top:16px}.booking{margin:22px 0;border-radius:17px;padding:20px;gap:17px}.booking-name{gap:13px}.booking-name h2{font-size:23px}.booking-icon{min-width:46px;padding-right:12px}.booking-icon svg{width:30px;height:30px}.session{min-height:76px}.session strong{font-size:22px}.cta{min-height:59px}.cta span br{display:none}.story{padding:23px 20px;border-radius:17px}.story h2{font-size:29px}.story p{font-size:14px}.facts{grid-template-columns:1fr;gap:8px;margin-top:20px}.brand-quote{padding:23px 18px;margin-top:19px}.site-footer{padding:0 16px 30px;flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:no-preference){.session,.cta{transition:background-color .15s ease,border-color .15s ease}}
/* Interactions existantes du site : notifications et menu de compte. */
.ks-notification-center{position:relative;display:inline-flex;align-items:center;z-index:150}
.ks-notification-bell{position:relative;width:42px;height:42px;display:grid;place-items:center;flex:none;border:1px solid #d7d3c9;border-radius:50%;background:#fff;color:#171717;cursor:pointer;box-shadow:0 5px 16px rgba(20,20,20,.07)}
.ks-notification-bell:hover{border-color:#aaa59a;background:#fffefa}
.ks-notification-bell svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ks-notification-badge{position:absolute;right:-5px;top:-6px;min-width:21px;height:21px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#ff334f;color:#fff;border:2px solid #fff;font-size:10px;font-weight:950;line-height:1;box-shadow:0 3px 9px rgba(255,51,79,.28)}
.ks-notification-panel{position:absolute;right:0;top:calc(100% + 11px);width:min(380px,calc(100vw - 24px));max-height:min(520px,72vh);overflow:hidden;background:#fff;color:#171717;border:1px solid #d8d3c9;border-radius:20px;box-shadow:0 22px 64px rgba(18,18,18,.18);z-index:300}
.ks-notification-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 13px;border-bottom:1px solid #ece8df}
.ks-notification-head>b{font-size:16px}
.ks-notification-read-all{border:0;background:transparent;color:#376e68;font-size:11px;font-weight:900;cursor:pointer;padding:5px}
.ks-notification-list{max-height:min(445px,62vh);overflow:auto}
.ks-notification-item{width:100%;display:grid;grid-template-columns:9px minmax(0,1fr) 18px;gap:10px;align-items:start;text-align:left;border:0;border-bottom:1px solid #f0ede6;background:#fff;padding:14px 15px;cursor:pointer;color:#171717}
.ks-notification-item:last-child{border-bottom:0}
.ks-notification-item:hover{background:#faf9f5}
.ks-notification-item.unread{background:#f4fffc}
.ks-notification-dot{width:8px;height:8px;margin-top:6px;border-radius:50%;background:transparent}
.ks-notification-item.unread .ks-notification-dot{background:#ff334f;box-shadow:0 0 0 3px rgba(255,51,79,.10)}
.ks-notification-copy{display:grid;gap:4px;min-width:0}
.ks-notification-copy b{font-size:13.5px;line-height:1.3}
.ks-notification-copy>span{font-size:12.5px;line-height:1.4;color:#5d5953}
.ks-notification-copy small{font-size:10.5px;color:#918b82}
.ks-notification-arrow{font-size:15px;color:#8c877e;margin-top:3px}
.ks-notification-empty{padding:25px 18px;text-align:center;color:#777168;font-size:13px}
.ks-notification-floating{position:fixed;right:16px;top:16px;z-index:500}
.legal-top .ks-notification-center{margin-left:auto}

@media(max-width:640px){
  .ks-notification-center{z-index:5}
  .ks-notification-bell{width:39px;height:39px;transform:none}
  .ks-notification-panel{
    position:fixed;
    left:12px;
    right:12px;
    top:calc(var(--ks-mobile-header-bottom,68px) + 8px);
    width:auto;
    max-height:min(70dvh,calc(100dvh - var(--ks-mobile-header-bottom,68px) - 20px));
    overscroll-behavior:contain;
    z-index:400
  }
  .ks-notification-list{max-height:calc(min(70dvh,calc(100dvh - var(--ks-mobile-header-bottom,68px) - 20px)) - 53px)}
}
/* Identité du compte connecté, discrète et non cliquable dans les menus « Mon espace ». */
.topbar .header-account-menu-panel .ks-account-identity{
  display:flex;flex-direction:column;gap:3px;min-width:0;
  margin:0 0 4px;padding:9px 12px 12px;border-bottom:1px solid #e9e4dc;
  text-align:left;background:transparent;
}
.topbar .header-account-menu-panel .ks-account-identity span{
  color:#69645e;font-size:11px;font-weight:600;line-height:1.3;
}
.topbar .header-account-menu-panel .ks-account-identity strong{
  display:block;min-width:0;color:#35322e;font-size:12px;font-weight:700;
  line-height:1.45;overflow-wrap:anywhere;word-break:normal;user-select:text;
}
/* Menu déroulant « Mon espace » sur les pages publiques, disponible uniquement connecté. */
.topbar .nav-actions>.header-account-direct{
  border-radius:999px 0 0 999px;
  padding-right:12px;
  margin-right:-10px;
  min-height:42px;
  display:inline-flex;align-items:center
}
.topbar .public-header-account-menu{position:relative;display:block;flex:0 0 auto}
.topbar .public-header-account-menu>summary{
  display:flex;align-items:center;justify-content:center;
  list-style:none;min-width:33px;min-height:42px;padding:8px 11px;
  border:1px solid rgba(255,255,255,.22);border-radius:0 999px 999px 0;
  background:#fff;color:#171717;cursor:pointer
}
.topbar .public-header-account-menu>summary::-webkit-details-marker{display:none}
.topbar .public-header-account-menu>summary:hover,
.topbar .public-header-account-menu[open]>summary{border-color:var(--accent);color:#146b65}
.topbar .public-header-account-menu>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.topbar .public-header-account-menu .header-account-menu-arrow{font-size:14px;line-height:1;transition:transform .15s}
.topbar .public-header-account-menu[open] .header-account-menu-arrow{transform:rotate(180deg)}
.topbar .public-header-account-menu .header-account-menu-panel{
  position:absolute;right:0;top:calc(100% + 10px);z-index:500;
  display:grid;gap:3px;width:245px;max-width:calc(100vw - 24px);
  padding:7px;background:#fff;border:1px solid #ddd8cf;border-radius:16px;
  box-shadow:0 18px 50px rgba(0,0,0,.22)
}
.topbar .public-header-account-menu .header-account-menu-panel a{
  text-decoration:none;color:#28251f;padding:11px 12px;
  border-radius:11px;font-size:13px;font-weight:800;line-height:1.25
}
.topbar .public-header-account-menu .header-account-menu-panel a:hover,
.topbar .public-header-account-menu .header-account-menu-panel a:focus-visible{background:#f3f0e9;outline:none}
.topbar .public-header-account-menu .header-account-logout{
  width:100%;min-height:44px;text-align:left;appearance:none;display:flex;align-items:center;
  border:0;border-top:1px solid #e5e0d7;background:transparent;color:#55514b;
  padding:12px;border-radius:11px;font:inherit;font-size:12px;font-weight:650;cursor:pointer;margin-top:3px
}
.topbar .public-header-account-menu .header-account-logout:hover,
.topbar .public-header-account-menu .header-account-logout:focus-visible{background:#f3f0e9}
.topbar .public-header-account-menu .header-account-logout:focus-visible{outline:2px solid #18756c;outline-offset:-2px}
@media(max-width:700px){
  .topbar .nav-actions>.header-account-direct{min-height:39px;padding:9px 9px;margin-right:-6px;font-size:12px}
  .topbar .public-header-account-menu>summary{min-width:29px;min-height:39px;padding:8px}
  .topbar .public-header-account-menu .header-account-menu-panel{
    position:fixed;top:calc(var(--ks-mobile-header-bottom,68px) + 8px);
    left:12px;right:12px;width:auto;max-width:none;max-height:calc(100dvh - var(--ks-mobile-header-bottom,68px) - 20px);overflow-y:auto;overscroll-behavior:contain
  }
}
@media(max-width:380px){
  .topbar .nav-actions>.header-account-direct{padding-left:7px;padding-right:7px;font-size:11px}
  .topbar .public-header-account-menu>summary{min-width:25px;padding:7px}
}

/* Le lien Mon espace conserve le menu existant sur PC et mobile. */
.topbar .public-header-account-menu>summary .header-account-menu-arrow{
  width:16px;height:16px;flex:none;display:block
}
@media(max-width:700px){
  .topbar .public-header-account-menu>summary .header-account-menu-arrow{width:15px;height:15px}
}
/* En-tête connecté complet (logo, navigation, cloche, espace) sur petits mobiles. */
@media(max-width:430px){
  .topbar .shell.nav:has(.public-header-account-menu){gap:2px}
  .topbar .nav-actions:has(.public-header-account-menu){gap:2px}
  .topbar .nav-actions>.header-account-direct{padding-left:5px;padding-right:5px;margin-right:-2px}
  .topbar .public-header-account-menu>summary{min-width:25px;padding:5px}
}

/* « Mon espace » : aspect initial avec un seul bouton visible.
   Le clic ouvre le tableau de bord ; le survol garde les raccourcis sur PC. */
.topbar .nav-actions{--ks-account-nav-gap:10px}
@media(min-width:1201px){.topbar .nav-actions{--ks-account-nav-gap:8px}}
@media(max-width:700px){.topbar .nav-actions{--ks-account-nav-gap:6px}}
@media(max-width:430px){.topbar .nav-actions{--ks-account-nav-gap:2px}}
.topbar .nav-actions>.header-account-direct{
  border-radius:999px;
  margin-right:0;
  padding-right:18px
}
.topbar .public-header-account-menu{
  position:relative;display:block;width:0;height:0;min-width:0;
  flex:0 0 0;margin-left:calc(-1 * var(--ks-account-nav-gap));z-index:500
}
.topbar .public-header-account-menu>summary{display:none!important}
.topbar .public-header-account-menu .header-account-menu-panel{top:28px}
@media(max-width:700px){
  .topbar .nav-actions>.header-account-direct{
    border-radius:999px;
    margin-right:0;
    padding-right:11px
  }
  .topbar .public-header-account-menu .header-account-menu-panel{
    top:calc(var(--ks-mobile-header-bottom,68px) + 8px)
  }
}
@media(max-width:430px){
  .topbar .nav-actions>.header-account-direct{margin-right:0;padding-right:7px}
}
/* Tablettes tactiles larges : la déconnexion reste accessible dans le menu. */
@media(hover:none),(pointer:coarse){
  .topbar .public-header-account-menu .header-account-logout{display:flex!important}
}
@media(prefers-reduced-motion:reduce){
  .topbar .public-header-account-menu *{transition:none!important}
}
:root{--accent:#ffb81c;--ks-mobile-header-bottom:82px}
.nav-actions:has(.ks-notification-center)>.notif{display:none}
.nav-actions .ks-notification-center{order:0}.nav-actions .login{order:1}.nav-actions .public-header-account-menu{order:2}
.topbar .nav-actions>.header-account-direct{background:#1e2224;color:#fff;border-radius:7px!important;margin-right:0!important;padding:14px 16px!important;min-height:unset!important}
.topbar .header-account-menu-panel{font-family:Inter,"Segoe UI",Arial,sans-serif}
.site-nav-menu-panel .ks-mobile-account-shortcuts{display:grid;gap:5px;margin-top:9px;border-top:1px solid #e5e5e3;padding-top:8px}
.site-nav-menu-panel .ks-mobile-account-shortcuts a{font-size:12px}
@media(max-width:650px){:root{--ks-mobile-header-bottom:68px}.nav-actions .ks-notification-center{margin-right:0}.ks-notification-bell{width:35px;height:35px}.header-right{gap:6px}.topbar .nav-actions>.header-account-direct{padding:11px 10px!important;font-size:12px!important}.topbar .nav-actions .public-header-account-menu{position:relative}}
/* Fiches publiques partagées : éléments réellement disponibles uniquement. */
.hero.no-photo{grid-template-columns:minmax(0,1fr)}
.hero.no-photo .hero-copy{max-width:790px}
.session-options{grid-template-columns:repeat(var(--duration-count,3),minmax(0,1fr))}
.facts{grid-template-columns:repeat(var(--fact-count,3),minmax(0,1fr))}
.story p{white-space:pre-line;overflow-wrap:anywhere}
.facts strong,.facts span{overflow-wrap:anywhere}
.story .more-text h3{font-size:17px;margin:7px 0 9px;letter-spacing:-.015em}
.booking[hidden]{display:none!important}
@media(max-width:650px){
  .facts{grid-template-columns:1fr}
  .hero.no-photo{grid-template-columns:1fr}
}