/* Shared footer styles; visual rules moved unchanged from home.css. */
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 300; font-display: swap; src: url('../fonts/poppins-latin-300.woff2') format('woff2'); }
.site-footer { padding-block: 96px 60px; background: #1d1d1d; color: #fff; font-weight: 300; }
.site-footer__main { display: grid; grid-template-columns: 1.15fr 1.3fr 1fr 1fr 1fr; gap: 38px; align-items: start; }
.site-footer__brand img { display: block; width: min(100%, 260px); height: auto; aspect-ratio: 26 / 19; transform: translateX(-8%); }
.site-footer__contact, .site-footer__links ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.site-footer__contact a, .site-footer__links a { text-decoration: none; }
.site-footer__contact a:hover, .site-footer__links a:hover, .site-footer__social:hover { color: var(--color-brand); }
.site-footer__contact, .site-footer__links { font-size: 16px; line-height: 1.5; }
.site-footer__accent { color: var(--color-brand); }
.site-footer__bottom { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: 'legal social' 'copyright social'; column-gap: 28px; row-gap: 18px; align-items: start; margin-top: 82px; padding-top: 28px; border-top: 1px solid #777; color: #b9b9b9; font-size: 15px; }
.site-footer__legal, .site-footer__bottom .menu { grid-area: legal; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; margin: 0; padding: 0; list-style: none; }
.site-footer__bottom a { text-decoration: none; }
.site-footer__bottom small { grid-area: copyright; font-size: inherit; }
.site-footer__social { position: relative; grid-area: social; justify-self: end; width: 44px; height: 44px; }
.site-footer__social img { display: block; width: 44px; height: 44px; transition: opacity 160ms ease; }
.site-footer__social::after { content: ''; position: absolute; inset: 0; background: var(--color-brand); -webkit-mask: url('../images/linkedin-footer.svg') center / contain no-repeat; mask: url('../images/linkedin-footer.svg') center / contain no-repeat; opacity: 0; pointer-events: none; transition: opacity 160ms ease; }
.site-footer__social:hover img, .site-footer__social:focus-visible img { opacity: 0; }
.site-footer__social:hover::after, .site-footer__social:focus-visible::after { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .site-footer__social img, .site-footer__social::after { transition: none; } }
@media (min-width: 1200px) {
    .site-footer__bottom { display: flex; align-items: center; gap: 8px; margin-left: calc((100% - 152px) * .211009 + 38px); }
}
@media (min-width: 1200px) {
    .site-footer__legal, .site-footer__bottom .menu { display: flex; flex-direction: row; align-items: center; gap: 8px; white-space: nowrap; }
}
@media (min-width: 1200px) {
    .site-footer__legal li + li::before, .site-footer__bottom .menu li + li::before { content: '|'; margin-right: 8px; }
}
@media (min-width: 1200px) {
    .site-footer__bottom small::before { content: '|'; margin-right: 8px; }
}
@media (min-width: 1200px) {
    .site-footer__social { margin-left: auto; }
}
@media (min-width: 1200px) {
    .site-footer__contact, .site-footer__links { padding-top: 57px; }
}
@media (max-width: 1199px) {
    .site-footer__main { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 55px; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer { padding-block: 70px 44px; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr); grid-template-rows: auto 1px auto 1px; column-gap: 24px; row-gap: 28px; align-items: start; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__main::before, .site-footer__main::after { content: ''; display: block; grid-column: 1 / -1; height: 1px; background: rgba(255, 255, 255, .36); }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__main::before { grid-row: 2; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__main::after { grid-row: 4; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__main > * { min-width: 0; padding: 0; border: 0; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__brand { grid-column: 1 / 3; grid-row: 1; align-self: center; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__brand img { width: 235px; max-width: 100%; max-height: none; object-fit: contain; transform: translateX(-24px); }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__contact { grid-column: 3; grid-row: 1; align-self: center; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__links { font-size: clamp(13px, 1.35vw, 16px); }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__links:nth-child(3) { grid-column: 1; grid-row: 3; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__links:nth-child(4) { grid-column: 2; grid-row: 3; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__links:nth-child(5) { grid-column: 3; grid-row: 3; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__bottom { display: flex; align-items: center; gap: 5px; margin-top: 28px; margin-left: 0; padding-top: 0; border-top: 0; font-size: clamp(12px, 1.25vw, 15px); }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__legal, .site-footer__bottom .menu { flex-direction: row; align-items: center; gap: 5px; white-space: nowrap; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__legal li + li::before, .site-footer__bottom .menu li + li::before, .site-footer__bottom small::before { content: '|'; margin-right: 5px; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__bottom small { white-space: nowrap; }
}
@media (min-width: 768px) and (max-width: 1199px), (min-width: 1200px) and (max-width: 1366px) and (any-pointer: coarse) {
    .site-footer__social { flex: 0 0 auto; margin-left: auto; }
}
@media (max-width: 767px) {
    .site-footer { padding-block: 68px 42px; }
}
@media (max-width: 767px) {
    .site-footer__main { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 767px) {
    .site-footer__brand img { width: 220px; }
}
@media (max-width: 767px) {
    .site-footer__brand { margin-bottom: 38px; }
}
@media (max-width: 767px) {
    .site-footer__contact { padding-bottom: 26px; }
}
@media (max-width: 767px) {
    .site-footer__links { padding-block: 26px; }
}
@media (max-width: 767px) {
    .site-footer__contact, .site-footer__links { border-bottom: 1px solid rgba(255, 255, 255, .36); }
}
@media (max-width: 767px) {
    .site-footer__contact, .site-footer__links { font-size: 15px; }
}
@media (max-width: 767px) {
    .site-footer__bottom { margin-top: 0; padding-top: 26px; border-top: 0; }
}

/* Align the visible logo edge with the text, accounting for the SVG's inner whitespace. */
@media (min-width:1200px) {
    .site-footer__brand { padding-top:calc(62px - 15.5%); }
}
@media (min-width:1200px) and (max-width:1366px) and (any-pointer:coarse) {
    .site-footer__brand { padding-top:0; }
}
