
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Open+Sans:wght@300;400;500;600&display=swap');

.topbar {
  background: #134854;
  padding: 0.45rem 0;
  font-size: 0.8rem;
  color: rgba(255,255,255,0.82);
}
.topbar .container { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:0.5rem; }
.topbar-left, .topbar-right { display:flex; align-items:center; gap:1.25rem; }
.topbar a { display:inline-flex; align-items:center; gap:0.4rem; color:rgba(255,255,255,0.82); text-decoration:none; transition:color 0.2s; }
.topbar a:hover { color:#7DC942; }
.topbar-right { font-size:0.75rem; font-family:'Montserrat',sans-serif; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:rgba(255,255,255,0.55); }

.site-header { background:#fff; position:sticky; top:0; z-index:1000; box-shadow:0 2px 20px rgba(26,95,110,0.09); transition:box-shadow 0.3s; }
.site-header.scrolled { box-shadow:0 4px 28px rgba(26,95,110,0.16); }
.header-inner { display:flex; align-items:center; justify-content:space-between; padding-block:0.85rem; gap:1.5rem; }

.site-logo { display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
.site-logo img { width: 120px; display:block; }
.logo-placeholder { display:flex; flex-direction:column; line-height:1.1; }
.logo-placeholder .logo-main { font-family:'Montserrat',sans-serif; font-size:1.2rem; font-weight:800; color:#1A5F6E; letter-spacing:-0.02em; }
.logo-placeholder .logo-sub { font-family:'Open Sans',sans-serif; font-size:0.58rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:#7DC942; }

.main-nav { display:flex; align-items:center; }
.nav-list { display:flex; align-items:center; gap:0; list-style:none; margin:0; padding:0; }
.nav-item { position:relative; }
.nav-link { display:flex; align-items:center; gap:0.3rem; padding:0.55rem 0.8rem; font-family:'Montserrat',sans-serif; font-size:0.8rem; font-weight:600; color:#1A1A1A; text-decoration:none; border-radius:4px; white-space:nowrap; transition:color 0.2s, background 0.2s; letter-spacing:0.01em; }
.nav-link:hover, .nav-link.active { color:#1A5F6E; background:rgba(26,95,110,0.07); }
.nav-link svg { flex-shrink:0; transition:transform 0.2s; }

.has-dropdown { position:relative; }
.dropdown { position:absolute; top:calc(100% + 6px); left:0; min-width:240px; background:#fff; border-radius:8px; box-shadow:0 8px 36px rgba(26,95,110,0.15); border:1px solid rgba(26,95,110,0.09); opacity:0; visibility:hidden; transform:translateY(-8px); transition:all 0.22s ease; padding:0.5rem 0; z-index:200; }
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.has-dropdown:hover .nav-link svg { transform:rotate(180deg); }
.dropdown-item { display:block; padding:0.6rem 1.25rem; font-family:'Open Sans',sans-serif; font-size:0.84rem; font-weight:500; color:#2C2C2C; text-decoration:none; transition:color 0.2s, background 0.2s; border-left:3px solid transparent; }
.dropdown-item:hover { color:#1A5F6E; background:rgba(26,95,110,0.05); border-left-color:#7DC942; }
.dropdown-divider { height:1px; background:#EDEDED; margin:0.4rem 1.25rem; }

.header-cta { display:flex; align-items:center; gap:1rem; flex-shrink:0; }
.header-phone { display:flex; align-items:center; gap:0.4rem; font-family:'Montserrat',sans-serif; font-size:0.88rem; font-weight:700; color:#1A5F6E; text-decoration:none; white-space:nowrap; transition:color 0.2s; }
.header-phone:hover { color:#7DC942; }
.header-quote-btn { display:inline-flex; align-items:center; gap:0.4rem; padding:0.65rem 1.35rem; background:#7DC942; color:#fff; border-radius:4px; font-family:'Montserrat',sans-serif; font-size:0.77rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; text-decoration:none; white-space:nowrap; transition:background 0.2s, transform 0.2s, box-shadow 0.2s; }
.header-quote-btn:hover { background:#6ab836; transform:translateY(-1px); box-shadow:0 4px 16px rgba(125,201,66,0.4); }

.nav-toggle { display:none; flex-direction:column; gap:5px; padding:0.4rem; background:none; border:none; cursor:pointer; border-radius:4px; transition:background 0.2s; }
.nav-toggle:hover { background:rgba(26,95,110,0.07); }
.nav-toggle span { display:block; width:24px; height:2px; background:#1A5F6E; border-radius:2px; transition:all 0.3s; transform-origin:center; }
.nav-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.nav-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

.mobile-nav { display:none; position:fixed; top:0; right:0; bottom:0; width:min(320px,100vw); background:#fff; z-index:9999; box-shadow:-8px 0 40px rgba(26,95,110,0.18); overflow-y:auto; transform:translateX(100%); transition:transform 0.35s cubic-bezier(0.4,0,0.2,1); flex-direction:column; }
.mobile-nav.open { transform:translateX(0); }
.mobile-nav-overlay { display:none; position:fixed; inset:0; background:rgba(26,95,110,0.45); z-index:9998; opacity:0; transition:opacity 0.35s; }
.mobile-nav-overlay.open { opacity:1; }
.mobile-nav-header { display:flex; align-items:center; justify-content:space-between; padding:1.25rem 1.5rem; border-bottom:1px solid #EDEDED; }
.mobile-close-btn { background:none; border:none; cursor:pointer; padding:0.4rem; color:#1A5F6E; border-radius:4px; display:flex; align-items:center; }
.mobile-close-btn:hover { background:rgba(26,95,110,0.07); }
.mobile-nav-body { padding:0.75rem 0; flex:1; }
.mobile-nav-list { list-style:none; margin:0; padding:0; }
.mobile-nav-list > li > a { display:flex; align-items:center; justify-content:space-between; padding:0.85rem 1.5rem; font-family:'Montserrat',sans-serif; font-size:0.9rem; font-weight:600; color:#1A1A1A; text-decoration:none; transition:color 0.2s, background 0.2s; }
.mobile-nav-list > li > a:hover { color:#1A5F6E; background:rgba(26,95,110,0.05); }
.mobile-subnav { list-style:none; margin:0; padding:0; background:#F4FAF4; }
.mobile-subnav li a { display:block; padding:0.65rem 1.5rem 0.65rem 2.25rem; font-family:'Open Sans',sans-serif; font-size:0.84rem; color:#444; text-decoration:none; border-left:3px solid transparent; transition:all 0.2s; }
.mobile-subnav li a:hover { color:#1A5F6E; border-left-color:#7DC942; background:rgba(26,95,110,0.04); }
.mobile-nav-footer { padding:1.25rem 1.5rem; border-top:1px solid #EDEDED; display:flex; flex-direction:column; gap:0.75rem; }
.mobile-nav-contact { display:flex; align-items:center; gap:0.5rem; font-family:'Open Sans',sans-serif; font-size:0.85rem; color:#444; text-decoration:none; }
.mobile-nav-contact svg { color:#1A5F6E; flex-shrink:0; }
.mobile-quote-btn { display:flex; align-items:center; justify-content:center; padding:0.85rem; background:#7DC942; color:#fff; border-radius:4px; font-family:'Montserrat',sans-serif; font-size:0.85rem; font-weight:700; text-decoration:none; text-align:center; letter-spacing:0.04em; text-transform:uppercase; transition:background 0.2s; }
.mobile-quote-btn:hover { background:#6ab836; }

@media (max-width:1024px) { .header-phone { display:none; } }
@media (max-width:860px) { .main-nav { display:none; } .nav-toggle { display:flex; } .mobile-nav { display:flex; } .mobile-nav-overlay.open {display: block;} .topbar-left { display:none; } }
@media (max-width:480px) { .header-quote-btn { display:none; } .topbar { display:none; } }
