/* Shared mobile layout and progressively enhanced, touch-friendly carousels. */
img { height: auto; }
.instagram-section,.reviews-section { padding-block: var(--section); }
.instagram-section { border-top: 1px solid var(--line); }
.instagram-section h2,.reviews-section h2 { margin-bottom: 24px; }
.instagram-track { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-top:40px; }
.instagram-track figure { min-width:0; }
.instagram-track img { width:100%; height:auto; aspect-ratio:auto; }
.instagram-track a { display:block; }
.reviews-section { background:var(--paper); }
.reviews-inner { display:grid; grid-template-columns:1fr 1.15fr; gap:8%; align-items:center; }
.reviews-intro .review-rating { color:var(--raspberry); font-family:var(--serif); font-size:38px; }
.review-source { font-size:12px; color:#65574d; margin-top:18px; }
.reviews-slider { min-width:0; }
.reviews-track { display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:thin; padding:4px 0 15px; }
.review-card { flex:0 0 100%; scroll-snap-align:start; background:var(--cream); padding:clamp(26px,4vw,54px); display:flex; flex-direction:column; justify-content:space-between; min-height:285px; }
.review-quote { font:400 clamp(28px,3vw,42px)/1.2 var(--serif); margin:20px 0 28px; }
.review-card .review-author { font-size:13px; }
.review-card .review-author a { text-decoration:underline; text-underline-offset:4px; }
.carousel-controls { display:flex; align-items:center; gap:10px; margin-top:20px; }
.carousel-controls button { min-width:46px; min-height:46px; border:1px solid var(--line); color:var(--ink); background:transparent; cursor:pointer; padding:8px 14px; }
.carousel-controls button:hover { background:var(--cream); }
.carousel-position { margin-right:auto; font-size:12px; font-variant-numeric:tabular-nums; }
.carousel-controls .carousel-pause { font-size:12px; }
.swipe-hint { font-size:12px; color:#65574d; margin-top:16px; }
.reveal { transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1); }
.reveal.waiting { transform:translate3d(0,22px,0); }
.site-header { transition:background .25s,color .25s; }
@media(max-width:1099px) {
 .instagram-track { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .reviews-inner { gap:5%; }
}
@media(max-width:700px) {
 :root { --gutter:22px; --section:68px; }
 html { scroll-padding-top:92px; }
 h2 { font-size:clamp(38px,11vw,54px); overflow-wrap:break-word; }
 .hero { height:auto; min-height:0; padding-top:76px; }
 .hero > img,.hero .hero-background,.hero .hero-background img { position:relative; inset:auto; height:auto; width:100%; object-fit:contain; }
 .hero-shade { display:none; }
 .hero-content { position:relative; padding:30px 22px; }
 .hero-content .eyebrow { margin-bottom:20px; }
 .hero-wordmark { max-width:80vw; margin-bottom:25px!important; }
 .hero .discover { position:relative; left:auto; bottom:auto; justify-content:center; padding-bottom:22px; }
 .hero .hero-address { display:none; }
 .intro-photo,.menu-section figure { width:100%; }
 .intro-photo img,.menu-section figure img,.gallery figure img,.experience-photo img,.experience-photo .wp-block-image img,.groups-section>img,.groups-section>.wp-block-image img { height:auto!important; max-height:none!important; aspect-ratio:auto!important; object-fit:contain; }
 .experience-photo,.experience-photo .wp-block-image,.groups-section>.wp-block-image { height:auto; width:100%; }
 .experience-copy { width:100%; margin:0!important; padding:36px var(--gutter); }
 .menu-section .editorial-copy { padding:0; }
 .gallery figure:nth-child(2) { width:86%; }
 .gift-section>img,.gift-section>.wp-block-image img { height:auto; }
 .reviews-inner { display:block; }
 .reviews-slider { margin-top:30px; }
 .review-card { min-height:260px; }
 .instagram-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; gap:14px; padding:0 0 14px; margin-top:28px; }
 .instagram-track figure { flex:0 0 82%; scroll-snap-align:start; }
 .instagram-track img { height:auto; aspect-ratio:auto; }
 .site-header { padding-inline:18px; }
 .reservation h2 { font-size:clamp(38px,11vw,54px); }
 .hours { flex-wrap:wrap; gap:20px 30px; }
 .contact-address a,address a { min-height:44px; display:inline-flex; align-items:center; }
 .footer-top { overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:reduce) {
 html,.reviews-track,.instagram-track { scroll-behavior:auto!important; }
 .reveal.waiting { opacity:1; transform:none; }
}
