/*
 * 特殊車両通行許可申請.net：明朝体と細い罫の上品な作り（tokusya #20・2026-10-27）
 * 千田先生の特車案（しっぽり明朝＋Jost・藍×赤）とは似せない：見出しは Zen Old Mincho、英字は Marcellus、色はこのサイトのネイビー×標識の黄色のまま
 * 下の「自動」の部分は scripts/gen-refine.py が kk.css・tk.css・ta.css から作る（角を2pxに、大きな影を外す）
 */
:root {
	--tr-serif: "Zen Old Mincho", "Noto Serif JP", serif;
	--tr-en: "Marcellus", "Zen Old Mincho", serif;
	--tk-disp: var(--tr-serif);
	--tr-line: #d9dee6;
}
body { font-variant-numeric: lining-nums; }
#content p, #content li, #content dd { text-wrap: pretty; }

/* 見出し：明朝の太字を細めに、字間を広く */
#content h1, #content h2, .kk-section-head__title, .kk-cta__title, .kk-guide__cat, .tk-hero .tk-hero__title {
	font-family: var(--tr-serif) !important;
	font-weight: 700 !important;
	letter-spacing: .06em;
}
#content h3, #content h4, .tk-pcard h3, .tk-why h3, .tk-point h3 { font-family: var(--tr-serif); font-weight: 700; letter-spacing: .04em; }
.kk-logo__name { font-family: var(--tr-serif) !important; font-weight: 700 !important; letter-spacing: .04em; }

/* 区画の見出し：英字の小見出し＋見出し＋黄色の細い線 */
.kk-section-head { margin-bottom: 40px; }
.kk-section-head__en { font-family: var(--tr-en); font-weight: 400; font-size: 14px !important; letter-spacing: .32em; text-transform: uppercase; }
#content .kk-section-head__title { font-size: 31px !important; margin: 8px 0 0 !important; }
#content .kk-section-head__title::after { content: ""; display: block; width: 36px; height: 2px; background: var(--tk-amber); margin: 20px auto 0; }
.kk-section-head__lead { margin-top: 18px !important; line-height: 2; text-wrap: balance; }
.tk-eyebrow { font-family: var(--tr-en); letter-spacing: .2em; }

/* 数字：電話番号・料金・番号は明朝（Marcellus の 0 は O に見えるため使わない） */
.kk-header-tel__num, .kk-cta__tel-num, .kk-fixbar__tel, .tk-yen, .kk-count, .tk-q__no { font-family: var(--tr-serif) !important; font-weight: 700 !important; letter-spacing: .04em; }
.tk-case__no { font-family: var(--tr-en) !important; letter-spacing: .12em; }
.tk-yen { font-size: 1.5em; line-height: 1.2; }

/* 枠：細い罫に。太い枠は1pxに */
.tk-pcard, .tk-cmp-card, .tk-point, .tk-sys, .kk-guide__card, .tk-news > *, .tk-docs li { border-width: 1px !important; }
.tk-pcard--main { border-width: 1px !important; outline: 1px solid var(--tk-amber); outline-offset: 4px; }

/* ボタン：角を立て、字間を少し広く */
.tk-btn, .kk-btn, .kk-cta__tel, .kk-cta__mail { letter-spacing: .06em; }

/* ---- 新しいトップの最初の画面（th2）と制限値の欄 ---- */
.th2 { background: linear-gradient(160deg, #1c3350 0%, var(--tk-navy) 55%, #0c1626 100%) !important; color: #fff; padding-bottom: 0 !important; }
.th2::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(115deg, transparent 0 160px, rgba(255, 255, 255, .025) 160px 320px); pointer-events: none; }
.th2 .th2-title { background: none !important; border: none !important; padding: 0 !important; color: #fff; font-weight: 700 !important; }
.th2-lim .kk-section-head__title { background: none !important; border: none !important; padding: 0 !important; margin: 8px 0 0 !important; text-align: center; font-family: var(--tr-serif) !important; font-weight: 700 !important; font-size: 31px !important; color: var(--tk-navy); letter-spacing: .06em; line-height: 1.5; }
.th2-lim .kk-section-head__title::after { content: ""; display: block; width: 36px; height: 2px; background: var(--tk-amber); margin: 20px auto 0; }
@media (max-width: 680px) { .th2-lim .kk-section-head__title { font-size: 23px !important; } }
.th2-in { position: relative; max-width: var(--kk-wide); margin: 0 auto; padding: 72px 24px 24px; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 56px; align-items: stretch; }
.th2-kick { margin: 0 0 22px !important; padding-left: 16px; border-left: 2px solid var(--tk-amber); line-height: 1.6; }
.th2-kick-en { display: block; font-family: var(--tr-en); font-size: 13px; letter-spacing: .3em; color: #c9d4e3; }
.th2-kick-ja { display: block; font-family: var(--tr-serif); font-weight: 700; font-size: 18px; letter-spacing: .12em; }
.th2 .th2-title { font-size: clamp(32px, 4.2vw, 50px) !important; line-height: 1.45 !important; margin: 0 0 22px !important; letter-spacing: .08em !important; }
.th2 .th2-title em { font-style: normal; color: var(--tk-amber); }
.th2-lead { margin: 0 0 20px !important; color: #d3dbe7; line-height: 2.05; font-size: 15.5px !important; max-width: 34em; }
.th2-svc { list-style: none; margin: 0 0 28px !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.th2-svc li { margin: 0 !important; padding: 4px 14px; border: 1px solid rgba(255, 255, 255, .45); font-size: 13.5px; letter-spacing: .06em; }
.th2-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.th2-cta .tk-btn { flex: 1 1 0; min-width: 0; }
.th2-cta .tk-btn--line { font-family: var(--tr-serif); font-size: 19px; letter-spacing: .1em; }
.th2-side { display: flex; flex-direction: column; gap: 18px; }
.th2-sign { flex: 1; display: flex; flex-direction: column; justify-content: center; border: 1px solid rgba(255, 255, 255, .55); outline: 1px solid rgba(255, 255, 255, .18); outline-offset: 5px; padding: 26px 30px 20px; background: rgba(12, 22, 38, .45); }
.th2-sign-t { margin: 0 0 12px !important; font-family: var(--tr-en); font-size: 12px; letter-spacing: .32em; color: #c9d4e3; }
.th2-kuma { margin: 0 0 14px !important; display: flex; align-items: center; gap: 20px; background: var(--tk-amber); color: var(--tk-navy); padding: 14px 22px; }
.th2-kuma b { font-family: var(--tr-serif); font-weight: 700; font-size: 44px; letter-spacing: .3em; line-height: 1.1; white-space: nowrap; flex: none; }
.th2-kuma span { font-size: 14px; font-weight: 700; line-height: 1.5; }
.th2-nw { display: inline-block; white-space: nowrap; }
@media (max-width: 680px) { .th2-kuma { gap: 14px; padding: 14px 16px; } .th2-kuma span { font-size: 13px; } }
.th2-pref { list-style: none; margin: 0 0 16px !important; padding: 0 !important; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.th2-pref li { margin: 0 !important; text-align: center; font-family: var(--tr-serif); font-weight: 700; font-size: 16px; border: 1px solid rgba(255, 255, 255, .4); padding: 6px 0; letter-spacing: .04em; }
.th2-arrow { margin: 0 !important; display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid rgba(255, 255, 255, .3); padding-top: 12px; }
.th2-arrow span { font-size: 13.5px; letter-spacing: .08em; }
.th2-arrow b { font-family: var(--tr-serif); font-size: 28px; letter-spacing: .1em; }
.th2-nums { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255, 255, 255, .3); border-bottom: 1px solid rgba(255, 255, 255, .3); }
.th2-nums li { margin: 0 !important; padding: 16px 6px 14px; text-align: center; line-height: 1.25; }
.th2-nums li + li { border-left: 1px solid rgba(255, 255, 255, .2); }
.th2-nums b { font-family: var(--tr-serif); font-size: 44px; font-weight: 700; color: var(--tk-amber); line-height: 1; }
.th2-nums span { display: block; font-family: var(--tr-serif); font-weight: 700; font-size: 14px; margin-top: 2px; }
.th2-nums small { display: block; font-family: "Noto Sans JP", sans-serif; font-weight: 400; font-size: 11.5px; color: #b9c6da; margin-top: 4px; }
.th2-art { position: relative; }
.th2-art svg { display: block; width: min(940px, 100%); height: auto; margin: 0 auto; }
.th2-lim { background: #fff; padding: 88px 24px 80px; }
.th2-lim-in { max-width: var(--kk-wide); margin: 0 auto; }
.th2-lims { list-style: none; margin: 0 0 36px !important; padding: 0 !important; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 1px solid var(--tr-line); border-bottom: 1px solid var(--tr-line); }
.th2-lims li { margin: 0 !important; padding: 30px 8px 24px; text-align: center; }
.th2-lims li + li { border-left: 1px solid #e8ecf1; }
.th2-ico { display: grid; place-items: center; width: 64px; height: 64px; margin: 4px auto 16px; background: var(--tk-amber); color: var(--tk-navy); transform: rotate(45deg); border: 2px solid var(--tk-navy); outline: 2px solid var(--tk-amber); }
.th2-ico svg { width: 30px; height: 30px; transform: rotate(-45deg); }
.th2-lims b { display: block; font-family: var(--tr-serif); font-size: 16px; color: var(--tk-navy); letter-spacing: .1em; }
.th2-lims p { margin: 4px 0 0 !important; font-family: var(--tr-serif); font-weight: 700; font-size: 18px; color: var(--tk-navy); text-align: center; }
.th2-lims em { font-style: normal; font-size: 42px; line-height: 1; margin-right: 2px; }
.th2-lims small { display: block; font-size: 12px; color: var(--kk-sub); line-height: 1.6; margin-top: 6px; }
.th2-ex { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 10px 28px; align-items: start; background: var(--kk-bg); padding: 28px 32px; }
.th2-ex-t { text-wrap: balance; margin: 0 !important; font-family: var(--tr-serif); font-weight: 700; font-size: 17px; color: var(--tk-navy); line-height: 1.6; }
.th2-ex ul { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.th2-ex li { margin: 0 !important; background: #fff; border: 1px solid var(--tr-line); padding: 5px 14px; font-size: 14px; }
.th2-ex-link { grid-column: 2; font-weight: 700; color: var(--tk-navy) !important; text-decoration: none !important; border-bottom: 1px solid var(--tk-amber); justify-self: start; padding-bottom: 2px; }
@media (max-width: 960px) {
	.th2-in { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.th2-lims { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.th2-lims li:nth-child(4) { border-left: 0; }
	.th2-lims li:nth-child(n+4) { border-top: 1px solid #e8ecf1; }
	.th2-ex { grid-template-columns: minmax(0, 1fr); }
	.th2-ex-link { grid-column: auto; }
}
@media (max-width: 680px) {
	.th2-in { padding: 44px 16px 16px; }
	.th2-cta .tk-btn { flex: none; width: 100%; }
	.th2-kuma b { font-size: 36px; }
	.th2-pref { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.th2-sign { padding: 22px 18px 16px; }
	.th2-art .th2-dim { display: none; }
	.th2-art svg { width: 130%; margin-left: -15%; }
	.th2-lim { padding: 60px 16px 56px; }
	.th2-lims { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.th2-lims li:nth-child(n) { border-left: 0; border-top: 1px solid #e8ecf1; }
	.th2-lims li:nth-child(2n) { border-left: 1px solid #e8ecf1; }
	.th2-lims li:nth-child(-n+2) { border-top: 0; }
	.th2-ex { padding: 22px 18px; }
	.th2-br { display: none; }
}

/* ---- 自動（scripts/gen-refine.py） ---- */
.kk-menu-btn__bars,
.kk-menu-btn__bars::before,
.kk-menu-btn__bars::after { border-radius: 2px !important; }
.kk-hero__clients { border-radius: 2px !important; }
.kk-btn { border-radius: 2px !important; }
.kk-btn--primary { box-shadow: none !important; }
.kk-btn--line { box-shadow: none !important; }
.kk-hero__card { border-radius: 2px !important; box-shadow: none !important; }
.kk-hero__card-msg { border-radius: 2px !important; }
.kk-hero__photo img { border-radius: 2px !important; box-shadow: none !important; }
.kk-hero__photo figcaption { border-radius: 2px !important; }
.kk-trust li { border-radius: 2px !important; }
#content .news { border-radius: 2px !important; }
.kk-guide__card { border-radius: 2px !important; }
.kk-guide__card:hover { box-shadow: none !important; }
.kk-related { border-radius: 2px !important; }
#menu { box-shadow: none !important; }
.kk-menu-close { box-shadow: none !important; }
.kk-fixbar { border-radius: 2px !important; box-shadow: none !important; }
.kk-cta { border-radius: 2px !important; }
.kk-cta__tel,
.kk-cta__mail { border-radius: 2px !important; }
.kk-cta__line-qr img { border-radius: 2px !important; }
.kk-cta__line-title span { border-radius: 2px !important; }
#about.kk-about { border-radius: 2px !important; }
.kk-about__photo img { box-shadow: none !important; }
.kk-about__link { border-radius: 2px !important; }
.kk-fixbar { border-radius: 0 !important; }
.kk-hero__flow { border-radius: 2px !important; }
.kk-office__table { border-radius: 2px !important; }
.kk-office__room img { border-radius: 2px !important; box-shadow: none !important; }
.kk-office__map { border-radius: 2px !important; }
.kk-office__parking { border-radius: 2px !important; }
.kk-office__profile img { box-shadow: none !important; }
.kk-office__note { border-radius: 2px !important; }
.kk-check__box { border-radius: 2px !important; box-shadow: none !important; }
.kk-check__q { border-radius: 2px 2px 2px 2px !important; }
.kk-check__answers button { border-radius: 2px !important; }
.kk-check__result-title { border-radius: 2px 2px 2px 2px !important; }
.kk-check__line,
.kk-check__tel { border-radius: 2px !important; }
.kk-check__line { box-shadow: none !important; }
.kk-line-dialog { border-radius: 2px !important; box-shadow: none !important; }
.kk-line-dialog img { border-radius: 2px !important; }
.kk-topmsg__sec { border-radius: 2px !important; }
.kk-award__zoom { border-radius: 2px !important; }
.kk-zoom { border-radius: 2px !important; }
.kk-topmsg__line { border-radius: 2px !important; }
.kk-topmsg__line-qr img { border-radius: 2px !important; }
.kk-topmsg__line-title span { border-radius: 2px !important; }
#content .form-table .optional { border-radius: 2px !important; }
#content .form-table input[type="text"],
#content .form-table input[type="email"],
#content .form-table input[type="tel"],
#content .form-table select,
#content .form-table textarea { border-radius: 2px !important; }
#content input[type="submit"] { border-radius: 2px !important; }
.kk-network__area { border-radius: 2px !important; }
.kk-hero .kk-hero__bubble { border-radius: 2px !important; }
.tk-logo-mark { border-radius: 2px !important; }
.tk-eyebrow { border-radius: 2px !important; }
.tk-btn { border-radius: 2px !important; }
.tk-systems { border-radius: 2px !important; box-shadow: none !important; }
.tk-sys__icon { border-radius: 2px !important; }
#content a.tk-case { border-radius: 2px !important; }
#content a.tk-case:hover { box-shadow: none !important; }
.tk-diag { border-radius: 2px !important; box-shadow: none !important; }
.tk-q__no { border-radius: 2px !important; }
.tk-result { border-radius: 2px !important; }
#content .tk-cmp tbody tr:last-child td { border-radius: 0 0 2px 2px !important; }
#content .tk-cmp__head { border-radius: 2px 2px 0 0 !important; }
#content .tk-cmp td b::before { border-radius: 2px !important; }
.tk-cmp-card { border-radius: 2px !important; }
#content .tk-point { border-radius: 0 2px 2px 0 !important; }
.tk-pcard { border-radius: 2px !important; }
.tk-pcard--main::before { border-radius: 2px !important; }
#content .tk-fees { border-radius: 2px !important; }
.tk-news article { border-radius: 2px !important; }
.tk-why > div { border-radius: 2px !important; }
#content .tk-docs li { border-radius: 2px !important; }
#content .tk-self__steps li { border-radius: 2px !important; }
#content .tk-self__links { border-radius: 2px !important; }
#content .tk-self__links a { border-radius: 2px !important; }
#content .tk-self__help { border-radius: 0 2px 2px 0 !important; }
#content ul.ta-months > li { border-radius: 0 !important; }
