/* Our history (layout C refined, "Three threads"), approved 2 Oct 2026. Scoped to main.coh. */
.coh {
	--coh-bg: #FFFFFF; --coh-soft: #F1F4F9; --coh-card: #FFFFFF; --coh-ink: #0B1A2E; --coh-body: #3A4659; --coh-muted: #566175;
	--coh-line: #E1E7F0; --coh-line2: #C9D3E2; --coh-blue: #1D63FF; --coh-blue-text: #1D55E0; --coh-blue-soft: #EEF4FF;
	--coh-navy: #0A1628; --coh-gold: #F6C85F; --coh-onnavy: #C3CCDA; --coh-green: #1F7A4A; --coh-seg: #E9EDF4;
	--coh-num: #DCE4F0; --coh-num-soft: #CFD9E8; --coh-amber: #7A4E00; --coh-amber-soft: #FCEFC9; --coh-amber-line: #E9D49A;
	--coh-now: #F5F8FF; --coh-now-head: #EAF1FF; --coh-warn: #FFF7E0; --coh-warn-text: #4A3A12; --coh-warn-ic: #8A5A00;
	--coh-t-practice: #0B1A2E; --coh-t-causes: #B7861C; --coh-t-law: #1D63FF;
	--coh-display: 'Inter Tight', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--coh-text: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--coh-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
	--coh-mono: 'IBM Plex Mono', ui-monospace, Menlo, Consolas, monospace;
	--coh-pad: clamp(20px, 5.6vw, 80px);
	--coh-top: 0px;
	display: block; background: var(--coh-bg); color: var(--coh-ink); font-family: var(--coh-text); font-size: 16px; line-height: 1.55;
}
html[data-ccl-theme="dark"] .coh {
	--coh-bg: #0B1220; --coh-soft: #0F192B; --coh-card: #111D35; --coh-ink: #E8EDF5; --coh-body: #C9D2DF; --coh-muted: #9AA6B8;
	--coh-line: #22304A; --coh-line2: #2A3A58; --coh-blue-text: #7DA4FF; --coh-blue-soft: #16223A; --coh-navy: #070E1A; --coh-green: #6FD39C; --coh-seg: #16223A;
	--coh-num: #1E2C46; --coh-num-soft: #22304A; --coh-amber: #F6C85F; --coh-amber-soft: rgba(246,200,95,0.14); --coh-amber-line: rgba(246,200,95,0.45);
	--coh-now: #12203A; --coh-now-head: #16223A; --coh-warn: #2A2412; --coh-warn-text: #F3DFA8; --coh-warn-ic: #F6C85F;
	--coh-t-practice: #E8EDF5; --coh-t-causes: #F6C85F; --coh-t-law: #7DA4FF;
}
.coh *, .coh *::before, .coh *::after { box-sizing: border-box; }
.coh :where(h1, h2, h3, p, ul, ol, figure) { margin: 0; }
.coh :where(ul, ol) { padding: 0; list-style: none; }
.coh li { min-width: 0; }
.coh a { color: inherit; text-decoration: none; }
.coh img { max-width: 100%; }
.coh button { font: inherit; }
.coh a:focus-visible, .coh button:focus-visible, .coh summary:focus-visible, .coh-rail:focus-visible { outline: 3px solid var(--coh-blue); outline-offset: 3px; border-radius: 6px; }
.coh [id] { scroll-margin-top: calc(var(--coh-top) + 76px); }
.coh [hidden] { display: none !important; }
/* The theme sets overflow-x: hidden on html and body on phones, which stops sticky bars working; clip keeps the clipping without that side effect. */
html:has(main.coh), html:has(main.coh) body { overflow-x: clip !important; }
.coh-ic { flex: none; display: block; }
.coh-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.coh-wrap { max-width: 1280px; margin: 0 auto; padding-inline: var(--coh-pad); box-sizing: content-box !important; }
.coh-eyebrow { font-size: 13px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--coh-blue-text); }
.coh-mono { font-family: var(--coh-mono); font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--coh-muted); }
.coh h2 { font-family: var(--coh-display); font-size: clamp(28px, 2.8vw, 40px); font-weight: 900; line-height: 1.08; letter-spacing: -0.015em; color: var(--coh-ink); }
.coh .coh-show-sm { display: none !important; }
.coh .ccl-nwnf-mark { color: inherit; text-decoration: none; }

/* Buttons and links */
.coh .coh-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; padding: 0 22px; border-radius: 12px; border: 2px solid transparent; font-size: 16px; font-weight: 800; line-height: 1.2; white-space: nowrap; cursor: pointer; transition: background-color .15s, border-color .15s; }
.coh a.coh-btn[href^="tel:"] { display: inline-flex !important; min-height: 56px !important; }
.coh .coh-btn--gold { background: var(--coh-gold); color: #0A1628; }
.coh .coh-btn--gold:hover { background: #F2BB3A; color: #0A1628; }
.coh .coh-btn--ghost { background: transparent; border-color: rgba(255,255,255,0.35); color: #FFFFFF; }
.coh .coh-btn--ghost:hover { border-color: #FFFFFF; background: rgba(255,255,255,0.06); color: #FFFFFF; }
.coh .coh-btn--line { background: var(--coh-card); border-color: var(--coh-line2); color: var(--coh-ink); }
.coh .coh-btn--line:hover { border-color: var(--coh-blue); }
.coh-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.coh .coh-link, .coh a.coh-link[href^="tel:"] { display: inline-flex !important; align-items: center !important; gap: 8px; min-height: 44px !important; font-size: 15px; font-weight: 800; color: var(--coh-blue-text); white-space: nowrap; }
.coh .coh-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.coh .coh-link--gold { color: var(--coh-gold); }
.coh-ticks { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.coh-ticks li { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: var(--coh-onnavy); }
.coh-ticks .coh-ic { color: var(--coh-gold); }
.coh-note { font-size: 13.5px; color: var(--coh-muted); }
.coh-back { display: none; }
.coh-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; color: #AEBBD0; }
.coh-crumb a { display: inline-flex; align-items: center; min-height: 32px; text-decoration: underline; text-underline-offset: 3px; }
.coh-crumb a:hover { color: #FFFFFF; }
.coh-crumb [aria-current] { color: #FFFFFF; font-weight: 600; }

/* Name plates */
.coh-plate { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 22px; border-radius: 8px; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.28), inset 0 -2px 0 rgba(0,0,0,0.12), 0 10px 22px rgba(10,22,40,0.14);
	--coh-pl-bg: linear-gradient(160deg, #F2F5F9 0%, #D7DFEA 100%); --coh-pl-name: #0B1A2E; --coh-pl-sub: #566175; --coh-pl-screw: rgba(11,26,46,0.28); background: var(--coh-pl-bg); }
.coh-plate--brass { --coh-pl-bg: linear-gradient(160deg, #F1E3B5 0%, #D9BF78 48%, #C7A85A 100%); --coh-pl-name: #3D2F0E; --coh-pl-sub: #5E4A1A; --coh-pl-screw: rgba(61,47,14,0.35); }
.coh-plate--navy { --coh-pl-bg: linear-gradient(160deg, #13284A 0%, #0A1628 100%); --coh-pl-name: #F6C85F; --coh-pl-sub: #D7C38C; --coh-pl-screw: rgba(246,200,95,0.45); }
html[data-ccl-theme="dark"] .coh-plate--steel { --coh-pl-bg: linear-gradient(160deg, #22314D 0%, #172440 100%); --coh-pl-name: #E8EDF5; --coh-pl-sub: #AEB9CB; --coh-pl-screw: rgba(232,237,245,0.28); }
html[data-ccl-theme="dark"] .coh-plate--navy { --coh-pl-bg: linear-gradient(160deg, #1B3463 0%, #11224A 100%); }
.coh-plate::before, .coh-plate::after, .coh-plate > i::before, .coh-plate > i::after { content: ""; position: absolute; width: 7px; height: 7px; border-radius: 50%; background: var(--coh-pl-screw); }
.coh-plate::before { left: 10px; top: 10px; }
.coh-plate::after { right: 10px; top: 10px; }
.coh-plate > i { position: absolute; inset: 0; pointer-events: none; }
.coh-plate > i::before { left: 10px; bottom: 10px; }
.coh-plate > i::after { right: 10px; bottom: 10px; }
.coh-plate__year { font-family: var(--coh-mono); font-size: 11.5px; font-weight: 600; letter-spacing: 0.14em; color: var(--coh-pl-sub); }
.coh .coh-plate__name { font-family: var(--coh-serif); font-size: 21px; font-weight: 600; line-height: 1.15; letter-spacing: 0.01em; color: var(--coh-pl-name); }
.coh-plate__text { font-size: 13.5px; line-height: 1.42; color: var(--coh-pl-sub); }

/* ========== Hero ========== */
.coh-hero { background: var(--coh-navy); color: #FFFFFF; padding: 28px 0 72px; }
.coh-hero__row { display: grid; grid-template-columns: minmax(0, 1fr) 600px; gap: 64px; align-items: center; margin-top: 30px; }
.coh-hero__text { display: flex; flex-direction: column; gap: 20px; }
.coh-hero .coh-eyebrow { color: var(--coh-gold); }
.coh-hero h1 { font-family: var(--coh-display); font-size: clamp(38px, 4.2vw, 60px); font-weight: 900; line-height: 1.03; letter-spacing: -0.025em; color: #FFFFFF; }
.coh-lead { font-size: clamp(16.5px, 1.4vw, 19.5px); line-height: 1.6; color: var(--coh-onnavy); }
html[data-ccl-theme="dark"] .coh-hero { background: #070E1A; }

.coh-index { padding: 24px 30px 8px; border-radius: 22px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.10); }
.coh-index__head { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 16px; font-size: 14px; color: var(--coh-onnavy); }
.coh-index__head .coh-mono { color: var(--coh-gold); letter-spacing: 0.14em; }
.coh-index__row { display: grid; grid-template-columns: 62px minmax(0, 1fr) 200px; gap: 20px; align-items: center; min-height: 124px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,0.12); color: #FFFFFF; }
.coh-index__row { --coh-thread: #FFFFFF; }
.coh-index__row--causes { --coh-thread: #F6C85F; }
.coh-index__row--law { --coh-thread: #7FA6FF; }
.coh-index__n { font-family: var(--coh-display); font-size: 48px; font-weight: 900; line-height: 1; color: var(--coh-thread); }
.coh-index__txt { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.coh-index__txt .coh-mono { color: var(--coh-thread); font-size: 11.5px; }
.coh-index__title { font-size: 20px; font-weight: 800; line-height: 1.25; color: #FFFFFF; }
.coh-index__go { display: inline-flex; align-items: center; gap: 6px; font-size: 14.5px; font-weight: 700; color: var(--coh-onnavy); }
.coh-index__row:hover .coh-index__title { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.coh-index__art { width: 200px; min-height: 84px; }
.coh-index .coh-plate { padding: 14px 20px; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.28), inset 0 -2px 0 rgba(0,0,0,0.12), 0 8px 18px rgba(0,0,0,0.25); }
.coh-index .coh-plate__name { font-size: 18px; }
.coh-index__card { display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 14px 18px; border-radius: 10px; background: rgba(246,200,95,0.10); border: 1px solid rgba(246,200,95,0.5); }
.coh-index__row--law .coh-index__card { background: rgba(127,166,255,0.10); border-color: rgba(127,166,255,0.5); }
.coh-index__card .coh-mono { font-size: 11px; color: var(--coh-thread); }
.coh-index__row--law .coh-index__card .coh-mono { color: #9DB9FF; }
.coh-index__card b { font-size: 15.5px; font-weight: 800; line-height: 1.3; color: #FFFFFF; }
.coh-index__arrow { display: none; }

/* About menu */
.coh-subnav { background: var(--coh-bg); border-bottom: 1px solid var(--coh-line); }
.coh-subnav ul { display: flex; gap: 34px; }
.coh-subnav li, .coh-bar li { flex: none; min-width: max-content; }
.coh-subnav a { display: inline-flex; align-items: center; min-height: 58px; border-bottom: 3px solid transparent; font-size: 15.5px; font-weight: 600; color: var(--coh-muted); white-space: nowrap; }
.coh-subnav a:hover { color: var(--coh-ink); }
.coh-subnav a[aria-current] { border-bottom-color: var(--coh-blue); font-weight: 800; color: var(--coh-ink); }

/* Threads bar (sticky) */
.coh-bar { position: sticky; top: var(--coh-top); z-index: 30; background: rgba(255,255,255,0.96); border-bottom: 1px solid var(--coh-line); box-shadow: 0 8px 20px rgba(10,22,40,0.06); }
html[data-ccl-theme="dark"] .coh-bar { background: rgba(11,18,32,0.96); }
@supports (backdrop-filter: blur(8px)) { .coh-bar { backdrop-filter: blur(8px); } }
.coh-bar .coh-wrap { display: flex; align-items: center; gap: 36px; }
.coh-bar ul { display: flex; gap: 36px; }
.coh-bar__link { display: inline-flex; align-items: center; gap: 10px; min-height: 60px; padding: 0 4px; border-bottom: 3px solid transparent; font-size: 15.5px; font-weight: 600; color: var(--coh-muted); white-space: nowrap; }
.coh-bar__link { --coh-thread: var(--coh-t-practice); }
.coh-bar__link--causes { --coh-thread: var(--coh-t-causes); }
.coh-bar__link--law { --coh-thread: var(--coh-t-law); }
.coh-bar__link i { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--coh-thread); }
.coh-bar__n { font-family: var(--coh-mono); font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: var(--coh-thread); }
.coh-bar__short { display: none; }
.coh-bar__link:hover { color: var(--coh-ink); }
.coh-bar__link[aria-current] { border-bottom-color: var(--coh-thread); font-weight: 800; color: var(--coh-ink); }
.coh .coh-bar__tel, .coh a.coh-bar__tel[href^="tel:"] { margin-left: auto; display: inline-flex !important; align-items: center !important; gap: 8px; min-height: 44px !important; font-size: 15px; font-weight: 800; color: var(--coh-ink); white-space: nowrap; }
.coh-bar__tel .coh-ic { color: var(--coh-blue-text); }

/* Thread sections */
.coh-thread { padding: 80px 0 88px; }
.coh-thread--causes { background: var(--coh-soft); }
.coh-thread--practice { --coh-thread: var(--coh-t-practice); }
.coh-thread--causes { --coh-thread: var(--coh-t-causes); }
.coh-thread--law { --coh-thread: var(--coh-t-law); }
.coh-thead { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 40px; }
.coh-thead__main { display: flex; align-items: flex-end; gap: 24px; min-width: 0; }
.coh-thead__n { font-family: var(--coh-display); font-size: 104px; font-weight: 900; line-height: 0.82; letter-spacing: -0.02em; color: var(--coh-num); }
.coh-thread--causes .coh-thead__n { color: var(--coh-num-soft); }
.coh-thead__txt { display: flex; flex-direction: column; gap: 10px; padding-bottom: 2px; min-width: 0; }
.coh-thead__tag { display: flex; align-items: center; gap: 10px; font-family: var(--coh-mono); font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--coh-thread); }
.coh-thead__tag i { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--coh-thread); }
.coh-thread__intro { font-size: 16.5px; line-height: 1.62; color: var(--coh-muted); }

/* 01 · the plate rail */
.coh-rail__ctl { display: flex; align-items: center; gap: 14px; padding-bottom: 4px; }
.coh-rail__hint { font-size: 11.5px; letter-spacing: 0.1em; }
.coh-rail__btn { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border-radius: 50%; border: 1px solid var(--coh-ink); background: var(--coh-ink); color: var(--coh-bg); cursor: pointer; }
.coh-rail__btn:disabled { border-color: var(--coh-line2); background: var(--coh-card); color: var(--coh-ink); opacity: 0.45; cursor: default; }
.coh-rail { container-type: inline-size; margin-top: 36px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
	-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 140px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 140px), transparent); }
.coh-rail::-webkit-scrollbar { display: none; }
.coh-rail.is-end { -webkit-mask-image: none; mask-image: none; }
.coh-rail.is-drag { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.coh-rail ol { --coh-rail-pad: max(var(--coh-pad), calc((100vw - 1280px) / 2)); display: flex; gap: 18px; width: max-content; padding: 4px var(--coh-rail-pad) 3px;
	background: linear-gradient(var(--coh-ink), var(--coh-ink)) left bottom / 100% 3px no-repeat; }
@supports (width: 1cqw) { .coh-rail ol { --coh-rail-pad: max(var(--coh-pad), calc((100cqw - 1280px) / 2)); } }
.coh-rail li { position: relative; flex: none; width: 250px; min-width: 0; padding-bottom: 24px; scroll-snap-align: start; scroll-margin-left: var(--coh-rail-pad); }
.coh-rail li::after { content: ""; position: absolute; left: 24px; bottom: 0; width: 2px; height: 24px; background: var(--coh-line2); }
.coh-rail .coh-plate { height: 218px; }
.coh-rail__today { width: 300px !important; }
.coh-today { display: flex; flex-direction: column; justify-content: center; gap: 8px; height: 218px; padding: 22px 24px; border-radius: 8px; border: 2px dashed var(--coh-line2); background: var(--coh-soft); }
.coh-today .coh-mono { color: var(--coh-blue-text); letter-spacing: 0.14em; }
.coh .coh-today .coh-plate__name { color: var(--coh-ink); }
.coh-today p { font-size: 13.5px; line-height: 1.45; color: var(--coh-muted); }
.coh-turning { display: flex; flex-direction: column; gap: 16px; margin-top: 36px; }
.coh-turning__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.coh-turning__card { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 18px; padding: 24px 26px; border-radius: 18px; background: var(--coh-soft); }
.coh-turning__year { font-family: var(--coh-display); font-size: 34px; font-weight: 900; line-height: 1; color: var(--coh-ink); }
.coh-turning__card h3 { font-size: 19px; font-weight: 800; line-height: 1.3; color: var(--coh-ink); }
.coh-turning__card p { margin-top: 6px; font-size: 15.5px; line-height: 1.6; color: var(--coh-muted); }

/* 02 · causes */
.coh-causes { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 48px; align-items: start; margin-top: 36px; }
.coh-causes__side { display: flex; flex-direction: column; gap: 18px; }
.coh-pc { display: flex; flex-direction: column; border-radius: 20px; overflow: hidden; background: var(--coh-navy); }
html[data-ccl-theme="dark"] .coh-pc { background: #111D35; border: 1px solid #2A3A58; }
.coh-pc__ph { height: 300px; background: #16223A; }
.coh-pc__ph img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.coh-pc__ini { display: flex; align-items: center; justify-content: center; height: 100%; font-family: var(--coh-display); font-size: 64px; font-weight: 800; color: #FFFFFF; }
.coh-pc__body { display: flex; flex-direction: column; gap: 12px; padding: 24px 26px 18px; }
.coh-pc__name { display: flex; flex-direction: column; gap: 2px; }
.coh-pc__name b { font-size: 21px; font-weight: 800; color: #FFFFFF; }
.coh-pc__name span { font-size: 14.5px; color: var(--coh-onnavy); }
.coh-pc__body li { display: flex; flex-direction: column; gap: 3px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,0.14); }
.coh-pc__body li .coh-mono { font-size: 11px; letter-spacing: 0.08em; color: var(--coh-gold); }
.coh-pc__body li span:last-child { font-size: 14.5px; line-height: 1.45; color: #FFFFFF; }
.coh-themes { display: flex; flex-direction: column; gap: 12px; }
.coh-theme { border-radius: 18px; background: var(--coh-card); border: 1px solid var(--coh-line); }
.coh-theme[open] { border-color: var(--coh-amber-line); }
.coh-theme summary { list-style: none; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto 24px; gap: 18px; align-items: center; min-height: 88px; padding: 18px 24px; cursor: pointer; }
.coh-theme summary::-webkit-details-marker { display: none; }
.coh-theme__ic { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: var(--coh-amber-soft); color: var(--coh-amber); }
.coh-theme__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.coh-theme__title { font-size: 20px; font-weight: 800; line-height: 1.3; color: var(--coh-ink); }
.coh-theme__desc { font-size: 15px; line-height: 1.45; color: var(--coh-muted); }
.coh-theme__range { font-family: var(--coh-mono); font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: var(--coh-amber); white-space: nowrap; }
.coh-theme summary > .coh-ic { color: var(--coh-ink); transition: transform .2s; }
.coh-theme[open] summary > .coh-ic { transform: rotate(180deg); }
.coh-theme summary:hover .coh-theme__title { text-decoration: underline; text-underline-offset: 3px; }
.coh-theme ol { padding: 0 24px 10px 94px; }
.coh-theme li { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; gap: 18px; align-items: start; padding: 16px 0; border-top: 1px solid var(--coh-line); }
.coh-theme__year { font-family: var(--coh-mono); font-size: 13.5px; font-weight: 600; color: var(--coh-amber); padding-top: 2px; white-space: nowrap; }
.coh-theme__body { display: flex; flex-direction: column; gap: 4px; }
.coh-theme__body b { font-size: 17px; font-weight: 800; line-height: 1.35; color: var(--coh-ink); }
.coh-theme__body span { font-size: 15px; line-height: 1.55; color: var(--coh-muted); }
.coh-juris { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: 6px; border: 1px solid var(--coh-line2); font-family: var(--coh-mono); font-size: 11.5px; font-weight: 600; white-space: nowrap; color: var(--coh-muted); }

/* 03 · the law */
.coh-seg-wrap { display: flex; align-items: center; gap: 10px; padding-bottom: 4px; }
.coh-seg { display: flex; gap: 2px; padding: 2px; border-radius: 10px; background: var(--coh-seg); }
.coh-seg button { min-height: 44px; padding: 0 16px; border: 0; border-radius: 8px; background: transparent; font-size: 14.5px; font-weight: 700; white-space: nowrap; color: var(--coh-muted); cursor: pointer; }
.coh-seg button[aria-pressed="true"] { background: var(--coh-card); box-shadow: 0 1px 3px rgba(10,22,40,0.12); color: var(--coh-ink); }
.coh-law__intro { max-width: 860px; margin-top: 32px; font-size: 17px; }
.coh-law { width: 100%; margin-top: 32px; border-collapse: collapse; }
.coh-law th { padding: 12px 16px; border-bottom: 2px solid var(--coh-ink); text-align: left; font-family: var(--coh-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--coh-muted); }
.coh-law th:first-child { padding-left: 0; width: 84px; }
.coh-law .coh-law__nowh { width: 430px; background: var(--coh-now-head); color: var(--coh-blue-text); }
.coh-law .coh-law__wh { width: 76px; padding-right: 0; text-align: right; }
.coh-law td { padding: 18px 16px; border-top: 1px solid var(--coh-line); vertical-align: top; }
.coh-law td:first-child { padding-left: 0; }
.coh-law__y { font-family: var(--coh-mono); font-size: 14px; font-weight: 600; letter-spacing: 0.02em; color: var(--coh-blue-text); white-space: nowrap; }
.coh-law td b { display: block; font-size: 16.5px; font-weight: 800; line-height: 1.35; color: var(--coh-ink); }
.coh-law td b + span { display: block; margin-top: 4px; font-size: 14.5px; line-height: 1.5; color: var(--coh-muted); }
.coh-law .coh-law__now { background: var(--coh-now); font-size: 15px; line-height: 1.5; font-weight: 600; color: var(--coh-ink); }
.coh-law .coh-law__w { padding-right: 0; text-align: right; }
.coh-lawlist { display: none; }
.coh-limits { display: flex; align-items: center; gap: 14px; margin-top: 32px; padding: 20px 24px; border-radius: 16px; background: var(--coh-warn); font-size: 16px; line-height: 1.5; color: var(--coh-warn-text); }
.coh-limits .coh-ic { color: var(--coh-warn-ic); }

/* What it means, FAQ, call to action */
.coh-why { background: var(--coh-soft); padding: 88px 0; }
.coh-why__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; }
.coh-why__head > div { display: flex; flex-direction: column; gap: 12px; }
.coh-why__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 32px; }
.coh-why__grid li { display: flex; flex-direction: column; gap: 12px; padding: 26px; border-radius: 18px; background: var(--coh-card); border: 1px solid var(--coh-line); }
.coh-why__ic { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 14px; background: var(--coh-blue-soft); color: var(--coh-blue-text); }
.coh-why__grid h3 { font-size: 20px; font-weight: 800; line-height: 1.25; color: var(--coh-ink); }
.coh-why__grid p { font-size: 15.5px; line-height: 1.6; color: var(--coh-muted); }
.coh-why .coh-note { margin-top: 32px; }
.coh-faq { padding: 88px 0; }
.coh-faq__grid { display: grid !important; grid-template-columns: 380px minmax(0, 1fr); gap: 64px; align-items: start; }
.coh-faq__head { display: flex; flex-direction: column; gap: 14px; }
.coh-faq__head p:last-child { font-size: 17px; line-height: 1.6; color: var(--coh-muted); }
.coh-faq__list { border-top: 1px solid var(--coh-line); }
.coh-faq__list details { border-bottom: 1px solid var(--coh-line); }
.coh-faq__list summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 68px; padding: 18px 0; cursor: pointer; font-size: 18px; font-weight: 700; color: var(--coh-ink); }
.coh-faq__list summary::-webkit-details-marker { display: none; }
.coh-faq__list summary .coh-ic { color: var(--coh-blue-text); transition: transform .2s; }
.coh-faq__list details[open] summary .coh-ic { transform: rotate(180deg); }
.coh-faq__list details p { padding: 0 56px 22px 0; font-size: 16.5px; line-height: 1.6; color: var(--coh-muted); }
.coh-cta { padding: 0 0 96px; }
.coh-cta__box { display: flex; align-items: center; justify-content: space-between; gap: 48px; padding: 52px 56px; border-radius: 22px; background: var(--coh-navy); }
html[data-ccl-theme="dark"] .coh-cta__box { background: #111D35; border: 1px solid #2A3A58; }
.coh-cta__text { display: flex; flex-direction: column; gap: 12px; max-width: 640px; }
.coh .coh-cta__text h2 { color: #FFFFFF; }
.coh-cta__text p { font-size: 18px; line-height: 1.55; color: var(--coh-onnavy); }
.coh .coh-cta__text .coh-cta__note { font-size: 13.5px; color: #8E9AAE; }
.coh-cta .coh-actions { flex: none; flex-wrap: nowrap; }

/* ========== Responsive ========== */
@media (max-width: 1180px) {
	.coh-hero__row { grid-template-columns: minmax(0, 1fr) 500px; gap: 40px; }
	.coh-index { padding: 20px 22px 6px; }
	.coh-index__row { grid-template-columns: 52px minmax(0, 1fr) 168px; gap: 16px; }
	.coh-index__n { font-size: 40px; }
	.coh-index__art { width: 168px; }
	.coh-causes { grid-template-columns: 300px minmax(0, 1fr); gap: 36px; }
	.coh-law .coh-law__nowh { width: 36%; }
	.coh-faq__grid { grid-template-columns: 320px minmax(0, 1fr); gap: 48px; }
	.coh-cta__box { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 1023px) {
	.coh-hero__row { grid-template-columns: minmax(0, 1fr); }
	.coh-index { max-width: 640px; }
	.coh-subnav ul, .coh-bar ul { overflow-x: auto; scrollbar-width: none; }
	.coh-subnav ul { gap: 26px; }
	.coh-subnav ul::-webkit-scrollbar, .coh-bar ul::-webkit-scrollbar { display: none; }
	.coh-bar .coh-wrap { gap: 24px; }
	.coh-bar ul { gap: 24px; }
	.coh-bar__label { display: none; }
	.coh-thead { flex-wrap: wrap; }
	.coh-thead__n { font-size: 84px; }
	.coh-causes { grid-template-columns: minmax(0, 1fr); }
	.coh-pc { display: grid; grid-template-columns: 240px minmax(0, 1fr); }
	.coh-pc__ph { height: auto; min-height: 100%; }
	.coh-theme ol { padding-left: 24px; }
	.coh-law .coh-law__nowh { width: 40%; }
	.coh-turning__grid, .coh-why__grid { grid-template-columns: minmax(0, 1fr); }
	.coh-faq__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}
@media (max-width: 760px) {
	.coh .coh-show-sm { display: block !important; }
	.coh span.coh-show-sm { display: inline !important; }
	.coh a.coh-btn.coh-show-sm { display: flex !important; }
	.coh .coh-hide-sm { display: none !important; }
	.coh h2 { font-size: 28px; line-height: 1.1; }
	.coh-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14.5px; font-weight: 700; color: #AEBBD0; }
	.coh-crumb { display: none; }
	.coh-hero { padding: 12px 0 36px; }
	.coh-hero__row { margin-top: 10px; gap: 18px; }
	.coh-hero__text { gap: 18px; }
	.coh-hero h1 { font-size: 38px; line-height: 1.04; }
	.coh-lead { font-size: 16.5px; }
	.coh-actions { flex-direction: column; }
	.coh .coh-btn, .coh a.coh-btn[href^="tel:"] { display: flex !important; width: 100%; min-height: 54px !important; }
	.coh-ticks { flex-direction: column; gap: 8px; }
	.coh-ticks li { font-size: 14.5px; }
	.coh-hero__text { display: contents; }
	.coh-hero__row { display: flex; flex-direction: column; align-items: stretch; }
	.coh-hero__row > .coh-index { order: 4; }
	.coh-hero__text > .coh-eyebrow { order: 1; }
	.coh-hero__text > h1 { order: 2; }
	.coh-hero__text > .coh-lead { order: 3; }
	.coh-hero__text > .coh-actions { order: 5; }
	.coh-hero__text > .coh-ticks { order: 6; }
	.coh-index { width: 100%; padding: 16px 18px 4px; border-radius: 18px; }
	.coh-index__head { padding-bottom: 10px; }
	.coh-index__head > span:last-child { display: none; }
	.coh-index__row { grid-template-columns: 46px minmax(0, 1fr) 20px; gap: 12px; min-height: 76px; padding: 12px 0; }
	.coh-index__n { font-size: 34px; }
	.coh-index__txt { gap: 4px; }
	.coh-index__txt .coh-mono { font-size: 10.5px; }
	.coh-index__title { font-size: 16.5px; line-height: 1.3; }
	.coh-index__go, .coh-index__art { display: none !important; }
	.coh-index__arrow { display: block; color: var(--coh-onnavy); }
	.coh-subnav { padding: 14px 0; }
	.coh-subnav .coh-wrap { padding-right: 0; }
	.coh-subnav ul { gap: 8px; padding-right: 20px; -webkit-overflow-scrolling: touch; }
	.coh-subnav a { min-height: 44px; padding: 0 14px; border: 1px solid var(--coh-line); border-radius: 999px; background: var(--coh-card); font-size: 14.5px; font-weight: 700; color: var(--coh-ink); }
	.coh-subnav a[aria-current] { background: var(--coh-navy); border-color: var(--coh-navy); color: #FFFFFF; }
	html[data-ccl-theme="dark"] .coh-subnav a[aria-current] { background: var(--coh-blue); border-color: var(--coh-blue); }
	.coh-bar .coh-wrap { padding-inline: 8px; }
	.coh-bar ul { flex: 1; gap: 0; overflow: visible; }
	.coh-bar li { flex: 1; min-width: 0; }
	.coh-bar__link { justify-content: center; width: 100%; gap: 6px; min-height: 52px; font-size: 14px; }
	.coh-bar__link i, .coh-bar__long { display: none; }
	.coh-bar__short { display: inline; }
	.coh-bar__n { font-size: 12px; }
	.coh .coh-bar__tel, .coh a.coh-bar__tel[href^="tel:"] { display: none !important; }
	.coh-thread { padding: 40px 0 44px; }
	.coh-thead { flex-direction: column; align-items: stretch; gap: 14px; }
	.coh-thead__main { flex-direction: column; align-items: flex-start; gap: 10px; }
	.coh-thead__n { font-size: 64px; line-height: 0.85; }
	.coh-thead__main { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 12px; row-gap: 10px; }
	.coh-thead__txt { display: contents; }
	.coh-thead__tag { font-size: 10.5px; gap: 8px; }
	.coh-thead__tag i { width: 9px; height: 9px; }
	.coh-thead h2 { grid-column: 1 / -1; }
	.coh-rail__ctl { justify-content: space-between; padding: 0; }
	.coh-rail__btn { width: 44px; height: 44px; }
	.coh-rail__ctl .coh-rail__btn:first-of-type { margin-left: auto; }
	.coh-thread__intro { font-size: 15.5px; }
	.coh-thread--practice .coh-thread__intro { margin-top: 14px; }
	.coh-rail { margin-top: 18px; -webkit-mask-image: none; mask-image: none; }
	.coh-rail ol { gap: 12px; padding-inline: 20px; }
	.coh-rail li { padding-bottom: 18px; scroll-margin-left: 20px; }
	.coh-rail li::after { height: 18px; }
	.coh-rail .coh-plate, .coh-today { height: 210px; padding: 20px; }
	.coh-rail__today { width: 270px !important; }
	.coh-turning { margin-top: 24px; gap: 10px; }
	.coh-turning__grid { gap: 10px; }
	.coh-turning__card { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 20px; border-radius: 16px; }
	.coh-turning__year { font-size: 30px; }
	.coh-turning__card h3 { font-size: 17px; }
	.coh-turning__card p { font-size: 15px; }
	.coh-causes { margin-top: 18px; gap: 18px; }
	.coh-pc { display: flex; padding: 20px; gap: 12px; border-radius: 18px; }
	.coh-pc__ph { position: absolute; width: 72px; height: 72px; min-height: 0; border-radius: 50%; overflow: hidden; }
	.coh-pc { position: relative; }
	.coh-pc__body { padding: 0; gap: 12px; }
	.coh-pc__name { min-height: 72px; justify-content: center; padding-left: 86px; }
	.coh-pc__name b { font-size: 18px; }
	.coh-pc__name span { font-size: 14px; }
	.coh-pc__ini { font-size: 26px; }
	.coh-pc__body li { padding: 11px 0; }
	.coh-pc__body li:nth-child(n+4) { display: none; }
	.coh-pc__body li span:last-child { font-size: 14px; }
	.coh-themes { gap: 10px; }
	.coh-theme { border-radius: 16px; }
	.coh-theme summary { grid-template-columns: 44px minmax(0, 1fr) 20px; gap: 12px; min-height: 76px; padding: 14px 16px; }
	.coh-theme__ic { width: 44px; height: 44px; border-radius: 12px; }
	.coh-theme__ic .coh-ic { width: 21px; height: 21px; }
	.coh-theme__txt { grid-column: 2; }
	.coh-theme__title { font-size: 16.5px; }
	.coh-theme__desc { display: none; }
	.coh-theme__range { grid-column: 2; grid-row: 2; margin-top: -8px; font-size: 11.5px; }
	.coh-theme summary > .coh-ic { grid-column: 3; grid-row: 1 / span 2; width: 20px; height: 20px; }
	.coh-theme ol { padding: 0 16px 8px; }
	.coh-theme li { grid-template-columns: minmax(0, 1fr) auto; gap: 5px 10px; padding: 14px 0; }
	.coh-theme__year { grid-row: 1; grid-column: 1; font-size: 12.5px; }
	.coh-theme li .coh-juris { grid-row: 1; grid-column: 2; }
	.coh-theme__body { grid-column: 1 / -1; }
	.coh-theme__body b { font-size: 16px; }
	.coh-theme__body span { font-size: 14.5px; }
	.coh-seg-wrap { padding: 0; }
	.coh-seg { flex: 1; }
	.coh-seg button { flex: 1; padding: 0 8px; font-size: 14px; }
	.coh-law__intro { margin-top: 14px; font-size: 15.5px; }
	.coh-law { display: none; }
	.coh-lawlist { display: flex; flex-direction: column; margin-top: 18px; border-top: 2px solid var(--coh-ink); }
	.coh-lawlist details { border-bottom: 1px solid var(--coh-line); }
	.coh-lawlist summary { list-style: none; display: grid; grid-template-columns: 52px minmax(0, 1fr) 20px; gap: 10px; align-items: center; min-height: 60px; padding: 12px 0; cursor: pointer; }
	.coh-lawlist summary::-webkit-details-marker { display: none; }
	.coh-lawlist summary .coh-law__y { font-size: 13px; }
	.coh-lawlist summary b { font-size: 15.5px; font-weight: 800; line-height: 1.35; color: var(--coh-ink); }
	.coh-lawlist summary .coh-ic { color: var(--coh-blue-text); transition: transform .2s; }
	.coh-lawlist details[open] summary .coh-ic { transform: rotate(180deg); }
	.coh-lawlist__body { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 0 0 16px 62px; }
	.coh-lawlist__body p { display: flex; flex-direction: column; gap: 4px; font-size: 14.5px; line-height: 1.5; color: var(--coh-muted); }
	.coh-lawlist__body .coh-mono { font-size: 10.5px; }
	.coh-lawlist__body .coh-lawlist__now { align-self: stretch; padding: 12px 14px; border-radius: 10px; background: var(--coh-now); font-weight: 600; color: var(--coh-ink); }
	.coh-lawlist__now .coh-mono { color: var(--coh-blue-text); }
	.coh-limits { align-items: flex-start; gap: 12px; margin-top: 18px; padding: 16px 18px; border-radius: 14px; font-size: 15px; }
	.coh-limits .coh-ic { width: 20px; height: 20px; margin-top: 2px; }
	.coh-why { padding: 40px 0 44px; }
	.coh-why__head { flex-direction: column; align-items: flex-start; gap: 4px; }
	.coh-why__head .coh-link { order: 3; }
	.coh-why__grid { gap: 10px; margin-top: 12px; }
	.coh-why__grid li { gap: 10px; padding: 20px; border-radius: 16px; }
	.coh-why__ic { width: 44px; height: 44px; border-radius: 12px; }
	.coh-why__grid h3 { font-size: 18px; }
	.coh-why__grid p { font-size: 15px; }
	.coh-why .coh-note { margin-top: 14px; font-size: 13px; }
	.coh-faq { padding: 44px 0; }
	.coh-faq__grid { gap: 16px; }
	.coh-faq__head > p:last-child { display: none; }
	.coh-faq__list summary { min-height: 60px; padding: 14px 0; font-size: 16.5px; gap: 16px; }
	.coh-faq__list details p { padding: 0 0 18px; font-size: 15.5px; }
	.coh-cta { padding: 0 0 40px; }
	.coh-cta__box { gap: 14px; padding: 28px 22px; border-radius: 20px; }
	.coh .coh-cta__text h2 { font-size: 26px; }
	.coh-cta__text p { font-size: 15.5px; }
	.coh-cta .coh-actions { flex-wrap: wrap; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.coh-theme summary > .coh-ic, .coh-faq__list summary .coh-ic, .coh-lawlist summary .coh-ic { transition: none; }
	.coh-rail { scroll-behavior: auto; }
}
@media print {
	.coh-bar, .coh-subnav, .coh-rail__ctl { display: none; }
	.coh-rail { overflow: visible; -webkit-mask-image: none; mask-image: none; }
	.coh-rail ol { flex-wrap: wrap; width: auto; }
}
