/* ===== SOURCE: assets/v385-mobile-reservation-hours-fix.css ===== */

/* V385 — iPhone/mobile fixes from screenshots:
   1) reservation Date/Time must never overlap
   2) opening days and times use one rigid aligned grid
   3) sticky CTA must not cover page content */
@media(max-width:760px){

  /* Reservation: force every field to its own full-width row. */
  .v381-reservation .v381-res-grid,
  .v381-reservation .reservation-grid,
  .v381-reservation form,
  .v381-reservation .form-grid{
    grid-template-columns:minmax(0,1fr)!important;
    column-gap:0!important;
  }
  .v381-reservation .v381-res-grid>*,
  .v381-reservation .reservation-grid>*,
  .v381-reservation .form-grid>*{
    grid-column:1/-1!important;
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .v381-reservation input,
  .v381-reservation select,
  .v381-reservation textarea,
  .v381-reservation button{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  /* Known legacy two-column reservation wrappers: collapse them too. */
  .v350-restaurant-detail .reservation-form .row,
  .v350-restaurant-detail .reservation-form .fields,
  .v350-restaurant-detail .reservation-fields,
  .v350-restaurant-detail .v347-reservation-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px!important;
  }
  .v350-restaurant-detail .reservation-form .row>*,
  .v350-restaurant-detail .reservation-form .fields>*,
  .v350-restaurant-detail .reservation-fields>*,
  .v350-restaurant-detail .v347-reservation-grid>*{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
  }

  /* Opening hours: identical two-column geometry on every row. */
  .v350-restaurant-detail .v347-hours-row,
  .v350-restaurant-detail .hours-row,
  .v350-restaurant-detail .opening-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 128px!important;
    align-items:center!important;
    column-gap:14px!important;
    width:100%!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .v347-hours-row>*:first-child,
  .v350-restaurant-detail .hours-row>*:first-child,
  .v350-restaurant-detail .opening-row>*:first-child{
    text-align:left!important;
    justify-self:start!important;
    margin:0!important;
    padding-left:0!important;
  }
  .v350-restaurant-detail .v347-hours-row>*:last-child,
  .v350-restaurant-detail .hours-row>*:last-child,
  .v350-restaurant-detail .opening-row>*:last-child{
    text-align:right!important;
    justify-self:end!important;
    width:128px!important;
    margin:0!important;
    white-space:nowrap!important;
  }

  /* leave space for fixed mobile actions + browser safe area */
  .v350-restaurant-detail{
    padding-bottom:calc(118px + env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:430px){
  .v350-restaurant-detail .v347-hours-row,
  .v350-restaurant-detail .hours-row,
  .v350-restaurant-detail .opening-row{
    grid-template-columns:minmax(0,1fr) 116px!important;
    column-gap:10px!important;
  }
  .v350-restaurant-detail .v347-hours-row>*:last-child,
  .v350-restaurant-detail .hours-row>*:last-child,
  .v350-restaurant-detail .opening-row>*:last-child{
    width:116px!important;
  }
}

/* ===== SOURCE: assets/v386-real-mobile-fix.css ===== */

/* V386 — selectors matched to the REAL HTML on demo-detail-v312.php */
@media(max-width:760px){
  /* REAL reservation markup is .v362-book */
  .v350-restaurant-detail .v362-book form{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px!important;
    width:100%!important;
  }
  .v350-restaurant-detail .v362-book form>label,
  .v350-restaurant-detail .v362-book form>button{
    grid-column:1/-1!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .v362-book input,
  .v350-restaurant-detail .v362-book select{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  /* REAL opening-hours markup is .hours-card > .hours-row */
  .v350-restaurant-detail .hours-card .hours-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 132px!important;
    align-items:center!important;
    gap:12px!important;
    width:100%!important;
    padding:12px 8px!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:first-child{
    display:block!important;
    justify-self:start!important;
    text-align:left!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:last-child{
    display:block!important;
    justify-self:end!important;
    text-align:right!important;
    width:132px!important;
    margin:0!important;
    padding:0!important;
    white-space:nowrap!important;
    font-variant-numeric:tabular-nums!important;
  }
}
@media(max-width:430px){
  .v350-restaurant-detail .hours-card .hours-row{
    grid-template-columns:minmax(0,1fr) 122px!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:last-child{
    width:122px!important;
  }
}

/* ===== SOURCE: assets/v387-reservation-right-edge-fix.css ===== */

/* V387 — exact iPhone fix: reservation controls were clipped on the right edge */
@media(max-width:760px){
  .v350-restaurant-detail .v362-book{
    overflow:visible!important;
  }
  .v350-restaurant-detail .v362-book form{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:auto!important;
    max-width:none!important;
    margin:20px 0 0!important;
    padding:0!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .v362-book form>label,
  .v350-restaurant-detail .v362-book form>button{
    display:flex!important;
    flex-direction:column!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .v362-book input,
  .v350-restaurant-detail .v362-book select{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding-left:12px!important;
    padding-right:12px!important;
    box-sizing:border-box!important;
  }
  /* iOS date/time controls can retain an intrinsic width; force them to the form box */
  .v350-restaurant-detail .v362-book input[type="date"],
  .v350-restaurant-detail .v362-book input[type="time"]{
    -webkit-appearance:none!important;
    appearance:none!important;
    inline-size:100%!important;
    min-inline-size:0!important;
    max-inline-size:100%!important;
  }
}

/* ===== SOURCE: assets/v388-mobile-premium-polish.css ===== */

/* V388 — mobile premium polish, non-destructive */
@media(max-width:760px){
  /* Consistent card rhythm */
  .v350-restaurant-detail .demo-card,
  .v350-restaurant-detail .hours-card,
  .v350-restaurant-detail section{
    scroll-margin-top:18px;
  }

  /* Reservation: balanced spacing after V387 geometry fix */
  .v350-restaurant-detail .v362-book{
    padding-left:20px!important;
    padding-right:20px!important;
  }
  .v350-restaurant-detail .v362-book form{
    gap:13px!important;
  }
  .v350-restaurant-detail .v362-book label{
    min-width:0!important;
  }
  .v350-restaurant-detail .v362-book input,
  .v350-restaurant-detail .v362-book select{
    min-height:54px!important;
    border-radius:15px!important;
  }

  /* Reviews: clearer hierarchy and comfortable mobile reading */
  .v350-restaurant-detail .reviews-card,
  .v350-restaurant-detail .v381-reviews{
    overflow:hidden!important;
  }
  .v350-restaurant-detail .review,
  .v350-restaurant-detail .review-item{
    padding:16px!important;
    border-radius:18px!important;
    line-height:1.5!important;
  }

  /* Opening hours: stable alignment + equal row heights */
  .v350-restaurant-detail .hours-card .hours-row{
    min-height:55px!important;
    padding-top:11px!important;
    padding-bottom:11px!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span{
    line-height:1.2!important;
  }

  /* Fixed CTA: respect iPhone safe area and avoid covering content */
  .v350-restaurant-detail .mobile-sticky-actions,
  .v350-restaurant-detail .sticky-actions{
    padding-bottom:max(10px,env(safe-area-inset-bottom))!important;
  }
  .v350-restaurant-detail{
    padding-bottom:calc(132px + env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:430px){
  .v350-restaurant-detail .v362-book{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

/* ===== SOURCE: assets/v389-detail-ux-polish.css ===== */

/* V389 — restaurant detail UX polish, isolated and regression-safe */
@media(max-width:760px){
  /* Shared vertical rhythm for major content cards */
  .v350-restaurant-detail .demo-card,
  .v350-restaurant-detail .hours-card,
  .v350-restaurant-detail .v379-services{
    margin-bottom:18px!important;
  }

  /* Long headings must never collide with badges on narrow screens */
  .v350-restaurant-detail h2{
    overflow-wrap:anywhere;
  }

  /* Reservation labels/controls: cleaner premium hierarchy */
  .v350-restaurant-detail .v362-book label{
    gap:7px!important;
  }
  .v350-restaurant-detail .v362-book input,
  .v350-restaurant-detail .v362-book select{
    font-size:16px!important; /* prevents iOS focus zoom */
    line-height:1.2!important;
  }
  .v350-restaurant-detail .v362-book button[type="submit"]{
    min-height:58px!important;
    border-radius:17px!important;
  }

  /* Opening hours: uniform baseline and no accidental wrapping */
  .v350-restaurant-detail .hours-card .hours-row>span:first-child,
  .v350-restaurant-detail .hours-card .hours-row>span:last-child{
    min-width:0!important;
    white-space:nowrap!important;
  }

  /* Service/payment tiles: avoid clipped text while staying compact */
  .v350-restaurant-detail .v379-grid span,
  .v350-restaurant-detail .v379-pay-list span{
    box-sizing:border-box!important;
    overflow-wrap:break-word!important;
  }

  /* Touch targets */
  .v350-restaurant-detail a,
  .v350-restaurant-detail button{
    -webkit-tap-highlight-color:transparent;
  }

  /* Bottom CTA remains above iOS safe area */
  .v350-restaurant-detail{
    padding-bottom:calc(140px + env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:390px){
  .v350-restaurant-detail .v362-book{
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .v350-restaurant-detail .hours-card .hours-row{
    grid-template-columns:minmax(0,1fr) 116px!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:last-child{
    width:116px!important;
  }
}

/* ===== SOURCE: assets/v390-premium-mobile-finish.css ===== */

/* V390 — premium mobile finish: visual refinement only */
@media(max-width:760px){
  /* Consistent premium card geometry */
  .v350-restaurant-detail .demo-card,
  .v350-restaurant-detail .hours-card,
  .v350-restaurant-detail .v379-services{
    border-radius:24px!important;
    box-sizing:border-box!important;
  }

  /* Headings and supporting copy */
  .v350-restaurant-detail h2{
    line-height:1.12!important;
    letter-spacing:-.025em!important;
  }
  .v350-restaurant-detail .demo-card p{
    max-width:100%!important;
  }

  /* Reservation controls — calm, consistent touch UI */
  .v350-restaurant-detail .v362-book input,
  .v350-restaurant-detail .v362-book select{
    min-height:54px!important;
    border-radius:15px!important;
  }
  .v350-restaurant-detail .v362-book button[type="submit"]{
    width:100%!important;
    min-height:58px!important;
    margin-top:2px!important;
  }

  /* Services: keep icon/text visually centered */
  .v350-restaurant-detail .v379-grid span{
    min-width:0!important;
    align-content:center!important;
  }
  .v350-restaurant-detail .v379-grid span b{
    line-height:1.22!important;
  }

  /* Payments stay readable without returning to oversized V382 typography */
  .v350-restaurant-detail .v379-pay-list span{
    min-width:0!important;
    line-height:1.15!important;
  }

  /* Hours: equal visual rhythm */
  .v350-restaurant-detail .hours-card .hours-row{
    min-height:54px!important;
  }

  /* Links/buttons are comfortable touch targets where applicable */
  .v350-restaurant-detail .quick-actions a,
  .v350-restaurant-detail .quick-actions button{
    min-height:48px!important;
  }

  /* Keep last content fully visible above fixed mobile actions */
  .v350-restaurant-detail{
    padding-bottom:calc(148px + env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:390px){
  .v350-restaurant-detail .demo-card,
  .v350-restaurant-detail .hours-card,
  .v350-restaurant-detail .v379-services{
    border-radius:21px!important;
  }
}

/* ===== SOURCE: assets/v391-detail-consistency.css ===== */

/* V391 — detail consistency pass; isolated mobile refinement */
@media(max-width:760px){
  /* Keep all interactive controls inside their cards */
  .v350-restaurant-detail input,
  .v350-restaurant-detail select,
  .v350-restaurant-detail textarea,
  .v350-restaurant-detail button{
    max-width:100%;
    box-sizing:border-box;
  }

  /* Cleaner content rhythm */
  .v350-restaurant-detail .demo-card,
  .v350-restaurant-detail .hours-card,
  .v350-restaurant-detail .v379-services{
    overflow-wrap:break-word;
  }

  /* Reservation labels stay attached to their controls */
  .v350-restaurant-detail .v362-book label{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
  }

  /* Opening hours remain aligned even with inherited legacy rules */
  .v350-restaurant-detail .hours-card .hours-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 124px!important;
    align-items:center!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:last-child{
    width:124px!important;
    justify-self:end!important;
    text-align:right!important;
    font-variant-numeric:tabular-nums!important;
  }

  /* Payment/service labels don't visually overflow tiles */
  .v350-restaurant-detail .v379-grid b,
  .v350-restaurant-detail .v379-pay-list span{
    max-width:100%!important;
  }

  /* Safe scrolling target for anchored actions */
  .v350-restaurant-detail [id]{
    scroll-margin-top:18px;
  }

  /* extra breathing room above persistent mobile actions */
  .v350-restaurant-detail{
    padding-bottom:calc(152px + env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:390px){
  .v350-restaurant-detail .hours-card .hours-row{
    grid-template-columns:minmax(0,1fr) 112px!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:last-child{
    width:112px!important;
  }
}

/* ===== SOURCE: assets/v392-premium-touch-ux.css ===== */

/* V392 — premium touch UX; non-destructive mobile enhancement */
@media(max-width:760px){
  /* Better touch behavior without changing functionality */
  .v350-restaurant-detail button,
  .v350-restaurant-detail a,
  .v350-restaurant-detail input,
  .v350-restaurant-detail select{
    touch-action:manipulation;
  }

  /* Inputs remain legible and stable on iOS */
  .v350-restaurant-detail input,
  .v350-restaurant-detail select,
  .v350-restaurant-detail textarea{
    font-size:16px!important;
  }

  /* Reservation submit receives clear separation from final field */
  .v350-restaurant-detail .v362-book button[type="submit"]{
    margin-top:5px!important;
    font-weight:800!important;
    letter-spacing:.01em!important;
  }

  /* Hours: keep columns visually rigid on all common phone widths */
  .v350-restaurant-detail .hours-card .hours-row{
    column-gap:12px!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:first-child{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Service tiles: predictable height without forcing giant boxes */
  .v350-restaurant-detail .v379-grid span{
    min-height:74px!important;
  }

  /* Payment tiles remain compact and centered */
  .v350-restaurant-detail .v379-pay-list span{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
  }

  /* Avoid last-card collision with persistent bottom controls */
  .v350-restaurant-detail{
    padding-bottom:calc(158px + env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:390px){
  .v350-restaurant-detail .v379-grid span{
    min-height:70px!important;
  }
}

/* ===== SOURCE: assets/v393-mobile-detail-final-polish.css ===== */

/* V393 — final mobile detail polish before next functional block */
@media(max-width:760px){
  /* Unified mobile spacing */
  .v350-restaurant-detail .demo-card,
  .v350-restaurant-detail .hours-card,
  .v350-restaurant-detail .v379-services{
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Avoid accidental horizontal scrolling from legacy children */
  .v350-restaurant-detail{
    overflow-x:clip!important;
  }
  .v350-restaurant-detail img,
  .v350-restaurant-detail video{
    max-width:100%!important;
  }

  /* Reservation field labels and values remain clearly separated */
  .v350-restaurant-detail .v362-book label{
    line-height:1.25!important;
  }
  .v350-restaurant-detail .v362-book input,
  .v350-restaurant-detail .v362-book select{
    margin-top:0!important;
  }

  /* Hours: visually consistent row separators */
  .v350-restaurant-detail .hours-card .hours-row{
    box-sizing:border-box!important;
  }

  /* Prevent service/payment tile content from leaking horizontally */
  .v350-restaurant-detail .v379-grid,
  .v350-restaurant-detail .v379-pay-list{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .v379-grid>*,
  .v350-restaurant-detail .v379-pay-list>*{
    min-width:0!important;
    max-width:100%!important;
  }

  /* Persistent actions must not hide final page content */
  .v350-restaurant-detail{
    padding-bottom:calc(164px + env(safe-area-inset-bottom))!important;
  }
}

/* ===== SOURCE: assets/v394-restaurant-actions-polish.css ===== */

/* V394 — restaurant actions polish; mobile-first, isolated */
@media(max-width:760px){
  /* Quick restaurant actions: consistent, readable touch targets */
  .v350-restaurant-detail .quick-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .quick-actions a,
  .v350-restaurant-detail .quick-actions button{
    width:100%!important;
    min-width:0!important;
    min-height:52px!important;
    padding:11px 12px!important;
    border-radius:15px!important;
    box-sizing:border-box!important;
    line-height:1.2!important;
    text-align:center!important;
    white-space:normal!important;
  }

  /* Share / print / PDF style action groups: prevent overflow */
  .v350-restaurant-detail .action-row,
  .v350-restaurant-detail .detail-actions,
  .v350-restaurant-detail .profile-actions{
    max-width:100%!important;
    box-sizing:border-box!important;
    flex-wrap:wrap!important;
  }
  .v350-restaurant-detail .action-row>*,
  .v350-restaurant-detail .detail-actions>*,
  .v350-restaurant-detail .profile-actions>*{
    min-width:0!important;
  }

  /* Contact CTAs remain comfortably tappable */
  .v350-restaurant-detail a[href^="tel:"],
  .v350-restaurant-detail a[href^="mailto:"]{
    min-height:44px;
  }

  /* final content clearance for persistent bottom CTA */
  .v350-restaurant-detail{
    padding-bottom:calc(168px + env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:390px){
  .v350-restaurant-detail .quick-actions{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* ===== SOURCE: assets/v395-contact-opening-premium.css ===== */

/* V395 — premium contact + opening-hours refinement */
@media(max-width:760px){
  /* Contact links/cards stay readable and never overflow */
  .v350-restaurant-detail [class*="contact"]{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail [class*="contact"] a{
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }

  /* Phone/e-mail/web actions: consistent premium touch geometry */
  .v350-restaurant-detail a[href^="tel:"],
  .v350-restaurant-detail a[href^="mailto:"],
  .v350-restaurant-detail a[target="_blank"]{
    box-sizing:border-box!important;
  }

  /* Opening hours: strong two-column alignment on common iPhone widths */
  .v350-restaurant-detail .hours-card .hours-row{
    grid-template-columns:minmax(0,1fr) 122px!important;
    column-gap:14px!important;
    min-height:54px!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:first-child{
    justify-self:start!important;
    text-align:left!important;
    font-weight:700!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:last-child{
    justify-self:end!important;
    width:122px!important;
    text-align:right!important;
    white-space:nowrap!important;
    font-variant-numeric:tabular-nums!important;
  }

  /* Avoid card-edge collisions */
  .v350-restaurant-detail .hours-card,
  .v350-restaurant-detail .v362-book{
    contain:layout!important;
  }

  .v350-restaurant-detail{
    padding-bottom:calc(172px + env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:390px){
  .v350-restaurant-detail .hours-card .hours-row{
    grid-template-columns:minmax(0,1fr) 110px!important;
    column-gap:10px!important;
  }
  .v350-restaurant-detail .hours-card .hours-row>span:last-child{
    width:110px!important;
  }
}

/* ===== SOURCE: assets/v396-restaurant-profile-premium.css ===== */

/* V396 — restaurant profile premium hierarchy; visual-only, isolated */
@media(max-width:760px){
  /* Main restaurant identity must stay readable on narrow phones */
  .v350-restaurant-detail .v347-profile-head,
  .v350-restaurant-detail [class*="profile-head"]{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .v347-profile-head h1,
  .v350-restaurant-detail [class*="profile-head"] h1{
    max-width:100%!important;
    line-height:1.08!important;
    letter-spacing:-.035em!important;
    overflow-wrap:break-word!important;
  }

  /* Badges/chips wrap instead of colliding with title */
  .v350-restaurant-detail .v347-profile-head [class*="badge"],
  .v350-restaurant-detail .v347-profile-head [class*="chip"],
  .v350-restaurant-detail [class*="profile-head"] [class*="badge"],
  .v350-restaurant-detail [class*="profile-head"] [class*="chip"]{
    max-width:100%!important;
    white-space:normal!important;
  }

  /* Address/status/meta lines remain inside card */
  .v350-restaurant-detail .v347-profile-head p,
  .v350-restaurant-detail .v347-profile-head div,
  .v350-restaurant-detail [class*="profile-head"] p{
    min-width:0!important;
    max-width:100%!important;
  }

  /* Gallery shell: no accidental mobile horizontal overflow */
  .v350-restaurant-detail .v344-gallery-shell,
  .v350-restaurant-detail [class*="gallery"]{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .v344-gallery-shell img,
  .v350-restaurant-detail [class*="gallery"] img{
    max-width:100%!important;
  }

  /* Preserve room for persistent bottom actions */
  .v350-restaurant-detail{
    padding-bottom:calc(176px + env(safe-area-inset-bottom))!important;
  }
}

/* ===== SOURCE: assets/v397-gallery-mobile-premium.css ===== */

/* V397 — gallery mobile premium: preserve complete images, no destructive crop */
@media(max-width:760px){
  .v350-restaurant-detail .v344-gallery-shell{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  /* Main gallery image: always show the complete photograph */
  .v350-restaurant-detail .v344-gallery-shell img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center!important;
  }

  /* Thumbnail rail stays usable on touch devices */
  .v350-restaurant-detail .v344-gallery-shell [class*="thumb"]{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail .v344-gallery-shell [class*="thumb"] img{
    width:100%!important;
    height:auto!important;
    object-fit:contain!important;
  }

  /* Gallery controls cannot escape card edges */
  .v350-restaurant-detail .v344-gallery-shell button,
  .v350-restaurant-detail .v344-gallery-shell a{
    box-sizing:border-box!important;
    max-width:100%!important;
  }

  /* Fullscreen/lightbox images remain complete */
  .v350-restaurant-detail [class*="lightbox"] img,
  .v350-restaurant-detail [class*="fullscreen"] img,
  .v350-restaurant-detail [class*="modal"] img{
    max-width:96vw!important;
    max-height:90vh!important;
    width:auto!important;
    height:auto!important;
    object-fit:contain!important;
  }

  .v350-restaurant-detail{
    padding-bottom:calc(180px + env(safe-area-inset-bottom))!important;
  }
}

/* ===== SOURCE: assets/v398-menu-mobile-premium.css ===== */

/* V398 — menu mobile premium; isolated visual refinement */
@media(max-width:760px){
  /* Menu containers cannot create horizontal scrolling */
  .v350-restaurant-detail [class*="menu"]{
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* Menu tabs: comfortable touch targets, safe wrapping */
  .v350-restaurant-detail [class*="menu"] [role="tab"],
  .v350-restaurant-detail [class*="menu"] button,
  .v350-restaurant-detail [class*="menu"] a{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* Menu item rows: name/description may wrap, price must stay readable */
  .v350-restaurant-detail [class*="menu"] [class*="item"],
  .v350-restaurant-detail [class*="menu"] [class*="row"]{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail [class*="menu"] [class*="price"]{
    white-space:nowrap!important;
    font-variant-numeric:tabular-nums!important;
  }

  /* Descriptions/allergens remain readable instead of leaking outside cards */
  .v350-restaurant-detail [class*="menu"] p,
  .v350-restaurant-detail [class*="menu"] small,
  .v350-restaurant-detail [class*="menu"] [class*="desc"],
  .v350-restaurant-detail [class*="menu"] [class*="allergen"]{
    overflow-wrap:break-word!important;
    max-width:100%!important;
  }

  /* Menu food photos preserve natural image content */
  .v350-restaurant-detail [class*="menu"] img{
    display:block!important;
    max-width:100%!important;
    height:auto!important;
    object-fit:contain!important;
  }

  .v350-restaurant-detail{
    padding-bottom:calc(184px + env(safe-area-inset-bottom))!important;
  }
}

/* ===== SOURCE: assets/v399-reviews-mobile-premium.css ===== */

/* V399 — reviews mobile premium; visual-only and isolated */
@media(max-width:760px){
  /* Review containers always stay inside viewport */
  .v350-restaurant-detail [class*="review"]{
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* Header/rating lines can wrap without collisions */
  .v350-restaurant-detail [class*="review"] [class*="head"],
  .v350-restaurant-detail [class*="review"] [class*="meta"],
  .v350-restaurant-detail [class*="review"] [class*="rating"]{
    min-width:0!important;
    max-width:100%!important;
    flex-wrap:wrap!important;
  }

  /* Review text stays comfortably readable */
  .v350-restaurant-detail [class*="review"] p{
    max-width:100%!important;
    overflow-wrap:break-word!important;
    line-height:1.55!important;
  }

  /* Stars/rating must not split character-by-character */
  .v350-restaurant-detail [class*="review"] [class*="star"],
  .v350-restaurant-detail [class*="review"] [class*="score"]{
    white-space:nowrap!important;
  }

  /* Owner response visually remains a subordinate block */
  .v350-restaurant-detail [class*="review"] [class*="reply"],
  .v350-restaurant-detail [class*="review"] [class*="response"]{
    max-width:100%!important;
    box-sizing:border-box!important;
    margin-left:0!important;
  }

  /* Review controls are comfortable touch targets */
  .v350-restaurant-detail [class*="review"] button,
  .v350-restaurant-detail [class*="review"] a{
    min-height:44px;
    box-sizing:border-box!important;
  }

  .v350-restaurant-detail{
    padding-bottom:calc(188px + env(safe-area-inset-bottom))!important;
  }
}

/* ===== SOURCE: assets/v400-combined-continuation.css ===== */

/* V400 — combined continuation after V399; all previous fixes preserved */
@media(max-width:760px){
  /* Final guard against mobile card/control overflow */
  .v350-restaurant-detail,
  .v350-restaurant-detail *{
    box-sizing:border-box;
  }
  .v350-restaurant-detail input,
  .v350-restaurant-detail select,
  .v350-restaurant-detail textarea,
  .v350-restaurant-detail button,
  .v350-restaurant-detail img{
    max-width:100%;
  }

  /* Keep reservation, menu and reviews comfortably above persistent CTA */
  .v350-restaurant-detail{
    padding-bottom:calc(192px + env(safe-area-inset-bottom))!important;
  }

  /* Premium focus state without changing functionality */
  .v350-restaurant-detail input:focus-visible,
  .v350-restaurant-detail select:focus-visible,
  .v350-restaurant-detail textarea:focus-visible,
  .v350-restaurant-detail button:focus-visible,
  .v350-restaurant-detail a:focus-visible{
    outline:2px solid currentColor;
    outline-offset:2px;
  }
}

/* ===== SOURCE: assets/v401-detail-system-polish.css ===== */

/* V401 — detail system polish; isolated continuation */
@media(max-width:760px){
  /* Consistent section rhythm across the whole restaurant detail */
  .v350-restaurant-detail section,
  .v350-restaurant-detail .demo-card,
  .v350-restaurant-detail .hours-card{
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* Long restaurant/menu/contact text must never push layout sideways */
  .v350-restaurant-detail h1,
  .v350-restaurant-detail h2,
  .v350-restaurant-detail h3,
  .v350-restaurant-detail p,
  .v350-restaurant-detail strong,
  .v350-restaurant-detail b{
    max-width:100%;
  }

  /* Forms remain stable with native iOS controls */
  .v350-restaurant-detail form{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .v350-restaurant-detail input[type="date"],
  .v350-restaurant-detail input[type="time"]{
    min-width:0!important;
    max-width:100%!important;
  }

  /* Buttons/links never create horizontal page overflow */
  .v350-restaurant-detail button,
  .v350-restaurant-detail a{
    box-sizing:border-box!important;
  }

  /* Keep enough clearance for the persistent mobile action bar */
  .v350-restaurant-detail{
    padding-bottom:calc(196px + env(safe-area-inset-bottom))!important;
  }
}

/* ===== SOURCE: assets/v402-mobile-navigation-premium.css ===== */

/* V402 — mobile navigation/action polish, isolated continuation */
@media(max-width:760px){
  /* Any horizontal action/nav strip remains usable instead of overflowing page */
  .v350-restaurant-detail [class*="nav"],
  .v350-restaurant-detail [class*="tabs"],
  .v350-restaurant-detail [class*="actions"]{
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* Compact navigation controls keep readable touch targets */
  .v350-restaurant-detail [class*="nav"] a,
  .v350-restaurant-detail [class*="nav"] button,
  .v350-restaurant-detail [class*="tabs"] a,
  .v350-restaurant-detail [class*="tabs"] button{
    min-height:44px;
    box-sizing:border-box!important;
  }

  /* Long action labels wrap safely */
  .v350-restaurant-detail [class*="actions"] a,
  .v350-restaurant-detail [class*="actions"] button{
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
  }

  /* Anchored sections land with comfortable spacing */
  .v350-restaurant-detail section[id],
  .v350-restaurant-detail div[id]{
    scroll-margin-top:20px!important;
  }

  /* persistent CTA clearance */
  .v350-restaurant-detail{
    padding-bottom:calc(200px + env(safe-area-inset-bottom))!important;
  }
}

/* ===== SOURCE: assets/v403-forms-accessibility-premium.css ===== */

/* V403 — forms/accessibility premium; isolated visual continuation */
@media(max-width:760px){
  .v350-restaurant-detail label{
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  .v350-restaurant-detail input,
  .v350-restaurant-detail select,
  .v350-restaurant-detail textarea{
    width:100%;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    font-size:16px!important; /* prevents unwanted iOS form zoom */
  }

  .v350-restaurant-detail textarea{
    resize:vertical;
  }

  .v350-restaurant-detail input:disabled,
  .v350-restaurant-detail select:disabled,
  .v350-restaurant-detail textarea:disabled,
  .v350-restaurant-detail button:disabled{
    cursor:not-allowed;
  }

  /* Keyboard focus remains clearly visible without changing functionality */
  .v350-restaurant-detail :is(input,select,textarea,button,a):focus-visible{
    outline:2px solid currentColor!important;
    outline-offset:3px!important;
  }

  /* Error/help text can never push a form outside the viewport */
  .v350-restaurant-detail [class*="error"],
  .v350-restaurant-detail [class*="help"],
  .v350-restaurant-detail [class*="hint"]{
    max-width:100%!important;
    overflow-wrap:break-word!important;
  }

  .v350-restaurant-detail{
    padding-bottom:calc(204px + env(safe-area-inset-bottom))!important;
  }
}

/* ===== SOURCE: assets/v405-semantic-mobile-polish.css ===== */

/* V405 — semantic/mobile polish; isolated continuation */
@media(max-width:760px){
  /* Headings keep premium rhythm and never collide with adjacent controls */
  .v350-restaurant-detail h1,
  .v350-restaurant-detail h2,
  .v350-restaurant-detail h3{
    text-wrap:balance;
    overflow-wrap:break-word;
  }

  /* Body copy remains readable on narrow phones */
  .v350-restaurant-detail p,
  .v350-restaurant-detail li{
    text-wrap:pretty;
  }

  /* Interactive labels remain centered and usable even when wrapping */
  .v350-restaurant-detail button,
  .v350-restaurant-detail [role="button"]{
    line-height:1.25;
  }

  /* Prevent accidental visual clipping around focused controls */
  .v350-restaurant-detail section,
  .v350-restaurant-detail article,
  .v350-restaurant-detail aside{
    scroll-margin-top:24px;
  }

  /* Stable clearance above persistent mobile CTA */
  .v350-restaurant-detail{
    padding-bottom:calc(208px + env(safe-area-inset-bottom))!important;
  }
}

