/* Contact maps — responsive two-column desktop layout + clear mobile maps */
.contact-maps-section{padding-top:0}
.contact-maps-grid{display:grid;grid-template-columns:1fr;gap:26px}
.contact-map-card{min-width:0;border:1px solid rgba(19,50,86,.10);border-radius:24px;background:#eef7fb;overflow:hidden;box-shadow:0 18px 50px rgba(12,42,77,.07)}
.contact-map-card__toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 26px 22px;background:#eef7fb}
.contact-map-card__toolbar>div{min-width:0}
.contact-map-card__eyebrow{margin:0 0 5px}
.contact-map-card__toolbar h2{margin:0;color:#071b2d;font-size:clamp(1.8rem,2.45vw,2.55rem);line-height:1.05;letter-spacing:-.04em}
.contact-map-open-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;padding:12px 16px;border:1px solid #b7d8e9;border-radius:999px;background:#fff;color:#076caf;text-decoration:none;font-weight:700;font-size:.9rem;line-height:1;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}
.contact-map-open-button:hover,.contact-map-open-button:focus-visible{transform:translateY(-1px);border-color:#8bc3df;background:#fafdff;box-shadow:0 8px 20px rgba(10,76,126,.10)}
.contact-map-frame{position:relative;width:100%;height:430px;overflow:hidden;background:#e9f2f6}
.contact-map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* Address card overlay on desktop/tablet. */
.contact-map-address-card{position:absolute;z-index:4;top:14px;left:14px;display:flex;flex-direction:column;align-items:flex-start;width:min(285px,calc(100% - 28px));padding:17px 18px 16px;border:1px solid rgba(14,47,79,.14);border-radius:6px;background:#fff;box-shadow:0 3px 12px rgba(17,45,72,.22);color:#485a6b}
.contact-map-address-card__company{display:block;margin:0 0 4px;color:#18212a;font-size:1rem;line-height:1.25;font-weight:750}
.contact-map-address-card__location{display:block;margin-bottom:8px;color:#5b6873;font-size:.88rem;font-weight:650}
.contact-map-address-card p{margin:0 0 9px;color:#5b6873;font-size:.84rem;line-height:1.42;white-space:pre-line}
.contact-map-address-card>a:not(.contact-map-address-card__maps){display:block;margin:2px 0;color:#53677a;text-decoration:none;font-size:.82rem;line-height:1.35;overflow-wrap:anywhere}
.contact-map-address-card>a:not(.contact-map-address-card__maps):hover,.contact-map-address-card>a:not(.contact-map-address-card__maps):focus-visible{color:#086fb4;text-decoration:underline}
.contact-map-address-card__maps{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:11px;padding:8px 13px;border-radius:999px;background:#1476e5;color:#fff;text-decoration:none;font-size:.84rem;font-weight:700;line-height:1;box-shadow:0 4px 10px rgba(20,118,229,.22);transition:transform .2s ease,background .2s ease}
.contact-map-address-card__maps:hover,.contact-map-address-card__maps:focus-visible{background:#0e65c8;transform:translateY(-1px)}

/* Desktop: show office and factory beside each other. */
@media(min-width:980px){
  .contact-maps-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
  .contact-map-card{height:100%}
  .contact-map-card__toolbar{min-height:112px;padding:21px 22px 20px}
  .contact-map-card__toolbar h2{font-size:clamp(1.72rem,2vw,2.18rem)}
  .contact-map-open-button{padding:11px 14px;font-size:.83rem}
  .contact-map-frame{height:430px}
}

/* Medium screens: one map per row, still using overlay card. */
@media(min-width:761px) and (max-width:979px){
  .contact-map-frame{height:440px}
  .contact-map-address-card{width:min(310px,calc(100% - 28px))}
}

/* Mobile: move details OUT of the map so the map remains completely visible. */
@media(max-width:760px){
  .contact-maps-grid{gap:24px}
  .contact-map-card{border-radius:18px;overflow:hidden}
  .contact-map-card__toolbar{display:grid;grid-template-columns:1fr;align-items:start;gap:12px;padding:19px 17px 17px}
  .contact-map-card__toolbar h2{font-size:clamp(1.55rem,7vw,2rem)}
  .contact-map-open-button{justify-self:start;padding:10px 13px;font-size:.82rem}

  .contact-map-frame{display:flex;flex-direction:column;height:auto;overflow:visible;background:#fff}
  .contact-map-address-card{position:relative;z-index:1;top:auto;left:auto;order:0;width:auto;margin:0;padding:16px 17px 15px;border:0;border-top:1px solid rgba(19,50,86,.08);border-bottom:1px solid rgba(19,50,86,.10);border-radius:0;background:#fff;box-shadow:none}
  .contact-map-address-card__company{font-size:1rem}
  .contact-map-address-card__location{font-size:.86rem}
  .contact-map-address-card p{font-size:.83rem;line-height:1.45}
  .contact-map-address-card>a:not(.contact-map-address-card__maps){font-size:.82rem}
  .contact-map-address-card__maps{padding:8px 13px;font-size:.82rem}

  .contact-map-frame iframe{position:relative;inset:auto;order:1;width:100%;height:350px;min-height:350px;display:block;border:0}
}

@media(max-width:480px){
  .contact-map-frame iframe{height:320px;min-height:320px}
}

@media(max-width:360px){
  .contact-map-frame iframe{height:300px;min-height:300px}
}
