/*
Theme Name: PEI Lean Theme
Author: You
Version: 1.1
Text Domain: pei

Notes (structure/tradeoffs):
- Lean, mobile-first header and custom 1/4 + 3/4 layout; no frameworks.
- Customizer logo via the_custom_logo(); primary nav via wp_nav_menu().
- Mobile hamburger toggles a vertical menu; desktop shows horizontal menu.
- A11y: focus-visible styles, screen-reader-text helper, aria-expanded on toggle.
- RTL-friendly using logical margins. Colors chosen for contrast with light beige and dark strip.
*/

/* ============================
   Root tokens / global base
   ============================ */

:root{
    --primary: #A3783C;
    --secondary: #262b32;
    --light: #ffffff;
    --accent: #e3d6bf;
    --grey: #6b7280;
    --danger: #dc3545;
    --warning: #ffca2c;
    --success: #198754;
}

*, *::before, *::after { box-sizing: border-box; }

body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: #f5f5f5;
    color: #262b32;
}

/* Screen reader only helper */
.screen-reader-text {
    position: absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.screen-reader-text:focus {
    position: static;
    width:auto;
    height:auto;
    margin:0;
    clip:auto;
}

/* Focus styles */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible {
    outline:3px solid #2b6cb0;
    outline-offset:2px;
}
p{
    margin: 0;
    padding:0;
}
/* ============================
   Layout system
   ============================ */

.container {
    width:100%;
    max-width:1200px;
    margin:0 auto;
    padding:16px 16px;
}
.entry-content:{
    background:#262B32;
}
.row {
    display:flex;
    flex-wrap:wrap;
    align-items: center;
    align-content: center;
    justify-content: space-between;
    width: 100%;
}

.col {
    flex:1 1 100%;
    min-width:0;
}

/* ============================
   Header / navigation
   ============================ */

.site-header { background:#f2e8d0; }
.site-header-top {
    display:flex;
    flex-wrap:wrap;
    position:relative;
    z-index:200;
    align-items:center;
    padding:8px 0;              /* tighter, balanced spacing on mobile */
    min-height:56px;            /* consistent tap target band */
}
.site-header .container{
    padding:0;
}
/* Logo area */
.site-branding {
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    margin:0;
    flex:0 1 auto;              /* allow logo + menu to sit on one row on mobile */
    max-width:none;
    background: #262B32;     /* remove dark block behind logo */
}
.site-branding a {
    color:#ffffff;
    text-decoration:none;
    font-weight:600;
}
.site-branding img {
    max-height:48px;           /* professional, compact mobile logo (desktop will override layout) */
    height:auto;
    width:auto;
}

/* Nav wrapper */
.main-nav-wrap {
    width:100%;
    position:relative;
    display:flex;
    justify-content:flex-end;
    flex:1 1 auto;
}
.nav-inner {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    padding:10px 0;
}
.menu-toggle {
    border:none;
    background:transparent;
    cursor:pointer;
    padding:12px;               /* larger tap target */
    margin-inline-start:auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}
.menu-toggle span {
    display:block;
    width:22px;
    height:2px;
    margin:4px 0;
    background:#262b32;
}
.main-navigation {
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
}

/* Mobile dropdown panel */
.main-navigation ul {
    list-style:none;
    margin:0;
    padding:8px 0;              /* clean dropdown list */
    display:none;
    flex-direction:column;
    gap:0;
    background:#f2e8d0;
    border-top:1px solid rgba(0,0,0,.08);
}
.main-navigation.is-open ul {
    display:flex;
}
.main-navigation li { margin:0; box-shadow:none; }
.main-navigation li + li { border-top:1px solid rgba(0,0,0,.08);} 
.main-navigation a {
    display:block;
    padding:12px 16px;
    background:transparent;
    color:#262b32;
    text-decoration:none;
    text-transform:none;
    font-size:16px;
    letter-spacing:.01em;
    border-radius:0;
}
.main-navigation a:hover,
.main-navigation a:focus {
    background:rgba(0,0,0,.04);
    color:#1f2937;              /* slightly darker on hover */
}

/* Reduce layout shift when items wrap */
.main-navigation li { contain: layout paint; box-shadow: 6px 6px 3px #888;}

/* Submenu base (mobile-first: hidden until toggled) */
.main-navigation .menu-item-has-children > .sub-menu {
    display:none;
    padding:6px 0 0 0;
    margin:6px 0 0 12px;
    border-left:2px solid rgba(0,0,0,.12);
}
.main-navigation .menu-item-has-children.submenu-open > .sub-menu {
    display:block;
}

/* Submenu items should look like plain links on mobile: no background */
.main-navigation .sub-menu a {
    background: transparent;
    box-shadow: none;
    text-transform: none;
    font-size: 13px;
    border-radius: 0;
    color: var(--secondary);
    padding: 6px 2px;
}
.main-navigation .sub-menu a:hover,
.main-navigation .sub-menu a:focus {
    background: transparent;
    color: var(--primary);
    text-decoration: underline;
}

/* Caret button shown on mobile for submenu parents */
.submenu-toggle {
    background:transparent;
    border:none;
    padding:8px;
    margin-inline-start:8px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    color:#262b32;
}
.submenu-toggle:focus-visible {
    outline:3px solid #2b6cb0;
    outline-offset:2px;
}
.submenu-toggle .caret {
    display:inline-block;
    border:solid currentColor;
    border-width:0 2px 2px 0;
    padding:3px;
    transform:rotate(-45deg);
    transition:transform .15s ease;
}
.menu-item-has-children.submenu-open > .submenu-toggle .caret {
    transform:rotate(45deg);
}

/* RTL */
html[dir="rtl"] .main-navigation {
    margin-inline-start:0;
    margin-inline-end:auto;
}
html[dir="rtl"] .main-navigation .menu-item-has-children > .sub-menu {
    inset-inline-start:auto;
    inset-inline-end:0;
    border-left:0;
    border-right:2px solid rgba(255,255,255,.08);
}

/* ============================
   Mobile: full-width logo request
   ============================ */
@media (max-width: 767px){
    /* Put logo on its own row and fill the container width */
    .site-header-top { align-items: flex-start; padding:0;}
    .site-branding {
        flex: 0 0 100%;
        width: 100%;
        /* Mobile: dark background behind the logo */
        background: #262B32;
        /* Make the dark background edge-to-edge while keeping the logo aligned to the container */
        width: calc(100% + 32px);

    }
    .site-branding a { display:block; width:100%; }
    .site-branding img {
        display:block;
        width:100%;            /* make the logo image span full width of the container */
        height:auto;           /* maintain aspect ratio */
        max-width:none;        /* remove intrinsic width cap */
        max-height:none;       /* remove mobile height cap when full-width */
    }

    /* Move nav below the logo and keep it right-aligned */
    .main-nav-wrap { flex: 0 0 100%; width:100%; }
}

/* ===============================
   Contact Form 7 – PEI theme styles
   =============================== */

.cf7-tailwind{
    /* layout */
    display:grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem 1.25rem;

    /* card look */
    background: var(--light);
    color: var(--secondary);
    border: 1px solid var(--accent);
    border-radius: 14px;
    padding: 1.5rem;
    box-shadow: 0 6px 18px rgba(0,0,0,.06);
}

/* each field wrapper */
.cf7-tailwind .relative{ grid-column: span 12; }

/* labels */
.cf7-tailwind label{
    display:block;
    margin-bottom: .375rem;
    font-weight: 600;
    font-size: .95rem;
    color: var(--secondary);
}
.cf7-tailwind label .font-normal{
    font-weight: 400;
    color: var(--grey);
}

/* base controls */
.cf7-tailwind input[type="text"],
.cf7-tailwind input[type="email"],
.cf7-tailwind input[type="tel"],
.cf7-tailwind input[type="number"],
.cf7-tailwind select,
.cf7-tailwind textarea{
    appearance: none;
    width: 100%;
    background: #fff;
    color: var(--secondary);
    border: 1px solid var(--accent);
    border-radius: 10px;
    padding: .625rem .75rem;
    line-height: 1.4;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

/* heights */
.cf7-tailwind input[type="text"],
.cf7-tailwind input[type="email"],
.cf7-tailwind input[type="tel"],
.cf7-tailwind input[type="number"],
.cf7-tailwind select{
    height: 42px;
}
.cf7-tailwind textarea{
    min-height: 140px;
    resize: vertical;
}

/* placeholders */
.cf7-tailwind ::placeholder{
    color: color-mix(in srgb, var(--grey) 70%, white);
    opacity: 1;
}
/* Fallback for browsers without color-mix */
@supports not (color: color-mix(in srgb, black, white)){
    .cf7-tailwind ::placeholder{ color: #9aa2a7; }
}

/* focus styles (accessible) */
.cf7-tailwind input:focus,
.cf7-tailwind select:focus,
.cf7-tailwind textarea:focus{
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(163, 120, 60, .25); /* primary ring */
}

/* hover */
.cf7-tailwind input:hover,
.cf7-tailwind select:hover,
.cf7-tailwind textarea:hover{
    border-color: color-mix(in srgb, var(--primary) 40%, var(--accent));
}
@supports not (color: color-mix(in srgb, black, white)){
    .cf7-tailwind input:hover,
    .cf7-tailwind select:hover,
    .cf7-tailwind textarea:hover{
        border-color: #cdbfa9;
    }
}

/* select arrow */
.cf7-tailwind select{
    background-image:
            linear-gradient(45deg, transparent 50%, var(--grey) 50%),
            linear-gradient(135deg, var(--grey) 50%, transparent 50%),
            linear-gradient(to right, transparent, transparent);
    background-position:
            calc(100% - 18px) calc(50% - 3px),
            calc(100% - 12px) calc(50% - 3px),
            calc(100% - 2.25rem) 50%;
    background-size: 6px 6px, 6px 6px, 1px 60%;
    background-repeat: no-repeat;
    padding-right: 2.5rem;
}

/* error state from CF7 */
.cf7-tailwind .wpcf7-not-valid{
    border-color: var(--danger) !important;
    box-shadow: 0 0 0 3px rgba(220, 53, 69, .15);
}
.cf7-tailwind .wpcf7-not-valid-tip{
    display:block;
    margin-top:.35rem;
    font-size: .85rem;
    color: var(--danger);
}

/* Submit button */
.cf7-tailwind .wpcf7-submit{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .6rem 1.25rem;
    font-weight: 700;
    border-radius: 999px;
    border: 2px solid var(--primary);
    background: var(--primary);
    color: #fff;
    cursor: pointer;
    transition: transform .12s ease, background-color .12s ease, border-color .12s ease;
}
.cf7-tailwind .wpcf7-submit:hover{
    transform: translateY(-1px);
    background: #8E6A35; /* slightly darker than --primary */
    border-color: #8E6A35;
}
.cf7-tailwind .wpcf7-submit:active{
    transform: translateY(0);
}
.cf7-tailwind .wpcf7-submit:disabled{
    opacity: .6;
    cursor: not-allowed;
}

/* spinner next to the button */
.cf7-tailwind .wpcf7-spinner{
    margin-left:.5rem;
    width: 18px;
    height: 18px;
    border: 2px solid var(--accent);
    border-left-color: var(--primary);
}

/* CF7 response message */
.wpcf7-form .wpcf7-response-output{
    margin-top: 1rem !important;
    border-radius: 10px;
    padding: .75rem 1rem;
    border-width: 2px;
    font-weight: 600;
}

/* Style by status (CF7 sets data-status on form and/or classes on the response element) */
.wpcf7-form[data-status="sent"] .wpcf7-response-output,
.wpcf7 .wpcf7-mail-sent-ok{
    color: #0a3622;
    background: #d1e7dd;
    border-color: var(--success);
}
.wpcf7-form[data-status="invalid"] .wpcf7-response-output,
.wpcf7 .wpcf7-validation-errors{
    color:#664d03;
    background:#fff3cd;
    border-color: var(--warning);
}
.wpcf7-form[data-status="failed"] .wpcf7-response-output,
.wpcf7 .wpcf7-mail-sent-ng{
    color:#58151c;
    background:#f8d7da;
    border-color: var(--danger);
}

/* hide CF7 hidden fieldset */
.hidden-fields-container{ display:none; }

/* optional: tighten default <p> spacing inside fields */
.cf7-tailwind p{ margin: 0; }

/* Make the "Get a Quote" button style reusable (if needed elsewhere) */
.btn-primary-pei{
    border:2px solid var(--primary);
    background: var(--primary);
    color:#fff;
    border-radius:999px;
    font-weight:700;
    padding:.6rem 1.25rem;
}
.btn-primary-pei:hover{
    background:#8E6A35;
    border-color:#8E6A35;
}

/* --- Fix misalignment in CF7 form --- */
.cf7-tailwind label br,
.cf7-tailwind .relative > p > br{
    display:none !important;
}
.cf7-tailwind .relative{ grid-column: span 12; }
.cf7-tailwind .relative > p{
    display:grid;
    gap:.375rem;
    margin:0;
}

/* ============================
   Footer – old .site-footer* (still here if needed)
   ============================ */
.footer-top-bar{
    background:#DCA538;
    height:3px;
    width:100%;
    display:block;
}
.site-footer-top {
    background: #262b32; /* dark slate like header strip */
    color: #ffffff;
    padding: 32px 0 28px;
}

.footer-row {
    row-gap: 24px;
}

.footer-col {
    text-align: center; /* center on mobile only */
}

/* Mobile-first: stack columns */
.footer-links,
.footer-logo,
.footer-contact {
    flex: 1 1 100%;
}

.footer-heading {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 10px;
    position: relative;
    text-transform: none;
}

.footer-heading::before {
    content: "";
    display: block;
    width: 60px;
    height: 3px;
    background: #f2e0b8; /* beige bar */
    margin-bottom: 6px;
}

.footer-navigation .footer-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center; /* center links on mobile */
}

.footer-navigation .footer-menu li {
    margin: 4px 0;
}

.footer-navigation .footer-menu a {
    text-decoration: none;
    color: #ffffff;
    font-size: 14px;
}

.footer-navigation .footer-menu a:hover,
.footer-navigation .footer-menu a:focus {
    text-decoration: underline;
}

/* Bullet icons */
.footer-navigation .footer-menu li::before,
.footer-contact-list li::before {
    content: "➤";
    margin-right: 6px;
    font-size: 10px;
    color: #c89226;
}

/* Center logo col */
.footer-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

.footer-logo img {
    width: 100%;
    max-width: 100%;
    height: auto;
}

.footer-site-name {
    font-size: 20px;
    font-weight: 700;
}

/* Contact + hours */
.footer-contact-block,
.footer-hours-block {
    margin-bottom: 18px;
}

.footer-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Mobile: center contact text and copyright */
.footer-contact-list,
.footer-copy {
    text-align:center;
}

.footer-contact-list li {
    margin: 4px 0;
    text-align: left;
}

.footer-contact-list a {
    color: #ffffff;
    text-decoration: none;
}

.footer-contact-list a:hover,
.footer-contact-list a:focus {
    text-decoration: underline;
}

/* Bottom bar (original) */
.site-footer-bottom {
    background: #f2e0b8; /* beige strip */
    text-align: center;
    padding: 10px 0;
    font-size: 14px;
    color: #222;
}

.footer-copy {
    margin: 0;
}

/* ============================
   Footer – NEW .pei-footer component
   ============================ */

.pei-footer {
    background: #24272b;
    color: #f5f5f5;
    padding: 40px 0 32px;
    font-size: 14px;
}

.pei-footer a {
    color: inherit;
    text-decoration: none;
}

.pei-footer a:hover,
.pei-footer a:focus {
    text-decoration: underline;
}

.pei-footer .footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 24px;
}

.pei-footer .footer-col {
    margin-bottom: 0; /* sections control spacing */
}

.pei-footer .footer-section {
    margin-bottom: 18px;
}

/* License image */
.pei-footer .footer-license-img picture img {
    max-width: 260px;
    width: 100%;
    height: auto;
    display: block;
    margin: auto;
}

/* Section headings: USEFUL LINKS, CONTACT INFORMATION, HOURS OF OPERATION */
.pei-footer h5 {
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #f5f5f5;
}

/* Small labels (PHONE NUMBER, EMAIL ADDRESS, etc.) */
.pei-footer .footer-label {
    margin: 10px 0 2px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #d6d6d6;
}

/* useful links list */
.pei-footer .useful-links ul.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.pei-footer .useful-links ul.footer-links li {
    margin: 3px 0;
    width: 100%;
}

.pei-footer .useful-links ul.footer-links li a {
    font-size: 14px;
    color: #f5f5f5;
}



/* contact links (phone/email) in gold */
.pei-footer .footer-contact-link {
    display: inline-block;
    color: #f4b428;
    font-weight: 600;
}

.pei-footer .footer-location {
    margin: 2px 0 0;
}

/* license numbers under cert */
.pei-footer .license-block p {
    margin: 6px 0;
    font-size: 14px;
}

/* hours table */
.pei-footer table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.pei-footer table th,
.pei-footer table td {
    padding: 4px 10px;
    text-align: left;
}

.pei-footer table th {
    font-weight: 600;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
}

.pei-footer table td {
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

/* new bottom bar */
.pei-footer-bottom {
    background: #24272b;
    border-top: 1px solid rgba(255,255,255,0.16);
    text-align: center;
    padding: 12px 0 16px;
    font-size: 13px;
    color: #f5f5f5;
}

.pei-footer-bottom p {
    margin: 0;
}

/* ============================
   MEDIA QUERIES
   ============================ */

/* Very small screens hardening */
@media (max-width:360px){
    .main-navigation a{ padding:10px 12px; font-size:12px; }
    .site-branding img{ max-height:64px; }
}

/* CF7: two columns on md+ */
@media (min-width: 768px){
    .cf7-tailwind .relative{ grid-column: span 6; }

    /* Force the textarea row and the submit row to full width */
    .cf7-tailwind .relative:has(textarea),
    .cf7-tailwind .relative:has(.wpcf7-submit){
        grid-column: 1 / -1;
    }
    /* arrow bullets */
    .pei-footer .useful-links ul.footer-links li::before {
        content: "\00BB"; /* » */
        margin-right: 6px;
        color: #f4b428;
    }
    .footer-links li::before {
        content: "»";
        position: absolute;
        left: 0;
        color: #c89226;
        font-size: 12px;
        top: 2px;
    }
    .pei-footer .useful-links ul.footer-links li {
        margin: 3px 0;
        width: 100px;
    }
}

/* Footer desktop layout for original .site-footer-top */
@media (min-width: 780px) {
    .footer-links,
    .footer-logo,
    .footer-contact {
        flex: 0 0 33.3333%;
        max-width: 33.3333%;
    }

    .footer-links {
        align-self: flex-start;
    }

    /* Desktop: left-align text for non-logo columns */
    .footer-col { text-align: left; }
    .footer-contact { text-align: left; }
    /* Keep the center logo centered on desktop */
    .footer-logo { justify-content: center; text-align: center; }
    .footer-navigation .footer-menu { align-items: flex-start; }
}

/* Header tightening on desktop (PEI spec) */
@media (min-width:768px){
    .site-header{
        max-height:60px;
    }
    /* Keep the overall header container tight while allowing visual overflow */
    .site-header .container {
        /* Allow taller logo without cropping */
        max-height:none;
        display:flex;
        align-items:center;
        overflow:visible;
        max-height:60px;
    }

    /* Desktop logo area: remove dark band, restore natural padding and left alignment */
    .site-header .site-branding {
        min-height: 0;
        align-items: center;
        justify-content: center;
        padding: 16px 0;
        margin-top: 134px;
    }

    /* Nav strip height and centering; keep beige bar and shadows visible */
    .col.main-nav-wrap {
        max-height:none;
        display:flex;
        align-items:center; /* vertically align with logo */
        overflow:visible;
    }

    /* Slightly tighter vertical padding so buttons remain fully visible inside 60px */
    .nav-inner {
        padding:16px 0; /* match logo area padding so they line up */
    }

}

/* Simple layout columns on desktop */
@media (min-width:768px){
    .col-1-4{flex:0 0 25%;max-width:25%;}
    .col-3-4{flex:0 0 75%;max-width:75%;}
}

/* Desktop nav layout */
@media (min-width:768px){
    .row.site-header-top { flex-wrap:nowrap; padding:0;}
    .site-branding { flex:0 0 25%; max-width:25%; padding:16px 0; }
    .main-nav-wrap { flex:0 0 75%; max-width:75%; display:flex; align-items:center; }
    .nav-inner { width:100%; padding:16px 0; }
    .menu-toggle { display:none; }
    .main-navigation { margin-inline-start:auto; width:auto; display:flex; flex-direction:row; align-items:center; }
    .main-navigation ul { display:flex !important; flex-direction:row; gap:14px; padding:0; background:transparent; transform:none; opacity:1; border-top:0; }
    .main-navigation .menu-item-has-children { position:relative; }
    .main-navigation .menu-item-has-children > a { /* keep button look */ }
    .main-navigation .menu-item-has-children > .sub-menu {
        display:none;
        position:absolute;
        inset-inline-start:0;
        top:100%;
        min-width:200px;
        background:#262b32;
        padding:8px;
        margin:8px 0 0 0;
        border-radius:4px;
        box-shadow:0 6px 16px rgba(0,0,0,.25);
    }
    .main-navigation .menu-item-has-children:hover > .sub-menu,
    .main-navigation .menu-item-has-children:focus-within > .sub-menu { display:block; }
    .main-navigation .sub-menu li { margin:0; }
    .main-navigation .sub-menu a {
        display:block;
        background:transparent;
        color:#fff;
        text-transform:none;
        letter-spacing:0;
        padding:8px 12px;
        box-shadow:none;
        border-radius:3px;
    }
    /* Desktop dropdown: keep links background-free; adjust color on hover */
    .main-navigation .sub-menu a:hover,
    .main-navigation .sub-menu a:focus {
        background: transparent;
        color: #c89226;
        text-decoration: underline;
    }
    /* Hide caret buttons on desktop */
    .submenu-toggle { display:none !important; }
}

/* Larger logo on desktop */
@media (min-width:768px){
    /* Restore requested larger logo size */
    .site-branding img { max-height:160px; height:auto; width:auto; }
    .footer-logo img { max-height:200px; }
}

/* Desktop main menu button styling (gold buttons with white text) */
@media (min-width:768px){
    .main-navigation a {
        display: inline-block;
        background:#C89226;
        color:#fff;
        text-transform:uppercase;
        letter-spacing:.06em;
        padding:12px 16px;
        border-radius:3px;
        position:relative;
        box-shadow:0 3px 0 rgba(0,0,0,.18);
        transition:transform .08s ease, box-shadow .08s ease, background .15s ease;
    }
    .main-navigation a:hover,
    .main-navigation a:focus {
        background:#dca538;
        transform:translateY(1px);
        box-shadow:0 2px 0 rgba(0,0,0,.2);
        color:#fff;
        text-decoration:none;
    }
}

/* Desktop layout for NEW .pei-footer – 4 columns */
@media (min-width: 992px){
    .pei-footer .footer-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        column-gap: 48px;
    }

    /* Treat .footer-col as layout-only wrapper */
    .pei-footer .footer-col {
        display: contents;
    }

    /* place each section */
    .pei-footer .footer-license-img { grid-column: 1; }
    .pei-footer .license-block     { grid-column: 1; }
    .pei-footer .useful-links      { grid-column: 2; }
    .pei-footer .contact-block     { grid-column: 3; }
    .pei-footer .hours-block       { grid-column: 4; }

    .pei-footer h5 {
        text-align: left;
    }
}
/* -----------------------------------------
   FOOTER — PEI CUSTOM LAYOUT
   ----------------------------------------- */

.pei-footer {
    background: #262b32;
    color: #ffffff;
    padding: 50px 0 40px;
}

.pei-footer .footer-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: unset;
}

/* Left + Right columns */
.pei-footer .footer-col {
    flex: 1 1 100%;
}

/* Desktop: 2 columns */
@media (min-width: 900px) {
    .pei-footer .footer-col {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

/* -----------------------------------------
   IMAGE BLOCK
   ----------------------------------------- */
.footer-license-img img {
    max-width: 260px;
    height: auto;
    display: block;
    margin: 0 0 25px 0;
}

/* -----------------------------------------
   USEFUL LINKS
   ----------------------------------------- */
.useful-links h5,
.contact-block h5,
.footer-section h5 {
    font-size: 16px;
    margin-bottom: 14px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.footer-links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer-links li {
    margin: 4px 0;
    position: relative;
    padding-left: 14px;
}
.footer-links a {
    text-decoration: none;
    color: #ffffff;
    font-size: 14px;
}

.footer-links a:hover {
    text-decoration: underline;
}

/* -----------------------------------------
   LICENSE NUMBERS
   ----------------------------------------- */
.license-block p {
    margin: 3px 0;
    font-size: 14px;
}

/* -----------------------------------------
   CONTACT INFORMATION
   ----------------------------------------- */
.contact-block p {
    margin: 10px 0 4px;
    font-weight: bold;
    font-size: 13px;
}

.contact-block a {
    text-decoration: none;
    color: #f9c15a; /* gold accent */
    font-weight: 600;
}

.contact-block a:hover {
    text-decoration: underline;
}

.contact-block strong {
    color: #ffffff;
    font-size: 13px;
}

/* -----------------------------------------
   HOURS TABLE
   ----------------------------------------- */
.footer-section table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
}

.footer-section table th {
    text-align: left;
    font-size: 14px;
    font-weight: bold;
    padding: 4px 0 6px;
}

.footer-section table td {
    padding: 6px 0;
    font-size: 14px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.footer-section table td:last-child {
    text-align: right;
}

/* -----------------------------------------
   BOTTOM COPYRIGHT BAR
   ----------------------------------------- */
.pei-footer-bottom {
    background: #111418;
    text-align: center;
    padding: 15px 0;
    font-size: 14px;
    color: #ddd;
}

.pei-footer-bottom p {
    margin: 0;
}
