/* =========================================================
   RESPONSIVE
   ========================================================= */
/* ---- laptop / small desktop ---- */
@media (max-width:1180px){
  .container{ padding:0 22px; }
  .hero-inner{ gap:40px; }
  .footer-grid{ grid-template-columns:1.2fr 1fr 1fr; }
  .footer-col.footer-hours-col{ grid-column:1/-1; }
}
/* ---- tablet ---- */
@media (max-width:1024px){
  :root{ --header-h:76px; }
  .main-nav{ display:none; }
  .nav-toggle{ display:flex; }
  .hero{ padding-top:calc(var(--header-h) + 24px); } /* NEW: stops header/hero overlap */
  .hero-inner{ grid-template-columns:1fr; text-align:center; }
  .hero p.lede{ margin-left:auto; margin-right:auto; }
  .hero-ctas,.hero-stats{ justify-content:center; }
  .hero-visual{
    order:-1;
    max-width:320px;
    margin:0 auto 20px;
    display:block;      /* NEW: guards against inherited display:none */
    position:relative;  /* NEW: gives .hero-badge a proper anchor */
  }
  .hero-photo-wrapper{
    display:block;       /* NEW */
    width:100%;
    position:relative;   /* NEW */
  }
  .hero-photo-frame{
    display:block;        /* NEW */
    width:100%;
    aspect-ratio:4/5;     /* NEW: guarantees visible height even if a fixed px height breaks on mobile */
    overflow:hidden;
  }
  .grid-2{ grid-template-columns:1fr; }
  .grid-3{ grid-template-columns:repeat(2,1fr); }
  .grid-4{ grid-template-columns:repeat(2,1fr); }
  .grid-6{ grid-template-columns:repeat(3,1fr); }
  .stat-grid{ grid-template-columns:repeat(2,1fr); gap:32px; }
  .gallery-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .cta-banner{ padding:54px 30px; }
  .tridosha{ gap:20px; }
  .dosha-connector{ display:none; }
}
/* ---- mobile nav drawer ---- */
@media (max-width:1024px){
  .main-nav.mobile-open{
    display:flex; flex-direction:column; position:fixed; top:var(--header-h); left:0; right:0;
    background:var(--ivory); padding:14px 24px 30px; box-shadow:0 20px 30px rgba(22,50,31,.12);
    max-height:calc(100vh - var(--header-h)); overflow-y:auto;
  }
  .main-nav.mobile-open a{ color:var(--ink); width:100%; padding:14px 10px; border-bottom:1px solid var(--line); border-radius:0; }
  /*.header-cta .btn-gold span{ display:none; }*/
}
/* ---- mobile ---- */
@media (max-width:640px){
  .section{ padding:70px 0; }
  .section.tight{ padding:54px 0; }
  .page-hero{ padding:calc(var(--header-h) + 60px) 0 60px; }
  .grid-3,.grid-4{ grid-template-columns:1fr; }
  .grid-6{ grid-template-columns:repeat(2,1fr); }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .stat-grid{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr; gap:34px; }
  .cta-banner{ padding:44px 22px; }
  .testi-card{ padding:30px 22px; }
  .hero-badge{ left:50%; transform:translateX(-50%); bottom:-18px; }
  .header-cta .btn-outline{ display:none; }
  .dosha{ width:100%; max-width:260px; }
  .floating-actions{ right:14px; bottom:16px; }
  .fab{ width:50px; height:50px; }
  .modal-box{ padding:30px 22px; }
  .icon-btn {display: none;}
}
@media (max-width:400px){
  .brand-name{ font-size:16px; }
  .hero h1{ font-size:30px; }
}
