/* Shared navigation, contact and responsive repairs. No JavaScript required. */
:root { --repair-navy:#103757; --repair-paper:#fbfaf7; --repair-ink:#18354f; --repair-gold:#c9a35d; }
html { scroll-padding-top:16px; }
body.gh-repaired { margin:0; min-width:0; color:var(--repair-ink); }
body.gh-repaired, body.gh-repaired * { box-sizing:border-box; }
.gh-repaired a, .gh-repaired summary { -webkit-tap-highlight-color:rgba(201,163,93,.25); }
.gh-repaired a:focus-visible, .gh-repaired summary:focus-visible {
  outline:3px solid #a75b00; outline-offset:4px; border-radius:2px;
}
.gh-repaired [tabindex="-1"]:focus { outline:none; }
.gh-skip { position:absolute; z-index:100; top:8px; left:8px; padding:12px 18px; background:#fff; color:#103757; transform:translateY(-200%); }
.gh-skip:focus { transform:translateY(0); }
.gh-site-nav, .gh-breadcrumb, .gh-contact, .gh-directory, .gh-mobile-home, .gh-home-intro, .gh-text-section {
  font-family:"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  font-size:16px; line-height:1.7; letter-spacing:normal; overflow-wrap:anywhere;
}
.gh-site-nav { position:relative; z-index:10; padding:10px 22px; background:#103757; color:#fff; }
.gh-nav-row { display:flex; flex-wrap:wrap; align-items:center; gap:4px 16px; }
.gh-site-nav a, .gh-site-nav summary { color:#fff; text-decoration:none; }
.gh-nav-row > a, .gh-site-nav summary { display:inline-flex; align-items:center; min-height:44px; padding:6px 3px; font-size:14px; }
.gh-site-nav summary { display:list-item; list-style-position:inside; cursor:pointer; }
.gh-site-nav details { margin-left:auto; }
.gh-site-nav a:hover { text-decoration:underline; text-underline-offset:4px; }
.gh-site-nav a:focus-visible, .gh-site-nav summary:focus-visible, .gh-contact a:focus-visible { outline-color:#f5d797; }
.gh-menu-panel { position:absolute; left:0; right:0; top:100%; padding:20px 24px; background:#103757; border-top:1px solid #537188; box-shadow:0 12px 18px #0003; max-height:70vh; overflow:auto; }
.gh-menu-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.gh-menu-group h2 { margin:0 0 8px; color:#e8cf99; font-size:15px; }
.gh-menu-group ul { list-style:none; padding:0; margin:0; }
.gh-menu-group li { margin:0; }
.gh-menu-group a { display:block; padding:10px 2px; min-height:44px; font-size:14px; }
.gh-site-nav [aria-current="page"] { color:#f5d797; font-weight:700; }
.gh-breadcrumb { padding:10px 25px; background:#f5f1e8; color:#475b6a; font-size:13px; }
.gh-breadcrumb ol { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; }
.gh-breadcrumb li + li::before { content:"/"; margin-right:8px; color:#637280; }
.gh-breadcrumb a { color:#103757; display:inline-flex; min-height:32px; align-items:center; }
.gh-breadcrumb span { display:inline-flex; min-height:32px; align-items:center; }
.gh-contact { padding:34px 28px; background:#103757; color:#f6f4ee; text-align:left; }
.gh-contact h2 { margin:0 0 8px; color:#fff; font-size:23px; line-height:1.4; }
.gh-contact p { margin:8px 0; font-size:14px; line-height:1.8; letter-spacing:normal; }
.gh-contact .gh-contact-hint { color:#e0e7eb; }
.gh-contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin:20px 0; }
.gh-contact-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:10px 18px; border:1px solid #aebdc7; border-radius:3px; color:#fff; font-size:15px; text-decoration:none; }
.gh-contact-actions .gh-call { background:#eddbb4; color:#102a41; border-color:#eddbb4; font-weight:700; }
.gh-contact-actions a:hover { box-shadow:inset 0 0 0 2px currentColor; }
.gh-contact .gh-company { padding-top:18px; margin-top:20px; border-top:1px solid #577187; }
.gh-contact .gh-company p { font-size:13px; }
.gh-contact .gh-company a { color:#fff; display:inline-flex; min-height:44px; align-items:center; }
.gh-footer-nav { display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:18px; }
.gh-footer-nav a { display:inline-flex; align-items:center; min-height:44px; color:#fff; font-size:14px; }
.gh-directory { padding:28px; background:#fbfaf7; }
.gh-directory h2 { margin:0 0 20px; font-size:25px; line-height:1.4; }
.gh-directory section { margin-bottom:26px; }
.gh-directory h3 { margin:0 0 10px; font-size:18px; color:#735523; }
.gh-directory ul { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 14px; margin:0; padding:0; }
.gh-directory a { display:flex; align-items:center; min-height:48px; padding:10px 12px; border:1px solid #d6cec0; color:#103757; text-decoration:none; border-radius:3px; background:#fff; }
.gh-directory a:hover { border-color:#103757; background:#f3efe6; }
.gh-directory [aria-current="page"] { font-weight:700; border-color:#103757; }
.gh-text-section { padding:8px 32px 30px; background:#fbfaf7; }
.gh-text-section h2 { font-size:22px; line-height:1.4; margin:24px 0 10px; }
.gh-text-section h3 { font-size:18px; margin:18px 0 8px; }
.gh-text-section p { margin:8px 0; }
.gh-text-section a { color:#103757; }
.gh-text-section dl { margin:12px 0; }
.gh-text-section dt { font-weight:700; margin-top:12px; }
.gh-text-section dd { margin:3px 0 0; }
.gh-original-stack { margin:0 auto; width:min(100%,506px); }
.gh-original-stack img { display:block; width:100%; height:auto; }
.gh-original-stack .headerless-slice { width:100%; }
.gh-repaired .legacy-title p, .gh-repaired .legacy-copy-panel > span,
.gh-repaired .intro-label, .gh-repaired .process-heading p, .gh-repaired .process-card > span { color:#735523; }
.gh-repaired .legacy-title h1 { overflow-wrap:anywhere; }
.gh-repaired .legacy-copy-panel > p { font-size:15px; }
.gh-repaired .legacy-story-list p { font-size:14px; }
.gh-repaired .legacy-stack { overflow:visible; }
.gh-repaired .gh-video-link { margin:12px 0 0; font-family:sans-serif; font-size:14px; line-height:1.6; }
.gh-repaired .gh-video-link a { display:inline-flex; min-height:44px; align-items:center; color:#103757; }
.gh-repaired .gh-image-note { margin:0 0 16px; font-family:sans-serif; font-size:13px; line-height:1.7; color:#475b6a; }
.gh-repaired .gh-image-link { display:block; }
.gh-repaired .gh-image-link:focus-visible { outline-offset:-3px; }
.gh-repaired .headerless-slice img { display:block; }
.gh-repaired .warm-shell { overflow:visible; }
.gh-repaired .warm-brandbar { border-radius:0; }
body.gh-gallery-page { display:block; }
.gh-gallery-shell { max-width:743px; margin:0 auto; }
.gh-repaired .detail-page { margin:0 auto; overflow:visible; }
.gh-repaired .detail-page .hero { overflow:hidden; }
.gh-repaired .hero-shade { pointer-events:none; }
.gh-repaired .brand-mark { z-index:4; min-height:44px; }
.gh-repaired .brand-mark img { margin-top:8px; }
.gh-repaired .hero-copy { pointer-events:none; }
.gh-repaired .hero p { color:#fff; }
.gh-repaired .stage-wide figcaption span { color:#f4d092; }
/* Home artwork remains intact on large screens; small screens use real text/cards. */
html.gh-home-document { min-width:0; background:#f3efe6; overflow-x:auto; scrollbar-width:auto; scrollbar-color:auto; }
body.gh-home { min-width:0; min-height:0; overflow:visible; background:#f3efe6; scrollbar-width:auto; scrollbar-color:auto; font-family:"Apple SD Gothic Neo","Malgun Gothic",sans-serif; }
.gh-home .main-shell { width:min(100%,1024px); min-width:0; }
.gh-home .gh-site-nav, .gh-home > .gh-contact { max-width:1024px; margin:0 auto; }
.gh-home .gh-home-intro { max-width:1024px; margin:0 auto; padding:26px 30px; background:#fbfaf7; border-bottom:1px solid #ded6c7; }
.gh-home-intro h1 { margin:0; font-family:"GH MaruBuri","Batang",serif; font-weight:600; font-size:28px; line-height:1.45; word-break:keep-all; }
.gh-home-intro p { margin:10px 0 0; color:#475b6a; font-size:15px; }
.gh-home-intro .gh-intro-links { display:flex; flex-wrap:wrap; gap:10px 24px; margin-top:12px; }
.gh-intro-links a { display:inline-flex; align-items:center; min-height:44px; color:#103757; font-weight:700; font-size:15px; }
.gh-home .gh-desktop-home { display:block; }
.gh-home .gh-mobile-home { display:none; }
.gh-map-frame { position:relative; line-height:0; }
.gh-hotspots { position:absolute; top:0; left:0; width:100%; height:100%; }
.gh-hotspots a > rect, .gh-hotspots a > polygon { fill:transparent; }
.gh-hotspots a:hover > rect, .gh-hotspots a:hover > polygon { fill:#ffffff22; stroke:#eddbb4; stroke-width:2; }
.gh-hotspots a:focus > rect, .gh-hotspots a:focus > polygon { fill:#ffffff33; stroke:#f8c35e; stroke-width:4; }
.gh-home .gh-contact { width:100%; }
.gh-home .main-container-row td[colspan="2"] { font-size:0; white-space:nowrap; }
.gh-home .main-container-row td[colspan="2"] > a { display:inline-block; vertical-align:top; }
.gh-mobile-brand { padding:24px; background:#103757; }
.gh-mobile-brand img { width:min(80%,280px); height:auto; display:block; }
.gh-mobile-home { background:#f3efe6; }
.gh-mobile-home > section { padding:24px; }
.gh-mobile-home h2 { font-size:23px; line-height:1.4; margin:0 0 20px; }
.gh-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.gh-card { display:block; background:#fbfaf7; border:1px solid #d8d0c2; color:#103757; text-decoration:none; border-radius:5px; overflow:hidden; }
.gh-card img { width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; display:block; }
.gh-card > .gh-card-text { padding:16px; }
.gh-card h3 { font-size:18px; line-height:1.5; margin:0 0 6px; }
.gh-card p { color:#4b5e6c; font-size:14px; line-height:1.65; margin:0; }
.gh-card .gh-card-more { display:inline-block; margin-top:10px; font-size:13px; font-weight:700; }
.gh-card:hover { border-color:#103757; box-shadow:0 6px 16px #1037571a; }
.gh-mobile-home .gh-mobile-lead { padding-top:12px; }
.gh-mobile-lead .gh-card-grid { grid-template-columns:1fr; }
.gh-mobile-lead .gh-card img { aspect-ratio:4 / 3; object-fit:contain; background:#e3ded3; }
@media (max-width:1055px) {
  .gh-home .gh-desktop-home { display:none; }
  .gh-home .gh-mobile-home { display:block; }
  .gh-home .main-shell, .gh-home .gh-home-intro, .gh-home .gh-site-nav { max-width:743px; }
  .gh-home .gh-home-intro { padding:26px 24px; }
  .gh-home-intro h1 { font-size:clamp(23px,4.7vw,32px); }
}
@media (max-width:560px) {
  .gh-site-nav { padding:8px 16px; }
  .gh-nav-row { gap:2px 13px; }
  .gh-nav-row > a, .gh-site-nav summary { font-size:13px; }
  .gh-menu-panel { padding:18px; }
  .gh-menu-grid { grid-template-columns:1fr; }
  .gh-directory { padding:26px 20px; }
  .gh-directory ul { grid-template-columns:1fr; }
  .gh-breadcrumb { padding:8px 20px; }
  .gh-contact { padding:28px 22px; }
  .gh-contact h2 { font-size:21px; }
  .gh-contact-actions { flex-direction:column; }
  .gh-text-section { padding:6px 24px 26px; }
  .gh-card-grid { grid-template-columns:1fr; }
  .gh-repaired .hero h1 { font-size:clamp(23px,6vw,31px); line-height:1.3; }
  .gh-repaired .hero-copy { left:22px; right:22px; bottom:20px; }
  .gh-repaired .hero-kicker { font-size:9px; letter-spacing:.08em; margin-bottom:8px; }
  .gh-repaired .hero p { font-size:10px; letter-spacing:.03em; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print {
  .gh-skip, .gh-site-nav, .gh-contact-actions, .gh-footer-nav, .gh-hotspots { display:none !important; }
  .gh-home .gh-desktop-home { display:none; }
  .gh-home .gh-mobile-home { display:block; }
  .gh-repaired .warm-shell, .gh-repaired .detail-page { box-shadow:none; width:100%; }
  .gh-contact { break-inside:avoid; }
}
