/* =========================
   desktop
   ========================= */
@media (min-width: 1181px){
  .service-large{min-height:100%}
}

/* =========================
   tablet / desktop compatto
   ========================= */
@media (max-width: 1180px){
  .hero-grid,
  .split-grid,
  .contact-highlight,
  .quote-layout,
  .contact-layout,
  .footer-grid{
    grid-template-columns:1fr;
  }

  .page-hero-grid{
    grid-template-columns:1fr;
    align-items:start;
  }

  .hero-copy h1,
  .page-hero h1{
    max-width:none;
  }

  .gallery-preview{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .gallery-grid-full{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .contact-grid-mini{
    grid-template-columns:1fr 1fr 1fr;
  }

  .header-inner{
    grid-template-columns:auto auto auto;
  }

  .site-nav{
    grid-column:1 / -1;
    justify-content:flex-start;
  }
}

/* =========================
   tablet
   ========================= */
@media (max-width: 820px){
  :root{
    --container:min(100% - 22px, 100%);
  }

  .header-inner{
    grid-template-columns:1fr auto;
    gap:14px;
  }

  .nav-toggle{
    display:block;
  }

  .nav-cta{
    display:none;
  }

  .site-nav{
    display:none;
    grid-column:1 / -1;
    width:100%;
    padding-top:8px;
    flex-direction:column;
    align-items:stretch;
  }

  .site-nav.is-open{
    display:flex;
  }

  .site-nav a{
    min-height:46px;
    padding:0 14px;
    border-radius:14px;
    border:1px solid var(--stroke);
    background:rgba(255,255,255,.03);
  }

  .nav-toggle.is-open span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
  }

  .nav-toggle.is-open span:nth-child(2){
    opacity:0;
  }

  .nav-toggle.is-open span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
  }

  .cards-3,
  .cards-2,
  .stat-row,
  .contact-grid-mini,
  .metric-grid,
  .form-grid{
    grid-template-columns:1fr;
  }

  .field-full,
  .metric-card-wide{
    grid-column:auto;
  }

  .cta-banner{
    flex-direction:column;
    align-items:flex-start;
  }

  .gallery-grid-full .wide,
  .gallery-grid-full .tall{
    grid-column:auto;
    grid-row:auto;
  }

  .gallery-grid-full{
    grid-auto-rows:220px;
  }

  .hours-list li{
    flex-direction:column;
    align-items:flex-start;
  }

  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
  }

  .lightbox-image{
    min-height:46vh;
  }
}

/* =========================
   mobile
   ========================= */
@media (max-width: 640px){
  :root{
    --container:min(100% - 16px, 100%);
    --header-h:78px;
    --input-h:54px;
  }

  .site-bg{
    background:
      linear-gradient(180deg, rgba(5,5,5,.72) 0%, rgba(5,5,5,.82) 38%, rgba(5,5,5,.94) 100%),
      radial-gradient(circle at 15% 18%, rgba(255,79,79,.14), transparent 25%),
      radial-gradient(circle at 85% 82%, rgba(255,255,255,.08), transparent 18%),
      url("../img/hero.jpg") center center / cover no-repeat;
  }

  .section{padding:20px 0}

  .header-inner{
    min-height:var(--header-h);
    padding:10px 12px;
    border-radius:18px;
  }

  .brand{
    gap:10px;
  }

  .brand-logo{
    width:48px;
    height:48px;
    border-radius:14px;
    font-size:.9rem;
  }

  .brand-text small{
    font-size:.64rem;
    letter-spacing:.1em;
  }

  .brand-text strong{
    font-size:.86rem;
  }

  .hero-copy,
  .contact-copy{
    gap:14px;
  }

  .hero-copy h1,
  .page-hero h1{
    font-size:2.45rem;
    line-height:.96;
  }

  .eyebrow{
    min-height:34px;
    padding:0 12px;
    font-size:.7rem;
  }

  .hero-panel,
  .media-card,
  .map-card,
  .quote-card,
  .contact-panel,
  .service-card,
  .feature-card,
  .review-card,
  .step-card,
  .team-card,
  .info-card,
  .contact-card,
  .business-panel,
  .cta-banner,
  .footer-grid{
    border-radius:20px;
  }

  .hero-panel,
  .media-card,
  .map-card,
  .quote-card{
    padding:12px;
  }

  .hero-visual{
    height:360px;
  }

  .about-visual,
  .story-visual{
    height:300px;
  }

  .hero-card-float{
    left:18px;
    right:18px;
    bottom:18px;
    padding:14px;
    border-radius:16px;
  }

  .gallery-preview,
  .gallery-grid-full{
    grid-template-columns:1fr;
  }

  .gallery-tile{
    min-height:220px;
  }

  .section-head{
    gap:14px;
    flex-direction:column;
    align-items:flex-start;
  }

  .btn{
    width:100%;
  }

  .hero-actions{
    flex-direction:column;
  }

  .quote-card{
    padding:18px;
  }

  .service-thumb,
  .team-photo{
    height:180px;
  }

  .map-card iframe,
  .map-card.large iframe{
    min-height:320px;
  }

  .footer-grid{
    padding:18px;
  }

  .lightbox{
    padding:12px;
  }

  .lightbox-panel{
    padding:12px;
    border-radius:18px;
  }

  .lightbox-image{
    min-height:36vh;
    border-radius:14px;
  }

  .lightbox-close{
    top:12px;
    right:12px;
    width:46px;
    height:46px;
    border-radius:12px;
    font-size:1.7rem;
  }
}

/* nav motion final clean block */
@media (max-width: 820px){
  .header-inner{
    overflow:visible;
  }

  .nav-toggle{
    transition:
      transform .26s ease,
      background .34s ease,
      border-color .34s ease,
      box-shadow .34s ease;
  }

  .nav-toggle:hover{
    transform:translateY(-1px);
  }

  .nav-toggle.is-open{
    background:rgba(255,255,255,.07);
    border-color:rgba(255,255,255,.14);
    box-shadow:
      0 14px 28px rgba(0,0,0,.18),
      inset 0 1px 0 rgba(255,255,255,.05);
  }

  .nav-toggle span{
    transition:
      transform .48s cubic-bezier(.22,1,.36,1),
      opacity .24s ease;
  }

  .site-nav{
    display:flex !important;
    grid-column:1 / -1;
    width:100%;
    padding-top:0;
    flex-direction:column;
    align-items:stretch;
    overflow:hidden;
    max-height:0;
    opacity:0;
    transform:translateY(-18px) scale(.985);
    transform-origin:top center;
    pointer-events:none;
    will-change:max-height, opacity, transform;
    transition:
      max-height .80s cubic-bezier(.22,1,.36,1),
      opacity .48s ease,
      transform .80s cubic-bezier(.22,1,.36,1),
      padding-top .48s ease;
  }

  .site-nav.is-open,
  .site-nav.is-closing{
    display:flex !important;
  }

  .site-nav.is-open{
    max-height:560px;
    opacity:1;
    transform:translateY(0) scale(1);
    padding-top:10px;
    pointer-events:auto;
  }

  .site-nav.is-closing{
    max-height:0;
    opacity:0;
    transform:translateY(-12px) scale(.985);
    padding-top:0;
    pointer-events:none;
  }

  .site-nav a{
    opacity:0;
    transform:translateY(-20px);
    filter:blur(8px);
    transition:
      background .18s ease,
      border-color .18s ease;
  }

  .site-nav.is-open a{
    animation:navItemFadeIn .72s cubic-bezier(.22,1,.36,1) both;
  }

  .site-nav.is-open a:nth-child(1){ animation-delay:.06s; }
  .site-nav.is-open a:nth-child(2){ animation-delay:.12s; }
  .site-nav.is-open a:nth-child(3){ animation-delay:.18s; }
  .site-nav.is-open a:nth-child(4){ animation-delay:.24s; }
  .site-nav.is-open a:nth-child(5){ animation-delay:.30s; }
  .site-nav.is-open a:nth-child(6){ animation-delay:.36s; }
  .site-nav.is-open a:nth-child(7){ animation-delay:.42s; }

  @keyframes navItemFadeIn{
    0%{
      opacity:0;
      transform:translateY(-20px);
      filter:blur(8px);
    }
    100%{
      opacity:1;
      transform:translateY(0);
      filter:blur(0);
    }
  }
}

@media (prefers-reduced-motion: reduce){
  .nav-toggle,
  .nav-toggle span,
  .site-nav,
  .site-nav a{
    transition:none !important;
    animation:none !important;
    transform:none !important;
    filter:none !important;
  }
}

/* nav vertical mobile final fix */
@media (max-width: 820px){
  .site-nav,
  .site-nav.is-open,
  .site-nav.is-closing{
    display:flex !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    align-items:stretch !important;
    row-gap:12px !important;
    column-gap:0 !important;
  }

  .site-nav a{
    width:100% !important;
    flex:0 0 auto !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
  }
}
