/* ========================================================================== */
/* Tabooze 1933 — couche responsive
   Cette feuille est volontairement chargée APRES main.css.
   Objectif : conserver le rendu desktop 1920×1080 tout en optimisant :
   - tablette paysage autour de 900–1180 px ;
   - mobile de 320–860 px ;
   - tunnel WordPress de réservation, conservé intact dans le HTML.
/* ========================================================================== */

html{
  overflow-x:hidden;
  text-size-adjust:100%;
  -webkit-text-size-adjust:100%;
}

body{
  overflow-x:clip;
}

:where(img,svg,video,canvas,iframe){
  max-width:100%;
}

:where(input,select,textarea,button){
  max-width:100%;
}

.site-header__inner{
  width:min(var(--max), 100%);
  margin:0 auto;
}

/* -------------------------------------------------------------------------- */
/* Desktop intermédiaire / petits laptops                                     */
/* -------------------------------------------------------------------------- */
@media (max-width:1400px){
  :root{
    --max:1180px;
    --gutter:clamp(24px,3.4vw,52px);
  }

  .site-header{
    padding-top:18px;
  }

  .site-header__inner{
    min-height:68px;
  }

  .brand-mark{
    width:58px;
    height:58px;
  }

  .nav{
    gap:3px;
  }

  .nav a{
    height:42px;
    padding-inline:12px;
    letter-spacing:.13em;
  }

  .hero{
    padding-block:118px 56px;
  }

  .hero-grid{
    grid-template-columns:minmax(0,1.08fr) minmax(330px,.52fr);
    gap:clamp(32px,4.8vw,64px);
  }

  .hero h1{
    font-size:clamp(76px,10.8vw,154px);
  }

  .hero h1 em{
    letter-spacing:.72em;
  }

  .hero-signature{
    margin-bottom:58px;
  }

  .hero-lead{
    margin-top:44px;
  }

  .hero-card{
    min-height:560px;
  }

  .experience-card{
    min-height:560px;
  }

  .univers-visual{
    min-height:680px;
  }

  .reservation-grid{
    grid-template-columns:minmax(320px,.58fr) minmax(0,1fr);
    gap:clamp(28px,4vw,56px);
  }
}

/* -------------------------------------------------------------------------- */
/* Tablette format paysage : lisible, compact, sans perdre l'ambiance          */
/* -------------------------------------------------------------------------- */
@media (min-width:861px) and (max-width:1180px) and (orientation:landscape){
  :root{
    --max:1040px;
    --gutter:clamp(28px,3.4vw,44px);
  }

  .container,
  .hero-grid,
  .facts-band__inner{
    width:min(var(--max), calc(100% - var(--gutter) * 2));
  }

  .section{
    padding:72px 0;
  }

  .section-compact{
    padding:58px 0;
  }

  .site-header{
    padding:14px var(--gutter) 0;
  }

  .site-header__inner{
    min-height:64px;
    padding:0 12px 0 16px;
  }

  .brand{
    gap:11px;
  }

  .brand-mark{
    width:54px;
    height:54px;
    border-radius:14px;
  }

  .brand-text strong{
    font-size:12px;
    letter-spacing:.2em;
  }

  .brand-text small{
    font-size:9px;
  }

  .nav a{
    height:40px;
    padding-inline:9px;
    font-size:9px;
    letter-spacing:.1em;
  }

  .hero{
    min-height:auto;
    padding:112px 0 58px;
    align-items:center;
  }

  .hero::after{
    inset:88px var(--gutter) 22px;
    border-radius:34px;
  }

  .hero-grid{
    grid-template-columns:minmax(0,1fr) minmax(260px,.4fr);
    gap:30px;
    align-items:center;
  }

  .hero-copy{
    max-width:620px;
  }

  .hero-signature{
    margin-bottom:34px;
    font-size:10px;
    letter-spacing:.17em;
  }

  .hero h1{
    font-size:clamp(72px,9vw,108px);
    letter-spacing:-.065em;
  }

  .hero h1 em{
    letter-spacing:.42em;
  }

  .hero-lead{
    max-width:600px;
    margin-top:28px;
    font-size:18px;
    line-height:1.55;
  }

  .hero-actions{
    margin-top:26px;
  }

  .btn{
    min-height:52px;
    padding-inline:20px;
    font-size:10.5px;
  }

  .hero-visual{
    justify-self:end;
    width:100%;
    max-width:320px;
    padding:12px;
    border-radius:30px;
  }

  .hero-card{
    min-height:420px;
    border-radius:24px;
  }

  .hero-card-content{
    left:20px;
    right:20px;
    bottom:20px;
  }

  .hero-card-content strong{
    font-size:32px;
  }

  .hero-card-content p{
    font-size:14px;
  }

  .statement-grid,
  .reservation-grid{
    grid-template-columns:1fr;
  }

  .statement-panel{
    padding:34px;
  }

  .statement-panel p{
    font-size:clamp(34px,5vw,54px);
  }

  .editorial-stack{
    min-height:520px;
  }

  .cards-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
  }

  .experience-card{
    min-height:440px;
    border-radius:30px;
  }

  .experience-card::before{
    inset:14px;
    border-radius:22px;
  }

  .experience-card-content{
    left:20px;
    right:20px;
    bottom:20px;
  }

  .experience-card h3{
    font-size:clamp(30px,3.4vw,38px);
  }

  .experience-card p{
    font-size:14px;
    line-height:1.55;
  }

  .univers-grid{
    grid-template-columns:minmax(280px,.48fr) minmax(0,1fr);
    gap:28px;
  }

  .univers-visual{
    min-height:560px;
    border-radius:34px;
  }

  .univers-visual-copy strong{
    font-size:34px;
  }

  .univers-cards{
    gap:12px;
  }

  .universe-card{
    padding:20px;
    border-radius:24px;
  }

  .universe-card h3{
    font-size:28px;
  }

  .flow-grid{
    grid-template-columns:minmax(0,.98fr) minmax(300px,.78fr);
    gap:28px;
  }

  .flow-step{
    gap:12px;
    padding:15px 16px;
  }

  .flow-step strong{
    width:42px;
    height:42px;
    border-radius:14px;
  }

  .flow-step p,
  .flow-side p,
  .bullet-list li{
    font-size:14px;
  }

  .flow-side{
    padding:28px;
    border-radius:30px;
  }

  .reservation-section{
    padding:76px 0;
  }

  .reservation-copy{
    position:relative;
    top:auto;
    padding:34px;
  }

  .reservation-copy h2{
    max-width:760px;
    font-size:clamp(54px,7.5vw,82px);
  }

  .reassurance-stack{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
  }

  .reassurance-stack span{
    min-height:62px;
    padding:12px 14px;
    align-items:flex-start;
    flex-direction:column;
    justify-content:center;
    gap:6px;
  }

  .reservation-shell{
    border-radius:38px;
  }

  .reservation-shell__inner{
    border-radius:30px;
  }

  .reservation-shell__header h3{
    max-width:820px;
    font-size:clamp(38px,5.2vw,58px);
  }

  .tabooze-shortcode-shell{
    min-height:520px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
  }

  .info-grid{
    grid-template-columns:minmax(0,.9fr) minmax(0,1fr);
    gap:28px;
  }

  .final-panel{
    min-height:470px;
  }
}

/* Tablette paysage basse, type 1024 × 600 / petits écrans de laptop */
@media (min-width:861px) and (max-width:1180px) and (orientation:landscape) and (max-height:700px){
  .hero{
    padding-top:98px;
    padding-bottom:42px;
  }

  .hero-signature{
    margin-bottom:24px;
  }

  .hero h1{
    font-size:clamp(62px,8vw,92px);
  }

  .hero-lead{
    margin-top:20px;
    font-size:16px;
  }

  .hero-card{
    min-height:350px;
  }

  .hero-card-content p{
    display:none;
  }
}

/* -------------------------------------------------------------------------- */
/* Tablette portrait et mobile large                                           */
/* -------------------------------------------------------------------------- */
@media (max-width:860px){
  :root{
    --gutter:22px;
  }

  body{
    overflow-x:hidden;
  }

  .container,
  .hero-grid,
  .facts-band__inner{
    width:calc(100% - var(--gutter) * 2);
  }

  .section{
    padding:76px 0;
  }

  .section-compact{
    padding:58px 0;
  }

  .site-header{
    padding:12px 12px 0;
  }

  .site-header__inner{
    width:100%;
    min-height:64px;
    padding:0 14px;
    border-radius:22px;
  }

  .brand{
    min-width:0;
    gap:10px;
  }

  .brand-mark{
    flex:0 0 52px;
    width:52px;
    height:52px;
    border-radius:14px;
  }

  .brand-text{
    min-width:0;
  }

  .brand-text strong{
    font-size:12px;
    letter-spacing:.18em;
    white-space:nowrap;
  }

  .brand-text small{
    font-size:9px;
    letter-spacing:.12em;
    white-space:nowrap;
  }

  .hero{
    min-height:auto;
    align-items:start;
    padding:112px 0 54px;
  }

  .hero::before{
    background:
      linear-gradient(180deg, rgba(6,4,3,.92) 0%, rgba(6,4,3,.66) 42%, rgba(6,4,3,.98) 100%),
      linear-gradient(90deg, rgba(6,4,3,.95), rgba(6,4,3,.35), rgba(6,4,3,.94)),
      var(--hero) center/cover no-repeat;
  }

  .hero::after{
    inset:88px 12px 18px;
    border-radius:28px;
  }

  .hero-grid{
    gap:34px;
  }

  .hero-copy{
    max-width:none;
  }

  .hero-signature{
    max-width:520px;
    margin-bottom:34px;
    font-size:10px;
    line-height:1.6;
    letter-spacing:.16em;
  }

  .hero h1{
    max-width:100%;
    font-size:clamp(58px,14.8vw,104px);
    line-height:.82;
    letter-spacing:-.065em;
    overflow-wrap:normal;
  }

  .hero h1 em{
    letter-spacing:.26em;
  }

  .hero-lead{
    max-width:620px;
    margin-top:28px;
    font-size:clamp(17px,2.4vw,20px);
    line-height:1.62;
  }

  .hero-actions{
    margin-top:28px;
  }

  .hero-visual{
    width:100%;
    max-width:560px;
    justify-self:start;
    padding:12px;
    border-radius:30px;
  }

  .hero-card{
    min-height:430px;
    border-radius:24px;
  }

  .hero-card::before{
    inset:14px;
    border-radius:18px;
  }

  .hero-card-content{
    left:22px;
    right:22px;
    bottom:22px;
  }

  .hero-card-content strong{
    font-size:clamp(30px,6vw,42px);
  }

  .section-title,
  .section-title--flow{
    font-size:clamp(42px,10vw,78px);
    line-height:.92;
  }

  .section-lead{
    font-size:clamp(16px,2.7vw,19px);
    line-height:1.66;
  }

  .kicker{
    gap:10px;
    font-size:10px;
    letter-spacing:.18em;
  }

  .kicker::before{
    width:38px;
  }

  .statement-panel,
  .flow-side,
  .reservation-copy,
  .conditions-card{
    padding:clamp(24px,5vw,34px);
    border-radius:30px;
  }

  .statement-panel p{
    font-size:clamp(30px,7vw,48px);
    line-height:1.02;
  }

  .editorial-stack{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    min-height:0;
  }

  .editorial-photo{
    position:relative;
    inset:auto;
    width:auto;
    height:auto;
    min-height:0;
    border-radius:28px;
    aspect-ratio:4/5;
  }

  .editorial-photo-a{
    grid-column:1 / -1;
    aspect-ratio:16/9;
  }

  .editorial-photo img{
    position:absolute;
    inset:0;
  }

  .cards-grid{
    gap:16px;
  }

  .experience-card{
    min-height:460px;
    border-radius:30px;
  }

  .experience-card::before{
    inset:14px;
    border-radius:22px;
  }

  .experience-card-content{
    left:22px;
    right:22px;
    bottom:22px;
  }

  .experience-card h3{
    font-size:clamp(34px,7vw,48px);
  }

  .univers-visual{
    min-height:0;
    aspect-ratio:4/5;
    border-radius:32px;
  }

  .univers-visual-copy{
    left:22px;
    right:22px;
    bottom:22px;
  }

  .univers-visual-copy strong{
    font-size:clamp(30px,6vw,40px);
  }

  .universe-card{
    padding:22px;
    border-radius:24px;
  }

  .flow-grid{
    margin-top:34px;
  }

  .flow-step{
    grid-template-columns:auto 1fr;
    gap:14px;
    padding:16px;
  }

  .flow-step strong{
    width:44px;
    height:44px;
    border-radius:14px;
  }

  .reservation-section{
    padding:78px 0;
  }

  .reservation-grid{
    gap:24px;
  }

  .reservation-copy{
    position:relative;
    top:auto;
  }

  .reservation-copy h2{
    font-size:clamp(44px,10.5vw,78px);
    line-height:.92;
  }

  .reservation-copy p{
    font-size:16px;
    line-height:1.65;
  }

  .reassurance-stack{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:26px;
  }

  .reassurance-stack span{
    min-height:58px;
    padding:12px 14px;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:5px;
    font-size:10px;
    letter-spacing:.12em;
  }

  .reservation-shell{
    width:100%;
    max-width:100%;
    padding:10px;
    border-radius:32px;
    overflow:hidden;
  }

  .reservation-shell__inner{
    width:100%;
    max-width:100%;
    padding:clamp(18px,4.6vw,26px);
    border-radius:24px;
  }

  .reservation-shell__header{
    padding-bottom:20px;
    margin-bottom:20px;
  }

  .reservation-shell__header h3{
    font-size:clamp(32px,7.8vw,52px);
    line-height:.98;
  }

  .reservation-shell__header p{
    font-size:15.5px;
    line-height:1.62;
  }

  .tabooze-shortcode-shell{
    width:100%;
    max-width:100%;
    min-height:560px;
    overflow-x:auto;
    overflow-y:visible;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    font-size:15.5px;
  }

  .tabooze-shortcode-shell > *{
    max-width:100%;
  }

  .tabooze-shortcode-shell form{
    width:100%;
    max-width:100%;
    gap:14px;
  }

  .tabooze-shortcode-shell :is(fieldset,.step,.screen,.card,.option,.choice,.summary,.recap,[class*="step"],[class*="screen"],[class*="summary"],[class*="recap"]){
    max-width:100%;
    border-radius:20px;
  }

  .tabooze-shortcode-shell :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
    min-height:54px;
    padding:14px 15px;
    border-radius:16px;
    font-size:16px;
  }

  .tabooze-shortcode-shell textarea{
    min-height:110px;
  }

  .tabooze-shortcode-shell :is(button,input[type="submit"],.button,.btn,[role="button"]){
    min-height:54px;
    padding-inline:18px;
    white-space:normal;
    text-align:center;
  }

  .tabooze-shortcode-shell table{
    display:block;
    max-width:100%;
    overflow-x:auto;
    white-space:nowrap;
  }

  .tabooze-shortcode-shell iframe{
    width:100%;
    min-height:520px;
    border:0;
  }

  .info-grid{
    gap:34px;
  }

  .faq-item summary{
    padding:20px 54px 20px 20px;
  }

  .final-section{
    padding-bottom:34px;
  }

  .final-panel{
    min-height:430px;
    border-radius:32px;
  }

  .final-panel::before{
    inset:14px;
    border-radius:22px;
  }

  .final-content{
    padding:44px 22px;
  }

  .final-content h2{
    font-size:clamp(44px,11vw,82px);
  }

  .site-footer{
    padding:26px var(--gutter) 38px;
    line-height:1.6;
  }
}

/* -------------------------------------------------------------------------- */
/* Mobile                                                                      */
/* -------------------------------------------------------------------------- */
@media (max-width:640px){
  :root{
    --gutter:18px;
    --radius-pill:18px;
  }

  .container,
  .hero-grid,
  .facts-band__inner{
    width:calc(100% - 32px);
  }

  .section{
    padding:64px 0;
  }

  .site-header{
    padding:10px 10px 0;
  }

  .site-header__inner{
    min-height:60px;
    padding-inline:12px;
    border-radius:20px;
  }

  .brand-mark{
    flex-basis:48px;
    width:48px;
    height:48px;
    border-radius:13px;
  }

  .brand-text strong{
    font-size:11px;
    letter-spacing:.14em;
  }

  .brand-text small{
    font-size:8px;
    letter-spacing:.1em;
  }

  .hero{
    padding:104px 0 48px;
  }

  .hero::after{
    inset:80px 10px 14px;
    border-radius:24px;
  }

  .hero-signature{
    margin-bottom:26px;
  }

  .hero h1{
    font-size:clamp(52px,16vw,86px);
    line-height:.86;
    letter-spacing:-.055em;
  }

  .hero h1 em{
    letter-spacing:.18em;
  }

  .hero-lead{
    margin-top:24px;
    font-size:17px;
    line-height:1.64;
  }

  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }

  .btn{
    width:100%;
    min-height:54px;
    padding-inline:18px;
    font-size:10.5px;
    line-height:1.25;
    text-align:center;
  }

  .hero-visual{
    max-width:none;
    border-radius:26px;
  }

  .hero-card{
    min-height:380px;
  }

  .hero-card-content{
    left:18px;
    right:18px;
    bottom:18px;
  }

  .hero-card-content p{
    font-size:14px;
  }

  .section-title,
  .section-title--flow{
    font-size:clamp(38px,12vw,64px);
  }

  .kicker{
    display:flex;
    width:100%;
    letter-spacing:.14em;
  }

  .kicker::before{
    width:30px;
  }

  .statement-panel--spaced,
  .univers-grid--spaced{
    margin-top:24px;
  }

  .statement-panel,
  .flow-side,
  .reservation-copy,
  .conditions-card{
    padding:22px;
    border-radius:26px;
  }

  .editorial-stack{
    grid-template-columns:1fr;
  }

  .editorial-photo,
  .editorial-photo-a{
    grid-column:auto;
    aspect-ratio:4/3;
    border-radius:24px;
  }

  .facts-band{
    padding:0 16px;
  }

  .fact{
    padding:22px;
  }

  .experience-card{
    min-height:420px;
    border-radius:26px;
  }

  .experience-card-content{
    left:18px;
    right:18px;
    bottom:18px;
  }

  .price-pill,
  .universe-card span{
    max-width:100%;
    white-space:normal;
    line-height:1.25;
    padding-block:8px;
  }

  .univers-visual{
    aspect-ratio:3/4;
    border-radius:28px;
  }

  .univers-visual-copy{
    left:18px;
    right:18px;
    bottom:18px;
  }

  .univers-cards{
    gap:12px;
  }

  .universe-card h3{
    font-size:30px;
  }

  .flow-step{
    grid-template-columns:1fr;
    gap:12px;
    padding:16px;
  }

  .flow-step strong{
    width:42px;
    height:42px;
  }

  .reservation-section{
    padding:66px 0;
  }

  .reservation-copy h2{
    font-size:clamp(40px,12vw,62px);
  }

  .reassurance-stack{
    grid-template-columns:1fr;
  }

  .reassurance-stack span{
    min-height:52px;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }

  .reservation-shell{
    padding:8px;
    border-radius:28px;
  }

  .reservation-shell__inner{
    padding:18px;
    border-radius:22px;
  }

  .reservation-shell__header h3{
    font-size:clamp(30px,9vw,44px);
  }

  .tabooze-shortcode-shell{
    min-height:600px;
  }

  .tabooze-shortcode-shell :is(button,input[type="submit"],.button,.btn,[role="button"]){
    width:100%;
  }

  .faq-item{
    border-radius:20px;
  }

  .faq-item summary{
    padding:18px 48px 18px 18px;
  }

  .faq-item p{
    padding:0 18px 18px;
  }

  .final-panel{
    min-height:390px;
    border-radius:28px;
  }

  .site-footer{
    gap:10px;
    font-size:10px;
    letter-spacing:.1em;
  }
}

@media (max-width:420px){
  :root{
    --gutter:16px;
  }

  .container,
  .hero-grid,
  .facts-band__inner{
    width:calc(100% - 28px);
  }

  .brand-text small{
    display:none;
  }

  .hero h1{
    font-size:clamp(46px,17vw,72px);
  }

  .hero h1 em{
    letter-spacing:.14em;
  }

  .hero-lead{
    font-size:16.5px;
  }

  .hero-card{
    min-height:340px;
  }

  .section-title,
  .section-title--flow{
    font-size:clamp(34px,12.5vw,54px);
  }

  .section-lead,
  .conditions-copy p,
  .faq-item p,
  .flow-step p,
  .bullet-list li{
    font-size:15.5px;
  }

  .experience-card{
    min-height:390px;
  }

  .experience-card h3{
    font-size:32px;
  }

  .reservation-shell{
    margin-inline:-2px;
  }

  .reservation-shell__inner{
    padding:16px;
  }

  .reservation-shell__header h3{
    font-size:30px;
  }

  .tabooze-shortcode-shell{
    font-size:15px;
    min-height:620px;
  }
}

@media (max-width:360px){
  .brand-text strong{
    font-size:10px;
    letter-spacing:.1em;
  }

  .brand-mark{
    flex-basis:44px;
    width:44px;
    height:44px;
  }

  .site-header__inner{
    min-height:56px;
  }

  .hero{
    padding-top:96px;
  }

  .hero h1{
    font-size:44px;
  }

  .hero h1 em{
    letter-spacing:.1em;
  }

  .btn{
    font-size:10px;
    letter-spacing:.1em;
  }
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
  }
}

/* Correctif hero mobile : empêche la colonne texte d'être écrasée */
@media (max-width: 640px){
  .hero{
    min-height: auto;
    padding: 112px 0 52px;
    align-items: start;
  }

  .hero-grid{
    display: grid;
    grid-template-columns: minmax(0, 1fr) !important;
    width: calc(100% - 32px);
    margin-inline: auto;
    gap: 30px;
  }

  .hero-copy{
    width: 100%;
    max-width: none;
    min-width: 0;
  }

  .hero-signature{
    width: 100%;
    max-width: 280px;
    margin-bottom: 26px;
    font-size: 10px;
    line-height: 1.55;
    letter-spacing: .13em;
    overflow-wrap: normal;
    word-break: normal;
  }

  .hero h1{
    width: 100%;
    max-width: 100%;
    font-size: clamp(48px, 15.5vw, 68px);
    line-height: .88;
    letter-spacing: -.055em;
    overflow-wrap: normal;
    word-break: normal;
  }

  .hero h1 em{
    letter-spacing: .12em;
  }

  .hero-lead{
    width: 100%;
    max-width: 100%;
    margin-top: 24px;
    font-size: 16.5px;
    line-height: 1.62;
    letter-spacing: -.015em;
    overflow-wrap: normal;
    word-break: normal;
  }

  .hero-lead strong{
    display: inline;
  }

  .hero-actions{
    width: 100%;
    margin-top: 28px;
  }
}
@media (max-width: 380px){
  .hero-grid{
    width: calc(100% - 28px);
  }

  .hero-signature{
    max-width: 260px;
    font-size: 9.5px;
    letter-spacing: .11em;
  }

  .hero h1{
    font-size: clamp(44px, 14.8vw, 58px);
  }

  .hero h1 em{
    letter-spacing: .09em;
  }

  .hero-lead{
    font-size: 16px;
  }
}
/* Correctif signature hero mobile */
@media (max-width: 640px){
  .hero-signature{
    max-width: 340px;
    margin: 0 0 28px;
    font-size: 9.5px;
    line-height: 1.45;
    letter-spacing: .075em;
    text-wrap: balance;
  }
}
@media (max-width: 380px){
  .hero-signature{
    max-width: 300px;
    font-size: 9px;
    line-height: 1.42;
    letter-spacing: .055em;
  }
}
/* Correction mobile : tunnel de réservation sous le bloc texte */
@media (max-width: 860px){
  .reservation-section{
    padding: 72px 0 88px;
    overflow-x: hidden;
  }

  .reservation-grid{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    width: calc(100% - 28px) !important;
    max-width: 100% !important;
    margin-inline: auto !important;
  }

  .reservation-copy{
    position: relative !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 26px 22px;
    border-radius: 30px;
  }

  .reservation-shell{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 10px;
    border-radius: 30px;
  }

  .reservation-shell__inner{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 20px;
    border-radius: 24px;
  }

  .reservation-shell__header{
    margin-bottom: 20px;
    padding-bottom: 20px;
  }

  .reservation-shell__header h3{
    font-size: clamp(30px, 9vw, 42px);
    line-height: .95;
  }

  .tabooze-shortcode-shell{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden;
  }

  .tabooze-shortcode-shell *{
    max-width: 100%;
  }
}
/* Sécurité anti-débordement global mobile */
@media (max-width: 860px){
  html,
  body,
  .tabooze-page{
    max-width: 100%;
    overflow-x: hidden;
  }

  .container{
    width: calc(100% - 28px);
    max-width: 100%;
  }
}
@media (max-width: 2400px){
  .hero::after{
    border: 0;
    box-shadow: none;
    background: transparent;
  }
}
/* Header desktop : pleine largeur, collé en haut */
@media (min-width: 861px){
  .site-header{
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    padding: 0;
  }

  .site-header__inner{
    width: 100%;
    max-width: none;
    min-height: 88px;
    margin: 0;
    padding: 0 var(--gutter);
    border-radius: 0;
  }
}

/* Scrollbar native fine et cohérente avec l’univers Tabooze */
html{
  scrollbar-width: thin;
  scrollbar-color: rgba(214,177,95,.55) rgba(6,4,3,.92);
}

/* Chrome, Edge, Safari */
html::-webkit-scrollbar{
  width: 7px;
}

html::-webkit-scrollbar-track{
  background: rgba(6,4,3,.92);
}

html::-webkit-scrollbar-thumb{
  background: linear-gradient(
    180deg,
    rgba(255,229,163,.82),
    rgba(214,177,95,.62),
    rgba(156,98,48,.74)
  );
  border-radius: 999px;
  border: 2px solid rgba(6,4,3,.92);
}

html::-webkit-scrollbar-thumb:hover{
  background: linear-gradient(
    180deg,
    rgba(255,241,190,.95),
    rgba(214,177,95,.82),
    rgba(156,98,48,.9)
  );
}

html::-webkit-scrollbar-corner{
  background: rgba(6,4,3,.92);
}