@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');

:root {
  --green-900: #0a2818;
  --green-800: #0f3019;
  --green-700: #1a4d2e;
  --green-600: #2d7a4a;
  --green-500: #4a9d6e;
  --green-400: #6bc48f;
  --green-100: #eef7f2;
  --green-50:  #f5faf7;
  --white:     #ffffff;
  --gray-50:   #f8f9f8;
  --gray-100:  #f0f2f1;
  --gray-200:  #e2e6e3;
  --gray-300:  #c8d0ca;
  --gray-400:  #9aab9e;
  --gray-500:  #6b7c6f;
  --gray-700:  #374840;
  --gray-900:  #1e2a23;
  --font:      'Inter', system-ui, sans-serif;
  --font-h:    'Outfit', 'Inter', sans-serif;
  --max-w:     1280px;
  --hh:        76px;
  --r-sm:      6px;
  --r-md:      12px;
  --r-lg:      20px;
  --r-xl:      28px;
  --sh-sm:     0 1px 4px rgba(10,40,24,.07);
  --sh-md:     0 4px 16px rgba(10,40,24,.1);
  --sh-lg:     0 12px 40px rgba(10,40,24,.14);
  --tr:        .28s cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font); color: var(--gray-700); background: var(--white); line-height: 1.7; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
input, textarea, select, button { font-family: var(--font); }

/* TYPOGRAPHY */
h1,h2,h3,h4,h5 { font-family: var(--font-h); line-height: 1.18; color: var(--green-800); }
h1 { font-size: clamp(2rem,4.5vw,3.4rem); font-weight: 800; }
h2 { font-size: clamp(1.6rem,3vw,2.4rem); font-weight: 700; }
h3 { font-size: clamp(1.15rem,2vw,1.45rem); font-weight: 600; }
h4 { font-size: 1.05rem; font-weight: 600; }

/* LAYOUT */
.wrap { max-width: var(--max-w); margin: 0 auto; padding: 0 28px; }
.section { padding: 96px 0; }
.section-sm { padding: 64px 0; }
.section-alt { background: var(--gray-50); }
.section-dark { background: var(--green-800); }
.grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: 32px; }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.grid-auto { display: grid; grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); gap: 28px; }

/* SECTION HEADER */
.sh { text-align: center; margin-bottom: 56px; }
.sh .label { display: inline-block; font-size: .76rem; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: var(--green-500); margin-bottom: 14px; }
.sh h2 { margin-bottom: 14px; }
.sh p { color: var(--gray-500); max-width: 620px; margin: 0 auto; font-size: 1.04rem; }

/* BUTTONS */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 30px; border-radius: var(--r-sm); font-size: .92rem; font-weight: 600; cursor: pointer; border: 2px solid transparent; transition: var(--tr); white-space: nowrap; }
.btn-primary { background: var(--green-700); color: var(--white); border-color: var(--green-700); }
.btn-primary:hover { background: var(--green-600); border-color: var(--green-600); transform: translateY(-2px); box-shadow: var(--sh-md); }
.btn-outline { background: transparent; color: var(--green-700); border-color: var(--green-700); }
.btn-outline:hover { background: var(--green-700); color: var(--white); }
.btn-white { background: var(--white); color: var(--green-700); border-color: var(--white); }
.btn-white:hover { background: var(--green-50); transform: translateY(-2px); }
.btn-ghost { background: rgba(255,255,255,.1); color: var(--white); border-color: rgba(255,255,255,.25); }
.btn-ghost:hover { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.45); }
.btn-sm { padding: 9px 20px; font-size: .82rem; }
.btn-lg { padding: 16px 38px; font-size: 1rem; }
.btn-icon { width: 40px; height: 40px; padding: 0; justify-content: center; border-radius: 50%; }

/* HEADER */
header.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 900; height: var(--hh); background: transparent; border-bottom: 1px solid transparent; transition: all .3s ease; }
header.site-header.scrolled { background: rgba(255,255,255,.97); backdrop-filter: blur(14px); box-shadow: var(--sh-sm); height: 66px; border-bottom: 1px solid var(--gray-200); }

/* Transparent header text colors (only when not scrolled) */
body:has(.home-hero, .page-hero) header.site-header:not(.scrolled) .main-nav > li > a { color: #fff; background: transparent; }
body:has(.home-hero, .page-hero) header.site-header:not(.scrolled) .main-nav > li > a:hover,
body:has(.home-hero, .page-hero) header.site-header:not(.scrolled) .main-nav > li.active > a { color: #fff; background: rgba(255,255,255,0.12); backdrop-filter: blur(4px); }
body:has(.home-hero, .page-hero) header.site-header:not(.scrolled) .hamburger span { background: #fff; }
body:has(.home-hero, .page-hero) header.site-header:not(.scrolled) .logo img { filter: brightness(0) invert(1) !important; }

/* Transparent header button styling */
body:has(.home-hero, .page-hero) header.site-header:not(.scrolled) .btn-primary {
  background: var(--white);
  color: var(--green-800);
  border-color: var(--white);
  font-weight: 600;
}
body:has(.home-hero, .page-hero) header.site-header:not(.scrolled) .btn-primary:hover {
  background: rgba(255,255,255,0.9);
  transform: translateY(-2px);
}

/* Fallback for pages without dark hero */
body:not(:has(.home-hero, .page-hero)) header.site-header:not(.scrolled) { background: rgba(255,255,255,.97); border-bottom: 1px solid var(--gray-200); }
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 16px; }
.logo { flex-shrink: 0; display: flex; align-items: center; line-height: 0; }
.logo img { height: 42px; width: auto; max-width: 160px; object-fit: contain; transition: var(--tr); display: block; }
.site-header.scrolled .logo img { height: 34px; }

/* DESKTOP NAV — explicit flex on desktop */
.main-nav { display: flex; align-items: center; gap: 4px; list-style: none; }
.header-cta-desktop { display: flex; gap: 10px; align-items: center; }
.main-nav > li { position: relative; }
.main-nav > li > a { display: flex; align-items: center; gap: 5px; padding: 8px 14px; font-size: .88rem; font-weight: 500; color: var(--gray-700); border-radius: var(--r-sm); transition: var(--tr); }
.main-nav > li > a:hover, .main-nav > li.active > a { color: var(--green-700); background: var(--green-50); }
.main-nav > li > a .chev { font-size: .65rem; margin-top: 1px; }
.dropdown { position: absolute; top: calc(100% + 6px); left: 0; min-width: 240px; background: var(--white); border-radius: var(--r-md); box-shadow: var(--sh-lg); border: 1px solid var(--gray-200); padding: 6px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--tr); z-index: 200; }
.main-nav > li:hover .dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown a { display: flex; align-items: center; gap: 10px; padding: 9px 14px; font-size: .86rem; color: var(--gray-700); border-radius: 8px; transition: var(--tr); }
.dropdown a:hover { background: var(--green-50); color: var(--green-700); }
.dropdown a .di { font-size: 1rem; }
.dropdown-divider { height: 1px; background: var(--gray-200); margin: 4px 0; }
.hamburger { display: none; flex-direction: column; justify-content: center; gap: 5px; cursor: pointer; padding: 10px; background: none; border: none; z-index: 930; position: relative; }
.hamburger span { display: block; width: 22px; height: 2px; background: var(--gray-700); border-radius: 2px; transition: transform .3s ease, opacity .3s ease, width .3s ease; transform-origin: center; }
.hamburger.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.is-active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* MOBILE NAV */
.mob-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 910; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, visibility .3s ease; }
.mob-overlay.open { opacity: 1; visibility: visible; pointer-events: all; }
.mob-nav { position: fixed; top: 0; right: -105%; width: min(340px,92vw); height: 100%; background: var(--white); z-index: 925; overflow-y: auto; transition: right .35s cubic-bezier(.4,0,.2,1); padding: 24px 20px; box-shadow: -8px 0 32px rgba(0,0,0,.18); }
.mob-nav.open { right: 0; }
.mob-nav-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
.mob-nav .logo img { height: 36px; }
.mob-nav .close { background: none; border: none; font-size: 1.4rem; cursor: pointer; color: var(--gray-700); padding: 4px; }
.mob-nav a { display: block; padding: 12px 8px; font-size: .95rem; border-bottom: 1px solid var(--gray-100); color: var(--gray-700); font-weight: 500; }
.mob-nav a:hover { color: var(--green-700); }
.mob-nav .sub { padding-left: 16px; }
.mob-nav .sub a { font-size: .88rem; color: var(--gray-500); font-weight: 400; }
.mob-nav .mob-cta { margin-top: 20px; }

/* PAGE HERO */
.page-hero { padding-top: calc(var(--hh) + 40px) !important; padding-bottom: 60px; margin-top: 0; background: linear-gradient(135deg, var(--green-800) 0%, var(--green-700) 60%, var(--green-600) 100%); color: var(--white); }
.page-hero h1 { color: var(--white); margin-bottom: 16px; }
.page-hero p { color: rgba(255,255,255,.82); font-size: 1.1rem; max-width: 620px; }
.page-hero .breadcrumb { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: rgba(255,255,255,.55); margin-bottom: 20px; }
.page-hero .breadcrumb a { color: rgba(255,255,255,.7); }
.page-hero .breadcrumb a:hover { color: var(--white); }
.page-hero .breadcrumb .sep { font-size: .7rem; }

/* PRODUCT CARD */
.product-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--r-lg); overflow: hidden; transition: var(--tr); display: flex; flex-direction: column; }
.product-card:hover { transform: translateY(-5px); box-shadow: var(--sh-lg); border-color: var(--green-400); }
.product-card .pc-img { height: 210px; background: var(--gray-50); display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 16px; position: relative; }
.product-card .pc-img img { max-height: 175px; max-width: 100%; object-fit: contain; transition: var(--tr); }
.product-card:hover .pc-img img { transform: scale(1.06); }
.product-card .pc-icon-fallback { font-size: 3.5rem; opacity: .35; }
.product-card .pc-body { padding: 22px 20px; flex: 1; display: flex; flex-direction: column; }
.product-card .pc-cat { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: var(--green-500); margin-bottom: 8px; }
.product-card h3 { font-size: 1rem; margin-bottom: 10px; color: var(--green-800); }
.product-card p { font-size: .87rem; color: var(--gray-500); line-height: 1.65; flex: 1; margin-bottom: 18px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.product-card .pc-actions { display: flex; gap: 8px; margin-top: auto; }
.product-card .pc-pdf-badge { display: inline-flex; align-items: center; gap: 5px; font-size: .72rem; font-weight: 600; color: var(--green-600); background: var(--green-100); padding: 4px 10px; border-radius: 20px; margin-bottom: 12px; }

/* CATEGORY CARD */
.cat-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--r-lg); padding: 32px 26px; transition: var(--tr); position: relative; overflow: hidden; cursor: pointer; }
.cat-card::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--green-600), var(--green-400)); transform: scaleX(0); transition: var(--tr); transform-origin: left; }
.cat-card:hover { transform: translateY(-5px); box-shadow: var(--sh-lg); border-color: var(--green-400); }
.cat-card:hover::after { transform: scaleX(1); }
.cat-card .cc-icon { width: 60px; height: 60px; border-radius: var(--r-md); background: var(--green-100); display: flex; align-items: center; justify-content: center; font-size: 1.7rem; margin-bottom: 20px; }
.cat-card h3 { margin-bottom: 10px; font-size: 1.1rem; }
.cat-card p { color: var(--gray-500); font-size: .88rem; line-height: 1.65; margin-bottom: 18px; }
.cat-card .cc-count { font-size: .78rem; font-weight: 600; color: var(--green-500); }
.cat-card .cc-arrow { position: absolute; top: 28px; right: 24px; color: var(--gray-300); font-size: 1.1rem; transition: var(--tr); }
.cat-card:hover .cc-arrow { color: var(--green-500); transform: translateX(4px); }

/* DOC CARD */
.doc-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--r-md); padding: 24px; display: flex; gap: 18px; align-items: flex-start; transition: var(--tr); }
.doc-card:hover { border-color: var(--green-400); box-shadow: var(--sh-md); }
.doc-card .dc-icon { width: 48px; height: 48px; min-width: 48px; background: var(--green-100); border-radius: var(--r-sm); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; }
.doc-card h4 { margin-bottom: 5px; font-size: .95rem; }
.doc-card p { font-size: .83rem; color: var(--gray-500); margin-bottom: 14px; }
.doc-card .dc-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.doc-card .dc-type { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; background: var(--green-100); color: var(--green-600); padding: 3px 8px; border-radius: 4px; }
.doc-card .dc-actions { display: flex; gap: 10px; }
.doc-card .dc-actions a { font-size: .82rem; font-weight: 600; color: var(--green-600); display: inline-flex; align-items: center; gap: 5px; transition: var(--tr); }
.doc-card .dc-actions a:hover { color: var(--green-800); }

/* SILO CARD */
.silo-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--r-lg); overflow: hidden; transition: var(--tr); }
.silo-card:hover { transform: translateY(-4px); box-shadow: var(--sh-lg); }
.silo-card .sc-header { background: linear-gradient(135deg, var(--green-800), var(--green-700)); padding: 28px 24px; color: var(--white); }
.silo-card .sc-header h3 { color: var(--white); font-size: 1.1rem; margin-bottom: 6px; }
.silo-card .sc-header p { color: rgba(255,255,255,.75); font-size: .85rem; }
.silo-card .sc-body { padding: 22px 24px; }
.silo-card .sc-body p { font-size: .88rem; color: var(--gray-500); margin-bottom: 18px; }

/* WHY CARD */
.why-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--r-lg); padding: 32px 24px; text-align: center; transition: var(--tr); }
.why-card:hover { border-color: var(--green-400); box-shadow: var(--sh-md); transform: translateY(-4px); }
.why-card .wc-icon { width: 64px; height: 64px; border-radius: 50%; background: var(--green-100); display: flex; align-items: center; justify-content: center; font-size: 1.6rem; margin: 0 auto 20px; }
.why-card h3 { font-size: 1rem; margin-bottom: 10px; }
.why-card p { font-size: .86rem; color: var(--gray-500); }

/* STATS BAR */
.stats-bar { display: flex; justify-content: center; gap: 0; flex-wrap: wrap; }
.stat-item { text-align: center; padding: 32px 40px; border-right: 1px solid rgba(255,255,255,.1); }
.stat-item:last-child { border-right: none; }
.stat-item .stat-n { font-size: 2.8rem; font-weight: 800; font-family: var(--font-h); color: var(--white); line-height: 1; margin-bottom: 6px; }
.stat-item .stat-l { font-size: .85rem; color: rgba(255,255,255,.65); }

/* CTA BANNER */
.cta-banner { background: linear-gradient(135deg, var(--green-800), var(--green-700)); color: var(--white); padding: 80px 0; text-align: center; }
.cta-banner h2 { color: var(--white); margin-bottom: 14px; }
.cta-banner p { color: rgba(255,255,255,.8); margin-bottom: 32px; max-width: 520px; margin-left: auto; margin-right: auto; font-size: 1.02rem; }
.cta-banner .btn-row { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* PARTNER BADGE */
.partner-badge { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); border-radius: var(--r-md); padding: 28px 24px; backdrop-filter: blur(8px); transition: var(--tr); }
.partner-badge:hover { background: rgba(255,255,255,.15); }

/* SPEC TABLE */
.spec-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.spec-table th { background: var(--green-800); color: var(--white); padding: 12px 16px; text-align: left; font-size: .82rem; font-weight: 600; letter-spacing: .5px; }
.spec-table td { padding: 11px 16px; border-bottom: 1px solid var(--gray-200); }
.spec-table tr:nth-child(even) td { background: var(--gray-50); }
.spec-table tr:hover td { background: var(--green-50); }
.spec-table-wrap { border-radius: var(--r-md); overflow: hidden; border: 1px solid var(--gray-200); overflow-x: auto; }

/* FILTER BAR */
.filter-bar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 36px; }
.filter-btn { padding: 8px 18px; border-radius: 30px; font-size: .83rem; font-weight: 600; border: 1.5px solid var(--gray-200); background: var(--white); color: var(--gray-500); cursor: pointer; transition: var(--tr); }
.filter-btn:hover, .filter-btn.active { background: var(--green-700); color: var(--white); border-color: var(--green-700); }

/* BREADCRUMB */
.bc { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--gray-400); margin-bottom: 24px; flex-wrap: wrap; }
.bc a { color: var(--gray-400); transition: var(--tr); }
.bc a:hover { color: var(--green-600); }
.bc .sep { font-size: .65rem; }

/* BADGE */
.badge { display: inline-flex; align-items: center; gap: 5px; font-size: .72rem; font-weight: 700; padding: 4px 10px; border-radius: 20px; }
.badge-green { background: var(--green-100); color: var(--green-700); }
.badge-gray { background: var(--gray-100); color: var(--gray-500); }

/* FOOTER */
footer.site-footer { background: var(--green-900); color: rgba(255,255,255,.75); }
.footer-main { padding: 70px 0 48px; display: grid; grid-template-columns: 2.2fr 1fr 1fr 1.3fr; gap: 48px; border-bottom: 1px solid rgba(255,255,255,.08); }
.footer-about .logo { margin-bottom: 18px; }
.footer-about .logo img { height: 38px; filter: brightness(10); }
.footer-about p { font-size: .88rem; line-height: 1.75; color: rgba(255,255,255,.6); max-width: 300px; }
.footer-col h5 { color: var(--white); font-size: .9rem; font-weight: 700; margin-bottom: 18px; font-family: var(--font-h); }
.footer-col a { display: block; font-size: .85rem; color: rgba(255,255,255,.55); padding: 4px 0; transition: var(--tr); }
.footer-col a:hover { color: var(--white); padding-left: 4px; }
.footer-contact-item { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; font-size: .85rem; }
.footer-contact-item .fci { font-size: 1rem; margin-top: 1px; }
.footer-contact-item a { color: rgba(255,255,255,.65); font-size: .85rem; }
.footer-contact-item a:hover { color: var(--white); }
.footer-bottom { padding: 18px 0; display: flex; justify-content: space-between; align-items: center; font-size: .78rem; color: rgba(255,255,255,.35); flex-wrap: wrap; gap: 8px; }
.footer-bottom a { color: rgba(255,255,255,.45); transition: var(--tr); }
.footer-bottom a:hover { color: var(--white); }

/* BACK TO TOP */
.back-top { position: fixed; bottom: 28px; right: 28px; width: 44px; height: 44px; background: var(--green-700); color: var(--white); border: none; border-radius: 50%; cursor: pointer; font-size: 1.1rem; display: flex; align-items: center; justify-content: center; box-shadow: var(--sh-md); opacity: 0; visibility: hidden; transition: var(--tr); z-index: 800; }
.back-top.visible { opacity: 1; visibility: visible; }
.back-top:hover { background: var(--green-600); transform: translateY(-3px); }

/* LOADING PLACEHOLDER */
.skeleton { background: linear-gradient(90deg, var(--gray-100) 25%, var(--gray-50) 50%, var(--gray-100) 75%); background-size: 200%; animation: sk 1.4s infinite; border-radius: var(--r-sm); }
@keyframes sk { 0%{background-position:200%} 100%{background-position:-200%} }

/* RESPONSIVE */
@media(max-width:1100px) {
  .grid-4 { grid-template-columns: repeat(2,1fr); }
  .footer-main { grid-template-columns: 1fr 1fr; }
}
@media(max-width:900px) {
  .main-nav, .header-cta-desktop { display: none !important; }
  .hamburger { display: flex !important; }
  .grid-3 { grid-template-columns: 1fr 1fr; }
  .grid-2 { grid-template-columns: 1fr; }
  .section { padding: 64px 0; }
  .stat-item { padding: 24px 24px; }
}
@media(max-width:600px) {
  .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .filter-bar { gap: 6px; }
  .filter-btn { font-size: .78rem; padding: 7px 14px; }
  .footer-main { grid-template-columns: 1fr; gap: 32px; }
  .footer-bottom { flex-direction: column; text-align: center; }
}

/* HOME HERO */
.home-hero{position:relative;min-height:100vh;display:flex;align-items:center;margin-top:0;overflow:hidden;background:linear-gradient(135deg,#0a2818 0%,#0f3019 40%,#1a4d2e 70%,#2d7a4a 100%);padding-top:var(--hh)}
.home-hero .hero-bg{position:absolute;inset:0;z-index:0}
.home-hero .hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.35}
.home-hero .hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(10,40,24,.88) 0%,rgba(15,48,25,.72) 50%,rgba(26,77,46,.5) 100%);z-index:1}
.home-hero .hero-content{position:relative;z-index:2;max-width:760px}
.home-hero h1{color:#fff;margin-bottom:22px;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.home-hero .hero-sub{color:rgba(255,255,255,.88);font-size:clamp(1rem,1.8vw,1.22rem);margin-bottom:38px;line-height:1.8;max-width:620px}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}
.hero-slide{display:none;width:100%}.hero-slide.active{display:block}
.hero-dots{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:10}
.hero-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.35);border:none;cursor:pointer;transition:var(--tr)}
.hero-dot.active{background:#fff;transform:scale(1.25)}
.hero-progress{position:absolute;bottom:0;left:0;height:3px;background:var(--green-400);z-index:10;animation:hprog 6s linear infinite}
@keyframes hprog{0%{width:0}100%{width:100%}}

/* WHAT WE DO */
.wwd-icon{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:18px;flex-shrink:0}

/* FEATURED PRODUCTS */
.fp-tabs{display:flex;gap:0;border-bottom:2px solid var(--gray-200);margin-bottom:32px;flex-wrap:wrap}
.fp-tab{padding:10px 22px;font-size:.88rem;font-weight:600;color:var(--gray-500);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:var(--tr)}
.fp-tab:hover{color:var(--green-700)}
.fp-tab.active{color:var(--green-700);border-bottom-color:var(--green-700)}
.fp-panel{display:none}.fp-panel.active{display:grid}

/* PARTNER SECTION */
.partner-section{background:linear-gradient(135deg,#0a2818,#1a4d2e);color:#fff;padding:96px 0}
.partner-section h2{color:#fff;margin-bottom:16px}
.partner-section .sh p{color:rgba(255,255,255,.75)}

/* ENGINEERING SPLIT */
.eng-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.eng-split .eng-img{border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-lg)}
.eng-split .eng-img img{width:100%;height:400px;object-fit:cover}
.feat-num{width:40px;height:40px;min-width:40px;border-radius:50%;background:var(--green-700);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;font-family:var(--font-h)}

@media(max-width:900px){
  .home-hero{min-height:80vh}
  .eng-split{grid-template-columns:1fr}
  .eng-split .eng-img{height:280px}
  .eng-split .eng-img img{height:280px}
  .hero-btns .btn{width:100%;justify-content:center}
}

/* ===== VISUAL POLISH v2 ===== */

/* Hero: ensure bg image fills properly */
.home-hero .hero-bg img { object-position: center 30%; }

/* Product card image: white bg for clean renders */
.pc-img { background: #fff !important; border-bottom: 1px solid var(--gray-100); }
.pc-img img { object-fit: contain; max-height: 180px; padding: 8px; }

/* Category pill on product card */
.pc-cat { background: var(--green-100); display: inline-block; padding: 2px 10px; border-radius: 20px; margin-bottom: 10px; }

/* Products sidebar — NO internal scroll (was causing glitch) */
/* Sidebar scrolls WITH the page, not independently */
.prod-sidebar { overflow: visible; max-height: none; }


/* Page hero gradient refinement */
.page-hero { 
  background: linear-gradient(135deg, #091e10 0%, #0f3019 45%, #1a4d2e 100%);
  position: relative;
  overflow: hidden;
}
.page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 0;
}
.page-hero .wrap { position: relative; z-index: 1; }

/* Breadcrumb style */
.breadcrumb { margin-bottom: 18px !important; }
.breadcrumb a { text-decoration: none; transition: var(--tr); }

/* WWD section on homepage */
.cat-card { cursor: pointer; }
.cat-card .cc-icon { background: linear-gradient(135deg, var(--green-50), var(--green-100)); }

/* Stats bar numbers */
.stat-n { background: linear-gradient(135deg, #fff, rgba(255,255,255,.7)); -webkit-background-clip: text; }

/* Footer logo: keep PNG for transparency */
.footer-about .logo img { filter: brightness(0) invert(1); opacity: 0.92; }
.sidebar-logo img { filter: brightness(0) invert(1) !important; }

/* Table hover */
.admin-tbl tr { transition: var(--tr); }

/* Contact form submit button */
#submitBtn { transition: var(--tr); }
#submitBtn:hover { transform: translateY(-2px); box-shadow: var(--sh-md); }

/* Silo nav buttons */
.silo-nav-btn { font-family: var(--font); }

/* Doc card hover border */
.doc-card { border-radius: var(--r-lg) !important; }

/* Mobile improvements */
@media(max-width:768px) {
  .page-hero { padding-bottom: 52px; }
  .home-hero { min-height: 85vh; }
  .hero-btns { flex-direction: column; }
  .hero-btns .btn { width: 100%; justify-content: center; max-width: 320px; }
  .stat-item { padding: 20px 16px; min-width: 50%; }
  .stat-item .stat-n { font-size: 2.2rem; }
  .eng-split { gap: 36px; }
  .fp-tabs { flex-wrap: wrap; padding-bottom: 4px; justify-content: flex-start; }
  .fp-tab { white-space: nowrap; }
  .grid-auto { grid-template-columns: 1fr 1fr; }
}
@media(max-width:480px) {
  .grid-auto { grid-template-columns: 1fr; }
  .wrap { padding: 0 16px; }
  .section { padding: 52px 0; }
}

/* Smooth page transitions */
body { animation: fadeIn .3s ease; }
@keyframes fadeIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }

/* Scroll reveal utility */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .55s ease, transform .55s ease; }
.reveal.visible { opacity: 1; transform: none; }
/* Fallback: show all reveals if JS is slow */
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1 !important; transform: none !important; } }

/* ===== PRODUCTION FIXES v3 ===== */

/* Hero image opacity override */
.home-hero .hero-bg img { opacity: .45 !important; object-position: center 40%; }

/* Logo size — readable at all sizes */
.logo img { height: 54px !important; max-width: 220px !important; object-fit: contain !important; display: block !important; }
.site-header.scrolled .logo img { height: 44px !important; }
@media(max-width:900px){ .logo img { height: 46px !important; max-width: 180px !important; } }
@media(max-width:480px){ .logo img { height: 38px !important; max-width: 160px !important; } }

/* Mobile nav: close on link click fix — handled in JS */
/* Body scroll lock when mobile menu open */
body.nav-open { overflow: hidden; }

/* Hamburger touch target 44px */
.hamburger { min-width: 44px; min-height: 44px; justify-content: center; }

/* Buttons min touch target */
.btn { min-height: 44px; }
.btn-sm { min-height: 36px; }

/* Hero mobile polish */
@media(max-width:768px){
  .home-hero { min-height: 88vh; padding-top: 20px; }
  .home-hero .hero-content { max-width: 100%; }
  .home-hero h1 { font-size: clamp(1.8rem,7vw,2.6rem); }
  .home-hero .hero-sub { font-size: .96rem; margin-bottom: 28px; }
  .hero-btns { flex-direction: column; align-items: flex-start; }
  .hero-btns .btn { width: 100%; max-width: 100%; justify-content: center; }
  .hero-dots { bottom: 20px; }
}
@media(max-width:480px){
  .home-hero { min-height: 100svh; }
  .home-hero h1 { font-size: 1.75rem; }
}

/* Page hero mobile */
@media(max-width:768px){
  .page-hero { padding-bottom: 44px; }
  .page-hero h1 { font-size: clamp(1.6rem,6vw,2.2rem); }
  .page-hero p { font-size: .96rem; }
}

/* Product grid mobile */
@media(max-width:640px){
  .grid-auto { grid-template-columns: 1fr 1fr; gap: 14px; }
}
@media(max-width:400px){
  .grid-auto { grid-template-columns: 1fr; }
}

/* Products sidebar mobile */
@media(max-width:860px){
  .prod-layout { grid-template-columns: 1fr !important; }
  .prod-sidebar { position: static !important; max-height: none !important; }
  /* Collapsible sidebar on mobile handled inline */
}

/* Eng-split full-width mobile */
@media(max-width:860px){
  .eng-split { grid-template-columns: 1fr !important; gap: 32px !important; }
}

/* Contact form row mobile */
@media(max-width:600px){
  .contact-form .form-row { grid-template-columns: 1fr !important; }
}

/* Footer mobile */
@media(max-width:768px){
  .footer-main { padding: 48px 0 36px; gap: 28px; }
  .cta-banner { padding: 56px 0; }
  .cta-banner h2 { font-size: 1.5rem; }
}

/* Focus states — accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--green-400);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ESC key hint for mobile nav in aria */
.mob-nav:focus-within { outline: none; }

/* Horizontal overflow prevention — ONLY on body, NOT on .wrap */
/* .wrap must NOT have overflow:hidden — it breaks position:sticky scroll context */
body { overflow-x: hidden; }
/* .wrap overflow-x:hidden intentionally removed — causes sticky elements to glitch */

/* Product card no horizontal overflow */
.product-card { word-break: break-word; }

/* Filter bar horizontal scroll on mobile */
@media(max-width:640px){
  .filter-bar { flex-wrap: wrap; padding-bottom: 8px; justify-content: flex-start; }
  .filter-btn { flex-shrink: 0; }
}

/* Stats responsive */
@media(max-width:560px){
  .stats-bar { flex-direction: row; }
  .stat-item { min-width: 50%; border-right: none; border-bottom: 1px solid rgba(255,255,255,.1); }
  .stat-item:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.1); }
}

/* OG / SEO meta handled in HTML — CSS: ensure no layout shift */
img { aspect-ratio: attr(width) / attr(height); }

/* Print */
@media print { .site-header, .back-top, .mob-nav, .mob-overlay { display: none !important; } }

/* === SVG Fallback Product Cards === */
.pc-img { position: relative; overflow: hidden; }
.pc-fallback { position: absolute; inset: 0; }
.pc-fallback svg { max-width: 100%; max-height: 140px; width: auto; height: auto; }
.pc-icon-fallback { display: none; } /* hide old emoji fallback */

/* ===================================================
   PRELOADER
   =================================================== */
#site-preloader {
  position: fixed; inset: 0; z-index: 9999;
  background: #0a2818;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 28px;
  transition: opacity .6s ease, visibility .6s ease;
}
#site-preloader.done { opacity: 0; visibility: hidden; pointer-events: none; }
.preloader-logo { width: 80px; height: 80px; }
.preloader-silo {
  animation: siloRise 1.4s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes siloRise {
  0%   { transform: translateY(30px) scaleY(.6); opacity: 0; }
  60%  { transform: translateY(-4px) scaleY(1.04); opacity: 1; }
  100% { transform: translateY(0) scaleY(1); opacity: 1; }
}
.preloader-grain {
  animation: grainFall 1.6s ease forwards;
  transform-origin: top center;
}
@keyframes grainFall {
  0%   { transform: translateY(-40px); opacity: 0; }
  50%  { opacity: 1; }
  100% { transform: translateY(0); opacity: 1; }
}
.preloader-text {
  color: rgba(255,255,255,.9);
  font-family: var(--font-h);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  animation: fadePop .8s .5s ease both;
}
.preloader-sub {
  color: rgba(255,255,255,.45);
  font-size: .78rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  animation: fadePop .8s .8s ease both;
}
.preloader-bar {
  width: 180px; height: 2px;
  background: rgba(255,255,255,.12);
  border-radius: 2px;
  overflow: hidden;
}
.preloader-bar-fill {
  height: 100%;
  background: var(--green-400);
  border-radius: 2px;
  animation: barFill 1.8s ease forwards;
}
@keyframes barFill { 0%{width:0} 100%{width:100%} }
@keyframes fadePop { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

/* ===================================================
   COMPREHENSIVE RESPONSIVE — Products, Silo, All pages
   =================================================== */

/* --- Products page sidebar layout --- */
@media(max-width:860px) {
  .prod-layout { grid-template-columns: 1fr !important; gap: 20px !important; }
  .prod-sidebar { position: static !important; top: auto !important; }
}

/* --- Products page search/filter bar --- */
@media(max-width:600px) {
  .prod-layout > div:last-child > div:first-child {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
  }
  #searchBox { width: 100% !important; box-sizing: border-box; }
}

/* --- Silo catalogue nav buttons --- */
@media(max-width:700px) {
  .silo-nav { gap: 6px !important; }
  .silo-nav-btn { padding: 8px 14px !important; font-size: .8rem !important; }
}
@media(max-width:480px) {
  .silo-nav { flex-direction: column !important; }
  .silo-nav-btn { width: 100% !important; text-align: center !important; }
}

/* --- Hero btns mobile --- */
@media(max-width:520px) {
  .hero-btns { flex-direction: column !important; gap: 10px !important; }
  .hero-btns .btn { width: 100% !important; justify-content: center !important; text-align: center !important; }
  .home-hero { min-height: 88vh !important; }
}

/* --- Page hero mobile --- */
@media(max-width:600px) {
  .page-hero { padding-bottom: 40px !important; }
  .page-hero h1 { font-size: clamp(1.6rem, 6vw, 2.2rem) !important; }
}

/* --- Product cards mobile grid --- */
@media(max-width:900px) {
  .grid-auto { grid-template-columns: repeat(2, 1fr) !important; }
}
@media(max-width:500px) {
  .grid-auto { grid-template-columns: 1fr !important; }
  .product-card { min-height: auto !important; }
}

/* --- Engineering split section --- */
@media(max-width:900px) {
  .eng-split { grid-template-columns: 1fr !important; }
  .eng-split .eng-img { height: 260px !important; order: -1; }
  .eng-split .eng-img img { height: 260px !important; object-fit: cover; }
}

/* --- Stats section --- */
@media(max-width:600px) {
  .stats-row { grid-template-columns: 1fr 1fr !important; gap: 16px !important; }
}
@media(max-width:360px) {
  .stats-row { grid-template-columns: 1fr !important; }
}

/* --- WHY page, ABOUT page grid --- */
@media(max-width:700px) {
  .why-grid, .cert-grid, .ref-grid { grid-template-columns: 1fr !important; }
}

/* --- Overflow prevention globally --- */
/* --- Removed body overflow-x hidden to prevent nested scroll glitch on mobile --- */
img { max-width: 100%; height: auto; }

/* --- Table responsive --- */
table { width: 100%; border-collapse: collapse; }

/* --- Accordion/detail page scroll fix --- */
@media(max-width:768px) {
  .prod-detail-layout { grid-template-columns: 1fr !important; }
  .spec-table th, .spec-table td { font-size: .82rem; padding: 10px 12px; }
}

/* --- Footer mobile --- */
@media(max-width:500px) {
  .footer-about img { max-width: 140px !important; height: 32px !important; }
}

/* --- Removed Logo mobile override to allow 54px definition to work --- */

/* --- Remove inner page scroll on mobile (sidebar sticky) --- */
@media(max-width:860px) {
  .prod-sidebar { overflow: visible !important; max-height: none !important; }
}

/* --- category pills horizontal scroll on small screens --- */
@media(max-width:600px) {
  #catList { display: flex; flex-wrap: wrap; gap: 6px; }
  .cat-item { flex: 0 0 auto; white-space: nowrap; }
}

/* --- Silo detail section --- */
@media(max-width:700px) {
  .silo-split { grid-template-columns: 1fr !important; }
  .silo-img { max-height: 240px !important; }
}

/* --- Document grid --- */
@media(max-width:600px) {
  .doc-grid { grid-template-columns: 1fr !important; }
}

/* --- Contact form --- */
@media(max-width:600px) {
  .contact-split { grid-template-columns: 1fr !important; }
  .contact-form-wrap { padding: 24px 16px !important; }
}

/* --- References/Projects grid --- */
@media(max-width:700px) {
  .refs-grid { grid-template-columns: 1fr 1fr !important; }
}
@media(max-width:420px) {
  .refs-grid { grid-template-columns: 1fr !important; }
}

/* --- Mobile menu logo size fix --- */
.mob-nav-head .logo img { height: 34px !important; max-width: 140px !important; object-fit: contain !important; }

/* --- Touch-friendly tap targets --- */
@media(max-width:900px) {
  .btn { min-height: 44px; min-width: 44px; }
  .cat-item { min-height: 44px; }
  .silo-nav-btn { min-height: 44px; }
}

/* --- Hamburger mobile fix: always on top of everything --- */
.hamburger { z-index: 930 !important; }


/* === Hero Badge === */
.hero-badge {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--green-800, #1a4d2e);
  border: none;
  border-left: 3px solid var(--green-400, #4ade80);
  color: #fff;
  font-size: .76rem; font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
  padding: 8px 16px;
  border-radius: 4px;
  margin-bottom: 22px;
  animation: badgeSlide .6s ease both;
}
@keyframes badgeSlide { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:none} }

/* === Slider bg per slide === */
.hero-slide { animation: slideIn .6s ease both; }
@keyframes slideIn { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }


/* === FINAL MOBILE NAV FIX === */
/* Ensure mob-nav panel covers full height and shows logo correctly */
.mob-nav { box-sizing: border-box; }
.mob-nav .mob-nav-head { padding-bottom: 16px; border-bottom: 1px solid var(--gray-100); margin-bottom: 16px; }

/* Prevent body scroll when nav is open */
body.nav-open { overflow: hidden !important; position: fixed; width: 100%; }

/* Admin panel mobile responsive */
@media(max-width:700px) {
  .sidebar { transform: translateX(-100%); transition: transform .3s ease; }
  .sidebar.mob-open { transform: translateX(0); }
  .main { margin-left: 0 !important; padding: 16px !important; }
  .stat-cards { grid-template-columns: 1fr 1fr !important; }
}
@media(max-width:480px) {
  .stat-cards { grid-template-columns: 1fr !important; }
  .admin-tbl { font-size: .78rem; }
  .admin-tbl th, .admin-tbl td { padding: 8px 10px; }
}

/* Fix: mob-nav should always sit on top of page content */
.mob-nav { isolation: isolate; }

/* ===================================================
   LOGO FIXES
   =================================================== */
/* Header logo - transparent PNG on white background, dark text logo */
.site-header .logo img,
.mob-nav .logo img {
  filter: none;
  /* Add subtle drop-shadow so logo is always visible */
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.08));
}

/* Footer logo - invert to white for dark green background */
.site-footer .logo img,
.footer-about .logo img,
.footer-about img {
  filter: brightness(0) invert(1) !important;
  opacity: 0.92;
}

/* Admin sidebar logo - also invert to white */
.sidebar-logo img {
  filter: brightness(0) invert(1) !important;
}

/* ===================================================
   SPEC TABLE FIX
   =================================================== */
/* Fix spec-table layout: ensure it doesn't collapse, 
   first column (parameter name) is consistent width */
.spec-table { 
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.spec-table td:first-child { 
  width: 42%;
  font-weight: 600;
  color: var(--gray-700);
  background: var(--gray-50) !important;
}
.spec-table td:last-child {
  width: 58%;
  color: var(--gray-600);
}
.spec-table th:first-child { width: 42%; }
.spec-table th:last-child { width: 58%; }
.spec-table td { 
  vertical-align: top;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
@media(max-width:600px) {
  .spec-table { table-layout: auto; }
  .spec-table td:first-child { width: auto; min-width: 120px; }
}

/* ===================================================
   RELATED PRODUCTS — remove inner scroll
   =================================================== */
.related-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  /* NO overflow, NO max-height, NO inner scroll */
  overflow: visible !important;
  max-height: none !important;
}
.related-grid .product-card {
  /* Prevent card from causing layout overflow */
  overflow: hidden;
  max-width: 100%;
}
/* Related section itself: no overflow */
section.section-alt .related-grid {
  overflow: visible !important;
}
@media(max-width:960px) {
  .related-grid { grid-template-columns: 1fr 1fr !important; }
}
@media(max-width:560px) {
  .related-grid { grid-template-columns: 1fr !important; }
}

/* Product detail - prevent sticky image causing scroll context issues */
@media(max-width:960px) {
  .detail-img-wrap { 
    position: static !important;
    overflow: visible !important;
  }
}

/* ===================================================
   EMAIL OBFUSCATION — CSS-based display
   =================================================== */
/* Obfuscated email uses data attributes, built via JS */
.obf-email { 
  unicode-bidi: bidi-override;
  direction: ltr;
  cursor: pointer;
  color: var(--green-700);
  font-weight: 600;
  font-size: .98rem;
  text-decoration: none;
  transition: var(--tr);
}
.obf-email:hover { color: var(--green-600); text-decoration: underline; }

/* ===================================================
   STICKY SCROLL GLITCH FIX — FINAL
   =================================================== */

/* 
 * ROOT CAUSE: overflow:hidden/auto on any ancestor breaks position:sticky.
 * Fix: Explicitly set overflow:visible on all sticky containers' parents.
 * DO NOT add overflow to .wrap, .section, .section-alt, or any layout wrapper.
 */

/* Ensure section wrappers never clip sticky children */
.section, .section-alt, .section-dark, .section-sm {
  overflow: visible;
}

/* Products layout: sidebar and grid parent */
.prod-layout {
  overflow: visible;
  align-items: start;
}

/* Product detail layout */
.detail-layout {
  overflow: visible;
  align-items: start;
}

/* Sticky sidebar: scrolls WITH page, not inside itself */
.prod-sidebar {
  overflow: visible !important;
  max-height: none !important;
}

/* Sticky detail image: only sticky on desktop */
.detail-img-wrap {
  overflow: hidden; /* clip rounded corners only */
  /* sticky is fine here since parent has overflow:visible */
}

/* General rule: any element that is position:sticky
   must NOT have an ancestor with overflow other than visible */
[style*="position:sticky"],
.prod-sidebar,
.detail-img-wrap {
  /* NO transform/will-change on sticky elements — breaks stacking context */
}

/* Fix: home-hero overflow:hidden is OK because it has no sticky children */
/* Fix: page-hero doesn't need overflow — left as-is */

/* ===================================================
   LOGO SIZE — DEFINITIVE OVERRIDE (highest specificity)
   =================================================== */
header.site-header .logo img,
header.site-header .header-inner .logo img {
  height: 90px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
  display: block !important;
  flex-shrink: 0 !important;
  margin-left: -24px !important;
  margin-top: -12px !important;
  margin-bottom: -12px !important;
}
header.site-header.scrolled .logo img,
header.site-header.scrolled .header-inner .logo img {
  height: 70px !important;
  margin-top: -8px !important;
  margin-bottom: -8px !important;
}
@media(max-width:900px) {
  header.site-header .logo img, header.site-header .header-inner .logo img { 
    height: 80px !important; 
    margin-left: -20px !important;
  }
}
@media(max-width:480px) {
  header.site-header .logo img, header.site-header .header-inner .logo img { 
    height: 70px !important; 
    margin-left: -16px !important;
  }
}

/* Mobile nav logo */
.mob-nav-head .logo img {
  height: 64px !important;
  max-width: none !important;
  object-fit: contain !important;
  margin-left: -16px !important;
}

/* COOKIE BANNER */
.cookie-banner {
  position: fixed;
  bottom: 24px;
  left: 24px;
  max-width: 380px;
  background: var(--white);
  box-shadow: 0 10px 40px rgba(0,0,0,0.12);
  border: 1px solid var(--gray-200);
  border-radius: var(--r-md);
  padding: 20px;
  z-index: 9999;
  transform: translateY(150%);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.cookie-banner.show { transform: translateY(0); }
.cb-content strong { color: var(--gray-800); font-size: .95rem; display: block; margin-bottom: 6px; }
.cb-content p { color: var(--gray-500); font-size: .85rem; line-height: 1.5; margin: 0; }
.cb-actions { display: flex; justify-content: flex-end; gap: 10px; }
@media(max-width:480px){
  .cookie-banner { bottom: 16px; left: 16px; right: 16px; max-width: none; }
  .cb-actions { flex-direction: column; width: 100%; }
  .cb-actions .btn { width: 100%; justify-content: center; }
}
/* Footer logo — white on dark green */
.site-footer .footer-about .logo img,
.site-footer .logo img {
  filter: brightness(0) invert(1) !important;
  height: 70px !important;
  max-width: none !important;
  opacity: 0.9 !important;
  margin-left: -16px !important;
  margin-bottom: -10px !important;
}
