/* POÏDOU — CORRECTIF FINAL GLOBAL v2
   Correctifs de présentation/responsive uniquement.
   Ne modifie ni les données, ni les API, ni l'administration, ni le contenu métier.
*/

*,*::before,*::after{box-sizing:border-box}
html{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,#root{width:100%;max-width:100%;min-width:0}
body{overflow-x:hidden}
img,svg,video,canvas{max-width:100%}
button,input,select,textarea{font:inherit}

/* Texte : pas de flou hérité des effets visuels du hero */
.hero-section__content,.hero-section h1,.hero-section__intro,.hero-kicker,.hero-section__actions,.hero-brand-mark{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  filter:none!important;
  opacity:1!important;
}
.hero-section__content{isolation:isolate}
.hero-section__content>*{position:relative;z-index:1}

/* Toutes les cellules de grille peuvent rétrécir : évite les débordements */
.route-cards>*,.contact-grid>*,.booking-form>*,.reservation-form>*,
.gallery-grid>*,.gallery-section__grid>*,.photo-gallery__grid>*,
.local-service-grid>*,.reservation-section>*,.travel-quiz>*,
.menu-workspace>*,.table-section>*,.menu-qr>*{min-width:0}

/* CARTE : structure stable */
.menu-workspace{width:100%;max-width:100%;min-width:0}
.menu-filters,.menu-dishes,.menu-cart,.dish-card,.dish-card__content,.dish-card__title-row{min-width:0}
.menu-dishes{min-width:0}
.dish-card__title-row h3,.dish-card p,.menu-cart__items span,.menu-cart__total span{overflow-wrap:anywhere;word-break:normal}
.dish-card__top strong,.dish-stepper,.dish-detail-link{max-width:100%}
.dish-detail-link{white-space:nowrap}
.menu-cart__items>div,.menu-cart__items>div span{min-width:0}
.menu-cart__items>div strong,.menu-cart__total strong{white-space:nowrap;min-width:max-content}
.menu-cart{padding-right:1.15rem}

/* Sur écran tactile, aucune animation de déplacement au toucher */
@media (hover:hover) and (pointer:fine){
  .menu-card:hover,.product-card:hover,.menu-item:hover,.dish-card:hover{transform:translateY(-4px)!important}
}

/* FENÊTRE DÉTAIL D'UN PLAT */
[data-slot="dialog-overlay"]{z-index:9998!important}
[data-slot="dialog-content"]{
  z-index:9999!important;
  width:min(34rem,calc(100vw - 2rem))!important;
  max-width:calc(100vw - 2rem)!important;
  max-height:min(88svh,46rem)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  padding:clamp(1.25rem,4vw,1.75rem)!important;
  border-radius:24px!important;
  margin:0!important;
}
[data-slot="dialog-content"] [data-slot="dialog-close"]{
  z-index:3!important;
  position:absolute!important;
  top:12px!important;
  right:12px!important;
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:#fffaf2!important;
  color:#2b1a14!important;
  border:1px solid rgba(56,32,24,.14)!important;
  opacity:1!important;
}
.menu-dialog{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  overflow:visible!important;
}
.menu-dialog__title{max-width:calc(100% - 2.5rem);padding-right:.25rem;overflow-wrap:anywhere}
.menu-dialog__description,.menu-dialog__notice{overflow-wrap:anywhere}
.menu-dialog__facts{min-width:0;overflow-wrap:anywhere}
.menu-dialog__actions{min-width:0}
.menu-dialog__actions .button,.menu-dialog__actions .text-link{max-width:100%;min-width:0}

/* Popovers / panneaux déclenchés par un clic */
[data-radix-popper-content-wrapper]{max-width:calc(100vw - 1.5rem)!important}
[data-slot="popover-content"],[data-slot="dropdown-menu-content"],[data-slot="sheet-content"]{
  max-width:calc(100vw - 1.5rem)!important;
}

/* CARTE MOBILE : une colonne, puis sélection */
@media (max-width:900px){
  .menu-workspace{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
  }
  .menu-filters,.menu-dishes,.menu-cart{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .menu-filters{
    border-right:0!important;
    border-bottom:1px solid #cdae84!important;
    padding:1rem 0!important;
  }
  .menu-search{width:100%;min-width:0}
  .menu-search input{min-width:0;width:100%;font-size:16px}
  .menu-category-list{
    width:100%;max-width:100%;
    display:flex!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:2px;
  }
  .menu-category-list::-webkit-scrollbar{display:none}
  .menu-category-list button{flex:0 0 auto;white-space:nowrap}
  .menu-dishes{display:grid!important;grid-template-columns:minmax(0,1fr)!important}
  .dish-card,.dish-card:nth-child(2n){
    border-right:0!important;
    width:100%!important;
    max-width:100%!important;
  }
  .menu-cart{
    position:static!important;
    border-top:1px solid #cdae84!important;
    border-left:0!important;
    padding:1.2rem 0!important;
    margin:0!important;
  }
  .menu-cart__top,.menu-cart__empty,.menu-cart__items,.menu-cart__total,
  .menu-cart__delivery,.menu-cart__cta,.menu-cart__payment,.menu-cart__payment-note{
    width:100%!important;max-width:100%!important;
  }
  .menu-cart__items>div{grid-template-columns:minmax(0,1fr) auto!important}
  .menu-cart__total{grid-template-columns:minmax(0,1fr) auto!important}
  .menu-cart__cta,.menu-cart__payment{display:flex!important;justify-content:center;align-items:center;min-height:50px}

  /* Autres pages : une seule colonne dès que l'écran devient étroit */
  .contact-grid,.reviews-grid,.testimonials-grid,.avis-grid,
  .reservation-fields,.local-service-grid,.travel-quiz,.menu-qr,
  .table-section__top,.service-strip,.event-grid,.events-grid,
  .booking-grid,.reservation-section{grid-template-columns:minmax(0,1fr)!important}
  .service-strip{display:grid!important}
  .reservation-fields{display:grid!important}
  .local-service-grid,.travel-quiz,.menu-qr,.reservation-section{display:grid!important}
  .contact-grid,.reviews-grid,.testimonials-grid,.avis-grid{display:grid!important}
}

@media (max-width:620px){
  .interactive-menu-section{overflow:visible!important}
  .dish-card{padding:1rem!important;min-height:0!important}
  .dish-card__footer{
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"spice stepper" "detail stepper"!important;
    align-items:center!important;
  }
  .dish-detail-link{margin-left:0!important}

  /* Dialogue : pleine largeur confortable, jamais hors écran */
  [data-slot="dialog-content"]{
    width:calc(100vw - 1rem)!important;
    max-width:calc(100vw - 1rem)!important;
    max-height:calc(100svh - 1rem)!important;
    padding:1.1rem!important;
    border-radius:20px!important;
  }
  .menu-dialog__title{font-size:clamp(2rem,9vw,2.6rem)!important;line-height:1!important}
  .menu-dialog__actions{flex-direction:column!important;align-items:stretch!important;gap:.75rem!important}
  .menu-dialog__actions .button,.menu-dialog__actions .text-link{
    width:100%!important;justify-content:center;text-align:center;
  }
  [data-slot="dialog-content"] [data-slot="dialog-close"]{top:8px!important;right:8px!important}

  /* Pages éditoriales : éviter les textes/éléments trop serrés */
  .page-intro__facts{display:grid!important;grid-template-columns:1fr!important}
  .reservation-times__choices{max-width:100%;overflow:visible}
  .reservation-times__choices button{flex:1 1 4.2rem;min-width:0}
  .menu-qr__card{width:100%;max-width:100%}
  .menu-qr__card img{width:min(100%,18rem);height:auto;margin-inline:auto}
  .table-section__top>*,.interactive-menu-heading>*{min-width:0;max-width:100%}
}

/* Formulaires et éléments cliquables : pas de débordement */
input,select,textarea{max-width:100%}
.button{max-width:100%;overflow-wrap:anywhere}

/* Images : rendu propre sans agrandir artificiellement leur conteneur */
img{height:auto}
.hero-section__image,.gallery-card img,.gallery-item img,.gallery-tile img,.photo-gallery__item img{max-width:none}

/* Focus accessible sans décalage de layout */
:focus-visible{outline:3px solid #e7c879!important;outline-offset:2px!important}

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