/*
Theme Name: TICS Guide
Theme URI: https://tics.guide
Description: 티켓 예매 가이드 발행용 자식 테마. 디자인 토큰은 theme.json이 단일 출처이고,
             이 파일은 블록 패턴 전용 스타일만 담는다. 저장소(wordpress/guides/theme/tics-guide)에서 관리하고
             scripts/deploy_theme.sh로 배포한다 — 서버에서 직접 수정하지 않는다.
Author: TICS
Template: twentytwentyfive
Version: 0.1.0
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.0
Text Domain: tics-guide
*/

/* ── 공통 ────────────────────────────────────────────────────────── */
.tics-box{
  border:1px solid var(--wp--preset--color--border);
  border-radius:10px;
  padding:var(--wp--preset--spacing--40);
  margin-block:var(--wp--preset--spacing--50);
}
.tics-box__title{
  font-size:var(--wp--preset--font-size--md);
  font-weight:700;
  line-height:1.4;
  margin:0 0 .6em;
  display:flex;
  align-items:baseline;
  gap:.45em;
}
.tics-box__title::before{ font-size:1em; line-height:1; }
.tics-box :last-child{ margin-bottom:0; }

/* ── 1. 핵심 요약 카드 (글 최상단 · 스니펫 표적) ──────────────────── */
.tics-summary{
  background:var(--wp--preset--color--primary-soft);
  border-color:color-mix(in srgb, var(--wp--preset--color--primary) 22%, transparent);
}
.tics-summary .tics-box__title::before{ content:"📌"; }
.tics-summary ul{ margin:0; padding-left:1.15em; }
.tics-summary li{ margin-block:.4em; line-height:1.75; }
.tics-summary li strong{ color:var(--wp--preset--color--primary); }

/* ── 2. 절차 타임라인 ────────────────────────────────────────────── */
.tics-steps{ counter-reset:tics-step; list-style:none; margin:var(--wp--preset--spacing--50) 0; padding:0; }
.tics-steps>li{
  counter-increment:tics-step;
  position:relative;
  padding:0 0 var(--wp--preset--spacing--40) 3rem;
  border-left:2px solid var(--wp--preset--color--base-3);
  margin-left:1.1rem;
}
.tics-steps>li:last-child{ border-left-color:transparent; padding-bottom:0; }
.tics-steps>li::before{
  content:counter(tics-step);
  position:absolute; left:-1.1rem; top:-.15rem;
  width:2.2rem; height:2.2rem;
  display:grid; place-items:center;
  border-radius:50%;
  background:var(--wp--preset--color--primary);
  color:var(--wp--preset--color--base); font-weight:700; font-size:.95rem;
  font-family:var(--wp--preset--font-family--mono);
}
/* li 안에서는 core 블록이 허용하는 인라인 태그만 쓴다 (span[class]는 편집기 저장 시 제거됨) */
.tics-steps>li>strong{ font-weight:700; }  /* 줄바꿈은 마크업의 <br>이 담당 */
.tics-steps>li em{
  display:inline-block; margin-top:.35em; font-style:normal;
  font-size:var(--wp--preset--font-size--sm);
  color:var(--wp--preset--color--contrast-2);
  background:var(--wp--preset--color--base-2);
  border-radius:6px; padding:.15em .5em;
}

/* ── 3. 서류 체크리스트 ──────────────────────────────────────────── */
.tics-check{ background:var(--wp--preset--color--base-2); }
.tics-check .tics-box__title::before{ content:"🗂"; }
.tics-check ul{ list-style:none; margin:0; padding:0; }
/* grid를 쓰면 li 안의 <br>·<em>이 각각 그리드 아이템이 되어 세로로 쪼개진다.
   li 자식 구성이 바뀌어도 안전하도록 ::before를 absolute로 띄운다. */
.tics-check li{
  position:relative; display:block;
  padding:.55em 0 .55em 1.9em; line-height:1.7;
  border-bottom:1px dashed var(--wp--preset--color--border);
}
.tics-check li:last-child{ border-bottom:0; }
.tics-check li::before{
  content:"☐"; position:absolute; left:0; top:.5em;
  line-height:1; color:var(--wp--preset--color--primary); font-size:1.15em;
}
.tics-check li em{ display:block; font-style:normal; font-size:var(--wp--preset--font-size--sm); color:var(--wp--preset--color--contrast-2); }

/* ── 4. 주의 / 함정 박스 ─────────────────────────────────────────── */
.tics-notice{ background:var(--wp--preset--color--warning-soft); border-color:color-mix(in srgb, var(--wp--preset--color--warning) 30%, transparent); }
.tics-notice .tics-box__title::before{ content:"⚠️"; }
.tics-notice .tics-box__title{ color:var(--wp--preset--color--warning); }
.tics-danger{ background:var(--wp--preset--color--danger-soft); border-color:color-mix(in srgb, var(--wp--preset--color--danger) 30%, transparent); }
.tics-danger .tics-box__title::before{ content:"⛔"; }
.tics-danger .tics-box__title{ color:var(--wp--preset--color--danger); }
.tics-tip{ background:var(--wp--preset--color--success-soft); border-color:color-mix(in srgb, var(--wp--preset--color--success) 30%, transparent); }
.tics-tip .tics-box__title::before{ content:"✅"; }
.tics-tip .tics-box__title{ color:var(--wp--preset--color--success); }

/* 이용자 보고 — 공식 문서가 답하지 않는 것을 커뮤니티 증언으로 채운 자리(spec §5-3).
   **주의(주황)·가능(초록) 계열 색을 쓰지 않는 것이 요점이다.** 저 색들은 우리가 확정한
   판단을 뜻하고, 이 박스는 확정하지 않은 진술이다. 회색 바탕 + 점선 테두리로 "검증 전"이
   먼저 읽히게 하고, 본문보다 한 단계 낮은 색으로 놓아 확정 사실과 시각적으로 갈라 놓는다. */
.tics-reported{
  background:var(--wp--preset--color--base-2);
  border-style:dashed;
  border-color:var(--wp--preset--color--border);
}
.tics-reported .tics-box__title::before{ content:"💬"; }
.tics-reported .tics-box__title{ color:var(--wp--preset--color--contrast-2); }
.tics-reported p{ color:var(--wp--preset--color--contrast-2); font-size:var(--wp--preset--font-size--sm); }

/* ── 5. 비교표 (모바일 가로 스크롤) ──────────────────────────────── */
.tics-compare{ margin-block:var(--wp--preset--spacing--50); }
.tics-compare figcaption{ font-size:var(--wp--preset--font-size--sm); color:var(--wp--preset--color--contrast-2); margin-top:.6em; }
.tics-compare table{ width:100%; border-collapse:collapse; font-size:var(--wp--preset--font-size--sm); }
.tics-compare thead th{
  background:var(--wp--preset--color--contrast); color:var(--wp--preset--color--base);
  font-weight:700; text-align:left; padding:.7em .8em; white-space:nowrap;
}
.tics-compare tbody th{
  background:var(--wp--preset--color--base-2); font-weight:700; text-align:left;
  white-space:nowrap;   /* 좌측 축 라벨이 '유효기/간' 처럼 쪼개지지 않게. 모바일은 내부 스크롤이 받는다 */
}
.tics-compare td,.tics-compare tbody th{ border:1px solid var(--wp--preset--color--border); padding:.65em .8em; vertical-align:top; line-height:1.65; }
.tics-compare tbody tr:nth-child(even) td{ background:var(--wp--custom--surface--stripe); }
/* 셀 단위 class를 core table 블록이 보존하지 않으므로 열 선택자로 숫자 정렬을 준다 */
.tics-compare td:not(:first-child){ font-variant-numeric:tabular-nums; }
.wp-block-table.tics-compare{ overflow-x:auto; }
/* 5열 이상 비교표. 데스크톱에서는 본문 폭(740px) 안에 다 넣는다 —
   min-width 를 주면 마지막 열이 잘린 채 걸리는데, 스크롤 힌트가 없어 깨진 것으로 읽힌다.
   가로 스크롤은 그 제스처가 자연스러운 모바일에만 둔다(아래 미디어 쿼리). */
.tics-compare.is-wide thead th{ white-space:normal; }

/* ── 6. 계산 예시 ────────────────────────────────────────────────── */
.tics-calc{ background:var(--wp--preset--color--base-2); border-left:4px solid var(--wp--preset--color--teal); }
.tics-calc .tics-box__title::before{ content:"🧮"; }
.tics-calc__row{
  display:flex; justify-content:space-between; gap:1em;
  padding:.5em 0; border-bottom:1px dashed var(--wp--preset--color--border);
  font-size:var(--wp--preset--font-size--sm);
}
.tics-calc__row:last-of-type{ border-bottom:0; }
.tics-calc__row p{ margin:0; }
.tics-calc__row>:last-child{ font-family:var(--wp--preset--font-family--mono); font-weight:600; white-space:nowrap; }
.tics-calc__total{ border-top:2px solid var(--wp--preset--color--contrast); margin-top:.4em; padding-top:.6em; font-weight:700; font-size:var(--wp--preset--font-size--base); }

/* ── 7. FAQ 아코디언 (core/details) ─────────────────────────────── */
.tics-faq{ margin-block:var(--wp--preset--spacing--50); }
.tics-faq .wp-block-details{
  border:1px solid var(--wp--preset--color--border);
  border-radius:8px; padding:.9em 1.1em; margin-block:.6em;
  background:var(--wp--preset--color--base);
}
.tics-faq .wp-block-details summary{ font-weight:700; cursor:pointer; line-height:1.55; }
.tics-faq .wp-block-details[open]{ background:var(--wp--preset--color--base-2); }
.tics-faq .wp-block-details[open] summary{ margin-bottom:.6em; padding-bottom:.6em; border-bottom:1px solid var(--wp--preset--color--border); }

/* ── 8. 클러스터 링크 허브 (내부 링크 · 체류시간) ────────────────── */
.tics-hub{ background:var(--wp--preset--color--base-2); }
.tics-hub .tics-box__title::before{ content:"🧭"; }
.tics-hub ol{ list-style:none; counter-reset:tics-hub; margin:0; padding:0; }
.tics-hub li{
  counter-increment:tics-hub; position:relative; display:block;
  padding:.55em 0 .55em 2.9em;
  border-bottom:1px solid var(--wp--preset--color--border);
}
.tics-hub li:last-child{ border-bottom:0; }
.tics-hub li::before{
  content:counter(tics-hub) "탄"; position:absolute; left:0; top:.75em;
  line-height:1; font-size:var(--wp--preset--font-size--sm); font-weight:700;
  color:var(--wp--preset--color--primary);
}
/* 순번 표시는 **글의 언어**를 따라간다. 여기 텍스트가 CSS 안에 있어서 md2blocks 의 블록
   기본 제목·render_block 의 "(준비 중)" 분기가 닿지 않았고, 영어 글 11건에 「1탄」이
   그대로 찍혀 있었다(2026-08-15). 언어는 body 클래스로 온다(functions.php). */
.tics-lang-en .tics-hub li{ padding-left:4.3em; }
.tics-lang-en .tics-hub li::before{ content:"Part " counter(tics-hub); }
/* 시리즈 허브 링크도 나열형이므로 탭 영역을 확보한다 — 링크가 채워지는 순간
   높이 19px 로 붙어 오터치가 난다(실측으로 잡힘). */
.tics-hub a{ font-weight:600; display:inline-block; padding-block:.62em; }  /* 40→44px (2026-09-02) */
/* 링크 없는 항목 = 현재 보고 있는 글.
   opacity 로 흐리면 대비가 무너진다 — 실측 2026-09-02: 본문색 3.77:1 · 「Part N」 번호
   2.46:1 로 둘 다 AA(4.5:1) 미달이었고, 라이브 29건 중 26건이 이 항목을 갖고 있었다.
   흐리는 대신 **색으로** 링크가 아님을 말한다: contrast-2 on base-2 = 6.57:1.
   링크는 primary·밑줄·600 이므로 회색 400 과 섞이지 않는다. */
.tics-hub li:not(:has(a)){ color:var(--wp--preset--color--contrast-2); }
.tics-hub li:not(:has(a))::before{ color:var(--wp--preset--color--contrast-2); }

/* ── 부속: 출처 · 면책 · 갱신일 ─────────────────────────────────── */
.tics-source{ font-size:var(--wp--preset--font-size--sm); color:var(--wp--preset--color--contrast-2); }
.tics-source .tics-box__title::before{ content:"📚"; }
.tics-source ol{ margin:0; padding-left:1.3em; }
.tics-source li{ margin-block:.35em; line-height:1.6; word-break:break-all; }
.tics-disclaimer{ font-size:var(--wp--preset--font-size--sm); color:var(--wp--preset--color--contrast-2); background:var(--wp--preset--color--base-2); border-style:dashed; }
.tics-meta{ font-size:var(--wp--preset--font-size--sm); color:var(--wp--preset--color--contrast-2); display:flex; flex-wrap:wrap; gap:.9em; margin-block:var(--wp--preset--spacing--30); }

/* ── 본문 이미지 캡션(출처·캡처일 의무 표기) ────────────────────── */
.wp-block-image figcaption{
  font-size:var(--wp--preset--font-size--sm);
  color:var(--wp--preset--color--contrast-2);
  text-align:left; line-height:1.6; margin-top:.6em;
}

/* ── 모바일 ─────────────────────────────────────────────────────── */
@media (max-width:600px){
  .tics-box{ padding:var(--wp--preset--spacing--30); border-radius:8px; }
  .tics-steps>li{ padding-left:2.5rem; }
  .tics-compare{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .tics-compare table{ min-width:520px; }
  .tics-compare.is-wide table{ min-width:900px; }
  .tics-calc__row{ flex-direction:column; gap:.15em; }
  .tics-calc__row>:last-child{ text-align:right; }
}

/* ── 사이트 골격 (헤더·푸터) ─────────────────────────────────────
   여백은 CSS로 덮지 않고 templates/single.html 에서 구조로 정한다.
   여기 있는 건 선·색·크기뿐이다. */
/* 머스트헤드 — 잉크 밴드. 배경은 팔레트의 contrast 를 그대로 쓴다: 팔레트 밖 색을 만들면
   kit.py(커버 이미지)와 사이트 잉크가 갈라진다. 밝은 전경(text·muted·accent·line)은
   theme.json custom.masthead 토큰 — 잉크 위 전용이라 팔레트(밝은 배경 전제)에 넣지 않는다. */
.tics-header{
  padding-block:var(--wp--preset--spacing--30);
  background:var(--wp--preset--color--contrast);
  color:var(--wp--custom--masthead--text);
}
.tics-header .tics-brand a{ text-decoration:none; color:var(--wp--custom--masthead--text); }
.tics-brand{
  font-family:var(--wp--preset--font-family--serif);
  font-size:1.45rem; font-weight:700; letter-spacing:-0.01em; line-height:1.2;
}
.tics-nav{ font-size:var(--wp--preset--font-size--sm); }
.tics-nav a{ text-decoration:none; color:var(--wp--custom--masthead--muted); }
.tics-nav a:hover{ color:var(--wp--custom--masthead--text); }
.tics-nav .wp-block-navigation__container{ gap:.1em .75em; }  /* 4→6칸(2026-09-02) */
/* 브랜드와 도구 묶음 사이 간격 — 코어 blockGap 기본값이 24px 이라 1120px 안에서
   브랜드 195 + 24 + 도구 910 = 1129 로 9px 넘쳐 헤더가 2줄이 됐다(실측 2026-09-02). */
.tics-header .alignwide{ gap:.75rem; }
.tics-headtools{ gap:1em; align-items:center; }
/* 햄버거·닫기 버튼 아이콘은 currentColor — 잉크 배경에서 흰색으로 */
.tics-header .wp-block-navigation__responsive-container-open,
.tics-header .wp-block-navigation__responsive-container-close{ color:var(--wp--custom--masthead--text); }
/* 모바일 오버레이 — 명시하지 않으면 코어 기본(흰 배경)에 흰 링크가 얹혀 안 보인다 */
.tics-header .wp-block-navigation__responsive-container.is-menu-open{
  background:var(--wp--preset--color--contrast);
  color:var(--wp--custom--masthead--text);
}
.tics-header .wp-block-navigation__responsive-container.is-menu-open a{
  color:var(--wp--custom--masthead--text);
}

/* ── 검색 ─────────────────────────────────────────────────────────
   외부 평가 3건 중 하나가 "검색이 없어서 답답하다"를 지적했는데, 실제로는
   검색 블록이 404 템플릿에만 있었다 — 길을 잃은 사람만 검색창을 볼 수 있었다.
   헤더·푸터 두 곳에 얹는다. 헤더판은 **모바일에서 감춘다**: 폭을 차지하면
   햄버거가 다음 줄로 밀려 헤더가 2줄을 먹는다(아래 미디어쿼리 주석과 같은 함정).
   모바일 커버리지는 푸터판이 맡는다 — 모든 페이지에 있고 레이아웃 위험이 없다.
   홈 히어로판(--hero)은 2026-08-25 에 뺐다 — 헤더판과 같은 화면에 있어 첫 화면에
   검색창이 2개였다. 하나를 남긴다면 모든 페이지에 있는 쪽(헤더)이다. */
.tics-search .wp-block-search__inside-wrapper{
  border:1px solid var(--wp--preset--color--border);
  border-radius:4px;
  background:var(--wp--preset--color--base);
  padding:0;
}
.tics-search .wp-block-search__input{
  border:0; background:transparent; padding:.55em .7em;
  font-size:var(--wp--preset--font-size--sm);
  color:var(--wp--preset--color--contrast);
  min-width:0;
}
.tics-search .wp-block-search__input::placeholder{ color:var(--wp--preset--color--contrast-2); opacity:.85; }
.tics-search .wp-block-search__input:focus{ outline:2px solid var(--wp--preset--color--primary); outline-offset:1px; }
.tics-search .wp-block-search__button{
  background:transparent; border:0; color:var(--wp--preset--color--contrast-2);
  padding:.45em .6em; cursor:pointer;
}
.tics-search .wp-block-search__button:hover{ color:var(--wp--preset--color--primary); }
.tics-search .wp-block-search__button svg{ width:22px; height:22px; fill:currentColor; }

/* 폭 실측(2026-09-02, 1440px): alignwide 1120 안에 브랜드 195 + 내비 729 + 검색 208 = 1132 로
   12px 넘쳐 헤더가 2줄이 됐다. 내비가 4칸에서 6칸이 되며 생긴 일이다. 셋을 조금씩 줄여
   한 줄로 되돌린다(검색 13→10.5rem · 내비 간격 .95→.8em · 도구 간격 1.4→1em). */
.tics-search--head{ width:10.5rem; }
/* 머스트헤드판 검색 — 잉크 배경 위라 밝은 전경 토큰으로 뒤집는다 */
.tics-search--head .wp-block-search__inside-wrapper{ border-color:var(--wp--custom--masthead--line); background:transparent; }
.tics-search--head .wp-block-search__input{ color:var(--wp--custom--masthead--text); }
.tics-search--head .wp-block-search__input::placeholder{ color:var(--wp--custom--masthead--muted); }
.tics-search--head .wp-block-search__input:focus{ outline-color:var(--wp--custom--masthead--accent); }
.tics-search--head .wp-block-search__button{ color:var(--wp--custom--masthead--muted); }
.tics-search--head .wp-block-search__button:hover{ color:var(--wp--custom--masthead--text); }
.tics-search--foot{ max-width:26rem; margin:0 auto 1.4em 0; }
/* 푸터판 검색 — 잉크 배경 위(머스트헤드판과 같은 전경 토큰) */
.tics-search--foot .wp-block-search__inside-wrapper{ border-color:var(--wp--custom--masthead--line); background:transparent; }
.tics-search--foot .wp-block-search__input{ color:var(--wp--custom--masthead--text); }
.tics-search--foot .wp-block-search__input::placeholder{ color:var(--wp--custom--masthead--muted); }
.tics-search--foot .wp-block-search__input:focus{ outline-color:var(--wp--custom--masthead--accent); }
.tics-search--foot .wp-block-search__button{ color:var(--wp--custom--masthead--muted); }
.tics-search--foot .wp-block-search__button:hover{ color:var(--wp--custom--masthead--text); }

/* 푸터 — 머스트헤드와 같은 잉크 밴드로 페이지를 위아래에서 닫는다 */
.tics-footer{
  background:var(--wp--preset--color--contrast);
  font-size:var(--wp--preset--font-size--sm);
  color:var(--wp--custom--masthead--muted);
}
.tics-footer a{ color:var(--wp--custom--masthead--text); }
.tics-footer a:hover{ color:var(--wp--custom--masthead--accent); }
.tics-footer strong{ color:var(--wp--custom--masthead--text); }
.tics-disclaimer-text{ max-width:46rem;   /* 실측 117자/줄 → 약 86자 (2026-09-02) */ line-height:1.7; }
/* 카테고리 링크가 가운뎃점으로 나열되는 곳 — 인라인 그대로 두면 모바일에서 높이 17px로
   붙어 오터치가 난다(실측으로 잡힘). inline-block + 패딩으로 탭 영역을 벌린다. */
/* 푸터 나열 — <p> + 「·」 에서 <ul> 로 (2026-09-02). 구분점은 CSS 가 그린다:
   마크업에 남기면 스크린리더가 링크 사이마다 「가운뎃점」을 읽는다. */
.tics-footer-nav{
  margin-top:1.2em; padding:0; list-style:none;
  display:flex; flex-wrap:wrap; align-items:baseline; column-gap:.2em; row-gap:0;
}
.tics-footer-nav li{ margin:0; }
.tics-footer-nav li+li::before{ content:"·"; color:var(--wp--custom--masthead--muted); margin-right:.2em; }
.tics-footer-nav a{ display:inline-block; padding:.62em .15em; }
.tics-footer-copy{ margin-top:1.2em; opacity:.75; }

/* ── 글 머리 (카테고리 → 제목 → 메타) ──────────────────────────── */
/* 눈썹줄 = 창구(태그) + 단계(카테고리).
   왜 둘인가: 목록이 날짜순인데 클러스터를 한 번에 3~4건 발행하므로 카테고리만 찍으면
   네 값이 같은 순서로 순환해 변별력이 0 이 된다(실측: 홈 10건 중 8건이 같은 주기).
   독자가 찾는 것은 **창구 이름**이고 그건 제목 문장 안에만 있었다.
   왜 색을 나누는가: 눈썹과 제목이 둘 다 primary 라 눈썹이 또 하나의 제목으로 읽혔다.
   창구는 회색 칩, 단계는 회색 글자, 파랑은 제목 링크에만 남긴다. */
.tics-eyebrow{ font-size:var(--wp--preset--font-size--sm); font-weight:700; align-items:center; }
.tics-eyebrow .wp-block-post-terms{ margin:0; }
.tics-eyebrow__platform a{
  display:inline-block;
  text-decoration:none;
  color:var(--wp--preset--color--contrast);
  background:var(--wp--preset--color--base-3);
  border-radius:var(--wp--custom--radius--sm);
  padding:.12em .6em;
  font-size:.86em;
  letter-spacing:0;
}
.tics-eyebrow__platform a:hover{ background:var(--wp--preset--color--primary-soft); color:var(--wp--preset--color--primary); }
.tics-eyebrow__stage{ font-weight:600; color:var(--wp--preset--color--contrast-2); }
.tics-eyebrow__stage a{ text-decoration:none; color:var(--wp--preset--color--contrast-2); }
.tics-eyebrow__stage a:hover{ color:var(--wp--preset--color--primary); }
.tics-tags{ font-size:var(--wp--preset--font-size--sm); color:var(--wp--preset--color--contrast-2); }
.tics-tags a{ color:var(--wp--preset--color--contrast-2); }

/* ── 목록 페이지(카테고리·태그·검색) ────────────────────────────── */
.tics-archive__title{ margin:0; }
/* max-width 를 주지 않는다 — 구성형(is-layout-constrained) 자식의 좌우 마진은 코어가
   !important 로 auto 를 박아서, 폭을 좁히면 왼쪽으로 붙는 게 아니라 가운데로 밀린다.
   실측 2026-08-21: 60ch 를 주자 제목보다 12.6px 안쪽에서 시작했다. */
.tics-archive__desc{
  color:var(--wp--preset--color--contrast-2);
  margin-top:.6em;
  /* 2026-09-02: 실측 128자/줄(상한 90). 위 주석이 기록한 함정(구성형 자식의 auto 마진)은
     템플릿의 head 그룹 layout 을 default 로 바꿔 해소했다 — 히어로가 이미 쓰던 방식이다.
     이제 max-width 가 가운데로 밀지 않고 왼쪽에 붙는다. */
  max-width:46rem;
}
.tics-archive .tics-search{ margin-top:var(--wp--preset--spacing--30); max-width:34rem; }

/* 본문 첫 블록이 요약 카드면 제목과 붙지 않게 최소 간격만 준다 */
.tics-single .wp-block-post-content>.tics-summary:first-child{ margin-top:var(--wp--preset--spacing--40); }

@media (max-width:600px){
  .tics-header{ padding-block:var(--wp--preset--spacing--20); }
  /* nav 를 width:100% 로 두면 햄버거 버튼이 브랜드 아래 줄로 밀려 헤더가 2줄을 먹는다.
     오버레이 메뉴 모드에서는 버튼 하나뿐이므로 폭을 강제하지 않는다. */
  .tics-nav{ flex:0 0 auto; }
  /* 헤더 검색은 이제 내비게이션 블록 **안**에 있다(parts/header.html, 2026-09-02).
     그래서 600px 이하에서는 햄버거를 눌러 연 오버레이 안에 나타난다 — 헤더 폭을 먹지
     않으면서 모바일 검색이 스크롤 0에서 닿는다. 종전에는 여기서 display:none 으로
     지웠고, 모바일의 유일한 검색이 푸터(홈 기준 문서 좌표 6,946px)였다. */
  /* 터치 타깃 44px 확보 */
  .tics-search .wp-block-search__button{ padding:.7em .8em; }
  .tics-search .wp-block-search__input{ padding:.7em .8em; }
  .tics-brand{ font-size:1.2rem; }
  /* 햄버거 터치 영역 확보 (아이콘만으로는 17px 수준이 된다) */
  .tics-header .wp-block-navigation__responsive-container-open{ padding:.55em; margin:-.55em; }
  /* 오버레이가 열렸을 때 항목 간 세로 간격 — 오터치 방지.
     **이 규칙은 2026-09-02 까지 한 번도 적용된 적이 없다.** 코어가 뒤에서
     `.wp-block-navigation__responsive-container.is-menu-open:where(:not(…)) .wp-block-navigation__container
      .wp-block-navigation-item__content{padding:0}` 로 덮는다 — 클래스 4개라 이쪽(3개+태그)보다 높다.
     실측 결과 링크 높이가 26px 로 남아 있었다. 그래서 선택자를 코어보다 길게 잡는다.
     `a` 대신 `.wp-block-navigation-item__content` 를 쓰는 이유도 같다 — 코어가 그 클래스를 노린다. */
  .tics-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container .wp-block-navigation-item__content{
    padding-block:.75em;
  }
}

/* ── 홈 ──────────────────────────────────────────────────────────
   부모 테마 home.html 의 <h1>블로그</h1> 를 자식 템플릿으로 대체했다.
   홈은 애드센스 심사자가 가장 먼저 보는 화면이므로 "무엇을 다루는 곳인가"가
   첫 화면에 들어와야 한다. */
/* 히어로 — 왼쪽은 "여기가 무엇을 다루는 곳인가"(h1·리드), 오른쪽은 "그래서 어디로
   들어가는가"(플랫폼 선택). 1920px 실측에서 오른쪽 40% 가 완전히 비어 있었고, 첫 화면에
   글로 가는 링크가 하나도 없었다. 빈 폭을 장식으로 채우지 않고 **진입점**으로 채운다.

   플랫폼(태그) 축을 오른쪽에 둔 이유: 방문자는 "내가 쓰는 사이트가 여기 있나"를 먼저
   묻는데, 그 축이 헤더 내비(단계 4개)에도 아래 「Browse by stage」(같은 단계 4개)에도 없었다.
   같은 축을 두 번 그리면 선택지가 늘어난 게 아니라 같은 문이 두 개 있는 것이다.

   히어로 검색창은 뺐다 — 헤더에 이미 있어서 첫 화면에 검색이 2개였다(600px 이하에서는
   헤더판이 숨고 푸터판이 받는다. 기존 결정 그대로). */
.tics-hero__title{
  font-size:clamp(2.1rem, 1.35rem + 3vw, 3rem);
  line-height:1.12; letter-spacing:-0.02em; margin:0 0 .45em;
}
.tics-hero__lead{
  font-size:var(--wp--preset--font-size--base);
  color:var(--wp--preset--color--contrast-2);
  line-height:1.75; margin:0; max-width:46rem;
}
.tics-hero{ border-bottom:1px solid var(--wp--preset--color--border); }

/* 2단은 900px 부터. 그 아래에서는 흐름 그대로 쌓인다(모바일이 기본형).
   1.4:1 로 나누면 1120px 에서 왼쪽 약 620px = 영문 76자 안팎 — 본문 행길이 상한(90자) 안. */
@media (min-width:900px){
  .tics-hero__grid{
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
    gap:var(--wp--preset--spacing--50);
    align-items:start;
  }
  /* is-layout-flow 의 블록갭이 그리드 안에서는 세로 밀림으로만 남는다 */
  .tics-hero__grid>*{ margin-block:0; }
}
.tics-hero__panel{
  background:var(--wp--preset--color--base-2);
  border:1px solid var(--wp--preset--color--border);
  border-radius:var(--wp--custom--radius--md);
  padding:var(--wp--preset--spacing--40);
}
.tics-hero__panel>*{ margin-block:0; }
/* 패널 제목은 편집 활자가 아니라 UI 라벨이다 — 본문 산세리프로 되돌리고 h2 기본 여백을 끈다 */
.tics-hero__panel-title{
  font-family:var(--wp--preset--font-family--sans);
  font-size:var(--wp--preset--font-size--md);
  font-weight:700; line-height:1.35; letter-spacing:-0.015em;
  margin:0 0 .8em;
}
/* 플랫폼 선택 — 목적지는 글 수로 갈린다: 글이 여럿인 플랫폼(NOL 5 · YES24 4 ·
   all-platforms 3)은 태그 아카이브가 허브 구실을 하지만, 1건짜리(Melon · Ticketlink ·
   INSPIRE)는 아카이브가 글 하나만 담은 한 칸 더다 — 그 셋은 글로 바로 보낸다.
   태그 아카이브는 functions.php 가 noindex 로 돌려 놓았고(2026-08-25), 얇은 중복을
   홈 첫 화면의 주 진입점으로 삼을 이유가 없다. 글이 늘면 그때 태그로 되돌린다.

   앵커 안은 인라인만(strong·br). 그리드 컨테이너는 <p> 이고 아이템은
   블록으로 세운 <a> 라서, li 에 grid 를 걸었을 때 <br> 이 아이템이 되던 함정과 무관하다.
   행 사이 선은 gap 1px + 컨테이너 배경으로 그린다(테두리 중복 없음 — 데이터 잉크). */
.tics-hero__picks{
  display:grid; gap:1px; margin:0;
  padding:0; list-style:none;   /* <p> → <ul> (2026-09-02) */
  background:var(--wp--preset--color--border);
  border:1px solid var(--wp--preset--color--border);
  border-radius:var(--wp--custom--radius--sm);
  overflow:hidden;
}
.tics-hero__picks a{
  display:block; text-decoration:none;
  background:var(--wp--preset--color--base);
  padding:.7em .85em;
  color:var(--wp--preset--color--contrast-2);
  font-size:var(--wp--preset--font-size--sm); line-height:1.5;
}
.tics-hero__picks a br{ display:none; }
.tics-hero__picks a strong{
  display:block;
  font-size:var(--wp--preset--font-size--base); font-weight:700;
  letter-spacing:-0.015em; line-height:1.35;
  color:var(--wp--preset--color--contrast);
  margin-bottom:.1em;
}
.tics-hero__picks a:hover{ background:var(--wp--preset--color--primary-soft); }
.tics-hero__picks a:hover strong{ color:var(--wp--preset--color--primary); }
/* 계산기 진입 — 이 화면의 강조는 여기 하나다(플랫폼 행은 중립면 위 잉크색).
   목록·태그는 읽는 것이고 계산기는 쓰는 것이라 체류·재방문에 직접 걸린다.
   오른쪽 패널이 아니라 **왼쪽 본문 단**에 두었다: 패널이 리드보다 훨씬 길어서 왼쪽
   아래가 비었고(1440px 실측 390px), 이 카드가 그 자리를 메우면서 읽는 순서
   (제목 → 무엇을 다루는가 → 지금 할 수 있는 것)의 마지막 칸에 온다. */
.tics-hero__tool{ margin:var(--wp--preset--spacing--40) 0 0; max-width:46rem; }
.tics-hero__tool a{
  display:block; text-decoration:none;
  /* 2026-09-02: primary-soft 면 + primary 22% 테두리는 본문의 「읽는 상자」
     (.tics-summary)와 완전히 같은 조합이라, 이 카드가 도구가 아니라 안내문으로
     읽혔다. 채운 버튼면으로 갈라 놓는다 — 흰 글자 on #1a56db = 6.18:1. */
  background:var(--wp--preset--color--primary);
  border:1px solid var(--wp--preset--color--primary);
  border-radius:var(--wp--custom--radius--sm);
  padding:.8em .95em;
  color:#dce7fb;
  font-size:var(--wp--preset--font-size--sm); line-height:1.5;
}
.tics-hero__tool a br{ display:none; }
.tics-hero__tool a strong{
  display:block;
  font-size:var(--wp--preset--font-size--base); font-weight:700;
  letter-spacing:-0.015em; line-height:1.35;
  color:#ffffff;
  margin-bottom:.1em;
}
.tics-hero__tool a:hover{
  background:#1449b8;
  border-color:#1449b8;
}

/* 홈 섹션 제목 — 제목 뒤로 괘선을 흘리는 신문 섹션 헤드 */
.tics-secthead{
  display:flex; align-items:center; gap:1.1rem;
  font-size:var(--wp--preset--font-size--xl); margin:0 0 1em;
}
.tics-secthead::after{ content:""; flex:1; height:1px; background:var(--wp--preset--color--border); }

/* 카테고리 인덱스 — 단계 축. 상단 괘선만 있던 칼럼을 **면을 가진 카드**로 바꿨다.
   실측 지적: 밑줄 하나에 텍스트만 얹혀 있어 클릭 대상으로 읽히지 않았다(어포던스).
   신문 섹션 머리의 굵은 상단 괘선은 남긴다 — 이 사이트의 목록 표식이고, 경계선(#dde3ec)
   만으로는 배경 대비가 1.29:1 이라 면을 구분하는 힘이 없다. 잉크 괘선은 14.6:1 이다.
   앵커 안은 인라인 요소만(strong·br) — 편집기 저장에 안전. strong 을 블록으로 세우므로
   br 은 시각적으로 숨긴다(마크업에는 남아 RSS·텍스트 추출에서 줄을 지킨다). */
.tics-cats__grid{
  /* 칸 수는 명시한다. auto-fit + minmax 로 뒀더니 1120px 컨테이너에서 4칸이 되어
     6개가 4+2 로 갈라졌다(고아 2칸). 축이 6개인 인덱스라 3×2 가 읽기 좋다. */
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  gap:var(--wp--preset--spacing--30); margin:0;
  /* 2026-09-02: <p> 안 앵커 나열에서 <ul> 로 바꿨다(보조기술에 목록으로 안 읽혔다).
     칸 수를 4로 못박지 않는 이유 — 카테고리는 6개가 됐고, 앞으로도 늘거나 준다.
     auto-fit 이면 1120px 에서 3×2, 900px 에서 2×3, 좁으면 1열로 스스로 접힌다. */
  padding:0; list-style:none;
}
.tics-cats__grid li{ margin:0; }
.tics-cats__grid li::marker{ content:""; }
.tics-cats__grid a{
  display:block; text-decoration:none;
  background:var(--wp--preset--color--base-2);
  border:1px solid var(--wp--preset--color--border);
  border-top:3px solid var(--wp--preset--color--contrast);
  border-radius:0 0 var(--wp--custom--radius--sm) var(--wp--custom--radius--sm);
  padding:1em 1.05em 1.1em;
  color:var(--wp--preset--color--contrast-2);
  font-size:var(--wp--preset--font-size--sm); line-height:1.6;
}
.tics-cats__grid a br{ display:none; }
.tics-cats__grid a strong{
  display:block;
  font-family:var(--wp--preset--font-family--serif);
  font-size:var(--wp--preset--font-size--md); font-weight:600; letter-spacing:-0.01em; line-height:1.3;
  color:var(--wp--preset--color--contrast);
  margin-bottom:.35em;
}
/* hover 는 면이 뜨는 방향으로 — 배경을 흰색으로 올리고 테두리를 주색으로 바꾼다
   (주색 대비 6.18:1, 비텍스트 3:1 기준 통과) */
.tics-cats__grid a:hover{
  background:var(--wp--preset--color--base);
  border-color:var(--wp--preset--color--primary);
}
.tics-cats__grid a:hover strong{ color:var(--wp--preset--color--primary); }
@media (min-width:1000px){
  .tics-cats__grid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}

/* 최신 글 — 커버 이미지 카드 그리드. 첫 글은 리드 스토리로 두 칼럼을 다 쓴다.
   li 에 grid 를 걸지만 자식이 전부 블록 요소(figure·div·h·p)라 인라인 쪼개짐 함정과 무관. */
.tics-latest .wp-block-post-template{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  gap:var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
  margin:0; padding:0; list-style:none;
}
.tics-latest .wp-block-post{ margin:0; min-width:0; }
.tics-latest li.wp-block-post:first-child{ grid-column:1 / -1; }
.tics-card__media{
  margin:0 0 1em;
  border-radius:var(--wp--custom--radius--md);
  border:1px solid var(--wp--preset--color--border);
  overflow:hidden;
  background:var(--wp--preset--color--base-2);
}
.tics-card__media img{ display:block; transition:transform .35s ease; }
.wp-block-post:hover .tics-card__media img{ transform:scale(1.02); }
.tics-latest .wp-block-post-title{
  font-family:var(--wp--preset--font-family--serif);
  font-size:var(--wp--preset--font-size--lg); font-weight:600; line-height:1.3; letter-spacing:-0.01em;
  margin:.3em 0 .35em;
}
/* 제목은 잉크색 — 파랑은 hover 에만. 목록 전체가 파란 세리프면 링크 더미로 읽힌다 */
.tics-latest .wp-block-post-title a{ text-decoration:none; color:inherit; }
.tics-latest .wp-block-post-title a:hover{ color:var(--wp--preset--color--primary); text-decoration:underline; text-underline-offset:3px; }
.tics-latest .wp-block-post-excerpt{ color:var(--wp--preset--color--contrast-2); font-size:var(--wp--preset--font-size--sm); }
.tics-latest .wp-block-post-excerpt__excerpt{
  line-height:1.7; margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.tics-latest .tics-meta{ margin-block:.6em 0; }
/* 리드 스토리 — 넓은 화면에서 이미지 왼쪽·텍스트 오른쪽 분할. figure 가 4행을 관통하므로
   남는 높이는 텍스트 행 사이로 고르게 흘러 잡지식 세로 리듬이 된다. */
@media (min-width:781px){
  .tics-latest li.wp-block-post:first-child{
    display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr);
    column-gap:var(--wp--preset--spacing--50); row-gap:.2rem;
  }
  .tics-latest li.wp-block-post:first-child .tics-card__media{ grid-column:1; grid-row:1 / span 4; margin:0; }
  .tics-latest li.wp-block-post:first-child > :not(.tics-card__media){ grid-column:2; }
  .tics-latest li.wp-block-post:first-child .wp-block-post-title{
    font-size:clamp(1.5rem, 1.05rem + 1.7vw, 2rem); line-height:1.2;
  }
  .tics-latest li.wp-block-post:first-child .wp-block-post-excerpt{ font-size:var(--wp--preset--font-size--base); }
  .tics-latest li.wp-block-post:first-child .wp-block-post-excerpt__excerpt{ -webkit-line-clamp:4; }
}
@media (max-width:780px){
  .tics-latest .wp-block-post-template{ grid-template-columns:1fr; gap:var(--wp--preset--spacing--50); }
}
/* 목록 페이지네이션 */
.tics-latest .wp-block-query-pagination{
  margin-top:var(--wp--preset--spacing--50);
  padding-top:var(--wp--preset--spacing--30);
  border-top:1px solid var(--wp--preset--color--border);
}
.tics-latest .wp-block-query-pagination a{
  display:inline-block; padding:.4em .2em;
  text-decoration:none; font-weight:600;
  color:var(--wp--preset--color--primary);
}
.tics-latest .wp-block-query-pagination a:hover{ text-decoration:underline; }
.tics-footer-legal{
  margin-top:.9em; padding:0; list-style:none;
  display:flex; flex-wrap:wrap; align-items:baseline; column-gap:.2em; row-gap:0;
}
.tics-footer-legal li{ margin:0; }
.tics-footer-legal li+li::before{ content:"·"; color:var(--wp--custom--masthead--muted); margin-right:.2em; }
.tics-footer-legal a{ display:inline-block; padding:.62em .15em; }
/* 푸터 안의 모든 링크가 탭 영역을 갖게 한다 — 저작권 줄의 사이트명 링크가 17px 로 남아 있었다 */
.tics-footer-copy a{ display:inline-block; padding:.62em .1em; }

@media (max-width:600px){
  /* 1열이었다. 카테고리가 6개가 되면서 1열은 약 537px 를 먹어 첫 글 링크를 화면 밖으로
     밀었다(2026-09-02 실측). 2열로 둔다 — 카드 안이 제목 한 줄 + 설명 두 줄이라 든다. */
  .tics-cats__grid a{ font-size:var(--wp--preset--font-size--sm); }
}

/* ── 본문 하이라이트 ─────────────────────────────────────────────
   구텐베르크 코어의 highlight 포맷이 <mark> 를 쓰므로 편집기에서 열어도 유지된다.
   밀도가 핵심이다 — 문단당 1문장·글당 4~6개를 린트가 강제한다.
   전부 칠하면 아무것도 강조되지 않는다. */
.wp-block-post-content mark,
.tics-box mark{
  background:linear-gradient(transparent 58%, var(--wp--custom--highlight) 58%);
  color:inherit;
  padding:0 .06em;
  border-radius:2px;
}

/* ── 계산기 (tics-calcapp) ─────────────────────────────────────────────────
   patterns/calc-app.php 의 골격 + functions.php 가 렌더 시점에 그리는 폼.
   정적 "계산 예시"(.tics-calc)와 다른 블록이다 — 값을 재정의하지 않는다. */
.tics-calcapp{ background:var(--wp--preset--color--base-2); }
.tics-calcapp .tics-box__title::before{ content:"🧮"; }
/* 폼 — **한 줄에 한 칸**으로 세운다. 여러 열로 두었을 때 실측된 것: 칸마다 라벨 줄수·
   도움말 줄수가 달라(1열 라벨+설명+입력 / 2열 라벨+입력 / 3열 라벨+5줄 설명+입력)
   입력칸의 세로 위치가 전부 어긋났다. 열을 맞추는 방법은 여럿이지만(서브그리드,
   컨트롤 바닥 정렬) 전부 "칸 높이를 억지로 맞추는" 보정이고, 도움말 없는 칸이 섞이면
   또 어긋난다. 740px 본문은 대시보드가 아니라 **글의 한 단**이다 — 결정을 한 줄에
   하나씩 두면 어긋날 축 자체가 없어진다.

   대신 컨트롤에 상한 폭을 준다. 한 줄을 다 쓰는 숫자 입력칸은 6자리를 690px 에 흘리고,
   도움말은 98자까지 늘어난다(본문 행길이 상한 90자 초과).

   컨트롤의 margin-top:auto 는 남겨 둔다 — 이 폼을 다시 여러 열로 돌릴 일이 있으면
   그때 입력칸 바닥을 맞추는 것이 이 한 줄이다(마크업 순서 label → help → control 고정). */
.tics-calcapp__form{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--wp--preset--spacing--30);
  margin-bottom:var(--wp--preset--spacing--40);
}
.tics-calcapp__field{ display:flex; flex-direction:column; gap:.35em; min-width:0; }
.tics-calcapp__field>.tics-calcapp__control,
.tics-calcapp__field>select,
.tics-calcapp__field>input{ margin-top:auto; }
.tics-calcapp__field label{ font-weight:700; font-size:var(--wp--preset--font-size--sm); line-height:1.4; }
.tics-calcapp__help{
  font-size:var(--wp--preset--font-size--sm); color:var(--wp--preset--color--contrast-2);
  line-height:1.5; max-width:36rem;
}
.tics-calcapp__control{ display:flex; align-items:center; gap:.4em; max-width:14rem; }
.tics-calcapp input,.tics-calcapp select{
  /* padding .55em → .75em (2026-09-02): 실측 높이 39/41px 로 44px 터치 타깃 미달이었다 */
  width:100%; padding:.75em .7em; font-size:var(--wp--preset--font-size--base);
  font-family:inherit; color:var(--wp--preset--color--contrast);
  background:var(--wp--preset--color--base);
  border:1px solid var(--wp--preset--color--border); border-radius:4px;
}
.tics-calcapp input{ font-family:var(--wp--preset--font-family--mono); text-align:right; }
/* 셀렉트는 네이티브라 줄바꿈이 없다 — 긴 선택지("On the day of the event (only where the
   product allows same-day cancellation)" 68자)가 칸 폭에서 잘려 **무엇이 선택돼 있는지
   보이지 않았다.** 숫자 칸과 달리 30rem 까지 열어 준다(480px = 17px 기준 약 60자).
   그래도 넘치는 선택지는 말줄임으로 잘렸다는 것을 알린다 — 아무 표시 없이 끊기지 않게. */
.tics-calcapp select{ max-width:30rem; text-overflow:ellipsis; padding-right:2.2em; }
.tics-calcapp input:focus-visible,.tics-calcapp select:focus-visible{
  outline:2px solid var(--wp--preset--color--primary); outline-offset:1px; border-color:transparent;
}
.tics-calcapp__unit{ flex:0 0 auto; font-size:var(--wp--preset--font-size--sm); color:var(--wp--preset--color--contrast-2); }
/* 결과 — 광고와 붙지 않게 아래 여백을 넉넉히 둔다(ad_policy P3 오클릭 방지) */
.tics-calcapp__out{ border-top:1px solid var(--wp--preset--color--border); padding-top:var(--wp--preset--spacing--40); margin-bottom:var(--wp--preset--spacing--50); }
/* 위계 세 단 — 라벨(sm·보조 본문) < 값(md·본문 잉크) < 최종값(xl·주색 면).
   이 사람이 여기 온 이유는 마지막 한 줄이다. 그 줄만 면을 갖는다.
   선택자를 두 벌 적는 이유: 지금 엔진(tics-calc.js)은 dl.tics-calcapp__rows > div(+.is-total)
   를 그리고, 갱신 중인 마크업 계약은 .tics-calcapp__row(+--total) 다. 어느 쪽이 나가도
   스타일이 빠지지 않게 둘 다 받는다 — 한쪽으로 정리되면 나머지를 지운다. */
.tics-calcapp__rows{ margin:0; }
.tics-calcapp__rows>div,
.tics-calcapp__out .tics-calcapp__row{
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  align-items:baseline; gap:.2em 1em;
  padding:.5em 0; border-bottom:1px dashed var(--wp--preset--color--border);
}
.tics-calcapp__rows dt,
.tics-calcapp__out .tics-calcapp__row>:first-child{
  margin:0; color:var(--wp--preset--color--contrast-2);
  font-size:var(--wp--preset--font-size--sm); line-height:1.5;
}
.tics-calcapp__rows dd,
.tics-calcapp__out .tics-calcapp__row>:last-child{
  margin:0; font-family:var(--wp--preset--font-family--mono);
  font-variant-numeric:tabular-nums; text-align:right;
  font-size:var(--wp--preset--font-size--md); font-weight:600;
  color:var(--wp--preset--color--contrast);
}
.tics-calcapp__rows>div.is-total,
.tics-calcapp__out .tics-calcapp__row--total{
  border-bottom:none;
  margin-top:var(--wp--preset--spacing--30);
  padding:.8em .9em;
  align-items:center;
  background:var(--wp--preset--color--primary-soft);
  border:1px solid color-mix(in srgb, var(--wp--preset--color--primary) 22%, transparent);
  border-radius:var(--wp--custom--radius--sm);
}
.tics-calcapp__rows>div.is-total dt,
.tics-calcapp__out .tics-calcapp__row--total>:first-child{
  color:var(--wp--preset--color--contrast);
  font-size:var(--wp--preset--font-size--base); font-weight:700;
}
.tics-calcapp__rows>div.is-total dd,
.tics-calcapp__out .tics-calcapp__row--total>:last-child{
  font-size:var(--wp--preset--font-size--xl); line-height:1.15; font-weight:700;
  color:var(--wp--preset--color--primary);
}
/* 좁은 화면에서는 최종값이 라벨 옆에 끼지 못한다 — 라벨 아래로 내리고 왼쪽 정렬로 읽힌다 */
@media (max-width:480px){
  .tics-calcapp__rows>div.is-total,
  .tics-calcapp__out .tics-calcapp__row--total{ grid-template-columns:1fr; }
  .tics-calcapp__rows>div.is-total dd,
  .tics-calcapp__out .tics-calcapp__row--total>:last-child{ text-align:left; }
}
/* 총계 행이 **마지막이 아닐 수 있다** — nol-cancel-fee 는 fee_total(total:true) 뒤에
   "Ticket price less the calculated fee" 가 한 줄 더 온다. 강조 면 뒤에 붙는 줄이
   면에 달라붙어 보이지 않게 간격을 주고, 목록 끝의 점선은 지운다(데이터 없는 잉크). */
.tics-calcapp__rows>div.is-total+div,
.tics-calcapp__out .tics-calcapp__row--total+.tics-calcapp__row{ padding-top:.75em; }
.tics-calcapp__rows>div:last-child,
.tics-calcapp__out .tics-calcapp__row:last-child{ border-bottom:none; }
.tics-calcapp__read{ display:block; font-size:var(--wp--preset--font-size--sm); font-weight:400; color:var(--wp--preset--color--contrast-2); }
.tics-calcapp__note,.tics-calcapp__fallback,.tics-calcapp__error{
  font-size:var(--wp--preset--font-size--sm); color:var(--wp--preset--color--contrast-2); margin:.6em 0 0;
}
.tics-calcapp__error{ color:var(--wp--preset--color--danger); }

/* ── 도구의 범위 선언 (tics-limits) ────────────────────────────────────────
   주의 박스와 다르다: 독자 행동에 대한 경고가 아니라 "이 도구가 담지 못하는 것"이다.
   danger 의 빨강을 쓰지 않는 이유 — 경고가 아니라 범위이고, 계산기 바로 아래에서
   결과를 부정하는 인상을 주면 안 된다. 대신 확실히 구분되게 좌측 굵은 선을 준다. */
.tics-limits{
  background:var(--wp--preset--color--base-2);
  border-color:var(--wp--preset--color--border);
  border-left:5px solid var(--wp--preset--color--contrast-2);
}
.tics-limits .tics-box__title::before{ content:"⊘"; }
.tics-limits .tics-box__title{ color:var(--wp--preset--color--contrast-2); }
/* 본문보다 작게 두지 않는다 — 계약이 필수로 요구하고 분량 예산에서까지 뺀 블록을
   부속 정보 크기(sm)로 렌더하면 방향이 반대가 된다. notice·danger·tip 도 본문 크기다. */
.tics-limits p{ line-height:1.75; }
.tics-limits p + p{ margin-top:.7em; }

/* ── 화면 흐름 (tics-flow) ────────────────────────────────────────────────
   단계 하나 = <figure> 하나. 도식과 캡처가 같은 마크업을 쓴다.

   **배치를 고르는 것은 kind 가 아니라 ratio 다.** 우리가 만드는 도식은 가로(16/10)지만
   사람이 찍는 캡처는 대개 모바일 세로(9/19.5)다. 가로 전제로 짜두면 세로 캡처를 넣는 순간
   한 단계가 화면을 통째로 먹어 다음 단계가 안 보인다. md2blocks 가 ratio 를 보고
   is-wide / is-tall 을 붙이고, 여기서 그 둘만 분기한다 — kind 가 바뀌어도 배치는 안 흔들린다. */
.tics-flow{ background:var(--wp--preset--color--base-2); }
.tics-flow .tics-box__title::before{ content:"🖥"; }
.tics-flow__step{ margin:var(--wp--preset--spacing--40) 0; }
.tics-flow__step:last-child{ margin-bottom:0; }
.tics-flow__step img{
  display:block; width:100%; height:auto; max-width:100%;
  object-fit:contain;                       /* 선언 비율과 실제 비율이 어긋나도 찌그러지지 않는다 */
  background:var(--wp--preset--color--base-3);
  border:1px solid var(--wp--preset--color--border);
  border-radius:2px;
}
.tics-flow__step figcaption{
  margin-top:.55rem; text-align:left;
  font-size:var(--wp--preset--font-size--sm);
  color:var(--wp--preset--color--contrast-2); line-height:1.65;
}
/* 번호 배지 — span[class]는 편집기 저장 시 제거되므로 strong 을 쓴다(이 테마의 기존 함정) */
.tics-flow__step figcaption>strong{
  display:inline-block; min-width:1.5rem; height:1.5rem; margin-right:.4rem;
  border-radius:50%; background:var(--wp--preset--color--primary); color:var(--wp--preset--color--base);
  font-size:.78rem; font-weight:700; line-height:1.5rem; text-align:center;
}
/* 관찰일 — 이 주제에서 날짜 없는 화면 서술은 다음 달에 거짓이 된다.
   opacity:.75 를 뺐다: base-2 위에서 3.69:1 로 AA(4.5:1) 미달이었고 라이브 60곳에 있다
   (실측 2026-09-02). 괄호가 이미 곁말임을 말하므로 흐림은 정보를 더하지 않는다.
   contrast-2 그대로 = 6.57:1. */
.tics-flow__step figcaption em{
  font-style:normal; color:var(--wp--preset--color--contrast-2);
  white-space:nowrap;
}
@media (min-width:721px){
  /* 세로 캡처만 2단. figure 의 자식은 img·figcaption 둘뿐이라 그리드 아이템이 쪼개질 일이 없다
     (li 에 grid 를 걸었다가 <br>·<em> 이 아이템이 되어 텍스트가 세로로 갈라졌던 것과 다르다). */
  .tics-flow__step.is-tall{
    display:grid; grid-template-columns:minmax(0,300px) 1fr;
    gap:1.25rem; align-items:start;
  }
  .tics-flow__step.is-tall img{ width:auto; max-height:78vh; margin:0; }
  .tics-flow__step.is-tall figcaption{ margin-top:0; }
}

/* ── 본문 목차 (tics-toc) ────────────────────────────────────────────────
   functions.php 의 render_block 필터가 **첫 h2 직전에** 그린다 — 저장된 본문에는 없다.
   마크업 계약: nav.tics-toc > p.tics-toc__title + ol > li > a[href^="#"]
   h2 가 3개 미만인 글에는 아예 나오지 않는다(목록이 아니라 소음이 된다).

   요약 카드(tics-summary) 바로 아래에 서므로 **면(배경)을 또 주지 않는다.** 색 면이 둘
   연속하면 요약 카드의 강조가 사라진다 — 위아래 경계선 하나로만 구분한다. 순번도 붙이지
   않는다: 순서는 자리가 이미 말한다(tics-hub 와 다른 물건이다 — 그쪽은 형제 글의 순번이 뜻을 갖는다).

   링크 높이 ≥40px: 목록으로 나열된 링크는 줄 높이(약 25px)가 그대로 터치 표적이 된다.
   가운뎃점 인라인 링크·푸터에서 이미 물린 오터치와 같은 부류라 padding-block 으로 벌린다.
   li 에 flex·grid 를 주지 않는 이유도 같은 목록에 적혀 있다(인라인 요소가 쪼개진다). */
.tics-toc{
  margin-block:var(--wp--preset--spacing--50);
  padding-block:var(--wp--preset--spacing--20);
  border-top:1px solid var(--wp--preset--color--border);
  border-bottom:1px solid var(--wp--preset--color--border);
}
.tics-toc__title{
  font-size:var(--wp--preset--font-size--sm);
  font-weight:700; line-height:1.4; letter-spacing:.01em;
  color:var(--wp--preset--color--contrast-2);
  margin:0 0 .2em;
}
.tics-toc ol{ list-style:none; margin:0; padding:0; }
.tics-toc li{ margin:0; }
.tics-toc a{
  display:block;                 /* 표적을 줄 폭 전체로 — 인라인이면 글자 높이만 잡힌다 */
  padding-block:.62em;           /* 실측 41px 였다 — 44px 권장선에 맞춰 올렸다(2026-09-02) */
  line-height:1.5;
  text-decoration:none;
  /* 링크 색을 준다. 절제한다고 본문색으로 두었더니 **탭할 수 있는 것으로 안 보였다**
     (2026-08-26 모바일 실측 스크린샷) — 목차는 항법 장치라 링크로 안 읽히면 존재 이유가 없다.
     밑줄은 hover 에서만: 다섯 줄이 전부 밑줄이면 그것이 이 화면에서 가장 센 잉크가 된다. */
  color:var(--wp--preset--color--primary);
  border-bottom:1px solid color-mix(in srgb, var(--wp--preset--color--border) 55%, transparent);
}
.tics-toc li:last-child a{ border-bottom:0; }
.tics-toc a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* ── 글 하단 「More guides」 (tics-more) ─────────────────────────────────
   functions.php 의 render 필터가 그린다. 마크업 계약:
     nav.tics-more > p.tics-more__title + ul > li > a + span.tics-more__meta
   본문 폭(740px) 안에서 2열, 좁아지면 1열. 미디어쿼리 대신 auto-fit 을 쓴다 —
   본문은 아카이브·계산기·글에서 폭이 달라서 뷰포트가 아니라 **컨테이너 폭**이 기준이다
   (19rem = 304px: 740px 이면 2열, 640px 이하면 1열).

   minmax 의 최소값은 반드시 `min(19rem,100%)` 이다. 맨 `19rem` 을 쓰면 컨테이너가 304px
   보다 좁을 때 **트랙 자체가 컨테이너를 넘는다** — 320px 뷰포트(본문 폭 272px)에서 문서
   scrollWidth 가 328px 이 되어 페이지 전체에 8px 가로 스크롤이 걸렸다. 라이브 실측
   2026-09-02, 발행 29건 중 .tics-more 를 가진 전건. li 의 min-width:0 으로는 못 막는다:
   넘치는 것은 아이템이 아니라 트랙의 최소폭이다.

   시리즈 허브(tics-hub)와 다른 물건이다: 허브는 같은 클러스터의 형제를 순번으로 세우고,
   이쪽은 클러스터 밖으로 나가는 출구다. 그래서 순번을 붙이지 않는다.

   li 를 flex 로 두지만 자식이 <a>·<span> 둘뿐이라 인라인 쪼개짐 함정과 무관하다. */
.tics-more{
  margin-block:var(--wp--preset--spacing--50);
  padding-top:var(--wp--preset--spacing--40);
  border-top:1px solid var(--wp--preset--color--border);
}
.tics-more__title{
  font-size:var(--wp--preset--font-size--md);
  font-weight:700; line-height:1.4; letter-spacing:-0.015em;
  margin:0 0 .8em;
}
.tics-more ul{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(19rem,100%),1fr));
  gap:var(--wp--preset--spacing--30);
}
.tics-more li{
  position:relative; margin:0; min-width:0;
  display:flex; flex-direction:column; gap:.3em;
  background:var(--wp--preset--color--base-2);
  border:1px solid var(--wp--preset--color--border);
  border-radius:var(--wp--custom--radius--sm);
  padding:.85em 1em .9em;
}
.tics-more a{
  text-decoration:none; font-weight:600; line-height:1.45; letter-spacing:-0.01em;
  color:var(--wp--preset--color--contrast);
}
/* 카드 전체를 클릭 대상으로 — 제목 글자만 링크면 모바일에서 세로 17px 표적이 된다
   (가운뎃점 인라인 링크에서 이미 물린 것과 같은 부류). span 은 링크가 아니라 덮어도 안전. */
.tics-more a::after{ content:""; position:absolute; inset:0; border-radius:inherit; }
.tics-more li:hover{
  background:var(--wp--preset--color--base);
  border-color:var(--wp--preset--color--primary);
}
.tics-more li:hover a{ color:var(--wp--preset--color--primary); }
.tics-more__meta{
  font-size:var(--wp--preset--font-size--sm);
  color:var(--wp--preset--color--contrast-2);
  line-height:1.4;
}

/* ── 언어 전환 (ko ↔ en) ─────────────────────────────────────────────────
   짝이 되는 반대 언어판이 **실제로 발행돼 있을 때만** 그린다. 없는 링크를 그리면 404 다. */
.tics-meta__lang{
  display:inline-block; margin-left:.6rem; padding:.15rem .5rem;
  border:1px solid var(--wp--preset--color--border); border-radius:2px;
  font-size:var(--wp--preset--font-size--sm); text-decoration:none;
  color:var(--wp--preset--color--contrast-2);
}
.tics-meta__lang:hover{ border-color:var(--wp--preset--color--primary); color:var(--wp--preset--color--primary); }

/* ── 인터랙션 상태 (2026-08-20 추가) ──────────────────────────────────────
   감사 실측: :hover 규칙이 5곳 있는데 transition 이 **0건**이었고 :active 도 0건이었다.
   색·테두리·배경이 0ms 로 툭 바뀌면 눌린 것인지 지나간 것인지 손이 구분하지 못한다.

   여기서는 **속성만 얹는다** — 위쪽의 기존 :hover 규칙과 .tics-search* 블록은 그대로 둔다.
   전역 `* { transition }` 은 쓰지 않는다: 광고 iframe·계산기 결과 갱신처럼 우리가 의도하지
   않은 곳까지 물리고, 되돌리려면 다시 전역 예외를 파야 한다. 대상 선택자만 적는다. */

.tics-nav a,
.tics-search .wp-block-search__button,
.tics-latest .wp-block-post-title a,
.tics-hero__picks a,
.tics-hero__tool a,
.tics-more li,
.tics-more a,
.tics-hub a,
.tics-toc a,
.tics-meta__lang,
.tics-source a{
  transition:color .18s ease, background-color .18s ease, border-color .18s ease, opacity .18s ease;
}

/* 눌린 느낌 — 이동이 아니라 압력으로 읽히도록 아주 작게 준다.
   카드(.tics-cats__grid a)만 scale 을 쓴다: 나머지는 인라인 링크라 주변 줄이 흔들린다. */
.tics-cats__grid a:active,
.tics-hero__picks a:active,
.tics-hero__tool a:active{ transform:scale(.99); background:var(--wp--preset--color--base-3); }
.tics-nav a:active,
.tics-latest .wp-block-post-title a:active,
.tics-hub a:active,
.tics-meta__lang:active{ opacity:.7; }
.tics-cats__grid a,
.tics-hero__picks a,
.tics-hero__tool a{ transition:color .18s ease, background-color .18s ease, border-color .18s ease, transform .1s ease; }

/* 키보드 초점 — 검색 입력과 계산기 입력에만 있었다(실측 2곳).
   :focus 가 아니라 :focus-visible 을 쓴다: 마우스 클릭에도 링이 남으면 사용자가 그것을
   "선택된 상태"로 읽는다. 링 색은 본문 링크와 같은 primary 로 통일한다. */
.tics-cats__grid a:focus-visible,
.tics-hero__picks a:focus-visible,
.tics-hero__tool a:focus-visible,
.tics-more a:focus-visible,
.tics-latest .wp-block-post-title a:focus-visible,
.tics-latest .tics-card__media a:focus-visible,
.tics-latest .wp-block-query-pagination a:focus-visible,
.tics-hub a:focus-visible,
.tics-toc a:focus-visible,
.tics-meta__lang:focus-visible,
.tics-source a:focus-visible,
.tics-faq .wp-block-details summary:focus-visible,
.wp-block-post-content a:focus-visible{
  outline:2px solid var(--wp--preset--color--primary);
  outline-offset:2px;
  border-radius:2px;
}
/* 잉크 밴드(머스트헤드·푸터) 위에서는 primary 링이 배경에 묻힌다 — 밝은 accent 로 */
.tics-header a:focus-visible,
.tics-nav a:focus-visible,
.tics-footer a:focus-visible{
  outline:2px solid var(--wp--custom--masthead--accent);
  outline-offset:2px;
  border-radius:2px;
}

/* 목차·FAQ 앵커로 뛸 때. 헤더가 고정이 아니므로 scroll-margin 은 필요 없다. */
html{ scroll-behavior:smooth; }

/* 움직임을 줄이도록 설정한 사람에게는 위의 전환·스케일을 돌려준다.
   초점 링은 접근성 장치이므로 여기서 끄지 않는다. */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .tics-cats__grid a,
  .tics-hero__picks a,
  .tics-hero__tool a{ transition:none; }
  .tics-card__media img{ transition:none; }
  .wp-block-post:hover .tics-card__media img{ transform:none; }
  .tics-nav a,
  .tics-search .wp-block-search__button,
  .tics-latest .wp-block-post-title a,
  .tics-more li,
  .tics-more a,
  .tics-hub a,
  .tics-toc a,
  .tics-meta__lang,
  .tics-source a{ transition:none; }
  .tics-cats__grid a:active,
  .tics-hero__picks a:active,
  .tics-hero__tool a:active{ transform:none; }
}

/* 태그가 하나도 없는 글에서는 태그 줄 자체를 그리지 않는다.
   core/post-terms 는 항목이 없으면 아무것도 렌더하지 않는데, 그것을 감싼 그룹은 그대로
   나가서 **모든 글이 빈 컨테이너를 하나씩 싣고 있었다**(2026-08-20 라이브 실측).
   :empty 로는 안 잡힌다 — 안에 빈 post-terms div 가 들어 있어 비어 있지 않기 때문이다.
   링크 유무로 본다(.tics-hub li:not(:has(a)) 와 같은 방식). */
.tics-tags:not(:has(a)){ display:none; }

/* ══════════════════════════════════════════════════════════════════════════
   2026-09-02 진단 반영 — 항법·어포던스·상태
   근거: 발행 29건 전수 실측 + axe-core 4.10.2 + 320/375/768/1280 렌더 측정.
   이 절은 **새로 생긴 규칙만** 모은다. 값만 바뀐 것은 원래 있던 자리에서 고쳤다.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 목록 시맨틱 ────────────────────────────────────────────────────────
   list-style:none 을 준 <ul> 은 Safari/VoiceOver 가 목록 시맨틱을 벗긴다.
   role="list" 는 functions.php 가 렌더 시점에 붙인다 — 여기서는 표식만 지운다. */
.tics-hero__picks li{ margin:0; }
.tics-hero__picks li::marker,
.tics-footer-nav li::marker,
.tics-footer-legal li::marker{ content:""; }

/* ── 클릭 어포던스 ──────────────────────────────────────────────────────
   진단: 홈에서 목적지를 고르는 두 장치(카테고리 카드·플랫폼 픽커)가 링크색도 밑줄도
   없고 hover 로만 반응했다. 터치 기기에는 hover 가 없으므로 신호가 0이었다.
   행 구분선 대비는 1.29:1 로 비텍스트 3:1 기준에도 못 미친다.
   화살표는 장식이 아니라 「여기가 목적지」를 지는 잉크다 — 색을 더 쓰지 않고 해결한다. */
.tics-cats__grid a strong::after,
.tics-hero__picks a strong::after{
  content:" \2192";
  font-family:var(--wp--preset--font-family--sans);
  font-weight:700;
  color:var(--wp--preset--color--primary);
}
/* 카드가 서로 다른 높이로 끝나지 않게 — <li> 가 그리드 아이템이고 <a> 가 그 안의 면이다 */
.tics-cats__grid a{ height:100%; }

/* ── 헤더 검색 (내비게이션 블록 안으로 이동) ───────────────────────────
   601~1200px 구간에서는 감춘다: 내비 6칸이 이미 한 줄을 다 쓰고, 여기서 검색까지
   얹으면 헤더가 2줄이 된다(종전 계약이 모바일에서 우려하던 바로 그 문제다).
   경계가 1100 이 아니라 1200 인 이유 — 본문 폭 상한이 1120px 라 뷰포트 1120 에서는
   좌우 여백만큼 더 좁아진다. 실측으로 1200 까지 밀었다(2026-09-02).
   ≥1201px 에서는 인라인으로, ≤600px 에서는 오버레이 안에서 전폭으로 나온다. */
/* 601 이 아니라 600 인 이유: 코어는 뷰포트 600px 을 **데스크톱 내비**로 친다
   (오버레이는 599 이하). 601 로 두면 정확히 600px 에서만 검색이 인라인으로 나와
   헤더가 2줄이 된다 — 실측으로 잡았다. */
@media (min-width:600px) and (max-width:1200px){
  .tics-nav .tics-search--head{ display:none; }
}
.wp-block-navigation__responsive-container.is-menu-open .tics-search--head{
  width:100%; max-width:24rem; margin-top:1.4em;
}
.wp-block-navigation__responsive-container.is-menu-open .tics-search--head .wp-block-search__inside-wrapper{
  border-color:var(--wp--custom--masthead--line);
}

/* ── 터치 타깃 44px ─────────────────────────────────────────────────────
   실측(2026-09-02): 오버레이 링크 26px · 닫기 24×24 · 열기 40×40.
   오버레이 링크는 위쪽 @media(max-width:600px) 블록에서 처리한다(코어 특이도 문제 주석 참조).
   여기서는 두 버튼만 — 아이콘 크기는 그대로 두고 탭 영역만 넓힌다. */
/* **display 를 여기서 건드리면 안 된다.** 코어가 ≥600px 에서 열기 버튼을
   `display:none` 으로 감추는데, 여기에 display 를 쓰면 그 규칙을 덮어 **데스크톱에도
   햄버거가 뜬다**(2026-09-02 실측: 1440px 에서 햄버거가 나오고 내비가 두 줄로 밀렸다).
   크기만 준다 — 감춰진 요소에 min-width 를 줘도 아무 일도 일어나지 않는다. */
.tics-header .wp-block-navigation__responsive-container-open,
.tics-header .wp-block-navigation__responsive-container-close{
  min-width:44px; min-height:44px;
}
@media (max-width:600px){
  /* 버튼이 실제로 보이는 구간에서만 아이콘을 가운데로 모은다 */
  .tics-header .wp-block-navigation__responsive-container-open,
  .tics-header .wp-block-navigation__responsive-container-close{
    align-items:center; justify-content:center;
  }
}

/* ── 히어로 세 조각의 배치 ──────────────────────────────────────────────
   마크업 순서를 제목·리드 → 플랫폼 패널 → 도구 카드로 바꿨다(2026-09-02).
   왜: 모바일에서는 마크업 순서가 곧 화면 순서인데, 종전에는 도구 카드가 패널보다 위에 있어
   **첫 클릭 대상이 계산기**였다. 실측 수요는 그 반대다 — GSC 61일 기준 플랫폼 이름 검색이
   측정 노출의 98.1%(3,305)이고 계산기 페이지는 27노출·1클릭으로 사이트 최하위권이다.
   첫 화면의 첫 목적지는 「내가 쓰는 창구가 여기 있나」여야 한다.

   데스크톱은 순서가 바뀌어도 그대로 보이게 영역으로 배치한다 — 좌단 위 intro, 좌단 아래
   tool, 우단 전체 panel. 종전에 좌단이 우단보다 127px 먼저 끝나 히어로가 닫히지 않던 것도
   같이 해소된다(tool 이 좌단 바닥에 붙는다). */
@media (min-width:900px){
  .tics-hero__grid{
    grid-template-areas:"intro panel" "tool panel";
    grid-template-rows:auto 1fr;
    align-items:start;
  }
  .tics-hero__intro{ grid-area:intro; }
  .tics-hero__panel{ grid-area:panel; }
  .tics-hero__tool{ grid-area:tool; align-self:end; }
}

/* ── 얇은 아카이브의 고아 카드 ──────────────────────────────────────────
   리드 스토리(첫 글이 2열을 다 쓰는 규칙)는 **홈에서만** 쓴다.
   글이 2~4건인 카테고리(6개 중 4개)에서는 리드 하나 뒤에 카드가 한 장만 남아
   오른쪽 칸이 통째로 비었다 — 카테고리에 들어간 순간 「여긴 비었다」로 읽힌다.
   그리고 아카이브에서 첫 글이 큰 이유는 중요도가 아니라 최신순일 뿐이다. */
.tics-archive .tics-latest li.wp-block-post:first-child{ grid-column:auto; }
@media (min-width:781px){
  .tics-archive .tics-latest li.wp-block-post:first-child{ display:block; }
  .tics-archive .tics-latest li.wp-block-post:first-child .tics-card__media{ margin:0 0 1em; }
  .tics-archive .tics-latest li.wp-block-post:first-child .wp-block-post-title{
    font-size:var(--wp--preset--font-size--lg); line-height:1.3;
  }
  .tics-archive .tics-latest li.wp-block-post:first-child .wp-block-post-excerpt{
    font-size:var(--wp--preset--font-size--sm);
  }
}

/* ── 계산기 페이지의 커버 이미지 ────────────────────────────────────────
   실측: 첫 입력칸이 iPhone SE 첫 화면 밖(y≈718 > 667)이었고, 먼저 보이는 것은
   도구가 아니라 커버의 큰 숫자였다. 그 숫자는 도구가 내는 값과 다르다.
   커버 자체는 지우지 않는다 — og:image·검색 결과에는 그대로 쓰인다. */
body:has(.tics-calcapp) .tics-single .wp-block-post-featured-image{ display:none; }

/* ── 계산기 입력 오류·빈 상태 ───────────────────────────────────────────
   종전에는 "abcxyz" 를 넣어도 오류 없이 「KRW 0」 을 정답처럼 발표했다. */
.tics-calcapp__err{
  display:block; font-size:var(--wp--preset--font-size--sm); line-height:1.5;
  color:var(--wp--preset--color--danger); font-weight:600;
}
.tics-calcapp__err[hidden]{ display:none; }
.tics-calcapp input[aria-invalid="true"],
.tics-calcapp select[aria-invalid="true"]{
  border-color:var(--wp--preset--color--danger);
  border-width:2px;
}
.tics-calcapp__empty{
  margin:0; color:var(--wp--preset--color--contrast-2);
  font-size:var(--wp--preset--font-size--sm); line-height:1.6;
}
/* 총액 한 줄 — 스크린리더에 발표되는 유일한 자리(상세 표는 라이브 영역 밖) */
.tics-calcapp__live{
  margin:0 0 .6em; font-weight:700;
  font-size:var(--wp--preset--font-size--base);
  color:var(--wp--preset--color--contrast);
}
.tics-calcapp__live:empty{ display:none; }

/* ── 가로 스크롤 표의 키보드 접근 ───────────────────────────────────────
   axe serious: scrollable-region-focusable. tabindex 는 functions.php 가 붙인다. */
.tics-compare:focus-visible{
  outline:2px solid var(--wp--preset--color--primary);
  outline-offset:2px;
}

/* ── 영문 본문의 행길이·행간 ────────────────────────────────────────────
   실측 94~96자/줄(상한 90) · 행간 1.8 · 트래킹 -0.01em.
   theme.json 토큰은 한국어판이 같이 쓰므로 전역을 바꾸지 않고 영문 글에만 건다.
   (Butterick — 본문 소문자에 음수 트래킹을 주지 않는다. 제목은 개별 재정의라 무관.) */
body.tics-lang-en .tics-single .wp-block-post-content{ max-width:700px; }
body.tics-lang-en .wp-block-post-content p,
body.tics-lang-en .wp-block-post-content li{ line-height:1.7; letter-spacing:0; }

/* ── 모바일 카테고리 인덱스 2열 ─────────────────────────────────────────
   1열이면 6칸이 약 537px 를 먹어 첫 글 링크가 2.76화면 아래로 밀린다. */
@media (max-width:600px){
  .tics-cats__grid a{ padding:.8em .85em .9em; }
  .tics-cats__grid a strong{ font-size:var(--wp--preset--font-size--base); }
}

/* ── 전체 가이드 색인 (/guides/) ───────────────────────────────────────
   존재 이유는 스타일이 아니라 크롤이다 — 발행분 전건에 홈에서 1홉 경로를 준다
   (functions.php tics_allguides_html 주석). 그래서 장식을 최소로 두고 링크 밀도를
   높인다: 한 화면에 더 많은 항목이 보일수록 이 페이지가 하는 일을 더 한다. */
.tics-allguides__group{ margin-block-start:var(--wp--preset--spacing--50); }
.tics-allguides__group h2{
  font-size:var(--wp--preset--font-size--lg);
  margin-block:0 .3em;
}
.tics-allguides__group h2 a{ color:inherit; text-decoration:none; }
.tics-allguides__group h2 a:hover{ text-decoration:underline; }
.tics-allguides__note{
  margin-block:0 .8em;
  color:var(--wp--preset--color--contrast-2);
  font-size:var(--wp--preset--font-size--sm);
  max-width:46rem;
}
.tics-allguides ul{ list-style:none; margin:0; padding:0; }
.tics-allguides li{ margin:0; border-top:1px solid var(--wp--preset--color--base-3); }
.tics-allguides li a{
  display:block; padding-block:.62em;   /* 터치 타깃 44px — mobile_qa 기준 */
  text-decoration:none;
}
.tics-allguides li a:hover{ text-decoration:underline; }
