/* nb-skin.css — NB Travel Tools (nb18.mhna98.com) 사이트 전용 스킨. 생성: _shared/skins/make_skins.py — 직접 고치지 말고 생성기를 고친다 */
/* 콘셉트: 지도·탑승권 — 등고선 배경 + 지도 창 + 탑승권 카드 | hero=split card=ticket sect=open win=map motif=topo */
:root { --sk-head: "Sunflower", Pretendard, "Malgun Gothic", sans-serif; --sk-r: 20px; }
html:not([data-theme="light"]) { --dark: #050b0d; }
.hero h1, .tools-head h2, .channel-hub > h2, .ws-head h3, .site-blueprint h2, .brand strong, .ft-brand strong, main.latest-posts > article > h1, main.latest-posts > article h2, .affiliate-deals .section-head > span, .latest-posts > .section-head > span, .blog-thumb strong, .nbp-win b { font-family: var(--sk-head) !important; }
html:not([data-theme="light"]) body { background: repeating-radial-gradient(circle at 18% 22%, transparent 0 26px, color-mix(in srgb, var(--text), transparent 95%) 26px 27px), repeating-radial-gradient(circle at 86% 70%, transparent 0 34px, color-mix(in srgb, var(--text), transparent 95%) 34px 35px), radial-gradient(1100px 520px at 85% -5%, color-mix(in srgb, var(--brand), transparent 80%), transparent 60%), var(--dark) !important; }
html[data-theme="light"] body { background: repeating-radial-gradient(circle at 18% 22%, transparent 0 26px, color-mix(in srgb, var(--text), transparent 95%) 26px 27px), repeating-radial-gradient(circle at 86% 70%, transparent 0 34px, color-mix(in srgb, var(--text), transparent 95%) 34px 35px), radial-gradient(1100px 520px at 85% -5%, color-mix(in srgb, var(--brand), transparent 86%), transparent 60%), #f5f6f9 !important; }
body:has(.site-header) :is(.latest-posts, .channel-hub, .tools-section, .affiliate-deals) { border-radius: calc(var(--sk-r) + 6px) !important; }
body .tool-grid > .tool-card, body .blog-mini, body .workspace-panel { border-radius: var(--sk-r) !important; }
body .hero .hero-grid { text-align: left; }
body .hero .hero-copy { max-width: none; margin: 0; }
body .hero .hero-copy > p:not(.eyebrow) { margin-left: 0; margin-right: 0; }
body .hero .hero-actions, body .hero .hero-stats { justify-content: flex-start; }

@media (min-width: 861px) { body .hero .hero-grid { grid-template-columns: minmax(0, 0.95fr) minmax(340px, 1fr); } }
/* 티켓·쿠폰: 왼쪽 그루터기 + 점선 + 양쪽 홈 */
body .tool-grid > .tool-card {
  --stub: 72px;
  background: repeating-linear-gradient(180deg, color-mix(in srgb, var(--text), transparent 72%) 0 5px, transparent 5px 10px) var(--stub) 10px / 1.5px calc(100% - 20px) no-repeat, var(--panel-2) !important;
  -webkit-mask: radial-gradient(circle 9px at var(--stub) 0, transparent 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle 9px at var(--stub) 100%, transparent 97%, #000) bottom / 100% 51% no-repeat;
  mask: radial-gradient(circle 9px at var(--stub) 0, transparent 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle 9px at var(--stub) 100%, transparent 97%, #000) bottom / 100% 51% no-repeat;
  gap: 26px !important;
}
body .tool-grid > .tool-card.is-active { background: repeating-linear-gradient(180deg, var(--brand) 0 5px, transparent 5px 10px) var(--stub) 10px / 1.5px calc(100% - 20px) no-repeat, color-mix(in srgb, var(--brand), transparent 84%) !important; }
@media (max-width: 640px) { body .tool-grid > .tool-card { --stub: 52px; gap: 14px !important; } }
/* 열린 섹션: 상자 없이 굵은 위 선 + 왼쪽 정렬 머리글 */
body:has(.site-header) :is(.latest-posts, .channel-hub, .tools-section, .affiliate-deals) {
  background: transparent !important; border: 0 !important; border-top: 2px solid color-mix(in srgb, var(--text), transparent 70%) !important;
  border-radius: 0 !important; box-shadow: none !important; padding-left: 0 !important; padding-right: 0 !important;
}
body:has(.site-header) .tools-section::before { display: none !important; }
body:has(.site-header) .tools-head { text-align: left !important; }
body:has(.site-header) .tools-head h2 { margin-top: 12px; }
/* 지도: 등고선 + 핀 */
.nbp-art .art-card.one { background: repeating-radial-gradient(circle at 70% 60%, transparent 0 16px, color-mix(in srgb, var(--brand), transparent 70%) 16px 17px), color-mix(in srgb, var(--dark, #070b12), #fff 7%) !important; }
.nbp-art .nbp-bars span { opacity: 0 !important; }
.nbp-art .nbp-bars { position: relative; border-bottom: 0; }
.nbp-art .nbp-bars::after { content: ""; position: absolute; left: 66%; top: 18%; width: 22px; height: 22px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--brand); box-shadow: 0 0 0 6px color-mix(in srgb, var(--brand), transparent 75%); }
.nbp-art .nbp-bars::before { content: ""; position: absolute; left: 10%; right: 34%; top: 56%; border-top: 2px dashed color-mix(in srgb, var(--text), transparent 50%); transform: rotate(-8deg); }
.hero .eyebrow::before { width: 26px; height: 0; border-top: 2px dashed var(--brand); background: none; border-radius: 0; }
@media (prefers-reduced-motion: reduce) { .nbp-art .nbp-rows::before, .hero .eyebrow::before { animation: none !important; } }
html.perf-lite .nbp-art .nbp-rows::before, html.perf-lite .hero .eyebrow::before { animation: none !important; }
