/*
Theme Name: Senior Abroad
Description: 시니어 대상 유학·여행 사이트용 경량 블록 테마. 흰 바탕·청록·골드, 세리프 제목, 글자 크기 3단(20/24/28px), 하단 고정 상담 버튼.
Version: 2.0.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: senior-abroad
*/

/* ========== 기준 ==========
   - 모든 치수는 rem/em → 글자 크기 3단(125/150/175%)에 따라 레이아웃이 함께 커진다.
   - 본문 대비 15.9:1, 보조 글자 9.8:1, 청록 7.6:1 (흰 바탕). 노랑은 카카오톡 버튼에만 쓴다.
*/
:root {
	--bg: #fff;
	--sand: #f6f1e9;
	--mist: #e8f1f2;
	--ink: #1c2326;
	--ink2: #3b4549;
	--line: #d8d2c7;
	--teal: #0d5c6b;
	--deep: #0a3d47;
	--gold: #f2b140;
	--gold-text: #8a5b10;
	--on: #fff;
	--kakao: #fee500;
	--kakao-ink: #191919;
	--serif: 'Noto Serif KR', 'AppleMyungjo', 'Batang', serif;
	--sans: 'Pretendard Variable', Pretendard, 'Apple SD Gothic Neo', 'Malgun Gothic', 'Noto Sans KR', sans-serif;
	--r: 1rem;
	--r-sm: .6rem;
	--shadow: 0 .2rem 1.2rem rgba(10, 61, 71, .08);
	--gutter: 16px;
}
@media (min-width: 761px) { :root { --gutter: 28px; } }

html { font-size: 125%; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 1rem; }
html[data-text-size="l"] { font-size: 150%; }
html[data-text-size="xl"] { font-size: 175%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--sans); line-height: 1.7; word-break: keep-all; overflow-wrap: anywhere; }
body.has-stickybar { padding-bottom: 0; }
:where(h1, h2, h3, h4) { font-family: var(--serif); font-weight: 700; line-height: 1.35; margin: 0; word-break: keep-all; overflow-wrap: break-word; }
:where(p, ul, ol, dl, figure) { margin: 0; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--teal); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid #0b57d0; outline-offset: 3px; border-radius: 4px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -10rem; z-index: 100; background: var(--ink); color: var(--on); padding: .7em 1.2em; border-radius: var(--r-sm); }
.skip-link:focus { top: 1rem; }
.icon { width: 1.4em; height: 1.4em; flex: none; }
.wp-site-blocks > * + * { margin-block-start: 0; }

.wrap { width: min(100% - 2 * var(--gutter), 62rem); margin-inline: auto; }
.wrap--narrow { width: min(100% - 2 * var(--gutter), 38rem); }
.band { padding-block: 3.2rem; }
.band--first { padding-top: 2rem; }
.band--sand { background: var(--sand); }
@media (max-width: 760px) { .band { padding-block: 2.4rem; } }

/* ========== 공통 부품 ========== */
.eyebrow { color: var(--teal); font-weight: 700; font-size: .85rem; letter-spacing: .04em; margin-bottom: .5rem; }
.eyebrow--gold { color: var(--gold); }
.shead { margin-bottom: 1.8rem; max-width: 40em; }
.shead--center { text-align: center; margin-inline: auto; }
.shead__title { font-size: 1.75rem; }
.shead__lead { margin-top: .7rem; color: var(--ink2); }
.page-title { font-size: 1.9rem; margin-bottom: 1.2rem; }
.more-link { margin-top: 1.4rem; font-weight: 700; }
.more-link a { text-decoration: none; }
.more-link a:hover { text-decoration: underline; }
.count-line { color: var(--ink2); margin-bottom: 1.4rem; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: .45em; min-height: 2.8rem; padding: .55em 1.35em; border-radius: 999px; border: 2px solid transparent; font: inherit; font-weight: 700; line-height: 1.3; text-align: center; text-decoration: none; cursor: pointer; }
.btn:hover { text-decoration: none; filter: brightness(.96); }
.btn--sm { min-height: 2.3rem; padding: .3em 1em; font-size: .9rem; }
.btn--lg { min-height: 3.1rem; padding-inline: 1.6em; font-size: 1.05rem; }
.btn--block { display: flex; width: 100%; }
.btn--kakao { background: var(--kakao); color: var(--kakao-ink); }
.btn--teal { background: var(--teal); color: var(--on); }
.btn--line { background: var(--bg); color: var(--teal); border-color: var(--teal); }
.btn--white { background: var(--bg); color: var(--ink); }
.kmark { width: 1.15em; height: 1.15em; flex: none; }
.btn-row { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.btn-row--center { justify-content: center; }

.chip { display: inline-block; padding: .1em .75em; border-radius: 999px; font-family: var(--sans); font-size: .8rem; font-weight: 700; line-height: 1.6; border: 2px solid var(--teal); color: var(--teal); background: var(--bg); vertical-align: middle; white-space: nowrap; }
.chip--closing { border-color: var(--gold-text); color: var(--gold-text); }
.chip--closed { border-color: var(--ink2); color: var(--ink2); }
.chip--preparing { border-color: var(--line); color: var(--ink2); }

.facts { display: grid; gap: .35rem; }
.facts > div { display: grid; grid-template-columns: 5.2em 1fr; gap: .6rem; padding-block: .35rem; border-bottom: 1px solid var(--line); }
.facts > div:last-child { border-bottom: 0; }
.facts dt { color: var(--ink2); font-weight: 600; }
.facts dd { margin: 0; }
.facts small { color: var(--ink2); font-size: .85rem; }

.checks { list-style: none; padding: 0; display: grid; gap: .65rem; }
.checks li { display: flex; gap: .6rem; align-items: flex-start; }
.checks__mark { flex: none; display: inline-grid; place-items: center; width: 1.5em; height: 1.5em; border-radius: 50%; background: var(--teal); color: var(--on); font-size: .8rem; font-weight: 700; margin-top: .2em; }
.checks--minus .checks__mark { background: var(--line); color: var(--ink); }

.boxed { padding: 1.2rem 1.4rem; border-radius: var(--r); background: var(--sand); }
.boxed--mist { background: var(--mist); }
.hint { color: var(--ink2); font-size: .85rem; margin-top: .8rem; }

/* ========== 상단 띠 · 머리글 ========== */
.topbar { background: var(--deep); color: var(--on); font-size: .9rem; }
.topbar__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem 1rem; padding-block: .35rem; }
.topbar__phone { color: var(--on); font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: .35em; }
.topbar__phone .icon { width: 1.1em; height: 1.1em; }
.topbar__hours { color: #cfe2e5; margin-left: .3em; }
.textsize { display: flex; align-items: center; gap: .3rem; }
.textsize__label { color: #cfe2e5; margin-right: .2rem; }
.textsize__btn { font: inherit; font-weight: 600; color: var(--on); background: transparent; border: 2px solid rgba(255, 255, 255, .45); border-radius: 999px; min-height: 2.4rem; padding: .1em .85em; cursor: pointer; }
.textsize__btn[aria-pressed="true"] { background: var(--on); color: var(--deep); border-color: var(--on); font-weight: 800; }
.textsize__btn[aria-pressed="true"]::before { content: '✓ '; }
.g { font-family: var(--serif); font-weight: 700; }
.g--m { font-size: .85em; } .g--l { font-size: 1em; } .g--xl { font-size: 1.2em; }
@media (max-width: 760px) {
	.topbar__in { justify-content: center; }
	.topbar__hours { display: none; }
	.textsize { width: 100%; }
	.textsize__label { display: none; }
	.textsize__btn { flex: 1; padding-inline: .3em; }
}

.masthead { background: var(--bg); border-bottom: 1px solid var(--line); }
.masthead__in { display: flex; align-items: center; gap: 1rem 1.6rem; padding-block: .8rem; flex-wrap: wrap; }
.logo { display: inline-flex; align-items: center; gap: .55rem; color: var(--ink); text-decoration: none; margin-right: auto; }
.logo__mark { width: 2.1rem; height: 2.1rem; border-radius: 50%; background: radial-gradient(circle at 50% 62%, var(--gold) 0 34%, transparent 35%), var(--teal); flex: none; }
.logo__text { display: grid; line-height: 1.15; }
.logo__name { font-family: var(--serif); font-weight: 700; font-size: 1.3rem; white-space: nowrap; }
.logo__sub { font-size: .75rem; color: var(--ink2); font-weight: 600; white-space: nowrap; }
.nav ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .2rem 1.3rem; }
.nav a { color: var(--ink); font-weight: 600; text-decoration: none; padding-block: .3em; border-bottom: 3px solid transparent; }
.nav a:hover, .nav a[aria-current="page"] { border-bottom-color: var(--gold); }
.menu-btn { display: none; font: inherit; font-weight: 700; color: var(--ink); background: var(--bg); border: 2px solid var(--ink); border-radius: 999px; min-height: 2.6rem; padding: .1em 1em; cursor: pointer; }
@media (max-width: 1000px) {
	.masthead__kakao { display: none; }
}
@media (max-width: 860px) {
	.js .menu-btn { display: inline-flex; align-items: center; }
	.js .nav { display: none; width: 100%; }
	.js .menu-btn[aria-expanded="true"] + .nav { display: block; }
	.nav ul { flex-direction: column; gap: 0; }
	.nav li { border-top: 1px solid var(--line); }
	.nav a { display: block; padding: .7em 0; border: 0; }
}

/* ========== 홈: 첫 화면 ========== */
.hero { position: relative; color: var(--on); background: var(--deep); overflow: hidden; }
.hero__photo { position: absolute; inset: 0; }
.hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.hero__shade { position: relative; background: linear-gradient(180deg, rgba(6, 30, 36, .62) 0%, rgba(6, 30, 36, .5) 45%, rgba(6, 30, 36, .78) 100%); min-height: min(78vh, 46rem); display: grid; align-items: center; }
.hero__in { text-align: center; padding-block: 3.5rem; max-width: 46rem; }
.hero__pill { display: inline-flex; align-items: center; gap: .5em; background: rgba(255, 255, 255, .96); color: var(--ink); border-radius: 999px; padding: .3em 1em; font-size: .85rem; font-weight: 700; text-decoration: none; margin-bottom: 1.2rem; }
.hero__dot { width: .6em; height: .6em; border-radius: 50%; background: #1e8e3e; box-shadow: 0 0 0 .2em rgba(30, 142, 62, .2); }
.hero__eyebrow { color: var(--gold); font-weight: 700; margin-bottom: .6rem; }
.hero__title { font-size: 2.6rem; line-height: 1.3; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
.hero__lead { margin: 1.1rem auto 0; max-width: 34em; font-size: 1.05rem; }
.hero__hint { margin-top: 1rem; font-size: .85rem; color: #e6f0f1; }
.hero--plain .hero__shade { background: var(--deep); }
@media (max-width: 760px) {
	.hero__shade { min-height: 0; }
	.hero__in { padding-block: 2.4rem 2.6rem; }
	.hero__title { font-size: 1.75rem; }
	.hero__lead { font-size: 1rem; }
	.hero .btn-row { flex-direction: column; align-items: stretch; }
}

/* 신뢰 띠 */
.trust { border-bottom: 1px solid var(--line); background: var(--bg); }
.trust__list { list-style: none; padding: 1.4rem 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5em), 1fr)); gap: 1.1rem 1.6rem; }
.trust__list li { display: flex; gap: .7rem; align-items: flex-start; }
.trust__list .icon { color: var(--teal); width: 1.7em; height: 1.7em; margin-top: .1em; }
.trust__title { font-weight: 700; }
.trust__desc { color: var(--ink2); font-size: .85rem; line-height: 1.55; }

/* 가장 가까운 출발 */
.feature { background: var(--bg); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); overflow: hidden; }
.feature__head { padding: 1.4rem 1.6rem .4rem; }
.feature__kicker { color: var(--ink2); font-weight: 700; font-size: .9rem; display: flex; align-items: center; gap: .6em; flex-wrap: wrap; }
.feature__title { font-size: 1.6rem; margin-top: .3rem; }
.feature__title a { color: var(--ink); text-decoration: none; }
.feature__title a:hover { text-decoration: underline; }
.feature__intro { color: var(--ink2); margin-top: .3rem; }
.feature__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9em), 1fr)); gap: 0; margin: 1rem 1.6rem 0; border-block: 1px solid var(--line); }
.feature__stats > div { padding: .8rem .9rem .8rem 0; }
.feature__stats > div + div { border-left: 1px solid var(--line); padding-left: .9rem; }
.feature__stats dt { color: var(--ink2); font-size: .8rem; font-weight: 700; letter-spacing: .03em; }
.feature__stats dd { margin: .15rem 0 0; font-weight: 700; font-size: 1.05rem; }
@media (max-width: 760px) { .feature__stats dd { font-size: .95rem; } }
.feature__stats small { display: block; color: var(--ink2); font-size: .8rem; font-weight: 500; }
.feature__actions { display: flex; flex-wrap: wrap; gap: .7rem; padding: 1.1rem 1.6rem 1.4rem; }
@media (max-width: 760px) {
	.feature__head, .feature__actions { padding-inline: 1.1rem; }
	.feature__stats { margin-inline: 1.1rem; grid-template-columns: 1fr 1fr; }
	.feature__stats > div:nth-child(odd) { border-left: 0; padding-left: 0; }
	.feature__stats > div:nth-child(n+3) { border-top: 1px solid var(--line); }
	.feature__actions .btn { flex: 1 1 100%; }
}

/* 사진 보기 (자동 넘김 없음) */
.viewer__main img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
@media (max-width: 760px) { .viewer__main img { aspect-ratio: 4 / 3; } }
.viewer--detail .viewer__main img { aspect-ratio: 4 / 3; border-radius: var(--r); }
.viewer__thumbs { list-style: none; padding: .7rem; display: flex; gap: .5rem; flex-wrap: wrap; }
.viewer--feature .viewer__thumbs { position: relative; margin-top: -4.3rem; justify-content: center; }
.viewer--detail .viewer__thumbs { padding: .7rem 0 0; }
.viewer__thumb { padding: 0; border: 3px solid var(--bg); border-radius: .5rem; overflow: hidden; cursor: pointer; background: var(--bg); width: 3.6rem; height: 3.6rem; box-shadow: 0 1px 6px rgba(0, 0, 0, .25); }
.viewer__thumb[aria-pressed="true"] { border-color: var(--gold); outline: 2px solid var(--deep); }
.viewer__thumb img { width: 100%; height: 100%; object-fit: cover; }

/* 나라 카드 */
.dests { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19em), 1fr)); gap: 1.4rem; }
.dest { background: var(--bg); border-radius: var(--r); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.dest__photo { position: relative; display: block; color: var(--on); }
.dest__photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.dest__over { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; background: linear-gradient(180deg, rgba(6, 30, 36, .25), rgba(6, 30, 36, .6)); }
.dest__name { font-family: var(--serif); font-weight: 700; font-size: 2.3rem; text-shadow: 0 2px 12px rgba(0, 0, 0, .4); }
.dest__count { font-weight: 700; letter-spacing: .05em; }
.dest__body { padding: 1.2rem 1.4rem 1.4rem; display: flex; flex-direction: column; gap: .8rem; flex: 1; }
.dest__title { font-size: 1.3rem; }
.dest__title a { color: var(--ink); text-decoration: none; }
.dest__intro { color: var(--ink2); }
.dest__list { list-style: none; padding: 0; border-top: 1px solid var(--line); }
.dest__list a { display: grid; gap: .1rem; padding: .7rem 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.dest__list a:hover .dest__pname { text-decoration: underline; }
.dest__pname { font-weight: 700; color: var(--teal); }
.dest__pmeta { color: var(--ink2); font-size: .9rem; }
.dest__rest { color: var(--ink2); font-size: .9rem; }
.dest .btn { margin-top: auto; }

/* 한눈에 비교 */
.compare-wrap { border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--bg); }
.compare { width: 100%; border-collapse: collapse; }
.compare th, .compare td { text-align: left; padding: .8rem .9rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.compare thead th { background: var(--deep); color: var(--on); font-size: .85rem; letter-spacing: .03em; }
.compare__group th { background: var(--mist); font-family: var(--serif); font-size: 1.05rem; color: var(--deep); }
.compare tbody th[scope="row"] a { font-weight: 700; color: var(--ink); }
.compare tbody th[scope="row"] .chip { margin-left: .2rem; }
.compare td small { display: block; color: var(--ink2); font-size: .8rem; font-weight: 500; }
.compare td strong { font-weight: 700; }
.nowrap { white-space: nowrap; }
.compare__go { text-align: right; white-space: nowrap; }
@media (max-width: 900px) {
	.compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.compare, .compare tbody, .compare tr, .compare th, .compare td { display: block; width: 100%; }
	.compare tbody tr:not(.compare__group) { padding: .9rem 1rem; border-bottom: 1px solid var(--line); }
	.compare tbody th[scope="row"], .compare td { border: 0; padding: .15rem 0; }
	.compare tbody th[scope="row"] { font-size: 1.1rem; padding-bottom: .4rem; }
	.compare td[data-label] { display: grid; grid-template-columns: 5.5em 1fr; gap: .6rem; }
	.compare td[data-label]::before { content: attr(data-label); color: var(--ink2); font-weight: 600; }
	.compare__go { text-align: left; padding-top: .6rem !important; }
	.compare__group th { padding: .6rem 1rem; }
}

/* 기본 포함 */
.incs { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12em), 1fr)); gap: 1.4rem; }
.inc { text-align: center; }
.inc__photo img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--r); }
.inc__title { font-family: var(--sans); font-weight: 800; font-size: 1.05rem; margin: .9rem 0 .3rem; }
.inc p { color: var(--ink2); font-size: .95rem; }
@media (max-width: 760px) {
	.incs { grid-template-columns: 1fr 1fr; gap: 1.2rem .8rem; }
	.inc__title { font-size: .95rem; }
	.inc p { font-size: .85rem; }
}

/* 자녀분께 */
.family { background: var(--deep); color: var(--on); padding-block: 3.4rem; }
.family__in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 2.4rem; align-items: center; }
.family__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r); }
.family__title { font-size: 1.75rem; }
.family__lead { margin-top: .8rem; color: #dbe9eb; }
.family__list { list-style: none; padding: 0; margin-top: 1.4rem; display: grid; gap: 1rem; }
.family__list li { display: flex; gap: .8rem; align-items: flex-start; }
.family__list .icon { color: var(--gold); width: 1.8em; height: 1.8em; }
.family__list h3 { font-family: var(--sans); font-size: 1.05rem; font-weight: 800; }
.family__list p { color: #dbe9eb; font-size: .95rem; }
.family .share__msg { color: var(--on); }
@media (max-width: 760px) {
	.family__in { grid-template-columns: 1fr; }
	.family__photo img { aspect-ratio: 16 / 10; }
}

/* 함께하는 사람들 */
.people { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15em), 1fr)); gap: 1.4rem; }
.person { text-align: center; padding: 1.6rem 1.3rem; border: 1px solid var(--line); border-radius: var(--r); }
.person__avatar { display: inline-grid; place-items: center; width: 4.2rem; height: 4.2rem; border-radius: 50%; background: var(--mist); color: var(--teal); font-family: var(--serif); font-size: 1.6rem; font-weight: 700; border: 3px solid var(--gold); }
.person__name { font-size: 1.25rem; margin-top: .8rem; }
.person__role { color: var(--teal); font-weight: 700; font-size: .9rem; }
.person__quote { margin-top: .7rem; color: var(--ink2); }

/* 진행 순서 */
.steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12em), 1fr)); gap: 1.4rem; counter-reset: s; }
.steps li { position: relative; overflow: hidden; background: var(--bg); border-radius: var(--r); padding: 1.6rem 1.4rem 1.4rem; }
.steps li::before { content: ''; position: absolute; inset: 0 0 auto; height: 5px; background: var(--teal); }
.steps__num { display: block; font-family: var(--serif); font-size: 2rem; font-weight: 700; color: var(--gold-text); line-height: 1; margin-bottom: .6rem; }
.steps h3 { font-family: var(--sans); font-weight: 800; font-size: 1.1rem; margin-bottom: .3rem; }
.steps p { color: var(--ink2); }

/* 설명회·안내책자 */
.briefing { display: grid; grid-template-columns: auto 1fr auto; gap: 1.2rem 1.6rem; align-items: center; padding: 1.8rem; border-radius: var(--r); background: var(--mist); }
.briefing__icon .icon { width: 3rem; height: 3rem; color: var(--teal); }
.briefing__title { font-size: 1.35rem; margin-bottom: .3rem; }
.briefing__actions { display: flex; flex-direction: column; gap: .6rem; }
@media (max-width: 860px) {
	.briefing { grid-template-columns: 1fr; text-align: left; }
	.briefing__icon { display: none; }
}

/* 자주 묻는 질문 */
.faq { display: grid; gap: .7rem; }
.faq__item { background: var(--bg); border: 1px solid var(--line); border-radius: var(--r-sm); }
.faq__item summary { cursor: pointer; padding: 1rem 3rem 1rem 1.2rem; font-weight: 700; min-height: 2.8rem; list-style: none; position: relative; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: '+'; position: absolute; right: 1.1rem; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: var(--teal); font-weight: 400; }
.faq__item[open] summary::after { content: '−'; }
.faq__a { padding: 0 1.2rem 1.1rem; color: var(--ink2); }
.faq__a p + p { margin-top: .6rem; }
#faq .more-link { text-align: center; }

/* 마무리 띠 */
.closing { background: var(--teal); color: var(--on); text-align: center; padding-block: 3rem; }
.closing__title { font-size: 1.75rem; margin-bottom: .5rem; }
@media (max-width: 760px) { .closing .btn-row { flex-direction: column; align-items: stretch; } }

/* 바닥글 */
.site-footer { background: #142024; color: #d5dfe1; padding-block: 2.6rem 2rem; font-size: .9rem; }
.site-footer a { color: var(--on); }
.site-footer__top { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 1.6rem; padding-bottom: 1.6rem; border-bottom: 1px solid rgba(255, 255, 255, .15); }
.site-footer__name { font-family: var(--serif); font-size: 1.3rem; font-weight: 700; color: var(--on); }
.site-footer__contact { margin-top: .5rem; color: var(--on); font-weight: 700; }
.site-footer__h { color: var(--gold); font-weight: 700; margin-bottom: .4rem; }
.site-footer ul { list-style: none; padding: 0; display: grid; gap: .3rem; }
.site-footer__biz { margin-top: 1.4rem; line-height: 1.8; }
.site-footer__fine { margin-top: .8rem; color: #b9c8cb; font-size: .85rem; }
@media (max-width: 760px) { .site-footer__top { grid-template-columns: 1fr 1fr; } .site-footer__brand { grid-column: 1 / -1; } }

/* 휴대폰 하단 고정 상담 바 */
.stickybar { display: none; }
@media (max-width: 760px) {
	body.has-stickybar { padding-bottom: calc(3.4rem + env(safe-area-inset-bottom)); }
	html { scroll-padding-bottom: 4rem; }
	.stickybar { display: grid; grid-template-columns: 2fr 3fr; position: fixed; inset: auto 0 0; z-index: 50; box-shadow: 0 -2px 12px rgba(0, 0, 0, .15); padding-bottom: env(safe-area-inset-bottom); background: var(--bg); }
	.stickybar a { display: flex; align-items: center; justify-content: center; gap: .4em; min-height: 3.4rem; font-weight: 800; text-decoration: none; padding-inline: .4rem; text-align: center; line-height: 1.25; }
	.stickybar__tel { background: var(--teal); color: var(--on); }
	.stickybar__kakao { background: var(--kakao); color: var(--kakao-ink); }
	.stickybar .icon, .stickybar .kmark { width: 1.2em; height: 1.2em; }
}

/* ========== 나라 페이지 ========== */
.cbanner { position: relative; color: var(--on); background: var(--deep); }
.cbanner__photo { position: absolute; inset: 0; }
.cbanner__photo img { width: 100%; height: 100%; object-fit: cover; }
.cbanner__shade { position: relative; background: linear-gradient(180deg, rgba(6, 30, 36, .45), rgba(6, 30, 36, .75)); padding-block: 2rem 2.6rem; min-height: 18rem; display: flex; align-items: flex-end; }
.cbanner__shade .wrap { display: grid; gap: .5rem; }
.cbanner__title { font-size: 3rem; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
.cbanner__lead { font-size: 1.05rem; max-width: 34em; }
.cbanner .crumbs a, .cbanner .crumbs span, .cbanner .crumbs li::after { color: var(--on); }
.others { margin-top: 2.6rem; }
.others__title { font-size: 1.3rem; margin-bottom: .8rem; }
.others__list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1rem; }

/* 상품 카드 */
.pcards { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17em), 1fr)); gap: 1.4rem; }
.pcard { height: 100%; display: flex; flex-direction: column; background: var(--bg); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; box-shadow: var(--shadow); }
.pcard__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.pcard__body { padding: 1.1rem 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.pcard__body > .chip { align-self: flex-start; }
.pcard__title { font-size: 1.3rem; }
.pcard__title a { color: var(--ink); text-decoration: none; }
.pcard__title a:hover { text-decoration: underline; }
.pcard__intro { color: var(--ink2); }
.pcard__actions { display: grid; gap: .55rem; margin-top: auto; padding-top: .4rem; }

/* ========== 상품 상세 ========== */
.crumbs ol { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem; font-size: .9rem; }
.crumbs li:not(:last-child)::after { content: '›'; margin-left: .4rem; color: var(--ink2); }
.crumbs a { color: var(--ink2); }
.program { padding-top: 1.4rem; }
.program__head { margin: 1.2rem 0 1.6rem; max-width: 44rem; }
.program__title { font-size: 2.2rem; }
.program__lead { margin-top: .6rem; font-size: 1.1rem; color: var(--ink2); }
.program__chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.program__chips li { background: var(--mist); color: var(--deep); font-weight: 700; border-radius: 999px; padding: .15em .9em; font-size: .9rem; }
.program__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 21rem); grid-template-areas: "main aside"; gap: 2.4rem; align-items: start; padding-bottom: 3rem; }
.program__main { grid-area: main; }
.program__aside { grid-area: aside; position: sticky; top: 1rem; }
@media (max-width: 960px) {
	.program__grid { grid-template-columns: 1fr; grid-template-areas: "aside" "main"; gap: 1.6rem; }
	.program__aside { position: static; }
	.program__title { font-size: 1.7rem; }
}
.summary { border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); padding: 1.3rem; background: var(--bg); }
.summary__top { padding-bottom: .8rem; margin-bottom: .6rem; border-bottom: 1px solid var(--line); }
.summary__price { font-family: var(--serif); font-weight: 700; font-size: 1.6rem; margin-top: .5rem; color: var(--deep); }
.summary__note { font-weight: 700; }
.summary__total { color: var(--ink2); font-size: .8rem; margin-top: .2rem; }
.facts--summary > div { grid-template-columns: 6.5em 1fr; }
.summary__actions { display: grid; gap: .55rem; margin-top: 1rem; }
.dsec { padding-top: 2.4rem; }
.dsec__title { font-size: 1.45rem; margin-bottom: 1rem; }
.daily { list-style: none; padding: 0; border-left: 3px solid var(--teal); margin-left: .4rem; }
.daily li { position: relative; padding: 0 0 1rem 1.3rem; display: grid; gap: .1rem; }
.daily li::before { content: ''; position: absolute; left: -.55rem; top: .45em; width: .8rem; height: .8rem; border-radius: 50%; background: var(--bg); border: 3px solid var(--teal); }
.daily__time { font-weight: 800; color: var(--teal); }
.weekly { list-style: none; padding: 0; display: grid; gap: .6rem; }
.weekly li { display: grid; grid-template-columns: 5.5em 1fr; gap: .8rem; padding: .8rem 1rem; background: var(--sand); border-radius: var(--r-sm); }
.weekly__when { font-weight: 800; color: var(--deep); }
.weekly li:has(> .weekly__what:only-child) { grid-template-columns: 1fr; }
.incl { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14em), 1fr)); gap: 1rem; }
.incl__box { padding: 1.2rem; border-radius: var(--r); border: 1px solid var(--line); }
.incl__box--in { background: var(--mist); border-color: transparent; }
.incl h3 { font-family: var(--sans); font-weight: 800; font-size: 1.05rem; margin-bottom: .7rem; }
.dep { width: 100%; border-collapse: collapse; }
.dep th, .dep td { text-align: left; padding: .75rem .6rem; border-bottom: 1px solid var(--line); }
.dep thead th { color: var(--ink2); font-size: .85rem; border-bottom: 2px solid var(--ink); }
.dep__go { text-align: right; }
@media (max-width: 760px) {
	.dep thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.dep, .dep tbody, .dep tr, .dep td { display: block; width: 100%; }
	.dep tr { padding: .8rem 0; border-bottom: 1px solid var(--line); }
	.dep td { border: 0; padding: .1rem 0; display: grid; grid-template-columns: 5.5em 1fr; gap: .6rem; }
	.dep td::before { content: attr(data-label); color: var(--ink2); font-weight: 600; }
	.dep__go { display: block !important; padding-top: .5rem !important; text-align: left; }
}
.share { padding: 1.3rem 1.4rem; border-radius: var(--r); border: 2px dashed var(--line); display: grid; gap: .8rem; justify-items: start; }
.share__msg { font-weight: 700; color: var(--teal); }
.share__url { font: inherit; width: 100%; margin-top: .4rem; padding: .4em .6em; }

/* ========== 일반 페이지(회사 소개·FAQ·공지) ========== */
.prose { max-width: 38rem; }
.prose > * + * { margin-top: 1.1rem; }
.prose h2 { font-size: 1.4rem; margin-top: 2.2rem; }
.prose .lead { font-size: 1.1rem; }
.prose ul { padding-left: 1.3em; }
.prose li + li { margin-top: .5rem; }
.legal { width: 100%; border-collapse: collapse; }
.legal th, .legal td { text-align: left; padding: .6rem .4rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.legal th { width: 40%; color: var(--ink2); font-weight: 600; }
.meta-date { color: var(--ink2); }
.post-list__title { font-size: 1.3rem; }
.wp-block-post-template { list-style: none; padding: 0; display: grid; gap: 1.6rem; }

/* 사이트 편집기 안에서 서버 렌더 미리보기가 겹치지 않게 */
.editor-styles-wrapper .stickybar { position: static; }

/* 휴대폰 + 글자 '아주 크게': 본문은 커지되, 맨 위 조작 띠·로고·하단 버튼은 한 줄을 지키도록 크기 상한을 둔다. */
@media (max-width: 760px) {
	.topbar { font-size: clamp(15px, .9rem, 18px); }
	.textsize { gap: 6px; }
	.textsize__btn { font-size: inherit; min-height: 44px; padding-inline: 4px; white-space: nowrap; }
	.textsize__btn[aria-pressed="true"]::before { content: none; }
	.masthead__in { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
	.nav { grid-column: 1 / -1; }
	.logo__name { font-size: clamp(20px, 1.15rem, 26px); }
	.logo__sub { font-size: clamp(12px, .7rem, 15px); }
	.logo__mark { width: clamp(32px, 1.8rem, 40px); height: clamp(32px, 1.8rem, 40px); }
	.menu-btn { font-size: clamp(16px, 1rem, 20px); min-height: 44px; }
	.stickybar { font-size: clamp(16px, 1rem, 20px); }
	.stickybar a { min-height: 58px; }
	body.has-stickybar { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
}
@media (max-width: 760px) {
	.hero__title { font-size: clamp(30px, 1.75rem, 40px); }
	.program__title, .cbanner__title { font-size: clamp(28px, 1.7rem, 38px); }
}
@media (max-width: 900px) { .compare .nowrap { white-space: normal; } }
