@charset "UTF-8";
/* ==========================================================================
   Kwality Infosolution — responsive layer
   Breakpoints follow the reference theme (Bootstrap-3 style: 1200/992/768/480)
   and are verified at 320/375/414/768/1024/1366/1440/1920.
   The mobile layout reproduces the reference's stacking, not a new design.
   ========================================================================== */

/* ---------- ≥1600px: keep the container centred, nothing stretches ------- */
@media (min-width:1600px){
  .nav-inner{padding:0 120px}
}

/* ---------- ≤1366px ----------------------------------------------------- */
@media (max-width:1366px){
  :root{--gutter:60px}
  .hero-content{padding:60px 45px}
  .hero-boxes{gap:38px 30px}
  .process-ring{width:184px;height:184px}
  .process-inner{width:146px;height:146px}
}

/* ---------- ≤1199px: tablets landscape ---------------------------------- */
@media (max-width:1199px){
  :root{--gutter:40px}
  h1{font-size:38px}
  h2{font-size:34px}
  h3{font-size:30px}
  h4{font-size:26px}
  h5{font-size:22px}
  .section-title h2{font-size:38px}
  .page-banner-title{font-size:42px}

  .header-contact{gap:40px}
  .primary-nav > li > a{--nav-pad-x:14px;font-size:13px}
  .footer-contact-row{grid-template-columns:1.5fr 1fr 1.5fr;gap:24px 34px}

  .hero{min-height:0;grid-template-columns:1fr 1fr}
  .hero-tagline{font-size:34px}
  .hero-boxes{grid-template-columns:1fr;gap:28px}

  .tabs-vertical{grid-template-columns:260px 1fr;gap:36px}
  .process-grid{grid-template-columns:repeat(2,1fr);gap:40px}
  .products-grid{grid-template-columns:repeat(2,1fr)}
  .products-mid{grid-column:1 / -1;order:-1}
  .alarm-panel{max-width:100%;margin-left:0}
  .interests{grid-template-columns:repeat(2,1fr)}
  .testi-wrap{grid-template-columns:1fr;gap:40px}
  .testi-thumbs{border-left:0;padding-left:0;max-width:100%}
  .clients-grid{grid-template-columns:repeat(3,1fr)}
  .counters,.team-grid{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:repeat(2,1fr)}
  .card-grid.cols-4{grid-template-columns:repeat(2,1fr)}
  .card-grid.cols-3{grid-template-columns:repeat(2,1fr)}
}

/* ---------- ≤991px: mobile navigation takes over ------------------------- */
@media (max-width:991px){
  .header-top-inner{padding-block:12px;gap:24px}
  .site-logo img.logo-img{width:160px;height:46px}
  .header-contact{gap:26px}
  .contact-info,.contact-info a:not(.ci-icon){font-size:13px}
  .contact-info{line-height:20px}
  .contact-info h6{display:none}

  .nav-inner{min-height:58px;padding:0 15px;gap:10px}
  .nav-toggle{display:inline-flex;align-items:center}
  .search-toggle{margin-left:auto}

  /* Off-canvas menu, matching the reference's slide-in panel */
  .main-nav{
    position:fixed;top:0;left:0;bottom:0;width:300px;max-width:85vw;
    background:var(--dark-bg);z-index:950;padding:70px 0 30px;
    transform:translateX(-100%);transition:transform .35s ease;
    overflow-y:auto;visibility:hidden;
  }
  body.nav-open .main-nav{transform:none;visibility:visible}
  /* Dimmer sits BELOW the panel and must never swallow its clicks. The panel
     creates its own stacking context, so the overlay also needs an explicit
     lower z-index than .main-nav (950). */
  body.nav-open::after{
    content:"";position:fixed;inset:0;background:rgba(0,0,0,.55);
    z-index:930;pointer-events:none;
  }
  /* .site-header has z-index:500, which traps .main-nav's z-index:950 inside
     its stacking context — without this the dimmer paints OVER the panel.
     Lift the header above the dimmer for as long as the menu is open. */
  body.nav-open .site-header{z-index:960}
  body.nav-open{overflow:hidden}
  .primary-nav{display:block;width:auto}
  .primary-nav > li{border-bottom:1px solid rgba(255,255,255,.08)}
  .primary-nav > li > a{padding:14px 22px;font-size:14px}
  .primary-nav > li:first-child > a{padding-left:22px}
  .primary-nav > li:last-child > a{padding-right:22px}
  .primary-nav > li > a::after{display:none}

  .primary-nav > li.has-children{position:relative}
  .submenu-toggle{
    display:flex;align-items:center;justify-content:center;
    position:absolute;right:0;top:0;width:52px;height:50px;color:#fff;
  }
  .submenu-toggle .ico{transition:transform .3s ease}
  .primary-nav > li.submenu-open > .submenu-toggle .ico{transform:rotate(90deg)}

  .sub-menu{
    position:static;opacity:1;visibility:visible;pointer-events:auto;transform:none;
    box-shadow:none;background:rgba(0,0,0,.25);padding:0;
    max-height:0;overflow:hidden;transition:max-height .35s ease;
  }
  .primary-nav > li:hover > .sub-menu{max-height:0}
  .primary-nav > li.submenu-open > .sub-menu{max-height:640px}
  .sub-menu a{padding:12px 34px;font-size:13px}

  .nav-close{
    position:absolute;top:16px;right:16px;color:#fff;font-size:22px;
    display:inline-flex;
  }

  .search-panel{padding:14px 15px}

  .page-banner{min-height:220px}
  .page-banner-title{font-size:34px}

  .hero{grid-template-columns:1fr}
  .hero-media{min-height:320px}
  .hero-content{padding:45px 22px}
  .hero-boxes{grid-template-columns:repeat(2,1fr)}

  .tabs-vertical{grid-template-columns:1fr;gap:26px}
  .tabs-nav{padding:6px 0}

  .section,.features,.solutions,.clients{padding:60px 0}
  .products{padding:60px 0 70px}
  .process{padding:60px 20px 40px}
  .needs{padding:55px 20px 65px}
  .cta-band{padding:60px 20px}
  .alarm{padding:60px 20px 0;min-height:0}
  .page-section{padding:60px 0}
  .service-intro{padding-bottom:28px}
  .service-blocks{padding-top:36px}

  .footer-widgets{grid-template-columns:1fr 1fr;gap:36px 30px;padding:50px 15px 24px}
  .footer-contact-row{grid-template-columns:1fr;gap:18px;padding:24px 15px 40px}
  .cta-inner{flex-direction:column;align-items:flex-start}

  .side-tabs{top:auto;bottom:70px}
  .side-tab{padding:14px 9px;font-size:12px}
}

/* ---------- ≤767px: phones landscape / small tablets -------------------- */
@media (max-width:767px){
  body{font-size:15px;line-height:25px}

  /* Header: logo on the left, tappable mail/phone icons on the right.
     The full addresses stay available in the footer and on /contact/. */
  .header-top-inner{padding-block:8px;gap:12px}
  .site-logo img.logo-img{width:140px;height:40px}
  .header-contact{margin-left:auto;gap:10px;align-items:center}
  .contact-info h6,.contact-info a:not(.ci-icon){display:none}
  .contact-info .ci-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;margin:0;font-size:16px;
    border:1px solid var(--border-color);
  }
  .nav-inner{min-height:52px}

  /* Right-edge tabs overlap content on a phone: dock them to the bottom. */
  body{padding-bottom:46px}
  .side-tabs{top:auto;right:0;left:0;bottom:0;flex-direction:row;gap:0}
  .side-tab{
    writing-mode:horizontal-tb;flex:1 1 50%;justify-content:center;
    padding:13px 8px;font-size:12px;letter-spacing:.3px;
  }
  .side-tab .ico{display:inline-block;font-size:13px}
  .cookie-bar{bottom:46px}
  .to-top{bottom:58px;right:14px}
  h1{font-size:32px}
  h2{font-size:28px}
  h3{font-size:26px}
  h4{font-size:22px}
  h5{font-size:20px}
  h6{font-size:18px}
  .section-title h2{font-size:30px;padding-bottom:16px}
  .section-title{margin-bottom:36px}

  .hero-tagline{font-size:28px}
  .hero-intro{font-size:15px;margin-bottom:36px}
  .hero-boxes{grid-template-columns:1fr;gap:26px}

  .process-grid{grid-template-columns:1fr;gap:32px}
  .process-note{font-size:20px}
  .products-grid{grid-template-columns:1fr}
  .post-grid{grid-template-columns:1fr;gap:38px}
  .form-grid{grid-template-columns:1fr;gap:16px}
  .interests{grid-template-columns:1fr;gap:12px}
  .form-actions{justify-content:stretch}
  .form-actions .btn{width:100%}
  .clients-grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .counters,.team-grid,.contact-grid{grid-template-columns:1fr}
  .card-grid.cols-2,.card-grid.cols-3,.card-grid.cols-4{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr;gap:34px}

  .alarm-panel{padding:32px 24px}
  .alarm-panel h2{font-size:28px}
  .cta-text h2{font-size:28px}
  .testi-card{padding:38px 24px}
  .testi-thumbs{grid-template-columns:repeat(4,1fr);gap:8px}

  /* Timeline collapses to a single left-aligned rail */
  .timeline::before{left:7px}
  .timeline-item{width:100%;left:0 !important;padding:0 0 36px 34px;text-align:left !important}
  .timeline-item::after{left:0 !important;right:auto !important}

  .footer-contact-text{gap:0 14px}
  .footer-contact-text a{white-space:normal}

  .footer-widgets{grid-template-columns:1fr;gap:32px}

  .cookie-inner{flex-direction:column;text-align:center;gap:12px}
  .modal-dialog{padding:30px 22px}

  /* iOS Safari zooms the whole page when a focused field is under 16px. */
  .kis-form input[type=text],.kis-form input[type=email],.kis-form input[type=tel],
  .kis-form textarea,.search-form input,.search-page-form input{font-size:16px}
}

/* ---------- ≤479px: small phones (320 / 375 / 414) ---------------------- */
@media (max-width:479px){
  .container{padding:0 16px}
  h1{font-size:28px}
  h2{font-size:25px}
  .section-title h2{font-size:26px}
  .page-banner-title{font-size:28px}
  .page-banner{min-height:180px}

  .site-logo img.logo-img{width:124px;height:36px}

  .hero-content{padding:36px 18px}
  .hero-tagline{font-size:24px}
  .hero-media{min-height:240px}

  .tabs-nav button{padding:14px 16px;font-size:16px}
  .toggle-head{font-size:17px}
  .tab-panel h3{font-size:24px}
  .tab-panel .tab-sub{font-size:16px}

  .process-ring{width:170px;height:170px}
  .process-inner{width:134px;height:134px}

  .btn{padding:12px 24px;font-size:14px}
  .side-tab{font-size:11px;padding:12px 6px}
  .side-tab .ico{display:none}

  .clients-grid{grid-template-columns:repeat(2,1fr)}
  .client-logo{height:92px;padding:12px}
  .testi-thumbs{grid-template-columns:repeat(4,1fr)}
  .to-top{right:14px;bottom:78px;width:38px;height:38px}
}

/* ---------- Print ------------------------------------------------------- */
@media print{
  .site-header .header-nav,.side-tabs,.cookie-bar,.to-top,.modal{display:none !important}
  body{color:#000;padding-bottom:0}
  a{color:#000;text-decoration:underline}
}

/* ==========================================================================
   Grids introduced with the inner pages (products, security system, blog,
   service detail). Added here so every breakpoint is covered.
   ========================================================================== */
@media (max-width:1199px){
  .woo-grid{grid-template-columns:repeat(3,1fr)}
  .service-benefits{grid-template-columns:repeat(2,1fr)}
  .sys-row{gap:40px}
}

@media (max-width:991px){
  .woo-grid{grid-template-columns:repeat(2,1fr);gap:22px}
  .sys-row{grid-template-columns:1fr;gap:28px;margin-bottom:56px}
  .sys-row:nth-child(even) .sys-media{order:0}
  .blog-grid{grid-template-columns:repeat(2,1fr);gap:34px}
}

@media (max-width:767px){
  .woo-grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .service-benefits{grid-template-columns:1fr}
  .sys-feats{grid-template-columns:1fr}
  .blog-grid{grid-template-columns:1fr;gap:38px}
  .pagination{flex-wrap:wrap}
  .testimonial-by{flex-direction:row}
}

@media (max-width:479px){
  .woo-grid{grid-template-columns:1fr;gap:18px}
  .woo-card img{max-height:180px}
  .sys-row h3{font-size:24px}
  .search-page-form{flex-direction:column}
  .search-page-form .btn{width:100%}
}

/* Company-profile content */
@media (max-width:991px){
  .sys-thumbs{grid-template-columns:repeat(3,1fr)}
  .project{padding:24px}
}
@media (max-width:767px){
  .section-lead{margin:-20px auto 36px;font-size:16px}
  .product-group-head{flex-direction:column;gap:6px}
  .product-group-head h3{font-size:24px}
  .sys-thumbs{grid-template-columns:repeat(2,1fr)}
  .facts-list > div{grid-template-columns:1fr}
  .facts-list dt{padding:10px 16px 4px}
  .facts-list dd{padding:4px 16px 12px}
  .project h3{font-size:24px}
  .project-gallery{grid-template-columns:repeat(2,1fr)}
  .project-gallery img{height:180px}
}

/* Desktop header: centred menu group with even spacing and the search icon
   at the right edge of the container (matches the approved header design). */
@media (min-width:992px){
  .nav-inner{max-width:var(--container);margin:0 auto;padding:0 15px;min-height:96px;gap:20px}
  .main-nav{display:flex;justify-content:center}
  .primary-nav{justify-content:center;width:auto}
  .primary-nav > li > a{font-weight:700;font-style:normal;letter-spacing:.2px}
  .primary-nav > li:first-child > a{padding-left:var(--nav-pad-x)}
  .primary-nav > li:last-child > a{padding-right:var(--nav-pad-x)}
  .primary-nav > li:first-child > a::after{left:var(--nav-pad-x)}
  .primary-nav > li:last-child > a::after{right:var(--nav-pad-x)}
  .search-toggle{margin-left:0}
}
@media (min-width:1200px){
  .primary-nav > li > a{--nav-pad-x:30px}
}
