/* Reset (minimal) */
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Pretendard', 'Noto Sans KR', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  color: #222;
  background: #f4f7f9;
  line-height: 1.6;
}

/* Hero section */
.hero {
  min-height: calc(100dvh - 60px);
  display: grid;
  place-items: center;
  padding: clamp(16px, 3vw, 48px);
}

.hero-card {
  position: relative;
  width: clamp(320px, 86vw, 1600px);
  margin: 0 auto;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.10);
  background: #e2f1f5;
}

.hero-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* Clickable hotspot roughly centered (adjustable with --size, --x, --y) */
.hotspot {
  --size: 28%;
  --x: 50%;
  --y: 50%;
  position: absolute;
  width: var(--size);
  aspect-ratio: 1 / 1;
  left: calc(var(--x) - var(--size) / 2);
  top: calc(var(--y) - var(--size) / 2);
  cursor: pointer;
  /* for accessibility */
  border: 0;
  outline: none;
  text-decoration: none;
  background: radial-gradient(rgba(255,255,255,0.08), rgba(0,0,0,0.06));
  transition: transform .15s ease, box-shadow .15s ease;
  border-radius: 999px;
}
.hotspot:hover { transform: scale(1.02); box-shadow: 0 0 0 6px rgba(0,0,0,0.05) inset; }
.hotspot:focus-visible { outline: 3px solid #2aa7c9; outline-offset: 4px; }

/* Modal */
.modal {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 16px;
  background: rgba(7, 22, 27, 0.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
.modal[aria-hidden="false"] { opacity: 1; pointer-events: auto; }

.modal__dialog {
  width: min(520px, 92vw);
  background: #fff;
  border-radius: 14px;
  padding: clamp(20px, 4vw, 28px);
  box-shadow: 0 12px 40px rgba(0,0,0,.22);
}
.modal__close {
  position: absolute;
  right: 20px;
  top: 12px;
  border: none;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
h2 { margin: 0 0 8px; }
.cta-wrap { display: grid; gap: 12px; margin: 18px 0 8px; }
.btn {
  display: inline-block;
  padding: 12px 16px;
  text-align: center;
  text-decoration: none;
  border: 1px solid #d0d7de;
  border-radius: 10px;
}
.btn.primary {
  background: #2aa7c9;
  color: #fff;
  border-color: #2aa7c9;
}
.note { color: #666; }

/* Footer */
.site-footer {
  height: 60px;
  display: grid;
  place-items: center;
  font-size: 14px;
  color: #667;
}

/* Visually hidden for screen readers */
.sr-only {
  position: absolute !important;
  height: 1px; width: 1px;
  overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
  clip-path: inset(50%);
}


/* Safe-area for iOS notch devices */
@supports(padding:max(0px)) {
  body { padding-left: max(0px, env(safe-area-inset-left));
         padding-right: max(0px, env(safe-area-inset-right)); }
  .site-footer { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
}

/* Mobile tap target sizing */
.btn, .hotspot, .modal__close { min-height: 44px; min-width: 44px; }

/* Reduce image size on very small screens */
@media (max-width: 360px) {
  .hero-card { border-radius: 0; }
}


/* XL screens: more breathing room */
@media (min-width: 1440px) {
  .hero { padding: clamp(24px, 4vw, 80px); }
  .hotspot { --size: 26%; }
}

/* Ultra-wide screens */
@media (min-width: 1920px) {
  .hero { padding: clamp(40px, 6vw, 120px); }
  .hotspot { --size: 24%; }
}

/* Hidden top-edge links */
.top-edge-link { position: fixed; top: 0; width: 120px; height: 44px; opacity: 0; z-index: 50; }
.top-edge-link--left { left: 0; }
.top-edge-link--right { right: 0; }


/* ====== Top Navigation ====== */
.nav {
  position: sticky; top: 0; z-index: 60;
  backdrop-filter: blur(8px);
  background: color-mix(in oklab, white 78%, transparent);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.nav__inner {
  margin: 0 auto;
  width: min(1600px, 92vw);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 10px clamp(12px, 2.4vw, 24px);
}
.nav__brand {
  font-weight: 700;
  letter-spacing: .2px;
  text-decoration: none;
  color: #0e2a33;
  font-size: clamp(16px, 2vw, 20px);
}
.nav__toggle {
  display: none;
  background: none; border: 1px solid #d0d7de;
  padding: 8px 10px; border-radius: 10px; cursor: pointer;
}
.nav__menu {
  display: flex; gap: clamp(10px, 2vw, 24px);
}
.nav__item {
  text-decoration: none; color: #22323a; padding: 8px 10px; border-radius: 10px;
}
.nav__item:hover, .nav__item:focus-visible {
  background: rgba(34,50,58,.06);
  outline: none;
}
.nav__lang { border: 1px solid #d0d7de; }

/* Mobile */
@media (max-width: 768px) {
  .nav__inner { grid-template-columns: auto auto; }
  .nav__toggle { display: inline-block; }
  .nav__menu {
    display: none; /* collapsed */
    position: absolute; left: 0; right: 0; top: 54px;
    margin: 0 auto; width: min(720px, 92vw);
    background: white; border: 1px solid #e5e7eb; border-radius: 12px;
    box-shadow: 0 12px 28px rgba(0,0,0,.08);
    padding: 10px;
    flex-direction: column; gap: 6px;
  }
  .nav__menu.is-open { display: flex; }
}

/* Accessibility: skip to content */
.skip-link {
  position: absolute; left: -9999px; top: -9999px;
  background: #0e2a33; color: #fff; padding: 10px 14px; border-radius: 10px;
}
.skip-link:focus { left: 12px; top: 12px; z-index: 100; }
