/* Footer-specific styles moved out of main stylesheet */
.site-footer { 
    background:var(--brand-dark); 
    color:#fff; 
    padding:12px 0 0 0; 
    text-align:left;
    flex:1;
}
.site-footer .footer-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-areas:
        "company contact hours"
        "service map holidays"
        "bottom bottom bottom";
    gap: 2rem;
}
.footer-row {
    display: contents;
}
.footer-company {
    grid-area: company;
}
.footer-contact {
    grid-area: contact;
}
.footer-hours {
    grid-area: hours;
}
.footer-service-area {
    grid-area: service;
}
.footer-service-map {
    grid-area: map;
}
.footer-holidays {
    grid-area: holidays;
}
/* Regulated entities styling in footer (grouped) */
.site-footer .regulated-list,
.site-footer .regulated-list-footer { 
    margin-top:8px; 
    color:#ddd; 
}
.site-footer .regulated-entry {
    margin-top:6px;
    color: #ddd;
    display: inline-flex;
    gap: 8px;
    align-items: baseline;
    justify-content: center;
    flex-wrap: wrap;
}
.site-footer .regulated-entry strong,
.site-footer .regulated-entry .reg-header { 
    color: #fff; 
    display: inline; 
    font-weight:700; 
}
.site-footer .regulated-entry .reg-meta { 
    color: #ddd; 
}
.site-footer .regulated-list a,
.site-footer .regulated-entry-contact a { 
    color: inherit; 
    text-decoration: none; 
}
/* Regulated-by detailed contact styles (compact) */
.site-footer .regulated-list-footer { 
    margin-top:6px; 
    display:flex; 
    flex-direction:column; 
    gap:6px; 
    align-items:center; 
}
.site-footer .regulated-entry-contact {
    margin-top:3px;
    color:rgba(255,255,255,0.9);
    display:flex;
    flex-direction:row;
    gap:4px;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
}
.site-footer .regulated-contact-item { 
    display:inline-block; 
    white-space:nowrap; 
}
.site-footer .regulated-contact-item:not(:last-child)::after { 
    content: " • "; 
    color:rgba(255,255,255,0.9); 
    margin-left:6px; 
}
.site-footer .regulated-entry-contact a { 
    color: inherit; 
    text-decoration: none; 
}
.brand-link-footer {
    display: flex;
    align-items: center;
    gap: 10px;
}
.office-hours {
    margin-top: 0.5rem;
}
/* Footer subtext (under the headings) — improved contrast & legibility */
.site-footer .contact-list-footer,
.site-footer .office-hours,
.site-footer .service-area,
.site-footer .regulated-list-footer,
.site-footer .regulated-entry-footer {
    font-weight: 400;
}
.copyright { 
    color: rgba(255,255,255,0.92); 
    font-weight:400; 
    text-shadow: 0 1px 1px rgba(0,0,0,0.45); 
}
.site-footer .service-cities { 
    margin-top:8px; 
}
/* Service map thumbnail in footer */
.site-footer .footer-service-map { 
    text-align:center; 
}
.site-footer .footer-service-map img { 
    width:100%;
    overflow: hidden;
    display: inline-block; 
    margin:0 auto; 
    cursor: pointer; 
    border-radius: 6px; 
    box-shadow:0 6px 18px rgba(0,0,0,0.12); 
    transition: transform .12s ease, opacity .12s ease; 
}
.site-footer .footer-service-map img:hover { 
    transform: translateY(-2px); 
    opacity:0.98; 
}
/* Thicker solid separator above the copyright row */
.site-footer .footer-row.row3 .col.full { 
    grid-column: 1 / -1;
    grid-area: bottom;
    text-align: center;
    border-top: 3px solid rgba(255,255,255,0.06); 
    padding-top: 8px;
    padding-bottom: 4px;
}
.site-footer .office-lunch { 
    margin-top:2px; 
    margin-bottom:8px; 
    margin-left:12px; 
}
.site-footer .office-lunch .office-lunch-label { 
    color:#fff; 
    font-weight:400; 
    margin-right:4px; 
}
/* Upcoming holidays list (no bullet, match office hours size) */
.site-footer .upcoming-holidays-footer .holiday-date,
.site-footer .upcoming-holidays-footer .holiday-effect { 
    margin-left:6px; 
}
.site-footer .holiday-meta {
    font-weight: 400;
    margin: 0.25rem 0.25rem 0 0.25rem;
}
/* Footer links: base and interaction styles consolidated */
.site-footer a, .site-footer a:visited {
    color: inherit;
    text-decoration: none;
    transition: color .12s ease;
}
.site-footer a:hover, .site-footer a:focus {
    color: var(--brand-cyan);
    text-decoration: none;
}
/* Inline office hours placed beside the office title */
.site-footer .office-inline { 
    display:inline-block; 
    margin-left:8px; 
    font-weight:400; 
    vertical-align:baseline; 
}
.site-footer .contact-list-footer li, .site-footer .upcoming-holidays-footer li, .site-footer .office-hours div { 
    margin-bottom:4px !important; 
}
@media (max-width: 770px) {
    .site-footer .footer-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-areas:
            "company contact"
            "hours holidays"
            "service map"            
            "bottom bottom";
    }
}