/* 地域ページ読み込み時のみ適用する共通ルール
   （templates/page-open.php のインライン <style> から移設。2026-08-17）

   本CSSは「確認用固定ページ4本」または「v2で描画される area ページ」でしか
   読み込まれない（themes/{default,sphone}/header.php）。 */

/* 🔴 これだけは `.area-page` 配下へスコープできない。
      テーマが `<main class="area-page">` の**外側**へ出力するため。 */
.page-title-wrap {
  display: none;          /* テーマのページタイトルを隠す（地域ページは独自H1を持つ） */
}

/* こちらは `.area-page` 配下に出る。
   `templates/selected.php` の mizu_area_render_ranking() が描画する
   WooCommerce の content-product.php 由来のマークアップ。
   将来の波及を避けるため `.area-page` を前置してスコープを閉じる。 */
.area-page .product-info a {
  display: block;         /* おすすめ商品ランキング内のリンクをブロック化 */
}

:root{
  --padding-pc:15px;
  --padding-sp:16px;
}

:root{
  --max-width:1030px;
}
:root{
  --cq-ref:1440px;
}

:root{
  --font-family-base:"Noto Sans JP", sans-serif;
  --font-family-noto-sans:"Noto Sans", "Noto Sans JP", sans-serif;
  --font-family-inter:"Inter", "Noto Sans", sans-serif;
}

:root{
  --font-weight-light:300;
  --font-weight-regular:400;
  --font-weight-normal:500;
  --font-weight-semibold:600;
  --font-weight-bold:700;
  --font-weight-extrabold:800;
  --font-weight-black:900;
}

:root{
  --fluid-basis-mobile:(100vw - 340px) / (375 - 340);
  --cq-ref-mobile:390;
}

:root{
  --black:#000;
  --white:#fff;
  --main-navy-blue:#1B2475;
  --main-blue:#2482CD;
  --main-orange:#F26202;
  --main-eco-green:#19A974;
  --fv-pill-blue:#0154C7;
  --fv-lead-orange:#EB6006;
  --mizu-blue:#0053C5;
  --flow-green:#21B500;
  --flow-card-border:rgba(36, 130, 205, 0.54);
  --flow-bg:#F1F9FF;
  --install-note-bg:#ECF5EF;
  --about-card-green:#02804E;
  --about-card-border:#E3EBE8;
  --housing-card-blue:#0250CB;
  --table-border:#C9D8E4;
  --line-border:#D3D3D3;
  --line-banner-bg:linear-gradient(180deg, rgba(241, 249, 255, 0.00) 0%, #F1F9FF 100%);
  --subsidy-panel-bg:#F9FAFA;
  --subsidy-card-border:#EFF2F1;
  --subsidy-highlight-bg:#FDF8E7;
  --subsidy-highlight-border:#FDA44F;
  --subsidy-orange:#EF5E07;
  --subsidy-cta-bg:#F0F6F2;
  --subsidy-line-green:#07A22F;
  --subsidy-tag-bg:#EBFBEE;
  --subsidy-tag-text:#198038;
  --subsidy-tag-closed-bg:#EAEAEA;
  --subsidy-tag-closed-text:#858D88;
  --subsidy-amount-bg:rgba(25, 169, 116, 0.07);
  --subsidy-label:#666666;
  --text-body:#333333;
  --text-heading:#222222;
}

:root{
  --duration-short:0.2s;
  --duration-base:0.3s;
}

.u-desktop{
  display:none;
}

.u-desktop-inline{
  display:none;
}

.u-mobile-inline{
  display:inline;
}

.inner{
  margin-inline:auto;
  max-width:var(--max-width);
  padding-inline:var(--padding-pc);
  width:100%;
}

.inner-overflow{
  overflow:hidden;
  width:100%;
}

.text-bold{
  color:#2C2C2C;
  display:inline;
  font-weight:var(--font-weight-bold);
}

.text-blue{
  color:var(--main-color) !important;
  display:inline !important;
}

.text-green{
  color:var(--main-eco-green) !important;
  display:inline !important;
}

.text-orange{
  color:var(--main-orange);
  display:inline;
}

.text-red-orange{
  color:#F25222;
  display:inline;
}

.text-ls-neg-005{
  display:inline;
  letter-spacing:-0.05em;
}

.text-ls-neg-01{
  display:inline;
  letter-spacing:-0.1em;
}

.text-ls-neg-02{
  display:inline;
  letter-spacing:-0.2em;
}

.text-ls-neg-03{
  display:inline;
  letter-spacing:-0.3em;
}

.dot-blue{
  display:inline;
}

.dot-blue__char{
  display:inline-block;
  position:relative;
}
.dot-blue__char::after{
  aspect-ratio:1/1;
  background-color:#3ba8ff;
  border-radius:calc(infinity * 1px);
  content:"";
  left:50%;
  position:absolute;
  top:0;
  translate:-50% 0;
  width:0.16em;
}
*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  -webkit-text-size-adjust:100%;
  -moz-text-size-adjust:100%;
       text-size-adjust:100%;
}

body{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.5;
  margin:0;
  min-height:100vh;
  padding:0;
  text-rendering:optimizeLegibility;
}

ul,
ol,
button,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd,
time,
small{
  margin:0;
  padding:0;
}

ul,
ol{
  list-style:none;
}

a:not([class]){
  -webkit-text-decoration-skip:ink;
          text-decoration-skip-ink:auto;
}

a{
  -webkit-text-decoration:none;
  color:inherit;
  display:inline-block;
  text-decoration:none;
}

img{
  display:block;
}

span{
  display:inline-block;
}

.area-page-about{
  background:var(--line-banner-bg), var(--white);
  padding-block:60px;
}

.area-page-about__inner{
  margin-inline:auto;
  max-width:1040px;
  padding-inline:20px;
}

.area-page-about .section-title{
  color:#222;
  line-height:1.4;
}

.area-page-about__list{
  display:grid;
  gap:16.5px 18.9px;
  grid-template-columns:315.5fr 306.6fr 338.37fr;
  margin-top:30px;
  padding-top:2.63px;
}

.area-page-about__item{
  align-items:center;
  background-color:var(--white);
  border:1px solid var(--about-card-border);
  border-radius:8px;
  display:flex;
  min-height:117.215px;
  padding:16.9px 16px 16.9px 16.25px;
  position:relative;
}

.area-page-about__icon{
  flex-shrink:0;
  height:76px;
  max-width:100%;
  width:76px;
}

.area-page-about__body{
  flex:1;
  margin-left:15.5px;
  min-width:0;
  padding-left:18px;
  position:relative;
}

.area-page-about__body::before{
  background-color:var(--about-card-border);
  content:"";
  height:73px;
  left:0;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:1px;
}

.area-page-about__title{
  color:var(--about-card-green);
  font-family:var(--font-family-base);
  font-size:20px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.area-page-about__text{
  color:var(--black);
  font-family:var(--font-family-base);
  font-size:16px;
  font-weight:var(--font-weight-normal);
  line-height:1.5;
  margin-top:4.7px;
}

.area-page-center{
  background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), #f1f9ff);
  border-top:1px solid #d3d3d3;
  padding-block:60px;
}

.area-page-center__inner{
  margin-inline:auto;
  max-width:970px;
  padding-inline:20px;
}

.area-page-center__about{
  align-items:flex-start;
  display:flex;
  gap:41px;
  justify-content:center;
  margin-top:30px;
}

.area-page-center__cards{
  display:grid;
  flex:1;
  gap:10px;
  grid-template-columns:repeat(2, 1fr);
  min-width:0;
}

.area-page-center__card{
  background-color:var(--white);
  border:1px solid #c5d9f0;
  border-radius:8px;
  padding:14px;
  position:relative;
}

.area-page-center__card-title{
  color:#0374d2;
  font-family:var(--font-family-base);
  font-size:16px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.area-page-center__card-text{
  color:#000;
  font-family:var(--font-family-base);
  font-size:13px;
  font-weight:var(--font-weight-normal);
  line-height:1.6;
  margin-top:6px;
  padding-right:72px;
}

.area-page-center__card-icon{
  align-items:center;
  display:flex;
  flex-direction:column;
  gap:4px;
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  width:64px;
}

.area-page-center__card-icon-img{
  height:auto;
  width:42px;
}

.area-page-center__card-icon-label{
  color:#0374d2;
  font-family:var(--font-family-base);
  font-size:10px;
  font-weight:var(--font-weight-bold);
  line-height:1.2;
  margin-top:2px;
  text-align:center;
  white-space:nowrap;
}

.area-page-center__staff{
  align-items:center;
  display:flex;
  flex-direction:column;
  flex-shrink:0;
  width:318px;
}

.area-page-center__staff-img{
  border-radius:10px;
  height:auto;
  width:100%;
}

.area-page-center__staff-caption{
  color:#0374d2;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
  margin-top:10px;
  text-align:center;
}

.area-page-center__office{
  align-items:center;
  display:flex;
  gap:25px;
  justify-content:center;
  margin-top:30px;
}

.area-page-center__map{
  flex-shrink:0;
  width:200px;
}

.area-page-center__map-img{
  height:auto;
  width:100%;
}

.area-page-center__table{
  background-color:#0374d2;
  border:1px solid #0374d2;
  display:flex;
  flex:1;
  flex-direction:column;
  gap:1px;
  min-width:0;
}

.area-page-center__table-row{
  background-color:#0374d2;
  display:flex;
  gap:1px;
}

.area-page-center__table-head{
  align-items:center;
  background-color:#edf4fa;
  color:#0374d2;
  display:flex;
  flex-shrink:0;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  justify-content:center;
  line-height:1.5;
  padding:14px;
  text-align:center;
  width:200px;
}

.area-page-center__table-cell{
  align-items:center;
  background-color:var(--white);
  color:#000;
  display:flex;
  flex:1;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-normal);
  line-height:1.5;
  min-width:0;
  padding:14px;
}

.area-page-center__table-link{
  -webkit-text-decoration:underline;
  word-wrap:anywhere;
  overflow-wrap:anywhere;
  text-decoration:underline;
  transition:opacity var(--duration-short) ease;
  will-change:opacity;
}

.area-page-construction{
  background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), #f1f9ff);
  border-top:1px solid #d3d3d3;
  padding-block:60px;
}

.area-page-construction__inner{
  margin-inline:auto;
  max-width:1180px;
  padding-inline:20px;
}

.area-page-construction__head{
  text-align:center;
}

.area-page-construction__lead{
  color:#000;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  line-height:1.71;
  margin-top:13px;
}

.area-page-construction__table{
  display:flex;
  gap:40px;
  margin-top:40px;
  position:relative;
}
.area-page-construction__table::before{
  background-color:#b9b9b9;
  bottom:0;
  content:"";
  left:50%;
  position:absolute;
  top:0;
  width:1px;
}

.area-page-construction__panel{
  background-color:var(--panel-bg);
  border-radius:14px;
  flex:1;
  min-width:0;
  padding:14px;
}

.area-page-construction__panel--standard{
  --accent:#0d5fbb;
  --panel-bg:#f1f7fd;
  --item-border:#d3e4f7;
  border:1px solid #d3e4f7;
}

.area-page-construction__panel--additional{
  --accent:#FE6C06;
  --panel-bg:#fef8ee;
  --item-border:#fbe3cb;
  border:1px solid #fbe3cb;
}

.area-page-construction__panel-head{
  align-items:center;
  display:flex;
  gap:8px;
  justify-content:center;
}

.area-page-construction__panel-icon{
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  flex-shrink:0;
  height:28px;
  width:28px;
}
.area-page-construction__panel--standard .area-page-construction__panel-icon{
  background-image:url("/images/contents/area/common/area-page-construction-standard-icon.webp");
}
.area-page-construction__panel--additional .area-page-construction__panel-icon{
  background-image:url("/images/contents/area/common/area-page-construction-additional-icon.webp");
}

.area-page-construction__panel-title{
  color:var(--accent);
  font-family:var(--font-family-base);
  font-size:20px;
  font-weight:var(--font-weight-bold);
  line-height:1.5;
}

.area-page-construction__panel-list{
  counter-reset:construction-item;
  display:grid;
  gap:8px;
  grid-template-columns:repeat(2, 1fr);
  margin-top:12px;
}

.area-page-construction__panel-item{
  align-items:center;
  background-color:var(--white);
  border:1px solid var(--item-border);
  border-radius:10px;
  counter-increment:construction-item;
  display:flex;
  gap:8px;
  padding:7px 10px;
}

.area-page-construction__panel-img-wrap{
  align-items:center;
  display:flex;
  flex-shrink:0;
  justify-content:center;
  min-width:63px;
}

.area-page-construction__panel-img{
  height:45px;
  width:auto;
}

.area-page-construction__panel-num{
  align-items:center;
  background-color:var(--accent);
  border-radius:calc(infinity * 1px);
  color:var(--white);
  display:flex;
  flex-shrink:0;
  font-family:var(--font-family-base);
  font-size:13px;
  font-weight:var(--font-weight-bold);
  height:22px;
  justify-content:center;
  line-height:1;
  width:22px;
}
.area-page-construction__panel-num::before{
  content:counter(construction-item);
  margin-top:-1px;
}

.area-page-construction__panel-text{
  color:#000;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  line-height:1.35;
}

.area-page-construction__note{
  align-items:center;
  color:#0b5bc8;
  display:flex;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  gap:4px;
  justify-content:center;
  line-height:1.71;
  margin-top:30px;
  text-align:center;
}
.area-page-construction__note::before{
  background-image:url("/images/contents/area/common/area-page-construction-note-icon.svg");
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  content:"";
  flex-shrink:0;
  height:26px;
  width:26px;
}

.area-page-coverage{
  background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), #f1f9ff);
  padding-block:60px;
}

.area-page-coverage__inner{
  margin-inline:auto;
  max-width:1030px;
  padding-inline:20px;
}

.area-page-coverage__body{
  display:flex;
  gap:16px;
  margin-top:20px;
}

.area-page-coverage__map{
  flex:1;
  min-width:0;
}

.area-page-coverage__map-img{
  border-radius:5px;
  height:auto;
  width:100%;
}


.area-page-coverage__list{
  --area-accent:#2358bd;
  background-color:#f1f8fd;
  border:1px solid #cfe0f3;
  border-radius:8px;
  display:flex;
  flex:1;
  flex-direction:column;
  min-width:0;
  padding:20px 18px;
}

.area-page-coverage__list-title{
  color:var(--area-accent);
  font-family:var(--font-family-base);
  font-size:23px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.area-page-coverage__list-grid{
  display:grid;
  gap:10px;
  grid-template-columns:repeat(5, 1fr);
  margin-bottom:14px;
  margin-top:14px;
}

.area-page-coverage__list-item{
  align-items:center;
  background-color:var(--white);
  border:1.5px solid var(--area-accent);
  border-radius:6px;
  color:var(--area-accent);
  display:flex;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  justify-content:center;
  line-height:1.4;
  padding:6px 4px;
  text-align:center;
}

.area-page-coverage__list-note{
  border-top:1px dotted #b6cae3;
  font-family:var(--font-family-base);
  font-size:13px;
  font-weight:var(--font-weight-normal);
  line-height:1.6;
  margin-top:auto;
  padding-top:14px;
}

.area-page-cta{
  background-color:#f0f1f5;
  margin-top:5px;
}

.area-page-cta__inner{
  display:flex;
  gap:17px;
  justify-content:center;
  margin-inline:auto;
  max-width:1260px;
  padding-block:20px;
  padding-inline:20px;
}

.area-page-cta__btn{
  -webkit-text-decoration:none;
  align-items:center;
  background-blend-mode:overlay;
  background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(255, 255, 255, 0.3));
  border-radius:6px;
  display:flex;
  flex:1 1 0;
  height:78px;
  justify-content:center;
  max-width:390px;
  min-width:0;
  padding-inline:14px;
  position:relative;
  text-decoration:none;
  transition:opacity var(--duration-base) ease;
}

.area-page-cta__btn--tel{
  background-color:#0374d1;
}

.area-page-cta__btn--line{
  background-color:#06c755;
}

.area-page-cta__btn--mail{
  background-color:#ff9900;
}

.area-page-cta__btn-icon{
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
}
.area-page-cta__btn--tel .area-page-cta__btn-icon{
  background-image:url("/images/contents/area/common/area-page-cta-icon-tel.svg");
  height:29px;
  left:54px;
  width:30px;
}
.area-page-cta__btn--line .area-page-cta__btn-icon{
  background-image:url("/images/contents/area/common/area-page-cta-icon-line.svg");
  height:55px;
  left:50px;
  width:53px;
}
.area-page-cta__btn--mail .area-page-cta__btn-icon{
  background-image:url("/images/contents/area/common/area-page-cta-icon-mail.svg");
  height:26px;
  left:73px;
  width:32px;
}

.area-page-cta__btn-text{
  align-items:center;
  color:var(--white);
  display:flex;
  flex-direction:column;
  gap:6px;
  text-align:center;
}

.area-page-cta__btn-main{
  font-family:var(--font-family-base);
  font-size:22px;
  font-weight:var(--font-weight-bold);
  line-height:1;
}

.area-page-cta__btn-sub{
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.08em;
  line-height:1;
}

.area-page-flow{
  background:linear-gradient(180deg, rgba(241, 249, 255, 0) 0%, var(--flow-bg) 100%);
  padding-block:60px;
  position:relative;
}

.area-page-flow__inner{
  margin-inline:auto;
  max-width:1040px;
  padding-inline:20px;
}

.area-page-flow__title{
  color:#222;
  font-family:var(--font-family-noto-sans);
  font-size:30px;
  font-weight:var(--font-weight-extrabold);
  letter-spacing:0.05em;
  line-height:1.57;
  text-align:center;
}

.area-page-flow__title-accent{
  color:var(--main-blue);
}

.area-page-flow__steps{
  align-items:stretch;
  display:flex;
  justify-content:space-between;
  margin-top:30px;
  padding-top:28px;
}

.area-page-flow__step{
  align-items:center;
  display:flex;
}

.area-page-flow__step:not(:last-child)::after{
  border-right:3px solid var(--main-blue);
  border-top:3px solid var(--main-blue);
  content:"";
  flex-shrink:0;
  height:11px;
  margin-left:6px;
  transform:rotate(45deg);
  width:11px;
}

.area-page-flow__card{
  align-items:center;
  background:var(--white);
  border:2px solid var(--flow-card-border);
  border-radius:10px;
  display:flex;
  flex-direction:column;
  gap:10px;
  justify-content:flex-end;
  min-height:196px;
  padding:0 10px 19px;
  position:relative;
  width:180px;
}

.area-page-flow__badge{
  height:auto;
  left:50%;
  position:absolute;
  top:-25px;
  transform:translateX(-50%);
  width:30px;
}

.area-page-flow__icon-wrap{
  align-items:flex-start;
  display:flex;
  height:57px;
  justify-content:center;
}

.area-page-flow__icon{
  height:57px;
  width:auto;
}

.area-page-flow__icon--person{
  height:44px;
}

.area-page-flow__card-title{
  color:var(--mizu-blue);
  font-family:var(--font-family-noto-sans);
  font-size:15px;
  font-weight:var(--font-weight-extrabold);
  line-height:1;
  text-align:center;
}

.area-page-flow__card-desc{
  color:#222;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-normal);
  line-height:1.5;
  text-align:center;
}

.area-page-flow__banner{
  align-items:center;
  background:var(--flow-green);
  border-radius:7px;
  display:flex;
  justify-content:center;
  margin-top:30px;
  padding-block:13px;
  padding-inline:8px;
}

.area-page-flow__banner-gap{
  flex:0 1 30px;
  min-width:12px;
}

.area-page-flow__banner-access{
  color:var(--white);
  flex-shrink:0;
  font-family:var(--font-family-base);
  font-size:15px;
  font-weight:var(--font-weight-normal);
  white-space:nowrap;
}

.area-page-flow__banner-icon{
  display:inline-block;
  height:auto;
  margin-right:4px;
  vertical-align:middle;
  width:20px;
}

.area-page-flow__banner-underline{
  -webkit-text-decoration:underline;
  font-weight:var(--font-weight-bold);
  margin-right:min(0.6em, 1.8vw);
  text-decoration:underline;
}

.area-page-flow__banner-num{
  font-family:var(--font-family-inter);
  font-size:21px;
}

.area-page-flow__banner-pill{
  background:var(--white);
  border-radius:calc(infinity * 1px);
  color:#222;
  flex-shrink:0;
  font-family:var(--font-family-base);
  font-size:15px;
  font-weight:var(--font-weight-bold);
  padding:8px 10px;
  white-space:nowrap;
}

.area-page-flow__banner-check{
  display:inline-block;
  height:auto;
  margin-right:8px;
  vertical-align:middle;
  width:19px;
}

.area-page-flow__banner-red{
  color:#ff0000;
}

.area-page-fv{
  background-color:var(--white);
  position:relative;
}

.area-page-fv__bg{
  height:100%;
  inset:0;
  object-fit:cover;
  object-position:center;
  position:absolute;
  width:100%;
  z-index:0;
}

.area-page-fv__inner{
  aspect-ratio:1440/554;
  container-type:inline-size;
  font-family:var(--font-family-base);
  margin-inline:auto;
  max-width:1440px;
  position:relative;
  width:100%;
  z-index:1;
}

.area-page-fv__staff{
  bottom:0; /* 伸びるFVでも足元は下端に着ける（従来top:1.43cqwと同位置） */
  height:auto;
  left:51.0354166667cqw;
  position:absolute;
  width:32.9590277778cqw;
  z-index:1;
}

.area-page-fv__waterheater{
  bottom:0.3822222222cqw; /* 従来top:24.34cqwと同位置 */
  height:auto;
  left:68.7423611111cqw;
  position:absolute;
  width:29.2458333333cqw;
  z-index:2;
}

/* 🔴 PCのFVは「伸びる」つくり（2026-09-02 ユーザー要望）。
   注記が長い市でもテキストを縮めず、FV全体の高さが伸びて受け止める。
   仕組み：__inner の aspect-ratio は従来の高さの下限として働き、
   __content と __features をフロー配置にすることで、中身が超えたぶんだけ
   自然に伸びる（背景は object-fit:cover が吸収）。スタッフ等の画像は
   下端基準（bottom）に変えて、伸びても足元が浮かないようにする。
   SP側は従来の絶対配置をメディアクエリ内で維持している。 */
.area-page-fv__content{
  padding-left:7.8381944444cqw;
  padding-top:2.3465277778cqw;
  position:relative;
  z-index:3;
}

.area-page-fv__badge{
  align-items:center;
  background-color:var(--white);
  border:0.0847222222cqw solid #d3d3d3;
  border-radius:calc(infinity * 1px);
  display:flex;
  gap:0.4236111111cqw;
  padding:1.0416666667cqw 1.69375cqw;
  white-space:nowrap;
  width:fit-content;
}

.area-page-fv__badge-icon{
  background:url("/images/contents/area/common/area-page-fv-icon-pin.svg") no-repeat center/contain;
  height:1.8625cqw;
  width:1.8625cqw;
}

.area-page-fv__badge-text{
  color:var(--main-blue);
  font-family:var(--font-family-noto-sans);
  font-size:1.4395833333cqw;
  font-weight:var(--font-weight-bold);
  line-height:1;
}

.area-page-fv__title{
  color:#222;
  font-family:var(--font-family-noto-sans);
  font-weight:var(--font-weight-extrabold);
  margin-top:2.9166666667cqw;
}

.area-page-fv__title-row{
  display:block;
  line-height:1;
  white-space:nowrap;
}

.area-page-fv__title-row--1{
  font-size:2.7743055556cqw;
  letter-spacing:0.0469em;
}

.area-page-fv__title-row--2{
  font-size:2.5645833333cqw;
  letter-spacing:0.0507em;
  margin-top:0.4166666667cqw;
}

.area-page-fv__title-tight{
  letter-spacing:-0.21em;
}

.area-page-fv__title-city{
  color:var(--main-blue);
  font-size:calc(5.5486111111cqw * var(--mza-city-scale, 1));
  letter-spacing:0.0234em;
}

/* 地名が長いときはh1の地名だけ縮小し、スタッフ写真の顔へ達しないようにする
   （倍率はテンプレート側で付与する文字数クラスで切替。基準設計は3〜5文字）。
   SP側は段組でセグメントが折り返すため、末尾のSPブロックで倍率を戻す。 */
.area-page-fv__title--city-len6{
  --mza-city-scale:0.92;
}

.area-page-fv__title--city-len7{
  --mza-city-scale:0.79;
}

.area-page-fv__title--city-len8{
  --mza-city-scale:0.69;
}

.area-page-fv__title-lg{
  font-size:3.1208333333cqw;
  letter-spacing:0.0417em;
}

.area-page-fv__title-nara{
  font-size:2.2541666667cqw;
  letter-spacing:0.0577em;
}

.area-page-fv__title-accent{
  color:var(--main-blue);
}

.area-page-fv__title-num{
  font-family:var(--font-family-inter);
  font-size:3.60625cqw;
  letter-spacing:-0.0217em;
}

.area-page-fv__title-brand{
  display:block;
  font-size:3.8145833333cqw;
  letter-spacing:0.0341em;
  line-height:1;
  margin-top:0.9722222222cqw;
}

.area-page-fv__lead{
  color:#222;
  font-family:var(--font-family-base);
  font-size:1.4583333333cqw;
  font-weight:var(--font-weight-normal);
  letter-spacing:0.03em;
  line-height:1.57;
  margin-left:0.3444444444cqw;
  margin-top:2.0833333333cqw;
  white-space:nowrap;
}

.area-page-fv__features{
  margin-bottom:1.2cqw;
  margin-left:8.1826388889cqw;
  margin-top:1.6cqw; /* 従来の絶対配置（top:31.99cqw）とほぼ同じ位置になる値 */
  position:relative;
  width:40.5958333333cqw;
  z-index:3;
}

.area-page-fv__features-img{
  height:auto;
  width:100%;
}

.area-page-fv__achievement{
  aspect-ratio:1/1;
  position:absolute;
  right:1.3055555556cqw;
  top:1.4625cqw;
  width:15.3291666667cqw;
  z-index:4;
}

.area-page-fv__achievement-bg{
  height:100%;
  object-fit:contain;
  width:100%;
}

.area-page-fv__achievement-text{
  align-items:center;
  color:#04274f;
  display:flex;
  flex-direction:column;
  font-family:var(--font-family-noto-sans);
  font-size:1.8055555556cqw;
  font-weight:var(--font-weight-extrabold);
  inset:23.7% 25.31% 31.46%;
  justify-content:center;
  letter-spacing:0.0577em;
  line-height:1.27;
  position:absolute;
  text-align:center;
  white-space:nowrap;
}

.area-page-fv__achievement-last{
  transform:translateX(0.3em);
}

/* 実績バッジの行。親がflex縦積みのため<br>を使わず全行をblockのspanにする
   （<br>混じりだと匿名アイテム化で行間が不揃いになる）。
   地名の基準サイズは4文字でメダル白面ぴったりのため、
   区付き6文字以上は市と区で2行に改行（--stacked）、
   単独名は行の文字数別に縮小（テンプレート側で --lenN を付与）。
   em指定なので親のPC/SPサイズ切替へ自動追従し、メディアクエリ不要。 */
.area-page-fv__achievement-row{
  display:block;
}

.area-page-fv__achievement-text--stacked{
  font-size:1.4805cqw; /* 基準1.8055cqw×0.82。4行になる分ひと回り縮める */
  line-height:1.15;
}

.area-page-fv__achievement-row--len5{
  font-size:0.87em;
}

.area-page-fv__achievement-row--len6{
  font-size:0.8em;
  letter-spacing:0;
}

.area-page-fv__achievement-row--len7{
  font-size:0.7em;
  letter-spacing:0;
}

.area-page-fv__achievement-row--len8{
  font-size:0.62em;
  letter-spacing:0;
}

.area-page-fv__unit{
  bottom:1.8055555556cqw; /* 従来top:20.14cqwと同位置 */
  height:auto;
  left:67.2923611111cqw;
  position:absolute;
  width:29.6875cqw;
  z-index:5;
}

/* SP専用のユニット画像（Figma 246-493）。PCでは出さない（PCは絶対配置の__unitが担当）。 */
.area-page-fv__unit-sp{
  display:none;
}

.area-page-fv__lead-strong{
  color:var(--fv-lead-orange);
  font-size:2.2916666667cqw;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.0191em;
  line-height:1;
}

.area-page-fv__lead-note{
  color:#222;
  font-family:var(--font-family-base);
  font-size:1.0416666667cqw; /* 伸びるFV化に伴い縮小をやめ元の大きさへ（視認性。2026-09-02ユーザー要望） */
  font-weight:var(--font-weight-normal);
  letter-spacing:0.042em;
  line-height:1.6;
  margin-top:0.7cqw; /* 注記の上に少し余白（2026-09-02ユーザー要望） */
  /* 注記は市によって長さが大きく変わる（国の加算・条件の全文が付く）。
     折り返し幅は左のグレー背景域＝リード列に合わせ、はみ出た行数ぶんは
     FV全体が伸びて受け止める（__contentのコメント参照）。 */
  max-width:45cqw;
  white-space:normal;
}

.area-page-fv--ecocute .area-page-fv__staff{
  left:54.9743055556cqw;
  width:33.8631944444cqw; /* bottom:0（基本側）を継承。従来top:0.42cqwと同位置 */
}

.area-page-fv--ecocute .area-page-fv__badge-icon{
  background-image:url("/images/contents/area/common/area-page-fv-icon-pin-eco.svg");
}

.area-page-fv--ecocute .area-page-fv__badge-text{
  color:var(--main-eco-green);
}

.area-page-fv--ecocute .area-page-fv__title{
  margin-top:2.7423611111cqw;
}

.area-page-fv--ecocute .area-page-fv__title-row--1{
  font-size:2.50625cqw;
}

.area-page-fv--ecocute .area-page-fv__title-city{
  color:var(--main-eco-green);
  font-size:calc(4.6423611111cqw * var(--mza-city-scale, 1));
  letter-spacing:0.0253em;
}

/* エコは行1の固定文言「のエコキュート交換なら」がガスより長く、
   共通の倍率では「なら」が顔に届くため、エコだけ一段強く縮める。 */
.area-page-fv--ecocute.area-page-fv .area-page-fv__title--city-len6{
  --mza-city-scale:0.77;
}

.area-page-fv--ecocute.area-page-fv .area-page-fv__title--city-len7{
  --mza-city-scale:0.66;
}

.area-page-fv--ecocute.area-page-fv .area-page-fv__title--city-len8{
  --mza-city-scale:0.575;
}

.area-page-fv--ecocute .area-page-fv__title-lg{
  font-size:2.8194444444cqw;
}

.area-page-fv--ecocute .area-page-fv__title-nara{
  font-size:2.0361111111cqw;
}

.area-page-fv--ecocute .area-page-fv__title-tight{
  letter-spacing:-0.03em;
}

.area-page-fv--ecocute .area-page-fv__title-row--2{
  margin-top:1.7847222222cqw;
}

.area-page-fv--ecocute .area-page-fv__title-accent{
  color:var(--main-eco-green);
}

.area-page-fv--ecocute .area-page-fv__title-brand{
  margin-top:1.7409722222cqw;
}

.area-page-fv--ecocute .area-page-fv__lead{
  font-size:1.7361111111cqw;
  letter-spacing:0.0252em;
  line-height:1.32;
  margin-left:0;
  margin-top:1.7020833333cqw;
}

.area-page-housing{
  background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), #f1f9ff);
}

.area-page-housing__inner{
  margin-inline:auto;
  max-width:1040px;
  padding-block:60px;
  padding-inline:20px;
}

.area-page-housing .section-title{
  color:var(--text-heading);
}

.area-page-housing__head{
  text-align:center;
}

.area-page-housing__lead{
  color:var(--text-heading);
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-normal);
  line-height:1.36;
  margin-top:5px;
}

.area-page-housing__cards{
  display:grid;
  gap:10px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin-top:30px;
}

.area-page-housing__card{
  align-items:flex-start;
  background-color:var(--white);
  border-radius:10px;
  box-shadow:0 0 20px rgba(80, 85, 90, 0.2);
  display:flex;
  gap:19px;
  padding:15px;
}

.area-page-housing__card-img{
  aspect-ratio:5/6;
  border-radius:10px;
  flex-shrink:0;
  overflow:hidden;
  width:150px;
}

.area-page-housing__card-img img{
  height:100%;
  object-fit:cover;
  width:100%;
}

.area-page-housing__card-body{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:10px;
  min-width:0;
}

.area-page-housing__card-title{
  color:var(--housing-card-blue);
  font-family:var(--font-family-base);
  font-size:18px;
  font-weight:var(--font-weight-bold);
  line-height:1.33;
}

.area-page-housing__card-text{
  color:var(--text-heading);
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-normal);
  line-break:strict;
  line-height:1.5;
}

.area-page-install{
  background:var(--line-banner-bg), var(--white);
  padding-block:60px;
}

.area-page-install__inner{
  margin-inline:auto;
  max-width:1030px;
  padding-inline:20px;
}

.area-page-install .section-title{
  color:#222;
  line-height:1.4;
}

.area-page-install__card{
  background-color:var(--white);
  border-radius:4px;
  display:flex;
  gap:32px;
  margin-top:30px;
  padding:15px 16.23px 14.49px 14px;
}

.area-page-install__image{
  flex-shrink:0;
  height:auto;
  max-width:100%;
  width:231px;
}

.area-page-install__body{
  flex:1;
  margin-top:10.5px;
  min-width:0;
}

.area-page-install__text{
  color:var(--black);
  font-family:var(--font-family-base);
  font-size:18px;
  font-weight:var(--font-weight-normal);
  line-height:1.78;
}

.area-page-install__text-strong{
  color:var(--main-eco-green);
  display:inline;
  font-weight:var(--font-weight-bold);
}

.area-page-install__note{
  align-items:center;
  background-color:var(--install-note-bg);
  border-radius:8px;
  display:flex;
  gap:17.25px;
  margin-top:19.25px;
  min-height:82.25px;
  padding-inline:16.25px;
}

.area-page-install__note-icon{
  flex-shrink:0;
  height:46px;
  width:46px;
}

.area-page-install__note-text{
  color:var(--black);
  font-family:var(--font-family-base);
  font-size:19px;
  font-weight:var(--font-weight-normal);
  line-height:1.63;
}

.area-page-install__note-strong{
  color:var(--main-eco-green);
  display:block;
  font-size:20px;
  font-weight:var(--font-weight-bold);
  line-height:1.55;
}

.area-page-line-banner{
  padding-block:50px;
}

.area-page-line-banner__inner{
  margin-inline:auto;
  max-width:1019px;
  padding-inline:20px;
}

.area-page-line-banner__link{
  display:block;
  transition:opacity var(--duration-base) ease;
}

.area-page-line-banner__img{
  height:auto;
  width:100%;
}

.area-page-municipality{
  --municipality-accent:var(--mizu-blue);
  --municipality-title-border:#d3e4f7;
  --municipality-btn-border:#cfe0f3;
  --municipality-btn-bg:#f1f8fd;
  --municipality-btn-color:var(--main-navy-blue);
  background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), #f1f9ff);
  padding-block:60px;
}

.area-page-municipality__inner{
  display:flex;
  flex-direction:column;
  gap:30px;
  margin-inline:auto;
  max-width:1040px;
  padding-inline:20px;
}

.area-page-municipality .section-title{
  color:#222;
  line-height:1.13;
}

/* 説明文＋注意書きのまとまり（#70）。__inner の flex gap を挟まず、
   内部は通常フローで note の margin-top だけが両者の間隔を決める。 */
.area-page-municipality__intro{
  display:block;
}

.area-page-municipality__lead{
  color:#222;
  font-family:var(--font-family-base);
  font-size:13.5px;
  font-weight:var(--font-weight-regular);
  line-height:1.7;
  text-align:center;
}

.area-page-municipality__lead-strong{
  display:inline;
  font-weight:var(--font-weight-semibold);
}

.area-page-municipality__body{
  border-bottom:1px solid #e5ecf2;
}

.area-page-municipality__groups{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.area-page-municipality__group-title{
  border-bottom:2px solid var(--municipality-title-border);
  color:var(--municipality-accent);
  font-family:var(--font-family-base);
  font-size:15.5px;
  font-weight:var(--font-weight-semibold);
  line-height:1.7;
  padding-bottom:4.65px;
}

.area-page-municipality__list{
  display:grid;
  gap:8px;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  margin-top:8px;
  max-width:884.81px;
}

.area-page-municipality__item{
  display:flex;
}

.area-page-municipality__btn{
  background-color:var(--municipality-btn-bg);
  border:1px solid var(--municipality-btn-border);
  border-radius:6px;
  color:var(--municipality-btn-color);
  display:block;
  flex:1;
  font-family:var(--font-family-base);
  font-size:13.5px;
  font-weight:var(--font-weight-semibold);
  line-height:1.7;
  min-width:0;
  padding:8px 10px;
  transition:opacity var(--duration-base) ease;
}

.area-page-municipality__btn--current{
  background-color:#fff3e0;
  border-color:#f5a623;
  color:#9a5b00;
}

.area-page-municipality__btn--nolink{
  background-color:#f4f6f8;
  border:1px dashed #c5ced6;
  color:#666677;
  font-size:12.5px;
  font-weight:var(--font-weight-regular);
}

/* ガスのリンク無し自治体：リンク有りと同じ見た目のまま非クリック（先方依頼 2026-09-08 #70）。
   見た目はベースの __btn をそのまま使い、カーソルとhoverだけ非リンク挙動にする。 */
.area-page-municipality__btn--static{
  cursor:default;
}

.area-page-municipality__note{
  color:#666;
  font-family:var(--font-family-base);
  font-size:12.5px;
  font-weight:var(--font-weight-regular);
  line-height:1.7;
  /* 説明文（__lead）の補足として、中央寄せ・説明文との間隔を詰める（先方依頼 2026-09-08 #70）。
     一覧の上へ移動したため、説明文の直下にまとまって見える配置にする。 */
  margin-top:4px;
  margin-inline:auto;
  max-width:884.81px;
  text-align:center;
}

.area-page-municipality--ecocute{
  --municipality-accent:#0b7a4f;
  --municipality-title-border:#d3ecd0;
  --municipality-btn-border:#b5d9c5;
  --municipality-btn-bg:#e7f7ef;
  --municipality-btn-color:#0b5c40;
}

.area-page-reasons{
  background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), #f1f9ff);
  border-top:1px solid #d3d3d3;
  padding-block:60px;
}

.area-page-reasons__inner{
  margin-inline:auto;
  max-width:1060px;
  padding-inline:20px;
}

.area-page-reasons__list{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(4, 1fr);
  margin-top:30px;
}

.area-page-reasons__item{
  align-items:center;
  background-color:var(--white);
  border-radius:10px;
  box-shadow:0 0 10px rgba(80, 85, 90, 0.2);
  display:flex;
  gap:14px;
  padding:18px 14px;
}

.area-page-reasons__icon{
  flex-shrink:0;
  height:auto;
  width:56px;
}

.area-page-reasons__icon--accounting{
  width:46px;
}

.area-page-reasons__body{
  flex:1;
  min-width:0;
}

.area-page-reasons__title{
  color:var(--main-blue);
  font-family:var(--font-family-base);
  font-size:16px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.area-page-reasons__text{
  color:#000;
  font-family:var(--font-family-base);
  font-size:13px;
  font-weight:var(--font-weight-normal);
  line-height:1.62;
  margin-top:6px;
}

.area-page-selected{
  background:var(--line-banner-bg), var(--white);
  border-top:1px solid var(--line-border);
  padding-block:60px;
}

.area-page-selected__inner{
  margin-inline:auto;
  max-width:1040px;
  padding-inline:20px;
}

.area-page-selected__title{
  color:#222;
  font-family:var(--font-family-noto-sans);
  font-size:30px;
  font-weight:var(--font-weight-extrabold);
  letter-spacing:0.05em;
  line-height:1.1;
  margin-bottom:40px;
  text-align:center;
}

.area-page-selected__title-accent{
  color:var(--main-blue);
}

.area-page-selected__title-sub{
  font-size:20px;
}

.area-page-selected__pricing{
  margin-top:40px;
}

.area-page-selected__price-title{
  background-color:var(--white);
  border-left:5px solid var(--main-blue);
  color:var(--mizu-blue);
  font-family:var(--font-family-base);
  font-size:16px;
  font-weight:var(--font-weight-bold);
  line-height:1.7;
  padding:10px 14px 10px 19px;
}

.area-page-selected__table-wrap{
  margin-top:16px;
  overflow-x:auto;
}

.area-page-selected__table{
  background:var(--white);
  border-collapse:separate;
  border-spacing:0;
  min-width:1000px;
  table-layout:fixed;
  width:100%;
}

.area-page-selected__th{
  background:var(--mizu-blue);
  border-bottom:1px solid var(--table-border);
  border-right:1px solid var(--table-border);
  border-top:1px solid var(--table-border);
  color:var(--white);
  font-family:var(--font-family-inter);
  font-size:16px;
  font-weight:var(--font-weight-semibold);
  height:48px;
  text-align:center;
  white-space:nowrap;
}

.area-page-selected__th:first-child{
  border-left:1px solid var(--table-border);
  border-top-left-radius:10px;
}

.area-page-selected__th:last-child{
  border-top-right-radius:10px;
}

.area-page-selected__cell-type{
  border-bottom:1px solid var(--table-border);
  border-left:1px solid var(--table-border);
  border-right:1px solid var(--table-border);
  color:#222;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  height:59px;
  padding-inline:20px;
  text-align:left;
  white-space:nowrap;
}

.area-page-selected__icon{
  display:inline-block;
  height:auto;
  margin-right:10px;
  vertical-align:middle;
  width:30px;
}

.area-page-selected__cell{
  border-bottom:1px solid var(--table-border);
  border-right:1px solid var(--table-border);
  height:59px;
  text-align:center;
  white-space:nowrap;
}

.area-page-selected__price{
  color:#222;
  font-family:var(--font-family-inter);
  font-size:20px;
  font-weight:var(--font-weight-bold);
}

.area-page-selected__unit{
  color:#222;
  font-family:var(--font-family-inter);
  font-size:14px;
  font-weight:var(--font-weight-bold);
}

.area-page-selected__note{
  color:#666;
  font-family:var(--font-family-base);
  font-size:12px;
  font-weight:var(--font-weight-normal);
  line-height:1.7;
  margin-top:8px;
  text-align:right;
  text-indent:hanging 1em;
}

.area-page-selected__th--wrap{
  line-height:1;
}

.area-page-selected__th-sub{
  font-size:13px;
  line-height:1.23;
}

.area-page-selected__spec{
  color:#222;
  font-family:var(--font-family-inter);
  font-size:20px;
  font-weight:var(--font-weight-bold);
}

.area-page-selected__cell--highlight{
  background-color:#fef8e6;
}

.area-page-selected__cell--highlight .area-page-selected__price,
.area-page-selected__cell--highlight .area-page-selected__unit{
  color:#ff0000;
}

.area-page-selected__title-main{
  display:block;
  line-height:1.57;
}

.area-page-selected--ecocute .area-page-selected__title-accent{
  color:var(--main-eco-green);
}

.area-page-selected--ecocute .area-page-selected__title-sub{
  display:block;
  letter-spacing:0.075em;
  line-height:1.8;
}

.area-page-selected--ecocute .area-page-selected__pricing{
  padding-top:8px;
}

.area-page-selected--ecocute .area-page-selected__price-title{
  border-left-color:var(--main-eco-green);
  color:var(--main-eco-green);
  line-height:1.38;
  padding:10px 14px;
}

.area-page-selected--ecocute .area-page-selected__unit{
  margin-left:3px;
}

.area-page-selected--ecocute .area-page-selected__cell-type{
  font-family:var(--font-family-inter);
}

.area-page-selected--ecocute .area-page-selected__table-wrap{
  margin-top:9px;
}

.area-page-selected--ecocute .area-page-selected__th{
  background:var(--main-eco-green);
}

.area-page-selected--ecocute .area-page-selected__note{
  margin-top:6px;
}

.area-page-service__inner{
  margin-inline:auto;
  max-width:1165px;
  padding-block:60px;
  padding-inline:20px;
}

.area-page-service__head{
  text-align:center;
}

.area-page-service__lead{
  color:#000;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-normal);
  line-height:1.6;
  margin-top:5px;
}

.area-page-service__cards{
  grid-column-gap:7px;
  -moz-column-gap:7px;
       column-gap:7px;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  margin-inline:auto;
  margin-top:40px;
  max-width:1125px;
}

.area-page-service__card{
  align-items:center;
  background-color:var(--white);
  border-radius:10px;
  box-shadow:0 0 10px rgba(80, 85, 90, 0.2);
  display:flex;
  flex-direction:column;
  padding:15px;
}

.area-page-service__card--mansion{
  --accent:#005acf;
  --accent-text:#0059ce;
  --tint:#f4f7fd;
}

.area-page-service__card--gas{
  --accent:#fd6f1d;
  --accent-text:#fd6a02;
  --tint:#fef9f4;
}

.area-page-service__card--eco{
  --accent:#059548;
  --accent-text:#028539;
  --tint:#f7faf7;
}

.area-page-service__card--hybrid{
  --accent:#f5a902;
  --accent-text:#f5a701;
  --tint:#fefaf3;
}

.area-page-service__card-image{
  line-height:0;
  width:100%;
}

.area-page-service__card-image img{
  height:auto;
  width:100%;
}

.area-page-service__card-content{
  align-items:center;
  display:flex;
  flex-direction:column;
  width:100%;
}

.area-page-service__card-badge{
  background-color:var(--accent);
  border-radius:calc(infinity * 1px);
  color:var(--white);
  font-family:var(--font-family-base);
  font-size:13px;
  font-weight:var(--font-weight-bold);
  line-height:1.5;
  margin-top:8px;
  padding:3px 16px;
}

.area-page-service__card-title{
  color:var(--accent-text);
  font-family:var(--font-family-base);
  font-size:18px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
  margin-top:8px;
  text-align:center;
}

.area-page-service__card-body{
  color:#000;
  font-family:var(--font-family-base);
  font-size:13px;
  font-weight:var(--font-weight-semibold);
  line-height:1.5;
  margin-top:8px;
  text-align:center;
}

.area-page-service__card-checks{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
}

.area-page-service__card-check{
  align-items:center;
  background-color:var(--tint);
  border-radius:6px;
  display:flex;
  gap:6px;
  padding:7px 12px;
}

.area-page-service__card-check-icon{
  aspect-ratio:1/1;
  background-color:var(--accent);
  border-radius:calc(infinity * 1px);
  flex-shrink:0;
  position:relative;
  width:18px;
}
.area-page-service__card-check-icon::after{
  border-bottom:2px solid var(--white);
  border-left:2px solid var(--white);
  content:"";
  height:5px;
  left:4px;
  position:absolute;
  top:6px;
  transform:rotate(-50deg);
  width:9px;
}

.area-page-service__card-check-text{
  color:#000;
  font-family:var(--font-family-base);
  font-size:13px;
  font-weight:var(--font-weight-semibold);
  line-height:1.4;
}

.area-page-service__card-button{
  -webkit-text-decoration:none;
  align-items:center;
  background-color:var(--accent);
  border-radius:5px;
  display:flex;
  justify-content:center;
  margin-top:16px;
  max-width:250px;
  min-height:46px;
  padding:10px 32px;
  position:relative;
  text-decoration:none;
  transition:opacity var(--duration-base) ease;
  width:100%;
}
.area-page-service__card-button::after{
  border-right:2px solid var(--white);
  border-top:2px solid var(--white);
  content:"";
  height:8px;
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%) rotate(45deg);
  width:8px;
}

.area-page-service__card-button-text{
  color:var(--white);
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.area-page-service__points{
  background-color:var(--white);
  border-radius:10px;
  margin-inline:auto;
  margin-top:40px;
  max-width:700px;
  padding-block:16px;
}

.area-page-service__points-list{
  display:flex;
  justify-content:center;
}

.area-page-service__points-item{
  align-items:center;
  border-left:1px solid #e0e0e0;
  display:flex;
  gap:10px;
  justify-content:center;
  padding-inline:30px;
}

.area-page-service__points-item:first-child{
  border-left:none;
}

.area-page-service__points-icon{
  height:24px;
  width:auto;
}

.area-page-service__points-title{
  color:#1761cc;
  font-family:var(--font-family-base);
  font-size:16px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.area-page-service__points-desc{
  display:none;
}

.area-page-service__banner-link{
  display:block;
  margin-inline:auto;
  margin-top:50px;
  max-width:1019px;
  transition:opacity var(--duration-base) ease;
}

.area-page-service__banner-link--subsidy{
  grid-column-gap:28px;
  -moz-column-gap:28px;
  grid-row-gap:4px;
  align-items:center;
  background-color:#fefcfa;
  border:1px solid #e0e0e0;
  border-radius:10px;
       column-gap:28px;
  display:grid;
  grid-template-areas:"icon heading cta" "icon lead    cta";
  grid-template-columns:auto 1fr auto;
  max-width:1000px;
  padding:18px 28px;
  row-gap:4px;
}

.area-page-service__banner-icon{
  grid-area:icon;
  height:auto;
  width:130px;
}

.area-page-service__banner-heading{
  color:#0370cf;
  font-family:var(--font-family-base);
  font-size:24px;
  font-weight:var(--font-weight-bold);
  grid-area:heading;
  line-height:1.4;
}

.area-page-service__banner-lead{
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-normal);
  grid-area:lead;
  line-height:1.8;
}

.area-page-service__banner-cta{
  align-items:center;
  background-color:var(--main-orange);
  border-radius:8px;
  color:var(--white);
  display:flex;
  font-family:var(--font-family-base);
  font-size:16px;
  font-weight:var(--font-weight-bold);
  grid-area:cta;
  justify-content:center;
  line-height:1.4;
  min-height:50px;
  padding:12px 48px 12px 28px;
  position:relative;
}
.area-page-service__banner-cta::after{
  border-right:2px solid var(--white);
  border-top:2px solid var(--white);
  content:"";
  height:8px;
  position:absolute;
  right:24px;
  top:50%;
  transform:translateY(-50%) rotate(45deg);
  width:8px;
}

.area-page-subsidy{
  background:var(--line-banner-bg), var(--white);
  padding-block:60px;
}

.area-page-subsidy__inner{
  margin-inline:auto;
  max-width:1075px;
  padding-inline:20px;
}

.area-page-subsidy .section-title{
  color:var(--text-heading);
  font-family:var(--font-family-noto-sans);
  line-height:1;
}

.area-page-subsidy__title-main{
  display:block;
  line-height:34px;
}

.area-page-subsidy__title-year{
  display:block;
  font-size:20px;
  letter-spacing:0.075em;
  line-height:38px;
}

.area-page-subsidy__program{
  margin-inline:auto;
  margin-top:30px;
  max-width:1000px;
}

.area-page-subsidy__cards{
  list-style:none;
  margin:0;
  padding:0;
}

.area-page-subsidy__card{
  align-items:center;
  background-color:var(--white);
  border:1px solid var(--main-eco-green);
  border-radius:16px;
  column-gap:47px;
  display:flex;
  flex-wrap:wrap; /* 受付終了の案内（__closed）をカード内の全幅行として落とすため */
  overflow:hidden;
  padding:19px 29px;
  row-gap:10px; /* __closed行との間隔（横並び2列は折り返さないため通常は効かない） */
}

/* 受付終了の明示案内（設計書7章）。flexの3列目にならないよう全幅の行にする。 */
.area-page-subsidy__closed{
  color:var(--text-heading);
  flex-basis:100%;
  font-family:var(--font-family-base);
  font-size:13px;
}

/* 定型文カード（制度なし・未確認・確認中）。制度カードと違い右側に並べる表が
   最終確認日1行しか無く、350px幅で文が折り返されて不釣り合いだったため、
   文を全幅1行 → 最終確認日をその下に置く縦並びにする（2026-09-02 ユーザー要望）。 */
.area-page-subsidy__card--plain{
  align-items:flex-start;
  flex-direction:column;
  row-gap:12px;
}

.area-page-subsidy__card--plain .area-page-subsidy__card-left{
  gap:16px;
  width:100%;
}

.area-page-subsidy__card--plain .area-page-subsidy__spec{
  flex:none;
  width:auto;
}

/* 縦並びカードではラベル幅120pxの表組みが不要（最終確認日1行だけ）。
   「最終確認日 2026-06-15」が自然な間隔で並ぶようにする。 */
.area-page-subsidy__card--plain .area-page-subsidy__spec-label{
  width:auto;
}

.area-page-subsidy__card--plain .area-page-subsidy__spec-row{
  /* ラベル=Noto Sans JP・日付=Inter でフォントが違い、ボックス中央揃え（center）だと
     日付の字面が少し上に見える。文字のベースラインで揃える。 */
  align-items:baseline;
  gap:10px;
}

.area-page-subsidy__card--stacked{
  border-radius:0;
}

.area-page-subsidy__card--stacked:not(:first-child){
  margin-top:-1px;
}

.area-page-subsidy__card--stacked:first-child{
  border-radius:16px 16px 0 0;
}

.area-page-subsidy__card--stacked:last-child{
  border-radius:0 0 16px 16px;
}

.area-page-subsidy__card-left{
  display:flex;
  flex-direction:column;
  flex-shrink:0;
  gap:24px;
  max-width:100%;
  width:350px;
}

.area-page-subsidy__tags{
  align-items:center;
  display:flex;
  gap:8px;
}

.area-page-subsidy__tag{
  align-items:center;
  border-radius:4px;
  display:inline-flex;
  font-family:var(--font-family-base);
  font-size:12px;
  font-weight:var(--font-weight-bold);
  line-height:1.2;
  padding:4px 10px;
}

.area-page-subsidy__tag--area{
  background-color:var(--main-eco-green);
  color:var(--white);
}

.area-page-subsidy__tag--status{
  background-color:var(--subsidy-tag-bg);
  color:var(--subsidy-tag-text);
}

.area-page-subsidy__tag--closed{
  background-color:var(--subsidy-tag-closed-bg);
  color:var(--subsidy-tag-closed-text);
}

.area-page-subsidy__card--stacked .area-page-subsidy__tag{
  line-height:1.448;
  padding-block:3.81px;
}

.area-page-subsidy__card--stacked:first-child .area-page-subsidy__tag{
  line-height:1.2;
}

.area-page-subsidy__program-info{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.area-page-subsidy__program-name{
  color:var(--text-heading);
  font-family:var(--font-family-base);
  font-size:16px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.area-page-subsidy__program-link{
  -webkit-text-decoration:underline;
  color:var(--main-blue);
  font-family:var(--font-family-base);
  font-size:13px;
  font-weight:var(--font-weight-regular);
  line-height:1.2;
  text-decoration:underline;
  width:fit-content;
}

.area-page-subsidy__amount{
  background-color:var(--subsidy-amount-bg);
  border-radius:12px;
  display:flex;
  flex-direction:column;
  gap:2px;
  justify-content:center;
  padding:10px 20px;
}

.area-page-subsidy__amount-label{
  color:var(--main-eco-green);
  font-family:var(--font-family-base);
  font-size:12px;
  font-weight:var(--font-weight-bold);
  line-height:1.45;
}

.area-page-subsidy__amount-value{
  color:var(--main-eco-green);
  font-family:var(--font-family-inter);
  font-size:16px;
  font-weight:var(--font-weight-bold);
  line-height:1.21;
}

.area-page-subsidy__amount-value--jp{
  font-family:var(--font-family-base);
  line-height:1.448;
}

.area-page-subsidy__card--stacked .area-page-subsidy__amount{
  padding-block:9.62px;
}

.area-page-subsidy__spec{
  display:flex;
  flex:1;
  flex-direction:column;
  min-width:0;
}

/* 🔴 各マスの上下余白は均等にする（2026-09-02 ユーザー要望）。
   旧：下だけ15px＋親のgap6px＝境界線の上下が15px/6pxの非対称。
   新：各行が上下10.5pxずつ持つ（行間の合計21pxは従来と同じ）。
   先頭行の上・末尾行の下は詰めて、カード外形は変えない。 */
.area-page-subsidy__spec-row{
  /* ラベル=Noto Sans JP(行送り1.42)・値=Inter(1.21)で行送りが違い、
     既定のstretchだと値の字面が少し上に見える。ベースラインで揃える
     （複数行の値も1行目の字面がラベルと揃う）。 */
  align-items:baseline;
  display:flex;
  gap:16px;
  padding-block:10.5px;
}

.area-page-subsidy__spec-row:first-child{
  padding-top:0;
}

.area-page-subsidy__spec-row:last-child{
  padding-bottom:0;
}

.area-page-subsidy__spec-row:not(:last-child){
  border-bottom:1px solid var(--line-border);
}

.area-page-subsidy__spec-label{
  color:var(--subsidy-label);
  flex-shrink:0;
  font-family:var(--font-family-base);
  font-size:12px;
  font-weight:var(--font-weight-bold);
  line-height:1.42;
  width:120px;
}

.area-page-subsidy__spec-value{
  color:var(--text-heading);
  flex:1;
  font-family:var(--font-family-inter);
  font-size:12px;
  font-weight:var(--font-weight-regular);
  line-height:1.21;
  min-width:0;
}

.area-page-subsidy__spec-value--wide{
  line-height:1.5;
}

.area-page-subsidy__note{
  color:var(--text-heading);
  font-family:var(--font-family-base);
  font-size:12px;
  font-weight:var(--font-weight-regular);
  line-height:1.17;
  margin-top:-1px;
  padding-top:10px;
}

.area-page-subsidy__flow{
  background-color:var(--subsidy-panel-bg);
  border-radius:12px;
  margin-top:30px;
  padding:3.15px 19px 2.11px 18.3px;
}

.area-page-subsidy__flow-title{
  color:var(--main-eco-green);
  font-family:var(--font-family-base);
  font-size:19.7px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
  text-align:center;
}

.area-page-subsidy__steps{
  align-items:stretch;
  display:flex;
  gap:29px;
  margin-top:24.45px;
  padding-inline:4.3px 11.5px;
  padding-top:9.5px;
}

.area-page-subsidy__step{
  display:flex;
  flex:1;
  position:relative;
}

.area-page-subsidy__step:not(:last-child)::after{
  border-right:4px solid var(--main-eco-green);
  border-top:4px solid var(--main-eco-green);
  content:"";
  height:12px;
  position:absolute;
  right:-20.5px;
  top:81.4px;
  transform:rotate(45deg);
  width:12px;
}

.area-page-subsidy__step-card{
  align-items:center;
  background-color:var(--white);
  border:1px solid var(--subsidy-card-border);
  border-radius:12px;
  display:flex;
  flex:1;
  flex-direction:column;
  min-height:199px;
  padding:31px 8px 5px;
  position:relative;
}

.area-page-subsidy__step--highlight .area-page-subsidy__step-card{
  background-color:var(--subsidy-highlight-bg);
  border-color:var(--subsidy-highlight-border);
}

.area-page-subsidy__step-badge{
  align-items:center;
  aspect-ratio:1/1;
  background-color:var(--main-eco-green);
  border-radius:calc(infinity * 1px);
  color:var(--white);
  display:flex;
  font-family:var(--font-family-noto-sans);
  font-size:15px;
  font-weight:var(--font-weight-bold);
  justify-content:center;
  left:50%;
  line-height:1;
  position:absolute;
  top:-10.5px;
  translate:-50% 0;
  width:30px;
}

.area-page-subsidy__step-bubble{
  background-color:var(--subsidy-orange);
  border-radius:6px;
  color:var(--white);
  font-family:var(--font-family-base);
  font-size:12px;
  font-weight:var(--font-weight-bold);
  line-height:1.2;
  padding:6px 10px;
  position:absolute;
  right:-71.5px;
  top:-35px;
  white-space:nowrap;
}

.area-page-subsidy__step-bubble::after{
  border-right:10px solid transparent;
  border-top:8px solid var(--subsidy-orange);
  bottom:-7px;
  content:"";
  height:0;
  left:12px;
  position:absolute;
  width:0;
}

.area-page-subsidy__step-icon{
  height:60px;
  width:60px;
}

.area-page-subsidy__step-title{
  color:var(--text-heading);
  font-family:var(--font-family-base);
  font-size:16px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
  margin-top:6px;
  text-align:center;
}

.area-page-subsidy__step-desc{
  color:var(--text-body);
  font-family:var(--font-family-base);
  font-size:14.3px;
  font-weight:var(--font-weight-normal);
  line-height:1.6;
  margin-top:8px;
  text-align:center;
}

.area-page-subsidy__step--highlight .area-page-subsidy__step-title{
  color:var(--main-eco-green);
}

.area-page-subsidy__step--highlight .area-page-subsidy__step-desc{
  color:var(--subsidy-orange);
}

.area-page-subsidy__cta{
  align-items:flex-start;
  background-color:var(--subsidy-cta-bg);
  border-radius:12px;
  display:flex;
  gap:11.2px;
  margin-top:26.6px;
  min-height:122.3px;
  padding-inline:14.3px 18.2px;
}

.area-page-subsidy__cta-staff{
  align-self:flex-end;
  flex-shrink:0;
  height:122px;
  width:100px;
}

.area-page-subsidy__cta-body{
  flex:1;
  margin-top:26.3px;
  min-width:0;
}

.area-page-subsidy__cta-title{
  color:var(--main-eco-green);
  font-family:var(--font-family-base);
  font-size:19.6px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.area-page-subsidy__cta-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12.4px;
  padding-left:4.7px;
}

.area-page-subsidy__cta-chip{
  align-items:center;
  background-color:var(--white);
  border-radius:8px;
  display:flex;
  gap:6px;
  padding:11px 10px;
}

.area-page-subsidy__chip-check{
  aspect-ratio:1/1;
  background-color:var(--main-eco-green);
  border-radius:calc(infinity * 1px);
  display:block;
  flex-shrink:0;
  position:relative;
  width:17px;
}

.area-page-subsidy__chip-check::after{
  border-bottom:2px solid var(--white);
  border-left:2px solid var(--white);
  content:"";
  height:4px;
  left:4px;
  position:absolute;
  top:5.5px;
  transform:rotate(-50deg);
  width:8px;
}

.area-page-subsidy__chip-text{
  color:var(--text-heading);
  font-family:var(--font-family-base);
  font-size:14.3px;
  font-weight:var(--font-weight-normal);
  line-height:1.4;
}

.area-page-subsidy__cta-actions{
  display:flex;
  flex-direction:column;
  flex-shrink:0;
  gap:7.9px;
  margin-top:19.9px;
  max-width:100%;
  width:256.6px;
}

.area-page-subsidy__cta-btn{
  align-items:center;
  border-radius:8px;
  display:flex;
  gap:22px;
  min-height:41.3px;
  padding-inline:17px;
  transition:opacity 0.3s ease;
}

.area-page-subsidy__cta-btn--line{
  background-color:var(--subsidy-line-green);
  padding-right:41px;
}

.area-page-subsidy__cta-btn--quote{
  background-color:var(--subsidy-orange);
  padding-inline:21px;
}

.area-page-subsidy__cta-btn-icon{
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  display:block;
  flex-shrink:0;
}

.area-page-subsidy__cta-btn--line .area-page-subsidy__cta-btn-icon{
  background-image:url("/images/contents/area/common/area-page-cta-icon-line.svg");
  height:42px;
  width:42px;
}

.area-page-subsidy__cta-btn--quote .area-page-subsidy__cta-btn-icon{
  background-image:url("/images/contents/area/common/area-page-subsidy-icon-calc.webp");
  height:34px;
  width:26px;
}

.area-page-subsidy__cta-btn-text{
  color:var(--white);
  font-family:var(--font-family-base);
  font-size:16px;
  font-weight:var(--font-weight-bold);
  line-height:1.4;
}

.area-page-subsidy .area-page-flow__banner{
  margin-inline:auto;
  margin-top:30px;
  max-width:1000px;
  min-height:69px;
}

.area-page-warranty{
  background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), #f1f9ff);
  padding-block:60px;
}

.area-page-warranty__inner{
  margin-inline:auto;
  max-width:1040px;
  padding-inline:20px;
}

.area-page-warranty__head{
  text-align:center;
}

.area-page-warranty__lead{
  color:#000;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-bold);
  line-height:1.71;
  margin-top:13px;
}

.area-page-warranty__cards{
  display:flex;
  gap:28px;
  margin-inline:auto;
  margin-top:35px;
  max-width:1000px;
  position:relative;
}

.area-page-warranty__card{
  background-image:linear-gradient(-45deg, #fff 25%, #F3F9FE 25%, #F3F9FE 50%, #fff 50%, #fff 75%, #F3F9FE 75%, #F3F9FE);
  background-size:30px 30px;
  border:4px solid #0374d2;
  border-radius:15px;
  display:flex;
  flex:1;
  flex-direction:column;
  min-height:380px;
  min-width:0;
  padding:30px;
}

.area-page-warranty__card-visual{
  align-items:flex-end;
  display:flex;
  gap:8px;
  justify-content:center;
}

.area-page-warranty__card-img{
  height:auto;
  max-height:200px;
  max-width:49%;
  width:auto;
}

.area-page-warranty__card-text{
  color:#000;
  font-family:var(--font-family-base);
  font-size:18px;
  font-weight:var(--font-weight-bold);
  line-height:1.5;
  margin-top:auto;
  padding-top:24px;
}

.area-page-warranty__card-marker{
  -webkit-box-decoration-break:clone;
  background:linear-gradient(transparent 50%, rgba(255, 214, 0, 0.4) 50%);
  box-decoration-break:clone;
  display:inline;
}

.area-page-warranty__plus{
  background-image:url("/images/contents/area/common/area-page-warranty-plus.svg");
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  height:88px;
  left:50%;
  position:absolute;
  top:50%;
  transform:translate(-50%, -50%);
  width:88px;
  z-index:1;
}

.area-page-warranty__points{
  display:flex;
  gap:20px;
  margin-inline:auto;
  margin-top:50px;
  max-width:1000px;
}

.area-page-warranty__point{
  align-items:center;
  display:flex;
  flex:1;
  flex-direction:column;
  min-width:0;
}

.area-page-warranty__point-title{
  align-items:center;
  color:var(--main-blue);
  display:flex;
  font-family:var(--font-family-base);
  font-size:20px;
  font-weight:var(--font-weight-extrabold);
  gap:36px;
  letter-spacing:0.05em;
  line-height:1.35;
  text-align:center;
  white-space:nowrap;
  width:100%;
}
.area-page-warranty__point-title::before, .area-page-warranty__point-title::after{
  border-bottom:1px solid var(--main-blue);
  border-top:1px solid var(--main-blue);
  content:"";
  flex-grow:1;
  height:4px;
}

.area-page-warranty__point-img-wrap{
  align-items:center;
  display:flex;
  justify-content:center;
  margin-top:30px;
  min-height:280px;
  width:100%;
}

.area-page-warranty__point-img{
  height:auto;
  max-width:100%;
  width:auto;
}

.area-page-warranty__point-img--cost{
  width:67%;
}

.area-page-warranty__point-img--satisfaction{
  width:56%;
}

.area-page-warranty__point-body{
  margin-top:24px;
  max-width:391px;
  width:100%;
}

.area-page-warranty__point-text{
  color:#000;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-normal);
  line-height:1.71;
}

.area-page-warranty__point-link{
  -webkit-text-decoration:none;
  align-items:center;
  color:var(--main-navy-blue);
  display:inline-flex;
  font-family:var(--font-family-base);
  font-size:14px;
  font-weight:var(--font-weight-normal);
  gap:6px;
  line-height:1.71;
  margin-top:10px;
  text-decoration:none;
  transition:opacity var(--duration-base) ease;
}

.area-page-warranty__point-link-icon{
  background-image:url("/images/contents/area/common/area-page-warranty-link-icon.svg");
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  flex-shrink:0;
  height:14px;
  width:14px;
}

.section-title{
  color:#000;
  font-family:var(--font-family-base);
  font-size:30px;
  font-weight:var(--font-weight-extrabold);
  letter-spacing:0.05em;
  line-height:1.57;
  text-align:center;
}

.section-title__accent{
  color:var(--main-blue);
  display:inline;
}

.section-title--ecocute .section-title__accent{
  color:var(--main-eco-green);
}

.section-title--small{
  font-size:26px;
}

@media (min-width: 768px){
  .inner-overflow{
    min-width:1100px;
  }
}

@media screen and (min-width: 768px){
  .u-desktop{
    display:block;
  }

  .u-mobile{
    display:none;
  }

  .u-desktop-inline{
    display:inline;
  }

  .u-mobile-inline{
    display:none;
  }
}

@media (max-width: 767px){
  :root{
    --max-width:500px;
  }

  .inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .text-ls-neg-01_sp{
    display:inline;
    letter-spacing:-0.1em;
  }

  .text-ls-neg-03_sp{
    display:inline;
    letter-spacing:-0.3em;
  }

  .dot-blue__char::after{
    top:2px;
  }

  .area-page-about{
    padding-block:40px;
  }

  .area-page-about__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-about__list{
    gap:10px;
    grid-template-columns:1fr;
    margin-top:24px;
    padding-top:0;
  }

  .area-page-about__item{
    min-height:0;
    padding:14px;
  }

  .area-page-about__icon{
    height:60px;
    width:60px;
  }

  .area-page-about__body{
    margin-left:12px;
    padding-left:13px;
  }

  .area-page-about__body::before{
    height:100%;
  }

  .area-page-about__title{
    font-size:min(18px, 1800 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-about__text{
    font-size:min(14px, 1400 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-center{
    padding-block:40px;
  }

  .area-page-center__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-center__about{
    flex-direction:column;
    gap:24px;
  }

  .area-page-center__cards{
    gap:8px;
  }

  .area-page-center__card{
    padding:10px;
  }

  .area-page-center__card-title{
    font-size:min(14px, 1400 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-center__card-text{
    font-size:min(11px, 1100 / var(--cq-ref-mobile) * 1cqi);
    padding-right:54px;
  }

  .area-page-center__card-icon{
    gap:2px;
    right:8px;
    width:50px;
  }

  .area-page-center__card-icon-img{
    width:35px;
  }

  .area-page-center__card-icon-label{
    font-size:min(8px, 800 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-center__staff{
    width:100%;
  }

  .area-page-center__staff-caption{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-center__office{
    align-items:flex-start;
    gap:12px;
  }

  .area-page-center__map{
    width:130px;
  }

  .area-page-center__table-row{
    flex-direction:column;
  }

  .area-page-center__table-head{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
    padding:8px;
    width:100%;
  }

  .area-page-center__table-cell{
    font-size:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
    padding:8px 10px;
  }

  .area-page-construction{
    background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), rgba(241, 249, 255, 0.5764705882));
    padding-block:40px;
  }

  .area-page-construction__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-construction__lead{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
    margin-top:10px;
  }

  .area-page-construction__table{
    flex-direction:column;
    gap:16px;
  }

  .area-page-construction__table::before{
    display:none;
  }

  .area-page-construction__panel{
    padding:12px;
  }

  .area-page-construction__panel-icon{
    height:24px;
    width:24px;
  }

  .area-page-construction__panel-title{
    font-size:min(16px, 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-construction__panel-list{
    grid-template-columns:1fr;
  }

  .area-page-construction__panel-item{
    padding:8px 12px;
  }

  .area-page-construction__panel-img-wrap{
    min-width:64px;
  }

  .area-page-construction__panel-img{
    height:48px;
  }

  .area-page-construction__panel-num{
    font-size:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
    height:20px;
    width:20px;
  }

  .area-page-construction__panel-text{
    font-size:min(14px, 1400 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-construction__note::before{
    height:32px;
    width:32px;
  }

  .area-page-construction__note{
    background-color:#eef5fe;
    border-radius:5px;
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
    gap:12px;
    justify-content:flex-start;
    line-height:1.6;
    margin-top:20px;
    padding:6px 18px;
    text-align:left;
  }

  .area-page-coverage{
    background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), rgba(241, 249, 255, 0.5764705882));
    padding-block:40px;
  }

  .area-page-coverage__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-coverage__body{
    flex-direction:column;
  }

  .area-page-coverage__list{
    padding:18px 16px;
  }

  .area-page-coverage__list-title{
    font-size:min(18px, 1800 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-coverage__list-grid{
    gap:8px;
    grid-template-columns:repeat(3, 1fr);
  }

  .area-page-coverage__list-item{
    font-size:min(14px, 1400 / var(--cq-ref-mobile) * 1cqi);
    padding:9px 4px;
  }

  .area-page-coverage__list-note{
    font-size:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
    margin-top:16px;
  }

  .area-page-cta__inner{
    align-items:center;
    flex-direction:column;
    gap:17px;
    max-width:400px;
    padding-block:44px;
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-cta__btn{
    flex:none;
    max-width:330px;
    width:100%;
  }

  .area-page-cta__btn--tel .area-page-cta__btn-icon{
    left:21px;
  }

  .area-page-cta__btn--line .area-page-cta__btn-icon{
    left:10px;
  }

  .area-page-cta__btn--mail .area-page-cta__btn-icon{
    left:20px;
  }

  .area-page-flow{
    padding-block:40px;
  }

  .area-page-flow__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-flow__title{
    font-size:min(24px, 2400 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-flow__steps{
    align-items:center;
    flex-direction:column;
    gap:40px;
    margin-top:20px;
    padding-inline:20px;
    padding-top:20px;
  }

  .area-page-flow__step{
    flex-direction:column;
    max-width:320px;
    width:100%;
  }

  .area-page-flow__step:not(:last-child)::after{
    margin-left:0;
    margin-top:8px;
    transform:rotate(135deg);
  }

  .area-page-flow__card{
    max-width:320px;
    min-height:180px;
    padding-top:26px;
    width:100%;
  }

  .area-page-flow__banner{
    flex-direction:column;
    gap:12px;
    padding:16px;
  }

  .area-page-flow__banner-gap{
    display:none;
  }

  .area-page-flow__banner-access{
    flex-shrink:1;
    text-align:center;
    white-space:normal;
  }

  .area-page-flow__banner-pill{
    flex-shrink:1;
    max-width:100%;
    padding:10px 15px;
    text-align:center;
    white-space:normal;
  }

  .area-page-fv__inner{
    aspect-ratio:375/487;
  }

  .area-page-fv__staff{
    bottom:-0.3833333333cqw; /* 従来top:53.95cqwと同位置（伸びても足元基準） */
    left:46.7146666667cqw;
    width:67.9466666667cqw;
  }

  .area-page-fv__waterheater{
    bottom:18.24cqw; /* 従来top:89.95cqwと同位置 */
    left:5.6cqw;
    width:46.0826666667cqw;
  }

  /* 🔴 SPもPCと同じ「伸びる」フロー配置（2026-09-03 ユーザー要望）。
     注記を人物の手前（41cqw）で折り返すと長文の市で行数が増え、
     固定top:114.6cqwの特長アイコン帯と衝突する（横浜市10行で実測）ため、
     アイコン帯も注記の下に続くフローへ変更。スタッフ等は下端基準。 */
  .area-page-fv__content{
    padding-left:5.5066666667cqw;
    padding-top:6.9733333333cqw;
    /* 🔴 本文が短いページ（ガスの大半）でも、後続の特長アイコン帯が設計位置
       （従来top:114.6cqw＝margin-top:4cqwを引いて本文下端110.6cqw）より上へ
       浮かないようにする下限。下端基準で絶対配置の給湯器画像
       （top:89.95〜111.6cqw相当）とアイコン帯が重なる崩れの対策
       （iPhone SE実機で発見 2026-09-07）。長い注記のページは自然高さが
       これを超えるため、従来どおり伸びる。 */
    min-height:110.6266666667cqw;
  }

  .area-page-fv__badge{
    border-width:0.1546666667cqw;
    gap:0.776cqw;
    padding:1.6453333333cqw 2.9653333333cqw;
  }

  .area-page-fv__badge-icon{
    height:3.4666666667cqw;
    width:3.4666666667cqw;
  }

  .area-page-fv__badge-text{
    font-size:2.6426666667cqw;
  }

  .area-page-fv__title{
    margin-top:4.5333333333cqw;
  }

  .area-page-fv__title-seg{
    display:block;
  }

  .area-page-fv__title-seg + .area-page-fv__title-seg{
    margin-top:3.9333333333cqw;
  }

  .area-page-fv__title-row--1{
    font-size:5.7893333333cqw;
  }

  .area-page-fv__title-row--2{
    font-size:5.352cqw;
    margin-top:2.6133333333cqw;
  }

  .area-page-fv__title-city{
    font-size:calc(11.5786666667cqw * var(--mza-city-scale, 1));
  }

  /* SPの縮小率はPCと別に持つ（エコ・ガス同サイズなので共通）。
     🔴 基準は右上の実績メダル（left:約72cqw・H1の1行目と縦位置が重なる）——
     「[地名]の」のセグメントがメダルの手前で終わる値にする。
     旧値（7文字まで原寸・8文字0.92）は画面幅だけを見ておりメダルとの重なりを
     見落としていた（さいたま市浦和区で実測。2026-09-03）。 */
  .area-page-fv__title--city-len6,
  .area-page-fv--ecocute.area-page-fv .area-page-fv__title--city-len6{
    --mza-city-scale:0.85;
  }

  .area-page-fv__title--city-len7,
  .area-page-fv--ecocute.area-page-fv .area-page-fv__title--city-len7{
    --mza-city-scale:0.73;
  }

  .area-page-fv__title--city-len8,
  .area-page-fv--ecocute.area-page-fv .area-page-fv__title--city-len8{
    --mza-city-scale:0.64;
  }

  .area-page-fv__title-lg{
    font-size:7.192cqw;
    letter-spacing:0;
  }

  .area-page-fv__title-nara{
    font-size:5.1946666667cqw;
    letter-spacing:0;
  }

  .area-page-fv__title-num{
    font-size:7.5253333333cqw;
  }

  .area-page-fv__title-brand{
    font-size:9.8266666667cqw;
    letter-spacing:0;
    margin-left:-1.6cqw;
    margin-top:3.3333333333cqw;
  }

  .area-page-fv__lead{
    font-size:3.7333333333cqw;
    line-height:1.7;
    margin-left:0;
    margin-top:3.3333333333cqw;
  }

  .area-page-fv__features{
    margin:4cqw 0 3.6cqw 5.072cqw; /* 従来の固定top:114.6cqw相当の見た目になる間隔 */
    width:89.8026666667cqw;
  }

  .area-page-fv__achievement{
    right:2.104cqw;
    top:7.24cqw;
    width:25.9253333333cqw;
  }

  .area-page-fv__achievement-text{
    font-size:3.0533333333cqw;
  }

  .area-page-fv__achievement-text--stacked{
    font-size:2.5037cqw; /* 基準3.0533cqw×0.82（PC側の--stackedと同率） */
  }

  .area-page-fv__unit{
    display:none;
  }

  .area-page-fv__unit-sp{
    display:block;
    height:auto;
    margin-top:3cqw;
    width:46.0826666667cqw; /* ガスSPの給湯器画像と同じ幅感（Figma 246-493） */
  }

  .area-page-fv__lead-strong{
    font-size:6.6666666667cqw;
    letter-spacing:0.0252em;
    line-height:1.32;
  }

  .area-page-fv__lead-tail{
    font-size:6.6666666667cqw;
    letter-spacing:0.0252em;
    line-height:1.32;
  }

  .area-page-fv__lead-note{
    font-size:2.6666666667cqw;
    letter-spacing:0.03em;
    line-height:1.5; /* 折り返し対応（長い注記が複数行になるため1では行が重なる） */
    margin-top:0.84cqw;
    /* SPも人物にかからない幅で折り返す（2026-09-03 ユーザー要望・同日50cqwへ調整）。
       注記が短形式（※{日付}時点・{一文}）になったため、スタッフ画像の
       左端（46.71cqw〜。人物の実体はさらに右）へ少し重なる程度の50cqwで
       ゆとりを持たせる。増えた行はフロー配置で下へ伸びる。 */
    max-width:50cqw;
  }

  .area-page-fv--ecocute .area-page-fv__staff{
    bottom:-0.3833333333cqw;
    left:46.7146666667cqw;
    width:67.9466666667cqw;
  }

  .area-page-fv--ecocute .area-page-fv__title{
    margin-top:4.5226666667cqw;
  }

  .area-page-fv--ecocute .area-page-fv__title-row--1{
    font-size:5.7893333333cqw;
  }

  .area-page-fv--ecocute .area-page-fv__title-city{
    font-size:calc(11.5786666667cqw * var(--mza-city-scale, 1));
    letter-spacing:0.0234em;
  }

  .area-page-fv--ecocute .area-page-fv__title-lg{
    font-size:7.192cqw;
  }

  .area-page-fv--ecocute .area-page-fv__title-nara{
    font-size:5.1946666667cqw;
  }

  .area-page-fv--ecocute .area-page-fv__title-tight{
    letter-spacing:0;
  }

  .area-page-fv--ecocute .area-page-fv__title-row--2{
    font-size:5.3333333333cqw;
    letter-spacing:0;
    margin-top:3.7493333333cqw;
  }

  .area-page-fv--ecocute .area-page-fv__title-brand{
    margin-left:-1.0533333333cqw;
    margin-top:3.5786666667cqw;
  }

  .area-page-fv--ecocute .area-page-fv__lead{
    font-size:4.8cqw;
    letter-spacing:0.035em;
    line-height:1.83;
    margin-top:1.6426666667cqw;
  }

  .area-page-fv--ecocute .area-page-fv__features{
    margin-left:5.3333333333cqw;
  }

  .area-page-housing__inner{
    max-width:var(--max-width);
    padding-block:40px;
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-housing__lead{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
    line-height:1.6;
  }

  .area-page-housing__cards{
    grid-template-columns:1fr;
    margin-top:24px;
  }

  .area-page-housing__card{
    gap:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
    padding:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-housing__card-img{
    width:min(110px, 11000 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-housing__card-body{
    gap:min(8px, 800 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-housing__card-title{
    font-size:min(16px, 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-housing__card-text{
    font-size:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
    line-height:1.7;
  }

  .area-page-install{
    padding-block:40px;
  }

  .area-page-install__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-install__card{
    align-items:center;
    flex-direction:column;
    gap:20px;
    margin-top:24px;
    padding:16px;
  }

  .area-page-install__image{
    max-width:231px;
    width:100%;
  }

  .area-page-install__body{
    margin-top:0;
    width:100%;
  }

  .area-page-install__text{
    font-size:min(15px, 1500 / var(--cq-ref-mobile) * 1cqi);
    line-height:1.8;
  }

  .area-page-install__note{
    gap:12px;
    margin-top:16px;
    min-height:0;
    padding:14px 12px;
  }

  .area-page-install__note-icon{
    height:36px;
    width:36px;
  }

  .area-page-install__note-text{
    font-size:min(14px, 1400 / var(--cq-ref-mobile) * 1cqi);
    line-height:1.7;
  }

  .area-page-install__note-strong{
    font-size:min(15px, 1500 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-line-banner__inner{
    max-width:500px;
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-municipality{
    background-image:linear-gradient(to bottom, rgba(241, 249, 255, 0), rgba(241, 249, 255, 0.5764705882));
    padding-block:40px;
  }

  .area-page-municipality__inner{
    gap:20px;
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-municipality__lead{
    font-size:min(14px, 1400 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-municipality__group-title{
    font-size:min(15px, 1500 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-municipality__list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    max-width:none;
  }

  .area-page-municipality__btn{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
    padding:11px 10px;
  }

  .area-page-municipality__btn--nolink{
    font-size:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-municipality__note{
    font-size:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-reasons{
    padding-block:40px;
  }

  .area-page-reasons__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-reasons__list{
    gap:10px;
    grid-template-columns:1fr;
    margin-top:24px;
  }

  .area-page-reasons__item{
    padding:14px 16px;
  }

  .area-page-reasons__icon{
    width:48px;
  }

  .area-page-reasons__icon--accounting{
    width:38px;
  }

  .area-page-reasons__title{
    font-size:min(15px, 1500 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-reasons__text{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
    margin-top:4px;
  }

  .area-page-selected{
    padding-block:40px;
  }

  .area-page-selected__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-selected__title{
    font-size:min(24px, 2400 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-selected__title-sub{
    font-size:min(16px, 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-selected__table{
    min-width:850px;
  }

  .area-page-selected__note{
    text-align:left;
  }

  .area-page-selected__spec{
    font-size:18px;
  }

  .area-page-service__inner{
    max-width:var(--max-width);
    padding-block:40px;
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-service__lead{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-service__cards{
    grid-template-columns:1fr;
    margin-top:28px;
    max-width:500px;
    row-gap:10px;
  }

  .area-page-service__card{
    align-items:flex-start;
    flex-direction:row;
    gap:6px;
    padding:12px 5px;
  }

  .area-page-service__card-image{
    flex-shrink:0;
    width:130px;
  }

  .area-page-service__card-content{
    align-items:flex-start;
    flex:1;
    min-width:0;
  }

  .area-page-service__card-badge{
    display:none;
  }

  .area-page-service__card-title{
    font-size:min(16px, 1600 / var(--cq-ref-mobile) * 1cqi);
    margin-top:0;
    text-align:left;
  }

  .area-page-service__card-body{
    font-size:min(11px, 1100 / var(--cq-ref-mobile) * 1cqi);
    margin-top:6px;
    text-align:left;
  }

  .area-page-service__card-checks{
    align-self:auto;
    flex-direction:row;
    flex-wrap:wrap;
    gap:6px;
    margin-top:8px;
  }

  .area-page-service__card-check{
    padding:2px 10px 2px 5px;
  }

  .area-page-service__card-check-icon::after{
    border-bottom:1px solid var(--white);
    border-left:1px solid var(--white);
    height:3px;
    left:4px;
    top:4px;
    width:6px;
  }

  .area-page-service__card-check-icon{
    width:13px;
  }

  .area-page-service__card-check-text{
    font-size:min(11px, 1100 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-service__card-button{
    margin-top:12px;
    max-width:none;
    min-height:10px;
    padding:6px 16px;
  }

  .area-page-service__card-button::after{
    height:7px;
    width:7px;
  }

  .area-page-service__card-button-text{
    font-size:min(10px, 1000 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-service__points{
    box-shadow:0 0 10px rgba(80, 85, 90, 0.2);
    margin-top:10px;
    padding:16px 8px;
  }

  .area-page-service__points-item{
    flex:1;
    flex-direction:column;
    gap:4px;
    padding-inline:4px;
  }

  .area-page-service__points-icon{
    height:30px;
  }

  .area-page-service__points-title{
    font-size:min(10px, 1000 / var(--cq-ref-mobile) * 1cqi);
    text-align:center;
  }

  .area-page-service__points-desc{
    color:#000;
    display:block;
    font-family:var(--font-family-base);
    font-size:min(10px, 1000 / var(--cq-ref-mobile) * 1cqi);
    font-weight:var(--font-weight-normal);
    line-height:1.5;
    margin-top:2px;
    text-align:center;
  }

  .area-page-service__banner-link{
    margin-top:10px;
  }

  .area-page-service__banner-link--subsidy{
    -moz-column-gap:12px;
         column-gap:12px;
    grid-template-areas:"icon heading" "icon lead" "cta  cta";
    grid-template-columns:auto 1fr;
    padding:16px 8px;
    row-gap:6px;
  }

  .area-page-service__banner-icon{
    width:88px;
  }

  .area-page-service__banner-heading{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-service__banner-lead{
    font-size:min(10px, 1000 / var(--cq-ref-mobile) * 1cqi);
    line-height:1.7;
  }

  .area-page-service__banner-cta{
    font-size:min(15px, 1500 / var(--cq-ref-mobile) * 1cqi);
    margin-top:6px;
    min-height:46px;
    padding:12px 40px 12px 20px;
  }

  .area-page-service__banner-cta::after{
    right:18px;
  }

  .area-page-subsidy{
    padding-block:40px;
  }

  .area-page-subsidy__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-subsidy__title-main{
    line-height:1.4;
  }

  .area-page-subsidy__title-year{
    font-size:min(16px, 1600 / var(--cq-ref-mobile) * 1cqi);
    line-height:1.8;
  }

  .area-page-subsidy__program{
    margin-top:24px;
    max-width:var(--max-width);
  }

  .area-page-subsidy__card{
    align-items:stretch;
    border-radius:12px;
    flex-direction:column;
    gap:20px;
    padding:16px;
  }

  .area-page-subsidy__card--stacked{
    border-radius:0;
  }

  .area-page-subsidy__card--stacked:first-child{
    border-radius:12px 12px 0 0;
  }

  .area-page-subsidy__card--stacked:last-child{
    border-radius:0 0 12px 12px;
  }

  .area-page-subsidy__card-left{
    gap:16px;
    width:100%;
  }

  .area-page-subsidy__program-info{
    gap:8px;
  }

  .area-page-subsidy__program-name{
    font-size:min(15px, 1500 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-subsidy__program-link{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
    padding-block:4px;
  }

  .area-page-subsidy__amount{
    padding:10px 16px;
  }

  .area-page-subsidy__card--stacked .area-page-subsidy__amount{
    padding-block:10px;
  }

  .area-page-subsidy__spec{
    width:100%;
  }

  .area-page-subsidy__spec-row{
    flex-direction:column;
    gap:4px;
    padding-block:9px; /* PC同様に上下均等（従来の行間合計18px=12+gap6を維持） */
  }

  .area-page-subsidy__spec-label{
    font-size:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
    width:auto;
  }

  .area-page-subsidy__spec-value{
    font-size:min(12px, 1200 / var(--cq-ref-mobile) * 1cqi);
    line-height:1.6;
  }

  .area-page-subsidy__spec-value--wide{
    line-height:1.6;
  }

  .area-page-subsidy__note{
    font-size:min(11px, 1100 / var(--cq-ref-mobile) * 1cqi);
    line-height:1.6;
  }

  .area-page-subsidy__flow{
    margin-top:24px;
    padding:16px 12px;
  }

  .area-page-subsidy__flow-title{
    font-size:min(17px, 1700 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-subsidy__steps{
    align-items:center;
    flex-direction:column;
    gap:34px;
    margin-top:20px;
    padding-inline:0;
    padding-inline:15px;
    padding-top:20px;
  }

  .area-page-subsidy__step{
    align-items:center;
    flex:none;
    flex-direction:column;
    max-width:320px;
    width:100%;
  }

  .area-page-subsidy__step:not(:last-child)::after{
    margin-top:11px;
    position:static;
    transform:rotate(135deg);
  }

  .area-page-subsidy__step-card{
    min-height:0;
    padding:30px 12px 20px;
    width:100%;
  }

  .area-page-subsidy__step-bubble{
    right:6px;
    top:-30px;
  }

  .area-page-subsidy__step-title{
    font-size:min(16px, 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-subsidy__step-desc{
    font-size:min(14px, 1400 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-subsidy__cta{
    align-items:center;
    flex-direction:column;
    gap:12px;
    margin-top:24px;
    min-height:0;
    padding:16px;
  }

  .area-page-subsidy__cta-staff{
    align-self:center;
    height:98px;
    width:80px;
  }

  .area-page-subsidy__cta-body{
    margin-top:0;
    width:100%;
  }

  .area-page-subsidy__cta-title{
    font-size:min(16px, 1600 / var(--cq-ref-mobile) * 1cqi);
    text-align:center;
  }

  .area-page-subsidy__cta-chips{
    gap:6px;
    justify-content:center;
    margin-top:10px;
    padding-left:0;
  }

  .area-page-subsidy__cta-chip{
    padding:8px 10px;
  }

  .area-page-subsidy__chip-check{
    width:15px;
  }

  .area-page-subsidy__chip-check::after{
    height:3.5px;
    left:3.5px;
    top:4.5px;
    width:7px;
  }

  .area-page-subsidy__chip-text{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-subsidy__cta-actions{
    gap:10px;
    margin-top:0;
    max-width:320px;
    width:100%;
  }

  .area-page-subsidy__cta-btn{
    justify-content:center;
    min-height:48px;
  }

  .area-page-subsidy__cta-btn-text{
    font-size:min(15px, 1500 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-subsidy .area-page-flow__banner{
    margin-top:24px;
    max-width:var(--max-width);
  }

  .area-page-warranty{
    padding-block:40px;
  }

  .area-page-warranty__inner{
    max-width:var(--max-width);
    padding-inline:min(var(--padding-sp), 1600 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-warranty__lead{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
    margin-top:10px;
  }

  .area-page-warranty__cards{
    flex-direction:column;
    margin-top:24px;
  }

  .area-page-warranty__card{
    border-width:3px;
    min-height:0;
    padding:20px;
  }

  .area-page-warranty__card-img{
    max-height:150px;
  }

  .area-page-warranty__card-text{
    font-size:min(15px, 1500 / var(--cq-ref-mobile) * 1cqi);
    padding-top:16px;
  }

  .area-page-warranty__plus{
    height:60px;
    width:60px;
  }

  .area-page-warranty__points{
    flex-direction:column;
    gap:40px;
    margin-top:40px;
  }

  .area-page-warranty__point-img-wrap{
    margin-top:20px;
    min-height:200px;
  }

  .area-page-warranty__point-img--cost{
    width:70%;
  }

  .area-page-warranty__point-img--satisfaction{
    width:60%;
  }

  .area-page-warranty__point-text{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
  }

  .area-page-warranty__point-link{
    font-size:min(13px, 1300 / var(--cq-ref-mobile) * 1cqi);
  }

  .section-title{
    font-size:min(24px, 2400 / var(--cq-ref-mobile) * 1cqi);
    line-height:1.5;
  }

  .section-title--small{
    font-size:min(18px, 1800 / var(--cq-ref-mobile) * 1cqi);
  }
}

@media (any-hover: hover){
  .area-page-center__table-link:hover{
    opacity:0.8;
  }

  .area-page-cta__btn:hover{
    opacity:0.85;
  }

  .area-page-line-banner__link:hover{
    opacity:0.85;
  }

  .area-page-municipality__btn:hover{
    opacity:0.7;
  }

  .area-page-municipality__btn--nolink:hover{
    opacity:1;
  }

  .area-page-municipality__btn--static:hover{
    opacity:1;
  }

  .area-page-service__card-button:hover{
    opacity:0.85;
  }

  .area-page-service__banner-link:hover{
    opacity:0.85;
  }

  .area-page-subsidy__program-link:hover{
    -webkit-text-decoration:none;
    text-decoration:none;
  }

  .area-page-subsidy__cta-btn:hover{
    opacity:0.85;
  }

  .area-page-warranty__point-link:hover{
    opacity:0.7;
  }
}

/* ===============================================
# 追加CSS
=============================================== */

td,th {
  vertical-align: middle;
}

.area-page-ranking {
  border-top: 1px solid  #D3D3D3;
}

#office .section-inner {
	padding: 60px 0;
}

.area-page-jirei-list {
	line-height: 1.15;
}

/* 施工事例の見出しだけ余白を詰める。
   `.section-title` を直に上書きすると他セクションへ波及するため、
   このブロック配下に限定する（templates/jirei.php の style 属性から移設）。 */
.area-page-jirei-list .section-title {
	margin-bottom: 24px;
}

.area-page-count img {
	width: 100%;
}

#office .section-inner {
	padding: 60px 0 !important;
}

@media (max-width: 767px) {
	#office .area-page-review .section-inner {
		padding-inline: 16px !important;
	}
}

/* よくあるご質問：もっと見るボタン */
.p-area-faq__more {
	-webkit-text-decoration: none;
	align-items: center;
	background-color: var(--main-navy-blue);
	border-radius: 5px;
	box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.2);
	color: #FFFFFF;
	display: flex;
	font-family: var(--font-family-base);
	font-size: 16px;
	font-weight: var(--font-weight-bold);
	height: 40px;
	justify-content: center;
	line-height: 1;
	margin-left: auto;
	margin-right: auto;
	margin-top: 32px;
	max-width: 100%;
	padding: 0 24px;
	position: relative;
	text-decoration: none;
	transition: transform var(--duration-base) ease, box-shadow var(--duration-base) ease;
	width: 355px;
}

@media (max-width: 767px) {
	.p-area-faq__more {
		max-width: 355px;
		width: calc(100% - 16px);
	}
}

@media (any-hover: hover) {
	.p-area-faq__more:hover {
		box-shadow: none;
		transform: translateY(3px);
	}
}

.p-area-faq__more-arrow {
	height: 13px;
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 10px;
}