/* Location page: scoped cards, existing map, and confirmed visitor information. */
body.external-location {
  --p: #FFFFFF; --w: #F8F7F5; --location-ink: #2F2A26;
  --location-muted: #6B645D; --location-line: #DDD6CF;
  background: #FFFFFF !important;
}
body.external-location .location-shell {
  width: min(1200px, calc(100% - 96px)) !important;
  margin-inline: auto !important;
}
body.external-location .location-hero {
  padding: 96px 0 72px !important; background: #FFFFFF !important;
}
body.external-location .location-content {
  padding: 72px 0 40px !important; background: #FFFFFF;
  border-top: 0;
}
.external-location .location-layout {
  display: flex; flex-direction: column; gap: 40px;
}
.external-location .location-layout > * { width: 100%; min-width: 0; }
.external-location .location-office-info {
  box-sizing: border-box; padding: 36px; border: 1px solid var(--location-line);
  border-radius: 4px; background: var(--w);
}
.external-location .location-office-info h2 {
  margin: 0 0 24px; font-family: Pretendard, Arial, sans-serif;
  font-size: 22px; font-weight: 500; letter-spacing: -.04em;
}
.external-location .location-details { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px; }
.external-location .location-label {
  margin: 0 0 8px; color: var(--location-muted); font-size: 13px; font-weight: 500;
}
.external-location address { font-style: normal; font-size: 22px; line-height: 1.7; word-break: keep-all; }
.external-location .location-phone { color: var(--location-ink); font-size: 24px; line-height: 1.7; text-decoration: none; }
.external-location .location-entry { margin: 24px 0 0; color: var(--location-muted); font-size: 16px; line-height: 1.7; word-break: keep-all; }
.external-location .location-action-wrap { margin: 0; }
.external-location .location-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.external-location .location-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  box-sizing: border-box; min-width: 0; min-height: 52px; padding: 12px 16px; border: 1px solid var(--location-line);
  border-radius: 4px; background: #FFFFFF; color: var(--location-ink);
  font: 500 15px/1.5 Pretendard, sans-serif; white-space: nowrap; text-decoration: none; cursor: pointer;
}
.external-location .location-action:hover { background: #F1EFED; border-color: var(--location-ink); }
.external-location .location-copy-status { min-height: 22px; margin: 8px 0 0; font-size: 13px; }
.external-location .location-map-wrap { min-width: 0; }
.external-location .location-map-frame { position: relative; overflow: hidden; border: 1px solid var(--location-line); border-radius: 4px; }
.external-location .location-map { width: 100%; height: 400px; background: #F1EFED; }
.external-location .location-map-state {
  position: absolute; inset: 0; display: grid; place-content: center;
  padding: 28px; background: #F1EFED; text-align: center;
}
.external-location .location-map-state p { margin: 0; font-size: 15px; }
.external-location .location-layout--map-links .location-map-state {
  position: absolute; display: grid; place-content: center; padding: 32px; text-align: center;
}
.external-location .location-map-links h2 { margin: 0 0 18px; font-size: 22px; font-weight: 500; }
.external-location .location-map-links p + p { margin-top: 16px; }
.external-location .location-map-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 24px; }
.external-location .location-map-state[hidden], .external-location .location-map-state [hidden] { display: none; }
.external-location .location-map-caption, .external-location .location-noscript { margin: 16px 0 0; font-size: 13px; }
.external-location .location-marker { display: block; width: 28px; height: 38px; }
.external-location .location-marker svg { display: block; width: 28px; height: 38px; }
body.external-location .location-visit {
  margin: 0; padding: 0 0 88px !important; border: 0; background: #FFFFFF;
}
body.external-location .location-visit-inner {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding: 0 !important;
}
.external-location .location-visit-inner > div { box-sizing: border-box; padding: 28px; border: 1px solid var(--location-line); border-radius: 4px; background: var(--w); }
.external-location .location-visit h2 { margin: 0 0 14px; color: var(--location-ink); font-family: Pretendard, Arial, sans-serif; font-size: 20px; font-weight: 500; }
.external-location .location-visit p { margin: 0; color: var(--location-muted); font-size: 16px; line-height: 1.8; word-break: keep-all; }
.external-location :is(a, button):focus-visible { outline: 2px solid #45413c; outline-offset: 4px; }
.external-location .sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}

@media (max-width: 767px) {
  body.external-location .location-shell { width: calc(100% - 40px) !important; }
  body.external-location .location-hero { padding: 64px 0 48px !important; }
  body.external-location .location-content { padding: 40px 0 32px !important; }
  .external-location .location-layout { display: flex; flex-direction: column; gap: 24px; }
  .external-location .location-layout > * { width: 100%; }
  .external-location .location-office-info { padding: 24px; }
  .external-location .location-office-info h2 { margin-bottom: 20px; font-size: 20px; }
  .external-location .location-details { grid-template-columns: 1fr; gap: 20px; }
  .external-location .location-phone { font-size: 22px; }
  .external-location address { font-size: 18px; }
  .external-location .location-map { height: 300px; }
  .external-location .location-layout--map-links .location-map-state { padding: 24px; }
  .external-location .location-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .external-location .location-action { min-height: 48px; padding: 12px 8px; font-size: 14px; }
  body.external-location .location-visit { padding-bottom: 48px !important; }
  .external-location .location-visit-inner > div { padding: 24px; }
  body.external-location .location-visit-inner { grid-template-columns: 1fr; gap: 16px; }
}

@media (min-width: 768px) and (max-width: 980px) {
  body.external-location :is(.location-content, .location-visit) .location-shell { width: calc(100% - 48px) !important; }
}

/* Google embed: location page only; external navigation remains available. */
.external-location .location-google-map {
  display:block; box-sizing:border-box; width:100%; max-width:100%;
  height:400px; border:0; background:#F1EFED;
}
.external-location .location-google-map:focus-visible { outline:2px solid #45413c; outline-offset:4px; }
.external-location .location-map-help { margin:16px 0 0; color:var(--location-muted); font-size:13px; word-break:keep-all; }
@media(max-width:767px) {
  .external-location .location-google-map { height:300px; }
}

/* Approved location readability rules; retain confirmed content, map and HERO. */
body.external-location { --location-ink:#302E2B; --location-muted:#655E56; }
body.external-location .location-label { font-size:15px; }
body.external-location .location-entry,
body.external-location .location-visit p { font-size:18px; line-height:1.8; color:#302E2B; }
body.external-location .location-map-help,
body.external-location .location-map-caption,
body.external-location .location-noscript { font-size:17px; line-height:1.8; color:#655E56; }
body.external-location .location-visit h2 { font-size:24px; }
body.external-location .location-office-info,
body.external-location .location-visit-inner > div { border:0; background:#F1EFED; }
body.external-location .location-action { font-size:17px; }
body.external-location .location-copy-status { font-size:15px; }
@media(max-width:767px) {
  body.external-location .location-entry,
  body.external-location .location-visit p { font-size:17px; }
  body.external-location .location-visit h2 { font-size:22px; }
  body.external-location .location-actions { gap:12px; }
  body.external-location .location-action { font-size:17px; padding-inline:6px; }
}

/* 01 basic: mobile-only information layout; retain desktop content geometry. */
body.external-location .location-basic-icon,
body.external-location .location-mobile-only { display:none; }
@media(max-width:767px) {
  body.external-location .location-content { padding:32px 0 28px !important; }
  body.external-location .location-layout { gap:0; }
  body.external-location .location-office-info { padding:0; margin-bottom:24px; background:#FFFFFF; border:0; border-radius:0; box-shadow:none; }
  body.external-location .location-office-info h2 { margin:0 0 24px; font-size:24px; font-weight:600; line-height:1.5; }
  body.external-location .location-details { gap:16px; }
  body.external-location .location-detail { display:grid; grid-template-columns:24px minmax(0,1fr); gap:12px; align-items:start; }
  body.external-location .location-detail-copy { min-width:0; }
  body.external-location .location-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  body.external-location .location-basic-icon { display:block; flex-shrink:0; width:24px; height:24px; color:#655E56; }
  body.external-location .location-detail > .location-basic-icon { margin-top:3px; }
  body.external-location address { font-size:18px; line-height:1.8; overflow-wrap:break-word; }
  body.external-location .location-phone { display:inline-flex; align-items:center; min-height:48px; margin-top:-6px; font-size:22px; }
  body.external-location .location-entry { margin-top:16px; }
  body.external-location .location-map-wrap { margin-bottom:12px; }
  body.external-location .location-map-frame { border-radius:4px; }
  body.external-location .location-google-map { height:280px; }
  body.external-location .location-map-caption { display:none; }
  body.external-location .location-action { flex-direction:column; gap:8px; min-height:80px; padding:12px 4px; background:#FFFFFF; }
  body.external-location .location-action .location-basic-icon { width:22px; height:22px; }
  body.external-location .location-copy-status { min-height:0; margin:0; }
  body.external-location .location-copy-status:not(:empty) { margin-top:8px; }
  body.external-location .location-map-help { margin:12px 0 0; font-size:17px; line-height:1.7; }
  body.external-location .location-visit { padding-bottom:40px !important; }
  body.external-location .location-visit-inner { gap:28px; }
  body.external-location .location-visit-inner > div { display:grid; grid-template-columns:24px minmax(0,1fr); gap:12px; padding:0; background:#FFFFFF; border:0; border-radius:0; box-shadow:none; }
  body.external-location .location-visit-copy { min-width:0; }
  body.external-location .location-visit h2 { margin:0 0 10px; font-size:22px; line-height:1.5; }
  body.external-location .location-visit-inner > div > .location-basic-icon { margin-top:4px; }
  body.external-location .location-visit p { font-size:17px; line-height:1.8; }
  body.external-location .location-mobile-only { display:inline; }
  body.external-location .location-desktop-only { display:none; }
}
@media(max-width:360px) {
  body.external-location address { font-size:17px; }
  body.external-location .location-google-map { height:260px; }
}

/* PC 01 basic: share the approved mobile reading order without global changes. */
body.external-location .location-pc-only,
body.external-location .location-pc-only-inline { display:none; }
@media(min-width:768px) {
  body.external-location .location-pc-only { display:block; }
  body.external-location .location-pc-only-inline { display:inline; }
  body.external-location .external-image-hero .location-pc-kicker {
    margin:0 0 16px; font:600 13px/1.5 Pretendard,Arial,sans-serif;
    letter-spacing:.14em; color:#F8F7F5;
  }
  body.external-location .location-shell { width:min(1080px,calc(100% - 96px)) !important; }
  body.external-location .location-content { padding:64px 0 40px !important; }
  body.external-location .location-layout { gap:28px; }
  body.external-location .location-office-info { padding:0; background:#FFFFFF; border:0; border-radius:0; box-shadow:none; }
  body.external-location .location-office-info h2 { margin:0 0 24px; font-size:28px; font-weight:600; line-height:1.5; }
  body.external-location .location-details { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:64px; }
  body.external-location .location-detail { display:grid; grid-template-columns:24px minmax(0,1fr); gap:12px; align-items:start; }
  body.external-location .location-detail-copy { min-width:0; }
  body.external-location .location-basic-icon { display:block; width:24px; height:24px; flex-shrink:0; color:#655E56; }
  body.external-location .location-detail > .location-basic-icon { margin-top:2px; }
  body.external-location .location-entry { margin-top:20px; }
  body.external-location .location-google-map { height:360px; }
  body.external-location .location-map-caption { display:none; }
  body.external-location .location-action-wrap { margin-top:-16px; }
  body.external-location .location-action { flex-direction:row; gap:12px; min-height:64px; background:#FFFFFF; }
  body.external-location .location-action .location-basic-icon { width:22px; height:22px; }
  body.external-location .location-copy-status { min-height:0; margin:0; }
  body.external-location .location-copy-status:not(:empty) { margin-top:8px; }
  body.external-location .location-map-help { margin:12px 0 0; }
  body.external-location .location-visit { padding-bottom:72px !important; }
  body.external-location .location-visit-inner { grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px; }
  body.external-location .location-visit-inner > div { display:grid; grid-template-columns:48px minmax(0,1fr); gap:20px; padding:0; background:#FFFFFF; border:0; border-radius:0; box-shadow:none; }
  body.external-location .location-visit-copy { min-width:0; }
  body.external-location .location-visit-inner > div > .location-basic-icon { box-sizing:border-box; width:48px; height:48px; margin-top:-6px; padding:12px; border-radius:50%; background:#F8F7F5; }
  body.external-location .location-visit h2 { margin:0 0 12px; font-size:24px; font-weight:600; line-height:1.5; }
}

/* Enlarge only the address/phone and transport icons requested in the review. */
@media(min-width:768px) {
  body.external-location .location-detail { grid-template-columns:32px minmax(0,1fr); }
  body.external-location .location-detail > .location-basic-icon { width:32px; height:32px; margin-top:-2px; }
  body.external-location .location-visit-inner > div { grid-template-columns:64px minmax(0,1fr); }
  body.external-location .location-visit-inner > div > .location-basic-icon { width:64px; height:64px; padding:14px; margin-top:-14px; }
}
@media(max-width:767px) {
  body.external-location .location-detail,
  body.external-location .location-visit-inner > div { grid-template-columns:32px minmax(0,1fr); }
  body.external-location .location-detail > .location-basic-icon,
  body.external-location .location-visit-inner > div > .location-basic-icon { width:32px; height:32px; margin-top:0; }
}
