/* =========================================================================
   파크골프맵 코어 — 디자인 시스템 PG-UXUI-001 v2
   모던 UI(토스·에어비앤비 톤) + 시니어 접근성(큰 글씨, 높은 대비, 넓은 터치)
   + 자체 일러스트(구장별 풍경 커버, 히어로 풍경)
   ========================================================================= */
:root {
	--pg-primary: #1F4E37;
	--pg-primary-press: #173D2B;
	--pg-deep: #0F2E20;
	--pg-secondary: #EAF0EC;
	--pg-bg: #FAFBFC;
	--pg-surface: #FFFFFF;
	--pg-text: #191F28;
	--pg-text-2: #4E5968;
	--pg-text-sub: #5F6B78;
	--pg-gray: #8B95A1;
	--pg-line: #D1D6DB;
	--pg-line-soft: #EEF0F3;
	--pg-input: #F2F4F6;
	--pg-alert: #E56D41;
	--pg-alert-text: #B4461F;
	--pg-alert-bg: #FDF0EA;
	--pg-sun: #F2B705;
	--pg-sun-bg: #FFF6DA;
	--pg-blue: #2F6DB5;
	--pg-r-card: 16px;
	--pg-r-btn: 12px;
	--pg-r-chip: 8px;
	--pg-s1: 8px; --pg-s2: 16px; --pg-s3: 24px; --pg-s4: 32px; --pg-s6: 48px; --pg-s8: 64px;
	--pg-tap: 52px;
	--pg-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
	--pg-shadow-2: 0 14px 36px rgba(0, 0, 0, 0.08);
	--pg-section: 80px;
	--pg-max: 1200px;
	--pg-ease: 0.2s ease-in-out;
}

/* ---------- 기본 ---------- */
.pg { width: 100%; max-width: var(--pg-max); margin: 0 auto; padding: var(--pg-s2) var(--pg-s2) var(--pg-s6); box-sizing: border-box; color: var(--pg-text); font-size: 17px; line-height: 1.6; }
.pg *, .pg *::before, .pg *::after { box-sizing: border-box; }
.pg a { color: var(--pg-primary); text-underline-offset: 3px; }
.pg :focus-visible { outline: 3px solid var(--pg-sun); outline-offset: 2px; border-radius: 6px; }
.pg ul, .pg ol { margin-top: 0; }
.pg-h1 { font-size: clamp(28px, 4.4vw, 40px); line-height: 1.25; font-weight: 800; letter-spacing: -0.035em; color: var(--pg-text); margin: 0 0 var(--pg-s1); text-wrap: balance; }
.pg-h2 { display: flex; align-items: center; gap: 10px; font-size: clamp(21px, 2.8vw, 26px); line-height: 1.35; font-weight: 800; letter-spacing: -0.03em; color: var(--pg-text); margin: 0 0 var(--pg-s2); }
.pg-h2 .pg-ico { color: var(--pg-primary); width: 24px; height: 24px; }
.pg-h2 small { font-size: 16px; font-weight: 600; color: var(--pg-text-sub); }
.pg-h3 { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; margin: var(--pg-s2) 0 var(--pg-s1); color: var(--pg-text); }
.pg-kicker { margin: 0 0 6px; font-size: 15px; font-weight: 700; color: var(--pg-primary); letter-spacing: -0.01em; }
.pg-lead { font-size: 18px; color: var(--pg-text-2); margin: 0; line-height: 1.65; }
.pg-meta, .pg-disclaimer { font-size: 16px; color: var(--pg-text-sub); }
.pg-disclaimer { margin-top: var(--pg-s6); padding-top: var(--pg-s2); border-top: 1px solid var(--pg-line-soft); }
.pg-pending { display: inline-flex; align-items: center; min-height: 30px; padding: 0 10px; border-radius: var(--pg-r-chip); background: var(--pg-input); color: var(--pg-text-sub); font-size: 16px; font-weight: 600; }
.pg-unknown { color: var(--pg-text-sub); }
.pg-ico { width: 22px; height: 22px; flex: none; vertical-align: middle; }
.pg-empty { color: var(--pg-text-sub); }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }

/* ---------- 버튼 ---------- */
.pg-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--pg-s1); min-height: var(--pg-tap); padding: 0 var(--pg-s3); border-radius: var(--pg-r-btn); border: 1px solid transparent; font: inherit; font-size: 17px; font-weight: 700; line-height: 1.2; text-decoration: none !important; cursor: pointer; box-shadow: none; transition: transform var(--pg-ease), opacity var(--pg-ease), background-color var(--pg-ease), border-color var(--pg-ease); -webkit-tap-highlight-color: transparent; white-space: nowrap; }
.pg-btn:active { transform: scale(0.97); opacity: 0.88; }
.pg-btn--primary { background: var(--pg-primary); color: #fff !important; }
.pg-btn--primary:hover { background: var(--pg-primary-press); color: #fff !important; }
.pg-btn--secondary { background: var(--pg-secondary); color: var(--pg-primary) !important; }
.pg-btn--secondary:hover { background: #DCEAE2; }
.pg-btn--outline { background: var(--pg-surface); color: var(--pg-text-2) !important; border-color: var(--pg-line); }
.pg-btn--outline:hover { background: var(--pg-input); color: var(--pg-text) !important; }
.pg-btn--ghost { background: var(--pg-input); color: var(--pg-text-2) !important; }
.pg-btn--ghost:hover { background: #E8EBEE; }
.pg-btn--block { width: 100%; }
.pg-btn__sub { font-weight: 500; font-size: 16px; }
.pg-linkbtn { display: inline-flex; align-items: center; gap: 4px; min-height: 40px; padding: 0 12px; border: 0; border-radius: var(--pg-r-chip); background: var(--pg-input); color: var(--pg-text-2); font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; transition: transform var(--pg-ease), background-color var(--pg-ease); }
.pg-linkbtn:hover { background: #E8EBEE; }
.pg-linkbtn .pg-ico { width: 18px; height: 18px; }
.pg-linkbtn:active { transform: scale(0.96); }

/* ---------- 칩·태그·알림 ---------- */
.pg-badge, .pg-tag { display: inline-flex; align-items: center; min-height: 30px; padding: 0 10px; border-radius: var(--pg-r-chip); background: var(--pg-input); color: var(--pg-text-2); font-size: 15px; font-weight: 600; line-height: 1.2; }
.pg-badge { margin: 0 4px 4px 0; }
.pg-badge--accent, .pg-tag--accent { background: var(--pg-secondary); color: var(--pg-primary); }
.pg-tag--free { background: var(--pg-sun-bg); color: #7A5A00; }
.pg-tag--winter { background: #E8F0FA; color: #24507D; }
.pg-tag--muted { background: transparent; color: var(--pg-text-sub); padding-left: 0; font-weight: 500; }
.pg-badge--warn { background: var(--pg-alert-bg); color: var(--pg-alert-text); }
.pg-alert { display: flex; gap: var(--pg-s1); align-items: flex-start; padding: var(--pg-s2); border-radius: var(--pg-r-card); margin: 0 0 var(--pg-s2); background: var(--pg-secondary); color: var(--pg-text); }
.pg-alert .pg-ico { color: var(--pg-primary); margin-top: 2px; }
.pg-alert--warn { background: var(--pg-alert-bg); color: #5C2410; }
.pg-alert--warn .pg-ico { color: var(--pg-alert); }
.pg-alert__date { color: var(--pg-text-sub); font-size: 16px; margin-left: 4px; }
.pg-notice { background: var(--pg-surface); border-radius: var(--pg-r-card); box-shadow: var(--pg-shadow); padding: var(--pg-s2); margin: var(--pg-s2) 0; }
.pg-note { background: var(--pg-input); border-radius: var(--pg-r-btn); padding: 12px var(--pg-s2); font-size: 16px; color: var(--pg-text-2); margin: var(--pg-s2) 0 0; }

/* ---------- 탐색 경로 ---------- */
.pg-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; padding: 0; margin: 0 0 var(--pg-s2); font-size: 15px; color: var(--pg-text-sub); }
.pg-breadcrumb a { color: var(--pg-text-sub); text-decoration: none; }
.pg-breadcrumb a:hover { text-decoration: underline; }
.pg-breadcrumb li + li::before { content: "›"; margin-right: 4px; color: var(--pg-gray); }

/* ---------- 입력 폼 ---------- */
.pg-field { margin-bottom: var(--pg-s2); }
.pg-field label, .pg-fieldset legend { display: block; font-weight: 700; margin-bottom: var(--pg-s1); font-size: 16px; color: var(--pg-text); }
.pg input[type=search], .pg input[type=text], .pg input[type=email], .pg input[type=url], .pg select, .pg textarea,
.pg-form input[type=text], .pg-form input[type=email], .pg-form input[type=url], .pg-form select, .pg-form textarea {
	width: 100%; max-width: 100%; min-height: var(--pg-tap); padding: 12px var(--pg-s2); font: inherit; font-size: 17px; color: var(--pg-text);
	background: var(--pg-input); border: 1.5px solid transparent; border-radius: var(--pg-r-btn); box-shadow: none; transition: border-color var(--pg-ease), background-color var(--pg-ease); box-sizing: border-box;
}
.pg textarea, .pg-form textarea { min-height: 144px; }
.pg input::placeholder, .pg-form input::placeholder, .pg textarea::placeholder, .pg-form textarea::placeholder { color: var(--pg-gray); }
.pg input:focus, .pg select:focus, .pg textarea:focus, .pg-form input:focus, .pg-form select:focus, .pg-form textarea:focus { outline: none; border-color: var(--pg-primary); background: var(--pg-surface); }
.pg-fieldset { border: 0; padding: 0; margin: 0 0 var(--pg-s3); min-width: 0; }
.pg-radios { display: flex; flex-wrap: wrap; gap: var(--pg-s1); }
.pg-radios label { display: inline-flex; align-items: center; gap: var(--pg-s1); min-height: 48px; padding: 0 var(--pg-s2); border-radius: var(--pg-r-btn); background: var(--pg-input); font-weight: 600; cursor: pointer; margin: 0; border: 1.5px solid transparent; transition: transform var(--pg-ease), background-color var(--pg-ease); }
.pg-radios label:active { transform: scale(0.97); }
.pg-radios label:has(input:checked) { background: var(--pg-secondary); border-color: var(--pg-primary); color: var(--pg-primary); }
.pg-radios input { width: 20px; height: 20px; accent-color: var(--pg-primary); margin: 0; }
.pg-check { display: flex; gap: var(--pg-s1); align-items: center; min-height: 48px; font-weight: 600; }
.pg-check input { width: 22px; height: 22px; accent-color: var(--pg-primary); }
.pg-consent { background: var(--pg-input); border-radius: var(--pg-r-btn); padding: var(--pg-s2); margin-bottom: var(--pg-s2); font-size: 16px; }
.pg-req { color: var(--pg-alert-text); font-weight: 600; font-size: 16px; }
.pg-opt { color: var(--pg-text-sub); font-weight: 400; font-size: 16px; }
.pg-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pg-form { max-width: 720px; }

/* ---------- 섹션 공통 ---------- */
.pg-section { margin: var(--pg-section) 0; }
.pg-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--pg-s2); margin-bottom: var(--pg-s3); }
.pg-section__head .pg-h2 { margin: 0; }
.pg-more { display: inline-flex; align-items: center; gap: 2px; font-weight: 700; font-size: 16px; white-space: nowrap; text-decoration: none; color: var(--pg-text-2) !important; padding: 8px 0; }
.pg-more .pg-ico { width: 18px; height: 18px; }
.pg-more:hover { color: var(--pg-primary) !important; }
.pg-callout { background: var(--pg-surface); border-radius: var(--pg-r-card); box-shadow: var(--pg-shadow); padding: var(--pg-s3); }
.pg-callout--tight { padding: var(--pg-s2); margin-top: var(--pg-s2); background: var(--pg-secondary); box-shadow: none; }
.pg-panel { background: var(--pg-surface); border-radius: 16px; box-shadow: var(--pg-shadow); padding: 28px; scroll-margin-top: 90px; }

/* 가로 스크롤(모바일): 오른쪽 끝을 살짝 보여 스와이프를 암시 */
.pg-hscroll, .pg-cards--scroll { scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
@media (max-width: 767px) {
	.pg-hscroll { display: flex !important; flex-wrap: nowrap; overflow-x: auto; gap: var(--pg-s1); margin-right: calc(-1 * var(--pg-s2)); padding-right: var(--pg-s2); scrollbar-width: none; }
	.pg-hscroll::-webkit-scrollbar, .pg-cards--scroll::-webkit-scrollbar, .pg-colls::-webkit-scrollbar, .pg-intents::-webkit-scrollbar, .pg-quickchips::-webkit-scrollbar { display: none; }
	.pg-hscroll > li { flex: 0 0 auto; scroll-snap-align: start; }
	.pg-cards--scroll { display: flex !important; overflow-x: auto; gap: 12px; margin: 0 calc(-1 * var(--pg-s2)); padding: 4px var(--pg-s2) var(--pg-s2); scroll-padding: 0 var(--pg-s2); scrollbar-width: none; }
	.pg-cards--scroll > .pg-card { flex: 0 0 78%; scroll-snap-align: start; }
}

/* =========================================================================
   메인 히어로 — 깊은 숲색 하늘 + 풍경 일러스트, 아래로 페이지 배경과 이어짐
   ========================================================================= */
.pg-hero { position: relative; width: 100vw; margin: 0 calc(50% - 50vw) 0; margin-top: calc(-1 * var(--pg-s2)); padding: 96px 0 0; min-height: 560px; display: flex; align-items: center; background: #0F3B25; color: #fff; overflow: hidden; isolation: isolate; }
.pg-hero__bg { position: absolute; inset: 0; z-index: 0; }
.pg-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.pg-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 20, 14, 0.55) 0%, rgba(8, 20, 14, 0.42) 45%, rgba(8, 20, 14, 0.6) 100%); }
.pg-hero__credit { position: absolute; right: 16px; bottom: 56px; z-index: 2; margin: 0; font-size: 13px; color: rgba(255,255,255,0.7); }
.pg-hero__in { position: relative; z-index: 2; width: 100%; max-width: var(--pg-max); margin: 0 auto; padding: 0 var(--pg-s2) 128px; }
.pg-hero__eyebrow { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 var(--pg-s3); padding: 8px 14px 8px 10px; border-radius: 12px; background: rgba(255,255,255,0.14); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-size: 15px; font-weight: 700; color: #DDEFE4; }
.pg-hero__eyebrow .pg-ico { width: 18px; height: 18px; color: var(--pg-sun); }
.pg-hero__title { margin: 0 0 16px; font-size: clamp(34px, 6.4vw, 60px); text-shadow: 0 2px 24px rgba(0,0,0,0.25); line-height: 1.18; font-weight: 800; letter-spacing: -0.045em; color: #fff; text-wrap: balance; max-width: 13em; }
.pg-hero__sub { margin: 0 0 var(--pg-s4); font-size: 19px; line-height: 1.6; color: rgba(255,255,255,0.88); max-width: 34em; }

.pg-searchbox { position: relative; z-index: 1; max-width: 680px; }
.pg-searchbar { display: flex; align-items: center; gap: var(--pg-s1); height: 64px; padding: 0 8px 0 20px; background: var(--pg-surface); border-radius: 16px; box-shadow: 0 16px 40px rgba(0,0,0,0.25); }
.pg-searchbar .pg-ico { color: var(--pg-gray); }
.pg .pg-searchbar input[type=search] { flex: 1; min-width: 0; height: 100%; min-height: 0; padding: 0; background: transparent; border: 0; border-radius: 0; font-size: 17px; }
.pg .pg-searchbar input[type=search]:focus { background: transparent; }
.pg-searchbar:focus-within { box-shadow: 0 0 0 3px var(--pg-sun), 0 12px 32px rgba(0,0,0,0.22); }
.pg-searchbar__btn { min-height: 48px; border-radius: 12px; padding: 0 24px; }
.pg-searchbox__more { margin-top: 12px; }
.pg-searchbox__more summary { cursor: pointer; display: inline-flex; align-items: center; min-height: 40px; font-weight: 600; font-size: 16px; color: rgba(255,255,255,0.85); list-style: none; }
.pg-searchbox__more summary::-webkit-details-marker { display: none; }
.pg-searchbox__more summary::after { content: ""; width: 7px; height: 7px; margin-left: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.pg-searchbox__more[open] summary::after { transform: rotate(-135deg); }
.pg-searchbox__regions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--pg-s1); margin-top: var(--pg-s1); max-width: 520px; }
.pg-hero .pg-field label { color: #DCEBE2; }
.pg-hero .pg-field { margin: 0; }
.pg-hero select { background-color: var(--pg-surface) !important; }
.pg-intents { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: var(--pg-s2) 0 0; padding: 0; }
.pg-intents a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px; border-radius: 12px; background: rgba(255,255,255,0.14); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #fff !important; font-weight: 700; font-size: 16px; text-decoration: none; transition: background-color var(--pg-ease), transform var(--pg-ease); }
.pg-intents a:hover { background: rgba(255,255,255,0.24); }
.pg-intents a:active { transform: scale(0.96); }
.pg-intents .pg-ico { width: 18px; height: 18px; color: var(--pg-sun); }
@media (max-width: 767px) {
	.pg-hero { padding-top: 56px; min-height: 0; }
	.pg-hero__in { padding-bottom: 88px; }
	.pg-hero__credit { bottom: 44px; }
	.pg-hero__sub { font-size: 17px; }
	.pg-intents { flex-wrap: nowrap; overflow-x: auto; margin-right: calc(-1 * var(--pg-s2)); padding-right: var(--pg-s2); scrollbar-width: none; }
	.pg-intents li { flex: none; }
}

/* 신뢰 원칙 띠 */
.pg-trust { list-style: none; margin: -40px 0 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 0; background: var(--pg-surface); border-radius: 16px; box-shadow: var(--pg-shadow-2); position: relative; z-index: 3; }
.pg-trust li { display: flex; align-items: center; gap: 12px; padding: 14px var(--pg-s2); }
.pg-trust li + li { border-top: 1px solid var(--pg-line-soft); }
.pg-trust .pg-ico { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--pg-secondary); color: var(--pg-primary); }
.pg-trust span { display: flex; flex-direction: column; font-size: 15px; color: var(--pg-text-sub); line-height: 1.4; }
.pg-trust strong { font-size: 17px; color: var(--pg-text); font-weight: 700; }
@media (min-width: 768px) {
	.pg-trust { grid-template-columns: repeat(3, 1fr); margin-top: -56px; }
	.pg-trust li { padding: 28px 32px; }
	.pg-trust li + li { border-top: 0; border-left: 1px solid var(--pg-line-soft); }
}

/* 내 주변 */
.pg-near { background: var(--pg-surface); border-radius: 16px; box-shadow: var(--pg-shadow); padding: var(--pg-s4) var(--pg-s3); scroll-margin-top: 90px; }
.pg-near__head { display: grid; grid-template-columns: auto 1fr; gap: 12px var(--pg-s2); align-items: center; }
.pg-near__head .pg-h2 { margin: 0 0 2px; }
.pg-near__icon { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 12px; background: var(--pg-sun-bg); color: #9A6B00; }
.pg-near__icon .pg-ico { width: 28px; height: 28px; }
.pg-near__desc { margin: 0; color: var(--pg-text-sub); font-size: 16px; }
.pg-near__btn { grid-column: 1 / -1; }
.pg-near__result:not(:empty) { margin-top: var(--pg-s3); }
.pg-near__list { list-style: none; margin: 0; padding: 0; }
.pg-near__list li + li { border-top: 1px solid var(--pg-line-soft); }
.pg-near__list a { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: center; padding: 14px 4px; text-decoration: none; color: var(--pg-text); }
.pg-near__list strong { font-size: 18px; }
.pg-near__list span { grid-column: 1; font-size: 15px; color: var(--pg-text-sub); }
.pg-near__list b { grid-row: 1 / span 2; grid-column: 2; font-size: 17px; color: var(--pg-primary); background: var(--pg-secondary); border-radius: 12px; padding: 6px 10px; }
.pg-near__msg { margin: 0 0 12px; color: var(--pg-text-2); }
.pg-near__regions { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 12px 0 0; padding: 0; }
.pg-near__regions a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: var(--pg-r-btn); background: var(--pg-secondary); font-weight: 700; text-decoration: none; }
@media (min-width: 768px) {
	.pg-near__head { grid-template-columns: auto 1fr auto; }
	.pg-near__btn { grid-column: auto; }
}

/* 지역 타일 */
.pg-regions { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.pg-regions a, .pg-regions .is-empty { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 84px; padding: 12px 14px; border-radius: var(--pg-r-card); background: var(--pg-surface); box-shadow: var(--pg-shadow); text-decoration: none; color: var(--pg-text); overflow: hidden; transition: transform var(--pg-ease), box-shadow var(--pg-ease); }
.pg-regions a:hover { box-shadow: var(--pg-shadow-2); }
.pg-regions a:active { transform: scale(0.96); }
.pg-regions strong { font-size: 18px; font-weight: 800; letter-spacing: -0.02em; }
.pg-regions__n { font-size: 16px; font-weight: 700; color: var(--pg-primary); }
.pg-regions__n small { font-size: 14px; margin-left: 1px; font-weight: 600; }
.pg-regions__bar { position: absolute; left: 14px; right: 14px; bottom: 10px; height: 4px; border-radius: 2px; background: var(--pg-line-soft); }
.pg-regions__bar i { display: block; height: 100%; border-radius: 2px; background: var(--pg-primary); opacity: .75; }
.pg-regions .is-empty { background: var(--pg-surface); box-shadow: var(--pg-shadow); color: var(--pg-text-sub); }
.pg-regions .is-empty strong { color: var(--pg-text-sub); font-weight: 700; }
.pg-regions .is-empty .pg-regions__n { color: var(--pg-text-sub); font-weight: 500; font-size: 15px; }
@media (min-width: 768px) { .pg-regions { grid-template-columns: repeat(8, 1fr); gap: 16px; } .pg-regions a, .pg-regions .is-empty { min-height: 96px; } }

/* 테마(컬렉션) 타일 */
.pg-colls { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pg-coll a { display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 20px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); text-decoration: none; color: var(--pg-text); transition: transform var(--pg-ease), box-shadow var(--pg-ease); }
.pg-coll a:hover { box-shadow: var(--pg-shadow-2); transform: translateY(-2px); }
.pg-coll a:active { transform: scale(0.97); }
.pg-coll__art { width: 64px; height: 52px; display: block; }
.pg-coll__txt { display: flex; flex-direction: column; gap: 2px; }
.pg-coll__kicker { font-size: 14px; font-weight: 700; color: var(--pg-text-sub); }
.pg-coll strong { font-size: 18px; line-height: 1.35; font-weight: 800; letter-spacing: -0.025em; }
.pg-coll__count { margin-top: 4px; font-size: 16px; font-weight: 700; color: var(--pg-primary); }
@media (min-width: 768px) { .pg-colls { grid-template-columns: repeat(3, 1fr); gap: 24px; } .pg-coll a { flex-direction: row; align-items: center; padding: 28px; } .pg-coll__art { width: 88px; height: 70px; } }
@media (min-width: 1024px) { .pg-home .pg-colls { grid-template-columns: repeat(3, 1fr); } }

/* 카드 */
.pg-cards { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr; gap: var(--pg-s3); }
.pg-card { position: relative; display: flex; flex-direction: column; background: var(--pg-surface); border-radius: 16px; box-shadow: var(--pg-shadow); overflow: hidden; transition: box-shadow var(--pg-ease), transform var(--pg-ease); }
.pg-card:hover { box-shadow: var(--pg-shadow-2); transform: translateY(-2px); }
.pg-card:active { transform: scale(0.985); }
.pg-card:focus-within { outline: 3px solid var(--pg-sun); outline-offset: 2px; }
.pg-card__media { position: relative; aspect-ratio: 16 / 9; background: var(--pg-input); overflow: hidden; }
.pg-card__media img, .pg-card__media .pg-art { width: 100%; height: 100%; object-fit: cover; display: block; }
.pg-card__holes { position: absolute; left: 12px; bottom: 12px; display: inline-flex; align-items: baseline; gap: 1px; padding: 4px 10px; border-radius: 12px; background: rgba(255,255,255,0.94); color: var(--pg-text); font-size: 14px; font-weight: 700; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.pg-card__holes b { font-size: 18px; font-weight: 800; }
.pg-card__flag { position: absolute; left: 12px; top: 12px; padding: 4px 10px; border-radius: var(--pg-r-chip); background: var(--pg-alert); color: #fff; font-size: 15px; font-weight: 700; }
.pg-card__flag--info { background: var(--pg-blue); }
.pg-card__km { position: absolute; right: 12px; top: 12px; padding: 4px 10px; border-radius: 12px; background: var(--pg-text); color: #fff; font-size: 15px; font-weight: 700; }
.pg-card__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.pg-card__region { margin: 0; font-size: 15px; font-weight: 600; color: var(--pg-text-sub); }
.pg-card__title { font-size: 19px; line-height: 1.35; font-weight: 800; letter-spacing: -0.025em; margin: 0; }
.pg-card__title a { color: var(--pg-text) !important; text-decoration: none; }
.pg-stretched::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pg-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 0; }
.pg-card__meta { display: flex; align-items: center; gap: 4px; margin: auto 0 0; padding-top: 6px; font-size: 14px; color: var(--pg-text-sub); }
.pg-card__meta .pg-ico { width: 16px; height: 16px; color: var(--pg-primary); }

/* 입문 띠 (짙은 녹색 전체 폭) */
.pg-band { background: transparent; color: var(--pg-text); margin: 0; }
.pg-band__in { max-width: var(--pg-max); margin: 0 auto; padding: var(--pg-section) var(--pg-s2) 0; }

.pg-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--pg-s3); counter-reset: step; }
.pg-steps a { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 32px 28px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); color: var(--pg-text) !important; text-decoration: none; transition: box-shadow var(--pg-ease), transform var(--pg-ease); }
.pg-steps a:hover { box-shadow: var(--pg-shadow-2); transform: translateY(-2px); }
.pg-steps a:active { transform: scale(0.98); }
.pg-steps__no { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin-bottom: 8px; border-radius: 12px; background: var(--pg-secondary); font-size: 15px; font-weight: 800; color: var(--pg-primary); }
.pg-steps strong { font-size: 20px; font-weight: 800; letter-spacing: -0.03em; }
.pg-steps span:last-child { font-size: 16px; color: var(--pg-text-2); line-height: 1.65; }
@media (min-width: 768px) { .pg-steps { grid-template-columns: repeat(3, 1fr); } }
.pg-lessonstrip { margin-top: var(--pg-s4); padding: 28px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); }
.pg-lessonstrip__title { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-weight: 800; font-size: 18px; }
.pg-lessonstrip__title .pg-ico { color: var(--pg-primary); }
.pg-lessonstrip__title span { font-size: 15px; font-weight: 700; color: var(--pg-text-sub); }
.pg-lessonstrip ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pg-lessonstrip a { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 16px; border-radius: 12px; background: var(--pg-bg); color: var(--pg-text) !important; font-weight: 700; font-size: 16px; text-decoration: none; white-space: nowrap; }
.pg-lessonstrip a b { color: var(--pg-primary); }
.pg-home--after { padding-top: 0; }

/* 도구 카드 */
.pg-tools { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--pg-s3); }
.pg-tools a { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 32px 28px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); color: var(--pg-text) !important; text-decoration: none; transition: box-shadow var(--pg-ease), transform var(--pg-ease); }
.pg-tools a:hover { box-shadow: var(--pg-shadow-2); transform: translateY(-2px); }
.pg-tools__ico { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 12px; background: var(--pg-secondary); color: var(--pg-primary); margin-bottom: 6px; }
.pg-tools__ico--b { background: #E6F0FB; color: var(--pg-blue); }
.pg-tools__ico .pg-ico { width: 26px; height: 26px; }
.pg-tools strong { font-size: 20px; font-weight: 800; letter-spacing: -0.03em; }
.pg-tools span { color: var(--pg-text-2); font-size: 16px; }
.pg-tools em { display: inline-flex; align-items: center; gap: 4px; margin-top: auto; padding-top: 8px; font-style: normal; font-weight: 700; color: var(--pg-primary); }
.pg-tools em .pg-ico { width: 18px; height: 18px; }
@media (min-width: 768px) { .pg-tools { grid-template-columns: 1fr 1fr; } }

/* 소식 목록 */
.pg-newslist { list-style: none; margin: 0; padding: 0; background: var(--pg-surface); border-radius: 16px; box-shadow: var(--pg-shadow); overflow: hidden; }
.pg-newslist li + li { border-top: 1px solid var(--pg-line-soft); }
.pg-newslist a { display: flex; gap: 20px; align-items: center; padding: 20px 24px; text-decoration: none; color: var(--pg-text); transition: background-color var(--pg-ease); }
.pg-newslist a:hover { background: var(--pg-bg); }
.pg-newslist__date { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; width: 60px; height: 60px; border-radius: 12px; background: var(--pg-secondary); color: var(--pg-primary); line-height: 1.1; }
.pg-newslist__date b { font-size: 18px; font-weight: 800; }
.pg-newslist__date small { font-size: 13px; font-weight: 600; }
.pg-newslist__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pg-newslist__type { font-size: 14px; font-weight: 700; color: var(--pg-alert-text); }
.pg-newslist strong { font-size: 18px; font-weight: 700; line-height: 1.4; }
.pg-newslist__past { font-size: 14px; color: var(--pg-text-sub); }
.pg-newslist .is-expired .pg-newslist__date { background: var(--pg-input); color: var(--pg-text-sub); }

/* 제보·행동 유도 */
.pg-cta { display: flex; flex-direction: column; gap: var(--pg-s2); padding: 32px 24px; border-radius: 16px; background: #F1F6F3; }
.pg-cta .pg-h2 { margin-bottom: 6px; }
.pg-cta p { margin: 0; color: var(--pg-text-2); }
.pg-cta__btns { display: flex; flex-wrap: wrap; gap: 8px; }
@media (min-width: 768px) { .pg-cta { flex-direction: row; align-items: center; justify-content: space-between; padding: 48px 56px; } }

/* 일반 링크 목록 */
.pg-linklist { list-style: none; padding: 0; margin: 0; background: var(--pg-surface); border-radius: 16px; box-shadow: var(--pg-shadow); overflow: hidden; }
.pg-linklist li + li { border-top: 1px solid var(--pg-line-soft); }
.pg-linklist a { display: block; padding: var(--pg-s2) 20px; text-decoration: none; color: var(--pg-text); transition: background-color var(--pg-ease); }
.pg-linklist a:hover { background: var(--pg-bg); }
.pg-linklist strong { display: block; font-size: 18px; font-weight: 700; color: var(--pg-text); }
.pg-linklist span { display: block; font-size: 16px; color: var(--pg-text-sub); }

/* 칩 목록 (지역 하위 등) */
.pg-chips { list-style: none; padding: 0; margin: 0 0 var(--pg-s3); display: flex; flex-wrap: wrap; gap: var(--pg-s1); }
.pg-chips a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 var(--pg-s2); border-radius: var(--pg-r-btn); background: var(--pg-surface); box-shadow: var(--pg-shadow); text-decoration: none; color: var(--pg-text); font-weight: 600; transition: transform var(--pg-ease), background-color var(--pg-ease); }
.pg-chips a:active { transform: scale(0.97); }
.pg-chips a span { color: var(--pg-text-sub); font-size: 15px; font-weight: 600; }
.pg-chips a.is-current, .pg-chips a:hover { background: var(--pg-secondary); color: var(--pg-primary); }
.pg-region-block { padding: var(--pg-s4) 0; }
.pg-region-block .pg-h2 a { color: var(--pg-text); text-decoration: none; }
.pg-region-block .pg-chips { margin: 0; }
.pg-region-index .pg-regions { margin-bottom: var(--pg-s3); }
.pg-region__intro { margin-top: var(--pg-s2); color: var(--pg-text-2); }

/* =========================================================================
   목록·검색 결과
   ========================================================================= */
.pg-pagehead { margin: 0 0 var(--pg-s3); }
.pg-pagehead--coll { display: flex; flex-direction: column; gap: var(--pg-s2); align-items: flex-start; padding: var(--pg-s3); border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); }
.pg-pagehead--coll .pg-coll__art { width: 72px; height: 58px; flex: none; }
.pg-pagehead--coll .pg-lead { font-size: 17px; }
@media (min-width: 768px) { .pg-pagehead--coll { flex-direction: row; padding: var(--pg-s4); gap: var(--pg-s3); } .pg-pagehead--coll .pg-coll__art { width: 120px; height: 96px; } }
.pg-minikpi { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; padding: 0; }
.pg-minikpi li { padding: 8px 16px; border-radius: 12px; background: var(--pg-surface); box-shadow: var(--pg-shadow); font-size: 16px; color: var(--pg-text-2); }
.pg-minikpi b { color: var(--pg-primary); font-weight: 800; font-size: 18px; }
.pg-quickchips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 var(--pg-s2); padding: 0; }
.pg-quickchips a { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; padding: 0 16px; border-radius: 12px; background: var(--pg-surface); box-shadow: var(--pg-shadow); color: var(--pg-text-2) !important; font-weight: 700; font-size: 16px; text-decoration: none; transition: transform var(--pg-ease), background-color var(--pg-ease); }
.pg-quickchips a:active { transform: scale(0.96); }
.pg-quickchips a.is-on { background: var(--pg-text); color: #fff !important; box-shadow: none; }
.pg-quickchips a .pg-ico { width: 18px; height: 18px; }
@media (max-width: 767px) { .pg-quickchips { flex-wrap: nowrap; overflow-x: auto; margin-right: calc(-1 * var(--pg-s2)); padding-right: var(--pg-s2); scrollbar-width: none; } .pg-quickchips li { flex: none; } }

.pg-filters { margin-bottom: var(--pg-s2); background: var(--pg-surface); border-radius: var(--pg-r-card); box-shadow: var(--pg-shadow); }
.pg-filters__toggle { list-style: none; cursor: pointer; min-height: var(--pg-tap); display: flex; align-items: center; justify-content: space-between; gap: var(--pg-s1); padding: 0 var(--pg-s2); font-weight: 700; font-size: 17px; border-radius: var(--pg-r-card); }
.pg-filters__toggle > span:first-child { display: inline-flex; align-items: center; gap: var(--pg-s1); }
.pg-filters__toggle::-webkit-details-marker { display: none; }
.pg-filters__toggle::after { content: "펼치기"; margin-left: auto; font-size: 15px; font-weight: 700; color: var(--pg-primary); }
.pg-filters[open] .pg-filters__toggle::after { content: "접기"; }
.pg-filters__count:not(:empty) { background: var(--pg-primary); color: #fff; border-radius: var(--pg-r-chip); padding: 0 10px; font-size: 15px; }
.pg-filters__form { padding: var(--pg-s1) var(--pg-s2) var(--pg-s2); }
.pg-filters__regions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--pg-s1); }
.pg-filters__actions { display: flex; gap: var(--pg-s1); }
.pg-filters__actions .pg-btn { flex: 1; padding: 0 var(--pg-s2); }
.pg-results__bar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--pg-s1); margin-bottom: var(--pg-s1); }
.pg-results__count { margin: 0; font-size: 17px; }
.pg-results__count strong { font-size: 20px; font-weight: 800; }
.pg-sort { display: flex; gap: var(--pg-s2); }
.pg-sort a { font-weight: 600; text-decoration: none; color: var(--pg-text-sub); padding: var(--pg-s1) 0; }
.pg-sort a.is-current { color: var(--pg-text); font-weight: 800; }
.pg-active-filters { list-style: none; padding: 0; margin: 0 0 var(--pg-s2); display: flex; flex-wrap: wrap; gap: var(--pg-s1); }
.pg-active-filters a { display: inline-flex; gap: 6px; align-items: center; min-height: 40px; padding: 0 12px; border-radius: var(--pg-r-chip); background: var(--pg-secondary); color: var(--pg-primary); text-decoration: none; font-weight: 700; font-size: 16px; }
.pg-pagination ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pg-s1); padding: 0; margin: var(--pg-s3) 0 0; }
.pg-pagination a, .pg-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 12px; border-radius: var(--pg-r-btn); background: var(--pg-surface); box-shadow: var(--pg-shadow); text-decoration: none; font-weight: 700; color: var(--pg-text-2); }
.pg-pagination .current { background: var(--pg-primary); color: #fff; box-shadow: none; }
.pg-noresult { background: var(--pg-surface); border-radius: 16px; box-shadow: var(--pg-shadow); padding: var(--pg-s3); }
.pg-noresult h2 { font-size: 20px; margin-top: 0; }

/* 검색 + 지도 분할 화면 */
.pg-split { display: block; }
.pg-split__map { display: none; }
.pg-maptoggle { display: none; }
.pg-map { position: relative; width: 100%; height: 320px; border-radius: var(--pg-r-card); background: var(--pg-input); overflow: hidden; }
.pg-map__fallback { display: flex; align-items: center; justify-content: center; gap: 8px; height: 100%; margin: 0; padding: var(--pg-s2); text-align: center; font-weight: 700; }
.pg-map .pg-iw { padding: 8px 12px; font-size: 16px; line-height: 1.4; }
.pg-mlabel { display: inline-flex; align-items: center; gap: 4px; max-width: 180px; padding: 6px 12px; border-radius: 999px; background: #fff; color: var(--pg-text) !important; font: 700 15px/1.2 inherit; font-family: inherit; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: none !important; box-shadow: 0 2px 8px rgba(0,0,0,0.18); transform: translate(-50%, -100%); transition: transform var(--pg-ease), background-color var(--pg-ease); }
.pg-mlabel small { color: var(--pg-primary); font-weight: 800; font-size: 13px; }
.pg-mlabel:hover, .pg-mlabel.is-active { background: var(--pg-text); color: #fff !important; z-index: 2; }
.pg-mlabel:hover small, .pg-mlabel.is-active small { color: #BFD9CA; }
.pg-skeleton { position: absolute; inset: 0; background: linear-gradient(90deg, #EEF0F3 25%, #F6F7F9 37%, #EEF0F3 63%); background-size: 400% 100%; animation: pg-shimmer 1.4s ease infinite; }
@keyframes pg-shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }

/* =========================================================================
   구장 상세
   ========================================================================= */
.pg-chero { position: relative; width: 100vw; margin: calc(-1 * var(--pg-s2)) calc(50% - 50vw) 0; min-height: 300px; display: flex; align-items: flex-end; overflow: hidden; background: var(--pg-deep); }
.pg-chero__art { position: absolute; inset: 0; }
.pg-chero__art img, .pg-chero__art .pg-art { width: 100%; height: 100%; object-fit: cover; display: block; }
.pg-chero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,20,14,0.25) 0%, rgba(8,20,14,0.35) 40%, rgba(8,20,14,0.7) 100%); }
.pg-chero__in { position: relative; z-index: 2; width: 100%; max-width: var(--pg-max); margin: 0 auto; padding: 72px var(--pg-s2) 52px; color: #fff; }
.pg-chero .pg-breadcrumb ol { margin-bottom: 8px; color: rgba(255,255,255,0.85); }
.pg-chero .pg-breadcrumb a { color: rgba(255,255,255,0.92); }
.pg-chero .pg-breadcrumb li + li::before { color: rgba(255,255,255,0.6); }
.pg-chero__title { margin: 0 0 6px; font-size: clamp(28px, 5vw, 44px); line-height: 1.2; font-weight: 800; letter-spacing: -0.04em; color: #fff; text-shadow: 0 2px 16px rgba(0,0,0,0.25); text-wrap: balance; }
.pg-chero__sub { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 17px; font-weight: 600; color: rgba(255,255,255,0.92); }
.pg-chero__sub .pg-ico { width: 20px; height: 20px; }
@media (min-width: 768px) { .pg-chero { min-height: 380px; border-radius: 0; } .pg-chero__in { padding-bottom: 72px; } }
.pg-course > .pg-alert { margin-top: var(--pg-s2); }

.pg-course__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pg-s3); margin-top: var(--pg-s2); }
.pg-course__main { display: flex; flex-direction: column; gap: var(--pg-s3); min-width: 0; }
.pg-course__side { display: none; }
@media (min-width: 1024px) {
	.pg-course__layout { grid-template-columns: minmax(0, 1fr) 340px; gap: var(--pg-s4); margin-top: -40px; position: relative; z-index: 3; }
	.pg-course__side { display: block; }
	.pg-sidecard { position: sticky; top: 88px; }
}
.pg-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pg-facts li { display: flex; flex-direction: column; gap: 4px; padding: 20px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); min-width: 0; }
.pg-facts__k { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 700; color: var(--pg-text-sub); }
.pg-facts__k .pg-ico { width: 18px; height: 18px; color: var(--pg-primary); }
.pg-facts__v { font-size: 19px; font-weight: 800; letter-spacing: -0.02em; color: var(--pg-text); line-height: 1.35; }
.pg-facts__v b { font-size: 26px; font-weight: 800; }
.pg-facts__v--sm { font-size: 17px; font-weight: 700; }
.pg-facts__s { font-size: 15px; color: var(--pg-text-sub); }
.pg-facts__s--winter { color: #24507D; font-weight: 700; }
.pg-winter { font-weight: 700; }
.pg-winter--open { color: #24507D; }
.pg-winter--closed { color: #8A4B14; }
@media (min-width: 768px) { .pg-facts { grid-template-columns: repeat(4, 1fr); gap: 12px; } }
@media (max-width: 1023px) { .pg-course__layout { margin-top: -28px; position: relative; z-index: 3; } }

.pg-summary { padding: 24px 28px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); border-left: 0; }
.pg-summary p { margin: 0; font-size: 18px; line-height: 1.8; color: var(--pg-text); }

.pg-checklist ul { list-style: none; margin: 0; padding: 0; }
.pg-checklist li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; }
.pg-checklist li + li { border-top: 1px solid var(--pg-line-soft); }
.pg-checklist li .pg-ico { width: 36px; height: 36px; padding: 8px; border-radius: 12px; background: var(--pg-input); color: var(--pg-text-2); }
.pg-checklist li span { padding-top: 5px; }
.pg-checklist li.is-key .pg-ico { background: var(--pg-sun-bg); color: #9A6B00; }
.pg-checklist li.is-key span { font-weight: 700; }

.pg-bookcard { display: flex; align-items: center; gap: 14px; padding: 16px 18px; margin: 0 0 var(--pg-s2); border-radius: 16px; background: var(--pg-primary); color: #fff !important; text-decoration: none; transition: background-color var(--pg-ease), transform var(--pg-ease); }
.pg-bookcard:hover { background: var(--pg-primary-press); }
.pg-bookcard:active { transform: scale(0.98); }
.pg-bookcard span { display: flex; flex-direction: column; flex: 1; }
.pg-bookcard strong { font-size: 18px; }
.pg-bookcard small { font-size: 15px; opacity: 0.85; }
.pg-bookcard--soft { background: var(--pg-secondary); color: var(--pg-primary) !important; }
.pg-bookcard--soft:hover { background: #DCEAE2; }
.pg-dl { display: grid; grid-template-columns: 6.5em 1fr; gap: 12px var(--pg-s2); margin: 0; }
.pg-dl dt { font-weight: 700; color: var(--pg-text-sub); }
.pg-dl dd { margin: 0; }
.pg-dl:empty { display: none; }
.pg-prices { list-style: none; margin: 0; padding: 0; }
.pg-prices li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 0; }
.pg-prices li + li { border-top: 1px solid var(--pg-line-soft); }
.pg-prices__k { display: flex; flex-direction: column; font-weight: 700; }
.pg-prices__k small, .pg-prices__v small { font-size: 15px; font-weight: 500; color: var(--pg-text-sub); }
.pg-prices__v { text-align: right; font-size: 20px; font-weight: 800; display: flex; flex-direction: column; }
.pg-table { width: 100%; border-collapse: collapse; font-size: 16px; }
.pg-table th, .pg-table td { border-bottom: 1px solid var(--pg-line-soft); padding: 12px 8px; text-align: left; vertical-align: top; }
.pg-facilities { list-style: none; padding: 0; margin: 0 0 var(--pg-s1); display: grid; grid-template-columns: 1fr 1fr; gap: var(--pg-s1); }
.pg-facilities li { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-radius: var(--pg-r-btn); background: var(--pg-bg); }
.pg-facilities li .pg-ico { width: 20px; height: 20px; }
.pg-facilities__name { font-weight: 700; flex: 1; }
.pg-facilities li.is-yes { background: var(--pg-secondary); }
.pg-facilities li.is-yes .pg-ico, .pg-facilities li.is-yes .pg-facilities__val { color: var(--pg-primary); font-weight: 700; }
.pg-facilities li.is-no .pg-facilities__val, .pg-facilities li.is-no .pg-ico { color: var(--pg-text-sub); }
.pg-address { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 18px; font-weight: 600; margin: 0 0 8px; }
.pg-mapbtns { display: flex; gap: 8px; margin-top: 12px; }
.pg-map--single { margin-top: 12px; height: 280px; }
.pg-gallery { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--pg-s1); }
.pg-gallery img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--pg-r-btn); display: block; }
.pg-prose > :first-child { margin-top: 0; }

.pg-unknowns { display: flex; flex-direction: column; gap: 12px; padding: 24px 28px; border-radius: 16px; background: #F1F6F3; }
.pg-unknowns .pg-h3 { margin: 0 0 4px; }
.pg-unknowns p { margin: 0; }
.pg-unknowns > div > p:first-of-type { font-weight: 700; color: var(--pg-text-2); }
.pg-unknowns .pg-btn { align-self: flex-start; }
@media (min-width: 768px) { .pg-unknowns { flex-direction: row; align-items: center; justify-content: space-between; } .pg-unknowns .pg-btn { align-self: center; } }

.pg-sources { padding: 4px 4px 0; color: var(--pg-text-2); font-size: 16px; }
.pg-sources .pg-h3 { margin-top: 0; }
.pg-sources ul { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 4px; }
aside.pg-sourcebox { background: var(--pg-surface); border-radius: var(--pg-r-card); box-shadow: var(--pg-shadow); padding: var(--pg-s3); margin-top: var(--pg-s3); }
aside.pg-sourcebox h2 { font-size: 18px; margin: 0 0 var(--pg-s1); }
.pg-sourcebox ul { margin: 0 0 var(--pg-s1); padding-left: 1.2em; }

.pg-sidecard { display: flex; flex-direction: column; gap: 10px; padding: 28px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow-2); }
.pg-sidecard__title { margin: 0 0 4px; font-size: 18px; font-weight: 800; letter-spacing: -0.02em; }
.pg-sidecard__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 8px; }
.pg-sidecard__row .pg-btn { padding: 0 8px; font-size: 16px; }
.pg-sidecard__phone { margin: 0; text-align: center; font-weight: 700; color: var(--pg-text-2); }
.pg-sidecard__note { margin: 4px 0 0; font-size: 14px; color: var(--pg-text-sub); line-height: 1.5; }

/* 하단 고정 실행 바 (모바일) */
.pg-stickybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; gap: 6px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, 0.85); -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); border-top: 1px solid rgba(209, 214, 219, 0.6); }
.pg-stickybar__main { flex: 1; min-width: 0; font-size: 16px; padding: 0 10px; overflow: hidden; text-overflow: ellipsis; }
.pg-iconbtn { flex: none; flex-direction: column; gap: 2px; width: 54px; min-width: 0; padding: 0 4px; background: var(--pg-surface); }
.pg-iconbtn span { font-size: 13px; font-weight: 700; }
.pg-iconbtn .pg-ico { width: 20px; height: 20px; }
.pg-course { padding-bottom: 110px; }
@media (min-width: 1024px) { .pg-stickybar { display: none; } .pg-course { padding-bottom: 64px; } }

/* =========================================================================
   배우기 · 강좌
   ========================================================================= */
.pg-pagehead--learn { padding: var(--pg-s4) 0 var(--pg-s2); }
.pg-guides { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--pg-s3); }
.pg-guides a { display: grid; grid-template-columns: auto 1fr; gap: 2px 16px; align-items: start; height: 100%; padding: 28px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); text-decoration: none; color: var(--pg-text) !important; transition: box-shadow var(--pg-ease), transform var(--pg-ease); }
.pg-guides a:hover { box-shadow: var(--pg-shadow-2); transform: translateY(-2px); }
.pg-guides__ico { grid-row: span 3; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 12px; background: var(--pg-secondary); color: var(--pg-primary); }
.pg-guides__ico--1 { background: var(--pg-sun-bg); color: #9A6B00; }
.pg-guides__ico--2 { background: #E6F0FB; color: var(--pg-blue); }
.pg-guides__ico--3 { background: var(--pg-alert-bg); color: var(--pg-alert-text); }
.pg-guides__topic { font-size: 14px; font-weight: 700; color: var(--pg-text-sub); }
.pg-guides strong { font-size: 19px; font-weight: 800; letter-spacing: -0.025em; line-height: 1.35; }
.pg-guides__ex { font-size: 16px; color: var(--pg-text-2); line-height: 1.55; }
@media (min-width: 768px) { .pg-guides { grid-template-columns: 1fr 1fr; } }
.pg-lessons, .entry-content .pg-lessons { list-style: none; padding: 0; margin: var(--pg-s2) 0; display: grid; gap: 10px; }
.pg-lessons li + li { margin-top: 0; }
.pg-lessons a { display: grid; grid-template-columns: auto 1fr; gap: 2px var(--pg-s2); align-items: center; padding: 20px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); text-decoration: none; color: var(--pg-text) !important; transition: transform var(--pg-ease), box-shadow var(--pg-ease); }
.pg-lessons a:hover { box-shadow: var(--pg-shadow-2); }
.pg-lessons a:active { transform: scale(0.99); }
.pg-lessons__no { grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 12px; background: var(--pg-secondary); color: var(--pg-primary); font-weight: 800; }
.pg-lessons strong { font-size: 18px; font-weight: 800; color: var(--pg-text); }
.pg-lessons__desc { color: var(--pg-text-sub); font-size: 16px; }
@media (min-width: 768px) { .pg-lessonbox .pg-lessons { grid-template-columns: 1fr 1fr; } }
.pg-lesson-step { font-size: 16px; color: var(--pg-text-sub); font-weight: 700; }
.pg-lesson-nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--pg-s1); margin: var(--pg-s4) 0 var(--pg-s1); }
.pg-lesson-nav .pg-btn { flex-direction: column; align-items: flex-start; text-align: left; min-height: 72px; padding: var(--pg-s1) var(--pg-s2); white-space: normal; }
.pg-lesson-nav .pg-btn span { font-weight: 500; font-size: 16px; }
.pg-lesson-nav .pg-btn--primary { align-items: flex-end; text-align: right; }

/* =========================================================================
   현황 통계
   ========================================================================= */
.pg-stats { padding: 0; }
.pg-kpis { list-style: none; margin: 0 0 var(--pg-s3); padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pg-kpis li { display: flex; flex-direction: column; gap: 4px; padding: 24px; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); }
.pg-kpis__v { font-size: 32px; font-weight: 800; letter-spacing: -0.03em; color: var(--pg-primary); line-height: 1.1; }
.pg-kpis__v small { font-size: 17px; margin-left: 2px; color: var(--pg-text-2); }
.pg-kpis__k { font-size: 15px; font-weight: 600; color: var(--pg-text-sub); }
@media (min-width: 768px) { .pg-kpis { grid-template-columns: repeat(4, 1fr); } }
.pg-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pg-bars__row { display: grid; grid-template-columns: 4.2em 1fr 3.6em; gap: 10px; align-items: center; font-size: 16px; }
.pg-bars__label { font-weight: 700; }
.pg-bars__label a { color: var(--pg-text); text-decoration: none; }
.pg-bars__label a:hover { text-decoration: underline; }
.pg-bars__track { height: 14px; border-radius: 7px; background: var(--pg-line-soft); overflow: hidden; }
.pg-bars__fill { display: block; height: 100%; border-radius: 7px; background: linear-gradient(90deg, #2E7D55, var(--pg-primary)); }
.pg-bars__val { text-align: right; font-weight: 700; color: var(--pg-text-2); }
.pg-bars__row.is-zero { color: var(--pg-text-sub); }
.pg-bars__row.is-zero .pg-bars__label, .pg-bars__row.is-zero .pg-bars__val { font-weight: 500; }
.pg-bars--compact .pg-bars__row { grid-template-columns: 5.6em 1fr 3.2em; }
.pg-stats__grid { display: grid; gap: var(--pg-s2); }
.pg-stats__grid .pg-section { margin: 0; }
.pg-stats > .pg-section.pg-panel { margin-top: var(--pg-s2); }
@media (min-width: 900px) { .pg-stats__grid { grid-template-columns: 1fr 1fr; margin-top: var(--pg-s2); } }
.pg-rank { list-style: none; margin: 0; padding: 0; }
.pg-rank li { display: grid; grid-template-columns: 32px 1fr auto; gap: 0 10px; align-items: center; padding: 10px 0; }
.pg-rank li + li { border-top: 1px solid var(--pg-line-soft); }
.pg-rank__no { grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 10px; background: var(--pg-secondary); color: var(--pg-primary); font-weight: 800; font-size: 15px; }
.pg-rank a { font-weight: 700; color: var(--pg-text); text-decoration: none; }
.pg-rank__meta { grid-column: 2; font-size: 14px; color: var(--pg-text-sub); }
.pg-rank strong { grid-row: 1 / span 2; grid-column: 3; color: var(--pg-primary); }
.pg-stack { display: flex; height: 22px; border-radius: 11px; overflow: hidden; background: var(--pg-line-soft); }
.pg-stack__seg--yes { background: var(--pg-primary); }
.pg-stack__seg--conditional { background: #6FB08A; }
.pg-stack__seg--no { background: var(--pg-sun); }
.pg-stack__seg--unknown { background: #D1D6DB; }
.pg-legend { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 16px; }
.pg-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 4px; margin-right: 6px; vertical-align: -1px; }
.pg-legend span { color: var(--pg-text-sub); }

/* =========================================================================
   스코어카드
   ========================================================================= */
.pg-score { padding: 0; }
.pg-score__setup { background: var(--pg-surface); border-radius: 16px; box-shadow: var(--pg-shadow); padding: var(--pg-s3) var(--pg-s3) 4px; margin-bottom: var(--pg-s2); }
.pg-score__players { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media (min-width: 640px) { .pg-score__players { grid-template-columns: repeat(4, 1fr); } }
.pg-score__board { overflow-x: auto; border-radius: 16px; background: var(--pg-surface); box-shadow: var(--pg-shadow); }
.pg-score__table { width: 100%; border-collapse: collapse; font-size: 16px; min-width: 100%; }
.pg-score__table th, .pg-score__table td { padding: 6px 4px; text-align: center; border-bottom: 1px solid var(--pg-line-soft); white-space: nowrap; }
.pg-score__table thead th { position: sticky; top: 0; background: var(--pg-deep); color: #fff; font-weight: 700; padding: 12px 6px; }
.pg-score__table tbody th { font-weight: 800; color: var(--pg-text); width: 3.2em; }
.pg-score__table .is-course td, .pg-score__table .is-course th { background: var(--pg-secondary); font-weight: 800; color: var(--pg-primary); }
.pg-score__table tfoot td, .pg-score__table tfoot th { background: var(--pg-text); color: #fff; font-weight: 800; font-size: 18px; padding: 12px 6px; }
.pg-score__par { min-width: 44px; min-height: 40px; border: 0; border-radius: 10px; background: var(--pg-input); font: inherit; font-weight: 700; color: var(--pg-text-2); cursor: pointer; padding: 0 8px; }
.pg-score__cell { display: inline-flex; align-items: center; gap: 2px; }
.pg-score__cell button { width: 36px; height: 40px; min-height: 0; padding: 0; border: 0; border-radius: 10px; background: var(--pg-input); color: var(--pg-text-2); font-size: 20px; font-weight: 700; cursor: pointer; }
.pg-score__cell button:active { transform: scale(0.94); }
.pg-score__cell output { display: inline-block; min-width: 34px; font-size: 20px; font-weight: 800; color: var(--pg-text); }
.pg-score__cell output.is-under { color: var(--pg-primary); }
.pg-score__cell output.is-over { color: var(--pg-alert-text); }
.pg-score__cell output.is-empty { color: var(--pg-line); }
.pg-score__diff { display: block; font-size: 13px; opacity: .8; }
.pg-score__actions { display: flex; flex-wrap: wrap; gap: 8px; margin: var(--pg-s2) 0; }
.pg-score__help { margin-top: var(--pg-s2); background: var(--pg-surface); border-radius: 16px; box-shadow: var(--pg-shadow); padding: 4px 20px; }
.pg-score__help summary { cursor: pointer; min-height: 52px; display: flex; align-items: center; font-weight: 700; }
.pg-score__help ul { padding-left: 1.2em; }
.pg-score__terms { width: 100%; border-collapse: collapse; margin: 4px 0 8px; font-size: 16px; }
.pg-score__terms th, .pg-score__terms td { padding: 10px 8px; border-bottom: 1px solid var(--pg-line-soft); text-align: left; vertical-align: top; line-height: 1.5; }
.pg-score__terms thead th { font-size: 14px; font-weight: 700; color: var(--pg-text-sub); background: var(--pg-input); }
.pg-score__terms tbody th { white-space: nowrap; font-weight: 800; color: var(--pg-text); }
.pg-score__terms td:nth-child(2) { white-space: nowrap; font-weight: 800; font-variant-numeric: tabular-nums; }
.pg-score__terms td:last-child { color: var(--pg-text-2); }
.pg-score__terms .is-under { color: var(--pg-primary); }
.pg-score__terms .is-over { color: var(--pg-alert-text); }

/* 스코어카드 알려주기 (페이지 QR) */
.pg-invite { display: grid; grid-template-columns: auto 1fr; gap: var(--pg-s3); align-items: center; margin-bottom: var(--pg-s2); padding: var(--pg-s3); border-radius: 18px; background: linear-gradient(135deg, #0F2E20 0%, #1F4E37 100%); color: #fff; box-shadow: var(--pg-shadow-soft, 0 18px 40px -14px rgba(15,46,32,.35)); }
.pg-invite__qr { padding: 10px; border-radius: 14px; background: #fff; line-height: 0; }
.pg-invite__qr img, .pg-invite__qr canvas { width: 180px; height: 180px; display: block; image-rendering: pixelated; }
.pg-invite__title { margin: 0 0 6px; font-size: 21px; font-weight: 800; letter-spacing: -0.02em; color: #fff; }
.pg-invite p { margin: 0 0 8px; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,0.88); }
.pg-invite__url { font-weight: 700; color: #F2B705 !important; letter-spacing: 0.01em; }
.pg-invite__btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.pg-invite .pg-btn--outline { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.35); color: #fff !important; }
.pg-invite .pg-btn--outline:hover { background: rgba(255,255,255,0.2); border-color: #fff; color: #fff !important; }
.pg-score.is-room .pg-invite { display: none; }
@media (max-width: 560px) {
	.pg-invite { grid-template-columns: 1fr; justify-items: center; text-align: center; }
	.pg-invite__btns { justify-content: center; }
}
@media print { .pg-invite { display: none !important; } }

/* 함께 기록하기 */
.pg-room { margin-bottom: var(--pg-s2); }
.pg-room:empty { display: none; }
.pg-room__solo, .pg-room__live { background: var(--pg-surface); border-radius: 18px; box-shadow: var(--pg-shadow); padding: var(--pg-s3); }
.pg-room__solo { display: grid; gap: var(--pg-s2); border: 1.5px dashed rgba(31, 78, 55, 0.35); }
.pg-room__title { display: block; font-size: 19px; font-weight: 800; letter-spacing: -0.02em; color: var(--pg-text); margin-bottom: 4px; }
.pg-room__desc { margin: 0; font-size: 16px; color: var(--pg-text-2); line-height: 1.6; }
.pg-room__msg { margin: 8px 0 0; font-size: 15px; font-weight: 600; color: var(--pg-alert-text); }
.pg-room__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.pg-room__live { display: grid; gap: var(--pg-s3); grid-template-columns: 1fr; align-items: center; background: linear-gradient(160deg, #fff 0%, #F3F7F4 100%); border: 1px solid rgba(31, 78, 55, 0.18); }
.pg-room__qr { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pg-room__qr canvas { width: 200px; height: 200px; border-radius: 14px; background: #fff; box-shadow: 0 6px 20px rgba(15, 46, 32, 0.14); image-rendering: pixelated; }
.pg-room__qr span { font-size: 14px; font-weight: 600; color: var(--pg-text-sub); }
.pg-room__info { display: flex; flex-direction: column; gap: 10px; }
.pg-room__code { font-variant-numeric: tabular-nums; letter-spacing: 0.06em; color: var(--pg-primary); }
.pg-room__status { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; font-weight: 700; color: var(--pg-primary); }
.pg-room__status::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #2FA36B; box-shadow: 0 0 0 4px rgba(47, 163, 107, 0.18); animation: pg-pulse 1.8s ease-in-out infinite; }
.pg-room__status.is-off { color: var(--pg-alert-text); }
.pg-room__status.is-off::before { background: var(--pg-alert); box-shadow: 0 0 0 4px rgba(229, 109, 65, 0.18); }
@keyframes pg-pulse { 50% { opacity: 0.45; } }
.pg-btn--kakao { background: #FEE500; color: #191600 !important; }
.pg-btn--kakao:hover { background: #F5DC00; color: #191600 !important; }
@media (min-width: 720px) {
	.pg-room__solo { grid-template-columns: 1fr auto; align-items: center; }
	.pg-room__live { grid-template-columns: auto 1fr; padding: var(--pg-s4); gap: var(--pg-s4); }
}
@media (prefers-reduced-motion: reduce) { .pg-room__status::before { animation: none; } }

/* =========================================================================
   반응형
   ========================================================================= */
@media (min-width: 768px) {
	.pg { padding: var(--pg-s3) var(--pg-s3) var(--pg-s8); }
	.pg-hero { margin-top: calc(-1 * var(--pg-s3)); }
	.pg-hero__in { padding-left: var(--pg-s3); padding-right: var(--pg-s3); }
	.pg-chero { margin-top: calc(-1 * var(--pg-s3)); }
	.pg-chero__in { padding-left: var(--pg-s3); padding-right: var(--pg-s3); }
	.pg-cards { grid-template-columns: 1fr 1fr; gap: var(--pg-s3); }
	.pg-band__in { padding: var(--pg-section) var(--pg-s3) 0; }
	.pg-facilities { grid-template-columns: repeat(3, 1fr); }
	.pg-gallery { grid-template-columns: repeat(3, 1fr); }
	.pg-cards--scroll { grid-template-columns: repeat(2, 1fr); }
	.pg-section { margin: var(--pg-section) 0; }
	:root { --pg-section: 120px; }
}
@media (min-width: 1024px) {
	.pg-cards--scroll { grid-template-columns: repeat(3, 1fr); }
	.pg-course .pg-cards--scroll { grid-template-columns: repeat(4, 1fr); }
	.pg-split:not(.has-map) .pg-cards { grid-template-columns: repeat(3, 1fr); }
	.pg-archive:has(.pg-split.has-map) { max-width: none; padding-left: var(--pg-s3); padding-right: 0; }
	.pg-split.has-map { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 60%); gap: var(--pg-s3); align-items: start; }
	.pg-split.has-map .pg-split__list { min-width: 0; }
	.pg-split.has-map .pg-cards { grid-template-columns: 1fr 1fr; gap: var(--pg-s2); }
	.pg-split__map { display: block; position: sticky; top: 64px; height: calc(100vh - 64px); }
	.pg-split__map .pg-map { height: 100%; border-radius: 0; }
	.pg-archive:has(.pg-split.has-map) .pg-disclaimer { padding-right: var(--pg-s3); }
	.pg-guides { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1023px) {
	.pg-split.has-map ~ .pg-maptoggle { display: inline-flex; position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 95; align-items: center; gap: var(--pg-s1); min-height: var(--pg-tap); padding: 0 var(--pg-s3); border: 0; border-radius: 999px; background: var(--pg-text); color: #fff; font: inherit; font-size: 17px; font-weight: 700; box-shadow: 0 8px 24px rgba(0,0,0,0.25); cursor: pointer; transition: transform var(--pg-ease), opacity var(--pg-ease); }
	.pg-maptoggle:active { transform: translateX(-50%) scale(0.96); }
	.pg-maptoggle > span { display: inline-flex; align-items: center; gap: var(--pg-s1); }
	.pg-maptoggle__list, .pg-maptoggle[aria-pressed="true"] .pg-maptoggle__map { display: none !important; }
	.pg-maptoggle[aria-pressed="true"] .pg-maptoggle__list { display: inline-flex !important; }
	.pg-split.is-map-view .pg-split__map { display: block; position: fixed; inset: 0; z-index: 80; }
	.pg-split.is-map-view .pg-split__map .pg-map { height: 100%; border-radius: 0; }
}
body:has(.pg-hero), body:has(.pg-chero), body:has(.pg-band) { overflow-x: hidden; }

/* 접근성: 움직임 줄이기 / 인쇄 */
@media (prefers-reduced-motion: reduce) { .pg *, .pg-btn, .pg-card { transition: none !important; animation: none !important; } }

/* ---------- 예약처 다녀오기: 안내 토스트 · 돌아왔을 때 시트 · 따라다니는 돌아가기 버튼 ---------- */
.pg-toast { position: fixed; left: 50%; bottom: calc(92px + env(safe-area-inset-bottom)); z-index: 120; width: min(560px, calc(100% - 24px)); transform: translate(-50%, 12px); padding: 14px 18px; border-radius: 14px; background: #1E2A33; color: #fff; font-size: 16px; line-height: 1.55; box-shadow: 0 14px 36px rgba(0,0,0,.22); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; }
.pg-toast.is-shown { opacity: 1; transform: translate(-50%, 0); }
.pg-toast strong { display: block; margin-bottom: 2px; }
@media (min-width: 1024px) { .pg-toast { bottom: 32px; } }

.pg-backsheet { position: fixed; inset: 0; z-index: 130; display: flex; align-items: flex-end; justify-content: center; background: rgba(17, 24, 29, 0); transition: background .25s; }
.pg-backsheet.is-shown { background: rgba(17, 24, 29, .38); }
.pg-backsheet__panel { position: relative; width: min(560px, 100%); max-height: 90vh; overflow: auto; padding: 26px 22px calc(22px + env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0; background: #fff; box-shadow: 0 -10px 40px rgba(0,0,0,.18); transform: translateY(100%); transition: transform .25s ease-out; }
.pg-backsheet.is-shown .pg-backsheet__panel { transform: none; }
@media (min-width: 768px) { .pg-backsheet { align-items: center; } .pg-backsheet__panel { border-radius: 20px; padding-bottom: 24px; } }
.pg-backsheet__x { position: absolute; top: 12px; right: 12px; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #F2F4F6; color: var(--pg-text); cursor: pointer; }
.pg-backsheet__kicker { margin: 0 0 4px; color: var(--pg-primary); font-weight: 700; font-size: 15px; }
.pg-backsheet__title { margin: 0 48px 8px 0; font-size: 22px; line-height: 1.35; outline: none; }
.pg-backsheet__lead { margin: 0 0 18px; color: var(--pg-text-sub); font-size: 16px; }
.pg-backsheet__actions { display: grid; gap: 10px; }
.pg-backsheet__actions .pg-btn { width: 100%; justify-content: center; min-height: 52px; font-size: 17px; }

.pg-returnpill { position: fixed; left: 12px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 95; display: flex; align-items: center; max-width: calc(100% - 92px); border-radius: 999px; background: var(--pg-primary); color: #fff; box-shadow: 0 10px 28px rgba(27, 94, 60, .35); opacity: 0; transform: translateY(10px); transition: opacity .2s, transform .2s; }
.pg-returnpill.is-shown { opacity: 1; transform: none; }
.pg-returnpill.has-stickybar { bottom: calc(84px + env(safe-area-inset-bottom)); }
@media (min-width: 1024px) { .pg-returnpill, .pg-returnpill.has-stickybar { left: 24px; bottom: 32px; max-width: 420px; } }
.pg-returnpill__go { display: flex; align-items: center; gap: 8px; min-width: 0; min-height: 56px; padding: 6px 4px 6px 16px; color: #fff; text-decoration: none; }
.pg-returnpill__go span { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.pg-returnpill__go small { font-size: 13px; opacity: .9; }
.pg-returnpill__go b { font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pg-returnpill__go:focus-visible, .pg-returnpill__x:focus-visible { outline: 3px solid #F2B705; outline-offset: 2px; border-radius: 999px; }
.pg-returnpill svg, .pg-backsheet__x svg { width: 20px; height: 20px; min-width: 20px; flex: none; display: block; }
.pg-returnpill__x { flex: none; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: 6px; border: 0; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; cursor: pointer; }

@media print {
	.pg-actions, .pg-filters, .pg-map, .pg-maptoggle, .pg-stickybar, .pg-returnpill, .pg-toast, .pg-backsheet, .pg-course__side, .pg-room, .pg-score__setup, .pg-score__actions, .pg-score__help, .pg-unknowns { display: none !important; }
	.pg-score__board { box-shadow: none; overflow: visible; }
	.pg-score__table th, .pg-score__table td { border: 1px solid #999 !important; padding: 8px !important; }
	.pg-score__table thead th, .pg-score__table tfoot td, .pg-score__table tfoot th { background: #fff !important; color: #000 !important; }
	.pg-score__cell button { display: none; }
	.pg-score__cell output.is-empty { color: transparent; }
	.pg-chero { min-height: 0; background: none; }
	.pg-chero__art, .pg-chero::after { display: none; }
	.pg-chero__in, .pg-chero__title, .pg-chero__sub, .pg-chero .pg-breadcrumb a { color: #000 !important; text-shadow: none; }
}
.pg-home:not(.pg-home--after) { padding-bottom: 0; }
.pg-home--after { padding-bottom: var(--pg-section); }
.pg-home--after > .pg-section:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------------ 대회 일정 (1.9.0) */
.pg-eventlist { list-style: none; margin: 0; padding: 0; background: var(--pg-surface); border-radius: var(--pg-r-card); box-shadow: var(--pg-shadow); overflow: hidden; }
.pg-eventlist__item + .pg-eventlist__item { border-top: 1px solid var(--pg-line-soft); }
.pg-eventlist a { display: flex; gap: 18px; align-items: center; padding: 18px 22px; text-decoration: none; color: var(--pg-text); transition: background-color var(--pg-ease); }
.pg-eventlist a:hover { background: var(--pg-bg); }
.pg-eventlist__date { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; width: 64px; height: 64px; border-radius: 12px; background: var(--pg-secondary); color: var(--pg-primary); line-height: 1.1; }
.pg-eventlist__date b { font-size: 19px; font-weight: 800; }
.pg-eventlist__date small { font-size: 13px; font-weight: 600; }
.pg-eventlist__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pg-eventlist__body strong { font-size: 18px; font-weight: 700; line-height: 1.4; }
.pg-eventlist__meta { font-size: 15px; color: var(--pg-text-sub); }
.pg-eventlist__apply { font-size: 14px; font-weight: 700; color: var(--pg-alert-text); }
.pg-eventlist__tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0; }
.pg-eventlist__item.is-done { opacity: .72; }
.pg-evstatus, .pg-evdday, .pg-evregion { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: var(--pg-r-chip); font-size: 13px; font-weight: 700; text-decoration: none; }
.pg-evstatus { background: var(--pg-input); color: var(--pg-text-sub); }
.pg-evstatus.is-open { background: var(--pg-primary); color: #fff; }
.pg-evstatus.is-soon, .pg-evstatus.is-planned { background: var(--pg-sun-bg); color: #7A5B00; }
.pg-evstatus.is-live { background: var(--pg-blue); color: #fff; }
.pg-evstatus.is-cancelled, .pg-evstatus.is-postponed { background: var(--pg-alert-bg); color: var(--pg-alert-text); }
.pg-evdday { background: var(--pg-alert-bg); color: var(--pg-alert-text); }
.pg-evregion { background: var(--pg-secondary); color: var(--pg-primary); }
.pg-event__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.pg-deflist { margin: 0; background: var(--pg-surface); border-radius: var(--pg-r-card); box-shadow: var(--pg-shadow); padding: 6px 22px; }
.pg-deflist > div { display: grid; grid-template-columns: 120px 1fr; gap: 12px; padding: 14px 0; }
.pg-deflist > div + div { border-top: 1px solid var(--pg-line-soft); }
.pg-deflist dt { font-weight: 700; color: var(--pg-text-sub); }
.pg-deflist dd { margin: 0; white-space: pre-line; }
.pg-quickchips--sub { margin-top: -8px; }
.pg-quickchips--sub a { font-size: 15px; }
.pg-evguide ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pg-evguide li { background: var(--pg-surface); border-radius: 12px; padding: 14px 18px; box-shadow: var(--pg-shadow); }
.pg-evguide li strong { display: block; margin-bottom: 2px; color: var(--pg-primary); }
@media (max-width: 640px) {
	.pg-eventlist a { padding: 16px; gap: 14px; }
	.pg-eventlist__date { width: 56px; height: 56px; }
	.pg-deflist > div { grid-template-columns: 1fr; gap: 2px; }
}

/* ------------------------------------------------------------------ 블로그 (1.9.0) */
.pg-postcards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.pg-postcards a { display: flex; flex-direction: column; height: 100%; background: var(--pg-surface); border-radius: var(--pg-r-card); box-shadow: var(--pg-shadow); overflow: hidden; text-decoration: none; color: var(--pg-text); }
.pg-postcards__img { aspect-ratio: 16 / 9; background: var(--pg-secondary) center / cover no-repeat; }
.pg-postcards__body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.pg-postcards__cat { font-size: 13px; font-weight: 700; color: var(--pg-primary); }
.pg-postcards strong { font-size: 18px; line-height: 1.4; }
.pg-postcards small { color: var(--pg-text-sub); font-size: 14px; }
.pg-related-box { margin: 40px 0 0; padding: 22px; background: var(--pg-secondary); border-radius: var(--pg-r-card); }
.pg-related-box h2 { font-size: 20px; margin: 0 0 14px; }
.pg-related-box .pg-related-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.pg-related-box .pg-related-links a { display: inline-flex; align-items: center; height: 40px; padding: 0 14px; border-radius: 10px; background: #fff; color: var(--pg-primary); font-weight: 700; text-decoration: none; }
@media print { .pg-event__actions { display: none; } }
.pg-postcards__img svg { width: 100%; height: 100%; display: block; }

/* ------------------------------------------------------------------ 대회 달력·개최 시기 (1.9.2) */
.pg-calyear { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 8px 0 24px; }
.pg-calyear a { color: var(--pg-primary); font-weight: 700; text-decoration: none; padding: 8px 12px; border-radius: 10px; background: var(--pg-secondary); }
.pg-calyear strong { font-size: 19px; }
.pg-calbars__list { list-style: none; margin: 0 0 12px; padding: 16px; display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; align-items: end; background: var(--pg-surface); border-radius: var(--pg-r-card); box-shadow: var(--pg-shadow); }
.pg-calbars__list a { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; height: 150px; text-decoration: none; color: var(--pg-text); }
.pg-calbars__bar { display: block; width: 70%; min-height: 3px; height: var(--h); max-height: 100px; background: var(--pg-primary); border-radius: 6px 6px 2px 2px; }
.pg-calbars__list b { font-size: 14px; min-height: 18px; }
.pg-calbars__list small { font-size: 13px; color: var(--pg-text-sub); }
.pg-calmonth .pg-h2 small { font-size: 16px; color: var(--pg-text-sub); font-weight: 600; margin-left: 6px; }
.pg-evhistory { background: var(--pg-secondary); border-radius: var(--pg-r-card); padding: 22px; }
.pg-evhistory__list { list-style: none; margin: 12px 0; padding: 0; display: grid; gap: 8px; }
.pg-evhistory__list a { display: block; padding: 12px 14px; background: #fff; border-radius: 10px; text-decoration: none; color: var(--pg-text); }
.pg-evhistory__list b { color: var(--pg-primary); margin-right: 8px; }
@media (max-width: 640px) { .pg-calbars__list { gap: 3px; padding: 12px 8px; } .pg-calbars__list a { height: 120px; } }

/* =========================================================================
   프리미엄 리뉴얼 (1.9.3) — 포레스트 그린 · 입체감 · 마이크로 인터랙션
   ========================================================================= */
html:root {
	--pg-primary: #1F4E37;
	--pg-primary-press: #173D2B;
	--pg-deep: #0F2E20;
	--pg-secondary: #EAF0EC;
	--pg-forest-glass: rgba(18, 52, 36, 0.52);
	--pg-lift: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.28s ease, border-color 0.28s ease, background-color 0.28s ease;
	--pg-shadow-soft: 0 2px 6px rgba(15, 46, 32, 0.05), 0 22px 48px -14px rgba(15, 46, 32, 0.28);
	--pg-shadow-soft-hover: 0 4px 10px rgba(15, 46, 32, 0.06), 0 28px 60px -16px rgba(15, 46, 32, 0.34);
}

/* 글꼴: Pretendard 전면 적용 (테마가 바뀌어도 유지) */
.pg, .pg button, .pg input, .pg select, .pg textarea {
	font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
}

/* 히어로 필터: 위·아래가 점점 어두워지는 그라데이션 + 글자 쪽(왼쪽)만 살짝 더 어둡게 */
.pg-hero { background: var(--pg-deep); }
.pg-hero__bg::after {
	background:
		linear-gradient(180deg, rgba(6, 20, 13, 0.70) 0%, rgba(6, 20, 13, 0.30) 32%, rgba(6, 20, 13, 0.22) 55%, rgba(6, 20, 13, 0.55) 82%, rgba(6, 20, 13, 0.82) 100%),
		linear-gradient(90deg, rgba(6, 20, 13, 0.38) 0%, rgba(6, 20, 13, 0.08) 55%, rgba(6, 20, 13, 0) 100%);
}

/* 타이포그래피 대비: 제목 Bold · 설명 Light */
.pg-hero__title { font-weight: 700; letter-spacing: -0.04em; text-shadow: 0 2px 28px rgba(0, 0, 0, 0.32); }
.pg-hero__sub { font-weight: 300; letter-spacing: -0.01em; color: rgba(255, 255, 255, 0.92); text-shadow: 0 1px 12px rgba(0, 0, 0, 0.25); }
.pg-hero__eyebrow { background: var(--pg-forest-glass); border: 1px solid rgba(255, 255, 255, 0.16); }

/* 검색창: 떠오르기 + 테두리 색 전환 */
.pg-searchbar { border: 1.5px solid rgba(255, 255, 255, 0.0); transition: var(--pg-lift); will-change: transform; }
.pg-searchbar:hover { transform: translateY(-3px); border-color: rgba(31, 78, 55, 0.55); box-shadow: 0 22px 52px rgba(0, 0, 0, 0.32); }
.pg-searchbar:focus-within { transform: translateY(-3px); border-color: var(--pg-primary); }
.pg-searchbar__btn { transition: var(--pg-lift); }
.pg-searchbar__btn:hover { box-shadow: 0 8px 18px rgba(15, 46, 32, 0.35); }

/* 히어로 태그 버튼(내 주변 · 무료 구장 …): 포레스트 그린 유리 + 떠오르기 */
.pg-intents a { background: var(--pg-forest-glass); border: 1px solid rgba(255, 255, 255, 0.18); transition: var(--pg-lift); }
.pg-intents a:hover { transform: translateY(-3px); background: rgba(18, 52, 36, 0.72); border-color: rgba(242, 183, 5, 0.85); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28); color: #fff !important; }
.pg-intents a:active { transform: translateY(-1px) scale(0.98); }

/* 페이지 안의 칩·태그 버튼도 같은 움직임 */
.pg-quickchips a, .pg-near__regions a, .pg-chips a { border: 1px solid transparent; transition: var(--pg-lift); }
.pg-quickchips a:hover, .pg-near__regions a:hover, .pg-chips a:hover { transform: translateY(-2px); border-color: var(--pg-primary); box-shadow: 0 10px 22px -8px rgba(15, 46, 32, 0.35); }
.pg-quickchips a.is-on { background: var(--pg-primary); }
.pg-btn { transition: var(--pg-lift), opacity 0.2s ease; }
.pg-btn--primary:hover, .pg-btn--outline:hover { transform: translateY(-2px); }
.pg-btn--outline:hover { border-color: var(--pg-primary); }

/* 정보 박스 3개: 각각 떠 있는 카드 + 부드러운 그림자 + 여백 1.5배 */
.pg-trust { background: transparent; box-shadow: none; gap: 12px; border-radius: 0; }
.pg-home ul.pg-trust { margin: -44px 0 0; }
.pg-trust li { background: var(--pg-surface); border-radius: 18px; box-shadow: var(--pg-shadow-soft); padding: 21px 24px; transition: var(--pg-lift); }
.pg-trust li + li { border-top: 0; }
.pg-trust li:hover { transform: translateY(-3px); box-shadow: var(--pg-shadow-soft-hover); }
.pg-trust .pg-ico { flex: none; }
@media (min-width: 768px) {
	.pg-trust { gap: 20px; }
	.pg-home ul.pg-trust { margin-top: -72px; }
	.pg-trust li { padding: 42px 48px; gap: 16px; }
	.pg-trust li + li { border-left: 0; }
}
@media (min-width: 768px) and (max-width: 1023px) {
	.pg-trust li { padding: 32px 28px; }
}

/* 계절 연출: 낙엽 (사진 필터 위, 글자·검색창 아래) */
.pg-leaves { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
@media print { .pg-leaves { display: none !important; } }

/* 움직임 줄이기 설정을 켠 사용자에게는 애니메이션 없이 */
@media (prefers-reduced-motion: reduce) {
	.pg-searchbar, .pg-intents a, .pg-quickchips a, .pg-near__regions a, .pg-chips a, .pg-btn, .pg-trust li { transition: none; }
	.pg-searchbar:hover, .pg-searchbar:focus-within, .pg-intents a:hover, .pg-quickchips a:hover, .pg-near__regions a:hover, .pg-chips a:hover, .pg-btn:hover, .pg-trust li:hover { transform: none; }
}
