/* Final phone pass: navigation, tap targets, sticky controls and overflow. */
html,body{max-width:100%;overflow-x:hidden}
.menu,.lang{min-width:44px;min-height:44px;touch-action:manipulation}

@media(max-width:900px){
  .topbar{height:72px!important;padding:10px 18px!important;position:sticky!important;top:0!important}
  .topbar.over{position:fixed!important}
  .topbar .brand{width:126px!important;height:42px!important;z-index:2}
  .topbar .menu{display:grid!important;place-items:center;margin-left:auto;padding:0;border:0;background:transparent;color:inherit;font-size:25px;line-height:1;cursor:pointer;z-index:2}
  .topbar .nav{display:none!important;position:absolute!important;top:72px!important;left:0!important;right:0!important;width:100%!important;max-height:calc(100svh - 72px);overflow:auto;background:#0b1713!important;color:#f4f1e9!important;padding:20px 18px 26px!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;box-shadow:0 18px 35px rgba(0,0,0,.22)}
  .topbar .nav.open{display:flex!important}
  .topbar .nav a{display:flex!important;align-items:center!important;min-height:50px;padding:8px 2px;border-bottom:1px solid rgba(244,241,233,.15);font-size:15px}
  .topbar .nav a:after{display:none!important}
  .topbar .nav a.active{color:#d88422}
  .topbar .nav .lang{width:100%;margin-top:16px;border-color:rgba(244,241,233,.55);color:#f4f1e9;text-align:center;font-size:12px}
  .catalogue-toolbar,.filters{top:72px!important}
  .rx-cart-fab{display:flex!important;right:12px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;min-height:52px;padding:15px 19px!important;background:#d8ee49!important;box-shadow:0 10px 30px rgba(0,0,0,.28)!important}
  .rx-note{padding-bottom:130px!important}
}

@media(max-width:640px){
  main,section,header,footer{max-width:100vw}
  img,video,iframe{max-width:100%}
  .mega,.signature-hero{min-height:calc(100svh - 72px)!important}
  .mega.video{padding:96px 18px 28px!important}
  .mega.video .display{width:100%;max-width:100%!important;font-size:clamp(48px,13.7vw,64px)!important;line-height:.86!important;letter-spacing:-.07em;white-space:nowrap}
  .mega.video .kicker{gap:18px;font-size:9px}
  .mega.video .hero-foot{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:stretch}
  .mega.video .hero-foot p{grid-row:2;width:100%;max-width:100%;min-width:0;font-size:clamp(19px,5.6vw,23px)}
  .mega.video .hero-entry{display:contents}
  .mega.video .mini-greeting{grid-row:1;min-width:0;text-align:left;line-height:1.4;white-space:nowrap}
  .mega.video .hero-entry .arrow-link{grid-row:3;justify-self:end}
  .hero-entry{min-width:44px}
  .signature-hero{padding-inline:18px!important}
  .signature-title h1{min-width:0;max-width:100%;white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal}
  .section{padding-inline:18px;overflow:hidden}
  .cta{margin-inline:18px}
  .footer{padding-inline:18px}
  .section-head h2,.statement h2,.cta h2,.directory-head h2,.catalogue-head h2,.agenda-programming-head h2,.rx-intro h2,.rx-ticket-head h2,.rx-note h2{font-size:clamp(42px,13vw,58px)!important;line-height:.9!important;overflow-wrap:normal;word-break:normal}

  /* Home: keep the full headline inside the viewport. */
  .mega.video .display .accent{display:inline-block;position:relative;font-size:.76em;letter-spacing:-.085em}
  .mega.video .display .home-dot{position:absolute;left:100%;bottom:.12em;margin-left:.08em}

  /* The five worlds become a native horizontal swipe on phones. */
  .home-worlds{
    display:flex!important;
    width:calc(100vw - 18px);
    max-width:none;
    gap:14px!important;
    overflow-x:auto!important;
    overflow-y:hidden;
    padding:0 18px 18px 0;
    margin-right:-18px;
    scroll-snap-type:x mandatory;
    scroll-padding-left:0;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .home-worlds::-webkit-scrollbar{display:none}
  .home-worlds .tile,.home-worlds .tile:nth-child(n){
    flex:0 0 82vw!important;
    width:82vw!important;
    min-width:82vw!important;
    min-height:64svh!important;
    margin:0!important;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }

  /* Carnet: retain the split 60/40 editorial composition without clipping. */
  .hero{padding-inline:18px!important}
  .hero-title{width:100%;gap:0!important;align-items:center!important}
  .hero-title>span{position:absolute;left:0;font-size:16px!important;margin:0!important}
  .hero-title h1,.hero h1{width:100%;max-width:none!important;margin-left:40px!important;font-size:clamp(55px,16.5vw,72px)!important;letter-spacing:-.075em;white-space:nowrap}
  .hero-title i{font-size:22px!important;margin-left:4px}
  .hero-kicker{gap:14px}
  .hero-kicker span{max-width:48%;line-height:1.45}
  .hero-bottom p{max-width:78%!important;font-size:clamp(20px,5.7vw,24px)!important}

  /* Agenda: the collage stays at 40%; the lock-up uses the remaining width. */
  .agenda-lockup{width:60%!important;max-width:60%;gap:10px!important;align-items:center}
  .agenda-vertical{width:52px!important;min-width:52px;height:144px!important;font-size:28px!important;padding:9px 5px!important}
  .agenda-lockup h1{min-width:0;width:calc(100% - 62px);font-size:clamp(38px,11.4vw,50px)!important;line-height:.84!important;letter-spacing:-.07em}
  .agenda-lockup h1 span{white-space:nowrap}
  .agenda-lockup h1 span:last-child{margin-left:0!important}
  .agenda-hero .hero-foot p{max-width:78%;font-size:clamp(19px,5.5vw,23px)}

  /* Raices: 60% typography + 40% photography, both visible in full. */
  .rx-hero .signature-title{width:64%!important;max-width:64%;gap:7px!important}
  .rx-hero .signature-badge{flex:0 0 40px;width:40px!important;padding:8px 4px!important;font-size:7px!important}
  .rx-title-stack{min-width:0;width:calc(100% - 47px)}
  .rx-hero .signature-title h1{width:100%;font-size:clamp(46px,13.2vw,58px)!important;letter-spacing:-.075em;white-space:nowrap!important}
  .rx-title-tagline{font-size:clamp(17px,5vw,21px)!important;line-height:1.05;max-width:11ch!important}
  .rx-event-bar span{text-align:center;line-height:1.35}
  .rx-intro,.rx-journey,.rx-tickets,.rx-season-media,.rx-note{padding-inline:18px!important}
  .rx-intro{padding-top:58px!important;padding-bottom:58px!important;gap:0!important}
  .rx-intro h2{margin-top:14px!important;margin-bottom:0!important}
  .rx-intro-copy{margin-top:26px!important;line-height:1.48!important}
  .rx-facts{margin-top:32px!important}
  .rx-facts div{padding:17px 0!important}
  .rx-journey{padding-top:68px!important;padding-bottom:72px!important}
  .rx-journey-head{gap:24px!important;margin-bottom:48px!important}
  .rx-journey-head h2{font-size:clamp(52px,15vw,66px)!important;line-height:.82!important;margin-top:12px!important}
  .rx-journey-head p{font-size:16px!important;line-height:1.65!important}
  .rx-journey-track{padding-left:10px!important;gap:22px!important;margin-left:0!important}
  .rx-journey-track::before{left:27px!important}
  .rx-journey-track div{padding-left:62px!important;min-height:84px!important}
  .rx-journey-track b{left:0!important;width:36px!important;height:36px!important}
  .rx-journey-track strong{font-size:11px!important;line-height:1.4!important}
  .rx-journey-track span{font-size:14px!important;line-height:1.45!important}
  .rx-journey-track.is-dynamic .rx-journey-runner{display:none!important}
  .rx-journey-track.is-dynamic .rx-journey-step,.rx-journey-track.is-dynamic .rx-journey-step>b{opacity:1!important;transform:none!important}
  .rx-acts{
    display:flex!important;
    width:calc(100vw - 18px)!important;
    max-width:none!important;
    gap:14px!important;
    margin-right:-18px!important;
    padding:0 18px 18px 0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory;
    scroll-padding-left:0;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    background:transparent!important;
  }
  .rx-acts::-webkit-scrollbar{display:none}
  .rx-acts .rx-act-card{
    flex:0 0 84vw!important;
    width:84vw!important;
    min-width:84vw!important;
    min-height:68svh!important;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .rx-facts b{font-size:18px}
  .rx-act-card,.rx-act-inner{max-width:100%}
  .rx-act-face{padding-inline:24px!important}
  .rx-act-face h3{font-size:clamp(38px,12vw,52px)!important}

  .agenda-programming{overflow:hidden}
  .agenda-month-title{gap:12px}
  .agenda-month-title h3{font-size:clamp(40px,12vw,52px)!important}
  .agenda-month-title span{text-align:right;font-size:9px}
  .agenda-card-body{min-width:0}
  .agenda-card-copy{min-width:0}
  .agenda-card h4{overflow-wrap:normal;word-break:normal}
  .contact-box a{font-size:clamp(22px,7vw,34px)!important}
  .activity-cta,.arrow-link,.agenda-card-link,.rx-add,.rx-pay{min-height:44px;display:inline-flex;align-items:center}
  .activity-meta{overflow:hidden}
  .activity-meta span{min-width:0;overflow-wrap:anywhere}
  .rx-cart{width:100%!important;max-width:100%!important}
  .rx-season-grid iframe{height:352px;max-width:100%}
  .rx-sneak video{max-height:58svh;object-fit:cover}
}

@media(max-width:370px){
  .mega.video .display{font-size:12.8vw!important}
  .agenda-lockup h1{font-size:10.8vw!important}
  .hero-title h1,.hero h1{font-size:15.7vw!important}
  .rx-hero .signature-title h1{font-size:12.6vw!important}
  .topbar{padding-inline:14px!important}
}
/* iOS coupe l'autoplay en mode économie d'énergie : fallback tactile explicite. */
.hero-video-play{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(11,23,19,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;padding:12px 17px;font:600 12px 'DM Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.hero-video-play span{font-size:14px}.hero-video-play[hidden]{display:none}
