/* ==========================================================
   かけつけロードレスキュー LP
   SPファースト（基準375px）→ 900px以上でPCレイアウト
   影は使わない／角丸は役割で使い分け（ピル=押せる, 12-22px=箱, 0=帯・写真）
   ========================================================== */

:root {
  --ink: #14233F;
  --muted: #5B6884;
  --navy: #0A2A66;
  --blue: #0F5BD7;
  --sky-50: #F2F7FE;
  --sky-100: #E1ECFB;
  --sky-200: #C5DAF6;
  --sky-300: #9DC0EE;
  --orange: #F0641E;        /* 電話CTA専用 */
  --orange-dark: #C94C0C;
  --yellow: #FFE14A;        /* 数字とマーカー専用 */
  --cream: #FFF6DC;         /* 保険（費用）セクション専用 */
  --line: #06C755;
  --num: "Oswald", "Noto Sans JP", sans-serif;
  --bar-h: 104px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 64px; }
body {
  margin: 0;
  padding-bottom: var(--bar-h);
  background: var(--navy);
  color: var(--ink);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 15px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
main { display: block; background: #fff; overflow: hidden; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img { max-width: 100%; height: auto; vertical-align: middle; }
a { color: inherit; text-decoration: none; }
sup { font-size: .6em; font-weight: 400; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 2px; }
.wrap { width: min(1040px, 100% - 40px); margin: 0 auto; }
br.pc { display: none; }

/* ---------- 見出し共通 ---------- */
.eyebrow {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  color: var(--blue); font-size: 12.5px; font-weight: 700;
}
.eyebrow::before, .eyebrow::after { content: ""; width: 20px; height: 3px; background: currentColor; }
.eyebrow--ink { color: var(--navy); }
.ttl {
  margin-top: 5px;
  color: var(--navy); font-size: 25px; font-weight: 900; line-height: 1.42; text-align: center;
}
.ttl--left { text-align: left; }
h1, h2, h3, .cv__lead, .sf__list span, .tr__lead, .tr__foot, .pop__tip { word-break: auto-phrase; text-wrap: balance; }
p, dd, li { text-wrap: pretty; }
.mk { background: linear-gradient(transparent 64%, var(--yellow) 64%); }

/* ---------- ヘッダー ---------- */
.hd { position: sticky; top: 0; z-index: 80; background: #fff; border-bottom: 2px solid var(--navy); }
.hd__in { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: min(1120px, 100% - 24px); margin: 0 auto; height: 54px; }
.hd__logo { display: flex; align-items: center; gap: 8px; min-width: 0; }
.hd__logo svg { flex: none; }
.hd__name { color: var(--navy); font-size: 15px; font-weight: 900; line-height: 1.2; white-space: nowrap; }
.hd__name small { display: block; color: var(--muted); font-size: 8.5px; font-weight: 400; }
.hd__name b { color: var(--blue); }
.hd__tel {
  display: flex; align-items: center; gap: 6px; flex: none;
  padding: 7px 14px 6px; border-radius: 999px; border-bottom: 3px solid var(--orange-dark);
  background: var(--orange); color: #fff; font-weight: 700; line-height: 1.15;
}
.hd__tel small { display: none; }
.hd__num { display: none; }
.hd__short { font-size: 13px; }

/* ---------- FV ---------- */
.fv { background: var(--blue); color: #fff; }
.fv__strip { background: var(--navy); padding: 5px 8px; font-size: 10.5px; text-align: center; }
.fv__copy { padding: 20px 20px 62px; }
.fv__lead { font-size: 15px; font-weight: 700; }
.fv__lead em { color: var(--yellow); font-style: normal; }
.fv__title { font-weight: 900; }
.fv__kw {
  display: inline-block; margin: 9px 0 6px; padding: 1px 10px;
  border: 1px solid rgba(255,255,255,.7); font-size: 12px; font-weight: 700;
}
.fv__big {
  display: block; font-size: clamp(33px, 10.2vw, 44px); line-height: 1.24;
  transform: skewX(-6deg); transform-origin: left bottom;
  white-space: nowrap; word-break: normal; text-wrap: nowrap;
}
.fv__big b {
  margin: 0 .05em 0 .08em; color: var(--yellow);
  font-family: var(--num); font-size: 2.15em; font-weight: 600; line-height: .86; vertical-align: -.05em;
}
.fv__big sup { font-size: .28em; vertical-align: 1.6em; }
.fv__sub { margin-top: 13px; font-size: 14px; font-weight: 700; line-height: 1.6; }
.fv__photo { position: relative; }
.fv__photo img { display: block; width: 100%; aspect-ratio: 16 / 10.5; object-fit: cover; object-position: 46% 50%; }
.fv__seal {
  position: absolute; right: 12px; top: -58px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 118px; height: 118px; border-radius: 50%;
  background: var(--yellow); border: 3px solid var(--navy); outline: 3px solid #fff;
  color: var(--navy); font-weight: 900; line-height: 1.1; text-align: center;
  transform: rotate(-7deg);
}
.fv__seal-a { font-size: 11.5px; }
.fv__seal-b { margin-top: 3px; font-size: 15px; }
.fv__seal-c { font-size: 17px; }
.fv__seal-c b { color: var(--orange-dark); font-family: var(--num); font-size: 44px; font-weight: 600; line-height: .95; }
.fv__seal-c sup { font-size: 9px; }
.fv__facts { display: grid; grid-template-columns: repeat(3, 1fr); background: #fff; color: var(--navy); }
.fv__facts li { padding: 13px 2px 12px; font-size: 12.5px; font-weight: 700; line-height: 1.4; text-align: center; }
.fv__facts li + li { border-left: 1px solid var(--sky-200); }
.fv__facts b { color: var(--blue); font-family: var(--num); font-size: 23px; font-weight: 600; line-height: 1; }
.fv__facts strong { color: var(--orange-dark); font-size: 17px; font-weight: 900; }
.fv__note { background: #fff; padding: 2px 20px 20px; color: var(--muted); font-size: 10.5px; line-height: 1.6; }

/* ---------- CVブロック ---------- */
.cv { background: var(--sky-100); padding: 40px 0 38px; }
.cv__in {
  width: min(560px, 100% - 32px); margin: 0 auto; padding: 0 16px 20px;
  background: #fff; border: 3px solid var(--navy); border-bottom-width: 12px; border-radius: 16px 16px 0 0;
  text-align: center;
}
.cv__say {
  display: inline-block; position: relative; top: -17px; padding: 4px 18px;
  border-radius: 999px; background: var(--navy); color: #fff; font-size: 13px; font-weight: 700;
}
.cv__lead { margin: -4px 0 15px; color: var(--navy); font-size: 20px; font-weight: 900; line-height: 1.45; }
.btn-tel {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 11px 14px 9px; border-radius: 999px; border-bottom: 5px solid var(--orange-dark);
  background: var(--orange); color: #fff; line-height: 1.15;
}
.btn-tel__body { display: flex; flex-direction: column; align-items: flex-start; }
.btn-tel small { font-size: 11px; font-weight: 700; }
.btn-tel__num { font-family: var(--num); font-size: 33px; font-weight: 600; }
.btn-line {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: 10px; padding: 11px; border-radius: 999px;
  background: var(--line); color: #fff; font-size: 14px; font-weight: 700;
}
.cv__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; margin-top: 14px; }
.cv__chips li { color: var(--navy); font-size: 12px; font-weight: 700; }
.cv__chips li::before {
  content: ""; display: inline-block; width: 9px; height: 5px; margin: 0 6px 3px 0;
  border-left: 2.5px solid var(--blue); border-bottom: 2.5px solid var(--blue); transform: rotate(-45deg);
}
.cv--mid { background: none; padding: 46px 0 50px; }

/* ---------- 症状 ---------- */
.tr { padding: 46px 0 36px; }
.tr__lead { margin: 11px 0 21px; font-size: 13.5px; text-align: center; }
.tr__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.tr__grid a {
  position: relative; display: block; height: 100%; padding: 6px 2px 10px; overflow: hidden;
  background: #fff; border: 2px solid var(--navy); border-radius: 12px;
  color: var(--navy); font-size: 11.5px; font-weight: 700; line-height: 1.35; text-align: center;
}
.tr__grid a::after {
  content: ""; position: absolute; right: 0; bottom: 0;
  border-style: solid; border-width: 0 0 15px 15px; border-color: transparent transparent var(--orange) transparent;
}
.tr__grid img { display: block; width: 70%; margin: 0 auto 1px; }
.tr__grid span { display: block; }
.tr__foot { margin-top: 17px; font-size: 13px; text-align: center; }

/* ---------- まずすること ---------- */
.sf { position: relative; background: var(--navy); color: #fff; padding: 46px 0 30px; }
.sf::before {
  content: ""; position: absolute; left: 0; right: 0; top: 16px; height: 4px; opacity: .45;
  background: repeating-linear-gradient(90deg, #fff 0 30px, transparent 30px 54px);
}
.sf__ttl { font-size: 22px; font-weight: 900; line-height: 1.4; }
.sf__ttl span { display: block; color: var(--yellow); font-size: 14px; }
.sf__list { margin-top: 14px; counter-reset: sf; }
.sf__list li {
  position: relative; padding: 13px 0 13px 46px; border-top: 1px solid rgba(255,255,255,.22);
  counter-increment: sf;
}
.sf__list li::before {
  content: counter(sf); position: absolute; left: 0; top: 15px;
  width: 34px; height: 34px; border: 2px solid var(--yellow); border-radius: 50%;
  color: var(--yellow); font-family: var(--num); font-size: 19px; line-height: 30px; text-align: center;
}
.sf__list b { display: block; font-size: 16px; }
.sf__list span { display: block; font-size: 13px; opacity: .86; }
.sf__note { margin-top: 6px; padding-top: 13px; border-top: 1px solid rgba(255,255,255,.22); font-size: 12px; opacity: .8; }

/* ---------- 保険 ---------- */
.ins { background: var(--cream); padding: 50px 0 42px; }
.ins__ttl { margin-top: 6px; color: var(--navy); font-size: 21px; font-weight: 900; line-height: 1.5; text-align: center; }
.ins__zero { display: inline-block; color: var(--orange-dark); font-size: 1.62em; line-height: 1.2; }
.ins__zero sup { font-size: .3em; vertical-align: 1.9em; }
.ins__zero b { margin: 0 .04em; font-family: var(--num); font-size: 2.1em; font-weight: 600; line-height: .9; vertical-align: -.06em; }
.ins__text { margin: 19px 0 22px; font-size: 14.5px; }
.ins__text strong { background: linear-gradient(transparent 64%, var(--yellow) 64%); }
.ins__cases { display: grid; gap: 10px; }
.ins__cases > div { overflow: hidden; background: #fff; border: 3px solid var(--navy); border-radius: 14px; }
.ins__cases dt { padding: 7px 8px; background: var(--navy); color: #fff; font-size: 14px; font-weight: 700; text-align: center; }
.ins__cases dd { padding: 12px 10px 15px; color: var(--navy); font-weight: 900; font-size: 22px; line-height: 1.2; text-align: center; }
.ins__cases dd b { color: var(--orange-dark); font-family: var(--num); font-size: 62px; font-weight: 600; line-height: 1; }
.ins__cases dd sup { font-size: 11px; vertical-align: 2.2em; }
.ins__cases dd em { display: block; padding: 13px 0 9px; color: var(--blue); font-size: 30px; font-style: normal; }
.ins__cases dd small { text-wrap: balance; word-break: auto-phrase; display: block; margin-top: 4px; color: var(--ink); font-size: 12.5px; font-weight: 400; }
.ins__badge { margin-top: 20px; padding: 3px 0 3px 12px; border-left: 5px solid var(--blue); font-size: 13.5px; line-height: 1.65; }
.ins__badge strong { color: var(--navy); }
.ins__note { margin-top: 15px; color: #6A5C3A; font-size: 11px; line-height: 1.65; }

/* ---------- 運んで終わりにしない ---------- */
.rt { padding: 56px 0 28px; }
.rt__lead { margin-top: 16px; font-size: 14.5px; }
.rt__lead strong { color: var(--navy); }
.rt__road { position: relative; margin-top: 30px; padding-left: 60px; }
.rt__road::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 42px;
  background: var(--navy) linear-gradient(#fff 56%, transparent 56%) center / 4px 28px repeat-y;
}
.rt__road li { position: relative; padding: 0 0 31px; }
.rt__road li:last-child { padding-bottom: 22px; }
.rt__km {
  position: absolute; left: -60px; top: 1px; width: 42px; height: 30px;
  background: var(--yellow); color: var(--navy);
  font-family: var(--num); font-size: 19px; line-height: 30px; text-align: center;
}
.rt__road h3 { color: var(--navy); font-size: 19px; font-weight: 900; line-height: 1.5; }
.rt__road p { margin-top: 5px; font-size: 14px; }
.rt__road small { display: block; margin-top: 4px; color: var(--muted); font-size: 11.5px; }

/* ---------- 理由 ---------- */
.rs { background: var(--sky-50); padding: 42px 0 52px; }
.rs__grid { display: grid; gap: 14px; margin-top: 24px; }
.rs__card { position: relative; padding: 17px 18px 20px; background: #fff; border-top: 6px solid var(--blue); border-radius: 0 0 14px 14px; }
.rs__no { position: absolute; right: 14px; top: 4px; color: var(--sky-200); font-family: var(--num); font-size: 56px; line-height: 1; }
.rs__card h3 { position: relative; color: var(--navy); font-size: 18px; font-weight: 900; }
.rs__card h3 + p { position: relative; margin-top: 8px; font-size: 14px; }

/* ---------- 声 ---------- */
.vc { padding: 52px 0 44px; }
.vc__list { display: grid; gap: 15px; max-width: 620px; margin: 26px auto 0; }
.vc__list li { margin-right: 30px; }
.vc__list li:nth-child(even) { margin: 0 0 0 30px; text-align: right; }
.vc__list p {
  padding: 13px 16px; background: var(--sky-100); border: 2px solid var(--navy); border-radius: 18px 18px 18px 3px;
  color: var(--navy); font-size: 15px; font-weight: 700; line-height: 1.6; text-align: left;
}
.vc__list li:nth-child(even) p { background: #fff; border-radius: 18px 18px 3px 18px; }
.vc__list span { display: inline-block; margin-top: 5px; color: var(--muted); font-size: 11.5px; }
.vc__list span::before { content: "— "; }

/* ---------- 流れ ---------- */
.fl { background: linear-gradient(#fff, var(--sky-100)); padding: 14px 0 0; }
.fl__steps { display: grid; margin: 26px calc(50% - 50vw) 0; }
.fl__steps li { position: relative; padding: 19px 22px 22px; background: var(--c); color: var(--navy); }
.fl__steps li:nth-child(1) { --c: var(--sky-100); }
.fl__steps li:nth-child(2) { --c: var(--sky-200); }
.fl__steps li:nth-child(3) { --c: var(--sky-300); }
.fl__steps li:nth-child(4) { --c: var(--blue); color: #fff; }
.fl__steps li:not(:last-child)::after {
  content: ""; position: absolute; left: 36px; bottom: -13px; z-index: 1;
  border-style: solid; border-width: 13px 15px 0; border-color: var(--c) transparent transparent;
}
.fl__n { display: inline-block; padding: 0 11px; border-radius: 999px; background: var(--navy); color: #fff; font-family: var(--num); font-size: 13px; line-height: 22px; }
.fl__steps h3 { margin-top: 5px; font-size: 19px; font-weight: 900; }
.fl__steps p { font-size: 13.5px; }

/* ---------- 対応車種 ---------- */
.sc { padding: 50px 0 44px; }
.sc__lead { margin-top: 9px; font-size: 14px; }
.sc__tbl { width: 100%; max-width: 640px; margin-top: 20px; border-collapse: collapse; border-top: 2px solid var(--navy); }
.sc__tbl th, .sc__tbl td { padding: 13px 0; border-bottom: 1px solid var(--sky-200); font-size: 14.5px; font-weight: 700; line-height: 1.5; }
.sc__tbl th { color: var(--navy); text-align: left; }
.sc__tbl th small { display: block; font-size: 11.5px; font-weight: 400; }
.sc__tbl td { padding-left: 10px; text-align: right; font-size: 13.5px; }
.sc__tbl td::before { margin-right: 4px; font-size: 16px; }
.is-ok { color: var(--blue); }
.is-ok::before { content: "○"; }
.is-ask { color: #7A5A00; }
.is-ask::before { content: "△"; }
.is-ng { color: #B3261E; }
.is-ng::before { content: "×"; }
.sc__note { max-width: 640px; margin-top: 13px; color: var(--muted); font-size: 12.5px; }

/* ---------- FAQ ---------- */
.fq { background: var(--sky-50); padding: 46px 0 50px; }
.fq__list { max-width: 760px; margin: 23px auto 0; }
.fq__list details { margin-bottom: 8px; background: #fff; border-radius: 10px; }
.fq__list summary {
  position: relative; display: flex; gap: 10px; padding: 14px 42px 14px 12px;
  color: var(--navy); font-size: 15px; font-weight: 700; line-height: 1.6; cursor: pointer; list-style: none;
}
.fq__list summary::-webkit-details-marker { display: none; }
.fq__list summary::after {
  content: ""; position: absolute; right: 15px; top: 50%; width: 14px; height: 14px; margin-top: -7px;
  background: linear-gradient(var(--navy), var(--navy)) center / 100% 2px no-repeat, linear-gradient(var(--navy), var(--navy)) center / 2px 100% no-repeat;
}
.fq__list details[open] summary::after { background: linear-gradient(var(--navy), var(--navy)) center / 100% 2px no-repeat; }
.fq__q { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--blue); color: #fff; font-family: var(--num); font-size: 14px; line-height: 25px; text-align: center; }
.fq__list details p { padding: 0 16px 16px 48px; font-size: 14px; }

/* ---------- エリア ---------- */
.ar { padding: 54px 0 38px; }
.ar__lead { margin: 10px 0 20px; font-size: 13.5px; text-align: center; }
.ar__grid { border-top: 2px solid var(--navy); }
.ar__grid details { border-bottom: 1px solid var(--sky-300); }
.ar__grid summary { position: relative; padding: 12px 34px 12px 4px; cursor: pointer; list-style: none; }
.ar__grid summary::-webkit-details-marker { display: none; }
.ar__grid summary::after {
  content: ""; position: absolute; right: 10px; top: 50%; width: 9px; height: 9px; margin-top: -8px;
  border-right: 2.5px solid var(--blue); border-bottom: 2.5px solid var(--blue); transform: rotate(45deg);
}
.ar__grid details[open] summary::after { margin-top: -2px; transform: rotate(-135deg); }
.ar__grid h3 { display: inline; color: var(--navy); font-size: 17px; font-weight: 900; }
.ar__grid p { padding: 0 4px 10px; font-size: 13px; line-height: 1.9; }
.ar__grid p b { color: var(--navy); }
.ar__note { margin-top: 14px; color: var(--muted); font-size: 12.5px; }

/* ---------- 会社概要・フッター ---------- */
.co { background: var(--sky-50); padding: 34px 0 38px; }
.co__ttl { color: var(--navy); font-size: 17px; font-weight: 900; }
.co__dl { max-width: 640px; margin-top: 10px; font-size: 13.5px; }
.co__dl > div { display: grid; grid-template-columns: 88px 1fr; padding: 9px 0; border-bottom: 1px dashed var(--sky-300); }
.co__dl dt { color: var(--navy); font-weight: 700; }
.ft { padding: 28px 0 26px; color: #fff; }
.ft__logo { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 900; }
.ft__logo svg { border: 1px solid rgba(255,255,255,.5); border-radius: 7px; }
.ft__area { margin-top: 10px; font-size: 12px; opacity: .8; }
.ft__copy { margin-top: 14px; opacity: .6; }

/* ---------- 追従CTA ---------- */
.bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: var(--navy); }
.bar__say { padding: 3px 8px; background: var(--yellow); color: var(--navy); font-size: 12px; font-weight: 700; text-align: center; }
.bar__say b { font-weight: 900; }
.bar__dot { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #12A150; animation: blink 1.6s ease-in-out infinite; }
@keyframes blink { 50% { opacity: .25; } }
.bar__in { display: flex; gap: 8px; width: min(720px, 100% - 24px); margin: 0 auto; padding: 9px 0 calc(9px + env(safe-area-inset-bottom)); }
.bar__tel {
  flex: 1; display: flex; align-items: center; justify-content: center; gap: 9px;
  padding: 7px 10px 5px; border-radius: 999px; border-bottom: 4px solid var(--orange-dark);
  background: var(--orange); color: #fff; line-height: 1.12;
}
.bar__tel small { display: block; font-size: 10.5px; font-weight: 700; }
.bar__num { font-family: var(--num); font-size: 26px; font-weight: 600; }
.bar__line {
  flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 66px;
  border-radius: 14px; background: var(--line); color: #fff; font-size: 10px; font-weight: 700; line-height: 1.2;
}

/* ---------- ポップアップ ---------- */
.pop {
  width: 100%; max-width: 480px; max-height: 92dvh; margin: auto auto 0; padding: 22px 20px calc(18px + env(safe-area-inset-bottom));
  border: 0; border-top: 6px solid var(--blue); border-radius: 22px 22px 0 0;
  background: #fff; color: var(--ink); text-align: center;
}
.pop::backdrop { background: rgba(10, 42, 102, .62); }
.pop[open] { animation: rise .26s ease-out; }
@keyframes rise { from { transform: translateY(40px); opacity: 0; } }
.pop__x { position: absolute; right: 6px; top: 6px; width: 44px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; }
.pop__x::before, .pop__x::after { content: ""; position: absolute; left: 12px; top: 21px; width: 20px; height: 2px; background: var(--navy); transform: rotate(45deg); }
.pop__x::after { transform: rotate(-45deg); }
.pop__icon { display: block; width: 84px; height: 84px; margin: 0 auto; }
.pop__kind { color: var(--navy); font-size: 15px; font-weight: 700; }
.pop__ttl { color: var(--blue); font-size: 31px; font-weight: 900; line-height: 1.3; transform: skewX(-6deg); }
.pop__tip { margin-top: 8px; font-size: 13px; line-height: 1.65; text-align: left; }
.pop__ask { margin: 13px 0 14px; padding: 11px 14px 12px; border-radius: 12px; background: var(--sky-50); text-align: left; }
.pop__ask p { color: var(--blue); font-size: 12.5px; font-weight: 700; }
.pop__ask ol { counter-reset: ask; }
.pop__ask li { position: relative; padding-left: 26px; color: var(--navy); font-size: 14.5px; font-weight: 700; counter-increment: ask; }
.pop__ask li::before {
  content: counter(ask); position: absolute; left: 0; top: 4px; width: 19px; height: 19px; border-radius: 50%;
  background: var(--navy); color: #fff; font-family: var(--num); font-size: 12px; line-height: 19px; text-align: center;
}
.pop__ask small { font-size: 11.5px; font-weight: 400; }
.pop__foot { margin-top: 10px; color: var(--muted); font-size: 11.5px; }

@media (hover: hover) {
  .btn-tel, .bar__tel, .hd__tel, .btn-line, .bar__line { transition: filter .2s; }
  .btn-tel:hover, .bar__tel:hover, .hd__tel:hover, .btn-line:hover, .bar__line:hover { filter: brightness(1.08); }
  .tr__grid a:hover { background: var(--sky-50); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .bar__dot, .pop[open] { animation: none; }
}

/* ==========================================================
   PC（900px〜）
   ========================================================== */
@media (min-width: 900px) {
  :root { --bar-h: 112px; }
  body { font-size: 16px; }
  br.pc { display: inline; }
  br.sp { display: none; }
  .eyebrow { font-size: 15px; }
  .ttl { font-size: 38px; }

  .hd__in { height: 68px; }
  .hd__name { font-size: 19px; }
  .hd__name small { font-size: 11px; }
  .hd__tel { padding: 8px 22px 6px; gap: 9px; }
  .hd__tel small { display: block; font-size: 10.5px; }
  .hd__num { display: block; font-family: var(--num); font-size: 24px; font-weight: 600; }
  .hd__short { display: none; }

  .fv { display: grid; grid-template-columns: 1fr; }
  .fv__strip { padding: 7px; font-size: 13px; }
  .fv__in { display: grid; grid-template-columns: 46fr 54fr; }
  .fv__copy { align-self: center; padding: 56px 34px 60px max(40px, calc((100vw - 1040px) / 2)); }
  .fv__lead { font-size: 21px; }
  .fv__kw { margin: 14px 0 10px; font-size: 14px; }
  .fv__big { font-size: clamp(36px, 3.75vw, 58px); }
  .fv__sub { margin-top: 20px; font-size: 18px; }
  .fv__photo img { height: 100%; aspect-ratio: auto; min-height: 460px; object-position: 50% 50%; }
  .fv__seal { right: auto; left: -70px; top: auto; bottom: 34px; width: 158px; height: 158px; border-width: 4px; outline-width: 4px; }
  .fv__seal-a { font-size: 15px; }
  .fv__seal-b { font-size: 20px; }
  .fv__seal-c { font-size: 22px; }
  .fv__seal-c b { font-size: 60px; }
  .fv__seal-c sup { font-size: 11px; }
  .fv__facts { width: min(1040px, 100% - 40px); margin: 0 auto; }
  .fv__facts li { padding: 22px 0 18px; font-size: 17px; }
  .fv__facts li br { display: none; }
  .fv__facts b { font-size: 34px; }
  .fv__facts strong { font-size: 24px; }
  .fv__facts, .fv__note { position: relative; }
  .fv { background: linear-gradient(var(--blue), var(--blue)) top / 100% calc(100% - 150px) no-repeat #fff; }
  .fv__note { width: min(1040px, 100% - 40px); margin: 0 auto; padding: 0 0 26px; font-size: 12px; text-align: center; }

  .cv { padding: 62px 0 58px; }
  .cv__in { width: 640px; padding: 0 44px 28px; }
  .cv__say { font-size: 15px; }
  .cv__lead { font-size: 27px; margin-bottom: 20px; }
  .btn-tel { padding: 13px 20px 10px; }
  .btn-tel small { font-size: 13px; }
  .btn-tel__num { font-size: 44px; }
  .cv__chips li { font-size: 14px; }
  .cv--mid { padding: 80px 0 84px; }

  .tr { padding: 84px 0 66px; }
  .tr__lead { margin: 14px 0 34px; font-size: 16px; }
  .tr__lead br, .tr__foot br { display: none; }
  .tr__grid { grid-template-columns: repeat(9, 1fr); gap: 10px; }
  .tr__grid a { padding: 8px 2px 14px; font-size: 13px; }
  .tr__foot { margin-top: 26px; font-size: 15px; }

  .sf { padding: 66px 0 44px; }
  .sf::before { top: 24px; }
  .sf__ttl { font-size: 30px; }
  .sf__ttl span { display: inline; font-size: 1em; }
  .sf__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 36px; margin-top: 24px; }
  .sf__list li { padding: 20px 0 22px 52px; }
  .sf__list li::before { top: 22px; width: 40px; height: 40px; font-size: 22px; line-height: 36px; }
  .sf__list b { font-size: 19px; }
  .sf__list span { font-size: 14px; }
  .sf__note { margin-top: 0; font-size: 13px; }

  .ins { padding: 86px 0 70px; }
  .ins__ttl { font-size: 32px; }
  .ins__body { display: grid; grid-template-columns: 1fr 1fr; gap: 0 56px; align-items: center; margin-top: 40px; }
  .ins__text { margin: 0; font-size: 16px; line-height: 2; }
  .ins__cases { grid-template-columns: 1fr 1fr; gap: 14px; }
  .ins__cases dt { font-size: 14px; }
  .ins__cases dd small { font-size: 12px; }
  .ins__cases dd em { font-size: 28px; padding: 16px 0 14px; }
  .ins__badge { margin-top: 38px; font-size: 15px; }
  .ins__note { font-size: 12px; }

  .rt { padding: 96px 0 60px; }
  .rt__lead { margin-top: 24px; font-size: 16px; text-align: center; line-height: 2; }
  .rt__road { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 54px; padding: 78px 0 0; }
  .rt__road::before {
    left: calc(50% - 50vw); right: calc(50% - 50vw); bottom: auto; width: auto; height: 50px;
    background: var(--navy) linear-gradient(90deg, #fff 56%, transparent 56%) center / 34px 4px repeat-x;
  }
  .rt__road li { padding: 0 30px 0 0; }
  .rt__km { left: 0; top: -72px; width: 54px; height: 38px; font-size: 24px; line-height: 38px; }
  .rt__road h3 { font-size: 21px; }
  .rt__road p { font-size: 15px; }

  .rs { padding: 78px 0 92px; }
  .rs__grid { grid-template-columns: repeat(3, 1fr); gap: 26px; margin-top: 37px; }
  .rs__card { padding: 26px 26px 30px; }
  .rs__no { font-size: 76px; right: 18px; }
  .rs__card h3 { font-size: 22px; }
  .rs__card h3 + p { font-size: 15px; margin-top: 12px; }

  .vc { padding: 94px 0 80px; }
  .vc__list { gap: 20px; margin-top: 42px; }
  .vc__list li { margin-right: 120px; }
  .vc__list li:nth-child(even) { margin: 0 0 0 120px; }
  .vc__list p { padding: 16px 22px; font-size: 17px; }

  .fl { padding-top: 30px; }
  .fl__steps { grid-template-columns: repeat(4, 1fr); width: min(1040px, 100% - 40px); margin: 48px auto 0; }
  .fl__steps li { padding: 30px 22px 34px 30px; }
  .fl__steps li:not(:last-child)::after {
    left: auto; right: -15px; bottom: auto; top: 0; height: 100%;
    border-width: 0; width: 16px; background: var(--c); clip-path: polygon(0 0, 100% 50%, 0 100%);
  }
  .fl__steps h3 { margin-top: 9px; font-size: 22px; }
  .fl__steps p { margin-top: 4px; font-size: 14.5px; }

  .sc { padding: 90px 0 76px; }
  .sc .wrap { display: grid; grid-template-columns: 360px 1fr; gap: 0 60px; align-items: start; }
  .sc__lead { grid-column: 1; font-size: 15px; }
  .sc__tbl { grid-column: 2; grid-row: 1 / span 3; margin-top: 8px; max-width: none; }
  .sc__tbl th, .sc__tbl td { padding: 17px 0; font-size: 16px; }
  .sc__note { grid-column: 1; }

  .fq { padding: 80px 0 90px; }
  .fq__list { margin-top: 44px; }
  .fq__list summary { padding: 18px 50px 18px 18px; font-size: 17px; gap: 14px; }
  .fq__q { width: 30px; height: 30px; font-size: 16px; line-height: 29px; }
  .fq__list details p { padding: 0 24px 22px 62px; font-size: 15px; }

  .ar { padding: 96px 0 70px; }
  .ar__lead { margin: 14px 0 40px; font-size: 15px; }
  .ar__grid { columns: 2; column-gap: 64px; border-top: 0; }
  .ar__grid details { break-inside: avoid; border-top: 2px solid var(--navy); border-bottom: 0; padding-bottom: 6px; }
  .ar__grid h3 { font-size: 20px; }
  .ar__grid p { font-size: 14px; }

  .co { padding: 56px 0 60px; }
  .ft { padding: 40px 0 36px; }

  .bar__say { font-size: 14px; padding: 4px; }
  .bar__in { padding: 11px 0; }
  .bar__num { font-size: 34px; }
  .bar__tel small { font-size: 12px; }

  .pop { margin: auto; border-radius: 22px; padding: 30px 32px 26px; }
}
