
html:has(.kmr-location),
body:has(.kmr-location) { overflow-x: clip !important; }
.kmr-location-section {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  overflow: visible !important;
}
.kmr-location {
  --kl-ink: #39291f;
  --kl-muted: #6b6056;
  --kl-accent: #916a4e;
  --kl-line: #ded4c8;
  box-sizing: border-box;
  width: var(--kl-width, 100vw) !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  margin-left: var(--kl-left, calc(50% - 50vw)) !important;
  padding: 32px clamp(20px, 3vw, 64px) !important;
  background: #faf7f2;
  color: var(--kl-ink);
  font: 16px/1.8 Arial, Helvetica, sans-serif;
}
.kmr-location *,
.kmr-location *::before,
.kmr-location *::after { box-sizing: border-box; }
.kmr-location .kl-header { margin-bottom: 28px; }
.kmr-location .kl-title {
  margin: 0 0 20px;
  color: var(--kl-ink);
  font: 500 clamp(30px, 3.4vw, 50px)/1.2 Arial, Helvetica, sans-serif;
  letter-spacing: -.025em;
  text-transform: uppercase;
}
.kmr-location .kl-intro {
  max-width: 960px;
  margin: 0;
  color: var(--kl-muted);
  font-size: 16px;
  line-height: 1.85;
}
.kmr-location .kl-frame {
  position: relative;
  width: 100%;
  height: clamp(420px, 35vw, 540px);
  overflow: hidden;
  border: 1px solid var(--kl-line);
  border-radius: 12px;
  background: #eee8e0;
  box-shadow: 0 12px 36px rgba(57, 41, 31, .05);
}
.kmr-location .kl-map {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.kmr-location .kl-map[src="about:blank"] { display: none; }
.kmr-location .kl-empty {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 24px 24px 160px;
  background: #eee8e0;
  color: var(--kl-accent);
  text-align: center;
}
.kmr-location .kl-empty svg {
  width: 48px;
  height: 48px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
}
.kmr-location .kl-empty p {
  margin: 0;
  color: var(--kl-muted);
  font-size: 16px;
}
.kmr-location .kl-map:not([src="about:blank"]) + .kl-empty { display: none; }
.kmr-location .kl-card {
  position: absolute;
  left: 24px;
  bottom: 40px;
  width: min(440px, calc(100% - 48px));
  padding: 22px 24px;
  border: 1px solid var(--kl-line);
  border-radius: 8px;
  background: #fffdf9;
  box-shadow: 0 8px 28px rgba(57, 41, 31, .08);
}
.kmr-location .kl-brand {
  margin: 0 0 8px;
  color: var(--kl-accent);
  font: 600 12px/1.5 Arial, Helvetica, sans-serif;
  letter-spacing: .12em;
}
.kmr-location .kl-company {
  margin: 0 0 8px;
  color: var(--kl-ink);
  font: 600 18px/1.4 Arial, Helvetica, sans-serif;
}
.kmr-location .kl-address {
  margin: 0;
  color: var(--kl-muted);
  font: normal 14px/1.8 Arial, Helvetica, sans-serif;
  overflow-wrap: anywhere;
}
.kmr-location .kl-action {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  max-width: 100%;
  margin-top: 8px;
  color: var(--kl-accent);
  font: 600 14px/1.6 Arial, Helvetica, sans-serif;
  text-decoration: none;
}
.kmr-location .kl-action svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.kmr-location .kl-action:hover { color: var(--kl-ink); text-decoration: underline; }
.kmr-location .kl-action:focus-visible,
.kmr-location .kl-map:focus-visible {
  outline: 2px solid var(--kl-accent);
  outline-offset: 3px;
}
@media (max-width: 600px) {
  .kmr-location { padding-top: 24px !important; padding-bottom: 24px !important; }
  .kmr-location .kl-title { margin-bottom: 16px; }
  .kmr-location .kl-intro { font-size: 15px; }
  .kmr-location .kl-frame { height: auto; }
  .kmr-location .kl-map { height: 300px; }
  .kmr-location .kl-empty {
    position: relative;
    min-height: 260px;
    padding: 24px;
  }
  .kmr-location .kl-card {
    position: relative;
    left: auto;
    bottom: auto;
    width: 100%;
    padding: 20px;
    border: 0;
    border-top: 1px solid var(--kl-line);
    border-radius: 0;
    box-shadow: none;
  }
}
