/* Mobile / tablet adaptation — rethink, don't just shrink */

/* Safe areas + sticky header offset helpers */
@supports (padding: max(0px)) {
  .mobile-contact .wrap{
    padding-left:max(16px, env(safe-area-inset-left));
    padding-right:max(16px, env(safe-area-inset-right));
  }
  .header .wrap.nav{
    padding-left:max(0px, env(safe-area-inset-left));
    padding-right:max(0px, env(safe-area-inset-right));
  }
}

/* Touch: larger targets when coarse pointer */
@media (pointer: coarse){
  .menu-button{
    min-width:44px;
    min-height:44px;
    display:grid;
    place-items:center;
  }
  .nav-links>a,
  .nav-flyout-trigger{
    min-height:44px;
    align-items:center;
  }
  .branch{
    min-height:52px;
  }
  .store-actions a,
  .app-store-actions a{
    min-height:44px;
  }
  .location-list a,
  .service-card > a{
    min-width:48px;
    min-height:48px;
  }
}

/* Hover lifts only when hover is real */
@media (hover: none){
  .store-actions a:hover,
  .app-store-actions a:hover,
  .service-card:hover,
  .location-list article:hover,
  .button:hover,
  .nav-cta:hover{
    transform:none;
  }
  .store-actions a:active,
  .app-store-actions a:active,
  .button:active,
  .nav-cta:active{
    transform:scale(.98);
  }
}

/* —— Phone layout (≤800px) —— */
@media (max-width:800px){
  body{
    padding-bottom:calc(64px + env(safe-area-inset-bottom, 0px));
  }

  /* Hero: content readable first, app as real second beat */
  .hero{
    display:flex;
    flex-direction:column;
    height:auto;
    min-height:0;
    padding:0 0 8px;
    overflow:hidden;
  }
  .hero-photo,
  .hero-shade{
    position:absolute;
    inset:0;
  }
  .hero-shade{
    background:
      linear-gradient(180deg,rgba(0,45,68,.82) 0%,rgba(0,70,100,.55) 42%,rgba(0,55,82,.78) 100%),
      linear-gradient(90deg,rgba(0,55,82,.55),transparent 70%);
  }
  .hero-content{
    position:relative;
    z-index:3;
    order:1;
    padding:56px 0 12px;
    max-width:100%;
  }
  .hero-copy{
    max-width:36ch;
    font-size:16px;
    line-height:1.55;
  }
  .hero-app{
    display:none !important;
  }
  .hero-bottom{
    position:relative;
    z-index:3;
    order:3;
    margin:8px auto 16px;
    bottom:auto;
    width:min(1160px,calc(100% - 32px));
  }
  .store-actions{
    flex-wrap:wrap;
    gap:10px;
  }
  .store-actions img{width:min(156px,42vw)}

  /* Price panel: swipeable unit tabs */
  .branch-tabs{
    display:flex;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .branch-tabs::-webkit-scrollbar{display:none}
  .branch{
    flex:0 0 auto;
    width:max(42%,148px);
    scroll-snap-align:start;
    padding:14px 16px;
    border-right:1px solid var(--line);
    text-align:left;
  }
  .price-content{
    grid-template-columns:1fr !important;
  }
  .price-meta{
    padding:18px 16px 8px;
  }
  .fuel-list,
  #fuel-list{
    padding:8px 12px 16px;
  }
  .fuel{
    grid-template-columns:1fr auto;
    gap:10px;
    align-items:center;
    padding:14px 4px;
    min-height:52px;
  }
  .fuel strong{
    font-size:clamp(18px,5.5vw,22px);
    letter-spacing:-.6px;
  }

  /* Classic boards: keep side-scroll, larger titles */
  .classic-boards{
    gap:16px;
    padding:16px 12px 20px;
  }
  .classic-board-title{
    font-size:16px;
    padding:12px 10px;
  }

  /* Services: one column, app card full width with store buttons in flow */
  .service-grid{
    grid-template-columns:1fr !important;
    gap:14px;
  }
  .app-card{
    min-height:0;
    padding-bottom:100px;
  }
  .app-store-actions{
    left:20px;
    right:20px;
    bottom:20px;
    flex-wrap:wrap;
  }
  .app-store-actions img{width:min(150px,44vw)}

  /* Locations: denser thumb-friendly rows */
  .locations-grid{
    grid-template-columns:1fr !important;
    gap:28px;
  }
  .location-list article{
    min-height:64px;
    padding:14px 0;
    gap:12px;
  }

  /* Story: stack image above */
  .story-grid{
    grid-template-columns:1fr !important;
    gap:28px;
  }

  /* Nav drawer: full-bleed, safe bottom, thumb CTA */
  .nav-links.open{
    max-height:calc(100dvh - 70px - env(safe-area-inset-bottom, 0px));
    overflow:auto;
    padding:16px 20px calc(24px + env(safe-area-inset-bottom, 0px));
    gap:4px;
  }
  .nav-links.open > a,
  .nav-links.open .nav-flyout-trigger{
    width:100%;
    padding:12px 4px;
    font-size:16px;
  }
  .nav-links.open .nav-cta{
    margin-top:12px;
    justify-content:center;
    text-align:center;
    width:100%;
    box-sizing:border-box;
  }
  .nav-links.open .submenu a{
    padding:12px 0;
    font-size:15px;
    min-height:44px;
  }

  /* Contact page */
  .contact-layout{
    gap:28px;
  }
  .contact-form-panel{
    padding:20px 16px 22px;
  }
  .contact-form input,
  .contact-form textarea{
    font-size:16px; /* iOS zoom prevention */
    min-height:48px;
  }
  .contact-form textarea{min-height:140px}
  .contact-map-frame iframe{height:280px}

  /* Mobile dock — thumbs-first primary actions */
  .mobile-dock{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:40;
    background:#fff;
    border-top:1px solid var(--line);
    box-shadow:0 -8px 24px rgba(24,38,46,.08);
    padding:6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
  }
  .mobile-dock a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    color:var(--ink);
    text-decoration:none;
    font:700 13px/1.2 Outfit,sans-serif;
    letter-spacing:.02em;
  }
  .mobile-dock a[aria-current="page"],
  .mobile-dock a.is-primary{
    color:var(--red);
  }
}

@media (max-width:800px) and (orientation:landscape){
  .hero-content{padding-top:36px}
  .hero h1{font-size:clamp(32px,6vw,42px)}
}

@media (max-width:420px){
  .branch{width:max(48%,140px)}
  .fuel strong{font-size:18px}
}

/* Tablet: keep two-up where it helps */
@media (min-width:801px) and (max-width:1023px){
  .service-grid{
    grid-template-columns:1fr 1fr;
  }
  .app-card{
    grid-column:1 / -1;
  }
  .classic-boards{
    gap:20px;
  }
}

/* Hide dock on desktop */
@media (min-width:801px){
  .mobile-dock{display:none !important}
  body{padding-bottom:0}
}

/* Offscreen sections: cheaper layout/paint */
.prices,
.services,
.locations,
.story,
.contact-section,
.contact-map,
footer{
  content-visibility:auto;
  contain-intrinsic-size:1px 720px;
}
