/* ==========================================================================
   Shree Gayatri Insulation — responsive.css
   Desktop-first. 1600 → 1280 → 1024 → 768 → 480. Media queries only.

   Spacing is never set per-component here. Each breakpoint retunes the
   semantic tokens declared in style.css (--section-pad, --heading-gap,
   --block-gap, --grid-gap, --card-pad…) and every section, card and grid
   follows. Component rules below change layout (columns, heights, order),
   not rhythm.
   ========================================================================== */

/* ------------------------------------------------------------------ 1600 */
@media (max-width: 1600px) {
  :root {
    --fs-display: 62px; --fs-h1: 50px;
    --section-pad: 130px;
  }
  .hero-banner { min-height: 880px; }
  .hero-inner { grid-template-columns: minmax(0, 1fr) 470px; }
  .marquee-heading { font-size: 140px; }
}

/* ------------------------------------------------------------------ 1280 */
@media (max-width: 1280px) {
  :root {
    --fs-display: 54px; --fs-h1: 44px; --fs-h2: 34px; --fs-h3: 26px;
    --fs-h4: 23px; --fs-h5: 22px; --fs-lead: 19px;
    --header-height: 88px;
    --section-pad: 110px;
    --heading-gap: var(--space-7);      /* 40 */
    --block-gap: var(--space-8);        /* 50 */
    --card-pad-lg: var(--space-7);      /* 40 */
  }
  .main-nav ul { gap: var(--space-5); }
  .main-nav a { font-size: 16px; }
  .header-bar { padding: 0 28px 0 var(--space-5); }
  .header-meta { gap: var(--space-4); }

  .hero-banner { min-height: 800px; }
  .hero-inner { grid-template-columns: minmax(0, 1fr) 420px; gap: var(--space-5); }
  .commitment-card { padding: var(--card-pad-sm); }
  .marquee-band { padding-top: var(--section-pad); }
  .marquee-heading { font-size: 110px; }

  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-grid { grid-template-columns: 1.2fr minmax(0, 1fr); }
  .process-panel { grid-column: 1 / -1; }
  .service-card { grid-template-columns: 1fr; }
  .service-card .media { height: 260px; order: -1; }
  .industries-grid { gap: var(--block-gap); }
  .media-tall { height: 360px; }

  .app-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-list-2col { gap: var(--space-4); }
  .brand-wall { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .services-detail-wrapper { grid-template-columns: 300px minmax(0, 1fr); gap: var(--grid-gap); }
  .serve-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--grid-gap); }

  .about-us-1-wrapper { grid-template-columns: 360px minmax(0, 1fr); gap: var(--space-7); }
  .industries-band .main-image { height: 420px; }
  .about-split .about-text-block { padding: var(--space-9) var(--space-7); }

  .footer-wrapper { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-7); }
  .footer-form { grid-column: 1 / -1; }
}

/* ------------------------------------------------------------------ 1024 */
@media (max-width: 1024px) {
  :root {
    --fs-display: 44px; --fs-h1: 36px; --fs-h2: 28px;
    --fs-body: 18px; --fs-lead: 18px;
    --notch-lg: 34px; --notch-md: 22px;
    --section-pad: 90px;
    --section-pad-tight: var(--space-10);  /* 74 */
    --block-gap: var(--space-7);           /* 40 */
    --grid-gap: var(--space-5);            /* 24 */
    --card-pad: var(--space-6);            /* 30 */
    --card-pad-sm: var(--space-5);         /* 24 */
    --card-pad-lg: var(--space-7);         /* 40 */
  }
  body { padding-top: calc(var(--topbar-height) + var(--header-height)); }

  /* Topbar stays one row — a wrapped topbar pushed inner-page heroes down */
  .header-topbar .container { flex-wrap: nowrap; }
  .header-schedule { display: none; }
  .header-meta { flex-wrap: nowrap; overflow: hidden; }
  .header-meta a { white-space: nowrap; }
  /* .main-nav goes position:fixed here; push the aside + toggle to the right */
  .header-aside { margin-left: auto; }

  /* One nav, restyled into a drawer — same <ul>, no duplicate markup */
  .nav-toggle { display: flex; }
  .main-nav {
    position: fixed; inset: 0 0 0 auto; z-index: 75;
    width: min(380px, 86vw); background: var(--color-surface);
    padding: calc(var(--header-height) + var(--space-6)) var(--space-6) var(--space-7);
    overflow-y: auto; box-shadow: var(--shadow-card);
    transform: translateX(100%); transition: transform 0.4s var(--ease);
  }
  body.nav-open .main-nav { transform: translateX(0); }
  .main-nav ul { display: block; }
  .main-nav li { border-bottom: 1px solid var(--color-border); }
  .main-nav a { padding: var(--space-3) 0; font-size: var(--fs-small); justify-content: space-between; }
  .main-nav .sub-menu,
  .main-nav .sub-menu.mega {
    position: static; opacity: 1; visibility: visible; transform: none;
    width: auto; min-width: 0; display: none;
    box-shadow: none; border-top: 0; clip-path: none;
    padding: 0 0 var(--space-2) var(--space-3);
  }
  .main-nav li.is-open > .sub-menu { display: block; }
  .main-nav .sub-menu .sub-menu-grid { grid-template-columns: minmax(0, 1fr); }
  .main-nav .sub-menu .sub-menu-title { display: none; }
  .main-nav .sub-menu a { padding: 10px 0; border-left: 0; }
  .main-nav .sub-menu a:hover { background: none; }
  .main-nav .sub-menu .sub-menu-foot { margin: var(--space-2) 0 0; }
  .main-nav .menu-item-has-children::before { display: none; }

  /* Hero */
  .hero-banner { min-height: 0; }
  .hero-inner { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: var(--space-9); }
  .hero-content { padding-bottom: var(--space-8); }
  .hero-title { max-width: 100%; margin-bottom: var(--space-6); }
  .hero-content .btn-group { margin-bottom: var(--space-7); }
  .commitment-card { margin-bottom: calc(-1 * var(--space-9)); max-width: 560px; }
  .marquee-heading { font-size: 80px; }
  .page-hero .grid-icon { display: none; }

  /* Grids collapse to two columns */
  .grid-3, .grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .row-between { flex-direction: column; align-items: flex-start; gap: var(--space-5); }
  .project-grid { grid-template-columns: minmax(0, 1fr); }
  .project-card.feature { min-height: 380px; }
  .insight-card .media { height: 320px; }
  .product-card .media { height: 280px; }
  .stat-group { gap: var(--space-4); }
  .sector-item { padding: var(--space-4) 0; }
  .client-note { flex-direction: column; align-items: flex-start; }
  .about-grid, .industries-grid { grid-template-columns: minmax(0, 1fr); gap: var(--grid-gap); }
  .clients-stat { text-align: left; }
  .media-tall { height: 320px; }
  .media-mid { height: 260px; }
  .warehouse-card { min-height: 220px; }
  .client-logo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  /* Inner-page components */
  .contact-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-detail { grid-template-columns: minmax(0, 1fr); }
  .detail-grid { grid-template-columns: minmax(0, 1fr); }
  .gallery-thumbs { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .contact-card { min-height: 180px; gap: var(--space-6); }
  .form-call-wrapper { grid-template-columns: minmax(0, 1fr); margin-top: var(--block-gap); }
  .map-block { min-height: 620px; }
  .quote-cta { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .quote-cta .quote-cta-title { font-size: 28px; line-height: 40px; }
  .brand-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .services-detail-wrapper { grid-template-columns: minmax(0, 1fr); }
  .services-links-block { align-self: start; }
  .quote-band { min-height: 240px; padding: var(--card-pad); }
  .project-col-card .project-img-block, .blog-card .blog-img-block { height: 220px; }
  .inline-inquiry .inquiry-grid { grid-template-columns: minmax(0, 1fr); gap: var(--block-gap-sm); }

  /* About */
  .about-us-1-wrapper { grid-template-columns: minmax(0, 1fr); }
  .about-us-1-wrapper .back-img-block .media { height: 340px; }
  .industries-band .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-split { grid-template-columns: minmax(0, 1fr); }
  .about-split .about-img-block { min-height: 380px; }
  /* position:static would void the z-index and let the absolute hero image
     paint over the card — keep it positioned so it stacks above. */
  .about-split .about-banner { position: relative; z-index: 2; max-width: none; bottom: auto; right: auto; }
  .features-wrapper { grid-template-columns: minmax(0, 1fr); }
  .presence-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------------- 900 */
@media (max-width: 900px) {
  .service-carousel .service-card { flex: 0 0 100%; }
}

/* ------------------------------------------------------------------- 768 */
@media (max-width: 768px) {
  :root {
    --fs-display: 36px; --fs-h1: 30px; --fs-h2: 24px; --fs-h3: 22px;
    --fs-h4: 20px; --fs-h5: 20px; --fs-lead: 18px; --fs-body: 17px;
    --gutter: 20px;
    --topbar-height: 62px; --header-height: 76px;
    --section-pad: 70px;
    --section-pad-tight: 56px;
    --heading-gap: var(--space-6);      /* 30 */
    --block-gap: var(--space-7);        /* 40 */
    --block-gap-sm: var(--space-5);     /* 24 */
    --grid-gap: var(--space-4);         /* 20 */
    --card-pad: var(--space-5);         /* 24 */
    --card-pad-sm: var(--space-4);      /* 20 */
    --card-pad-lg: var(--space-6);      /* 30 */
    --stack-gap: var(--space-3);        /* 16 */
  }
  body { line-height: 30px; }
  .main-heading { letter-spacing: -0.6px; }

  /* Header */
  .header-topbar .container { justify-content: center; }
  .header-meta { gap: var(--space-3); font-size: 13px; }
  .header-meta a { font-size: 13px; }
  .header-brand img { height: 40px; }
  body.is-scrolled .header-bar { height: 66px; padding: 0 var(--gutter); }
  body.is-scrolled .header-brand img { height: 32px; }

  /* Hero */
  .hero-checklist { gap: var(--space-3); margin-bottom: var(--space-6); }
  .hero-checklist span { font-size: 17px; line-height: 26px; }
  .hero-controls { flex-wrap: wrap; }
  .commitment-card p { font-size: 16px; line-height: 28px; }
  .commitment-card h2, .commitment-card h3 { font-size: 19px; line-height: 28px; }
  .marquee-heading { font-size: 54px; }
  .page-hero { clip-path: none; }

  /* Buttons */
  .btn { padding: var(--space-4) 26px; }
  .btn-outline { padding: 18px var(--space-5); }
  .btn-group { width: 100%; }
  .btn-group .btn { flex: 1 1 auto; }
  .quote-cta .btn { width: 100%; }
  .serve-section .btn-group { flex-direction: column; }
  .serve-section .btn-group .btn { width: 100%; }

  /* Grids collapse to one column */
  .grid-2, .grid-3, .grid-4 { grid-template-columns: minmax(0, 1fr); }
  .form-grid.cols-2 { grid-template-columns: minmax(0, 1fr); }
  .stat-group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-item .stat-value { font-size: 34px; }
  .stat-item-lg .stat-value { font-size: 38px; }
  .app-list, .app-list-2col { grid-template-columns: minmax(0, 1fr); gap: var(--space-2) var(--space-4); }
  .app-list-2col > li span { font-size: 16px; }
  .brand-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .client-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diff-list { grid-template-columns: minmax(0, 1fr); }
  .serve-list { grid-template-columns: minmax(0, 1fr); }
  .serve-link { font-size: 17px; padding: var(--space-4) 0; gap: var(--space-3); }
  .presence-stats { grid-template-columns: minmax(0, 1fr); }
  .footer-wrapper { grid-template-columns: minmax(0, 1fr); gap: var(--block-gap-sm); }

  /* Service cards */
  .service-card { grid-template-columns: minmax(0, 1fr); }
  .service-card .media { min-height: 260px; }
  .service-card .service-body { padding: var(--card-pad-sm) 0; }
  .service-card .icon-tile, .service-card .service-name, .service-card .service-spec, .service-card .btn { margin-left: var(--card-pad); margin-right: var(--card-pad); }
  .service-list a { padding: 6px 0; margin-left: var(--card-pad); margin-right: var(--card-pad); }
  .service-carousel .service-card .service-body { padding: 0 var(--card-pad) var(--card-pad); }
  .service-carousel .service-card .icon-tile,
  .service-carousel .service-card .service-name,
  .service-carousel .service-card .service-spec,
  .service-carousel .service-card .btn,
  .service-carousel .service-card .service-list a { margin-left: 0; margin-right: 0; }

  /* Media heights */
  .media-tall { height: 260px; }
  .media-mid { height: 220px; }
  .logo-tile { width: 180px; height: 112px; }
  .product-tile .media { height: 150px; }
  .product-group-title h2, .product-group-title h3 { white-space: normal; }
  .post-figure img { height: 300px; }
  .post-figure .date-tag { width: 70px; height: 66px; }
  .post-inline-figure img { height: 240px; }
  .blog-card .blog-img-block { height: 200px; }
  .blog-card .date-tag { width: 66px; height: 64px; }
  .feature-item { grid-template-columns: minmax(0, 1fr); }
  .feature-item .feature-img { height: 180px; }
  .industries-band .main-image { height: 280px; clip-path: none; }
  .industries-band .logo-block { width: 84px; height: 82px; }
  .industries-band .stats { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .industries-band .stats .stat-item h2 { font-size: 36px; }
  .about-split .about-text-block { padding: var(--section-pad-tight) var(--gutter); }
  .about-split .about-us-comment .comment { font-size: 18px; line-height: 30px; }
  .about-split .about-video-box { grid-template-columns: minmax(0, 1fr); }
  .about-split .about-video-box .media { height: 160px; }
  .about-us-1-wrapper .front-img-block .media { height: 220px; }

  .contact-form .form-block { grid-template-columns: minmax(0, 1fr); }
  .spec-list > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .gallery-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .product-cta .btn { width: 100%; }
  .contact-form .submit-btn { width: 100%; }
  .contact-card { min-height: 0; gap: var(--space-5); }
  .map-block { min-height: 0; padding-top: 360px; }
  .map-block .map-embed { height: 360px; }
  .address-block { max-width: none; }

  /* Bands lose their corner cut on narrow screens */
  .solution-section, .quote-band, .inline-inquiry { clip-path: none; }
  .quote-band { margin: var(--block-gap-sm) 0; }
  .inline-form { grid-template-columns: minmax(0, 1fr); }

  /* Text */
  .commitment-title { gap: var(--space-3); }
  .commitment-title .icon { width: 60px; height: 58px; }
  .commitment-title .icon svg { width: 26px; height: 26px; }
  .commitment-title h3 { font-size: 20px; line-height: 28px; }
  .project-col-card .info-block { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .article-body h2 { font-size: 27px; }
  .article-body p, .article-body li { font-size: 17px; line-height: 30px; }
  .comment-item { grid-template-columns: 56px minmax(0, 1fr); gap: var(--space-4); }
  .comment-item .avatar { width: 56px; height: 56px; }
  .comment-form .field-grid { grid-template-columns: minmax(0, 1fr); }
  .client-note p { font-size: 17px; line-height: 30px; }
  .area-link { padding: 15px var(--space-4); font-size: 16px; }
  .insight-card h3 { max-width: 100%; }
  .heading-group.centered .heading { max-width: 100%; }
  .content-area { max-width: none; }
  .footer-title { font-size: 23px; line-height: 34px; }
  .contact-link { font-size: 16px; }
  .grid-icon { display: none; }

  /* Fixed controls */
  .back-to-top { right: var(--space-4); bottom: var(--space-4); }
  .whatsapp-float { right: var(--space-4); bottom: calc(var(--space-4) + 50px + 12px); width: 50px; height: 50px; }
}

/* ------------------------------------------------------------------- 480 */
@media (max-width: 480px) {
  :root {
    --fs-display: 30px; --fs-h1: 26px;
    --gutter: 16px; --notch-lg: 24px;
    --section-pad: 60px;
    --section-pad-tight: 50px;
    --block-gap: var(--space-6);        /* 30 */
  }
  .header-meta { flex-direction: column; gap: 2px; text-align: center; }
  .hero-inner { padding-top: calc(var(--topbar-height) + var(--header-height) + var(--space-7)); }
  .commitment-card .card-head { flex-direction: column; gap: var(--space-3); }
  .icon-tile { width: 64px; height: 62px; }
  .marquee-heading { font-size: 40px; }
  .hero-controls { gap: var(--space-3); }
  .slider-nav button { width: 46px; height: 46px; }

  .stat-group { grid-template-columns: minmax(0, 1fr); }
  .swatch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .type-row { flex-direction: column; gap: 4px; }
  .type-row .type-token { width: auto; }
  .brand-wall { grid-template-columns: minmax(0, 1fr); }
  .contact-cards { grid-template-columns: minmax(0, 1fr); }
  .btn-group { flex-direction: column; }
  .btn-group .btn { width: 100%; }

  .insight-card .media, .product-card .media { height: 240px; }
  .project-card.feature { min-height: 300px; }
  .media-tall, .media-mid { height: 200px; }
  .logo-tile { width: 156px; height: 100px; padding: 14px; }
  .service-card .service-name { font-size: 18px; letter-spacing: 1.4px; }
  .service-list a { line-height: 40px; font-size: 16px; }
  .footer-brand .footer-logo img, .site-footer .footer-logo img { height: 34px; }
  .breadcrumb ol { font-size: 12px; }
}

/* ------------------------------------------------------ Touch + motion */
/* Tap targets: every control at least 44×44 on touch */
@media (hover: none) {
  .main-nav a, .footer-nav .footer-link, .service-list a, .sector-item { min-height: 44px; }
  .header-aside a { padding: var(--space-2) 6px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  .hero-slide { transform: none !important; }
  .marquee-track, .logo-track { animation: none !important; }
}
