/* 参考LPの視覚構成を、エースの既存コンテンツと実写素材へ適用。 */
:root {
  --c-navy: #183c62; --c-navy-light: #315e90;
  --c-red: #bd526f; --c-red-dark: #9d3d57;
  --c-yellow: #fff34e; --c-bg: #edf5fb; --c-bg-alt: #edf5fb;
  --c-border: #cfdeeb; --c-text: #283b4b; --c-text-soft: #4d5a68;
  --theme-blue: #2d70b5; --theme-sky: #64acdb; --theme-orange: #b95b13;
}
body { font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif; color: var(--c-text); }
a:hover { opacity: 1; }
a:focus-visible, button:focus-visible { outline: 3px solid #133c70; outline-offset: 5px; }
.container { max-width: 1040px; }
.section-title { margin-bottom: 52px; }
.section-title .eyebrow { color: var(--theme-blue); font-size: 16px; font-weight: 500; letter-spacing: .04em; margin-bottom: 4px; }
.section-title h2 { font-size: clamp(26px,3.1vw,40px); line-height: 1.55; letter-spacing: .02em; font-weight: 700; }
.section-title h2 .accent { color: inherit; border: 0; }
.section-title .sub { line-height: 1.9; }
.section-title::after { content: ""; display: block; width: 46px; height: 3px; background: var(--theme-sky); margin: 22px auto 0; }
.flow-divider { display: none; }
.effect { opacity: 1 !important; transform: none !important; animation: none !important; }

/* 白いヘッダーと、オレンジ色の相談導線。 */
.header { background: #fff; border-bottom: 1px solid #e0e8ef; backdrop-filter: none; }
.header-inner { min-height: 100px; padding: 14px 28px; max-width: 1180px; }
.header-logo { display: flex; align-items: center; flex-shrink: 0; }
/* ロゴの上下の余白だけを詰め、図柄と文字は全体を表示する。 */
.header-logo img { width: 280px; height: 72px; object-fit: cover; object-position: center; }
.header-tel { color: var(--c-navy); }
.header-tel i { color: #62a25e; }
.header-tel-num { font-size: 24px; letter-spacing: -.02em; }
.btn-contact-header { background: var(--theme-orange); border-radius: 5px; border-bottom: 4px solid #b76019; font-size: 16px; padding: 10px 18px; line-height: 1.4; }
.btn-contact-header small { display: block; font-size: 10px; }
.btn-contact-header i { font-size: 28px; }
.btn-contact-header:hover { background: #a34c0c; }
.desktop-side-contact { position: fixed; right: 0; top: 29%; z-index: 510; padding: 16px 12px; color: #fff; background: #3478bf; display: flex; flex-direction: column; align-items: center; gap: 12px; box-shadow: 0 2px 5px #163c6230; }
.desktop-side-contact span { writing-mode: vertical-rl; font-weight: 700; letter-spacing: .12em; }
.desktop-side-contact:hover { background: #225d9c; }

/* 青い実写のメインビジュアル、白い明朝、黄色の実績。 */
.hero-v4 { padding-top: 100px; overflow: hidden; background: #337fc8; }
.hero-v4-main { position: relative; min-height: 710px; max-width: 1600px; margin: auto; isolation: isolate; }
.hero-v4-copy { position: relative; z-index: 3; margin-left: max(36px,calc((100% - 1120px)/2)); padding: 44px 0 30px; width: 62%; }
.hero-v4-audience { display: inline-block; background: white; color: var(--c-navy); padding: 10px 30px; clip-path: polygon(5% 0,100% 0,95% 100%,0 100%); font-size: 23px; font-weight: 900; margin-bottom: 18px; }
body .hero-v4-title { color: white; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(68px,7.5vw,100px); font-weight: 900; line-height: 1.12; letter-spacing: -.045em; text-shadow: 0 3px 14px #164f7c44; transform: rotate(-3deg); transform-origin: left center; }
.hero-v4-title > span { display: block; white-space: nowrap; }
.hero-v4-title > span:nth-child(2) { padding-left: 60px; }
.hero-v4-amp { font-family: sans-serif; font-size: .44em; margin-left: 10px; }
.hero-v4-quality { font-size: .3em; letter-spacing: -.03em; }
.hero-v4-sub { font-size: 16px; line-height: 1.9; color: #fff; margin-top: 24px; font-weight: 700; }
.hero-v4-sub strong { color: var(--c-yellow); }
.hero-v4-highlight { color: var(--c-yellow); margin-top: 8px; display: flex; align-items: center; gap: 20px; }
.hero-v4-highlight > span { color: #fff; font-size: 15px; border-top: 1px solid #fff; border-bottom: 1px solid #fff; padding: 8px 0; }
.hero-v4-highlight strong { font-family: Arial,sans-serif; font-size: 84px; letter-spacing: -.055em; line-height: 1.15; }
.hero-v4-highlight small { font-size: 26px; margin-left: 7px; }
.hero-v4-action { width: 380px; margin-top: 12px; }
.hero-v4-action p { color: #fff; font-size: 13px; margin-bottom: 7px; text-align: center; font-weight: 700; }
.hero-v4-action a, .consult-mail { background: var(--theme-orange); color: #fff; border-bottom: 4px solid #b76019; border-radius: 5px; display: flex; align-items: center; justify-content: center; gap: 12px; font-weight: 800; padding: 16px; font-size: 18px; }
.hero-v4-action a:hover, .consult-mail:hover { background: #a34c0c; }
.hero-v4-visual { position: absolute; inset: 0; z-index: 0; }
.hero-v4-site { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.hero-v4-visual::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,rgba(32,105,185,.96) 0%,rgba(39,121,190,.9) 35%,rgba(50,132,196,.44) 68%,rgba(52,124,187,.12) 100%); }
.hero-v4-visual::after { content: ""; position: absolute; inset: 0; z-index: 1; background: #4a9add55; clip-path: polygon(0 68%,70% 0,90% 0,0 100%); }
.hero-v4-person { position: absolute; z-index: 2; width: 42%; max-width: 520px; right: 0; bottom: 0; }
.hero-v4-person img { width: 100%; display: block; }
.hero-v4-person p { position: absolute; bottom: 20px; right: 45px; color: var(--c-navy); background: white; padding: 10px 18px; font-size: 12px; line-height: 1.5; }
.hero-v4-person strong { font-size: 17px; }
.hero-v4-proof { max-width: 1140px; display: grid; grid-template-columns: repeat(4,1fr); margin: 0 auto; padding: 25px 20px; color: white; }
.hero-v4-proof li { text-align: center; border-right: 1px solid #ffffff50; line-height: 1.4; }
.hero-v4-proof li:last-child { border: 0; }
.hero-v4-proof li > span { display: block; font-size: 12px; }
.hero-v4-proof strong { font: 800 38px/1.3 Arial,sans-serif; color: var(--c-yellow); }
.hero-v4-proof small { font-size: 17px; }
.hero-v4-proof .hero-v4-note { display: inline; font-size: 10px; margin-left: 6px; }

/* 参考の繰り返し相談帯。リンクだけを置き、フォームは一つに保つ。 */
.consult-band { background: #fffde7; padding: 45px 24px 0; }
.consult-inner { position: relative; max-width: 1000px; margin: auto; min-height: 260px; display: flex; align-items: center; padding-bottom: 38px; }
.consult-copy { position: relative; z-index: 2; width: 75%; }
.consult-lead { display: inline-block; background: var(--c-yellow); color: var(--c-navy); font-size: 26px; line-height: 1.6; font-weight: 800; padding: 0 14px; transform: rotate(-2deg); }
.consult-free { color: var(--c-navy); font-size: 21px; margin: 16px 0 20px; }
.consult-free strong { font-size: 32px; }
.consult-links { display: flex; gap: 12px; align-items: stretch; }
.consult-phone { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px 18px; border-radius: 40px; background: #fff34e; color: var(--c-navy); min-width: 280px; font-size: 26px; font-weight: 800; line-height: 1.3; }
.consult-phone i { font-size: 22px; background: white; padding: 12px; border-radius: 50%; }
.consult-phone small { display: block; font-size: 10px; text-align: center; font-weight: 500; }
.consult-phone:hover { background: #f2e22b; }
.consult-mail { font-size: 15px; flex: 1; padding: 12px; }
.consult-inner > img { position: absolute; width: 245px; right: -30px; bottom: 0; }

/* 公共工事の写真は広く、白い余白で導入実績として見せる。 */
.pickup { background: white; color: var(--c-navy); padding: 75px 24px; }
.pickup p { max-width: 1000px; margin: 0 auto 35px; font-size: 23px; line-height: 1.8; }
.pickup p strong { color: var(--c-navy); background: linear-gradient(transparent 68%,#fff34e 68%); }
.pickup-images { display: grid; grid-template-columns: repeat(6,1fr); max-width: 1000px; gap: 14px; margin: auto; }
.pickup-images img { border-radius: 0; border: 0; width: 100%; height: 110px; object-fit: cover; }

/* 方眼、色枠、番号で悩みと解決策をつなぐ。 */
.trouble, .solution { background-color: #fbfcfd; background-image: linear-gradient(#dee6ed80 1px,transparent 1px),linear-gradient(90deg,#dee6ed80 1px,transparent 1px); background-size: 14px 14px; }
.trouble { padding: 75px 0; }
.trouble-card { max-width: 1000px; margin: auto; padding: 0; background: transparent; box-shadow: none; }
.tc-h2 { color: var(--c-navy); text-align: center; font-size: 34px; line-height: 1.5; font-family: "Yu Mincho",serif; margin-bottom: 35px; }
.tc-h2 .accent { color: var(--c-red); border: 0; }
.worry-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.worry { position: relative; width: auto; margin: 0; }
.worry-check { position: absolute; top: -16px; left: 18px; color: white; background: #bd526f; width: 34px; height: 34px; display: grid; place-items: center; z-index: 2; border-radius: 0; }
.worry:nth-child(2) .worry-check { background: #ce8b44; }
.worry:nth-child(3) .worry-check { background: #568f9a; }
.worry-circle { border: 2px solid #e9c4cf; background: white; border-radius: 0; padding: 32px 14px 0; display: flex; flex-direction: column; align-items: center; overflow: hidden; }
.worry:nth-child(2) .worry-circle { border-color: #efd9c3; }
.worry:nth-child(3) .worry-circle { border-color: #cadddf; }
.worry-txt { font-size: 18px; text-align: center; font-weight: 700; color: var(--c-navy); line-height: 1.6; }
.worry-img { width: 90%; margin: 12px auto 0; }
.reassure { padding: 65px 24px; background: #eaf4fc; }
.re-head { text-align: center; margin-bottom: 30px; }
.re-badge { display: none; }
.re-head h2 { font-size: 30px; line-height: 1.6; color: var(--c-navy); }
.re-head .accent { background: linear-gradient(transparent 65%,#fff34e 65%); }
.re-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.re-item { padding: 24px 20px; background: white; border-top: 4px solid var(--theme-sky); }
.re-q { display: block; color: var(--theme-blue); font-size: 16px; font-weight: 700; margin-bottom: 12px; }
.re-q::before { content: "Q. "; }
.re-a { font-size: 14px; line-height: 1.9; }
.re-a strong { color: var(--c-navy); }
.solution { padding: 80px 20px !important; }
.solution-grid { display: grid; grid-template-columns: 1fr; gap: 45px; max-width: 900px; }
.sol-card { --frame-color: #bd526f; display: grid; grid-template-columns: 42% 1fr; overflow: visible; padding: 24px; border-radius: 0; border: 2px solid color-mix(in srgb,var(--frame-color) 35%,white); box-shadow: none; background: white; }
.sol-card:nth-child(3n + 2) { --frame-color: #ce8b44; }
.sol-card:nth-child(3n) { --frame-color: #568f9a; }
.sol-card::before { height: 14px; width: 95px; right: auto; top: -14px; left: -16px; background: color-mix(in srgb,var(--frame-color) 35%,white); clip-path: polygon(0 0,100% 0,80% 100%,0 100%); }
.sol-card:hover { transform: none; box-shadow: none; border-color: var(--frame-color); }
.sol-num { top: -26px; left: 18px; right: auto; font: 800 48px/1 Arial,sans-serif; color: var(--frame-color); -webkit-text-stroke: 0; z-index: 4; }
.sol-problem { min-height: 220px; }
.sol-answer { background: white; padding: 18px 0 12px 30px; text-align: left; }
.sol-tag { border-radius: 0; background: color-mix(in srgb,var(--frame-color) 70%,#172f45); font-size: 11px; }
.sol-answer h3 { font-size: 23px; margin-bottom: 14px; }
.sol-answer h3 .em { color: var(--frame-color); background: none; padding: 0; }
.sol-answer p { font-size: 14px; }

/* 青い番号とアイコンを持つ白い理由カード。 */
.reasons { background: white; color: var(--c-navy); padding: 85px 20px; }
.reasons .section-title h2 { color: var(--c-navy); }
.reasons .section-title h2 .accent { color: inherit; border: 0; }
.reasons .section-title .eyebrow { color: var(--theme-blue); }
.reasons-grid { gap: 28px; }
.reason-card { border: 1px solid var(--c-border); border-top: 5px solid var(--theme-sky); border-radius: 0; padding: 30px 24px; box-shadow: none; background: #f6faff; }
.reason-card:hover { transform: none; }
.reason-num { position: static; flex-direction: row; background: none; color: var(--theme-blue); box-shadow: none; width: auto; height: auto; justify-content: flex-start; gap: 8px; }
.reason-num .big { font: 800 30px/1 Arial,sans-serif; }
.reason-icon { color: var(--theme-blue); font-size: 40px; margin: 20px 0; }
.reason-card h3 { font-size: 19px; }
.reason-card h3 .em { color: var(--theme-blue); }
.reason-card p strong { background: none; color: var(--c-navy); }

/* 費用比較は青い背景と色分けした図で見せる。 */
.cost-compare { background: #eaf4fc; padding: 85px 20px; }
.cost-compare h2 { font-family: "Yu Mincho", "Hiragino Mincho ProN",serif; font-weight: 900; }
.cost-compare h2 .accent { background: linear-gradient(transparent 70%,#fff34e 70%); }
.cs-label { font-family: inherit; }
.cs-bar { border-radius: 0; box-shadow: none; }
.cs-ace .cs-bar { border-color: var(--theme-blue); box-shadow: none; }
.cs-other .cs-core { background: #587285; }
.cs-ace .cs-core { background: #326f9c; }
.cs-ace .cs-core { border-color: #3478bf; border-radius: 0; }
.cs-margin { background: #975069; }
.cs-ribbon { background: #fff34e; color: var(--c-navy); border-radius: 0; box-shadow: none; }
.cs-ribbon em { font-family: Arial,sans-serif; }
.cs-label-brand { background: none; color: var(--theme-blue); }

/* 斜めの青い写真を使う、実績・人物・事例セクション。 */
.about, .works { position: relative; isolation: isolate; overflow: hidden; padding: 90px 20px; background: white; }
.about::before, .works::before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; width: min(22%,320px); height: 200px; background: linear-gradient(#3478bfc9,#3478bfc9),url('../img/scaffolding-front-20260910.jpg') center/cover; clip-path: polygon(0 0,100% 0,0 100%); }
.about::after, .works::after { content: ""; position: absolute; z-index: -1; top: 0; right: 0; width: min(22%,320px); height: 200px; background: linear-gradient(#3478bfc9,#3478bfc9),url('../img/ace-flow07.jpg') center/cover; clip-path: polygon(0 0,100% 0,100% 100%); }
.stat { background: white; border: 0; border-right: 1px solid var(--c-border); border-radius: 0; padding: 20px 12px; }
.stat:last-child { border: 0; }
.stat .num { font-family: Arial,sans-serif; color: var(--theme-blue); }
.about-body { background: white; border: 0; border-radius: 0; padding: 24px 0 0; grid-template-columns: 280px 1fr; gap: 50px; }
.about-img img { border-radius: 0; }
.about-text h3 { font-family: inherit; font-size: 24px; }
.about-text h3 .em { background: linear-gradient(transparent 70%,#fff34e 70%); }
.about-text p { font-size: 15px; }
.about-text strong { background: none; color: var(--c-navy); }
.works { background: #f8fafc; }
.google-review-bar { border-radius: 0; box-shadow: none; border: 0; border-top: 1px solid #d0deea; border-bottom: 1px solid #d0deea; background: white; }
.google-review-bar .rate { font-family: Arial,sans-serif; }
.google-review-bar .meta strong { color: var(--theme-blue); }
.works-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
.work-card { border: 0; border-radius: 0; box-shadow: 0 2px 7px #173c6210; }
.work-card:hover { transform: none; box-shadow: 0 2px 7px #173c6210; }
.work-card img { aspect-ratio: 16/9; }
.work-card .body { padding: 25px 28px; }
.work-card .price { font-family: Arial,sans-serif; font-size: 23px; color: var(--theme-blue); }
.work-card .name { font-size: 17px; }
.work-card .comment { font-size: 14px; display: block; overflow: visible; line-height: 1.9; }
.work-card .scope { font-size: 12px; background: #edf5fb; border-radius: 0; padding: 12px; }
.postscript { padding: 85px 24px; color: var(--c-navy); background: #edf5fb; }
.postscript .section-title h2 { color: var(--c-navy); }
.postscript-body { border: 0; border-radius: 0; padding: 40px 48px; background: white; position: relative; }
.postscript-body::before, .contact-inner::before { content: ""; position: absolute; left: -8px; top: -8px; width: 90px; height: 55px; border-left: 6px solid var(--theme-sky); border-top: 6px solid var(--theme-sky); }
.postscript-body p { opacity: 1; }
.postscript-body p strong { color: var(--c-navy); background: linear-gradient(transparent 70%,#fff34e 70%); }
.postscript-sign img { filter: none; }

/* 8ステップを読み進められる番号付きの流れ。 */
.flow-section { background: white; padding: 85px 24px; }
.flow-list { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; max-width: 1000px; }
.flow-step { display: block; padding: 0; border-top: 2px solid #9abbda; }
.flow-step:not(:last-child)::before { display: none; }
.flow-marker { background: white; color: var(--theme-blue); width: auto; height: auto; border-radius: 0; box-shadow: none; justify-content: flex-start; gap: 8px; margin-top: 16px; font-family: Arial,sans-serif; }
.flow-marker::before { content: "STEP"; font-size: 12px; }
.flow-marker .flow-num { font-size: 28px; }
.flow-card { display: block; padding: 16px 0 8px; background: white; border: 0; box-shadow: none; }
.flow-card:hover { box-shadow: none; transform: none; }
.flow-card-icon { border: 0; color: var(--theme-blue); background: #edf5fb; width: 72px; height: 72px; margin-bottom: 18px; border-radius: 50%; font-size: 30px; }
.flow-card-head { gap: 8px; }
.flow-card-head h3 { font-size: 20px; }
.flow-time { background: #edf5fb; color: var(--theme-blue); border-radius: 0; white-space: normal; }
.flow-card-body p { font-size: 14px; line-height: 1.9; }
.flow-card-body p strong { background: none; }

/* 角の青いあしらい、薄青の入力欄。 */
.contact { background: #eaf0f6; padding: 85px 24px 110px; }
.contact-inner { max-width: 900px; background: white; padding: 55px 80px; border: 0; border-radius: 0; box-shadow: none; }
.contact-head .eyebrow { background: transparent; color: var(--theme-blue); font-size: 16px; letter-spacing: .04em; font-weight: 500; padding: 0; }
.contact-head h2 { font-size: 33px; }
.contact-head h2 .em { color: var(--theme-blue); }
.contact-benefits { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin: 30px 0 40px; border-top: 1px solid var(--c-border); border-bottom: 1px solid var(--c-border); }
.contact-benefit { background: white; border: 0; border-right: 1px solid var(--c-border); border-radius: 0; padding: 20px 8px; }
.contact-benefit:last-child { border: 0; }
.contact-benefit i { color: var(--theme-blue); }
.contact-benefit .t { font-size: 12px; }
.form-row { margin-bottom: 26px; }
.form-row input[type="text"], .form-row input[type="tel"], .form-row input[type="email"] { background: #e5eff6; border: 1px solid #e5eff6; border-radius: 0; font-size: 16px; }
.form-row input:focus { border-color: var(--theme-blue); box-shadow: 0 0 0 2px #3478bf30; }
.form-check { gap: 8px 20px; }
.form-check label { background: white; border: 0; border-radius: 0; padding: 8px 0; min-height: 44px; }
.form-check input[type="checkbox"] { accent-color: var(--theme-blue); }
.req { background: #2d70b5; border-radius: 2px; }
.form-submit { background: var(--theme-orange); border-radius: 5px; box-shadow: none; border-bottom: 4px solid #b76019; letter-spacing: .02em; }
.form-submit:hover { background: #a34c0c; box-shadow: none; transform: none; }
.form-guarantee i { color: var(--theme-blue); }
.footer { background: #eaf0f6; color: var(--c-navy); padding: 50px 24px 105px; }
.footer-logo { display: inline-block; background: var(--c-navy); padding: 14px 20px; }
.footer a { color: var(--c-navy); }
.footer-info, .footer-nav, .footer-copy { opacity: 1; }
.sp-sticky-cta { box-shadow: 0 -2px 8px #14335420; }
.sp-sticky-cta a { border-radius: 4px; }
.sp-sticky-cta .tel-btn { background: #fff34e; color: var(--c-navy); }
.sp-sticky-cta .form-btn { background: var(--theme-orange); }
.to-top { background: var(--theme-blue); color: white; }
#contact { scroll-margin-top: 100px; }

@media (min-width:768px) and (max-width:1050px) {
  .header-logo img { width: 240px; }
  .header-tel-num { font-size: 20px; }
  .hero-v4-copy { margin-left: 30px; width: 65%; }
  .hero-v4-title { font-size: 78px; }
  .hero-v4-quality { font-size: .26em; }
  .hero-v4-person { width: 43%; }
  .hero-v4-sub { font-size: 14px; }
  .consult-copy { width: 76%; }
  .consult-links { flex-direction: column; max-width: 420px; }
  .consult-inner > img { right: 0; width: 230px; }
}
@media (max-width:767px) {
  .header-inner { min-height: 70px; padding: 8px 14px; }
  .header-logo img { width: 220px; height: 54px; }
  .header-actions, .desktop-side-contact { display: none; }
  .hero-v4 { padding-top: 70px; }
  .hero-v4-main { min-height: 695px; }
  .hero-v4-copy { width: auto; margin: 0; padding: 25px 18px 250px; }
  .hero-v4-audience { font-size: 16px; padding: 8px 22px; margin-bottom: 18px; }
  body .hero-v4-title { font-size: clamp(50px,14.8vw,74px); line-height: 1.15; }
  .hero-v4-title > span:nth-child(2) { padding-left: 18px; }
  .hero-v4-quality { font-size: .31em; }
  .hero-v4-sub { font-size: 13px; margin-top: 20px; line-height: 1.8; }
  .hero-v4-highlight { margin-top: 8px; gap: 15px; }
  .hero-v4-highlight strong { font-size: 64px; }
  .hero-v4-highlight small { font-size: 21px; }
  .hero-v4-highlight > span { font-size: 12px; }
  .hero-v4-action { width: 100%; margin-top: 10px; }
  .hero-v4-action a { padding: 13px; font-size: 16px; }
  .hero-v4-action p { font-size: 12px; }
  .hero-v4-site { object-position: 50% 60%; }
  .hero-v4-visual::before { background: linear-gradient(180deg,#337ecaf5 0%,#337ecae8 48%,#337eca40 76%,#337eca10 100%); }
  .hero-v4-person { width: 60%; max-width: 260px; right: 0; }
  .hero-v4-person p { bottom: 14px; right: 15px; padding: 7px 12px; font-size: 10px; }
  .hero-v4-person strong { font-size: 14px; }
  .hero-v4-proof { padding: 18px 8px; }
  .hero-v4-proof li > span { font-size: 8px; }
  .hero-v4-proof strong { font-size: 24px; }
  .hero-v4-proof small { font-size: 10px; }
  .hero-v4-proof .hero-v4-note { display: block; margin: 0; font-size: 8px; }
  .consult-band { padding: 30px 20px 0; }
  .consult-inner { min-height: 0; padding-bottom: 30px; }
  .consult-copy { width: 100%; }
  .consult-lead { font-size: 18px; padding: 2px 8px; }
  .consult-free { font-size: 16px; margin: 14px 0 18px; }
  .consult-free strong { font-size: 24px; }
  .consult-links { flex-direction: column; gap: 10px; }
  .consult-phone { min-width: 0; font-size: 26px; padding: 10px; }
  .consult-mail { font-size: 15px; min-height: 55px; }
  .consult-inner > img { display: none; }
  .pickup { padding: 48px 20px; }
  .pickup p { font-size: 18px; margin-bottom: 25px; }
  .pickup-images { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
  .pickup-images img { width: 100%; height: 85px; }
  .trouble { padding: 55px 0; }
  .tc-h2 { font-size: 29px; margin-bottom: 28px; }
  .worry-list { grid-template-columns: 1fr; gap: 28px; max-width: 330px; margin: auto; }
  .worry-circle { padding-top: 26px; }
  .worry-img { width: 72%; }
  .reassure { padding: 45px 20px; }
  .re-head h2 { font-size: 25px; }
  .re-grid { grid-template-columns: 1fr; gap: 14px; }
  .re-item { padding: 20px; }
  .solution { padding: 55px 0 !important; }
  .section-title { margin-bottom: 38px; }
  .section-title h2 { font-size: 26px; line-height: 1.55; }
  .section-title .eyebrow { font-size: 13px; }
  .section-title .sub { font-size: 14px; }
  .solution-grid { gap: 42px; }
  .sol-card { display: flex; flex-direction: column; padding: 20px; }
  .sol-num { font-size: 41px; top: -23px; left: 15px; }
  .sol-problem { min-height: 0; aspect-ratio: 16/10; }
  .sol-answer { padding: 20px 0 0; }
  .sol-answer h3 { font-size: 21px; }
  .reasons, .about, .works, .cost-compare, .postscript, .flow-section { padding: 55px 0; }
  .reasons-grid { grid-template-columns: 1fr; gap: 22px; }
  .reason-card { padding: 22px; }
  .reason-icon { margin: 14px 0; }
  .reason-card h3 { font-size: 20px; }
  .about::before, .about::after, .works::before, .works::after { height: 80px; width: 19%; }
  .stats-grid { gap: 12px; grid-template-columns: 1fr 1fr; margin-bottom: 30px; }
  .stat { border: 1px solid var(--c-border); padding: 20px 5px; }
  .stat:last-child { border: 1px solid var(--c-border); }
  .stat .num { font-size: 34px; }
  .stat .label { font-size: 11px; }
  .about-body { grid-template-columns: 1fr; gap: 24px; }
  .about-img { max-width: 260px; margin: auto; }
  .about-text h3 { font-size: 22px; }
  .google-review-bar { gap: 14px; padding: 20px; margin-bottom: 25px; }
  .works-grid { grid-template-columns: 1fr; gap: 28px; }
  .work-card .body { padding: 22px; }
  .work-card .price { font-size: 23px; }
  .postscript-body { padding: 30px 24px; }
  .flow-list { grid-template-columns: 1fr; gap: 25px; }
  .flow-card { display: grid; grid-template-columns: 55px 1fr; gap: 16px; }
  .flow-card-icon { width: 55px; height: 55px; font-size: 23px; }
  .flow-card-head h3 { font-size: 19px; }
  .contact { padding: 55px 20px 70px; }
  .contact-inner { padding: 35px 20px; }
  .contact-head h2 { font-size: 26px; }
  .contact-benefits { grid-template-columns: repeat(3,1fr); margin: 25px 0 30px; }
  .contact-benefit { padding: 14px 3px; }
  .contact-benefit i { font-size: 20px; }
  .contact-benefit .t { font-size: 10px; }
  .form-check { gap: 5px 15px; }
  .form-submit { padding: 17px 8px; font-size: 16px; }
  .form-note { font-size: 10px; margin-left: 0; }
  .form-guarantee { font-size: 10px; }
  .footer { padding: 40px 20px 105px; }
  .sp-sticky-cta { padding-bottom: max(8px,env(safe-area-inset-bottom)); }
  #contact { scroll-margin-top: 70px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
