/**
 * Site footer - handle `wd-footer`, enqueued site-wide from functions.php.
 *
 * These rules used to live in header.php's inline <style>, where they set the
 * footer text to --imp-color-text (#1A1A17) on a --imp-color-bg-dark (#0B0B09)
 * background - i.e. invisible. Do not move them back inline: header.php prints
 * its <style> AFTER wp_head(), so anything left there outranks this file on
 * equal specificity and the old rules would win silently.
 */

.site-footer {background:var(--imp-color-bg-dark);color:var(--imp-color-text-inverse);font-family:var(--imp-font-body);padding:96px var(--imp-gutter) 40px;position:relative;}
.site-footer::before {content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg, transparent, var(--imp-color-primary), transparent);opacity:0.45;}

.footer-top {max-width:var(--imp-container);margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 0.8fr 1.2fr;gap:64px;padding-bottom:64px;border-bottom:1px solid var(--imp-color-border);}
.footer-col {min-width:0;}
.footer-heading {font-family:var(--imp-font-mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--imp-color-primary);margin:0 0 24px;font-weight:600;}

/* Brand column */
.footer-logo {display:inline-block;margin:0 0 24px;}
/* Sized by WIDTH, not height. A fixed height plus max-width:100% squashes the
   logo out of aspect as soon as the column is narrower than the file - which is
   every phone. max-width here is roughly the 64px-tall render of a 520x90 mark. */
.footer-logo img {display:block;width:100%;max-width:340px;height:auto;}
.footer-logo-text {font-family:var(--imp-font-display);font-size:26px;font-weight:500;letter-spacing:-0.015em;color:var(--imp-color-text-inverse);}
.footer-tagline {font-size:15px;line-height:1.7;color:var(--imp-color-text-inverse-muted);margin:0 0 28px;max-width:340px;}
.footer-company-name {font-family:var(--imp-font-display);font-size:22px;font-weight:500;letter-spacing:-0.015em;margin:0 0 12px;color:var(--imp-color-text-inverse);}
.footer-company-number {font-family:var(--imp-font-mono);font-size:11px;letter-spacing:0.08em;color:var(--imp-color-text-inverse-muted);margin:0 0 24px;}

/* Socials */
.site-footer .wd-socials {display:flex;gap:10px;flex-wrap:wrap;}
.site-footer .wd-socials a {display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--imp-color-border-hover);color:var(--imp-color-text-inverse-muted);transition:color var(--imp-duration) var(--imp-ease), border-color var(--imp-duration) var(--imp-ease), background var(--imp-duration) var(--imp-ease);}
.site-footer .wd-socials a:hover, .site-footer .wd-socials a:focus-visible {color:var(--imp-color-bg-dark);background:var(--imp-color-primary);border-color:var(--imp-color-primary);}

/* Contacts column */
.footer-contact {list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:20px;}
.footer-contact__label {display:block;font-family:var(--imp-font-mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--imp-color-text-inverse-muted);margin-bottom:6px;}
.footer-contact__value {display:block;font-size:15px;line-height:1.6;color:var(--imp-color-text-inverse);}
a.footer-contact__value {transition:color var(--imp-duration) var(--imp-ease);}
a.footer-contact__value:hover, a.footer-contact__value:focus-visible {color:var(--imp-color-primary);}
.footer-contact__value--phone {font-size:17px;letter-spacing:0.01em;}

/* Site menu column */
.footer-list {list-style:none;display:flex;flex-direction:column;gap:14px;padding:0;margin:0;}
.footer-list a {font-size:15px;color:var(--imp-color-text-inverse-muted);text-decoration:none;transition:color var(--imp-duration) var(--imp-ease);}
.footer-list a:hover, .footer-list a:focus-visible {color:var(--imp-color-primary);}
.footer-list .current-menu-item > a, .footer-list .current_page_item > a {color:var(--imp-color-text-inverse);}

/* Guide column - category rows with a small image */
.footer-guide {list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:14px;}
.footer-guide__link {display:flex;align-items:center;gap:14px;color:var(--imp-color-text-inverse-muted);text-decoration:none;transition:color var(--imp-duration) var(--imp-ease);}
.footer-guide__link:hover, .footer-guide__link:focus-visible {color:var(--imp-color-primary);}
.footer-guide__thumb {flex-shrink:0;width:52px;height:52px;overflow:hidden;border:1px solid var(--imp-color-border);background:var(--imp-color-bg-dark);position:relative;}
.footer-guide__thumb img {display:block;width:100%;height:100%;object-fit:cover;filter:saturate(0.75);transition:filter var(--imp-duration) var(--imp-ease), transform var(--imp-duration) var(--imp-ease);}
.footer-guide__link:hover .footer-guide__thumb img, .footer-guide__link:focus-visible .footer-guide__thumb img {filter:saturate(1);transform:scale(1.06);}
.footer-guide__thumb--empty::after {content:'';position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:1px solid var(--imp-color-primary);transform:rotate(45deg);opacity:0.6;}
.footer-guide__label {font-size:15px;line-height:1.4;}
.footer-guide__more {display:inline-flex;align-items:center;gap:8px;font-family:var(--imp-font-mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--imp-color-primary);text-decoration:none;transition:gap var(--imp-duration) var(--imp-ease);}
.footer-guide__more::after {content:'\2192';}
.footer-guide__more:hover, .footer-guide__more:focus-visible {gap:14px;color:var(--imp-color-primary);}

/* Bottom bar */
.footer-bottom {max-width:var(--imp-container);margin:32px auto 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px 32px;font-family:var(--imp-font-mono);font-size:11px;letter-spacing:0.06em;color:var(--imp-color-text-inverse-muted);}
.footer-bottom__left {display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;}
.footer-credit a {color:var(--imp-color-text-inverse-muted);text-decoration:none;border-bottom:1px solid var(--imp-color-border-hover);transition:color var(--imp-duration) var(--imp-ease), border-color var(--imp-duration) var(--imp-ease);}
.footer-credit a:hover, .footer-credit a:focus-visible {color:var(--imp-color-primary);border-color:var(--imp-color-primary);}
.footer-legal {display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;}
.footer-legal a {color:var(--imp-color-text-inverse-muted);text-decoration:none;transition:color var(--imp-duration) var(--imp-ease);}
.footer-legal a:hover, .footer-legal a:focus-visible {color:var(--imp-color-primary);}

@media (max-width:1100px) {
.footer-top {grid-template-columns:1fr 1fr;gap:48px;}
.site-footer {padding-top:72px;}
}
/* Single column on phones, and centred as a whole. Centring only one column
   reads as a mistake next to left-aligned neighbours, so every block goes
   together: flex children need their own justify/align, since text-align does
   not reach them. */
@media (max-width:600px) {
.site-footer {padding:56px 24px 32px;}
.footer-top {grid-template-columns:1fr;gap:40px;padding-bottom:40px;text-align:center;}
.footer-tagline {max-width:none;margin-left:auto;margin-right:auto;}
.footer-logo img {margin-left:auto;margin-right:auto;}
.site-footer .wd-socials {justify-content:center;}
.footer-list {align-items:center;}
.footer-guide__link {justify-content:center;}
.footer-guide__more {justify-content:center;}
.footer-bottom {flex-direction:column;align-items:center;text-align:center;}
.footer-bottom__left {justify-content:center;}
.footer-legal {justify-content:center;}
}
