@charset "UTF-8";
/* =========================================
   初期styleリセット
========================================= */
.lout-grid.lout-breadcrumbs {
    display: none !important;
}
.lout-grid h1 {
    display: none;
    border-bottom: none;
}
.lout-grid h1:after{
    content:none;
}
.lout-grid h2,.lout-grid h3{
    border-bottom: none;
}
.lout-grid.lout-breadcrumbs {
    width: 960px;
}
.lout-followmenu {
    display: none;
}

header.lout-header.lout-grid {
    width: 960px;
}
.lout-grid {
    width: 100%;
}
.lout-footer .lout-footer-inner {
    width: 100%;
max-width: 960px;
    margin: auto;
}
.lout-hamburgerbtn{
    display: none;
}
.lout-contents {
    padding-left: 0px;
    padding-right: 0px;
}
.sp-br{
    display: none;
}

.css-1r2yhgy.evf3f5610{
    display: none;
}
.ymtbanner.is-w899 {
    margin: 0;
}
@media (min-width: 768px) {
.pc-br{
    display: none;
}
}

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&family=Zen+Kaku+Gothic+New:wght@500;700&display=swap");

/* ---------- テーマ側のリセット（追加CSSに置く場合もこのまま） ---------- */
.lout-grid { width: 100%; }
.lout-contents { padding-left: 0; padding-right: 0; }
.lout-grid h1 { display: none; border-bottom: none; }
.lout-grid h1:after { content: none; }
/* 100vw の全幅ラッパーがスクロールバー幅ぶん横にはみ出すのを防ぐ（clip は sticky を壊さない） */
body { overflow-x: clip; }
/* SP 追従 CTA（LP 内の .ec-fixcta）の高さぶん、ページ末尾（テーマのフッター）が隠れないようにする */
body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
@media (min-width: 1024px) { body { padding-bottom: 72px; } }

/* ---------- トークン ---------- */
#custom-lp-wrapper {
  --navy: #4b546e;
  --navy-dot: #464d69;
  --blue: #7faadb;
  --blue-soft: #bfd4ed;
  --blue-tab: #c9dbf0;
  --blue-pale: #e8eef8;
  --blue-dot: #ccd9ee;
  --orange: #f19326;
  --cream: #fff8ec;
  --cream-line: #fef0db;
  --yellow: #fcd57f;
  --rule: #d1d2dc;
  --white: #fff;
  --jp: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --en: "Inter", "Helvetica Neue", Arial, sans-serif;
  --inner: 1200px;
  --gutter: 20px;
  --roof: 10.245vw; /* 屋根の勾配：1920 幅で 196.7px 下がる */
  --grid: linear-gradient(var(--cream-line) 2px, transparent 2px) 0 0 / 25.6px 25.6px, linear-gradient(90deg, var(--cream-line) 2px, transparent 2px) 0 0 / 25.6px 25.6px, var(--cream);
  --dots-blue: radial-gradient(circle, var(--blue-dot) 3px, transparent 3.5px) 0 0 / 36px 36px, radial-gradient(circle, var(--blue-dot) 3px, transparent 3.5px) 18px 18px / 36px 36px, var(--blue-pale);
  --dots-navy: radial-gradient(circle, var(--navy-dot) 3.5px, transparent 4px) 0 0 / 36px 36px, radial-gradient(circle, var(--navy-dot) 3.5px, transparent 4px) 18px 18px / 36px 36px, var(--navy);
  --arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M1 7h15M10 1.5 15.5 7 10 12.5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

  width: 100vw;
  margin-left: calc(50% - 50vw);
  position: relative;
  overflow-x: clip;
  background: var(--white);
  color: var(--navy);
  font-family: var(--jp);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.8;
  letter-spacing: .03em;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-kerning: normal;
  line-break: strict;
}

/* ---------- WordPress 対策・ベース ---------- */
#custom-lp-wrapper *,
#custom-lp-wrapper *::before,
#custom-lp-wrapper *::after { box-sizing: border-box; }
#custom-lp-wrapper p:empty { display: none !important; }
#custom-lp-wrapper p { margin: 0; margin-bottom: 0; padding: 0; }
#custom-lp-wrapper p:not([class]):not(:has(*)) { display: none !important; }
#custom-lp-wrapper .ec-awrap { display: contents; }
#custom-lp-wrapper h1,
#custom-lp-wrapper h2,
#custom-lp-wrapper h3,
#custom-lp-wrapper h4 {
  display: block !important;
  visibility: visible !important;
  margin: 0; padding: 0;
  border: 0; background: none;
  font-family: var(--jp); font-weight: 700; color: inherit; letter-spacing: inherit;
}
#custom-lp-wrapper h1::before, #custom-lp-wrapper h1::after,
#custom-lp-wrapper h2::before, #custom-lp-wrapper h2::after,
#custom-lp-wrapper h3::before, #custom-lp-wrapper h3::after,
#custom-lp-wrapper h4::before, #custom-lp-wrapper h4::after { content: none; }
#custom-lp-wrapper ul,
#custom-lp-wrapper ol { list-style: none; margin: 0; padding: 0; }
#custom-lp-wrapper li { margin: 0; padding: 0; }
#custom-lp-wrapper li::before,
#custom-lp-wrapper li::marker { content: none; }
#custom-lp-wrapper figure { margin: 0; padding: 0; }
#custom-lp-wrapper img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 0;
  vertical-align: bottom;
}
#custom-lp-wrapper a { color: inherit; text-decoration: none; }
#custom-lp-wrapper a:focus-visible,
#custom-lp-wrapper label:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 3px;
}
/* flex / grid 内に wpautop の <br> が入っても行が増えないように */
#custom-lp-wrapper .ec-fv-inner br,
#custom-lp-wrapper .ec-fv-cta br,
#custom-lp-wrapper .ec-badges br,
#custom-lp-wrapper .ec-concept-photos br,
#custom-lp-wrapper .ec-points br,
#custom-lp-wrapper .ec-six-list br,
#custom-lp-wrapper .ec-catalog-list br,
#custom-lp-wrapper .ec-plan-body br,
#custom-lp-wrapper .ec-hiraya-body br,
#custom-lp-wrapper .ec-slider br,
#custom-lp-wrapper .ec-opt-list br,
#custom-lp-wrapper .ec-seis br,
#custom-lp-wrapper .ec-ins br,
#custom-lp-wrapper .ec-tl br,
#custom-lp-wrapper .ec-reserve-grid br,
#custom-lp-wrapper .ec-fixcta br { display: none; }
/* 意図して置いている改行（こちらは残す） */
#custom-lp-wrapper .ec-room-text br,
#custom-lp-wrapper .ec-opt-text br { display: inline; }
#custom-lp-wrapper br.ec-pc { display: none; }
@media (max-width: 1023.98px) {
  #custom-lp-wrapper .ec-h2,
  #custom-lp-wrapper .ec-lead,
  #custom-lp-wrapper .ec-six-h,
  #custom-lp-wrapper .ec-six-cat,
  #custom-lp-wrapper .ec-six-val,
  #custom-lp-wrapper .ec-sf-title,
  #custom-lp-wrapper .ec-std-text,
  #custom-lp-wrapper .ec-room-text,
  #custom-lp-wrapper .ec-fv-catch,
  #custom-lp-wrapper .ec-point-h { word-break: auto-phrase; }
}
/* 約物半角（ビルド時に約物を span で包んでいる）
   閉じ約物は margin でなく letter-spacing で詰める：負の margin だと Chrome が内容幅を小さく見積もり、
   幅が内容に合わせて決まる箱（ラベル等）で最後の 1 文字だけ改行される */
#custom-lp-wrapper .ec-yk { letter-spacing: -.5em; }
#custom-lp-wrapper .ec-yk-o { margin-left: -.5em; }
#custom-lp-wrapper .ec-yk-m { margin-left: -.25em; letter-spacing: -.25em; }
#custom-lp-wrapper .ec-noyk .ec-yk,
#custom-lp-wrapper .ec-noyk .ec-yk-o,
#custom-lp-wrapper .ec-noyk .ec-yk-m { margin: 0; letter-spacing: inherit; }

/* ---------- 共通部品 ---------- */
#custom-lp-wrapper .ec-inner {
  width: 100%;
  max-width: calc(var(--inner) + var(--gutter) * 2);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
#custom-lp-wrapper .ec-eyebrow {
  font-family: var(--en);
  font-weight: 700;
  font-size: 15px;
  line-height: 1;
  letter-spacing: .054em;
  text-transform: uppercase;
  text-align: center;
  color: var(--navy);
}
#custom-lp-wrapper .ec-eyebrow::after {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  margin: 12px auto 0;
  background: currentColor;
}
#custom-lp-wrapper .ec-eyebrow--white { color: var(--white); }
#custom-lp-wrapper .ec-h2 {
  margin-top: 30px;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: .035em;
  text-align: center;
  text-wrap: balance;
}
#custom-lp-wrapper .ec-h2--white { color: var(--white); }
#custom-lp-wrapper .ec-lead {
  margin-top: 18px;
  font-size: 14px;
  line-height: 2.1;
  letter-spacing: .035em;
  text-align: center;
  text-wrap: pretty;
}
#custom-lp-wrapper .ec-lead--white { color: var(--white); }

/* ボタン */
#custom-lp-wrapper .ec-btn {
  --c: var(--orange);
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 52px;
  padding: 6px 7px 6px 24px;
  border-radius: 999px;
  background: var(--c);
  color: var(--white);
  max-width: 100%;
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: .06em;
  transition: filter .25s ease, transform .25s ease;
}
#custom-lp-wrapper .ec-btn:hover { filter: brightness(1.06); transform: translateY(-1px); }
#custom-lp-wrapper .ec-btn--blue { --c: var(--blue); }
#custom-lp-wrapper .ec-btn--orange { --c: var(--orange); }
#custom-lp-wrapper .ec-btn-arrow {
  position: relative;
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--white);
}
#custom-lp-wrapper .ec-btn-arrow::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 16px;
  height: 13px;
  background: var(--c);
  -webkit-mask: var(--arrow) center / contain no-repeat;
  mask: var(--arrow) center / contain no-repeat;
}
#custom-lp-wrapper .ec-btn--center { display: flex; width: fit-content; margin-left: auto; margin-right: auto; }

/* =====================================================================
   FV
   ===================================================================== */
#custom-lp-wrapper .ec-fv {
  --k: 1;
  position: relative;
  background: var(--navy);
  padding-top: clamp(20px, 2.5vw, 48px); /* ヘッダーを置かないので、屋根の頂点の上に紺の余白 */
  padding-bottom: 4.04vw; /* 屋根の頂点までの紺帯 */
}
#custom-lp-wrapper .ec-fv-panel {
  position: relative;
  background: var(--dots-blue);
  clip-path: polygon(0 var(--roof), 50% 0, 100% var(--roof), 100% 100%, 0 100%);
}
#custom-lp-wrapper .ec-fv-inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "copy" "visual" "price" "cta";
  padding: 0 var(--gutter) 36px;
  max-width: 640px;
  margin: 0 auto;
}
#custom-lp-wrapper .ec-fv-copy {
  grid-area: copy;
  position: relative;
  margin: 0 calc(var(--gutter) * -1);
  padding: calc(var(--roof) + 30px) var(--gutter) 28px;
  background: var(--grid);
  text-align: center;
}
#custom-lp-wrapper .ec-fv-title { display: block; }
#custom-lp-wrapper .ec-fv-enege {
  display: block;
  font-family: var(--en);
  font-weight: 700;
  font-size: 21px;
  line-height: 1;
  letter-spacing: .1em;
}
#custom-lp-wrapper .ec-fv-logo { width: 84%; max-width: 541px; margin: 12px auto 0; }
#custom-lp-wrapper .ec-fv-kana {
  display: block;
  margin-top: 14px;
  font-size: 15px;
  line-height: 1;
  letter-spacing: .06em;
}
#custom-lp-wrapper .ec-fv-catch {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .78em;
  margin-top: 26px;
  font-size: 22px;
  line-height: 1;
  letter-spacing: .058em;
}
#custom-lp-wrapper .ec-fv-catch-l {
  display: block;
  padding: 0 0 .226em .16em;
  margin-left: -.16em;
  background: linear-gradient(transparent .516em, var(--yellow) .516em) 0 0 / calc(100% + .06em) 100% no-repeat;
}
#custom-lp-wrapper .ec-fv-visual {
  grid-area: visual;
  position: relative;
  aspect-ratio: 698 / 439;
  margin: 14px -6px 0;
}
#custom-lp-wrapper .ec-fv-house { position: absolute; left: 0; top: 33.49%; width: 91.69%; }
#custom-lp-wrapper .ec-fv-deco { position: absolute; inset: 0; width: 100%; height: 100%; }

#custom-lp-wrapper .ec-fv-price {
  grid-area: price;
  display: grid;
  grid-template-columns: 30% 1fr;
  margin-top: 18px;
  border: 2px solid var(--navy);
  border-radius: 8px;
  overflow: hidden;
  background: var(--white);
}
#custom-lp-wrapper .ec-fv-price-lead {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin: 0;
  background: var(--navy);
  color: var(--white);
  text-align: center;
  line-height: 1.2;
  position: relative;
}
#custom-lp-wrapper .ec-fv-price-lead::after {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid var(--white);
  pointer-events: none;
}
#custom-lp-wrapper .ec-fv-price-lead-s { font-size: 11px; letter-spacing: .1em; }
#custom-lp-wrapper .ec-fv-price-lead-l { font-size: 15px; letter-spacing: .1em; }
#custom-lp-wrapper .ec-fv-price-body { padding: 12px 10px 10px 14px; }
#custom-lp-wrapper .ec-fv-price-main {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  line-height: 1;
}
#custom-lp-wrapper .ec-fv-price-tag {
  margin-right: 10px;
  padding: 4px 5px;
  border: 1px solid var(--navy);
  font-size: 11px;
  letter-spacing: 0;
}
#custom-lp-wrapper .ec-fv-price-num {
  font-family: var(--en);
  font-weight: 700;
  font-size: 34px;
  letter-spacing: 0;
}
#custom-lp-wrapper .ec-fv-price-unit { margin-left: 4px; font-size: 18px; letter-spacing: -.02em; }
#custom-lp-wrapper .ec-fv-price-tax { margin-top: 4px; padding-left: 64px; font-size: 10px; line-height: 1.4; letter-spacing: 0; }
#custom-lp-wrapper .ec-fv-price-note { margin-top: 2px; font-size: 10px; line-height: 1.4; letter-spacing: 0; text-align: right; }

#custom-lp-wrapper .ec-fv-cta {
  grid-area: cta;
  display: grid;
  gap: 12px;
  margin-top: 20px;
}
#custom-lp-wrapper .ec-fv-cta .ec-btn { width: 100%; }

/* =====================================================================
   CONCEPT（屋根・バッジ・写真・Point）
   ===================================================================== */
#custom-lp-wrapper .ec-concept { position: relative; background: var(--white); padding-bottom: 72px; }
#custom-lp-wrapper .ec-roof {
  position: relative;
  height: var(--roof);
  background: var(--navy);
}
#custom-lp-wrapper .ec-roof::before {
  content: "";
  position: absolute;
  inset: 0 0 -1px;
  background: var(--white);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
}
#custom-lp-wrapper .ec-roof::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 1.583vw;
  height: 10.354vw;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 199' preserveAspectRatio='none'%3E%3Cpolyline points='0,198 960,1 1920,198' fill='none' stroke='%234b546e' stroke-width='1.6' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
  pointer-events: none;
}
#custom-lp-wrapper .ec-concept .ec-eyebrow { padding-top: calc(40px - 2vw); }

#custom-lp-wrapper .ec-badges {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  max-width: 912px;
  margin: 32px auto 0;
}
#custom-lp-wrapper .ec-badge {
  position: relative;
  display: flex;
  flex-direction: column;
  aspect-ratio: 1;
  border: 1px solid var(--navy);
  border-radius: 50%;
  overflow: hidden;
  background: var(--grid);
}
#custom-lp-wrapper .ec-badge-icon {
  flex: 0 0 55.6%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 8%;
}
#custom-lp-wrapper .ec-badge-icon img { height: auto; }
#custom-lp-wrapper .ec-badge:nth-child(1) .ec-badge-icon img { width: 40.5%; }
#custom-lp-wrapper .ec-badge:nth-child(2) .ec-badge-icon img { width: 19.8%; }
#custom-lp-wrapper .ec-badge:nth-child(3) .ec-badge-icon img { width: 37.7%; }
#custom-lp-wrapper .ec-badge-text {
  flex: 0 0 44.4%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 9%;
  background: var(--navy);
  color: var(--white);
  text-align: center;
  line-height: 1.2;
}
#custom-lp-wrapper .ec-badge-s { font-size: 9px; letter-spacing: .04em; }
#custom-lp-wrapper .ec-badge-l { margin-top: 3px; font-size: 13px; letter-spacing: .06em; }

#custom-lp-wrapper .ec-concept-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 48px;
}
#custom-lp-wrapper .ec-concept-photo { overflow: hidden; }
#custom-lp-wrapper .ec-concept-photo img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 620 / 408; }
#custom-lp-wrapper .ec-concept-photo--1 { grid-column: 1 / -1; }

#custom-lp-wrapper .ec-points {
  display: grid;
  gap: 40px;
  margin-top: 56px;
}
#custom-lp-wrapper .ec-point {
  position: relative;
  padding: 44px 22px 26px;
  border-radius: 8px;
  background: var(--dots-blue);
  box-shadow: 6px 7px 0 var(--blue);
}
#custom-lp-wrapper .ec-point-no { position: absolute; left: 7px; top: -20px; }
#custom-lp-wrapper .ec-point-no img { width: 104px; }
#custom-lp-wrapper .ec-point:nth-child(2) .ec-point-no img { width: 116px; }
#custom-lp-wrapper .ec-point:nth-child(3) .ec-point-no img { width: 110px; }
#custom-lp-wrapper .ec-point-h { font-size: 18px; line-height: 1.6; letter-spacing: .01em; }
#custom-lp-wrapper .ec-point-h-in {
  padding: 0 4px;
  margin-left: -4px;
  background: linear-gradient(transparent 52%, rgba(255, 255, 255, .8) 52%, rgba(255, 255, 255, .8) 92%, transparent 92%);
}
#custom-lp-wrapper .ec-point-text { margin-top: 12px; font-size: 14px; line-height: 1.75; letter-spacing: .025em; text-align: justify; }

/* =====================================================================
   BASIC SPECIFICATIONS
   ===================================================================== */
#custom-lp-wrapper .ec-basic { background: var(--blue); padding: 64px 0 40px; }
#custom-lp-wrapper .ec-basic-illust {
  position: relative;
  aspect-ratio: 696 / 378;
  max-width: 696px;
  margin: 28px auto 0;
  transform: translateX(-3.9%); /* カンプ通り中心から少し左 */
}
#custom-lp-wrapper .ec-basic-house { position: absolute; left: 12.64%; top: 19.84%; width: 86.06%; }
#custom-lp-wrapper .ec-basic-deco { position: absolute; inset: 0; width: 100%; height: 100%; }

/* =====================================================================
   6つのポイント ＋ 仕様一覧
   ===================================================================== */
#custom-lp-wrapper .ec-six { background: var(--grid); padding: 64px 0 72px; }
#custom-lp-wrapper .ec-six-h {
  position: relative;
  width: fit-content;
  margin: 0 auto;
  padding: 0 4px 9px;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: .028em;
  text-align: center;
  text-wrap: balance;
}
#custom-lp-wrapper .ec-six-h-in {
  background: linear-gradient(transparent 50%, var(--white) 50%, var(--white) 92%, transparent 92%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding: 0 4px;
}
#custom-lp-wrapper .ec-six-h::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: var(--orange);
}
#custom-lp-wrapper .ec-six-h::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -9px;
  width: 18px;
  height: 10px;
  margin-left: -9px;
  background: var(--orange);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
#custom-lp-wrapper .ec-six-list {
  display: grid;
  gap: 16px;
  margin-top: 44px;
}
#custom-lp-wrapper .ec-six-item {
  display: grid;
  grid-template-columns: 44% 1fr;
  align-items: center;
  min-height: 58px;
  border: 1.5px solid var(--orange);
  border-radius: 999px;
  background: var(--white);
  box-shadow: 5px 6px 0 var(--yellow);
  overflow: hidden;
}
#custom-lp-wrapper .ec-six-key {
  position: relative;
  display: flex;
  align-items: center;
  align-self: stretch;
  padding: 0 18px 0 16px;
  background: var(--orange);
  color: var(--white);
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%);
}
#custom-lp-wrapper .ec-six-no {
  flex: none;
  padding-right: 10px;
  margin-right: 10px;
  border-right: 1px solid rgba(255, 255, 255, .9);
  font-family: var(--en);
  font-size: 18px;
  line-height: 1.3;
}
#custom-lp-wrapper .ec-six-cat { font-size: 12px; line-height: 1.35; letter-spacing: .02em; }
#custom-lp-wrapper .ec-six-val { padding: 6px 14px 6px 12px; font-size: 14.5px; line-height: 1.4; letter-spacing: .02em; }

#custom-lp-wrapper .ec-spec {
  margin-top: 52px;
  padding: 22px 16px 26px;
  border: 2px solid var(--navy);
  border-radius: 16px;
  background: var(--white);
}
#custom-lp-wrapper .ec-spec-group + .ec-spec-group { margin-top: 28px; }
#custom-lp-wrapper .ec-spec-h {
  padding: 6px 16px;
  background: var(--navy);
  color: var(--white);
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: .045em !important;
}
#custom-lp-wrapper .ec-spec-list {
  display: grid;
  grid-template-columns: 1fr;
  margin-top: 6px;
}
#custom-lp-wrapper .ec-spec-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  padding: 12px 0;
  border-bottom: 2px dashed var(--rule);
  text-align: center;
}
#custom-lp-wrapper .ec-spec-item:last-child { border-bottom: 0; padding-bottom: 0; }
#custom-lp-wrapper .ec-spec-label {
  display: block;
  padding: 5px 10px;
  border: 1.5px solid var(--navy);
  border-radius: 999px;
  background: var(--blue);
  color: var(--white);
  font-size: 13px;
  line-height: 1.35;
  letter-spacing: .01em;
}
#custom-lp-wrapper .ec-spec-val { font-size: 16px; line-height: 1.45; letter-spacing: -.01em; }

/* =====================================================================
   CATALOG DOWNLOAD
   ===================================================================== */
#custom-lp-wrapper .ec-catalog {
  position: relative;
  padding: 72px 0 72px;
  border-top: 16px solid var(--navy);
  border-bottom: 16px solid var(--navy);
  background: var(--blue-pale);
}
#custom-lp-wrapper .ec-catalog-lead { margin-top: 30px; }
#custom-lp-wrapper .ec-catalog-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 28px 0 32px;
}
#custom-lp-wrapper .ec-catalog-item:first-child { grid-column: 1 / -1; }
#custom-lp-wrapper .ec-catalog-item img { width: 100%; }

/* =====================================================================
   FLEXIBLE FLOOR PLANS
   ===================================================================== */
#custom-lp-wrapper .ec-plan { padding: 64px 0 64px; background: var(--white); }
#custom-lp-wrapper .ec-plan-body { display: grid; gap: 40px; margin-top: 40px; }
#custom-lp-wrapper .ec-plan-maps { display: grid; gap: 20px; }
#custom-lp-wrapper .ec-plan-floor {
  display: inline-block;
  min-width: 60px;
  padding: 2px 14px 3px;
  background: var(--navy);
  color: var(--white);
  font-family: var(--en);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: 0;
  text-align: center;
  text-transform: uppercase;
}
#custom-lp-wrapper .ec-plan-map img { width: 100%; margin-top: 8px; }
#custom-lp-wrapper .ec-rooms { display: grid; gap: 30px; }
#custom-lp-wrapper .ec-room-h {
  position: relative;
  padding-left: 22px;
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: 0;
  background: linear-gradient(transparent 50%, var(--blue-pale) 50%) 0 0 / 100% 100% no-repeat;
}
#custom-lp-wrapper .ec-room-h::before {
  content: "" !important;
  position: absolute;
  left: 4px;
  top: .38em;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--navy);
}
#custom-lp-wrapper .ec-room-body {
  display: grid;
  grid-template-columns: 44% 1fr;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
}
#custom-lp-wrapper .ec-room-img { width: 100%; aspect-ratio: 256 / 168; object-fit: cover; }
#custom-lp-wrapper .ec-room-text { font-size: 14px; line-height: 1.75; letter-spacing: -.016em; }

/* =====================================================================
   平屋
   ===================================================================== */
#custom-lp-wrapper .ec-hiraya { padding: 64px 0 64px; background: var(--dots-navy); }
#custom-lp-wrapper .ec-hiraya-body { display: grid; gap: 14px; margin-top: 36px; }
#custom-lp-wrapper .ec-hiraya-plan { padding: 6% 7.4%; background: var(--cream); }
#custom-lp-wrapper .ec-hiraya-plan img { width: 100%; }
#custom-lp-wrapper .ec-hiraya-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#custom-lp-wrapper .ec-hiraya-photo img { width: 100%; aspect-ratio: 509 / 293; object-fit: cover; }

/* =====================================================================
   STANDARD HOME FEATURES（CSS のみのスライダー）
   ===================================================================== */
#custom-lp-wrapper .ec-standard { padding: 64px 0 64px; background: var(--white); }
#custom-lp-wrapper .ec-std-grid { display: grid; gap: 44px; margin-top: 40px; }
#custom-lp-wrapper .ec-std-h {
  display: inline-block !important;
  min-width: 190px;
  padding: 4px 22px;
  border-radius: 999px;
  background: var(--navy);
  color: var(--white);
  font-size: 17px;
  line-height: 1.5;
  letter-spacing: .04em !important;
  text-align: center;
}
#custom-lp-wrapper .ec-std-text { margin-top: 14px; font-size: 14px; line-height: 1.8; letter-spacing: .005em; }
#custom-lp-wrapper .ec-slider { position: relative; margin-top: 18px; }
#custom-lp-wrapper .ec-slider-radio {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}
#custom-lp-wrapper .ec-slider-view { overflow: hidden; }
/* ※ :has() で切り替える要素に transition を付けない（ヤマト住建ワードプレス用.md §9-1） */
#custom-lp-wrapper .ec-slider-track { display: flex; }
#custom-lp-wrapper .ec-slide { flex: 0 0 100%; display: block; cursor: pointer; }
#custom-lp-wrapper .ec-slide img { width: 100%; aspect-ratio: 544 / 313; object-fit: cover; }
#custom-lp-wrapper .ec-slider:has(.ec-slider-radio:nth-of-type(2):checked) .ec-slider-track { transform: translateX(-100%); }
#custom-lp-wrapper .ec-slider:has(.ec-slider-radio:nth-of-type(3):checked) .ec-slider-track { transform: translateX(-200%); }
#custom-lp-wrapper .ec-slider-dots { display: flex; justify-content: center; gap: 0; margin-top: 4px; }
#custom-lp-wrapper .ec-dot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 44px;
  cursor: pointer;
}
#custom-lp-wrapper .ec-dot-in {
  display: block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--blue-soft);
  overflow: hidden;
  text-indent: 200%;
  white-space: nowrap;
  font-size: 0;
}
#custom-lp-wrapper .ec-slider:has(.ec-slider-radio:nth-of-type(1):checked) .ec-dot--1 .ec-dot-in,
#custom-lp-wrapper .ec-slider:has(.ec-slider-radio:nth-of-type(2):checked) .ec-dot--2 .ec-dot-in,
#custom-lp-wrapper .ec-slider:has(.ec-slider-radio:nth-of-type(3):checked) .ec-dot--3 .ec-dot-in { background: var(--blue); }
#custom-lp-wrapper .ec-slider:has(.ec-slider-radio:nth-of-type(1):focus-visible) .ec-dot--1,
#custom-lp-wrapper .ec-slider:has(.ec-slider-radio:nth-of-type(2):focus-visible) .ec-dot--2,
#custom-lp-wrapper .ec-slider:has(.ec-slider-radio:nth-of-type(3):focus-visible) .ec-dot--3 { outline: 3px solid var(--orange); outline-offset: -4px; border-radius: 8px; }
#custom-lp-wrapper .ec-std--illust img { width: 100%; max-width: 548px; margin: 0 auto; }

/* =====================================================================
   OPTIONAL UPGRADES
   ===================================================================== */
#custom-lp-wrapper .ec-option { padding: 64px 0 64px; background: var(--navy); }
#custom-lp-wrapper .ec-opt-cat { margin-top: 44px; }
#custom-lp-wrapper .ec-opt-cat + .ec-opt-cat { margin-top: 48px; }
#custom-lp-wrapper .ec-opt-bar {
  display: grid;
  grid-template-columns: 1fr;
  border-radius: 6px;
  background: var(--white);
  color: var(--navy);
}
#custom-lp-wrapper .ec-opt-bar-h {
  display: flex !important;
  align-items: center;
  gap: 8px;
  padding: 12px 18px 10px;
  border-bottom: 2px solid var(--navy);
  font-size: 17px;
  line-height: 1.3;
  letter-spacing: .03em !important;
}
#custom-lp-wrapper .ec-opt-bar-h::before {
  content: "" !important;
  flex: none;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--navy);
}
#custom-lp-wrapper .ec-opt-bar-text { padding: 10px 18px 12px; font-size: 13.5px; line-height: 1.6; letter-spacing: 0; }
/* SP は横スワイプ（スクロールスナップ） */
#custom-lp-wrapper .ec-opt-list {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 78%;
  gap: 16px;
  margin: 22px calc(var(--gutter) * -1) 0;
  padding: 4px var(--gutter) 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding: 0 var(--gutter);
  scrollbar-width: thin;
  scrollbar-color: var(--blue) transparent;
}
#custom-lp-wrapper .ec-opt-card { display: flex; flex-direction: column; scroll-snap-align: start; color: var(--white); }
#custom-lp-wrapper .ec-opt-photo { position: relative; display: block; background: var(--white); }
#custom-lp-wrapper .ec-opt-photo img { width: 100%; aspect-ratio: 378 / 229; object-fit: cover; }
#custom-lp-wrapper .ec-opt-name {
  display: block;
  margin-top: 20px;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--blue);
  color: var(--white);
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: .02em;
  text-align: center;
}
#custom-lp-wrapper .ec-opt-text { display: block; margin-top: 14px; font-size: 14px; line-height: 1.8; letter-spacing: .005em; text-align: justify; }
#custom-lp-wrapper .ec-opt-illust {
  position: relative;
  scroll-snap-align: start;
  align-self: center;
  aspect-ratio: 488 / 324;
}
#custom-lp-wrapper .ec-opt-couple { position: absolute; left: 2.66%; top: 15.74%; width: 88.11%; }
#custom-lp-wrapper .ec-opt-couple-deco { position: absolute; inset: 0; width: 100%; height: 100%; }

/* =====================================================================
   COMFORT & SAFETY
   ===================================================================== */
#custom-lp-wrapper .ec-safety { padding: 64px 0 72px; background: var(--white); }
#custom-lp-wrapper .ec-sf { margin-top: 52px; }
#custom-lp-wrapper .ec-sf-h {
  display: flex !important;
  align-items: flex-end;
  gap: 12px;
  border-bottom: 1.5px solid var(--navy) !important;
  font-size: 18px;
  line-height: 1.45;
  letter-spacing: .04em !important;
}
#custom-lp-wrapper .ec-sf-tag {
  flex: none;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  width: 50px;
  height: 48px;
  padding-bottom: 6px;
  background: var(--orange);
  clip-path: polygon(0 32%, 50% 0, 100% 32%, 100% 100%, 0 100%);
  color: var(--white);
  font-size: 15px;
  line-height: 1;
  letter-spacing: 0;
}
#custom-lp-wrapper .ec-sf-title { padding: 0 0 6px; }
#custom-lp-wrapper .ec-sf-text { margin-top: 18px; font-size: 14px; line-height: 1.85; letter-spacing: -.01em; text-align: justify; }

/* 耐震 */
#custom-lp-wrapper .ec-seis { display: grid; gap: 28px; margin-top: 28px; }
#custom-lp-wrapper .ec-seis-fig { width: 72%; max-width: 324px; margin: 0 auto; }
#custom-lp-wrapper .ec-seis-fig img { width: 100%; }
#custom-lp-wrapper .ec-seis-tab {
  display: inline-block;
  padding: 7px 22px 6px;
  border: 2px solid var(--navy);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  background: var(--blue-tab);
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: 0;
}
#custom-lp-wrapper .ec-seis-tab--up { background: var(--orange); color: var(--white); border-color: var(--orange); }
#custom-lp-wrapper .ec-seis-std-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: -2px;
  border: 2px solid var(--navy);
  border-radius: 0 8px 8px 8px;
  overflow: hidden;
  text-align: center;
}
#custom-lp-wrapper .ec-seis-grade {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 12px;
  padding: 14px 0;
  border-radius: 8px;
  background: var(--blue-pale);
}
#custom-lp-wrapper .ec-seis-grade-s,
#custom-lp-wrapper .ec-seis-ratio-s { font-size: 15px; line-height: 1.3; letter-spacing: 0; }
#custom-lp-wrapper .ec-seis-ratio-s {
  padding: 0 3px;
  background: linear-gradient(transparent 45%, var(--white) 45%, var(--white) 95%, transparent 95%);
}
#custom-lp-wrapper .ec-seis-grade-n,
#custom-lp-wrapper .ec-seis-ratio-n {
  margin-top: 4px;
  font-family: var(--en);
  font-weight: 700;
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: .02em;
}
#custom-lp-wrapper .ec-seis-ratio-u { display: inline-block; margin-left: 2px; font-family: var(--jp); font-size: .66em; }
#custom-lp-wrapper .ec-seis-ratio {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: var(--blue-pale);
}
#custom-lp-wrapper .ec-seis-up-body {
  margin-top: -2px;
  border: 2px solid var(--navy);
  border-radius: 0 8px 8px 8px;
  overflow: hidden;
  background: var(--cream);
}
#custom-lp-wrapper .ec-seis-up-h {
  padding: 8px 16px;
  background: var(--navy);
  color: var(--white);
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: .02em !important;
}
#custom-lp-wrapper .ec-seis-up-in { padding: 14px 14px 16px; }
#custom-lp-wrapper .ec-seis-up-img { width: 100%; }
#custom-lp-wrapper .ec-seis-up-catch { margin-top: 14px; font-size: 16px; line-height: 1.5; letter-spacing: 0; text-align: center; }
#custom-lp-wrapper .ec-seis-up-catch-in {
  padding: 0 4px;
  background: linear-gradient(transparent 55%, var(--yellow) 55%, var(--yellow) 96%, transparent 96%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
#custom-lp-wrapper .ec-seis-up-text { margin-top: 8px; font-size: 13.5px; line-height: 1.6; letter-spacing: .005em; }

/* 断熱 */
#custom-lp-wrapper .ec-ins { display: grid; gap: 28px; margin-top: 28px; }
#custom-lp-wrapper .ec-ins-legend img { width: 100%; max-width: 458px; margin: 0 auto; }
#custom-lp-wrapper .ec-ins-figs { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 12px; }
#custom-lp-wrapper .ec-ins-fig img { width: 100%; max-width: 332px; margin: 0 auto; }
#custom-lp-wrapper .ec-sash { padding: 18px 16px 20px; background: var(--cream); }
#custom-lp-wrapper .ec-sash-h {
  padding: 10px 8px;
  border: 2px solid var(--navy);
  border-radius: 6px;
  background: var(--white);
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: .03em;
  text-align: center;
}
#custom-lp-wrapper .ec-sash-body {
  display: grid;
  grid-template-columns: 36% 1fr;
  align-items: center;
  gap: 16px;
  margin-top: 14px;
}
#custom-lp-wrapper .ec-sash-img { width: 100%; }
#custom-lp-wrapper .ec-sash-list { display: grid; gap: 14px; }
#custom-lp-wrapper .ec-sash-item {
  padding: 10px 6px;
  border: 2px solid var(--navy);
  border-radius: 999px;
  background: var(--blue);
  color: var(--white);
  font-size: 16px;
  line-height: 1.3;
  letter-spacing: 0;
  text-align: center;
}

/* 保証タイムライン（SP：縦 / PC：横） */
#custom-lp-wrapper .ec-tl {
  display: grid;
  grid-template-columns: 1fr;
  margin-top: 28px;
}
#custom-lp-wrapper .ec-tl-title {
  order: 0;
  padding: 9px 8px;
  border: 1.5px solid var(--navy);
  border-radius: 2px;
  background: var(--blue);
  color: var(--white);
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .06em;
  text-align: center;
}
#custom-lp-wrapper .ec-tl-title-n { font-size: 1.3em; }
#custom-lp-wrapper .ec-tl-bracket {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 20px 0 10px;
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: .1em;
}
#custom-lp-wrapper .ec-tl-bracket::after {
  content: "";
  flex: 1;
  height: 1.5px;
  background: var(--navy);
}
#custom-lp-wrapper .ec-tl-bracket-in img { width: 110px; }
#custom-lp-wrapper .ec-tl-bracket--jio { order: 1; }
#custom-lp-wrapper .ec-tl-step--jio { order: 2; }
#custom-lp-wrapper .ec-tl-bracket--ymt { order: 3; }
#custom-lp-wrapper .ec-tl-step--ymt { order: 4; }
#custom-lp-wrapper .ec-tl-head { display: none; }
#custom-lp-wrapper .ec-tl-step {
  display: grid;
  grid-template-columns: 34% 1fr;
  align-items: center;
  gap: 14px;
}
#custom-lp-wrapper .ec-tl-year {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  margin-bottom: -8px;
  padding-top: 4px;
  background: var(--navy);
  color: var(--white);
  font-size: 15px;
  line-height: 1;
  letter-spacing: .04em;
  clip-path: polygon(0 0, 50% 8px, 100% 0, 100% calc(100% - 8px), 50% 100%, 0 calc(100% - 8px));
}
#custom-lp-wrapper .ec-tl-step--first .ec-tl-year,
#custom-lp-wrapper .ec-tl-step--first-ymt .ec-tl-year { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), 50% 100%, 0 calc(100% - 8px)); }
#custom-lp-wrapper .ec-tl-step--paid .ec-tl-year { background: var(--blue); }
#custom-lp-wrapper .ec-tl-check {
  padding: 4px 6px;
  border: 1.5px solid var(--navy);
  border-radius: 3px;
  background: var(--white);
  font-size: 14px;
  line-height: 1.25;
  letter-spacing: 0;
  text-align: center;
}
#custom-lp-wrapper .ec-tl-fee { font-size: .78em; }
#custom-lp-wrapper .ec-tl-step--paid .ec-tl-check { background: var(--blue); color: var(--white); }

/* =====================================================================
   WEBご来場予約
   ===================================================================== */
#custom-lp-wrapper .ec-reserve { padding: 64px 0 72px; background: var(--cream); }
#custom-lp-wrapper .ec-reserve-banner { display: block; transition: opacity .25s ease; }
#custom-lp-wrapper .ec-reserve-banner:hover { opacity: .88; }
#custom-lp-wrapper .ec-reserve-banner img { width: 100%; }

/* SP 追従 CTA（PSD に無い SP 専用の追加。CV 2 種のみ） */
#custom-lp-wrapper .ec-fixcta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
  background: rgba(75, 84, 110, .96);
}
#custom-lp-wrapper .ec-fixcta-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  border-radius: 999px;
  color: var(--white);
  line-height: 1.2;
  text-align: center;
}
#custom-lp-wrapper .ec-fixcta-btn--blue { background: var(--blue); }
#custom-lp-wrapper .ec-fixcta-btn--orange { background: var(--orange); }
#custom-lp-wrapper .ec-fixcta-s { font-size: 10px; letter-spacing: .06em; }
#custom-lp-wrapper .ec-fixcta-l { margin-top: 2px; font-size: 15px; letter-spacing: .08em; }

/* =====================================================================
   TABLET（768px〜）
   ===================================================================== */
@media (min-width: 768px) {
  #custom-lp-wrapper { font-size: 16px; --gutter: 40px; }
  #custom-lp-wrapper br.ec-sp { display: none; }
  #custom-lp-wrapper .ec-eyebrow { font-size: 19px; }
  #custom-lp-wrapper .ec-eyebrow::after { width: 50px; margin-top: 16px; }
  #custom-lp-wrapper .ec-h2 { margin-top: 48px; font-size: 28px; }
  #custom-lp-wrapper .ec-lead { margin-top: 30px; font-size: 16px; line-height: 2.4; }

  #custom-lp-wrapper .ec-fv-inner { max-width: 760px; padding-bottom: 56px; }
  #custom-lp-wrapper .ec-fv-copy { padding-top: calc(var(--roof) + 44px); }
  #custom-lp-wrapper .ec-fv-enege { font-size: 28px; }
  #custom-lp-wrapper .ec-fv-logo { width: 70%; }
  #custom-lp-wrapper .ec-fv-kana { font-size: 20px; }
  #custom-lp-wrapper .ec-fv-catch { font-size: 28px; }
  #custom-lp-wrapper .ec-fv-price { grid-template-columns: 187fr 363fr; max-width: 550px; width: 100%; justify-self: center; }
  #custom-lp-wrapper .ec-fv-price-lead-s { font-size: 16px; }
  #custom-lp-wrapper .ec-fv-price-lead-l { font-size: 22px; }
  #custom-lp-wrapper .ec-fv-price-body { padding: 26px 16px 12px 24px; }
  #custom-lp-wrapper .ec-fv-price-tag { font-size: 15px; padding: 5px 6px; }
  #custom-lp-wrapper .ec-fv-price-num { font-size: 47px; }
  #custom-lp-wrapper .ec-fv-price-unit { font-size: 25px; }
  #custom-lp-wrapper .ec-fv-price-tax { padding-left: 91px; font-size: 13px; }
  #custom-lp-wrapper .ec-fv-price-note { font-size: 13px; }
  #custom-lp-wrapper .ec-fv-cta { grid-template-columns: auto auto; justify-content: center; gap: 20px; }
  #custom-lp-wrapper .ec-fv-cta .ec-btn { width: auto; min-width: 280px; }

  #custom-lp-wrapper .ec-badges { gap: 40px; padding: 0 40px; margin-top: 60px; }
  #custom-lp-wrapper .ec-badge-s { font-size: 13px; }
  #custom-lp-wrapper .ec-badge-l { font-size: 19px; }
  #custom-lp-wrapper .ec-concept-photos { grid-template-columns: repeat(3, 1fr); gap: 1.5625vw; margin-top: 90px; }
  #custom-lp-wrapper .ec-concept-photo--1 { grid-column: auto; }
  #custom-lp-wrapper .ec-points { grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 100px; }
  #custom-lp-wrapper .ec-point { padding: 50px 18px 24px; }

  #custom-lp-wrapper .ec-basic { padding: 100px 0 56px; }
  #custom-lp-wrapper .ec-basic-illust { margin-top: 40px; }

  #custom-lp-wrapper .ec-six { padding: 100px 0 100px; }
  #custom-lp-wrapper .ec-six-h { font-size: 28px; }
  #custom-lp-wrapper .ec-six-list { grid-template-columns: 1fr 1fr; column-gap: 32px; row-gap: 26px; margin-top: 80px; }
  #custom-lp-wrapper .ec-spec { margin-top: 70px; padding: 32px 28px 36px; }
  #custom-lp-wrapper .ec-spec-list { grid-template-columns: 1fr 1fr; column-gap: 28px; }
  #custom-lp-wrapper .ec-spec-item { border-bottom: 0; }

  #custom-lp-wrapper .ec-catalog { padding: 100px 0 90px; border-top-width: 28px; border-bottom-width: 28px; }
  #custom-lp-wrapper .ec-catalog-list { grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 70px 0 60px; }
  #custom-lp-wrapper .ec-catalog-item:first-child { grid-column: auto; }

  #custom-lp-wrapper .ec-plan,
  #custom-lp-wrapper .ec-hiraya,
  #custom-lp-wrapper .ec-standard,
  #custom-lp-wrapper .ec-option,
  #custom-lp-wrapper .ec-safety,
  #custom-lp-wrapper .ec-reserve { padding-top: 100px; padding-bottom: 100px; }
  #custom-lp-wrapper .ec-plan-body { grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 80px; }
  #custom-lp-wrapper .ec-hiraya-body { grid-template-columns: 659fr 509fr; gap: 24px; margin-top: 70px; }
  #custom-lp-wrapper .ec-hiraya-photos { grid-template-columns: 1fr; gap: 24px; align-content: start; }
  #custom-lp-wrapper .ec-std-grid { grid-template-columns: 1fr 1fr; column-gap: 48px; row-gap: 60px; margin-top: 70px; }
  #custom-lp-wrapper .ec-std--illust { align-self: end; padding-bottom: 42px; }

  #custom-lp-wrapper .ec-opt-bar { grid-template-columns: auto 1fr; align-items: center; min-height: 72px; }
  #custom-lp-wrapper .ec-opt-bar-h { align-self: stretch; padding: 0 28px 0 30px; border-bottom: 0; border-right: 2px solid var(--navy); font-size: 19px; }
  #custom-lp-wrapper .ec-opt-bar-text { padding: 10px 28px; font-size: 15px; }
  #custom-lp-wrapper .ec-opt-list {
    grid-auto-flow: row;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-columns: auto;
    gap: 40px 24px;
    margin: 47px 0 0;
    padding: 0;
    overflow: visible;
  }
  #custom-lp-wrapper .ec-opt-illust { grid-column: 2 / 4; justify-self: center; width: 64%; align-self: start; margin-top: 30px; }

  #custom-lp-wrapper .ec-seis { grid-template-columns: 1fr 1fr; align-items: start; }
  #custom-lp-wrapper .ec-seis-fig { grid-row: span 2; width: 100%; }
  #custom-lp-wrapper .ec-ins-figs { grid-template-columns: 1fr 1fr; }

}

/* =====================================================================
   PC（1024px〜）— カンプ実寸
   ===================================================================== */
@media (min-width: 1024px) {
  #custom-lp-wrapper { font-size: 18px; --gutter: 40px; }
  #custom-lp-wrapper br.ec-pc { display: inline; }
  #custom-lp-wrapper .ec-fixcta { display: none; }

  #custom-lp-wrapper .ec-eyebrow { font-size: 23px; line-height: 18px; }
  #custom-lp-wrapper .ec-eyebrow::after { width: 58px; height: 4px; margin-top: 20px; }
  #custom-lp-wrapper .ec-h2 { margin-top: 81px; font-size: 35px; line-height: 49px; }
  #custom-lp-wrapper .ec-lead { margin-top: 56px; font-size: 18px; line-height: 49px; }

  /* FV */
  #custom-lp-wrapper .ec-fv-panel { background: none; clip-path: none; }
  #custom-lp-wrapper .ec-fv-panel::before,
  #custom-lp-wrapper .ec-fv-panel::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50%;
  }
  #custom-lp-wrapper .ec-fv-panel::before { left: 0; background: var(--grid); clip-path: polygon(0 var(--roof), 100% 0, 100% 100%, 0 100%); }
  #custom-lp-wrapper .ec-fv-panel::after { right: 0; background: var(--dots-blue); clip-path: polygon(0 0, 100% var(--roof), 100% 100%, 0 100%); }
  #custom-lp-wrapper .ec-fv-inner {
    z-index: 1;
    max-width: calc(1200px * var(--k) + var(--gutter) * 2);
    grid-template-columns: minmax(0, 548fr) minmax(0, 74fr) minmax(0, 578fr);
    grid-template-areas: "copy . visual" "price . cta";
    row-gap: calc(26px * var(--k));
    padding: calc(206px * var(--k)) var(--gutter) calc(137px * var(--k));
  }
  #custom-lp-wrapper .ec-fv-copy {
    margin: 0;
    padding: calc(31px * var(--k)) 0 0;
    background: none;
    clip-path: none;
    text-align: left;
  }
  #custom-lp-wrapper .ec-fv-enege { font-size: calc(32px * var(--k)); }
  #custom-lp-wrapper .ec-fv-logo { width: calc(541px * var(--k)); max-width: none; margin: calc(20px * var(--k)) 0 0; }
  #custom-lp-wrapper .ec-fv-kana { margin-top: calc(32px * var(--k)); font-size: calc(23px * var(--k)); }
  #custom-lp-wrapper .ec-fv-catch { align-items: flex-start; margin-top: calc(58px * var(--k)); font-size: calc(31px * var(--k)); gap: calc(24px * var(--k)); }
  #custom-lp-wrapper .ec-fv-visual { margin: 0; }
  #custom-lp-wrapper .ec-fv-price { width: calc(550px * var(--k)); max-width: none; justify-self: start; margin-top: 0; align-self: end; }
  #custom-lp-wrapper .ec-fv-price-lead { gap: calc(8px * var(--k)); }
  #custom-lp-wrapper .ec-fv-price-lead::after { inset: calc(6px * var(--k)); }
  #custom-lp-wrapper .ec-fv-price-lead-s { font-size: calc(18px * var(--k)); }
  #custom-lp-wrapper .ec-fv-price-lead-l { font-size: calc(24px * var(--k)); }
  #custom-lp-wrapper .ec-fv-price-body { padding: calc(47px * var(--k)) calc(15px * var(--k)) calc(9px * var(--k)) calc(22px * var(--k)); }
  #custom-lp-wrapper .ec-fv-price-tag { margin-right: calc(13px * var(--k)); font-size: calc(15px * var(--k)); padding: calc(5px * var(--k)) calc(7px * var(--k)); }
  #custom-lp-wrapper .ec-fv-price-num { font-size: calc(47px * var(--k)); }
  #custom-lp-wrapper .ec-fv-price-unit { margin-left: calc(7px * var(--k)); font-size: calc(25px * var(--k)); }
  #custom-lp-wrapper .ec-fv-price-tax { margin-top: calc(4px * var(--k)); padding-left: calc(89px * var(--k)); font-size: calc(13px * var(--k)); }
  #custom-lp-wrapper .ec-fv-price-note { margin-top: calc(10px * var(--k)); font-size: calc(13px * var(--k)); }
  #custom-lp-wrapper .ec-fv-cta {
    grid-template-columns: auto auto;
    justify-content: start;
    align-self: end;
    gap: calc(20px * var(--k));
    margin: 0 0 0 calc(8px * var(--k));
  }
  #custom-lp-wrapper .ec-fv-cta .ec-btn {
    min-width: calc(300px * var(--k));
    min-height: calc(64px * var(--k));
    gap: calc(14px * var(--k));
    padding: 0 calc(12px * var(--k)) 0 calc(34px * var(--k));
    font-size: calc(18px * var(--k));
  }
  #custom-lp-wrapper .ec-fv-cta .ec-btn--primary { font-size: calc(19px * var(--k)); }
  #custom-lp-wrapper .ec-fv-cta .ec-btn-arrow { width: calc(42px * var(--k)); height: calc(42px * var(--k)); }

  /* CONCEPT */
  #custom-lp-wrapper .ec-concept { padding-bottom: 181px; }
  #custom-lp-wrapper .ec-badges { grid-template-columns: repeat(3, 252px); justify-content: center; gap: 78px; max-width: none; padding: 0; margin-top: 79px; }
  #custom-lp-wrapper .ec-badge { width: 252px; }
  #custom-lp-wrapper .ec-badge-icon { padding-top: 22px; }
  #custom-lp-wrapper .ec-badge-text { padding-top: 22px; }
  #custom-lp-wrapper .ec-badge-s { font-size: 17px; letter-spacing: .04em; }
  #custom-lp-wrapper .ec-badge-l { margin-top: 7px; font-size: 25px; letter-spacing: .025em; }
  #custom-lp-wrapper .ec-concept-photos { margin-top: 158px; }
  #custom-lp-wrapper .ec-points { gap: 36px; margin-top: 124px; }
  #custom-lp-wrapper .ec-point { min-height: 254px; padding: 53px 20px 26px 26px; box-shadow: 7px 7px 0 var(--blue); }
  #custom-lp-wrapper .ec-point-no { left: 7px; top: -21px; }
  #custom-lp-wrapper .ec-point-no img { width: 119px; }
  #custom-lp-wrapper .ec-point:nth-child(2) .ec-point-no img { width: 133px; }
  #custom-lp-wrapper .ec-point:nth-child(3) .ec-point-no img { width: 126px; }
  #custom-lp-wrapper .ec-point-h { font-size: 22px; line-height: 38px; letter-spacing: .02em; }
  #custom-lp-wrapper .ec-point:nth-child(3) .ec-point-h { letter-spacing: -.01em; white-space: nowrap; }
  #custom-lp-wrapper .ec-point-text { margin-top: 8px; font-size: 16px; line-height: 25px; }

  /* BASIC */
  #custom-lp-wrapper .ec-basic { padding: 146px 0 74px; }
  #custom-lp-wrapper .ec-basic-illust { margin-top: 64px; }

  /* 6 POINTS */
  #custom-lp-wrapper .ec-six { padding: 128px 0 135px; }
  #custom-lp-wrapper .ec-six-h { font-size: 35px; line-height: 49px; padding: 0 4px 13px; }
  #custom-lp-wrapper .ec-six-h-in { background: linear-gradient(transparent 37%, var(--white) 37%, var(--white) 90%, transparent 90%); }
  #custom-lp-wrapper .ec-six-h::after { bottom: -12px; width: 22px; height: 12px; margin-left: -11px; }
  #custom-lp-wrapper .ec-six-list { grid-template-columns: 577px 577px; justify-content: space-between; row-gap: 40px; margin-top: 111px; }
  #custom-lp-wrapper .ec-six-item { grid-template-columns: 245px 1fr; min-height: 70px; box-shadow: 6px 8px 0 var(--yellow); }
  #custom-lp-wrapper .ec-six-key { padding: 0 22px 0 25px; clip-path: polygon(0 0, calc(100% - 13px) 0, 100% 50%, calc(100% - 13px) 100%, 0 100%); }
  #custom-lp-wrapper .ec-six-no { padding-right: 18px; margin-right: 18px; font-size: 22px; line-height: 34px; }
  #custom-lp-wrapper .ec-six-cat { font-size: 16px; letter-spacing: .02em; white-space: nowrap; }
  #custom-lp-wrapper .ec-six-val { padding: 0 16px 0 18px; font-size: 20px; letter-spacing: .02em; }
  #custom-lp-wrapper .ec-spec { margin-top: 85px; padding: 41px 39px 36px; border-radius: 20px; }
  #custom-lp-wrapper .ec-spec-group + .ec-spec-group { margin-top: 36px; }
  #custom-lp-wrapper .ec-spec-h { padding: 4px 29px; font-size: 22px; line-height: 29px; }
  #custom-lp-wrapper .ec-spec-list { grid-template-columns: repeat(3, 350px); justify-content: space-between; row-gap: 0; margin-top: 25px; }
  #custom-lp-wrapper .ec-spec-item { position: relative; gap: 14px; padding: 0 0 22px; }
  #custom-lp-wrapper .ec-spec-item:nth-child(n+4) { padding-bottom: 0; }
  #custom-lp-wrapper .ec-spec-item:not(:nth-child(3n+1))::before {
    content: "";
    position: absolute;
    left: -20px;
    top: 0;
    bottom: -20px;
    border-left: 2px dashed var(--rule);
  }
  #custom-lp-wrapper .ec-spec-item:nth-child(-n+3)::before { bottom: 0; }
  #custom-lp-wrapper .ec-spec-label { padding: 6px 10px 5px; font-size: 20px; line-height: 25px; }
  #custom-lp-wrapper .ec-spec-val { font-size: 24px; line-height: 28px; letter-spacing: -.018em; white-space: nowrap; }

  /* CATALOG */
  #custom-lp-wrapper .ec-catalog { padding: 115px 0 110px; }
  #custom-lp-wrapper .ec-catalog-lead { margin-top: 88px; line-height: 1.6; }
  #custom-lp-wrapper .ec-catalog-list { grid-template-columns: repeat(3, 370px); justify-content: space-between; margin: 89px 0 69px; }
  #custom-lp-wrapper .ec-catalog .ec-btn { min-height: 59px; padding: 0 10px 0 28px; gap: 50px; font-size: 18px; }
  #custom-lp-wrapper .ec-catalog .ec-btn .ec-btn-arrow { width: 40px; height: 40px; }

  /* FLOOR PLANS */
  #custom-lp-wrapper .ec-plan { padding: 143px 0 142px; }
  #custom-lp-wrapper .ec-plan-body { grid-template-columns: 553px 603px; justify-content: space-between; gap: 0; margin-top: 106px; }
  #custom-lp-wrapper .ec-plan-maps { gap: 27px; align-content: start; }
  #custom-lp-wrapper .ec-plan-floor { min-width: 68px; padding: 1px 0 2px; font-size: 22px; }
  #custom-lp-wrapper .ec-plan-map img { margin-top: 10px; }
  #custom-lp-wrapper .ec-plan-map--1f img { width: 554px; max-width: none; margin-left: -14px; }
  #custom-lp-wrapper .ec-rooms { gap: 0; padding-top: 42px; }
  #custom-lp-wrapper .ec-room { min-height: 294px; }
  #custom-lp-wrapper .ec-room:last-child { min-height: 0; }
  #custom-lp-wrapper .ec-room-h { padding-left: 27px; font-size: 22px; line-height: 27px; background: linear-gradient(transparent 10px, var(--blue-pale) 10px) 0 0 / 100% 27px no-repeat; }
  #custom-lp-wrapper .ec-room-h::before { left: 6px; top: 8px; width: 13px; height: 13px; }
  #custom-lp-wrapper .ec-room-body { grid-template-columns: 256px 1fr; gap: 26px; margin-top: 26px; }
  #custom-lp-wrapper .ec-room-text { font-size: 19px; line-height: 33px; letter-spacing: -.04em; }

  /* 平屋 */
  #custom-lp-wrapper .ec-hiraya { padding: 135px 0 142px; }
  #custom-lp-wrapper .ec-hiraya .ec-h2 { margin-top: 0; }
  #custom-lp-wrapper .ec-hiraya-body { grid-template-columns: 659px 509px; justify-content: space-between; gap: 0; margin-top: 98px; }
  #custom-lp-wrapper .ec-hiraya-plan { padding: 43px 48px 43px 49px; }
  #custom-lp-wrapper .ec-hiraya-photos { gap: 31px; }

  /* STANDARD */
  #custom-lp-wrapper .ec-standard { padding: 143px 0 135px; }
  #custom-lp-wrapper .ec-std-grid { grid-template-columns: 544px 544px; justify-content: space-between; column-gap: 0; row-gap: 87px; margin-top: 88px; }
  #custom-lp-wrapper .ec-std-h { min-width: 223px; padding: 4px 26px; font-size: 22px; line-height: 30px; }
  #custom-lp-wrapper .ec-std-text { margin-top: 20px; font-size: 18px; line-height: 33px; }
  #custom-lp-wrapper .ec-slider { margin-top: 40px; }
  #custom-lp-wrapper .ec-slider-dots { margin-top: 14px; }
  #custom-lp-wrapper .ec-dot { width: 21px; height: 18px; }
  #custom-lp-wrapper .ec-std--illust { padding-bottom: 42px; }

  /* OPTION */
  #custom-lp-wrapper .ec-option { padding: 143px 0 138px; }
  #custom-lp-wrapper .ec-opt-cat { margin-top: 88px; }
  #custom-lp-wrapper .ec-opt-cat + .ec-opt-cat { margin-top: 86px; }
  #custom-lp-wrapper .ec-opt-bar-h { padding: 0 30px 0 37px; font-size: 22px; letter-spacing: .03em; }
  #custom-lp-wrapper .ec-opt-bar-h::before { width: 13px; height: 13px; }
  #custom-lp-wrapper .ec-opt-bar-text { padding: 11px 36px 11px 33px; font-size: 19px; line-height: 27px; }
  #custom-lp-wrapper .ec-opt-list { grid-template-columns: repeat(3, 379px); justify-content: space-between; gap: 40px 0; }
  #custom-lp-wrapper .ec-opt-name { margin-top: 37px; padding: 4px 10px; font-size: 22px; line-height: 34px; }
  #custom-lp-wrapper .ec-opt-card:nth-child(3) .ec-opt-name { letter-spacing: -.05em; }
  #custom-lp-wrapper .ec-opt-text { margin-top: 20px; font-size: 18px; line-height: 33px; letter-spacing: -.03em; }
  #custom-lp-wrapper .ec-opt-illust { grid-column: 2 / 4; justify-self: start; width: 488px; margin: 65px 0 0 161px; }

  /* SAFETY */
  #custom-lp-wrapper .ec-safety { padding: 143px 0 148px; }
  #custom-lp-wrapper .ec-sf { margin-top: 67px; }
  #custom-lp-wrapper .ec-sf + .ec-sf { margin-top: 66px; }
  #custom-lp-wrapper .ec-sf-h { gap: 57px; font-size: 29px; line-height: 40px; }
  #custom-lp-wrapper .ec-sf-tag { width: 61px; height: 60px; padding-bottom: 9px; font-size: 22px; }
  #custom-lp-wrapper .ec-sf-title { padding-bottom: 7px; white-space: nowrap; }
  #custom-lp-wrapper .ec-sf-text { margin-top: 31px; font-size: 18px; line-height: 33px; letter-spacing: -.032em; }
  #custom-lp-wrapper .ec-seis { grid-template-columns: 324px 213px 1px 571px; justify-content: space-between; align-items: start; gap: 0; margin-top: 35px; }
  #custom-lp-wrapper .ec-seis::before {
    content: "";
    grid-column: 3;
    grid-row: 1;
    align-self: stretch;
    border-left: 2px dashed var(--rule);
    margin-top: 9px;
  }
  #custom-lp-wrapper .ec-seis-fig { grid-column: 1; grid-row: 1; width: 324px; max-width: none; margin: 0; }
  #custom-lp-wrapper .ec-seis-std { grid-column: 2; grid-row: 1; margin-top: 9px; }
  #custom-lp-wrapper .ec-seis-up { grid-column: 4; grid-row: 1; margin-top: 8px; }
  #custom-lp-wrapper .ec-seis-tab { min-width: 156px; padding: 8px 20px 6px; font-size: 22px; line-height: 28px; text-align: center; }
  #custom-lp-wrapper .ec-seis-tab--up { min-width: 235px; }
  #custom-lp-wrapper .ec-seis-std-body { grid-template-columns: 1fr; height: 415px; grid-template-rows: auto 1fr; }
  #custom-lp-wrapper .ec-seis-grade { margin: 24px 17px 0; padding: 0; height: 159px; }
  #custom-lp-wrapper .ec-seis-grade-s,
  #custom-lp-wrapper .ec-seis-ratio-s { font-size: 22px; line-height: 24px; }
  #custom-lp-wrapper .ec-seis-grade-n,
  #custom-lp-wrapper .ec-seis-ratio-n { margin-top: 18px; font-size: 60px; line-height: 50px; }
  #custom-lp-wrapper .ec-seis-ratio { margin-top: 24px; justify-content: flex-start; padding-top: 54px; }
  #custom-lp-wrapper .ec-seis-up-body { border-radius: 0 8px 8px 8px; }
  #custom-lp-wrapper .ec-seis-up-h { padding: 8px 29px; font-size: 24px; line-height: 32px; letter-spacing: .02em; }
  #custom-lp-wrapper .ec-seis-up-in { padding: 17px 26px 24px 29px; }
  #custom-lp-wrapper .ec-seis-up-catch { margin-top: 22px; font-size: 24px; line-height: 30px; }
  #custom-lp-wrapper .ec-seis-up-text { margin-top: 12px; font-size: 18px; line-height: 27px; }

  #custom-lp-wrapper .ec-ins { grid-template-columns: 673px 503px; justify-content: space-between; gap: 0; margin-top: 50px; }
  #custom-lp-wrapper .ec-ins-legend img { margin: 0 0 0 93px; }
  #custom-lp-wrapper .ec-ins-figs { grid-template-columns: 332px 332px; justify-content: space-between; gap: 0; margin-top: 6px; }
  #custom-lp-wrapper .ec-sash { padding: 43px 18px 42px 18px; }
  #custom-lp-wrapper .ec-sash-h { padding: 14px 8px; font-size: 23px; line-height: 30px; }
  #custom-lp-wrapper .ec-sash-body { grid-template-columns: 166px 271px; justify-content: space-between; gap: 0; margin-top: 12px; padding-left: 13px; }
  #custom-lp-wrapper .ec-sash-list { gap: 34px; }
  #custom-lp-wrapper .ec-sash-item { padding: 0; height: 57px; display: flex; align-items: center; justify-content: center; font-size: 23px; }

  #custom-lp-wrapper .ec-tl {
    grid-template-columns: 117px repeat(10, 1fr);
    grid-template-rows: auto auto auto;
    margin-top: 43px;
  }
  #custom-lp-wrapper .ec-tl-title { grid-column: 2 / -1; grid-row: 1; font-size: 20px; line-height: 29px; padding: 7px; }
  #custom-lp-wrapper .ec-tl-title-n { font-size: 26px; }
  #custom-lp-wrapper .ec-tl-bracket { position: relative; grid-row: 2; justify-content: center; height: 54px; margin: 0; font-size: 20px; letter-spacing: .1em; }
  #custom-lp-wrapper .ec-tl-bracket::after { content: none; }
  #custom-lp-wrapper .ec-tl-bracket::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 8px;
    height: 9px;
    border: solid var(--navy);
    border-width: 0 1.5px;
    background: linear-gradient(var(--navy), var(--navy)) center / 100% 1.5px no-repeat;
  }
  #custom-lp-wrapper .ec-tl-bracket-in { position: relative; top: -6px; }
  #custom-lp-wrapper .ec-tl-bracket--jio { grid-column: 2 / 6; margin-right: 5px; }
  #custom-lp-wrapper .ec-tl-bracket--ymt { grid-column: 6 / -1; margin-left: 5px; }
  #custom-lp-wrapper .ec-tl-bracket-in img { width: 130px; }
  #custom-lp-wrapper .ec-tl-head { display: grid; grid-column: 1; grid-row: 3; row-gap: 16px; width: 101px; }
  #custom-lp-wrapper .ec-tl-step { grid-row: 3; display: grid; grid-template-columns: 1fr; row-gap: 16px; gap: 16px 0; }
  #custom-lp-wrapper .ec-tl-step--jio { order: 0; }
  #custom-lp-wrapper .ec-tl-step--ymt { order: 0; }
  #custom-lp-wrapper .ec-tl-year {
    position: relative;
    height: 50px;
    margin: 0 -7px 0 0;
    padding: 0 0 0 4px;
    font-size: 18px;
    letter-spacing: .06em;
    clip-path: polygon(0 0, calc(100% - 13px) 0, 100% 50%, calc(100% - 13px) 100%, 0 100%, 13px 50%);
  }
  #custom-lp-wrapper .ec-tl-step--first .ec-tl-year { clip-path: polygon(0 0, calc(100% - 13px) 0, 100% 50%, calc(100% - 13px) 100%, 0 100%); }
  #custom-lp-wrapper .ec-tl-step--first-ymt .ec-tl-year { clip-path: polygon(0 0, calc(100% - 13px) 0, 100% 50%, calc(100% - 13px) 100%, 0 100%, 13px 50%); }
  #custom-lp-wrapper .ec-tl-step--last .ec-tl-year { margin-right: 0; }
  #custom-lp-wrapper .ec-tl-year--head {
    margin: 0;
    padding: 0 14px 0 0;
    border: 1.5px solid var(--navy);
    border-radius: 4px;
    background: var(--cream);
    color: var(--navy);
    font-size: 18px;
    letter-spacing: .02em;
    clip-path: none;
    position: relative;
  }
  #custom-lp-wrapper .ec-tl-check {
    position: relative;
    width: 94px;
    height: 48px;
    margin: 0 auto;
    padding: 4px 0 0;
    font-size: 18px;
    line-height: 19px;
  }
  #custom-lp-wrapper .ec-tl-fee { display: block; font-size: 13px; }
  #custom-lp-wrapper .ec-tl-check::after {
    content: "";
    position: absolute;
    left: 100%;
    top: 50%;
    width: 16px;
    height: 10px;
    margin-top: -5px;
    background: var(--navy);
  }
  #custom-lp-wrapper .ec-tl-step--last .ec-tl-check::after { content: none; }
  #custom-lp-wrapper .ec-tl-step--pre-last .ec-tl-check::after { width: 16px; clip-path: polygon(0 20%, 55% 20%, 55% 0, 100% 50%, 55% 100%, 55% 80%, 0 80%); height: 14px; margin-top: -7px; }
  #custom-lp-wrapper .ec-tl-check--head {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 101px;
    padding: 0;
    border-radius: 4px;
    background: var(--cream);
  }
  #custom-lp-wrapper .ec-tl-check--head::after { content: none; }

  /* RESERVE */
  #custom-lp-wrapper .ec-reserve { padding: 146px 0 160px; }
  #custom-lp-wrapper .ec-reserve .ec-h2 { margin-top: 82px; }

}

/* 1024〜1279：FV をやや縮小、コンテンツ幅も流動に */
@media (min-width: 1024px) and (max-width: 1279.98px) {
  #custom-lp-wrapper .ec-fv { --k: .78; }
  #custom-lp-wrapper .ec-badges { grid-template-columns: repeat(3, 220px); gap: 56px; }
  #custom-lp-wrapper .ec-badge { width: 220px; }
  #custom-lp-wrapper .ec-six-list,
  #custom-lp-wrapper .ec-catalog-list,
  #custom-lp-wrapper .ec-std-grid,
  #custom-lp-wrapper .ec-opt-list { grid-template-columns: repeat(var(--cols, 2), 1fr); column-gap: 32px; }
  #custom-lp-wrapper .ec-catalog-list,
  #custom-lp-wrapper .ec-opt-list { --cols: 3; }
  #custom-lp-wrapper .ec-spec-list { grid-template-columns: repeat(3, 1fr); column-gap: 40px; }
  #custom-lp-wrapper .ec-six-item { grid-template-columns: 42% 1fr; }
  #custom-lp-wrapper .ec-six-val { font-size: 18px; }
  #custom-lp-wrapper .ec-plan-body { grid-template-columns: 1fr 1.09fr; column-gap: 40px; }
  #custom-lp-wrapper .ec-plan-map--1f img { width: 100%; margin-left: 0; }
  #custom-lp-wrapper .ec-room-body { grid-template-columns: 42% 1fr; }
  #custom-lp-wrapper .ec-room-text { font-size: 16px; line-height: 28px; }
  #custom-lp-wrapper .ec-hiraya-body { grid-template-columns: 1.29fr 1fr; column-gap: 31px; }
  #custom-lp-wrapper .ec-opt-illust { margin-left: 10%; width: 64%; }
  #custom-lp-wrapper .ec-seis { grid-template-columns: 27% 18% 1px 47%; }
  #custom-lp-wrapper .ec-seis-fig { width: 100%; }
  #custom-lp-wrapper .ec-seis-std-body { height: auto; padding-bottom: 20px; }
  #custom-lp-wrapper .ec-seis-ratio { padding-top: 30px; }
  #custom-lp-wrapper .ec-seis-grade-n, #custom-lp-wrapper .ec-seis-ratio-n { font-size: 48px; }
  #custom-lp-wrapper .ec-ins { grid-template-columns: 56% 41%; }
  #custom-lp-wrapper .ec-ins-legend img { margin: 0 auto; }
  #custom-lp-wrapper .ec-ins-figs { grid-template-columns: 1fr 1fr; column-gap: 12px; }
  #custom-lp-wrapper .ec-sash-body { grid-template-columns: 34% 58%; }
  #custom-lp-wrapper .ec-sash-item { font-size: 19px; }
  #custom-lp-wrapper .ec-tl-check { width: 86%; font-size: 15px; }
  #custom-lp-wrapper .ec-tl-year { font-size: 15px; }
  #custom-lp-wrapper .ec-tl-check::after { width: 16%; }
}

/* ゆとりのある幅では FV のビジュアルをカンプ通りコンテンツ幅の外へはみ出させる */
@media (min-width: 1440px) {
  #custom-lp-wrapper .ec-fv-visual { width: calc(100% + 120px); }
}
/* 1024〜1439：CTA 2 つがビジュアル列（578）に収まらないので、右寄せで少し小さく */
@media (min-width: 1024px) and (max-width: 1439.98px) {
  #custom-lp-wrapper .ec-fv-cta { grid-column: 2 / 4; justify-self: end; gap: calc(12px * var(--k)); margin-left: 0; }
  #custom-lp-wrapper .ec-fv-cta .ec-btn { min-width: calc(280px * var(--k)); padding-left: calc(28px * var(--k)); }
}

@media (prefers-reduced-motion: reduce) {
  #custom-lp-wrapper *,
  #custom-lp-wrapper *::before,
  #custom-lp-wrapper *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* =====================================================================
   CV改善版で追加・変更した部品
   （設計の根拠は CV改善版_設計書.md）
   ===================================================================== */
#custom-lp-wrapper.ec {
  /* CTA ボタンだけ同系色で一段深く：白文字のコントラスト 2.4 → 3.4〜3.5（19px 太字＝大きい文字の AA） */
  --cta-orange: #d86f0c;
  --cta-orange-sh: #a95406;
  --cta-blue: #5b8bcb;
  --cta-blue-sh: #3f6ba6;
}
#custom-lp-wrapper blockquote { margin: 0; padding: 0; border: 0; background: none; quotes: none; font-style: normal; }
#custom-lp-wrapper blockquote::before,
#custom-lp-wrapper blockquote::after { content: none; }

/* ---- ボタン ---- */
#custom-lp-wrapper .ec-btn--orange { --c: var(--cta-orange); --sh: var(--cta-orange-sh); }
#custom-lp-wrapper .ec-btn--blue { --c: var(--cta-blue); --sh: var(--cta-blue-sh); }
#custom-lp-wrapper .ec-btn { font-size: 17px; }
#custom-lp-wrapper .ec-btn--primary { min-height: 62px; font-size: 19px; box-shadow: 0 4px 0 var(--sh); }
#custom-lp-wrapper .ec-btn--primary:hover { transform: translateY(2px); box-shadow: 0 2px 0 var(--sh); }
@media (min-width: 400px) { #custom-lp-wrapper .ec-btn-label { white-space: nowrap; } }
#custom-lp-wrapper .ec-btn-free {
  display: inline-block;
  margin-left: .55em;
  padding: .14em .6em .16em;
  border-radius: 999px;
  background: var(--white);
  color: var(--navy);
  font-size: .68em;
  line-height: 1.4;
  letter-spacing: .04em;
  vertical-align: .14em;
}
#custom-lp-wrapper .ec-btn--wide { display: flex; width: 100%; max-width: 440px; margin-left: auto; margin-right: auto; }
#custom-lp-wrapper .ec-fixcta-btn--blue { background: var(--cta-blue); }
#custom-lp-wrapper .ec-fixcta-btn--orange { background: var(--cta-orange); }
#custom-lp-wrapper .ec-fixcta-l { font-size: 19px; letter-spacing: .06em; }

/* ---- 仕様表：SP は最初の 1 グループだけ。:has() で切り替わる要素に transition は付けない ---- */
#custom-lp-wrapper .ec-spec { position: relative; }
#custom-lp-wrapper .ec-spec-toggle { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
#custom-lp-wrapper .ec-spec-group--more { display: none; }
#custom-lp-wrapper .ec-spec:has(.ec-spec-toggle:checked) .ec-spec-group--more { display: block; }
#custom-lp-wrapper .ec-spec-more { margin-top: 20px; text-align: center; }
#custom-lp-wrapper .ec-spec-more-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 24px;
  border: 1.5px solid var(--navy);
  border-radius: 999px;
  background: var(--white);
  font-size: 14px;
  letter-spacing: .04em;
  cursor: pointer;
}
#custom-lp-wrapper .ec-spec-more-btn::after {
  content: "";
  width: 8px;
  height: 8px;
  margin: -4px 0 0 10px;
  border-right: 2px solid var(--navy);
  border-bottom: 2px solid var(--navy);
  transform: rotate(45deg);
}
#custom-lp-wrapper .ec-spec:has(.ec-spec-toggle:checked) .ec-spec-more-btn::after { margin-top: 4px; transform: rotate(-135deg); }
#custom-lp-wrapper .ec-spec-more-close { display: none; }
#custom-lp-wrapper .ec-spec:has(.ec-spec-toggle:checked) .ec-spec-more-open { display: none; }
#custom-lp-wrapper .ec-spec:has(.ec-spec-toggle:checked) .ec-spec-more-close { display: inline; }
#custom-lp-wrapper .ec-spec:has(.ec-spec-toggle:focus-visible) .ec-spec-more-btn { outline: 3px solid var(--orange); outline-offset: 3px; }

/* ---- カタログ ---- */
#custom-lp-wrapper .ec-catalog .ec-catalog-lead { margin-top: 18px; }

/* ---- 施主の声（間取りに 1 件差し込み） ---- */
#custom-lp-wrapper .ec-quote {
  position: relative;
  max-width: 920px;
  margin: 56px auto 0;
  padding: 30px 22px 22px;
  border-radius: 10px;
  background: var(--blue-pale);
}
#custom-lp-wrapper .ec-quote::before {
  content: "\201C";
  position: absolute;
  left: 16px;
  top: -18px;
  font-family: var(--en);
  font-size: 64px;
  line-height: 1;
  color: var(--orange);
}
#custom-lp-wrapper .ec-quote-text { font-size: 15px; line-height: 1.9; letter-spacing: .02em; text-align: justify; }
#custom-lp-wrapper .ec-quote-cap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-top: 14px; }
#custom-lp-wrapper .ec-quote-name { font-size: 15px; letter-spacing: .06em; }
#custom-lp-wrapper .ec-quote-meta { font-size: 12px; letter-spacing: .02em; }
#custom-lp-wrapper .ec-quote-note { max-width: 920px; margin: 10px auto 0; font-size: 11px; line-height: 1.6; letter-spacing: 0; }

/* ---- 中間 CTA（方眼の屋根） ---- */
#custom-lp-wrapper .ec-midcta {
  position: relative;
  padding: calc(var(--roof) * .5 + 44px) 0 56px;
  background: var(--grid);
  clip-path: polygon(0 calc(var(--roof) * .5), 50% 0, 100% calc(var(--roof) * .5), 100% 100%, 0 100%);
  text-align: center;
}
#custom-lp-wrapper .ec-midcta-roof { display: none; }
#custom-lp-wrapper .ec-midcta-h { font-size: 23px; line-height: 1.5; letter-spacing: .04em; }
#custom-lp-wrapper .ec-midcta-text { margin-top: 14px; font-size: 14px; line-height: 1.9; letter-spacing: .02em; }
#custom-lp-wrapper .ec-midcta-btns { display: grid; gap: 14px; max-width: 420px; margin: 26px auto 0; }
#custom-lp-wrapper .ec-midcta-btns .ec-btn { width: 100%; }

/* ---- オプション：タブ ---- */
#custom-lp-wrapper .ec-opt-tabs { position: relative; margin-top: 40px; }
#custom-lp-wrapper .ec-opt-radio { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
#custom-lp-wrapper .ec-opt-tablist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
#custom-lp-wrapper .ec-opt-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 6px 4px;
  border: 1.5px solid rgba(255, 255, 255, .55);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  background: rgba(255, 255, 255, .08);
  color: var(--white);
  font-size: 13px;
  line-height: 1.3;
  letter-spacing: 0;
  text-align: center;
  cursor: pointer;
}
#custom-lp-wrapper .ec-opt-tab:hover { background: rgba(255, 255, 255, .18); }
#custom-lp-wrapper .ec-opt-tabs:has(#ec-opt-1:checked) .ec-opt-tab--1,
#custom-lp-wrapper .ec-opt-tabs:has(#ec-opt-2:checked) .ec-opt-tab--2,
#custom-lp-wrapper .ec-opt-tabs:has(#ec-opt-3:checked) .ec-opt-tab--3 { background: var(--white); border-color: var(--white); color: var(--navy); }
#custom-lp-wrapper .ec-opt-tabs:has(#ec-opt-1:focus-visible) .ec-opt-tab--1,
#custom-lp-wrapper .ec-opt-tabs:has(#ec-opt-2:focus-visible) .ec-opt-tab--2,
#custom-lp-wrapper .ec-opt-tabs:has(#ec-opt-3:focus-visible) .ec-opt-tab--3 { outline: 3px solid var(--orange); outline-offset: -3px; }
#custom-lp-wrapper .ec-opt-tabs .ec-opt-cat { display: none; margin-top: 0; }
#custom-lp-wrapper .ec-opt-tabs:has(#ec-opt-1:checked) .ec-opt-cat--1,
#custom-lp-wrapper .ec-opt-tabs:has(#ec-opt-2:checked) .ec-opt-cat--2,
#custom-lp-wrapper .ec-opt-tabs:has(#ec-opt-3:checked) .ec-opt-cat--3 { display: block; }
#custom-lp-wrapper .ec-opt-tabs .ec-opt-bar { grid-template-columns: minmax(0, 1fr); min-height: 0; border-radius: 0 0 6px 6px; }
/* タブ名と重複するので、カテゴリ名は読み上げ用にだけ残す */
#custom-lp-wrapper .ec-opt-tabs .ec-opt-bar-h { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
#custom-lp-wrapper .ec-opt-tabs .ec-opt-bar-text { padding: 14px 18px 16px; }
@media (min-width: 1024px) { #custom-lp-wrapper .ec-opt-tabs .ec-opt-bar-text { padding: 18px 36px 20px; text-align: center; } }



/* ---- 最終 CTA（来場予約が主） ---- */
#custom-lp-wrapper .ec-reserve-lead { margin-top: 18px; }
#custom-lp-wrapper .ec-reserve-main {
  padding: 26px 20px 26px;
  border: 2px solid var(--navy);
  border-radius: 12px;
  background: var(--white);
}
#custom-lp-wrapper .ec-reserve-label {
  display: inline-block;
  padding: 4px 16px;
  border-radius: 999px;
  background: var(--cta-blue);
  color: var(--white);
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: .06em;
}
#custom-lp-wrapper .ec-reserve-label--sub { background: var(--cta-orange); }
#custom-lp-wrapper .ec-reserve-main-h { margin-top: 12px; font-size: 20px; line-height: 1.5; letter-spacing: .04em; }
#custom-lp-wrapper .ec-reserve-sub-text { margin-top: 14px; font-size: 14px; line-height: 1.8; letter-spacing: .02em; }

@media (max-width: 1023.98px) {
  #custom-lp-wrapper .ec-midcta-h,
  #custom-lp-wrapper .ec-reserve-main-h { word-break: auto-phrase; }
}

@media (min-width: 768px) {
  #custom-lp-wrapper .ec-spec-group--more { display: block; }
  #custom-lp-wrapper .ec-spec-more { display: none; }
  #custom-lp-wrapper .ec-catalog .ec-catalog-lead { margin-top: 30px; }
  #custom-lp-wrapper .ec-quote { margin-top: 80px; padding: 36px 40px 26px; }
  #custom-lp-wrapper .ec-quote-text { font-size: 16px; }
  #custom-lp-wrapper .ec-midcta { padding-bottom: 72px; }
  #custom-lp-wrapper .ec-midcta-h { font-size: 28px; }
  #custom-lp-wrapper .ec-midcta-text { font-size: 16px; }
  #custom-lp-wrapper .ec-midcta-btns { grid-template-columns: auto auto; justify-content: center; max-width: none; gap: 20px; }
  #custom-lp-wrapper .ec-midcta-btns .ec-btn { width: auto; min-width: 280px; }
  #custom-lp-wrapper .ec-opt-tabs { margin-top: 60px; }
  #custom-lp-wrapper .ec-opt-tab { min-height: 58px; font-size: 17px; }
  #custom-lp-wrapper .ec-reserve-main { padding: 32px 30px 32px; }
}

@media (min-width: 1024px) {
  #custom-lp-wrapper .ec-btn { font-size: 18px; }
  #custom-lp-wrapper .ec-btn--primary { font-size: 19px; }
  #custom-lp-wrapper .ec-catalog .ec-h2 { margin-top: 81px; }
  #custom-lp-wrapper .ec-catalog .ec-catalog-lead { margin-top: 48px; line-height: 40px; }
  #custom-lp-wrapper .ec-catalog .ec-btn { min-height: 64px; padding: 0 12px 0 34px; gap: 40px; font-size: 19px; }
  #custom-lp-wrapper .ec-quote { margin-top: 110px; padding: 44px 56px 30px; }
  #custom-lp-wrapper .ec-quote::before { left: 30px; top: -26px; font-size: 88px; }
  #custom-lp-wrapper .ec-quote-text { font-size: 18px; line-height: 34px; }
  #custom-lp-wrapper .ec-quote-name { font-size: 17px; }
  #custom-lp-wrapper .ec-quote-meta { font-size: 13px; }
  #custom-lp-wrapper .ec-quote-note { font-size: 12px; }
  #custom-lp-wrapper .ec-midcta { padding: calc(var(--roof) * .5 + 56px) 0 96px; }
  #custom-lp-wrapper .ec-midcta-h { font-size: 35px; line-height: 49px; letter-spacing: .035em; }
  #custom-lp-wrapper .ec-midcta-text { margin-top: 24px; font-size: 18px; line-height: 36px; }
  #custom-lp-wrapper .ec-midcta-btns { margin-top: 40px; gap: 24px; }
  #custom-lp-wrapper .ec-midcta-btns .ec-btn { min-width: 320px; min-height: 64px; padding: 0 12px 0 34px; }
  #custom-lp-wrapper .ec-midcta-btns .ec-btn-arrow,
  #custom-lp-wrapper .ec-reserve .ec-btn-arrow,
  #custom-lp-wrapper .ec-catalog .ec-btn-arrow { width: 42px; height: 42px; }
  #custom-lp-wrapper .ec-opt-tabs { margin-top: 88px; }
  #custom-lp-wrapper .ec-opt-tablist { gap: 10px; }
  #custom-lp-wrapper .ec-opt-tab { min-height: 64px; font-size: 20px; letter-spacing: .06em; }
  #custom-lp-wrapper .ec-reserve-lead { margin-top: 56px; line-height: 40px; }
  #custom-lp-wrapper .ec-reserve-main { padding: 44px 48px 44px; }
  #custom-lp-wrapper .ec-reserve-label { font-size: 16px; padding: 5px 20px; }
  #custom-lp-wrapper .ec-reserve-main-h { margin-top: 16px; font-size: 28px; line-height: 40px; }
  #custom-lp-wrapper .ec-reserve-sub-text { font-size: 16px; line-height: 30px; }
}
@media (min-width: 1024px) and (max-width: 1279.98px) {
}

/* wpautop 対策：HTML では figcaption を blockquote より前に置き（</blockquote> の直後にインライン要素が来ると <p> が作られる）、表示順だけ CSS で戻す */
#custom-lp-wrapper .ec-quote { display: flex; flex-direction: column; }
#custom-lp-wrapper .ec-quote-q { order: 2; }
#custom-lp-wrapper .ec-quote-cap { order: 3; }

/* ---- 来場特典：最終CTAはサイト共通の来場バナー（ショートコード）。受け取り条件の文は来場キャンペーンLP〈３軸/来場CP〉と同一 ---- */
#custom-lp-wrapper .ec-gift-note { margin-top: 14px; font-size: 12px; line-height: 1.7; letter-spacing: 0; }
#custom-lp-wrapper .ec-midcta .ec-gift-note { margin-top: 18px; }
#custom-lp-wrapper .ec-gift-link { display: inline-block; margin: -12px 0; padding: 12px 0; text-decoration: underline; text-underline-offset: 3px; }
#custom-lp-wrapper .ec-terms { margin-top: 18px; border-top: 1px dashed var(--rule); }
#custom-lp-wrapper .ec-terms-sum {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 28px 0 0;
  list-style: none;
  cursor: pointer;
  font-size: 13px;
  letter-spacing: .04em;
  text-decoration: underline;
  text-underline-offset: 3px;
}
#custom-lp-wrapper .ec-terms-sum::-webkit-details-marker { display: none; }
#custom-lp-wrapper .ec-terms-sum::marker { content: ""; }
#custom-lp-wrapper .ec-terms-sum::after {
  content: "";
  position: absolute;
  right: 6px;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -2px;
  border-right: 2px solid var(--navy);
  border-bottom: 2px solid var(--navy);
  transform: rotate(45deg);
}
#custom-lp-wrapper .ec-terms[open] .ec-terms-sum::after { margin-top: 4px; transform: rotate(-135deg); }
#custom-lp-wrapper .ec-terms-sum:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
#custom-lp-wrapper .ec-terms-body { padding: 8px 0 4px; }
#custom-lp-wrapper .ec-terms-lead { font-size: 13px; line-height: 1.7; }
#custom-lp-wrapper .ec-terms-list { display: grid; gap: 4px; margin-top: 6px; }
#custom-lp-wrapper .ec-terms-item { position: relative; padding-left: 1.1em; font-size: 12px; line-height: 1.7; letter-spacing: 0; }
#custom-lp-wrapper .ec-terms-item::before { content: "・" !important; position: absolute; left: 0; top: 0; }
#custom-lp-wrapper .ec-terms-text { margin-top: 8px; font-size: 12px; line-height: 1.7; letter-spacing: 0; }
#custom-lp-wrapper .ec-terms-legal { margin-top: 10px; font-size: 11px; line-height: 1.7; letter-spacing: 0; }
@media (min-width: 1024px) {
  #custom-lp-wrapper .ec-gift-note { font-size: 13px; }
  #custom-lp-wrapper .ec-terms-sum { font-size: 14px; }
  #custom-lp-wrapper .ec-terms-lead { font-size: 14px; }
  #custom-lp-wrapper .ec-terms-item,
  #custom-lp-wrapper .ec-terms-text { font-size: 13px; }
  #custom-lp-wrapper .ec-terms-legal { font-size: 12px; }
}
/* サイト共通の来場バナー（WordPress ではショートコード [include name='goraijo-cam-form-img'] の出力：p.ymtbanner > img） */
#custom-lp-wrapper .ec-cp-banner { position: relative; margin-top: 22px; }
#custom-lp-wrapper .ec-cp-banner .ymtbanner { margin: 0 !important; padding: 0; }
#custom-lp-wrapper .ec-cp-banner img { display: block; width: 100%; height: auto; border-radius: 6px; box-shadow: 0 2px 10px rgba(75, 84, 110, .18); }
/* バナー下端の「ご来場予約はこちら」も押せるよう、全面を来場予約へのリンクに（キーボードは下のボタンで操作） */
#custom-lp-wrapper .ec-cp-banner-link { position: absolute; inset: 0; z-index: 1; }
@media (min-width: 1024px) {
  #custom-lp-wrapper .ec-cp-banner { margin-top: 30px; }
}

/* =====================================================================
   デザイン詰め（2026-10-29 チームレビュー）
   ===================================================================== */
/* 段落の最終行に 1〜2 文字だけ落ちる「泣き別れ」を防ぐ（対応ブラウザのみ。非対応でも崩れない） */
#custom-lp-wrapper p,
#custom-lp-wrapper .ec-room-text,
#custom-lp-wrapper .ec-opt-text,
#custom-lp-wrapper .ec-terms-item { text-wrap: pretty; }

/* ---- 本文は Medium(500)：全部 Bold だと紙面が黒く重いので、見出し 700 と差をつける（白地・紺地の本文のみ。水色地の BASIC は 700 のまま） ---- */
#custom-lp-wrapper .ec-concept .ec-lead,
#custom-lp-wrapper .ec-catalog .ec-lead,
#custom-lp-wrapper .ec-plan .ec-lead,
#custom-lp-wrapper .ec-hiraya .ec-lead,
#custom-lp-wrapper .ec-standard .ec-lead,
#custom-lp-wrapper .ec-option .ec-lead,
#custom-lp-wrapper .ec-safety .ec-lead,
#custom-lp-wrapper .ec-reserve .ec-lead,
#custom-lp-wrapper .ec-point-text,
#custom-lp-wrapper .ec-room-text,
#custom-lp-wrapper .ec-sf-text,
#custom-lp-wrapper .ec-std-text,
#custom-lp-wrapper .ec-opt-text,
#custom-lp-wrapper .ec-opt-bar-text,
#custom-lp-wrapper .ec-midcta-text,
#custom-lp-wrapper .ec-quote-text,
#custom-lp-wrapper .ec-quote-note,
#custom-lp-wrapper .ec-seis-up-text,
#custom-lp-wrapper .ec-reserve-sub-text,
#custom-lp-wrapper .ec-gift-note,
#custom-lp-wrapper .ec-terms-lead,
#custom-lp-wrapper .ec-terms-item,
#custom-lp-wrapper .ec-terms-text,
#custom-lp-wrapper .ec-terms-legal { font-weight: 500; }

/* ---- 約物の詰めは見出し・キャッチ・ラベルだけ。本文で詰めると句点の後が窮屈になり、行頭に「）」が出る原因にもなる ---- */
#custom-lp-wrapper :is(.ec-lead, .ec-point-text, .ec-room-text, .ec-sf-text, .ec-std-text, .ec-opt-text, .ec-opt-bar-text, .ec-midcta-text, .ec-quote-text, .ec-quote-note, .ec-quote-meta, .ec-seis-up-text, .ec-reserve-sub-text, .ec-gift-note, .ec-terms-body, .ec-terms-legal, .ec-catalog-cap) :is(.ec-yk, .ec-yk-m) { letter-spacing: inherit; }
#custom-lp-wrapper :is(.ec-lead, .ec-point-text, .ec-room-text, .ec-sf-text, .ec-std-text, .ec-opt-text, .ec-opt-bar-text, .ec-midcta-text, .ec-quote-text, .ec-quote-note, .ec-quote-meta, .ec-seis-up-text, .ec-reserve-sub-text, .ec-gift-note, .ec-terms-body, .ec-terms-legal, .ec-catalog-cap) :is(.ec-yk-o, .ec-yk-m) { margin-left: 0; }

/* ---- 改行：途中で切りたくない語・文節単位で折り返す本文 ---- */
#custom-lp-wrapper .ec-nb { white-space: nowrap; }
/* 文節で折り返す短めの文は balance と組み合わせる。Chrome では text-wrap: pretty を併用すると文節の区切りが無視されるため */
#custom-lp-wrapper .ec-lead,
#custom-lp-wrapper .ec-room-text,
#custom-lp-wrapper .ec-midcta-text,
#custom-lp-wrapper .ec-opt-bar-text,
#custom-lp-wrapper .ec-reserve-sub-text,
#custom-lp-wrapper .ec-point-h { word-break: auto-phrase; text-wrap: balance; }
/* 声は文節で折り返し、左揃えに（両端揃えだと文節の切れ目で字間が空く） */
#custom-lp-wrapper .ec-quote-text { word-break: auto-phrase; text-wrap: wrap; text-align: left; }

/* ---- 見出しの大きさを 1 段に（SP の h2 相当は 22px） ---- */
#custom-lp-wrapper .ec-six-h,
#custom-lp-wrapper .ec-midcta-h { font-size: 22px; }

/* ---- 長いリード（SP で 4 行以上）は左揃えで読ませる。PC 用の改行は SP では使わない ---- */
@media (max-width: 767.98px) {
  #custom-lp-wrapper .ec-lead { line-height: 2; }
  #custom-lp-wrapper .ec-lead--long { text-align: left; }
  #custom-lp-wrapper .ec-lead--long br { display: none; }
}

/* ---- ボタン：hover は明るくするだけ、押し込みは :active（hover で「押した」ように見せない） ---- */
#custom-lp-wrapper .ec-btn:hover { transform: none; }
#custom-lp-wrapper .ec-btn:active { transform: translateY(1px); }
#custom-lp-wrapper .ec-btn--primary:hover { transform: none; box-shadow: 0 4px 0 var(--sh); }
#custom-lp-wrapper .ec-btn--primary:active { transform: translateY(2px); box-shadow: 0 2px 0 var(--sh); }

/* ---- 仕様表のラベル：大きさ・配置（中央の小さな札）は詰めたまま、あしらいは元のデザイン（青の塗り＋紺の枠＋丸型＋白文字）に（2026-10-30 ご指示） ---- */
#custom-lp-wrapper .ec-spec-item { align-items: center; }
#custom-lp-wrapper .ec-spec-label {
  display: inline-block;
  padding: 3px 14px 4px;
  border: 1.5px solid var(--navy);
  border-radius: 999px;
  background: var(--blue);
  color: var(--white);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .02em;
}
/* 樹脂サッシの効果：ボタンに見えない「チェック付きの行」に */
#custom-lp-wrapper .ec-sash-item {
  position: relative;
  padding: 11px 8px 11px 40px;
  border: 0;
  border-radius: 6px;
  background: var(--white);
  color: var(--navy);
  text-align: left;
}
#custom-lp-wrapper .ec-sash-item::before {
  content: "" !important;
  position: absolute;
  left: 15px;
  top: 50%;
  width: 14px;
  height: 8px;
  margin-top: -7px;
  border-left: 3px solid var(--cta-blue);
  border-bottom: 3px solid var(--cta-blue);
  transform: rotate(-45deg);
}
/* オプションの商品名：塗りピル → 下線の小見出し */
#custom-lp-wrapper .ec-opt-name {
  margin-top: 16px;
  padding: 0 0 8px;
  border-bottom: 2px solid var(--blue);
  border-radius: 0;
  background: none;
  font-size: 17px;
  letter-spacing: .04em;
  text-align: left;
}
#custom-lp-wrapper .ec-opt-text { margin-top: 12px; }

/* ---- コントラスト：水色地の白文字・有償の年表 ---- */
#custom-lp-wrapper .ec-basic .ec-h2,
#custom-lp-wrapper .ec-basic .ec-lead { text-shadow: 0 1px 2px rgba(43, 58, 94, .35); }
#custom-lp-wrapper .ec-tl-title,
#custom-lp-wrapper .ec-tl-step--paid .ec-tl-year,
#custom-lp-wrapper .ec-tl-step--paid .ec-tl-check { background: var(--cta-blue); }

/* ---- カタログ：冊子らしい影、何のページかのキャプション、サムネもリンク ---- */
#custom-lp-wrapper .ec-catalog-link { display: block; color: var(--navy); }
#custom-lp-wrapper .ec-catalog-link img { box-shadow: 0 10px 24px rgba(75, 84, 110, .16); transition: transform .25s ease; }
#custom-lp-wrapper .ec-catalog-link:hover img { transform: translateY(-3px); }
#custom-lp-wrapper .ec-catalog-cap { display: block; margin-top: 10px; font-size: 12px; line-height: 1.5; letter-spacing: .08em; text-align: center; }
#custom-lp-wrapper .ec-catalog-list { row-gap: 18px; }

/* ---- 耐震：SP の「1.5倍」も「耐震等級3」と同じ内側の箱に ---- */
@media (max-width: 1023.98px) {
  #custom-lp-wrapper .ec-seis-ratio { margin: 12px 12px 12px 0; border-radius: 8px; }
}

/* ---- 見出しの【等級】は SP では 2 行目に ---- */
#custom-lp-wrapper .ec-sf-sub { white-space: nowrap; }
@media (max-width: 767.98px) {
  #custom-lp-wrapper .ec-sf-sub { display: block; font-size: 15px; }
}

/* ---- SP：小さすぎる文字の底上げ・バッジを少し大きく ---- */
@media (max-width: 767.98px) {
  #custom-lp-wrapper .ec-badges { margin-left: -8px; margin-right: -8px; gap: 6px; }
  #custom-lp-wrapper .ec-six-cat { font-size: 13px; letter-spacing: 0; }
  #custom-lp-wrapper .ec-badge-s { font-size: 10.5px; letter-spacing: 0; }
  #custom-lp-wrapper .ec-badge-l { font-size: 14px; letter-spacing: .02em; }
  #custom-lp-wrapper .ec-quote-note { font-size: 12px; }
  #custom-lp-wrapper .ec-terms-legal { font-size: 11.5px; }
  /* FV の価格：タグを上の段に出し、「1,468」と「万円〜」を同じ行に（内容は変えない） */
  #custom-lp-wrapper .ec-fv-price-main { display: grid; grid-template-columns: auto auto; justify-content: start; align-items: baseline; column-gap: 4px; }
  #custom-lp-wrapper .ec-fv-price-tag { grid-column: 1 / -1; justify-self: start; margin: 0 0 6px; }
  #custom-lp-wrapper .ec-fv-price-unit { white-space: nowrap; }
  #custom-lp-wrapper .ec-fv-price-tax { padding-left: 0; }
}

/* ---- 最終CTA：来場カード（全幅）＋資料請求の横帯。主と従をはっきり ---- */
#custom-lp-wrapper .ec-reserve { clip-path: polygon(0 calc(var(--roof) * .5), 50% 0, 100% calc(var(--roof) * .5), 100% 100%, 0 100%); padding-top: calc(var(--roof) * .5 + 56px); }
#custom-lp-wrapper .ec-reserve-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 32px; }
#custom-lp-wrapper .ec-reserve-label {
  display: inline-block;
  padding: 0 0 0 10px;
  border-left: 4px solid var(--cta-blue);
  border-radius: 0;
  background: none;
  color: var(--navy);
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .06em;
}
#custom-lp-wrapper .ec-reserve-label--sub { border-left-color: var(--cta-orange); background: none; }
#custom-lp-wrapper .ec-reserve-main { border-radius: 16px; }
#custom-lp-wrapper .ec-reserve-voice { margin-top: 16px; }
#custom-lp-wrapper .ec-quote.ec-quote--in { max-width: none; margin: 18px 0 0; padding: 24px 18px 16px; }
#custom-lp-wrapper .ec-quote.ec-quote--in::before { left: 12px; top: -14px; font-size: 48px; }
#custom-lp-wrapper .ec-quote--in .ec-quote-text { font-size: 14px; line-height: 1.9; }
#custom-lp-wrapper .ec-reserve-voice .ec-quote-note { max-width: none; margin: 8px 0 0; }
#custom-lp-wrapper .ec-reserve-main .ec-cp-banner { margin-top: 20px; }
#custom-lp-wrapper .ec-reserve-btn { margin-top: 18px; }
#custom-lp-wrapper .ec-reserve-sub {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "label" "img" "text" "btn";
  row-gap: 12px;
  padding: 20px;
  border: 1.5px solid var(--rule);
  border-radius: 16px;
  background: rgba(255, 255, 255, .7);
}
#custom-lp-wrapper .ec-reserve-sub .ec-reserve-label { grid-area: label; justify-self: start; }
#custom-lp-wrapper .ec-reserve-sub .ec-reserve-banner { grid-area: img; }
#custom-lp-wrapper .ec-reserve-sub-text { grid-area: text; margin-top: 0; }
#custom-lp-wrapper .ec-reserve-sub-btn { grid-area: btn; margin-top: 4px; }
@media (max-width: 767.98px) {
  /* 来場カードは内側の余白を少し詰める。来場バナーはカードの内側に収め、左右に余白をとる（2026-10-30 ご指示） */
  #custom-lp-wrapper .ec-reserve-main { padding: 24px 16px 22px; }
  #custom-lp-wrapper .ec-reserve-btn { font-size: 18px; }
  #custom-lp-wrapper .ec-reserve-main .ec-cp-banner img { border-radius: var(--r-m); box-shadow: var(--shadow-soft); }
}
@media (min-width: 768px) {
  #custom-lp-wrapper .ec-reserve-sub {
    grid-template-columns: 220px minmax(0, 1fr);
    grid-template-areas: "img label" "img text" "btn btn";
    column-gap: 24px;
    align-items: center;
    padding: 24px 28px;
  }
  #custom-lp-wrapper .ec-reserve-sub-btn { justify-self: center; width: auto; min-width: 320px; }
  #custom-lp-wrapper .ec-quote.ec-quote--in { padding: 28px 26px 18px; }
  #custom-lp-wrapper .ec-quote--in .ec-quote-text { font-size: 15px; }
}

/* ---- 追従CTA：FV を過ぎてから出す（スクロール連動。非対応ブラウザ・動きを減らす設定では常に表示） ---- */
#custom-lp-wrapper .ec-fixcta-s { font-size: 11px; }
@keyframes ec-fix-in {
  0%, 80% { transform: translateY(110%); visibility: hidden; }
  100% { transform: none; visibility: visible; }
}
@supports (animation-timeline: scroll()) {
  #custom-lp-wrapper .ec-fixcta { animation: ec-fix-in linear both; animation-timeline: scroll(root); animation-range: 0 700px; }
}

@media (min-width: 768px) {
  #custom-lp-wrapper .ec-lead { line-height: 2.1; }
  #custom-lp-wrapper .ec-spec-label { font-size: 13px; }
  #custom-lp-wrapper .ec-catalog-cap { font-size: 13px; }
}

@media (min-width: 1024px) {
  /* セクション導入：アイブロウ→見出し→リードの間を詰め、リードは段落として読める行間・行長に */
  #custom-lp-wrapper .ec-h2,
  #custom-lp-wrapper .ec-catalog .ec-h2,
  #custom-lp-wrapper .ec-reserve .ec-h2 { margin-top: 48px; }
  #custom-lp-wrapper .ec-lead,
  #custom-lp-wrapper .ec-catalog .ec-catalog-lead,
  #custom-lp-wrapper .ec-reserve-lead { max-width: 44em; margin: 32px auto 0; line-height: 36px; }
  #custom-lp-wrapper .ec-concept { padding-bottom: 120px; }
  #custom-lp-wrapper .ec-standard { padding-bottom: 80px; }
  #custom-lp-wrapper .ec-six-list { margin-top: 72px; }
  /* 本文の字間は詰めない */
  #custom-lp-wrapper .ec-sf-text,
  #custom-lp-wrapper .ec-room-text,
  #custom-lp-wrapper .ec-opt-text { letter-spacing: .02em; }
  #custom-lp-wrapper .ec-room-text { font-size: 18px; line-height: 32px; }
  #custom-lp-wrapper .ec-opt-bar-text { font-size: 18px; }
  #custom-lp-wrapper .ec-sash-h { font-size: 22px; }
  #custom-lp-wrapper .ec-seis-up-h { font-size: 22px; }
  #custom-lp-wrapper .ec-six-h,
  #custom-lp-wrapper .ec-midcta-h { font-size: 35px; }
  #custom-lp-wrapper .ec-spec { border-radius: 16px; }
  #custom-lp-wrapper .ec-spec-label { padding: 4px 14px 5px; font-size: 15px; line-height: 22px; }
  #custom-lp-wrapper .ec-sash-item { justify-content: flex-start; padding: 0 12px 0 48px; font-size: 20px; }
  #custom-lp-wrapper .ec-sash-item::before { left: 18px; width: 16px; height: 9px; }
  #custom-lp-wrapper .ec-opt-name,
  #custom-lp-wrapper .ec-opt-card:nth-child(3) .ec-opt-name { margin-top: 24px; padding: 0 0 10px; font-size: 20px; line-height: 30px; letter-spacing: .04em; }
  #custom-lp-wrapper .ec-opt-text { margin-top: 16px; }
  #custom-lp-wrapper .ec-catalog-cap { margin-top: 14px; font-size: 14px; }
  /* 耐震：図・標準設備・アップグレードの下端を揃える */
  #custom-lp-wrapper .ec-seis { align-items: stretch; }
  #custom-lp-wrapper .ec-seis-std,
  #custom-lp-wrapper .ec-seis-up { display: flex; flex-direction: column; margin-top: 0; }
  #custom-lp-wrapper .ec-seis-std-body,
  #custom-lp-wrapper .ec-seis-up-body { flex: 1; height: auto; }
  #custom-lp-wrapper .ec-seis-ratio { margin: 24px 17px 17px; border-radius: 8px; }
  #custom-lp-wrapper .ec-seis::before { margin-top: 0; }

  /* 最終CTA：来場カードは全幅で中を2カラム（左：見出し・声・条件／右：バナー・ボタン）、資料請求はその下の横帯 */
  #custom-lp-wrapper .ec-reserve { padding-top: calc(var(--roof) * .5 + 100px); padding-bottom: 140px; }
  #custom-lp-wrapper .ec-reserve-lead { line-height: 36px; }
  #custom-lp-wrapper .ec-reserve-grid { max-width: 1040px; margin: 64px auto 0; gap: 28px; }
  #custom-lp-wrapper .ec-reserve-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 440px;
    grid-template-rows: auto auto 1fr auto auto auto;
    grid-template-areas: "label banner" "head banner" "voice banner" "voice btn" "terms terms" "legal legal";
    column-gap: 48px;
    padding: 44px 48px 36px;
  }
  #custom-lp-wrapper .ec-reserve-main .ec-reserve-label { grid-area: label; justify-self: start; font-size: 17px; }
  #custom-lp-wrapper .ec-reserve-main-h { grid-area: head; margin-top: 12px; }
  #custom-lp-wrapper .ec-reserve-voice { grid-area: voice; margin-top: 8px; }
  #custom-lp-wrapper .ec-reserve-main .ec-cp-banner { grid-area: banner; align-self: start; margin-top: 0; }
  #custom-lp-wrapper .ec-reserve-btn { grid-area: btn; align-self: end; max-width: none; margin-top: 20px; min-height: 68px; font-size: 20px; padding: 0 12px 0 36px; }
  #custom-lp-wrapper .ec-reserve-main .ec-terms { grid-area: terms; margin-top: 28px; }
  #custom-lp-wrapper .ec-reserve-main .ec-terms-legal { grid-area: legal; }
  #custom-lp-wrapper .ec-quote.ec-quote--in { margin-top: 22px; padding: 30px 30px 20px; }
  #custom-lp-wrapper .ec-quote.ec-quote--in::before { left: 18px; top: -18px; font-size: 56px; }
  #custom-lp-wrapper .ec-quote--in .ec-quote-text { font-size: 16px; line-height: 30px; }
  #custom-lp-wrapper .ec-reserve-sub {
    grid-template-columns: 240px minmax(0, 1fr) auto;
    grid-template-areas: "img label btn" "img text btn";
    column-gap: 32px;
    row-gap: 6px;
    padding: 24px 32px;
  }
  #custom-lp-wrapper .ec-reserve-sub .ec-reserve-label { align-self: end; font-size: 16px; }
  #custom-lp-wrapper .ec-reserve-sub-text { align-self: start; font-size: 16px; line-height: 28px; }
  #custom-lp-wrapper .ec-reserve-sub-btn { align-self: center; justify-self: end; min-width: 300px; min-height: 60px; padding: 0 12px 0 32px; }

  /* 追従CTA：PC でも画面下に（FV を過ぎてから） */
  #custom-lp-wrapper .ec-fixcta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 300px));
    justify-content: center;
    gap: 16px;
    padding: 10px 24px;
  }
  #custom-lp-wrapper .ec-fixcta-btn { flex-direction: row; gap: 10px; min-height: 52px; }
  #custom-lp-wrapper .ec-fixcta-s { padding: 2px 10px; border-radius: 999px; background: rgba(255, 255, 255, .22); font-size: 12px; }
  #custom-lp-wrapper .ec-fixcta-l { margin-top: 0; font-size: 17px; }
}
@supports (animation-timeline: scroll()) {
  @media (min-width: 1024px) {
    #custom-lp-wrapper .ec-fixcta { animation-range: 0 900px; }
  }
}
@media (min-width: 1024px) and (max-width: 1279.98px) {
  #custom-lp-wrapper .ec-reserve-main { grid-template-columns: minmax(0, 1fr) 380px; column-gap: 36px; padding: 40px 36px 32px; }
  #custom-lp-wrapper .ec-reserve-sub { grid-template-columns: 200px minmax(0, 1fr) auto; }
  #custom-lp-wrapper .ec-reserve-sub-btn { min-width: 260px; }
}
/* 縦の短い PC 画面（ノートPC・125% 表示）では FV の縦の余白だけ詰め、CTA を最初の画面に近づける。中身は変えない */
@media (min-width: 1024px) and (max-height: 940px) {
  #custom-lp-wrapper .ec-fv { padding-top: 20px; }
  #custom-lp-wrapper .ec-fv-inner { padding-top: calc(160px * var(--k)); padding-bottom: calc(100px * var(--k)); }
  #custom-lp-wrapper .ec-fv-kana { margin-top: calc(22px * var(--k)); }
  #custom-lp-wrapper .ec-fv-catch { margin-top: calc(40px * var(--k)); }
}

/* =====================================================================
   デザイン詰め 2巡目（2026-10-29 チームレビュー：1024・768 の崩れ、字間の間延び、部品の統一、動き）
   ===================================================================== */
#custom-lp-wrapper.ec {
  --r-s: 4px;
  --r-m: 8px;
  --r-l: 16px;
  --shadow-soft: 0 8px 20px rgba(75, 84, 110, .14);
  --arrow-navy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M1 7h15M10 1.5 15.5 7 10 12.5' fill='none' stroke='%234b546e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---- 両端揃えの段落に改行禁止の塊が入ると前の行の字間が間延びするので、本文は左揃えに ---- */
#custom-lp-wrapper .ec-point-text,
#custom-lp-wrapper .ec-sf-text,
#custom-lp-wrapper .ec-opt-text { text-align: left; }
#custom-lp-wrapper .ec-six-val,
#custom-lp-wrapper .ec-seis-up-catch { word-break: auto-phrase; text-wrap: balance; }

/* ---- 角丸は 4／8／16 の 3 段、ぼかし影は 1 種類に ---- */
#custom-lp-wrapper .ec-sash,
#custom-lp-wrapper .ec-sash-h,
#custom-lp-wrapper .ec-quote { border-radius: var(--r-m); }
#custom-lp-wrapper .ec-opt-tabs .ec-opt-bar { border-radius: 0 0 var(--r-m) var(--r-m); }
#custom-lp-wrapper .ec-tl-title,
#custom-lp-wrapper .ec-tl-check,
#custom-lp-wrapper .ec-sash-item { border-radius: var(--r-s); }
#custom-lp-wrapper .ec-catalog-link img { box-shadow: var(--shadow-soft); }

/* ---- 文字の細部 ---- */
/* 年表の数字も価格・耐震の数字と同じ Inter に（和文字は自動で Zen Kaku Gothic New） */
#custom-lp-wrapper .ec-tl-year,
#custom-lp-wrapper .ec-tl-title-n { font-family: var(--en), var(--jp); }
/* カタカナだけの小見出しは字間を詰める */
#custom-lp-wrapper .ec-room-h,
#custom-lp-wrapper .ec-opt-name { letter-spacing: .02em; }
/* 【 の前の空きを打ち消す（SP で 2 行目に落ちたときも行頭がそろう） */
#custom-lp-wrapper .ec-sf-sub { margin-left: -.5em; }

/* ---- 操作のフィードバック ---- */
#custom-lp-wrapper .ec-cp-banner img { transition: filter .25s ease; }
#custom-lp-wrapper .ec-cp-banner:hover img { filter: brightness(1.05); }
#custom-lp-wrapper .ec-spec-more-btn:hover { background: var(--blue-pale); }
#custom-lp-wrapper .ec-terms-sum:hover { color: var(--cta-blue); }
#custom-lp-wrapper .ec-fixcta-btn { transition: filter .25s ease; }
#custom-lp-wrapper .ec-fixcta-btn:hover { filter: brightness(1.06); }
/* スライダー：写真を押すと次へ進むことが分かるよう、右下に矢印を常に表示 */
#custom-lp-wrapper .ec-slider-view { position: relative; }
#custom-lp-wrapper .ec-slider-view::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92) var(--arrow-navy) center / 14px 11px no-repeat;
  box-shadow: 0 2px 6px rgba(43, 58, 94, .2);
  pointer-events: none;
}

/* ---- オプション：白地の切り抜き写真（蓄電池・エコキュート）を淡い地に溶かし、「白い空箱」に見せない ---- */
#custom-lp-wrapper .ec-opt-photo--cut { background: var(--blue-pale); }
#custom-lp-wrapper .ec-opt-photo--cut img { mix-blend-mode: multiply; }

/* ---- 最終CTA の地も中間CTA と同じ方眼に（屋根＋方眼＝行動する場所）。資料請求の帯は不透明に ---- */
#custom-lp-wrapper .ec-reserve { background: var(--grid); }
#custom-lp-wrapper .ec-reserve-sub { background: var(--cream); }

/* ---- 追従CTA：最終CTA が画面に入ったら下げて、二重表示を避ける（対応ブラウザのみ） ---- */
@keyframes ec-fix-out { from { translate: 0 0; } to { translate: 0 110%; } }
@supports (timeline-scope: --a) and (animation-timeline: view()) {
  #custom-lp-wrapper { timeline-scope: --ec-last; }
  #custom-lp-wrapper .ec-reserve-grid { view-timeline: --ec-last block; }
  #custom-lp-wrapper .ec-fixcta {
    animation: ec-fix-in linear both, ec-fix-out linear both;
    animation-timeline: scroll(root), --ec-last;
    animation-range: 0 700px, entry 10% entry 50%;
  }
  @media (min-width: 1024px) {
    #custom-lp-wrapper .ec-fixcta { animation-range: 0 900px, entry 10% entry 50%; }
  }
}

/* ---- 動き（1つだけ）：Point カードと 6 つのポイントの「ずらした影」が、画面に入るにつれて紙が持ち上がるように広がる。
        内容は最初から表示。スクロール連動なので戻すと元に戻る。動きを減らす設定では動かない ---- */
#custom-lp-wrapper .ec-point { --lx: 6px; --ly: 7px; --lc: var(--blue); }
#custom-lp-wrapper .ec-six-item { --lx: 5px; --ly: 6px; --lc: var(--yellow); }
@media (min-width: 1024px) {
  #custom-lp-wrapper .ec-point { --lx: 7px; --ly: 7px; }
  #custom-lp-wrapper .ec-six-item { --lx: 6px; --ly: 8px; }
}
@keyframes ec-lift {
  from { translate: var(--lx) var(--ly); box-shadow: 0 0 0 var(--lc); }
  to { translate: 0 0; box-shadow: var(--lx) var(--ly) 0 var(--lc); }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    #custom-lp-wrapper .ec-point,
    #custom-lp-wrapper .ec-six-item { animation: ec-lift linear both; animation-timeline: view(); animation-range: entry 10% entry 70%; }
  }
}

/* ---- SP ---- */
@media (max-width: 767.98px) {
  /* 左揃えの長いリードは行末まで詰めて組む（下の本文と同じ質感に） */
  #custom-lp-wrapper .ec-lead--long { word-break: normal; text-wrap: pretty; }
}
@media (max-width: 1023.98px) {
  /* 6 つのポイント：ラベルが矢羽に食い込まないよう、キー列を少し広く */
  #custom-lp-wrapper .ec-six-item { grid-template-columns: 46% minmax(0, 1fr); }
  #custom-lp-wrapper .ec-six-no { padding-right: 8px; margin-right: 8px; }
}

/* ---- タブレット（768〜1023）：「伸ばしたスマホ」「縮めたPC」に見える所を組み直す ---- */
@media (min-width: 768px) and (max-width: 1023.98px) {
  /* Point：3 列だと 1 列 150px で本文が詰まるので、1 列にしてカードの中を「見出し｜本文」の横組みに */
  #custom-lp-wrapper .ec-points { grid-template-columns: minmax(0, 1fr); max-width: 640px; margin-left: auto; margin-right: auto; gap: 52px; }
  #custom-lp-wrapper .ec-point { display: grid; grid-template-columns: 12em minmax(0, 1fr); column-gap: 24px; align-items: start; padding: 50px 28px 28px; }
  #custom-lp-wrapper .ec-point-text { margin-top: 0; }
  /* 保証の年表：縦型のまま横に伸ばさず、JIO（左）とヤマト住建（右）の 2 列に */
  #custom-lp-wrapper .ec-tl { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; grid-auto-flow: row dense; }
  #custom-lp-wrapper .ec-tl-title { grid-column: 1 / -1; }
  #custom-lp-wrapper .ec-tl-bracket--jio,
  #custom-lp-wrapper .ec-tl-step--jio { grid-column: 1; }
  #custom-lp-wrapper .ec-tl-bracket--ymt,
  #custom-lp-wrapper .ec-tl-step--ymt { grid-column: 2; }
  /* 樹脂サッシ：幅いっぱいに広げず中央にまとめる */
  #custom-lp-wrapper .ec-sash { padding: 28px 40px 32px; }
  #custom-lp-wrapper .ec-sash-body { grid-template-columns: 150px minmax(0, 300px); justify-content: center; column-gap: 48px; }
}

/* ---- 768 以上 ---- */
@media (min-width: 768px) {
  /* 中間CTA の 2 つのボタン幅をそろえる */
  #custom-lp-wrapper .ec-midcta-btns { grid-template-columns: repeat(2, minmax(0, 320px)); }
  #custom-lp-wrapper .ec-midcta-btns .ec-btn { width: 100%; min-width: 0; }
  #custom-lp-wrapper .ec-cp-banner img { border-radius: var(--r-m); box-shadow: var(--shadow-soft); }
}

/* ---- PC ---- */
@media (min-width: 1024px) {
  #custom-lp-wrapper .ec-midcta-btns { grid-template-columns: repeat(2, minmax(0, 344px)); }
  /* リードは HTML で想定した PC の 1 行（約 44 字）が入る幅に */
  #custom-lp-wrapper .ec-lead,
  #custom-lp-wrapper .ec-catalog .ec-catalog-lead,
  #custom-lp-wrapper .ec-reserve-lead { max-width: 46em; }
  /* 性能の本文は 1 行 約 46 字に（全幅 63 字は長すぎる） */
  #custom-lp-wrapper .ec-sf-text { max-width: 48em; }
  /* 安全 → 最終CTA の継ぎ目：屋根の肩の分だけ下余白を詰める（標準仕様 → 中間CTA と同じ考え方） */
  #custom-lp-wrapper .ec-safety { padding-bottom: 96px; }
  /* 最終CTA：来場ボタンはバナーの直下に付ける */
  #custom-lp-wrapper .ec-reserve-main { grid-template-rows: auto auto auto 1fr auto auto; }
  #custom-lp-wrapper .ec-reserve-btn { align-self: start; margin-top: 24px; }
  /* 追従バー：本文の CTA と同じ「ラベル → 白い札」の順と色に、上辺に影 */
  #custom-lp-wrapper .ec-fixcta { box-shadow: 0 -4px 16px rgba(43, 58, 94, .14); }
  #custom-lp-wrapper .ec-fixcta-s { order: 2; padding: 1px 8px; background: var(--white); color: var(--navy); font-size: 11px; }
}

/* ---- 1024〜1279：カンプの 1440 用の値（改行禁止・% 固定の列）で崩れていた所 ---- */
@media (min-width: 1024px) and (max-width: 1279.98px) {
  /* Point：3 枚の幅をそろえ、見出しと本文の開始位置を subgrid でそろえる */
  #custom-lp-wrapper .ec-points { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto; row-gap: 0; column-gap: 28px; }
  #custom-lp-wrapper .ec-point { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 10px; min-height: 0; padding: 50px 18px 24px 22px; }
  #custom-lp-wrapper .ec-point-h { font-size: 19px; line-height: 30px; }
  #custom-lp-wrapper .ec-point:nth-child(3) .ec-point-h { white-space: normal; letter-spacing: .02em; }
  #custom-lp-wrapper .ec-point-text { margin-top: 0; font-size: 15.5px; line-height: 26px; }
  /* 仕様表：値が枠からはみ出さないように */
  #custom-lp-wrapper .ec-spec { padding: 36px 28px 32px; }
  #custom-lp-wrapper .ec-spec-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #custom-lp-wrapper .ec-spec-val { white-space: normal; font-size: 19px; line-height: 1.45; word-break: auto-phrase; text-wrap: balance; }
  /* 6 つのポイント：ラベルを折り返せるように、キー列を広く */
  #custom-lp-wrapper .ec-six-item { grid-template-columns: 50% minmax(0, 1fr); }
  #custom-lp-wrapper .ec-six-key { padding: 0 20px 0 18px; }
  #custom-lp-wrapper .ec-six-no { padding-right: 12px; margin-right: 12px; }
  #custom-lp-wrapper .ec-six-cat { white-space: normal; font-size: 15px; line-height: 1.3; }
  /* 標準設備：説明を 2 行に収め、キッチンとバスの写真の高さをそろえる */
  #custom-lp-wrapper .ec-std-text { font-size: 16px; line-height: 30px; }
  /* 耐震：「建築基準法の」を割らない */
  #custom-lp-wrapper .ec-seis-grade-s,
  #custom-lp-wrapper .ec-seis-ratio-s { font-size: 18px; }
  #custom-lp-wrapper .ec-seis-ratio-s { white-space: nowrap; }
}

/* ---- TOP のボタンの崩れ修正（2026-10-30）----
   1440px 以上で、来場ボタンの矢印がボタンの右端からはみ出していた。FV の CTA 欄（578px）に 2 つのボタンが収まらず、
   列が縮められたうえ、ボタンの max-width:100% で中身より狭く固定されていたため。列は中身の幅にし、右の写真側へはみ出してよい */
@media (min-width: 1024px) {
  #custom-lp-wrapper .ec-fv-cta { grid-template-columns: max-content max-content; }
  #custom-lp-wrapper .ec-fv-cta .ec-btn { max-width: none; }
}
/* 幅 400px 未満のスマホ：「来場を予約する」と「特典あり」が 2 行に割れないよう、主ボタンの文字と札を少し小さく */
@media (max-width: 399.98px) {
  #custom-lp-wrapper .ec-btn { gap: 10px; padding-left: 20px; }
  #custom-lp-wrapper .ec-btn--primary,
  #custom-lp-wrapper .ec-reserve-btn { font-size: 17px; }
  #custom-lp-wrapper .ec-btn-free { margin-left: .45em; padding: .12em .5em .14em; }
}
