/* Shared responsive refinements for phone, tablet and desktop layouts. */
:root{
  --page-gutter:clamp(16px,3vw,32px);
  --touch-target:44px;
}

html{overflow-x:hidden}
body{min-width:280px}
img,svg{max-width:100%}
button,a,input,select,textarea{touch-action:manipulation}
a,button{ -webkit-tap-highlight-color:transparent }
:where(a,button,input,select,textarea):focus-visible{outline:3px solid rgba(185,28,28,.42);outline-offset:3px}

@media (min-width:1200px){
  .wrap{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
  .hero{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
  .gallery-grid img{height:clamp(280px,24vw,340px)}
}

@media (min-width:601px) and (max-width:900px){
  header,.hero{min-height:clamp(420px,58svh,620px)}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card-top{flex-direction:column;gap:12px}
  .price,.price-group{align-self:flex-start}
  .price-group{align-items:flex-start}
  .reservation-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
  .reservation-btn{width:100%;min-width:0;padding-inline:20px}
  .contact-form{max-width:680px}
}

.card-top>div:first-child{min-width:0}
.card h3,.info-card strong,.footer-grid p{overflow-wrap:anywhere}
.price{max-width:100%;white-space:nowrap;overflow-wrap:normal;text-align:center;line-height:1.3}
.price-group .price{text-align:center}
.menu-tabs-wrapper{scroll-margin-top:12px}

@media (max-width:600px){
  header,.hero{min-height:0}
  .hero{padding:32px 16px 36px}
  .hero .buttons{max-width:340px}
  .hero .buttons .btn{min-height:var(--touch-target);display:flex;align-items:center;justify-content:center}
  .wrap{width:100%;padding-left:16px;padding-right:16px}
  .section-title{align-items:center}
  .section-title h2{line-height:1.08;overflow-wrap:anywhere}
  .section-title .line{min-width:24px}
  .card-top{gap:12px}
  .price-group{align-items:flex-start}
  .menu-tabs-wrapper{margin-left:-16px;margin-right:-16px;padding-left:0;padding-right:0}
  .menu-tabs-wrapper.is-stuck{padding-left:0;padding-right:0}
  .menu-tabs-label{padding-inline:16px}
  .menu-tabs{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline proximity;scroll-padding-inline:16px;padding:3px 16px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .menu-tabs::-webkit-scrollbar{display:none}
  .menu-tab{flex:0 0 auto;min-height:var(--touch-target);scroll-snap-align:start;white-space:nowrap}
  .menu-exit-row{padding-inline:16px}
  .gallery-grid img{height:auto;aspect-ratio:4/3}
  .hours-grid{max-width:none}
  .reservation-btn,.review-btn,.contact-form .submit-btn{min-height:48px}
  .partners-box img{max-width:min(42%,150px);height:auto;max-height:34px}
  .footer-grid>div{min-width:0}
  .floating-reserve{top:auto;bottom:82px;right:0;transform:none;min-width:48px;min-height:48px}
  .floating-reserve:hover{transform:translateX(-2px);padding-right:16px}
  .floating-whatsapp{bottom:max(16px,env(safe-area-inset-bottom))}
  .back-to-top{bottom:calc(max(16px,env(safe-area-inset-bottom)) + 64px)}
  .cookie-banner-inner{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
}

@media (max-width:420px){
  .hero{padding-left:12px;padding-right:12px}
  .hero p{line-height:1.5}
  .award-badge{max-width:100%;justify-content:center;text-align:center;line-height:1.25}
  .award-badge .award-sep{display:none}
  .award-badge .award-month{display:block}
  .wrap{padding-left:12px;padding-right:12px}
  .menu-tabs-wrapper{margin-left:-12px;margin-right:-12px}
  .menu-tabs-label,.menu-exit-row{padding-inline:12px}
  .menu-tabs{padding-inline:12px;scroll-padding-inline:12px}
  .info-card,.card,.hours-card{border-radius:16px}
  .card-top{gap:10px}
  .price-group{width:100%}
  .price-group .price{flex:1 1 auto}
  .contact-form{margin-left:0;margin-right:0}
  .cookie-banner-text{min-width:0;width:100%}
  .cookie-banner-actions{display:grid;grid-template-columns:1fr 1fr}
  .cookie-btn{min-width:0;min-height:var(--touch-target);padding-inline:10px}
}

@media (max-width:340px){
  .section-title .line{display:none}
  .menu-tab{padding-inline:10px}
  .floating-reserve{bottom:76px}
  .partners-box{gap:16px}
  .partners-box img{max-width:70%}
}

/* Philosophy page */
.commandment-title,.commandment-body,.dop-list li{overflow-wrap:anywhere}
.commandment-header>*{min-width:0}

@media (min-width:901px){
  .philo-hero{min-height:clamp(460px,55svh,660px)}
}

@media (max-width:600px){
  .philo-hero{min-height:360px}
  .philo-hero-content{width:100%}
  .back-link{min-height:var(--touch-target)}
  .commandment-header{align-items:flex-start}
  .commandment-number{flex:0 0 auto}
  .back-cta a{width:100%;min-height:48px;justify-content:center}
}

@media (max-width:360px){
  .philo-wrap{padding-left:10px;padding-right:10px}
  .commandment{padding-left:14px;padding-right:14px}
  .commandment-header{gap:10px}
}

/* Success page */
@media (max-height:620px){
  .success-card{padding-top:24px;padding-bottom:24px}
  .success-card .check{margin-bottom:12px}
  .success-card p{margin-bottom:18px}
}

@media (max-width:360px){
  .success-card{padding-left:14px;padding-right:14px}
}

@media (prefers-reduced-motion:reduce){
  .menu-tabs{scroll-behavior:auto}
}
