/* ペガサスグループ 内装解体 — sub.css（下層ページだけで読む。変数・共通部品は main.css）
   ★ .page / .home など WordPress が body に付けるクラス名と同じ名前は使わない */

/* ---------- 下層のヒーロー ---------- */
.ph { position: relative; background: var(--ink); color: #fff; overflow: hidden; isolation: isolate; }
.ph__bg { position: absolute; inset: 0; z-index: -2; }
.ph__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; animation: pgn-zoom 18s ease-out both; }
.ph__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 20, 25, .8) 0%, rgba(16, 20, 25, .9) 55%, rgba(16, 20, 25, .98) 100%); }
@media (min-width: 1024px) { .ph__bg::after { background: linear-gradient(90deg, rgba(16, 20, 25, .97) 0%, rgba(16, 20, 25, .88) 46%, rgba(16, 20, 25, .58) 100%); } }
.ph__word { position: absolute; right: -1vw; bottom: -.1em; z-index: -1; margin: 0; font-family: var(--f-en); font-variation-settings: "wdth" 62; font-weight: 900; font-size: clamp(96px, 22vw, 300px); line-height: .8; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .1); pointer-events: none; user-select: none; }
.ph__inner { max-width: calc(var(--wrap) + var(--gut) * 2); margin: 0 auto; padding: 16px var(--gut) 48px; }
.ph__cols { display: grid; gap: 32px; margin-top: 28px; }
.ph__cols > * { min-width: 0; }
@media (min-width: 1024px) {
	.ph__inner { padding-top: 22px; padding-bottom: 88px; }
	.ph__cols { grid-template-columns: minmax(0, 1fr) 380px; align-items: center; gap: 56px; margin-top: 52px; }
}
.ph__title { margin-top: 18px; animation: pgn-up .8s cubic-bezier(.2, .7, .2, 1) .08s both; }
.ph__h { display: block; margin-top: 16px; font-size: clamp(31px, 8.2vw, 60px); line-height: 1.25; letter-spacing: .01em; }
.ph__sub { display: flex; align-items: center; gap: 12px; margin-top: 14px; font-size: 15px; font-weight: 700; letter-spacing: .04em; color: #d7dde3; }
.ph__sub::before { content: ""; flex: none; width: 36px; height: 9px; border-left: 2px solid var(--blue-hi); background: linear-gradient(var(--blue-hi), var(--blue-hi)) center / 100% 1px no-repeat; }
@media (min-width: 768px) { .ph__sub { font-size: 18px; } }
@media (prefers-reduced-motion: reduce) { .ph__bg img, .ph__title { animation: none; } }

/* パンくず */
.bc ol { display: flex; flex-wrap: wrap; gap: 2px 0; font-size: 12px; color: var(--muted-dk); line-height: 1.6; }
.bc li + li::before { content: "/"; margin: 0 10px; color: rgba(255, 255, 255, .3); }
.bc a { color: var(--muted-dk); text-decoration: none; }
.bc a:hover { color: #fff; text-decoration: underline; }
.bc [aria-current] { color: #fff; }

/* ---------- ページ内の目次 ---------- */
.toc { background: var(--ink-3); color: #fff; border-top: 1px solid var(--line-dk); }
.toc__inner { max-width: calc(var(--wrap) + var(--gut) * 2); margin: 0 auto; padding: 18px var(--gut) 20px; }
.toc__head { font-family: var(--f-en); font-variation-settings: "wdth" 80; font-weight: 700; font-size: 11px; letter-spacing: .24em; color: var(--blue-hi); margin-bottom: 10px; }
.toc__list { counter-reset: t; display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.toc__list li { counter-increment: t; border-bottom: 1px solid var(--line-dk); }
.toc__list a { display: flex; align-items: baseline; gap: 8px; padding: 9px 0; color: #e6eaee; text-decoration: none; font-size: 13px; font-weight: 700; line-height: 1.5; }
.toc__list a::before { content: counter(t, decimal-leading-zero); font-family: var(--f-en); font-variation-settings: "wdth" 72; font-weight: 800; font-size: 13px; color: var(--blue-hi); flex: none; }
.toc__list a:hover { color: #fff; }
@media (min-width: 768px) { .toc__list { grid-template-columns: repeat(3, 1fr); gap: 0 28px; } .toc__list a { font-size: 14px; } }
@media (min-width: 1024px) {
	.toc__inner { display: flex; align-items: flex-start; gap: 36px; padding-top: 20px; padding-bottom: 22px; }
	.toc__head { margin: 11px 0 0; flex: none; }
	.toc__list { flex: 1; grid-template-columns: repeat(5, auto); justify-content: space-between; gap: 0 24px; }
	.toc__list li { border-bottom: 0; }
	.toc__list a { padding: 5px 0; position: relative; }
	.toc__list a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--blue-hi); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
	.toc__list a:hover::after { transform: scaleX(1); }
}

/* ---------- 要点の箱 ---------- */
.gistsec { background: var(--paper); padding-bottom: 0; }
.gist { position: relative; background: var(--white); border: 1px solid var(--line); padding: 30px 22px 14px; }
.gist::before, .gist::after { content: ""; position: absolute; width: 22px; height: 22px; border: 3px solid var(--blue); pointer-events: none; }
.gist::before { top: -7px; left: -7px; border-right: 0; border-bottom: 0; }
.gist::after { bottom: -7px; right: -7px; border-left: 0; border-top: 0; }
@media (min-width: 768px) { .gist { padding: 44px 48px 26px; } }
.gist__title { margin-top: 10px; font-size: clamp(22px, 5.4vw, 32px); }
.gist__lead { margin-top: 14px; color: #333b44; max-width: 50em; }
.gist__list { margin: 22px 0 0; border-top: 2px solid var(--ink); }
.gist__list div { display: grid; gap: 2px; padding: 14px 0; border-bottom: 1px dashed var(--line); }
.gist__list div:last-child { border-bottom: 0; }
@media (min-width: 768px) { .gist__list div { grid-template-columns: 190px 1fr; gap: 24px; align-items: baseline; padding: 16px 0; } }
.gist__list dt { font-family: var(--f-head); font-weight: 900; font-size: 14px; color: var(--blue-deep); display: flex; align-items: center; gap: 8px; }
.gist__list dt::before { content: ""; width: 8px; height: 8px; background: var(--blue); flex: none; }
.gist__list dd { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.7; }
.gist__list dd .num { font-size: 34px; line-height: 1; color: var(--blue-deep); margin: 0 2px 0 4px; }
.gist__list dd small { display: block; font-size: 12px; font-weight: 400; color: var(--muted); }
@media (min-width: 768px) { .gist__list dd small { display: inline; margin-left: 4px; } }
.gist__two { display: block; }
.gist__two + .gist__two { margin-top: 4px; }
.gist__tel { font-size: 22px; color: var(--blue-deep); text-decoration: none; margin: 0 2px; }

/* ---------- お悩み → 対応 ---------- */
.worry2 { background: var(--paper); }
.chk { display: grid; gap: 10px; }
@media (min-width: 768px) { .chk { grid-template-columns: 1fr 1fr; gap: 14px; } .chk li:last-child:nth-child(odd) { grid-column: 1 / -1; } }
.chk li { position: relative; background: var(--white); border: 1px solid var(--line); padding: 16px 18px 16px 52px; font-weight: 700; font-size: 15px; line-height: 1.7; }
.chk li::before { content: ""; position: absolute; left: 18px; top: 20px; width: 18px; height: 18px; border: 2px solid var(--blue); border-radius: 2px; }
.chk li::after { content: ""; position: absolute; left: 22px; top: 23px; width: 12px; height: 7px; border-left: 3px solid var(--ink); border-bottom: 3px solid var(--ink); transform: rotate(-45deg); }
.worry2 .worry__answer { margin-top: 36px; }
.sol { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-top: 0; }
@media (min-width: 768px) { .sol { grid-template-columns: repeat(6, 1fr); } .sol__item { grid-column: span 3; } .sol__item:last-child { grid-column: 1 / -1; } }
@media (min-width: 1024px) { .sol__item { grid-column: span 2; } .sol__item:nth-child(4), .sol__item:last-child { grid-column: span 3; } }
@media (min-width: 768px) { .sol--4 .sol__item, .sol--4 .sol__item:last-child { grid-column: span 3; } }
.sol__item { position: relative; background: var(--white); padding: 26px 22px 26px; }
.sol__no { display: block; font-size: 34px; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--blue); }
.sol__ico { position: absolute; right: 20px; top: 24px; width: 34px; height: 34px; color: var(--blue); stroke-width: 1.4; }
.sol__item h3 { margin: 12px 0 8px; font-size: 18px; padding-right: 40px; }
.sol__item p { font-size: 14px; color: #333b44; line-height: 1.8; }

/* ---------- 工事の種類 ---------- */
.kinds { background: var(--white); }
.kinds__grid { display: grid; gap: 16px; }
@media (min-width: 1024px) { .kinds__grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.kind { position: relative; background: var(--paper); border-top: 4px solid var(--ink); padding: 26px 22px 22px; display: flex; flex-direction: column; }
.kind:first-child { border-top-color: var(--blue); }
.kind__en { display: flex; align-items: baseline; gap: 12px; font-family: var(--f-en); font-variation-settings: "wdth" 80; font-weight: 700; font-size: 12px; letter-spacing: .22em; color: var(--muted); }
.kind__en .num { font-size: 46px; line-height: 1; letter-spacing: 0; color: var(--blue); }
.kind__title { margin: 8px 0 10px; font-size: 22px; }
.kind__text { font-size: 15px; color: #333b44; margin-bottom: 18px; }
.kind__dl { margin: auto 0 0; padding-top: 4px; border-top: 1px solid var(--line); }
.kind__dl div { display: grid; grid-template-columns: 100px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px dashed var(--line); font-size: 13px; line-height: 1.7; }
.kind__dl div:last-child { border-bottom: 0; padding-bottom: 0; }
.kind__dl dt { font-weight: 700; color: var(--blue-deep); }
.kind__dl dd { margin: 0; font-weight: 700; }
.kinds__types { margin-top: 56px; }
@media (min-width: 768px) { .kinds__types { margin-top: 72px; } }

.items { margin-top: 48px; background: var(--ink); color: #fff; padding: 30px 22px 26px; position: relative; }
@media (min-width: 768px) { .items { margin-top: 64px; padding: 44px 44px 36px; } }
.items__title { font-size: 20px; display: flex; align-items: center; gap: 12px; }
.items__title::before { content: ""; flex: none; width: 36px; height: 9px; border-left: 2px solid var(--blue-hi); background: linear-gradient(var(--blue-hi), var(--blue-hi)) center / 100% 1px no-repeat; }
@media (min-width: 768px) { .items__title { font-size: 24px; } }
.items__grid { margin-top: 22px; display: grid; gap: 1px; background: var(--line-dk); border: 1px solid var(--line-dk); counter-reset: it; }
@media (min-width: 768px) { .items__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .items__grid { grid-template-columns: repeat(3, 1fr); } }
.items__grid li { counter-increment: it; position: relative; background: var(--ink); padding: 18px 16px 18px 58px; font-size: 13px; color: #c6cdd4; line-height: 1.7; }
.items__grid li::before { content: counter(it, decimal-leading-zero); position: absolute; left: 16px; top: 17px; font-family: var(--f-en); font-variation-settings: "wdth" 72; font-weight: 800; font-size: 24px; line-height: 1.1; color: transparent; -webkit-text-stroke: 1px var(--blue-hi); }
.items__grid b { display: block; font-family: var(--f-head); font-weight: 900; font-size: 16px; color: #fff; }
.items__note { margin-top: 16px; font-size: 13px; color: var(--muted-dk); }
@media (min-width: 1024px) { .items__grid--4 { grid-template-columns: repeat(2, 1fr); } .items__grid--5 li:last-child { grid-column: span 2; } }
@media (min-width: 768px) and (max-width: 1023px) { .items__grid--3 li:last-child, .items__grid--5 li:last-child { grid-column: 1 / -1; } }

/* ---------- 料金（カードが少ないページ） ---------- */
.price { background: var(--paper); }
@media (min-width: 768px) { .price__grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) {
	.price__row--2 { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 20px; align-items: stretch; }
	.price__row--2 .price__notes { margin-top: 0; padding: 22px 22px; background: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--ink); align-content: center; gap: 10px; line-height: 1.75; }
	.price__row--2 .price__notes li { padding-left: 1.2em; text-indent: -1.2em; }
}
.price .price__factors { background: var(--white); }
.price .price__factors li { background: var(--paper); }

/* ---------- 選ばれる理由（4つ） ---------- */
@media (min-width: 1024px) { .reason__grid--4 { grid-template-columns: repeat(2, 1fr); } }

/* ---------- メッセージ ---------- */
.msgsec { background: var(--white); }
.msg { position: relative; background: var(--paper); border-left: 4px solid var(--blue); padding: 32px 22px 28px; }
@media (min-width: 768px) { .msg { padding: 48px 52px 40px; } }
.msg::after { content: "”"; position: absolute; right: 18px; top: 0; font-family: Georgia, serif; font-size: 120px; line-height: 1; color: #dcd8cf; pointer-events: none; }
.msg__title { position: relative; z-index: 1; margin: 12px 0 18px; font-size: clamp(21px, 5.2vw, 30px); line-height: 1.5; }
.msg p:not(.sec__en):not(.msg__sign) { position: relative; z-index: 1; color: #333b44; }
.msg p + p { margin-top: 1em; }
.msg__sign { margin-top: 22px; text-align: right; font-family: var(--f-head); font-weight: 900; }

/* ---------- 関連ページ ---------- */
.relsec { background: var(--paper); }
.rel__grid { display: grid; gap: 12px; }
@media (min-width: 768px) { .rel__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
@media (min-width: 1024px) { .rel__grid { grid-template-columns: repeat(3, 1fr); } }
.rel { position: relative; display: block; height: 100%; padding: 22px 56px 22px 22px; background: var(--white); border: 1px solid var(--line); color: var(--text); text-decoration: none; transition: background-color .25s, color .25s, border-color .25s; }
.rel::after { content: "→"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 20px; color: var(--blue); transition: transform .25s, color .25s; }
.rel__en { display: block; font-family: var(--f-en); font-variation-settings: "wdth" 80; font-weight: 700; font-size: 11px; letter-spacing: .22em; color: var(--blue); }
.rel__title { display: block; margin-top: 4px; font-family: var(--f-head); font-weight: 900; font-size: 18px; line-height: 1.5; }
.rel__text { display: block; margin-top: 4px; font-size: 13px; color: var(--muted); line-height: 1.7; transition: color .25s; }
.rel:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.rel:hover .rel__en, .rel:hover::after { color: var(--blue-hi); }
.rel:hover::after { transform: translate(4px, -50%); }
.rel:hover .rel__text { color: #c6cdd4; }
@media (prefers-reduced-motion: reduce) { .rel, .rel::after, .rel__text { transition: none; } }

/* ---------- 下層での色の並び（白と紙色を交互に） ---------- */
.ph ~ .works { background: var(--white); }
.ph ~ .flow { background: var(--paper); }
.ph ~ .flow .flow__ico { background: var(--paper); }
.ph ~ .guide { background: var(--white); }
.ph ~ .guide .guide__item { background: var(--paper); }
.ph ~ .faq { background: var(--paper); }

/* ---------- コンパクトなヒーロー（料金の箱が無いページ） ---------- */
.ph--s .ph__bg img { animation: none; object-position: 60% 50%; }
.ph--s .ph__bg::after { background: linear-gradient(180deg, rgba(16, 20, 25, .86) 0%, rgba(16, 20, 25, .95) 100%); }
@media (min-width: 1024px) { .ph--s .ph__bg::after { background: linear-gradient(90deg, rgba(16, 20, 25, .98) 0%, rgba(16, 20, 25, .9) 50%, rgba(16, 20, 25, .62) 100%); } }
.ph--s .ph__cols { display: block; margin-top: 24px; }
.ph--s .ph__inner { padding-bottom: 44px; }
.ph--s .ph__h { font-size: clamp(29px, 7.4vw, 52px); }
.ph--s .hero__lead { max-width: 44em; }
@media (min-width: 1024px) { .ph--s .ph__cols { margin-top: 40px; } .ph--s .ph__inner { padding-bottom: 68px; } }
.ph--s .ph__word { font-size: clamp(88px, 19vw, 240px); }

/* ---------- 汎用：続きへのリンク ---------- */
.more { margin-top: 28px; }
.guide__more { margin-top: 10px; font-size: 13px; font-weight: 700; }
.guide__more a { text-decoration: none; }
.guide__more a::after { content: " →"; }

/* ---------- 2つ並びのカード ---------- */
.duo { display: grid; gap: 16px; }
@media (min-width: 768px) { .duo { grid-template-columns: 1fr 1fr; gap: 24px; } }
@media (min-width: 768px) { .duo__item:only-child { grid-column: 1 / -1; } } /* 1枚だけのとき（石綿ページの資格）は横いっぱいに */
.duo__item { position: relative; background: var(--paper); border-top: 4px solid var(--ink); padding: 26px 22px 24px; }
.duo__item:first-child { border-top-color: var(--blue); }
.duo__en { font-family: var(--f-en); font-variation-settings: "wdth" 80; font-weight: 700; font-size: 11px; letter-spacing: .24em; color: var(--blue); }
.duo__item h3 { margin: 6px 0 10px; font-size: 21px; }
.duo__item p:not(.duo__en) { font-size: 15px; color: #333b44; }
.duo__item .chips { margin-top: 14px; }
.duo--link { margin-top: 28px; }

/* ---------- 番号つきの手順カード ---------- */
.nstep { display: grid; gap: 14px; counter-reset: ns; }
@media (min-width: 1024px) { .nstep { grid-template-columns: repeat(3, 1fr); gap: 20px; } .nstep--5 { grid-template-columns: repeat(5, 1fr); gap: 12px; } }
.nstep__item { position: relative; background: var(--white); border: 1px solid var(--line); padding: 24px 20px 22px; }
@media (min-width: 1024px) {
	.nstep__item:not(:last-child)::after { content: ""; position: absolute; right: -14px; top: 38px; width: 9px; height: 9px; border-top: 2px solid var(--blue); border-right: 2px solid var(--blue); transform: rotate(45deg); z-index: 1; }
	.nstep--5 .nstep__item:not(:last-child)::after { right: -10px; }
	.nstep--5 .nstep__item { padding: 22px 16px 20px; }
}
.nstep__no { display: block; font-size: 38px; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--blue); }
.nstep__item h3 { margin: 12px 0 8px; font-size: 18px; }
.nstep__item p { font-size: 14px; color: #333b44; line-height: 1.8; }
.nstep__item .nstep__src { margin-top: 10px; font-size: 12px; color: var(--muted); font-weight: 700; }

/* ---------- 法令の箱 ---------- */
.law { margin-top: 32px; background: var(--white); border: 1px solid var(--line); border-left: 4px solid var(--blue); padding: 26px 22px; }
@media (min-width: 768px) { .law { padding: 32px 36px; } }
.law__head { display: flex; align-items: center; gap: 10px; font-family: var(--f-head); font-weight: 900; font-size: 18px; line-height: 1.5; margin-bottom: 12px; }
.law__ico { width: 26px; height: 26px; color: var(--blue); }
.law p:not(.law__head) { font-size: 15px; color: #333b44; }
.law p + p { margin-top: 10px; }
.law__quote { margin: 14px 0; padding: 18px 20px; background: var(--paper); font-size: 14px; line-height: 1.9; color: var(--text); }
.law__quote cite { display: block; margin-top: 8px; font-style: normal; font-size: 12px; font-weight: 700; color: var(--muted); text-align: right; }
.law .guide__src { font-size: 12px; color: var(--muted); }

/* ---------- 流れ（くわしい版） ---------- */
.tl { display: grid; gap: 0; }
.tl__item { position: relative; display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 16px; padding-bottom: 28px; }
@media (min-width: 768px) { .tl__item { grid-template-columns: 88px minmax(0, 1fr); gap: 28px; padding-bottom: 36px; } }
.tl__item::before { content: ""; position: absolute; left: 25px; top: 56px; bottom: 0; width: 2px; background: repeating-linear-gradient(var(--line) 0 6px, transparent 6px 10px); }
@media (min-width: 768px) { .tl__item::before { left: 43px; top: 92px; } }
.tl__item:last-child { padding-bottom: 0; }
.tl__item:last-child::before { display: none; }
.tl__side { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.tl__no { width: 52px; height: 52px; display: grid; place-items: center; background: var(--ink); color: #fff; font-size: 22px; }
@media (min-width: 768px) { .tl__no { width: 88px; height: 88px; font-size: 38px; } }
.tl__ico { display: none; }
.tl__body { background: var(--white); border: 1px solid var(--line); padding: 22px 20px; }
@media (min-width: 768px) { .tl__body { padding: 30px 34px; } }
.tl__body h3 { font-size: 21px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
@media (min-width: 768px) { .tl__body h3 { font-size: 24px; } }
.tl__body h3 .flow__tag { margin-top: 0; font-family: var(--f-body); font-feature-settings: normal; }
.tl__text { margin-top: 10px; color: #333b44; }
.tl__dl { margin: 18px 0 0; display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); }
@media (min-width: 768px) { .tl__dl { grid-template-columns: 1fr 1fr; } }
.tl__dl div { background: var(--paper); padding: 14px 16px; }
.tl__dl dt { font-family: var(--f-head); font-weight: 900; font-size: 13px; color: var(--blue-deep); display: flex; align-items: center; gap: 8px; }
.tl__dl dt::before { content: ""; width: 8px; height: 8px; background: var(--blue); flex: none; }
.tl__dl dd { margin: 4px 0 0; font-size: 14px; line-height: 1.8; }

/* ---------- 問い合わせの2つの窓口 ---------- */
.ctc { display: grid; gap: 16px; }
@media (min-width: 768px) { .ctc { grid-template-columns: 1fr 1fr; gap: 24px; } }
.ctc__item { position: relative; background: var(--ink); color: #fff; padding: 32px 24px 30px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
@media (min-width: 768px) { .ctc__item { padding: 44px 40px 40px; } }
.ctc__item::before, .ctc__item::after { content: ""; position: absolute; width: 20px; height: 20px; border: 2px solid var(--blue-hi); pointer-events: none; }
.ctc__item::before { top: -6px; left: -6px; border-right: 0; border-bottom: 0; }
.ctc__item::after { bottom: -6px; right: -6px; border-left: 0; border-top: 0; }
.ctc__item--line::before, .ctc__item--line::after { border-color: var(--green); }
.ctc__en { font-family: var(--f-en); font-variation-settings: "wdth" 80; font-weight: 700; font-size: 12px; letter-spacing: .24em; color: var(--blue-hi); }
.ctc__item--line .ctc__en { color: var(--green); }
.ctc__item h3 { font-size: 24px; }
.ctc__text { font-size: 14px; color: #c6cdd4; }
.ctc__num { margin-top: 8px; font-size: clamp(38px, 10vw, 54px); line-height: 1.1; color: #fff; text-decoration: none; }
.ctc__lead { margin-top: 8px; font-family: var(--f-head); font-weight: 900; font-size: clamp(22px, 5.6vw, 28px); line-height: 1.4; min-height: 2.2em; }
.ctc__hours { font-size: 13px; color: var(--muted-dk); margin-bottom: 12px; }
.ctc__item .btn { margin-top: auto; }

/* ---------- 文章だけのブロック ---------- */
.prose p { color: #333b44; }
.prose p + p { margin-top: 1.2em; }
.prose--policy h2 { font-size: 20px; margin: 44px 0 12px; padding: 0 0 10px 14px; border-left: 4px solid var(--blue); border-bottom: 1px solid var(--line); }
.prose--policy ul { list-style: disc; padding-left: 1.4em; margin: 12px 0 0; color: #333b44; }
.prose--policy a { font-weight: 700; }

/* ---------- 対応エリア・写真タイルの補助 ---------- */
.area__base { margin-top: 16px; font-size: 14px; color: var(--muted); }
@media (min-width: 768px) { .types__grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .types__grid--2 { grid-template-columns: repeat(2, 1fr); } }
.sec > .wrap > .kinds__types:first-child { margin-top: 0; }
.items:first-child { margin-top: 0; }
.sec__head + .items { margin-top: 0; }
.scope__table + .items { margin-top: 40px; }
.kinds__grid + .price__notes { margin-top: 22px; }
.relsec .rel__grid, .sec .rel__grid { margin: 0; }

/* ---------- 背景の交互（部品が sec--white / sec--paper を付けたページ）----------
   暗い帯（見積り帯・選ばれる理由・問い合わせ）は対象外。中のカードは背景の逆の色にする */
.sec.sec--white { background: var(--white); }
.sec.sec--paper { background: var(--paper); }
.sec.sec--white :is(.kind, .guide__item, .rel, .duo__item, .nstep__item, .tl__body, .msg, .chk li, .sol__item, .price__card, .price__factors, .law, .work:not(.work--cta)) { background: var(--paper); }
.sec.sec--paper :is(.kind, .guide__item, .rel, .duo__item, .nstep__item, .tl__body, .msg, .chk li, .sol__item, .price__card, .price__factors, .law, .work:not(.work--cta)) { background: var(--white); }
.sec.sec--white :is(.price__factors li, .tl__dl div, .law__quote, .svc__list li) { background: var(--white); }
.sec.sec--paper :is(.price__factors li, .tl__dl div, .law__quote, .svc__list li) { background: var(--paper); }
.sec.sec--white .flow__ico { background: var(--white); }
.sec.sec--paper .flow__ico { background: var(--paper); }
@media (min-width: 1024px) {
	.sec.sec--white .price__row--2 .price__notes { background: var(--paper); }
	.sec.sec--paper .price__row--2 .price__notes { background: var(--white); }
}
.sec.sec--white .rel:hover, .sec.sec--paper .rel:hover { background: var(--ink); }

/* ---------- お問い合わせフォーム ---------- */
.ctc__form-link { margin-top: 24px; text-align: center; }
.form { scroll-margin-top: calc(var(--hd-h) + 20px); }
.form__body { background: var(--paper); border: 1px solid var(--line); border-top: 4px solid var(--blue); padding: 26px 20px 30px; }
@media (min-width: 768px) { .form__body { padding: 40px 44px 44px; } }
.sec.sec--paper .form__body { background: var(--white); }
.form__row { padding: 16px 0; border-bottom: 1px dashed var(--line); display: grid; gap: 8px; }
@media (min-width: 768px) { .form__row { grid-template-columns: 220px minmax(0, 1fr); gap: 24px; align-items: start; padding: 20px 0; } .form__label { padding-top: 12px; } }
.form__label { font-weight: 700; font-size: 15px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.form__tag { font-size: 11px; font-weight: 700; line-height: 1; padding: 4px 7px; border: 1px solid var(--line); color: var(--muted); background: var(--white); }
.form__tag--req { border-color: var(--blue); background: var(--blue); color: #fff; }
.form__field input, .form__field select, .form__field textarea { width: 100%; font: inherit; font-size: 16px; line-height: 1.6; color: var(--text); background: var(--white); border: 1px solid #b9b5ac; border-radius: var(--r); padding: 11px 14px; }
.form__field textarea { resize: vertical; min-height: 160px; }
.form__field input:focus, .form__field select:focus, .form__field textarea:focus { outline: 2px solid var(--blue); outline-offset: 1px; border-color: var(--blue); }
.form__field ::placeholder { color: #8a949e; }
.form__row.is-error input, .form__row.is-error select, .form__row.is-error textarea { border-color: #c4321f; background: #fdf3f1; }
.form__err { margin-top: 6px; font-size: 13px; font-weight: 700; color: #c4321f; }
.form__pot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__agree { margin-top: 22px; font-weight: 700; text-align: center; }
.form__agree.is-error { color: #c4321f; }
.form__agree input { width: 20px; height: 20px; vertical-align: -4px; margin-right: 6px; accent-color: var(--blue); }
.form__submit { display: block; width: 100%; max-width: 420px; margin: 22px auto 0; padding: 18px 24px; font: inherit; font-family: var(--f-head); font-weight: 900; font-size: 18px; color: #fff; background: linear-gradient(135deg, var(--blue) 0%, #0b57b0 100%); border: 0; border-radius: var(--r); cursor: pointer; box-shadow: 0 10px 24px -10px rgba(10, 102, 204, .8); transition: transform .2s, box-shadow .2s; }
.form__submit:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -10px rgba(10, 102, 204, .9); }
@media (prefers-reduced-motion: reduce) { .form__submit { transition: none; } .form__submit:hover { transform: none; } }
.form__note { margin-top: 16px; font-size: 13px; color: var(--muted); text-align: center; }
.form__errors { margin-bottom: 18px; padding: 16px 20px; border: 1px solid #c4321f; border-left-width: 4px; background: #fdf3f1; color: #8f2214; font-size: 14px; }
.form__errors p { font-weight: 700; }
.form__errors ul { list-style: disc; padding-left: 1.4em; margin-top: 6px; }
.form__done { padding: 32px 24px; border: 1px solid var(--line); border-top: 4px solid var(--blue); background: var(--paper); text-align: center; }
.sec.sec--paper .form__done { background: var(--white); }
.form__done-title { font-family: var(--f-head); font-weight: 900; font-size: 22px; margin-bottom: 10px; }

/* ---------- コラム（一覧・記事） ---------- */
.column__noimg { display: grid; place-items: center; width: 100%; aspect-ratio: 8 / 5; background: var(--ink); color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .35); font-family: var(--f-en); font-variation-settings: "wdth" 62; font-weight: 900; font-size: clamp(36px, 9vw, 56px); letter-spacing: .04em; }
.column__item a { transition: border-color .25s, transform .25s; }
.column__item a:hover { border-color: var(--blue); transform: translateY(-2px); }
@media (prefers-reduced-motion: reduce) { .column__item a { transition: none; } .column__item a:hover { transform: none; } }
.column__empty { margin-bottom: 28px; }
.nav-links { margin-top: 36px; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.nav-links .page-numbers { min-width: 44px; height: 44px; padding: 0 12px; display: grid; place-items: center; border: 1px solid var(--line); background: var(--white); color: var(--text); text-decoration: none; font-weight: 700; font-size: 14px; }
.nav-links .page-numbers.current { background: var(--ink); border-color: var(--ink); color: #fff; }
.navigation .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.ph--post .ph__cols { display: block; }
.ph--post .ph__h { font-size: clamp(24px, 5.8vw, 40px); line-height: 1.45; margin-top: 14px; }
.ph--post .hero__eyebrow time { font: inherit; }
.ph--post .ph__h, .column__item h2, .column__item h3, .entry h2, .entry h3 { word-break: auto-phrase; }
.post__mod { margin-top: 14px; font-size: 12px; color: var(--muted-dk); }
.post__eyecatch { margin-bottom: 36px; }
.post__eyecatch img { width: 100%; height: auto; }
.entry { font-size: 16px; line-height: 2; overflow-wrap: anywhere; }
.entry > :first-child { margin-top: 0; }
.entry h2 { font-size: clamp(21px, 5.2vw, 26px); margin: 56px 0 18px; padding: 12px 0 12px 16px; border-left: 4px solid var(--blue); background: var(--paper); line-height: 1.5; }
.entry h3 { font-size: clamp(18px, 4.6vw, 21px); margin: 40px 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--ink); line-height: 1.5; }
.entry h4 { font-family: var(--f-head); font-weight: 900; font-size: 17px; margin: 28px 0 8px; }
.entry p { margin: 0 0 1.4em; }
.entry ul, .entry ol { margin: 0 0 1.4em; padding-left: 1.5em; }
.entry ul { list-style: disc; }
.entry ol { list-style: decimal; }
.entry li { margin-bottom: .4em; }
.entry a { font-weight: 700; }
.entry img { height: auto; }
.entry blockquote { margin: 0 0 1.4em; padding: 18px 20px; background: var(--paper); border-left: 4px solid var(--line); font-size: 15px; }
.entry table { width: 100%; border-collapse: collapse; margin: 0 0 1.6em; font-size: 14px; line-height: 1.7; }
.entry th, .entry td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; }
.entry th { background: #eceae5; font-weight: 700; }
.post__cta { position: relative; margin-top: 56px; padding: 32px 22px; background: var(--ink); color: #fff; }
@media (min-width: 768px) { .post__cta { padding: 40px 40px; } }
.post__cta::before, .post__cta::after { content: ""; position: absolute; width: 20px; height: 20px; border: 2px solid var(--blue-hi); pointer-events: none; }
.post__cta::before { top: -6px; left: -6px; border-right: 0; border-bottom: 0; }
.post__cta::after { bottom: -6px; right: -6px; border-left: 0; border-top: 0; }
.post__cta-en { font-family: var(--f-en); font-variation-settings: "wdth" 80; font-weight: 700; font-size: 12px; letter-spacing: .24em; color: var(--blue-hi); }
.post__cta-title { margin-top: 6px; font-family: var(--f-head); font-weight: 900; font-size: clamp(19px, 4.8vw, 24px); line-height: 1.5; }
.post__cta-btns { margin-top: 18px; display: grid; gap: 10px; }
@media (min-width: 768px) { .post__cta-btns { display: flex; flex-wrap: wrap; gap: 14px; } }
.post__back { text-align: center; }
.sec.sec--paper .column__item a { background: var(--white); }
