/* Hallmark · component: Contact page shell · genre: modern-minimal · tone: technical, restrained, industrial · anchor hue: MOSINTER green */
/* Hallmark · pre-emit critique: P4 H4 E5 S5 R5 V4 */
/* Hallmark | macrostructure: contact ledger + interactive map | slop-test: pass */
/* Contact-only layout and image ownership. Shared site components remain in mosinter-industro.css. */
:root {
  --mos-contact-surface:oklch(97% 0.004 75);
  --mos-contact-surface-raised:oklch(99% 0.003 75);
  --mos-contact-accent:oklch(58.365% 0.12409 131.416);
  --mos-contact-ink:oklch(18% 0.01 55);
  --mos-contact-muted:oklch(46% 0.025 55);
  --mos-contact-rule:oklch(86% 0.025 65);
  --mos-contact-shadow:oklch(22% 0.025 55 / .12);
  --mos-contact-focus:oklch(54.123% 0.12997 132.225);
  --mos-contact-ease-out:cubic-bezier(.16, 1, .3, 1);
  --mos-contact-dur-short:180ms;
}

.mos-contactus-root,
body.mos-contactus-page {
  overflow-x:clip;
}

.mos-contactus-page .mos-contact-hero {
  background-image:url("../imgs/contactus/contact-hero.png");
}

.mos-contactus-page .mos-contact-footer {
  background-image:url("../imgs/contactus/footer-bg.png");
}

.mos-contactus-page .mos-contact-quote-panel {
  background-image:url("../imgs/contactus/quote-panel-bg.jpg");
}

.mos-contactus-page .mos-contact-quote-map {
  background-image:url("../imgs/contactus/quote-map-bg.png");
}

.mos-contactus-page .mos-contact-card {
  height:100%;
  padding:32px 28px;
  background:var(--mos-contact-surface);
}

.mos-contactus-page .mos-contact-card h2 {
  margin-block-end:16px;
  padding-block-end:16px;
  border-block-end:1px solid var(--mos-contact-rule);
}

.mos-contactus-page .mos-contact-list {
  display:block;
  margin:0;
  padding:0;
  list-style:none;
}

.mos-contactus-page .mos-contact-list li {
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  align-items:center;
  min-width:0;
  min-height:64px;
  padding:12px 0;
  border-block-end:1px solid var(--mos-contact-rule);
}

.mos-contactus-page .mos-contact-list li:last-child { border-block-end:0; }

.mos-contactus-page .mos-contact-list li.mos-contact-address {
  align-items:start;
}

.mos-contactus-page .mos-contact-icon {
  display:grid;
  width:40px;
  height:40px;
  place-items:center;
  color:var(--mos-contact-accent);
  font-size:18px;
}

.mos-contactus-page .mos-contact-copy {
  min-width:0;
}

.mos-contactus-page .mos-contact-copy small {
  display:block;
  margin-block-end:3px;
  color:var(--mos-contact-muted);
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.mos-contactus-page .mos-contact-copy a,
.mos-contactus-page .mos-contact-copy span {
  display:block;
  color:var(--mos-contact-ink);
  font-size:14px;
  line-height:1.55;
  overflow-wrap:anywhere;
  transition:color var(--mos-contact-dur-short) var(--mos-contact-ease-out);
}

@media (hover:hover) and (pointer:fine) {
  .mos-contactus-page .mos-contact-list li:hover .mos-contact-copy a,
  .mos-contactus-page .mos-contact-list li:hover .mos-contact-copy span {
    color:var(--mos-contact-accent);
  }
}

.mos-contactus-page .mos-contact-list li:focus-within .mos-contact-copy a,
.mos-contactus-page .mos-contact-list li:focus-within .mos-contact-copy span {
  color:var(--mos-contact-accent);
}

.mos-contactus-page .mos-contact-map {
  position:relative;
  min-height:360px;
  overflow:hidden;
  border:1px solid var(--mos-contact-rule);
  box-shadow:0 1.25rem 3rem var(--mos-contact-shadow);
}

.mos-contactus-page .mos-contact-map:fullscreen,
.mos-contactus-page .mos-contact-map.is-map-expanded {
  width:100vw !important;
  height:100vh !important;
  min-height:100vh !important;
  border:0;
}

.mos-contactus-page .mos-contact-map.is-map-expanded {
  position:fixed !important;
  inset:0 !important;
  z-index:2000;
}

.mos-contactus-page .mos-map-fullscreen-control a {
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  color:var(--mos-contact-ink);
  font-size:15px;
}

.mos-contactus-page .mos-map-fullscreen-control a:focus-visible {
  outline:2px solid var(--mos-contact-focus);
  outline-offset:2px;
}

.mos-contactus-page .leaflet-control-layers {
  overflow:hidden;
  border:1px solid var(--mos-contact-rule);
  border-radius:2px;
  background:var(--mos-contact-surface-raised);
  box-shadow:0 2px 8px var(--mos-contact-shadow);
  color:var(--mos-contact-ink);
  font-family:inherit;
}

.mos-contactus-page .leaflet-control-layers-expanded {
  min-width:148px;
  padding:0;
}

.mos-contactus-page .leaflet-control-layers-base {
  display:grid;
}

.mos-contactus-page .leaflet-control-layers-base label {
  display:flex;
  min-height:44px;
  align-items:center;
  margin:0;
  padding:0 14px;
  border-block-end:1px solid var(--mos-contact-rule);
  cursor:pointer;
  line-height:1;
}

.mos-contactus-page .leaflet-control-layers-base label:last-child { border-block-end:0; }
.mos-contactus-page .leaflet-control-layers-base label > span {
  display:flex;
  width:100%;
  align-items:center;
}

.mos-contactus-page .leaflet-control-layers-base input {
  width:16px;
  height:16px;
  margin:0 9px 0 0;
  accent-color:var(--mos-contact-accent);
}

.mos-contactus-page .leaflet-control-layers-base span { font-size:14px; font-weight:600; }

@media (hover:hover) and (pointer:fine) {
  .mos-contactus-page .leaflet-control-layers-base label:hover {
    background:var(--mos-contact-surface);
  }
}

.mos-contactus-page .leaflet-control-layers-base label:focus-within {
  position:relative;
  outline:2px solid var(--mos-contact-focus);
  outline-offset:-2px;
  z-index:1;
}

.mos-contactus-page .leaflet-control-layers-base label:active { background:var(--mos-contact-surface); }
.mos-contactus-page .leaflet-control-layers-base input:disabled + span { opacity:.55; cursor:not-allowed; }
.mos-contactus-page .leaflet-control-layers[data-state="loading"] { cursor:wait; }
.mos-contactus-page .leaflet-control-layers[data-state="error"] { border-color:var(--mos-contact-accent); }
.mos-contactus-page .leaflet-control-layers[data-state="success"] { border-color:var(--mos-contact-ink); }

.mos-contactus-page .mos-map-marker {
  border:0;
  background:transparent;
}

.mos-contactus-page .mos-map-marker-pin {
  position:relative;
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border:2px solid var(--mos-contact-surface-raised);
  border-radius:50% 50% 50% 0;
  background:var(--mos-contact-accent);
  color:var(--mos-contact-surface-raised);
  box-shadow:0 6px 14px var(--mos-contact-shadow);
  font-size:13px;
  transform:rotate(-45deg);
}

.mos-contactus-page .mos-map-marker-pin i { transform:rotate(45deg); }

@media (min-width:48rem) {
  .mos-contactus-page .mos-contact-card { padding:40px; }
  .mos-contactus-page .mos-contact-map { min-height:470px; }
}

@media (min-width:62rem) {
  .mos-contactus-page .mos-contact-overview { margin-right:-20px; margin-left:-20px; }
  .mos-contactus-page .mos-contact-overview > [class*="col-"] { padding-right:20px; padding-left:20px; }
}

@media (min-width:100rem) {
  .mos-contactus-page .mos-contact-map { min-height:520px; }
}

@media (min-width:140rem) {
  .mos-contactus-page .mos-contact-map { min-height:580px; }
}
