/*
 * 秋山総業 トップ（2026-09-23 作り直し）
 * 設計: review/2026-09-23/design（デザイン設計部の設計図）
 * 文字の下限: 本文 PC17/SP16・注記14・ボタン16・表15。13px以下は使わない（playbooks/design-standards.md）
 * 区切り: 波4回まで・山形2回・スカラップ1回・道路2回
 */

:root {
  --c-cream: #FEF8EB;
  --c-cream-deep: #F6EEDB;
  --c-butter: #FFF3C4;
  --c-mint: #E7F4E4;
  --c-green-logo: #00B050;      /* ロゴの緑（差し色・大きい文字と飾りだけ） */
  --c-mint-logo: #E3F4E8;
  --c-butter-logo: #FFF8CF;
  --c-green: #087A3F;
  --c-green-deep: #0B651F;
  --c-green-night: #07582F;
  --c-yellow: #FFFF00;          /* ロゴの黄 */
  --c-focus: #0B651F;
  --c-ink: #26332D;
  --c-sub: #5A4A2A;
  --c-line: #E9DFC8;
  --c-orange: #F47A36;
  --c-red: #D63405;
  --c-ig: #C92E62;
  --f-round: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "BIZ UDPGothic", "Yu Gothic", Meiryo, sans-serif;
  --sh-card: 0 6px 0 rgba(38, 51, 45, .08);
  --sh-photo: 10px 11px 0 rgba(3, 47, 25, .18);
  --div-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V20Q40 0 80 20T160 20V40Z'/%3E%3C/svg%3E");
  --div-mount: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40L40 0L80 40Z'/%3E%3C/svg%3E");
  --div-scallop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 24' preserveAspectRatio='none'%3E%3Cpath d='M0 24A24 24 0 0 1 48 24Z'/%3E%3C/svg%3E");
}

.ak-main {
  color: var(--c-ink);
  font-size: 17px;
  line-height: 1.85;
}
.ak-main p { overflow-wrap: anywhere; }

.ak-sp-only { display: none; }

/* ==========================================================================
   01 メインビジュアル（既存の看板の再現。変えたのは実績の数字だけ）
   ========================================================================== */
.ak-mv { background: #2662A2; }
.ak-mv__stage {
  position: relative;
  max-width: 1920px;
  margin-inline: auto;
  aspect-ratio: 1900 / 800;
  container-type: inline-size;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(90% 120% at 8% 0%, rgba(255, 255, 255, .10), transparent 60%),
    linear-gradient(180deg, #2A68AA 0%, #2662A2 55%, #22599A 100%);
}
.ak-mv__photo {
  position: absolute;
  top: 0; right: 0;
  width: 45.8%;
  height: 100%;
  object-fit: cover;
  -webkit-mask-image: linear-gradient(112deg, transparent 0%, rgba(0, 0, 0, .45) 12%, #000 30%);
          mask-image: linear-gradient(112deg, transparent 0%, rgba(0, 0, 0, .45) 12%, #000 30%);
}
.ak-mv__swirl {
  position: absolute;
  left: 0; top: 0;
  width: 24.2%;
  height: 100%;
  opacity: 1;
  pointer-events: none;
}
.ak-mv__body { position: absolute; inset: 0; z-index: 2; }
.ak-mv__heading,
.ak-mv__lead,
.ak-mv__badge,
.ak-mv__stats p { margin: 0; }
.ak-mv__heading,
.ak-mv__lead,
.ak-mv__badge,
.ak-mv__area-text,
.ak-mv__record-text {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 700;
  letter-spacing: 0;
}
.ak-mv__heading,
.ak-mv__lead { text-shadow: 0 0 .6cqw rgba(0, 0, 0, .55), .15cqw .2cqw .35cqw rgba(0, 0, 0, .5); }
.ak-mv__area-text,
.ak-mv__record-text { text-shadow: 0 0 .2cqw #000, 0 0 .2cqw #000, .1cqw .1cqw .3cqw rgba(0, 0, 0, .8); }
.ak-mv__heading {
  position: absolute;
  left: 2.6%;
  top: 2.4%;
  line-height: 1.12;
}
.ak-mv__sub { display: block; font-size: 4.3cqw; font-weight: 500; }
.ak-mv__main {
  display: block;
  margin-left: 16.4cqw;
  font-size: 7.9cqw;
  font-weight: 700;
  line-height: 1.05;
}
.ak-mv__san { font-size: .55em; margin-left: .2em; }
.ak-mv__lead {
  position: absolute;
  left: 0; top: 36.2%;
  width: 55.6%; height: 30%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: rgba(26, 70, 116, .78);
  font-size: 2.95cqw;
  line-height: 1.38;
  text-align: center;
}
.ak-mv__line { display: block; white-space: nowrap; }
.ak-mv__badge {
  position: absolute;
  left: 3.7%; top: 69.1%;
  width: 50%; height: 8.4%;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 999px;
  background: #FE3200;
  box-shadow: 0 .25cqw .5cqw rgba(0, 0, 0, .3);
  font-size: 2.1cqw;
  line-height: 1.2;
  white-space: nowrap;
}
.ak-mv__stats {
  position: absolute;
  left: 3.6%; top: 80.5%;
  width: 52%; height: 17%;
  display: flex;
  align-items: center;
  gap: 3.4cqw;
}
.ak-mv__area,
.ak-mv__record { display: flex; align-items: center; gap: 1.3cqw; }
.ak-mv__icon { width: 6.6cqw; height: auto; border-radius: 50%; flex: none; }
.ak-mv__area-text { font-size: 2.8cqw; line-height: 1.15; text-align: center; white-space: nowrap; }
.ak-mv__record-text { font-size: 3.2cqw; line-height: 1; white-space: nowrap; }
.ak-mv__num { font-size: 1.12em; letter-spacing: .01em; }

/* ==========================================================================
   道路とダンプ（FV直下・施工事例の下）
   ========================================================================== */
.ak-road {
  position: relative;
  height: 56px;
  overflow: hidden;
  background: #62665F;
  border-top: 5px solid #4D514B;
  border-bottom: 5px solid #4D514B;
}
.ak-road::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 50%;
  height: 4px;
  margin-top: -2px;
  background: repeating-linear-gradient(90deg, #FFE14D 0 36px, transparent 36px 72px);
  opacity: .9;
}
.ak-road__truck {
  position: absolute;
  left: 0; bottom: 4px;
  width: 76px;
  height: auto;
  animation: ak-drive 16s linear 3;
}
.ak-road__truck--slow { animation-duration: 20s; animation-delay: -6s; }

@keyframes ak-drive {
  0%   { transform: translateX(-120px) scaleX(1); }
  49%  { transform: translateX(100vw) scaleX(1); }
  50%  { transform: translateX(100vw) scaleX(-1); }
  99%  { transform: translateX(-120px) scaleX(-1); }
  100% { transform: translateX(-120px) scaleX(1); }
}

/* ==========================================================================
   共通: セクション・見出し・ボタン・区切り
   ========================================================================== */
.ak-t {
  --bg: var(--c-cream);
  position: relative;
  padding-block: 96px;
  background-color: var(--bg);
  overflow-x: clip;
}

.ak-t--worry::before,
.ak-t--price::before,
.ak-t--works::before,
.ak-t--faq::before,
.ak-t--numbers::before,
.ak-t--services::before,
.ak-t--voice::before,
.ak-t--voice::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: 100%;
  height: 40px;
  background-color: var(--bg);
  pointer-events: none;
  -webkit-mask: var(--div-wave) repeat-x left bottom / 160px 100%;
          mask: var(--div-wave) repeat-x left bottom / 160px 100%;
}
.ak-t--numbers::before,
.ak-t--services::before {
  -webkit-mask: var(--div-mount) repeat-x left bottom / 80px 100%;
          mask: var(--div-mount) repeat-x left bottom / 80px 100%;
}
.ak-t--voice::before,
.ak-t--voice::after {
  height: 24px;
  -webkit-mask: var(--div-scallop) repeat-x left bottom / 48px 100%;
          mask: var(--div-scallop) repeat-x left bottom / 48px 100%;
}
.ak-t--voice::after { bottom: auto; top: 100%; transform: scaleY(-1); z-index: 1; }

.ak-sh { text-align: center; margin: 0 auto 48px; max-width: 860px; }
.ak-sh__en {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: var(--c-green);
  font: 700 14px/1.4 var(--f-round);
  letter-spacing: .18em;
}
.ak-sh__en::before,
.ak-sh__en::after {
  content: "";
  width: 28px; height: 8px;
  background: radial-gradient(circle, var(--c-green-logo) 3px, transparent 3.5px) 0 0 / 10px 8px repeat-x;
}
.ak-sh__en::after { background-image: radial-gradient(circle, var(--c-yellow) 2.4px, #C9B400 2.9px, transparent 3.4px); }
.ak-sh__title {
  margin: 8px 0 0;
  font: 700 42px/1.4 var(--f-round);
  color: var(--c-ink);
  word-break: auto-phrase;
  text-wrap: balance;
}
.ak-sh__title em {
  font-style: normal;
  font-weight: 900;
  font-size: 1.18em;
  color: var(--c-green-deep);
}
.ak-sh__wave { display: block; width: 88px; height: 10px; margin: 14px auto 0; color: var(--c-green-logo); }
.ak-sh__lead { margin: 18px auto 0; max-width: 38em; font-size: 17px; text-wrap: pretty; }

/* ボタン: ピル形・ずらし影。ホバーはマウスのある端末だけ */
.ak-b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 56px;
  padding: 8px 28px;
  border: 2px solid transparent;
  border-radius: 999px;
  font: 700 17px/1.3 var(--f-round);
  text-decoration: none;
  color: #fff;
  box-shadow: 0 5px 0 rgba(0, 0, 0, .18);
  transition: transform .15s ease, box-shadow .15s ease, background-color .2s ease;
}
.ak-b__icon { width: 22px; height: 22px; flex: none; fill: currentColor; }
.ak-b__label { display: flex; flex-direction: column; align-items: center; white-space: nowrap; }
.ak-b__sub { display: block; font-size: 15px; font-weight: 700; letter-spacing: .04em; opacity: .95; }
.ak-b__arrow { font-weight: 700; }
@media (hover: hover) {
  .ak-b:hover { transform: translateY(2px); box-shadow: 0 3px 0 rgba(0, 0, 0, .18); }
}
.ak-b:active { transform: translateY(4px); box-shadow: 0 1px 0 rgba(0, 0, 0, .18); }
.ak-b:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }
.ak-b--estimate { background: var(--c-red); }
.ak-b--tel,
.ak-b--green { background: var(--c-green); }
.ak-b--outline { background: #fff; color: var(--c-green); border-color: var(--c-green); box-shadow: 0 5px 0 rgba(8, 122, 63, .18); }
.ak-b--yellow { background: var(--c-yellow); color: var(--c-green-night); }
.ak-b--ig { background: var(--c-ig); }
.ak-b--wide { min-width: 320px; }

.ak-cta2 { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 20px; }
.ak-cta2 .ak-b { min-width: 340px; min-height: 68px; font-size: 19px; }
.ak-cta2--compact .ak-b { min-width: 280px; min-height: 60px; font-size: 18px; }

.ak-t__more { margin: 44px 0 0; text-align: center; }

/* 飾りのイラスト */
.ak-deco { position: absolute; height: auto; pointer-events: none; }

/* ==========================================================================
   01b メイン画像直下の導線
   ========================================================================== */
.ak-tcta { position: relative; background: var(--c-cream); overflow-x: clip; }
.ak-tcta__inner {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) 210px;
  align-items: end;
  gap: 24px;
  padding-top: 24px;
  padding-bottom: 44px;
}
.ak-tcta__body { text-align: center; padding-bottom: 8px; }
.ak-tcta__lead {
  margin: 0 0 20px;
  font: 700 24px/1.6 var(--f-round);
  color: var(--c-green-deep);
}
.ak-tcta__note { margin: 18px 0 0; font-size: 15px; color: var(--c-sub); }
.ak-tcta__char { position: relative; margin: 0; }
.ak-tcta__char img { width: 100%; height: auto; }
.ak-tcta__char--left img { width: 140px; margin-left: auto; }
.ak-tcta__char--right img { width: 130px; margin-left: auto; margin-right: 10px; }
.ak-tcta__bubble {
  position: absolute;
  right: 120px; top: -8px;
  z-index: 1;
  margin: 0;
  padding: 12px 16px;
  border: 3px solid var(--c-green);
  border-radius: 22px;
  background: #fff;
  color: var(--c-green-deep);
  font: 700 16px/1.45 var(--f-round);
  white-space: nowrap;
  box-shadow: var(--sh-card);
  animation: ak-pop .45s cubic-bezier(.3, 1.6, .5, 1) .6s both;
}
.ak-tcta__bubble::after {
  content: "";
  position: absolute;
  right: -14px; top: 44%;
  width: 16px; height: 16px;
  background: #fff;
  border-top: 3px solid var(--c-green);
  border-right: 3px solid var(--c-green);
  transform: rotate(45deg) skew(12deg, 12deg);
}

/* ==========================================================================
   02 お悩み
   ========================================================================== */
.ak-t--worry {
  --bg: var(--c-cream-deep);
  background-image: radial-gradient(rgba(232, 176, 40, .16) 2px, transparent 2.5px);
  background-size: 28px 28px;
}
.ak-worry__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px 24px;
  max-width: 1040px;
  margin: 0 auto;
}
.ak-worry__item {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 92px;
  padding: 18px 20px 18px 70px;
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--sh-card);
  font: 700 19px/1.5 var(--f-round);
  word-break: auto-phrase;
  text-wrap: balance;
}
.ak-worry__item::after {
  content: "";
  position: absolute;
  left: 40px; bottom: -13px;
  width: 22px; height: 14px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 10% 100%);
}
.ak-worry__q {
  position: absolute;
  left: 18px; top: 50%;
  width: 38px; height: 38px;
  margin-top: -19px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--c-yellow);
  color: var(--c-green-deep);
  font: 900 21px/1 var(--f-round);
}
.ak-worry__answer { margin-top: 40px; text-align: center; }
.ak-worry__arrow { display: block; width: 64px; height: 40px; margin: 0 auto 18px; color: var(--c-green-logo); }
.ak-worry__answer-inner {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 32px;
  max-width: 980px;
  margin: 0 auto;
  padding: 30px 40px 0;
  border-radius: 28px;
  background: var(--c-green-deep);
  color: #fff;
  overflow: hidden;
}
.ak-worry__answer-text {
  margin: 0;
  padding-bottom: 34px;
  text-align: left;
  font: 700 28px/1.55 var(--f-round);
}
.ak-worry__answer-text em { font-style: normal; font-weight: 900; font-size: 1.25em; color: var(--c-yellow); }
.ak-worry__answer-img { width: 300px; height: auto; flex: none; }

/* ==========================================================================
   03 選ばれる6つの理由
   ========================================================================== */
.ak-t--reasons .ak-container { position: relative; }
.ak-deco--cone { left: 2%; top: -24px; width: 72px; }
.ak-deco--barricade { right: 2%; top: -30px; width: 108px; }
.ak-reason__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 60px 28px;
  margin: 0;
  padding: 26px 0 0;
  list-style: none;
}
.ak-reason {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 46px 26px 28px;
  border: 2px solid var(--c-line);
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--sh-card);
  text-align: center;
}
.ak-reason:nth-child(3n+2) { background: #FFF8DB; }
.ak-reason:nth-child(3n) { background: #EEF8EC; }
.ak-reason__num {
  position: absolute;
  left: 50%; top: -30px;
  width: 68px; height: 68px;
  margin-left: -34px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--c-green-deep);
  color: #fff;
  font: 900 26px/1 var(--f-round);
  box-shadow: 0 4px 0 rgba(0, 0, 0, .15);
}
.ak-reason__num small { font-size: 14px; font-weight: 700; letter-spacing: .06em; color: var(--c-yellow); margin-bottom: 2px; }
.ak-reason__fig { display: flex; align-items: flex-end; justify-content: center; height: 176px; margin: 0 0 18px; }
.ak-reason__fig img { width: auto; height: 100%; }
.ak-reason__fig.is-wide img { width: 100%; height: auto; max-height: 176px; object-fit: contain; }
.ak-reason__title { margin: 0; font: 700 21px/1.45 var(--f-round); }
.ak-reason__title em { font-style: normal; font-weight: 900; font-size: 1.3em; color: var(--c-green-deep); }
.ak-reason__text { margin: 12px 0 0; font-size: 17px; line-height: 1.8; text-align: left; text-wrap: pretty; }

/* ==========================================================================
   04 数字
   ========================================================================== */
.ak-t--numbers { --bg: var(--c-butter-logo); padding-bottom: 112px; }
.ak-t--numbers .ak-container { position: relative; }
.ak-num__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ak-num {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 30px 14px 26px;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--sh-card);
  text-align: center;
}
.ak-num__value { order: 1; margin: 0; color: var(--c-green-deep); font: 900 64px/1 var(--f-round); white-space: nowrap; }
.ak-num__unit { margin-left: 4px; font-size: 22px; font-weight: 700; color: var(--c-ink); }
.ak-num__label { order: 2; margin: 14px 0 0; font: 700 16px/1.5 var(--f-round); color: var(--c-sub); word-break: auto-phrase; text-wrap: balance; }
.ak-deco--excavator {
  right: 0; top: -150px;
  width: 190px;
  transform-origin: 20% 100%;
  animation: ak-sway 3s ease-in-out 8 alternate;
}

/* ==========================================================================
   05 サービス
   ========================================================================== */
.ak-t--services { --bg: var(--c-mint-logo); }
.ak-svc__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ak-svc {
  flex: 0 1 calc((100% - 56px) / 3);
  overflow: hidden;
  border-radius: 24px;
  background: #fff;
  color: var(--c-ink);
  box-shadow: 0 6px 0 rgba(0, 120, 60, .12);
  border-top: 5px solid var(--c-green-logo);
}
.ak-svc__fig { display: grid; place-items: center; margin: 0; aspect-ratio: 16 / 11; background: var(--c-cream); }
.ak-svc__fig img { width: 72%; height: auto; }
.ak-svc__body { position: relative; padding: 18px 24px 26px; }
.ak-svc__num {
  position: absolute;
  right: 18px; top: -28px;
  display: grid;
  place-items: center;
  width: 54px; height: 54px;
  margin: 0;
  border-radius: 50%;
  background: var(--c-yellow);
  color: var(--c-green-deep);
  font: 900 20px/1 var(--f-round);
  box-shadow: 0 4px 0 rgba(0, 0, 0, .15);
}
.ak-svc__title { margin: 0; font: 700 23px/1.4 var(--f-round); color: var(--c-green-deep); }
.ak-svc__sub { margin: 2px 0 8px; font-size: 15px; font-weight: 700; color: var(--c-sub); }
.ak-svc__text { margin: 0; font-size: 17px; line-height: 1.8; text-wrap: pretty; }

.ak-shelf {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 48px;
  margin: 56px auto 0;
  padding: 0 40px 14px;
  width: fit-content;
  list-style: none;
}
.ak-shelf::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 12px;
  border-radius: 6px;
  background: #C8964F;
  box-shadow: 0 5px 0 rgba(0, 0, 0, .2);
}
.ak-shelf img { width: auto; height: 84px; animation: ak-bob 3s ease-in-out 10 alternate; }
.ak-shelf li:nth-child(1) img { height: 66px; }
.ak-shelf li:nth-child(2) img { animation-delay: .6s; }
.ak-shelf li:nth-child(3) img { height: 96px; animation-delay: 1.2s; }
.ak-shelf li:nth-child(4) img { animation-delay: 1.8s; }

/* ==========================================================================
   06 料金
   ========================================================================== */
.ak-t--price { padding-bottom: 56px; }
.ak-price { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.ak-price__table-wrap {
  padding: 12px;
  border: 2px solid var(--c-line);
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--sh-card);
}
.ak-price__table { width: 100%; border-collapse: separate; border-spacing: 0; }
.ak-price__table thead th {
  padding: 14px 6px;
  background: var(--c-green-deep);
  color: #fff;
  font: 700 16px/1.4 var(--f-round);
  white-space: nowrap;
}
.ak-price__table thead th:first-child { border-radius: 14px 0 0 14px; }
.ak-price__table thead th:last-child { border-radius: 0 14px 14px 0; }
.ak-price__table tbody th {
  padding: 16px 10px;
  text-align: left;
  font: 700 18px/1.35 var(--f-round);
  color: var(--c-green-deep);
  white-space: nowrap;
}
.ak-price__table tbody th small { display: block; font-size: 14px; font-weight: 500; color: var(--c-sub); }
.ak-price__table td {
  padding: 16px 6px;
  text-align: center;
  font: 700 20px/1.3 var(--f-round);
  white-space: nowrap;
}
.ak-price__table tbody th,
.ak-price__table td { border-top: 2px dashed var(--c-line); }
.ak-price__table tbody tr:first-child > * { border-top: 0; }
.ak-price__side {
  position: relative;
  padding: 28px 28px 30px;
  border-radius: 24px;
  background: var(--c-butter);
}
.ak-price__add-title { margin: 0 0 10px; padding-right: 96px; font: 700 20px/1.5 var(--f-round); color: var(--c-green-deep); }
.ak-price__add { margin: 0; }
.ak-price__add div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 2px dashed #E6D08A;
}
.ak-price__add dt { font-size: 17px; font-weight: 700; }
.ak-price__add dd { margin: 0; font: 900 20px/1.3 var(--f-round); color: var(--c-green-deep); white-space: nowrap; }
.ak-price__note { margin: 16px 0 22px; font-size: 15px; line-height: 1.8; color: var(--c-sub); }
.ak-price__char { position: absolute; right: 14px; top: -70px; width: auto; height: 140px; }

/* ==========================================================================
   途中の細い導線
   ========================================================================== */
.ak-midcta { background: var(--c-cream); padding: 0 0 96px; }
.ak-t--voice + .ak-midcta { padding-top: 64px; }
.ak-midcta__box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 28px;
  max-width: 1040px;
  margin: 0 auto;
  padding: 26px 32px;
  border: 3px solid var(--c-green-logo);
  border-radius: 28px;
  background: #fff;
  box-shadow: var(--sh-card);
}
.ak-midcta__text { margin: 0; font: 700 21px/1.5 var(--f-round); color: var(--c-green-deep); word-break: auto-phrase; }
.ak-midcta .ak-cta2 { flex-wrap: nowrap; }
.ak-midcta .ak-cta2 .ak-b { min-width: 0; padding-inline: 24px; }

/* ==========================================================================
   07 施工事例
   ========================================================================== */
.ak-t--works { --bg: var(--c-cream-deep); padding-bottom: 0; }
.ak-wk__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ak-wk__link {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-radius: 24px;
  background: #fff;
  color: var(--c-ink);
  text-decoration: none;
  box-shadow: var(--sh-card);
  transition: transform .2s ease, box-shadow .2s ease;
}
@media (hover: hover) {
  .ak-wk__link:hover { transform: translateY(-4px); box-shadow: 0 10px 0 rgba(38, 51, 45, .08); }
}
.ak-wk__link:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }
.ak-wk__fig { position: relative; margin: 0; aspect-ratio: 4 / 3; background: var(--c-cream); }
.ak-wk__fig img { width: 100%; height: 100%; object-fit: cover; }
.ak-wk__area {
  position: absolute;
  left: 12px; top: 12px;
  z-index: 1;
  padding: 4px 14px;
  border-radius: 999px;
  background: var(--c-green);
  color: #fff;
  font: 700 15px/1.5 var(--f-round);
}
.ak-wk__body { display: flex; flex-direction: column; flex: 1; padding: 18px 22px 20px; }
.ak-wk__title { margin: 0 0 10px; font: 700 19px/1.5 var(--f-round); word-break: auto-phrase; }
.ak-wk__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; margin: 0; }
.ak-wk__meta div { display: flex; align-items: baseline; gap: 6px; }
.ak-wk__meta dt { font-size: 14px; font-weight: 700; color: var(--c-sub); }
.ak-wk__meta dd { margin: 0; font-size: 17px; font-weight: 700; }
.ak-wk__cost dd { font: 900 28px/1.2 var(--f-round); color: var(--c-red); }
.ak-wk__more { margin-top: auto; padding-top: 12px; font-size: 16px; font-weight: 700; color: var(--c-green); }
.ak-road--bottom { margin-top: 80px; }

/* ==========================================================================
   08 流れ
   ========================================================================== */
.ak-fl__list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ak-fl__list::before {
  content: "";
  position: absolute;
  left: 7%; right: 7%; top: 44px;
  border-top: 5px dotted var(--c-green-logo);
  transition: clip-path 1.2s ease .3s;
}
.ak-fl { position: relative; z-index: 1; text-align: center; }
.ak-fl__icon {
  display: grid;
  place-items: center;
  width: 88px; height: 88px;
  margin: 0 auto;
  border: 3px solid var(--c-green);
  border-radius: 50%;
  background: #fff;
  color: var(--c-green-deep);
  box-shadow: var(--sh-card);
}
.ak-fl:nth-child(even) .ak-fl__icon { background: #FFF8DB; }
.ak-fl__icon svg { width: 44px; height: 44px; }
.ak-fl__num { margin: 12px 0 0; font: 900 22px/1.2 var(--f-round); color: var(--c-green); }
.ak-fl__num span { margin-right: 4px; font-size: 14px; letter-spacing: .08em; }
.ak-fl__title { margin: 4px 0 6px; font: 700 18px/1.45 var(--f-round); word-break: auto-phrase; text-wrap: balance; }
.ak-fl__text { margin: 0; font-size: 17px; line-height: 1.7; text-align: center; }

/* ==========================================================================
   09 お客様の声
   ========================================================================== */
.ak-t--voice { --bg: var(--c-butter); }
.ak-vc__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ak-vc { display: flex; flex-direction: column; }
.ak-vc__bubble {
  position: relative;
  flex: 1;
  margin: 0;
  padding: 28px 26px;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--sh-card);
}
.ak-vc__bubble::after {
  content: "";
  position: absolute;
  left: 44px; bottom: -15px;
  width: 26px; height: 16px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 15% 100%);
}
.ak-vc__bubble p { margin: 0; font-size: 17px; line-height: 1.9; text-wrap: pretty; }
.ak-vc__who { display: flex; align-items: center; gap: 12px; margin: 24px 0 0 26px; font: 700 18px/1.4 var(--f-round); color: var(--c-green-deep); }
.ak-vc__face { width: 56px; height: 56px; flex: none; }
.ak-vc__bg { fill: #A8D9B2; }
.ak-vc__face.is-f .ak-vc__bg { fill: #F7C1CE; }

/* ==========================================================================
   10 大切にしていること
   ========================================================================== */
.ak-t--values { --bg: #fff; }
.ak-val { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.ak-val__photo {
  position: relative;
  margin: 0;
  border-radius: 36px;
  box-shadow: var(--sh-photo);
}
.ak-val__photo::before {
  content: "";
  position: absolute;
  left: -22px; top: -22px;
  width: 120px; height: 120px;
  border-radius: 50%;
  background: var(--c-yellow);
  z-index: -1;
}
.ak-val__photo img { width: 100%; height: auto; border-radius: 36px; }
.ak-val__catch { margin: 0 0 20px; font: 700 27px/1.6 var(--f-round); color: var(--c-green-deep); word-break: auto-phrase; }
.ak-val__list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.ak-val__item { padding: 18px 22px; border-radius: 20px; background: var(--c-cream); }
.ak-val__title { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font: 700 20px/1.4 var(--f-round); }
.ak-val__no {
  display: grid;
  place-items: center;
  width: 34px; height: 34px;
  flex: none;
  border-radius: 50%;
  background: var(--c-yellow);
  color: var(--c-green-deep);
  font: 900 17px/1 var(--f-round);
}
.ak-val__text { margin: 0; font-size: 17px; line-height: 1.85; text-wrap: pretty; }
.ak-val__more { margin: 24px 0 0; }

/* ==========================================================================
   11 よくある質問
   ========================================================================== */
.ak-t--faq { --bg: var(--c-cream-deep); }
.ak-qa { position: relative; max-width: 880px; margin: 0 auto; }
.ak-qa__item {
  margin-bottom: 16px;
  overflow: hidden;
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--sh-card);
}
.ak-qa__q {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 64px;
  padding: 16px 22px;
  cursor: pointer;
  list-style: none;
  font: 700 18px/1.6 var(--f-round);
}
.ak-qa__q::-webkit-details-marker { display: none; }
.ak-qa__q:focus-visible { outline: 3px solid var(--c-focus); outline-offset: -3px; }
.ak-qa__mark {
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  flex: none;
  border-radius: 50%;
  background: var(--c-green);
  color: #fff;
  font: 900 19px/1 var(--f-round);
}
.ak-qa__mark--a { background: var(--c-yellow); color: var(--c-green-deep); }
.ak-qa__qtext { flex: 1; min-width: 0; word-break: auto-phrase; text-wrap: pretty; }
.ak-qa__toggle { position: relative; width: 28px; height: 28px; flex: none; }
.ak-qa__toggle::before,
.ak-qa__toggle::after {
  content: "";
  position: absolute;
  left: 7px; top: 12.5px;
  width: 14px; height: 3px;
  border-radius: 2px;
  background: var(--c-green);
  transition: transform .25s ease;
}
.ak-qa__toggle::after { transform: rotate(90deg); }
details[open] > summary .ak-qa__toggle::after { transform: rotate(0); }
.ak-qa__a { display: flex; gap: 14px; padding: 0 22px 22px; }
.ak-qa__a p { margin: 6px 0 0; font-size: 17px; line-height: 1.85; text-wrap: pretty; }
.ak-qa__char { position: absolute; right: -170px; bottom: -10px; width: auto; height: 190px; }

/* ==========================================================================
   12 対応エリア
   ========================================================================== */
.ak-t--area { --bg: var(--c-mint); }
.ak-ar { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 48px; align-items: start; }
.ak-ar__map { position: relative; padding: 18px; border-radius: 50%; background: #fff; box-shadow: var(--sh-card); }
.ak-ar__map img { width: 100%; height: auto; border-radius: 50%; }
.ak-ar__pin {
  position: absolute;
  left: 54%; top: 58%;
  width: 30px; height: 30px;
  margin: -30px 0 0 -15px;
  border-radius: 50% 50% 50% 0;
  background: var(--c-red);
  transform: rotate(-45deg);
  box-shadow: 0 3px 0 rgba(0, 0, 0, .2);
}
.ak-ar__pin::after {
  content: "";
  position: absolute;
  left: 9px; top: 9px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: #fff;
}
.ak-ar__map.is-in .ak-ar__pin { animation: ak-pin .8s ease .4s both; }
.ak-ar__catch { margin: 0 0 6px; font: 700 30px/1.5 var(--f-round); color: var(--c-green-deep); }
.ak-ar__fast { margin: 0 0 22px; font: 700 19px/1.6 var(--f-round); }
.ak-ar__fast strong { color: var(--c-red); }
.ak-ar__pref { margin-bottom: 12px; overflow: hidden; border-radius: 16px; background: #fff; }
.ak-ar__pref summary {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 12px 18px;
  cursor: pointer;
  list-style: none;
  font: 700 19px/1.4 var(--f-round);
}
.ak-ar__pref summary::-webkit-details-marker { display: none; }
.ak-ar__pref summary:focus-visible { outline: 3px solid var(--c-focus); outline-offset: -3px; }
.ak-ar__count { margin-left: auto; font-size: 15px; font-weight: 500; color: var(--c-sub); }
.ak-ar__cities { display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0; padding: 0 18px 18px; list-style: none; }
.ak-ar__cities li { padding: 2px 12px; border-radius: 999px; background: var(--c-mint); font-size: 15px; white-space: nowrap; }
.ak-ar__note { margin: 10px 0 0; font-size: 15px; color: var(--c-sub); }

/* ==========================================================================
   13 Instagram
   ========================================================================== */
.ak-t--ig { padding-bottom: 72px; }
.ak-ig {
  display: flex;
  align-items: center;
  gap: 28px;
  max-width: 960px;
  margin: 0 auto;
  padding: 22px 40px;
  border: 2px solid var(--c-line);
  border-radius: 28px;
  background: #fff;
  box-shadow: var(--sh-card);
}
.ak-ig__char { width: auto; height: 150px; flex: none; }
.ak-ig__body { flex: 1; min-width: 0; }
.ak-ig__title { margin: 4px 0 6px; font: 700 26px/1.45 var(--f-round); }
.ak-ig__account { display: flex; align-items: center; gap: 8px; margin: 0; font: 700 18px/1.4 var(--f-round); color: var(--c-ig); }
.ak-ig__account svg { width: 24px; height: 24px; }

/* ==========================================================================
   14 採用
   ========================================================================== */
.ak-t--recruit { --bg: var(--c-cream-deep); }
.ak-rc {
  padding: 44px 48px;
  border-radius: 32px;
  background-color: var(--c-green-night);
  color: #fff;
  box-shadow: 0 8px 0 rgba(3, 47, 25, .18);
  background-image:
    radial-gradient(circle at 88% 12%, transparent 0 150px, rgba(255, 255, 255, .09) 151px 154px, transparent 155px 230px, rgba(255, 255, 255, .07) 231px 234px, transparent 235px),
    radial-gradient(circle at 6% 96%, transparent 0 110px, rgba(255, 255, 255, .08) 111px 114px, transparent 115px);
}
.ak-rc { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.ak-rc .ak-b:focus-visible { outline-color: var(--c-yellow); }
.ak-rc__photo { margin: 0; overflow: hidden; border: 6px solid #fff; border-radius: 28px; box-shadow: 10px 11px 0 rgba(0, 0, 0, .25); }
.ak-rc__photo img { width: 100%; height: auto; }
.ak-sh__en--light { color: var(--c-yellow); }
.ak-rc__title { margin: 6px 0 18px; font: 700 38px/1.4 var(--f-round); color: var(--c-yellow); word-break: auto-phrase; }
.ak-rc__tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; padding: 0; list-style: none; }
.ak-rc__tags li { padding: 5px 16px; border: 2px solid rgba(255, 255, 255, .55); border-radius: 999px; background: rgba(255, 255, 255, .1); font: 700 16px/1.5 var(--f-round); }
.ak-rc__char { position: absolute; right: 28px; bottom: 0; width: auto; height: 150px; }

/* ==========================================================================
   15 お問い合わせ
   ========================================================================== */
.ak-t--contact { --bg: var(--c-butter-logo); }
.ak-ct {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  max-width: 940px;
  margin: 0 auto;
  padding: 40px 48px;
  border: 4px solid var(--c-green-logo);
  border-radius: 32px;
  background: #fff;
  box-shadow: 0 8px 0 rgba(0, 120, 60, .14);
}
.ak-ct__char { width: auto; height: 250px; flex: none; }
.ak-ct__body { min-width: 0; text-align: center; }
.ak-ct__title { margin: 6px 0 8px; font: 700 28px/1.5 var(--f-round); }
.ak-ct__title em { font-style: normal; font-weight: 900; font-size: 1.25em; color: var(--c-red); }
.ak-ct__lead { margin: 0 0 10px; font-size: 17px; }
.ak-ct__tel {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--c-green-deep);
  font: 900 46px/1.15 var(--f-round);
  letter-spacing: .02em;
  text-decoration: none;
  white-space: nowrap;
}
.ak-ct__tel svg { width: 38px; height: 38px; fill: currentColor; }
.ak-ct__tel:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }
.ak-ct__hours { margin: 6px 0 22px; font-size: 15px; color: var(--c-sub); }

/* ==========================================================================
   動き
   ========================================================================== */
@keyframes ak-float { from { transform: translateY(0) rotate(0); } to { transform: translateY(-8px) rotate(1deg); } }
@keyframes ak-bob   { from { transform: translateY(0) rotate(0); } to { transform: translateY(-6px) rotate(2deg); } }
@keyframes ak-sway  { from { transform: rotate(0); } to { transform: rotate(-4deg); } }
@keyframes ak-pop   { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: scale(1); } }
@keyframes ak-pin   { 0% { transform: translateY(-40px) rotate(-45deg); opacity: 0; } 60% { transform: translateY(4px) rotate(-45deg); opacity: 1; } 100% { transform: translateY(0) rotate(-45deg); } }

.ak-float { animation: ak-float 4s ease-in-out 8 alternate; }
.ak-float--late { animation-delay: -2s; }

/* 画面に入ったものだけ動かす（JS が .is-play を付ける。JS が無ければ最初から動く） */
.ak-js-play .ak-loop:not(.is-play) { animation-play-state: paused; }

/* スクロールでふわっと出す（FV と直下の導線には付けない） */
.ak-js-reveal .ak-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s ease, transform .6s ease;
  transition-delay: calc(var(--d, 0) * 80ms);
}
.ak-js-reveal .ak-reveal.is-in { opacity: 1; transform: none; }
.ak-js-reveal .ak-fl__list::before { clip-path: inset(0 100% 0 0); }
.ak-js-reveal .ak-fl__list.is-in::before { clip-path: inset(0); }

/* スマホの下固定バーは、FV直下のボタンが見えている間は隠す */
.ak-sticky-cta { transition: transform .25s ease; }
.ak-hide-sticky .ak-sticky-cta { transform: translateY(110%); }

@media (prefers-reduced-motion: reduce) {
  .ak-road__truck,
  .ak-float,
  .ak-shelf img,
  .ak-deco--excavator,
  .ak-tcta__bubble,
  .ak-ar__pin { animation: none !important; }
  .ak-road__truck { transform: translateX(12vw); }
  .ak-js-reveal .ak-reveal { opacity: 1; transform: none; transition: none; }
  .ak-js-reveal .ak-fl__list::before { clip-path: none; }
  .ak-sticky-cta { transition: none; }
}

/* ==========================================================================
   PC ワイド
   ========================================================================== */
@media (min-width: 1400px) {
  .ak-main { font-size: 18px; }
  .ak-reason__text,
  .ak-svc__text,
  .ak-vc__bubble p,
  .ak-val__text,
  .ak-qa__a p { font-size: 18px; }
}

/* PC で FAQ 横のキャラが入る幅が無いときは出さない */
@media (max-width: 1279px) {
  .ak-qa__char { display: none; }
}

/* ==========================================================================
   タブレット（768〜1023）
   ========================================================================== */
@media (max-width: 1023px) {
  .ak-t { padding-block: 80px; }
  .ak-sh__title { font-size: 36px; }
  .ak-tcta__inner { grid-template-columns: 110px minmax(0, 1fr) 120px; gap: 12px; }
  .ak-tcta__char--left img { width: 100px; }
  .ak-tcta__char--right img { width: 96px; }
  .ak-tcta__bubble { display: none; }
  .ak-cta2 .ak-b { min-width: 0; flex: 1 1 260px; }
  .ak-svc { flex-basis: calc((100% - 28px) / 2); }
  .ak-worry__list,
  .ak-reason__list,
  .ak-wk__list,
  .ak-vc__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ak-num__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ak-deco--excavator { width: 140px; top: -120px; }
  .ak-price { grid-template-columns: minmax(0, 1fr); }
  .ak-price__char { top: -60px; height: 120px; }
  .ak-midcta__box { flex-direction: column; text-align: center; }
  .ak-midcta .ak-cta2 { flex-wrap: wrap; width: 100%; }
  .ak-fl__list { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 36px; }
  .ak-fl__list::before { display: none; }
  .ak-val { grid-template-columns: 1fr; gap: 40px; }
  .ak-ar { grid-template-columns: 280px minmax(0, 1fr); gap: 32px; }
  .ak-rc { grid-template-columns: 1fr; gap: 32px; }
  .ak-rc__char { right: 20px; height: 120px; }
}

/* ==========================================================================
   スマートフォン（〜767）
   ========================================================================== */
@media (max-width: 767px) {
  .ak-main { font-size: 16px; }
  .ak-sp-only { display: inline; }
  .ak-t { padding-block: 56px; }
  .ak-sh { margin-bottom: 32px; }
  .ak-sh__title { font-size: 28px; }
  .ak-sh__title em { font-size: 1.14em; }
  .ak-sh__lead { font-size: 16px; text-align: left; }
  .ak-t--worry::before,
  .ak-t--price::before,
  .ak-t--works::before,
  .ak-t--faq::before,
  .ak-t--numbers::before,
  .ak-t--services::before { height: 22px; -webkit-mask-size: 96px 100%; mask-size: 96px 100%; }
  .ak-t--numbers::before,
  .ak-t--services::before { -webkit-mask-size: 48px 100%; mask-size: 48px 100%; }
  .ak-t--voice::before,
  .ak-t--voice::after { height: 16px; -webkit-mask-size: 32px 100%; mask-size: 32px 100%; }

  /* MV: 既存のスマホ用の正方形バナーの構成（写真を全面に敷いて文字を重ねる） */
  .ak-mv__stage { aspect-ratio: auto; min-height: 100vw; }
  .ak-mv__photo {
    width: 100%;
    object-position: 58% 50%;
    -webkit-mask-image: none;
            mask-image: none;
  }
  .ak-mv__swirl { width: 52%; opacity: .7; z-index: 1; }
  .ak-mv__body {
    position: relative;
    inset: auto;
    display: flex;
    flex-direction: column;
    min-height: 100vw;
    padding: 4.5cqw 0 3cqw;
  }
  .ak-mv__heading,
  .ak-mv__lead,
  .ak-mv__badge,
  .ak-mv__stats { position: static; }
  .ak-mv__heading { padding-left: 2.5cqw; }
  .ak-mv__sub { font-size: 6.4cqw; }
  .ak-mv__main { margin-left: 6cqw; font-size: 14cqw; }
  .ak-mv__lead {
    width: auto; height: auto;
    margin-top: 4.5cqw;
    padding: 3.2cqw 2cqw;
    background: rgba(28, 28, 28, .5);
    font-size: max(17px, 5.6cqw);
  }
  .ak-mv__line { white-space: normal; }
  .ak-mv__badge {
    width: auto; height: auto;
    flex-wrap: wrap;
    margin: auto 2cqw 0;
    padding: 1.4cqw 3cqw;
    font-size: max(14px, 4.05cqw);
    white-space: normal;
    text-align: center;
  }
  .ak-mv__badge span { display: inline-block; }
  .ak-mv__stats {
    width: auto; height: auto;
    justify-content: space-between;
    gap: 2cqw;
    margin: 2.6cqw 3cqw 0;
  }
  .ak-mv__icon { width: 12.5cqw; }
  .ak-mv__area,
  .ak-mv__record { gap: 2cqw; }
  .ak-mv__area-text { font-size: max(16px, 5.2cqw); }
  .ak-mv__record-text { font-size: max(16px, 5.4cqw); }

  .ak-road { height: 46px; border-width: 4px; }
  .ak-road::before { background-size: 48px 100%; background-image: repeating-linear-gradient(90deg, #FFE14D 0 24px, transparent 24px 48px); }
  .ak-road__truck { width: 60px; bottom: 3px; animation-duration: 10s; }
  .ak-road__truck--slow { animation-duration: 13s; }

  .ak-tcta__inner { display: block; padding-top: 24px; padding-bottom: 36px; }
  .ak-tcta__char { display: none; }
  .ak-tcta__lead { margin-bottom: 16px; font-size: 18px; }
  .ak-cta2 { flex-direction: column; align-items: stretch; gap: 14px; }
  .ak-cta2 .ak-b,
  .ak-cta2--compact .ak-b { min-width: 0; width: 100%; min-height: 62px; font-size: 18px; flex: none; }
  .ak-tcta__note { font-size: 14px; }

  .ak-worry__list { grid-template-columns: 1fr; gap: 20px; }
  .ak-worry__item { min-height: 64px; padding: 14px 16px 14px 62px; font-size: 17px; }
  .ak-worry__item::after { left: 30px; }
  .ak-worry__q { left: 14px; width: 34px; height: 34px; margin-top: -17px; font-size: 19px; }
  .ak-worry__answer { margin-top: 32px; }
  .ak-worry__answer-inner { flex-direction: column; align-items: center; gap: 8px; padding: 24px 16px 0; }
  .ak-worry__answer-text { padding-bottom: 0; text-align: center; font-size: 21px; }
  .ak-worry__answer-img { width: 230px; }

  .ak-deco--cone,
  .ak-deco--barricade { display: none; }
  .ak-reason__list { grid-template-columns: 1fr; gap: 40px; padding-top: 18px; }
  .ak-reason {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    grid-template-areas: "fig title" "text text";
    align-items: center;
    gap: 6px 14px;
    padding: 30px 18px 20px;
    text-align: left;
  }
  .ak-reason__body { display: contents; }
  .ak-reason__num { left: 18px; top: -24px; width: 54px; height: 54px; margin-left: 0; font-size: 21px; }
  .ak-reason__num small { font-size: 14px; }
  .ak-reason__fig { grid-area: fig; height: 120px; margin: 0; }
  .ak-reason__fig.is-wide img { max-height: 96px; }
  .ak-reason__title { grid-area: title; font-size: 18px; }
  .ak-reason__text { grid-area: text; margin-top: 6px; font-size: 16px; }

  .ak-t--numbers { padding-bottom: 88px; }
  .ak-num__list { gap: 12px; }
  .ak-num { padding: 20px 8px 18px; }
  .ak-num__value { font-size: 46px; }
  .ak-num__unit { display: block; margin: 6px 0 0; font-size: 17px; }
  .ak-num__label { margin-top: 8px; font-size: 14px; }
  .ak-deco--excavator { position: static; display: block; width: 150px; margin: 28px auto 0; }

  .ak-svc__list { gap: 16px; }
  .ak-svc { flex-basis: 100%; display: grid; grid-template-columns: 104px minmax(0, 1fr); border-top: 0; border-left: 5px solid var(--c-green-logo); }
  .ak-svc__fig { aspect-ratio: auto; height: 100%; }
  .ak-svc__fig img { width: 92%; }
  .ak-svc__body { padding: 14px 16px 16px; }
  .ak-svc__num {
    position: static;
    width: auto; height: auto;
    display: block;
    background: none;
    box-shadow: none;
    color: var(--c-green);
    font-size: 15px;
    text-align: left;
  }
  .ak-svc__title { font-size: 19px; }
  .ak-svc__sub { font-size: 14px; margin-bottom: 4px; }
  .ak-svc__text { font-size: 16px; line-height: 1.75; }
  .ak-shelf { gap: 22px; margin-top: 40px; padding: 0 18px 12px; }
  .ak-shelf img { height: 56px; }
  .ak-shelf li:nth-child(1) img { height: 46px; }
  .ak-shelf li:nth-child(3) img { height: 66px; }

  /* 単価表はカードに組み替える */
  /* グリッドの子は min-width:auto だと中身の最小幅まで広がる（320px で表が 8px はみ出した） */
  .ak-price__table-wrap { min-width: 0; width: 100%; padding: 0; border: 0; background: none; box-shadow: none; }
  .ak-price__table td { white-space: normal; gap: 10px; }
  .ak-price__table td::before { white-space: nowrap; }
  .ak-price__table,
  .ak-price__table tbody,
  .ak-price__table tr,
  .ak-price__table th,
  .ak-price__table td { display: block; }
  .ak-price__table thead { display: none; }
  .ak-price__table tr {
    margin-bottom: 14px;
    overflow: hidden;
    border: 2px solid var(--c-line);
    border-radius: 18px;
    background: #fff;
  }
  .ak-price__table tbody th {
    padding: 10px 16px;
    background: var(--c-green-deep);
    color: #fff;
    border-top: 0;
  }
  .ak-price__table tbody th small { display: inline; margin-left: 4px; color: #fff; opacity: .9; }
  .ak-price__table td {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 10px 16px;
    font-size: 18px;
    border-top: 2px dashed var(--c-line);
  }
  .ak-price__table tbody tr > td:nth-child(2) { border-top: 0; }
  .ak-price__table td::before { content: attr(data-label); font: 700 15px/1.4 var(--f-round); color: var(--c-sub); }
  .ak-price__side { padding: 22px 18px 24px; }
  .ak-price__add-title { padding-right: 70px; font-size: 18px; }
  .ak-price__add dt { font-size: 16px; }
  .ak-price__add dd { font-size: 18px; }
  .ak-price__char { top: -44px; right: 8px; height: 100px; }
  .ak-price__side .ak-b { width: 100%; }

  .ak-midcta { padding-bottom: 56px; }
  .ak-t--voice + .ak-midcta { padding-top: 48px; }
  .ak-midcta__box { padding: 22px 16px; }
  .ak-midcta__text { font-size: 18px; }

  .ak-wk__list { grid-template-columns: 1fr; gap: 14px; }
  .ak-t--works .ak-wk:nth-child(n+4) { display: none; }
  .ak-wk__link { display: grid; grid-template-columns: 118px minmax(0, 1fr); }
  .ak-wk__fig { aspect-ratio: auto; height: 100%; min-height: 128px; }
  .ak-wk__area { left: 6px; top: 6px; padding: 2px 10px; font-size: 14px; }
  .ak-wk__body { padding: 12px 14px; }
  .ak-wk__title { margin-bottom: 4px; font-size: 16px; }
  .ak-wk__meta { gap: 2px 12px; }
  .ak-wk__meta dd { font-size: 16px; }
  .ak-wk__cost dd { font-size: 22px; }
  .ak-wk__more { display: none; }
  .ak-road--bottom { margin-top: 56px; }

  .ak-fl__list { grid-template-columns: 1fr; gap: 0; }
  .ak-fl {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    grid-template-areas: "icon num" "icon title" "icon text";
    column-gap: 14px;
    padding-bottom: 22px;
    text-align: left;
  }
  .ak-fl:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 31px; top: 64px; bottom: 0;
    border-left: 4px dotted var(--c-green-logo);
  }
  .ak-fl__icon { grid-area: icon; align-self: start; width: 64px; height: 64px; margin: 0; }
  .ak-fl__icon svg { width: 32px; height: 32px; }
  .ak-fl__num { grid-area: num; margin: 0; font-size: 19px; }
  .ak-fl__title { grid-area: title; margin: 0; font-size: 18px; text-wrap: wrap; }
  .ak-fl__text { grid-area: text; margin-top: 2px; font-size: 16px; text-align: left; }

  .ak-vc__list { grid-template-columns: 1fr; gap: 26px; }
  .ak-vc__bubble { padding: 22px 18px; }
  .ak-vc__bubble p { font-size: 16px; }
  .ak-vc__who { margin: 20px 0 0 18px; font-size: 17px; }

  .ak-val { gap: 32px; }
  .ak-val__photo::before { left: -10px; top: -14px; width: 80px; height: 80px; }
  .ak-val__catch { font-size: 21px; }
  .ak-val__item { padding: 16px; }
  .ak-val__title { font-size: 18px; }
  .ak-val__text { font-size: 16px; }
  .ak-val__more .ak-b { width: 100%; }

  .ak-qa__q { padding: 14px 14px; font-size: 16px; gap: 10px; }
  .ak-qa__mark { width: 34px; height: 34px; font-size: 17px; }
  .ak-qa__a { gap: 10px; padding: 0 14px 18px; }
  .ak-qa__a p { font-size: 16px; }

  .ak-ar { grid-template-columns: 1fr; gap: 24px; }
  .ak-ar__map { width: 240px; margin: 0 auto; padding: 12px; }
  .ak-ar__pin { width: 24px; height: 24px; margin: -24px 0 0 -12px; }
  .ak-ar__pin::after { left: 7px; top: 7px; width: 10px; height: 10px; }
  .ak-ar__catch { font-size: 23px; text-align: center; }
  .ak-ar__fast { font-size: 17px; text-align: center; }
  .ak-ar__pref summary { font-size: 18px; min-height: 52px; }
  .ak-ar__cities li { font-size: 15px; }

  .ak-t--ig { padding-bottom: 56px; }
  .ak-ig { flex-direction: column; gap: 12px; padding: 22px 18px 24px; text-align: center; }
  .ak-ig__char { height: 110px; }
  .ak-ig__title { font-size: 22px; }
  .ak-ig__account { justify-content: center; }
  .ak-ig .ak-b { width: 100%; }

  .ak-rc { padding: 24px 18px 28px; border-radius: 24px; }
  .ak-rc__title { font-size: 28px; }
  .ak-rc__tags li { font-size: 16px; }
  .ak-rc__char { display: none; }
  .ak-rc .ak-b { width: 100%; }

  .ak-ct { flex-direction: column; gap: 8px; padding: 26px 16px 28px; }
  .ak-ct__char { height: 140px; }
  .ak-ct__title { font-size: 22px; }
  .ak-ct__lead { font-size: 16px; }
  .ak-ct__tel { font-size: clamp(28px, 8.4vw, 38px); gap: 8px; }
  .ak-ct__tel svg { width: 28px; height: 28px; }
  .ak-ct__hours { font-size: 14px; }
  .ak-b--wide { min-width: 0; width: 100%; }

  .ak-js-reveal .ak-reveal { transform: translateY(16px); }
}


/* ==========================================================================
   下層ページ（2026-09-23 トップにそろえる）
   地は cream と cream-deep の交互、区切りは波だけ。部品はトップと同じものを使う
   ========================================================================== */
.ak-phead {
  position: relative;
  padding: 40px 0 72px;
  background: var(--c-cream-deep);
  background-image: radial-gradient(rgba(232, 176, 40, .16) 2px, transparent 2.5px);
  background-size: 28px 28px;
  overflow-x: clip;
}
.ak-phead::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 40px;
  background: var(--c-cream);
  -webkit-mask: var(--div-wave) repeat-x left bottom / 160px 100%;
          mask: var(--div-wave) repeat-x left bottom / 160px 100%;
}
.ak-phead__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ak-phead__text { min-width: 0; }
.ak-phead__title { margin: 8px 0 0; font: 700 44px/1.35 var(--f-round); color: var(--c-green-deep); word-break: auto-phrase; }
.ak-phead__lead { margin: 10px 0 0; font-size: 18px; line-height: 1.8; }
.ak-phead__char { position: relative; z-index: 1; width: auto; height: 180px; margin-bottom: -24px; flex: none; }
.ak-phead--post .ak-phead__title { font-size: 30px; }
.ak-t--entry { --bg: var(--c-cream); padding-top: 56px; }

/* 下層の地の並び */
.ak-t--flowpage,
.ak-t--workspage,
.ak-t--about,
.ak-t--license,
.ak-t--methods { --bg: var(--c-cream); }
.ak-t--company,
.ak-t--form { --bg: var(--c-cream-deep); }
.ak-t--company::before,
.ak-t--form::before {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 100%;
  height: 40px;
  background-color: var(--bg);
  pointer-events: none;
  -webkit-mask: var(--div-wave) repeat-x left bottom / 160px 100%;
          mask: var(--div-wave) repeat-x left bottom / 160px 100%;
}
#price.ak-t--price { --bg: var(--c-cream-deep); }
#faq.ak-t--faq { --bg: var(--c-cream); }
.ak-t--methods { padding-top: 56px; }

/* 流れページ: 縦の7段 */
.ak-fd { position: relative; max-width: 880px; margin: 0 auto; padding: 0; list-style: none; }
.ak-fd__item { position: relative; display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 20px; padding-bottom: 22px; }
.ak-fd__item:not(:last-child)::before {
  content: "";
  position: absolute;
  left: 42px; top: 88px; bottom: 0;
  border-left: 5px dotted var(--c-green-logo);
}
.ak-fd__icon {
  display: grid;
  place-items: center;
  width: 88px; height: 88px;
  border: 3px solid var(--c-green);
  border-radius: 50%;
  background: #fff;
  color: var(--c-green-deep);
  box-shadow: var(--sh-card);
}
.ak-fd__item:nth-child(even) .ak-fd__icon { background: #FFF8DB; }
.ak-fd__icon svg { width: 44px; height: 44px; }
.ak-fd__body { padding: 16px 24px 18px; border-radius: 20px; background: #fff; box-shadow: var(--sh-card); }
.ak-fd__num { margin: 0; font: 900 20px/1.2 var(--f-round); color: var(--c-green); }
.ak-fd__num span { margin-right: 4px; font-size: 14px; letter-spacing: .08em; }
.ak-fd__title { margin: 2px 0 6px; font: 700 22px/1.45 var(--f-round); }
.ak-fd__text { margin: 0; font-size: 17px; line-height: 1.85; text-wrap: pretty; }

/* 会社について */
.ak-val--about { align-items: start; }
.ak-prose p { margin: 0 0 1em; font-size: 17px; line-height: 1.95; text-wrap: pretty; }
.ak-quote {
  max-width: 880px;
  margin: 48px auto 0;
  padding: 28px 32px;
  border: 0;
  border-radius: 24px;
  background: var(--c-butter);
}
.ak-quote p { margin: 0 0 .6em; font-size: 17px; line-height: 1.9; }
.ak-quote p:last-child { margin-bottom: 0; }
.ak-quote strong { color: var(--c-green-deep); font-family: var(--f-round); font-weight: 900; }
.ak-deflist { overflow: hidden; border-radius: 24px; background: #fff; box-shadow: var(--sh-card); }
.ak-deflist__row { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px; padding: 16px 24px; border-top: 2px dashed var(--c-line); }
.ak-deflist__row:first-child { border-top: 0; }
.ak-deflist dt { font: 700 17px/1.7 var(--f-round); color: var(--c-green-deep); }
.ak-deflist dd { margin: 0; font-size: 17px; line-height: 1.7; }
.ak-license-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.ak-license { padding: 20px 24px; border-radius: 20px; background: #fff; box-shadow: var(--sh-card); }
.ak-license__title { margin: 0 0 6px; font: 700 19px/1.5 var(--f-round); color: var(--c-green-deep); }
.ak-license__body { margin: 0; font-size: 17px; line-height: 1.8; text-wrap: pretty; }

/* お問い合わせ */
.ak-contact-methods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ak-contact-method {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 28px 24px;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--sh-card);
  text-align: center;
}
.ak-contact-method__title { margin: 0; font: 700 20px/1.5 var(--f-round); color: var(--c-green-deep); }
.ak-contact-method__tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--c-green-deep);
  font: 900 34px/1.2 var(--f-round);
  text-decoration: none;
  white-space: nowrap;
}
.ak-contact-method__tel svg { width: 28px; height: 28px; fill: currentColor; }
.ak-contact-method__note { margin: 0; font-size: 15px; line-height: 1.8; color: var(--c-sub); }
.ak-contact-method p { margin: 0; }

/* 旧ボタン（.ak-btn）もトップのボタンと同じ見た目にする */
.ak-main .ak-btn {
  min-height: 52px;
  padding: 8px 28px;
  font: 700 17px/1.3 var(--f-round);
  box-shadow: 0 5px 0 rgba(0, 0, 0, .18);
  transition: transform .15s ease, box-shadow .15s ease;
}
@media (hover: hover) {
  .ak-main .ak-btn:hover { transform: translateY(2px); box-shadow: 0 3px 0 rgba(0, 0, 0, .18); }
}
.ak-main .ak-btn:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }

/* フォーム（Contact Form 7） */
.ak-form {
  padding: 32px;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--sh-card);
}
.ak-form label,
.ak-form p { font-size: 17px; font-weight: 700; }
.ak-form input[type="text"],
.ak-form input[type="email"],
.ak-form input[type="tel"],
.ak-form textarea,
.ak-form select {
  width: 100%;
  margin-top: 6px;
  padding: 12px 14px;
  border: 2px solid #A08C5B;
  border-radius: 14px;
  background: #fff;
  font: 400 17px/1.6 "Noto Sans JP", sans-serif;
}
.ak-form input:focus,
.ak-form textarea:focus,
.ak-form select:focus { outline: 3px solid var(--c-focus); outline-offset: 2px; border-color: var(--c-green); }
.ak-form .wpcf7-list-item { margin: 4px 16px 4px 0; font-weight: 500; }
.ak-form .wpcf7-submit {
  display: block;
  min-width: 280px;
  min-height: 60px;
  margin: 8px auto 0;
  padding: 8px 32px;
  border: 0;
  border-radius: 999px;
  background: var(--c-red);
  color: #fff;
  font: 700 18px/1.3 var(--f-round);
  box-shadow: 0 5px 0 rgba(0, 0, 0, .18);
  cursor: pointer;
}
.ak-form .wpcf7-submit:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }

@media (max-width: 1023px) {
  .ak-phead__title { font-size: 36px; }
  .ak-phead__char { height: 150px; }
}
@media (max-width: 767px) {
  .ak-phead { padding: 28px 0 52px; }
  .ak-phead::after { height: 22px; -webkit-mask-size: 96px 100%; mask-size: 96px 100%; }
  .ak-phead__title { font-size: 28px; }
  .ak-phead--post .ak-phead__title { font-size: 22px; }
  .ak-phead__lead { font-size: 16px; }
  .ak-phead__char { height: 112px; margin-bottom: -10px; }
  .ak-t--company::before,
  .ak-t--form::before { height: 22px; -webkit-mask-size: 96px 100%; mask-size: 96px 100%; }
  .ak-t--methods { padding-top: 32px; }

  .ak-fd__item { grid-template-columns: 56px minmax(0, 1fr); gap: 12px; padding-bottom: 16px; }
  .ak-fd__item:not(:last-child)::before { left: 26px; top: 56px; border-left-width: 4px; }
  .ak-fd__icon { width: 56px; height: 56px; }
  .ak-fd__icon svg { width: 28px; height: 28px; }
  .ak-fd__body { padding: 12px 16px 14px; }
  .ak-fd__title { font-size: 19px; }
  .ak-fd__text { font-size: 16px; }

  .ak-prose p,
  .ak-quote p { font-size: 16px; }
  .ak-quote { margin-top: 32px; padding: 20px 18px; }
  .ak-deflist__row { grid-template-columns: 1fr; gap: 2px; padding: 12px 16px; }
  .ak-deflist dt { font-size: 16px; }
  .ak-deflist dd { font-size: 16px; }
  .ak-license { padding: 16px 18px; }
  .ak-license__title { font-size: 18px; }
  .ak-license__body { font-size: 16px; text-wrap: balance; }

  .ak-contact-methods { grid-template-columns: 1fr; gap: 16px; }
  .ak-contact-method { padding: 22px 16px; }
  .ak-contact-method__tel { font-size: clamp(28px, 8.4vw, 34px); }
  .ak-contact-method .ak-btn { width: 100%; }
  .ak-form { padding: 20px 16px; }
  .ak-form label,
  .ak-form p { font-size: 16px; }
  .ak-form .wpcf7-submit { width: 100%; min-width: 0; }
}

/* ==========================================================================
   2026-09-23 ループ1の指摘への対応
   ========================================================================== */
/* ヘッダー: 角ボタンを畳む幅（1200〜1399px）では「無料見積り」だけ出す */
.ak-header__estimate { display: none; }
@media (min-width: 1200px) and (max-width: 1399px) {
  .ak-header__estimate {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: none;
    min-height: 52px;
    padding: 8px 22px;
    border-radius: 999px;
    background: var(--c-red);
    color: #fff;
    font: 700 17px/1.2 var(--f-round);
    text-decoration: none;
    box-shadow: 0 4px 0 rgba(0, 0, 0, .18);
  }
  .ak-header__estimate svg { width: 20px; height: 20px; fill: currentColor; }
}
/* スマホのメニューだけに出す項目 */
.ak-nav__item--sp { display: none; }
@media (max-width: 1023px) {
  .ak-nav__item--sp { display: list-item; }
}

/* 料金: 単価表と事例の総額の差を、実際の事例で示す */
.ak-price__real {
  margin: 0 0 22px;
  padding: 16px 18px;
  border: 2px solid var(--c-green-logo);
  border-radius: 18px;
  background: #fff;
}
.ak-price__real-title { margin: 0; font: 700 16px/1.5 var(--f-round); color: var(--c-green-deep); }
.ak-price__real-body { margin: 4px 0 0; font-size: 17px; line-height: 1.6; }
.ak-price__real-body strong { margin-left: .4em; font: 900 26px/1.3 var(--f-round); color: var(--c-red); }
.ak-price__real-note { margin: 6px 0 0; font-size: 14px; line-height: 1.7; color: var(--c-sub); }
.ak-price__real-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 16px;
  font-weight: 700;
  color: var(--c-green);
}

/* 施工事例一覧: 地域で絞り込む */
.ak-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 32px; }
.ak-filter[hidden] { display: none; }
.ak-filter__btn {
  min-height: 48px;
  padding: 8px 20px;
  border: 2px solid var(--c-green);
  border-radius: 999px;
  background: #fff;
  color: var(--c-green);
  font: 700 16px/1.3 var(--f-round);
  cursor: pointer;
}
.ak-filter__btn[aria-pressed="true"] { background: var(--c-green); color: #fff; }
.ak-filter__btn:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }
.ak-wk[hidden] { display: none; }

/* お問い合わせ: 見積りの書き方の案内・個人情報の一文 */
.ak-form-guide {
  margin: 0 0 24px;
  padding: 20px 24px;
  border-radius: 20px;
  background: var(--c-butter-logo);
}
.ak-form-guide__title { margin: 0 0 4px; font: 700 18px/1.5 var(--f-round); color: var(--c-green-deep); }
.ak-form-guide__text { margin: 0; font-size: 16px; text-wrap: pretty; }
.ak-form-guide__list { margin: 8px 0 0; padding-left: 1.4em; list-style: disc; font-size: 16px; line-height: 1.8; }
.ak-form__privacy { margin: 16px 0 0; font-size: 14px !important; font-weight: 400 !important; color: var(--c-sub); text-align: center; }
.ak-form .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; cursor: pointer; }
.ak-form input[type="radio"] { width: 22px; height: 22px; accent-color: var(--c-green); }

/* タップしやすさ（44px 以上）と、ボタン文字の下限（16px） */
.ak-entry__prev a,
.ak-entry__next a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 6px 12px;
  font-size: 16px;
}
.ak-footer__nav-list a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 0; }
.ak-footer__tel { min-height: 48px; }
.ak-footer__actions .ak-btn { font-size: 16px; }
.ak-sticky-cta__item { font-size: 16px; }

@media (max-width: 767px) {
  /* 看板の赤（#FE3200）は白文字とのコントラストが 3.7。スマホの小さい文字の間だけ 4.6 まで濃くする */
  .ak-mv__badge { background: #E02D00; }
  .ak-filter { gap: 8px; }
  .ak-filter__btn { flex: 1 1 40%; padding-inline: 10px; font-size: 16px; }
  .ak-price__real-body strong { display: block; margin-left: 0; font-size: 24px; }
}

/* 320〜374px: 1〜2文字だけの行が出た箇所 */
@media (max-width: 400px) {
  .ak-svc { display: block; }
  .ak-svc__fig { height: 132px; aspect-ratio: auto; }
  .ak-svc__fig img { width: auto; height: 118px; }
}
@media (max-width: 374px) {
  .ak-worry__answer-text { font-size: 18px; }
  .ak-reason { grid-template-columns: 84px minmax(0, 1fr); gap: 6px 10px; padding-inline: 14px; }
  .ak-reason__title { font-size: 16px; }
  .ak-reason__title em { font-size: 1.25em; }
  .ak-tcta__note,
  .ak-ct__hours { font-size: 14px; letter-spacing: -.01em; }
  .ak-ct__title { font-size: 20px; }
  .ak-sh__title { font-size: 26px; }
}

/* ヘッダー 1024〜1399px: ナビの幅を確保するため、電話カードの「すべて無料」を畳み、受付時間を短い表記にする */
.ak-hours-short { display: none; }
@media (min-width: 1024px) and (max-width: 1399px) {
  .ak-header__free { display: none; }
  .ak-hours-long { display: none; }
  .ak-hours-short { display: inline; }
  .ak-header__contact { padding: 8px 12px; }
  .ak-nav__list { gap: 8px; }
  .ak-nav__label { font-size: 14px; }
}

/* ==========================================================================
   2026-09-23 ループ2の指摘への対応
   ========================================================================== */
/* 地域バッジの「区」が1文字だけ折れる（さいたま市南／区） */
.ak-wk__area { white-space: nowrap; }
@media (max-width: 767px) {
  .ak-wk__area { font-size: 14px; padding: 2px 8px; }
}
/* 電話リンクのタップ領域（44px 以上） */
.ak-ct__tel,
.ak-contact-method__tel,
.ak-footer__tel,
.ak-header__tel { min-height: 48px; }
/* 送信ボタン（style.css の input[type="submit"] より後に、同じ強さで上書きする） */
.ak-form input[type="submit"],
.ak-form input.wpcf7-submit {
  min-height: 60px;
  font: 700 18px/1.3 var(--f-round);
  background: var(--c-red);
  color: #fff;
  border: 0;
  border-radius: 999px;
  box-shadow: 0 5px 0 rgba(0, 0, 0, .18);
}
/* 記入ガイドは本文と同じ大きさに */
.ak-form-guide__text,
.ak-form-guide__list { font-size: 17px; }
/* 1〜2文字だけの行（320px のリード・注記） */
.ak-phead__lead,
.ak-sh__lead,
.ak-price__note,
.ak-form-guide__text,
.ak-contact-method__note { text-wrap: pretty; }
/* 即日対応の赤（淡い緑の地の上で 4.5:1 以上に） */
.ak-ar__fast strong { color: #C22A00; }
/* ヘッダー: 1024px 以上は常に「無料見積り」を出す（メールの角ボタンはこれで置き換える） */
@media (min-width: 1024px) {
  .ak-header__estimate {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: none;
    min-height: 52px;
    padding: 8px 20px;
    border-radius: 999px;
    background: var(--c-red);
    color: #fff;
    font: 700 16px/1.2 var(--f-round);
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 4px 0 rgba(0, 0, 0, .18);
  }
  .ak-header__estimate svg { width: 20px; height: 20px; fill: currentColor; }
  .ak-header__estimate:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }
  .ak-header__action--mail { display: none; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  /* 1024〜1199 は幅が足りないので、ロゴの肩書と電話カードの補足を畳む */
  .ak-logo__tagline { display: none; }
  .ak-header__contact { padding: 6px 10px; }
  .ak-header__hours { display: none; }
}
@media (min-width: 1280px) {
  .ak-nav__label { font-size: 15px; }
}

/* ==========================================================================
   事例の詳細（移行した投稿本文）もトップと同じ見た目・文字の下限にそろえる
   ========================================================================== */
.ak-entry__date { font-size: 15px; }
.ak-entry__cat,
.ak-entry__tags a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 2px 14px;
  border-radius: 999px;
  background: var(--c-mint-logo);
  color: var(--c-green-deep);
  font: 700 15px/1.5 var(--f-round);
  text-decoration: none;
}
.ak-entry__body { font-size: 17px; line-height: 1.95; }
.ak-entry__body h2,
.ak-entry__body h3,
.ak-entry__body [class*="is-style-vk-heading"] {
  font-family: var(--f-round);
  font-weight: 700;
  border-radius: 12px;
}
.ak-entry__body h2 { font-size: 22px; }
.ak-entry__body h3 { font-size: 19px; }
.ak-entry__body table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border-radius: 16px; background: #fff; box-shadow: var(--sh-card); }
.ak-entry__body table th,
.ak-entry__body table td { padding: 12px 16px; font-size: 16px; border-top: 2px dashed var(--c-line); }
.ak-entry__body table tr:first-child th,
.ak-entry__body table tr:first-child td { border-top: 0; }
.ak-entry__body table th { background: var(--c-cream-deep); font-family: var(--f-round); font-weight: 700; color: var(--c-green-deep); white-space: nowrap; }
.ak-entry__body .vk_highlighter { font-size: 18px; font-weight: 700; }
.ak-entry__body figcaption { font-size: 14px; }
.ak-entry__nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; margin-top: 40px; }
@media (max-width: 767px) {
  .ak-entry__body { font-size: 16px; }
  .ak-entry__body h2 { font-size: 19px; }
  .ak-entry__body h3 { font-size: 17px; }
  .ak-entry__body table th,
  .ak-entry__body table td { padding: 10px 12px; font-size: 15px; }
}

/* 下層ページの脇に置く小さなイラスト（狭い画面では出さない） */
.ak-side-char { position: absolute; width: auto; height: 150px; pointer-events: none; }
.ak-side-char--right { right: -40px; top: -36px; }
.ak-side-char--left { left: -50px; top: -30px; }
.ak-t--company .ak-container,
.ak-t--license .ak-container,
.ak-t--methods .ak-container { position: relative; }
@media (max-width: 1199px) {
  .ak-side-char { display: none; }
}

/* 流れの見出しの横にもう1体（狭い画面では出さない） */
.ak-t--flow .ak-container { position: relative; }
.ak-deco--flowchar { right: 0; top: -30px; width: auto; height: 150px; }
@media (max-width: 1199px) { .ak-deco--flowchar { display: none; } }

/* ==========================================================================
   2026-09-23 ループ3の指摘への対応
   ========================================================================== */
/* FV直下に「料金」「施工事例」への細い導線（解体の一次関心は金額） */
.ak-tcta__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px; margin: 16px 0 0; }
.ak-tcta__links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--c-green);
  font: 700 16px/1.4 var(--f-round);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.ak-tcta__links a:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }

/* 事例カードの地域バッジが写真からはみ出していた（スマホの写真の列が狭いため） */
@media (max-width: 767px) {
  /* 狭い画面ではバッジを写真の上に重ねず、本文側の先頭に置く（写真の幅からはみ出すため） */
  .ak-wk__link { grid-template-columns: 118px minmax(0, 1fr); }
  .ak-wk__area { position: static; display: inline-block; align-self: flex-start; width: fit-content; margin-bottom: 6px; padding: 2px 10px; font-size: 14px; }
}

/* 事例詳細: 本文と見出しの大きさ（VK のスタイルに負けていた） */
.ak-entry__body p { font-size: 17px; }
.ak-entry__body h2,
.ak-entry__body h2.wp-block-heading { font-size: 22px; }
.ak-entry__body h3,
.ak-entry__body h3.wp-block-heading { font-size: 19px; }
.ak-entry__spec {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  margin: 16px 0 24px;
  padding: 16px 22px;
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--sh-card);
}
.ak-entry__spec > div { display: flex; align-items: baseline; gap: 10px; }
.ak-entry__spec dt { font: 700 15px/1.6 var(--f-round); color: var(--c-sub); }
.ak-entry__spec dd { margin: 0; font-size: 18px; font-weight: 700; }
.ak-entry__spec-cost dd { font: 900 26px/1.3 var(--f-round); color: var(--c-red); }
@media (max-width: 767px) {
  .ak-entry__body p { font-size: 16px; }
  .ak-entry__body h2,
  .ak-entry__body h2.wp-block-heading { font-size: 19px; }
  .ak-entry__body h3,
  .ak-entry__body h3.wp-block-heading { font-size: 17px; }
  .ak-entry__spec { gap: 8px 20px; padding: 14px 16px; }
  .ak-entry__spec-cost dd { font-size: 22px; }
  /* 下の固定バー（58px）に本文が隠れないように */
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
}
/* 事例詳細の見出し（長いタイトル）の1〜2文字行 */
.ak-phead--post .ak-phead__title { text-wrap: balance; }

/* 縦長の写真でも事例カードの高さをそろえる。
   写真は絶対配置にして、枠の高さに中身を影響させない（flex/grid の子は中身の高さに引っ張られるため） */
.ak-wk__fig { position: relative; overflow: hidden; }
.ak-wk__fig img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* 320px でボタンが数px はみ出していた */
.ak-b { max-width: 100%; }
@media (max-width: 374px) {
  .ak-b { padding-inline: 16px; gap: 8px; }
  .ak-b__label { min-width: 0; }
}

/* ==========================================================================
   2026-10-09 お客さんの修正依頼
   ========================================================================== */
/* R-01 吹き出しがキャラの顔に重なっていた。右の列を広げ、キャラの左横に置く */
@media (min-width: 1280px) {
  .ak-tcta__inner { grid-template-columns: 170px minmax(0, 1fr) 300px; }
  .ak-tcta__bubble { right: 150px; top: 0; }
  /* 右の列を広げた分、ボタン2つが1行に収まる幅にする（2行になると導線が崩れる） */
  .ak-tcta .ak-cta2 .ak-b { min-width: 300px; }
}
@media (max-width: 1279px) {
  .ak-tcta__bubble { display: none; }
}
/* R-07 集合写真をイラストに差し替えた枠（透過の絵なので、写真用の影は外して淡い面に置く） */
.ak-val__photo--illust { padding: 24px 20px 0; overflow: hidden; background: var(--c-butter-logo); box-shadow: 0 6px 0 rgba(38, 51, 45, .08); }
.ak-val__photo--illust img { border-radius: 0; }
@media (max-width: 767px) {
  .ak-val__photo--illust { padding: 16px 12px 0; border-radius: 24px; }
}
/* ループ1（10/10）の指摘 */
/* 電話ボタンの中の番号も 16px に */
.ak-b__sub { font-size: 16px; }
/* 事例詳細の見出し（長いタイトル）で市名が途中で割れる → 文節で折り返す（見出しだけに使う） */
.ak-phead--post .ak-phead__title { word-break: auto-phrase; }
/* 吹き出しのしっぽ（10/10 ループ1）: 傾けた四角だと付け根に1〜2pxのすき間が出るので、三角を2枚重ねる */
.ak-tcta__bubble::after {
  right: -16px; top: 50%;
  width: 0; height: 0;
  margin-top: -10px;
  background: none;
  border: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 16px solid var(--c-green);
  transform: none;
}
.ak-tcta__bubble::before {
  content: "";
  position: absolute;
  right: -11px; top: 50%;
  z-index: 1;
  width: 0; height: 0;
  margin-top: -7px;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 12px solid #fff;
}
/* 事例詳細の見出し: スマホでは右のキャラを外して見出しに横幅を使う（「木造」だけの行が出ていた） */
@media (max-width: 767px) {
  .ak-phead--post .ak-phead__char { display: none; }
}
