/* Font Awesome @font-face */
@font-face {
    font-family: FontAwesome;
    font-style: normal;
    font-weight: 400;
    src: url(fonts/8b43027f47b20503057dfbbaa9401fef.eot);
    src: url(fonts/8b43027f47b20503057dfbbaa9401fef.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/20fd1704ea223900efa9fd4e869efb08.woff2) format("woff2"),url(fonts/f691f37e57f04c152e2315ab7dbad881.woff) format("woff"),url(fonts/1e59d2330b4c6deb84b340635ed36249.ttf) format("truetype"),url(fonts/6878d55e3615ccf40c386ec2a90dfd6a.svg#fontawesomeregular) format("svg");
}

/* Base styles and small reset */
:root{ --base-font-size: clamp(14px, 1.2vw, 16px); --tool-bg: #009fe3; --tool-color: #fff; --brandon-font: 'Outfit', "Calibri W01 Regular_904604", Calibri, helvetica, sans-serif }
html{ height:100%; margin:0; padding:0; background-color: #fff; font-family: var(--brandon-font) }
body{ height:100%; margin:0; padding:0; font-size:var(--base-font-size); font-family: var(--brandon-font); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; padding-top:117px; padding-bottom:0; margin-bottom:0; min-height:100vh; display:flex; flex-direction:column; overflow-x:hidden; background-color: #fff; color: #58585a; }
*:not([class*="icon"]):not([class*="fa"]):not([class*="FontAwesome"]) { font-family: var(--brandon-font) }
img{ max-width:100%; height:auto; display:block }
/* Top tools - responsive, right-aligned container */
:root{ --tool-bg: #009fe3; --tool-color: #fff }
*, *::before, *::after{ box-sizing: border-box }
.top-tools{ position:fixed; top:0; left:0; right:0; z-index:1001; background: var(--tool-bg); color: var(--tool-color); font-family: var(--brandon-font); display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; padding:0 12px; height:49px; }
.top-tools ul{ list-style:none; display:flex; margin:0; padding:0; }
.top-tools li{ display:flex; align-items:center; padding:8px 14px; border-left:1px solid rgba(255,255,255,0.18); border-right:1px solid rgba(255,255,255,0.06); min-width:44px; }
.top-tools a{ color:inherit; text-decoration:none; display:flex; align-items:center; gap:8px; font-size:14px; }
.top-tools .icon{ width:16px; height:16px; flex-shrink:0; display:block; fill: currentColor; }
.top-tools a:focus, .top-tools a:hover{ background: rgba(255,255,255,0.04); outline: none }
.top-tools-panel{ width:100%; display:none; background: var(--tool-bg); color: var(--tool-color); padding:24px 16px 28px; position:relative; }
.top-tools-panel[aria-hidden="false"]{ display:block; }
.top-tools-close{ position:absolute; top:14px; right:18px; width:28px; height:28px; border-radius:50%; border:0; background:#fff; color:#3f7fb3; font-size:20px; line-height:1; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.top-tools-close:hover,
.top-tools-close:focus{ background:#f0f5f9; }
.top-tools-panel-inner{ max-width:1200px; margin:0 auto; display:flex; gap:40px; align-items:flex-start; }
.top-tools-panel-content{ flex:1; min-width:260px; }
.top-tools-panel-content h3{ margin:0 0 12px; font-size:20px; }
.top-tools-panel-content p{ margin:0 0 12px; line-height:1.5; }
.top-tools-panel-content a{ color: var(--tool-color); text-decoration:underline; }
.top-tools-panel-map{ background-color:#3f7fb3; background-image:url("images/polygon-map.png"); background-size:cover; background-position:center; }
.top-tools-panel-map .top-tools-panel-inner{ max-width:1400px; }
.top-tools-panel-map-content{ width:100%; }
.map-header{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; align-items:flex-start; }
.map-header h3{ margin:0; font-size:16px; letter-spacing:0.04em; }
.map-header-details p{ margin:0 0 6px; }
.map-header a{ color:#fff; text-decoration:none; font-size:14px; }
.map-divider{ height:1px; background:rgba(255,255,255,0.35); margin:18px 0 24px; }
.map-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:22px 26px; }
.map-card h4{ margin:0 0 6px; font-size:14px; }
.map-card p{ margin:0 0 6px; font-size:13px; }
.map-link{ display:block; color:#fff; text-decoration:none; font-size:13px; margin-bottom:4px; }
.map-link::after{ content:" ›"; }
.top-tools-form{ flex:1; min-width:280px; display:flex; flex-direction:column; gap:16px; }
.top-tools-form label{ font-size:13px; text-transform:none; display:block; margin-bottom:8px; }
.top-tools-form .form-row-split{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.top-tools-form .form-field{ display:flex; flex-direction:column; }
.top-tools-form input,
.top-tools-form select,
.top-tools-form textarea{ width:100%; padding:12px 12px; border-radius:4px; border:1px solid transparent; background:#fff; color:#333; font-size:14px; }
.top-tools-form textarea{ resize:vertical; min-height:110px; }
.top-tools-form input::placeholder{ color: rgba(0,0,0,0.5); }
.top-tools-form input:focus,
.top-tools-form select:focus,
.top-tools-form textarea:focus{ outline:2px solid rgba(255,255,255,0.6); outline-offset:2px; }
.top-tools-form .consent-row label{ display:flex; align-items:flex-start; gap:8px; font-size:13px; line-height:1.4; margin:0; }
.top-tools-form .consent-row input{ width:auto; margin-top:2px; }
.top-tools-form fieldset{ border:0; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.top-tools-form legend{ font-size:12px; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:8px; }
.top-tools-form .submit-row{ display:flex; justify-content:flex-end; }
.top-tools-form button{ background:#e66f19; color:#fff; border:0; padding:10px 20px; font-size:14px; border-radius:4px; cursor:pointer; }
.top-tools-form button:hover,
.top-tools-form button:focus{ background:#ff7f28; }
/* make touch targets larger for accessibility */
.tool-link { color: #fff; }     /* icon follows this */
.icon { width:20px; height:20px; }

.top-tools li{ border-radius:4px; }
.top-tools a{ padding:6px 0; display:inline-flex; align-items:center }
/* Responsive behavior: show icons only on narrow screens */
@media (max-width: 640px){
    .top-tools{ padding:6px 8px }
    .top-tools .label{ display:none }
    .top-tools-panel{ padding:18px 12px 22px; }
    .top-tools-panel-inner{ flex-direction:column; gap:24px; }
    .top-tools-form .form-row-split{ grid-template-columns:1fr; gap:16px; }
    .top-tools-close{ top:10px; right:12px; }
    /* Hide some icons on very small screens to match mobile design */
    .top-tools li:nth-child(n+4) { display: none; }
}
/* Very small screens: slightly smaller padding */
@media (max-width: 360px){
    .top-tools li{ padding:6px 8px }
    .top-tools .icon{ width:clamp(12px, 4vw, 16px); height:clamp(12px, 4vw, 16px) }
}

/* Main navigation styles */
.main-nav{ position:fixed; top:50px; left:0; right:0; width:100%; z-index:1000; background:#fff; border-top:1px solid #eee; font-family: var(--brandon-font); box-shadow:0 2px 4px rgba(0,0,0,0.05); height:60px }
.nav-inner{ max-width:1400px; margin:0 auto; display:flex !important; flex-direction:row !important; align-items:center !important; padding:0 40px; gap:60px; position:relative; width:100%; overflow:visible; justify-content:flex-start; height:60px; min-width:0 }

/* Underline that sits at the bottom of the navigation container and moves under active/hovered item */
.nav-underline{ position:absolute; bottom:0; left:0; height:2px; background:var(--tool-bg); width:0; transition:left .36s cubic-bezier(.2,.9,.3,1), width .36s cubic-bezier(.2,.9,.3,1), opacity .12s; border-radius:1px; opacity:0; will-change:left, width, opacity }
@media (max-width: 900px){ .nav-underline{ display:none } }
.nav-logo{ display:flex; align-items:center; flex-shrink:0 }
.nav-logo{ display:flex; align-items:center; flex-shrink:0 }
.nav-logo img{ height:32px; display:block; transition:height .12s ease }

/* Slightly larger screens can expand the logo a bit */
@media (min-width: 1400px){ .nav-logo img{ height:36px } }
.nav-mobile-icons{ display:none; align-items:center; gap:16px; margin-left:auto; margin-right:0 }
.nav-mobile-icon{ display:flex; align-items:center; justify-content:center; width:auto; height:auto; color:#58585a; text-decoration:none }
.nav-icon-24{ width:24px; height:24px; display:block; filter: brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0%) contrast(100%) }
.nav-icon-envelope{ width:20px; height:20px; stroke:#58585a; fill:none; flex-shrink:0 }
.nav-search-link{ gap:6px }
.nav-icon-search-img{ width:20px; height:20px; display:block; filter: brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0%) contrast(100%); flex-shrink:0 }
.nav-search-text{ font-size:14px; color:#58585a; white-space:nowrap }

/* Search Overlay */
.search-overlay{ position:fixed; top:50px; left:0; right:0; background:#009fe3; z-index:2000; display:none; align-items:center; justify-content:center; padding:20px 60px; min-height:80px; box-shadow:0 2px 8px rgba(0,0,0,0.1) }
.search-overlay[aria-hidden="false"]{ display:flex }
.search-overlay-close{ position:absolute; top:16px; right:20px; width:32px; height:32px; border-radius:50%; background:#fff; border:none; color:#000; font-size:20px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:2001; font-weight:400 }
.search-overlay-close:hover{ background:#f0f0f0 }
.search-overlay-content{ display:flex; align-items:center; gap:16px; max-width:800px; width:100%; padding:0; justify-content:center }
.search-overlay-icon{ width:28px; height:28px; color:#fff; flex-shrink:0; opacity:1 }
.search-overlay-icon svg{ width:100%; height:100%; stroke-width:2.5 }
.search-overlay-input-wrapper{ flex:0 1 auto; position:relative; min-width:200px }
.search-overlay-placeholder{ display:block; color:#fff; font-size:20px; margin-bottom:10px; font-weight:400; white-space:nowrap }
.search-overlay-line{ width:100%; height:2px; background:#fff }

/* Damage Report Banner */
.damage-report-banner{ position:fixed; top:50px; left:0; right:0; background:#009fe3; z-index:2000; display:none; padding:50px 60px 60px; box-shadow:0 4px 12px rgba(0,0,0,0.15) }
.damage-report-banner[aria-hidden="false"]{ display:block }
.damage-report-close{ position:fixed; top:8px; right:18px; width:28px; height:28px; border-radius:50%; background:#fff; border:none; color:#009fe3; font-size:18px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:2001; font-weight:400 }
.damage-report-close:hover{ background:#f0f0f0 }
.damage-report-content{ max-width:1400px; margin:0 auto }
.damage-report-heading{ color:#fff; font-size:32px; font-weight:400; text-align:center; margin:0 0 40px; padding:0 }
.damage-report-center-section{ display:flex; align-items:center; justify-content:center; margin-bottom:50px }
.damage-report-phone{ display:flex; align-items:center; gap:15px }
.damage-report-icon{ width:28px; height:28px; flex-shrink:0; stroke:#fff; fill:none }
.phone-number{ color:#fff; font-size:42px; font-weight:700; line-height:1 }
.damage-report-grid{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:60px; align-items:start; position:relative }
.damage-report-column{ border-left:1px solid rgba(255,255,255,0.3); padding-left:40px }
.damage-report-column:first-child{ border-left:none; padding-left:0 }
.damage-report-column h3{ color:#fff; font-size:18px; font-weight:600; margin:0 0 20px; padding:0 }
.damage-report-link{ display:flex; align-items:center; gap:12px; color:#fff; text-decoration:none; font-size:16px; transition:opacity 0.2s }
.damage-report-link:hover{ opacity:0.8 }
.damage-report-tips{ display:flex; flex-direction:column; gap:12px }
.damage-report-tip-link{ color:#fff; text-decoration:none; font-size:14px; line-height:1.6; transition:opacity 0.2s }
.damage-report-tip-link:hover{ opacity:0.8 }

/* Mobile damage report banner adjustments */
@media (max-width: 900px) {
    .damage-report-banner {
        top: 60px;
        padding: 30px 20px 40px;
    }
    .damage-report-close {
        top: 16px;
        right: 16px;
        width: 28px;
        height: 28px;
        font-size: 18px;
    }
    .damage-report-heading {
        font-size: 24px;
        margin-bottom: 30px;
    }
    .damage-report-center-section {
        margin-bottom: 40px;
    }
    .phone-number {
        font-size: 28px;
    }
    .damage-report-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .damage-report-column {
        border-left: none;
        padding-left: 0;
        border-top: 1px solid rgba(255,255,255,0.3);
        padding-top: 30px;
    }
    .damage-report-column:first-child {
        border-top: none;
        padding-top: 0;
    }
    .damage-report-column h3 {
        font-size: 16px;
        margin-bottom: 16px;
    }
    .damage-report-link {
        font-size: 14px;
    }
    .damage-report-tip-link {
        font-size: 13px;
    }
}

/* Mobile search overlay adjustments */
@media (max-width: 900px) {
    .search-overlay {
        top: 60px;
        padding: 16px 50px;
        min-height: 70px;
    }
    .search-overlay-close {
        top: 14px;
        right: 16px;
        width: 28px;
        height: 28px;
        font-size: 18px;
    }
    .search-overlay-content {
        gap: 12px;
        max-width: 100%;
    }
    .search-overlay-icon {
        width: 24px;
        height: 24px;
    }
    .search-overlay-placeholder {
        font-size: 18px;
        margin-bottom: 8px;
    }
    .search-overlay-line {
        height: 1.5px;
    }
}

.nav-toggle{ display:none; border:0; background:transparent; padding:8px; margin-left:16px; flex-shrink:0 }
.nav-toggle .hamburger{ width:22px; height:2px; background:#58585a; display:block; position:relative }
.nav-toggle .hamburger::before, .nav-toggle .hamburger::after{ content:''; position:absolute; left:0; right:0; height:2px; background:#58585a }
.nav-toggle .hamburger::before{ top:-6px }
.nav-toggle .hamburger::after{ top:6px }

.nav-list{ list-style:none; display:flex !important; flex-direction:row !important; margin:0; padding:0; margin-left:0; gap:22px; align-items:center; flex-wrap:nowrap !important }
.nav-item{ position:static; display:flex !important; align-items:center; flex-shrink:0; width:auto !important }
/* Main Navigation Links */
/* Main Navigation Links */
.nav-link{ 
    font-family: Brandon, "Calibri W01 Regular_904604", helvetica, sans-serif;
    color: rgb(88, 88, 90);
    font-size: 13px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: normal;
    padding: 0 15px; /* Horizontal padding only */
    display: flex; /* Flex container */
    align-items: center; /* Center text vertically */
    justify-content: center;
    height: 100%;
    text-decoration: none;
    position: relative; /* Context for underline */
    white-space: nowrap;
    border-bottom: none;
    transition: color 0.2s ease;
}

/* Remove span styling - text is handled by parent flex */


/* Hover Effect using ::after pseudo-element on CONTAINER (.nav-link) */
/* Matches reference site: underline spans full padding width */
.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px !important; /* Enforce 2px thickness strictly */
    background-color: rgb(0, 159, 227);
    transition: width 0.25s ease-out, left 0.25s ease-out;
    z-index: 1100; /* Higher than megamenu (1000) to sit on top */
}

.nav-link:hover::after,
.nav-link:focus::after, 
.nav-item.active > .nav-link::after { 
    width: 100%;
    left: 0;
}

.nav-link:hover,
.nav-link:focus, 
.nav-item.active > .nav-link {
    color: rgb(88, 88, 90);
}



.nav-item:hover > .nav-link,
.nav-item:focus-within > .nav-link, 
.nav-item.active > .nav-link {
    color: rgb(88, 88, 90); 
}

/* Mega menu placeholder styles (full-bleed, subtle bottom shadow) */
.megamenu{ position:absolute; left:0; right:0; top:100%; display:none; background:#fff; border-top:1px solid #eee; box-shadow:0 6px 10px rgba(0,0,0,0.04); z-index:1000; padding:18px 0; margin-top:-1px }
.megamenu-inner{ max-width:none; width:100%; margin:0; padding:0 }

/* Three-column mega layout (image + list + sublist) */
.megamenu-grid{ display:grid; grid-template-columns:400px 1fr 300px; gap:50px; align-items:start; margin:18px }
.megamenu-grid.no-sub{ grid-template-columns:360px 1fr }
.megamenu.case-studies .megamenu-grid { grid-template-columns: 1fr; gap: 0; }
.megamenu.case-studies .megamenu-list-wrap { max-width: 100%; }
.megamenu-image img{ width:400px; height:250px; object-fit:cover; display:block; border-radius:0 }
.megamenu-caption{ color:#58585a; font-size:13px; margin-top:10px }
.megamenu-sub{ transition:opacity .12s linear }

/* About-specific layout: large image on the left, narrower center list */
/* About-specific layout: large image on the left, narrower center list */
/* About specific overrides removed to match generic style exactly */
/*.megamenu.about .megamenu-grid{ grid-template-columns:400px 1fr 1fr; align-items:start; gap: 50px; }*/
/*.megamenu.about .megamenu-list-wrap{ width:100%; padding-left:8px }*/
.megamenu.about .megamenu-image img{ width: 400px; height: 250px; object-fit:cover; border-radius:0 }

/* About center list: vertical stacked items with consistent spacing and dividing lines */
/* .megamenu.about .megamenu-list{ display:block; padding:0; margin:0 } */
/* .megamenu.about .megamenu-list-item{ border-bottom:0.8px solid rgba(217, 217, 217, 0.6) } */
/* .megamenu.about .megamenu-list-item:last-child{ border-bottom:0 } */
.megamenu.about .megamenu-list-item.header{ padding:8px 0 12px; margin:0 0 4px; color:#58585a; font-weight:400; text-transform:none }
/* .megamenu.about .megamenu-list-item a{ display:flex; align-items:center; justify-content:space-between; padding:0 8px; color:#58585a; text-decoration:none; width:100%; height:56px; box-sizing:border-box; flex-wrap:nowrap; white-space:nowrap } */
/* .megamenu.about .megamenu-list-item a:hover .title{ color: color-mix(in srgb, currentColor 80%, black 20%) } */

/* .megamenu.about .megamenu-list-item.header .title{ text-decoration:none; color:#58585a; font-weight:600; padding-bottom:8px; display:block; white-space:normal; line-height:1.5 } */

/* Center the right column in the About layout for visual balance */
/* .megamenu.about .megamenu-sub{ padding-left:32px; align-self:center } */

/* Make active center row visually match screenshot: simple text emphasis */
.megamenu.about .megamenu-list-item.active a{ background:none; color:#58585a; font-weight: 300; }
.megamenu.about .megamenu-list-item.active .title{ text-decoration: none; color:#58585a; font-weight:300 }

/* Darker chevrons for the About active row */
/* Removed specific overrides for reduced chevron sizes */

/* Right column styling to match screenshot */
.megamenu.about .megamenu-sub{ padding-left:32px; }
.megamenu.about .sub-title{ margin:0 0 12px; padding-bottom:0; color:#58585a; font-size:14px; font-weight:600 }
.megamenu.about .sub-list li{ padding:10px 0; border-bottom:1px solid #eee }
.megamenu.about .sub-list li.active a{ color:#58585a; font-weight:300;  }

/* Main list (middle column) */
/* Global nav + megamenu typography: ensure a consistent line-height and weight */
.nav-link, .megamenu-list-item a, .megamenu-list-item .title, .sub-list li a, .megamenu-caption { line-height:1.5; font-weight:300 }
.sub-title, .sub-title a { font-weight: 600; line-height:1.5; color:#58585a; text-decoration:none }

.megamenu-list-wrap{ max-width:520px; max-height: 420px; overflow-y: auto; padding-right: 8px; scrollbar-width: thin; scrollbar-color: rgba(0,0,0,0.2) transparent; }
.megamenu-list-wrap::-webkit-scrollbar { width: 6px; }
.megamenu-list-wrap::-webkit-scrollbar-thumb { background-color: rgba(0,0,0,0.2); border-radius: 3px; }
.megamenu-list-wrap::-webkit-scrollbar-track { background: transparent; }
.megamenu-list{ list-style:none; margin:0; padding:0 6px;letter-spacing: 0.3px }
.megamenu-list-item{ border-bottom:0.8px solid rgba(217, 217, 217, 0.6); }
.megamenu-list-item a{ display:flex; align-items:center; justify-content:space-between; padding:0 8px; color:#58585a; text-decoration:none; font-size:15px; line-height:1.5; height:56px; box-sizing:border-box; flex-wrap:nowrap; white-space:nowrap }
.megamenu-list-item + .megamenu-list-item{ border-top:0 }
.megamenu-list-item .title{ font-size:15px; transition: transform 0.2s ease }
.megamenu-list-item .chev{ width:28px; height:28px; fill:currentColor; opacity:1; transition: transform .14s ease, fill .14s ease; flex-shrink:0; margin-left:auto; display:block }

/* hover/active arrow behavior: larger and bolder look via transform */
.megamenu-list-item a:hover .chev, .megamenu-list-item a:focus .chev{ fill:var(--tool-bg); transform: translateX(4px) }
.megamenu-list-item.active a .chev{ fill:var(--tool-bg); transform: translateX(4px) }

/* reduce spacing and tighten lines to match reference */
.megamenu-list-item a .title{ display:block; color:#58585a; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; text-align:left; line-height:1.3; min-width:0 }
.megamenu-list-item a{ display:flex; align-items:center; justify-content:space-between; padding:0 8px; color:#58585a; text-decoration:none; font-size:15px; line-height:1.5; height:56px; box-sizing:border-box; flex-wrap:nowrap; white-space:nowrap; max-width:100% }

/* active / selected item */
/* active / selected item */
.megamenu-list-item.active a{ background:none; color:#58585a; font-weight:300; letter-spacing: normal }
.megamenu-list-item.active a .chev{ fill:var(--tool-bg) }

/* hover + focus state for list items */
.megamenu-list-item a:hover .title, .megamenu-list-item a:focus .title{ color: inherit; transform: translateX(4px) }
.megamenu-list-item a:hover .chev, .megamenu-list-item a:focus .chev{ fill:var(--tool-bg) }

/* underline titles on hover/focus for all menu links */
.megamenu-list-item a:hover .title,
.megamenu-list-item a:focus .title {
    /* fallback: use the current text color and underline it */
    color: currentColor;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-decoration-color: currentColor;
    text-underline-offset: 2px;
}

/* progressively enhance: if color-mix is supported, darken the current color slightly */
@supports (color: color-mix(in srgb, currentColor 80%, black 20%)) {
    .megamenu-list-item a:hover .title,
    .megamenu-list-item a:focus .title {
        color: color-mix(in srgb, currentColor 80%, black 20%);
        text-decoration-color: color-mix(in srgb, currentColor 80%, black 20%);
    }
}

/* prevent active items from being underlined */
.megamenu-list-item.active .title { text-decoration: none; }

/* Sublist (right column) */
.megamenu-sub{ border-left:1px solid #eee; padding-left:28px; display:block; max-height: 420px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(0,0,0,0.2) transparent; }
.megamenu-sub::-webkit-scrollbar { width: 6px; }
.megamenu-sub::-webkit-scrollbar-thumb { background-color: rgba(0,0,0,0.2); border-radius: 3px; }
.megamenu-grid.no-sub .megamenu-sub{ display:none }
.sub-inner{ max-height:none; overflow:visible; padding-right:8px }
.sub-inner h4{ margin:6px 0 14px; color:#58585a; font-size:15px; font-weight:300 }
.sub-inner h4 a{ color:#58585a; text-decoration:none; }
.sub-list{ list-style:none; margin:0; padding:0 }
.sub-list li{ padding:8px 0; border-bottom:1px solid transparent }
.sub-list li a{ color:#58585a; text-decoration:none; font-size:14px; display:flex; align-items:center; justify-content:space-between; gap:8px }
.sub-list li a:hover{ color: #58585a; text-decoration: none; }
.sub-list li a .chev{ width:12px; height:12px; fill:currentColor; opacity:0.9; flex-shrink:0; transition: transform .14s ease }
.sub-list li a:hover .chev{ transform: translateX(4px) }

/* slim scrollbar in sublist */
.sub-inner::-webkit-scrollbar{ width:8px }
.sub-inner::-webkit-scrollbar-thumb{ background:rgba(0,0,0,0.06); border-radius:4px }

/* utility */
.hidden{ display:none }

/* Mega Menu Container - reference match */
.megamenu {
    display: none;
    position: absolute; /* Relative to nav-item or nav-inner */
    top: 100%;
    left: 0;
    right: 0;
    width: 100%;
    background: #fff;
    padding: 40px 25px; /* Reference padding */
    box-shadow: 0 2px 4px rgba(0,0,0,0.3); /* Reference shadow */
    z-index: 900;
    border-top: 1px solid #eee;
}

.megamenu-inner {
    max-width: 1430px;
    margin: 0 auto;
    width: 100%;
}

/* Typography & List Styles */
.megamenu-list-item { 
    border-bottom: 0.8px solid rgba(217, 217, 217, 0.6); /* Reference border */
}

.megamenu-list-item a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0; /* Vertical padding from reference measurements approx */
    color: #58585a;
    text-decoration: none;
    font-size: 15px; /* Reference size */
    font-weight: 300; /* Lighter weight to match Nav */
    line-height: 1.5;
}

.megamenu-list-item.header {
    font-size: 14px; /* Reference header size */
    font-weight: 300;
    color: #58585a;
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: none;
}

/* Remove chevron from generic items if not desired, or style it */
.megamenu-list-item .chev {
    width: 28px;
    height: 28px;
    fill: currentColor;
    opacity: 1;
}

/* Responsive: collapse into toggle */
@media (max-width: 900px){
    .megamenu-grid{ grid-template-columns:1fr; gap:12px; margin:12px }
    .megamenu-image img{ width:100%; height:auto; max-height:180px; object-fit:cover; border-radius:0 }
    .megamenu.about .megamenu-image img{ width:100%; height:auto; max-height:160px; object-fit:cover; border-radius:0 }
    .megamenu-list-item a{ padding:12px 8px }
    .megamenu{ padding:12px 0 }
    /* Ensure submenu items with chevrons are visible on mobile */
    .sub-list li a{ display:flex; align-items:center; justify-content:space-between; gap:8px }
    .sub-list li a .chev{ width:12px; height:12px; flex-shrink:0 }
}

/* Small screens adjustments */
@media (max-width: 360px){
    .megamenu-image img{ max-height:140px }
}

/* small animation */
@keyframes megaFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.nav-item:hover > .megamenu{ animation: megaFadeIn .14s ease-out }


/* Ensure nav link underline shows on hover */
.nav-item:hover > .nav-link, .nav-item:focus-within > .nav-link{ border-bottom-color: var(--tool-bg); color: var(--tool-bg) }

        /* Main Content Styles */
        .main-content {
            max-width: 1400px;
            margin: 0 auto;
            padding: 60px 80px 200px 80px;
            background-color: #fff !important;
        }

        .content-wrapper {
            max-width: 1300px;
            margin: 0 auto;
        }

        .content-wrapper h1 {
            font-size: 32px;
            font-weight: 400;
            color: #222;
            margin: 0 0 12px 0;
            line-height: 1.2;
            letter-spacing: -0.3px;
        }

        .content-wrapper h2 {
            font-size: 22px;
            font-weight: 400;
            color: #222;
            margin: 20px 0 8px 0;
            line-height: 1.3;
            letter-spacing: -0.2px;
        }

        .content-wrapper p {
            font-size: 16px;
            line-height: 1.7;
            color: #333;
            margin: 0 0 12px 0;
        }

        .content-wrapper ul {
            list-style: none;
            padding: 0;
            margin: 0 0 12px 0;
        }

        .content-wrapper ul li {
            font-size: 16px;
            line-height: 1.7;
            color: #333;
            margin: 0 0 8px 0;
            padding-left: 20px;
            position: relative;
        }

        .content-wrapper ul li::before {
            content: "•";
            position: absolute;
            left: 0;
            color: #333;
            font-weight: normal;
        }

        .content-wrapper section {
            margin-bottom: 20px;
        }

        /* Hide mobile line breaks on desktop */
        .mobile-break {
            display: none;
        }


        
/* Responsive tweaks */
/* Responsive tweaks */
@media (max-width: 1200px){
    .nav-inner{ padding:10px 16px }
    .nav-list{ gap:12px }
    .nav-link{ font-size:12px; padding:8px 1px 12px }
}
@media (max-width: 900px){
    /* ensure toggled nav remains usable on small devices */
    .nav-list{ padding:12px }
}
@media (max-width: 640px){
    .top-tools ul{ flex-wrap:wrap; gap:6px }
    .top-tools li{ padding:8px 10px }
}
@media (min-width:1400px){
    .nav-inner{ max-width:100%; padding:10px 40px 12px }
    .nav-link{ font-size:14px }
}

/* reduce megamenu paddings on small screens to keep content visible */
@media (max-width:900px){
    .megamenu-inner{ padding:0 12px }
    .sub-inner{ max-height:none; overflow:visible }
}

/* Responsive Content Styles - Tablet */
@media (max-width: 1024px) {
    .main-content {
        padding: 50px 60px 180px 60px;
    }

    .content-wrapper {
        max-width: 100%;
    }

    .content-wrapper h1 {
        font-size: 28px;
        margin: 0 0 10px 0;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper h2 {
        font-size: 20px;
        margin: 18px 0 6px 0;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper p {
        font-size: 15px;
        line-height: 1.7;
        margin: 0 0 10px 0;
        color: #333;
    }

    .content-wrapper ul li {
        font-size: 15px;
        line-height: 1.7;
        margin: 0 0 8px 0;
        padding-left: 18px;
        color: #333;
    }

    .content-wrapper section {
        margin-bottom: 18px;
    }

    /* Hide mobile line breaks on tablet */
    .mobile-break {
        display: none;
    }
}

/* Responsive Content Styles - Mobile */
@media (max-width: 768px) {
    .main-content {
        padding: 40px 40px 120px 40px;
    }

    .content-wrapper h1 {
        font-size: 24px;
        margin: 0 0 10px 0;
        line-height: 1.2;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper h2 {
        font-size: 18px;
        margin: 16px 0 6px 0;
        line-height: 1.3;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper p {
        font-size: 14px;
        line-height: 1.6;
        margin: 0 0 10px 0;
        color: #333;
    }

    .content-wrapper ul li {
        font-size: 14px;
        line-height: 1.6;
        margin: 0 0 8px 0;
        padding-left: 16px;
        color: #333;
    }

    .content-wrapper section {
        margin-bottom: 16px;
    }

    /* Hide mobile breaks on tablet */
    .mobile-break {
        display: none;
    }
}

/* Responsive Content Styles - Small Mobile */
@media (max-width: 640px) {
    .main-content {
        padding: 30px 32px 100px 32px;
    }

    .content-wrapper h1 {
        font-size: 20px;
        margin: 0 0 8px 0;
        line-height: 1.2;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper h2 {
        font-size: 16px;
        margin: 14px 0 5px 0;
        line-height: 1.3;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper p {
        font-size: 13px;
        line-height: 1.6;
        margin: 0 0 8px 0;
        color: #333;
    }

    .content-wrapper ul li {
        font-size: 13px;
        line-height: 1.6;
        margin: 0 0 6px 0;
        padding-left: 14px;
        color: #333;
    }

    .content-wrapper section {
        margin-bottom: 14px;
    }
}

/* Responsive Content Styles - Very Small Mobile */
@media (max-width: 480px) {
    .main-content {
        padding: 25px 28px 80px 28px;
    }

    .content-wrapper h1 {
        font-size: 18px;
        margin: 0 0 8px 0;
        line-height: 1.2;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper h2 {
        font-size: 15px;
        margin: 12px 0 5px 0;
        line-height: 1.3;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper p {
        font-size: 12px;
        line-height: 1.5;
        margin: 0 0 8px 0;
        color: #333;
    }

    .content-wrapper ul li {
        font-size: 12px;
        line-height: 1.5;
        margin: 0 0 6px 0;
        padding-left: 14px;
        color: #333;
    }

    .content-wrapper section {
        margin-bottom: 12px;
    }
}

/* Responsive Content Styles - Very Small Mobile */
@media (max-width: 360px) {
    .main-content {
        padding: 20px 24px 70px 24px;
    }

    .content-wrapper h1 {
        font-size: 17px;
        margin: 0 0 8px 0;
        line-height: 1.2;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper h2 {
        font-size: 14px;
        margin: 12px 0 4px 0;
        line-height: 1.3;
        font-weight: 400;
        color: #222;
    }

    .content-wrapper p {
        font-size: 11px;
        line-height: 1.5;
        margin: 0 0 6px 0;
        color: #333;
    }

    .content-wrapper ul li {
        font-size: 11px;
        line-height: 1.5;
        margin: 0 0 5px 0;
        padding-left: 12px;
        color: #333;
    }

    .content-wrapper section {
        margin-bottom: 12px;
    }
}

/* Desktop only safety */
@media (min-width: 901px){
    .main-nav{ 
        display:block !important; 
        position:fixed !important; 
        top:49px !important;    /* Changed from 50px to 49px (matches blue bar height) */
        left:0 !important; 
        right:0 !important; 
        width:100% !important; 
        height:67.5px !important; 
        background:#fff !important; 
        box-shadow: inset 0 -1px 0 #e1e1e1 !important; 
        z-index: 1000 !important;
    }
    .nav-inner {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 0 !important;
        width: 100% !important;
        max-width: 1430px !important;
        height: 100% !important; /* Pass down height */
        padding: 0 !important;   /* Control padding carefully */
        margin: 0 auto !important;
    }
    .nav-list {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 0 !important; 
        margin-left: auto !important;
        height: 100%;
        align-items: stretch !important; /* Stretch items to full height */
    }
    .nav-link{ 
        display: flex !important; /* Use flex to center text vertically */
        align-items: center !important;
        height: 100% !important;
        line-height: normal !important; 
        padding: 0 15px !important; /* Remove vertical padding, let flex center it */
        font-size: 13px !important; /* Reduced to match reference */
        font-weight: 300 !important; /* Light weight as requested */
        letter-spacing: normal !important; /* Standard spacing (closer together) */
    }
    /* Duplicate nav-list rule was here - removed */
    .nav-list > .nav-item{ display:flex !important; flex-direction:row !important; align-items:stretch !important; flex-shrink:0 !important; width:auto !important; min-width:fit-content !important; position:static !important; vertical-align:middle !important; height: auto !important }
    .nav-item{ display:flex !important; flex-direction:row !important; align-items:stretch !important; flex-shrink:0 !important; width:auto !important; min-width:fit-content !important; position:static !important; height: auto !important }
    .nav-link{ display:flex !important; align-items:center !important; height:100% !important; line-height:normal !important; white-space:nowrap !important; width:auto !important; padding:0 15px !important; position: relative !important }
}

/* Responsive: collapse into toggle */

@media (max-width: 900px){
    /* Hide top-tools on mobile */
    .top-tools{ display:none !important }
    /* Adjust main-nav position for mobile */
    .main-nav{ top:0 !important }
    body{ padding-top:60px }
    /* Adjust nav-inner padding for mobile */
    .nav-inner{ padding:0 16px !important; justify-content:space-between !important }
    /* Show mobile icons in header */
    .nav-mobile-icons{ display:flex !important; gap:16px; margin-left:auto; margin-right:0; align-items:center }
    .nav-mobile-icon{ display:flex; align-items:center; justify-content:center; width:auto; height:auto; color:#58585a; text-decoration:none }
    .nav-toggle{ display:block; margin-left:16px }
    .nav-list{ position:fixed; right:0; left:0; top:60px; background:#fff; flex-direction:column !important; align-items:flex-start; gap:0; padding:10px 12px; display:none !important; box-shadow:0 8px 20px rgba(0,0,0,0.08); z-index:50; max-height:calc(100vh - 60px); overflow-y:auto }
    .nav-list.open{ display:flex !important }
    .nav-item{ width:100%; }
    .nav-link{ width:100%; padding:12px 8px; border-bottom:1px solid #f0f0f0 }
    .megamenu{ position:static; width:100%; transform:none; box-shadow:none; padding:12px 8px; display:none; max-height:none; overflow:visible }
    .nav-item.open > .megamenu{ display:block }
    /* Remove left border on mobile for submenu */
    .megamenu-sub{ border-left:none; padding-left:0 }
    /* Stack megamenu content vertically on mobile */
    .megamenu-grid{ grid-template-columns:1fr !important; gap:16px }
    .megamenu-image{ order:1 }
    .megamenu-list-wrap{ order:2 }
    .megamenu-sub{ order:3 }
}

/* Small screens adjustments */
@media (max-width: 360px){
    .nav-logo img{ height:28px }
    .nav-link{ font-size:13px }
} 
.book-images {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 40px 16px 40px 16px;
    margin-bottom: 0;
    margin-top: 40px;
    flex-shrink: 0;
    background: #fff;
}

.book-images-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    padding: 0 16px;
    justify-items: center;
}

.book-images-container img {
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    display: block;
}

/* Desktop: show 4 images in a row */
@media (min-width: 901px) {
    .book-images-container {
        display: flex;
        flex-direction: row;
        gap: 20px;
        max-width: 800px;
        margin: 0 auto;
        justify-content: center;
        align-items: center;
    }
    
    .book-images-container img {
        max-width: 180px;
    }
}

/* Footer Styles */
.site-footer {
    background-color: #009fe3;
    color: #fff;
    font-family: var(--brandon-font);
    width: 100%;
    margin-top: auto;
    margin-bottom: 0;
    position: relative;
    flex-shrink: 0;
}

.footer-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 16px;
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: stretch;
}

@media (min-width: 901px) {
    html {
        background-color: #fff;
        height: 100%;
    }
    
    body {
        background-color: #fff;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
    }
    
    .site-footer {
        margin-top: auto;
        flex-shrink: 0;
    }
    
    .footer-content {
        flex-direction: row;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 40px;
        padding: 30px 16px;
    }
    
    .footer-column {
        flex: 0 0 auto;
    }
    
    .footer-column:first-child {
        min-width: 180px;
    }
    
    .footer-column:nth-child(2) {
        min-width: 180px;
    }
    
    .footer-contact-column {
        min-width: 280px;
        display: flex;
        flex-direction: column;
        position: relative;
    }
    
    .footer-contact-column .contact-info-wrapper {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        gap: 40px;
        width: 100%;
    }
    
    .footer-contact-column .contact-info {
        flex: 0 0 auto;
    }
    
    .footer-contact-column .footer-social-column {
        flex: 0 0 auto;
        margin-top: 0;
    }
}

.footer-social-column {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-end;
    margin-top: 0;
    flex: 0 0 auto;
}

@media (min-width: 901px) {
    .footer-social-column {
        align-items: flex-start;
        justify-content: flex-start;
    }
    
    .footer-social-column .social-icons {
        flex-direction: row;
        gap: 16px;
    }
}

.footer-column h3 {
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 12px 0;
    /* text-transform: uppercase; */
    letter-spacing: 0.5px;
    line-height: 1.2;
}

.footer-accordion {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.footer-accordion-toggle {
    width: 100%;
    background: none;
    border: none;
    padding: 0;
    margin: 0 0 12px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    color: #fff;
    text-align: left;
}

.footer-accordion-toggle h3 {
    margin: 0;
}

.footer-chevron {
    width: 20px;
    height: 20px;
    stroke: #fff;
    flex-shrink: 0;
    margin-left: 12px;
    transition: transform 0.3s ease;
}

/* Mobile: chevron points right by default, rotates down when open */
@media (max-width: 900px) {
    .footer-chevron {
        transform: rotate(-90deg);
        width: 16px;
        height: 16px;
    }
    
    .footer-accordion-toggle[aria-expanded="true"] .footer-chevron {
        transform: rotate(0deg);
    }
    
    /* Make accordion toggles look like links with right arrow */
    .footer-accordion-toggle {
        width: 100%;
        text-align: left;
        justify-content: space-between;
    }
    
    .footer-accordion-toggle h3 {
        font-weight: 600;
        font-size: 16px;
    }
}

.footer-accordion-content {
    list-style: none;
    margin: 0;
    padding: 0 0 12px 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
}

.footer-accordion-content.open {
    max-height: 500px;
    padding-bottom: 12px;
}

.footer-accordion-content li {
    margin-bottom: 0;
}

.footer-contact-column h3 {
    margin: 0 0 12px 0;
}

.footer-column ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer-column ul li {
    margin-bottom: 0;
}

.footer-column ul li:not(:last-child) {
    margin-bottom: 8px;
}

.footer-column ul li a {
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    line-height: 1.5;
    display: inline-block;
    transition: opacity 0.2s ease;
}

.footer-column ul li a:hover,
.footer-column ul li a:focus {
    opacity: 0.8;
    text-decoration: underline;
}

.contact-info {
    color: #fff;
    font-size: 14px;
    line-height: 1.3;
    flex: 0 0 auto;
}

.contact-info p {
    margin: 0;
    line-height: 1.3;
}

.contact-info p:not(:last-child) {
    margin-bottom: 4px;
}

.contact-info p:first-child {
    white-space: nowrap;
}

.contact-info a {
    color: #fff;
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.2s ease;
    line-height: 1.5;
}

.contact-info a:hover,
.contact-info a:focus {
    opacity: 0.8;
    text-decoration: underline;
}

.social-icons {
    display: flex;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 0;
    justify-content: flex-end;
}

@media (min-width: 901px) {
    .footer-social-column .social-icons {
        flex-direction: row;
        gap: 16px;
    }
}

.social-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    text-decoration: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

/* Mobile: smaller social icons, centered */
@media (max-width: 900px) {
    .social-icon {
        width: 32px;
        height: 32px;
    }
}

/* Fix hamburger visibility on very small screens */
@media (max-width: 470px) {


  /* Give the header a bit more usable room */
  .nav-inner {
    padding: 0 12px !important;
    gap: 8px !important;
  }

  /* Hide the "Search" text so icons don't push the hamburger away */
  .nav-search-text {
    display: none !important;
  }

  /* Slightly reduce icon spacing */
  .nav-mobile-icons {
    gap: 10px !important;
    margin-left: auto !important;
  }

  /* Make sure the hamburger is ALWAYS visible and clickable */
  .nav-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;              /* good tap target */
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    margin-left: 6px !important;
    padding: 0 !important;
    z-index: 3000;            /* stay above */
  }

  /* Ensure the bars are visible */
  .nav-toggle .hamburger,
  .nav-toggle .hamburger::before,
  .nav-toggle .hamburger::after {
    background: #58585a !important;
  }

  /* Optional: slightly smaller logo to free space */
  .nav-logo img {
    height: 26px !important;
  }
}

.social-icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.social-icon:hover,
.social-icon:focus {
    opacity: 0.8;
    transform: scale(1.1);
}

.footer-divider {
    width: 100vw;
    height: 1px;
    background-color: #fff;
    margin: 0;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.footer-newsletter {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 16px;
    text-align: center;
}

.footer-newsletter h2 {
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 12px 0;
    letter-spacing: 0.5px;
}

.newsletter-image {
    max-width: 50px;
    width: auto;
    height: auto;
    display: block;
    margin: 0 auto;
}

.footer-legal {
    background-color: #1F6381;
    padding: 12px;
    width: 100%;
}

.footer-legal-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
    justify-content: center;
    font-size: 13px;
}

.footer-legal-link {
    color: #fff;
    text-decoration: none;
    opacity: 0.9;
    transition: opacity 0.2s ease;
    font-size: 13px;
    white-space: nowrap;
}

.footer-legal-link:hover,
.footer-legal-link:focus {
    opacity: 1;
    text-decoration: underline;
}

@media (max-width: 640px) {
    .footer-legal {
        padding: 12px 16px;
    }
    
    .footer-legal-content {
        flex-direction: column;
        gap: 8px;
        text-align: center;
        font-size: 12px;
        justify-content: flex-start;
        align-items: flex-start;
    }
    
    .footer-legal-link {
        font-size: 12px;
        opacity: 0.9;
        white-space: normal;
    }
}

/* Responsive Footer - Mobile only */
@media (max-width: 900px) {
    /* Reduce main content padding on mobile */
    main.main-content {
        padding-top: 40px !important;
        padding-left: 40px !important;
        padding-right: 40px !important;
        padding-bottom: 120px !important;
    }
    
    .site-footer {
        margin-top: 0;
    }
    
    .footer-content {
        flex-direction: column;
        gap: 0;
        padding: 0;
    }
    
    .footer-column {
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        padding: 0;
        width: 100%;
    }
    
    /* Accordion items - Our Services and About Us */
    .footer-accordion {
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        padding: 12px 16px 8px 16px;
    }
    
    .footer-accordion-toggle {
        padding: 0;
        min-height: auto;
        height: 100%;
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .footer-accordion-toggle h3 {
        font-weight: 600;
        font-size: 16px;
        margin: 0;
        line-height: 1.2;
    }
    
    .footer-accordion-content {
        padding: 0;
        margin: 0 0 16px 0;
    }
    
    .footer-accordion-content.open {
        padding-bottom: 0;
        margin-bottom: 16px;
    }
    
    .footer-accordion-content li {
        padding: 4px 0;
    }
    
    .footer-accordion-content li a {
        color: #fff;
        text-decoration: none;
        font-size: 14px;
    }
    
    /* Contact section - always visible, not accordion */
    .footer-contact-column {
        width: 100%;
        padding: 20px 16px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    }
    
    .footer-contact-column h3 {
        margin: 0 0 16px 0;
        padding-top: 0;
        font-weight: 600;
        font-size: 16px;
    }
    
    .contact-info {
        margin-bottom: 20px;
        font-size: 14px;
        line-height: 1.3;
    }
    
    .contact-info p {
        margin: 0 0 4px 0;
    }
    
    .contact-info p:first-child {
        white-space: normal;
    }
    
    .contact-info a {
        color: #fff;
        text-decoration: none;
    }
    
    /* Social icons in contact section on mobile */
    .footer-contact-column .footer-social-column {
        width: 100%;
        padding: 0;
        margin-top: 20px;
        border-bottom: none;
        justify-content: center;
    }
    
    .footer-contact-column .footer-social-column .social-icons {
        padding: 0;
        margin: 0 auto;
        gap: 12px;
        justify-content: center;
    }
    
    .footer-contact-column .footer-social-column .social-icon {
        width: 32px;
        height: 32px;
    }
    
    /* Newsletter section */
    .footer-newsletter {
        padding: 30px 16px;
        text-align: center;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    }
    
    .footer-newsletter h2 {
        margin: 0 0 16px 0;
        font-size: 16px;
        font-weight: 600;
    }
    
    /* Footer legal links - mobile responsive */
    .footer-legal {
        padding: 16px;
        background-color: #1F6381;
    }
    
    .footer-legal-content {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 12px;
        text-align: left;
        align-items: center;
        justify-content: flex-start;
    }
    
    .footer-legal-link {
        font-size: 13px;
        display: inline-block;
        white-space: nowrap;
    }
}

/* Hide footer divider on mobile */
@media (max-width: 900px) {
    .footer-divider {
        display: none;
    }
}

/* Desktop: Always show accordion content */
@media (min-width: 901px) {
    .footer-accordion-toggle {
        pointer-events: none;
        padding: 0;
        margin: 0 0 20px 0;
    }
    
    .footer-chevron {
        display: none;
    }
    
    .footer-accordion-content {
        max-height: none;
        padding: 0;
    }
    
    .footer-accordion {
        border-bottom: none;
    }
    
    .footer-column {
        border-bottom: none;
    }
    
    /* Desktop: Show social icons in contact section, positioned to the right */
    .footer-contact-column {
        display: flex;
        flex-direction: column;
    }
    
    .footer-social-column {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
    }
    
    .footer-social-column .social-icons {
        flex-direction: row;
        gap: 16px;
        margin-top: 0;
        justify-content: flex-start;
    }
    
    .footer-column {
        display: flex;
        flex-direction: column;
    }
    
    /* Reduce main content padding on mobile */
    .main-content {
        padding-top: 40px !important;
        padding-left: 40px !important;
        padding-right: 40px !important;
        padding-bottom: 200px !important;
    }
}

/* Optional: further project styles can go here */


/* =========================================
   FOOTER STYLES (Replicating polygongroup.com/de-DE)
   ========================================= */
.site-footer {
    background-color: #009FE3; /* Polygon Blue */
    color: #fff;
    font-family: 'Brandon', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    font-size: 13px; /* Reduced from 16px to match screenshot */
    padding-top: 30px;
}

.footer-main {
    max-width: 1430px; /* Increased from 1200px to match reference */
    margin: 0 auto;
    padding: 0 15px; /* Base padding */
    box-sizing: border-box;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 25px;
}

.footer-heading {
    color: #fff;
    font-weight: 700;
    font-size: 14px; /* Reduced */
    margin-bottom: 12px;
    margin-top: 0;
}

.footer-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-list li {
    margin-bottom: 8px; /* Tighter spacing */
}

.footer-list a {
    color: #fff;
    text-decoration: none;
    font-weight: 400;
    transition: opacity 0.2s;
    font-size: 13px;
}

.footer-list a:hover {
    opacity: 0.8;
    text-decoration: underline;
}

.footer-contact-info p {
    margin: 0 0 3px;
    line-height: 1.4;
    font-size: 13px;
}

.footer-contact-info a {
    color: #fff;
    text-decoration: none;
}

/* Social Icons (Redesigned) */
.footer-sm-wrapper {
    display: flex;
    justify-content: flex-start;
    padding-top: 36px;
}

.footer-sm-wrapper ul {
    display: flex;
    gap: 15px; /* Spacing between icons */
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-sm-icon i {
    color: #fff;
    font-size: 32px; /* Adjusted to look similar to screenshot */
    transition: opacity 0.2s;
}

.footer-sm-icon a:hover i {
    opacity: 0.8;
}

/* Divider Line */
.footer-divider-line {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    margin: 30px 0 30px;
}

/* Footer Logos Section (Replaces Newsletter) */
.footer-logos {
    display: flex;
    justify-content: center;
    text-align: center;
    padding-bottom: 0;
    width: 100%;
}

.footer-logos-heading {
    color: #fff;
    font-size: 16px; /* Updated to match reference */
    font-weight: 700;
    margin-bottom: 0;
    margin-top: 0;
    padding-top: 15px; /* Added top padding */
    text-align: center;
    text-transform: none;
}

.footer-logos-images {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.footer-logos-images img {
    height: 48px; /* Slightly increased from 40px */
    width: auto;
    margin: 50px auto;
}

@media (min-width: 640px) {
    .footer-logos-images {
        flex-direction: row;
    }
}

/* Bottom Legal Bar (Redesigned) */
.legal-wrapper {
    background-color: #1F6381;
    min-height: 45.6px;
    display: flex;
    align-items: center;
}

.legal-wrapper .grid-item-12 {
    padding: 0; /* Match inspector box model */
}

.legal-ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 20px;
}

.legal-ul .legal-ul {
    display: flex;
    gap: 20px;
    padding: 0;
    margin: 0;
}

.legal-li {
    display: flex;
    align-items: center;
    position: relative;
    padding-right: 20px;
}

.legal-li:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    height: 14px;
    width: 1px;
    background-color: rgba(255, 255, 255, 0.163);
}

.legal-li a {
    color: #ccc; /* Gray color */
    text-decoration: none;
    font-size: 12px;
    font-family: Brandon, Calibri W01 Regular_904604, helvetica, sans-serif;
    font-weight: 400;
    line-height: 1.5;
    transition: color 0.3s ease;
}

.legal-li a:hover {
    color: #fff; /* White on hover */
    text-decoration: none; /* No underline */
}

/* Utilities */
.no-margin {
    margin: 0 !important;
}

.grid-container {
    max-width: 1430px;
    margin: 0 auto;
    width: 100%;
    padding: 0 15px;
    box-sizing: border-box;
}

/* Grid System */
.grid-row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

.grid-row:after, .grid-row:before {
    content: "";
    display: table;
}

.grid-row:after {
    clear: both;
}

.grid-item-12 {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    box-sizing: border-box;
    flex: 0 0 100%;
    max-width: 100%;
}

/* Responsive */
@media (max-width: 900px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .footer-col {
        margin-bottom: 20px;
    }
    
    .social-col .social-icons {
        justify-content: flex-start;
    }
    
    .footer-main {
        padding: 0 15px; /* Mobile padding */
    }
}

@media (min-width: 960px) {
    .footer-main {
        padding: 0 15px; /* Reduced to match user screenshot */
    }
}

/* Tablet + mobile navigation + megamenu adjustments */
@media (max-width: 1024px) {
    .top-tools {
        display: none !important;
    }

    body {
        padding-top: 60px !important;
    }

    .main-nav {
        top: 0 !important;
        height: 60px !important;
    }

    .nav-underline {
        display: none !important;
    }

    .nav-inner {
        padding: 0 16px !important;
        justify-content: space-between !important;
        gap: 12px !important;
        height: 60px !important;
    }

    .nav-mobile-icons {
        display: flex !important;
        gap: 16px;
        margin-left: auto !important;
        margin-right: 0 !important;
        align-items: center;
    }

    .nav-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        margin-left: 12px !important;
    }

    .nav-toggle .hamburger,
    .nav-toggle .hamburger::before,
    .nav-toggle .hamburger::after {
        transition: transform 0.2s ease, background 0.2s ease;
    }

    .nav-toggle[aria-expanded="true"] .hamburger {
        background: transparent;
    }

    .nav-toggle[aria-expanded="true"] .hamburger::before {
        top: 0;
        transform: rotate(45deg);
    }

    .nav-toggle[aria-expanded="true"] .hamburger::after {
        top: 0;
        transform: rotate(-45deg);
    }

    .nav-list {
        position: fixed !important;
        top: 60px !important;
        left: 0 !important;
        right: 0 !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        display: none !important;
        box-shadow: 0 8px 20px rgba(0,0,0,0.08) !important;
        z-index: 50 !important;
        max-height: calc(100vh - 60px) !important;
        overflow-y: auto !important;
    }

    .nav-list.open {
        display: flex !important;
    }

    .nav-item {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .nav-link {
        width: 100% !important;
        padding: 16px 20px !important;
        border-bottom: 1px solid #e6e6e6 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px;
        font-size: 15px !important;
        letter-spacing: normal !important;
        background: #fff !important;
        color: #58585a !important;
    }

    .nav-item.open > .nav-link {
        background: #6f9fd0 !important;
        color: #fff !important;
        border-bottom-color: transparent !important;
    }

    .nav-item.has-megamenu > .nav-link::after {
        content: "";
        position: static !important;
        margin-left: auto;
        width: 8px !important;
        height: 8px !important;
        border: 2px solid currentColor;
        border-top: 0;
        border-left: 0;
        transform: rotate(-45deg);
        background: none !important;
        opacity: 1 !important;
        flex-shrink: 0;
        display: inline-block;
        transition: transform 0.2s ease;
    }

    .nav-item.open > .nav-link::after {
        border-color: #fff !important;
        transform: rotate(45deg);
    }

    .nav-item:not(.has-megamenu) > .nav-link::after {
        content: none !important;
    }

    .megamenu {
        position: static !important;
        width: 100% !important;
        box-shadow: none !important;
        padding: 0 !important;
        border-top: none !important;
        display: none !important;
    }

    .nav-item.open > .megamenu {
        display: block !important;
    }

    .megamenu-inner {
        padding: 0 !important;
    }

    .megamenu-grid {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
        margin: 0 !important;
    }

    .megamenu-image {
        order: 0 !important;
        margin: 0 !important;
    }

    .megamenu-image img {
        display: none !important;
    }

    .megamenu-caption {
        font-size: 16px !important;
        font-weight: 600 !important;
        margin: 0 !important;
        padding: 14px 20px !important;
        border-bottom: 1px solid #e6e6e6 !important;
    }

    .megamenu-list-wrap {
        max-height: none !important;
        overflow: visible !important;
        padding: 0 !important;
    }

    .megamenu-list {
        padding: 0 20px !important;
    }

    .megamenu-list-item {
        border-bottom: 0 !important;
    }

    .megamenu-list-item a {
        height: auto !important;
        padding: 14px 0 !important;
        font-size: 16px !important;
        white-space: normal !important;
    }

    .megamenu-list-item a .title {
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
    }

    .megamenu-list-item .chev {
        width: 20px !important;
        height: 20px !important;
    }

    .megamenu-sub {
        border-left: none !important;
        padding: 0 20px 12px !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .sub-inner {
        padding-right: 0 !important;
    }

    .sub-title {
        font-size: 14px !important;
        font-weight: 600 !important;
        margin: 12px 0 8px !important;
    }

    .sub-list li {
        padding: 6px 0 !important;
    }

    .sub-list li a {
        font-size: 14px !important;
        white-space: normal !important;
    }
}

@media (max-width: 470px) {
    .nav-inner {
        padding: 0 12px !important;
        gap: 8px !important;
    }

    .nav-search-text {
        display: none !important;
    }

    .nav-mobile-icons {
        gap: 10px !important;
        margin-left: auto !important;
    }

    .nav-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        margin-left: 6px !important;
        padding: 0 !important;
        z-index: 3000;
    }

    .nav-toggle .hamburger,
    .nav-toggle .hamburger::before,
    .nav-toggle .hamburger::after {
        background: #58585a !important;
    }

    .nav-toggle[aria-expanded="true"] .hamburger {
        background: transparent !important;
    }

    .nav-logo img {
        height: 26px !important;
    }
}
