:root{
  --impor-blue:#003399;
  --impor-gray:#f6f7f9;
  --text:#1a1a1a;
}

html, body { height: 100%; }

body{
  font-family: 'Roboto', sans-serif;
  background:#ffffff;
  color:var(--text);
  margin:0;
  display:flex;
  flex-direction:column;
}

.impor-container{
  max-width:1440px;
  width:100%;
  margin:0 auto;
  padding-left:24px;
  padding-right:24px;
}

.site-header{
  background:#ffffff;
  height:80px;
  display:flex;
  align-items:center;
  border-bottom:1px solid #eee;
}

.site-main{
  padding-top:80px; /* compensate fixed header */
  flex:1;
  min-height:calc(100vh - 80px);
  background:#ffffff;
}

.hero{
  background:var(--impor-blue);
  color:#ffffff;
  padding:84px 0;
}

.mini-hero{
  background:var(--impor-blue);
  color:#ffffff;
  padding:48px 0;
}

.hero h1, .mini-hero h1{
  color:#ffffff;
  margin:0;
  line-height:1.15;
}

.hero p{
  color:#ffffff;
  margin-top:14px;
  margin-bottom:0;
  max-width: 60ch;
}

.breadcrumbs{
  font-size:14px;
  color:#ffffff;
  margin-bottom:8px;
}

.breadcrumbs a{
  color:#ffffff;
  text-decoration:none;
  opacity:.95;
}

.breadcrumbs a:hover{ text-decoration:underline; }

.section{
  padding:56px 0;
}

.section-alt{ background:var(--impor-gray); }
.section-plain{ background:#ffffff; }

.section h2{
  font-size:28px;
  margin-bottom:14px;
}

.section h3{
  font-size:20px;
  margin-top:18px;
  margin-bottom:10px;
}

.tight-top{ padding-top:32px; }
.tight-bottom{ padding-bottom:32px; }

.site-footer{
  background:var(--impor-gray);
  padding:56px 0 28px 0;
}

.site-footer h5{ margin-bottom:14px; }
.site-footer p{ margin-bottom:12px; }
.site-footer a{ color:var(--text); text-decoration:none; }
.site-footer a:hover{ text-decoration:underline; }

.footer-list{
  list-style:none;
  padding:0;
  margin:0;
}
.footer-list li{ margin-bottom:8px; }

.social-icons{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.social-icons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;height:36px;
  border-radius:10px;
  background:#ffffff;
  border:1px solid #e7e7e7;
}
.social-icons svg{ width:18px; height:18px; }

.legal-bar{
  background:#ffffff;
  border-top:1px solid #eaeaea;
  padding:14px 0;
  font-size:14px;
}

.legal-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
}

.btn-impor{
  background:var(--impor-blue);
  color:#ffffff;
  border:1px solid var(--impor-blue);
}
.btn-impor:hover{
  background:#002a80;
  border-color:#002a80;
  color:#ffffff;
}

/* Mobile: keep hero content readable */
@media (max-width: 991.98px){
  .site-header{ height:auto; }
  .site-main{ padding-top:80px; }
  .hero{ padding:64px 0; }
  .mini-hero{ padding:40px 0; }
}



/* === V31 core fixes === */
html, body { background:#ffffff !important; }
/* Force consistent container width */
.impor-container{ max-width:1440px !important; }

/* Footer styling to match V25 (blue #003399 with white text) */
.site-footer, footer.site-footer, footer.footer, .footer-area, .footer { background:#003399 !important; color:#ffffff !important; }
.site-footer a, footer.site-footer a, .footer-area a, .footer a { color:#ffffff !important; }
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer h5, .site-footer h6,
.footer-area h1,.footer-area h2,.footer-area h3,.footer-area h4,.footer-area h5,.footer-area h6 { color:#ffffff !important; }

/* Legal bar under footer (white) */
.legal-bar, .footer-legal, .footer-bottom, .footer-bottom-area { background:#ffffff !important; color:#1a1a1a !important; }
.legal-bar a, .footer-legal a, .footer-bottom a, .footer-bottom-area a { color:#1a1a1a !important; }

/* Mini hero uniform across all pages */
.mini-hero{ padding:65px 0 !important; background:#003399 !important; color:#ffffff !important; }
.mini-hero .breadcrumbs, .mini-hero .breadcrumbs a { color:#ffffff !important; }

/* Home hero buttons */
.hero .btn-primary, .hero a.btn-primary{
  background:#ffffff !important;
  color:#003399 !important;
  border:none !important;
}
.hero .btn-outline-light, .hero a.btn-outline-light{
  border:1px solid #ffffff !important;
  color:#ffffff !important;
}
.hero .btn-primary:hover, .hero a.btn-primary:hover{ background:#e9ecef !important; color:#003399 !important; }
.hero .btn-outline-light:hover, .hero a.btn-outline-light:hover{ background:#ffffff !important; color:#003399 !important; }

/* About page photo + quote */
.about-photo img, .about-portrait img { max-height:160px !important; height:160px !important; width:auto !important; object-fit:cover !important; }
.about-quote, blockquote.about-quote, .quote-italic { font-style:italic !important; }
/* Reduce excessive gaps between blocks */
.section, section { scroll-margin-top:90px; }



/* === V31 rev2 fixes (content preserved) === */
html, body { background:#ffffff !important; }
/* Container 1440px */
.impor-container{ max-width:1440px !important; }
/* Mini hero uniform */
.mini-hero{ padding:65px 0 !important; }
/* Breadcrumbs white */
.mini-hero .breadcrumbs, .mini-hero .breadcrumbs a{ color:#ffffff !important; }
/* Footer text white */
.site-footer, .site-footer *{ color:#ffffff !important; }
.site-footer a{ color:#ffffff !important; }
/* Founder block (V25) */
.founder-img{width:104px;height:104px;object-fit:cover;border-radius:14px;border:1px solid rgba(17,17,17,.12);flex:0 0 auto;}
@media (max-width:575.98px){.founder-img{width:92px;height:92px;}}
.founder-quote{font-style:italic !important;}

/* ===== V35 GLOBAL FIXES ===== */
html,body{background:#ffffff!important;min-height:100%;}
body{display:flex;flex-direction:column;}
.site-main{flex:1;min-height:calc(100vh - 200px);display:flex;flex-direction:column;}
.mini-hero{padding:35px 0!important;}
.mini-hero h1{margin:0;font-weight:700;color:#fff;}
.mini-hero .breadcrumbs,
.mini-hero .breadcrumbs a{color:#fff!important;}
.site-footer{margin-top:auto;}



/* ===== V36 WHITE-ONLY THEME ===== */
.bg-light, .bg-gray, .bg-grey, .section-bg, .gray-bg, .grey-bg,
.card.bg-light, .card.bg-gray, .card.bg-grey, .bg-secondary {
  background-color:#ffffff !important;
}



/* ===== V36 HERO / SPACING ===== */
.mini-hero{
  padding:32px 0 !important;
  margin:0 !important;
}
.mini-hero h1,
.mini-hero .breadcrumbs,
.mini-hero .breadcrumbs a{
  color:#ffffff !important;
}
/* Bring page content closer to mini-hero */
.mini-hero + section,
.mini-hero + main section,
.mini-hero + .section,
.mini-hero + div section{
  padding-top:24px !important;
}
/* Remove big gaps on top of first section */
section.py-5{ padding-top:24px !important; padding-bottom:48px !important; }
section.pt-5{ padding-top:24px !important; }
section.mt-5{ margin-top:0 !important; }

/* Fix mobile extra gap between header and hero/mini-hero */
.hero, .mini-hero{ margin-top:0 !important; }
.site-main{ padding-top:80px !important; }
@media (max-width: 991.98px){
  .site-header{ height:80px; }
  .site-main{ padding-top:80px !important; }
}



/* ===== V37 RESPONSIVE + FIXED HEADER CLEANUP ===== */

/* White-only theme */
.section-alt, .bg-light, .bg-secondary, .bg-gray, .bg-grey, .impor-gray, .gray-bg, .grey-bg {
  background:#ffffff !important;
}

/* Fixed header must be able to expand when mobile menu opens */
.site-header{
  height:auto !important;
  min-height:80px;
  background:#ffffff;
}
.site-header .navbar{ width:100%; padding:12px 0; }
.site-header .navbar-collapse{
  background:#ffffff;
  padding:12px 0;
}

/* Correct offset for fixed header */
.site-main{
  padding-top:80px !important;
}

/* Mini-hero uniform and smaller */
.mini-hero{
  padding:32px 0 !important;
}
.mini-hero h1{
  font-size: clamp(1.4rem, 2.4vw, 2rem);
}

/* Reduce perceived gap on mobile inside hero/mini-hero */
@media (max-width: 991.98px){
  .hero{ padding:56px 0 !important; }
  .mini-hero{ padding:28px 0 !important; }
  .impor-container{ padding-left:16px; padding-right:16px; }
}

/* Ensure maps never overlap footer */
.ratio iframe{ display:block; }




/* ===== V38 CONTACT MAP FIX ===== */
.ratio {
  position: relative !important;
  z-index: 1 !important;
}

.site-footer {
  position: relative !important;
  z-index: 2 !important;
}



/* ===== V39 FULL-HEIGHT (FIXED HEADER) RESPONSIVE STABLE ===== */

/* Fixed header offset */
body{
  padding-top:80px !important;
}

/* Full height push footer without breaking layout */
html, body{
  height:100%;
}
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.site-main{
  flex:1 0 auto;
  min-height:0 !important; /* avoid calc hacks */
  padding-top:0 !important; /* padding handled by body */
}
.site-footer{
  flex-shrink:0;
  position:relative !important;
}

/* Mini hero consistent */
.mini-hero{
  padding:32px 0 !important;
}

/* Mobile navbar: allow full burger content */
.navbar-collapse{
  max-height: calc(100vh - 80px);
  overflow-y:auto;
}

/* Contact map: always visible above footer */
.map-wrapper{
  margin-bottom:24px;
}
.map-wrapper iframe{
  width:100%;
  height:420px;
  border:0;
  display:block;
}

/* Remove any gray alternation */
.bg-light, .bg-secondary, .section-alt, .gray-bg, .grey-bg,
.card.bg-light, .card.bg-secondary{
  background:#ffffff !important;
}


/* ===== V40 NAVBAR CLEAN ===== */
.site-header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:1050;
  background:#ffffff;
}
body{ padding-top:80px !important; }

.navbar-collapse{
  background:#ffffff;
}
@media (max-width: 991.98px){
  .navbar-collapse{
    padding:15px;
  }
}

/* ===== V40 NUMBER BADGES ===== */
.step-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:50%;
  background:#003399;
  color:#fff;
  font-weight:700;
  margin-right:10px;
}

/* ===== V40 FONT SYSTEM ===== */
body{
  font-family: Arial, sans-serif;
  font-size:16px;
  line-height:1.6;
  color:#111;
}
h1{ font-size: clamp(1.6rem,2.5vw,2.2rem); }
h2{ font-size: clamp(1.3rem,2vw,1.7rem); }
h3{ font-size: 1.1rem; }



/* ===== V41 FIXES ===== */

/* White-only site */
.bg-light, .bg-secondary, .section-alt, .gray-bg, .grey-bg,
.card.bg-light, .card.bg-secondary {
  background:#ffffff !important;
}

/* Global font harmony (use Roboto already loaded) */
body{
  font-family: "Roboto", Arial, sans-serif;
  font-size:16px;
  line-height:1.6;
  color:#111;
}
h1,h2,h3,h4,h5,h6{ font-family:"Roboto", Arial, sans-serif; }

/* Mini hero consistent */
.mini-hero{
  padding:32px 0 !important;
}
.mini-hero h1,
.mini-hero .breadcrumbs,
.mini-hero .breadcrumbs a{
  color:#ffffff !important;
}

/* Fixed header offset */
body{ padding-top:80px !important; }

/* Mobile burger menu (full, scrollable, not clipped) */
@media (max-width: 991.98px){
  .site-header .navbar{ position:relative; }
  .site-header .navbar-collapse{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:#ffffff;
    padding:12px 0;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
    max-height: calc(100vh - 80px);
    overflow-y:auto;
    border-top:1px solid rgba(0,0,0,.08);
  }
  .site-header .navbar-nav{ padding:0 12px; }
}

/* Steps numbers as buttons */
.step-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:999px;
  background:#003399;
  color:#ffffff;
  font-weight:700;
  margin-bottom:12px;
}

/* Contact map within 1440 container */
.map-wrapper iframe{
  width:100%;
  height:420px;
  border:0;
  display:block;
  border-radius:16px;
}


/* ===== V42 CONTAINER 1440 UNIFORM ===== */
/* Force all bootstrap containers to align with site container width */
:root{ --impor-container: 1440px; }

.container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl, .impor-container{
  width: 100%;
  max-width: var(--impor-container) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 15px !important;
  padding-right: 15px !important;
}

/* Prevent accidental full-width sections */
.container-fluid{
  padding-left: 15px !important;
  padding-right: 15px !important;
}

/* Keep header/footer aligned */
.site-header .navbar > .container,
.site-header .navbar > .container-fluid,
.site-footer .container,
.site-footer .container-fluid{
  max-width: var(--impor-container) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
