/* R52 QA hardening — primary CTAs need explicit contrast on light inner pages. */
.button.button-primary,
button.button-primary,
a.button.button-primary{
  color:#fff!important;
}
.button.button-primary:focus-visible,
button.button-primary:focus-visible,
a.button.button-primary:focus-visible{
  outline:3px solid rgba(226,180,89,.72);
  outline-offset:3px;
}


/* R52 QA hardening — consent-safe map loading and localized legal sections. */
.legal-language[hidden],.map-consent[hidden]{display:none!important}
.map-card{position:relative}
.map-consent{display:grid;place-items:center;min-height:360px;padding:34px;background:radial-gradient(circle at 85% 15%,rgba(80,162,207,.18),transparent 30%),linear-gradient(145deg,#edf6fa,#fff);text-align:center}
.map-consent>div{width:min(510px,100%);padding:34px;border:1px solid #d7e4ea;border-radius:24px;background:rgba(255,255,255,.92);box-shadow:0 20px 55px rgba(6,43,82,.10)}
.map-consent b{display:block;margin:12px 0 12px;font:500 28px/1.15 var(--serif);color:#072f58}
.map-consent p{margin:0 auto 22px;max-width:450px;font-size:13px;line-height:1.75;color:#536f82}
.map-consent .button{margin-inline:auto}
.map-card:not(.is-map-loaded)>iframe{display:none!important}
.map-modes button:disabled{opacity:.42!important;cursor:not-allowed!important;box-shadow:none!important}
html[dir="rtl"] .map-consent{text-align:center}
html[dir="rtl"] .map-consent p{font-size:15px;line-height:1.8}
@media(max-width:720px){.map-consent{min-height:360px;padding:18px}.map-consent>div{padding:26px 20px;border-radius:18px}.map-consent b{font-size:24px}.map-consent p{font-size:13px}}

/* R52 QA hardening — the Contact template does not enqueue the homepage R42/R44 component layer,
   so its visit cards need a scoped, site-wide base instead of inheriting homepage-only CSS. */
.contact-visit .visit-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:18px;align-items:stretch}
.contact-visit .hours-card{background:#fff;border:1px solid #d9e5eb;padding:31px 32px;box-shadow:0 24px 60px rgba(6,43,82,.09);border-radius:26px}
.contact-visit .hours-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid #e1e9ee}
.contact-visit .hours-title>div{display:flex;align-items:center;gap:16px}.contact-visit .hours-title p{display:grid;margin:0}.contact-visit .hours-title b{font:500 27px/1.1 var(--serif)}.contact-visit .hours-title small{font-size:12px;color:#4a9a68;margin-top:5px}.contact-visit .timezone{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#8a9baa}
.contact-visit .hours-list>div{min-height:61px;display:grid;grid-template-columns:1.15fr 1fr 1fr;align-items:center;border-bottom:1px solid #e7edf1;padding:6px 13px;transition:.25s}.contact-visit .hours-list>div:last-child{border:0}.contact-visit .hours-list>div.is-today{background:var(--navy,#031d38);color:#fff;border-color:var(--navy,#031d38);margin-inline:-8px;padding-inline:21px}.contact-visit .hours-list span{display:flex;align-items:center;gap:10px}.contact-visit .hours-list b{font-size:15px}.contact-visit .hours-list small{display:none;padding:4px 8px;background:var(--gold,#d3a24a);color:#062b52;border-radius:20px;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.contact-visit .hours-list .is-today small{display:inline-flex}.contact-visit .hours-list time{font-size:14px;color:#49677d;font-weight:600}.contact-visit .hours-list .is-today time{color:#f0f6fa}
.contact-visit .map-card{display:grid;grid-template-rows:auto minmax(360px,1fr) auto;min-height:560px;border:1px solid #d4e2e9;border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 24px 60px rgba(6,43,82,.11)}.contact-visit .map-card iframe{display:block;width:100%;height:100%;min-height:360px;border:0;filter:saturate(.92) contrast(1.02)}
.contact-visit .map-topbar{position:static;min-height:82px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border-bottom:1px solid #dfe8ed}.contact-visit .map-topbar>span{display:grid;gap:4px}.contact-visit .map-topbar>span small,.contact-visit .map-details p small{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#ba812d;font-weight:800}.contact-visit .map-topbar>span b{font:500 21px/1.1 var(--serif);color:var(--navy,#031d38)}
.contact-visit .map-modes{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:#edf4f8}.contact-visit .map-modes button{min-height:38px;padding:0 15px;border:0;border-radius:999px;background:transparent;color:#4f687b;font:700 10px/1 var(--sans,Arial,sans-serif);text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.contact-visit .map-modes button.is-active{background:var(--navy,#031d38);color:#fff;box-shadow:0 6px 14px rgba(3,29,56,.18)}
.contact-visit .map-details{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;min-height:96px;padding:16px 18px;background:linear-gradient(135deg,#061f3b,#0b4775);color:#fff}.contact-visit .map-pin{width:44px;height:44px;border:1px solid rgba(242,203,128,.5);border-radius:50%;display:grid;place-items:center;color:#f2cb80;font-size:21px}.contact-visit .map-details p{display:grid;gap:5px;margin:0}.contact-visit .map-details p b{font:500 15px/1.5 var(--serif)}.contact-visit .map-details>div{display:flex;gap:8px}.contact-visit .map-details button,.contact-visit .map-details a{min-height:39px;padding:0 13px;border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;display:inline-flex;align-items:center;justify-content:center;font:700 10px/1 var(--sans,Arial,sans-serif);text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.contact-visit .map-details a{background:#d3a24a;border-color:#d3a24a;color:#062b52}
@media(max-width:720px){.contact-visit .visit-grid{display:block}.contact-visit .hours-card{padding:24px 17px}.contact-visit .map-card{grid-template-rows:auto 360px auto;min-height:0;margin-top:18px;border-radius:20px}.contact-visit .map-topbar{min-height:76px;padding:13px 14px}.contact-visit .map-topbar>span b{font-size:19px}.contact-visit .map-modes button{padding:0 12px}.contact-visit .map-details{grid-template-columns:auto 1fr;padding:15px 14px}.contact-visit .map-details>div{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;width:100%}.contact-visit .map-details button,.contact-visit .map-details a{min-height:44px}}
