/* One desktop footer treatment across all page templates and detail routes. */
@media (min-width:1001px) {
  .hero-art:is(.home-polished,.interior-polished) .site-footer {
    --footer-ink:#d9e6ee;
    --footer-heading:#c9e8fb;
    --footer-hover:#a8d9f5;
    position:relative;
    isolation:isolate;
    overflow:hidden;
    display:block;
    width:100%;
    max-width:none;
    margin:0;
    padding:65px 0 25px;
    border:0;
    border-radius:32px 32px 0 0;
    font-family:'DM Sans',sans-serif;
    font-size:16px;
    font-weight:400;
    line-height:1.6;
    color:var(--footer-ink);
    background:linear-gradient(105deg,#152e4bf5 0%,#214561ef 58%,#274f67db),url('/assets/hero-visuals/about-generated.png') center 72% / cover;
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer::before,
  .hero-art:is(.home-polished,.interior-polished) .site-footer::after { content:none; }
  .hero-art:is(.home-polished,.interior-polished) .site-footer > .container {
    width:min(1280px,calc(100% - 104px));
    max-width:none;
    margin:0 auto;
    padding:0;
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-grid {
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr);
    gap:48px;
    margin:0;
    padding:0;
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-grid > div {
    min-width:0;
    display:block;
    grid-column:auto;
    margin:0;
    padding:0;
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-brand > .brand {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:152px;
    height:100px;
    margin:0;
    padding:8px;
    border:0;
    border-radius:18px;
    background:#f8fbff;
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-brand > .brand img {
    display:block;
    width:136px;
    height:84px;
    max-width:100%;
    margin:0;
    padding:0;
    object-fit:contain;
    filter:none;
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-grid h3 {
    margin:0 0 21px;
    font-family:Outfit,sans-serif;
    font-size:14px;
    font-weight:500;
    line-height:1.3;
    letter-spacing:.01em;
    color:var(--footer-heading);
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-grid p {
    margin:13px 0;
    max-width:none;
    font-size:12px;
    line-height:1.8;
    color:var(--footer-ink);
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-brand p {
    max-width:240px;
    margin:18px 0 0;
    line-height:1.9;
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-grid > div:not(.footer-brand) > a {
    display:block;
    margin:12px 0 0;
    padding:0;
    font-family:inherit;
    font-size:12px;
    font-weight:400;
    line-height:1.6;
    color:var(--footer-ink);
    overflow-wrap:anywhere;
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-grid > div:last-child strong { color:var(--footer-heading); }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-bottom {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
    margin:50px 0 0;
    padding:21px 0 0;
    border-top:1px solid #b5cad44d;
    font-size:11px;
    line-height:1.6;
    color:var(--footer-ink);
  }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-bottom > div { display:flex; align-items:center; gap:20px; margin:0; }
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-bottom :is(p,a) { margin:0; font-size:11px; line-height:1.6; color:var(--footer-ink); }
  .hero-art:is(.home-polished,.interior-polished) .site-footer a:hover,
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-grid > div:not(.footer-brand) > a:hover { color:var(--footer-hover); }
  .hero-art:is(.home-polished,.interior-polished) .site-footer :focus-visible { outline:2px solid var(--footer-hover); outline-offset:4px; }
}
@media (min-width:1001px) and (max-width:1280px) {
  .hero-art:is(.home-polished,.interior-polished) .site-footer .footer-grid { gap:30px; }
}

/* Shared social and location links, including the mobile footer. */
.social-links { margin-top:22px; }
.social-links .social-links-label { display:block; margin-bottom:10px; font-size:12px; font-weight:600; letter-spacing:.02em; }
.social-links .social-link-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.social-links a.social-link {
  display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; min-width:46px; min-height:46px;
  padding:11px; margin:0; border:1px solid #ffffff35; border-radius:14px;
  color:#fff; text-decoration:none; box-shadow:0 4px 12px #00000012;
  transition:transform 200ms ease,box-shadow 200ms ease;
}
.social-links a.social-link-facebook { background:#1877f2; }
.social-links a.social-link-instagram { background:linear-gradient(135deg,#833ab4,#c13584 55%,#e1306c); }
.social-links a.social-link-tiktok { background:#10151c; border-color:#ffffff60; }
.social-links img.social-logo { display:block; width:22px; height:22px; min-width:22px; padding:0; margin:0; flex:none; object-fit:contain; border:0; border-radius:0; background:transparent; filter:none; transform:none; box-shadow:none; }
.social-links a.social-link:hover { transform:translateY(-2px); box-shadow:0 6px 16px #00000024; }
.social-links a.social-link:active { transform:scale(.96); }
.social-links a.social-link:focus-visible { outline:3px solid #7ecbff; outline-offset:4px; }
.footer-company-name { display:block; color:#eef6ff; font-size:13px; line-height:1.6; margin-bottom:9px; }
.site-footer a.footer-map-link { display:inline-flex; align-items:center; gap:7px; min-height:44px; font-size:12px; font-weight:600; color:#d9efff; text-underline-offset:4px; }
.site-footer a.footer-map-link:hover { text-decoration:underline; }
.site-footer .footer-map-link .location-icon { display:block; width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; }
.site-footer .footer-location { margin:0 0 15px; }
.office-block .office-company-name { display:block; margin-bottom:5px; font-weight:600; }
.office-block a[href^="https://share.google/"] { display:inline-flex; align-items:center; min-height:44px; }
.office-card .social-links { margin-top:20px; }
.office-card .social-links-label { color:#eaf5ff; }
.hero-art.mobile-app.contact-page .office-card .contact-line[href^="mailto:"] { font-size:14px; }
@media (max-width:1000px) {
  .mobile-app .app-footer > .social-links { margin:0 0 26px; }
  .mobile-app .app-footer .footer-map-link { gap:8px; }
  .mobile-app .app-footer .footer-location { margin-bottom:16px; }
  .mobile-app .app-footer .footer-location p { margin-bottom:0; }
}
@media (prefers-reduced-motion:reduce) { .social-links a.social-link { transition:none; } }

/* Compact directory: primary pages stay visible; brands and office details expand. */
.footer-expanded .footer-product-grid { display:block; margin-top:6px; }
.footer-expanded :is(.footer-product-group,.footer-office-disclosure) { border:0; margin:0; }
.footer-expanded :is(.footer-product-group,.footer-office-disclosure) > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:34px; list-style:none; cursor:pointer; color:#d9e6ee; font-size:12px; line-height:1.6; }
.footer-expanded :is(.footer-product-group,.footer-office-disclosure) > summary::-webkit-details-marker { display:none; }
.footer-expanded :is(.footer-product-group,.footer-office-disclosure) > summary::after { content:'+'; color:#a8d9f5; font-size:18px; flex-shrink:0; }
.footer-expanded :is(.footer-product-group,.footer-office-disclosure)[open] > summary::after { content:'−'; }
.footer-expanded :is(.footer-product-group,.footer-office-disclosure) > summary:hover { color:#a8d9f5; }
.footer-expanded .footer-family-links { display:grid; gap:0; padding:7px 12px; margin:4px 0 10px; background:#ffffff09; border-left:2px solid #a8d9f559; border-radius:0 8px 8px 0; }
.footer-expanded .footer-family-links a { display:flex; align-items:center; min-height:30px; padding:5px 0; font-size:12px; line-height:1.6; color:#d9e6ee; overflow-wrap:anywhere; }
.footer-expanded .footer-contact-links { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:0 24px; }
.footer-expanded .footer-contact-links a { display:flex; align-items:center; min-height:34px; font-size:12px; color:#d9e6ee; overflow-wrap:anywhere; }
.footer-expanded .footer-office-disclosure > .footer-location { margin:8px 0 0; }
@media (min-width:1001px) {
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded { padding-top:44px; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid {
    grid-template-columns:1.15fr 1fr 1fr 1.15fr 1fr;
    grid-template-areas:'brand products solutions services company' 'contact contact contact contact contact';
    gap:25px 32px;
    align-items:start;
  }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid > .footer-brand { grid-area:brand; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid > .footer-products { grid-area:products; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid > .footer-solutions { grid-area:solutions; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid > .footer-services { grid-area:services; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid > .footer-company { grid-area:company; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid > .footer-contact { grid-area:contact; display:grid; grid-template-columns:1fr 1.2fr; align-items:start; gap:24px; border-top:1px solid #b5cad433; padding-top:18px; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid > .footer-contact > h3 { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid > div.footer-section:not(.footer-brand) > a { min-height:30px; display:flex; align-items:center; margin-top:4px; padding:3px 0; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid h3 { margin-bottom:15px; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-brand > .brand { width:127px; height:82px; padding:7px; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-brand > .brand img { width:113px; height:68px; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-brand p { margin-top:14px; line-height:1.7; }
  .footer-expanded .social-links { margin-top:16px; }
  .footer-expanded .social-links .social-links-label { margin-bottom:8px; }
  .footer-expanded .footer-offices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-bottom { margin-top:20px; padding-top:16px; }
}
@media (min-width:1001px) and (max-width:1200px) {
  .hero-art:is(.home-polished,.interior-polished) .footer-expanded .footer-grid { gap:24px 20px; }
  .footer-expanded .footer-contact-links { gap:0 16px; }
}
@media (max-width:1000px) {
  .mobile-app .footer-expanded .app-footer .footer-product-grid { margin-top:8px; }
  .mobile-app .footer-expanded .app-footer :is(.footer-product-group,.footer-office-disclosure) { border:0; }
  .mobile-app .footer-expanded .app-footer :is(.footer-product-group,.footer-office-disclosure) > summary { min-height:46px; font-size:14px; font-weight:500; }
  .mobile-app .footer-expanded .app-footer :is(.footer-product-group,.footer-office-disclosure) > summary::after { content:'+'; font-size:20px; }
  .mobile-app .footer-expanded .app-footer :is(.footer-product-group,.footer-office-disclosure)[open] > summary::after { content:'−'; }
  .mobile-app .footer-expanded .app-footer .footer-family-links { padding:4px 12px 8px; }
  .mobile-app .footer-expanded .app-footer .footer-family-links a { min-height:44px; }
  .mobile-app .footer-expanded .app-footer .footer-contact-links { display:block; margin-top:12px; }
}
