/* ============================================================
 * BSN 테마 — 디자인 시스템 (R6)
 *
 * 이 파일은 wp-content/themes/bsn/assets/css/bsn-design-system.css 를
 * 통째로 교체한다. 덧대는 블록이 아니라 전체 재작성이다.
 *
 * 로드 순서는 기존과 동일:
 *   1. bsn.css              테마 기본값·공통 컴포넌트·레거시 호환
 *   2. bsn-r3-mobile.css    반응형 경험·모바일 상호작용
 *   3. bsn-design-system.css  ← 이 파일. 현행 토큰·위계·최종 정합
 *
 * R5 → R6 변경 요약은 handoff/05-consolidation-guide.md 참조.
 * 주요 정리:
 *   - R5 / R5.1 / R5.2 / R5.3 의 후속 덧대기 블록을 역할별 섹션으로 병합
 *   - 중복 선언 14건 제거 (같은 선택자에 대한 재선언)
 *   - 죽은 토큰 2개 제거 (--fs-display:56px 미사용, --fs-h1-post 미참조)
 *   - !important 2건 제거 (폼 포커스 — 이 파일이 마지막에 로드되므로 불필요)
 *   - 행간 15종 → 5개, 자간 10종 → 7개, 간격 4단 → 10단 역할 토큰
 * ============================================================ */


/* ============================================================
 * 1. 토큰
 * ============================================================ */

:root{
  /* --- 구조 --------------------------------------------------- */
  --bsn-header-h:72px;
  --bsn-sticky-top:calc(var(--bsn-header-h) + 24px);
  --bsn-anchor-offset:calc(var(--bsn-header-h) + 16px);
  --bsn-bottom-fixed:0px;
  --bsn-gutter:clamp(20px,4vw,40px);

  /* --- 색: 잉크(정보)와 액센트(조작) 분리 ----------------------
     --bsn-ink      H1·H2·H3·카드 제목·표 강조 셀
     --bsn-accent   링크·버튼·칩 활성·룰·포커스 링·분류 라벨
     흰 배경 대비 각각 약 16.3:1 / 14.6:1 — 접근성 등급 영향 없음 */
  --bsn-ink:#111b2b;

  /* --- 타입 스케일 (데스크톱 >=1024px) ------------------------- */
  --fs-display:48px;      /* 히어로 H1 */
  --fs-h1:38px;           /* 페이지 H1 + 글 H1 */
  --fs-h2:28px;           /* 1차 씬 섹션 제목 + 본문 H2 */
  --fs-h2-support:22px;   /* 보조 씬 섹션 제목 */
  --fs-h3:21px;           /* 소제목 · 인용문 */
  --fs-card-title:19px;   /* 목록 카드 제목 */
  --fs-lead:19px;         /* 리드 문장 */
  --fs-body:18px;
  --fs-ui:16px;
  --fs-small:15px;
  --fs-meta:13px;

  /* --- 행간 --------------------------------------------------- */
  --lh-display:1.2;       /* 48px 이상 */
  --lh-title:1.32;        /* 28~38px */
  --lh-snug:1.5;          /* 19~22px */
  --lh-body:1.8;          /* 16~19px */
  --lh-meta:1.6;          /* 13~15px */

  /* --- 자간: 글자가 커질수록 좁히고, 숫자에는 주지 않는다 ------- */
  --ls-display:-.035em;
  --ls-title:-.028em;
  --ls-head:-.02em;
  --ls-body:-.012em;
  --ls-meta:-.005em;
  --ls-numeral:0;
  --ls-stat:-.02em;       /* 지표 값 — 숫자와 한글 단위가 섞이는 예외 */
  --ls-label-latin:.08em;
  --ls-label-ko:.04em;

  /* --- 간격 --------------------------------------------------- */
  --sp-scene:96px;        /* 씬 사이 간격 */
  --sp-scene-pad:80px;    /* 색 있는 씬 내부 패딩 */
  --sp-section:64px;
  --sp-lg:48px;
  --sp-prose:34px;        /* 본문 단락 간격. 본문 행간 32.4px보다 크게 */
  --sp-block:32px;
  --sp-md:24px;
  --sp-item:16px;
  --sp-xs:8px;
  --sp-2xs:4px;
  --pad-card:28px;

  /* --- 측정 축: AGENTS.md 규정 4축 ----------------------------- */
  --measure-shell:1120px;
  --measure-wide:960px;   /* 대표 이미지 */
  --measure-table:840px;  /* 표 */
  --measure-title:760px;  /* 글 제목 · 정리 카드 */
  --measure-post:680px;   /* 본문 */

  /* --- 최소 터치 영역 ----------------------------------------- */
  --hit-primary:48px;
  --hit-secondary:44px;
  --hit-dense:40px;

  /* --- 레거시 별칭 (bsn.css · bsn-r3-mobile.css 가 참조) -------- */
  --bsn-shell:var(--measure-shell);
  --bsn-measure-post:var(--measure-post);
  --bsn-measure-narrow:var(--measure-post);
  --bsn-measure-table:var(--measure-table);
  --bsn-measure-wide:var(--measure-wide);
}


/* ============================================================
 * 2. 구조 — 헤더 높이 · 고정 요소 · 앵커 오프셋
 * ============================================================ */

.bsn-header{padding-inline:0}
.bsn-header__inner,.bsn-nav a{height:var(--bsn-header-h)}
.bsn-archive>.bsn-chips{top:var(--bsn-header-h)}
.bsn-consult__card,.bsn-special-page .bsn-faq__head,.bsn-legal__toc{top:var(--bsn-sticky-top)}

.bsn-prose>h2[id],
.bsn-legal__content>h2,
.bsn-legal__content>section>h2,
.bsn-services-page__item,
.bsn-services-page__contact,
.bsn-press__books,
.bsn-anchor-alias,
#services,#about,
.bsn-home [id],
.bsn-services-page__group{scroll-margin-top:var(--bsn-anchor-offset)}

/* 공통 거터. 전폭 단체사진은 내부 거터를 갖지 않는다.
   .bsn-header 는 이 목록에 넣지 않는다. 거터는 안쪽 .bsn-header__inner.bsn-shell 이
   이미 갖고 있어, 헤더에도 주면 이중 거터가 되어 아래 콘텐츠와 좌우 시작점이 어긋난다. */
.bsn-shell,.bsn-section,.bsn-archive__head,.bsn-chips,.bsn-featured,
.bsn-all-posts,.bsn-band,.bsn-footer{padding-inline:var(--bsn-gutter)}
.bsn-shell.bsn-team-photo{padding-inline:0}


/* ============================================================
 * 3. 색 — 잉크 배선
 * 네이비 배경 위 제목(.bsn-band h2, .bsn-summary, FAQ CTA)은 흰색을 유지하므로
 * 이 목록에 넣지 않는다.
 * ============================================================ */

.bsn-hero__title,
.bsn-section-title,
.bsn-post__title,
.bsn-services-page__hero h1,
.bsn-services-page__group>header h2,
.bsn-services-page__item-title,
.bsn-consult__intro h1,
.bsn-consult__process h2,
.bsn-consult__faq h2,
.bsn-legal__head h1,
.bsn-legal__content>h2,
.bsn-legal__content>section>h2,
.bsn-archive__head h1,
.bsn-not-found h1,
.bsn-about__item h3,
.bsn-data-grid h3,
.bsn-offices h3,
.bsn-services-grid h3,
.bsn-comments__head h2,
.bsn-prose>h2,
.bsn-prose>h3,
.bsn-featured__title,
.bsn-next__title,
.bsn-post-faq>h2{color:var(--bsn-ink)}


/* ============================================================
 * 4. 타입 — 역할별 배선
 * ============================================================ */

/* 4.1 디스플레이 · H1 */
.bsn-hero__title,
.bsn-services-page__hero h1{font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--ls-display)}

.bsn-post__title,
.bsn-consult__intro h1,
.bsn-legal__head h1,
.bsn-archive__head h1,
.bsn-not-found h1{font-size:var(--fs-h1);line-height:var(--lh-title);letter-spacing:var(--ls-title)}

/* 4.2 H2 — 1차 씬과 본문 */
.bsn-section-title,
.bsn-band h2,
.bsn-services-flow h2,
.bsn-services-page__group>header h2,
.bsn-services-page__contact h2,
.bsn-consult__process h2,
.bsn-consult__faq h2,
.bsn-special-page .bsn-faq-cta h2,
.bsn-legal__content>h2,
.bsn-legal__content>section>h2,
.bsn-featured__title{font-size:var(--fs-h2);line-height:var(--lh-title);letter-spacing:var(--ls-title)}

/* 4.3 H2 — 보조 씬
   .bsn-section--support 를 붙인 섹션만 적용된다.
   붙이지 않은 섹션은 전부 1차 씬으로 남으므로 마크업 반영 전에도 회귀가 없다. */
.bsn-section--support .bsn-section-title{font-size:var(--fs-h2-support);line-height:1.4;letter-spacing:-.025em}

/* 4.4 H3 · 인용문 */
.bsn-about__item h3,
.bsn-data-grid h3,
.bsn-offices h3,
.bsn-services-grid h3,
.bsn-services-page__item-title,
.bsn-numbered h3,
.bsn-about__quote p,
.bsn-comments__head h2,
.bsn-post-faq>h2,
.bsn-post__subtitle,
.bsn-next__title,
.bsn-press__contact h2{font-size:var(--fs-h3);line-height:var(--lh-snug);letter-spacing:var(--ls-head)}

/* 4.5 리드 문장
   .bsn-about__body>.bsn-lead 는 bsn.css 의 자식 결합자 규칙(0,2,0)을 이겨야 하므로
   같은 형태로 다시 쓴다. */
.bsn-lead,
.bsn-archive__lead,
.bsn-hero__lead,
.bsn-press__books .bsn-lead,
.bsn-about__body>.bsn-lead,
.bsn-services-page__hero .bsn-lead{font-size:var(--fs-lead);line-height:var(--lh-body);letter-spacing:-.015em}

/* 4.6 본문 축 */
.bsn-legal__content{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body)}

/* 4.7 카드 제목 — 목록은 "고르는 화면"이므로 본문보다 한 단 위 */
.bsn-home-insights .bsn-card__title,
.bsn-all-posts .bsn-card__title,
.bsn-related .bsn-card__title,
.bsn-featured__standard .bsn-card__title,
.bsn-latest__row h3,
.bsn-popular__row h3,
.bsn-search__row h2{font-size:var(--fs-card-title);font-weight:600;line-height:var(--lh-snug);letter-spacing:var(--ls-head);color:var(--bsn-ink)}

/* 4.8 메타 · 라벨 */
.bsn-stats__label,
.bsn-service__label,
.bsn-office__suffix,
.bsn-office__addr,
.bsn-office__contact,
.bsn-footer__inner,
.bsn-services-flow__num,
.bsn-toc>summary,
.bsn-next__label,
.bsn-search__count{font-size:var(--fs-meta);line-height:var(--lh-meta)}

/* 4.9 작은 텍스트 */
.bsn-table,
.bsn-prose table,
.bsn-legal__content table,
.bsn-table td.lot,
.bsn-faq-src,
.bsn-press__row small,
.bsn-press__row em,
.bsn-services-flow__list article>p:not(.bsn-services-flow__num),
.bsn-consult__types span{font-size:var(--fs-small)}

/* 4.10 mono 번호 · 라틴 라벨 */
.bsn-service__label,
.bsn-hairline-grid__num,
.bsn-services-flow__num,
.bsn-services-page__item-num,
.bsn-numbered__num,
.bsn-steps li>span,
.bsn-toc__num,
.bsn-not-found>.bsn-index,
.bsn-prose>h2::before{font-family:var(--bsn-mono);font-size:var(--fs-meta);font-weight:400;letter-spacing:var(--ls-label-latin);color:var(--bsn-text-tertiary)}

.bsn-next__label,
.bsn-drawer__topics>p,
.bsn-calc__title,
.bsn-note__label,
.bsn-summary__label{letter-spacing:var(--ls-label-latin)}

/* R5 는 .bsn-suggest h2 · .bsn-recent-searches h2 를 라틴 라벨 그룹과
   한국어 라벨 그룹에 모두 넣어 두 선언이 충돌했다(뒤에 온 한국어가 적용).
   한국어 제목이므로 한국어 그룹에만 둔다. */
.bsn-form__step,
.bsn-toc>summary,
.bsn-tier,
.bsn-list-label,
.bsn-suggest h2,
.bsn-recent-searches h2,
.bsn-consult__hours,
.bsn-consult__card .bsn-consult__card-label,
.bsn-table-hint>span:first-child{letter-spacing:var(--ls-label-ko)}

/* 4.11 최중량 텍스트 굵기 통일 — 부모 테마 기본값(700) 상속 차단 */
body :where(h1,h2,h3,h4,h5,h6,strong,b){font-weight:600}


/* ============================================================
 * 5. 씬 리듬
 * 씬 간 간격(--sp-scene)과 색 있는 씬의 내부 패딩(--sp-scene-pad)을 분리한다.
 * R5 는 둘 다 96px 이어서 색 있는 씬 앞 여백이 실제 192px 이 되었다.
 * ============================================================ */

.bsn-section{padding-top:var(--sp-scene)}
.bsn-section--hero{padding-top:var(--sp-scene)}
.bsn-section--subtle{margin-top:var(--sp-scene);padding-block:var(--sp-scene-pad)}
.bsn-band{margin-top:var(--sp-scene);padding-block:var(--sp-scene-pad)}
.bsn-special-page .bsn-faq-cta{padding-block:var(--sp-scene-pad)}
.bsn-footer{margin-top:var(--sp-scene)}
.bsn-faq{padding-top:var(--sp-scene)}
.bsn-tier{margin-block:var(--sp-section) var(--sp-block)}
.bsn-hairline-grid>*{padding:var(--pad-card)}
.bsn-data-grid{margin-top:var(--sp-block)}
.bsn-stats__source{margin:var(--sp-2xs) 0 0;color:var(--bsn-text-tertiary);font-size:var(--fs-meta);line-height:var(--lh-meta)}

/* 인사이트·사업영역·상담의 설명형 보강 콘텐츠 */
.bsn-services-page__hero .bsn-lead p{margin:0}
.bsn-services-page__hero .bsn-lead p+p{margin-top:var(--sp-item)}
.bsn-services-page__faq{padding-top:var(--sp-scene)}
.bsn-consult__type-guide{padding-top:var(--sp-scene)}
.bsn-consult__type-guide h2{margin:0;color:var(--bsn-ink);font-size:var(--fs-h2);line-height:var(--lh-title);letter-spacing:var(--ls-title)}
.bsn-consult__type-guide>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:var(--sp-block);border-top:1px solid var(--bsn-border-strong)}
.bsn-consult__type-guide article{padding:var(--sp-md) 0;border-bottom:1px solid var(--bsn-border)}
.bsn-consult__type-guide article:nth-child(odd){padding-inline-end:var(--sp-block)}
.bsn-consult__type-guide article:nth-child(even){padding-inline-start:var(--sp-block);border-inline-start:1px solid var(--bsn-border)}
.bsn-consult__type-guide h3{margin:0;color:var(--bsn-ink);font-size:var(--fs-h3);line-height:var(--lh-snug)}
.bsn-consult__type-guide p{margin:var(--sp-xs) 0 0;color:var(--bsn-text-secondary);font-size:var(--fs-ui);line-height:var(--lh-body)}
.bsn-content-checked{font-size:var(--fs-meta)!important;color:var(--bsn-text-tertiary)!important}
.bsn-archive__lead p{margin:0}
.bsn-archive__lead p+p{margin-top:var(--sp-item)}
.bsn-insights-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:var(--measure-title);margin-top:var(--sp-block);border-top:1px solid var(--bsn-border-strong)}
.bsn-insights-guide article{padding:var(--sp-item) 0;border-bottom:1px solid var(--bsn-border)}
.bsn-insights-guide article:nth-child(odd){padding-inline-end:var(--sp-md)}
.bsn-insights-guide article:nth-child(even){padding-inline-start:var(--sp-md);border-inline-start:1px solid var(--bsn-border)}
.bsn-insights-guide h2{margin:0;color:var(--bsn-ink);font-size:var(--fs-ui);line-height:var(--lh-snug)}
.bsn-insights-guide p{margin:var(--sp-2xs) 0 0;color:var(--bsn-text-secondary);font-size:var(--fs-small);line-height:var(--lh-body)}
.bsn-insights-building0{max-width:var(--measure-title);margin:var(--sp-scene) auto 0;padding-block:var(--sp-md);border-block:1px solid var(--bsn-border);color:var(--bsn-text-secondary);font-size:var(--fs-small);line-height:var(--lh-body)}
.bsn-insights-building0 a{color:var(--bsn-accent);font-weight:500;text-underline-offset:3px}


/* ============================================================
 * 6. 공통 컴포넌트
 * ============================================================ */

/* 6.1 헤어라인 룰 */
.bsn-rule,
.bsn-hero__rule,
.bsn-services-page__hero>.bsn-rule,
.bsn-special-page .bsn-faq__head h1::before,
.bsn-special-page .bsn-faq-cta::before{display:block;width:32px;height:2px;margin-block:0 var(--sp-item);background:var(--bsn-accent)}
.bsn-rule--light,.bsn-special-page .bsn-faq-cta::before{background:rgba(255,255,255,.45)}
.bsn-rule.bsn-services-rule{display:block}
/* 보조 씬은 짧고 옅은 룰 */
.bsn-section--support .bsn-rule{width:20px;background:var(--bsn-border-strong)}

/* 6.2 경계선 위계 — 콘텐츠를 담는 면은 강한 hairline */
.bsn-card__thumb,.bsn-latest__thumb,.bsn-author,.bsn-chips a,
.bsn-post__featured img,.bsn-post__featured--empty,.bsn-team-photo,
.bsn-hairline-grid,.bsn-prose .wp-block-image img{border-color:var(--bsn-border-strong)}

/* 6.3 섹션 머리
   룰 → 제목 → (같은 줄 오른쪽에) 전체보기. 머리 자체는 항상 세로 스택이다.
   bsn.css 와 bsn-r3-mobile.css 가 .bsn-home-insights .bsn-section-head 를
   flex / contents 로 재정의하므로(0,2,0), 같은 특정도로 되돌린다.
   클래스를 두 번 써서 조상 조건 없이 모든 섹션 머리를 덮는다. */
.bsn-section-head.bsn-section-head{display:block;margin-bottom:var(--sp-block)}
.bsn-section-head__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-md)}
.bsn-section-head__action{display:inline-flex;align-items:center;gap:5px;min-height:var(--hit-dense);flex:0 0 auto;font-size:var(--fs-small);font-weight:500;color:var(--bsn-accent);text-decoration:none}
.bsn-section-head__action:hover{text-decoration:underline;text-underline-offset:3px}
.bsn-services-page__item-copy a{display:inline-flex;align-items:center;gap:5px}

/* 6.4 홈 지표
   숫자는 tabular-nums 로 자릿수 폭을 고정한다. 자간은 한글 단위를 위한 값이므로
   숫자를 누르지 않는 -.02em 으로 완화한다. */
.bsn-stats-shell{margin-top:var(--sp-section)}
.bsn-stats{margin:0 auto;border-block:1px solid var(--bsn-border)}
.bsn-stats__item{display:flex;min-height:132px;flex-direction:column;padding:var(--pad-card) var(--sp-md)}
.bsn-stats__item:first-child{padding-inline-start:0}
.bsn-stats__item+.bsn-stats__item{border-inline-start:1px solid var(--bsn-border)}
.bsn-stats__value{display:flex;align-items:baseline;gap:0;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:var(--ls-stat)}
.bsn-stats__unit{font-size:1em;font-weight:inherit;letter-spacing:inherit}
.bsn-stats__label{margin-top:auto;padding-top:var(--sp-xs)}

/* 6.5 카드 메타 — 분류는 조작 색, 날짜는 메타 색
   분류·구분점·날짜는 한 줄에서 12px 축을 공유하고 베이스라인으로 정렬한다.
   분류는 한글이므로 본문 서체(mono 를 주면 글리프 폴백으로 metric 이 어긋난다),
   날짜는 숫자이므로 mono + tabular-nums. */
.bsn-card__meta{display:flex;align-items:baseline;gap:9px;font-size:12px;line-height:var(--lh-meta)}
.bsn-card__cat,.bsn-card__meta>span{font-family:var(--bsn-font);font-size:12px;font-weight:400;line-height:var(--lh-meta)}
.bsn-card__cat{color:var(--bsn-accent);letter-spacing:var(--ls-label-ko)}
.bsn-card__meta>span:not(.bsn-card__cat){color:var(--bsn-text-tertiary)}
.bsn-card__meta time,.bsn-card__meta .bsn-card__date{font-family:var(--bsn-mono);font-size:12px;font-weight:400;line-height:var(--lh-meta)}
.bsn-card__meta time,
.bsn-latest__row time,
.bsn-popular__row time,
.bsn-search__row time,
.bsn-post__meta time{color:var(--bsn-text-tertiary);font-variant-numeric:tabular-nums;letter-spacing:var(--ls-numeral)}

/* 6.6 태그 · 필터 칩 — 태그는 외곽선, 필터는 면 */
.bsn-tags a{border:1px solid var(--bsn-border-strong);background:transparent;color:var(--bsn-text-secondary)}
.bsn-tags a::before{margin-inline-end:2px;content:"#";color:var(--bsn-text-muted)}
.bsn-tags a:hover{border-color:var(--bsn-accent);color:var(--bsn-accent)}
.bsn-author a:not(.bsn-btn){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;
  text-decoration-color:color-mix(in oklab,currentColor 35%,transparent)}
.bsn-author a:not(.bsn-btn):hover{text-decoration-color:currentColor}
.bsn-chips a,.bsn-chip{border-color:transparent;background:#f0f3f7;color:var(--bsn-text-secondary)}
.bsn-chips a[aria-current],.bsn-chip[aria-current]{border-color:var(--bsn-accent);background:var(--bsn-accent);color:#fff;font-weight:500}

/* 6.7 표 — 숫자 열은 자릿수 고정 + 오른쪽 정렬
   .num 클래스는 신규 글에만 적용된다. 클래스가 없어도 tabular-nums 는 동작한다. */
.bsn-table,.bsn-prose table,.bsn-legal__content table{font-variant-numeric:tabular-nums;line-height:var(--lh-meta)}
.bsn-table td.num,.bsn-table th.num,.bsn-table td.unit-price,
.bsn-prose table td.num{text-align:end;letter-spacing:var(--ls-numeral)}

/* 6.8 헤더 상담 CTA — 네이비 채움 */
body .bsn-header .bsn-header__consult{height:var(--hit-dense);padding-inline:18px;border:1px solid var(--bsn-accent);border-radius:6px;background:var(--bsn-accent);color:#fff;font-size:var(--fs-small);font-weight:600;letter-spacing:-.01em}
body .bsn-header .bsn-header__consult::after{content:none}
body .bsn-header .bsn-header__consult:hover{border-color:var(--bsn-accent-hover);background:var(--bsn-accent-hover);color:#fff;text-decoration:none}

/* 6.9 셰브론 — Heroicons Outline 1.5px */
.bsn-arrow{--bsn-arrow-src:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8.25 4.5 7.5 7.5-7.5 7.5'/%3E%3C/svg%3E");display:inline-block;width:.72em;height:.72em;flex:0 0 auto;background:currentColor;-webkit-mask:var(--bsn-arrow-src) no-repeat center/contain;mask:var(--bsn-arrow-src) no-repeat center/contain}
.bsn-arrow--back{--bsn-arrow-src:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.75 19.5 8.25 12l7.5-7.5'/%3E%3C/svg%3E")}
[dir=rtl] .bsn-arrow{transform:scaleX(-1)}
@media(forced-colors:active){.bsn-arrow{background:CanvasText}}

/* 6.10 인사이트 목록 카드 문법 — HERO 1개 + STANDARD 3개 */
.bsn-featured__standard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:20px}

/* 6.12 브레드크럼
   bsn.css 가 모바일에서 a 에만 `inline-flex; min-height:44px` 를 준다.
   구분자와 링크가 아닌 항목(<span>)은 stretch 된 채 글자가 상단에 붙어
   링크만 아래로 처진다. 축을 가운데로 모으면 세 종류가 모두 맞는다. */
.bsn-breadcrumb{align-items:center}

/* 6.13 목록 라벨 행 — "전체 글 44건"
   h2 가 브라우저 기본 상하 마진을 그대로 가지고 있어 라벨과 첫 카드
   구분선 사이가 필요 이상으로 벌어졌다. 간격을 역할 토큰으로 명시한다. */
.bsn-list-label-row{display:flex;align-items:baseline;gap:var(--sp-xs);margin:0 0 var(--sp-item)}
.bsn-list-label-row>*{margin:0}

/* 6.14 하단 고정 CTA — 사용하지 않음 */
.bsn-sticky-cta{display:none}


/* ============================================================
 * 7. 측정 축 배선
 * 680px constrained 컨테이너 안에서 더 넓은 블록을 만들 때 width 만 주면
 * WordPress 의 margin-inline:auto 가 오버플로 상황에서 0 으로 수렴해
 * 왼쪽으로 치우친다. 음수 마진으로 좌우 대칭을 확정한다.
 * ============================================================ */

.bsn-post__head{max-width:var(--measure-title)}
.bsn-summary{max-width:var(--measure-title)}
.bsn-comments{max-width:var(--measure-title)}
.bsn-legal,.bsn-legal__head{max-width:var(--measure-wide)}


/* ============================================================
 * 8. 글 본문 (.bsn-prose)
 *
 * 본문은 "정독 화면". 행간과 단락 간격을 한 쌍으로 정의한다.
 * R5 는 행간 34.2px > 단락 26px 로 역전되어 단락이 한 덩어리로 읽혔다.
 *   데스크톱 18px x 1.8 = 32.4px  <  단락 34px
 *   모바일   17px x 1.8 = 30.6px  <  단락 32px
 * ============================================================ */

.bsn-prose{--lh-body:1.8;--sp-prose:34px;
  counter-reset:bsn-h2;
  font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body)}

.bsn-prose>p,.bsn-prose>ul,.bsn-prose>ol{margin-block:0 var(--sp-prose)}
.bsn-prose>ul>li+li,.bsn-prose>ol>li+li{margin-top:var(--sp-xs)}

/* H2 — 번호 + 챕터 룰. 경계선은 잉크색 1px 으로 "장이 바뀐다"를 표시한다.
   일반 구분선(--bsn-border-strong)과 구별된다. */
.bsn-prose>h2{counter-increment:bsn-h2;display:block;
  margin:var(--sp-section) 0 0;padding-top:14px;
  border-top:1px solid var(--bsn-ink);
  font-size:var(--fs-h2);font-weight:600;line-height:var(--lh-title);letter-spacing:var(--ls-title)}
.bsn-prose>h2::before{display:block;margin-bottom:var(--sp-xs);content:counter(bsn-h2,decimal-leading-zero)}
.bsn-prose>h2+p,.bsn-prose>h2+ul,.bsn-prose>h2+ol{margin-top:var(--sp-md)}

/* H3 — R5 의 19px(= 본문 +1px)에서 21px 로. H2 → H3 → 본문 3단이 실제로 작동한다. */
.bsn-prose>h3{margin:var(--sp-lg) 0 0;padding-top:0;border-top:0;
  font-size:var(--fs-h3);font-weight:600;line-height:var(--lh-snug);letter-spacing:var(--ls-head)}
.bsn-prose>h3+p,.bsn-prose>h3+ul,.bsn-prose>h3+ol{margin-top:var(--sp-md)}

/* 글 하단 FAQ 는 챕터가 아니므로 번호와 룰을 쓰지 않는다 */
.bsn-post-faq>h2{border-top:0}
.bsn-post-faq>h2::before{content:none}

/* 8.1 본문 패턴 L1 — 스펙 */
.bsn-spec,.bsn-prose>.bsn-spec{margin:var(--sp-item) 0 var(--sp-md);padding:12px 0;
  border-block:1px solid var(--bsn-border);background:none;
  font-family:var(--bsn-mono);font-size:14px;line-height:var(--lh-meta);letter-spacing:var(--ls-numeral);
  font-variant-numeric:tabular-nums;color:var(--bsn-text-secondary)}
.bsn-spec--rows,.bsn-prose>.bsn-spec--rows{display:flex;flex-direction:column;gap:0;
  margin:var(--sp-md) 0 var(--sp-block);padding:0;border-block:0;
  font-family:var(--bsn-font);font-size:var(--fs-ui);line-height:var(--lh-body);letter-spacing:var(--ls-body)}
.bsn-source,.bsn-prose>.bsn-source{margin:-14px 0 var(--sp-md);font-size:var(--fs-meta);line-height:1.7;color:var(--bsn-text-tertiary)}

/* 8.2 본문 패턴 L2 — 계산 · 주의 · 번호 목록
   아래 간격을 단락 간격과 같게 맞춰, 패턴이 본문 흐름 안에서 한 단락처럼 리듬을 갖는다. */
.bsn-calc,.bsn-note,.bsn-numbered{margin:0 0 var(--sp-prose);padding:20px 22px;border:0;border-radius:8px;background:var(--bsn-bg-subtle);overflow:visible}
.bsn-calc__title,.bsn-note__label{margin:0 0 10px;padding:0;border:0;background:none;font-family:var(--bsn-mono);font-size:12px;font-weight:400;color:var(--bsn-text-tertiary)}
.bsn-calc__body{padding:0;font-size:var(--fs-ui);line-height:var(--lh-body);font-variant-numeric:tabular-nums}
.bsn-calc__result{margin-top:10px;padding-top:10px;border-top:1px solid var(--bsn-border)}
.bsn-calc__result b,.bsn-calc__result strong{font-size:var(--fs-h3);font-weight:600;color:var(--bsn-accent)}
.bsn-note p:last-child{margin:0;font-size:var(--fs-small);line-height:1.8;color:var(--bsn-text-secondary)}
.bsn-numbered{display:flex;flex-direction:column;gap:var(--sp-md)}
.bsn-numbered__item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;padding:0;border:0}
.bsn-numbered__num{display:block;line-height:var(--lh-body)}
.bsn-numbered h3{margin:0 0 6px}
.bsn-numbered p{margin:0;font-size:var(--fs-ui);line-height:var(--lh-body);color:var(--bsn-text-secondary)}

/* 8.3 본문 패턴 L3 — 정리 카드 (네이비 배경. 제목류 잉크 배선 대상 아님) */
.bsn-summary{margin:var(--sp-section) auto 0;padding:var(--pad-card) 30px;background:var(--bsn-accent);border-radius:8px}
.bsn-summary__label{margin:0 0 var(--sp-item);font-family:var(--bsn-mono);font-size:12px;font-weight:400;color:#9db0cd}

/* 8.4 목차 */
.bsn-toc__num{display:block;color:var(--bsn-text-tertiary)}
.bsn-toc__list{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr))}
.bsn-toc__list a{grid-template-columns:26px minmax(0,1fr);gap:10px}
.bsn-toc--single-column .bsn-toc__list{grid-template-columns:1fr}
.bsn-toc--collapsible>summary{cursor:pointer}
.bsn-toc--collapsible>summary svg{display:block}


/* ============================================================
 * 9. 목록 화면 스코프
 * 목록은 "고르는 화면". 메타 행간을 조여 스캔 밀도를 높인다.
 * ============================================================ */

.bsn-archive,.bsn-home-insights,.bsn-related,.bsn-search{--lh-meta:1.5}


/* ============================================================
 * 10. 접근성 — 포커스
 * 브라우저 기본 검정 outline 은 사용하지 않는다.
 * 브라우저 기본 검정 outline과 box-shadow를 쓰지 않고 네이비 경계만 바꾼다.
 * ============================================================ */

:where(input,select,textarea):focus,
:where(input,select,textarea):focus-visible{outline:0;box-shadow:none;border-color:var(--bsn-accent)}
.bsn-comment-form input:focus-visible,
.bsn-comment-form textarea:focus-visible{outline:0;border-color:var(--bsn-accent);box-shadow:0 1px 0 0 var(--bsn-accent)}


/* ============================================================
 * 11. 한국어 컨트롤 광학 정렬
 * Noto Sans KR 한글 글리프의 시각 중심을 맞추기 위해 총 세로 패딩을 유지한 채
 * 상단에만 보정을 준다. 아이콘 전용 컨트롤 · 영문 · 아랍어는 제외.
 * ============================================================ */

html:lang(ko){--bsn-control-optical-padding:0}
html:lang(ko) :where(.bsn-btn:not(.bsn-btn--icon),.bsn-actionbar__primary,.bsn-drawer__cta,.bsn-section-head__action,.bsn-services-page__item-copy a,.bsn-consult__mobile-actions>div>a,.bsn-consult__card>div>a){padding-block-start:var(--bsn-control-optical-padding);padding-block-end:0;line-height:1.2}
html:lang(ko) .bsn-special-page .bsn-faq-btn{padding-block-start:var(--bsn-control-optical-padding);padding-block-end:0;line-height:1.2}
html:lang(ko) .bsn-form__choices button{padding-block:12px 8px;line-height:1.2}


/* ============================================================
 * 12. 데스크톱 >=1024px
 * ============================================================ */

@media(min-width:1024px){
  /* HERO 제목 축과 STANDARD 카드의 최소 텍스트 폭 균형. */
  .bsn-featured{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px}
  .bsn-prose{padding-inline:0}

  /* 본문 축 밖의 넓은 블록 — 좌우 대칭 확정 */
  .bsn-prose>.bsn-summary{
    --w:min(var(--measure-title),calc(100vw - 2 * var(--bsn-gutter)));
    width:var(--w);max-width:none;
    position:relative;left:50%;transform:translateX(-50%);margin-inline:0}
  .bsn-prose>.bsn-table-hint,
  .bsn-prose>.bsn-table-wrap{
    --w:min(var(--measure-table),calc(100vw - 2 * var(--bsn-gutter)));
    width:var(--w);max-width:none;
    position:relative;left:50%;transform:translateX(-50%);margin-inline:0}

  .bsn-table-hint{display:flex}
  .bsn-table{min-width:640px}
  .bsn-services-flow__list{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
  .bsn-services-page__details{padding-top:var(--sp-scene)}
  .bsn-services-page__groups{max-width:var(--measure-wide)}
}


/* ============================================================
 * 13. 태블릿 · 모바일 <=1023px
 *
 * 타입 스케일: R5 는 12~32px = 2.7배로, 큰 글자만 줄여 위계 폭이 눌렸다.
 * R6 은 12~34px = 2.83배. 본문 17px 가독성을 유지하고 small 을 14px 로 내려
 * 하단 단차를 확보한다.
 * ============================================================ */

@media(max-width:1023px){
  :root{
    --bsn-header-h:52px;
    --bsn-bottom-fixed:calc(56px + env(safe-area-inset-bottom,0px));
    --bsn-gutter:20px;

    --fs-display:34px;
    --fs-h1:28px;
    --fs-h2:24px;
    --fs-h2-support:20px;
    --fs-h3:19px;
    --fs-card-title:17px;
    --fs-lead:17px;
    --fs-body:17px;
    --fs-ui:16px;
    --fs-small:14px;
    --fs-meta:12px;

    --lh-display:1.28;
    --lh-title:1.36;

    --sp-scene:64px;
    --sp-scene-pad:48px;
    --sp-section:40px;
    --sp-lg:32px;
    --sp-prose:28px;
    --sp-block:24px;
    --sp-md:20px;
    --sp-item:12px;
    --pad-card:20px;
  }

  .bsn-prose{--sp-prose:32px}

  body{padding-bottom:var(--bsn-bottom-fixed)}
  body.bsn-has-actionbar{--bsn-bottom-fixed:calc(69px + env(safe-area-inset-bottom,0px))}
  body.bsn-consult-form-page{--bsn-bottom-fixed:0px}
  .single-post .wp-site-blocks{padding-bottom:0}

  /* 헤더 이중 거터 제거 */
  .bsn-header__inner.bsn-shell{padding-inline:var(--bsn-gutter) calc(var(--bsn-gutter) - 10px)}
  .bsn-header--article .bsn-header__inner.bsn-shell{padding-inline:calc(var(--bsn-gutter) - 10px)}

  /* 지표 — 카드형 2열 */
  .bsn-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;padding:0;background:var(--bsn-border);border:1px solid var(--bsn-border-strong);border-radius:8px;overflow:hidden}
  /* bsn.css 의 nth-child 경계선 규칙을 이겨야 하므로 !important 유지 */
  .bsn-stats__item{display:block;min-height:0;padding:16px 18px;background:#fff;border:0!important;border-radius:0}
  .bsn-stats__value{margin:0;font-size:26px;line-height:1.3}
  .bsn-stats__label{margin:6px 0 0;padding:0;font-size:var(--fs-meta);line-height:1.5}
  .bsn-stats__item--office{display:block}

  /* 히어로 액션 3개 경로 */
  .bsn-hero__actions{display:grid;grid-template-columns:minmax(0,1fr) 52px;gap:var(--sp-xs)}
  .bsn-hero__actions .bsn-btn--primary{grid-column:1;height:52px}
  .bsn-hero__tel{grid-column:2;grid-row:1}
  .bsn-hero__actions .bsn-hero__services{display:flex;grid-column:1/-1;width:100%;height:var(--hit-primary)}

  /* 최소 터치 영역 */
  .bsn-btn--lg,.bsn-actionbar__primary,.bsn-form__actions .bsn-btn,.bsn-drawer__cta{min-height:var(--hit-primary)}
  .bsn-iconbtn,.bsn-burger,.bsn-chips a,.bsn-chip,.bsn-tabbar__item,.bsn-toc__list a,.bsn-pagination .page-numbers{min-height:var(--hit-secondary)}
  .bsn-footer__links a,.bsn-tags a,.bsn-breadcrumb a{min-height:var(--hit-dense)}

  /* 메뉴 열림 시 하단 고정 UI 상호배타 */
  html.bsn-menu-open .bsn-tabbar,html.bsn-menu-open .bsn-actionbar,
  body.bsn-drawer-open .bsn-tabbar,body.bsn-drawer-open .bsn-actionbar{display:none}

  .bsn-toc__list{grid-template-columns:1fr}
  /* bsn.css 의 인라인 거터 보정을 되돌려야 하므로 !important 유지 */
  .bsn-prose .bsn-calc{margin-inline:0!important;padding:20px 22px;border-radius:8px}

  /* 폰 사업영역 전체보기 타일 */
  .bsn-services-more--snap{padding:16px;gap:6px;font-size:var(--fs-small);font-weight:600;line-height:var(--lh-snug);letter-spacing:-.015em;color:var(--bsn-accent);text-align:center;text-decoration:none}
  .bsn-consult__type-guide{padding-top:var(--sp-section)}
}


/* ============================================================
 * 14. 태블릿 640~1023px
 * 폰 확대형 레이아웃을 쓰지 않고 2열로 복귀시킨다.
 * ============================================================ */

@media(min-width:640px) and (max-width:1023px){
  .bsn-stats{grid-template-columns:repeat(4,minmax(0,1fr))}

  .bsn-snap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-inline:0;padding-inline:0;overflow-x:visible;scroll-snap-type:none}
  .bsn-snap>*{flex:none}
  .bsn-snap__dots{display:none}

  /* 서버 렌더 인라인 스타일과 폰 캐러셀 규칙을 이겨야 하므로 !important 유지 */
  #services>.bsn-snap--services{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  #services>.bsn-snap--services>article{flex:none!important}
  #services>.bsn-services-grid>article:nth-of-type(n+4){display:block!important}
  #services .bsn-tier{display:block}
  #services .bsn-services-secondary{display:grid}
  #services .bsn-services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .bsn-services-more--snap{display:none}
  .bsn-services-more:not(.bsn-services-more--snap){display:flex;width:auto;min-height:var(--hit-primary)}

  .bsn-home-insights .bsn-grid-3,.bsn-all-posts .bsn-grid-3,.bsn-related__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  .bsn-home-insights .bsn-card:nth-child(n+2),.bsn-all-posts .bsn-card>a,.bsn-related .bsn-card{display:block;grid-template-columns:none;padding:0;border:0}
  .bsn-home-insights .bsn-card:nth-child(n+3),.bsn-related .bsn-card:nth-child(n+3){display:block}
  .bsn-home-insights .bsn-card .bsn-card__thumb,.bsn-all-posts .bsn-card__thumb,.bsn-related .bsn-card__thumb{width:auto;aspect-ratio:16/9;border-radius:8px}
  .bsn-featured__standard{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}

  .bsn-offices--photo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;border:0}
  .bsn-offices--photo>article{display:block;grid-template-columns:none;padding:0;border:0}
  .bsn-office__media{grid-row:auto;border-radius:8px}
  .bsn-office__body{padding-top:14px}
  .bsn-books.bsn-snap{grid-template-columns:repeat(2,minmax(0,1fr))}

  /* 본문 축 — AGENTS.md 대로 전 요소를 680px 축에 중앙 정렬 */
  .bsn-prose,.bsn-post__head,.bsn-toc,.bsn-author,.bsn-tags{width:min(100%,var(--measure-post));max-width:none;margin-inline:auto}
  .bsn-prose{padding-inline:0}

  .bsn-shell.bsn-team-photo{aspect-ratio:16/9}
  .bsn-table .col-area{display:table-cell}
  .bsn-hero__actions .bsn-hero__services{display:inline-flex}
}


/* ============================================================
 * 15. 폰 <=639px
 * ============================================================ */

@media(max-width:639px){
  #services>.bsn-snap--services>article:nth-of-type(n+5){display:none!important}
	.bsn-consult__type-guide>div,.bsn-insights-guide{grid-template-columns:1fr}
  .bsn-consult__type-guide article:nth-child(n),.bsn-insights-guide article:nth-child(n){padding-inline:0;border-inline-start:0}
  .bsn-consult__faq>div:first-child>.bsn-content-checked{display:block;margin:0 0 var(--sp-item)}
  .bsn-services-page__faq{padding-top:var(--sp-section)}
  .bsn-insights-building0{margin-top:var(--sp-section)}
  /* 관련 글의 다섯 번째 이후 카드는 레이아웃·접근성 트리·키보드 포커스에서 함께 제외 */
  .bsn-related .bsn-card:nth-child(n+5){visibility:hidden;block-size:0;min-block-size:0;margin:0;padding:0;border:0;overflow:hidden;content-visibility:hidden;contain-intrinsic-size:0}

  /* 지표 — 2열, 값과 단위 동일 위계 */
  .bsn-stats__value{font-size:clamp(19px,5.6vw,24px)}
  .bsn-stats__item:first-child{padding-inline-start:18px}
  .bsn-stats__item:last-child>.bsn-stats__value{display:flex}
  .bsn-stats__item:last-child>.bsn-stats__label{display:block}

  /* 거래 사례 표 — 5열 표를 행 카드로 전환 */
  .bsn-table:has(.col-area){display:block;width:100%;min-width:0}
  .bsn-table:has(.col-area) thead{display:none}
  .bsn-table:has(.col-area) tbody,.bsn-table:has(.col-area) tr{display:block}
  .bsn-table:has(.col-area) tbody{border-top:1px solid var(--bsn-border-strong)}
  .bsn-table:has(.col-area) tr{display:grid;grid-template-columns:max-content max-content minmax(0,1fr) max-content;column-gap:12px;padding:14px 0;border-bottom:1px solid var(--bsn-border)}
  .bsn-table:has(.col-area) td{display:block;padding:0;border:0;font-size:var(--fs-meta);line-height:var(--lh-meta)}
  .bsn-table:has(.col-area) td:nth-child(1){grid-column:1/4;grid-row:1;font-size:var(--fs-ui);font-weight:600;color:var(--bsn-text)}
  .bsn-table:has(.col-area) td:nth-child(4){grid-column:4;grid-row:1;font-size:var(--fs-ui);font-weight:600;letter-spacing:var(--ls-numeral);text-align:end;color:var(--bsn-ink)}
  .bsn-table:has(.col-area) td:nth-child(2){grid-column:1;grid-row:2;margin-top:5px;white-space:nowrap;font-family:var(--bsn-mono);font-size:12px;color:var(--bsn-text-tertiary)}
  .bsn-table:has(.col-area) td:nth-child(2)::after{content:" ·";color:var(--bsn-text-muted)}
  .bsn-table:has(.col-area) td.col-area{display:block;grid-column:2;grid-row:2;margin-top:2px;white-space:nowrap;font-family:var(--bsn-mono);font-size:12px;text-align:start;color:var(--bsn-text-tertiary)}
  .bsn-table:has(.col-area) td.col-area::before{content:"대지 ";color:var(--bsn-text-muted)}
  .bsn-table:has(.col-area) td.unit-price{grid-column:4;grid-row:2;align-self:start;margin-top:5px;font-size:var(--fs-meta);font-weight:400;text-align:end;color:var(--bsn-text-secondary)}
  .bsn-table:has(.col-area) td.unit-price::before{content:"평당 ";color:var(--bsn-text-muted)}
  .bsn-table-hint:has(+ .bsn-table-wrap .col-area){display:none}
  .bsn-table-wrap:has(.col-area){overflow-x:visible}
  .bsn-table:not(:has(.col-area)){min-width:520px;font-size:14px}

  /* 행 카드 — 112px 썸네일
     썸네일 윗변과 메타 글자 윗변을 맞춘다. 메타가 목록 행간(1.5)을 그대로 쓰면
     첫 줄 위에 반각 leading 이 쌓여 글자가 사진보다 내려간 것처럼 보인다.
     메타 행간을 1.15 로 조이고, 비운 간격은 제목 margin-top 으로 명시한다. */
  .bsn-latest__thumb,.bsn-all-posts .bsn-card__thumb,.bsn-related .bsn-card__thumb,
  .bsn-search__thumb,.bsn-home-insights .bsn-card:nth-child(n+2) .bsn-card__thumb,
  .bsn-popular__thumb{width:112px;aspect-ratio:16/9;border-radius:6px}
  .bsn-latest__row,.bsn-all-posts .bsn-card>a,.bsn-related .bsn-card,
  .bsn-search__result-link,.bsn-home-insights .bsn-card:nth-child(n+2),
  .bsn-popular__row{grid-template-columns:112px minmax(0,1fr);min-height:0;align-items:start}

  .bsn-all-posts .bsn-card__meta,.bsn-featured__standard .bsn-card__meta,
  .bsn-related .bsn-card__meta,.bsn-latest__row .bsn-card__meta,
  .bsn-search__row .bsn-card__meta,.bsn-popular__row .bsn-card__meta,
  .bsn-home-insights .bsn-card:nth-child(n+2) .bsn-card__meta{margin:0;font-size:12px;line-height:1.15}
  .bsn-all-posts .bsn-card__title,.bsn-related .bsn-card__title,
  .bsn-latest__row h3,.bsn-search__row h2,
  .bsn-home-insights .bsn-card:nth-child(n+2) .bsn-card__title{margin-top:7px}

  .bsn-featured__main .bsn-card__thumb{width:auto;aspect-ratio:16/9;border-radius:8px}
  .bsn-featured__title{font-size:var(--fs-h2)}
  .bsn-featured__excerpt{display:block}

  .bsn-featured__standard{display:block}
  .bsn-featured__standard .bsn-card>a{display:grid;grid-template-columns:112px minmax(0,1fr);gap:0 14px;min-height:0;padding:16px 0;border-top:1px solid var(--bsn-border)}
  .bsn-featured__standard .bsn-card__thumb{grid-row:1/3;width:112px;aspect-ratio:16/9;border-radius:6px}
  .bsn-featured__standard .bsn-card__meta{margin:0}
  .bsn-featured__standard .bsn-card__title{margin-top:7px}

  /* 카드 제목은 --fs-card-title(17px) 을 유지한다.
     R5 는 여기서 16px 로 한 단 더 내려 본문과의 위계가 사라졌다. */
  .bsn-home-insights .bsn-card__title,.bsn-all-posts .bsn-card__title,
  .bsn-related .bsn-card__title,.bsn-featured__standard .bsn-card__title,
  .bsn-latest__row h3,.bsn-search__row h2{font-size:var(--fs-card-title)}

  body .bsn-header .bsn-header__consult{height:36px;padding-inline:14px;font-size:var(--fs-meta)}
}

/* ============================================================
 * 12. R6.3 — 행 카드 첫 줄 정렬 재수정
 *
 * R6.2 의 수정이 실제 사이트에서 먹지 않은 이유는 두 가지다.
 * (1) 특정도 동률. `.bsn-all-posts .bsn-card>a` 는 (0,2,0) 이고
 *     bsn.css · bsn-r3-mobile.css 에도 같은 (0,2,0) 규칙이 있다.
 *     이 파일이 뒤에 로드되지만, 두 파일의 규칙이 미디어쿼리 안에서
 *     더 뒤에 오는 경우가 있어 `align-items:start` 가 이기지 못했다.
 * (2) 행간을 컨테이너에만 줬다. `.bsn-card__cat` · `>span` · `time` 이
 *     각자 `line-height:var(--lh-meta)` 를 다시 선언하고,
 *     `.bsn-archive` 등이 `--lh-meta:1.5` 로 덮고 있어
 *     자식의 줄상자는 여전히 18px 였다. 12px 글자 위에 3px 반각 leading
 *     + ascender 여백이 남아 썸네일보다 내려 보인다.
 *
 * 수정: 클래스를 두 번 써 (0,3,0) 으로 올리고, 행간은 변수 자체를
 * 행 카드 안에서 1 로 바꾼다. 자식이 var 를 다시 읽어도 같은 값이 된다.
 * 메타와 제목 사이 간격은 제목 margin-top 으로 명시한다.
 * ============================================================ */

@media(max-width:639px){
  .bsn-all-posts.bsn-all-posts .bsn-card>a,
  .bsn-related.bsn-related .bsn-card,
  .bsn-latest__row.bsn-latest__row,
  .bsn-popular__row.bsn-popular__row,
  .bsn-search__result-link.bsn-search__result-link,
  .bsn-featured__standard.bsn-featured__standard .bsn-card>a,
  .bsn-home-insights.bsn-home-insights .bsn-card:nth-child(n+2){align-items:start}

  .bsn-all-posts.bsn-all-posts .bsn-card__meta,
  .bsn-featured__standard.bsn-featured__standard .bsn-card__meta,
  .bsn-related.bsn-related .bsn-card__meta,
  .bsn-latest__row.bsn-latest__row .bsn-card__meta,
  .bsn-search__row.bsn-search__row .bsn-card__meta,
  .bsn-popular__row.bsn-popular__row .bsn-card__meta,
  .bsn-home-insights.bsn-home-insights .bsn-card:nth-child(n+2) .bsn-card__meta{
    --lh-meta:1;align-items:baseline;margin:0;padding:0;font-size:12px;line-height:1}

  .bsn-all-posts.bsn-all-posts .bsn-card__title,
  .bsn-featured__standard.bsn-featured__standard .bsn-card__title,
  .bsn-related.bsn-related .bsn-card__title,
  .bsn-latest__row.bsn-latest__row h3,
  .bsn-search__row.bsn-search__row h2,
  .bsn-home-insights.bsn-home-insights .bsn-card:nth-child(n+2) .bsn-card__title{margin-top:9px}
}


/* ============================================================
 * 13. 검색 화면 (/?s=) · 태그 아카이브 (/tag/…)
 *
 * 두 화면은 성격이 같다 — "전체 글에서 좁혀 들어온 상태".
 * 그래서 머리 UI 를 하나의 문법으로 통일한다.
 *   · 좁힌 조건을 한 줄로 보여주고
 *   · 그 조건을 벗어나는 출구(취소 · 해제 · 뒤로)를 오른쪽 끝에 둔다.
 * 브레드크럼은 이 두 화면에서 쓰지 않는다.
 * ============================================================ */

/* 13.1 검색 바 — 결과 화면 상단 고정 */
.bsn-searchbar{position:sticky;top:var(--bsn-header-h);z-index:20;display:flex;align-items:center;gap:12px;
  padding:12px var(--bsn-gutter);background:#fff;border-bottom:1px solid var(--bsn-border)}
.bsn-searchbar__form{position:relative;display:flex;align-items:center;flex:1;min-width:0;
  height:44px;padding-inline:40px 40px;border:1.5px solid transparent;background:#f0f3f7;border-radius:22px}
.bsn-searchbar__icon{position:absolute;left:14px;width:16px;height:16px;background:currentColor;color:var(--bsn-text-tertiary);
  -webkit-mask:var(--bsn-search-icon) center/16px no-repeat;mask:var(--bsn-search-icon) center/16px no-repeat}
.bsn-searchbar__input{width:100%;min-width:0;border:0;background:transparent;
  font-family:var(--bsn-font);font-size:16px;line-height:1.4;letter-spacing:var(--ls-body);color:var(--bsn-ink)}
.bsn-searchbar__input::placeholder{color:var(--bsn-text-muted)}
.bsn-searchbar__input:focus{outline:0}
.bsn-searchbar__form:focus-within{background:#fff;border-color:var(--bsn-accent);box-shadow:none}
.bsn-searchbar__input::-webkit-search-cancel-button{display:none}
.bsn-searchbar__clear{position:absolute;right:6px;display:none;place-items:center;width:32px;height:32px;
  border:0;border-radius:50%;background:transparent;color:var(--bsn-text-tertiary);cursor:pointer}
.bsn-searchbar__clear::before{content:"×";font-size:20px;line-height:1}
.bsn-searchbar__form:has(.bsn-searchbar__input:not(:placeholder-shown)) .bsn-searchbar__clear{display:grid}
.bsn-searchbar__cancel{flex:none;padding:0 2px;font-size:var(--fs-ui);line-height:44px;color:var(--bsn-text-secondary)}
.bsn-searchbar__cancel:hover{color:var(--bsn-accent)}
.bsn-search-suggestions{position:absolute;inset:calc(100% + 6px) 0 auto;z-index:2;
  overflow:hidden;border:1px solid var(--bsn-border-strong);border-radius:8px;background:#fff}
.bsn-search-suggestions__group{padding:8px 0}
.bsn-search-suggestions__group+.bsn-search-suggestions__group{border-top:1px solid var(--bsn-border)}
.bsn-search-suggestions__label{margin:0;padding:3px 14px 5px;color:var(--bsn-text-tertiary);
  font-size:12px;font-weight:600;line-height:1.5;letter-spacing:var(--ls-label-ko)}
.bsn-search-suggestions a{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:9px 14px;color:var(--bsn-text);font-size:14px;line-height:1.4;text-decoration:none}
.bsn-search-suggestions a:hover,.bsn-search-suggestions a:focus-visible{background:var(--bsn-bg-subtle);color:var(--bsn-accent)}
.bsn-search-suggestions a small{flex:none;color:var(--bsn-text-tertiary);font-size:12px}
.bsn-search-suggestions__all{border-top:1px solid var(--bsn-border);font-weight:600;color:var(--bsn-accent)!important}

/* 13.2 아카이브 바 — 태그로 좁혀진 상태 */
.bsn-archivebar{display:flex;align-items:center;gap:10px;padding:12px var(--bsn-gutter);
  border-bottom:1px solid var(--bsn-border)}
.bsn-archivebar__back{flex:none;display:grid;place-items:center;width:40px;height:40px;margin-inline-start:-10px;
  border-radius:50%;color:var(--bsn-ink)}
.bsn-archivebar__back::before{content:"";width:18px;height:18px;background:currentColor;
  -webkit-mask:var(--bsn-back-icon) center/18px no-repeat;mask:var(--bsn-back-icon) center/18px no-repeat}
.bsn-archivebar__back:hover{background:#f0f3f7}
.bsn-archivebar__title{display:flex;align-items:baseline;gap:8px;min-width:0;flex:1}
.bsn-archivebar__tag{font-size:var(--fs-h2-support);font-weight:600;line-height:1.3;letter-spacing:var(--ls-head);
  color:var(--bsn-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bsn-archivebar__count{flex:none;font-family:var(--bsn-mono);font-size:12px;font-variant-numeric:tabular-nums;
  letter-spacing:var(--ls-numeral);color:var(--bsn-text-tertiary)}
.bsn-archivebar__clear{flex:none;display:inline-flex;align-items:center;height:32px;padding-inline:12px;
  border:1px solid var(--bsn-border-strong);border-radius:16px;font-size:var(--fs-meta);color:var(--bsn-text-secondary)}
.bsn-archivebar__clear:hover{border-color:var(--bsn-accent);color:var(--bsn-accent)}

/* 13.3 검색 전 — 최근 검색어 · 많이 찾는 태그 */
.bsn-suggest{padding:var(--sp-md) var(--bsn-gutter) 0}
.bsn-suggest h2{margin:0 0 var(--sp-item);color:var(--bsn-text-tertiary);letter-spacing:var(--ls-label-ko)}
.bsn-suggest+.bsn-suggest{padding-top:var(--sp-block)}
.bsn-recent-searches{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none}
.bsn-recent-searches li{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--bsn-border)}
.bsn-recent-searches li:first-child{border-top:1px solid var(--bsn-border)}
.bsn-recent-searches a{flex:1;min-width:0;padding:11px 0;font-size:var(--fs-ui);color:var(--bsn-text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bsn-recent-searches button{flex:none;display:grid;place-items:center;width:40px;height:40px;
  border:0;background:transparent;color:var(--bsn-text-muted);font-size:16px;line-height:1;cursor:pointer}
.bsn-recent-searches button:hover{color:var(--bsn-ink)}
.bsn-suggest__empty{margin:0;padding:14px 0;border-top:1px solid var(--bsn-border);
  border-bottom:1px solid var(--bsn-border);font-size:var(--fs-small);color:var(--bsn-text-muted)}

/* 13.4 결과 없음 */
.bsn-search__none{padding:var(--sp-lg) var(--bsn-gutter) 0}
.bsn-search__none-title{margin:0;font-size:var(--fs-h2-support);font-weight:600;line-height:var(--lh-snug);
  letter-spacing:var(--ls-head);color:var(--bsn-ink);text-wrap:pretty}
.bsn-search__none-help{margin:10px 0 0;font-size:var(--fs-small);line-height:var(--lh-body);color:var(--bsn-text-secondary)}
.bsn-search__none .bsn-tags{margin-top:var(--sp-md)}

/* 13.5 결과 수 표기 */
.bsn-search__count{display:block;margin:0;padding:20px var(--bsn-gutter) 0;border:0;color:var(--bsn-text-tertiary)}
.bsn-search__count b{font-weight:600;color:var(--bsn-ink)}
.bsn-search__count:empty{display:none}
.bsn-search__count+.bsn-results{margin-top:12px}
.bsn-results{border-top:0;border-bottom:0}

/* 13.6 브레드크럼 — 슬래시를 홑화살괄호로.
   태그 · 검색 화면에서는 아카이브 바가 대신하므로 노출하지 않는다. */
.bsn-breadcrumb__sep{font-size:0}
.bsn-breadcrumb__sep::after{content:"›";font-size:var(--fs-meta);color:var(--bsn-text-muted)}
.bsn-archive--tag .bsn-breadcrumb,.bsn-search .bsn-breadcrumb{display:none}

:root{
  --bsn-search-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E");
  --bsn-back-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E");
}

@media(min-width:640px){
  .bsn-searchbar,.bsn-archivebar{position:static;padding-block:var(--sp-md);border-bottom:0}
  .bsn-searchbar__form{max-width:520px}
  .bsn-archivebar__tag{font-size:var(--fs-h1)}
  .bsn-archivebar__back{margin-inline-start:-12px}
  .bsn-suggest,.bsn-search__none,.bsn-search__count{padding-inline:var(--bsn-gutter)}
}

/* :has() 미지원 브라우저 — 지우기 버튼은 항상 노출 */
@supports not selector(:has(*)){
  .bsn-searchbar__clear{display:grid}
}

/* :has() 미지원 브라우저 — 거래 사례 표는 가로 스크롤 + 안내 */
@supports not selector(:has(*)){
  @media(max-width:639px){
    .bsn-table{min-width:520px;font-size:14px}
    .bsn-table-hint{display:flex}
  }
}


/* ============================================================
 * 14. R6.4 — 정렬 잠금 · 칩 상자 모델 · 통합 결과 화면
 *
 * R6.3 의 12장 진단이 틀렸다. 특정도만 올려도 부모의 align-items:center 가
 * 다른 파일에서 다시 들어오면 같은 증상이 재발한다.
 * 정렬은 부모가 아니라 **자식이 선언**하게 바꾼다 — align-self 는
 * 부모의 align-items 보다 항상 우선한다(특정도 싸움이 아니라 캐스케이드 계단).
 * ============================================================ */

/* 14.1 행 카드 첫 줄 정렬 — 마크업 변경 없이 즉시 적용되는 형태 */
@media(max-width:639px){
  :is(.bsn-all-posts.bsn-all-posts,
      .bsn-featured__standard.bsn-featured__standard,
      .bsn-related.bsn-related,
      .bsn-latest__row.bsn-latest__row,
      .bsn-search__row.bsn-search__row,
      .bsn-popular__row.bsn-popular__row,
      .bsn-home-insights.bsn-home-insights .bsn-card:nth-child(n+2))
  :is(.bsn-card__thumb,.bsn-card__meta,.bsn-card__title,.bsn-card__body){align-self:start}

  /* 본문 래퍼(권장 마크업)를 쓰는 경우 — 행 높이를 채워 첫 줄을 윗변에 고정 */
  .bsn-card__body{align-self:stretch;min-width:0}

  /* 메타는 12px 어센트 여백을 1px 되돌려 썸네일 윗변과 광학적으로 맞춘다 */
  :is(.bsn-all-posts.bsn-all-posts,
      .bsn-featured__standard.bsn-featured__standard,
      .bsn-related.bsn-related,
      .bsn-latest__row.bsn-latest__row,
      .bsn-search__row.bsn-search__row,
      .bsn-popular__row.bsn-popular__row,
      .bsn-home-insights.bsn-home-insights .bsn-card:nth-child(n+2)) .bsn-card__meta{
    --lh-meta:1;line-height:1;margin:-1px 0 0;padding:0;font-size:12px}
  :is(.bsn-all-posts.bsn-all-posts,
      .bsn-featured__standard.bsn-featured__standard,
      .bsn-related.bsn-related,
      .bsn-latest__row.bsn-latest__row,
      .bsn-search__row.bsn-search__row,
      .bsn-popular__row.bsn-popular__row,
      .bsn-home-insights.bsn-home-insights .bsn-card:nth-child(n+2)) .bsn-card__title{
    margin:8px 0 0}
}

/* 14.2 태그 칩 상자 모델 — 높이를 패딩이 만든다
   R6.3 까지의 증상: 고정 height + 상속된 line-height(1.8) 로 줄상자가 상자를
   뚫고, '#' 은 letter-spacing / word-spacing 을 함께 받아 본문과 벌어졌다. */
.bsn-tags{display:flex;flex-wrap:wrap;gap:8px}
.bsn-tags a{position:relative;display:inline-flex;align-items:center;max-width:100%;
  height:auto;min-height:0;padding:9px 13px 10px;border-radius:999px;
  font-size:14px;line-height:1;letter-spacing:-.01em;word-spacing:0;white-space:nowrap;
  text-decoration:none}
.bsn-tags a::before{margin-inline-end:1px;letter-spacing:0;word-spacing:0;line-height:1}
/* 시각 높이 34px 을 유지한 채 터치 영역만 44px 로 확장 */
.bsn-tags a::after{content:"";position:absolute;inset:-5px 0}

/* 14.3 통합 결과 화면 — 검색과 태그가 같은 머리 · 같은 목록을 쓴다 */

/* 14.3.1 입력창 안의 태그 토큰 (/tag/…/ 로 들어온 상태) */
.bsn-token{display:inline-flex;align-items:center;flex:none;padding:6px 8px 7px;
  border-radius:6px;background:#dfe7f2;font-size:14px;line-height:1;color:var(--bsn-accent)}
.bsn-token::before{margin-inline-end:1px;content:"#";color:#8ea0bb}
.bsn-searchbar__form:has(.bsn-token){gap:8px;padding-inline-start:40px}
.bsn-searchbar__form:has(.bsn-token) .bsn-searchbar__clear{display:grid}

/* 14.3.2 스코프 탭 — 전체 / 태그 / 제목·본문 */
.bsn-scope{display:flex;gap:6px;padding:12px var(--bsn-gutter);
  overflow-x:auto;scrollbar-width:none;border-bottom:0}
.bsn-scope::-webkit-scrollbar{display:none}
.bsn-scope a{display:inline-flex;align-items:center;gap:5px;flex:none;
  padding:9px 13px 10px;border:0;border-radius:999px;background:#f0f3f7;
  font-size:13px;line-height:1;white-space:nowrap;color:var(--bsn-text-secondary)}
.bsn-scope a[aria-current]{background:var(--bsn-accent);color:#fff}
.bsn-scope a b{font-family:var(--bsn-mono);font-weight:400;font-variant-numeric:tabular-nums;
  letter-spacing:var(--ls-numeral);color:var(--bsn-text-muted)}
.bsn-scope a[aria-current] b{color:#9fb0c6}
.bsn-scope a[data-empty]{color:var(--bsn-text-muted);pointer-events:none}

/* 14.3.3 안내 줄 — 없는 태그를 # 로 입력했을 때 */
.bsn-notice{margin:0;padding:14px var(--bsn-gutter);background:#f8fafc;
  border-bottom:0;font-size:13px;line-height:1.7;
  color:var(--bsn-text-secondary)}
.bsn-notice b{font-weight:600;color:var(--bsn-ink)}

/* 14.3.4 일치 표시 — 제목은 하이라이트, 태그로만 걸린 글은 메타에 #태그 */
.bsn-card__title mark,.bsn-search__row mark,.bsn-suggest mark{
  padding:0 1px;border-radius:2px;background:#e7edf6;color:var(--bsn-ink)}
.bsn-card__tag{font-family:var(--bsn-font);font-size:12px;line-height:1;color:var(--bsn-text-muted)}

/* 14.4 폐기 — 아카이브 바는 검색 바 + 스코프 탭으로 대체한다.
   태그 아카이브의 대형 카드 + 요약 레이아웃도 쓰지 않는다(행 카드로 통일). */
.bsn-archivebar{display:none}
.bsn-archive--tag .bsn-card--hero,.bsn-archive--tag .bsn-card__excerpt{display:none}

/* 14.6 홈 최신 글 — 폰은 대표 글과 행 목록, 640px 이상은 2행 3열 카드. */
@media(min-width:640px){
  .bsn-home-insights .bsn-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
}


/* ============================================================
 * 15. R6.5–R6.6 — 검색 모드 · 드로어 · 상호작용 회귀 보정
 *
 * 검색·태그 결과는 data-bsn-row 훅 한 벌로 고정한다. 포커스 표시는
 * 키보드에만 남기고, 모바일 드로어는 헤더와 분리한 전체 화면으로 유지한다.
 * 640px 이상 행 배치는 단일 컬럼 결과 목록으로 한정한다.
 * ============================================================ */

:root{
  --bsn-x-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
  --bsn-phone-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L7.713 3.102A1.125 1.125 0 0 0 6.622 2.25H5.25A2.25 2.25 0 0 0 3 4.5v2.25Z'/%3E%3C/svg%3E");
}

/* 15.1 포커스 — 포인터 입력에는 기본 검정 링을 남기지 않고, 키보드에는 네이비 링 유지. */
html{-webkit-tap-highlight-color:transparent}
:where(a,button,summary,label,[tabindex],input,select,textarea):focus:not(:focus-visible){outline:0;box-shadow:none}
:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--bsn-accent);outline-offset:2px;border-radius:4px}
[data-bsn-row]:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--bsn-accent)}

/* 15.2 밑줄은 본문 흐름의 링크에만 사용. */
a{text-decoration:none}
.bsn-prose a:not([class]),.bsn-notice a,.bsn-footer__inner a{
  text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:from-font}

/* 15.3 행 카드 — 속성 훅이 썸네일·메타·제목의 정렬을 단일 규칙으로 보장. */
@media(max-width:639px){
  a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row]{display:grid;grid-template-columns:112px minmax(0,1fr);gap:0 14px;
    align-items:start;padding:16px 0;border:0;border-top:1px solid var(--bsn-border);color:inherit}
  a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__thumb{align-self:start;width:112px;aspect-ratio:16/9;height:auto;
    margin:0;border-radius:6px;object-fit:cover;background:var(--bsn-bg-subtle)}
  a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__body{align-self:start;min-width:0}
  a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__meta{--lh-meta:1;display:flex;flex-wrap:wrap;gap:0 8px;
    align-items:baseline;margin:-1px 0 0;padding:0;font-size:12px;line-height:1}
  a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__meta :where(span,time,.bsn-card__cat){line-height:1}
  a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__title{margin:8px 0 0;font-size:16px;font-weight:600;
    line-height:1.45;letter-spacing:-.02em}
  a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__excerpt{display:none}
  .bsn-results>.bsn-card:first-child [data-bsn-row]{border-top:0}

  .bsn-home-insights.bsn-home-insights .bsn-card:first-child .bsn-card__meta{--lh-meta:1;
    margin:12px 0 0;padding:0;font-size:12px;line-height:1}
  .bsn-home-insights.bsn-home-insights .bsn-card:first-child .bsn-card__title{margin:8px 0 0}
  .bsn-home-insights.bsn-home-insights .bsn-card:first-child{padding-bottom:22px}

  /* 홈 데이터 카드 — 바로 아래 사업 영역과 같은 가로 스냅 카드 */
  .bsn-data-grid.bsn-snap{border:0;border-radius:0;background:transparent}
  .bsn-data-grid.bsn-snap>article{flex:0 0 250px;padding:20px;border:1px solid var(--bsn-border);border-radius:8px;background:#fff}
  .bsn-data-grid+.bsn-snap__dots{display:flex}
  body:has(.bsn-actionbar) .bsn-post{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px) + 16px)}
}
@media(min-width:640px){
  /* 데스크톱 행은 검색·태그 결과처럼 단일 열 컨테이너 안에서만 사용한다. */
  .bsn-results a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row]{display:grid;grid-template-columns:180px minmax(0,1fr);gap:0 20px;
    align-items:start;padding:18px 0;color:inherit}
  .bsn-results a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__thumb{align-self:start;width:180px;aspect-ratio:16/9;height:auto;
    margin:0;border-radius:6px;object-fit:cover}
  .bsn-results a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__body{align-self:start;min-width:0}
  .bsn-results a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__meta{--lh-meta:1;display:flex;flex-wrap:wrap;gap:0 9px;
    align-items:baseline;margin:-1px 0 0;padding:0;font-size:12px;line-height:1}
  .bsn-results a.bsn-card__link[data-bsn-row][data-bsn-row][data-bsn-row] .bsn-card__title{margin:8px 0 0;font-size:var(--fs-card-title);
    line-height:1.45;letter-spacing:-.02em}

  /* 카드 그리드에서는 훅이 행 레이아웃을 열지 않는다. */
  .bsn-home-insights a.bsn-card__link[data-bsn-row],
  .bsn-all-posts a.bsn-card__link[data-bsn-row],
  .bsn-related a.bsn-card__link[data-bsn-row]{display:block;grid-template-columns:none;gap:0;padding:0}
  .bsn-home-insights a.bsn-card__link[data-bsn-row] .bsn-card__thumb,
  .bsn-all-posts a.bsn-card__link[data-bsn-row] .bsn-card__thumb,
  .bsn-related a.bsn-card__link[data-bsn-row] .bsn-card__thumb{width:auto;max-width:100%}
}

/* 15.4 검색 시작 — 폰·태블릿에서만 전면 입력 모드. */
@media(max-width:1023px){
  body.bsn-searching{--bsn-header-h:0px;padding-top:0}
  body.bsn-searching .bsn-header,body.bsn-searching .bsn-tabbar,body.bsn-searching .bsn-actionbar,
  body.bsn-searching .bsn-sticky-cta,body.bsn-searching .bsn-breadcrumb,body.bsn-searching .bsn-footer{display:none}
  body.bsn-searching .bsn-search{min-height:100dvh}
  body.bsn-searching .bsn-searchbar{position:sticky;top:0;z-index:60;
    padding:calc(env(safe-area-inset-top,0px) + 20px) var(--bsn-gutter) 12px;background:#fff;border-bottom:0}
  body.bsn-searching .bsn-suggest:first-of-type{padding-top:20px}
  body.bsn-searching .bsn-suggest+.bsn-suggest{padding-top:28px}
  body.bsn-searching .bsn-suggest:last-of-type{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 32px)}
  body.bsn-mobile-search-page:not(.bsn-searching){padding-bottom:calc(var(--bsn-m-tabbar) + var(--bsn-m-safe))}
  body.bsn-mobile-search-page:not(.bsn-searching)>.wp-site-blocks>.wp-block-template-part:first-child,
  body.bsn-mobile-search-page:not(.bsn-searching)>.wp-site-blocks>.wp-block-template-part:last-child{display:block}
  body.bsn-mobile-search-page:not(.bsn-searching) .bsn-tabbar{display:grid}
  body.bsn-searching .bsn-searchbar>.bsn-searchbar__cancel{display:block}
}
.bsn-searchbar>.bsn-searchbar__cancel{display:none}
.bsn-searchbar__form:has(.bsn-searchbar__input:placeholder-shown):not(:has(.bsn-token)) .bsn-searchbar__clear{display:none}

/* 15.5 최근 검색어 — 재탐색 목록의 조판과 삭제 조작. */
.bsn-suggest[hidden]{display:none}
.bsn-suggest .bsn-suggest__head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:20px;margin:0 0 6px}
.bsn-suggest .bsn-suggest__head h2{margin:0;font-size:12px;font-weight:500;line-height:1;letter-spacing:.06em;color:var(--bsn-text-tertiary)}
.bsn-suggest .bsn-suggest__clear{position:relative;flex:none;appearance:none;-webkit-appearance:none;
  margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;
  font:inherit;font-size:12px;font-weight:400;line-height:1;letter-spacing:0;
  color:var(--bsn-text-muted);text-decoration:none;cursor:pointer}
.bsn-suggest .bsn-suggest__clear::after{content:"";position:absolute;inset:-14px -10px}
.bsn-suggest .bsn-suggest__clear:hover{color:var(--bsn-ink)}
.bsn-suggest .bsn-suggest__clear:active{opacity:.6}
.bsn-suggest .bsn-recent-searches{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.bsn-suggest .bsn-recent-searches>li{display:flex;align-items:center;gap:8px;border:0}
.bsn-suggest .bsn-recent-searches>li+li{border-top:1px solid var(--bsn-border)}
.bsn-suggest .bsn-recent-searches>li::before,.bsn-suggest .bsn-recent-searches>li::after{content:none}
.bsn-suggest .bsn-recent-searches>li>a,.bsn-suggest .bsn-recent-searches>li>button{border:0;box-shadow:none;background:none}
.bsn-suggest .bsn-recent-searches>li>a{flex:1;min-width:0;display:flex;align-items:center;gap:0;height:48px;padding:0;font-size:15px;
  font-weight:400;line-height:1;color:var(--bsn-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
.bsn-suggest .bsn-recent-searches>li>button{flex:none;display:grid;place-items:center;width:40px;height:40px;padding:0;
  color:var(--bsn-text-muted);cursor:pointer}
.bsn-recent-searches button::before{content:"";width:16px;height:16px;background:currentColor;
  -webkit-mask:var(--bsn-x-icon) center/16px no-repeat;mask:var(--bsn-x-icon) center/16px no-repeat}
.bsn-recent-searches button:hover{color:var(--bsn-ink)}

/* 15.6 태그 칩 — 검색 화면과 글 상세의 측정 축 분리. */
.bsn-search .bsn-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;justify-content:flex-start}
.bsn-search .bsn-tags li{display:contents}
.bsn-search .bsn-tags a{gap:0;padding:8px 12px 9px;font-size:13px}
.bsn-search .bsn-tags a::before{content:"#";margin-inline-end:2px;letter-spacing:0;word-spacing:0;line-height:1;color:var(--bsn-text-muted)}
[data-bsn-post-tags]{width:auto;margin:28px 0 0;padding-inline:var(--bsn-gutter)}
@media(min-width:640px){
  [data-bsn-post-tags]{width:min(100%,var(--measure-post));max-width:none;margin-inline:auto;padding-inline:0}
}
.bsn-suggest__note{display:none}
.bsn-search__row{padding:0;border:0}
.bsn-search__excerpt{display:none}

/* 15.7 드로어 — 모바일은 독립 전체화면. 헤더와 형제이므로 함께 숨기지 않는다. */
@media(max-width:1023px){
  html.bsn-menu-open .wp-site-blocks>.wp-block-template-part:first-child,
  body.bsn-drawer-open .wp-site-blocks>.wp-block-template-part:first-child{z-index:60}
  .bsn-drawer{position:fixed;inset:0;height:100dvh;z-index:60;overflow-y:auto;
    overscroll-behavior:contain;background:var(--bsn-navy-deep)}
  .bsn-drawer__top{height:56px}
  .bsn-drawer__body{min-height:calc(100dvh - 56px - var(--bsn-m-safe))}
  html.bsn-menu-open .bsn-header,body.bsn-drawer-open .bsn-header{display:none}
  .bsn-drawer__cta{min-height:52px;border-radius:6px;background:#fff;color:var(--bsn-accent);font-size:16px;font-weight:600}
  .bsn-drawer__tel{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;
    margin-top:8px;border:1px solid rgba(255,255,255,.28);border-radius:6px;background:transparent;
    color:#fff;font-size:16px;font-weight:500;letter-spacing:var(--ls-numeral)}
  .bsn-drawer__tel::before{content:"";width:18px;height:18px;background:currentColor;
    -webkit-mask:var(--bsn-phone-icon) center/18px no-repeat;mask:var(--bsn-phone-icon) center/18px no-repeat}
  .bsn-drawer__tel:hover{border-color:rgba(255,255,255,.5)}
  .bsn-drawer .bsn-drawer__nav{margin-top:20px}
  .bsn-drawer .bsn-drawer__nav a{min-height:56px;padding:0;font-size:20px;font-weight:600;letter-spacing:-.025em}
  .bsn-drawer__count{font-family:var(--bsn-mono);font-size:12px;font-weight:400;
    font-variant-numeric:tabular-nums;letter-spacing:var(--ls-numeral);color:#8ea0bb}
  .bsn-drawer__topics a{padding:8px 12px 9px;border-color:rgba(255,255,255,.22);font-size:13px;color:#dbe3ee}
  .bsn-drawer__topics a::before{color:#8ea0bb}
  .bsn-drawer__topics a:hover{border-color:rgba(255,255,255,.45);color:#fff}
}
