@charset "UTF-8";
/* Webフォントは index.html の head で読み込む（@import だと読み込みが遅れるため、2026-10-28） */
/* ==========================================================
   トップページ専用CSS
   - すべて .p-top 配下にスコープ（既存サイトに影響させない）
   - スマホファースト：基本はSP、PCは min-width で上書き

   【サイズの単位】
   カンプ（幅375px）の 1px を --top-u として、寸法はすべて
   calc(カンプのpx値 * var(--top-u)) で書く。
   → .p-top の幅に比例して拡大縮小するので、320px〜430px のどのスマホでも
     カンプと同じ見た目（折り返し位置・重なり）になる。
   - line-height は単位なし、letter-spacing は em（カンプの%÷100）
   - 枠線（border）の太さだけは px 固定。ブラウザが物理ピクセル単位に切り捨てるため、
     比例させると幅によって 2px → 1.5px のように細くなる
   - 縦に並べるだけの箇所は flex を使わず、通常の並び＋margin で間隔をとる
   ========================================================== */

/* ---------- トップページ用ヘッダー ----------
   main（.p-top）の外に置くため、.p-top と同じ考え方で .p-top-header 配下にスコープする。
   サイズは .p-top と同じく幅375基準で比例（--top-u をここでも定義） */
.p-top-header {
  --top-u: calc(100cqw / 375);
  container-type: inline-size;
  max-width: 500px;
  margin-inline: auto;
  background-color: #fff;
}
.p-top-header,
.p-top-header *,
.p-top-header *::before,
.p-top-header *::after {
  box-sizing: border-box;
}
.p-top-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(57 * var(--top-u));
  padding: 0 calc(16 * var(--top-u));
}
/* セカンドビューから（SPはFVの写真が画面の上へ抜けたら）：ヘッダーを画面上部に固定し、上から出す（.is-fixed はJSが付ける）。
   PC・タブレットは768の中で上書き */
.p-top-header.is-fixed {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 20;
  animation: p-top-header-fixed-in 0.4s ease-out;
}
.p-top-header.is-fixed .p-top-header__inner {
  box-shadow: 0 calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08);
}
/* 固定したヘッダーは流れから抜けるので、その高さ（57）の分だけ本文の先頭に空きを入れてずれを防ぐ。
   .p-top の中の要素（::before）にすると、--top-u がヘッダーと同じ幅（.p-top の幅）の基準になる */
.p-top-header.is-fixed + .p-top::before {
  content: "";
  display: block;
  height: calc(57 * var(--top-u));
}
@keyframes p-top-header-fixed-in {
  from {
    transform: translateY(-100%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-top-header.is-fixed {
    animation: none;
  }
}
/* ページ内リンクで移動したとき、見出しが固定ヘッダー（57）の下に隠れないようにする（PCは768の中で上書き） */
.p-top [id] {
  scroll-margin-top: calc(67 * var(--top-u));
}
.p-top-header__logo {
  display: block;
  line-height: 0;
}
.p-top-header__logo img {
  width: calc(138.19 * var(--top-u));
  height: auto;
}
/* ハンバーガー：緑の丸に白い2本線（画像を使わずCSSで描く） */
.p-top-header__menu {
  position: relative;
  width: calc(50 * var(--top-u));
  height: calc(50 * var(--top-u));
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: #10ad5e;
  cursor: pointer;
}
/* PCだけ表示するメニュー・MENUの文字・右端の固定CTA */
.p-top-header__nav,
.p-top-header__side,
.p-top-header__menu-text {
  display: none;
}
.p-top-header__menu:focus-visible {
  outline: 2px solid #333;
  outline-offset: 2px;
}
.p-top-header__menu-line::before,
.p-top-header__menu-line::after {
  content: "";
  position: absolute;
  left: calc(12 * var(--top-u));
  width: calc(26 * var(--top-u));
  height: 2px;
  border-radius: 1px;
  background-color: #fff;
}
/* 線の位置はFigmaの表示から実測（書き出しコードの数値は見た目と合わないため） */
.p-top-header__menu-line::before {
  top: calc(21.5 * var(--top-u) - 1px);
}
.p-top-header__menu-line::after {
  top: calc(29.5 * var(--top-u) - 1px);
}

/* ---------- ドロワーメニュー（MENUボタンで開く <dialog>） ----------
   画面いっぱい（横幅・高さとも）に上から出す。
   SPカンプ（node 41:2134）：メニュー2列、その下にお問い合わせのカード（LINE・フォーム・電話の3つ）、SNSとコピーライト。
   PCカンプ（node 37:1894）：左にメニュー2列＋お問い合わせ、右に写真（768の中で上書き） */
.p-top-header__drawer {
  position: fixed;
  inset: 0 0 auto;
  isolation: isolate;
  width: 100%;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: auto;
  border: 0;
  /* 背景の模様：カンプどおり、背景色の上に葉の影の写真を焼き込み（color-burn）で重ねる（ほとんど見えない程度）。
     SPはカンプの置き方（左に482ずらし、高さ892.52）。中身がスクロールしても途切れないよう、写真は中身と一緒に動き（local）、
     中身がそれより長いときは中身の高さまで比率を保って広げる */
  background: url("../images/top-renewal/proof-bg.webp") calc(-482.05 * var(--top-u)) 0 / auto max(calc(892.52 * var(--top-u)), 100%) no-repeat local, #f4fbf5;
  background-blend-mode: color-burn;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
}
/* 開く：パネルが上から降りてきて、止まる直前から中身がふわっと出る。
   閉じる（.is-closing。JSが付け、アニメーションが終わったら閉じる）：×が回って中身が上へ消え、パネルが上へ抜ける */
.p-top-header__drawer[open] {
  animation: p-top-header-drawer-in 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.p-top-header__drawer[open] :is(.p-top-header__drawer-head, .p-top-header__drawer-body, .p-top-header__drawer-photo) {
  animation: p-top-header-drawer-fade-in 0.4s 0.25s ease-out backwards;
}
.p-top-header__drawer[open] .p-top-header__drawer-body {
  animation-delay: 0.32s;
}
.p-top-header__drawer[open] .p-top-header__drawer-photo {
  animation-delay: 0.4s;
}
.p-top-header__drawer.is-closing {
  animation: p-top-header-drawer-out 0.45s 0.18s cubic-bezier(0.7, 0, 0.84, 0) forwards;
}
.p-top-header__drawer.is-closing :is(.p-top-header__drawer-head, .p-top-header__drawer-body, .p-top-header__drawer-photo) {
  animation: p-top-header-drawer-fade-out 0.22s ease-in forwards;
}
.p-top-header__drawer-close img {
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.p-top-header__drawer.is-closing .p-top-header__drawer-close img {
  transform: rotate(90deg) scale(0.8);
}
.p-top-header__drawer[open]::backdrop {
  animation: p-top-header-drawer-backdrop 0.4s ease-out;
}
.p-top-header__drawer.is-closing::backdrop {
  animation: p-top-header-drawer-backdrop 0.45s 0.18s ease-in reverse forwards;
}
@keyframes p-top-header-drawer-in {
  from {
    transform: translateY(-100%);
  }
}
@keyframes p-top-header-drawer-out {
  to {
    transform: translateY(-100%);
  }
}
@keyframes p-top-header-drawer-fade-in {
  from {
    opacity: 0;
    transform: translateY(calc(16 * var(--top-u)));
  }
}
@keyframes p-top-header-drawer-fade-out {
  to {
    opacity: 0;
    transform: translateY(calc(-16 * var(--top-u)));
  }
}
@keyframes p-top-header-drawer-backdrop {
  from {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-top-header__drawer[open],
  .p-top-header__drawer[open] *,
  .p-top-header__drawer[open]::backdrop {
    animation: none !important;
    transition: none !important;
  }
}
.p-top-header__drawer::backdrop {
  background-color: rgba(51, 51, 51, 0.4);
}
/* 既存サイトのリセットの代わり（詳細度0にして、各クラスの指定を優先させる） */
:where(.p-top-header__drawer) ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
:where(.p-top-header__drawer) p {
  margin: 0;
}
:where(.p-top-header__drawer) a {
  color: inherit;
  text-decoration: none;
}
/* 上の段はページのヘッダーと同じ高さ・位置（ロゴとMENUの位置にロゴとCLOSEが来る） */
.p-top-header__drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(57 * var(--top-u));
  padding: 0 calc(16 * var(--top-u));
}
.p-top-header__drawer-logo {
  display: block;
  line-height: 0;
}
.p-top-header__drawer-logo img {
  width: calc(138.19 * var(--top-u));
  height: auto;
}
/* CLOSE：緑の枠の中に×と文字 */
.p-top-header__drawer-close {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: calc(5.29 * var(--top-u));
  width: calc(41.66 * var(--top-u));
  height: calc(41 * var(--top-u));
  margin: 0;
  padding: calc(7.94 * var(--top-u));
  border: 1px solid rgba(36, 155, 69, 0.6);
  border-radius: calc(7.94 * var(--top-u));
  background: none;
  color: #249b45;
  font-family: "LINE Seed JP", sans-serif;
  font-size: max(var(--top-fmin, 0px), calc(7.94 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1;
  cursor: pointer;
}
/* ×は線の端の丸みの分だけ枠より大きい（カンプの×の枠は19.93×10.94） */
.p-top-header__drawer-close img {
  width: calc(21.63 * var(--top-u));
  height: calc(12.93 * var(--top-u));
  margin: calc(-0.99 * var(--top-u)) calc(-0.85 * var(--top-u));
}
.p-top-header__drawer-close:focus-visible,
.p-top-header__drawer a:focus-visible {
  outline: 2px solid #333;
  outline-offset: 2px;
}
.p-top-header__drawer-body {
  display: grid;
  gap: calc(16 * var(--top-u));
  padding: calc(24 * var(--top-u)) calc(20 * var(--top-u)) 0;
}
/* メニューは2列（同じ幅） */
.p-top-header__drawer-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}
.p-top-header__drawer-col {
  display: grid;
  gap: calc(8 * var(--top-u));
}
.p-top-header__drawer-link {
  display: block;
  padding: calc(8 * var(--top-u)) 0;
  color: #249b45;
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
}
.p-top-header__drawer-sub-link {
  display: block;
  padding: calc(8 * var(--top-u)) 0;
  color: #929292;
  font-size: max(var(--top-fmin, 0px), calc(13 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
}
/* 施工事例・人工芝コラムの下の階層は「／」で区切って横に並べる。
   SPはカンプどおり「／」も1つの項目として折り返す（行頭に来ることがある）。PC・タブレットは「／」を行末に残す */
.p-top-header__drawer-sub--inline {
  display: flex;
  flex-wrap: wrap;
}
.p-top-header__drawer-sub--inline li {
  display: contents;
}
.p-top-header__drawer-sub--inline li:not(:last-child)::after {
  content: "／";
  padding: calc(8 * var(--top-u)) 0;
  color: #929292;
  font-size: max(var(--top-fmin, 0px), calc(13 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
}
/* お問い合わせ：白いカード */
.p-top-header__drawer-contact {
  display: grid;
  gap: calc(16 * var(--top-u));
  padding: calc(24 * var(--top-u)) calc(16 * var(--top-u));
  border-radius: calc(16 * var(--top-u));
  background-color: #fff;
}
.p-top-header__drawer-label {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--top-u));
  color: rgba(36, 155, 69, 0.24);
  font-family: "LINE Seed JP", sans-serif;
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
}
.p-top-header__drawer-label::after {
  content: "";
  flex: 1;
  border-top: 1px solid rgba(36, 155, 69, 0.24);
}
.p-top-header__drawer-label + .p-top-header__drawer-heading {
  margin-top: calc(-8 * var(--top-u));
}
.p-top-header__drawer-heading {
  color: #249b45;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: max(var(--top-fmin, 0px), calc(17 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
}
.p-top-header__drawer-contact-list {
  display: flex;
  gap: calc(12 * var(--top-u));
}
.p-top-header__drawer-contact-list li {
  flex: 1;
}
.p-top-header__drawer-contact-link {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--top-u));
  height: 100%;
  padding: calc(16 * var(--top-u)) calc(12 * var(--top-u));
  border: 1px solid rgba(36, 155, 69, 0.6);
  border-radius: calc(8 * var(--top-u));
  background-color: #fff;
  filter: drop-shadow(0 calc(6 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08));
  color: #249b45;
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: normal;
}
.p-top-header__drawer-contact-link img {
  width: calc(36 * var(--top-u));
  height: calc(36 * var(--top-u));
  object-fit: contain;
}
/* LINEのアイコンは36の枠の中に31.3で置く */
.p-top-header__drawer-contact-link--line img {
  width: calc(31.3 * var(--top-u));
  height: calc(31.3 * var(--top-u));
  margin: calc(2.35 * var(--top-u));
}
.p-top-header__drawer-contact-link--tel img {
  width: calc(38.77 * var(--top-u));
}
.p-top-header__drawer-contact-link:not(.p-top-header__drawer-contact-link--tel)::after {
  content: "";
  position: absolute;
  right: calc(9 * var(--top-u));
  bottom: calc(9.9 * var(--top-u));
  width: calc(12 * var(--top-u));
  height: calc(12 * var(--top-u));
  background: url("../images/top-renewal/icon-arrow-gray.svg") center / contain no-repeat;
}
/* 電話番号の枠はPC・タブレットだけ（SPは電話のボタン） */
.p-top-header__drawer-tel {
  display: none;
  justify-items: center;
  align-content: center;
  gap: calc(8 * var(--top-u));
  min-height: calc(96 * var(--top-u));
  padding: calc(16 * var(--top-u)) calc(12 * var(--top-u));
  border-radius: calc(8 * var(--top-u));
  background-color: rgba(71, 186, 85, 0.06);
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 700;
  line-height: 1;
}
.p-top-header__drawer-tel-num {
  display: flex;
  align-items: center;
  color: #249b45;
  font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top-header__drawer-tel-num img {
  width: calc(38.77 * var(--top-u));
  height: calc(36 * var(--top-u));
}
.p-top-header__drawer-tel-time {
  color: #47ba55;
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
}
/* SPはSNSを上、コピーライトを下に中央そろえ（HTMLはコピーライトが先） */
.p-top-header__drawer-foot {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: calc(16 * var(--top-u));
  padding: calc(24 * var(--top-u)) 0 calc(32 * var(--top-u));
}
.p-top-header__drawer-copy {
  color: #929292;
  font-family: "LINE Seed JP", sans-serif;
  font-size: max(var(--top-fmin, 0px), calc(12 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1.6;
}
.p-top-header__drawer-copy small {
  font-size: inherit;
}
/* SNS：白いアイコン画像を形として使い、色を付ける */
.p-top-header__drawer-sns {
  display: flex;
  gap: calc(22 * var(--top-u));
}
.p-top-header__drawer-sns-link {
  display: block;
  width: calc(22 * var(--top-u));
  height: calc(22 * var(--top-u));
  background-color: #333;
  -webkit-mask: var(--top-sns) center / contain no-repeat;
  mask: var(--top-sns) center / contain no-repeat;
}
.p-top-header__drawer-sns-link--x {
  --top-sns: url("../images/top-renewal/icon-x.webp");
}
.p-top-header__drawer-sns-link--instagram {
  --top-sns: url("../images/top-renewal/icon-instagram.svg");
}
.p-top-header__drawer-sns-link--facebook {
  --top-sns: url("../images/top-renewal/icon-facebook.webp");
}
.p-top-header__drawer-photo {
  display: none;
}
@media (hover: hover) {
  .p-top-header__drawer a:hover,
  .p-top-header__drawer-close:hover {
    opacity: 0.7;
  }
}

/* ---------- 変数（Figmaの変数に合わせて更新） ---------- */
.p-top {
  --top-u: calc(100cqw / 375);
  /* FVを画面内に収める計算用。既存サイトに組み込むときは、ヘッダーの実際の高さに合わせて変更する */
  --top-header-h: calc(57 * var(--top-u));
  /* 固定CTAの高さ（上下の余白9＋ボタン48＋iPhoneのホームバー分） */
  --top-fixed-cta-h: calc(66 * var(--top-u) + env(safe-area-inset-bottom, 0px));
  --top-color-main: #000;
  --top-color-text: #333;
  --top-color-white: #fff;
  --top-color-red: #ff4545;
  --top-color-red-dark: #e10101;
  --top-color-line: #06c755;
  --top-color-green: #47ba55;
  --top-color-orange: #f90;
  --top-color-orange-light: #ffe4ba;
  --top-color-gray: #929292;
  --top-color-marker: #ffe1e1;
  --top-color-cream: #fff4e3;
  --top-color-gray-light: #d7d7d7;
  --top-color-gray-bg: #f7f7f7;
  --top-color-green-dark: #249b45;
  --top-color-green-deep: #158530;
  --top-color-yellow: #ffea4b;
  --top-color-mail: #0099f8;
  --top-color-comic-bg: #111;
  --top-color-pink-bg: #feefef;
  --top-color-sky-bg: #f4fbff;
  --top-color-yellow-light: #fdfbaf;
  --top-color-gray-border: #e0e0e0;
  --top-color-gray-pale: #f0f0f0;
  --top-color-qa-blue: #6bafe3;
  --top-color-qa-pill: #69a5e3;
  --top-color-qa-line: #9bcaf5;
  --top-color-qa-shadow: #9acaf4;
  --top-color-green-proof: #109131;
  --top-color-lemon: #fefbc3;
  --top-color-green-pale: #eef7f1;
  --top-color-gray-bg-light: #f8f8f8;
  --top-color-green-mint: #eefff3;
  --top-color-green-deeper: #006e00;
  --top-gradient-red: linear-gradient(245deg, #ff4545 4.42%, #e10000 43.95%, #ff4545 90.07%);
  --top-font-base: "Noto Sans JP", sans-serif;
  --top-font-mincho: "Shippori Mincho", serif;
  --top-font-maru: "Zen Maru Gothic", sans-serif;
  --top-font-kaku: "Zen Kaku Gothic Antique", sans-serif;
  --top-font-en: "Inter", sans-serif;
  --top-font-num: "LINE Seed JP", sans-serif;
}

/* ---------- 土台 ---------- */
/* 100cqw（--top-u の基準）を .p-top の幅にするためのコンテナ指定。
   スクロールバーの幅を含まないので、PCで狭いウィンドウにしても横にはみ出さない */
.p-top {
  container-type: inline-size;
  /* PCカンプが届くまでの仮：タブレット・PCではSPの見た目を中央に置く */
  max-width: 500px;
  margin-inline: auto;
  color: var(--top-color-text);
  font-family: var(--top-font-base);
}

/* ---------- スコープ内リセット ---------- */
.p-top,
.p-top *,
.p-top *::before,
.p-top *::after {
  box-sizing: border-box;
}
.p-top :where(h1, h2, h3, h4, p, ul, ol, figure) {
  margin: 0;
  padding: 0;
}
.p-top :where(ul, ol) {
  list-style: none;
}
.p-top :where(img) {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
.p-top [hidden] {
  display: none !important;
}
/* SPだけ・PCだけ表示する文字や改行（PCの切り替えは下の @media (min-width: 768px)） */
.p-top__pc-only {
  display: none;
}
.p-top__visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ---------- スライダー共通（概算費用・5つの証拠・施工事例） ---------- */
/* 横一列に並べ、--top-slider-index（JSが設定）の枚数ぶん左へずらす。
   --top-slider-pad：カードの影が切れないよう内側に取る余白（スライド同士の間隔はその2倍） */
.p-top [data-top-slider-track] {
  --top-slider-pad: 0px;
  display: flex;
  align-items: flex-start;
  gap: calc(2 * var(--top-slider-pad));
  overflow: hidden;
  margin: calc(-1 * var(--top-slider-pad));
  padding: var(--top-slider-pad);
  /* 横のスワイプはJSで扱い、縦のスクロールはブラウザに任せる */
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}
.p-top [data-top-slider-track] img {
  -webkit-user-drag: none;
}
.p-top [data-top-slider-track] > * {
  flex: 0 0 100%;
  min-width: 0;
  /* --top-slider-drag：スワイプ中に指へ追従させる量 */
  transform: translateX(calc(var(--top-slider-index, 0) * (-100% - 2 * var(--top-slider-pad)) + var(--top-slider-drag, 0px)));
  transition: transform 0.6s ease, opacity 0.6s ease;
}
.p-top [data-top-slider-track].is-jump > * {
  transition: none;
}
@media (prefers-reduced-motion: reduce) {
  .p-top [data-top-slider-track] > * {
    transition: none;
  }
}

/* ---------- FV ---------- */
.p-top__hero {
  padding: calc(8 * var(--top-u)) calc(6.5 * var(--top-u));
  background-color: var(--top-color-white);
}
/* SP：ヘッダーの下から固定CTAの上までにFVが収まる高さにする（上下の余白8ずつを引く）。
   svh はアドレスバーなどが表示された状態の画面の高さ。縦書きのキャッチ（約374px）が収まるよう、極端に低い画面では400を下限にする */
.p-top__hero-inner {
  position: relative;
  overflow: hidden;
  height: calc(100vh - var(--top-header-h) - var(--top-fixed-cta-h) - 16 * var(--top-u));
  height: calc(100svh - var(--top-header-h) - var(--top-fixed-cta-h) - 16 * var(--top-u));
  min-height: calc(400 * var(--top-u));
  border-radius: calc(8 * var(--top-u));
}
.p-top__hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 「ふわふわ人工芝で楽」を縦に積み、「しい日々。」を最終行の右へ続けるL字組み */
.p-top__hero-catch {
  position: absolute;
  bottom: calc(28 * var(--top-u));
  left: calc(32 * var(--top-u));
  display: flex;
  align-items: flex-end;
  gap: calc(4 * var(--top-u));
  color: var(--top-color-white);
  font-family: var(--top-font-mincho);
  font-size: max(var(--top-fmin, 0px), calc(32 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.2;
}
.p-top__hero-catch-v {
  width: 1em;
  text-align: center;
  word-break: break-all;
  font-feature-settings: "vert" 1;
}
.p-top__hero-catch-h {
  letter-spacing: 0.04em;
  white-space: nowrap;
}
/* 1文字ずつふわっと表示。始まるまでは both で透明のまま（最初に一瞬見えないように） */
.p-top__hero-char {
  display: inline-block;
  animation: p-top-hero-fuwa 0.9s ease-out both;
  animation-delay: calc(0.4s + var(--top-char-i) * 0.12s);
}
@media (prefers-reduced-motion: reduce) {
  .p-top__hero-char {
    animation: none;
  }
}
@keyframes p-top-hero-fuwa {
  0% {
    opacity: 0;
    filter: blur(6px);
    transform: translateY(0.3em);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: none;
  }
}

/* ---------- 実績・キャッチ・CTA ---------- */
.p-top__mv {
  position: relative;
  overflow: hidden;
  padding: calc(11 * var(--top-u)) 0 calc(106 * var(--top-u));
  background-color: var(--top-color-white);
}
/* 背景写真：セクションの上端から（実績バッジの裏まで）カンプの座標どおりに敷く */
.p-top__mv-bg {
  position: absolute;
  top: calc(-213.98 * var(--top-u));
  left: calc(-17.2 * var(--top-u));
  width: calc(408.2 * var(--top-u));
  max-width: none;
  height: calc(1278.64 * var(--top-u));
}
.p-top__mv-fade {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(119 * var(--top-u));
}

/* 実績バッジ（月桂樹＋円の上に文字） */
.p-top__badges {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, calc(129.5 * var(--top-u)));
  gap: calc(6 * var(--top-u)) calc(0.5 * var(--top-u));
  padding-left: calc(8 * var(--top-u));
}
/* 行数の違う文字を円の中で上下中央にそろえる */
.p-top__badge {
  position: relative;
  display: grid;
  align-content: center;
  justify-items: center;
  aspect-ratio: 129.5 / 133.5;
  padding: calc(23 * var(--top-u)) calc(20 * var(--top-u)) calc(21 * var(--top-u));
  background:
    url("../images/top-renewal/badge-circle-1.svg") calc(20 * var(--top-u)) calc(23.3 * var(--top-u)) / calc(89.3 * var(--top-u)) calc(89.3 * var(--top-u)) no-repeat,
    url("../images/top-renewal/badge-laurel.webp") 0 0 / 100% 100% no-repeat;
  color: var(--top-color-red-dark);
  font-family: var(--top-font-mincho);
  line-height: 1.06;
  text-align: center;
  white-space: nowrap;
}
.p-top__badge--2 {
  background-image: url("../images/top-renewal/badge-circle-2.svg"), url("../images/top-renewal/badge-laurel.webp");
}
.p-top__badge--3 {
  background-image: url("../images/top-renewal/badge-circle-3.svg"), url("../images/top-renewal/badge-laurel.webp");
}
.p-top__badge-label {
  font-size: max(var(--top-fmin, 0px), calc(12.5 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 800;
  letter-spacing: -0.06em;
}
.p-top__badge-label--s {
  font-size: max(var(--top-fmin, 0px), calc(11.3 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__badge-label--l {
  font-size: max(var(--top-fmin, 0px), calc(15.8 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__badge-label--bold {
  margin-top: calc(-2 * var(--top-u));
  font-weight: 700;
  letter-spacing: -0.02em;
}
.p-top__badge-num {
  display: flex;
  align-items: baseline;
  justify-content: center;
  background: var(--top-gradient-red);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 800;
}
.p-top__badge-num-l {
  font-size: max(var(--top-fmin, 0px), calc(32 * max(var(--top-u), var(--top-umin, 0px))));
  letter-spacing: -0.06em;
}
.p-top__badge-num-m {
  font-size: max(var(--top-fmin, 0px), calc(20.5 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 600;
  letter-spacing: -0.06em;
}
.p-top__badge-num.p-top__badge-num-m {
  margin-top: calc(-2 * var(--top-u));
  letter-spacing: -0.08em;
}
.p-top__badge-num-xs {
  font-size: max(var(--top-fmin, 0px), calc(11.4 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
}
.p-top__badge-num-note {
  font-size: max(var(--top-fmin, 0px), calc(8 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 600;
}
.p-top__badges-note {
  position: relative;
  width: calc(129.5 * var(--top-u));
  margin-left: calc(9 * var(--top-u));
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(9 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1.2;
  letter-spacing: -0.06em;
  text-align: center;
  white-space: nowrap;
}

/* キャッチ（Figmaの重なり配置を再現するため絶対配置。--top-u で丸ごと拡大縮小する） */
.p-top__mv-body {
  position: relative;
  margin-top: calc(63 * var(--top-u));
}
.p-top__mv-catch {
  position: relative;
  width: calc(334 * var(--top-u));
  height: calc(110 * var(--top-u));
  margin: 0 auto;
  color: var(--top-color-white);
  font-family: var(--top-font-maru);
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__mv-catch > * {
  position: absolute;
}
.p-top__mv-catch-1 {
  top: calc(-10 * var(--top-u));
  left: calc(52 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  letter-spacing: -0.06em;
  text-shadow: 0 0 calc(8.5 * var(--top-u)) rgba(0, 0, 0, 0.25);
}
.p-top__mv-catch-k1 {
  letter-spacing: -0.1em;
}
.p-top__mv-catch-k2 {
  letter-spacing: -0.18em;
}
.p-top__mv-catch-k3 {
  letter-spacing: -0.11em;
}
.p-top__mv-catch-deco {
  top: calc(22.6 * var(--top-u));
  left: 0;
  width: calc(60.6 * var(--top-u));
}
.p-top__mv-catch-fuwa {
  font-size: max(var(--top-fmin, 0px), calc(24.8 * max(var(--top-u), var(--top-umin, 0px))));
  letter-spacing: -0.06em;
  text-shadow: 0 0 calc(6.4 * var(--top-u)) rgba(0, 0, 0, 0.25);
  transform: translate(-50%, -50%) rotate(-12.57deg);
}
.p-top__mv-catch-fuwa--1 {
  top: calc(54.8 * var(--top-u));
  left: calc(48.8 * var(--top-u));
}
.p-top__mv-catch-fuwa--2 {
  top: calc(75.5 * var(--top-u));
  left: calc(66.4 * var(--top-u));
}
.p-top__mv-catch-main {
  top: calc(37.5 * var(--top-u));
  left: calc(88.4 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(56 * max(var(--top-u), var(--top-umin, 0px))));
  letter-spacing: -0.06em;
  text-shadow: 0 0 calc(7.6 * var(--top-u)) rgba(21, 133, 48, 0.16);
}
.p-top__mv-catch-2 {
  top: calc(43.8 * var(--top-u));
  left: calc(252.8 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(28.4 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 0.97;
  letter-spacing: -0.06em;
  text-shadow: 0 0 calc(7.3 * var(--top-u)) rgba(0, 0, 0, 0.25);
}
.p-top__mv-lead {
  margin-top: calc(16 * var(--top-u));
  color: var(--top-color-white);
  font-family: var(--top-font-maru);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-align: center;
  text-shadow: 0 0 calc(8 * var(--top-u)) rgba(0, 0, 0, 0.25);
}

/* CTA（PCで横並びにするときは grid-template-columns を足すだけ） */
.p-top__mv-cta {
  display: grid;
  gap: calc(12 * var(--top-u));
  margin-top: calc(24 * var(--top-u));
  padding: 0 calc(16 * var(--top-u));
}
.p-top__cta-card {
  padding: calc(16 * var(--top-u));
  border-radius: calc(8 * var(--top-u));
  background-color: rgba(255, 255, 255, 0.7);
}
.p-top__cta-lead {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.04em;
  white-space: nowrap;
}
.p-top__cta-tag {
  display: inline-flex;
  align-items: center;
  height: calc(17 * var(--top-u));
  margin-right: calc(3 * var(--top-u));
  padding: 0 calc(6 * var(--top-u));
  border-radius: calc(2 * var(--top-u));
  background-color: var(--top-color-red);
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(12 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1;
  letter-spacing: 0;
}
.p-top__cta-tag-num {
  margin-right: calc(1 * var(--top-u));
  font-family: var(--top-font-en);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__cta-tag--line {
  background-color: var(--top-color-line);
  font-family: var(--top-font-en);
  font-weight: 600;
}
/* 外側2pxの色リング＋内側1pxの白線。
   リングは枠の外に描くため、margin 2 でカード内に収める（上は リード文との間隔8＋2） */
.p-top__cta-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(72 * var(--top-u));
  margin: calc(10 * var(--top-u)) calc(2 * var(--top-u)) calc(2 * var(--top-u));
  padding: 0 calc(12 * var(--top-u)) 0 calc(8 * var(--top-u));
  border: 1px solid var(--top-color-white);
  border-radius: calc(48 * var(--top-u));
  background-color: var(--top-color-red);
  box-shadow: 0 0 0 calc(2 * var(--top-u)) var(--top-color-red), 0 calc(8 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
  color: var(--top-color-white);
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-top__cta-btn--line {
  background-color: var(--top-color-line);
  box-shadow: 0 0 0 calc(2 * var(--top-u)) var(--top-color-line), 0 calc(8 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
}
.p-top__cta-btn-icon {
  display: grid;
  place-items: center;
  width: calc(56 * var(--top-u));
  height: calc(56 * var(--top-u));
  border-radius: 50%;
  background-color: var(--top-color-white);
}
.p-top__cta-btn-icon img {
  width: auto;
  height: calc(32 * var(--top-u));
}
.p-top__cta-btn-text {
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__cta-btn-narrow {
  letter-spacing: -0.04em;
}
.p-top__cta-btn-arrow {
  width: calc(14 * var(--top-u));
}
@media (hover: hover) {
  .p-top__cta-btn:hover {
    opacity: 0.8;
  }
}
/* ---------- 概算費用 ---------- */
.p-top__price {
  position: relative;
  overflow: hidden;
  padding: calc(40 * var(--top-u)) calc(16 * var(--top-u)) calc(16 * var(--top-u));
  background-color: var(--top-color-white);
}
.p-top__price-bg {
  position: absolute;
  top: calc(-372.4 * var(--top-u));
  left: 50%;
  width: calc(754.9 * var(--top-u));
  max-width: none;
  height: calc(636.3 * var(--top-u));
  margin-left: calc(-377.4 * var(--top-u));
}

/* 見出し：「あなたのお庭」を1文字ずつ丸に入れて少し重ねる */
.p-top__price-title {
  position: relative;
  isolation: isolate;
  width: calc(240 * var(--top-u));
  margin: 0 auto;
  color: var(--top-color-white);
  font-family: var(--top-font-kaku);
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__price-title-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(2 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__price-title-circles {
  display: flex;
}
.p-top__price-title-c {
  display: grid;
  place-items: center;
  width: calc(39.06 * var(--top-u));
  height: calc(39.06 * var(--top-u));
  padding-top: calc(2 * var(--top-u));
  border-radius: 50%;
  background-color: var(--top-color-white);
  color: var(--top-color-green-dark);
}
.p-top__price-title-c + .p-top__price-title-c {
  margin-left: calc(-9.8 * var(--top-u));
}
.p-top__price-title-c--on {
  background-color: var(--top-color-green-dark);
  color: var(--top-color-white);
}
/* 「の」と「お」の間だけ少し広い */
.p-top__price-title-c:not(.p-top__price-title-c--on) + .p-top__price-title-c--on {
  margin-left: calc(-7.2 * var(--top-u));
}
/* 文字幅（271）が見出し枠（240）より広い。カンプどおり枠の左から15.47はみ出した位置から左寄せで置く
   （中央寄せにすると、末尾の字間が詰まる分だけ右にずれて「？」と重なる） */
.p-top__price-title-main {
  display: block;
  margin-left: calc(-15.47 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(44 * max(var(--top-u), var(--top-umin, 0px))));
  text-align: left;
  text-shadow: calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08);
}
.p-top__price-title-de {
  font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  letter-spacing: 0.08em;
}
.p-top__price-title-k1 {
  letter-spacing: -0.04em;
}
.p-top__price-title-k2 {
  letter-spacing: -0.18em;
}
.p-top__price-title-k3 {
  letter-spacing: -0.2em;
}
.p-top__price-title-q {
  position: absolute;
  top: calc(66.7 * var(--top-u));
  left: calc(244.5 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(44 * max(var(--top-u), var(--top-umin, 0px))));
  letter-spacing: -0.12em;
  text-shadow: calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08);
  transform: translate(-50%, -50%) rotate(8.1deg);
}
/* 見出し下のぼかした光（画像に透明度を含む）。カンプどおり文字の奥に置く */
.p-top__price-title-deco {
  position: absolute;
  z-index: -1;
  top: calc(75.67 * var(--top-u));
  left: calc(-28.85 * var(--top-u));
  width: calc(288.49 * var(--top-u));
  max-width: none;
  height: calc(35.63 * var(--top-u));
  pointer-events: none;
}

/* 事例スライダー */
.p-top__price-slider {
  position: relative;
  margin-top: calc(40 * var(--top-u));
}
.p-top__price-cases.p-top__price-cases {
  --top-slider-pad: calc(12 * var(--top-u));
  padding: var(--top-slider-pad) calc(var(--top-slider-pad) + 8 * var(--top-u));
}
.p-top__price-case {
  filter: drop-shadow(calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.16));
}
.p-top__price-photo {
  position: relative;
  aspect-ratio: 327 / 200;
  filter: drop-shadow(0 calc(2 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.04));
}
.p-top__price-photo img {
  width: 100%;
  height: 100%;
  border-radius: calc(24 * var(--top-u)) calc(24 * var(--top-u)) 0 0;
  object-fit: cover;
}
.p-top__price-area {
  position: absolute;
  top: calc(12.36 * var(--top-u));
  left: calc(11 * var(--top-u));
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(64 * var(--top-u));
  height: calc(64 * var(--top-u));
  border-radius: calc(20 * var(--top-u));
  background-color: var(--top-color-orange);
  color: var(--top-color-white);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
}
.p-top__price-area-unit {
  font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__price-body {
  padding: calc(16 * var(--top-u)) calc(24 * var(--top-u));
  border-radius: 0 0 calc(24 * var(--top-u)) calc(24 * var(--top-u));
  background-color: var(--top-color-cream);
  text-align: center;
}
.p-top__price-name {
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__price-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(8 * var(--top-u));
  margin-top: calc(8 * var(--top-u));
}
.p-top__price-tag {
  padding: calc(2 * var(--top-u)) calc(10 * var(--top-u));
  border-radius: calc(13 * var(--top-u));
  background-color: var(--top-color-orange-light);
  color: var(--top-color-orange);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.2;
}
.p-top__price-total {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(4 * var(--top-u));
  margin-top: calc(16 * var(--top-u));
  color: var(--top-color-red);
}
/* 2行の上下の行間を詰めて、カンプの文字の高さ（33）に合わせる */
.p-top__price-total-label {
  margin: calc(-4.3 * var(--top-u)) 0;
  padding-bottom: calc(5 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.04em;
}
.p-top__price-total-value {
  display: flex;
  align-items: flex-end;
  gap: calc(1 * var(--top-u));
  padding-bottom: calc(10 * var(--top-u));
  background: url("../images/top-renewal/price-underline.svg") left bottom / calc(112.58 * var(--top-u)) calc(2 * var(--top-u)) no-repeat;
}
.p-top__price-total-num {
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(44 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 0.75;
}
.p-top__price-total-unit {
  font-size: max(var(--top-fmin, 0px), calc(26 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 900;
  line-height: 0.73;
}
/* 矢印：カードの左右、画面端から8pxの位置 */
.p-top__price-nav {
  position: absolute;
  top: calc(247.06 * var(--top-u));
  right: calc(-16 * var(--top-u));
  left: calc(-16 * var(--top-u));
  display: flex;
  justify-content: space-between;
  padding: 0 calc(8 * var(--top-u));
  pointer-events: none;
}
/* 矢印SVGは影の余白込みのため、ボタン（34×34）からはみ出させて配置 */
.p-top__price-nav-btn {
  position: relative;
  width: calc(34 * var(--top-u));
  height: calc(34 * var(--top-u));
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  pointer-events: auto;
}
.p-top__price-nav-btn:disabled {
  cursor: default;
}
.p-top__price-nav-btn img {
  position: absolute;
  top: calc(-15 * var(--top-u));
  left: calc(-15 * var(--top-u));
  width: calc(68 * var(--top-u));
  max-width: none;
  height: calc(68 * var(--top-u));
}
.p-top__price-nav-btn--next img {
  transform: scaleX(-1);
}

/* スライダー下の説明 */
.p-top__price-lead {
  position: relative;
  margin-top: calc(24 * var(--top-u));
  padding-bottom: calc(4 * var(--top-u));
  color: var(--top-color-text);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  white-space: nowrap;
}
.p-top__price-lead-row {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  margin-top: calc(2 * var(--top-u));
}
.p-top__price-lead-pill {
  padding: calc(4 * var(--top-u)) calc(6 * var(--top-u));
  border: 0.5px solid rgba(255, 255, 255, 0.55);
  border-radius: calc(40 * var(--top-u));
  background-color: var(--top-color-orange);
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
}
.p-top__price-lead-note {
  margin-top: calc(8 * var(--top-u));
}

/* ---------- シミュレーションへの誘導（スタッフの吹き出し） ---------- */
/* 赤地に方眼紙を「比較（明）」で重ねて薄いピンクにする */
.p-top__talk {
  position: relative;
  z-index: 0;
  overflow: hidden;
  padding: 0 calc(16 * var(--top-u));
  background-color: var(--top-color-red);
}
.p-top__talk::before {
  content: "";
  position: absolute;
  top: calc(-57.38 * var(--top-u));
  left: 0;
  z-index: -1;
  width: 100%;
  height: calc(537.61 * var(--top-u));
  background: url("../images/top-renewal/area-grid.webp") center / 100% 100% no-repeat;
  opacity: 0.8;
  mix-blend-mode: lighten;
}
/* 上の白い山形（概算費用から続く）。下の吹き出しと48px重なる */
.p-top__talk-top,
.p-top__talk-bottom {
  display: block;
  width: calc(100% + 32 * var(--top-u));
  max-width: none;
  margin: 0 calc(-16 * var(--top-u));
}
.p-top__talk-top {
  height: calc(61.55 * var(--top-u));
  margin-bottom: calc(-48 * var(--top-u));
}
/* 下の山形（シミュレーションの背景色） */
.p-top__talk-bottom {
  height: calc(47.43 * var(--top-u));
}
.p-top__talk-row {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: calc(134 * var(--top-u));
  padding-right: calc(16 * var(--top-u));
  filter: drop-shadow(calc(4 * var(--top-u)) calc(4 * var(--top-u)) 0 rgba(255, 69, 69, 0.16));
}
.p-top__talk-row--2 {
  justify-content: flex-start;
  height: auto;
  margin-top: calc(16 * var(--top-u));
}
.p-top__talk-staff {
  position: absolute;
  max-width: none;
}
.p-top__talk-staff--1 {
  top: calc(-14.5 * var(--top-u));
  left: calc(13.41 * var(--top-u));
  width: calc(104.59 * var(--top-u));
  height: calc(148 * var(--top-u));
}
.p-top__talk-staff--2 {
  top: calc(-37.96 * var(--top-u));
  left: calc(248.13 * var(--top-u));
  width: calc(94.88 * var(--top-u));
  height: calc(134.25 * var(--top-u));
}
.p-top__talk-bubble {
  position: relative;
  padding: calc(16 * var(--top-u)) calc(22 * var(--top-u));
  border: 1px solid var(--top-color-marker);
  border-radius: calc(58 * var(--top-u));
  background-color: var(--top-color-white);
  color: var(--top-color-text);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
}
.p-top__talk-line + .p-top__talk-line {
  margin-top: calc(2 * var(--top-u));
}
.p-top__talk-line--medium {
  font-weight: 500;
}
.p-top__talk-em {
  display: inline-block;
  margin-right: calc(2 * var(--top-u));
  padding: calc(4 * var(--top-u)) calc(2 * var(--top-u));
  border-bottom: 1px dashed var(--top-color-red);
  color: var(--top-color-red);
  line-height: 1;
  vertical-align: top;
}
.p-top__talk-red {
  color: var(--top-color-red);
}
.p-top__talk-line--flex {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(4 * var(--top-u));
}
.p-top__talk-line--flex + .p-top__talk-line--flex {
  gap: calc(1 * var(--top-u));
  line-height: 1.3;
  letter-spacing: -0.04em;
}
.p-top__talk .p-top__cta-tag {
  margin-right: 0;
  font-size: max(var(--top-fmin, 0px), calc(13 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
}
.p-top__talk .p-top__cta-tag-num {
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
}
.p-top__talk-de {
  letter-spacing: -0.04em;
  line-height: 1;
}
.p-top__talk-desu {
  font-weight: 500;
  line-height: 1;
}
/* 吹き出しのしっぽ：三角を回転して置き、つなぎ目の線を白い小片で隠す（カンプの重なりどおり） */
.p-top__talk-tail,
.p-top__talk-patch {
  position: absolute;
  max-width: none;
}
.p-top__talk-tail--1 {
  top: calc(84.7 * var(--top-u));
  left: calc(4.02 * var(--top-u));
  width: calc(14.65 * var(--top-u));
  height: calc(15.52 * var(--top-u));
  transform: rotate(-130.92deg);
}
.p-top__talk-tail--1 img {
  position: absolute;
  top: 0;
  left: 6.7%;
  width: 86.6%;
  max-width: none;
  height: 75%;
}
.p-top__talk-tail--2 {
  top: calc(16 * var(--top-u));
  left: calc(22 * var(--top-u));
  width: calc(239.74 * var(--top-u));
  height: calc(56.98 * var(--top-u));
}
.p-top__talk-patch--1 {
  top: calc(89.43 * var(--top-u));
  left: calc(8.62 * var(--top-u));
  width: calc(10.55 * var(--top-u));
  height: calc(2.05 * var(--top-u));
  transform: rotate(44.5deg);
}
.p-top__talk-patch--2 {
  top: calc(65.43 * var(--top-u));
  left: calc(247.88 * var(--top-u));
  width: calc(10.39 * var(--top-u));
  height: calc(2.31 * var(--top-u));
  transform: rotate(-48.61deg);
}
/* SPの吹き出し：白い面・枠線・しっぽを1枚のSVGにする（2026-10-20）。
   三角と小片を重ねる作り方だと、しっぽの付け根に線やすき間が出て、しっぽの枠線も途切れるため。
   SVGは吹き出しの外へ上下左右10ずつ広く、吹き出しの大きさに合わせて伸ばす（形はカンプのしっぽの位置から作成） */
.p-top__talk-bubble,
.p-top__qa-bubble {
  isolation: isolate;
  border-color: transparent;
  background-color: transparent;
}
.p-top__talk-bubble::before,
.p-top__qa-bubble::before {
  content: "";
  position: absolute;
  inset: calc(-10 * var(--top-u) - 1px);
  z-index: -1;
  background: url("../images/top-renewal/talk-bubble-1-sp.svg") 0 0 / 100% 100% no-repeat;
}
.p-top__talk-bubble--2::before {
  background-image: url("../images/top-renewal/talk-bubble-2-sp.svg");
}
.p-top__qa-bubble--intro::before {
  background-image: url("../images/top-renewal/qa-bubble-intro-sp.svg");
}
.p-top__qa-bubble--1::before {
  background-image: url("../images/top-renewal/qa-bubble-1-sp.svg");
}
.p-top__qa-bubble--2::before {
  background-image: url("../images/top-renewal/qa-bubble-2-sp.svg");
}
.p-top__qa-bubble--3::before {
  background-image: url("../images/top-renewal/qa-bubble-3-sp.svg");
}
.p-top__talk-tail,
.p-top__talk-patch,
.p-top__qa-tail,
.p-top__qa-patch {
  visibility: hidden;
}
/* 「今すぐ確認してみてね」：白いふち取り＋左右の飾り線 */
.p-top__talk-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--top-u));
  margin-top: calc(20 * var(--top-u));
  color: var(--top-color-text);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
  text-shadow: 0 0 calc(2 * var(--top-u)) var(--top-color-white), 0 0 calc(2 * var(--top-u)) var(--top-color-white), 0 0 calc(3 * var(--top-u)) var(--top-color-white);
  white-space: nowrap;
}
.p-top__talk-deco {
  width: calc(29.29 * var(--top-u));
  max-width: none;
  height: calc(30.48 * var(--top-u));
}
.p-top__talk-deco--r {
  transform: scaleX(-1);
}

/* ---------- 料金シミュレーション ---------- */
/* 高さはカンプ（590px）を最低値にし、中身を上下中央に置く。設問を切り替えても高さが大きく変わらない */
.p-top__sim {
  position: relative;
  overflow: hidden;
  display: grid;
  align-content: center;
  justify-items: center;
  row-gap: calc(24 * var(--top-u));
  min-height: calc(590 * var(--top-u));
  padding: calc(36 * var(--top-u)) calc(16 * var(--top-u)) calc(64 * var(--top-u));
  background-color: var(--top-color-pink-bg);
}
.p-top__sim-step {
  width: 100%;
}
.p-top__sim-q-title:focus {
  outline: none;
}
/* flow-root：上端からはみ出す吹き出しの負のmarginがカードの外へ抜けないようにする */
.p-top__sim-card {
  display: flow-root;
  padding: 0 calc(16 * var(--top-u)) calc(40 * var(--top-u));
  border-radius: calc(16 * var(--top-u));
  background-color: var(--top-color-white);
  filter: drop-shadow(0 calc(4 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.04));
}
/* 吹き出しがカード上端から24.5pxはみ出すデザイン */
.p-top__sim-progress {
  margin-top: calc(-24.5 * var(--top-u));
}
.p-top__sim-remain {
  position: relative;
  width: fit-content;
  margin: 0 auto;
  padding: calc(12 * var(--top-u));
  border-radius: 999px;
  background-color: var(--top-color-red);
  color: var(--top-color-white);
  font-family: var(--top-font-maru);
  font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: calc(29 * var(--top-u));
}
/* PC用の「1問目」などの表記と「結果をみる」ボタンはSPでは出さない */
.p-top__sim-remain-pc,
.p-top__sim-submit {
  display: none;
}
.p-top__sim-remain-num {
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  letter-spacing: 0.02em;
}
.p-top__sim-remain::after {
  content: "";
  position: absolute;
  top: calc(100% - 2 * var(--top-u));
  left: 50%;
  width: calc(9.39 * var(--top-u));
  height: calc(5.03 * var(--top-u));
  background: url("../images/top-renewal/sim-tip.svg") center / contain no-repeat;
  transform: translateX(-50%) rotate(180deg);
}
.p-top__sim-bar {
  display: flex;
  gap: calc(2 * var(--top-u));
  width: calc(200 * var(--top-u));
  height: calc(24 * var(--top-u));
  margin: calc(12.7 * var(--top-u)) auto 0;
  overflow: hidden;
  border-radius: calc(24 * var(--top-u));
}
.p-top__sim-bar-step {
  flex: 1;
  background-color: var(--top-color-gray-light);
}
.p-top__sim-bar-step.is-done {
  background-color: var(--top-color-red);
}
.p-top__sim-q {
  margin-top: calc(34.8 * var(--top-u));
}
.p-top__sim-q-title {
  color: var(--top-color-text);
  font-family: var(--top-font-maru);
  font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.04em;
  text-align: center;
}
.p-top__sim-options {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: calc(8 * var(--top-u));
  margin-top: calc(32 * var(--top-u));
}
.p-top__sim-option {
  position: relative;
  display: block;
  padding: calc(4 * var(--top-u)) calc(4 * var(--top-u)) calc(6 * var(--top-u));
  border: 2px solid var(--top-color-gray-border);
  border-radius: calc(8 * var(--top-u));
  background-color: var(--top-color-white);
  filter: drop-shadow(calc(1 * var(--top-u)) calc(2 * var(--top-u)) 0 rgba(0, 0, 0, 0.12));
  cursor: pointer;
}
.p-top__sim-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.p-top__sim-option:has(:focus-visible) {
  outline: 2px solid var(--top-color-text);
  outline-offset: 2px;
}
.p-top__sim-option-img {
  display: block;
  width: 100%;
  aspect-ratio: 138.61 / 93.97;
  margin-bottom: calc(8 * var(--top-u));
  border-radius: calc(4 * var(--top-u));
  object-fit: cover;
}
.p-top__sim-option-label {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--top-u));
  padding: 0 0 calc(2 * var(--top-u)) calc(4 * var(--top-u));
  color: var(--top-color-text);
  font-family: var(--top-font-maru);
  font-size: max(var(--top-fmin, 0px), calc(17 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: calc(19 * var(--top-u));
  white-space: nowrap;
}
.p-top__sim-check {
  flex-shrink: 0;
  width: calc(16 * var(--top-u));
  height: calc(16 * var(--top-u));
  background: url("../images/top-renewal/icon-check.svg") center / contain no-repeat;
}
/* 選択中：カンプに指定がないため、枠とチェックを赤にする */
.p-top__sim-option:has(:checked) {
  border-color: var(--top-color-red);
  background-color: var(--top-color-pink-bg);
}
.p-top__sim-option:has(:checked) .p-top__sim-check {
  background-image: url("../images/top-renewal/icon-check-on.svg");
}
/* マウスを重ねたら枠だけ赤に（選ぶ前の手がかり。背景の色は選択中だけ） */
.p-top__sim-option {
  transition: border-color 0.2s;
}
@media (hover: hover) {
  .p-top__sim-option:hover {
    border-color: var(--top-color-red);
  }
}
/* 地域：文字だけの選択肢 */
.p-top__sim-option--text {
  padding: calc(20 * var(--top-u)) calc(8 * var(--top-u));
}

/* もどる・やり直す */
/* 結果画面の背景写真（絶対配置）より前に出す */
.p-top__sim-nav {
  position: relative;
  display: flex;
  gap: calc(8 * var(--top-u));
}
.p-top__sim-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: calc(8 * var(--top-u));
  padding: calc(8 * var(--top-u)) calc(12 * var(--top-u));
  border: 1px solid var(--top-color-gray-light);
  border-radius: calc(8 * var(--top-u));
  background-color: var(--top-color-white);
  color: var(--top-color-text);
  font-family: inherit;
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.45;
  cursor: pointer;
}
.p-top__sim-nav-btn img {
  width: calc(14 * var(--top-u));
}
.p-top__sim-nav-btn--back {
  border-color: var(--top-color-text);
  background-color: var(--top-color-text);
  color: var(--top-color-white);
}
.p-top__sim-nav-btn--back img {
  transform: rotate(180deg);
}

/* 結果 */
/* 結果画面：お問い合わせカードとボタンの間は16px（行間8＋8） */
.p-top__sim.is-result .p-top__sim-nav {
  margin-top: calc(8 * var(--top-u));
}
.p-top__sim.is-result {
  row-gap: calc(8 * var(--top-u));
  background-color: var(--top-color-marker);
}
.p-top__sim-result-bg {
  position: absolute;
  top: calc(-256 * var(--top-u));
  left: 50%;
  width: calc(527.3 * var(--top-u));
  height: calc(1192 * var(--top-u));
  margin-left: calc(-295 * var(--top-u));
  filter: blur(calc(2 * var(--top-u)));
}
.p-top__sim-result-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top__sim-result-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.4);
}
.p-top__sim-result {
  position: relative;
  width: 100%;
}
/* 下の三角（9）＋カードとの間隔（8） */
.p-top__sim-result-card {
  position: relative;
  display: flow-root;
  margin-bottom: calc(17 * var(--top-u));
  padding: 0 calc(20 * var(--top-u)) calc(40 * var(--top-u));
  border: 2px solid var(--top-color-green-dark);
  border-radius: calc(24 * var(--top-u));
  background-color: var(--top-color-white);
}
/* カード下の三角 */
.p-top__sim-result-card::after {
  content: "";
  position: absolute;
  top: calc(100% + 1 * var(--top-u));
  left: 50%;
  width: calc(47 * var(--top-u));
  height: calc(14 * var(--top-u));
  background: url("../images/top-renewal/sim-result-tail.svg") center / contain no-repeat;
  transform: translateX(-50%) rotate(180deg);
}
.p-top__sim-result-title {
  position: relative;
  width: fit-content;
  margin: calc(-17 * var(--top-u)) auto 0;
  padding: calc(6 * var(--top-u)) calc(16 * var(--top-u));
  border-radius: 999px;
  background-color: var(--top-color-green-dark);
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.45;
  white-space: nowrap;
}
.p-top__sim-result-title:focus {
  outline: none;
}
.p-top__sim-result-title::after {
  content: "";
  position: absolute;
  top: calc(100% - 6 * var(--top-u));
  left: 50%;
  width: calc(35.5 * var(--top-u));
  height: calc(9 * var(--top-u));
  background: url("../images/top-renewal/sim-result-tip.svg") center / contain no-repeat;
  transform: translateX(-50%) rotate(180deg);
}
.p-top__sim-result-body {
  margin-top: calc(20 * var(--top-u));
}
.p-top__sim-price-line {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: calc(2 * var(--top-u));
}
.p-top__sim-price-num {
  display: flex;
  align-items: flex-end;
  gap: calc(2 * var(--top-u));
  background: linear-gradient(var(--top-color-yellow), var(--top-color-yellow)) calc(3 * var(--top-u)) calc(24 * var(--top-u)) / calc(100% - 3 * var(--top-u)) calc(14 * var(--top-u)) no-repeat;
  color: var(--top-color-green-deep);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.p-top__sim-price-yen {
  color: var(--top-color-green-dark);
  font-family: var(--top-font-base);
  font-size: max(var(--top-fmin, 0px), calc(32 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1;
  letter-spacing: 0;
}
/* 幅32pxの枠からはみ出させて中央に置く（カンプどおり） */
.p-top__sim-price-tax {
  display: flex;
  justify-content: center;
  width: calc(32 * var(--top-u));
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(12 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1;
  white-space: nowrap;
}
.p-top__sim-price-sep {
  display: block;
  margin: calc(12 * var(--top-u)) 0;
  color: var(--top-color-text);
  font-family: var(--top-font-en);
  font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 0.7;
  text-align: center;
}
.p-top__sim-result-notes {
  margin-top: calc(40 * var(--top-u));
  padding: calc(8 * var(--top-u)) calc(16 * var(--top-u));
  border-radius: calc(8 * var(--top-u));
  background-color: var(--top-color-gray-bg);
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.7;
}
.p-top__sim-result-notes p + p {
  margin-top: calc(16 * var(--top-u));
  line-height: 1.6;
}
.p-top__sim-result-text {
  margin-top: calc(16 * var(--top-u));
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
}
/* リード文〜ボタン：間隔16＋リング2 ／ ボタン同士：リング2＋間隔16＋リング2 */
.p-top__cta-card--result .p-top__cta-btn {
  margin-top: calc(18 * var(--top-u));
}
.p-top__cta-card--result .p-top__cta-btn + .p-top__cta-btn {
  margin-top: calc(20 * var(--top-u));
}
.p-top__cta-btn--mail {
  background-color: var(--top-color-mail);
  box-shadow: 0 0 0 calc(2 * var(--top-u)) var(--top-color-mail), 0 calc(8 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
}
.p-top__cta-btn-icon-img {
  width: calc(56 * var(--top-u));
}

/* ---------- 対応エリア ---------- */
.p-top__area {
  padding: calc(32 * var(--top-u)) calc(16 * var(--top-u)) calc(24 * var(--top-u));
  background-color: var(--top-color-white);
}
.p-top__area-card {
  padding: calc(28 * var(--top-u)) calc(16 * var(--top-u)) calc(16 * var(--top-u));
  border-radius: calc(24 * var(--top-u));
  background-color: var(--top-color-green);
  filter: drop-shadow(0 calc(4 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.08));
  text-align: center;
}
.p-top__area-title {
  color: var(--top-color-white);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(36 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 900;
  line-height: 1.2;
}
/* 地図：都県の図形をカンプの座標で重ねる */
.p-top__area-map {
  position: relative;
  overflow: hidden;
  width: calc(304 * var(--top-u));
  height: calc(311 * var(--top-u));
  margin: calc(24 * var(--top-u)) auto 0;
  border-radius: calc(8 * var(--top-u));
  background-color: var(--top-color-white);
}
.p-top__area-map-piece,
.p-top__area-map-label {
  position: absolute;
}
.p-top__area-map-piece {
  max-width: none;
}
.p-top__area-map-piece--1 {
  top: calc(223.54 * var(--top-u));
  left: calc(-0.17 * var(--top-u));
  width: calc(100.049 * var(--top-u));
}
.p-top__area-map-piece--2 {
  top: calc(167.61 * var(--top-u));
  left: calc(-2.34 * var(--top-u));
  width: calc(78.9203 * var(--top-u));
}
.p-top__area-map-piece--3 {
  top: calc(95.72 * var(--top-u));
  left: calc(-3.9 * var(--top-u));
  width: calc(51.8886 * var(--top-u));
}
.p-top__area-map-piece--4 {
  top: calc(5.89 * var(--top-u));
  left: calc(148.08 * var(--top-u));
  width: calc(142.837 * var(--top-u));
}
.p-top__area-map-piece--5 {
  top: calc(-5.92 * var(--top-u));
  left: calc(96 * var(--top-u));
  width: calc(114.649 * var(--top-u));
}
.p-top__area-map-piece--6 {
  top: calc(5.58 * var(--top-u));
  left: calc(-19.06 * var(--top-u));
  width: calc(176.147 * var(--top-u));
}
.p-top__area-map-piece--7 {
  top: calc(0.45 * var(--top-u));
  left: calc(-4.21 * var(--top-u));
  width: calc(52.8207 * var(--top-u));
}
.p-top__area-map-piece--8 {
  top: calc(90.71 * var(--top-u));
  left: calc(35.41 * var(--top-u));
  width: calc(173.684 * var(--top-u));
}
.p-top__area-map-piece--9 {
  top: calc(132.66 * var(--top-u));
  left: calc(181.13 * var(--top-u));
  width: calc(113.406 * var(--top-u));
}
.p-top__area-map-piece--10 {
  top: calc(150.68 * var(--top-u));
  left: calc(64.93 * var(--top-u));
  width: calc(143.856 * var(--top-u));
}
.p-top__area-map-piece--11 {
  top: calc(184.23 * var(--top-u));
  left: calc(64.59 * var(--top-u));
  width: calc(130.889 * var(--top-u));
}
.p-top__area-map-piece--12 {
  top: calc(0.2 * var(--top-u));
  left: calc(52.03 * var(--top-u));
  width: calc(194.909 * var(--top-u));
}
.p-top__area-map-label {
  color: var(--top-color-white);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__area-map-label--gunma {
  top: calc(64.94 * var(--top-u));
  left: calc(44.57 * var(--top-u));
}
.p-top__area-map-label--tochigi {
  top: calc(41.38 * var(--top-u));
  left: calc(137.32 * var(--top-u));
}
.p-top__area-map-label--ibaraki {
  top: calc(88.71 * var(--top-u));
  left: calc(205.84 * var(--top-u));
}
.p-top__area-map-label--saitama {
  top: calc(129 * var(--top-u));
  left: calc(104.85 * var(--top-u));
}
.p-top__area-map-label--chiba {
  top: calc(169.96 * var(--top-u));
  left: calc(226.3 * var(--top-u));
}
.p-top__area-map-label--tokyo {
  top: calc(172.96 * var(--top-u));
  left: calc(120 * var(--top-u));
}
.p-top__area-map-label--kanagawa {
  top: calc(218.64 * var(--top-u));
  left: calc(101.48 * var(--top-u));
}
/* PCだけ表示する都県名の枠 */
.p-top__area-prefs {
  display: none;
}
/* 文字幅（318）がカードの内幅（311）より広いため、左右の余白まで使って中央に置く */
.p-top__area-text {
  margin: calc(24 * var(--top-u)) calc(-16 * var(--top-u)) 0;
  color: var(--top-color-white);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

/* ---------- 漫画 ---------- */
.p-top__manga {
  padding: calc(23 * var(--top-u)) calc(20 * var(--top-u)) calc(36 * var(--top-u));
  background-color: var(--top-color-sky-bg);
}
.p-top__manga-head {
  position: relative;
}
.p-top__manga-head img {
  width: 100%;
}
/* キラッと光が走る：同じ画像をマスクにして、透明部分には光を出さない */
.p-top__manga-head::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 40%, rgba(255, 255, 255, 0.5) 46%, var(--top-color-white) 50%, rgba(255, 255, 255, 0.5) 54%, transparent 60%) 100% 0 / 250% 100% no-repeat;
  -webkit-mask: url("../images/top-renewal/manga-head.webp") center top / 100% auto no-repeat;
  mask: url("../images/top-renewal/manga-head.webp") center top / 100% auto no-repeat;
  pointer-events: none;
  animation: p-top-manga-shine 3.5s ease-in-out 0.5s infinite;
}
/* 最初の0.9秒で左→右に通過し、残りは休み */
@keyframes p-top-manga-shine {
  0% { background-position: 100% 0; }
  25%, 100% { background-position: 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  .p-top__manga-head::after {
    animation: none;
    opacity: 0;
  }
}
/* 表紙＋ボタン全体を1つのボタンにする */
.p-top__manga-card {
  position: relative;
  overflow: hidden;
  display: block;
  width: 100%;
  margin-top: calc(8 * var(--top-u));
  padding: calc(16 * var(--top-u));
  border: 0;
  border-radius: calc(16 * var(--top-u));
  background-color: var(--top-color-yellow-light);
  /* Figmaの白枠は内寸に影響しないため border ではなく inset の影で描く */
  box-shadow: inset 0 0 0 calc(4 * var(--top-u)) var(--top-color-white), calc(4 * var(--top-u)) calc(4 * var(--top-u)) calc(12 * var(--top-u)) rgba(0, 0, 0, 0.16);
  font: inherit;
  cursor: pointer;
}
.p-top__manga-rays {
  position: absolute;
  top: calc(-23.2 * var(--top-u));
  left: calc(-328.2 * var(--top-u));
  width: calc(917.7 * var(--top-u));
  max-width: none;
}
.p-top__manga-cover {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1;
  border-radius: calc(8 * var(--top-u));
  object-fit: cover;
}
.p-top__manga-btn {
  position: relative;
  display: flex;
  align-items: center;
  width: fit-content;
  margin: calc(16 * var(--top-u)) auto 0;
  filter: drop-shadow(calc(4 * var(--top-u)) calc(4 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.04));
}
.p-top__manga-btn-text {
  margin-right: calc(-16 * var(--top-u));
  padding: calc(4 * var(--top-u)) calc(24 * var(--top-u)) calc(4 * var(--top-u)) calc(12 * var(--top-u));
  border: 2px solid var(--top-color-red);
  border-radius: calc(40 * var(--top-u)) 0 0 calc(40 * var(--top-u));
  background-color: var(--top-color-white);
  box-shadow: 0 0 0 calc(3 * var(--top-u)) var(--top-color-white);
  color: var(--top-color-red);
  font-family: var(--top-font-maru);
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.45;
  white-space: nowrap;
}
/* ＋の丸はPC用の絵に替えるため picture で包んでいる。包みを無視して img を横並びの要素にする */
.p-top__manga-btn picture {
  display: contents;
}
.p-top__manga-btn-icon {
  position: relative;
  width: calc(49.2 * var(--top-u));
  margin: calc(-2.6 * var(--top-u));
}
/* PCだけ表示する重ねたページ */
.p-top__manga-pages {
  display: none;
}
@media (hover: hover) {
  .p-top__manga-card {
    transition: opacity 0.2s;
  }
  .p-top__manga-card:hover {
    opacity: 0.85;
  }
}

/* ---------- 漫画ビューア（<dialog>・縦読み） ---------- */
/* カンプにないUIのため px で指定。スマホは全画面、PCは中央に幅600pxで表示 */
.p-top__comic {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background-color: var(--top-color-comic-bg);
  color: var(--top-color-white);
}
.p-top__comic::backdrop {
  background-color: rgba(0, 0, 0, 0.8);
}
/* 上部バーを固定し、残りの高さを本文のスクロール領域にする（ここは flex の縦並びが必要） */
.p-top__comic-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.p-top__comic-head {
  position: relative;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 8px 8px 16px;
  background-color: var(--top-color-comic-bg);
}
.p-top__comic-title {
  overflow: hidden;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 閉じるボタン：白地に黒文字で「×＋閉じる」をはっきり見せる */
.p-top__comic-close {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: 6px;
  height: 44px;
  padding: 0 18px 0 14px;
  border: 0;
  border-radius: 999px;
  background-color: var(--top-color-white);
  color: var(--top-color-comic-bg);
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.p-top__comic-close:focus-visible {
  outline: 3px solid var(--top-color-orange);
  outline-offset: 2px;
}
.p-top__comic-close-icon {
  position: relative;
  width: 16px;
  height: 16px;
}
.p-top__comic-close-icon::before,
.p-top__comic-close-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2.5px;
  margin-top: -1.25px;
  border-radius: 2px;
  background-color: currentColor;
  transform: rotate(45deg);
}
.p-top__comic-close-icon::after {
  transform: rotate(-45deg);
}
/* 読み進めた量 */
.p-top__comic-progress {
  position: absolute;
  right: 0;
  bottom: -3px;
  left: 0;
  z-index: 1;
  height: 3px;
  background-color: rgba(255, 255, 255, 0.15);
}
.p-top__comic-progress-bar {
  display: block;
  height: 100%;
  background-color: var(--top-color-orange);
  transform: scaleX(0);
  transform-origin: left;
}
.p-top__comic-body {
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 9px 0 48px;
}
.p-top__comic-body:focus {
  outline: none;
}
/* 「スクロールして読む」：読み始めるまで下部に表示 */
.p-top__comic-hint {
  position: absolute;
  bottom: calc(24px + env(safe-area-inset-bottom));
  left: 50%;
  padding: 10px 20px 8px;
  border: 0;
  border-radius: 999px;
  background-color: rgba(0, 0, 0, 0.7);
  color: var(--top-color-white);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  transform: translateX(-50%);
  transition: opacity 0.3s, visibility 0.3s;
  cursor: pointer;
}
.p-top__comic-hint.is-hidden {
  opacity: 0;
  visibility: hidden;
}
.p-top__comic-hint:focus-visible {
  outline: 3px solid var(--top-color-orange);
  outline-offset: 2px;
}
.p-top__comic-hint-text {
  display: block;
}
/* 下向きの二重山形 */
.p-top__comic-hint-arrow {
  position: relative;
  display: block;
  width: 16px;
  height: 18px;
  margin: 2px auto 0;
  animation: p-top-comic-bounce 1.4s ease-in-out infinite;
}
.p-top__comic-hint-arrow::before,
.p-top__comic-hint-arrow::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 10px;
  height: 10px;
  margin-left: -5px;
  border-right: 2.5px solid currentColor;
  border-bottom: 2.5px solid currentColor;
  transform: rotate(45deg);
}
.p-top__comic-hint-arrow::before {
  top: -1px;
  opacity: 0.5;
}
.p-top__comic-hint-arrow::after {
  top: 6px;
}
@keyframes p-top-comic-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}
@media (prefers-reduced-motion: reduce) {
  .p-top__comic-hint-arrow {
    animation: none;
  }
}
.p-top__comic-panel {
  display: block;
  width: 100%;
  margin-top: 6px;
}
/* 章ラベル：その章の最初のコマの直前に置き、前の章との間だけ空ける */
.p-top__comic-chapter {
  overflow: hidden;
}
.p-top__comic-chapter:not(:first-child) {
  margin-top: 46px;
}
.p-top__comic-chapter img {
  display: block;
  width: 100%;
  height: auto;
}
/* 読み終わりのボタン（暗い背景の上なのでカードは白地） */
.p-top__comic-cta {
  margin-top: 38px;
  padding: 0 16px;
}
.p-top__comic-cta-title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
.p-top__cta-card--comic {
  margin-top: 16px;
  background-color: var(--top-color-white);
}
.p-top__cta-card--comic + .p-top__cta-card--comic {
  margin-top: 12px;
}
/* 見えたら左からスライドイン（JSが動いたときだけ初期状態を隠す） */
.p-top__comic-chapter.is-standby img {
  opacity: 0;
  transform: translateX(-24%);
}
.p-top__comic-chapter.is-shown img {
  opacity: 1;
  transform: none;
  transition: opacity 0.5s ease-out, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .p-top__comic-chapter.is-standby img {
    opacity: 1;
    transform: none;
  }
}

/* ---------- よくある質問 ---------- */
/* 背景：方眼紙を縦に繰り返し、半透明で重ねる */
.p-top__qa {
  position: relative;
  isolation: isolate;
  padding: calc(48 * var(--top-u)) calc(12 * var(--top-u));
  background-color: var(--top-color-white);
}
.p-top__qa::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url("../images/top-renewal/area-grid.webp") 50% calc(-4.96 * var(--top-u)) / calc(496.2 * var(--top-u)) calc(711.4 * var(--top-u)) repeat-y;
  opacity: 0.5;
}
.p-top__qa-head {
  position: relative;
  z-index: 3;
  text-align: center;
}
/* Q・Aの吹き出しアイコン（カンプの重なりどおり絶対配置） */
.p-top__qa-icon {
  position: relative;
  width: calc(88 * var(--top-u));
  height: calc(63 * var(--top-u));
  margin: 0 auto;
}
.p-top__qa-icon-q,
.p-top__qa-icon-a {
  position: absolute;
  display: grid;
  place-items: center;
  width: calc(47.35 * var(--top-u));
  height: calc(47.35 * var(--top-u));
  border-radius: 50%;
  background-color: var(--top-color-gray);
  color: var(--top-color-white);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.5;
}
.p-top__qa-icon-q {
  top: 0;
  left: 0;
}
.p-top__qa-icon-a {
  top: calc(11.95 * var(--top-u));
  left: calc(38.8 * var(--top-u));
  background-color: var(--top-color-qa-blue);
}
.p-top__qa-icon-q img,
.p-top__qa-icon-a img {
  position: absolute;
  width: calc(10.6 * var(--top-u));
  max-width: none;
  height: calc(11.09 * var(--top-u));
}
.p-top__qa-icon-q img {
  top: calc(38.16 * var(--top-u));
  left: calc(1.45 * var(--top-u));
  transform: rotate(17.97deg);
}
.p-top__qa-icon-a img {
  top: calc(38.16 * var(--top-u));
  left: calc(35.3 * var(--top-u));
  transform: rotate(162.03deg) scaleY(-1);
}
.p-top__qa-title {
  margin-top: calc(8 * var(--top-u));
  color: var(--top-color-text);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(32 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}
.p-top__qa-title-2 {
  letter-spacing: -0.03em;
}
/* 灰色の飾り線（PNGは透明の余白込み） */
.p-top__qa-deco {
  position: absolute;
  max-width: none;
  pointer-events: none;
}
.p-top__qa-deco--1 {
  top: calc(-2.72 * var(--top-u));
  left: calc(72.46 * var(--top-u));
  width: calc(37 * var(--top-u));
  height: calc(29 * var(--top-u));
  transform: scaleX(-1);
}
.p-top__qa-deco--2 {
  top: calc(151.18 * var(--top-u));
  left: calc(5.78 * var(--top-u));
  width: calc(31 * var(--top-u));
  height: calc(22 * var(--top-u));
  transform: scaleY(-1);
}
.p-top__qa-deco--3 {
  top: calc(7.27 * var(--top-u));
  left: calc(321.04 * var(--top-u));
  width: calc(27 * var(--top-u));
  height: calc(28 * var(--top-u));
  transform: scaleX(-1);
}

/* 担当スタッフの紹介 */
.p-top__qa-intro {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  height: calc(179 * var(--top-u));
  padding: 0 calc(16 * var(--top-u));
  filter: drop-shadow(calc(4 * var(--top-u)) calc(4 * var(--top-u)) 0 var(--top-color-qa-shadow));
}
.p-top__qa-intro-staff {
  position: absolute;
  top: calc(-3.21 * var(--top-u));
  left: calc(216.91 * var(--top-u));
  width: calc(129.66 * var(--top-u));
  max-width: none;
  height: calc(210.14 * var(--top-u));
  filter: drop-shadow(0 0 calc(2 * var(--top-u)) var(--top-color-qa-shadow));
}
.p-top__qa-name {
  position: relative;
  z-index: 1;
  width: calc(155 * var(--top-u));
  margin: 0 auto;
  padding: calc(4 * var(--top-u)) calc(12 * var(--top-u));
  border-radius: calc(2 * var(--top-u));
  background-color: var(--top-color-gray);
  color: var(--top-color-white);
  font-family: var(--top-font-maru);
  font-size: max(var(--top-fmin, 0px), calc(13 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  white-space: nowrap;
}
.p-top__qa-arrows {
  display: block;
  width: calc(48 * var(--top-u));
  height: calc(46 * var(--top-u));
  margin: calc(16 * var(--top-u)) auto 0;
}
/* 質問と質問の間の下向き三角 */
.p-top__qa-sep {
  display: block;
  width: calc(41.57 * var(--top-u));
  height: calc(15.75 * var(--top-u));
  margin: calc(21.25 * var(--top-u)) auto 0;
  transform: rotate(180deg);
}

/* 吹き出し（紹介・回答で共通） */
.p-top__qa-bubble {
  position: relative;
  border: 1px solid var(--top-color-qa-line);
  border-radius: calc(58 * var(--top-u));
  background-color: var(--top-color-white);
  color: var(--top-color-text);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
}
.p-top__qa-bubble p + p {
  margin-top: calc(2 * var(--top-u));
}
.p-top__qa-bubble--intro {
  flex-shrink: 0;
  width: calc(193 * var(--top-u));
  height: calc(133 * var(--top-u));
  padding: calc(16 * var(--top-u)) calc(22 * var(--top-u));
}
.p-top__qa-pill {
  display: inline-block;
  margin-right: calc(1 * var(--top-u));
  padding: calc(4 * var(--top-u)) calc(6 * var(--top-u));
  border: 0.5px solid rgba(255, 255, 255, 0.55);
  border-radius: calc(40 * var(--top-u));
  background-color: var(--top-color-qa-pill);
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1;
  vertical-align: top;
}
.p-top__qa-bubble-red {
  color: var(--top-color-red);
  line-height: 1.3;
  letter-spacing: -0.04em;
}
/* しっぽ：三角を回転して置き、つなぎ目の線を白い小片で隠す（カンプの重なりどおり） */
.p-top__qa-tail,
.p-top__qa-patch {
  position: absolute;
  max-width: none;
}
.p-top__qa-tail img {
  position: absolute;
  top: 0;
  left: 6.7%;
  width: 86.6%;
  max-width: none;
  height: 75%;
}
.p-top__qa-tail--intro {
  top: calc(104.95 * var(--top-u));
  left: calc(172.52 * var(--top-u));
  width: calc(19.67 * var(--top-u));
  height: calc(19.33 * var(--top-u));
  transform: rotate(129.71deg);
}
.p-top__qa-patch--intro {
  top: calc(109.05 * var(--top-u));
  left: calc(169.37 * var(--top-u));
  width: calc(19.45 * var(--top-u));
  height: calc(4.09 * var(--top-u));
  transform: rotate(-54.85deg);
}
.p-top__qa-tail--1 {
  top: calc(54.51 * var(--top-u));
  left: calc(206.31 * var(--top-u));
  width: calc(15.11 * var(--top-u));
  height: calc(14.85 * var(--top-u));
  transform: rotate(129.71deg);
}

.p-top__qa-bubble--2 {
  left: 0;
  width: calc(261 * var(--top-u));
}
.p-top__qa-tail--2 {
  top: calc(61.52 * var(--top-u));
  left: calc(243.02 * var(--top-u));
  width: calc(12.18 * var(--top-u));
  height: calc(11.97 * var(--top-u));
  transform: rotate(129.71deg);
}
.p-top__qa-staff--2 {
  left: calc(245.7 * var(--top-u));
}
/* 3つ目：3行の吹き出し（1行目だけ小さい） */
.p-top__qa-a-head .p-top__qa-bubble.p-top__qa-bubble--3 {
  top: calc(2.53 * var(--top-u));
  left: 0;
  width: calc(257 * var(--top-u));
  height: calc(105 * var(--top-u));
}
.p-top__qa-bubble-s {
  font-size: max(var(--top-fmin, 0px), calc(13 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__qa-tail--3 {
  top: calc(87.05 * var(--top-u));
  left: calc(234.44 * var(--top-u));
  width: calc(12.18 * var(--top-u));
  height: calc(11.97 * var(--top-u));
  transform: rotate(138.4deg);
}

/* 質問と回答 */
.p-top__qa-item {
  width: calc(335 * var(--top-u));
  margin: calc(16 * var(--top-u)) auto 0;
}
/* 質問：点線の枠の内側に、少しずらした灰色の面を敷く */
.p-top__qa-q {
  position: relative;
  padding: calc(8 * var(--top-u));
  border: 1px dashed var(--top-color-gray);
  color: var(--top-color-text);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  white-space: nowrap;
}
.p-top__qa-q::before {
  content: "";
  position: absolute;
  top: calc(4.35 * var(--top-u));
  left: calc(5.07 * var(--top-u));
  z-index: -1;
  width: calc(334.47 * var(--top-u));
  height: calc(61.52 * var(--top-u));
  background-color: var(--top-color-gray-pale);
}
.p-top__qa-face {
  position: absolute;
  top: calc(7.56 * var(--top-u));
  left: -1px;
  width: calc(47.77 * var(--top-u));
  max-width: none;
  height: calc(61.44 * var(--top-u));
}
/* 回答：吹き出し＋スタッフ（高さはスタッフ画像に合わせる） */
.p-top__qa-a-head {
  position: relative;
  height: calc(114.75 * var(--top-u));
  margin-top: calc(8 * var(--top-u));
}
.p-top__qa-a-head .p-top__qa-bubble {
  position: absolute;
  top: calc(11.04 * var(--top-u));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: calc(76 * var(--top-u));
  filter: drop-shadow(calc(4 * var(--top-u)) calc(4 * var(--top-u)) 0 var(--top-color-qa-line));
}
.p-top__qa-bubble--1 {
  left: calc(13.6 * var(--top-u));
  width: calc(219 * var(--top-u));
}
.p-top__qa-staff {
  position: absolute;
  top: 0;
  max-width: none;
  height: calc(114.75 * var(--top-u));
}
.p-top__qa-staff--1 {
  left: calc(238.69 * var(--top-u));
  width: calc(82.68 * var(--top-u));
}
.p-top__qa-staff--wide {
  left: calc(238.99 * var(--top-u));
  width: calc(89.31 * var(--top-u));
}
.p-top__qa-a-body {
  padding: calc(16 * var(--top-u)) calc(20 * var(--top-u));
  background-color: var(--top-color-white);
  color: var(--top-color-text);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.8;
}
.p-top__qa-a-body strong {
  color: var(--top-color-red);
  font-weight: 700;
}

/* ---------- 選ばれる5つの証拠 ---------- */
/* 背景：緑の地に芝生の写真を「焼き込みカラー」で重ねる（上の2枚分は濃く、以降は半透明） */
.p-top__proof {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: calc(24 * var(--top-u)) calc(12 * var(--top-u)) calc(48 * var(--top-u));
  background-color: var(--top-color-green-proof);
}
.p-top__proof::before,
.p-top__proof::after {
  content: "";
  position: absolute;
  left: 50%;
  z-index: -1;
  width: calc(847.04 * var(--top-u));
  margin-left: calc(-423.52 * var(--top-u));
  background: url("../images/top-renewal/proof-bg.webp") 0 0 / 100% calc(566.76 * var(--top-u)) repeat-y;
  mix-blend-mode: color-burn;
}
.p-top__proof::before {
  top: 0;
  height: calc(1133.5 * var(--top-u));
}
.p-top__proof::after {
  top: calc(1133.5 * var(--top-u));
  bottom: 0;
  opacity: 0.5;
}

/* 見出し「日本人工芝計画が選ばれる 5つの証拠」 */
/* HTMLは文の順（sub→num→main）。gridで「５」を左の列に2行ぶち抜きで置く */
.p-top__proof-title {
  position: relative;
  display: grid;
  grid-template-columns: auto auto;
  align-items: end;
  justify-content: center;
  width: calc(279.75 * var(--top-u));
  margin: 0 auto;
  padding-top: calc(64 * var(--top-u));
  color: var(--top-color-cream);
  font-family: var(--top-font-kaku);
  white-space: nowrap;
}
.p-top__proof-title-deco {
  position: absolute;
  top: calc(36.77 * var(--top-u));
  left: calc(-11.88 * var(--top-u));
  width: calc(37 * var(--top-u));
  max-width: none;
  height: calc(29 * var(--top-u));
}
/* 全角の「５」は文字幅が枠（79.75）より広いため、flexで左右均等にはみ出させて中央に置く */
.p-top__proof-title-num {
  grid-column: 1;
  grid-row: 1 / 3;
  display: flex;
  justify-content: center;
  width: calc(79.75 * var(--top-u));
  color: var(--top-color-orange);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(110 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 0.75;
  text-align: center;
  text-shadow: 0 calc(4 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.16);
  /* クリーム色のふち取り（線を文字の外側だけに見せる） */
  -webkit-text-stroke: calc(4 * var(--top-u)) var(--top-color-cream);
  paint-order: stroke fill;
  transform: skewX(-8deg) scaleY(0.99);
}
.p-top__proof-title-sub {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  display: block;
  padding: 0 calc(4 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  text-shadow: 0 calc(4 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.16);
}
/* 文字の下の曲線（少し傾ける） */
.p-top__proof-title-swoosh {
  position: absolute;
  top: calc(10.6 * var(--top-u));
  left: calc(4.3 * var(--top-u));
  width: calc(197 * var(--top-u));
  max-width: none;
  height: calc(31 * var(--top-u));
  transform: rotate(3.33deg);
}
.p-top__proof-title-main {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  align-items: flex-end;
  gap: calc(4 * var(--top-u));
  margin-top: calc(20 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(44 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 900;
  line-height: 1;
  text-shadow: 0 calc(4 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.16);
}
.p-top__proof-title-box {
  padding: 0 calc(3 * var(--top-u)) calc(4 * var(--top-u));
  border-radius: 0 0 0 calc(8 * var(--top-u));
  background-color: var(--top-color-cream);
  color: var(--top-color-green-proof);
  text-shadow: none;
}
.p-top__proof-title-box--2 {
  margin-left: calc(-1 * var(--top-u));
  border-radius: 0 calc(8 * var(--top-u)) 0 0;
}

/* カード共通 */
.p-top__proof-card {
  display: flow-root;
  margin-top: calc(32 * var(--top-u));
  padding: calc(32 * var(--top-u)) calc(16 * var(--top-u));
  border-radius: calc(4 * var(--top-u));
  background: linear-gradient(var(--top-color-cream) 50%, var(--top-color-white));
  color: var(--top-color-text);
}
.p-top__proof-card + .p-top__proof-card {
  margin-top: calc(20 * var(--top-u));
}
/* 証拠04・05：写真を端まで広げるため左右の余白は中身ごとに付ける */
.p-top__proof-card--wide {
  padding-right: 0;
  padding-left: 0;
  background: linear-gradient(var(--top-color-cream) 72.6%, var(--top-color-white));
}
.p-top__proof-card--wide .p-top__proof-head {
  padding: 0 calc(16 * var(--top-u));
}
.p-top__proof-red {
  color: var(--top-color-red);
}
.p-top__proof-en {
  font-family: var(--top-font-num);
}
/* 「証拠01」ラベル＋白い帯の見出し */
.p-top__proof-label {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  gap: calc(2 * var(--top-u));
}
.p-top__proof-label-box {
  padding: calc(2 * var(--top-u)) calc(4 * var(--top-u)) calc(4 * var(--top-u));
  border-radius: 0 0 0 calc(4 * var(--top-u));
  background-color: var(--top-color-orange);
  color: var(--top-color-cream);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
}
.p-top__proof-label-box--2 {
  border-radius: 0 calc(4 * var(--top-u)) 0 0;
}
.p-top__proof-label-num {
  margin-left: calc(2 * var(--top-u));
  color: rgba(255, 153, 0, 0.5);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 0.75;
  text-shadow: 0 calc(4 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
  transform: skewX(-8deg) scaleY(0.99);
}
.p-top__proof-heading {
  position: relative;
  z-index: 1;
  margin-top: calc(16 * var(--top-u));
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(28 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__proof-heading-line {
  display: block;
  width: fit-content;
  padding: calc(8 * var(--top-u));
  border-radius: 0 calc(8 * var(--top-u)) 0 0;
  background-color: var(--top-color-white);
  filter: drop-shadow(0 calc(4 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08));
}
.p-top__proof-heading-line + .p-top__proof-heading-line {
  margin-top: calc(4 * var(--top-u));
}
/* 本文 */
.p-top__proof-text {
  margin-top: calc(24 * var(--top-u));
  padding: 0 calc(12 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
}
.p-top__proof-text strong,
.p-top__proof-case strong,
.p-top__proof-guarantee-text strong {
  color: var(--top-color-red);
  font-weight: 700;
}
/* 証拠03の本文はカンプで左右の余白なし */
.p-top__proof-text--full {
  padding: 0;
}
.p-top__proof-text p + p {
  margin-top: calc(16 * var(--top-u));
}

/* スライダー（証拠01・03） */
.p-top__proof-slider {
  margin-top: calc(24 * var(--top-u));
}
.p-top__proof-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(16 * var(--top-u));
  margin-top: calc(24 * var(--top-u));
}
.p-top__proof-nav-btn {
  position: relative;
  width: calc(40 * var(--top-u));
  height: calc(40 * var(--top-u));
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.p-top__proof-nav-btn:disabled {
  cursor: default;
}
/* 矢印SVGは影の余白込みのため、ボタンからはみ出させて配置 */
.p-top__proof-nav-btn img {
  position: absolute;
  top: calc(-6 * var(--top-u));
  left: calc(-8 * var(--top-u));
  width: calc(56 * var(--top-u));
  max-width: none;
  height: calc(56 * var(--top-u));
}
.p-top__proof-nav-btn--next img {
  transform: scaleX(-1);
}
.p-top__proof-dots {
  display: flex;
  gap: calc(8 * var(--top-u));
}
.p-top__proof-dot {
  width: calc(8 * var(--top-u));
  height: calc(8 * var(--top-u));
  border-radius: 50%;
  background-color: var(--top-color-orange-light);
}
.p-top__proof-dot.is-active {
  background-color: var(--top-color-orange);
}
.p-top__proof-nav--green .p-top__proof-dot {
  background-color: rgba(36, 155, 69, 0.5);
}
.p-top__proof-nav--green .p-top__proof-dot.is-active {
  background-color: var(--top-color-green-dark);
}

/* お客様の事例カード（名前・写真・うれしい声） */
/* SPの証拠01：スライダーの高さを表示中の事例に合わせる（いちばん長い事例にそろえると、短い事例でボタンの上が空くため。2026-10-23）
   表示していない事例は高さ0（中身ははみ出したまま、スライダーの枠で切れる） */
.p-top__proof-slides:has(.p-top__proof-mail) > :not(.is-active) {
  height: 0;
}
.p-top__proof-case {
  display: flow-root;
  padding: calc(20 * var(--top-u)) calc(12 * var(--top-u));
  border: 1px solid var(--top-color-orange);
  border-radius: calc(8 * var(--top-u));
  background-color: var(--top-color-white);
  text-align: center;
}
/* 名前・写真・メール・うれしい声の間隔 */
.p-top__proof-case > * + * {
  margin-top: calc(15 * var(--top-u));
}
.p-top__proof-case-name {
  font-family: var(--top-font-maru);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.p-top__proof-case-name-main {
  background: linear-gradient(transparent 44%, var(--top-color-lemon) 44%);
  font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__proof-ba {
  width: 100%;
}
.p-top__proof-ba-item {
  position: relative;
  overflow: hidden;
  height: calc(150 * var(--top-u));
  border: 1px solid var(--top-color-orange);
  border-radius: calc(4 * var(--top-u));
}
.p-top__proof-ba-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top__proof-ba-item--after {
  border-width: 3px;
}
.p-top__proof-ba-label {
  position: absolute;
  top: calc(-1.94 * var(--top-u));
  left: -2px;
  padding: calc(6 * var(--top-u)) calc(6 * var(--top-u)) calc(4 * var(--top-u));
  border: 1px solid var(--top-color-orange);
  border-radius: 0 0 calc(4 * var(--top-u)) 0;
  background-color: var(--top-color-white);
  color: var(--top-color-orange);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1;
}
.p-top__proof-ba-item--after .p-top__proof-ba-label {
  top: calc(-3.44 * var(--top-u));
  left: -3px;
  background-color: var(--top-color-orange);
  color: var(--top-color-white);
  font-weight: 700;
}
.p-top__proof-ba-arrow {
  display: block;
  width: calc(32 * var(--top-u));
  height: calc(18 * var(--top-u));
  margin: calc(4 * var(--top-u)) auto;
}
/* ビフォー写真がない事例：施工後の写真2枚を矢印なしで並べる */
.p-top__proof-ba--after-only > * + * {
  margin-top: calc(8 * var(--top-u));
}
/* PCだけ表示する「実際のメール」 */
.p-top__proof-mail-label {
  display: none;
}
/* メールのスクリーンショットは横長で文字が小さいため、カードの幅いっぱいに全文を見せる（カンプは縦長の小さいサムネイル） */
.p-top__proof-mail {
  display: block;
  width: 100%;
  /* 事例ごとに縦横比が違うので、枠の高さをそろえる。メールは枠いっぱいに左上から見せ、はみ出す分は切る
     （全文が読めなくてよい。2026-10-23）。縦長のLINEは --tall で全体を収める */
  height: calc(200 * var(--top-u));
  object-fit: cover;
  object-position: left top;
  background-color: var(--top-color-white);
  border: 1px solid var(--top-color-gray-pale);
  box-shadow: calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.16);
}
.p-top__proof-mail--tall {
  object-fit: contain;
  object-position: center;
}
.p-top__proof-case-photo {
  display: block;
  width: 100%;
  height: calc(150 * var(--top-u));
  border-radius: calc(4 * var(--top-u));
  box-shadow: 0 calc(4 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
  object-fit: cover;
}
.p-top__proof-voice {
  isolation: isolate;
  text-align: left;
}
/* 緑のラベルは下の黄色い枠に11px重なる */
.p-top__proof-voice-label {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: calc(6 * var(--top-u));
  width: fit-content;
  margin: 0 auto calc(-11 * var(--top-u));
  padding: calc(4 * var(--top-u)) calc(12 * var(--top-u));
  overflow: hidden;
  border-radius: calc(40 * var(--top-u));
  background-color: var(--top-color-green-dark);
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
}
.p-top__proof-voice-label img {
  position: relative;
  width: calc(24 * var(--top-u));
  height: calc(24 * var(--top-u));
}
.p-top__proof-voice-label .p-top__proof-voice-ray {
  position: absolute;
  top: calc(-31.69 * var(--top-u));
  left: calc(88.15 * var(--top-u));
  width: calc(197.6 * var(--top-u));
  max-width: none;
  height: calc(85.6 * var(--top-u));
}
.p-top__proof-voice-body {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: calc(20 * var(--top-u)) calc(16 * var(--top-u));
  border-radius: calc(24 * var(--top-u)) calc(24 * var(--top-u)) calc(24 * var(--top-u)) 0;
  background-color: var(--top-color-lemon);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
}
/* 斜めの光の帯 */
.p-top__proof-voice-body::before {
  content: "";
  position: absolute;
  background: url("../images/top-renewal/proof-voice-band-1.svg") 0 0 / 100% 100% no-repeat;
}
.p-top__proof-voice-body--1::before {
  top: 0;
  left: calc(48.88 * var(--top-u));
  width: calc(456.25 * var(--top-u));
  height: calc(197.65 * var(--top-u));
}
.p-top__proof-voice-body--2::before {
  top: calc(-5.83 * var(--top-u));
  left: calc(19.18 * var(--top-u));
  width: calc(526.81 * var(--top-u));
  height: calc(228.22 * var(--top-u));
  background-image: url("../images/top-renewal/proof-voice-band-2.svg");
}
.p-top__proof-voice-body p {
  position: relative;
}

/* 証拠02：Googleクチコミ（全体を80%の不透明度で） */
.p-top__proof-card--google .p-top__proof-google,
.p-top__proof-card--google .p-top__proof-text {
  margin-top: calc(40 * var(--top-u));
}
.p-top__proof-google-badge {
  position: relative;
  width: calc(232 * var(--top-u));
  height: calc(231 * var(--top-u));
  margin: 0 auto;
  opacity: 0.8;
}
.p-top__proof-google-img {
  position: absolute;
  top: calc(-13.43 * var(--top-u));
  left: calc(-22.65 * var(--top-u));
  width: calc(277.31 * var(--top-u));
  max-width: none;
  height: calc(257.86 * var(--top-u));
}
.p-top__proof-google-text {
  position: absolute;
  top: calc(46.82 * var(--top-u));
  left: calc(46.99 * var(--top-u));
  text-align: center;
  width: calc(138.02 * var(--top-u));
  font-family: var(--top-font-num);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.p-top__proof-google-name,
.p-top__proof-google-sub,
.p-top__proof-google-score {
  display: block;
}
.p-top__proof-google-sub,
.p-top__proof-google-score {
  margin-top: calc(4 * var(--top-u));
}
.p-top__proof-google-score {
  width: fit-content;
  margin-right: auto;
  margin-left: auto;
}
.p-top__proof-google-name {
  font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__proof-google-sub {
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
}
/* 金色のグラデーション文字（影は文字の形に沿う drop-shadow で付ける） */
.p-top__proof-google-score {
  background: linear-gradient(241.28deg, #cb9d39 1.62%, #fad034 10.95%, #c69939 21.01%, #e6ba32 57.48%, #fde986 74.46%, #e2b633 86.41%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: max(var(--top-fmin, 0px), calc(64 * max(var(--top-u), var(--top-umin, 0px))));
  letter-spacing: -0.04em;
  filter: drop-shadow(calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.16));
}
.p-top__proof-google-star {
  font-size: max(var(--top-fmin, 0px), calc(48 * max(var(--top-u), var(--top-umin, 0px))));
}
/* PCだけ表示する口コミの抜粋 */
.p-top__proof-google-voices {
  display: none;
}
.p-top__proof-google-note {
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 400;
  line-height: 1;
  text-align: center;
}

/* 証拠03：職人紹介 */
/* 紹介文の長さが違っても、カードの高さをいちばん長い人にそろえる（2026-10-30） */
.p-top__proof-slides:has(.p-top__proof-staff) {
  align-items: stretch;
}
.p-top__proof-staff {
  height: 100%;
  overflow: hidden;
  padding-bottom: calc(20 * var(--top-u));
  border: 2px solid var(--top-color-green-deep);
  border-radius: calc(8 * var(--top-u));
  background-color: var(--top-color-white);
}
.p-top__proof-staff-tab {
  display: flex;
}
.p-top__proof-staff-tab-text {
  display: flex;
  align-items: center;
  height: calc(28 * var(--top-u));
  padding: 0 calc(12 * var(--top-u));
  background-color: var(--top-color-green-deep);
  color: var(--top-color-white);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
/* 三角を四角に1px重ねる（小数の位置で隣り合うと、境目に白い線が出るため） */
.p-top__proof-staff-tab img {
  margin-left: -1px;
  width: calc(28.89 * var(--top-u));
  height: calc(28 * var(--top-u));
}
.p-top__proof-staff-tab-text span {
  transform: skewX(-19deg) scaleY(0.95);
}
.p-top__proof-staff-photo {
  position: relative;
  margin-top: calc(12 * var(--top-u));
  padding: 0 calc(16 * var(--top-u));
}
.p-top__proof-staff-img {
  display: block;
  width: 100%;
  height: calc(177.21 * var(--top-u));
  border: 3px solid var(--top-color-white);
  border-radius: calc(8 * var(--top-u));
  box-shadow: 0 calc(4 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
  object-fit: cover;
}
/* 施工歴のバッジ：写真の右下からはみ出す */
.p-top__proof-staff-badge {
  position: absolute;
  top: calc(124.98 * var(--top-u));
  left: calc(216.38 * var(--top-u));
  z-index: 1;
  width: calc(91.54 * var(--top-u));
  height: calc(104.46 * var(--top-u));
  color: var(--top-color-white);
  font-family: var(--top-font-num);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.p-top__proof-staff-badge img {
  position: absolute;
  max-width: none;
}
.p-top__proof-staff-badge-line {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.p-top__proof-staff-badge-fill {
  top: calc(4.57 * var(--top-u));
  left: calc(4.08 * var(--top-u));
  width: calc(83.63 * var(--top-u));
  height: calc(95.33 * var(--top-u));
}
.p-top__proof-staff-badge-label,
.p-top__proof-staff-badge-year {
  position: absolute;
}
.p-top__proof-staff-badge-label {
  top: calc(29.7 * var(--top-u));
  left: calc(23.4 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__proof-staff-badge-year {
  top: calc(48.29 * var(--top-u));
  left: calc(26.4 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(32 * max(var(--top-u), var(--top-umin, 0px))));
  text-shadow: 0 calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08);
}
.p-top__proof-staff-badge-year span {
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__proof-staff-body {
  margin-top: calc(16 * var(--top-u));
  padding: 0 calc(16 * var(--top-u));
}
/* 役職の行（カンプの「人工芝施工技術者」）は、役職の情報がないため外した（2026-10-30） */
.p-top__proof-staff-name {
  display: flex;
  align-items: flex-end;
  gap: calc(8 * var(--top-u));
  color: var(--top-color-green-dark);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.p-top__proof-staff-name-en {
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(13 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 400;
}
.p-top__proof-staff-text {
  margin-top: calc(16 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 400;
  line-height: 1.6;
}
.p-top__proof-staff-text strong {
  font-weight: 700;
}

/* 証拠04・05：保証（写真＋バッジ＋金色の帯） */
.p-top__proof-guarantee {
  position: relative;
  margin-top: calc(24 * var(--top-u));
  padding-bottom: calc(16 * var(--top-u));
  background-color: var(--top-color-white);
}
/* 下の事例カードへ向かう白い三角 */
.p-top__proof-guarantee::after {
  content: "";
  position: absolute;
  top: calc(100% - 4.84 * var(--top-u));
  left: 50%;
  width: calc(88.07 * var(--top-u));
  height: calc(33.37 * var(--top-u));
  background: url("../images/top-renewal/proof-down-white.svg") center / 100% 100% no-repeat;
  transform: translateX(-50%) rotate(180deg);
}
/* 事例カードがない保証（証拠04）は三角を出さない */
.p-top__proof-guarantee:last-child::after {
  content: none;
}
.p-top__proof-guarantee-visual {
  position: relative;
  height: calc(243 * var(--top-u));
  margin-bottom: calc(-25 * var(--top-u));
  background: url("../images/top-renewal/proof-guarantee-4m.webp") center / cover no-repeat;
}
.p-top__proof-guarantee-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(118.23deg, var(--top-color-white) 4.62%, rgba(255, 255, 255, 0) 46.45%);
}
.p-top__proof-guarantee-visual--10y {
  background-image: url("../images/top-renewal/proof-guarantee-10y.webp");
}
.p-top__proof-guarantee-visual--10y::before {
  background: linear-gradient(123.03deg, var(--top-color-white) 16.77%, rgba(255, 255, 255, 0) 44.86%);
}
.p-top__proof-guarantee-badge {
  position: absolute;
  top: calc(8 * var(--top-u));
  left: calc(24 * var(--top-u));
  width: calc(129.98 * var(--top-u));
  height: calc(150.82 * var(--top-u));
}
.p-top__proof-guarantee-plate {
  position: relative;
  margin: 0 calc(16 * var(--top-u));
  padding: calc(16 * var(--top-u)) calc(8 * var(--top-u));
  border: 0.5px solid var(--top-color-white);
  border-radius: calc(2 * var(--top-u));
  background: linear-gradient(182.72deg, #fefefe 21.87%, #f7f6f3 12.51%, #ece8e2 34.33%, #fdfdfd 115.64%);
  filter: drop-shadow(calc(2 * var(--top-u)) calc(4 * var(--top-u)) calc(5 * var(--top-u)) rgba(0, 0, 0, 0.1));
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
.p-top__proof-gold {
  background: linear-gradient(74.44deg, #ac7a2a 15.98%, #dfb138 22.44%, #a57428 37.5%, #a57428 67.09%, #dfb138 77.31%, #a57428 89.68%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
/* 証拠04の帯は22px */
.p-top__proof-guarantee-plate--s {
  font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__proof-guarantee-body {
  margin-top: calc(16 * var(--top-u));
  padding: 0 calc(16 * var(--top-u));
}
.p-top__proof-guarantee-text {
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
}
/* 「気に入らない...？」の吹き出し（点線の枠＋ずらした灰色の面） */
.p-top__proof-worry {
  position: relative;
  isolation: isolate;
  width: calc(226.4 * var(--top-u));
  margin: 0 auto;
}
.p-top__proof-worry::before {
  content: "";
  position: absolute;
  top: calc(3 * var(--top-u));
  left: calc(3.63 * var(--top-u));
  z-index: -1;
  width: calc(226.24 * var(--top-u));
  height: calc(70 * var(--top-u));
  background-color: var(--top-color-gray-pale);
}
.p-top__proof-worry-text {
  padding: calc(4 * var(--top-u)) calc(8 * var(--top-u));
  border: 0.5px dashed var(--top-color-gray);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
}
.p-top__proof-worry-img {
  position: absolute;
  top: calc(-6.66 * var(--top-u));
  left: calc(176.2 * var(--top-u));
  width: calc(40.84 * var(--top-u));
  max-width: none;
  height: calc(82.31 * var(--top-u));
}
.p-top__proof-worry-arrow {
  display: block;
  width: calc(32.09 * var(--top-u));
  height: calc(12.16 * var(--top-u));
  margin: calc(12.05 * var(--top-u)) auto calc(8 * var(--top-u));
  transform: rotate(180deg);
}
/* PCだけ表示する施工例の写真（証拠04） */
.p-top__proof-guarantee-examples {
  display: none;
}
/* 10年保証の対象内容 */
.p-top__proof-cover {
  overflow: hidden;
  margin-top: calc(16 * var(--top-u));
  border: 1px solid var(--top-color-green-dark);
  border-radius: calc(8 * var(--top-u));
}
.p-top__proof-cover-title {
  display: grid;
  place-items: center;
  height: calc(33 * var(--top-u));
  background-color: var(--top-color-green-dark);
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
}
.p-top__proof-cover-list {
  display: grid;
  gap: calc(8 * var(--top-u));
  padding: calc(10 * var(--top-u)) calc(20 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
}
.p-top__proof-cover-list li {
  display: flex;
  align-items: center;
  gap: calc(6 * var(--top-u));
}
.p-top__proof-cover-list li::before {
  content: "";
  flex-shrink: 0;
  width: calc(18 * var(--top-u));
  height: calc(18 * var(--top-u));
  background: url("../images/top-renewal/icon-check-green.svg") center / contain no-repeat;
}
.p-top__proof-cover-note {
  margin-top: calc(16 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
}
/* 注記の下の保証書（施工までの流れ05と同じ白い縁＋薄い影。カンプにないため仮の大きさ） */
.p-top__proof-warranty-doc {
  display: block;
  width: calc(200 * var(--top-u));
  height: auto;
  margin: calc(16 * var(--top-u)) auto 0;
  padding: calc(6 * var(--top-u));
  background-color: var(--top-color-white);
  filter: drop-shadow(0 calc(4 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.12));
}
/* 保証の下のお客様の声 */
.p-top__proof-case--voice {
  margin: calc(48 * var(--top-u)) calc(16 * var(--top-u)) 0;
}

/* ---------- まずは費用から（CTA） ---------- */
/* 「まずは」の丸が上のセクションに15pxはみ出すため、縦ははみ出しを許し、横だけ切る */
.p-top__cost {
  position: relative;
  z-index: 1;
  overflow-x: clip;
  padding: calc(120 * var(--top-u)) calc(12 * var(--top-u));
  background-color: var(--top-color-white);
  text-align: center;
}
/* 背景の飾り（カンプの座標どおり絶対配置） */
.p-top__cost-deco > * {
  position: absolute;
  max-width: none;
}
.p-top__cost-grass-bottom {
  top: calc(676.85 * var(--top-u));
  left: calc(-15.73 * var(--top-u));
  width: calc(406.45 * var(--top-u));
  height: calc(271 * var(--top-u));
  object-fit: cover;
  -webkit-mask: linear-gradient(transparent, #000 57%);
  mask: linear-gradient(transparent, #000 57%);
}
.p-top__cost-dome {
  top: calc(229.09 * var(--top-u));
  left: calc(-49.43 * var(--top-u));
  width: calc(473.87 * var(--top-u));
  height: calc(313.14 * var(--top-u));
}
.p-top__cost-grass-top {
  top: 0;
  left: calc(88.75 * var(--top-u));
  width: calc(286.25 * var(--top-u));
  height: calc(135.83 * var(--top-u));
}
/* 緑のパネル（上端はドーム形のSVGとつながる） */
.p-top__cost-panel {
  top: calc(315.06 * var(--top-u));
  left: calc(12 * var(--top-u));
  width: calc(351 * var(--top-u));
  height: calc(533.35 * var(--top-u));
  border-radius: 0 0 calc(10 * var(--top-u)) calc(10 * var(--top-u));
  background: linear-gradient(var(--top-color-green-dark), var(--top-color-green));
  box-shadow: calc(4 * var(--top-u)) calc(4 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.16);
}
.p-top__cost-swoosh {
  top: 0;
  left: 0;
  width: calc(239.93 * var(--top-u));
  height: calc(96.49 * var(--top-u));
}
.p-top__cost-badge-bg {
  top: calc(-15.48 * var(--top-u));
  left: calc(60.83 * var(--top-u));
  width: calc(103.22 * var(--top-u));
  height: calc(54.59 * var(--top-u));
}
.p-top__cost-badge-tail {
  top: calc(72.99 * var(--top-u));
  left: calc(111.28 * var(--top-u));
  width: calc(25.22 * var(--top-u));
  height: calc(23.28 * var(--top-u));
  transform: rotate(169.14deg);
}
.p-top__cost-badge-tail img {
  position: absolute;
  top: 0;
  left: 6.7%;
  width: 86.6%;
  height: 75%;
}
/* 「まずは」の丸（少し傾ける） */
.p-top__cost-badge {
  position: absolute;
  top: calc(-8.77 * var(--top-u));
  left: calc(65.4 * var(--top-u));
  display: grid;
  place-items: center;
  width: calc(97.51 * var(--top-u));
  height: calc(94.66 * var(--top-u));
  border-radius: calc(58.5 * var(--top-u));
  background-color: var(--top-color-green-dark);
  color: var(--top-color-white);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.12em;
  white-space: nowrap;
  transform: rotate(-7.35deg);
}
.p-top__cost-badge-deco {
  position: absolute;
  top: calc(70.05 * var(--top-u));
  left: calc(-29.83 * var(--top-u));
  width: calc(37.61 * var(--top-u));
  height: calc(30.88 * var(--top-u));
  transform: rotate(14.35deg) scaleY(-1);
}
.p-top__cost-badge-deco img {
  position: absolute;
  top: calc(-3.31 * var(--top-u));
  left: calc(-1.67 * var(--top-u));
  width: calc(45 * var(--top-u));
  max-width: none;
  height: calc(35 * var(--top-u));
}
.p-top__cost-title {
  position: relative;
  color: var(--top-color-green-dark);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(32 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__cost-title-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(2 * var(--top-u));
}
.p-top__cost-title-line + .p-top__cost-title-line {
  margin-top: calc(6 * var(--top-u));
}
.p-top__cost-title-box {
  padding: calc(2 * var(--top-u)) calc(4 * var(--top-u)) calc(4 * var(--top-u));
  border-radius: 0 0 0 calc(4 * var(--top-u));
  background-color: var(--top-color-green-dark);
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(36 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1;
}
.p-top__cost-title-box--2 {
  border-radius: 0 calc(4 * var(--top-u)) 0 0;
}
/* 写真3枚（大1＋小2） */
.p-top__cost-photos {
  position: relative;
  display: flex;
  gap: calc(2.85 * var(--top-u));
  width: fit-content;
  margin: calc(24 * var(--top-u)) auto 0;
  padding: calc(1.43 * var(--top-u));
  border: 3px solid var(--top-color-white);
  border-radius: calc(4 * var(--top-u));
  background-color: var(--top-color-white);
  box-shadow: calc(2 * var(--top-u)) calc(4 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
}
.p-top__cost-photo {
  display: block;
  object-fit: cover;
}
.p-top__cost-photo--main {
  width: calc(203 * var(--top-u));
  height: calc(159 * var(--top-u));
  border-radius: calc(4 * var(--top-u)) 0 0 calc(4 * var(--top-u));
}
.p-top__cost-photo-col {
  width: calc(104 * var(--top-u));
}
.p-top__cost-photo--1,
.p-top__cost-photo--2 {
  width: 100%;
  aspect-ratio: 4 / 3;
}
.p-top__cost-photo--1 {
  border-radius: 0 calc(4 * var(--top-u)) 0 0;
}
.p-top__cost-photo--2 {
  margin-top: calc(3.39 * var(--top-u));
  border-radius: 0 0 calc(4 * var(--top-u)) 0;
}
.p-top__cost-lead {
  position: relative;
  margin-top: calc(24 * var(--top-u));
  color: var(--top-color-white);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
}
.p-top__cost-lead-row {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: calc(2 * var(--top-u));
  margin-top: calc(2 * var(--top-u));
}
.p-top__cost-pill {
  padding: calc(4 * var(--top-u)) calc(8 * var(--top-u));
  border: 0.5px solid rgba(255, 255, 255, 0.55);
  border-radius: calc(40 * var(--top-u));
  background-color: var(--top-color-green);
  line-height: 1;
}
.p-top__cost-lead-note {
  margin-top: calc(2 * var(--top-u));
}
/* ボタン：左右の余白はセクションより広い（カンプどおり幅327） */
.p-top__cost-cta {
  position: relative;
  display: grid;
  gap: calc(12 * var(--top-u));
  margin: calc(24 * var(--top-u)) calc(-12 * var(--top-u)) 0;
  padding: 0 calc(24 * var(--top-u));
  text-align: left;
}
.p-top__cta-card--cost {
  padding: calc(16 * var(--top-u)) calc(12 * var(--top-u));
  background-color: rgba(255, 255, 255, 0.9);
}

/* ---------- 施工までの流れ ---------- */
/* 背景：薄いドット柄を縦に繰り返す */
/* 下の余白：次のセクションの「さらに」の丸が69pxはみ出してくるため、その分を足す */
.p-top__flow {
  position: relative;
  isolation: isolate;
  padding: calc(64 * var(--top-u)) calc(30 * var(--top-u)) calc(100 * var(--top-u));
  background-color: var(--top-color-white);
}
.p-top__flow::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url("../images/top-renewal/flow-bg.webp") 0 0 / calc(375 * var(--top-u)) calc(666.67 * var(--top-u)) repeat-y;
  opacity: 0.3;
}
/* 右上の緑の飾り線 */
.p-top__flow-deco {
  position: absolute;
  top: calc(43.43 * var(--top-u));
  left: calc(295.35 * var(--top-u));
  width: calc(48 * var(--top-u));
  max-width: none;
  height: calc(25 * var(--top-u));
  transform: rotate(-147.7deg) scaleY(-1);
}
/* 見出し：文字の下にぼかした黄色の光 */
.p-top__flow-title {
  position: relative;
  z-index: 0;
  width: fit-content;
  margin: 0 auto;
  color: var(--top-color-green-dark);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(36 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__flow-title-deco {
  position: absolute;
  top: calc(25.28 * var(--top-u));
  left: calc(-5.56 * var(--top-u));
  z-index: -1;
  width: calc(264 * var(--top-u));
  max-width: none;
  height: calc(37 * var(--top-u));
}
.p-top__flow-lead {
  margin-top: calc(20 * var(--top-u));
  color: var(--top-color-text);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  white-space: nowrap;
}
.p-top__flow-slider {
  margin-top: calc(20 * var(--top-u));
}
/* カードの高さをそろえる（スライダー共通は上寄せ）。影が切れないよう内側に余白 */
.p-top__flow-list.p-top__flow-list {
  --top-slider-pad: calc(10 * var(--top-u));
  align-items: stretch;
}
/* カード：番号の丸を写真の左上に重ねる */
.p-top__flow-step {
  position: relative;
  padding: calc(16 * var(--top-u));
  border-radius: calc(12 * var(--top-u));
  background-color: var(--top-color-white);
  box-shadow: calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08);
}
.p-top__flow-num {
  position: absolute;
  top: calc(8 * var(--top-u));
  left: calc(8 * var(--top-u));
  z-index: 2;
  display: grid;
  place-items: center;
  width: calc(48 * var(--top-u));
  height: calc(48 * var(--top-u));
  border: 4px solid var(--top-color-white);
  border-radius: 50%;
  background-color: var(--top-color-green);
  color: var(--top-color-white);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
}
.p-top__flow-step--dark .p-top__flow-num {
  background-color: var(--top-color-green-dark);
}
/* 05の保証書を写真に重ねるための基準 */
.p-top__flow-body {
  position: relative;
}
/* 写真の右下に重ねる保証書（白い縁＋薄い影） */
.p-top__flow-doc {
  position: absolute;
  top: calc(55.19 * var(--top-u));
  right: calc(10.52 * var(--top-u));
  width: calc(77.14 * var(--top-u));
  height: auto;
  padding: calc(4 * var(--top-u));
  background-color: var(--top-color-white);
  filter: drop-shadow(0 calc(4 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.08));
}
.p-top__flow-img {
  display: block;
  width: 100%;
  height: calc(150 * var(--top-u));
  border-radius: calc(8 * var(--top-u));
  object-fit: cover;
}
.p-top__flow-name {
  margin-top: calc(16 * var(--top-u));
  color: var(--top-color-green);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.p-top__flow-step--dark .p-top__flow-name {
  color: var(--top-color-green-dark);
}
.p-top__flow-name--l {
  font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__flow-red {
  color: var(--top-color-red);
}
.p-top__flow-text {
  margin-top: calc(8 * var(--top-u));
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
}
/* 1行だけの説明はカンプで行の高さが「標準」 */
.p-top__flow-text--1line {
  line-height: 1.45;
}
/* お問い合わせ方法（2列） */
.p-top__flow-contact {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: calc(4 * var(--top-u));
  margin-top: calc(16 * var(--top-u));
}
.p-top__flow-contact-link {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--top-u));
  height: calc(48 * var(--top-u));
  padding: calc(12 * var(--top-u));
  border-radius: calc(8 * var(--top-u));
  background-color: var(--top-color-green-pale);
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.p-top__flow-contact-link img {
  flex-shrink: 0;
  width: calc(24 * var(--top-u));
}
.p-top__flow-contact-sim span {
  display: block;
  font-size: max(var(--top-fmin, 0px), calc(12 * max(var(--top-u), var(--top-umin, 0px))));
  letter-spacing: -0.1em;
}
@media (hover: hover) {
  .p-top__flow-contact-link:hover {
    opacity: 0.8;
  }
}

/* ---------- さらに W保証付き ---------- */
.p-top__warranty {
  position: relative;
  z-index: 1;
  padding-bottom: calc(40 * var(--top-u));
  background-color: var(--top-color-orange-light);
}
.p-top__warranty-head {
  position: relative;
  padding: calc(44 * var(--top-u)) 0 calc(24 * var(--top-u));
  background-color: var(--top-color-orange);
  color: var(--top-color-white);
  font-family: var(--top-font-kaku);
  font-weight: 700;
  text-align: center;
  white-space: nowrap;
}
/* 「さらに」の丸：上のセクションに69pxはみ出す */
.p-top__warranty-badge {
  position: absolute;
  top: calc(-68.81 * var(--top-u));
  left: calc(143.29 * var(--top-u));
  width: calc(97.51 * var(--top-u));
  height: calc(94.66 * var(--top-u));
}
.p-top__warranty-badge > * {
  position: absolute;
}
.p-top__warranty-badge-circle {
  inset: 0;
  display: grid;
  place-items: center;
  border-radius: calc(58.5 * var(--top-u));
  background-color: var(--top-color-orange);
  color: var(--top-color-lemon);
  font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1.2;
  letter-spacing: -0.12em;  /* 白いふち取り（オレンジの帯の上でも形が見えるように） */
  box-shadow: 0 0 0 calc(2 * var(--top-u)) var(--top-color-white);
}
/* 左右の3本線：書き出し用のカンプ node 64:29 を左右別の画像にした（回転済み。2026-10-23） */
.p-top__warranty-badge-deco {
  width: calc(41.55 * var(--top-u));
  max-width: none;
  height: auto;
  aspect-ratio: 1;
}
.p-top__warranty-badge-deco--r {
  top: calc(0.57 * var(--top-u));
  left: calc(92.09 * var(--top-u));
}
.p-top__warranty-badge-deco--l {
  top: calc(-2.57 * var(--top-u));
  left: calc(-35.93 * var(--top-u));
}
.p-top__warranty-badge-tail {
  top: calc(82.62 * var(--top-u));
  left: calc(36.14 * var(--top-u));
  width: calc(25.22 * var(--top-u));
  height: calc(23.28 * var(--top-u));
  transform: rotate(180deg);
}
/* しっぽの白いふち取り（白い線付きの画像）：丸より奥に置き、つなぎ目は上に重ねたしっぽで隠す */
.p-top__warranty-badge-tail--outline img {
  overflow: visible;
}
.p-top__warranty-badge-tail img {
  position: absolute;
  top: 0;
  left: 6.7%;
  width: 86.6%;
  height: 75%;
}
.p-top__warranty-title {
  position: relative;
  line-height: 1.2;
}
.p-top__warranty-title-sub {
  display: block;
  font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__warranty-title-main {
  display: block;
  margin-top: calc(4 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(48 * max(var(--top-u), var(--top-umin, 0px))));
  text-shadow: calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08);
}
.p-top__warranty-title-em {
  color: var(--top-color-lemon);
}
/* 2つの保証をまとめたカード */
.p-top__warranty-card {
  overflow: hidden;
  width: calc(351 * var(--top-u));
  margin: calc(16 * var(--top-u)) auto 0;
  border-radius: calc(8 * var(--top-u));
  background: linear-gradient(var(--top-color-cream) 72.6%, var(--top-color-white));
}
.p-top__warranty-block {
  padding: calc(24 * var(--top-u)) 0 calc(16 * var(--top-u));
  background-color: var(--top-color-white);
}
.p-top__warranty-block--2 {
  padding: 0 0 calc(24 * var(--top-u));
}
/* 金色の帯（証拠04・05の帯より上下の余白が狭く、影が小さい） */
.p-top__warranty-plate {
  margin: 0 calc(16 * var(--top-u));
  padding: calc(12 * var(--top-u)) calc(8 * var(--top-u));
  border-radius: calc(2 * var(--top-u));
  background: linear-gradient(182.19deg, #fefefe 21.87%, #f7f6f3 2.14%, #ece8e2 41.6%, #fdfdfd 115.64%);
  filter: drop-shadow(calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(2 * var(--top-u)) rgba(0, 0, 0, 0.16));
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
.p-top__warranty-block--2 .p-top__warranty-plate {
  margin-top: calc(16 * var(--top-u));
}
/* 写真＋バッジ（写真の左側をぼかして背景色になじませる） */
.p-top__warranty-visual {
  position: relative;
  margin-top: calc(8 * var(--top-u));
}
.p-top__warranty-photo {
  display: block;
  width: calc(350.58 * var(--top-u));
  height: calc(248.79 * var(--top-u));
  margin-left: auto;
}
.p-top__warranty-visual::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: calc(138.8 * var(--top-u));
  height: calc(247.37 * var(--top-u));
  background: linear-gradient(to right, var(--top-color-cream), rgba(255, 255, 255, 0));
}
.p-top__warranty-badge-img {
  position: absolute;
  top: calc(13.12 * var(--top-u));
  left: calc(8 * var(--top-u));
  z-index: 2;
  width: calc(111.54 * var(--top-u));
  height: calc(129.42 * var(--top-u));
}
.p-top__warranty-visual--2 .p-top__warranty-photo {
  width: calc(291 * var(--top-u));
  height: calc(206.51 * var(--top-u));
}
.p-top__warranty-visual--2::before {
  left: calc(60 * var(--top-u));
  width: calc(124.1 * var(--top-u));
  height: calc(205.1 * var(--top-u));
  background: linear-gradient(to right, var(--top-color-white), rgba(255, 255, 255, 0));
}
.p-top__warranty-visual--2 .p-top__warranty-badge-img {
  top: calc(9.98 * var(--top-u));
  left: calc(17 * var(--top-u));
}
.p-top__warranty-text {
  margin-top: calc(8 * var(--top-u));
  padding: 0 calc(16 * var(--top-u));
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
}
.p-top__warranty-text strong {
  color: var(--top-color-red);
  font-weight: 700;
}
.p-top__warranty-body {
  margin-top: calc(8 * var(--top-u));
  padding: 0 calc(16 * var(--top-u));
}
.p-top__warranty-body .p-top__warranty-text {
  margin-top: 0;
  padding: 0;
}
/* PCだけ表示する施工例の写真と保証書 */
.p-top__warranty-examples,
.p-top__warranty-doc {
  display: none;
}
/* 2つの保証をつなぐ金色の＋ */
.p-top__warranty-plus {
  display: grid;
  place-items: center;
  width: calc(47.79 * var(--top-u));
  height: calc(47.79 * var(--top-u));
  margin: 0 auto;
  border-radius: 50%;
  /* 金のグラデーション：カンプの書き出し画像の色を測って再現（左上が濃く、中央より少し右下がいちばん明るい。2026-10-20）。
     135deg の線は正方形の対角線なので、円の端は線の 14.6%〜85.4% にあたる */
  background: linear-gradient(135deg, #b38638 14.6%, #c69e4c 32.3%, #dfbe68 55%, #d6b25d 71.2%, #cfa955 85.4%);
  filter: drop-shadow(0 calc(4 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.08));
}
.p-top__warranty-plus img {
  width: calc(19.91 * var(--top-u));
}

/* ---------- よくある質問 ---------- */
.p-top__faq {
  position: relative;
  padding: calc(64 * var(--top-u)) calc(16 * var(--top-u));
  background-color: var(--top-color-white);
}
/* 右上の緑の飾り線（施工までの流れと同じ画像） */
.p-top__faq-deco {
  position: absolute;
  top: calc(44.2 * var(--top-u));
  left: calc(283.13 * var(--top-u));
  width: calc(48 * var(--top-u));
  max-width: none;
  height: calc(25 * var(--top-u));
  transform: rotate(-147.7deg) scaleY(-1);
}
.p-top__faq-title {
  position: relative;
  z-index: 0;
  width: fit-content;
  margin: 0 auto;
  color: var(--top-color-green-dark);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(36 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__faq-title-deco {
  position: absolute;
  top: calc(25.28 * var(--top-u));
  left: calc(-5.57 * var(--top-u));
  z-index: -1;
  width: calc(239.34 * var(--top-u));
  max-width: none;
  height: calc(36.96 * var(--top-u));
}
.p-top__faq-list {
  margin-top: calc(40 * var(--top-u));
}
.p-top__faq-item {
  border-radius: calc(4 * var(--top-u));
  background-color: var(--top-color-white);
  filter: drop-shadow(calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.08));
}
.p-top__faq-item + .p-top__faq-item,
.p-top__faq-col + .p-top__faq-col {
  margin-top: calc(8 * var(--top-u));
}
/* 質問（クリックで開閉） */
.p-top__faq-q {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--top-u));
  padding: calc(16 * var(--top-u)) calc(12 * var(--top-u));
  color: var(--top-color-text);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(17 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
  white-space: nowrap;
  list-style: none;
  cursor: pointer;
}
.p-top__faq-q::-webkit-details-marker {
  display: none;
}
.p-top__faq-q:focus-visible {
  outline: 2px solid var(--top-color-green-dark);
  outline-offset: 2px;
}
.p-top__faq-q strong {
  color: var(--top-color-red);
  font-weight: 700;
}
.p-top__faq-q-mark {
  color: var(--top-color-gray-light);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
}
.p-top__faq-q-text {
  flex: 1;
}
/* ＋（開いているときは－） */
.p-top__faq-icon {
  position: relative;
  flex-shrink: 0;
  width: calc(24 * var(--top-u));
  height: calc(24 * var(--top-u));
  border-radius: 50%;
  background-color: var(--top-color-green-dark);
}
.p-top__faq-icon::before,
.p-top__faq-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(9 * var(--top-u));
  height: 1px;
  border-radius: 1px;
  background-color: var(--top-color-white);
  transform: translate(-50%, -50%);
}
.p-top__faq-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform 0.2s;
}
.p-top__faq-item[open] .p-top__faq-icon::after {
  transform: translate(-50%, -50%) rotate(0deg);
}
/* 回答（カンプに指定がないため仮のスタイル） */
.p-top__faq-a {
  margin: 0 calc(12 * var(--top-u));
  padding: calc(12 * var(--top-u)) 0 calc(16 * var(--top-u));
  border-top: 1px solid var(--top-color-gray-light);
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
}
.p-top__faq-a > * + * {
  margin-top: calc(8 * var(--top-u));
}
.p-top__faq-a-list {
  padding-left: 1.5em;
  list-style: decimal;
}

/* ---------- 施工事例 ---------- */
.p-top__cases {
  position: relative;
  padding: calc(40 * var(--top-u)) calc(16 * var(--top-u)) calc(64 * var(--top-u));
  background-color: var(--top-color-gray-bg-light);
}
.p-top__cases-deco {
  position: absolute;
  top: calc(25.29 * var(--top-u));
  left: calc(251.07 * var(--top-u));
  width: calc(48 * var(--top-u));
  max-width: none;
  height: calc(25 * var(--top-u));
  transform: rotate(-147.7deg) scaleY(-1);
}
.p-top__cases-title {
  position: relative;
  z-index: 0;
  width: fit-content;
  margin: 0 auto;
  color: var(--top-color-green-dark);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(36 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__cases-title-deco {
  position: absolute;
  top: calc(25.28 * var(--top-u));
  left: calc(-5.56 * var(--top-u));
  z-index: -1;
  width: calc(165.62 * var(--top-u));
  max-width: none;
  height: calc(36.96 * var(--top-u));
}
.p-top__cases-slider {
  margin-top: calc(32 * var(--top-u));
}
/* 事例カード */
.p-top__cases-list.p-top__cases-list {
  --top-slider-pad: calc(10 * var(--top-u));
  /* カードの高さを一番高い事例にそろえる */
  align-items: stretch;
}
/* そろえて余った高さは本文→お客様の声の枠に回し、声は枠の上下中央に置く */
.p-top__case {
  display: grid;
  grid-template-rows: auto auto 1fr;
  overflow: hidden;
  border: 1px solid var(--top-color-green-dark);
  border-radius: calc(16 * var(--top-u));
  background-color: var(--top-color-white);
  box-shadow: 0 0 calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08);
}
.p-top__case-head {
  padding: calc(16 * var(--top-u)) 0;
  background-color: var(--top-color-green-dark);
  color: var(--top-color-white);
  text-align: center;
  white-space: nowrap;
}
/* 「── CASE 01 ──」 */
.p-top__case-no {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--top-u));
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(11 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 400;
  line-height: 1;
}
.p-top__case-no::before,
.p-top__case-no::after {
  content: "";
  width: calc(24 * var(--top-u));
  height: 1px;
  background-color: var(--top-color-white);
}
.p-top__case-title {
  margin-top: calc(4 * var(--top-u));
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
}
.p-top__case-info {
  display: inline-flex;
  align-items: center;
  gap: calc(8 * var(--top-u));
  margin-top: calc(16 * var(--top-u));
  padding: calc(6 * var(--top-u)) calc(16 * var(--top-u));
  border-radius: calc(24 * var(--top-u));
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--top-color-green-dark);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1;
}
.p-top__case-info-item {
  display: flex;
  align-items: center;
  gap: calc(4 * var(--top-u));
}
.p-top__case-info-item img {
  width: calc(14.02 * var(--top-u));
}
/* ビフォー・アフター：斜めに切った写真を26px重ねて並べる */
.p-top__case-photos {
  position: relative;
  display: flex;
  margin-top: calc(8 * var(--top-u));
  filter: drop-shadow(calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.08));
}
.p-top__case-photo {
  position: relative;
  flex: 1;
  height: calc(239.59 * var(--top-u));
}
.p-top__case-photo--before {
  margin-right: calc(-26 * var(--top-u));
}
.p-top__case-photo img {
  display: block;
  width: 100%;
  height: 100%;
}
/* ビフォー・アフターを斜めの白い線で区切る（SP・PCともカンプの切り抜きの形：ビフォーは下で右を18.1%削り、アフターは上で左を18.1%削る） */
.p-top__case-photo--before img {
  clip-path: polygon(0 0, 100% 0, 81.9% 100%, 0 100%);
}
.p-top__case-photo--after img {
  clip-path: polygon(18.1% 0, 100% 0, 100% 100%, 0 100%);
}
.p-top__case-label {
  position: absolute;
  top: 0;
  left: 0;
  width: 36.2%;
  padding: calc(6 * var(--top-u)) calc(6 * var(--top-u)) calc(4 * var(--top-u));
  border-radius: 0 0 calc(4 * var(--top-u)) 0;
  background-color: var(--top-color-white);
  color: var(--top-color-gray);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
.p-top__case-photo--after .p-top__case-label {
  right: 0;
  left: auto;
  border: 1px solid var(--top-color-green-dark);
  border-radius: 0 0 0 calc(4 * var(--top-u));
  background-color: var(--top-color-green-dark);
  color: var(--top-color-white);
  font-weight: 700;
  text-align: center;
}
/* 写真中央の「＞」（飾り） */
.p-top__case-photo-arrow {
  position: absolute;
  top: calc(96.45 * var(--top-u));
  left: calc(145.5 * var(--top-u));
  width: calc(52 * var(--top-u));
  max-width: none;
  height: calc(52 * var(--top-u));
  transform: scaleX(-1);
}
.p-top__case-body {
  display: grid;
  grid-template-rows: auto 1fr;
  margin-top: calc(16 * var(--top-u));
  padding: 0 calc(16 * var(--top-u)) calc(16 * var(--top-u));
  color: var(--top-color-text);
  font-weight: 500;
}
.p-top__case-text {
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1.6;
}
/* お客様の声（斜めの光の帯は証拠セクションと同じ画像） */
.p-top__case-voice {
  position: relative;
  display: grid;
  align-content: center;
  overflow: hidden;
  margin-top: calc(15 * var(--top-u));
  padding: calc(20 * var(--top-u)) calc(16 * var(--top-u));
  border-radius: calc(24 * var(--top-u)) calc(24 * var(--top-u)) calc(24 * var(--top-u)) 0;
  background-color: var(--top-color-lemon);
}
.p-top__case-voice::before {
  content: "";
  position: absolute;
  top: calc(-5.83 * var(--top-u));
  left: calc(19.18 * var(--top-u));
  width: calc(526.81 * var(--top-u));
  height: calc(228.22 * var(--top-u));
  background: url("../images/top-renewal/proof-voice-band-2.svg") 0 0 / 100% 100% no-repeat;
}
.p-top__case-voice-label {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--top-u));
  color: var(--top-color-green-dark);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
}
.p-top__case-voice-label img {
  width: calc(24 * var(--top-u));
}
.p-top__case-voice-row {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: calc(12 * var(--top-u));
  margin-top: calc(8 * var(--top-u));
}
.p-top__case-voice-face {
  flex-shrink: 0;
  width: calc(53.2 * var(--top-u));
  height: calc(83.42 * var(--top-u));
}
.p-top__case-voice-text {
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  line-height: 1.6;
}
/* 前後の矢印 */
.p-top__cases-nav {
  display: flex;
  justify-content: center;
  gap: calc(24 * var(--top-u));
  margin-top: calc(16 * var(--top-u));
}
.p-top__cases-nav-btn {
  position: relative;
  width: calc(44 * var(--top-u));
  height: calc(44 * var(--top-u));
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.p-top__cases-nav-btn img {
  position: absolute;
  top: calc(-6 * var(--top-u));
  left: calc(-6 * var(--top-u));
  width: calc(60 * var(--top-u));
  max-width: none;
  height: calc(60 * var(--top-u));
}
.p-top__cases-nav-btn--next img {
  transform: scaleX(-1);
}
/* 「施工事例をもっとみる」（左の空きは文字を中央に見せるための余白） */
.p-top__cases-more {
  display: flex;
  align-items: center;
  gap: calc(24 * var(--top-u));
  width: fit-content;
  margin: calc(16 * var(--top-u)) auto 0;
  padding: calc(12 * var(--top-u)) calc(16 * var(--top-u));
  border: 1px solid var(--top-color-white);
  border-radius: calc(40 * var(--top-u));
  background-color: var(--top-color-green-dark);
  box-shadow: calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08);
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1.6;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.p-top__cases-more::before {
  content: "";
  width: calc(6.64 * var(--top-u));
}
.p-top__cases-more img {
  width: calc(6.64 * var(--top-u));
  height: calc(12 * var(--top-u));
}
@media (hover: hover) {
  .p-top__cases-more:hover {
    opacity: 0.8;
  }
}

/* ---------- 会社情報・お問い合わせ・対応エリア（ページ最下部） ---------- */
/* 背景：緑の地に芝生の写真を「焼き込みカラー」で重ねる（5つの証拠と同じ画像） */
.p-top__footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--top-color-green-dark);
}
.p-top__footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(-605.05 * var(--top-u));
  z-index: -1;
  width: calc(1529.09 * var(--top-u));
  height: calc(1019.52 * var(--top-u));
  background: url("../images/top-renewal/proof-bg.webp") 0 0 / 100% 100% no-repeat;
  mix-blend-mode: color-burn;
}
.p-top__footer-main {
  padding: calc(64 * var(--top-u)) calc(16 * var(--top-u)) calc(40 * var(--top-u));
}
.p-top__footer-company {
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
.p-top__footer-logo img {
  width: calc(220.55 * var(--top-u));
}
.p-top__footer-name {
  margin-top: calc(16 * var(--top-u));
  font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  letter-spacing: 0.08em;
}
.p-top__footer-address {
  margin-top: calc(16 * var(--top-u));
}
.p-top__footer-tel {
  margin-top: calc(8 * var(--top-u));
  font-family: var(--top-font-num);
  font-weight: 400;
}
.p-top__footer-tel a {
  color: inherit;
  text-decoration: none;
}
/* お問い合わせカード */
.p-top__footer-contact {
  margin-top: calc(32 * var(--top-u));
  padding: calc(24 * var(--top-u)) calc(16 * var(--top-u));
  border-radius: calc(16 * var(--top-u));
  background-color: var(--top-color-white);
}
/* ボタンの外側のリング（2px）をカード内に収める */
.p-top__cta-btn--footer {
  margin: calc(2 * var(--top-u));
}
/* PCだけ表示する料金シミュレーションの一文と、電話番号の枠 */
.p-top__footer-sim-lead,
.p-top__footer-telbox {
  display: none;
}
/* 「CONTACT ────」「AREA ────」 */
.p-top__footer-label {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--top-u));
  color: rgba(36, 155, 69, 0.24);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
}
.p-top__footer-label::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: rgba(36, 155, 69, 0.24);
}
.p-top__footer-contact .p-top__footer-label {
  margin-top: calc(16 * var(--top-u));
}
.p-top__footer-heading {
  margin-top: calc(8 * var(--top-u));
  color: var(--top-color-green-dark);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(17 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.p-top__footer-contact-list {
  display: flex;
  gap: calc(12 * var(--top-u));
  margin-top: calc(16 * var(--top-u));
}
.p-top__footer-contact-list li {
  flex: 1;
  min-width: 0;
}
.p-top__footer-contact-link {
  position: relative;
  display: grid;
  justify-items: center;
  gap: calc(8 * var(--top-u));
  height: 100%;
  padding: calc(16 * var(--top-u)) calc(12 * var(--top-u));
  border: 1px solid rgba(36, 155, 69, 0.6);
  border-radius: calc(8 * var(--top-u));
  background-color: var(--top-color-white);
  filter: drop-shadow(0 calc(6 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08));
  color: var(--top-color-green-dark);
  font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.45;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.p-top__footer-contact-link img {
  height: calc(36 * var(--top-u));
  width: auto;
}
/* LINEのアイコンは36の枠に31.3で入る */
.p-top__footer-contact-link img[src*="icon-line"] {
  height: calc(31.3 * var(--top-u));
  margin: calc(2.35 * var(--top-u)) 0;
}
/* 右下の小さな矢印（LINE・フォーム） */
.p-top__footer-contact-link--arrow::after {
  content: "";
  position: absolute;
  right: calc(6.33 * var(--top-u));
  bottom: calc(10 * var(--top-u));
  width: calc(12 * var(--top-u));
  height: calc(12 * var(--top-u));
  background: url("../images/top-renewal/icon-arrow-gray.svg") center / contain no-repeat;
}
@media (hover: hover) {
  .p-top__footer-contact-link:hover,
  .p-top__footer-link:hover {
    opacity: 0.8;
  }
}
/* ページへのリンク（2列） */
.p-top__footer-links {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: calc(32 * var(--top-u));
  padding: 0 calc(8 * var(--top-u));
}
.p-top__footer-link {
  display: block;
  padding: calc(16 * var(--top-u)) 0;
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s;
}
/* 施工対応エリア */
.p-top__footer-area {
  padding: calc(40 * var(--top-u)) calc(20 * var(--top-u));
  border-radius: calc(16 * var(--top-u)) calc(16 * var(--top-u)) 0 0;
  background-color: var(--top-color-green-mint);
}
.p-top__footer-area-title {
  margin-top: calc(8 * var(--top-u));
  color: var(--top-color-green-dark);
  font-family: var(--top-font-kaku);
  font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.p-top__footer-area-sep {
  font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
}
.p-top__footer-area-sub {
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
}
.p-top__footer-area-list {
  margin-top: calc(24 * var(--top-u));
}
/* 各都県：＋を押すと対応市区町村の一覧を開く（<details>） */
.p-top__footer-area-summary {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--top-u));
  list-style: none;
  cursor: pointer;
}
.p-top__footer-area-summary::-webkit-details-marker {
  display: none;
}
.p-top__footer-area-summary:focus-visible {
  outline: 2px solid var(--top-color-green-dark);
  outline-offset: 2px;
}
.p-top__footer-area-pref {
  flex-shrink: 0;
  width: calc(72 * var(--top-u));
  padding: calc(4 * var(--top-u)) calc(8 * var(--top-u)) calc(6 * var(--top-u));
  border-radius: calc(6 * var(--top-u));
  background-color: var(--top-color-green-deeper);
  color: var(--top-color-white);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 500;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
.p-top__footer-area-city {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
  padding: calc(12 * var(--top-u)) 0;
  border-bottom: 1px solid var(--top-color-gray-light);
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(11 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}
/* 右端の＋（開いているときは－） */
.p-top__footer-area-toggle {
  position: relative;
  flex-shrink: 0;
  width: calc(10 * var(--top-u));
  height: calc(10 * var(--top-u));
}
.p-top__footer-area-toggle::before,
.p-top__footer-area-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  margin-top: -0.5px;
  border-radius: 1px;
  background-color: #434343;
}
.p-top__footer-area-toggle::after {
  transform: rotate(90deg);
  transition: transform 0.2s;
}
.p-top__footer-area-item[open] .p-top__footer-area-toggle::after {
  transform: rotate(0deg);
}
/* 開いたときの市区町村一覧（カンプに指定がないため仮のスタイル） */
.p-top__footer-area-all {
  margin-left: calc(80 * var(--top-u));
  padding: calc(10 * var(--top-u)) 0 calc(12 * var(--top-u));
  border-bottom: 1px solid var(--top-color-gray-light);
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(12 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 400;
  line-height: 1.7;
}
.p-top__footer-area-note {
  margin-top: calc(24 * var(--top-u));
  color: var(--top-color-text);
  font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 400;
  line-height: 1;
}
/* SNS・コピーライト */
.p-top__footer-bottom {
  padding: calc(20 * var(--top-u)) 0 calc(16 * var(--top-u));
  border-top: 1px solid var(--top-color-white);
  background-color: var(--top-color-text);
  text-align: center;
}
.p-top__footer-sns {
  display: flex;
  justify-content: center;
  gap: calc(24 * var(--top-u));
}
.p-top__footer-sns a {
  display: block;
}
.p-top__footer-sns img {
  width: calc(24 * var(--top-u));
  height: calc(24 * var(--top-u));
  object-fit: contain;
}
.p-top__footer-copy {
  margin-top: calc(16 * var(--top-u));
  color: var(--top-color-white);
  font-family: var(--top-font-num);
  font-size: max(var(--top-fmin, 0px), calc(10 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 400;
  line-height: 1.6;
}
.p-top__footer-copy small {
  font-size: inherit;
}

/* ---------- 固定CTA（SPのみ） ---------- */
/* .p-top は container-type 指定で position: fixed の基準になってしまうため、sticky で画面下に貼り付ける。
   main の最後にあるので、ページ末尾ではフッターの上で止まり、フッターを隠さない */
.p-top__fixed-cta {
  position: sticky;
  bottom: 0;
  z-index: 10;
  display: flex;
  gap: calc(16 * var(--top-u));
  /* 下は上と同じ余白。iPhoneのホームバーがかぶる端末ではその分を足す（対応していない環境では0） */
  /* 高さを変えたら、.p-top の --top-fixed-cta-h（FVの高さ計算）も合わせる */
  padding: calc(9 * var(--top-u)) calc(16 * var(--top-u)) calc(9 * var(--top-u) + env(safe-area-inset-bottom, 0px));
  background-color: var(--top-color-gray-bg);
  filter: drop-shadow(0 calc(-2 * var(--top-u)) calc(4 * var(--top-u)) rgba(0, 0, 0, 0.16));
}
/* 外側2pxの色の線＋内側1pxの白線 */
.p-top__fixed-cta-btn {
  display: flex;
  flex: 1;
  align-items: center;
  gap: calc(8 * var(--top-u));
  height: calc(48 * var(--top-u));
  padding: 0 calc(8 * var(--top-u)) 0 calc(5 * var(--top-u));
  border: 2px solid var(--top-color-red);
  border-radius: calc(48 * var(--top-u));
  background-color: var(--top-color-red);
  box-shadow: inset 0 0 0 1px var(--top-color-white), 0 calc(8 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
  color: var(--top-color-white);
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-top__fixed-cta-btn--line {
  border-color: var(--top-color-line);
  background-color: var(--top-color-line);
}
.p-top__fixed-cta-icon {
  display: grid;
  flex-shrink: 0;
  place-items: center;
  width: calc(34 * var(--top-u));
  height: calc(34 * var(--top-u));
  border-radius: 50%;
  background-color: var(--top-color-white);
}
.p-top__fixed-cta-icon img {
  width: auto;
  height: calc(19.4 * var(--top-u));
}
.p-top__fixed-cta-text {
  font-size: max(var(--top-fmin, 0px), calc(13 * max(var(--top-u), var(--top-umin, 0px))));
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.p-top__fixed-cta-narrow {
  letter-spacing: -0.16em;
}
@media (hover: hover) {
  .p-top__fixed-cta-btn:hover {
    opacity: 0.8;
  }
}

/* ==========================================================
   タブレット（768〜1199px）：SPの見た目を中央に置いたまま、固定CTAだけ消す
   ========================================================== */
@media (min-width: 768px) {
  .p-top__fixed-cta {
    display: none;
  }
  /* 固定CTAがないため、FVはカンプの比率のまま */
  .p-top__hero-inner {
    height: auto;
    min-height: 0;
    aspect-ratio: 362 / 645;
  }
  .p-top__comic {
    width: 600px;
    height: calc(100% - 48px);
    margin: auto;
    border-radius: 12px;
    overflow: hidden;
  }
}

/* ==========================================================
   幅501〜767px：中身はSP（幅500で中央）のまま、色の付いたセクションの背景だけ画面の左右へ延ばす
   - border-image を箱の外（左右）にだけ描く。描いた部分はスクロール範囲に含まれないので横スクロールは出ない
   - 延ばす色は --top-bleed。写真や模様の背景は、なじむ色（模様の平均の色）で延ばす
   - 768px以上（PCレイアウト）では使わない
   ========================================================== */
@media (min-width: 501px) {
  .p-top__talk,
  .p-top__sim,
  .p-top__manga,
  .p-top__proof,
  .p-top__warranty-head,
  .p-top__warranty,
  .p-top__cases,
  .p-top__footer,
  .p-top__footer-area,
  .p-top__footer-bottom,
  .p-top__fixed-cta {
    border-image-source: linear-gradient(var(--top-bleed), var(--top-bleed));
    border-image-slice: 0 1;
    border-image-width: 0 100vw;
    border-image-outset: 0 100vw;
  }
  /* セカンドビュー：写真は延ばせないので、左右は白から下の緑（概算費用の半円）へなじませる */
  .p-top__mv {
    border-image: linear-gradient(#fff 35%, #51ba5e) 0 1 / 0 100vw / 0 100vw;
  }
  /* 概算費用：「概算でいくら？」の後ろの緑。price-bg.svg と同じ楕円（横377.43×縦318.17、中心はセクション上端の54.23上）を
     画面幅いっぱいに描く。色は模様（ノイズ）の平均の色 */
  .p-top__price {
    border-image: radial-gradient(calc(377.43 * var(--top-u)) calc(318.17 * var(--top-u)) at 50% calc(-54.23 * var(--top-u)), #51ba5e 99.5%, #51ba5e00 100%) fill 0 / 0 / 0 100vw;
  }
  .p-top__talk {
    --top-bleed: #ffdada;
  }
  .p-top__sim {
    --top-bleed: var(--top-color-pink-bg);
  }
  .p-top__manga {
    --top-bleed: var(--top-color-sky-bg);
  }
  /* 証拠：上の濃い模様（::before）と下の薄い模様（::after）で色を分ける */
  .p-top__proof {
    border-image-source: linear-gradient(#007f0b calc(1133.5 * var(--top-u)), #088a22 calc(1133.5 * var(--top-u)));
  }
  .p-top__warranty {
    --top-bleed: var(--top-color-orange-light);
  }
  .p-top__warranty-head {
    --top-bleed: var(--top-color-orange);
  }
  .p-top__cases {
    --top-bleed: var(--top-color-gray-bg-light);
  }
  /* 会社情報：模様（::before）をはみ出させずに同じ見た目で描き、overflow: hidden をやめる
     （中のエリア・コピーライトの帯の延長が切り取られないように） */
  .p-top__footer {
    --top-bleed: #128c27;
    overflow: visible;
  }
  .p-top__footer::before {
    left: 0;
    width: 100%;
    background-position: calc(-605.05 * var(--top-u)) 0;
    background-size: calc(1529.09 * var(--top-u)) 100%;
  }
  /* 角丸は左右へ延ばした帯とつながらないので付けない */
  .p-top__footer-area {
    --top-bleed: var(--top-color-green-mint);
    border-radius: 0;
  }
  .p-top__fixed-cta {
    --top-bleed: var(--top-color-gray-bg);
  }
  .p-top__footer-bottom {
    --top-bleed: var(--top-color-text);
  }
}

/* ==========================================================
   タブレット・PC（768px以上）：PCカンプ（幅1440）のレイアウト
   - カンプの 1px を --top-u とする（基準の値は --top-base。拡大する箇所は --top-base に倍率を掛ける）
   - PC（1200px以上）：1200〜1440は比例縮小、1440以上はカンプの大きさで止める。
     文字だけはカンプの90%より小さくしない（--top-umin。font-size の式の max(var(--top-u), var(--top-umin))）
   - タブレット（768〜1199px）：カンプの中身の幅1200＋左右40が画面に収まるよう 幅÷1280 で縮小。
     文字は 12px より小さくしない（--top-fmin）
   - 1440より広い画面では、中身を中央に置き、背景色・背景画像だけ全幅に延ばす
   ========================================================== */
@media (min-width: 768px) {
  .p-top {
    --top-base: calc(100cqw / 1280);
    --top-fmin: 12px;
  }
  /* ヘッダーとFVは幅1440の1枚の絵なので、タブレットでもカンプ全体をそのまま縮める */
  .p-top-header,
  .p-top__fv {
    --top-base: calc(min(100cqw, 1440px) / 1440);
    --top-u: var(--top-base);
  }
  .p-top-header {
    --top-fmin: 12px;
  }
  @media (min-width: 1200px) {
    .p-top,
    .p-top-header {
      --top-base: calc(min(100cqw, 1440px) / 1440);
      --top-fmin: 0px;
      /* 文字はカンプの94%より小さくしない（1280前後で本文16px→約15px。1440ではカンプどおり） */
      --top-umin: 0.94px;
    }
    /* ヘッダー（FVの上）とFVは、1440より広い画面でもカンプの構図のまま比例で拡大する。
       大きくなりすぎないよう1.2倍（画面幅1728）で止める（1440で止めると左右が空いて間延びするため。2026-10-20） */
    .p-top-header,
    .p-top__fv {
      --top-base: calc(min(100cqw, 1728px) / 1440);
    }
    /* 固定中のヘッダー（右端の固定CTAを含む）は、ほかのセクションと同じく1440の大きさで止める */
    .p-top-header.is-fixed {
      --top-u: calc(min(100cqw, 1440px) / 1440);
    }
  }
  .p-top {
    --top-u: var(--top-base);
    max-width: none;
  }
  /* 501〜767pxの背景の延長を止める（PCレイアウトはセクション自体が全幅） */
  .p-top__mv,
  .p-top__price,
  .p-top__talk,
  .p-top__sim,
  .p-top__manga,
  .p-top__proof,
  .p-top__warranty-head,
  .p-top__warranty,
  .p-top__cases,
  .p-top__footer,
  .p-top__footer-area,
  .p-top__footer-bottom,
  .p-top__fixed-cta {
    border-image: none;
  }
  .p-top__footer {
    overflow: hidden;
  }
  .p-top__footer::before {
    background-position: 0 0;
    background-size: 100% 100%;
  }
  .p-top__footer-area {
    border-radius: calc(16 * var(--top-u)) calc(16 * var(--top-u)) 0 0;
  }
  /* スライダー：左右が見切れているカードは薄くする（.is-clipped はJSが付ける。カンプの見切れたカードは不透明度30%） */
  .p-top [data-top-slider-track] > .is-clipped {
    opacity: 0.3;
  }

  /* ---------- ヘッダー：FVの枠の上に重ねる ---------- */
  .p-top-header {
    --top-u: var(--top-base);
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 10;
    max-width: none;
    background-color: transparent;    /* 右端の固定CTAを画面外に隠しているあいだ、横スクロールを出さない（縦ははみ出してよい） */
    overflow-x: clip;
  }
  /* ロゴ・メニュー・MENUボタンの3列。左右を同じ幅にしてメニューを中央に置く */
  .p-top-header__inner {
    display: grid;
    grid-template-columns: calc(162 * var(--top-u)) 1fr calc(162 * var(--top-u));
    align-items: center;
    height: calc(83 * var(--top-u));
    margin: calc(20 * var(--top-u)) calc(20 * var(--top-u)) 0;
    /* ロゴとMENUボタンは画面の端から24（1440より広い画面でも端に置く） */
    padding: 0 calc(24 * var(--top-u));
  }
  .p-top-header__logo img {
    width: calc(162 * var(--top-u));
  }
  /* メニューはPCだけ（タブレットでは入りきらないためMENUボタンだけ） */
  @media (min-width: 1200px) {
    .p-top-header__nav {
      display: block;
    }
  }
  .p-top-header__nav-list {
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .p-top-header__nav-link {
    display: block;
    padding: calc(16 * var(--top-u)) calc(8 * var(--top-u));
    color: #333;
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
  }
  /* 角丸の四角に2本線＋MENU */
  .p-top-header__menu {
    display: grid;
    justify-items: center;
    grid-column: 3;
    gap: calc(8 * var(--top-u));
    justify-self: end;
    width: auto;
    height: auto;
    padding: calc(20 * var(--top-u)) calc(12 * var(--top-u)) calc(12 * var(--top-u));
    border-radius: calc(12 * var(--top-u));
    background-color: #249b45;
  }
  .p-top-header__menu-line {
    position: relative;
    display: block;
    width: calc(33.4 * var(--top-u));
    height: calc(10 * var(--top-u));
  }
  .p-top-header__menu-line::before,
  .p-top-header__menu-line::after {
    left: 0;
    width: 100%;
    height: calc(3 * var(--top-u));
    border-radius: calc(1.5 * var(--top-u));
  }
  .p-top-header__menu-line::before {
    top: calc(-3 * var(--top-u));
  }
  .p-top-header__menu-line::after {
    top: calc(7 * var(--top-u));
  }
  .p-top-header__menu-text {
    display: block;
    color: #fff;
    font-family: "LINE Seed JP", sans-serif;
    font-size: max(var(--top-fmin, 0px), calc(12 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 400;
    line-height: 1;
  }
  @media (hover: hover) {
    .p-top-header__nav-link:hover {
      opacity: 0.7;
    }
  }

  /* ---------- セカンドビューから：ヘッダーを画面上部に固定し白い背景を付ける（.is-fixed はJSが付ける） ---------- */
  .p-top-header.is-fixed {
    z-index: 10;
  }
  /* PC・タブレットのヘッダーはもともとFVの上に重なっていて流れの外なので、本文は下げない */
  .p-top-header.is-fixed + .p-top::before {
    content: none;
  }
  /* 固定中は画面の横幅いっぱい（すき間・角丸なし）。中身の位置はFVの上のときと同じ（外の余白20の分だけ内側の余白を足す） */
  .p-top-header.is-fixed .p-top-header__inner {
    margin: 0;
    padding: 0 calc(44 * var(--top-u));
    box-shadow: none;
    background-color: #fff;
    filter: drop-shadow(0 calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.04));
  }
  /* ページ内リンクで移動したとき、見出しが固定ヘッダーの下に隠れないようにする */
  .p-top [id] {
    scroll-margin-top: calc(110 * var(--top-u));
  }

  /* ---------- 右端の固定CTA：縦書きのタブ2つ。ヘッダー（固定中）の中に置き、画面の右端に出す ---------- */
  .p-top-header__side {
    position: absolute;
    top: calc(273 * var(--top-u));
    right: 0;
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--top-u));
    visibility: hidden;
    transform: translateX(calc(100% + 4px));
    transition: transform 0.4s ease-out, visibility 0s 0.4s;
  }
  .p-top-header.is-fixed .p-top-header__side {
    visibility: visible;
    transform: none;
    transition: transform 0.4s 0.1s ease-out, visibility 0s;
  }
  /* 外側2pxの色の線＋内側1pxの白線（SPの固定CTAと同じ組み方） */
  .p-top-header__side-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(8 * var(--top-u));
    padding: calc(20 * var(--top-u)) calc(6 * var(--top-u));
    border: 1px solid #fff;
    border-right: 0;
    border-radius: calc(16 * var(--top-u)) 0 0 calc(16 * var(--top-u));
    background-color: #ff4545;
    box-shadow: 0 0 0 2px #ff4545, 0 calc(8 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    text-decoration: none;
    transition: opacity 0.2s;
  }
  .p-top-header__side-btn--line {
    background-color: #06c755;
    box-shadow: 0 0 0 2px #06c755, 0 calc(8 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
  }
  .p-top-header__side-btn:focus-visible {
    outline: 2px solid #333;
    outline-offset: 4px;
  }
  .p-top-header__side-icon {
    width: calc(34.33 * var(--top-u));
    height: calc(34.33 * var(--top-u));
  }
  .p-top-header__side-icon--line {
    display: grid;
    place-items: center;
    border-radius: 50%;
    background-color: #fff;
  }
  .p-top-header__side-icon--line img {
    width: calc(20.33 * var(--top-u));
    height: auto;
  }
  .p-top-header__side-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(3 * var(--top-u));
  }
  .p-top-header__side-text-l,
  .p-top-header__side-text-s {
    writing-mode: vertical-rl;
  }
  .p-top-header__side-text-l {
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
    line-height: 1.18;
  }
  .p-top-header__side-text-s {
    font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
    line-height: 1.03;
    letter-spacing: -0.09em;
  }
  .p-top-header__side-btn--line .p-top-header__side-text {
    gap: calc(4 * var(--top-u));
  }
  .p-top-header__side-text-en {
    font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
    line-height: 1.2;
  }
  @media (hover: hover) {
    .p-top-header__side-btn:hover {
      opacity: 0.8;
    }
  }

  /* ---------- ドロワーメニュー：左にメニュー2列＋お問い合わせ＋コピーライト、右に縦長の写真 ---------- */
  /* タブレット（768〜1199）は写真を出さず、写真を除いた幅1108を画面幅に合わせる */
  /* 背景は白（書き出し用のカンプ node 58:2193、2026-10-20。葉の影の模様もなし） */
  .p-top-header__drawer {
    --top-u: min(calc(100cqw / 1108), 1px);
    background: #fff;
  }
  /* 上の段（ロゴとCLOSE）は横いっぱいで、CLOSEは右上（node 58:2193）。その下に中身、PCは右に写真 */
  .p-top-header__drawer[open] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    gap: calc(32 * var(--top-u));
    padding-right: calc(32 * var(--top-u));
  }
  .p-top-header__drawer-main {
    display: contents;
  }
  .p-top-header__drawer-head {
    grid-column: 1 / -1;
    height: auto;
    padding: calc(32 * var(--top-u)) 0 0 calc(40 * var(--top-u));
  }
  .p-top-header__drawer-logo img {
    width: calc(162 * var(--top-u));
  }
  .p-top-header__drawer-close {
    gap: calc(8 * var(--top-u));
    width: calc(63 * var(--top-u));
    height: calc(62 * var(--top-u));
    padding: calc(20 * var(--top-u)) 0 calc(12 * var(--top-u));
    border-radius: calc(12 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(12 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top-header__drawer-close img {
    width: calc(32.71 * var(--top-u));
    height: calc(19.55 * var(--top-u));
    margin: calc(-1.5 * var(--top-u)) calc(-1.29 * var(--top-u));
  }
  /* 中身は下寄せ（カンプでは見出しとの間が空く） */
  .p-top-header__drawer-body {
    flex: 1;
    /* メニュー2列とお問い合わせの3つを、画面が広がっても等間隔に並べる（最小の間隔は32） */
    grid-template-columns: calc(263 * var(--top-u)) calc(365 * var(--top-u)) calc(320 * var(--top-u));
    justify-content: space-between;
    align-content: end;
    gap: calc(40 * var(--top-u)) calc(32 * var(--top-u));
    padding: 0 0 0 calc(64 * var(--top-u));
  }
  .p-top-header__drawer-link {
    padding: calc(12 * var(--top-u)) 0;
    font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top-header__drawer-sub--inline li {
    display: flex;
  }
  .p-top-header__drawer-sub-link,
  .p-top-header__drawer-sub--inline li:not(:last-child)::after {
    padding: calc(12 * var(--top-u)) 0;
    font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top-header__drawer-contact {
    padding: calc(32 * var(--top-u)) calc(24 * var(--top-u));
    border-radius: calc(8 * var(--top-u));
  }
  .p-top-header__drawer-label::after {
    border-top-color: #d7d7d7;
  }
  .p-top-header__drawer-label + .p-top-header__drawer-heading {
    margin-top: calc(-4 * var(--top-u));
  }
  .p-top-header__drawer-contact-link {
    min-height: calc(141 * var(--top-u));
  }
  .p-top-header__drawer-contact-link--line img {
    width: calc(36 * var(--top-u));
    height: calc(36 * var(--top-u));
    margin: 0;
  }
  .p-top-header__drawer-contact-item--tel {
    display: none;
  }
  .p-top-header__drawer-tel {
    display: grid;
  }
  /* nav の箱を外し、メニューの2列をそのまま上のグリッドの列に置く */
  .p-top-header__drawer-nav {
    display: contents;
  }
  .p-top-header__drawer-col {
    align-content: start;
    min-width: 0;
  }
  .p-top-header__drawer-foot {
    flex-direction: row;
    flex-wrap: wrap-reverse;
    justify-content: space-between;
    grid-column: 1 / -1;
    border-top: 1px solid #929292;
  }
  .p-top-header__drawer-photo {
    align-self: stretch;
    width: calc(300 * var(--top-u));
    height: auto;
    min-height: 0;
    margin: 0 0 calc(32 * var(--top-u));
    border-radius: calc(8 * var(--top-u));
    object-fit: cover;
    /* カンプの切り取り位置（人物が上から3分の1あたり） */
    object-position: 50% 40%;
  }
  @media (min-width: 1200px) {
    /* ドロワーはヘッダーの拡大に合わせず、1440の大きさで止める */
    .p-top-header__drawer {
      --top-u: calc(min(100cqw, 1440px) / 1440);
    }
    .p-top-header__drawer[open] {
      grid-template-columns: minmax(0, 1fr) calc(300 * var(--top-u));
    }
    .p-top-header__drawer-photo {
      display: block;
    }
  }

  /* ---------- FV：キャッチ・動画・実績バッジ・CTAを1枚の枠にカンプの座標どおり配置 ---------- */
  /* 枠は画面の左右20を空けて広げる（1440より広くても外側の余白は同じ）。
     中身はカンプの幅1400の中に収め、枠の中央に置く（枠の中央から ±700 が中身の左右の端） */
  .p-top__fv {
    position: relative;
    height: calc(760 * var(--top-u));
    margin: calc(20 * var(--top-u));
    border-radius: calc(24 * var(--top-u));
    /* 背景写真は ::before に敷き、拡大しても枠の外へ出ないよう切り取る */
    isolation: isolate;
    overflow: hidden;
    box-shadow: calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08);
  }
  /* 背景写真（不透明度70%＋緑6%のかぶせは画像に焼き込み済み）。カンプどおり枠いっぱいに引き伸ばす。
     写真だけ5秒かけて1.25倍に広がり、そのまま止まる。表示したときの1回だけ（2026-10-20。中央から。中身は動かない） */
  .p-top__fv::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: url("../images/top-renewal/fv-bg-pc.webp") 0 0 / 100% 100% no-repeat;
    animation: p-top-fv-bg-zoom 5s ease-in-out forwards;
  }
  @keyframes p-top-fv-bg-zoom {
    from {
      transform: scale(1);
    }
    to {
      transform: scale(1.25);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .p-top__fv::before {
      animation: none;
    }
  }
  /* SPの2つのセクションの箱を外し、中身を枠の中に直接並べる */
  .p-top__hero,
  .p-top__hero-inner,
  .p-top__mv,
  .p-top__mv-body {
    display: contents;
  }
  .p-top__mv-bg,
  .p-top__mv-fade,
  .p-top__mv-catch-deco {
    display: none;
  }
  /* 動画：ヘッダー（83）の下から枠の下の余白（24）の上まで、縦長の比率で中央の列に */
  .p-top__hero-video {
    inset: calc(83 * var(--top-u)) auto auto calc(50% - 183.65 * var(--top-u));
    width: calc(367.3 * var(--top-u));
    height: calc(653 * var(--top-u));
  }
  /* キャッチ：横書き3行（「ふわふわ／人工芝で／楽しい日々。」） */
  .p-top__hero-catch {
    top: calc(172 * var(--top-u));
    bottom: auto;
    left: calc(50% - 660 * var(--top-u));
    display: block;
    color: var(--top-color-green-dark);
    font-size: max(var(--top-fmin, 0px), calc(72 * max(var(--top-u), var(--top-umin, 0px))));
    line-height: 1.4;
    letter-spacing: 0.04em;
  }
  .p-top__hero-catch-v {
    width: auto;
    word-break: normal;
    font-feature-settings: normal;
  }
  .p-top__hero-br {
    display: block;
  }
  /* 実績バッジ：右の列に2×2 */
  /* メダルは1枚の絵なので、タブレットでも中の文字はメダルと一緒に縮める（12pxの下限をかけない） */
  .p-top__badges {
    --top-fmin: 0px;
    position: absolute;
    top: calc(125.9 * var(--top-u));
    left: calc(50% + 268.75 * var(--top-u));
    grid-template-columns: repeat(2, calc(132 * var(--top-u)));
    gap: calc(16 * var(--top-u));
    padding-left: 0;
  }
  .p-top__badges-note {
    position: absolute;
    top: calc(421.7 * var(--top-u));
    left: calc(50% + 268.75 * var(--top-u));
    width: calc(132 * var(--top-u));
    margin-left: 0;
  }
  /* サブキャッチ：SPの飾り文字をやめて2行の文章に */
  .p-top__mv-catch {
    position: absolute;
    top: calc(567 * var(--top-u));
    left: calc(50% - 660 * var(--top-u));
    width: auto;
    height: auto;
    margin: 0;
    color: var(--top-color-green-dark);
    font-family: var(--top-font-kaku);
    /* 文字を入れた span の間の改行が空白にならないよう、親は0にして子で戻す */
    font-size: 0;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
  }
  .p-top__mv-catch > * {
    font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__mv-catch > *,
  .p-top__mv-catch-k1,
  .p-top__mv-catch-k2,
  .p-top__mv-catch-k3 {
    position: static;
    line-height: inherit;
    letter-spacing: inherit;
    text-shadow: none;
    transform: none;
  }
  .p-top__mv-catch-1 {
    display: block;
  }
  .p-top__mv-catch-2 br {
    display: none;
  }
  .p-top__mv-lead {
    position: absolute;
    top: calc(650.2 * var(--top-u));
    left: calc(50% - 660 * var(--top-u));
    margin: 0;
    color: var(--top-color-text);
    font-family: var(--top-font-kaku);
    font-weight: 500;
    text-align: left;
    text-shadow: none;
  }
  /* CTA：右の列の下に縦2つ（白い台紙なし） */
  .p-top__mv-cta {
    position: absolute;
    top: calc(464.7 * var(--top-u));
    left: calc(50% + 286.5 * var(--top-u));
    width: calc(300 * var(--top-u));
    gap: calc(24 * var(--top-u));
    margin: 0;
    padding: 0;
  }
  .p-top__mv-cta .p-top__cta-card {
    padding: 0;
    background: none;
  }
  .p-top__mv-cta .p-top__cta-btn-text {
    font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
  }
  /* PCのFVは画面の高さいっぱい（上下の余白20を除く。2026-10-20）。低い画面ではカンプの高さ760より縮めない。
     動画はヘッダーの下から枠の下の余白の上まで伸ばし（幅はそのまま、はみ出す分は object-fit で切る）、
     キャッチ・バッジ・CTAはカンプの縦の位置関係のまま、枠の上下中央に置く（top は「枠の中央 − カンプの中央380」からの距離） */
  @media (min-width: 1200px) {
    .p-top__fv {
      --top-fv-y: calc(50% - 380 * var(--top-u));
      /* 縦に長い画面で中身の上下が空きすぎないよう、カンプの高さの約1.3倍（1000）で止める */
      height: clamp(calc(760 * var(--top-u)), calc(100vh - 40 * var(--top-u)), calc(1000 * var(--top-u)));
    }
    .p-top__fv::before {
      background-position: center;
      background-size: cover;
    }
    .p-top__hero-video {
      height: calc(100% - 107 * var(--top-u));
    }
    .p-top__hero-catch {
      top: calc(var(--top-fv-y) + 172 * var(--top-u));
    }
    .p-top__badges {
      top: calc(var(--top-fv-y) + 125.9 * var(--top-u));
    }
    .p-top__badges-note {
      top: calc(var(--top-fv-y) + 421.7 * var(--top-u));
    }
    .p-top__mv-catch {
      top: calc(var(--top-fv-y) + 567 * var(--top-u));
    }
    .p-top__mv-lead {
      top: calc(var(--top-fv-y) + 650.2 * var(--top-u));
    }
    .p-top__mv-cta {
      top: calc(var(--top-fv-y) + 464.7 * var(--top-u));
    }
  }

  /* ---------- 概算費用：白地に見出し→説明→中央のカードの左右に前後のカードが見えるスライダー ---------- */
  /* 列幅をカードの合計幅に広げない（minmax(0, 1fr)） */
  .p-top__price {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    padding: calc(80 * var(--top-u)) 0;
  }
  .p-top__price-bg {
    display: none;
  }
  /* 見出し（PCカンプ node 50:196、2026-10-20）：文字と「？」・光の位置を組み合わせた1枚の見出しなので、
     文字の下限をかけず全体を同じ割合で縮める。「概算でいくら」は枠の左端から、「？」は文字の右端の30.8先が中心 */
  .p-top__price-title {
    --top-umin: 0px;
    width: calc(310.4 * var(--top-u));
    color: var(--top-color-green-dark);
  }
  .p-top__price-title-sub {
    gap: calc(2.25 * var(--top-u));
  }
  .p-top__price-title-c,
  .p-top__price-title-c--on {
    width: calc(39.47 * var(--top-u));
    height: calc(39.47 * var(--top-u));
    background-color: var(--top-color-green-dark);
    color: var(--top-color-white);
  }
  .p-top__price-title-c + .p-top__price-title-c {
    margin-left: calc(-9.83 * var(--top-u));
  }
  .p-top__price-title-c:not(.p-top__price-title-c--on) + .p-top__price-title-c--on {
    margin-left: calc(-7.26 * var(--top-u));
  }
  .p-top__price-title-c--on + .p-top__price-title-c--on {
    margin-left: calc(-10.67 * var(--top-u));
  }
  .p-top__price-title-main {
    margin-top: calc(8 * var(--top-u));
    margin-left: 0;
    font-size: max(var(--top-fmin, 0px), calc(48 * max(var(--top-u), var(--top-umin, 0px))));
    text-shadow: calc(2.59 * var(--top-u)) calc(2.59 * var(--top-u)) calc(10.35 * var(--top-u)) rgba(0, 0, 0, 0.08);
  }
  .p-top__price-title-de {
    font-size: max(var(--top-fmin, 0px), calc(48 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__price-title-q {
    top: calc(76.47 * var(--top-u));
    left: calc(302.5 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(48 * max(var(--top-u), var(--top-umin, 0px))));
    text-shadow: calc(2.59 * var(--top-u)) calc(2.59 * var(--top-u)) calc(10.35 * var(--top-u)) rgba(0, 0, 0, 0.08);
  }
  .p-top__price-title-deco {
    top: calc(74.06 * var(--top-u));
    left: calc(-4.35 * var(--top-u));
    width: calc(332.36 * var(--top-u));
    height: calc(41.05 * var(--top-u));
  }
  /* PC（1200以上）は「概算でいくら？」と光を縮めない（48pxのまま。上の「あなたのお庭の場合」は縮める。2026-10-20）
     縦の位置は「概算でいくら」の上端（丸の高さ39.47＋間8）からの距離で置く */
  @media (min-width: 1200px) {
    .p-top__price-title {
      width: 310.4px;
    }
    .p-top__price-title-main,
    .p-top__price-title-de {
      font-size: 48px;
    }
    .p-top__price-title-q {
      top: calc(47.47 * var(--top-u) + 29px);
      left: 302.5px;
      font-size: 48px;
    }
    .p-top__price-title-deco {
      top: calc(47.47 * var(--top-u) + 26.59px);
      left: -4.35px;
      width: 332.36px;
      height: 41.05px;
    }
  }
  /* 説明はスライダーの上へ。1行に並べる（カンプの注記：改行なし） */
  .p-top__price-lead {
    order: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: calc(40 * var(--top-u));
    padding-bottom: 0;
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__price-lead-row {
    align-items: center;
    margin-top: 0;
  }
  .p-top__price-lead-pill {
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__price-lead-note {
    margin: 0 0 0 calc(8 * var(--top-u));
  }
  .p-top__price-lead-note br {
    display: none;
  }
  .p-top__price-slider {
    order: 2;
    margin-top: calc(40 * var(--top-u));
  }
  /* カード（幅387）を3枚、中身の幅1200に収めて並べる（間19.49）。中央のカードを画面の中央に置き、左右は画面の端まで見せる。
     上下の余白は影（約12）が切れない分だけ取る */
  .p-top__price-cases.p-top__price-cases {
    --top-slider-pad: calc(9.74 * var(--top-u));
    margin: calc(-14 * var(--top-u)) 0;
    padding: calc(14 * var(--top-u)) calc(50% - 193.51 * var(--top-u));
  }
  .p-top__price-cases .p-top__price-case {
    flex-basis: calc(387.02 * var(--top-u));
  }
  .p-top__price-case {
    filter: drop-shadow(calc(2.37 * var(--top-u)) calc(2.37 * var(--top-u)) calc(9.47 * var(--top-u)) rgba(0, 0, 0, 0.16));
  }
  /* 写真：画像は枠（236.71）より下に11.5長く、下端を基準に切り取ってある（はみ出した分は本文の下に隠れる） */
  .p-top__price-photo {
    overflow: hidden;
    aspect-ratio: 387.02 / 236.71;
    border-radius: calc(20 * var(--top-u)) calc(20 * var(--top-u)) 0 0;
    filter: drop-shadow(0 calc(2.37 * var(--top-u)) calc(4.73 * var(--top-u)) rgba(0, 0, 0, 0.04));
  }
  .p-top__price-photo img {
    height: 104.87%;
    border-radius: 0;
    object-position: bottom;
  }
  /* 縦長の写真（ドッグランの犬）は下寄せだと顔が切れるので上寄り */
  .p-top__price-photo img.p-top__price-photo-img--upper {
    object-position: 50% 35%;
  }
  .p-top__price-area {
    top: calc(14.62 * var(--top-u));
    left: calc(13.02 * var(--top-u));
    width: calc(62 * var(--top-u));
    height: calc(62 * var(--top-u));
    border-radius: calc(16 * var(--top-u));
  }
  .p-top__price-body {
    padding: calc(20 * var(--top-u)) 0;
    border-radius: 0 0 calc(20 * var(--top-u)) calc(20 * var(--top-u));
  }
  .p-top__price-tag {
    padding: calc(2.37 * var(--top-u)) calc(11.84 * var(--top-u));
    border-radius: calc(15.39 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__price-total {
    gap: calc(4.73 * var(--top-u));
  }
  .p-top__price-total-label {
    padding-bottom: calc(5.92 * var(--top-u));
  }
  .p-top__price-total-value {
    gap: calc(1.18 * var(--top-u));
    padding-bottom: calc(11.84 * var(--top-u));
    background-image: url("../images/top-renewal/price-underline-pc.svg");
    background-size: calc(119.18 * var(--top-u)) calc(2.37 * var(--top-u));
  }
  .p-top__price-total-num {
    font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__price-total-unit {
    font-size: max(var(--top-fmin, 0px), calc(32 * max(var(--top-u), var(--top-umin, 0px))));
  }
  /* 矢印：カンプの1440幅の中で、左右の端から80の位置（カードの上から175.64） */
  .p-top__price-nav {
    top: calc(175.64 * var(--top-u));
    right: calc(50% - 640 * var(--top-u));
    left: calc(50% - 640 * var(--top-u));
    padding: 0;
  }

  /* ---------- シミュレーションへの誘導：幅887の中に、左上と右下にスタッフ＋吹き出し ---------- */
  /* 背景（方眼＋上下の山形）はカンプの1枚画像。1440より広い画面では横に引き伸ばす */
  .p-top__talk {
    height: calc(491.5 * var(--top-u));
    padding: 0;
    background: url("../images/top-renewal/talk-bg-pc.webp") 0 0 / 100% 100% no-repeat;
  }
  .p-top__talk::before,
  .p-top__talk-top,
  .p-top__talk-bottom {
    display: none;
  }
  .p-top__talk-row {
    justify-content: flex-start;
    width: calc(887 * var(--top-u));
    height: calc(181 * var(--top-u));
    margin: 0 auto;
    padding: 0 0 0 calc(166 * var(--top-u));
    filter: drop-shadow(calc(7.85 * var(--top-u)) calc(7.85 * var(--top-u)) 0 rgba(255, 69, 69, 0.16));
  }
  .p-top__talk-row--2 {
    height: calc(175.6 * var(--top-u));
    margin-top: calc(-24 * var(--top-u));
    padding-left: calc(305.65 * var(--top-u));
    filter: drop-shadow(calc(7.85 * var(--top-u)) calc(7.85 * var(--top-u)) 0 rgba(255, 69, 69, 0.16));
  }
  /* SPの画像は頭の上の余白が少ないため、カンプの見た目（頭の先がセクションの上端）に合わせて置く */
  .p-top__talk-staff--1 {
    top: 0;
    left: calc(8.7 * var(--top-u));
    width: calc(135.6 * var(--top-u));
    height: calc(192 * var(--top-u));
  }
  .p-top__talk-staff--2 {
    top: 0;
    left: calc(753.3 * var(--top-u));
    width: calc(124.1 * var(--top-u));
    height: calc(175.6 * var(--top-u));
  }
  /* 吹き出し：422×120の角丸。中身は上下中央（2行の高さから上の余白を決める） */
  .p-top__talk-bubble {
    width: calc(422 * var(--top-u));
    height: calc(120 * var(--top-u));
    padding: calc(26.6 * var(--top-u)) 0 0;
    border-radius: calc(60 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
    text-align: center;
  }
  .p-top__talk-bubble--2 {
    padding-top: calc(27.5 * var(--top-u));
    border-width: 2px;
  }
  .p-top__talk-line + .p-top__talk-line {
    margin-top: calc(2.69 * var(--top-u));
  }
  /* 1つ目：「3つの質問に答えるだけ」と「でわかります。」を1行に（間の改行が空白にならないよう親は文字サイズ0） */
  .p-top__talk-bubble--1 {
    font-size: 0;
  }
  .p-top__talk-bubble--1 .p-top__talk-line {
    font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__talk-bubble--1 .p-top__talk-line:nth-child(2),
  .p-top__talk-bubble--1 .p-top__talk-line:nth-child(3) {
    display: inline;
  }
  .p-top__talk-line--medium {
    font-weight: 700;
  }
  .p-top__talk-em {
    margin-right: calc(2.69 * var(--top-u));
    padding: calc(5.38 * var(--top-u)) calc(2.69 * var(--top-u));
  }
  .p-top__talk-line--flex + .p-top__talk-line--flex {
    margin-top: calc(3.92 * var(--top-u));
  }
  .p-top__talk .p-top__cta-tag {
    height: calc(32 * var(--top-u));
    padding: 0 calc(12 * var(--top-u));
    border-radius: calc(3.92 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__talk .p-top__cta-tag-num {
    font-size: max(var(--top-fmin, 0px), calc(27 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__talk-desu {
    font-weight: 700;
  }
  /* 吹き出しの形（白い面＋枠線＋しっぽ）はPCだけ1枚のSVG（書き出し用のカンプ node 58:2129・58:2148、2026-10-20）。
     三角と小片を重ねる作り方だと、しっぽの付け根に線やすき間が出るため。SVGは吹き出しの外へ上下左右10ずつ広い */
  .p-top__talk-bubble {
    border-color: transparent;
    background-color: transparent;
  }
  .p-top__talk-bubble::before {
    content: "";
    position: absolute;
    top: calc(-10 * var(--top-u) - var(--top-talk-bw, 1px));
    left: calc(-10 * var(--top-u) - var(--top-talk-bw, 1px));
    z-index: -1;
    width: calc(442 * var(--top-u));
    height: calc(140 * var(--top-u));
    background: url("../images/top-renewal/talk-bubble-1-pc.svg") 0 0 / 100% 100% no-repeat;
  }
  .p-top__talk-bubble--2 {
    --top-talk-bw: 2px;
  }
  .p-top__talk-bubble--2::before {
    background-image: url("../images/top-renewal/talk-bubble-2-pc.svg");
  }
  .p-top__talk-tail,
  .p-top__talk-patch {
    display: none;
  }
  .p-top__talk-cta {
    gap: calc(21.67 * var(--top-u));
    margin-top: calc(16 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(32 * max(var(--top-u), var(--top-umin, 0px))));
    text-shadow: 0 0 calc(3 * var(--top-u)) var(--top-color-white), 0 0 calc(3 * var(--top-u)) var(--top-color-white), 0 0 calc(4 * var(--top-u)) var(--top-color-white);
  }
  .p-top__talk-deco {
    width: calc(44.91 * var(--top-u));
    height: auto;
  }

  /* ---------- 料金シミュレーション：3問を縦に並べ、「結果をみる」で結果をモーダルに ---------- */
  .p-top__sim {
    align-content: start;
    justify-items: stretch;
    row-gap: calc(64 * var(--top-u));
    min-height: 0;
    /* 中身は幅1200で中央（1440より広い画面では背景だけ延ばす） */
    padding: calc(64 * var(--top-u)) max(calc(40 * var(--top-u)), calc(50% - 600 * var(--top-u))) calc(80 * var(--top-u));
  }
  .p-top__sim-remain-sp {
    display: none;
  }
  .p-top__sim-remain-pc {
    display: inline;
  }
  /* 札：カンプは上下12・左右16、文字の行の高さ26（2026-10-20のカンプで左右が12→16に） */
  .p-top__sim-remain {
    padding: calc(12 * var(--top-u)) calc(16 * var(--top-u));
    line-height: calc(26 * var(--top-u));
  }
  /* バーは札の上端から61.35、質問はバーの下端から31.15（カンプの位置） */
  .p-top__sim-bar {
    margin-top: calc(11.35 * var(--top-u));
  }
  .p-top__sim-card {
    padding: 0 calc(24 * var(--top-u)) calc(40 * var(--top-u));
  }
  .p-top__sim-q {
    margin-top: calc(31.15 * var(--top-u));
  }
  .p-top__sim-q-title {
    font-size: max(var(--top-fmin, 0px), calc(32 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__sim-options {
    grid-template-columns: repeat(4, 1fr);
    gap: calc(16 * var(--top-u));
  }
  /* 1問目はカンプのPC版の並び（土・天然芝・屋上・タイル・雑草）。SPは 土・雑草・天然芝・屋上・タイル */
  .p-top__sim-option:has([name="state"][value="雑草"]) {
    order: 1;
  }
  /* 写真は枠いっぱい。影はカンプのPC版（2・3） */
  .p-top__sim-option {
    overflow: hidden;
    padding: 0;
    filter: drop-shadow(calc(2 * var(--top-u)) calc(3 * var(--top-u)) 0 rgba(0, 0, 0, 0.12));
  }
  .p-top__sim-option-img {
    border-radius: 0;
  }
  .p-top__sim-option-label {
    padding: calc(4 * var(--top-u)) 0 calc(8 * var(--top-u)) calc(16 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
    line-height: 1;
  }
  .p-top__sim-check {
    width: calc(24 * var(--top-u));
    height: calc(24 * var(--top-u));
  }
  .p-top__sim-options--text {
    gap: calc(8 * var(--top-u));
  }
  .p-top__sim-option--text {
    padding: calc(18 * var(--top-u)) calc(8 * var(--top-u));
    filter: drop-shadow(calc(1 * var(--top-u)) calc(2 * var(--top-u)) 0 rgba(0, 0, 0, 0.12));
  }
  .p-top__sim-option--text .p-top__sim-option-label {
    padding: 0 0 calc(4 * var(--top-u)) calc(4 * var(--top-u));
  }
  /* 結果をみる：赤い外枠＋白い内線の丸ボタン。3問すべて答えるまでは押せない */
  .p-top__sim-submit {
    display: block;
    justify-self: center;
  }
  .p-top__sim-submit-btn {
    position: relative;
    display: grid;
    place-items: center;
    width: calc(368 * var(--top-u));
    height: calc(76 * var(--top-u));
    margin: 2px;
    padding: 0;
    border: 2px solid var(--top-color-white);
    border-radius: calc(48 * var(--top-u));
    background-color: var(--top-color-red);
    box-shadow: 0 0 0 2px var(--top-color-red), 0 calc(8 * var(--top-u)) calc(16 * var(--top-u)) rgba(0, 0, 0, 0.08);
    color: var(--top-color-white);
    font-family: var(--top-font-kaku);
    font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 900;
    line-height: 1.2;
    cursor: pointer;
    transition: opacity 0.2s;
  }
  .p-top__sim-submit-plus {
    position: absolute;
    top: 50%;
    right: calc(12 * var(--top-u));
    width: calc(32 * var(--top-u));
    transform: translateY(-50%);
  }
  .p-top__sim-submit-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
  }
  @media (hover: hover) {
    .p-top__sim-submit-btn:not(:disabled):hover {
      opacity: 0.8;
    }
  }
  /* 結果のモーダル（PCカンプ node 39:2072）。中身はSPの結果画面を組み替えて使う。
     上に金額のカード、下にお問い合わせ（LINE・メールを横に2つ）、一番下に「閉じる」 */
  .p-top__sim-dialog {
    --top-u: var(--top-base);
    isolation: isolate;
    width: calc(800 * var(--top-u));
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 32px);
    padding: calc(64 * var(--top-u)) calc(40 * var(--top-u));
    overflow-y: auto;
    border: 0;
    border-radius: calc(16 * var(--top-u));
    background-color: var(--top-color-marker);
  }
  .p-top__sim-dialog[open] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(16 * var(--top-u));
  }
  /* 背景の写真（ぼかし）。SPの結果画面の写真と同じ場面 */
  .p-top__sim-dialog::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: url("../images/top-renewal/mv-photo.webp") 50% 41% / cover no-repeat;
    filter: blur(2px);
  }
  .p-top__sim-dialog::backdrop {
    background-color: rgba(0, 0, 0, 0.5);
  }
  .p-top__sim-dialog .p-top__sim-result {
    width: 100%;
  }
  /* 金額のカード：見出しの札はカードの上の線に重ねる。下の三角（高さ約19）＋間隔16 */
  .p-top__sim-dialog .p-top__sim-result-card {
    margin-bottom: calc(35 * var(--top-u));
    padding: 0 calc(64 * var(--top-u)) calc(40 * var(--top-u));
  }
  .p-top__sim-dialog .p-top__sim-result-card::after {
    top: 100%;
    width: calc(69.28 * var(--top-u));
    height: calc(20.49 * var(--top-u));
  }
  .p-top__sim-dialog .p-top__sim-result-title {
    margin-top: calc(-26 * var(--top-u) - 2px);
    padding: calc(8 * var(--top-u)) calc(16 * var(--top-u));
  }
  .p-top__sim-dialog .p-top__sim-result-body {
    margin-top: calc(40 * var(--top-u));
  }
  /* 金額は2つを「～」でつないで横1行に */
  .p-top__sim-dialog .p-top__sim-price {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(12 * var(--top-u));
  }
  .p-top__sim-dialog .p-top__sim-price-sep {
    margin: 0;
  }
  .p-top__sim-dialog .p-top__sim-result-notes {
    padding: calc(8 * var(--top-u)) calc(24 * var(--top-u));
  }
  .p-top__sim-dialog .p-top__sim-result-text {
    text-align: center;
  }
  /* お問い合わせ：カードより左右16内側。ボタンは横に2つ */
  .p-top__sim-dialog .p-top__cta-card--result {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(16 * var(--top-u));
    margin: 0 calc(16 * var(--top-u));
  }
  .p-top__sim-dialog .p-top__cta-card--result .p-top__cta-lead {
    grid-column: 1 / -1;
  }
  .p-top__sim-dialog .p-top__cta-card--result .p-top__cta-btn {
    margin: calc(2 * var(--top-u));
  }
  .p-top__sim-dialog-close {
    order: 1;
    padding: calc(8 * var(--top-u)) calc(40 * var(--top-u));
    border: 1px solid #d7d7d7;
    border-radius: calc(24 * var(--top-u));
    background-color: var(--top-color-white);
    color: var(--top-color-text);
    font-family: var(--top-font-base);
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 500;
    line-height: normal;
    cursor: pointer;
    transition: opacity 0.2s;
  }
  .p-top__sim-dialog-close:focus-visible {
    outline: 2px solid var(--top-color-text);
    outline-offset: 2px;
  }
  @media (hover: hover) {
    .p-top__sim-dialog-close:hover {
      opacity: 0.7;
    }
  }

  /* ---------- 対応エリア：左に見出し・説明・都県名、右に地図 ---------- */
  /* ---------- 対応エリア（PCカンプ node 50:588、2026-10-20）：幅1000×440の緑のカード。左の列は上に見出し、下に説明と県名、右に地図 ---------- */
  .p-top__area {
    padding: calc(64 * var(--top-u)) 0;
  }
  .p-top__area-card {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr auto auto;
    column-gap: calc(64 * var(--top-u));
    width: calc(1000 * var(--top-u));
    /* タブレットは文字の下限（12px）で中身が高くなることがあるので、高さは最低値にする */
    min-height: calc(440 * var(--top-u));
    margin: 0 auto;
    padding: calc(40 * var(--top-u));
    border-radius: calc(16 * var(--top-u));
    text-align: left;
  }
  .p-top__area-title {
    grid-area: 1 / 1;
    font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  }
  /* 説明：3行（「当社は埼玉を中心に、」のあとで改行） */
  .p-top__area-text {
    grid-area: 3 / 1;
    /* 見出しとの最低限の間（PCは見出しとの間が広く空くので見た目は変わらない） */
    margin: calc(24 * var(--top-u)) 0 0;
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 700;
    line-height: 2;
  }
  /* 県名：文字の幅に合わせた札を4つ・3つの2行に（幅376＝文字16pxの23.5文字分で折り返す。
     タブレットで文字が12pxの下限に当たっても同じ並びになるよう、幅は文字の大きさ（em）で決める） */
  .p-top__area-prefs {
    grid-area: 4 / 1;
    display: flex;
    flex-wrap: wrap;
    gap: calc(8 * var(--top-u));
    width: 23.75em;
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
    margin: calc(24 * var(--top-u)) 0 0;
    padding: 0;
    list-style: none;
  }
  .p-top__area-prefs li {
    padding: calc(16 * var(--top-u)) calc(24 * var(--top-u));
    border-radius: calc(6 * var(--top-u));
    background-color: var(--top-color-white);
    color: var(--top-color-green-dark);
    font-family: var(--top-font-kaku);
    font-weight: 700;
    line-height: 1;
    text-align: center;
  }
  /* 地図：SPの配置のまま、カンプの大きさ（344.08×352）まで拡大。カードの上下中央 */
  .p-top__area-map {
    --top-u: calc(var(--top-base) * 1.1318);
    grid-area: 1 / 2 / -1 / 3;
    align-self: center;
    margin: 0;
  }

  /* ---------- 漫画：上に見出し、下のカードに横長の表紙と重ねたページ、カードの下端にボタン（PCカンプ node 50:29、2026-10-20） ---------- */
  .p-top__manga {
    padding: calc(64 * var(--top-u)) 0;
  }
  /* 見出し：画像は枠線の外側まで書き出しているので、その分（約3）を外へはみ出させる */
  .p-top__manga-head {
    width: calc(437.8 * var(--top-u));
    margin: calc(-3 * var(--top-u)) auto;
  }
  .p-top__manga-head::after {
    -webkit-mask-image: url("../images/top-renewal/manga-head-pc.webp?v=20261020");
    mask-image: url("../images/top-renewal/manga-head-pc.webp?v=20261020");
  }
  /* カード：1000×440。ページは右へ、ボタンは下へはみ出す（ボタンの分だけ下を空ける） */
  .p-top__manga-card {
    overflow: visible;
    width: calc(1000 * var(--top-u));
    height: calc(440 * var(--top-u));
    margin: calc(24 * var(--top-u)) auto calc(41 * var(--top-u));
    padding: calc(48 * var(--top-u)) calc(40 * var(--top-u));
    background-color: var(--top-color-lemon);
    box-shadow: inset 0 0 0 calc(4 * var(--top-u)) var(--top-color-white), calc(4 * var(--top-u)) calc(4 * var(--top-u)) calc(6 * var(--top-u)) rgba(0, 0, 0, 0.16);
  }
  .p-top__manga-rays {
    display: none;
  }
  .p-top__manga-cover {
    width: calc(611.23 * var(--top-u));
    height: calc(344 * var(--top-u));
    aspect-ratio: auto;
    border-radius: calc(15.83 * var(--top-u));
  }
  /* 3枚のページを少しずつ回転して重ねる（奥から 4.44°・3.19°・1.5°。位置はカンプの外接枠の中心に合わせた値） */
  .p-top__manga-pages {
    position: absolute;
    top: calc(14.53 * var(--top-u));
    left: calc(691.23 * var(--top-u));
    display: block;
    width: calc(347.38 * var(--top-u));
    height: calc(428.87 * var(--top-u));
  }
  .p-top__manga-page {
    position: absolute;
    display: grid;
    align-content: start;
    justify-items: end;
    gap: calc(12.42 * var(--top-u));
    width: calc(301.85 * var(--top-u));
    height: calc(404.28 * var(--top-u));
    padding: calc(18.62 * var(--top-u));
    background-color: var(--top-color-white);
    filter: drop-shadow(0 calc(3.1 * var(--top-u)) calc(9.31 * var(--top-u)) rgba(0, 0, 0, 0.16));
  }
  .p-top__manga-page--3 {
    top: calc(13.52 * var(--top-u));
    left: calc(61.62 * var(--top-u));
    transform: rotate(4.44deg);
  }
  .p-top__manga-page--2 {
    top: calc(8.08 * var(--top-u));
    left: calc(41.11 * var(--top-u));
    transform: rotate(3.19deg);
  }
  .p-top__manga-page--1 {
    top: calc(5.44 * var(--top-u));
    left: calc(15.83 * var(--top-u));
    transform: rotate(1.5deg);
  }
  .p-top__manga-page img {
    display: block;
    width: 100%;
    object-fit: cover;
    object-position: bottom;
  }
  .p-top__manga-page img:nth-child(1) {
    aspect-ratio: 341 / 185.13;
  }
  .p-top__manga-page img:nth-child(2) {
    aspect-ratio: 341 / 154.11;
  }
  .p-top__manga-page img:nth-child(3) {
    aspect-ratio: 341 / 95.23;
  }
  /* まんがを読む：カードの下端に重ねる（カードの上から419。文字18・赤線2・＋の丸56） */
  .p-top__manga-btn {
    position: absolute;
    top: calc(419 * var(--top-u));
    left: 50%;
    margin: 0;
    transform: translateX(-50%);
    filter: drop-shadow(calc(6.24 * var(--top-u)) calc(6.24 * var(--top-u)) calc(6.24 * var(--top-u)) rgba(0, 0, 0, 0.04));
  }
  .p-top__manga-btn-text {
    margin-right: calc(-24.95 * var(--top-u));
    padding: calc(16 * var(--top-u)) calc(64 * var(--top-u)) calc(16 * var(--top-u)) calc(40 * var(--top-u));
    border-radius: calc(62.38 * var(--top-u)) 0 0 calc(62.38 * var(--top-u));
    box-shadow: 0 0 0 calc(4.68 * var(--top-u)) var(--top-color-white);
    font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
    line-height: normal;
  }
  /* ＋の丸：SVGは外側の白い縁まで含めて64.13（丸本体は56） */
  .p-top__manga-btn-icon {
    width: calc(64.13 * var(--top-u));
    margin: calc(-4.06 * var(--top-u));
  }

  /* ---------- ご依頼の前に知っておいてほしいこと：白いカードに質問の札と大きな吹き出し ---------- */
  .p-top__qa {
    padding: calc(80 * var(--top-u)) 0;
  }
  .p-top__qa::before {
    background-position: 0 0;
    background-size: calc(720 * var(--top-u)) calc(1032.2 * var(--top-u));
    background-repeat: repeat;
  }
  /* 見出し：Q・Aアイコン（SPの1.18倍）＋2行（32・40） */
  .p-top__qa-icon {
    width: calc(104 * var(--top-u));
    height: calc(74.43 * var(--top-u));
  }
  .p-top__qa-icon-q,
  .p-top__qa-icon-a {
    width: calc(55.95 * var(--top-u));
    height: calc(55.95 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(23.63 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__qa-icon-a {
    top: calc(14.12 * var(--top-u));
    left: calc(45.84 * var(--top-u));
  }
  .p-top__qa-icon-q img,
  .p-top__qa-icon-a img {
    width: calc(12.52 * var(--top-u));
    height: calc(13.11 * var(--top-u));
  }
  .p-top__qa-icon-q img {
    top: calc(45.09 * var(--top-u));
    left: calc(1.72 * var(--top-u));
  }
  .p-top__qa-icon-a img {
    top: calc(45.09 * var(--top-u));
    left: calc(41.71 * var(--top-u));
  }
  .p-top__qa-deco--1 {
    top: calc(-3.21 * var(--top-u));
    left: calc(85.81 * var(--top-u));
    width: calc(42.7 * var(--top-u));
    height: calc(33.34 * var(--top-u));
  }
  /* PCは2行とも40px（2026-10-20） */
  .p-top__qa-title {
    margin-top: calc(16 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
    line-height: 1;
  }
  .p-top__qa-title br {
    display: none;
  }
  .p-top__qa-title-2 {
    display: block;
    margin-top: calc(16 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
    letter-spacing: -0.06em;
  }
  /* 担当スタッフの紹介：吹き出し（2行）＋スタッフ＋名札 */
  /* 吹き出しとイラストの組み合わせは、タブレットでは文字が12pxになるまで全体を大きくする（PCはそのまま） */
  .p-top__qa-intro {
    --top-u: max(var(--top-base), 0.75px);
    width: calc(496 * var(--top-u));
    height: calc(170 * var(--top-u));
    margin: calc(16 * var(--top-u)) auto 0;
  }
  /* PC（1200〜1440）は文字が94%で止まるので、吹き出し・イラスト・名札も94%で止める（吹き出しがイラストに重ならないように） */
  @media (min-width: 1200px) {
    .p-top__qa-intro,
    .p-top__qa-name {
      --top-u: max(var(--top-base), var(--top-umin, 0px));
    }
  }
  /* よくある質問の吹き出しはPC・タブレットでは形が変わるため、SPの1枚のSVGをやめてCSSの枠・しっぽに戻す */
  .p-top__qa-bubble {
    border-color: var(--top-color-qa-line);
    background-color: var(--top-color-white);
  }
  .p-top__qa-bubble::before {
    content: none;
  }
  .p-top__qa-tail,
  .p-top__qa-patch {
    visibility: visible;
  }
  /* 大きさは文字に合わせる（カンプ node 32:643 は336×92。文字が94%で止まる1200〜1440でも枠からはみ出さない） */
  .p-top__qa-bubble--intro {
    width: auto;
    height: auto;
    margin-top: calc(6 * var(--top-u));
    padding: calc(16 * var(--top-u)) calc(24 * var(--top-u));
    font-size: 0;
  }
  .p-top__qa-bubble--intro p {
    display: inline;
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__qa-bubble--intro p:nth-of-type(3) {
    display: block;
    margin-top: calc(8 * var(--top-u));
  }
  .p-top__qa-bubble--intro br {
    display: none;
  }
  .p-top__qa-pill {
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  /* しっぽとつなぎ目は吹き出しの右下からの距離で置く（吹き出しの大きさが文字で変わっても付いてくる） */
  .p-top__qa-tail--intro {
    top: auto;
    right: calc(-3.55 * var(--top-u));
    bottom: calc(7.72 * var(--top-u));
    left: auto;
    width: calc(19.67 * var(--top-u));
    height: calc(19.33 * var(--top-u));
  }
  .p-top__qa-patch--intro {
    top: auto;
    right: calc(-0.15 * var(--top-u));
    bottom: calc(18.86 * var(--top-u));
    left: auto;
  }
  .p-top__qa-intro-staff {
    top: calc(-4.82 * var(--top-u));
    left: calc(380.55 * var(--top-u));
    width: calc(115.45 * var(--top-u));
    height: calc(187.12 * var(--top-u));
  }
  .p-top__qa-deco--2 {
    top: calc(138.01 * var(--top-u));
    left: calc(-1.36 * var(--top-u));
    width: calc(30.8 * var(--top-u));
    height: calc(21.48 * var(--top-u));
  }
  .p-top__qa-deco--3 {
    top: calc(10 * var(--top-u));
    left: calc(335.2 * var(--top-u));
    width: calc(26.89 * var(--top-u));
    height: calc(27.98 * var(--top-u));
  }
  /* 名札は紹介の枠の中（カンプの座標）。イラストの後ろに置く（紹介の枠が z-index 2） */
  .p-top__qa-name {
    position: relative;
    z-index: 1;
    width: calc(194 * var(--top-u));
    margin: calc(-14.06 * var(--top-u)) 0 0 calc(50% - 6.44 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__qa-arrows {
    display: none;
  }
  /* 質問と回答のカード（カンプの注記：PCでは情報のまとまりが分かるよう、カードにまとめる） */
  .p-top__qa-item {
    isolation: isolate;
    display: grid;
    grid-template-columns: 1fr calc(762 * var(--top-u)) calc(170 * var(--top-u));
    column-gap: calc(16 * var(--top-u));
    width: calc(1200 * var(--top-u));
    margin-top: calc(56.5 * var(--top-u));
    padding: 0 calc(48 * var(--top-u)) calc(32 * var(--top-u));
    border-radius: calc(16 * var(--top-u));
    background-color: var(--top-color-white);
    box-shadow: calc(2 * var(--top-u)) calc(4 * var(--top-u)) calc(12 * var(--top-u)) rgba(0, 0, 0, 0.04);
  }
  .p-top__qa-name + .p-top__qa-arrows + .p-top__qa-item {
    margin-top: calc(85.06 * var(--top-u));
  }
  /* 質問の札：カードの上端から33はみ出す */
  .p-top__qa-q {
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: calc(-33 * var(--top-u));
    padding: calc(32 * var(--top-u)) calc(88 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__qa-q br {
    display: none;
  }
  .p-top__qa-q::before {
    top: calc(8 * var(--top-u));
    left: calc(8 * var(--top-u));
    width: 100%;
    height: 100%;
  }
  .p-top__qa-face {
    top: calc(13.42 * var(--top-u));
    width: calc(64.98 * var(--top-u));
    height: calc(83.58 * var(--top-u));
  }
  /* 回答：見出しの吹き出し（上半分）と本文（下半分）をつなげて1つの吹き出しに見せる */
  .p-top__qa-a-head,
  .p-top__qa-a-head--wide {
    display: contents;
  }
  .p-top__qa-a-head .p-top__qa-bubble,
  .p-top__qa-a-head .p-top__qa-bubble.p-top__qa-bubble--3 {
    position: relative;
    top: auto;
    left: auto;
    grid-area: 2 / 2;
    display: block;
    width: auto;
    height: auto;
    margin-top: calc(24 * var(--top-u));
    padding: calc(24 * var(--top-u)) calc(64 * var(--top-u)) calc(16 * var(--top-u));
    border-bottom: 0;
    border-color: var(--top-color-qa-line);
    border-radius: calc(40 * var(--top-u)) calc(40 * var(--top-u)) 0 0;
    box-shadow: calc(4 * var(--top-u)) calc(4 * var(--top-u)) 0 var(--top-color-qa-line);
    filter: none;
    font-size: 0;
    text-align: center;
  }
  /* 見出しと本文の間の点線 */
  .p-top__qa-a-head .p-top__qa-bubble::after {
    content: "";
    position: absolute;
    right: calc(64 * var(--top-u));
    bottom: 0;
    left: calc(64 * var(--top-u));
    border-bottom: 1px dashed var(--top-color-qa-line);
  }
  .p-top__qa-a-head .p-top__qa-bubble p {
    display: inline;
    font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__qa-a-head .p-top__qa-bubble .p-top__qa-bubble-s {
    display: block;
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__qa-bubble p + p {
    margin-top: 0;
  }
  .p-top__qa-a-head .p-top__qa-tail {
    display: none;
  }
  .p-top__qa-a-body {
    position: relative;
    grid-area: 3 / 2;
    padding: calc(16 * var(--top-u)) calc(64 * var(--top-u)) calc(24 * var(--top-u));
    border: 1px solid var(--top-color-qa-line);
    border-top: 0;
    border-radius: 0 0 calc(40 * var(--top-u)) calc(40 * var(--top-u));
    background-color: var(--top-color-white);
    /* しっぽの影も同じ向きに落とすため、box-shadow ではなく要素ごと drop-shadow */
    filter: drop-shadow(calc(4 * var(--top-u)) calc(4 * var(--top-u)) 0 var(--top-color-qa-line));
  }
  /* しっぽ：吹き出しの右下（カンプの回転・位置から、吹き出しの下端・右端からの距離で置く） */
  .p-top__qa-a-body::after {
    content: "";
    position: absolute;
    right: calc(-27.3 * var(--top-u));
    bottom: calc(52.75 * var(--top-u));
    width: calc(30.83 * var(--top-u));
    height: calc(32.12 * var(--top-u));
    background: url("../images/top-renewal/qa-tail-pc.svg") 0 0 / 100% 100% no-repeat;
    transform: rotate(103.88deg);
  }
  .p-top__qa-staff,
  .p-top__qa-staff--1,
  .p-top__qa-staff--2,
  .p-top__qa-staff--wide {
    position: static;
    grid-area: 2 / 3 / 4 / 4;
    align-self: end;
    justify-self: center;
    width: auto;
    height: calc(236 * var(--top-u));
  }
  /* 質問と質問の間の下向き三角 */
  .p-top__qa-sep {
    width: calc(61.39 * var(--top-u));
    height: calc(25.74 * var(--top-u));
    margin-top: calc(24.75 * var(--top-u));
  }
  .p-top__qa-sep + .p-top__qa-item {
    margin-top: calc(56.5 * var(--top-u));
  }

  /* ---------- 選ばれる5つの証拠：共通 ---------- */
  .p-top__proof {
    padding: 0 0 calc(80 * var(--top-u));
  }
  /* 背景の芝生写真：1枚 1440×960。上の2枚分は濃く、以降は半透明（SPと同じ考え方） */
  /* 背景はセクションの間、画面に固定して動かさない（カンプの注記「背景はセクション中追従」、2026-10-20） */
  .p-top__proof::before,
  .p-top__proof::after {
    left: 0;
    width: 100%;
    margin-left: 0;
    background-size: 100% calc(960.1 * var(--top-u));
    background-attachment: fixed;
  }
  .p-top__proof::before {
    height: calc(1920.2 * var(--top-u));
  }
  /* 背景を固定すると、濃い部分と半透明の部分の境目だけがスクロールで動いて見えるため、PCは全体を濃いほうにそろえる */
  .p-top__proof::after {
    top: calc(1920.2 * var(--top-u));
    opacity: 1;
  }
  /* 見出しはSPの約1.55倍（「つの証拠」44→68）。「５」はPCで160（2026-10-20。160÷1.5455＝103.53） */
  .p-top__proof-title {
    --top-u: calc(var(--top-base) * 1.5455);
  }
  .p-top__proof-title-num {
    font-size: max(var(--top-fmin, 0px), calc(103.53 * max(var(--top-u), var(--top-umin, 0px))));
  }
  /* カードは画面の左右16を空けて横いっぱい（1920より広い画面では1888で止める）。中身は幅1120で中央
     （カンプの注記「常に横100％に。横1920でもこの余白感に」、2026-10-20。緑の背景はカードの左右に少し見えるだけ）。
     --top-proof-px はカードの左右の余白。cqw は .p-top の幅（＝画面の幅）なので、カードの中の要素からも同じ値になる */
  .p-top__proof-card {
    --top-proof-px: max(calc(40 * var(--top-u)), calc((min(100cqw, 1920px) - 32px - 1120 * var(--top-u)) / 2));
    width: min(100cqw - 32px, 1888px);
    margin: calc(4 * var(--top-u)) auto 0;
    padding: calc(40 * var(--top-u)) var(--top-proof-px);
    border-radius: calc(4 * var(--top-u));
  }
  /* 5枚を1つの箱に見せるため、大きい角丸は証拠01の上と証拠05の下だけ（ほかの角は4） */
  .p-top__proof-title + .p-top__proof-card {
    margin-top: calc(64 * var(--top-u));
    border-radius: calc(24 * var(--top-u)) calc(24 * var(--top-u)) calc(4 * var(--top-u)) calc(4 * var(--top-u));
  }
  .p-top__proof-card:last-child {
    border-radius: calc(4 * var(--top-u)) calc(4 * var(--top-u)) calc(24 * var(--top-u)) calc(24 * var(--top-u));
  }
  .p-top__proof-card + .p-top__proof-card {
    margin-top: calc(4 * var(--top-u));
  }
  .p-top__proof-card--wide {
    padding-right: var(--top-proof-px);
    padding-left: var(--top-proof-px);
  }
  .p-top__proof-card--wide .p-top__proof-head {
    padding: 0;
  }
  /* 「証拠01」と見出しは中央。見出しは2行を1行にまとめ、白い帯を1つに */
  .p-top__proof-head {
    display: grid;
    justify-items: center;
  }
  .p-top__proof-heading {
    width: fit-content;
    padding: calc(8 * var(--top-u)) calc(16 * var(--top-u));
    border-radius: 0 calc(8 * var(--top-u)) 0 0;
    background-color: var(--top-color-white);
    filter: drop-shadow(0 calc(4 * var(--top-u)) calc(8 * var(--top-u)) rgba(0, 0, 0, 0.08));
    font-size: max(var(--top-fmin, 0px), calc(36 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__proof-heading-line,
  .p-top__proof-heading-line + .p-top__proof-heading-line {
    display: inline;
    margin: 0;
    padding: 0;
    background: none;
    filter: none;
  }
  .p-top__proof-text {
    padding: 0;
    text-align: center;
  }

  /* ---------- 証拠01：事例カード（幅840）を中央に、左右に前後の事例を少し見せる ---------- */
  .p-top__proof-card:has(.p-top__proof-mail) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  .p-top__proof-card:has(.p-top__proof-mail) .p-top__proof-text {
    order: 1;
    margin-top: calc(24 * var(--top-u));
  }
  .p-top__proof-card:has(.p-top__proof-mail) .p-top__proof-slider {
    order: 2;
    margin-top: calc(40 * var(--top-u));
  }
  /* カードの左右の余白（--top-proof-px）まで見せ、事例（幅840）をカードの中央に置く（左右対称、2026-10-20）。
     左右の余白は「カードの幅 − 840」の半分（カードの幅は .p-top__proof-card と同じ式） */
  .p-top__proof-slides:has(.p-top__proof-mail) {
    --top-slider-pad: calc(12 * var(--top-u));
    margin: calc(-1 * var(--top-slider-pad)) calc(-1 * var(--top-proof-px));
    padding: var(--top-slider-pad) calc((min(100cqw - 32px, 1888px) - 840 * var(--top-u)) / 2);
  }
  /* 見切れている前後の事例はカンプの注記「カード薄く」で不透明度50% */
  .p-top__proof-slides:has(.p-top__proof-mail) > .is-clipped {
    opacity: 0.5;
  }
  .p-top__proof-slides:has(.p-top__proof-mail) > * {
    flex-basis: calc(840 * var(--top-u));
  }
  /* PC・タブレットは前後の事例も見えるので、高さはいちばん長い事例にそろえる */
  .p-top__proof-slides:has(.p-top__proof-mail) > :not(.is-active) {
    height: auto;
  }
  /* メール画像の高さが事例ごとに違うため、カードの高さを一番高い事例にそろえる */
  .p-top__proof-slides:has(.p-top__proof-mail) {
    align-items: stretch;
  }
  .p-top__proof-case:has(.p-top__proof-mail) {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: calc(24 * var(--top-u));
    height: 100%;
  }
  .p-top__proof-case:has(.p-top__proof-mail) > * + * {
    margin-top: 0;
  }
  .p-top__proof-case:has(.p-top__proof-mail) .p-top__proof-case-name {
    grid-column: 1 / -1;
  }
  .p-top__proof-case:has(.p-top__proof-mail) .p-top__proof-ba {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: calc(4 * var(--top-u));
    margin-top: calc(15 * var(--top-u));
  }
  .p-top__proof-ba-item {
    flex: 1;
    height: calc(250 * var(--top-u));
  }
  .p-top__proof-case:has(.p-top__proof-mail) .p-top__proof-ba--after-only {
    gap: calc(12 * var(--top-u));
  }
  .p-top__proof-ba--after-only > * + * {
    margin-top: 0;
  }
  /* 下向きの矢印（32×18）を右向きに回す。回した後の幅18に合わせて左右のmarginを詰める */
  .p-top__proof-ba-arrow {
    flex-shrink: 0;
    margin: 0 calc(-7 * var(--top-u));
    transform: rotate(-90deg);
  }
  /* 実際のメール：左の列に見出し＋枠付きの画像 */
  .p-top__proof-mail-label {
    grid-column: 1;
    display: flex;
    align-items: center;
    align-self: end;
    margin-top: calc(15 * var(--top-u));
    color: var(--top-color-green-dark);
    font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 500;
    line-height: 1.6;
    text-align: left;
  }
  .p-top__proof-mail-label::before {
    content: "";
    width: calc(24 * var(--top-u));
    height: calc(24 * var(--top-u));
    background: url("../images/top-renewal/icon-mail-green.svg") center / contain no-repeat;
  }
  .p-top__proof-mail {
    grid-column: 1;
    align-self: start;
    width: calc(266 * var(--top-u));
    padding: calc(6.27 * var(--top-u));
    border: 1px solid var(--top-color-gray-light);
    background-color: var(--top-color-white);
    box-shadow: none;
  }
  .p-top__proof-case:has(.p-top__proof-mail) .p-top__proof-voice {
    grid-area: 3 / 2 / 5 / 3;
    margin-top: calc(15 * var(--top-u));
  }
  .p-top__proof-case:has(.p-top__proof-mail) .p-top__proof-voice-body {
    font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  }

  /* ---------- 証拠02：中央のバッジ（SPの1.35倍）の左右に口コミの吹き出し ---------- */
  .p-top__proof-br-sp {
    display: none;
  }
  .p-top__proof-card--google {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  .p-top__proof-card--google .p-top__proof-text {
    order: 1;
    margin-top: calc(24 * var(--top-u));
  }
  .p-top__proof-card--google .p-top__proof-google {
    order: 2;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    margin-top: calc(40 * var(--top-u));
  }
  /* タブレットは吹き出しを左右に収めるため、バッジを少し小さく */
  .p-top__proof-google-badge {
    --top-u: calc(var(--top-base) * 0.95);
    grid-area: 1 / 2;
  }
  @media (min-width: 1200px) {
    .p-top__proof-google-badge {
      --top-u: calc(var(--top-base) * 1.345);
    }
  }
  .p-top__proof-google-note {
    grid-area: 2 / 2;
  }
  .p-top__proof-google-voices {
    position: relative;
    display: block;
    grid-row: 1 / 3;
    height: calc(245.8 * var(--top-u));
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .p-top__proof-google-voices--l {
    grid-column: 1;
    justify-self: start;
    width: calc(335 * var(--top-u));
  }
  .p-top__proof-google-voices--r {
    grid-column: 3;
    justify-self: end;
    width: calc(348 * var(--top-u));
  }
  .p-top__proof-google-voices li {
    position: absolute;
    padding: calc(16 * var(--top-u)) calc(24 * var(--top-u));
    border-radius: calc(36 * var(--top-u));
    background-color: var(--top-color-white);
    /* 影は右下にずらした金色（ぼかしなし。カンプの注記「ゴールドの影をこちらに合わせて」、2026-10-20） */
    filter: drop-shadow(calc(3 * var(--top-u)) calc(4 * var(--top-u)) 0 #f3dd9c);
    color: var(--top-color-text);
    font-family: var(--top-font-num);
    font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 700;
    line-height: 1.6;
    white-space: nowrap;
  }
  /* しっぽ：左の列は吹き出しの右下、右の列は左下 */
  .p-top__proof-google-voices li::after {
    content: "";
    position: absolute;
    top: calc(56 * var(--top-u));
    width: calc(26.36 * var(--top-u));
    height: calc(15.02 * var(--top-u));
    background: url("../images/top-renewal/proof-google-tail.svg") 0 0 / 100% 100% no-repeat;
  }
  .p-top__proof-google-voices--l li::after {
    right: calc(24 * var(--top-u));
    transform: scaleX(-1);
  }
  .p-top__proof-google-voices--r li::after {
    left: calc(24 * var(--top-u));
  }
  .p-top__proof-google-voices--l li:nth-child(1) {
    top: 0;
    left: calc(136.31 * var(--top-u));
  }
  .p-top__proof-google-voices--l li:nth-child(2) {
    top: calc(84 * var(--top-u));
    left: 0;
  }
  .p-top__proof-google-voices--l li:nth-child(3) {
    top: calc(174.78 * var(--top-u));
    left: calc(25.04 * var(--top-u));
  }
  /* 右の列は右端から置く（タブレットで文字が大きくなっても、バッジ側へ伸びてカードからはみ出さない） */
  .p-top__proof-google-voices--r li:nth-child(1) {
    top: 0;
    right: calc(141.5 * var(--top-u));
  }
  .p-top__proof-google-voices--r li:nth-child(2) {
    top: calc(84 * var(--top-u));
    right: calc(-11.1 * var(--top-u));
  }
  .p-top__proof-google-voices--r li:nth-child(3) {
    top: calc(168.99 * var(--top-u));
    right: calc(1.8 * var(--top-u));
  }

  /* ---------- 証拠03：職人のカードを3枚並べ、矢印で1人ずつ送る ---------- */
  .p-top__proof-card:has(.p-top__proof-staff) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    padding-bottom: calc(64 * var(--top-u));
  }
  .p-top__proof-card:has(.p-top__proof-staff) .p-top__proof-text {
    order: 1;
    margin-top: calc(24 * var(--top-u));
  }
  .p-top__proof-card:has(.p-top__proof-staff) .p-top__proof-text p + p {
    margin-top: calc(4 * var(--top-u));
  }
  .p-top__proof-card:has(.p-top__proof-staff) .p-top__proof-slider {
    order: 2;
    margin-top: calc(40 * var(--top-u));
  }
  .p-top__proof-slides:has(.p-top__proof-staff) {
    --top-slider-pad: calc(8 * var(--top-u));
  }
  .p-top__proof-slides:has(.p-top__proof-staff) > * {
    flex-basis: calc((100% - 32 * var(--top-u)) / 3);
  }
  .p-top__proof-card:has(.p-top__proof-staff) .p-top__proof-nav {
    margin-top: calc(16 * var(--top-u));
  }
  .p-top__proof-staff-img {
    height: calc(202.7 * var(--top-u));
  }
  .p-top__proof-staff-badge {
    top: calc(150.47 * var(--top-u));
    left: calc(244.05 * var(--top-u));
  }

  .p-top__sp-only {
    display: none;
  }
  .p-top__pc-only {
    display: inline;
  }

  /* ---------- 証拠04・05：保証のブロックをグリッドで組み替える ---------- */
  .p-top__proof-card--wide {
    padding-bottom: calc(64 * var(--top-u));
  }
  .p-top__proof-guarantee {
    display: grid;
    justify-content: center;
    margin-top: calc(24 * var(--top-u));
    padding-bottom: 0;
    background-color: transparent;
  }
  .p-top__proof-guarantee-visual {
    margin-bottom: 0;
  }
  .p-top__proof-guarantee-plate {
    grid-column: 1 / -1;
    margin: calc(8 * var(--top-u)) 0 0;
    font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__proof-guarantee-body {
    margin-top: 0;
    padding: 0;
    text-align: center;
  }
  /* 証拠04：悩み→説明の下に、大きな写真＋施工例4枚、最後に帯 */
  .p-top__proof-guarantee:has(.p-top__proof-guarantee-visual--4m) {
    grid-template-columns: calc(557.64 * var(--top-u)) calc(274 * var(--top-u)) calc(274 * var(--top-u));
    column-gap: calc(8.52 * var(--top-u));
  }
  .p-top__proof-guarantee:has(.p-top__proof-guarantee-visual--4m) .p-top__proof-guarantee-body {
    grid-area: 1 / 1 / 2 / -1;
    margin-bottom: calc(40 * var(--top-u));
  }
  .p-top__proof-guarantee-visual--4m {
    grid-area: 2 / 1;
    height: calc(386.06 * var(--top-u));
  }
  .p-top__proof-guarantee-visual--4m .p-top__proof-guarantee-badge {
    top: calc(31.17 * var(--top-u));
    left: calc(26.41 * var(--top-u));
    width: calc(169.83 * var(--top-u));
    height: calc(197.05 * var(--top-u));
  }
  .p-top__proof-guarantee-examples {
    grid-area: 2 / 2 / 3 / 4;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-content: space-between;
    gap: calc(8.52 * var(--top-u));
  }
  .p-top__proof-guarantee-examples img {
    display: block;
    width: 100%;
    aspect-ratio: 351 / 243;
    object-fit: cover;
  }
  .p-top__proof-worry {
    --top-u: max(var(--top-base), 0.75px);
    width: calc(274 * var(--top-u));
  }
  .p-top__proof-worry::before {
    width: calc(272.96 * var(--top-u));
    height: calc(49.13 * var(--top-u));
  }
  .p-top__proof-worry-img {
    top: calc(-30.19 * var(--top-u));
    left: calc(227.5 * var(--top-u));
  }
  .p-top__proof-worry-arrow {
    width: calc(25.6 * var(--top-u));
    height: calc(9.7 * var(--top-u));
    margin: calc(12 * var(--top-u)) auto;
  }
  /* 証拠05：説明を見出しの下へ。左に写真（対象内容を重ねる）、右に保証書、下に帯 */
  .p-top__proof-guarantee:has(.p-top__proof-guarantee-visual--10y) {
    grid-template-columns: calc(711.76 * var(--top-u)) 1fr;
    column-gap: calc(40 * var(--top-u));
    justify-content: stretch;
  }
  .p-top__proof-guarantee:has(.p-top__proof-guarantee-visual--10y) .p-top__proof-guarantee-body {
    display: contents;
  }
  .p-top__proof-guarantee-visual--10y ~ .p-top__proof-guarantee-body .p-top__proof-guarantee-text {
    grid-area: 1 / 1 / 2 / -1;
    margin-bottom: calc(40 * var(--top-u));
  }
  .p-top__proof-guarantee-visual--10y {
    grid-area: 2 / 1 / 4 / 2;
    height: calc(492.76 * var(--top-u));
    /* PCカンプは写真の切り取り方がSPと違う（右にオレンジの袋とメジャー） */
    background-image: url("../images/top-renewal/proof-guarantee-10y-pc.webp");
  }
  .p-top__proof-guarantee-visual--10y .p-top__proof-guarantee-badge {
    top: calc(26.59 * var(--top-u));
    left: calc(39.28 * var(--top-u));
    width: calc(169.83 * var(--top-u));
    height: calc(197.05 * var(--top-u));
  }
  .p-top__proof-guarantee-visual--10y ~ .p-top__proof-guarantee-plate {
    grid-row: 4;
    margin-top: calc(16 * var(--top-u));
  }
  /* 対象内容：写真の下側に半透明の白で重ね、2列に */
  .p-top__proof-guarantee .p-top__proof-cover {
    position: relative;
    grid-area: 2 / 1 / 4 / 2;
    /* タブレット：文字が大きいぶん、写真の幅いっぱいにして写真の下端にそろえる */
    align-self: end;
    justify-self: stretch;
    margin: 0 calc(24 * var(--top-u));
    text-align: left;
    /* 半透明の白とぼかしは枠に付ける（リストに付けると、ぼかしが角丸で切られず下の角の線が薄くなる） */
    background-color: rgba(255, 255, 255, 0.65);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
  }
  @media (min-width: 1200px) {
    .p-top__proof-guarantee .p-top__proof-cover {
      align-self: start;
      justify-self: start;
      width: calc(615 * var(--top-u));
      margin: calc(350.46 * var(--top-u)) 0 0 calc(48.38 * var(--top-u));
    }
    .p-top__proof-guarantee .p-top__proof-cover-list {
      padding: calc(10 * var(--top-u)) calc(64 * var(--top-u));
    }
  }
  .p-top__proof-guarantee .p-top__proof-cover-title {
    height: calc(28 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__proof-guarantee .p-top__proof-cover-list {
    grid-template-rows: repeat(3, auto);
    grid-auto-flow: column;
    justify-content: space-between;
    padding: calc(10 * var(--top-u)) calc(24 * var(--top-u));
  }
  /* 右の列：「＼ 詳細は契約時に書面でお渡しします ／」＋保証書 */
  .p-top__proof-guarantee .p-top__proof-cover-note {
    grid-area: 2 / 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(8 * var(--top-u));
    margin-top: 0;
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 700;
    line-height: 1.6;
  }
  .p-top__proof-guarantee .p-top__proof-cover-note::before,
  .p-top__proof-guarantee .p-top__proof-cover-note::after {
    content: "";
    width: 2px;
    height: calc(17.24 * var(--top-u));
    background-color: var(--top-color-text);
    transform: rotate(-17deg);
  }
  .p-top__proof-guarantee .p-top__proof-cover-note::after {
    transform: rotate(17deg);
  }
  .p-top__proof-guarantee .p-top__proof-warranty-doc {
    grid-area: 3 / 2;
    align-self: start;
    width: calc(325.62 * var(--top-u));
    margin-top: calc(9.79 * var(--top-u));
    padding: calc(10.99 * var(--top-u));
    filter: drop-shadow(0 calc(5.49 * var(--top-u)) calc(5.49 * var(--top-u)) rgba(0, 0, 0, 0.08));
  }
  /* 帯の下のオレンジの下向き三角（事例カードへ） */
  .p-top__proof-guarantee::after {
    top: calc(100% + 30.3 * var(--top-u));
    width: calc(49.93 * var(--top-u));
    height: calc(18.92 * var(--top-u));
    background: var(--top-color-orange);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    transform: translateX(-50%);
  }
  /* 証拠05の事例：左に写真、右に名前＋うれしい声 */
  .p-top__proof-case--voice {
    display: grid;
    grid-template-columns: calc(322.64 * var(--top-u)) 1fr;
    column-gap: calc(24 * var(--top-u));
    width: calc(1000 * var(--top-u));
    margin: calc(73.22 * var(--top-u)) auto 0;
    padding: calc(33 * var(--top-u)) calc(25 * var(--top-u));
    text-align: left;
  }
  .p-top__proof-case--voice > * + * {
    margin-top: 0;
  }
  .p-top__proof-case--voice .p-top__proof-case-photo {
    grid-area: 1 / 1 / 3 / 2;
    height: calc(211 * var(--top-u));
  }
  .p-top__proof-case--voice .p-top__proof-case-name {
    grid-area: 1 / 2;
  }
  .p-top__proof-case--voice .p-top__proof-voice {
    grid-area: 2 / 2;
    margin-top: calc(16 * var(--top-u));
  }
  .p-top__proof-case--voice .p-top__proof-voice-label {
    margin: 0 0 calc(-16 * var(--top-u)) calc(24 * var(--top-u));
  }
  .p-top__proof-case--voice .p-top__proof-voice-body {
    padding: calc(24 * var(--top-u));
  }

  /* ---------- まずは費用から：左に写真3枚のカード、右に緑のパネル（説明＋CTA）。PCカンプ node 50:1196（2026-10-20） ---------- */
  .p-top__cost {
    display: grid;
    grid-template-columns: calc(642 * var(--top-u)) calc(554 * var(--top-u));
    grid-template-rows: auto auto 1fr;
    justify-content: center;
    column-gap: calc(4 * var(--top-u));
    padding: calc(100 * var(--top-u)) 0 calc(80 * var(--top-u));
    /* 上の淡い緑の形（左右の端に合わせる） */
    background:
      url("../images/top-renewal/cost-blob-l-pc.svg") 0 0 / calc(722.05 * var(--top-u)) calc(231.82 * var(--top-u)) no-repeat,
      url("../images/top-renewal/cost-blob-r-pc.webp?v=20261020") 100% 0 / calc(956.57 * var(--top-u)) calc(278.84 * var(--top-u)) no-repeat,
      var(--top-color-white);
  }
  /* 下の芝生（上から白くぼかす）。セクションの下端から18上で終わる */
  .p-top__cost::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: calc(18 * var(--top-u));
    left: 0;
    z-index: -1;
    height: calc(274.09 * var(--top-u));
    background:
      linear-gradient(var(--top-color-white), rgba(255, 255, 255, 0) 55.23%),
      url("../images/top-renewal/cost-grass-pc.webp") center / 100% 100% no-repeat;
  }
  /* 飾りの入れ物はグリッドのマスを取らないようにする（中身は絶対配置） */
  .p-top__cost-deco {
    display: contents;
  }
  .p-top__cost-grass-bottom,
  .p-top__cost-dome,
  .p-top__cost-grass-top,
  .p-top__cost-panel,
  .p-top__cost-swoosh {
    display: none;
  }
  /* 「まずは」の丸と飾り（カンプの1440幅の中の座標。中央からの距離で置く） */
  .p-top__cost-badge-bg {
    top: calc(-33.29 * var(--top-u));
    left: calc(50% - 298.65 * var(--top-u));
    width: calc(121.82 * var(--top-u));
    height: calc(64.43 * var(--top-u));
  }
  .p-top__cost-badge-tail {
    top: calc(71.15 * var(--top-u));
    left: calc(50% - 239.05 * var(--top-u));
    width: calc(29.76 * var(--top-u));
    height: calc(27.47 * var(--top-u));
  }
  .p-top__cost-badge {
    top: calc(-25.05 * var(--top-u));
    left: calc(50% - 293.35 * var(--top-u));
    width: calc(115.09 * var(--top-u));
    height: calc(109.37 * var(--top-u));
    border-radius: calc(69.05 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__cost-badge-deco {
    top: calc(82.7 * var(--top-u));
    left: calc(-35.2 * var(--top-u));
    width: calc(44.39 * var(--top-u));
    height: calc(36.44 * var(--top-u));
  }
  .p-top__cost-badge-deco img {
    top: calc(-3.9 * var(--top-u));
    left: calc(-1.97 * var(--top-u));
    width: calc(53.1 * var(--top-u));
    height: calc(41.3 * var(--top-u));
  }
  .p-top__cost-title {
    grid-area: 1 / 1 / 2 / -1;
    font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__cost-title-line {
    gap: calc(3.51 * var(--top-u));
  }
  .p-top__cost-title-line + .p-top__cost-title-line {
    margin-top: calc(8 * var(--top-u));
  }
  .p-top__cost-title-box {
    padding: calc(3.51 * var(--top-u)) calc(7.02 * var(--top-u)) calc(7.02 * var(--top-u));
    border-radius: 0 0 0 calc(7.02 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__cost-title-box--2 {
    border-radius: 0 calc(7.02 * var(--top-u)) 0 0;
  }
  /* 写真のカード：大1＋小2、高さ441 */
  .p-top__cost-photos {
    grid-area: 2 / 1 / 4 / 2;
    gap: calc(5.8 * var(--top-u));
    width: auto;
    height: calc(441 * var(--top-u));
    margin: calc(40 * var(--top-u)) 0 0;
    padding: calc(4 * var(--top-u));
    border-width: 6px;
    /* 角：左16・右2（緑のパネルと合わせて1枚に見せる。カンプの注記「角の半径・間隔はこちらに合わせて」） */
    border-radius: calc(16 * var(--top-u)) calc(2 * var(--top-u)) calc(2 * var(--top-u)) calc(16 * var(--top-u));
    box-shadow: calc(4.07 * var(--top-u)) calc(8.14 * var(--top-u)) calc(32.55 * var(--top-u)) rgba(0, 0, 0, 0.08);
  }
  .p-top__cost-photo--main {
    width: calc(394.14 * var(--top-u));
    height: 100%;
    border-radius: calc(12 * var(--top-u)) 0 0 calc(12 * var(--top-u));
  }
  .p-top__cost-photo-col {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: calc(6.89 * var(--top-u));
    flex: 1;
    width: auto;
  }
  .p-top__cost-photo--1,
  .p-top__cost-photo--2 {
    height: 100%;
    margin: 0;
    aspect-ratio: auto;
  }
  .p-top__cost-photo--1 {
    border-radius: 0 calc(2 * var(--top-u)) 0 0;
  }
  .p-top__cost-photo--2 {
    border-radius: 0 0 calc(2 * var(--top-u)) 0;
  }
  /* 緑のパネル：説明（上半分）とCTA（下半分）を同じ緑でつなげる */
  .p-top__cost-lead {
    grid-area: 2 / 2;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin-top: calc(40 * var(--top-u));
    /* 1行目（約448）がパネルの内幅ちょうどで折り返すため、左右の余白だけ40に詰める */
    padding: calc(39 * var(--top-u)) calc(40 * var(--top-u)) 0;
    /* 角：左2・右16 */
    border-radius: calc(2 * var(--top-u)) calc(16 * var(--top-u)) 0 0;
    background-color: var(--top-color-green-dark);
    font-size: max(var(--top-fmin, 0px), calc(18 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__cost-lead-row {
    align-items: center;
    margin-top: 0;
  }
  .p-top__cost-pill {
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__cost-lead-note {
    flex-basis: 100%;
    margin-top: calc(4 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  /* PCは1行に。タブレットは入りきらないので2行のまま */
  @media (min-width: 1200px) {
    .p-top__cost-lead-note br {
      display: none;
    }
  }
  .p-top__cost-cta {
    grid-area: 3 / 2;
    align-content: start;
    /* 説明の箱と1px重ねて、境目に細い線が出ないようにする */
    margin: -1px 0 0;
    padding: calc(24 * var(--top-u) + 1px) calc(48 * var(--top-u)) calc(39 * var(--top-u));
    border-radius: 0 0 calc(16 * var(--top-u)) calc(2 * var(--top-u));
    background-color: var(--top-color-green-dark);
  }
  .p-top__cta-card--cost {
    padding: calc(16 * var(--top-u)) calc(40 * var(--top-u));
    border-radius: calc(8 * var(--top-u));
    background-color: var(--top-color-white);
  }

  /* ---------- 施工までの流れ：5つのステップを横一列に。番号の丸を点線でつなぐ ---------- */
  .p-top__flow {
    padding: calc(100 * var(--top-u)) 0;
  }
  /* 背景はPC用の横長の画像（カンプ node 58:2122 の書き出し、180度回転済み。SP用の縦長を横に伸ばしていたため、2026-10-20） */
  .p-top__flow::before {
    background-image: url("../images/top-renewal/flow-bg-pc.webp");
    background-size: calc(762.35 * var(--top-u)) calc(428.82 * var(--top-u));
    background-repeat: repeat;
  }
  .p-top__flow-deco {
    top: calc(76.6 * var(--top-u));
    left: calc(50% + 123.8 * var(--top-u));
    width: calc(51.03 * var(--top-u));
    height: calc(25.76 * var(--top-u));
  }
  .p-top__flow-title {
    font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__flow-title-deco {
    top: calc(24 * var(--top-u));
    left: calc(-9.3 * var(--top-u));
    width: calc(299.5 * var(--top-u));
    height: calc(41.94 * var(--top-u));
  }
  .p-top__flow-lead,
  .p-top__flow .p-top__proof-nav {
    display: none;
  }
  .p-top__flow-slider {
    margin-top: calc(64 * var(--top-u));
  }
  /* スライダーを止めて横一列（複製のスライドは出さない） */
  .p-top__flow-list.p-top__flow-list {
    justify-content: center;
    gap: 0;
    margin: 0;
    padding: 0;
  }
  .p-top__flow-list > :not([data-top-slide]) {
    display: none;
  }
  .p-top__flow-list > .p-top__flow-step {
    flex: 0 0 auto;
    width: calc(246 * var(--top-u));
    padding: 0 calc(24 * var(--top-u)) 0 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    transform: none;
  }
  .p-top__flow-list > .p-top__flow-step--last {
    width: calc(222 * var(--top-u));
    padding-right: 0;
  }
  /* 番号の丸の右から次のステップまで点線 */
  .p-top__flow-step:not(.p-top__flow-step--last)::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: calc(50.71 * var(--top-u));
    height: calc(10.9 * var(--top-u));
    background: url("../images/top-renewal/flow-line-pc.svg") 0 0 / calc(195.29 * var(--top-u)) 100% repeat-x;
  }
  .p-top__flow-num,
  .p-top__flow-step--dark .p-top__flow-num {
    position: relative;
    top: auto;
    left: auto;
    width: calc(44 * var(--top-u));
    height: calc(44 * var(--top-u));
    border-width: 3px;
    background-color: var(--top-color-green);
    font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__flow-body {
    margin-top: calc(-13.42 * var(--top-u));
    padding-left: calc(16 * var(--top-u));
  }
  .p-top__flow-img {
    width: calc(206 * var(--top-u));
    height: calc(160 * var(--top-u));
    border: 3px solid var(--top-color-white);
    border-radius: calc(6.71 * var(--top-u));
    box-shadow: calc(1.68 * var(--top-u)) calc(1.68 * var(--top-u)) calc(6.71 * var(--top-u)) rgba(0, 0, 0, 0.08);
  }
  .p-top__flow-name,
  .p-top__flow-name--l,
  .p-top__flow-step--dark .p-top__flow-name {
    margin-top: calc(16 * var(--top-u));
    color: var(--top-color-green);
    font-size: max(var(--top-fmin, 0px), calc(18.45 * max(var(--top-u), var(--top-umin, 0px))));
    text-align: center;
  }
  .p-top__flow-body--contact .p-top__flow-name {
    font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__flow-text,
  .p-top__flow-text--1line {
    margin-top: calc(13.42 * var(--top-u));
    line-height: 1.6;
  }
  .p-top__flow-text br {
    display: none;
  }
  .p-top__flow-doc {
    top: calc(74.9 * var(--top-u));
    right: auto;
    left: calc(142.71 * var(--top-u));
    width: calc(68.79 * var(--top-u));
  }
  /* お問い合わせ方法：上にフォーム・LINE・電話、下に料金シミュレーション */
  /* タブレットは列が狭いので4つを縦に並べる */
  .p-top__flow-contact {
    grid-template-columns: 1fr;
    grid-template-areas: "form" "line" "tel" "sim";
    gap: calc(3.35 * var(--top-u)) calc(3 * var(--top-u));
    margin-top: calc(13.42 * var(--top-u));
  }
  @media (min-width: 1200px) {
    .p-top__flow-contact {
      grid-template-columns: repeat(3, 1fr);
      grid-template-areas: "form line tel" "sim sim sim";
    }
  }
  .p-top__flow-contact li:nth-child(1) {
    grid-area: sim;
  }
  .p-top__flow-contact li:nth-child(2) {
    grid-area: line;
  }
  .p-top__flow-contact li:nth-child(3) {
    grid-area: form;
  }
  .p-top__flow-contact li:nth-child(4) {
    grid-area: tel;
  }
  .p-top__flow-contact-link {
    justify-content: flex-start;
    gap: calc(16 * var(--top-u));
    height: auto;
    padding: calc(12 * var(--top-u)) calc(16 * var(--top-u));
    border-radius: calc(4 * var(--top-u));
  }
  @media (min-width: 1200px) {
    .p-top__flow-contact-link {
      flex-direction: column;
      justify-content: center;
      gap: calc(8 * var(--top-u));
      padding: calc(12 * var(--top-u)) calc(8 * var(--top-u));
    }
  }
  .p-top__flow-contact li:nth-child(1) .p-top__flow-contact-link {
    flex-direction: row;
    justify-content: flex-start;
    gap: calc(16 * var(--top-u));
    padding: calc(12 * var(--top-u)) calc(16 * var(--top-u));
  }
  .p-top__flow-contact-link img {
    width: calc(20.12 * var(--top-u));
  }
  /* 「料金／シミュレーション」：タブレットは列が狭いので2行のまま */
  @media (min-width: 1200px) {
    .p-top__flow-contact-sim br {
      display: none;
    }
  }
  .p-top__flow-contact-sim span {
    display: inline;
    font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  }

  /* ---------- さらに W保証付き：全幅のオレンジの見出し＋白いカード（証拠04・05と同じ組み方） ---------- */
  .p-top__warranty {
    padding-bottom: calc(64 * var(--top-u));
  }
  .p-top__warranty-head {
    padding: calc(64 * var(--top-u)) 0 calc(32 * var(--top-u));
  }
  .p-top__warranty-badge {
    top: calc(-76.48 * var(--top-u));
    left: calc(50% - 57.5 * var(--top-u));
    width: calc(115 * var(--top-u));
    height: calc(115 * var(--top-u));
  }
  .p-top__warranty-badge-circle {
    border-radius: calc(69.14 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__warranty-badge-deco {
    width: calc(49 * var(--top-u));
  }
  .p-top__warranty-badge-deco--r {
    top: calc(0.67 * var(--top-u));
    left: calc(108.61 * var(--top-u));
  }
  .p-top__warranty-badge-deco--l {
    top: calc(-3.03 * var(--top-u));
    left: calc(-42.37 * var(--top-u));
  }
  .p-top__warranty-badge-tail {
    top: calc(101.25 * var(--top-u));
    left: calc(42.71 * var(--top-u));
    width: calc(29.8 * var(--top-u));
    height: calc(27.51 * var(--top-u));
  }
  .p-top__warranty-card {
    width: calc(1200 * var(--top-u));
    margin-top: calc(40 * var(--top-u));
    padding: calc(24 * var(--top-u)) calc(40 * var(--top-u));
    border-radius: calc(16 * var(--top-u));
    background: var(--top-color-white);
  }
  .p-top__warranty-block,
  .p-top__warranty-block--2 {
    display: grid;
    justify-content: center;
    padding: 0;
    background: none;
  }
  .p-top__warranty-plate,
  .p-top__warranty-block--2 .p-top__warranty-plate {
    margin: 0;
    padding: calc(16 * var(--top-u)) calc(8 * var(--top-u));
    border: 0.5px solid var(--top-color-white);
    background: linear-gradient(179.03deg, #fefefe 33.15%, #f7f6f3 72.3%, #ece8e2 97.14%, #fdfdfd 189.75%);
    filter: drop-shadow(calc(2 * var(--top-u)) calc(4 * var(--top-u)) calc(5 * var(--top-u)) rgba(0, 0, 0, 0.1));
    font-size: max(var(--top-fmin, 0px), calc(36 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__warranty-text,
  .p-top__warranty-body .p-top__warranty-text {
    margin-top: calc(16 * var(--top-u));
    padding: 0;
    line-height: 2;
    text-align: center;
  }
  /* 写真：左上を白くぼかす（証拠04・05と同じ） */
  .p-top__warranty-visual {
    margin-top: calc(16 * var(--top-u));
    overflow: hidden;
  }
  .p-top__warranty-photo,
  .p-top__warranty-visual--2 .p-top__warranty-photo {
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
  }
  .p-top__warranty-visual::before,
  .p-top__warranty-visual--2::before {
    inset: 0;
    left: 0;
    width: auto;
    height: auto;
    background: linear-gradient(118.23deg, var(--top-color-white) 4.62%, rgba(255, 255, 255, 0) 46.45%);
  }
  .p-top__warranty-badge-img {
    top: calc(30.2 * var(--top-u));
    left: calc(38.4 * var(--top-u));
    width: calc(169.83 * var(--top-u));
    height: calc(197.05 * var(--top-u));
  }
  .p-top__warranty-visual--2 .p-top__warranty-badge-img {
    top: calc(26.5 * var(--top-u));
    left: calc(39.2 * var(--top-u));
  }
  /* 1つ目：大きな写真＋施工例4枚 */
  .p-top__warranty-block:not(.p-top__warranty-block--2) {
    grid-template-columns: calc(557.64 * var(--top-u)) calc(274 * var(--top-u)) calc(274 * var(--top-u));
    column-gap: calc(8.52 * var(--top-u));
  }
  .p-top__warranty-block:not(.p-top__warranty-block--2) .p-top__warranty-plate {
    grid-area: 1 / 1 / 2 / -1;
  }
  .p-top__warranty-block:not(.p-top__warranty-block--2) .p-top__warranty-text {
    grid-area: 2 / 1 / 3 / -1;
  }
  .p-top__warranty-visual--1 {
    grid-area: 3 / 1;
    height: calc(386.06 * var(--top-u));
  }
  .p-top__warranty-examples {
    grid-area: 3 / 2 / 4 / 4;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-content: space-between;
    gap: calc(8.52 * var(--top-u));
    margin-top: calc(16 * var(--top-u));
  }
  .p-top__warranty-examples img {
    display: block;
    width: 100%;
    aspect-ratio: 351 / 243;
    object-fit: cover;
  }
  /* 2つの保証をつなぐ＋ */
  .p-top__warranty-plus {
    grid-area: 1 / 1 / 2 / -1;
    margin: calc(24 * var(--top-u)) auto;
  }
  /* 2つ目：左に写真（対象内容を重ねる）、右に保証書 */
  .p-top__warranty-block--2 {
    grid-template-columns: calc(711.76 * var(--top-u)) 1fr;
    column-gap: calc(40 * var(--top-u));
    justify-content: stretch;
  }
  .p-top__warranty-block--2 .p-top__warranty-plate {
    grid-area: 2 / 1 / 3 / -1;
  }
  .p-top__warranty-body {
    display: contents;
  }
  .p-top__warranty-body .p-top__warranty-text {
    grid-area: 3 / 1 / 4 / -1;
  }
  .p-top__warranty-visual--2 {
    grid-area: 4 / 1 / 6 / 2;
    height: calc(492.76 * var(--top-u));
  }
  .p-top__warranty-body .p-top__proof-cover {
    position: relative;
    /* 写真の白いぼかし（::before、z-index: 1）より上に出す */
    z-index: 2;
    grid-area: 4 / 1 / 6 / 2;
    /* タブレット：文字が大きいぶん、写真の幅いっぱいにして写真の下端にそろえる（証拠05と同じ） */
    align-self: end;
    justify-self: stretch;
    margin: 0 calc(24 * var(--top-u));
    text-align: left;
    /* 半透明の白とぼかしは枠に付ける（リストに付けると、ぼかしが角丸で切られず下の角の線が薄くなる） */
    background-color: rgba(255, 255, 255, 0.65);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
  }
  @media (min-width: 1200px) {
    .p-top__warranty-body .p-top__proof-cover {
      align-self: start;
      justify-self: start;
      width: calc(615 * var(--top-u));
      margin: calc(368.9 * var(--top-u)) 0 0 calc(48.3 * var(--top-u));
    }
    .p-top__warranty-body .p-top__proof-cover-list {
      padding: calc(10 * var(--top-u)) calc(64 * var(--top-u));
    }
  }
  .p-top__warranty-body .p-top__proof-cover-title {
    height: calc(28 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__warranty-body .p-top__proof-cover-list {
    grid-template-rows: repeat(3, auto);
    grid-auto-flow: column;
    justify-content: space-between;
    padding: calc(10 * var(--top-u)) calc(24 * var(--top-u));
  }
  .p-top__warranty-body .p-top__proof-cover-note {
    grid-area: 4 / 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(8 * var(--top-u));
    margin-top: calc(16 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 700;
    line-height: 1.6;
  }
  .p-top__warranty-body .p-top__proof-cover-note::before,
  .p-top__warranty-body .p-top__proof-cover-note::after {
    content: "";
    width: 2px;
    height: calc(17.24 * var(--top-u));
    background-color: var(--top-color-text);
    transform: rotate(-17deg);
  }
  .p-top__warranty-body .p-top__proof-cover-note::after {
    transform: rotate(17deg);
  }
  .p-top__warranty-doc {
    grid-area: 5 / 2;
    display: block;
    justify-self: center;
    width: calc(325.62 * var(--top-u));
    height: auto;
    margin-top: calc(9.79 * var(--top-u));
    padding: calc(10.99 * var(--top-u));
    background-color: var(--top-color-white);
    filter: drop-shadow(0 calc(5.49 * var(--top-u)) calc(5.49 * var(--top-u)) rgba(0, 0, 0, 0.08));
  }

  /* ---------- よくある質問：2列（左に1〜4、右に5〜8） ---------- */
  .p-top__faq {
    padding: calc(80 * var(--top-u)) 0;
  }
  .p-top__faq-deco {
    top: calc(57.2 * var(--top-u));
    left: calc(50% + 110.7 * var(--top-u));
    width: calc(51.03 * var(--top-u));
    height: calc(25.76 * var(--top-u));
  }
  .p-top__faq-title {
    font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__faq-title-deco {
    top: calc(23.92 * var(--top-u));
    left: calc(-8.98 * var(--top-u));
    width: calc(259.5 * var(--top-u));
    height: calc(41.94 * var(--top-u));
  }
  /* 2列。列ごとに積むので、開いた質問は下に伸び、反対の列はずれない（カンプ node 68:29） */
  .p-top__faq-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: calc(16 * var(--top-u));
    width: calc(1200 * var(--top-u));
    margin: calc(40 * var(--top-u)) auto 0;
  }
  .p-top__faq-item {
    border: 1px solid var(--top-color-gray-pale);
  }
  .p-top__faq-item + .p-top__faq-item {
    margin-top: calc(16 * var(--top-u));
  }
  .p-top__faq-col + .p-top__faq-col {
    margin-top: 0;
  }
  .p-top__faq-q {
    gap: calc(16 * var(--top-u));
    padding: calc(24 * var(--top-u)) calc(32 * var(--top-u));
  }
  /* 開いているとき：質問と区切り線の間は16、－の丸はグレー（カンプ node 68:29、2026-10-30） */
  .p-top__faq-item[open] .p-top__faq-q {
    padding-bottom: calc(16 * var(--top-u));
  }
  .p-top__faq-item[open] .p-top__faq-icon {
    background-color: var(--top-color-gray);
  }
  /* 回答：左に緑の「A」、右に回答文（カンプ node 68:29。段落がいくつあっても「A」は1つで、文は右の列にそろえる） */
  .p-top__faq-a {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    column-gap: calc(16 * var(--top-u));
    margin: 0 calc(32 * var(--top-u));
    padding: calc(16 * var(--top-u)) 0 calc(24 * var(--top-u));
    border-top-color: var(--top-color-gray-pale);
    font-family: var(--top-font-kaku);
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
    line-height: 2;
  }
  .p-top__faq-a::before {
    content: "A" / "";
    grid-row: 1 / span 20;
    color: var(--top-color-green-dark);
    font-family: var(--top-font-num);
    font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 700;
    line-height: 1.6;
  }
  .p-top__faq-a > * {
    grid-column: 2;
  }

  /* ---------- 施工事例：横長のカード（幅866）を中央に、左右に前後の事例を少し見せる ---------- */
  .p-top__cases {
    padding: calc(80 * var(--top-u)) 0;
  }
  .p-top__cases-deco {
    top: calc(57.8 * var(--top-u));
    left: calc(50% + 67.6 * var(--top-u));
    width: calc(51.03 * var(--top-u));
    height: calc(25.76 * var(--top-u));
  }
  .p-top__cases-title {
    font-size: max(var(--top-fmin, 0px), calc(40 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__cases-title-deco {
    top: calc(23.92 * var(--top-u));
    left: calc(-8.98 * var(--top-u));
    width: calc(179.5 * var(--top-u));
    height: calc(41.94 * var(--top-u));
  }
  .p-top__cases-slider {
    position: relative;
    margin-top: calc(40 * var(--top-u));
  }
  .p-top__cases-list.p-top__cases-list {
    --top-slider-pad: calc(20 * var(--top-u));
    margin: calc(-1 * var(--top-slider-pad)) 0;
    padding: var(--top-slider-pad) calc(50% - 433 * var(--top-u));
  }
  .p-top__cases-list > * {
    flex-basis: calc(866 * var(--top-u));
  }
  /* カード：上に見出し、下は左に写真・右に説明とお客様の声 */
  .p-top__case {
    /* 左の列＝写真の左の余白16＋写真511.02 */
    grid-template-columns: calc(527.02 * var(--top-u)) 1fr;
    grid-template-rows: auto 1fr;
  }
  .p-top__case-head {
    grid-column: 1 / -1;
  }
  .p-top__case-photos {
    margin: calc(16 * var(--top-u)) 0 calc(16 * var(--top-u)) calc(16 * var(--top-u));
    filter: drop-shadow(calc(2.64 * var(--top-u)) calc(2.64 * var(--top-u)) calc(5.28 * var(--top-u)) rgba(0, 0, 0, 0.08));
  }
  .p-top__case-photo {
    height: calc(356 * var(--top-u));
  }
  .p-top__case-photo--before {
    margin-right: calc(-34.3 * var(--top-u));
  }
  .p-top__case-label {
    padding: calc(7.92 * var(--top-u)) calc(7.92 * var(--top-u)) calc(5.28 * var(--top-u));
    border-radius: 0 0 calc(5.28 * var(--top-u)) 0;
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__case-photo--after .p-top__case-label {
    border-radius: 0 0 0 calc(5.28 * var(--top-u));
  }
  .p-top__case-photo-arrow {
    top: calc(146 * var(--top-u));
    left: calc(223.5 * var(--top-u));
    width: calc(64 * var(--top-u));
    height: calc(64 * var(--top-u));
  }
  .p-top__case-body {
    grid-template-rows: 1fr auto;
    margin-top: 0;
    padding: calc(16 * var(--top-u)) calc(16 * var(--top-u)) calc(16 * var(--top-u)) calc(16 * var(--top-u));
  }
  .p-top__case-text {
    align-self: center;
  }
  .p-top__case-voice {
    margin-top: calc(16 * var(--top-u));
  }
  /* 矢印：カードの左右に重ねる（カンプの1200幅の中で左98・右93）。上下はカードの中央 */
  .p-top__cases-nav {
    position: absolute;
    top: calc(50% - 30 * var(--top-u));
    right: calc(50% - 507.33 * var(--top-u));
    left: calc(50% - 501.67 * var(--top-u));
    justify-content: space-between;
    margin: 0;
    pointer-events: none;
  }
  .p-top__cases-nav-btn {
    width: calc(59 * var(--top-u));
    height: calc(60 * var(--top-u));
    pointer-events: auto;
  }
  .p-top__cases-nav-btn img {
    top: calc(-6 * var(--top-u));
    left: calc(-8 * var(--top-u));
    width: calc(75 * var(--top-u));
    height: calc(76 * var(--top-u));
  }
  .p-top__cases-more {
    gap: calc(40 * var(--top-u));
    margin-top: calc(40 * var(--top-u));
    padding: calc(16 * var(--top-u)) calc(24 * var(--top-u));
    font-weight: 700;
  }
  .p-top__cases-more::before {
    width: calc(11.07 * var(--top-u));
  }
  .p-top__cases-more img {
    width: calc(11.07 * var(--top-u));
    height: calc(20 * var(--top-u));
  }

  /* ---------- 会社情報（最下部）：上段3列（会社情報／メニュー＋料金シミュレーション／お問い合わせ）、エリア2列 ---------- */
  /* 左右の余白（--top-footer-px）：1440まではカンプどおり中身1312で中央。
     1440より広い画面は左右64のまま中身を広げ、1680で止める（2026-10-20、広い画面で左右の余白に違和感があるため。フッターだけ） */
  .p-top__footer {
    --top-footer-px: max(calc(40 * var(--top-u)), min(calc(50% - 656 * var(--top-u)), max(calc(64 * var(--top-u)), calc(50% - 840px))));
  }
  .p-top__footer::before {
    left: 0;
    width: 100%;
    height: calc(960.12 * var(--top-u));
  }
  .p-top__footer-main {
    position: relative;
    display: grid;
    /* タブレットは会社情報を中身の幅に、メニューの列を広げる */
    grid-template-columns: auto minmax(0, 1fr) calc(343 * var(--top-u));
    align-items: start;
    column-gap: calc(24 * var(--top-u));
    /* 中身は幅1312で中央（1440より広い画面では背景だけ延ばす） */
    padding: calc(64 * var(--top-u)) var(--top-footer-px) calc(40 * var(--top-u));
  }
  @media (min-width: 1200px) {
    .p-top__footer-main {
      grid-template-columns: 1fr calc(343 * var(--top-u)) calc(343 * var(--top-u));
    }
  }
  .p-top__footer-company {
    grid-area: 1 / 1;
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
    text-align: left;
  }
  .p-top__footer-logo img {
    width: calc(284 * var(--top-u));
  }
  .p-top__footer-name {
    margin-top: calc(24 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__footer-address {
    margin-top: calc(24 * var(--top-u));
  }
  .p-top__footer-tel {
    margin-top: calc(16 * var(--top-u));
  }
  .p-top__footer-links {
    grid-area: 1 / 2;
    width: max(calc(328 * var(--top-u)), 240px);
    margin-top: 0;
    padding: 0;
  }
  .p-top__footer-link {
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  /* お問い合わせのカード（右の列） */
  .p-top__footer-contact {
    grid-area: 1 / 3;
    display: grid;
    gap: calc(16 * var(--top-u));
    margin-top: 0;
    padding: calc(32 * var(--top-u)) calc(24 * var(--top-u));
    border-radius: calc(8 * var(--top-u));
  }
  .p-top__footer-contact .p-top__footer-label {
    margin-top: 0;
  }
  .p-top__footer-heading {
    margin-top: calc(-4 * var(--top-u));
  }
  .p-top__footer-contact-list {
    margin-top: 0;
  }
  .p-top__footer-contact-tel {
    display: none;
  }
  .p-top__footer-telbox {
    display: grid;
    place-content: center;
    justify-items: center;
    gap: calc(8 * var(--top-u));
    height: calc(96 * var(--top-u));
    border-radius: calc(8 * var(--top-u));
    background-color: rgba(71, 186, 85, 0.06);
    font-family: var(--top-font-num);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
  }
  .p-top__footer-telbox-num {
    display: flex;
    align-items: center;
    color: var(--top-color-green-dark);
    font-size: max(var(--top-fmin, 0px), calc(22 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__footer-telbox-num img {
    width: calc(38.77 * var(--top-u));
    height: calc(36 * var(--top-u));
  }
  .p-top__footer-telbox-time {
    color: var(--top-color-green);
    font-size: max(var(--top-fmin, 0px), calc(15 * max(var(--top-u), var(--top-umin, 0px))));
  }
  /* 料金シミュレーション：お問い合わせのカードから出し、真ん中の列の下に置く */
  /* ボタンの幅いっぱいに文字が入るので、文字もボタンと同じ割合で縮める */
  .p-top__footer-sim {
    --top-umin: 0px;
    position: absolute;
    right: calc(var(--top-footer-px) + 367 * var(--top-u));
    bottom: calc(40 * var(--top-u));
    width: calc(343 * var(--top-u));
    padding: calc(16 * var(--top-u)) calc(16 * var(--top-u)) calc(14 * var(--top-u));
    border-radius: calc(8 * var(--top-u));
    background-color: rgba(255, 255, 255, 0.24);
  }
  .p-top__footer-sim-lead {
    display: flex;
    color: var(--top-color-white);
  }
  .p-top__footer-sim .p-top__cta-btn--footer {
    margin: calc(10 * var(--top-u)) calc(2 * var(--top-u)) calc(2 * var(--top-u));
  }
  /* 施工対応エリア：2列（左に東京〜神奈川、右に茨城〜広島） */
  .p-top__footer-area {
    padding: calc(40 * var(--top-u)) var(--top-footer-px);
  }
  .p-top__footer-area-title {
    margin-top: calc(12 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(24 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__footer-area-sep,
  .p-top__footer-area-sub {
    font-size: max(var(--top-fmin, 0px), calc(20 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__footer-area-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, auto);
    grid-auto-flow: column;
    align-items: start;
    column-gap: calc(40 * var(--top-u));
  }
  .p-top__footer-area-pref {
    /* タブレットは文字が12pxより小さくならないぶん、4文字（神奈川県）が入る幅を確保 */
    width: max(calc(80 * var(--top-u)), 64px);
    padding: calc(8 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
    font-weight: 700;
  }
  .p-top__footer-area-city {
    padding: calc(16 * var(--top-u)) 0;
    font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__footer-area-all {
    margin-left: calc(88 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__footer-area-note {
    font-size: max(var(--top-fmin, 0px), calc(16 * max(var(--top-u), var(--top-umin, 0px))));
  }
  .p-top__footer-bottom {
    padding: calc(32 * var(--top-u)) 0 calc(20 * var(--top-u));
  }
  .p-top__footer-sns {
    gap: calc(33.54 * var(--top-u));
  }
  .p-top__footer-sns img {
    width: calc(33.54 * var(--top-u));
    height: calc(33.54 * var(--top-u));
  }
  .p-top__footer-copy {
    margin-top: calc(24 * var(--top-u));
    font-size: max(var(--top-fmin, 0px), calc(14 * max(var(--top-u), var(--top-umin, 0px))));
  }
}
