/* ==========================================================================
   Kutchina / Gita Enterprise - Elementor-built site header & footer
   Paired with kmodu-header-footer.php
   ========================================================================== */

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.kmodu-topbar{
  background:var(--km-brand-dark, #12455F) !important;
  padding:0 !important;
}
.kmodu-topbar .km-bar{
  max-width:1240px;
  margin:0 auto;
  padding:9px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  color:rgba(255,255,255,.82);
  font-size:13.5px;
  line-height:1.4;
}
.kmodu-topbar a{ color:rgba(255,255,255,.92) !important; text-decoration:none; }
.kmodu-topbar a:hover{ color:#fff !important; text-decoration:underline; }
.kmodu-topbar .km-bar-right{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.kmodu-topbar .km-sep{ opacity:.4; }

/* pinned to top on scroll */
.kmodu-site-header{
  position:-webkit-sticky;
  position:sticky;
  top:0;
  z-index:300;
}
body.km-stuck .kmodu-site-header{ box-shadow:0 4px 20px rgba(16,35,45,.12); }
body.km-stuck .kmodu-topbar{
  max-height:0;
  padding:0 !important;
  overflow:hidden;
  opacity:0;
}
.kmodu-topbar{
  max-height:60px;
  opacity:1;
  transition:max-height .22s ease, opacity .18s ease, padding .22s ease;
}
body.km-stuck .kmodu-header .km-bar{ padding-top:8px; padding-bottom:8px; }
body.km-stuck .kmodu-header .km-logo img{ max-height:42px; }
.kmodu-header .km-bar,
.kmodu-header .km-logo img{ transition:padding .2s ease, max-height .2s ease; }

/* admin bar must not cover the pinned header */
body.admin-bar .kmodu-site-header{ top:32px; }
@media (max-width:782px){ body.admin-bar .kmodu-site-header{ top:46px; } }

/* back to top */
.km-to-top{
  position:fixed;
  right:22px;
  bottom:104px;
  width:46px; height:46px;
  border-radius:50%;
  border:0;
  background:var(--km-brand, #1B5D7F);
  color:#fff;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(16,35,45,.28);
  opacity:0; visibility:hidden;
  transform:translateY(10px);
  transition:.2s ease;
  z-index:900;
}
.km-to-top svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.km-to-top:hover{ background:var(--km-accent, #DC7000); }
body.km-scrolled .km-to-top{ opacity:1; visibility:visible; transform:translateY(0); }
@media (max-width:782px){
  .km-to-top{ right:16px; bottom:88px; width:42px; height:42px; }
}
@media (prefers-reduced-motion:reduce){
  .kmodu-topbar, .km-to-top, .kmodu-drawer{ transition:none; }
}

.kmodu-header{
  background:#fff !important;
  border-bottom:1px solid var(--km-line, #E3EAEE);
  padding:0 !important;
  position:relative;
  z-index:60;
}
.kmodu-header .km-bar{
  max-width:1240px;
  margin:0 auto;
  padding:12px 22px;
  display:flex;
  align-items:center;
  gap:22px;
}
.kmodu-header .km-logo{ flex:0 0 auto; display:flex; align-items:center; }
.kmodu-header .km-logo img{ max-height:52px; width:auto; display:block; }

.kmodu-header .km-nav{ flex:1 1 auto; display:flex; justify-content:center; }
.kmodu-header .km-actions{ flex:0 0 auto; display:flex; align-items:center; gap:12px; }

.km-icon-btn{
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid var(--km-line, #E3EAEE);
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--km-brand-dark, #12455F) !important;
  text-decoration:none !important;
  position:relative;
  transition:.16s ease;
  background:#fff;
}
.km-icon-btn:hover{ border-color:var(--km-brand, #1B5D7F); background:var(--km-brand-soft, #EAF2F6); }
.km-icon-btn svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.km-icon-btn .km-count{
  position:absolute; top:-4px; right:-4px;
  min-width:18px; height:18px; padding:0 5px;
  border-radius:99px;
  background:var(--km-accent, #DC7000);
  color:#fff; font-size:11px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.kmodu-header .km-btn{ padding:12px 20px; font-size:14.5px; }

/* main menu */
.km-menu, .km-menu ul{ list-style:none; margin:0; padding:0; }
.km-menu{ display:flex; align-items:center; gap:2px; }
.km-menu li{ position:relative; margin:0; }
.km-menu > li > a{
  display:block;
  padding:12px 13px;
  color:#1F3038 !important;
  font-size:15px;
  font-weight:600;
  text-decoration:none !important;
  border-radius:8px;
  white-space:nowrap;
  transition:.14s ease;
}
.km-menu > li > a:hover,
.km-menu > li.current-menu-item > a,
.km-menu > li.current-menu-ancestor > a{
  color:var(--km-brand, #1B5D7F) !important;
  background:var(--km-brand-soft, #EAF2F6);
}
.km-menu > li.menu-item-has-children > a::after{
  content:"";
  display:inline-block;
  width:6px; height:6px;
  margin-left:7px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
  opacity:.6;
}
.km-menu .sub-menu{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  min-width:268px;
  background:#fff;
  border:1px solid var(--km-line, #E3EAEE);
  border-radius:12px;
  box-shadow:0 12px 34px rgba(16,35,45,.14);
  padding:8px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:.16s ease;
  z-index:80;
}
.km-menu li:hover > .sub-menu,
.km-menu li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.km-menu .sub-menu a{
  display:block;
  padding:10px 13px;
  border-radius:8px;
  color:#2A3B44 !important;
  font-size:14.5px;
  font-weight:500;
  text-decoration:none !important;
}
.km-menu .sub-menu a:hover{ background:var(--km-brand-soft, #EAF2F6); color:var(--km-brand, #1B5D7F) !important; }
.km-menu .sub-menu li.current-menu-item > a{ color:var(--km-brand, #1B5D7F) !important; font-weight:600; }

/* burger + mobile drawer */
.km-burger{ display:none; }
.kmodu-drawer{
  position:fixed; inset:0 auto 0 0;
  width:min(88vw, 340px);
  background:#fff;
  z-index:1200;
  transform:translateX(-102%);
  transition:transform .24s ease;
  overflow-y:auto;
  box-shadow:0 0 40px rgba(0,0,0,.22);
  padding:18px;
}
body.km-drawer-open .kmodu-drawer{ transform:translateX(0); }
.km-drawer-backdrop{
  position:fixed; inset:0;
  background:rgba(8,38,54,.5);
  z-index:1100;
  opacity:0; visibility:hidden;
  transition:.22s ease;
}
body.km-drawer-open .km-drawer-backdrop{ opacity:1; visibility:visible; }
.kmodu-drawer .km-drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:14px; margin-bottom:10px;
  border-bottom:1px solid var(--km-line, #E3EAEE);
}
.kmodu-drawer .km-drawer-head img{ max-height:42px; width:auto; }
.km-drawer-close{
  width:36px; height:36px; border-radius:50%;
  border:1px solid var(--km-line, #E3EAEE);
  background:#fff; cursor:pointer;
  font-size:20px; line-height:1; color:#2A3B44;
}
.kmodu-drawer .km-menu{ display:block; }
.kmodu-drawer .km-menu > li > a{ padding:12px 10px; font-size:15.5px; }
.kmodu-drawer .km-menu .sub-menu{
  position:static; opacity:1; visibility:visible; transform:none;
  box-shadow:none; border:0; border-left:2px solid var(--km-line, #E3EAEE);
  border-radius:0; margin:0 0 8px 12px; padding:0 0 0 8px;
  display:none;
}
.kmodu-drawer .km-menu li.km-open > .sub-menu{ display:block; }
.kmodu-drawer .km-menu li.menu-item-has-children > a::after{ float:right; margin-top:7px; }
.kmodu-drawer .km-menu li.km-open > a::after{ transform:translateY(2px) rotate(-135deg); }
.kmodu-drawer .km-drawer-cta{ margin-top:16px; display:grid; gap:9px; }
.kmodu-drawer .km-drawer-cta .km-btn{ width:100%; }
.kmodu-drawer .km-btn-ghost{ color:var(--km-brand, #1B5D7F) !important; border-color:var(--km-brand, #1B5D7F); background:#fff; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.kmodu-footer{
  background:#0E3A4F !important;
  padding:52px 22px 0 !important;
  color:rgba(255,255,255,.74);
}
.kmodu-footer .km-foot{
  max-width:1240px;
  margin:0 auto;
  display:grid;
  gap:34px;
  grid-template-columns:1.5fr 1fr 1fr 1.3fr;
}
.kmodu-footer h3{
  color:#fff;
  font-size:15px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin:0 0 16px;
}
.kmodu-footer p{ margin:0 0 12px; font-size:14.5px; line-height:1.7; color:rgba(255,255,255,.74); }
.kmodu-footer ul{ list-style:none; margin:0; padding:0; }
.kmodu-footer li{ margin:0 0 9px; padding:0; }
.kmodu-footer li::before{ display:none !important; }
.kmodu-footer a{ color:rgba(255,255,255,.78) !important; text-decoration:none; font-size:14.5px; }
.kmodu-footer a:hover{ color:#fff !important; text-decoration:underline; }
.kmodu-footer .km-foot-brand img{ max-height:54px; width:auto; background:#fff; padding:7px 10px; border-radius:8px; margin-bottom:14px; }
.kmodu-footer .km-foot-contact{ margin-top:14px; }
.kmodu-footer .km-foot-contact a{ color:#fff !important; font-weight:600; font-size:16px; }
.kmodu-footer .km-addr{
  border-left:2px solid var(--km-accent, #DC7000);
  padding-left:14px;
  margin-bottom:18px;
}
.kmodu-footer .km-addr strong{ color:#fff; display:block; margin-bottom:4px; font-size:14.5px; }
.kmodu-footer .km-social{ display:flex; gap:9px; margin-top:16px; }
.kmodu-footer .km-social a{
  width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,.10);
  display:inline-flex; align-items:center; justify-content:center;
}
.kmodu-footer .km-social a:hover{ background:var(--km-accent, #DC7000); }
.kmodu-footer .km-social svg{ width:17px; height:17px; fill:#fff; }

.kmodu-footer .km-foot-bottom{
  max-width:1240px;
  margin:40px auto 0;
  padding:18px 0 22px;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex; flex-wrap:wrap; gap:10px 22px;
  align-items:center; justify-content:space-between;
  font-size:13.5px;
}
.kmodu-footer .km-foot-bottom nav{ display:flex; flex-wrap:wrap; gap:8px 18px; }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width:1200px){
  .kmodu-header .km-nav{ display:none; }
  .km-burger{
    display:inline-flex;
    width:42px; height:42px;
    align-items:center; justify-content:center;
    border:1px solid var(--km-line, #E3EAEE);
    border-radius:10px; background:#fff; cursor:pointer;
    color:var(--km-brand-dark, #12455F);
  }
  .km-burger svg{ width:21px; height:21px; stroke:currentColor; stroke-width:2; }
  .kmodu-header .km-bar{ gap:12px; }
  .kmodu-header .km-logo{ flex:1 1 auto; }
}
@media (max-width:900px){
  .kmodu-footer .km-foot{ grid-template-columns:1fr 1fr; gap:28px; }
}
@media (max-width:782px){
  .kmodu-topbar .km-bar{ font-size:12.5px; padding:8px 16px; justify-content:center; }
  .kmodu-topbar .km-bar-left{ display:none; }
  .kmodu-topbar .km-bar-right{ gap:14px; justify-content:center; }
  .kmodu-header .km-bar{ padding:10px 16px; }
  .kmodu-header .km-logo img{ max-height:42px; }
  .kmodu-header .km-btn{ display:none; }
  .kmodu-footer{ padding:40px 18px 0 !important; }
  .kmodu-footer .km-foot{ grid-template-columns:1fr; gap:26px; }
  .kmodu-footer .km-foot-bottom{ justify-content:center; text-align:center; }
}
