/* ==========================================================================
   위픽스콜레 × 스테이폴리오 스타일
   근거: stayfolio-responsive-design 스킬 — 데스크톱 1363px(DPR 1) 실측값
   - header 76px / 가용폭 1348px, 좌우 34px / 섹션 제목 28px·600·36px·-0.56px
   - 카드 사진 3:2, 간격 24px, 카드 제목 16~20px·600 / 메타 13px #6b6b6e
   - 홈 hero 1280×500(2.56:1) 둥근 사진 + 가운데 흰 제목
   - 상세 상단 사진 1348×650(2.07:1), 제목 24px·600, 본문 16/26 #595959
   - 매거진 2열 큰 사진 + 가운데 흰 패널(#호수 27px #c0c0c0 / 제목 21/31.5 / read more 1.3px)
   - 푸터 #f2f2f2, 12px 링크 #767676, 저작권 #949494
   모바일(390)·태블릿(768) 값은 원본 미확인 → 구현 제안값입니다.
   ========================================================================== */

.sf {
  --sf-ink: #171719;
  --sf-text: #333333;
  --sf-body: #595959;
  --sf-muted: #6b6b6e;
  --sf-soft: #969699;
  --sf-line: #e6e6e6;
  --sf-bg: #ffffff;
  --sf-gray: #f2f2f2;
  --sf-gray2: #f7f7f7;
  --sf-btn: #1a1a1a;
  --sf-accent: #0199f8;
  --sf-side: 34px;
  --sf-max: 1348px;
  --sf-head: 76px;
  --sf-r: 8px;
  --sf-font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
  background: var(--sf-bg);
  color: var(--sf-text);
  font-family: var(--sf-font);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  margin: 0;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.sf *, .sf *::before, .sf *::after { box-sizing: border-box; }
.sf img { max-width: 100%; height: auto; }
.sf a { color: inherit; }
.sf button { font-family: inherit; }
.sf :focus-visible { outline: 2px solid var(--sf-ink); outline-offset: 2px; }
.sf .sf-sr, .sf .sf-hp { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; border: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap; }
.sf .sf-skip{ position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--sf-btn); color: #fff !important; padding: 10px 14px; border-radius: 6px; text-decoration: none; }
.sf .sf-skip:focus{ top: 12px; }
.sf .sf-wrap{ width: 100%; max-width: var(--sf-max); margin: 0 auto; padding-left: var(--sf-side); padding-right: var(--sf-side); }
.sf .sf-narrow{ max-width: 932px; }
.sf .sf-main{ display: block; min-height: 50vh; }
.sf [hidden] { display: none !important; }

/* ── 헤더 (76px, 흰 바탕) */
.sf .sf-header{ position: sticky; top: 0; z-index: 200; height: var(--sf-head); background: #fff; border-bottom: 1px solid transparent; transition: border-color .2s; }
.sf .sf-header.is-scrolled{ border-bottom-color: var(--sf-line); }
.admin-bar .sf-header { top: 32px; }
.sf .sf-header__inner{ height: 100%; max-width: var(--sf-max); margin: 0 auto; padding: 0 20px 0 var(--sf-side); display: flex; align-items: center; gap: 28px; }
.sf .sf-logo{ font-size: 17px; font-weight: 800; letter-spacing: .08em; color: var(--sf-ink) !important; text-decoration: none; white-space: nowrap; }
.sf .sf-find{ display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px 0 12px; border: 0; background: transparent; color: #737373; font-size: 15px; font-weight: 500; line-height: 26px; cursor: pointer; border-radius: 100px; }
.sf .sf-find:hover{ background: var(--sf-gray2); }
.sf .sf-icon-btn, .sf .sf-arrow, .sf .sf-hero__nav, .sf .sf-gallery__nav, .sf .sf-hero__pause{ padding: 0; font-size: 14px; line-height: 1; box-shadow: none; min-width: 0; }
.sf .sf-find svg, .sf .sf-icon-btn svg, .sf .sf-arrow svg, .sf .sf-hero__nav svg, .sf .sf-gallery__nav svg, .sf .sf-hero__pause svg{ flex: none; max-width: none; }
.sf .sf-find svg, .sf .sf-icon-btn svg, .sf .sf-arrow svg, .sf .sf-hero__nav svg, .sf .sf-gallery__nav svg, .sf .sf-hero__pause svg{ width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.sf .sf-nav{ margin-left: auto; display: flex; align-items: center; gap: 20px; height: 100%; }
.sf .sf-nav__item{ display: inline-flex; align-items: center; height: 26px; padding: 0; border: 0; background: none; font-size: 16px; font-weight: 600; line-height: 24px; color: #1a1a1a !important; text-decoration: none; cursor: pointer; position: relative; }
.sf .sf-nav__item[aria-current="page"]::after{ content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: #1a1a1a; }
.sf .sf-header__side{ display: flex; align-items: center; gap: 6px; }
.sf .sf-header__cta{ margin-left: 8px; }
.sf .sf-icon-btn{ display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; background: none; color: var(--sf-ink); cursor: pointer; border-radius: 50%; }
.sf .sf-icon-btn:hover{ background: var(--sf-gray2); }
.sf .sf-only-m{ display: none; }

/* ── 버튼 */
.sf.sf .sf-btn{ display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 44px; padding: 0 20px; border-radius: 4px; border: 1px solid transparent; font-size: 14px; font-weight: 600; letter-spacing: .01em; line-height: 1; text-decoration: none !important; cursor: pointer; transition: background .15s, color .15s, border-color .15s; white-space: nowrap; }
.sf.sf .sf-btn--dark{ background: var(--sf-btn); color: #fff !important; }
.sf.sf .sf-btn--dark:hover{ background: #000; }
.sf.sf .sf-btn--line{ background: #fff; color: var(--sf-text) !important; border-color: #d4d4d4; }
.sf.sf .sf-btn--line:hover{ border-color: var(--sf-ink); color: var(--sf-ink) !important; }
.sf.sf .sf-btn--sm{ height: 36px; padding: 0 14px; font-size: 13px; }
.sf.sf .sf-btn--lg{ height: 52px; font-size: 15px; }
.sf.sf .sf-btn--block{ width: 100%; }
.sf .sf-chip-btn{ display: inline-flex; align-items: center; height: 26px; padding: 0 8px; border: 1px solid #d9d9d9; border-radius: 4px; background: transparent; color: #595959 !important; font-size: 12px; line-height: 16px; letter-spacing: .01em; text-decoration: none; cursor: pointer; }
.sf .sf-chip-btn:hover{ border-color: #999; }
.sf .sf-link{ border: 0; background: none; padding: 0; color: var(--sf-ink); text-decoration: underline; cursor: pointer; font: inherit; }
.sf .sf-pill{ display: inline-flex; align-items: center; height: 30px; padding: 0 14px; border-radius: 100px; border: 1px solid transparent; background: transparent; color: var(--sf-text) !important; font-size: 14px; font-weight: 600; line-height: 20px; text-decoration: none; cursor: pointer; white-space: nowrap; }
.sf .sf-pill:hover{ background: var(--sf-gray2); }
.sf .sf-pill.is-on, .sf .sf-pill[aria-selected="true"]{ background: #333; color: #fff !important; }
.sf .sf-pill--sm{ height: 28px; font-size: 13px; font-weight: 500; border-color: var(--sf-line); }
.sf .sf-pills{ display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 24px; }

/* ── 제목·섹션 */
.sf .sf-h1{ margin: 0; font-size: 28px; font-weight: 600; line-height: 38px; letter-spacing: -.28px; color: var(--sf-ink); }
.sf .sf-h2{ margin: 0; font-size: 28px; font-weight: 600; line-height: 36px; letter-spacing: -.56px; color: var(--sf-ink); }
.sf .sf-h3{ margin: 0 0 16px; font-size: 20px; font-weight: 600; line-height: 28px; letter-spacing: -.2px; color: var(--sf-ink); }
.sf .sf-eyebrow{ margin: 0 0 10px; font-size: 13px; font-weight: 600; letter-spacing: .18em; color: var(--sf-soft); }
.sf .sf-eyebrow a{ text-decoration: none; }
.sf .sf-count{ color: var(--sf-soft); font-weight: 500; margin-left: 4px; }
.sf .sf-section{ padding: 64px 0 0; }
.sf .sf-section__head{ display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.sf .sf-section__desc{ margin: 4px 0 0; font-size: 16px; line-height: 24px; color: #767676; }
.sf .sf-section__tools{ display: flex; align-items: center; gap: 16px; flex: none; }
.sf .sf-more{ font-size: 14px; font-weight: 600; color: var(--sf-text) !important; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.sf .sf-arrows{ display: flex; gap: 6px; }
.sf .sf-arrow{ width: 36px; height: 36px; border-radius: 50%; border: 1px solid #dcdcdc; background: #fff; color: var(--sf-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.sf .sf-arrow:hover{ border-color: var(--sf-ink); }
.sf .sf-arrow:disabled{ opacity: .35; cursor: default; }
.sf .sf-pagehead{ padding-top: 40px; padding-bottom: 28px; }
.sf .sf-pagehead__desc{ margin: 8px 0 0; font-size: 16px; line-height: 26px; color: #767676; }
.sf .sf-pagehead__desc--wide{ margin: -16px auto 0; padding-bottom: 28px; }

/* ── 홈 hero (1280×500 둥근 사진) */
.sf .sf-hero{ padding: 11px var(--sf-side) 0; max-width: var(--sf-max); margin: 0 auto; }
.sf .sf-hero__frame{ position: relative; aspect-ratio: 1280 / 500; border-radius: 12px; overflow: hidden; background: #d9d9d9; }
.sf .sf-hero__slide{ position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility .6s; }
.sf .sf-hero__slide.is-on{ opacity: 1; visibility: visible; }
.sf .sf-hero__slide img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.sf .sf-hero__slide::after{ content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 55% at 50% 50%, rgba(0,0,0,.34), rgba(0,0,0,.08) 70%, rgba(0,0,0,0)); pointer-events: none; }
.sf .sf-hero__copy{ position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 0 12%; text-align: center; color: #fff !important; text-decoration: none; }
.sf .sf-hero__title{ font-size: 44px; font-weight: 700; line-height: 1.3; letter-spacing: -.02em; text-shadow: 0 1px 12px rgba(0,0,0,.25); max-width: 18em; }
.sf .sf-hero__sub{ font-size: 16px; font-weight: 500; line-height: 24px; opacity: .95; text-shadow: 0 1px 8px rgba(0,0,0,.3); }
.sf .sf-hero__nav{ position: absolute; top: 50%; z-index: 3; width: 44px; height: 44px; margin-top: -22px; border: 0; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--sf-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; transition: opacity .2s; }
.sf .sf-hero__frame:hover .sf-hero__nav, .sf .sf-hero__nav:focus-visible{ opacity: 1; }
.sf .sf-hero__nav--prev{ left: 16px; } .sf .sf-hero__nav--next{ right: 16px; }
.sf .sf-hero__bar{ position: absolute; left: 50%; bottom: 24px; z-index: 3; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; color: #fff; font-size: 13px; }
.sf .sf-hero__count{ white-space: nowrap; }
.sf .sf-hero__count b{ font-weight: 700; }
.sf .sf-hero__track{ position: relative; width: 120px; height: 2px; background: rgba(255,255,255,.35); overflow: hidden; }
.sf .sf-hero__fill{ position: absolute; left: 0; top: 0; bottom: 0; background: #fff; transition: transform .6s ease; }
.sf .sf-hero__pause{ width: 28px; height: 28px; border: 0; background: transparent; color: #fff; padding: 0; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.sf .sf-hero__pause svg{ width: 16px; height: 16px; }
.sf .sf-hero__pause .sf-i-play{ display: none; fill: currentColor; stroke: none; }
.sf .sf-hero__pause[aria-pressed="true"] .sf-i-play{ display: block; }
.sf .sf-hero__pause[aria-pressed="true"] .sf-i-pause{ display: none; }

/* ── 프로그램 카드 (3:2 사진) */
.sf .sf-rail{ display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; outline: none; padding-bottom: 4px; }
.sf .sf-rail::-webkit-scrollbar{ display: none; }
.sf .sf-rail > .sf-card{ scroll-snap-align: start; }
.sf .sf-grid3{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 24px; }
.sf .sf-card{ min-width: 0; }
.sf .sf-card__link{ display: block; text-decoration: none !important; color: inherit; }
.sf .sf-card__media{ position: relative; aspect-ratio: 3 / 2; border-radius: var(--sf-r); overflow: hidden; background: #ececec; }
.sf .sf-card__media img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.sf .sf-card__link:hover .sf-card__media img{ transform: scale(1.03); }
.sf .sf-card__ph{ position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 800; letter-spacing: .1em; color: #b3b3b3; font-size: 13px; }
.sf .sf-badge{ position: absolute; left: 10px; top: 10px; display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 4px; background: rgba(23,23,25,.82); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: -.02em; }
.sf .sf-badge--inline{ position: static; vertical-align: 2px; margin-left: 6px; }
.sf .sf-card__body{ padding-top: 14px; }
.sf .sf-card__title{ margin: 0; font-size: 16px; font-weight: 600; line-height: 24px; letter-spacing: -.2px; color: var(--sf-ink); }
.sf .sf-card__tag{ margin: 2px 0 0; font-size: 14px; line-height: 20px; color: var(--sf-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sf .sf-card__meta{ margin: 4px 0 0; font-size: 13px; line-height: 18px; color: var(--sf-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sf .sf-card__fee{ margin: 8px 0 0; font-size: 16px; font-weight: 600; line-height: 24px; letter-spacing: -.4px; color: var(--sf-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── 큐레이션 */
.sf .sf-curation__desc{ margin: -8px 0 20px; font-size: 14px; color: var(--sf-muted); }

/* ── 소개 블록 (프리오더형: 왼쪽 큰 사진 + 오른쪽 글) */
.sf .sf-story__grid{ display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.sf .sf-story__media{ border-radius: var(--sf-r); overflow: hidden; aspect-ratio: 3 / 2; background: #eee; }
.sf .sf-story__media img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.sf .sf-story__title{ margin: 0 0 20px; font-size: 32px; font-weight: 600; line-height: 1.35; letter-spacing: -.64px; color: var(--sf-ink); }
.sf .sf-story__text p{ margin: 0 0 14px; font-size: 16px; line-height: 26px; color: var(--sf-body); }
.sf .sf-story__text .sf-btn{ margin-top: 12px; }

/* ── 매거진 (2열 큰 사진 + 가운데 흰 패널) */
.sf .sf-mags{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 24px; }
.sf .sf-mag__link{ position: relative; display: flex; flex-direction: column; height: 100%; text-decoration: none !important; }
.sf .sf-mag__media{ position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: #e9e9e9; }
.sf .sf-mag__media img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.sf .sf-mag__link:hover .sf-mag__media img{ transform: scale(1.03); }
.sf .sf-mag__panel{ position: relative; z-index: 1; width: min(460px, 82%); margin: -44px auto 0; background: #fff; padding: 30px 32px 4px; text-align: center; }
.sf .sf-mag__no{ margin: 0 0 14px; font-size: 27px; line-height: 27px; color: #c0c0c0; }
.sf .sf-mag__title{ margin: 0 0 12px; font-size: 21px; font-weight: 400; line-height: 31.5px; color: #333; }
.sf .sf-mag__sub{ margin: 0 0 14px; font-size: 14px; line-height: 20px; color: #333; }
.sf .sf-mag__more{ display: inline-block; font-size: 14px; line-height: 30px; letter-spacing: 1.3px; color: #000; border-bottom: 1px solid #000; }

/* ── 상담 유도 */
.sf .sf-cta{ padding-bottom: 80px; }
.sf .sf-cta__box{ display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.sf .sf-cta__box > div{ padding: 36px 0; }
.sf .sf-cta .sf-wrap{ border-top: 1px solid var(--sf-line); padding-top: 8px; }

/* ── 프로그램 상세 */
.sf .sf-gallery{ position: relative; max-width: var(--sf-max); margin: 0 auto; aspect-ratio: 1348 / 650; overflow: hidden; background: #e5e5e5; }
.sf .sf-gallery__slide{ position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity .5s, visibility .5s; }
.sf .sf-gallery__slide.is-on{ opacity: 1; visibility: visible; }
.sf .sf-gallery__slide img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.sf .sf-gallery__nav{ position: absolute; top: 50%; margin-top: -22px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--sf-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; }
.sf .sf-gallery__nav--prev{ left: 20px; } .sf .sf-gallery__nav--next{ right: 20px; }
.sf .sf-gallery__count{ position: absolute; right: 20px; bottom: 20px; z-index: 2; padding: 4px 10px; border-radius: 100px; background: rgba(26,26,26,.6); color: #fff; font-size: 13px; line-height: 18px; }
.sf .sf-detail__grid{ display: grid; grid-template-columns: minmax(0, 864px) minmax(0, 384px); justify-content: space-between; gap: 32px; padding-top: 20px; padding-bottom: 8px; }
.sf .sf-crumb{ display: flex; gap: 8px; font-size: 13px; color: var(--sf-soft); margin-bottom: 14px; }
.sf .sf-crumb a{ text-decoration: none; }
.sf .sf-crumb a:hover{ color: var(--sf-ink); }
.sf .sf-detail__titlerow{ display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.sf .sf-detail__title{ margin: 0; font-size: 24px; font-weight: 600; line-height: 32px; letter-spacing: -.48px; color: var(--sf-ink); }
.sf .sf-detail__tag{ margin: 6px 0 0; font-size: 16px; line-height: 24px; color: var(--sf-text); }
.sf .sf-detail__lead{ margin: 18px 0 0; font-size: 16px; line-height: 26px; color: var(--sf-body); }
.sf .sf-rows{ margin: 24px 0 0; padding: 0; border-top: 1px solid var(--sf-line); }
.sf .sf-rows__row{ display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 16px; padding: 18px 4px; border-bottom: 1px solid var(--sf-line); }
.sf .sf-rows dt{ font-size: 14px; font-weight: 600; line-height: 20px; color: var(--sf-ink); }
.sf .sf-rows dd{ margin: 0; font-size: 14px; line-height: 22px; color: #6b6b6b; }
.sf .sf-rows dd b{ color: var(--sf-text); font-weight: 600; }
.sf .sf-apply{ position: relative; }
.sf .sf-apply__box{ position: sticky; top: calc(var(--sf-head) + 76px); border: 1px solid var(--sf-line); border-radius: var(--sf-r); padding: 24px; background: #fff; }
.sf .sf-apply__name{ margin: 0; font-size: 14px; font-weight: 600; color: var(--sf-muted); }
.sf .sf-apply__fee{ margin: 6px 0 16px; font-size: 20px; font-weight: 600; line-height: 28px; letter-spacing: -.4px; color: var(--sf-ink); }
.sf .sf-apply__list{ list-style: none; margin: 0 0 20px; padding: 14px 0 0; border-top: 1px solid var(--sf-line); }
.sf .sf-apply__list li{ display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 10px; padding: 6px 0; font-size: 13px; line-height: 20px; }
.sf .sf-apply__list span{ color: var(--sf-muted); }
.sf .sf-apply__list b{ font-weight: 500; color: var(--sf-text); }
.sf .sf-apply .sf-btn + .sf-btn{ margin-top: 8px; }
.sf .sf-apply__note{ margin: 12px 0 0; font-size: 12px; line-height: 18px; color: var(--sf-soft); text-align: center; }
.sf .sf-tabs{ position: sticky; top: var(--sf-head); z-index: 150; background: #fff; border-bottom: 1px solid var(--sf-line); margin-top: 40px; }
.admin-bar .sf-tabs { top: calc(var(--sf-head) + 32px); }
.sf .sf-tabs__inner{ display: flex; align-items: center; justify-content: space-between; height: 56px; }
.sf .sf-tabs__nav{ display: flex; gap: 28px; height: 100%; }
.sf .sf-tabs__nav a{ display: inline-flex; align-items: center; height: 100%; font-size: 15px; font-weight: 600; color: var(--sf-soft) !important; text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.sf .sf-tabs__nav a span{ margin-left: 4px; font-weight: 500; }
.sf .sf-tabs__nav a.is-on, .sf .sf-tabs__nav a:hover{ color: var(--sf-ink) !important; border-bottom-color: var(--sf-ink); }
.sf .sf-tabs__cta{ display: flex; align-items: center; gap: 14px; opacity: 0; pointer-events: none; transition: opacity .2s; }
.sf .sf-tabs.is-stuck .sf-tabs__cta{ opacity: 1; pointer-events: auto; }
.sf .sf-tabs__name{ font-size: 14px; font-weight: 600; color: var(--sf-ink); }
.sf .sf-detail__content{ scroll-margin-top: calc(var(--sf-head) + 56px); }
.sf .sf-detail__body.is-html{ max-width: var(--sf-max); margin: 0 auto; padding: 40px var(--sf-side) 0; }
.sf .sf-detail__body.is-el{ padding-top: 8px; }
.sf-detail .sf-reviews, .sf-detail #sf-more { scroll-margin-top: calc(var(--sf-head) + 56px); }
.sf .sf-mbar{ display: none; }

/* 옮겨 온 Elementor 본문: 원본 상세 템플릿에서 쓰던 폭·색을 그대로 두고, 셸과 겹치는 부분만 정리 */
.sf .sf-detail__body.is-el .elementor{ max-width: 100%; }
.sf .sf-detail__body.is-el > .elementor > .elementor-section-wrap > .e-con:first-child,
.sf .sf-detail__body.is-el > .elementor > .e-con:first-child{ margin-top: 0; }

/* ── 후기 */
.sf .sf-reviews__list{ list-style: none; margin: 8px 0 0; padding: 0; }
.sf .sf-review{ border-bottom: 1px solid var(--sf-line); }
.sf .sf-review .children{ list-style: none; margin: 0 0 0 20px; padding: 0; }
.sf .sf-review__body{ padding: 20px 0; }
.sf .sf-review__head{ display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; }
.sf .sf-review__name{ font-size: 14px; font-weight: 600; color: var(--sf-ink); }
.sf .sf-review__date{ font-size: 12px; color: var(--sf-soft); }
.sf .sf-review__text{ font-size: 15px; line-height: 25px; color: var(--sf-body); }
.sf .sf-review__text p{ margin: 0 0 8px; }
.sf .sf-review .comment-reply-link{ font-size: 12px; color: var(--sf-soft); text-decoration: none; }
.sf .sf-comments .comment-navigation, .sf .sf-comments .navigation{ display: flex; justify-content: space-between; margin: 16px 0; font-size: 13px; }
.sf .sf-comments .comment-respond{ margin-top: 36px; padding: 28px; background: var(--sf-gray2); border-radius: var(--sf-r); }
.sf .sf-comments .comment-form{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.sf .sf-comments .comment-form > *{ margin: 0; grid-column: 1 / -1; }
.sf .sf-comments .comment-form-author, .sf .sf-comments .comment-form-email{ grid-column: auto; }
.sf .sf-comments .comment-form-url{ display: none; }
.sf .sf-comments .comment-form label, .sf .sf-field label{ display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; color: var(--sf-text); }
.sf .sf-comments input[type=text], .sf .sf-comments input[type=email], .sf .sf-comments textarea{ width: 100%; }
.sf .sf-comments .comment-form-cookies-consent{ display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--sf-muted); }
.sf .sf-comments .comment-form-cookies-consent label{ margin: 0; font-weight: 400; }
.sf .sf-form__note{ font-size: 13px; color: var(--sf-muted); }

/* ── 입력칸 (밑줄형, 52px) */
.sf input[type=text]:not(.elementor-field), .sf input[type=email]:not(.elementor-field), .sf input[type=tel]:not(.elementor-field), .sf input[type=search]:not(.elementor-field), .sf input[type=url]:not(.elementor-field), .sf select:not(.elementor-field), .sf textarea:not(.elementor-field) {
  display: block; width: 100%; height: 48px; padding: 0 2px; border: 0; border-bottom: 1px solid #cfcfcf; border-radius: 0; background: transparent; color: var(--sf-ink); font: inherit; font-size: 16px; line-height: 26px; appearance: none; -webkit-appearance: none;
}
.sf textarea:not(.elementor-field) { height: auto; min-height: 96px; padding: 10px 2px; resize: vertical; }
.sf select:not(.elementor-field) { background-image: linear-gradient(45deg, transparent 50%, #777 50%), linear-gradient(135deg, #777 50%, transparent 50%); background-position: calc(100% - 14px) 22px, calc(100% - 9px) 22px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 28px; }
.sf input:not(.elementor-field):focus, .sf select:not(.elementor-field):focus, .sf textarea:not(.elementor-field):focus { outline: none; border-bottom-color: var(--sf-ink); }
.sf :where(.sf-header,.sf-footer,.sf-layer,.sf-drawer,.sf-detail__grid,.sf-tabs,.sf-mbar,.sf-section,.sf-listwrap,.sf-pagehead,.sf-hero) :is(button,input,select,textarea){ font-family: inherit; }
.sf .sf-field{ margin: 0 0 16px; }
.sf .sf-field em{ font-style: normal; font-weight: 500; color: var(--sf-accent); font-size: 11px; margin-left: 4px; }
.sf .sf-form__msg{ min-height: 20px; margin: 10px 0 0; font-size: 13px; color: var(--sf-muted); }
.sf .sf-form__msg.is-ok{ color: #0a7a3e; }
.sf .sf-form__msg.is-err{ color: #c62828; }

/* ── 레이어 (프로그램 찾기 · 문의) */
.sf .sf-layer{ position: fixed; inset: 0; z-index: 100002; background: rgba(245,245,245,.97); display: flex; align-items: flex-start; justify-content: center; padding: 72px 20px 40px; overflow-y: auto; }
.sf .sf-layer__panel{ width: 100%; max-width: 720px; background: #fff; border-radius: 12px; padding: 28px 32px 32px; box-shadow: 0 8px 40px rgba(0,0,0,.06); }
.sf .sf-contact__panel{ max-width: 460px; }
.sf .sf-layer__head{ display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.sf .sf-layer__title{ margin: 0; font-size: 18px; font-weight: 600; line-height: 26px; color: var(--sf-ink); }
.sf .sf-finder__input{ margin-bottom: 16px; }
.sf .sf-finder__chips{ display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.sf .sf-finder__list{ list-style: none; margin: 0; padding: 0; }
.sf .sf-finder__list li a{ display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 12px 4px; border-bottom: 1px solid #f0f0f0; text-decoration: none; }
.sf .sf-finder__list li a:hover{ background: var(--sf-gray2); }
.sf .sf-finder__thumb{ display: block; width: 72px; aspect-ratio: 3 / 2; border-radius: 6px; overflow: hidden; background: #eee; }
.sf .sf-finder__thumb img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.sf .sf-finder__txt{ display: flex; flex-direction: column; min-width: 0; }
.sf .sf-finder__txt strong{ font-size: 15px; font-weight: 600; color: var(--sf-ink); }
.sf .sf-finder__txt span{ font-size: 13px; color: var(--sf-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sf .sf-finder__badge{ font-size: 11px; font-weight: 700; color: var(--sf-accent); white-space: nowrap; }
.sf .sf-finder__empty{ margin: 20px 0 0; font-size: 14px; color: var(--sf-muted); }
.sf .sf-contact__lead{ margin: 0 0 20px; font-size: 14px; color: var(--sf-muted); }
.sf-lock { overflow: hidden; }

/* ── 모바일 메뉴 */
.sf .sf-drawer{ position: fixed; inset: 0; z-index: 100001; background: #fff; padding: 0 20px 32px; overflow-y: auto; }
.sf .sf-drawer__head{ position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; height: 56px; margin: 0 -20px; padding: 0 12px 0 20px; background: #fff; }
.sf .sf-drawer__head .sf-icon-btn{ width: 44px; height: 44px; }
.sf .sf-drawer__nav{ display: flex; flex-direction: column; padding: 12px 0; border-bottom: 1px solid var(--sf-line); }
.sf .sf-drawer__nav a, .sf .sf-drawer__nav button{ display: block; padding: 12px 0; border: 0; background: none; text-align: left; font-size: 22px; font-weight: 700; letter-spacing: .02em; color: var(--sf-ink); text-decoration: none; cursor: pointer; }
.sf .sf-drawer__sub{ margin: 20px 0 6px; font-size: 12px; font-weight: 600; letter-spacing: .16em; color: var(--sf-soft); }
.sf .sf-drawer__programs{ list-style: none; margin: 0 0 28px; padding: 0; }
.sf .sf-drawer__programs a{ display: block; padding: 9px 0; font-size: 16px; color: var(--sf-text); text-decoration: none; }

/* ── 푸터 (#f2f2f2) */
.sf .sf-footer{ margin-top: 96px; background: var(--sf-gray); }
.sf .sf-footer__inner{ max-width: var(--sf-max); margin: 0 auto; padding: 48px 32px 40px; }
.sf .sf-footer__top{ display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.sf .sf-footer__label{ margin: 0 0 6px; font-size: 14px; font-weight: 600; color: #333; }
.sf .sf-footer__time{ margin: 0; font-size: 12px; line-height: 20px; color: #767676; }
.sf .sf-footer__btns{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.sf .sf-news{ width: 100%; max-width: 420px; }
.sf .sf-news__row{ display: flex; align-items: flex-end; gap: 10px; margin-top: 10px; }
.sf .sf-news__row input[type=email]{ height: 36px; font-size: 14px; }
.sf .sf-footer__links{ display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 32px 0 18px; }
.sf .sf-footer__links a{ font-size: 12px; line-height: 22px; color: #767676 !important; text-decoration: none; }
.sf .sf-footer__links a:hover{ color: #333 !important; }
.sf .sf-footer__biz p{ margin: 0; font-size: 12px; line-height: 20px; color: #767676; }
.sf .sf-footer__biz a{ color: inherit; text-decoration: none; }
.sf .sf-footer__copy{ margin: 18px 0 0; font-size: 12px; line-height: 20px; color: #949494; }

/* ── 저널 글 */
.sf .sf-post__head{ padding-top: 56px; padding-bottom: 32px; text-align: center; }
.sf .sf-post__head .sf-eyebrow span{ color: #c0c0c0; margin-left: 6px; }
.sf .sf-post__title{ margin: 0 auto; max-width: 820px; font-size: 32px; font-weight: 500; line-height: 1.4; letter-spacing: -.64px; color: #000; }
.sf .sf-post__meta{ margin: 14px 0 0; font-size: 13px; color: var(--sf-soft); }
.sf .sf-post__hero{ margin: 0 auto 48px; }
.sf .sf-post__hero img{ width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.sf .sf-prose, .sf .sf-prose-w{ max-width: 768px; margin-left: auto; margin-right: auto; padding-left: var(--sf-side); padding-right: var(--sf-side); box-sizing: content-box; }
.sf .sf-prose{ font-size: 16px; line-height: 28px; color: #4d4d4d; }
.sf .sf-prose > *{ margin-top: 0; margin-bottom: 20px; }
.sf .sf-prose h2{ margin: 48px 0 16px; font-size: 24px; font-weight: 500; line-height: 34px; color: #000; }
.sf .sf-prose h3{ margin: 36px 0 12px; font-size: 20px; font-weight: 600; line-height: 30px; color: var(--sf-ink); }
.sf .sf-prose p:empty{ display: none; }
.sf .sf-prose a{ text-decoration: underline; text-underline-offset: 3px; }
.sf .sf-prose strong{ color: var(--sf-text); }
.sf .sf-prose figure{ margin: 32px 0; }
.sf .sf-prose figure img, .sf .sf-prose > p img{ display: block; width: 100%; height: auto; }
.sf .sf-prose .wp-block-gallery{ gap: 12px; }
.sf .sf-prose figcaption{ font-size: 13px; color: var(--sf-soft); text-align: center; margin-top: 8px; }
.sf .sf-prose hr{ border: 0; border-top: 1px solid var(--sf-line); margin: 40px 0; }
.sf .sf-prose blockquote{ margin: 28px 0; padding: 4px 0 4px 20px; border-left: 2px solid var(--sf-ink); color: var(--sf-text); }
.sf .sf-prose ul, .sf .sf-prose ol{ padding-left: 1.2em; }
.sf .sf-prose li{ margin-bottom: 6px; }
.sf .sf-prose video{ width: 100%; }
.sf .sf-post__tags{ display: flex; flex-wrap: wrap; gap: 6px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--sf-line); }

/* ── 일반 페이지 */
.sf .sf-pagebody.is-el{ margin-top: -8px; }
.sf .sf-pagebody.is-el .entry-title{ display: none; }
.sf .sf-page-faq .schema-faq{ border-top: 1px solid var(--sf-ink); margin: 32px 0; }
.sf .sf-page-faq .schema-faq-section{ padding: 22px 0; border-bottom: 1px solid var(--sf-line); }
.sf .sf-page-faq .schema-faq-question{ display: block; font-size: 17px; font-weight: 600; line-height: 26px; color: var(--sf-ink); cursor: pointer; position: relative; padding-right: 32px; }
.sf .sf-page-faq .schema-faq-question::after{ content: ""; position: absolute; right: 6px; top: 8px; width: 8px; height: 8px; border-right: 1.5px solid #777; border-bottom: 1.5px solid #777; transform: rotate(45deg); transition: transform .2s; }
.sf .sf-page-faq .schema-faq-section.is-open .schema-faq-question::after{ transform: rotate(-135deg); top: 12px; }
.sf .sf-page-faq .schema-faq-answer{ margin: 10px 0 0; font-size: 15px; line-height: 26px; color: var(--sf-body); }
.sf .sf-page-faq.sf-js .schema-faq-section:not(.is-open) .schema-faq-answer{ display: none; }
.sf .sf-page-get-help .ws-section{ padding: 8px 0; }
.sf .sf-page-get-help .wp-block-heading.has-text-align-center:first-child{ display: none; }
.sf .sf-page-get-help .wp-block-columns{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 8px 0 24px; }
.sf .sf-page-get-help .wp-block-column{ border: 1px solid var(--sf-line); border-radius: var(--sf-r); padding: 28px 20px; }
.sf .sf-page-get-help .wp-block-column h3{ margin: 0 0 8px; font-size: 14px !important; font-weight: 600; color: var(--sf-muted); }
.sf .sf-page-get-help .wp-block-column p{ margin: 0; font-size: 18px; font-weight: 600; }
.sf .sf-page-get-help .wp-block-column a{ text-decoration: none; }
.sf .sf-page-get-help .wp-block-spacer{ display: none; }

/* ── 목록 */
.sf .sf-pills--list{ margin-bottom: 28px; }
.sf-listwrap__label { margin: 8px 0 16px; }
.sf-listwrap .sf-grid3 { margin-bottom: 48px; }
.sf .sf-linklist{ list-style: none; padding: 0; margin: 0 0 40px; }
.sf .sf-linklist a{ display: block; padding: 12px 0; border-bottom: 1px solid var(--sf-line); text-decoration: none; font-size: 16px; }
.sf .sf-pager{ display: flex; justify-content: center; gap: 6px; margin-top: 48px; }
.sf .sf-pager .page-numbers{ display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 10px; border-radius: 4px; font-size: 14px; color: var(--sf-text); text-decoration: none; }
.sf .sf-pager .page-numbers.current{ background: #333; color: #fff; }
.sf .sf-pager a.page-numbers:hover{ background: var(--sf-gray2); }
.sf .sf-empty{ font-size: 15px; color: var(--sf-muted); }
.sf .sf-empty--box{ padding: 60px 0; text-align: center; }
.sf .sf-searchform{ display: flex; gap: 10px; max-width: 420px; margin: 20px auto 0; align-items: flex-end; }
.sf .sf-404{ padding-top: 80px; text-align: center; }
.sf .sf-404__btns{ display: flex; justify-content: center; gap: 8px; margin-top: 28px; }

/* ── 소개 (ABOUT) — 가운데 제목·짧은 소개 → 넓은 사진 → 본문 블록 */
.sf .sf-about{ padding-top: 8px; }
.sf .sf-about__intro{ padding: 56px 0 40px; text-align: center; }
.sf .sf-about__intro .sf-eyebrow{ margin-bottom: 16px; }
.sf .sf-about__title{ margin: 0; font-size: 40px; font-weight: 600; line-height: 52px; letter-spacing: -1px; color: var(--sf-ink); }
.sf .sf-about__lead{ margin: 12px 0 0; font-size: 18px; line-height: 28px; color: var(--sf-body); }
.sf .sf-about__media{ margin: 0; aspect-ratio: 1280 / 560; overflow: hidden; background: #ececec; }
.sf .sf-about__media img{ width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.sf .sf-about__block{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 48px; padding: 72px 0; border-bottom: 1px solid var(--sf-line); }
.sf .sf-about__block:last-child{ border-bottom: 0; }
.sf .sf-about__h2{ margin: 0; font-size: 28px; font-weight: 600; line-height: 36px; letter-spacing: -.56px; color: var(--sf-ink); }
.sf .sf-about__h3{ margin: 0 0 16px; font-size: 18px; font-weight: 600; line-height: 26px; color: var(--sf-ink); }
.sf .sf-about__text > p:not(.sf-eyebrow){ margin: 0 0 20px; font-size: 16px; line-height: 28px; color: var(--sf-body); }
.sf .sf-about__text > p:first-child:not(.sf-eyebrow){ font-size: 20px; line-height: 32px; font-weight: 500; color: var(--sf-ink); letter-spacing: -.2px; }
.sf .sf-about__career{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sf .sf-about__list{ list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--sf-ink); }
.sf .sf-about__list li{ padding: 13px 2px; border-bottom: 1px solid var(--sf-line); font-size: 15px; line-height: 22px; color: var(--sf-text); }
.sf .sf-about__logo{ display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: var(--sf-gray2); border-radius: var(--sf-r); padding: 12%; }
.sf .sf-about__logo img{ width: 100%; height: 100%; object-fit: contain; display: block; }
.sf .sf-about__symbol{ align-items: center; }
.sf .sf-about__rows{ margin: 28px 0 0; padding: 0; border-top: 1px solid var(--sf-line); }
.sf .sf-about__rows > div{ display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px; padding: 18px 4px; border-bottom: 1px solid var(--sf-line); }
.sf .sf-about__rows dt{ font-size: 15px; font-weight: 600; line-height: 24px; color: var(--sf-ink); }
.sf .sf-about__rows dd{ margin: 0; font-size: 15px; line-height: 24px; color: var(--sf-body); }
.sf .sf-about__meet{ display: block; }
.sf .sf-about__head{ margin-bottom: 24px; }
.sf .sf-about__desc{ margin: 4px 0 0; font-size: 16px; line-height: 24px; color: #767676; }
.sf .sf-about__cards{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sf .sf-about__card{ background: var(--sf-gray2); border-radius: var(--sf-r); padding: 32px 28px 36px; min-height: 200px; }
.sf .sf-about__card h3{ margin: 0 0 12px; font-size: 20px; font-weight: 600; line-height: 28px; letter-spacing: -.2px; color: var(--sf-ink); }
.sf .sf-about__card p{ margin: 0; font-size: 15px; line-height: 24px; color: var(--sf-body); }
.sf .sf-about + .sf-cta{ padding-top: 0; }
@media (max-width: 1024px) {
  .sf .sf-about__block{ gap: 32px; padding: 56px 0; }
  .sf .sf-about__media{ aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
  .sf .sf-about__intro{ padding: 32px 0 28px; }
  .sf .sf-about__title{ font-size: 28px; line-height: 38px; letter-spacing: -.56px; }
  .sf .sf-about__lead{ font-size: 16px; line-height: 24px; }
  .sf .sf-about__media{ aspect-ratio: 4 / 5; margin: 0 calc(var(--sf-side) * -1); }
  .sf .sf-about__block, .sf .sf-about__career{ grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 44px 0; }
  .sf .sf-about__career{ gap: 40px; }
  .sf .sf-about__h2{ font-size: 22px; line-height: 30px; }
  .sf .sf-about__text > p:first-child:not(.sf-eyebrow){ font-size: 18px; line-height: 28px; }
  .sf .sf-about__text br{ display: none; }
  .sf .sf-about__logo{ max-width: 280px; }
  .sf .sf-about__rows > div{ grid-template-columns: 100px minmax(0, 1fr); }
  .sf .sf-about__cards{ grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .sf .sf-about__card{ min-height: 0; padding: 24px 20px 26px; }
}

/* ── 프로그램 FAQ (펼침/접힘) */
.sf .sf-faq__list{ margin-top: 20px; border-top: 1px solid var(--sf-ink); }
.sf .sf-faq__item{ border-bottom: 1px solid var(--sf-line); }
.sf .sf-faq__q{ position: relative; display: block; padding: 20px 40px 20px 2px; font-size: 16px; font-weight: 600; line-height: 26px; color: var(--sf-ink); cursor: pointer; list-style: none; }
.sf .sf-faq__q::-webkit-details-marker{ display: none; }
.sf .sf-faq__q::after{ content: ""; position: absolute; right: 10px; top: 28px; width: 8px; height: 8px; border-right: 1.5px solid #777; border-bottom: 1.5px solid #777; transform: rotate(45deg); transition: transform .2s; }
.sf .sf-faq__item[open] .sf-faq__q::after{ transform: rotate(-135deg); top: 32px; }
.sf .sf-faq__q:hover{ color: #000; }
.sf .sf-faq__a{ padding: 0 2px 22px; font-size: 15px; line-height: 26px; color: var(--sf-body); }
.sf .sf-faq__a p{ margin: 0 0 10px; }
.sf .sf-faq__a p:last-child{ margin-bottom: 0; }
.sf .sf-faq__a a{ text-decoration: underline; text-underline-offset: 3px; }
.sf-detail .sf-faq{ scroll-margin-top: calc(var(--sf-head) + 56px); }
@media (max-width: 767px) {
  .sf .sf-faq__q{ font-size: 15px; line-height: 24px; padding: 18px 36px 18px 0; }
  .sf .sf-faq__q::after{ top: 25px; } .sf .sf-faq__item[open] .sf-faq__q::after{ top: 29px; }
  .sf .sf-faq__a{ font-size: 14px; line-height: 24px; padding: 0 0 18px; }
}

/* ── 저널 즉시 필터 */
.sf .sf-more-wrap{ display: flex; justify-content: center; margin-top: 40px; }
.sf .sf-more-wrap .sf-btn{ min-width: 160px; }
.sf .sf-mag.is-in{ animation: sfIn .25s ease; }
@keyframes sfIn{ from{ opacity: 0; } to{ opacity: 1; } }

/* ── CONTACT 안의 자주 묻는 질문 */
.sf .sf-page-get-help .sf-page-faq{ margin-top: 64px; padding-top: 8px; scroll-margin-top: calc(var(--sf-head) + 16px); }
.sf .sf-page-get-help .sf-page-faq > h2{ margin: 0 0 12px; font-size: 28px; font-weight: 600; line-height: 36px; letter-spacing: -.56px; color: var(--sf-ink); }
@media (max-width: 767px) { .sf .sf-page-get-help .sf-page-faq > h2{ font-size: 22px; line-height: 30px; } .sf .sf-page-get-help .sf-page-faq{ margin-top: 48px; } }

/* ── 모바일 메뉴: PROGRAM 바로 아래 세부 프로그램 */
.sf .sf-drawer__nav .sf-drawer__programs{ margin: -2px 0 10px; padding: 0 0 6px 2px; border-left: 0; }
.sf .sf-drawer__nav .sf-drawer__programs a{ padding: 8px 0; font-size: 16px; font-weight: 400; letter-spacing: 0; color: var(--sf-body); }
.sf .sf-drawer__nav .sf-drawer__programs a:hover{ color: var(--sf-ink); }
.sf .sf-drawer > .sf-btn{ margin-top: 24px; }

/* ── 저널 글 사진: 넓게 + 눌러서 크게 보기 */
.sf .sf-post__body > figure.wp-block-image, .sf .sf-post__body > .wp-block-image, .sf .sf-post__body > .wp-block-gallery{ width: min(1100px, calc(100vw - var(--sf-side) * 2)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.sf .sf-post__body img{ cursor: zoom-in; }
.sf .sf-post__body > figure.wp-block-image img{ width: 100%; }
.sf .sf-lb{ position: fixed; inset: 0; z-index: 100003; background: #111; display: flex; flex-direction: column; }
.sf .sf-lb[hidden]{ display: none !important; }
.sf .sf-lb__bar{ display: flex; align-items: center; justify-content: space-between; height: 56px; padding: 0 8px 0 20px; color: #fff; font-size: 14px; flex: none; }
.sf .sf-lb__bar .sf-icon-btn{ color: #fff; }
.sf .sf-lb__bar .sf-icon-btn:hover{ background: rgba(255,255,255,.12); }
.sf .sf-lb__stage{ position: relative; flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; display: flex; align-items: center; justify-content: center; touch-action: pan-x pan-y pinch-zoom; }
.sf .sf-lb__img{ display: block; max-width: 100%; max-height: 100%; object-fit: contain; cursor: zoom-in; user-select: none; }
.sf .sf-lb.is-zoom .sf-lb__stage{ align-items: flex-start; justify-content: flex-start; }
.sf .sf-lb.is-zoom .sf-lb__img{ max-width: none; max-height: none; width: 250%; cursor: zoom-out; }
.sf .sf-lb__nav{ position: absolute; top: 50%; margin-top: -24px; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.sf .sf-lb__nav svg{ width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sf .sf-lb__nav--prev{ left: 16px; } .sf .sf-lb__nav--next{ right: 16px; }
.sf .sf-lb.is-zoom .sf-lb__nav{ display: none; }
.sf .sf-lb__hint{ flex: none; padding: 10px 20px calc(14px + env(safe-area-inset-bottom)); text-align: center; color: rgba(255,255,255,.6); font-size: 12px; }
@media (max-width: 767px) {
  .sf .sf-post__body > figure.wp-block-image, .sf .sf-post__body > .wp-block-image, .sf .sf-post__body > .wp-block-gallery{ width: 100vw; }
  .sf .sf-lb__nav{ display: none; }
}

/* ── 모바일 폼: 아래 버튼은 화면 하단에 떠 있게 */
@media (max-width: 767px) {
  .sf .sf-layer{ align-items: flex-start; background: #fff; }
  .sf .sf-layer__panel{ height: auto; min-height: 100%; }
  .sf .sf-lead .lf__nav{ position: sticky; bottom: 0; z-index: 5; margin: 0 -20px -32px; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--sf-line); }
  .sf .sf-lead .lf > .btn[type=submit], .sf .sf-contact .sf-form > .sf-btn[type=submit]{ position: sticky; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 5; box-shadow: 0 0 0 12px #fff, 0 -13px 0 12px var(--sf-line); }
  .sf.sf .sf-lead .lf.is-steps .lf__nav .btn{ height: 52px; }
}

/* ── 소개 페이지 확장: 브랜드 문구 · 숫자 띠 · 세 가지 방법 · 함께한 곳 · 후기 */
.sf .sf-about__brand{ margin: 20px 0 0; font-size: 13px; font-weight: 600; letter-spacing: .12em; color: var(--sf-soft); }
.sf .sf-about__stats{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--sf-line); }
.sf .sf-about__stat{ padding: 40px 24px 36px; text-align: center; border-left: 1px solid var(--sf-line); }
.sf .sf-about__stat:first-child{ border-left: 0; }
.sf .sf-about__stat strong{ display: block; font-size: 36px; font-weight: 600; line-height: 44px; letter-spacing: -.72px; color: var(--sf-ink); }
.sf .sf-about__stat span{ display: block; margin-top: 8px; font-size: 14px; line-height: 21px; color: var(--sf-muted); }
.sf .sf-about__label .sf-about__h2{ word-break: keep-all; }
.sf .sf-about__role{ margin: 12px 0 0; font-size: 14px; line-height: 22px; color: var(--sf-muted); }
.sf .sf-about__ways{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sf .sf-about__way-media{ position: relative; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--sf-r); background: var(--sf-gray); margin-bottom: 20px; }
.sf .sf-about__way-media img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
.sf .sf-about__way:hover .sf-about__way-media img{ transform: scale(1.03); }
.sf .sf-about__way-no{ position: absolute; left: 16px; top: 14px; font-size: 13px; font-weight: 600; letter-spacing: .12em; color: #fff; text-shadow: 0 1px 6px rgba(0,0,0,.35); }
.sf .sf-about__way h3{ margin: 0 0 8px; font-size: 20px; font-weight: 600; line-height: 28px; letter-spacing: -.2px; color: var(--sf-ink); }
.sf .sf-about__way p{ margin: 0; font-size: 15px; line-height: 24px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-about__way-links{ list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.sf .sf-about__way-links a{ display: inline-block; padding: 6px 12px; border: 1px solid var(--sf-line); border-radius: 100px; font-size: 13px; line-height: 18px; color: var(--sf-text); text-decoration: none; }
.sf .sf-about__way-links a:hover{ border-color: var(--sf-ink); color: var(--sf-ink); }
.sf .sf-about__card-no{ display: block; margin-bottom: 20px; font-size: 13px; font-weight: 600; letter-spacing: .12em; color: var(--sf-soft); }
.sf .sf-about__groups{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sf .sf-about__groups h3{ margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--sf-ink); font-size: 15px; font-weight: 600; line-height: 22px; color: var(--sf-ink); }
.sf .sf-about__chips{ list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sf .sf-about__chips li{ padding: 8px 14px; border-radius: 100px; background: var(--sf-gray2); font-size: 14px; line-height: 20px; color: var(--sf-text); }
.sf .sf-about__reviews{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sf .sf-about__review{ display: flex; flex-direction: column; justify-content: space-between; gap: 24px; margin: 0; padding: 28px 28px 24px; border: 1px solid var(--sf-line); border-radius: var(--sf-r); }
.sf .sf-about__review blockquote{ margin: 0; padding: 0; border: 0; font-size: 15px; line-height: 25px; color: var(--sf-text); font-style: normal; word-break: keep-all; }
.sf .sf-about__review blockquote::before{ content: "“"; display: block; height: 28px; font-size: 40px; line-height: 44px; color: var(--sf-soft); }
.sf .sf-about__review figcaption{ display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; line-height: 20px; color: var(--sf-muted); }
.sf .sf-about__review figcaption b{ font-weight: 600; color: var(--sf-ink); }
.sf .sf-about__review figcaption a{ color: var(--sf-muted); text-decoration: none; border-bottom: 1px solid var(--sf-line); }
.sf .sf-about__more{ margin: 28px 0 0; text-align: center; }
.sf .sf-about__railhead{ display: flex; justify-content: flex-end; margin: -52px 0 20px; }
@media (max-width: 1023px){
  .sf .sf-about__stats{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sf .sf-about__stat:nth-child(3){ border-left: 0; }
  .sf .sf-about__stat:nth-child(n+3){ border-top: 1px solid var(--sf-line); }
  .sf .sf-about__reviews{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px){
  .sf .sf-about__brand{ font-size: 11px; letter-spacing: .1em; }
  .sf .sf-about__stat{ padding: 24px 8px 22px; }
  .sf .sf-about__stat strong{ font-size: 26px; line-height: 34px; letter-spacing: -.52px; }
  .sf .sf-about__stat span{ font-size: 12px; line-height: 18px; }
  .sf .sf-about__ways{ grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .sf .sf-about__groups{ grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .sf .sf-about__reviews{ grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 84%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc(var(--sf-side) * -1); padding-right: var(--sf-side); }
  .sf .sf-about__reviews::-webkit-scrollbar{ display: none; }
  .sf .sf-about__review{ scroll-snap-align: start; padding: 24px 20px 20px; }
  .sf .sf-about__card-no{ margin-bottom: 12px; }
  .sf .sf-about__railhead{ display: none; }
}

/* ── 프로젝트: 목록 카드 · 상세 */
.sf .sf-pills--list .sf-pill span{ margin-left: 4px; font-weight: 400; color: var(--sf-soft); }
.sf .sf-pj-card[hidden]{ display: none; }
.sf .sf-pj-card__result{ margin: 8px 0 0; font-size: 14px; line-height: 20px; color: var(--sf-body); }
.sf .sf-pj-card__result b{ font-size: 16px; font-weight: 600; color: var(--sf-ink); }
.sf .sf-pj__head{ padding-top: 48px; padding-bottom: 32px; text-align: center; }
.sf .sf-pj__head .sf-crumb{ justify-content: center; }
.sf .sf-pj__title{ margin: 0 auto; max-width: 860px; font-size: 36px; font-weight: 600; line-height: 1.35; letter-spacing: -.72px; color: var(--sf-ink); word-break: keep-all; }
.sf .sf-pj__lead{ margin: 14px auto 0; max-width: 720px; font-size: 18px; line-height: 28px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-pj__hero{ margin: 0 auto 0; }
.sf .sf-pj__hero img{ width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.sf .sf-pj__results{ margin-top: 0; border-top: 1px solid var(--sf-line); }
.sf .sf-pj__results[data-n="1"]{ grid-template-columns: minmax(0, 1fr); }
.sf .sf-pj__results[data-n="2"]{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sf .sf-pj__results[data-n="3"]{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sf .sf-pj__info{ max-width: 820px; margin: 48px auto 8px; }
.sf .sf-pj__info .sf-rows a{ color: var(--sf-ink); text-decoration: underline; text-underline-offset: 3px; word-break: break-all; }
.sf .sf-pj__body{ padding-top: 32px; padding-bottom: 24px; }
@media (max-width: 767px){
  .sf .sf-pj__head{ padding-top: 28px; padding-bottom: 24px; }
  .sf .sf-pj__title{ font-size: 26px; letter-spacing: -.52px; }
  .sf .sf-pj__lead{ font-size: 16px; line-height: 25px; }
  .sf .sf-pj__hero{ padding: 0; }
  .sf .sf-pj__hero img{ aspect-ratio: 4 / 3; }
  .sf .sf-pj__results[data-n="3"], .sf .sf-pj__results[data-n="1"]{ grid-template-columns: minmax(0, 1fr); }
  .sf .sf-pj__results[data-n="3"] .sf-about__stat, .sf .sf-pj__results[data-n="1"] .sf-about__stat{ border-left: 0; border-top: 1px solid var(--sf-line); }
  .sf .sf-pj__results[data-n="3"] .sf-about__stat:first-child{ border-top: 0; }
  .sf .sf-pj__info{ margin-top: 32px; }
}

/* ── 홈 신뢰 섹션: 숫자 · 함께한 기업 · 후기 */
.sf .sf-trust .sf-about__stats{ border-top: 1px solid var(--sf-ink); }
.sf .sf-clients{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--sf-line); border-left: 1px solid var(--sf-line); }
.sf .sf-clients li{ display: flex; align-items: center; justify-content: center; min-height: 96px; padding: 12px; border-right: 1px solid var(--sf-line); border-bottom: 1px solid var(--sf-line); text-align: center; font-size: 15px; font-weight: 600; line-height: 21px; letter-spacing: -.2px; color: #4a4a4d; word-break: keep-all; }
.sf .sf-clients__cta{ display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 20px; padding: 18px 24px; background: var(--sf-gray2); border-radius: var(--sf-r); }
.sf .sf-clients__cta p{ margin: 0; font-size: 15px; line-height: 22px; color: var(--sf-text); }
.sf .sf-reviews-home .sf-count{ margin-left: 6px; font-size: .7em; font-weight: 500; color: var(--sf-soft); }
@media (max-width: 1023px){
  .sf .sf-clients{ grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 767px){
  .sf .sf-clients{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sf .sf-clients li{ min-height: 64px; padding: 8px 6px; font-size: 13px; line-height: 18px; }
  .sf .sf-clients__cta{ flex-direction: column; align-items: flex-start; padding: 16px 18px; }
}

/* ── 홈 프로그램: 코칭 · 무브먼트 · 인생학교 */
.sf .sf-pg__nav{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 56px; border-top: 1px solid var(--sf-ink); border-bottom: 1px solid var(--sf-line); }
.sf .sf-pg__nav a{ display: flex; align-items: baseline; gap: 10px; padding: 22px 4px 20px; font-size: 20px; font-weight: 600; letter-spacing: -.4px; color: var(--sf-ink) !important; text-decoration: none; border-left: 1px solid var(--sf-line); padding-left: 24px; transition: background .2s; }
.sf .sf-pg__nav a:first-child{ border-left: 0; padding-left: 4px; }
.sf .sf-pg__nav a:hover{ background: var(--sf-gray2); }
.sf .sf-pg__nav span{ font-size: 13px; font-weight: 600; letter-spacing: .12em; color: var(--sf-soft); }
.sf .sf-pg__nav em{ margin-left: auto; margin-right: 16px; font-style: normal; font-size: 14px; font-weight: 500; color: var(--sf-soft); }
.sf .sf-pg__sec{ padding: 96px 0; scroll-margin-top: var(--sf-head); }
.sf .sf-pg__eyebrow{ margin: 0 0 18px; font-size: 13px; font-weight: 600; letter-spacing: .18em; color: var(--sf-soft); }
.sf .sf-pg__eyebrow b{ display: inline-block; margin-right: 8px; padding: 3px 8px; border-radius: 100px; background: var(--sf-ink); color: #fff; letter-spacing: .06em; font-weight: 600; }
.sf .sf-pg__title{ margin: 0; font-size: 40px; font-weight: 700; line-height: 1.3; letter-spacing: -1.2px; color: var(--sf-ink); word-break: keep-all; }
.sf .sf-pg__lead{ margin: 20px 0 0; font-size: 17px; line-height: 28px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-pg__facts{ list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; padding: 0; }
.sf .sf-pg__facts li{ padding: 7px 14px; border: 1px solid var(--sf-line); border-radius: 100px; font-size: 13px; font-weight: 600; line-height: 18px; color: var(--sf-text); }
.sf .sf-pg__name{ display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin: 0; font-size: 14px; font-weight: 700; color: var(--sf-ink); }
.sf .sf-pg__name small{ font-size: 12px; font-weight: 500; color: var(--sf-soft); }
.sf .sf-pg__hl{ display: block; margin-top: 8px; font-size: 22px; font-weight: 600; line-height: 1.4; letter-spacing: -.44px; color: var(--sf-ink); word-break: keep-all; }
.sf .sf-pg__desc{ display: block; margin-top: 10px; font-size: 15px; line-height: 24px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-pg__foot{ display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; font-size: 15px; color: var(--sf-ink); }
.sf .sf-pg__foot b{ font-weight: 700; }
.sf .sf-pg__go{ display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--sf-muted); }
.sf .sf-pg__go svg{ width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.sf a:hover .sf-pg__go{ color: var(--sf-ink); }
.sf a:hover .sf-pg__go svg{ transform: translateX(4px); }

/* 01 코칭: 왼쪽 고정 소개 + 오른쪽 번호 목록 */
.sf .sf-pg__split{ display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.sf .sf-pg--coaching .sf-pg__head{ position: sticky; top: calc(var(--sf-head) + 32px); }
.sf .sf-pg__list{ list-style: none; margin: 0; padding: 0; counter-reset: pg; border-top: 1px solid var(--sf-ink); }
.sf .sf-pg__list li{ counter-increment: pg; border-bottom: 1px solid var(--sf-line); }
.sf .sf-pg__row{ display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 28px; padding: 28px 0; color: inherit !important; text-decoration: none !important; }
.sf .sf-pg__thumb{ position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--sf-r); background: var(--sf-gray); }
.sf .sf-pg__thumb img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
.sf .sf-pg__row:hover .sf-pg__thumb img{ transform: scale(1.05); }
.sf .sf-pg__thumb::after{ content: counter(pg, decimal-leading-zero); position: absolute; right: 10px; bottom: 6px; font-size: 32px; font-weight: 700; letter-spacing: -1px; color: #fff; text-shadow: 0 2px 12px rgba(0,0,0,.35); }
.sf .sf-pg__thumb .sf-badge{ position: absolute; left: 10px; top: 10px; }
.sf .sf-pg__body{ display: block; min-width: 0; }

/* 02 무브먼트: 어두운 띠 + 엇갈린 큰 사진 두 장 */
.sf .sf-pg--movement{ background: #161618; color: #fff; }
.sf .sf-pg--movement .sf-pg__title, .sf .sf-pg--movement .sf-pg__name, .sf .sf-pg--movement .sf-pg__hl, .sf .sf-pg--movement .sf-pg__foot{ color: #fff; }
.sf .sf-pg--movement .sf-pg__lead, .sf .sf-pg--movement .sf-pg__desc{ color: rgba(255,255,255,.72); }
.sf .sf-pg--movement .sf-pg__eyebrow{ color: rgba(255,255,255,.55); }
.sf .sf-pg--movement .sf-pg__eyebrow b{ background: #fff; color: #161618; }
.sf .sf-pg--movement .sf-pg__facts li{ border-color: rgba(255,255,255,.25); color: #fff; }
.sf .sf-pg--movement .sf-pg__name small, .sf .sf-pg--movement .sf-pg__go{ color: rgba(255,255,255,.6); }
.sf .sf-pg--movement a:hover .sf-pg__go{ color: #fff; }
.sf .sf-pg__head--row{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: end; margin-bottom: 56px; }
.sf .sf-pg__head--row .sf-pg__lead{ margin-top: 0; }
.sf .sf-pg__duo{ display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; align-items: start; }
.sf .sf-pg__poster{ display: block; color: inherit !important; text-decoration: none !important; }
.sf .sf-pg__poster:nth-child(2){ margin-top: 96px; }
.sf .sf-pg__pimg{ display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 12px; background: #2a2a2d; }
.sf .sf-pg__poster:nth-child(2) .sf-pg__pimg{ aspect-ratio: 4 / 5; }
.sf .sf-pg__pimg img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s; }
.sf .sf-pg__poster:hover .sf-pg__pimg img{ transform: scale(1.04); }
.sf .sf-pg__pcopy{ display: block; padding-top: 24px; }
.sf .sf-pg__pcopy .sf-pg__foot{ padding-top: 16px; border-top: 1px solid rgba(255,255,255,.18); }

/* 03 인생학교: 따뜻한 배경 + 큰 사진과 신청 카드 */
.sf .sf-pg--school{ background: #f3efe8; }
.sf .sf-pg__feature{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.sf .sf-pg__fimg{ position: relative; aspect-ratio: 1 / 1; border-radius: 12px; overflow: hidden; background: #e2dcd2; }
.sf .sf-pg__fimg img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.sf .sf-pg__stamp{ position: absolute; right: 24px; top: 24px; display: flex; align-items: center; justify-content: center; width: 112px; height: 112px; border-radius: 50%; background: #fff; color: var(--sf-ink); font-size: 17px; font-weight: 700; letter-spacing: -.3px; text-align: center; line-height: 1.25; transform: rotate(-8deg); box-shadow: 0 8px 24px rgba(0,0,0,.12); padding: 12px; word-break: keep-all; }
.sf .sf-pg__card{ margin-top: 32px; padding: 28px 28px 24px; background: #fff; border-radius: 12px; }
.sf .sf-pg__card .sf-pg__hl{ font-size: 20px; }
.sf .sf-pg__dl{ margin: 20px 0 0; padding: 0; border-top: 1px solid var(--sf-line); }
.sf .sf-pg__dl > div{ display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--sf-line); font-size: 14px; line-height: 21px; }
.sf .sf-pg__dl dt{ font-weight: 600; color: var(--sf-ink); }
.sf .sf-pg__dl dd{ margin: 0; color: var(--sf-body); }
.sf .sf-pg__btns{ display: flex; gap: 8px; margin-top: 20px; }
.sf .sf-pg__btns .sf-btn{ flex: 1; }

@media (max-width: 1023px){
  .sf .sf-pg__split{ grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .sf .sf-pg--coaching .sf-pg__head{ position: static; }
  .sf .sf-pg__feature{ gap: 40px; }
  .sf .sf-pg__title{ font-size: 34px; }
}
@media (max-width: 767px){
  .sf .sf-pg__nav{ margin-top: 32px; }
  .sf .sf-pg__nav a, .sf .sf-pg__nav a:first-child{ flex-direction: column; align-items: center; gap: 2px; padding: 14px 4px 12px; font-size: 16px; text-align: center; border-left: 1px solid var(--sf-line); }
  .sf .sf-pg__nav a:first-child{ border-left: 0; }
  .sf .sf-pg__nav em{ display: none; }
  .sf .sf-pg__sec{ padding: 56px 0; }
  .sf .sf-pg__title{ font-size: 26px; letter-spacing: -.78px; }
  .sf .sf-pg__lead{ font-size: 15px; line-height: 25px; margin-top: 14px; }
  .sf .sf-pg__facts{ margin-top: 18px; gap: 6px; }
  .sf .sf-pg__facts li{ padding: 6px 11px; font-size: 12px; }
  .sf .sf-pg__row{ grid-template-columns: 112px minmax(0, 1fr); gap: 16px; padding: 20px 0; }
  .sf .sf-pg__thumb{ aspect-ratio: 1 / 1; }
  .sf .sf-pg__thumb::after{ font-size: 22px; right: 8px; bottom: 4px; }
  .sf .sf-pg__thumb .sf-badge{ left: 6px; top: 6px; font-size: 10px; }
  .sf .sf-pg__hl{ font-size: 17px; margin-top: 6px; }
  .sf .sf-pg__desc{ font-size: 14px; line-height: 22px; }
  .sf .sf-pg__row .sf-pg__desc{ display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .sf .sf-pg__foot{ margin-top: 12px; font-size: 14px; }
  .sf .sf-pg__head--row{ grid-template-columns: minmax(0, 1fr); gap: 14px; margin-bottom: 32px; }
  .sf .sf-pg__duo{ grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .sf .sf-pg__poster:nth-child(2){ margin-top: 0; }
  .sf .sf-pg__poster:nth-child(2) .sf-pg__pimg{ aspect-ratio: 4 / 3; }
  .sf .sf-pg__pcopy{ padding-top: 18px; }
  .sf .sf-pg__feature{ grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .sf .sf-pg__fimg{ aspect-ratio: 4 / 3; }
  .sf .sf-pg__stamp{ width: 84px; height: 84px; font-size: 14px; right: 14px; top: 14px; }
  .sf .sf-pg__card{ margin-top: 24px; padding: 22px 18px 18px; }
  .sf .sf-pg__card .sf-pg__hl{ font-size: 18px; }
}

/* ── 홈 숫자 카드 캐러셀 */
.sf .sf-kpi{ padding: 48px 0 0; }
.sf .sf-kpi__top{ display: flex; align-items: center; justify-content: space-between; min-height: 36px; margin-bottom: 16px; }
.sf .sf-kpi__eyebrow{ margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .2em; color: var(--sf-soft); }
.sf .sf-kpi__rail{ display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3.25); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; outline: none; padding-bottom: 4px; }
.sf .sf-kpi__rail[data-n="1"]{ grid-auto-columns: 100%; }
.sf .sf-kpi__rail[data-n="2"]{ grid-auto-columns: calc((100% - 24px) / 2); }
.sf .sf-kpi__rail[data-n="3"]{ grid-auto-columns: calc((100% - 48px) / 3); }
.sf .sf-kpi__rail::-webkit-scrollbar{ display: none; }
.sf .sf-kpi__card{ scroll-snap-align: start; display: flex; flex-direction: column; min-height: 232px; padding: 28px 28px 26px; border-radius: 14px; background: var(--sf-gray2); color: var(--sf-ink); }
.sf .sf-kpi__card--1{ background: #161618; color: #fff; }
.sf .sf-kpi__card--2{ background: #f3efe8; }
.sf .sf-kpi__card--3{ background: #eef1f4; }
.sf .sf-kpi__card--4{ background: #fff; border: 1px solid var(--sf-line); }
.sf .sf-kpi__label{ display: flex; align-items: center; gap: 10px; margin: 0; font-size: 15px; font-weight: 600; line-height: 22px; color: inherit; }
.sf .sf-kpi__label span{ font-size: 12px; font-weight: 600; letter-spacing: .1em; opacity: .5; }
.sf .sf-kpi__num{ display: flex; align-items: baseline; gap: 4px; margin: auto 0 0; padding-top: 32px; line-height: 1; color: inherit; }
.sf .sf-kpi__num b{ font-size: 56px; font-weight: 700; letter-spacing: -2px; font-variant-numeric: tabular-nums; }
.sf .sf-kpi__num small{ font-size: 20px; font-weight: 600; letter-spacing: -.4px; }
.sf .sf-kpi__desc{ margin: 14px 0 0; min-height: 42px; font-size: 14px; line-height: 21px; color: inherit; opacity: .68; word-break: keep-all; }
@media (max-width: 1023px){
  .sf .sf-kpi__rail, .sf .sf-kpi__rail[data-n="3"]{ grid-auto-columns: calc((100% - 24px) / 2.2); }
}
@media (max-width: 767px){
  .sf .sf-kpi{ padding-top: 28px; }
  .sf .sf-kpi__top{ margin-bottom: 12px; }
  .sf .sf-kpi__rail, .sf .sf-kpi__rail[data-n="2"], .sf .sf-kpi__rail[data-n="3"]{ grid-auto-columns: 74%; gap: 12px; margin-right: calc(var(--sf-side) * -1); padding-right: var(--sf-side); }
  .sf .sf-kpi__rail[data-n="1"]{ grid-auto-columns: 100%; margin-right: 0; padding-right: 0; }
  .sf .sf-kpi__card{ min-height: 196px; padding: 22px 20px 20px; border-radius: 12px; }
  .sf .sf-kpi__num{ padding-top: 24px; }
  .sf .sf-kpi__num b{ font-size: 44px; letter-spacing: -1.5px; }
  .sf .sf-kpi__num small{ font-size: 17px; }
  .sf .sf-kpi__desc{ min-height: 38px; font-size: 13px; line-height: 19px; }
}

/* ── 등대학교 상세 본문 (sf-lh) + 사진 모음 (sf-gal) */
.sf .sf-lh{ color: var(--sf-text); }
.sf .sf-lh p{ margin: 0; }
.sf .sf-lh-eyebrow{ margin: 0 0 14px !important; font-size: 13px; font-weight: 600; letter-spacing: .18em; color: var(--sf-soft); }
.sf .sf-lh-eyebrow span{ margin-right: 4px; letter-spacing: 0; }
.sf .sf-lh-h2{ margin: 0; font-size: 36px; font-weight: 700; line-height: 1.32; letter-spacing: -1px; color: var(--sf-ink); word-break: keep-all; }
.sf .sf-lh-h3{ margin: 0 0 20px; font-size: 20px; font-weight: 600; letter-spacing: -.3px; color: var(--sf-ink); }
.sf .sf-lh-desc{ margin-top: 14px !important; font-size: 17px; line-height: 27px; color: var(--sf-body); }
.sf .sf-lh-desc b{ color: var(--sf-ink); }
.sf .sf-lh-head{ margin-bottom: 40px; }
.sf .sf-lh-sec{ padding: 88px 0; border-top: 1px solid var(--sf-line); }

.sf .sf-lh-hero{ position: relative; aspect-ratio: 21 / 9; border-radius: 14px; overflow: hidden; background: #1b1b1d; color: #fff; }
.sf .sf-lh-hero__video{ position: absolute; inset: 0; pointer-events: none; }
.sf .sf-lh-hero__video iframe{ position: absolute; left: 0; top: 50%; width: 100%; height: auto; aspect-ratio: 16 / 9; transform: translateY(-50%); border: 0; }
.sf .sf-lh-hero::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.55)); }
.sf .sf-lh-hero__copy{ position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center; }
.sf .sf-lh-hero__mark{ font-size: 15px; font-weight: 600; letter-spacing: .08em; }
.sf .sf-lh-hero__title{ margin: 0; font-size: 44px; font-weight: 700; line-height: 1.3; letter-spacing: -1.2px; color: #fff; text-shadow: 0 2px 20px rgba(0,0,0,.25); }
.sf .sf-lh-hero__sub{ font-size: 12px; font-weight: 600; letter-spacing: .2em; opacity: .75; }
.sf .sf-lh-hero__yt{ position: absolute; right: 18px; bottom: 16px; z-index: 2; padding: 7px 12px; border-radius: 100px; background: rgba(255,255,255,.16); color: #fff !important; font-size: 12px; font-weight: 600; text-decoration: none; backdrop-filter: blur(6px); }
.sf .sf-lh-hero__yt:hover{ background: rgba(255,255,255,.28); }

.sf .sf-lh-why{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 48px; border-top: 0; }
.sf .sf-lh-why__text p{ margin-bottom: 20px !important; font-size: 17px; line-height: 30px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-lh-why__text .sf-lh-why__lead{ font-size: 22px; line-height: 36px; font-weight: 500; letter-spacing: -.3px; color: var(--sf-ink); }

.sf .sf-lh-mosaic{ display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: 260px 260px; gap: 16px; margin-bottom: 8px; }
.sf .sf-lh-mosaic figure{ margin: 0; border-radius: 12px; overflow: hidden; background: var(--sf-gray); }
.sf .sf-lh-mosaic__a{ grid-row: span 2; }
.sf .sf-lh-mosaic img{ width: 100%; height: 100%; object-fit: cover; display: block; }

.sf .sf-lh-good{ list-style: none; margin: 0 0 56px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--sf-ink); }
.sf .sf-lh-good li{ padding: 28px 28px 32px 0; border-bottom: 1px solid var(--sf-line); }
.sf .sf-lh-good li + li{ padding-left: 28px; border-left: 1px solid var(--sf-line); }
.sf .sf-lh-good span{ display: block; margin-bottom: 18px; font-size: 40px; font-weight: 700; letter-spacing: -1px; color: #d7cfc2; line-height: 1; }
.sf .sf-lh-good p{ font-size: 18px; line-height: 29px; font-weight: 500; color: var(--sf-ink); word-break: keep-all; }
.sf .sf-lh-meet ul{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.sf .sf-lh-meet li{ padding: 26px 24px; border-radius: 12px; background: #f3efe8; }
.sf .sf-lh-meet b{ display: block; margin-bottom: 10px; font-size: 17px; color: var(--sf-ink); }
.sf .sf-lh-meet p{ font-size: 14px; line-height: 23px; color: var(--sf-body); word-break: keep-all; }

.sf .sf-lh-info__grid{ display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.sf .sf-lh-info__rows{ margin: 0; border-top: 1px solid var(--sf-ink); }
.sf .sf-lh-info__rows > div{ display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--sf-line); font-size: 15px; line-height: 25px; }
.sf .sf-lh-info__rows dt{ font-weight: 600; color: var(--sf-ink); }
.sf .sf-lh-info__rows dd{ margin: 0; color: var(--sf-text); word-break: keep-all; }
.sf .sf-lh-info__rows small{ font-size: 13px; color: var(--sf-muted); }
.sf .sf-lh-dates{ list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sf .sf-lh-dates li{ display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.sf .sf-lh-dates b{ min-width: 30px; font-weight: 600; color: var(--sf-soft); }
.sf .sf-lh-dates em{ font-style: normal; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 100px; background: var(--sf-gray); color: var(--sf-muted); }
.sf .sf-lh-dates em.is-off{ background: #161618; color: #fff; }
.sf .sf-lh-info__cta{ position: sticky; top: calc(var(--sf-head) + 80px); padding: 28px; border-radius: 14px; background: #f3efe8; }
.sf .sf-lh-info__big{ font-size: 28px; font-weight: 700; line-height: 1.3; letter-spacing: -.6px; color: var(--sf-ink); }
.sf .sf-lh-info__big span{ display: block; margin-top: 6px; font-size: 15px; font-weight: 500; letter-spacing: 0; color: var(--sf-body); }
.sf .sf-lh-info__small{ margin: 12px 0 20px !important; font-size: 14px; color: var(--sf-muted); }

.sf .sf-lh-tl{ list-style: none; margin: 0; padding: 0; position: relative; }
.sf .sf-lh-tl::before{ content: ""; position: absolute; left: 7px; top: 12px; bottom: 12px; width: 2px; background: var(--sf-line); }
.sf .sf-lh-tl > li{ position: relative; display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; padding: 0 0 20px 40px; }
.sf .sf-lh-tl > li::before{ content: ""; position: absolute; left: 0; top: 8px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 2px solid #bdbdbd; }
.sf .sf-lh-tl > li.is-off::before{ background: #161618; border-color: #161618; box-shadow: 0 0 0 5px #f3efe8; }
.sf .sf-lh-tl__when{ padding-top: 2px; }
.sf .sf-lh-tl__when b{ display: block; font-size: 18px; color: var(--sf-ink); }
.sf .sf-lh-tl__when span{ display: block; margin-top: 2px; font-size: 15px; color: var(--sf-text); }
.sf .sf-lh-tl__when em{ display: inline-block; margin-top: 8px; font-style: normal; font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 100px; background: var(--sf-gray); color: var(--sf-muted); }
.sf .sf-lh-tl > li.is-off .sf-lh-tl__when em{ background: #161618; color: #fff; }
.sf .sf-lh-tl__acts{ list-style: none; margin: 0; padding: 0; border-radius: 12px; border: 1px solid var(--sf-line); overflow: hidden; }
.sf .sf-lh-tl > li:not(.is-off) .sf-lh-tl__acts{ background: var(--sf-gray2); border-color: transparent; }
.sf .sf-lh-tl__acts li{ display: grid; grid-template-columns: 110px minmax(0, 1fr); column-gap: 16px; padding: 16px 20px; border-top: 1px solid var(--sf-line); }
.sf .sf-lh-tl__acts li:first-child{ border-top: 0; }
.sf .sf-lh-tl__acts time{ grid-column: 1; grid-row: 1 / span 2; font-size: 13px; font-weight: 600; color: var(--sf-soft); font-variant-numeric: tabular-nums; padding-top: 2px; }
.sf .sf-lh-tl__acts b{ grid-column: 2; font-size: 16px; color: var(--sf-ink); }
.sf .sf-lh-tl__acts p{ grid-column: 2; margin-top: 4px !important; font-size: 14px; line-height: 22px; color: var(--sf-body); }

.sf .sf-lh-notice__grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sf .sf-lh-notice__grid > div{ padding: 28px; border-radius: 12px; border: 1px solid var(--sf-line); }
.sf .sf-lh-notice__grid h3{ margin: 0 0 10px; font-size: 19px; font-weight: 600; color: var(--sf-ink); }
.sf .sf-lh-notice__grid p{ font-size: 15px; line-height: 25px; color: var(--sf-body); word-break: keep-all; }

.sf .sf-lh-keepers__grid{ display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.sf .sf-lh-keepers__grid figure{ margin: 0; }
.sf .sf-lh-keepers__grid img{ width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; border-radius: 12px; background: var(--sf-gray); }
.sf .sf-lh-keepers__grid figcaption{ padding-top: 16px; }
.sf .sf-lh-keepers__grid b{ font-size: 18px; color: var(--sf-ink); margin-right: 8px; }
.sf .sf-lh-keepers__grid span{ font-size: 13px; color: var(--sf-muted); }
.sf .sf-lh-keepers__grid q{ display: block; margin-top: 10px; font-size: 14px; line-height: 22px; color: var(--sf-body); quotes: none; word-break: keep-all; }

.sf .sf-lh-voices__grid{ columns: 3; column-gap: 20px; }
.sf .sf-lh-voices__grid figure{ break-inside: avoid; margin: 0 0 20px; padding: 26px 24px 22px; border-radius: 12px; background: var(--sf-gray2); }
.sf .sf-lh-voices__grid blockquote{ margin: 0; padding: 0; border: 0; font-style: normal; font-size: 15px; line-height: 26px; color: var(--sf-text); word-break: keep-all; }
.sf .sf-lh-voices__grid blockquote::before{ content: "“"; display: block; height: 26px; font-size: 44px; line-height: 44px; color: #cbbfae; }
.sf .sf-lh-voices__grid figcaption{ display: flex; align-items: center; gap: 10px; margin-top: 20px; font-size: 13px; color: var(--sf-muted); }
.sf .sf-lh-voices__grid figcaption i{ display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: #161618; color: #fff; font-style: normal; font-size: 13px; font-weight: 600; }
.sf .sf-lh-voices__grid figcaption b{ font-size: 14px; color: var(--sf-ink); }

.sf .sf-gal__count{ margin: -28px 0 20px !important; font-size: 14px; color: var(--sf-muted); }
.sf .sf-gal{ columns: 4; column-gap: 12px; }
.sf .sf-gal__item{ display: block; break-inside: avoid; margin-bottom: 12px; border-radius: 10px; overflow: hidden; background: var(--sf-gray); }
.sf .sf-gal__item[hidden]{ display: none; }
.sf .sf-gal__item img{ width: 100%; height: auto; display: block; cursor: zoom-in; transition: transform .5s; }
.sf .sf-gal__item:hover img{ transform: scale(1.03); }
.sf .sf-gal__more{ margin-top: 24px; text-align: center; }
.sf .sf-gal__more span{ margin-left: 4px; color: var(--sf-soft); }

.sf .sf-lh-end{ position: relative; margin-top: 24px; padding: 120px 24px; border-radius: 14px; overflow: hidden; text-align: center; color: #fff; background: #161618 url("/wp-content/uploads/2023/02/20221004_004709.png") center / cover no-repeat; }
.sf .sf-lh-end::before{ content: ""; position: absolute; inset: 0; background: rgba(10,10,12,.58); }
.sf .sf-lh-end > *{ position: relative; }
.sf .sf-lh-end__mark{ font-size: 32px; }
.sf .sf-lh-end__title{ margin: 16px 0 0; font-size: 38px; font-weight: 700; line-height: 1.32; letter-spacing: -1px; color: #fff; }
.sf .sf-lh-end__sub{ margin-top: 14px !important; font-size: 15px; opacity: .8; }
.sf.sf .sf-lh-end__btn{ margin-top: 28px; background: #fff; color: #161618; border-color: #fff; }

@media (max-width: 1023px){
  .sf .sf-lh-keepers__grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sf .sf-lh-meet ul{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sf .sf-gal{ columns: 3; }
  .sf .sf-lh-voices__grid{ columns: 2; }
}
@media (max-width: 767px){
  .sf .sf-lh-sec{ padding: 56px 0; }
  .sf .sf-lh-h2{ font-size: 26px; letter-spacing: -.7px; }
  .sf .sf-lh-head{ margin-bottom: 28px; }
  .sf .sf-lh-desc{ font-size: 15px; line-height: 24px; }
  .sf .sf-lh-hero{ aspect-ratio: 4 / 5; margin: 0 calc(var(--sf-side) * -1); border-radius: 0; }
  .sf .sf-lh-hero__video iframe{ left: 50%; width: auto; height: 100%; transform: translate(-50%, -50%); }
  .sf .sf-lh-hero__title{ font-size: 28px; letter-spacing: -.8px; }
  .sf .sf-lh-why{ grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .sf .sf-lh-why__text p{ font-size: 15px; line-height: 27px; }
  .sf .sf-lh-why__text .sf-lh-why__lead{ font-size: 18px; line-height: 30px; }
  .sf .sf-lh-mosaic{ grid-template-columns: 1fr 1fr; grid-template-rows: 220px 130px; gap: 8px; }
  .sf .sf-lh-mosaic__a{ grid-row: auto; grid-column: span 2; }
  .sf .sf-lh-good{ grid-template-columns: minmax(0, 1fr); margin-bottom: 40px; }
  .sf .sf-lh-good li, .sf .sf-lh-good li + li{ padding: 20px 0; border-left: 0; }
  .sf .sf-lh-good span{ font-size: 28px; margin-bottom: 10px; }
  .sf .sf-lh-good p{ font-size: 16px; line-height: 26px; }
  .sf .sf-lh-meet ul{ grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .sf .sf-lh-meet li{ padding: 20px; }
  .sf .sf-lh-info__grid{ grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .sf .sf-lh-info__rows > div{ grid-template-columns: 56px minmax(0, 1fr); gap: 10px; font-size: 14px; }
  .sf .sf-lh-dates li{ gap: 6px; }
  .sf .sf-lh-info__cta{ position: static; padding: 22px; }
  .sf .sf-lh-tl > li{ grid-template-columns: minmax(0, 1fr); gap: 12px; padding-left: 32px; }
  .sf .sf-lh-tl__when b, .sf .sf-lh-tl__when span{ display: inline; margin-right: 6px; }
  .sf .sf-lh-tl__when em{ margin-top: 0; }
  .sf .sf-lh-tl__acts li{ grid-template-columns: minmax(0, 1fr); padding: 14px 16px; }
  .sf .sf-lh-tl__acts time, .sf .sf-lh-tl__acts b, .sf .sf-lh-tl__acts p{ grid-column: 1; grid-row: auto; }
  .sf .sf-lh-notice__grid{ grid-template-columns: minmax(0, 1fr); }
  .sf .sf-lh-notice__grid > div{ padding: 22px; }
  .sf .sf-lh-keepers__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .sf .sf-lh-keepers__grid b{ font-size: 16px; display: block; }
  .sf .sf-lh-voices__grid{ columns: 1; }
  .sf .sf-gal{ columns: 2; column-gap: 8px; }
  .sf .sf-gal__item{ margin-bottom: 8px; border-radius: 8px; }
  .sf .sf-gal__count{ margin-top: -16px !important; }
  .sf .sf-lh-end{ padding: 80px 20px; margin: 16px calc(var(--sf-side) * -1) 0; border-radius: 0; }
  .sf .sf-lh-end__title{ font-size: 26px; }
}

/* ── 홈: 숫자 라벨 숨김 (카드 번호 · 섹션 번호 · 사진 위 번호 · 저널 호수) */
.sf .sf-kpi__label span, .sf .sf-pg__eyebrow b{ display: none; }
.sf .sf-pg__thumb::after{ content: none; }
.sf.home .sf-mag__no{ display: none; }

/* ── 서비스 상세 공통 부품 (sf-lh 확장) */
.sf .sf-lh-intro{ padding: 24px 0 72px; text-align: center; }
.sf .sf-lh-intro__title{ margin: 0 auto; max-width: 900px; font-size: 44px; font-weight: 700; line-height: 1.3; letter-spacing: -1.3px; color: var(--sf-ink); word-break: keep-all; }
.sf .sf-lh-intro__lead{ max-width: 760px; margin: 22px auto 0 !important; font-size: 18px; line-height: 30px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-lh-intro__sub{ max-width: 760px; margin: 18px auto 0 !important; font-size: 14px; line-height: 23px; color: var(--sf-muted); word-break: keep-all; }
.sf .sf-lh-bordered{ border-top: 1px solid var(--sf-line); }
.sf .sf-lh-twocol{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.sf .sf-lh-twocol--one{ grid-template-columns: minmax(0, 1fr); }
.sf .sf-lh-checks{ padding: 28px 28px 24px; border-radius: 14px; background: var(--sf-gray2); }
.sf .sf-lh-checks ul{ list-style: none; margin: 0; padding: 0; }
.sf .sf-lh-twocol--one .sf-lh-checks ul{ columns: 2; column-gap: 32px; }
.sf .sf-lh-checks li{ position: relative; break-inside: avoid; padding: 11px 0 11px 32px; border-top: 1px solid var(--sf-line); font-size: 16px; line-height: 25px; color: var(--sf-text); word-break: keep-all; }
.sf .sf-lh-checks li:first-child{ border-top: 0; }
.sf .sf-lh-checks li::before{ content: ""; position: absolute; left: 2px; top: 15px; width: 18px; height: 18px; border-radius: 50%; background: #161618 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 11px no-repeat; }
.sf .sf-lh-meet--2 ul{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.sf .sf-lh-meet--3 ul{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.sf .sf-lh-meet--2 li p, .sf .sf-lh-meet--3 li p{ font-size: 15px; line-height: 25px; }
.sf .sf-lh-note{ margin-top: 20px !important; padding: 16px 20px; border-left: 3px solid #d7cfc2; background: #faf8f4; font-size: 14px; line-height: 23px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-lh-dark{ margin: 0 calc(var(--sf-side) * -1); padding-left: var(--sf-side); padding-right: var(--sf-side); background: #161618; border-radius: 14px; border-top: 0; }
.sf .sf-lh-dark .sf-lh-h2{ color: #fff; }
.sf .sf-lh-dark .sf-lh-eyebrow{ color: rgba(255,255,255,.55); }
.sf .sf-lh-dark .sf-lh-meet li{ background: rgba(255,255,255,.07); }
.sf .sf-lh-dark .sf-lh-meet b{ color: #fff; }
.sf .sf-lh-dark .sf-lh-meet p{ color: rgba(255,255,255,.72); }
.sf .sf-lh-dark .sf-lh-note{ background: rgba(255,255,255,.06); border-left-color: rgba(255,255,255,.3); color: rgba(255,255,255,.75); }
.sf .sf-lh-stats3{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; border-top: 1px solid var(--sf-ink); }
.sf .sf-lh-guide{ display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: center; }
.sf .sf-lh-guide__img img{ width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-radius: 14px; background: var(--sf-gray); }
.sf .sf-lh-guide__text h3{ margin: 0; font-size: 26px; font-weight: 700; letter-spacing: -.5px; color: var(--sf-ink); }
.sf .sf-lh-guide__role{ margin: 8px 0 20px !important; font-size: 15px; color: var(--sf-muted); }
.sf .sf-lh-guide__text > p:not(.sf-lh-guide__role){ margin-bottom: 14px !important; font-size: 16px; line-height: 28px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-lh-guide__creds{ list-style: none; margin: 20px 0 0; padding: 0; border-top: 1px solid var(--sf-ink); }
.sf .sf-lh-guide__creds li{ padding: 10px 2px; border-bottom: 1px solid var(--sf-line); font-size: 14px; line-height: 22px; color: var(--sf-text); }
.sf .sf-lh-voices__grid figure img{ display: block; width: calc(100% + 48px); max-width: none; margin: -26px -24px 18px; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px 12px 0 0; }
.sf .sf-lh-end > .sf-lh-end__bg{ position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; }
.sf .sf-lh-end::before{ z-index: 1; }
.sf .sf-lh-end > *:not(.sf-lh-end__bg){ z-index: 2; }
.sf .sf-lh-faq{ border-top: 1px solid var(--sf-ink); }
.sf .sf-lh-tl__acts li.is-nt{ grid-template-columns: minmax(0, 1fr); }
.sf .sf-lh-tl__acts li.is-nt b, .sf .sf-lh-tl__acts li.is-nt p{ grid-column: 1; }
@media (max-width: 1023px){
  .sf .sf-lh-meet--3 ul{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 767px){
  .sf .sf-lh-intro{ padding: 8px 0 44px; text-align: left; }
  .sf .sf-lh-intro__title{ font-size: 28px; letter-spacing: -.8px; }
  .sf .sf-lh-intro__lead{ font-size: 16px; line-height: 27px; }
  .sf .sf-lh-intro__lead br{ display: none; }
  .sf .sf-lh-twocol{ grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .sf .sf-lh-twocol--one .sf-lh-checks ul{ columns: 1; }
  .sf .sf-lh-checks{ padding: 20px 18px 16px; }
  .sf .sf-lh-checks li{ font-size: 15px; }
  .sf .sf-lh-meet--2 ul, .sf .sf-lh-meet--3 ul{ grid-template-columns: minmax(0, 1fr) !important; }
  .sf .sf-lh-dark{ border-radius: 0; }
  .sf .sf-lh-stats3{ grid-template-columns: minmax(0, 1fr) !important; }
  .sf .sf-lh-stats3 .sf-about__stat{ border-left: 0; border-top: 1px solid var(--sf-line); }
  .sf .sf-lh-stats3 .sf-about__stat:first-child{ border-top: 0; }
  .sf .sf-lh-guide{ grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .sf .sf-lh-guide__img img{ aspect-ratio: 4 / 3; }
}

/* ==========================================================================
   반응형 — 원본 모바일·태블릿 미확인. 아래는 구현 제안값(1024 / 768 기준).
   ========================================================================== */
/* ── 리드 폼 레이어 (관리자 '리드 폼'으로 만든 폼) */
.sf .sf-lead .lf{ display: grid; gap: 20px; margin: 4px 0 0; }
.sf .sf-lead .lf__grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.sf .sf-lead .lf__grid > .field, .sf .sf-lead .lf__sec{ grid-column: 1 / -1; min-width: 0; }
.sf .sf-lead .lf__grid > .field--half{ grid-column: auto; }
.sf .sf-lead .lf__sec{ margin-top: 8px; }
.sf .sf-lead .lf__sec h3{ margin: 0; font-size: 16px; font-weight: 600; line-height: 24px; color: var(--sf-ink); }
.sf .sf-lead .lf__sec p{ margin: 4px 0 0; font-size: 14px; line-height: 22px; color: var(--sf-muted); }
.sf .sf-lead .field > label, .sf .sf-lead .field > .lab{ display: block; margin: 0 0 2px; font-size: 13px; font-weight: 600; line-height: 20px; color: var(--sf-text); }
.sf .sf-lead .field i{ font-style: normal; color: var(--sf-accent); margin-left: 3px; }
.sf .sf-lead input[type=number], .sf .sf-lead input[type=date]{ display: block; width: 100%; height: 48px; padding: 0 2px; border: 0; border-bottom: 1px solid #cfcfcf; border-radius: 0; background: transparent; color: var(--sf-ink); font: inherit; font-size: 16px; color-scheme: light; }
.sf .sf-lead .lf input[type=date]{ color-scheme: light; }
.sf .sf-lead .pills{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.sf .sf-lead .pill{ position: relative; display: inline-flex; margin: 0; cursor: pointer; }
.sf .sf-lead .pill input{ position: absolute; opacity: 0; width: 1px; height: 1px; }
.sf .sf-lead .pill span{ display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border: 1px solid var(--sf-line); border-radius: 999px; font-size: 14px; line-height: 1; color: var(--sf-text); background: #fff; transition: border-color .15s, background .15s, color .15s; }
.sf .sf-lead .pill:hover span{ border-color: #bdbdbd; }
.sf .sf-lead .pill input:checked + span{ background: var(--sf-btn); border-color: var(--sf-btn); color: #fff; }
.sf .sf-lead .pill input:focus-visible + span{ outline: 2px solid var(--sf-accent); outline-offset: 2px; }
.sf .sf-lead .agree{ display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 14px 16px; border-radius: 8px; background: var(--sf-gray2); font-size: 13px; line-height: 20px; color: var(--sf-body); cursor: pointer; }
.sf .sf-lead .agree input{ flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--sf-btn); }
.sf .sf-lead .notice{ margin: 0; padding: 14px 16px; border-radius: 8px; font-size: 14px; line-height: 22px; outline: none; }
.sf .sf-lead .notice--ok{ background: #eef8f1; color: #1e6b3a; }
.sf .sf-lead .notice--err{ background: #fdf0f0; color: #b3261e; }
.sf .sf-lead .hp{ position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.sf.sf .sf-lead .btn{ display: flex; align-items: center; justify-content: center; width: 100%; height: 52px; margin: 4px 0 0; padding: 0 20px; border: 0; border-radius: 4px; background: var(--sf-btn); color: #fff; font: inherit; font-size: 15px; font-weight: 600; line-height: 1; cursor: pointer; white-space: nowrap; }
.sf.sf .sf-lead .btn:hover{ background: #000; }
.sf.sf .sf-lead .btn--line{ background: #fff; color: var(--sf-ink); border: 1px solid #d0d0d0; }
.sf.sf .sf-lead .btn--line:hover{ background: var(--sf-gray2); border-color: #bdbdbd; }
.sf .sf-lead .lf.is-steps .lf__nav .btn{ margin: 0; width: auto; }
.sf .sf-lead .lf__prog{ color: var(--sf-ink); padding-bottom: 4px; scroll-margin-top: 16px; }
.sf .sf-lead .lf__prog-t{ font-size: 13px; color: var(--sf-muted); opacity: 1; }
.sf .sf-lead .lf__prog-name{ color: var(--sf-ink); font-weight: 600; }
.sf .sf-lead .lf__bar{ background: #ececec; }
.sf .sf-lead .lf__bar i{ background: var(--sf-btn); }
.sf .sf-lead .lf__sec p{ white-space: normal; }
.sf .sf-lead .lf__step .lf__sec:first-child{ margin-top: 0; }
.sf .sf-lead .lf__step .lf__sec:first-child h3{ font-size: 18px; line-height: 26px; }
.sf .sf-lead .lf__agree > label.agree{ display: flex; margin: 0; font-size: 14px; font-weight: 500; line-height: 22px; color: var(--sf-ink); }
.sf .sf-lead .lf__help{ margin: 2px 0 6px; font-size: 13px; line-height: 20px; color: var(--sf-muted); opacity: 1; }
.sf .sf-lead .lf__help--q{ margin: 0 0 10px; font-size: 15px; line-height: 24px; color: var(--sf-text); }
@media (max-width: 767px) {
  .sf .sf-lead .lf__grid{ grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1180px) {
  .sf .sf-find span{ display: none; }
  .sf .sf-find{ width: 40px; padding: 0; justify-content: center; }
}
@media (max-width: 1024px) {
  .sf { --sf-side: 24px; }
  .sf .sf-nav, .sf .sf-find, .sf.sf .sf-header__cta{ display: none; }
  .sf .sf-only-m{ display: inline-flex; }
  .sf .sf-header__side{ margin-left: auto; }
  .sf .sf-rail{ grid-auto-columns: calc((100% - 24px) / 2.2); }
  .sf .sf-grid3{ grid-template-columns: repeat(2, 1fr); }
  .sf .sf-hero__title{ font-size: 34px; }
  .sf .sf-hero__frame{ aspect-ratio: 16 / 9; }
  .sf .sf-gallery{ aspect-ratio: 16 / 9; }
  .sf .sf-detail__grid{ grid-template-columns: minmax(0, 1fr); }
  .sf .sf-apply__box{ position: static; }
  .sf .sf-tabs__cta{ display: none; }
  .sf .sf-story__grid{ gap: 32px; }
  .sf .sf-mag__panel{ padding: 26px 22px 4px; }
  .sf .sf-mag__title{ font-size: 18px; line-height: 27px; }
}
@media (max-width: 782px) { .admin-bar .sf-header { top: 46px; } .admin-bar .sf-tabs { top: calc(var(--sf-head) + 46px); } }
@media (max-width: 767px) {
  .sf { --sf-side: 20px; --sf-head: 56px; }
  .sf .sf-header__inner{ padding: 0 8px 0 var(--sf-side); gap: 8px; }
  .sf .sf-logo{ font-size: 15px; }
  .sf .sf-hero{ padding-top: 4px; }
  .sf .sf-hero__frame{ aspect-ratio: 4 / 5; border-radius: 10px; }
  .sf .sf-hero__copy{ padding: 0 24px; justify-content: flex-end; padding-bottom: 72px; }
  .sf .sf-hero__slide::after{ background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0) 60%); }
  .sf .sf-hero__title{ font-size: 26px; line-height: 1.35; }
  .sf .sf-hero__sub{ font-size: 14px; }
  .sf .sf-hero__nav{ display: none; }
  .sf .sf-section{ padding-top: 48px; }
  .sf .sf-h1, .sf .sf-h2{ font-size: 22px; line-height: 30px; letter-spacing: -.44px; }
  .sf .sf-section__head{ flex-wrap: wrap; align-items: flex-start; }
  .sf .sf-section__desc{ font-size: 14px; line-height: 22px; }
  .sf .sf-arrows{ display: none; }
  .sf .sf-rail{ grid-auto-columns: 78%; gap: 14px; margin-right: calc(var(--sf-side) * -1); padding-right: var(--sf-side); }
  .sf .sf-grid3{ grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .sf .sf-pills{ flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(var(--sf-side) * -1); padding-right: var(--sf-side); }
  .sf .sf-pills::-webkit-scrollbar{ display: none; }
  .sf .sf-story__grid{ grid-template-columns: minmax(0, 1fr); }
  .sf .sf-story__title{ font-size: 26px; }
  .sf .sf-mags{ grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .sf .sf-mag__panel{ width: 88%; margin-top: -32px; padding: 20px 16px 4px; }
  .sf .sf-mag__no{ font-size: 22px; margin-bottom: 10px; }
  .sf .sf-mag__title{ font-size: 17px; line-height: 26px; }
  .sf .sf-cta__box{ flex-direction: column; align-items: flex-start; gap: 0; }
  .sf .sf-cta__box > div{ padding: 28px 0 16px; }
  .sf .sf-gallery{ aspect-ratio: 4 / 3; }
  .sf .sf-gallery__nav{ display: none; }
  .sf .sf-detail__title{ font-size: 22px; line-height: 30px; }
  .sf .sf-rows__row{ grid-template-columns: 64px minmax(0, 1fr); }
  .sf .sf-apply{ display: none; }
  .sf .sf-tabs{ margin-top: 28px; }
  .sf .sf-tabs__inner{ height: 48px; }
  .sf .sf-tabs__nav{ gap: 20px; overflow-x: auto; }
  .sf .sf-tabs__nav a{ font-size: 14px; white-space: nowrap; }
  .sf-detail .sf-footer { padding-bottom: 76px; }
  .sf .sf-mbar{ display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 180; align-items: center; justify-content: space-between; gap: 12px; padding: 10px var(--sf-side) calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--sf-line); }
  .sf .sf-mbar__txt{ display: flex; flex-direction: column; min-width: 0; }
  .sf .sf-mbar__txt strong{ font-size: 13px; font-weight: 600; color: var(--sf-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .sf .sf-mbar__txt span{ font-size: 12px; color: var(--sf-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .sf .sf-mbar .sf-btn{ flex: none; height: 44px; }
  .sf .sf-post__head{ padding-top: 32px; padding-bottom: 24px; }
  .sf .sf-post__title{ font-size: 24px; }
  .sf .sf-post__hero{ padding: 0; margin-bottom: 32px; }
  .sf .sf-prose{ font-size: 16px; line-height: 28px; }
  .sf .sf-layer{ padding: 0; align-items: stretch; }
  .sf .sf-layer__panel{ border-radius: 0; min-height: 100%; padding: 16px 20px 32px; box-shadow: none; }
  .sf .sf-finder__list li a{ grid-template-columns: 60px minmax(0, 1fr) auto; gap: 12px; }
  .sf .sf-finder__thumb{ width: 60px; }
  .sf .sf-comments .comment-form{ grid-template-columns: minmax(0, 1fr); }
  .sf .sf-comments .comment-respond{ padding: 20px; }
  .sf .sf-footer{ margin-top: 64px; }
  .sf .sf-footer__inner{ padding: 36px var(--sf-side) 32px; }
  .sf .sf-page-get-help .wp-block-columns{ grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .sf *, .sf *::before, .sf *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ==========================================================================
   홈 숫자 카드 — 컴팩트 · 후기 프로필 사진 · 후기 모아보기(/review/)
   ========================================================================== */
.sf .screen-reader-text{ position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.sf .sf-kpi{ padding-top: 40px; }
.sf .sf-kpi__top{ min-height: 0; margin-bottom: 12px; }
.sf .sf-kpi__rail{ gap: 16px; }
.sf .sf-kpi__rail[data-n="3"]{ grid-auto-columns: calc((100% - 32px) / 3); }
.sf .sf-kpi__card{ min-height: 0; padding: 20px 22px; border-radius: 12px; }
.sf .sf-kpi__label{ font-size: 14px; line-height: 20px; }
.sf .sf-kpi__num{ margin: 0; padding-top: 14px; }
.sf .sf-kpi__num b{ font-size: 40px; letter-spacing: -1.4px; }
.sf .sf-kpi__num small{ font-size: 16px; }
.sf .sf-kpi__desc{ margin-top: 8px; min-height: 0; font-size: 13px; line-height: 19px; }

.sf .sf-avatar{ flex: none; display: block; border-radius: 50%; object-fit: cover; background: var(--sf-gray2); }
.sf .sf-review__head{ align-items: center; }
.sf .sf-rv-who{ display: inline-flex; align-items: center; gap: 8px; min-width: 0; }

.sf .sf-rvall{ padding-bottom: 72px; }
.sf .sf-rvall__bar{ display: flex; flex-direction: column; gap: 16px; margin-bottom: 24px; }
.sf .sf-rvall__chips{ display: flex; flex-wrap: wrap; gap: 8px; }
.sf .sf-rvall__chip{ display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 16px; border: 1px solid var(--sf-line); border-radius: 999px; background: #fff; color: var(--sf-text); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.sf .sf-rvall__chip span{ font-weight: 500; color: var(--sf-soft); }
.sf .sf-rvall__chip:hover{ border-color: var(--sf-ink); }
.sf .sf-rvall__chip.is-on{ background: var(--sf-ink); border-color: var(--sf-ink); color: #fff; }
.sf .sf-rvall__chip.is-on span{ color: rgba(255,255,255,.7); }
.sf .sf-rvall__tools{ display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; border-top: 1px solid var(--sf-line); }
.sf .sf-rvall__count{ margin: 0; font-size: 14px; color: var(--sf-muted); }
.sf .sf-rvall__count b{ color: var(--sf-ink); }
.sf .sf-rvall__sort select{ height: 38px; padding: 0 36px 0 14px; border: 1px solid var(--sf-line); border-radius: 8px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 14px; -webkit-appearance: none; appearance: none; font: inherit; font-size: 14px; color: var(--sf-ink); cursor: pointer; }
.sf .sf-rvall__list{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; list-style: none; margin: 0; padding: 0; }
.sf .sf-rvall__item[hidden]{ display: none; }
.sf .sf-rvall__card{ display: flex; flex-direction: column; gap: 14px; padding: 24px; border: 1px solid var(--sf-line); border-radius: var(--sf-r); background: #fff; }
.sf .sf-rvall__head{ display: flex; align-items: center; gap: 12px; }
.sf .sf-rvall__head div{ display: flex; flex-direction: column; min-width: 0; }
.sf .sf-rvall__name{ font-size: 15px; font-weight: 600; line-height: 21px; color: var(--sf-ink); }
.sf .sf-rvall__head time{ font-size: 12px; line-height: 18px; color: var(--sf-soft); }
.sf .sf-rvall__text{ max-height: 150px; overflow: hidden; font-size: 15px; line-height: 25px; color: var(--sf-body); word-break: keep-all; overflow-wrap: anywhere; }
.sf .sf-rvall__text p{ margin: 0; }
.sf .sf-rvall__card.is-open .sf-rvall__text{ max-height: none; }
.sf .sf-rvall__more{ align-self: flex-start; margin-top: -6px; padding: 0; border: 0; background: none; font: inherit; font-size: 13px; font-weight: 600; color: var(--sf-muted); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.sf .sf-rvall__src{ align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 999px; background: var(--sf-gray2); font-size: 13px; font-weight: 600; color: var(--sf-text) !important; text-decoration: none; }
.sf .sf-rvall__src:hover{ background: var(--sf-line); }
.sf .sf-rvall__foot{ display: flex; justify-content: center; margin-top: 32px; }
.sf .sf-rvall__foot .sf-btn{ min-width: 160px; }
@media (max-width: 1024px) {
  .sf .sf-kpi__rail, .sf .sf-kpi__rail[data-n="3"]{ grid-auto-columns: calc((100% - 16px) / 2.2); }
}
@media (max-width: 768px) {
  .sf .sf-kpi{ padding-top: 24px; }
  .sf .sf-kpi__rail, .sf .sf-kpi__rail[data-n="2"], .sf .sf-kpi__rail[data-n="3"]{ grid-auto-columns: 62%; gap: 10px; }
  .sf .sf-kpi__card{ min-height: 0; padding: 16px 18px; }
  .sf .sf-kpi__num{ padding-top: 10px; }
  .sf .sf-kpi__num b{ font-size: 32px; letter-spacing: -1px; }
  .sf .sf-kpi__num small{ font-size: 14px; }
  .sf .sf-kpi__desc{ font-size: 12px; line-height: 17px; }
  .sf .sf-rvall{ padding-bottom: 48px; }
  .sf .sf-rvall__chips{ flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 calc(var(--sf-side) * -1); padding: 0 var(--sf-side); }
  .sf .sf-rvall__chips::-webkit-scrollbar{ display: none; }
  .sf .sf-rvall__chip{ flex: none; height: 36px; padding: 0 14px; font-size: 13px; }
  .sf .sf-rvall__list{ grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .sf .sf-rvall__card{ padding: 20px; }
}

/* ==========================================================================
   서비스 상세 — 참여자 후기 (카드 · 더 보기 · 후기 남기기)
   ========================================================================== */
.sf .sf-reviews{ background: #f7f7f5; }
.sf .sf-reviews .sf-count{ margin-left: 4px; font-size: .7em; font-weight: 500; color: var(--sf-soft); }
.sf .sf-rvx__head{ align-items: flex-end; }
.sf .sf-rvx__tools{ display: flex; align-items: center; gap: 16px; }
.sf .sf-rvx__list{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; list-style: none; margin: 0; padding: 0; }
.sf .sf-rvx__list > li[hidden]{ display: none; }
.sf .sf-rvx__item{ margin: 0; }
.sf .sf-rvx__card{ display: flex; flex-direction: column; gap: 14px; padding: 24px; border: 1px solid var(--sf-line); border-radius: var(--sf-r); background: #fff; transition: box-shadow .2s, border-color .2s; }
.sf .sf-rvx__item.is-hl > .sf-rvx__card{ border-color: var(--sf-ink); box-shadow: 0 0 0 3px rgba(0,0,0,.06); }
.sf .sf-rvx__who{ display: flex; align-items: center; gap: 12px; }
.sf .sf-rvx__who > div{ display: flex; flex-direction: column; min-width: 0; }
.sf .sf-rvx__name{ font-size: 15px; font-weight: 600; line-height: 21px; color: var(--sf-ink); }
.sf .sf-rvx__name em{ margin-left: 4px; padding: 1px 6px; border-radius: 4px; background: var(--sf-ink); color: #fff; font-size: 11px; font-style: normal; font-weight: 600; vertical-align: 1px; }
.sf .sf-rvx__who time{ font-size: 12px; line-height: 18px; color: var(--sf-soft); }
.sf .sf-rvx__wait{ margin: 0; font-size: 12px; color: var(--sf-accent); }
.sf .sf-rvx__text{ max-height: 150px; overflow: hidden; font-size: 15px; line-height: 25px; color: var(--sf-body); word-break: keep-all; overflow-wrap: anywhere; }
.sf .sf-rvx__text p{ margin: 0 0 8px; }
.sf .sf-rvx__text p:last-child{ margin-bottom: 0; }
.sf .sf-rvx__card.is-open .sf-rvx__text{ max-height: none; }
.sf .sf-rvx__more{ align-self: flex-start; margin-top: -6px; padding: 0; border: 0; background: none; font: inherit; font-size: 13px; font-weight: 600; color: var(--sf-muted); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.sf .sf-rvx .comment-reply-link{ align-self: flex-start; font-size: 12px; color: var(--sf-soft) !important; text-decoration: none; }
.sf .sf-rvx .children{ list-style: none; margin: 8px 0 0 24px; padding: 0; }
.sf .sf-rvx__reply > .sf-rvx__card{ gap: 10px; padding: 18px 20px; background: var(--sf-gray2); border-color: transparent; }
.sf .sf-rvx__reply .sf-rvx__text{ max-height: none; font-size: 14px; line-height: 23px; }
.sf .sf-rvx__foot{ display: flex; justify-content: center; margin-top: 28px; }
.sf .sf-rvx__foot .sf-btn{ min-width: 160px; }
.sf .sf-rvx__foot:has(> [hidden]:only-child){ display: none; }
.sf .sf-rvx__write{ display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 40px; margin-top: 40px; padding: 36px; border-radius: var(--sf-r); background: #fff; border: 1px solid var(--sf-line); scroll-margin-top: calc(var(--sf-head) + 72px); }
.sf .sf-rvx__write-title{ margin: 0 0 10px; font-size: 22px; font-weight: 700; line-height: 30px; letter-spacing: -.3px; color: var(--sf-ink); }
.sf .sf-rvx__write-desc{ margin: 0; font-size: 14px; line-height: 23px; color: var(--sf-muted); word-break: keep-all; }
.sf .sf-rvx .comment-respond{ margin: 0; padding: 0; background: none; border-radius: 0; }
.sf .sf-rvx #reply-title{ display: none; }
.sf .sf-rvx .sf-rvx__reply #reply-title, .sf .sf-rvx .children #reply-title{ display: block; }
.sf .sf-rvx .comment-respond{ scroll-margin-top: calc(var(--sf-head) + 72px); }
.sf .sf-rvx .comment-form textarea{ min-height: 132px; resize: vertical; }
.sf .sf-rvx .comment-form .form-submit{ display: flex; justify-content: flex-end; }
.sf .sf-rvx .comment-form .form-submit .sf-btn{ min-width: 140px; }
.sf .sf-rvx .sf-rvx__field-text{ margin: 0; }
@media (max-width: 1024px) {
  .sf .sf-rvx__write{ grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
@media (max-width: 768px) {
  .sf .sf-rvx__head{ align-items: flex-start; }
  .sf .sf-rvx__tools{ width: 100%; justify-content: space-between; margin-top: 4px; }
  .sf .sf-rvx__list{ grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .sf .sf-rvx__card{ padding: 20px; }
  .sf .sf-rvx .children{ margin-left: 12px; }
  .sf .sf-rvx__write{ margin-top: 28px; padding: 22px 20px; }
  .sf .sf-rvx__write-title{ font-size: 19px; line-height: 27px; }
  .sf .sf-rvx .comment-form .form-submit .sf-btn{ width: 100%; }
}
.sf #comments.sf-rvx .comment, .sf #comments.sf-rvx .pingback{ padding: 0 !important; background: none; border: 0; border-radius: 0 !important; }
.sf .sf-rvx .comment-form input[type=text], .sf .sf-rvx .comment-form input[type=email], .sf .sf-rvx .comment-form textarea{ box-sizing: border-box; width: 100%; padding: 12px 14px; border: 1px solid var(--sf-line); border-radius: 10px; background: #fafafa; font: inherit; font-size: 15px; line-height: 24px; color: var(--sf-ink); transition: border-color .15s, background .15s; }
.sf .sf-rvx .comment-form input[type=text]:focus, .sf .sf-rvx .comment-form input[type=email]:focus, .sf .sf-rvx .comment-form textarea:focus{ outline: 0; border-color: var(--sf-ink); background: #fff; }
.sf .sf-rvx .comment-form input[type=text], .sf .sf-rvx .comment-form input[type=email]{ height: 48px; }

/* ==========================================================================
   상단 메뉴 PROGRAM 드롭다운 (데스크톱)
   ========================================================================== */
.sf .sf-nav__item--mega{ gap: 4px; }
.sf .sf-nav__caret{ width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.sf .sf-nav__item--mega[aria-expanded="true"] .sf-nav__caret{ transform: rotate(180deg); }
.sf .sf-nav__item--mega[aria-expanded="true"]::after{ content: ""; position: absolute; left: 0; right: 18px; bottom: -6px; height: 2px; background: #1a1a1a; }
.sf-mega-on .sf .sf-header, .sf-mega-on .sf-header{ border-bottom-color: var(--sf-line, #ececec); }
.sf .sf-mega{ position: absolute; top: 100%; left: 0; right: 0; z-index: 5; }
.sf .sf-mega[hidden]{ display: none; }
.sf .sf-mega__panel{ position: relative; z-index: 2; background: #fff; border-top: 1px solid var(--sf-line); box-shadow: 0 24px 40px -24px rgba(0,0,0,.18); opacity: 0; transform: translateY(-8px); transition: opacity .18s ease, transform .18s ease; }
.sf .sf-mega.is-on .sf-mega__panel{ opacity: 1; transform: none; }
.sf .sf-mega__dim{ position: absolute; top: 100%; left: 0; right: 0; height: 100vh; z-index: 1; background: rgba(0,0,0,.28); opacity: 0; transition: opacity .18s ease; }
.sf .sf-mega.is-on .sf-mega__dim{ opacity: 1; }
.sf .sf-mega__grid{ display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, .85fr); gap: 40px; padding-top: 32px; padding-bottom: 32px; }
.sf .sf-mega__eyebrow{ display: block; margin: 0 0 14px; font-size: 12px; font-weight: 600; letter-spacing: .14em; color: var(--sf-soft); }
.sf .sf-mega__list{ display: flex; flex-direction: column; gap: 4px; list-style: none; margin: 0; padding: 0; }
.sf .sf-mega__list a{ display: flex; align-items: center; gap: 14px; margin: 0 -10px; padding: 10px; border-radius: 12px; text-decoration: none; transition: background .15s; }
.sf .sf-mega__list a:hover, .sf .sf-mega__list a:focus-visible, .sf .sf-mega__list a[aria-current="page"]{ background: #f5f5f3; }
.sf .sf-mega__thumb{ flex: none; width: 56px; height: 56px; overflow: hidden; border-radius: 10px; background: var(--sf-gray2); }
.sf .sf-mega__thumb img{ display: block; width: 100%; height: 100%; object-fit: cover; }
.sf .sf-mega__txt{ display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sf .sf-mega__txt strong{ font-size: 15px; font-weight: 600; line-height: 22px; color: var(--sf-ink); }
.sf .sf-mega__txt strong em{ margin-left: 4px; padding: 1px 6px; border-radius: 4px; background: #fe4d00; color: #fff; font-size: 11px; font-style: normal; font-weight: 600; vertical-align: 1px; }
.sf .sf-mega__txt > span{ overflow: hidden; font-size: 13px; line-height: 19px; color: var(--sf-muted); white-space: nowrap; text-overflow: ellipsis; }
.sf .sf-mega__feature{ display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: inherit; }
.sf .sf-mega__fimg{ position: relative; display: block; aspect-ratio: 16 / 10; margin-bottom: 12px; overflow: hidden; border-radius: 12px; background: var(--sf-gray2); }
.sf .sf-mega__fimg img{ display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.sf .sf-mega__feature:hover .sf-mega__fimg img{ transform: scale(1.03); }
.sf .sf-mega__fimg .sf-badge{ position: absolute; top: 10px; left: 10px; }
.sf .sf-mega__feature .sf-mega__eyebrow{ margin-bottom: 4px; }
.sf .sf-mega__feature strong{ font-size: 17px; font-weight: 700; line-height: 24px; color: var(--sf-ink); }
.sf .sf-mega__desc{ font-size: 13px; line-height: 20px; color: var(--sf-muted); }
.sf .sf-mega__foot{ border-top: 1px solid var(--sf-line); background: #fafaf9; }
.sf .sf-mega__footin{ display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; }
.sf .sf-mega__link{ padding: 0; border: 0; background: none; font: inherit; font-size: 14px; color: var(--sf-muted); cursor: pointer; }
.sf .sf-mega__link b{ margin-left: 6px; color: var(--sf-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.sf .sf-mega__links{ display: flex; gap: 24px; }
.sf .sf-mega__links a{ font-size: 14px; font-weight: 600; color: var(--sf-ink) !important; text-decoration: none; }
.sf .sf-mega__links a::after{ content: " →"; }
.sf .sf-mega__links a:hover{ text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1024px) { .sf .sf-mega{ display: none !important; } .sf .sf-nav__caret{ display: none; } }

/* 서비스 상세: 마지막 배너와 다음 섹션(후기) 사이 여백 */
.sf .sf-lh > .sf-lh-end:last-child{ margin-bottom: 96px; }
@media (max-width: 768px) { .sf .sf-lh > .sf-lh-end:last-child{ margin-bottom: 48px; } }

/* 서비스 상세 후기: 섹션 아래 여백, 예전 후기 테두리 제거 */
.sf .sf-section.sf-reviews{ padding-bottom: 96px; }
.sf #comments .sf-rvx__item, .sf #comments .sf-rvx__reply{ padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; }
@media (max-width: 768px) { .sf .sf-section.sf-reviews{ padding-bottom: 56px; } }

/* 홈 코칭 묶음: 세로형 카드 */
.sf .sf-pg--coaching .sf-pg__list--v{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; border-top: 0; }
.sf .sf-pg--coaching .sf-pg__list--v[data-n="3"]{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sf .sf-pg--coaching .sf-pg__list--v[data-n="2"]{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sf .sf-pg--coaching .sf-pg__list--v li{ border-bottom: 0; }
.sf .sf-pg--coaching .sf-pg__list--v .sf-pg__row{ display: flex; flex-direction: column; gap: 18px; height: 100%; padding: 0; }
.sf .sf-pg--coaching .sf-pg__list--v .sf-pg__thumb{ aspect-ratio: 3 / 4; }
.sf .sf-pg--coaching .sf-pg__list--v .sf-pg__body{ display: flex; flex-direction: column; flex: 1; }
.sf .sf-pg--coaching .sf-pg__list--v .sf-pg__hl{ font-size: 19px; line-height: 27px; letter-spacing: -.3px; }
.sf .sf-pg--coaching .sf-pg__list--v .sf-pg__desc{ font-size: 14px; line-height: 22px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sf .sf-pg--coaching .sf-pg__list--v .sf-pg__foot{ margin-top: auto; padding-top: 16px; border-top: 1px solid var(--sf-line); }
.sf .sf-pg--coaching .sf-pg__list--v .sf-pg__body > .sf-pg__desc{ margin-bottom: 18px; }
@media (max-width: 1024px) {
  .sf .sf-pg--coaching .sf-pg__list--v, .sf .sf-pg--coaching .sf-pg__list--v[data-n="3"]{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
}
@media (max-width: 768px) {
  .sf .sf-pg--coaching .sf-pg__list--v, .sf .sf-pg--coaching .sf-pg__list--v[data-n="3"], .sf .sf-pg--coaching .sf-pg__list--v[data-n="2"]{ grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 72%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc(var(--sf-side) * -1); padding-right: var(--sf-side); }
  .sf .sf-pg--coaching .sf-pg__list--v::-webkit-scrollbar{ display: none; }
  .sf .sf-pg--coaching .sf-pg__list--v li{ scroll-snap-align: start; }
  .sf .sf-pg--coaching .sf-pg__list--v .sf-pg__row{ gap: 14px; padding: 0; display: flex; }
  .sf .sf-pg--coaching .sf-pg__list--v .sf-pg__thumb{ aspect-ratio: 3 / 4; }
  .sf .sf-pg--coaching .sf-pg__list--v .sf-pg__hl{ font-size: 17px; line-height: 24px; }
}

/* 홈: 소개 + 숫자를 하나의 섹션으로 */
.sf .sf-intro{ padding-top: 48px; }
.sf .sf-intro__box{ padding: 56px; border-radius: 20px; background: #f6f4f0; }
.sf .sf-intro__grid{ display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.sf .sf-intro__media{ overflow: hidden; border-radius: 14px; aspect-ratio: 4 / 3; background: var(--sf-gray); }
.sf .sf-intro__media img{ display: block; width: 100%; height: 100%; object-fit: cover; }
.sf .sf-intro__title{ margin: 0 0 20px; font-size: 34px; font-weight: 700; line-height: 1.35; letter-spacing: -.8px; color: var(--sf-ink); }
.sf .sf-intro__text > p:not(.sf-eyebrow){ margin: 0 0 12px; font-size: 15px; line-height: 26px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-intro__text .sf-btn{ margin-top: 16px; background: #fff; }
.sf .sf-intro__stats{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 48px 0 0; padding: 32px 0 0; border-top: 1px solid rgba(0,0,0,.1); }
.sf .sf-intro__stats[data-n="2"]{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sf .sf-intro__stats[data-n="4"]{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sf .sf-intro__stat{ padding: 0 32px; border-left: 1px solid rgba(0,0,0,.1); }
.sf .sf-intro__stat:first-child{ padding-left: 0; border-left: 0; }
.sf .sf-intro__stat dt{ margin: 0; font-size: 14px; font-weight: 600; line-height: 20px; color: var(--sf-text); }
.sf .sf-intro__num{ display: flex; align-items: baseline; gap: 4px; margin: 10px 0 0; line-height: 1; color: var(--sf-ink); }
.sf .sf-intro__num b{ font-size: 44px; font-weight: 700; letter-spacing: -1.6px; font-variant-numeric: tabular-nums; }
.sf .sf-intro__num small{ font-size: 17px; font-weight: 600; }
.sf .sf-intro__desc{ margin: 10px 0 0; font-size: 13px; line-height: 19px; color: var(--sf-muted); word-break: keep-all; }
@media (max-width: 1024px) {
  .sf .sf-intro__box{ padding: 40px; }
  .sf .sf-intro__grid{ grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .sf .sf-intro__stat{ padding: 0 20px; }
  .sf .sf-intro__num b{ font-size: 36px; }
}
@media (max-width: 768px) {
  .sf .sf-intro{ padding-top: 24px; }
  .sf .sf-intro__box{ margin: 0 calc(var(--sf-side) * -1); padding: 28px var(--sf-side) 24px; border-radius: 0; }
  .sf .sf-intro__grid{ gap: 24px; }
  .sf .sf-intro__title{ font-size: 26px; margin-bottom: 14px; }
  .sf .sf-intro__stats, .sf .sf-intro__stats[data-n="2"], .sf .sf-intro__stats[data-n="4"]{ grid-template-columns: minmax(0, 1fr); margin-top: 28px; padding-top: 4px; }
  .sf .sf-intro__stat{ display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; column-gap: 12px; padding: 16px 0; border-left: 0; border-bottom: 1px solid rgba(0,0,0,.08); }
  .sf .sf-intro__stat:last-child{ border-bottom: 0; padding-bottom: 4px; }
  .sf .sf-intro__num{ margin: 0; grid-column: 2; grid-row: 1; }
  .sf .sf-intro__num b{ font-size: 28px; letter-spacing: -1px; }
  .sf .sf-intro__num small{ font-size: 14px; }
  .sf .sf-intro__desc{ grid-column: 1 / -1; margin-top: 4px; font-size: 12px; line-height: 17px; }
}

/* 홈: 함께한 기업과 기관 — 모노톤 로고 자동 롤링 */
.sf .sf-clients-home{ padding-top: 56px; }
.sf .sf-marquee{ position: relative; display: flex; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.sf .sf-marquee__track{ flex: none; display: flex; align-items: center; gap: 72px; margin: 0; padding: 8px 36px; list-style: none; animation: sf-marquee 48s linear infinite; }
.sf .sf-marquee:hover .sf-marquee__track{ animation-play-state: paused; }
@keyframes sf-marquee{ from{ transform: translateX(0); } to{ transform: translateX(-100%); } }
.sf .sf-marquee__item{ flex: none; display: flex; align-items: center; height: 48px; }
.sf .sf-marquee__item img{ display: block; max-width: 150px; max-height: 40px; width: auto; height: auto; filter: grayscale(1) contrast(.9); opacity: .55; transition: opacity .2s; }
.sf .sf-marquee__item span{ font-size: 19px; font-weight: 700; letter-spacing: -.4px; color: #9a9a9e; white-space: nowrap; transition: color .2s; }
.sf .sf-marquee__item:hover img{ opacity: .9; }
.sf .sf-marquee__item:hover span{ color: #4a4a4d; }
@media (max-width: 768px) {
  .sf .sf-clients-home{ padding-top: 40px; }
  .sf .sf-marquee__track{ gap: 44px; padding: 4px 22px; animation-duration: 36s; }
  .sf .sf-marquee__item{ height: 36px; }
  .sf .sf-marquee__item img{ max-width: 110px; max-height: 30px; }
  .sf .sf-marquee__item span{ font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .sf .sf-marquee{ overflow-x: auto; }
  .sf .sf-marquee__track{ animation: none; }
  .sf .sf-marquee__track[aria-hidden]{ display: none; }
}

/* 소개: 대표 코치 배너 (사진 + 어두운 배경) */
.sf .sf-about__block.sf-founder{ position: relative; display: block; min-height: 600px; margin: 72px 0; padding: 72px 64px; border: 0; border-radius: 14px; overflow: hidden; background: #161618; color: #fff; }
.sf .sf-founder__media{ position: absolute; top: 0; right: 0; bottom: 0; width: 50%; margin: 0; }
.sf .sf-founder__media img{ display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.sf .sf-founder__media::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #161618 0%, rgba(22,22,24,.55) 28%, rgba(22,22,24,0) 62%); }
.sf .sf-founder__body{ position: relative; z-index: 2; max-width: 54%; }
.sf .sf-founder .sf-eyebrow{ color: rgba(255,255,255,.6); }
.sf .sf-founder__name{ margin: 0; font-size: 40px; font-weight: 700; line-height: 1.25; letter-spacing: -1px; color: #fff; }
.sf .sf-founder__role{ margin: 12px 0 0; font-size: 14px; line-height: 22px; color: rgba(255,255,255,.66); }
.sf .sf-founder__lead{ margin: 36px 0 0; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.16); font-size: 21px; font-weight: 600; line-height: 1.5; letter-spacing: -.3px; color: #fff; word-break: keep-all; }
.sf .sf-founder__text{ margin-top: 20px; }
.sf .sf-founder__text p{ margin: 0 0 18px; font-size: 15px; line-height: 27px; color: rgba(255,255,255,.78); }
.sf .sf-founder__text p:last-child{ margin-bottom: 0; }
@media (max-width: 1024px) {
  .sf .sf-about__block.sf-founder{ padding: 56px 40px; min-height: 0; }
  .sf .sf-founder__media{ width: 46%; }
  .sf .sf-founder__body{ max-width: 60%; }
  .sf .sf-founder__text br{ display: none; }
}
@media (max-width: 768px) {
  .sf .sf-about__block.sf-founder{ margin: 40px calc(var(--sf-side) * -1); padding: 0 0 36px; border-radius: 0; }
  .sf .sf-founder__media{ position: relative; width: 100%; aspect-ratio: 4 / 5; }
  .sf .sf-founder__media::after{ background: linear-gradient(180deg, rgba(22,22,24,0) 55%, #161618 100%); }
  .sf .sf-founder__body{ max-width: none; margin-top: -72px; padding: 0 var(--sf-side); }
  .sf .sf-founder__name{ font-size: 32px; }
  .sf .sf-founder__lead{ margin-top: 24px; padding-top: 20px; font-size: 18px; }
  .sf .sf-founder__text p{ font-size: 14px; line-height: 25px; }
}

/* 후기 목록 벽돌형: 줄 간격은 카드 아래 여백으로 */
.sf [data-sf-masonry].is-masonry{ grid-auto-rows: 4px; row-gap: 0 !important; align-items: start; }
.sf .sf-rvall__list{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1024px) { .sf .sf-rvall__list{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) { .sf .sf-rvall__list{ grid-template-columns: minmax(0, 1fr); } }

/* 홈: OUR SCHOLE 벤토 */
.sf .sf-bento{ padding-top: 96px; }
.sf .sf-bento__head{ margin-bottom: 48px; }
.sf .sf-bento__title{ margin: 0; font-size: 40px; font-weight: 700; line-height: 1.3; letter-spacing: -1px; color: var(--sf-ink); }
.sf .sf-bento__desc{ margin: 16px 0 0; font-size: 16px; line-height: 26px; color: var(--sf-muted); word-break: keep-all; }
.sf .sf-bento__grid{ display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
.sf .sf-bento__card{ position: relative; min-height: 440px; padding: 44px; overflow: hidden; border-radius: 24px; background: #f5f5f4; }
.sf .sf-bento__card--1{ grid-column: span 5; }
.sf .sf-bento__card--2{ grid-column: span 7; }
.sf .sf-bento__card--3{ grid-column: span 7; }
.sf .sf-bento__card--photo{ grid-column: span 5; display: flex; align-items: flex-end; padding: 40px; background: #161618; }
.sf .sf-bento__label{ margin: 0; font-size: 24px; font-weight: 700; line-height: 1.4; letter-spacing: -.4px; color: var(--sf-ink); }
.sf .sf-bento__num{ display: flex; align-items: baseline; gap: 6px; margin: 18px 0 0; line-height: 1; color: var(--sf-ink); }
.sf .sf-bento__num b{ font-size: 64px; font-weight: 800; letter-spacing: -2.4px; font-variant-numeric: tabular-nums; }
.sf .sf-bento__num small{ font-size: 22px; font-weight: 700; }
.sf .sf-bento__text{ position: relative; z-index: 1; max-width: 340px; margin: 18px 0 0; font-size: 15px; line-height: 26px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-bento__peek{ position: absolute; right: 44px; bottom: 0; width: 40%; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 18px 18px 0 0; box-shadow: 0 -2px 30px rgba(0,0,0,.08); }
.sf .sf-bento__card--3 .sf-bento__peek{ width: 52%; aspect-ratio: 16 / 9; }
.sf .sf-bento__peek img{ display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.sf .sf-bento__card:hover .sf-bento__peek img{ transform: scale(1.04); }
.sf .sf-bento__bg{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 40% 30%; }
.sf .sf-bento__card--photo::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 25%, rgba(0,0,0,.72) 100%); }
.sf .sf-bento__over{ position: relative; z-index: 2; color: #fff; }
.sf .sf-bento__over h3{ margin: 0; font-size: 30px; font-weight: 700; line-height: 1.35; letter-spacing: -.6px; color: #fff; }
.sf .sf-bento__over p{ margin: 14px 0 0; font-size: 15px; line-height: 24px; color: rgba(255,255,255,.86); word-break: keep-all; }
.sf .sf-bento__btn{ display: inline-flex; align-items: center; gap: 8px; height: 50px; margin-top: 24px; padding: 0 24px; border-radius: 999px; background: #fff; color: #161618 !important; font-size: 15px; font-weight: 700; text-decoration: none; transition: transform .2s; }
.sf .sf-bento__btn svg{ width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.sf .sf-bento__btn:hover svg{ transform: translateX(3px); }
@media (max-width: 1024px) {
  .sf .sf-bento__card--1, .sf .sf-bento__card--2, .sf .sf-bento__card--3, .sf .sf-bento__card--photo{ grid-column: span 12; }
  .sf .sf-bento__card{ min-height: 360px; }
}
@media (max-width: 768px) {
  .sf .sf-bento{ padding-top: 64px; }
  .sf .sf-bento__head{ margin-bottom: 28px; }
  .sf .sf-bento__title{ font-size: 28px; }
  .sf .sf-bento__desc{ font-size: 14px; line-height: 23px; }
  .sf .sf-bento__grid{ gap: 12px; }
  .sf .sf-bento__card{ min-height: 0; padding: 28px 24px; border-radius: 18px; }
  .sf .sf-bento__card--2, .sf .sf-bento__card--3{ padding-bottom: 0; }
  .sf .sf-bento__label{ font-size: 18px; }
  .sf .sf-bento__num b{ font-size: 44px; letter-spacing: -1.6px; }
  .sf .sf-bento__num small{ font-size: 17px; }
  .sf .sf-bento__text{ font-size: 14px; line-height: 23px; }
  .sf .sf-bento__peek, .sf .sf-bento__card--3 .sf-bento__peek{ position: relative; right: auto; display: block; width: 100%; margin-top: 24px; aspect-ratio: 16 / 9; }
  .sf .sf-bento__card--photo{ min-height: 420px; padding: 28px 24px; }
  .sf .sf-bento__over h3{ font-size: 24px; }
  .sf .sf-bento__over p br{ display: none; }
}

/* 홈 코칭: 벤토형 */
.sf .sf-pg--coaching .sf-bento__head{ max-width: 720px; }
.sf .sf-cb__card{ display: flex; flex-direction: column; color: inherit !important; text-decoration: none !important; transition: background .2s; }
.sf .sf-cb__card:not(.sf-bento__card--photo):hover{ background: #efefed; }
.sf .sf-cb__meta{ display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--sf-muted); }
.sf .sf-cb__meta em{ padding: 2px 7px; border-radius: 4px; background: #fe4d00; color: #fff; font-size: 11px; font-style: normal; font-weight: 700; }
.sf .sf-cb__h{ display: block; margin-top: 12px; font-size: 26px; font-weight: 700; line-height: 1.38; letter-spacing: -.5px; color: var(--sf-ink); word-break: keep-all; }
.sf .sf-cb__p{ position: relative; z-index: 1; display: block; max-width: 380px; margin-top: 14px; font-size: 15px; line-height: 26px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-cb__foot{ display: flex; align-items: center; gap: 16px; margin-top: auto; padding-top: 28px; font-size: 15px; color: var(--sf-ink); }
.sf .sf-cb__foot b{ font-weight: 700; }
.sf .sf-cb__card .sf-bento__peek ~ *, .sf .sf-cb__card .sf-cb__foot{ position: relative; z-index: 1; }
.sf .sf-cb__card:has(.sf-bento__peek) .sf-cb__foot{ max-width: 44%; flex-direction: column; align-items: flex-start; gap: 6px; }
.sf .sf-cb__card .sf-bento__peek{ width: 44%; aspect-ratio: 4 / 3; }
.sf .sf-cb__card.sf-bento__card--photo .sf-cb__meta{ color: rgba(255,255,255,.72); }
.sf .sf-cb__card.sf-bento__card--photo .sf-cb__h{ color: #fff; font-size: 28px; }
.sf .sf-cb__card.sf-bento__card--photo .sf-cb__p{ color: rgba(255,255,255,.86); }
.sf .sf-cb__card.sf-bento__card--photo .sf-bento__bg{ object-position: 50% 25%; transition: transform .6s; }
.sf .sf-cb__card.sf-bento__card--photo:hover .sf-bento__bg{ transform: scale(1.03); }
@media (max-width: 1024px) {
  .sf .sf-cb__card{ grid-column: span 12 !important; }
}
@media (max-width: 768px) {
  .sf .sf-cb__h, .sf .sf-cb__card.sf-bento__card--photo .sf-cb__h{ font-size: 21px; }
  .sf .sf-cb__p{ font-size: 14px; line-height: 23px; }
  .sf .sf-cb__card:has(.sf-bento__peek) .sf-cb__foot{ max-width: none; flex-direction: row; align-items: center; }
  .sf .sf-cb__foot{ padding-top: 20px; }
  .sf .sf-cb__card .sf-bento__peek{ width: 100%; aspect-ratio: 16 / 9; }
}
.sf .sf-cb__card.sf-bento__card--photo{ justify-content: flex-end; }
.sf .sf-cb__card .sf-bento__over, .sf .sf-cb__card .sf-bento__over > span{ display: block; }
.sf .sf-cb__card .sf-bento__over .sf-bento__btn{ display: inline-flex; }
.sf .sf-cb__card .sf-bento__over .sf-cb__meta{ display: flex; }
/* 로고: 모노톤(검정 실루엣)으로 통일 */
.sf .sf-marquee__item img{ filter: grayscale(1) brightness(0); opacity: .42; }
.sf .sf-marquee__item:hover img{ opacity: .75; }
.sf .sf-clients-home{ padding-top: 72px; }
.sf .sf-clients-home + .sf-bento{ padding-top: 72px; }

/* 홈 프로그램 묶음 공통(벤토형): 배경 통일 */
.sf .sf-pg--movement.sf-pgb, .sf .sf-pg--school.sf-pgb{ background: transparent; color: inherit; }
.sf .sf-pgb{ padding: 96px 0 0; }
.sf .sf-pgb .sf-bento__head{ max-width: 720px; }
.sf .sf-pgb + .sf-pgb{ padding-top: 120px; }
/* 한 개짜리 넓은 카드 (인생학교) */
.sf .sf-cb__card--wide{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 48px; align-items: stretch; min-height: 0; padding: 44px; }
.sf .sf-cb__wtext{ display: flex; flex-direction: column; }
.sf .sf-cb__wimg{ display: block; overflow: hidden; border-radius: 18px; min-height: 360px; }
.sf .sf-cb__wimg img{ display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.sf .sf-cb__card--wide:hover .sf-cb__wimg img{ transform: scale(1.03); }
.sf .sf-cb__card--wide:hover{ background: #f5f5f4 !important; }
.sf .sf-cb__dl{ display: grid; gap: 10px; margin: 24px 0 0; padding: 20px 0 0; border-top: 1px solid rgba(0,0,0,.08); }
.sf .sf-cb__dl > div{ display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 12px; font-size: 14px; line-height: 22px; }
.sf .sf-cb__dl dt{ color: var(--sf-muted); }
.sf .sf-cb__dl dd{ margin: 0; color: var(--sf-ink); font-weight: 600; word-break: keep-all; }
.sf .sf-cb__btns{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 28px; }
.sf .sf-cb__btns .sf-btn--line{ background: #fff; }
@media (max-width: 1024px) {
  .sf .sf-cb__card--wide{ grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .sf .sf-cb__wimg{ order: -1; min-height: 0; aspect-ratio: 16 / 9; }
}
@media (max-width: 768px) {
  .sf .sf-pgb{ padding-top: 64px; }
  .sf .sf-pgb + .sf-pgb{ padding-top: 80px; }
  .sf .sf-cb__card--wide{ padding: 20px 20px 24px; gap: 20px; }
  .sf .sf-cb__btns .sf-btn{ flex: 1; }
}
/* 무브먼트 예전 흰 글씨 스타일 무효화 */
.sf .sf-pgb .sf-cb__card:not(.sf-bento__card--photo) .sf-pg__go{ color: var(--sf-muted); }
.sf .sf-pgb .sf-cb__card:not(.sf-bento__card--photo):hover .sf-pg__go{ color: var(--sf-ink); }
.sf .sf-pgb .sf-cb__foot{ color: var(--sf-ink); }
/* 홈 저널: 벤토형 */
.sf .sf-bento__headrow{ align-items: flex-end; margin-bottom: 48px; }
.sf .sf-bento__headrow .sf-bento__head{ margin-bottom: 0; }
.sf .sf-journal-home.sf-pgb{ padding-top: 120px; }
.sf .sf-jb__card .sf-cb__h{ font-size: 23px; line-height: 1.42; }
.sf .sf-jb__card.sf-bento__card--photo .sf-cb__h{ font-size: 24px; }
@media (max-width: 768px) {
  .sf .sf-bento__headrow{ margin-bottom: 28px; }
  .sf .sf-journal-home.sf-pgb{ padding-top: 80px; }
  .sf .sf-jb__card .sf-cb__h, .sf .sf-jb__card.sf-bento__card--photo .sf-cb__h{ font-size: 19px; }
}
.sf .sf-cb__card:has(.sf-bento__peek) .sf-cb__p{ max-width: min(380px, calc(56% - 40px)); }
@media (max-width: 768px) { .sf .sf-cb__card:has(.sf-bento__peek) .sf-cb__p{ max-width: none; } }
/* 홈 저널: 대표 글 + 2열 */
.sf .sf-jf{ padding-top: 120px; }
.sf .sf-jf__item{ display: block; color: inherit !important; text-decoration: none !important; }
.sf .sf-jf__img{ display: block; overflow: hidden; border-radius: 16px; aspect-ratio: 2.35 / 1; background: var(--sf-gray2); }
.sf .sf-jf__item--big .sf-jf__img{ aspect-ratio: 2.12 / 1; }
.sf .sf-jf__img img{ display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.sf .sf-jf__item:hover .sf-jf__img img{ transform: scale(1.03); }
.sf .sf-jf__meta{ display: block; margin-top: 28px; font-size: 13px; font-weight: 700; color: #d9731a; }
.sf .sf-jf__title{ display: block; margin-top: 10px; font-size: 22px; font-weight: 700; line-height: 1.4; letter-spacing: -.4px; color: var(--sf-ink); word-break: keep-all; }
.sf .sf-jf__item--big .sf-jf__title{ font-size: 30px; letter-spacing: -.6px; }
.sf .sf-jf__desc{ display: block; max-width: 640px; margin-top: 12px; font-size: 15px; line-height: 26px; color: var(--sf-body); word-break: keep-all; }
.sf .sf-jf__item:hover .sf-jf__title{ text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.sf .sf-jf__grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 48px; }
@media (max-width: 768px) {
  .sf .sf-jf{ padding-top: 80px; }
  .sf .sf-jf__grid{ grid-template-columns: minmax(0, 1fr); gap: 36px; margin-top: 40px; }
  .sf .sf-jf__img, .sf .sf-jf__item--big .sf-jf__img{ aspect-ratio: 16 / 9; border-radius: 12px; }
  .sf .sf-jf__meta{ margin-top: 16px; }
  .sf .sf-jf__title, .sf .sf-jf__item--big .sf-jf__title{ font-size: 20px; }
  .sf .sf-jf__desc{ font-size: 14px; line-height: 23px; }
}
