/* GEO Studio 블로그 공통 스타일 — 모든 테마가 공유. 색·글꼴·모서리는 테마 파일의 변수로 바꾼다.
   클래스는 gs- 접두어만 써서 거래처 사이트의 헤더·푸터 CSS 와 부딪히지 않게 한다. */
@font-face{font-family:'BookkMyungjo';src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302@1.0/BookkMyungjo-Lt.woff2') format('woff2');font-weight:400;font-display:swap}

.gs-body{
  --accent:#2E7FFF;--accent-soft:#EAF3FF;--ink:#191F28;--muted:#6B7684;--bg:#FFFFFF;--surface:#F7F9FC;--line:#E5E8EB;
  --card:#FFFFFF;--on-accent:#FFFFFF;--radius:16px;--shadow:0 2px 12px rgba(0,0,0,.06);
  --font-body:Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --font-head:var(--font-body);--font-display:"Accidental Presidency",var(--font-head);
  margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);line-height:1.7;word-break:keep-all;-webkit-font-smoothing:antialiased
}
.gs-body *{box-sizing:border-box}
.gs-body a{color:inherit;text-decoration:none}
.gs-wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.gs-eyebrow{display:inline-block;font-family:var(--font-display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.gs-btn{display:inline-flex;align-items:center;gap:6px;height:48px;padding:0 24px;border-radius:calc(var(--radius) * .6);background:var(--accent);color:var(--on-accent)!important;font-weight:700;font-size:15px;transition:transform .2s,filter .2s}
.gs-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.gs-btn--sm{height:38px;padding:0 16px;font-size:13px}
/* align-self 필수 — 카드 본문(.gs-card__body)이 flex 컬럼이라, 없으면 stretch 되어
   inline-block 이 무시되고 태그가 카드 가로 전체를 먹는다. */
.gs-tag{display:inline-block;align-self:flex-start;width:fit-content;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);margin-bottom:10px}
.gs-empty{color:var(--muted);text-align:center;padding:60px 0}

/* 머리말 · 꼬리말 */
.gs-header{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10}
.gs-header__in{display:flex;align-items:center;gap:28px;height:72px}
.gs-brand b{display:block;font-family:var(--font-head);font-size:19px;line-height:1.2}
.gs-brand small{font-family:var(--font-display);font-size:11px;letter-spacing:.12em;color:var(--muted)}
.gs-nav{display:flex;gap:22px;margin-left:auto;font-size:14px;font-weight:500;color:var(--muted);overflow-x:auto;white-space:nowrap}
.gs-nav a:hover,.gs-nav a.on{color:var(--accent)}
.gs-footer{border-top:1px solid var(--line);margin-top:80px;padding:40px 0;font-size:13px;color:var(--muted)}
.gs-footer__in{display:grid;grid-template-columns:1fr auto;gap:10px 40px}
.gs-footer b{font-family:var(--font-head);font-size:17px;color:var(--ink)}
.gs-footer p{margin:6px 0 0}
.gs-footer nav{display:flex;gap:16px;align-items:center}
.gs-footer small{grid-column:1/-1}

/* 히어로 */
.gs-main{padding:32px 0 20px}
.gs-hero{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:380px;border-radius:var(--radius);overflow:hidden;background:var(--surface);margin-bottom:32px}
.gs-hero__text{padding:56px 48px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;position:relative;z-index:1}
.gs-hero h1{font-family:var(--font-head);font-size:36px;line-height:1.35;margin:0 0 14px;letter-spacing:-.02em}
.gs-hero p{color:var(--muted);margin:0 0 26px;max-width:460px}
.gs-hero__img{background:var(--hero-img) center/cover no-repeat}
.gs-hero--intro{grid-template-columns:1fr;text-align:center;min-height:0}
.gs-hero--intro .gs-hero__text{align-items:center}

/* 카테고리 바 */
.gs-cats{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 28px}
.gs-cats button{font:inherit;font-size:14px;font-weight:600;padding:10px 18px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;transition:all .2s}
.gs-cats button:hover{border-color:var(--accent);color:var(--accent)}
.gs-cats button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}

/* 섹션 · 카드 */
.gs-section{margin-bottom:48px}
.gs-section__head{margin-bottom:20px}
.gs-section__head h2{font-family:var(--font-head);font-size:24px;margin:0;letter-spacing:-.01em}
.gs-section__head p{color:var(--muted);margin:6px 0 0;font-size:14px}
.gs-split{display:grid;grid-template-columns:1fr 320px;gap:36px;align-items:start}
.gs-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px}
.gs-card{display:flex;flex-direction:column;background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s}
.gs-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.1)}
.gs-card[hidden]{display:none}
.gs-card figure{margin:0;aspect-ratio:16/10;overflow:hidden;background:var(--surface)}
.gs-card img,.gs-ph{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gs-card:hover img{transform:scale(1.04)}
.gs-card__body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.gs-card strong{font-family:var(--font-head);font-size:17px;line-height:1.45}
.gs-card p{font-size:14px;color:var(--muted);margin:8px 0 14px;line-height:1.6}
.gs-card__foot{margin-top:auto;display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}
.gs-card time{font-family:var(--font-display);letter-spacing:.04em}
.gs-more{color:var(--accent);font-weight:600}
.gs-card--row{flex-direction:row}
.gs-card--row figure{flex:0 0 38%;aspect-ratio:auto;height:180px}
.gs-rows{display:flex;flex-direction:column;gap:16px}
.gs-card--wide figure{aspect-ratio:16/9}
.gs-card--wide strong{font-size:22px}

/* 사이드바 */
.gs-side{display:flex;flex-direction:column;gap:18px;position:sticky;top:96px}
.gs-side>*{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.gs-rank h3{font-family:var(--font-head);font-size:16px;margin:0 0 12px}
.gs-rank ol{list-style:none;margin:0;padding:0}
.gs-rank li a{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.5}
.gs-rank li:first-child a{border-top:0}
.gs-rank li a:hover span{color:var(--accent)}
.gs-rank em{font-style:normal;font-family:var(--font-display);color:var(--accent);font-weight:700;min-width:22px}
.gs-intro h2{font-family:var(--font-head);font-size:20px;margin:0 0 8px}
.gs-intro p{font-size:14px;color:var(--muted);margin:0 0 10px}
.gs-author{border-top:1px solid var(--line);padding-top:12px;color:var(--ink)!important;font-weight:600}
.gs-author small{font-weight:400;color:var(--muted)}

/* 추천(매거진) */
.gs-feature{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;margin-bottom:48px;align-items:start}
.gs-feature .gs-rank{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px}

/* 상담 안내 */
.gs-consult{border-radius:var(--radius);background:var(--accent-soft);padding:32px}
.gs-consult--band{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:center;margin:48px 0}
.gs-consult__head h2{font-family:var(--font-head);font-size:22px;margin:0 0 6px}
.gs-consult__head p{color:var(--muted);font-size:14px;margin:0}
.gs-consult__items{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.gs-consult__item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;background:var(--card);border-radius:calc(var(--radius) * .75);padding:18px 12px;font-size:13px;color:var(--muted)}
.gs-consult__item i{font-style:normal;font-size:24px}
.gs-consult__item b{color:var(--ink);font-size:15px}
.gs-consult--box{padding:22px!important;background:var(--accent-soft)!important;border:0!important}
.gs-consult--box .gs-consult__head h2{font-size:18px}
.gs-consult--box .gs-consult__items{grid-template-columns:1fr;margin-top:14px}
.gs-consult--box .gs-consult__item{display:grid;grid-template-columns:30px 1fr;text-align:left;padding:12px 14px;gap:0 10px;align-items:center}
.gs-consult--box .gs-consult__item i{grid-row:span 2;font-size:20px}
.gs-consult--box .gs-consult__item b{font-size:14px}

/* 글 페이지 */
.gs-post{max-width:820px}
.gs-crumb{font-size:14px;color:var(--muted);margin-bottom:18px}
.gs-crumb a{color:var(--accent)}
.gs-post__head h1{font-family:var(--font-head);font-size:34px;line-height:1.4;margin:0 0 28px;letter-spacing:-.02em}
.gs-article{font-size:17px;line-height:1.85}
.gs-article h2{font-family:var(--font-head);font-size:24px;margin:2.2em 0 .7em;padding-top:.4em;letter-spacing:-.01em}
.gs-article h3{font-family:var(--font-head);font-size:19px;margin:1.6em 0 .4em}
.gs-article p,.gs-article li{color:var(--ink)}
.gs-article .geo-lead,.gs-article .geo-summary{background:var(--accent-soft);border-radius:var(--radius);padding:22px 24px;font-size:18px}
.gs-article .geo-disclaimer{background:var(--surface);border-radius:12px;padding:14px 18px;margin-top:2em}
.gs-article .geo-disclaimer p{font-size:14px;color:var(--muted);margin:0}
.gs-article .medical-geo-source{font-size:14px;color:var(--muted)}
.gs-article .medical-geo-source a,.gs-article a{color:var(--accent)}
.gs-article hr{border:0;border-top:1px solid var(--line);margin:3em 0 1.5em}
.gs-article figure img{border-radius:var(--radius)!important}
.gs-article .geo-author-box{border-left:3px solid var(--accent);background:var(--surface);border-radius:calc(var(--radius) * .5);padding:14px 18px;margin:0 0 1.6em}
.gs-article .geo-author-box p{margin:0;font-size:15px}
.gs-article .geo-author-box__meta{font-size:13px!important;color:var(--muted)!important;margin-top:4px!important}
.gs-back{margin-top:40px}.gs-back a{color:var(--accent);font-weight:600}

@media (max-width:900px){
  .gs-split,.gs-feature,.gs-consult--band,.gs-hero{grid-template-columns:1fr}
  .gs-side{position:static}
  .gs-hero__img{min-height:220px;order:-1}
  .gs-hero__text{padding:32px 24px}
  .gs-hero h1{font-size:27px}
  .gs-post__head h1{font-size:26px}
  .gs-nav{display:none}
  .gs-card--row{flex-direction:column}
  .gs-card--row figure{aspect-ratio:16/10;min-height:0}
  .gs-footer__in{grid-template-columns:1fr}
}

/* Theme 01. Clean Clinical Blue — 신뢰감 있는 병원형 */
.gs-body{--accent:#2E7FFF;--accent-soft:#EAF3FF;--ink:#1B2433;--muted:#6B7A90;--bg:#FFFFFF;--surface:#F4F8FF;--line:#D9E6F7;--radius:14px}
.gs-hero{background:linear-gradient(120deg,#F4F8FF 0%,#EAF3FF 100%)}
.gs-hero__img{mask-image:linear-gradient(90deg,transparent 0,#000 30%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%)}
.gs-cats button{border-radius:12px}
.gs-card{box-shadow:none;border:1px solid var(--line)}
.gs-tag{background:transparent;border:1px solid var(--accent);border-radius:8px}
