/* ===== Design tokens ===== */
:root{
  --c-primary:#0d9488;
  --c-primary-dark:#0f766e;
  --c-primary-light:#ccfbf1;
  --c-accent:#f59e0b;
  --c-ink:#0f172a;
  --c-ink-soft:#475569;
  --c-ink-faint:#94a3b8;
  --c-bg:#f8fafc;
  --c-surface:#ffffff;
  --c-border:#e2e8f0;
  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:24px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06),0 1px 1px rgba(15,23,42,.04);
  --shadow-md:0 12px 32px -8px rgba(15,23,42,.14);
  --shadow-lg:0 24px 60px -12px rgba(15,23,42,.22);
  --sp-1:8px; --sp-2:16px; --sp-3:24px; --sp-4:32px; --sp-5:40px; --sp-6:56px; --sp-7:80px; --sp-8:104px; --sp-9:140px;
  --font-sans:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Malgun Gothic',sans-serif;
  --font-serif:'Noto Serif KR',serif;
  --transition:220ms cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--font-sans);
  color:var(--c-ink);
  background:var(--c-bg);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  margin:0;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--c-primary-dark);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--c-primary)}
:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px;border-radius:4px}

/* hide default block-theme chrome (twentytwentyfive) so our header/footer render instead */
body > header.wp-block-template-part,
body > footer.wp-block-template-part,
.wp-site-blocks > header:not(.gkn-header),
.wp-site-blocks > footer:not(.gkn-footer){display:none!important}
.comments-area, #comments{display:none!important}

/* ===== Header ===== */
.gkn-header{position:sticky;top:0;z-index:100;background:rgba(248,250,252,.92);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--c-border)}
.gkn-header-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px var(--sp-3)}
.gkn-logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;color:var(--c-ink)}
.gkn-logo-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--c-primary),var(--c-primary-dark));color:#fff;font-family:var(--font-serif);font-weight:700}
.gkn-nav{display:flex;align-items:center;gap:28px}
.gkn-nav a{color:var(--c-ink-soft);font-weight:500;font-size:.95rem}
.gkn-nav a:hover{color:var(--c-primary-dark)}
.gkn-nav-cta{background:var(--c-primary);color:#fff!important;padding:9px 18px;border-radius:999px;font-weight:600!important}
.gkn-nav-cta:hover{background:var(--c-primary-dark);color:#fff!important}
.gkn-nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;min-width:44px;min-height:44px}
.gkn-nav-toggle span{display:block;width:22px;height:2px;background:var(--c-ink)}

@media (max-width:860px){
  .gkn-nav{position:fixed;top:64px;left:0;right:0;background:var(--c-surface);flex-direction:column;align-items:flex-start;gap:0;border-bottom:1px solid var(--c-border);box-shadow:var(--shadow-md);max-height:0;overflow:hidden;transition:max-height var(--transition)}
  .gkn-nav.is-open{max-height:400px}
  .gkn-nav a{width:100%;padding:16px 24px;border-bottom:1px solid var(--c-border)}
  .gkn-nav-cta{border-radius:0;text-align:center}
  .gkn-nav-toggle{display:flex}
}

/* ===== Footer ===== */
.gkn-footer{background:var(--c-ink);color:#cbd5e1;margin-top:var(--sp-8);padding:var(--sp-7) 0 var(--sp-4)}
.gkn-footer-inner{max-width:1180px;margin:0 auto;padding:0 var(--sp-3)}
.gkn-footer-top{display:flex;flex-wrap:wrap;gap:var(--sp-5);justify-content:space-between;padding-bottom:var(--sp-4);border-bottom:1px solid rgba(255,255,255,.12)}
.gkn-footer-brand{max-width:420px}
.gkn-footer-brand .gkn-logo-text{color:#fff;margin-left:10px;font-weight:700}
.gkn-footer-brand p{margin-top:12px;color:#94a3b8;font-size:.92rem;line-height:1.7}
.gkn-footer-nav{display:flex;flex-direction:column;gap:10px}
.gkn-footer-nav a{color:#cbd5e1;font-size:.92rem}
.gkn-footer-nav a:hover{color:#fff}
.gkn-footer .legal-notice{background:rgba(255,255,255,.06)!important;border-left:3px solid #475569!important;color:#94a3b8!important;margin-top:var(--sp-3)!important}
.gkn-footer-bottom{margin-top:var(--sp-3);font-size:.82rem;color:#64748b;line-height:1.8}

/* ===== Layout helpers ===== */
.gkn-section{max-width:1180px;margin:0 auto;padding:var(--sp-7) var(--sp-3)}
.gkn-section-tight{padding-top:var(--sp-5);padding-bottom:var(--sp-5)}
.gkn-eyebrow{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.06em;color:var(--c-primary-dark);background:var(--c-primary-light);padding:6px 14px;border-radius:999px;margin-bottom:var(--sp-2)}
.gkn-h2{font-family:var(--font-serif);font-size:clamp(1.6rem,2.4vw,2.1rem);font-weight:700;letter-spacing:-.01em;margin:0 0 12px}
.gkn-lead{color:var(--c-ink-soft);font-size:1.05rem;max-width:680px}

/* ===== Reveal-on-scroll ===== */
.gkn-reveal,.entry-content>*,.wp-block-post-content>*{opacity:0;transform:translateY(14px);transition:opacity 480ms ease,transform 480ms ease}
.gkn-reveal.gkn-in,.entry-content>*.gkn-in,.wp-block-post-content>*.gkn-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.gkn-reveal,.entry-content>*,.wp-block-post-content>*{opacity:1;transform:none;transition:none}}

/* ===== Hero (html.php) ===== */
.gkn-hero{position:relative;background:radial-gradient(1100px 500px at 15% -10%,#e6fffb 0%,transparent 60%),linear-gradient(180deg,#f8fafc 0%,#f0fdfa 100%);padding:var(--sp-9) var(--sp-3) var(--sp-8);overflow:hidden}
.gkn-hero-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-6);align-items:center}
.gkn-hero h1{font-family:var(--font-serif);font-size:clamp(2.2rem,4.2vw,3.4rem);line-height:1.28;letter-spacing:-.02em;margin:14px 0 20px;color:var(--c-ink)}
.gkn-hero p{font-size:1.1rem;color:var(--c-ink-soft);max-width:520px;line-height:1.75}
.gkn-hero-actions{display:flex;gap:14px;margin-top:var(--sp-4);flex-wrap:wrap}
.gkn-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-weight:600;font-size:.98rem;min-height:44px;transition:transform var(--transition),box-shadow var(--transition),background var(--transition)}
.gkn-btn-primary{background:var(--c-primary);color:#fff!important;box-shadow:var(--shadow-md)}
.gkn-btn-primary:hover{background:var(--c-primary-dark);transform:translateY(-2px);color:#fff!important}
.gkn-btn-ghost{background:var(--c-surface);color:var(--c-ink)!important;border:1px solid var(--c-border)}
.gkn-btn-ghost:hover{border-color:var(--c-primary);color:var(--c-primary-dark)!important}
.gkn-hero-visual{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.gkn-hero-visual img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}
.gkn-hero-stats{display:flex;gap:var(--sp-4);margin-top:var(--sp-5);flex-wrap:wrap}
.gkn-hero-stat b{display:block;font-size:1.5rem;font-family:var(--font-serif);color:var(--c-primary-dark)}
.gkn-hero-stat span{font-size:.85rem;color:var(--c-ink-faint)}
@media (max-width:900px){.gkn-hero-inner{grid-template-columns:1fr}.gkn-hero-visual{order:-1;max-width:340px;margin:0 auto}}

/* ===== Carousel ===== */
.gkn-carousel-wrap{overflow:hidden}
.gkn-carousel{display:flex;gap:var(--sp-3);overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 2px 20px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.gkn-carousel::-webkit-scrollbar{height:6px}
.gkn-carousel::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:6px}
.gkn-card{flex:0 0 280px;scroll-snap-align:start;background:var(--c-surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--c-border);transition:transform var(--transition),box-shadow var(--transition)}
.gkn-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.gkn-card img{aspect-ratio:16/9;object-fit:cover;width:100%}
.gkn-card-body{padding:var(--sp-2) var(--sp-2) var(--sp-3)}
.gkn-card-badge{display:inline-block;font-size:.72rem;font-weight:700;color:var(--c-primary-dark);background:var(--c-primary-light);padding:3px 10px;border-radius:999px;margin-bottom:8px}
.gkn-card-title{font-size:1.02rem;font-weight:700;color:var(--c-ink);margin:0 0 4px;line-height:1.45}
.gkn-card-desc{font-size:.88rem;color:var(--c-ink-soft);line-height:1.6;margin:0}

/* ===== Category tiles ===== */
.gkn-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}
.gkn-tile{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow-sm);transition:transform var(--transition),box-shadow var(--transition)}
.gkn-tile:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.gkn-tile img{width:100%;height:100%;object-fit:cover}
.gkn-tile-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(15,23,42,.78) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:var(--sp-3);color:#fff}
.gkn-tile-overlay h3{font-size:1.15rem;margin:0 0 4px;font-weight:700}
.gkn-tile-overlay p{font-size:.85rem;color:#e2e8f0;margin:0}
@media (max-width:860px){.gkn-tiles{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.gkn-tiles{grid-template-columns:1fr}}

/* ===== Post grid ===== */
.gkn-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}
.gkn-post-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--transition),box-shadow var(--transition);display:flex;flex-direction:column}
.gkn-post-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
.gkn-post-card img{aspect-ratio:16/9;object-fit:cover}
.gkn-post-card-body{padding:var(--sp-2) var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:8px;flex:1}
.gkn-post-cat{font-size:.72rem;font-weight:700;color:var(--c-primary-dark)}
.gkn-post-card h3{font-size:1.02rem;margin:0;line-height:1.5;color:var(--c-ink)}
.gkn-post-card p{font-size:.86rem;color:var(--c-ink-soft);margin:0;line-height:1.6}
@media (max-width:860px){.gkn-post-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.gkn-post-grid{grid-template-columns:1fr}}

/* ===== Post/page content typography ===== */
.entry-content, .wp-block-post-content, .gkn-article-body{
  max-width:760px;margin:0 auto;padding:var(--sp-6) var(--sp-3);font-size:1.05rem;line-height:1.8;color:var(--c-ink)
}
.entry-content h2, .wp-block-post-content h2, .gkn-article-body h2{font-family:var(--font-serif);font-size:1.5rem;margin:2.2em 0 .7em;padding-top:.2em;border-top:1px solid var(--c-border);padding-top:1.4em;color:var(--c-ink)}
.entry-content h2:first-child, .wp-block-post-content h2:first-child, .gkn-article-body h2:first-child{border-top:0;margin-top:.4em;padding-top:0}
.entry-content h3, .wp-block-post-content h3, .gkn-article-body h3{font-size:1.18rem;margin:1.8em 0 .6em;color:var(--c-primary-dark)}
.entry-content p, .wp-block-post-content p, .gkn-article-body p{margin:0 0 1.1em}
.entry-content ul, .entry-content ol, .wp-block-post-content ul, .wp-block-post-content ol, .gkn-article-body ul, .gkn-article-body ol{margin:0 0 1.3em;padding-left:1.4em;line-height:1.8}
.entry-content li, .wp-block-post-content li, .gkn-article-body li{margin-bottom:.4em}
.entry-content img, .wp-block-post-content img, .gkn-article-body img{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin:1.6em 0}
.entry-content figcaption, .gkn-article-body figcaption{text-align:center;font-size:.85rem;color:var(--c-ink-faint);margin-top:8px}

.gkn-table-wrap{overflow-x:auto;margin:1.6em 0;border-radius:var(--radius-md);border:1px solid var(--c-border);box-shadow:var(--shadow-sm)}
.gkn-table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:480px}
.gkn-table th,.gkn-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--c-border)}
.gkn-table thead th{background:var(--c-primary-light);color:var(--c-primary-dark);font-weight:700}
.gkn-table tbody tr:last-child td{border-bottom:0}
.gkn-table tbody tr:hover{background:#f8fafc}

blockquote, .entry-content blockquote, .gkn-article-body blockquote{margin:1.8em 0;padding:20px 24px;background:var(--c-primary-light);border-left:4px solid var(--c-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:1rem;color:var(--c-ink)}
blockquote p{margin:0}

.gkn-callout{display:flex;gap:14px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-md);padding:18px 20px;margin:1.8em 0}
.gkn-callout b{color:#92400e}

.gkn-badge-inline{display:inline-block;font-size:.72rem;font-weight:700;color:var(--c-primary-dark);background:var(--c-primary-light);padding:3px 10px;border-radius:999px;margin-bottom:10px}

.gkn-bar-chart{margin:1.6em 0;display:flex;flex-direction:column;gap:10px}
.gkn-bar-row{display:grid;grid-template-columns:130px 1fr 60px;align-items:center;gap:10px;font-size:.9rem}
.gkn-bar-track{background:#eef2f6;border-radius:999px;height:14px;overflow:hidden}
.gkn-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--c-primary),var(--c-primary-dark))}

.gkn-toc, #ez-toc-container{background:var(--c-surface)!important;border:1px solid var(--c-border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important;padding:20px 24px!important;max-width:760px;margin:2em auto!important}
.ez-toc-title{font-family:var(--font-serif);font-weight:700!important;color:var(--c-ink)!important}

.gkn-related{max-width:760px;margin:var(--sp-6) auto 0;padding:0 var(--sp-3)}
.gkn-related h2{font-family:var(--font-serif);font-size:1.3rem;margin-bottom:var(--sp-3)}
.gkn-related-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
@media (max-width:640px){.gkn-related-grid{grid-template-columns:1fr}}

.legal-notice p{margin:4px 0}

/* ===== Hospital search tool ===== */
.gkn-hospital-search{max-width:900px;margin:0 auto}
.gkn-tool-notice{background:var(--c-primary-light);color:var(--c-primary-dark);padding:14px 18px;border-radius:var(--radius-md);font-size:.92rem;margin-bottom:var(--sp-3)}
.gkn-search-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:var(--sp-3)}
.gkn-search-controls select, .gkn-search-controls input{flex:1;min-width:160px;padding:12px 14px;border:1px solid var(--c-border);border-radius:var(--radius-sm);font-size:.95rem;min-height:44px;font-family:var(--font-sans)}
.gkn-search-controls button{background:var(--c-primary);color:#fff;border:0;padding:12px 24px;border-radius:var(--radius-sm);font-weight:700;cursor:pointer;min-height:44px;min-width:88px;transition:background var(--transition)}
.gkn-search-controls button:hover{background:var(--c-primary-dark)}
.gkn-result-meta{color:var(--c-ink-faint);font-size:.88rem;margin-bottom:var(--sp-2)}
.gkn-results{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:700px){.gkn-results{grid-template-columns:1fr}}
.gkn-hosp-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-sm)}
.gkn-hosp-name{font-weight:700;font-size:1.02rem;margin-bottom:6px}
.gkn-hosp-meta{display:flex;gap:8px;align-items:center;font-size:.85rem;color:var(--c-ink-soft);margin-bottom:6px}
.gkn-badge{background:var(--c-primary-light);color:var(--c-primary-dark);padding:2px 9px;border-radius:999px;font-weight:700;font-size:.74rem}
.gkn-hosp-addr{font-size:.88rem;color:var(--c-ink-soft)}
.gkn-hosp-tel,.gkn-hosp-dr{font-size:.85rem;color:var(--c-ink-faint);margin-top:4px}
.gkn-empty{color:var(--c-ink-faint);padding:30px 0;text-align:center}
.gkn-pagination{display:flex;gap:10px;justify-content:center;margin-top:var(--sp-3)}
.gkn-pagination button{background:var(--c-surface);border:1px solid var(--c-border);padding:10px 20px;border-radius:999px;cursor:pointer;min-height:44px}
.gkn-pagination button:hover{border-color:var(--c-primary);color:var(--c-primary-dark)}

/* ===== Generic page hero (privacy/terms/hospital-search page titles) ===== */
.gkn-page-hero{background:linear-gradient(180deg,#f0fdfa,#f8fafc);padding:var(--sp-7) var(--sp-3) var(--sp-5);text-align:center;border-bottom:1px solid var(--c-border)}
.gkn-page-hero h1{font-family:var(--font-serif);font-size:clamp(1.8rem,3.4vw,2.4rem);margin:0 0 10px}
.gkn-page-hero p{color:var(--c-ink-soft);max-width:600px;margin:0 auto}
