@charset "UTF-8";

:root {
  --color-text: #333333;
  --color-text-soft: #555555;
  --color-muted: #777777;
  --color-line: #e5e1d8;

  --color-white: #ffffff;
  --color-ivory: #fbfaf5;
  --color-beige: #f5efe4;
  --color-blue: #eaf6f7;
  --color-green-pale: #eef6ed;
  --color-green: #007a42;
  --color-green-dark: #00683a;
  --color-orange: #e86614;

  --font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  --font-serif: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;

  --max-width: 1120px;
  --header-width: 1220px;
  --fv-width: 1240px;

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --shadow-soft: 0 16px 40px rgba(74, 62, 46, 0.08);

  --header-height: 92px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-height);
}

body {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.8;
  background: var(--color-white);
  letter-spacing: 0.02em;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
}

ul {
  margin: 0;
  padding: 0;
}

li {
  list-style: none;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 9999;
  transform: translateY(-140%);
  padding: 8px 12px;
  color: var(--color-white);
  background: var(--color-green);
  border-radius: 4px;
}

.skip-link:focus {
  transform: translateY(0);
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.container {
  width: min(calc(100% - 48px), var(--max-width));
  margin-inline: auto;
}

.section {
  padding: 96px 0;
}

.section-heading {
  margin-bottom: 42px;
}

.section-heading--center {
  text-align: center;
}

.section-label {
  margin: 0 0 10px;
  color: var(--color-green);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.section-title {
  margin: 0;
  color: #2d2d2d;
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.05em;
}

.section-lead {
  margin: 20px 0 0;
  color: var(--color-text-soft);
  font-size: 16px;
  line-height: 2;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  min-height: 48px;
  padding: 12px 28px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button--primary {
  color: var(--color-white);
  background: var(--color-green);
  box-shadow: 0 10px 24px rgba(0, 122, 66, 0.18);
}

.button--primary:hover {
  background: var(--color-green-dark);
}

.button--outline {
  color: var(--color-green);
  background: var(--color-white);
  border: 1px solid var(--color-green);
}

.button--outline:hover {
  color: var(--color-white);
  background: var(--color-green);
}

.button--white {
  color: var(--color-green);
  background: var(--color-white);
  border: 1px solid rgba(255, 255, 255, 0.72);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  height: var(--header-height);
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid rgba(229, 225, 216, 0.75);
  backdrop-filter: blur(12px);
}

.site-header__inner {
  position: relative;
  display: grid;
  grid-template-columns: 190px 1fr auto auto;
  align-items: center;
  width: min(calc(100% - 48px), var(--header-width));
  height: 100%;
  margin-inline: auto;
  gap: 24px;
}

.site-header__brand {
  display: inline-flex;
  align-items: center;
  width: 150px;
}

.site-header__brand img {
  width: 100%;
}

.site-header__center-logo {
  position: absolute;
  left: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 250px;
  transform: translateX(-50%);
}

.site-header__center-logo img {
  width: 100%;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 18px;
  justify-self: end;
  font-size: 13px;
  font-weight: 700;
  color: #3d3d3d;
}

.site-nav a:hover {
  color: var(--color-green);
}

.site-header__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 18px;
  color: var(--color-white);
  font-size: 13px;
  font-weight: 700;
  background: var(--color-green);
  border-radius: 999px;
  white-space: nowrap;
}

.menu-button,
.sp-menu {
  display: none;
}

/* FV */
.fv {
  padding: 76px 0 82px;
  min-height: calc(100svh - var(--header-height));
  display: flex;
  align-items: center;
  background:
    linear-gradient(90deg, rgba(253, 251, 245, 0.98) 0%, rgba(249, 250, 245, 0.94) 48%, rgba(236, 247, 247, 0.92) 100%);
}

.fv__inner {
  display: grid;
  grid-template-columns: minmax(470px, 0.94fr) minmax(600px, 1.06fr);
  align-items: center;
  width: min(calc(100% - 48px), var(--fv-width));
  margin-inline: auto;
  gap: 92px;
}

.fv__content {
  padding-top: 0;
}

.fv__eyebrow {
  display: inline-block;
  margin: 0 0 26px;
  padding-bottom: 3px;
  color: var(--color-green);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  border-bottom: 2px solid var(--color-green);
}

.fv__logo-title {
  margin: 0;
}

.fv__logo-title img {
  width: min(100%, 460px);
}

.fv__lead {
  margin: 30px 0 0;
  color: #242424;
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 2.05;
  letter-spacing: 0.08em;
}

.fv__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.fv__badges li {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 9px 16px;
  color: var(--color-green);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid var(--color-green);
}

.fv__buttons {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 52px;
}

.fv__buttons .button {
  min-width: 210px;
  min-height: 52px;
  font-size: 16px;
}

.fv__visual {
  overflow: hidden;
  border-radius: 44px;
}

.fv__visual img {
  width: 100%;
  aspect-ratio: 1.22 / 1;
  object-fit: cover;
  object-position: center;
}

.concept {
  background: var(--color-white);
}

.concept__inner {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  align-items: center;
  gap: 70px;
}

.concept__note {
  margin: 22px 0 0;
  padding: 18px 22px;
  color: var(--color-text-soft);
  background: var(--color-ivory);
  border-left: 4px solid var(--color-orange);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.concept__image {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.concept__image img {
  width: 100%;
  aspect-ratio: 1.35 / 1;
  object-fit: cover;
}

.merit {
  background: linear-gradient(180deg, var(--color-ivory), var(--color-white));
}

.merit__title {
  white-space: nowrap;
  font-size: clamp(26px, 3.1vw, 40px);
}

.merit__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.merit-card {
  padding: 34px 24px 30px;
  text-align: center;
  background: var(--color-white);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.merit-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 104px;
  height: 104px;
  margin: 0 auto 22px;
  background: var(--color-green-pale);
  border-radius: 50%;
}

.merit-card__icon svg {
  width: 72px;
  height: 72px;
  fill: none;
  stroke: var(--color-green);
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.merit-card h3 {
  margin: 0 0 14px;
  color: #262626;
  font-size: 18px;
  line-height: 1.6;
}

.merit-card p {
  margin: 0;
  color: var(--color-text-soft);
  font-size: 14px;
  line-height: 1.9;
  text-align: left;
}

.tsubo {
  background: var(--color-blue);
}

.tsubo__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.tsubo-card {
  overflow: hidden;
  margin: 0;
  background: var(--color-white);
  border: 1px solid rgba(229, 225, 216, 0.9);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
}

.tsubo-card img {
  width: 100%;
  aspect-ratio: 1.45 / 1;
  object-fit: cover;
}

.tsubo-card figcaption {
  display: grid;
  gap: 8px;
  padding: 18px 18px 22px;
}

.tsubo-card strong {
  color: #2b2b2b;
  font-size: 17px;
}

.tsubo-card span {
  color: var(--color-text-soft);
  font-size: 14px;
  line-height: 1.8;
}

.plans {
  background: var(--color-white);
}

.plans__title {
  white-space: nowrap;
  font-size: clamp(28px, 3vw, 40px);
}

.plan-tabs {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-bottom: 32px;
}

.plan-tabs__button {
  min-width: 210px;
  padding: 14px 22px;
  color: var(--color-green);
  font-weight: 700;
  background: var(--color-white);
  border: 1px solid var(--color-green);
  border-radius: 999px;
  cursor: pointer;
}

.plan-tabs__button.is-active {
  color: var(--color-white);
  background: var(--color-green);
}

.plan-panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 46px;
  align-items: center;
  padding: 34px;
  background: var(--color-ivory);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
}

.plan-panel[hidden] {
  display: none !important;
}

.plan-panel__image {
  overflow: hidden;
  border-radius: var(--radius-md);
}

.plan-panel__image img {
  width: 100%;
  aspect-ratio: 1.45 / 1;
  object-fit: cover;
}

.plan-panel__target {
  display: inline-flex;
  margin: 0 0 14px;
  padding: 6px 14px;
  color: var(--color-green);
  font-size: 14px;
  font-weight: 700;
  background: var(--color-white);
  border-radius: 999px;
}

.plan-panel h3 {
  margin: 0 0 18px;
  font-family: var(--font-serif);
  font-size: clamp(24px, 2.5vw, 34px);
  line-height: 1.5;
}

.plan-panel ul {
  display: grid;
  gap: 8px;
  margin-bottom: 24px;
}

.plan-panel li {
  position: relative;
  padding-left: 1.2em;
  color: var(--color-text-soft);
}

.plan-panel li::before {
  content: "";
  position: absolute;
  top: 0.75em;
  left: 0;
  width: 6px;
  height: 6px;
  background: var(--color-orange);
  border-radius: 50%;
}

.text-link {
  display: inline-flex;
  align-items: center;
  color: var(--color-green);
  font-weight: 700;
  border-bottom: 1px solid currentColor;
}

.spec {
  background: linear-gradient(180deg, var(--color-green-pale), var(--color-white));
}

.spec__title {
  text-align: center;
  white-space: nowrap;
}

.spec__box {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: start;
  gap: 54px;
  max-width: 980px;
  margin: 0 auto;
  padding: 44px;
  background: var(--color-white);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.spec__visual {
  margin: 0;
  align-self: start;
}

.spec__visual img {
  width: 100%;
  aspect-ratio: 1.35 / 1;
  object-fit: cover;
  border-radius: var(--radius-md);
}

.spec__lead {
  margin: 0 0 24px;
  font-size: 17px;
  line-height: 2;
}

.spec-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.spec-list li {
  padding: 12px 14px;
  color: var(--color-green);
  font-weight: 700;
  background: var(--color-green-pale);
  border-radius: var(--radius-sm);
}

.spec-list__wide {
  grid-column: 1 / -1;
  white-space: nowrap;
}

.spec__note {
  margin: 22px 0 0;
  color: var(--color-muted);
  font-size: 13px;
  line-height: 1.8;
}

.spec__cta {
  display: flex;
  justify-content: center;
  margin-top: 54px;
}

.consultation {
  background: var(--color-ivory);
}

.consultation__inner {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: 56px;
}

.consultation__title {
  white-space: nowrap;
  font-size: clamp(26px, 3vw, 38px);
}

.consultation__button {
  margin-top: 32px;
}

.consultation__image {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.consultation__image img {
  width: 100%;
  aspect-ratio: 1.25 / 1;
  object-fit: cover;
}

.faq {
  background: var(--color-white);
}

.faq-list {
  max-width: 880px;
  margin: 0 auto;
  border-top: 1px solid var(--color-line);
}

.faq-item {
  border-bottom: 1px solid var(--color-line);
}

.faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 24px 6px;
  color: #252525;
  font-weight: 700;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.faq-question i {
  position: relative;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin-left: 24px;
}

.faq-question i::before,
.faq-question i::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 2px;
  background: var(--color-green);
  transform: translate(-50%, -50%);
}

.faq-question i::after {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform 0.2s ease;
}

.faq-question[aria-expanded="true"] i::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.24s ease;
}

.faq-answer > p {
  overflow: hidden;
  margin: 0;
  color: var(--color-text-soft);
  line-height: 1.9;
}

.faq-question[aria-expanded="true"] + .faq-answer {
  grid-template-rows: 1fr;
  padding-bottom: 24px;
}

.subdivision {
  background: var(--color-white);
  padding-top: 64px;
}

.subdivision__heading {
  text-align: center;
  margin-bottom: 38px;
}

.subdivision__title {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin: 0;
}

.subdivision__title img {
  width: 230px;
}

.subdivision__title span {
  display: inline-block;
  color: #2d2d2d;
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.05em;
}

.subdivision__bar {
  display: block;
  width: 54px;
  height: 4px;
  margin: 18px auto 0;
  background: var(--color-orange);
}

.subdivision__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 46px;
  max-width: 980px;
  margin: 0 auto;
}

.area-card {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 12px 28px;
  color: #1d1d1d;
  font-size: 19px;
  font-weight: 800;
  text-align: center;
  background: var(--color-white);
  border: 1px solid #d7d7d7;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.area-card:hover {
  border-color: var(--color-orange);
  transform: translateY(-2px);
}

.area-card i {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0;
  height: 0;
  border-bottom: 18px solid var(--color-orange);
  border-left: 18px solid transparent;
}

.final-cta {
  padding: 92px 0 108px;
  color: var(--color-white);
  text-align: center;
  background:
    linear-gradient(135deg, rgba(0, 104, 58, 0.94), rgba(0, 122, 66, 0.82)),
    var(--color-green);
}

.final-cta .section-label {
  color: rgba(255, 255, 255, 0.84);
}

.final-cta__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.2vw, 42px);
  line-height: 1.5;
}

.final-cta__lead {
  margin: 22px auto 0;
  max-width: 720px;
  line-height: 2;
}

.final-cta__buttons {
  display: flex;
  justify-content: center;
  gap: 18px;
  margin-top: 38px;
}

.fixed-cta {
  display: none;
}

.js-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.js-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1180px) {
  .site-header__inner {
    grid-template-columns: 160px 1fr auto;
  }

  .site-nav,
  .site-header__cta {
    display: none;
  }

  .menu-button {
    display: inline-grid;
    justify-content: center;
    align-content: center;
    justify-self: end;
    width: 44px;
    height: 44px;
    background: var(--color-white);
    border: 1px solid var(--color-line);
    border-radius: 50%;
    cursor: pointer;
    gap: 5px;
  }

  .menu-button span:not(.visually-hidden) {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--color-green);
  }

  .sp-menu {
    display: block;
    position: fixed;
    top: var(--header-height);
    left: 0;
    width: 100%;
    background: rgba(255, 255, 255, 0.98);
    border-bottom: 1px solid var(--color-line);
    transform: translateY(-120%);
    transition: transform 0.24s ease;
  }

  .sp-menu.is-open {
    transform: translateY(0);
  }

  .sp-menu__nav {
    display: grid;
    width: min(calc(100% - 48px), 720px);
    margin: 0 auto;
    padding: 18px 0;
  }

  .sp-menu__nav a {
    padding: 14px 0;
    font-weight: 700;
    border-bottom: 1px solid var(--color-line);
  }

  .fv {
    padding: 62px 0 68px;
    min-height: auto;
  }

  .fv__inner {
    grid-template-columns: 1fr 1fr;
    width: min(calc(100% - 48px), 1080px);
    gap: 56px;
  }

  .fv__logo-title img {
    width: min(100%, 410px);
  }

  .merit__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .subdivision__grid {
    gap: 28px;
  }
}

@media (max-width: 900px) {
  :root {
    --header-height: 76px;
  }

  .container {
    width: min(calc(100% - 32px), var(--max-width));
  }

  .section {
    padding: 72px 0;
  }

  .site-header__inner {
    width: min(calc(100% - 28px), var(--header-width));
    grid-template-columns: 128px 1fr 44px;
  }

  .site-header__brand {
    width: 122px;
  }

  .site-header__center-logo {
    width: 190px;
  }

  .fv {
    padding: 48px 0 56px;
    min-height: auto;
  }

  .fv__inner {
    width: min(calc(100% - 32px), 720px);
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .fv__visual {
    order: -1;
    border-radius: 30px;
  }

  .fv__visual img {
    aspect-ratio: 1.5 / 1;
  }

  .fv__buttons {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    margin-top: 38px;
  }

  .fv__badges {
    gap: 10px;
  }

  .fv__badges li {
    font-size: 14px;
    min-height: 38px;
  }

  .concept__inner,
  .consultation__inner,
  .spec__box,
  .plan-panel {
    grid-template-columns: 1fr;
  }

  .concept__inner,
  .consultation__inner {
    gap: 34px;
  }

  .tsubo__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .plan-tabs {
    overflow-x: auto;
    justify-content: flex-start;
    padding-bottom: 6px;
  }

  .plan-tabs__button {
    min-width: 180px;
  }

  .plans__title,
  .spec__title,
  .consultation__title,
  .merit__title {
    white-space: normal;
  }

  .spec__box {
    padding: 28px;
  }

  .subdivision__title {
    flex-direction: column;
    gap: 8px;
  }

  .subdivision__title img {
    width: 210px;
  }

  .subdivision__grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .final-cta__buttons {
    flex-direction: column;
    align-items: stretch;
  }

  .fixed-cta {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 900;
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--color-white);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.08);
  }

  .fixed-cta a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    color: var(--color-white);
    font-weight: 800;
    background: var(--color-green);
  }

  .fixed-cta a + a {
    background: var(--color-orange);
  }

  body {
    padding-bottom: 54px;
  }
}

@media (max-width: 640px) {
  body {
    font-size: 15px;
  }

  .site-header__center-logo {
    left: auto;
    right: 58px;
    width: 156px;
    transform: none;
  }

  .site-header__brand {
    width: 106px;
  }

  .fv {
    padding: 36px 0 44px;
  }

  .fv__eyebrow {
    font-size: 14px;
  }

  .fv__logo-title img {
    width: 320px;
  }

  .fv__lead {
    font-size: 15px;
  }

  .fv__buttons .button,
  .button {
    width: 100%;
  }

  .merit__grid,
  .tsubo__grid,
  .spec-list {
    grid-template-columns: 1fr;
  }

  .spec-list__wide {
    white-space: normal;
  }

  .merit-card p {
    text-align: center;
  }

  .section-title {
    font-size: 28px;
  }

  .subdivision__title span {
    font-size: 28px;
  }

  .subdivision__title img {
    width: 180px;
  }
}
/* =========================================================
  FV余白修正：PC表示でFVを画面高いっぱいに引き伸ばさない
  既存CSSの最後に必ず追加
========================================================= */

@media (min-width: 901px) {
  .fv {
    min-height: auto !important;
    display: block !important;
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }

  .fv__inner {
    width: min(calc(100% - 48px), 1180px) !important;
    display: grid !important;
    grid-template-columns: minmax(460px, 0.95fr) minmax(560px, 1.05fr) !important;
    align-items: center !important;
    gap: 86px !important;
  }

  .fv__logo-title img {
    width: min(100%, 440px) !important;
  }

  .fv__visual img {
    aspect-ratio: 1.22 / 1 !important;
    object-fit: cover !important;
  }
}
/* =========================================================
  PCフルサイズ用：FVを画面いっぱいに大きく見せる
  style.css の一番下に追加
========================================================= */

@media (min-width: 1200px) {
  .fv {
    min-height: calc(100svh - var(--header-height)) !important;
    display: flex !important;
    align-items: center !important;
    padding-top: clamp(72px, 8vh, 110px) !important;
    padding-bottom: clamp(72px, 8vh, 110px) !important;
  }

  .fv__inner {
    width: min(calc(100% - 80px), 1500px) !important;
    display: grid !important;
    grid-template-columns: minmax(560px, 0.92fr) minmax(700px, 1.08fr) !important;
    align-items: center !important;
    gap: clamp(90px, 7vw, 140px) !important;
  }

  .fv__eyebrow {
    margin-bottom: 30px !important;
    font-size: 19px !important;
  }

  .fv__logo-title img {
    width: min(100%, 560px) !important;
  }

  .fv__lead {
    margin-top: 34px !important;
    font-size: 21px !important;
    line-height: 2.05 !important;
  }

  .fv__badges {
    gap: 16px !important;
    margin-top: 40px !important;
  }

  .fv__badges li {
    min-height: 46px !important;
    padding: 10px 18px !important;
    font-size: 17px !important;
  }

  .fv__buttons {
    gap: 28px !important;
    margin-top: 58px !important;
  }

  .fv__buttons .button {
    min-width: 230px !important;
    min-height: 56px !important;
    font-size: 17px !important;
  }

  .fv__visual {
    border-radius: 52px !important;
  }

  .fv__visual img {
    width: 100% !important;
    aspect-ratio: 1.22 / 1 !important;
    object-fit: cover !important;
    object-position: center !important;
  }
}

/* かなり横幅が広いモニター用 */
@media (min-width: 1600px) {
  .fv__inner {
    width: min(calc(100% - 120px), 1640px) !important;
    grid-template-columns: minmax(620px, 0.92fr) minmax(780px, 1.08fr) !important;
    gap: 150px !important;
  }

  .fv__logo-title img {
    width: min(100%, 620px) !important;
  }

  .fv__lead {
    font-size: 23px !important;
  }

  .fv__visual img {
    aspect-ratio: 1.26 / 1 !important;
  }
}
/* =========================================================
  追加修正：HEADER / SPEC / CONSULTATION
========================================================= */

/* ---------- HEADER：文字被り防止・ナビ右寄せ・左ロゴ位置調整 ---------- */
@media (min-width: 1181px) {
  .site-header__inner {
    width: min(calc(100% - 80px), 1500px) !important;
    grid-template-columns: 170px minmax(320px, 1fr) auto auto !important;
    gap: 24px !important;
  }

  .site-header__brand {
    width: 135px !important;
    justify-self: start !important;
  }

  .site-header__center-logo {
    position: static !important;
    left: auto !important;
    transform: none !important;
    justify-self: center !important;
    width: 270px !important;
  }

  .site-nav {
    justify-self: end !important;
    margin-left: auto !important;
    gap: 18px !important;
    white-space: nowrap !important;
  }

  .site-nav a {
    white-space: nowrap !important;
  }

  .site-header__cta {
    justify-self: end !important;
    white-space: nowrap !important;
  }
}

/* ---------- SPEC：左画像の上・左右は維持し、下だけ伸ばす ---------- */
@media (min-width: 901px) {
  .spec__box {
    align-items: stretch !important;
  }

  .spec__visual {
    margin: 0 !important;
    align-self: stretch !important;
  }

  .spec__visual img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: var(--radius-md) !important;
  }
}

/* ---------- CONSULTATION：CONCEPTと同じ配置・画像サイズ ---------- */
.consultation__inner {
  display: grid !important;
  grid-template-columns: 0.92fr 1.08fr !important;
  align-items: center !important;
  gap: 70px !important;
}

.consultation__title {
  white-space: normal !important;
}

.consultation__image {
  margin: 0 !important;
  overflow: hidden !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-soft) !important;
}

.consultation__image img {
  width: 100% !important;
  aspect-ratio: 1.35 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
}

@media (max-width: 900px) {
  .consultation__inner {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }

  .consultation__text br {
    display: none;
  }

  .consultation__image img {
    aspect-ratio: 1.35 / 1 !important;
  }
}
/* =========================================================
  FV上下余白を圧縮
  中身のサイズは維持して、上下の空きだけ詰める
========================================================= */

@media (min-width: 1200px) {
  .fv {
    min-height: auto !important;
    padding-top: 44px !important;
    padding-bottom: 48px !important;
  }

  .fv__inner {
    align-items: center !important;
  }
}

@media (min-width: 1600px) {
  .fv {
    min-height: auto !important;
    padding-top: 54px !important;
    padding-bottom: 58px !important;
  }
}
/* =========================================================
  SP専用修正
  PC版には影響させない
========================================================= */

/* ---------- PC/SP共通：MERIT 1つ目アイコン画像化 ---------- */
.merit-card__icon--image img {
  width: 72px;
  height: 72px;
  object-fit: contain;
}

/* CONCEPT画像出し分け */
.concept__image--sp {
  display: none;
}

.concept__image--pc {
  display: block;
}

/* ---------- SP ---------- */
@media (max-width: 640px) {
  /* =========================
    HEADER
  ========================== */
  .site-header {
    height: 72px !important;
  }

  .site-header__inner {
    width: 100% !important;
    height: 72px !important;
    display: grid !important;
    grid-template-columns: 1fr 64px !important;
    align-items: center !important;
    padding: 0 12px 0 0 !important;
  }

  .site-header__brand {
    width: 176px !important;
    justify-self: center !important;
    grid-column: 1 / 3 !important;
    grid-row: 1 !important;
  }

  .site-header__brand img {
    width: 100% !important;
  }

  .site-header__center-logo {
    display: none !important;
  }

  .menu-button {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    display: grid !important;
    width: 54px !important;
    height: 58px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    gap: 5px !important;
    padding: 7px 0 0 !important;
  }

  .menu-button span:not(.visually-hidden) {
    width: 36px !important;
    height: 4px !important;
    background: var(--color-green) !important;
  }

  .menu-button::after {
    content: "MENU";
    display: block;
    margin-top: 0;
    color: var(--color-green);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
  }

  .sp-menu {
    top: 72px !important;
  }

  /* =========================
    FV：spファーストビュー修正案に寄せる
  ========================== */
  .fv {
    display: block !important;
    min-height: auto !important;
    padding: 0 !important;
    background:
      linear-gradient(90deg, rgba(253, 251, 245, 0.98) 0%, rgba(248, 250, 246, 0.96) 48%, rgba(236, 247, 247, 0.95) 100%) !important;
  }

  .fv__inner {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  .fv__visual {
    order: 1 !important;
    width: 100% !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }

  .fv__visual img {
    width: 100% !important;
    height: 321px !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center top !important;
  }

  .fv__content {
    order: 2 !important;
    width: 100% !important;
    padding: 32px 18px 52px !important;
  }

  .fv__eyebrow {
    display: inline-block !important;
    margin: 0 0 20px !important;
    padding-bottom: 2px !important;
    color: var(--color-green) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    border-bottom: 2px solid var(--color-green) !important;
  }

  .fv__logo-title {
    margin: 0 !important;
  }

  .fv__logo-title img {
    width: 282px !important;
    max-width: 100% !important;
  }

  .fv__lead {
    margin: 20px 0 0 !important;
    color: #242424 !important;
    font-family: var(--font-serif) !important;
    font-size: 15px !important;
    line-height: 2 !important;
    letter-spacing: 0.06em !important;
  }

  .fv__badges {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px 14px !important;
    margin-top: 24px !important;
  }

  .fv__badges li {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 44px !important;
    padding: 8px 6px !important;
    color: var(--color-green) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    background: rgba(255, 255, 255, 0.55) !important;
    border: 1.5px solid var(--color-green) !important;
    border-radius: 0 !important;
  }

  .fv__buttons {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    margin-top: 42px !important;
  }

  .fv__buttons .button {
    width: 100% !important;
    min-height: 54px !important;
    border-radius: 999px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
  }

  .fv__buttons .button--outline {
    background: transparent !important;
  }

  /* =========================
    CONCEPT
  ========================== */
  .concept__inner {
    display: block !important;
  }

  .concept__text {
    text-align: center !important;
  }

  .concept__title {
    text-align: center !important;
  }

  .concept__image--pc {
    display: none !important;
  }

  .concept__image--sp {
    display: block !important;
    margin: 26px 0 24px !important;
  }

  .concept__image--sp img {
    width: 100% !important;
    aspect-ratio: 1.35 / 1 !important;
    object-fit: cover !important;
    border-radius: var(--radius-lg) !important;
  }

  .concept .section-lead {
    text-align: left !important;
  }

  .concept__note {
    text-align: left !important;
  }

  /* =========================
    MERIT
  ========================== */
  .merit__title {
    white-space: normal !important;
  }

  .merit__title::before {
    content: "ワンフロアだから、";
    display: block;
  }

  .merit__title {
    font-size: 0 !important;
  }

  .merit__title::before,
  .merit__title::after {
    color: #2d2d2d;
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.05em;
  }

  .merit__title::after {
    content: "毎日が動きやすい。";
    display: block;
  }

  /* =========================
    24TSUBO PLAN
  ========================== */
  #tsuboTitle {
    font-size: 0 !important;
  }

  #tsuboTitle::before,
  #tsuboTitle::after {
    color: #2d2d2d;
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.05em;
  }

  #tsuboTitle::before {
    content: "24坪から考える、";
    display: block;
  }

  #tsuboTitle::after {
    content: "ちょうどいい平屋。";
    display: block;
  }

  /* =========================
    PLAN
  ========================== */
  .plans__title {
    white-space: normal !important;
    font-size: 0 !important;
  }

  .plans__title::before,
  .plans__title::after {
    color: #2d2d2d;
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.05em;
  }

  .plans__title::before {
    content: "暮らし方で選ぶ、";
    display: block;
  }

  .plans__title::after {
    content: "3つの参考プラン。";
    display: block;
  }

  .plans .section-lead {
    font-size: 0 !important;
  }

  .plans .section-lead::before,
  .plans .section-lead::after {
    display: block;
    color: var(--color-text-soft);
    font-size: 16px;
    line-height: 2;
    text-align: center;
  }

  .plans .section-lead::before {
    content: "掲載プランは一例です。";
  }

  .plans .section-lead::after {
    content: "敷地条件・ご要望により異なります。";
  }

  .plan-tabs {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 32px auto 26px !important;
    overflow: visible !important;
  }

  .plan-tabs__button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    padding: 10px 18px !important;
    border-radius: 999px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    text-align: center !important;
  }

  /* =========================
    SPEC
  ========================== */
  .spec__title {
    white-space: normal !important;
    font-size: 0 !important;
  }

  .spec__title::before,
  .spec__title::after {
    color: #2d2d2d;
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.05em;
  }

  .spec__title::before {
    content: "仕様は、";
    display: block;
  }

  .spec__title::after {
    content: "SAN+をベースに。";
    display: block;
  }

  /* =========================
    CONSULTATION
  ========================== */
  .consultation__title {
    white-space: normal !important;
    font-size: 0 !important;
  }

  .consultation__title::before,
  .consultation__title::after {
    color: #2d2d2d;
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.05em;
  }

  .consultation__title::before {
    content: "土地探しから、";
    display: block;
  }

  .consultation__title::after {
    content: "平屋づくりを相談できます。";
    display: block;
  }
}
/* =========================================================
  SP調整・共通微修正
========================================================= */

/* PCではSP用改行を非表示 */
.sp-only {
  display: none;
}

/* MERIT：画像アイコンをSVGアイコンと同じサイズ感に統一 */
.merit-card__icon--image img {
  width: 72px;
  height: 72px;
  object-fit: contain;
}

/* SPEC：5つのポイントテキストを中央揃え */
.spec-list li {
  text-align: center !important;
}

/* SP専用 */
@media (max-width: 640px) {
  .sp-only {
    display: inline;
  }

  /* 24TSUBO PLAN：タイトル改行 */
  #tsuboTitle {
    font-size: 0 !important;
  }

  #tsuboTitle::before,
  #tsuboTitle::after {
    color: #2d2d2d;
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.05em;
  }

  #tsuboTitle::before {
    content: "24坪から考える、";
    display: block;
  }

  #tsuboTitle::after {
    content: "ちょうどいい平屋。";
    display: block;
  }

  /* SPEC：SPのみタイトル改行 */
  .spec__title {
    white-space: normal !important;
    font-size: 0 !important;
  }

  .spec__title::before,
  .spec__title::after {
    color: #2d2d2d;
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.05em;
  }

  .spec__title::before {
    content: "仕様はSAN+の";
    display: block;
  }

  .spec__title::after {
    content: "G2水準をベースに。";
    display: block;
  }
}
/* =========================================================
  SP：SPEC 5つのポイントを中央配置
========================================================= */

@media (max-width: 640px) {
  .spec-list li {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
    min-height: 76px !important;
    padding: 16px 18px !important;
  }

  .spec-list__wide {
    justify-content: center !important;
    text-align: center !important;
    white-space: normal !important;
  }
}
/* =========================================================
  SP：SPECポイント枠を太くしすぎず、文字を大きく中央配置
========================================================= */

@media (max-width: 640px) {
  .spec-list {
    gap: 14px !important;
  }

  .spec-list li {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 58px !important;
    padding: 10px 14px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-align: center !important;
    border-radius: 10px !important;
  }

  .spec-list__wide {
    white-space: normal !important;
  }
}
/* =========================================================
  SAN+平屋が建てられる分譲地
  PC：見出し枠＋画像の3カラム
  SP：画像左・エリア名右の横長カード
========================================================= */

.subdivision {
  background: var(--color-white) !important;
  padding: 86px 0 86px !important;
}

.subdivision__heading {
  text-align: center !important;
  margin-bottom: 46px !important;
}

.subdivision__title {
  display: block !important;
  margin: 0 !important;
  color: #222222 !important;
  font-family: var(--font-sans) !important;
  font-size: clamp(26px, 2.8vw, 34px) !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.04em !important;
}

.subdivision__bar {
  display: block !important;
  width: 70px !important;
  height: 5px !important;
  margin: 18px auto 0 !important;
  background: var(--color-orange) !important;
}

.subdivision__grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 46px !important;
  max-width: 980px !important;
  margin: 0 auto !important;
}

.subdivision-card {
  display: block !important;
  color: #111111 !important;
  text-decoration: none !important;
  transition: opacity 0.2s ease, transform 0.2s ease !important;
}

.subdivision-card:hover {
  opacity: 0.86 !important;
  transform: translateY(-2px) !important;
}

.subdivision-card__label {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 56px !important;
  padding: 12px 24px !important;
  background: #ffffff !important;
  border: 1px solid #d8d8d8 !important;
  color: #111111 !important;
  font-size: 19px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  text-align: center !important;
}

.subdivision-card__label i {
  position: absolute !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 0 !important;
  height: 0 !important;
  border-bottom: 18px solid var(--color-orange) !important;
  border-left: 18px solid transparent !important;
}

.subdivision-card__image {
  margin-top: 18px !important;
  overflow: hidden !important;
  background: #f3f3f3 !important;
}

.subdivision-card__image img {
  width: 100% !important;
  aspect-ratio: 1.5 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* SP */
@media (max-width: 640px) {
  .subdivision {
    padding: 64px 0 70px !important;
  }

  .subdivision__heading {
    margin-bottom: 34px !important;
  }

  .subdivision__title {
    font-size: 24px !important;
    line-height: 1.45 !important;
  }

  .subdivision__bar {
    width: 70px !important;
    height: 4px !important;
    margin-top: 16px !important;
  }

  .subdivision__grid {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    width: min(calc(100% - 32px), 560px) !important;
    max-width: none !important;
  }

  .subdivision-card {
    display: grid !important;
    grid-template-columns: 40.5% 59.5% !important;
    align-items: stretch !important;
    min-height: 148px !important;
    background: #ffffff !important;
    border: 2px solid #dddddd !important;
    transform: none !important;
  }

  .subdivision-card:hover {
    transform: none !important;
  }

  .subdivision-card__image {
    order: 1 !important;
    margin-top: 0 !important;
    height: 100% !important;
  }

  .subdivision-card__image img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .subdivision-card__label {
    order: 2 !important;
    min-height: auto !important;
    height: 100% !important;
    padding: 12px 18px !important;
    border: 0 !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.5 !important;
    background: #ffffff !important;
  }

  .subdivision-card__label i {
    display: none !important;
  }
}
/* =========================================================
  SP：分譲地ブロックを見本サイズに調整
  PC版には影響させない
========================================================= */

@media (max-width: 640px) {
  .subdivision {
    padding: 64px 0 70px !important;
  }

  .subdivision__heading {
    margin-bottom: 34px !important;
  }

  .subdivision__title {
    display: block !important;
    font-family: var(--font-sans) !important;
    font-size: 28px !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.02em !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  .subdivision__bar {
    width: 72px !important;
    height: 4px !important;
    margin: 18px auto 0 !important;
  }

  .subdivision__grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 26px !important;
    width: calc(100% - 40px) !important;
    max-width: 540px !important;
    margin: 0 auto !important;
  }

  .subdivision-card {
    display: grid !important;
    grid-template-columns: 218px 1fr !important;
    align-items: stretch !important;
    width: 100% !important;
    min-height: 148px !important;
    background: #ffffff !important;
    border: 2px solid #dddddd !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .subdivision-card:hover {
    opacity: 1 !important;
    transform: none !important;
  }

  .subdivision-card__image {
    order: 1 !important;
    width: 218px !important;
    height: 148px !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #f3f3f3 !important;
  }

  .subdivision-card__image img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .subdivision-card__label {
    order: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 148px !important;
    min-height: 0 !important;
    padding: 0 18px !important;
    border: 0 !important;
    background: #ffffff !important;
    color: #111111 !important;
    font-size: 22px !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.02em !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  .subdivision-card__label i {
    display: none !important;
  }
}
/* =========================================================
  SP：分譲地ブロック再調整
  大きくなりすぎたカード・画像・タイトルを縮小
========================================================= */

@media (max-width: 640px) {
  .subdivision {
    padding: 56px 0 60px !important;
    overflow: hidden !important;
  }

  .subdivision__heading {
    margin-bottom: 30px !important;
  }

  .subdivision__title {
    display: block !important;
    width: 100% !important;
    max-width: calc(100% - 32px) !important;
    margin: 0 auto !important;
    font-family: var(--font-sans) !important;
    font-size: 22px !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.01em !important;
    text-align: center !important;
    white-space: normal !important;
  }

  .subdivision__bar {
    width: 64px !important;
    height: 4px !important;
    margin: 16px auto 0 !important;
  }

  .subdivision__grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    width: calc(100% - 32px) !important;
    max-width: 540px !important;
    margin: 0 auto !important;
  }

  .subdivision-card {
    display: grid !important;
    grid-template-columns: 40% 60% !important;
    align-items: stretch !important;
    width: 100% !important;
    min-height: 112px !important;
    background: #ffffff !important;
    border: 2px solid #dddddd !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: hidden !important;
  }

  .subdivision-card:hover {
    opacity: 1 !important;
    transform: none !important;
  }

  .subdivision-card__image {
    order: 1 !important;
    width: 100% !important;
    height: 112px !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #f3f3f3 !important;
  }

  .subdivision-card__image img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .subdivision-card__label {
    order: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 112px !important;
    min-height: 0 !important;
    padding: 0 10px !important;
    border: 0 !important;
    background: #ffffff !important;
    color: #111111 !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.01em !important;
    text-align: center !important;
    white-space: normal !important;
  }

  .subdivision-card__label span {
    display: inline-block !important;
  }

  .subdivision-card__label i {
    display: none !important;
  }
}
/* =========================================================
  SP：分譲地カード幅をCONSULTATION画像と揃え、縦幅を圧縮
========================================================= */

@media (max-width: 640px) {
  .subdivision {
    padding: 50px 0 54px !important;
    overflow: hidden !important;
  }

  .subdivision__heading {
    margin-bottom: 28px !important;
  }

  .subdivision__title {
    width: min(calc(100% - 32px), var(--max-width)) !important;
    margin: 0 auto !important;
    font-size: 22px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
  }

  .subdivision__bar {
    width: 64px !important;
    height: 4px !important;
    margin: 14px auto 0 !important;
  }

  .subdivision__grid {
    width: min(calc(100% - 32px), var(--max-width)) !important;
    max-width: none !important;
    margin: 0 auto !important;
    gap: 14px !important;
  }

  .subdivision-card {
    display: grid !important;
    grid-template-columns: 40% 60% !important;
    width: 100% !important;
    min-height: 96px !important;
    height: 96px !important;
    border: 2px solid #dddddd !important;
    background: #ffffff !important;
    overflow: hidden !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .subdivision-card__image {
    width: 100% !important;
    height: 96px !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  .subdivision-card__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .subdivision-card__label {
    height: 96px !important;
    min-height: 0 !important;
    padding: 0 10px !important;
    border: 0 !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  .subdivision-card__label i {
    display: none !important;
  }
}
/* =========================================================
  HEADER再調整
  PC：hiraya_logoをセンター固定
  SP：左ouchinokoto / 中央hiraya_logo / 右SAN+ロゴ
========================================================= */

/* ---------- PC ---------- */
@media (min-width: 901px) {
  .site-header {
    height: var(--header-height) !important;
  }

  .site-header__inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 170px 1fr auto auto !important;
    align-items: center !important;
    width: min(calc(100% - 80px), 1500px) !important;
    height: 100% !important;
    margin-inline: auto !important;
    gap: 24px !important;
  }

  .site-header__brand {
    display: inline-flex !important;
    align-items: center !important;
    justify-self: start !important;
    width: 135px !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .site-header__brand img {
    width: 100% !important;
    height: auto !important;
  }

  .site-header__center-logo {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 270px !important;
    transform: translate(-50%, -50%) !important;
    grid-column: auto !important;
    grid-row: auto !important;
    z-index: 2 !important;
  }

  .site-header__center-logo img {
    width: 100% !important;
    height: auto !important;
  }

  .site-header__sanplus-logo {
    display: none !important;
  }

  .site-nav {
    display: flex !important;
    align-items: center !important;
    justify-self: end !important;
    gap: 18px !important;
    margin-left: auto !important;
    white-space: nowrap !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
  }

  .site-nav a {
    white-space: nowrap !important;
  }

  .site-header__cta {
    display: inline-flex !important;
    justify-self: end !important;
    white-space: nowrap !important;
    grid-column: 4 !important;
    grid-row: 1 !important;
  }

  .menu-button {
    display: none !important;
  }
}

/* ---------- Tablet：ナビを隠してハンバーガー表示 ---------- */
@media (min-width: 641px) and (max-width: 900px) {
  .site-header {
    height: 76px !important;
  }

  .site-header__inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 150px 1fr 58px !important;
    align-items: center !important;
    width: min(calc(100% - 32px), 900px) !important;
    height: 76px !important;
    margin-inline: auto !important;
    gap: 16px !important;
  }

  .site-header__brand {
    display: inline-flex !important;
    align-items: center !important;
    justify-self: start !important;
    width: 130px !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .site-header__center-logo {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 210px !important;
    transform: translate(-50%, -50%) !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }

  .site-header__sanplus-logo {
    display: none !important;
  }

  .site-nav,
  .site-header__cta {
    display: none !important;
  }

  .menu-button {
    display: inline-grid !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }
}

/* ---------- SP：左オウチノコト / 中央SAN+平屋 / 右SAN+ ---------- */
@media (max-width: 640px) {
  .site-header {
    height: 72px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border-bottom: 1px solid rgba(229, 225, 216, 0.9) !important;
  }

  .site-header__inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 82px 1fr 82px !important;
    align-items: center !important;
    width: 100% !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 10px !important;
    gap: 8px !important;
  }

  .site-header__brand {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 72px !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
  }

  .site-header__brand img {
    width: 72px !important;
    height: auto !important;
  }

  .site-header__center-logo {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: min(100%, 178px) !important;
    transform: none !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
  }

  .site-header__center-logo img {
    width: 100% !important;
    height: auto !important;
  }

  .site-header__sanplus-logo {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: 72px !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }

  .site-header__sanplus-logo img {
    width: 72px !important;
    height: auto !important;
  }

  .site-nav,
  .site-header__cta {
    display: none !important;
  }

  .menu-button {
    display: none !important;
  }

  .sp-menu {
    display: none !important;
  }
}
/* =========================================================
  HEADER：PC/SP再修正
  PC：中央hiraya_logo、右側にSAN+ロゴ＋ナビ＋CTA
  SP：左ouchinokoto、小さめ中央hiraya_logo、右SAN+ロゴ＋MENU
========================================================= */

.site-header__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  margin-left: auto;
}

.site-header__sanplus-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.site-header__sanplus-button img {
  display: block;
  width: 92px;
  height: auto;
}

/* ---------- PC ---------- */
@media (min-width: 901px) {
  .site-header__inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 150px 1fr minmax(560px, auto) !important;
    align-items: center !important;
    width: min(calc(100% - 80px), 1500px) !important;
    height: var(--header-height) !important;
    margin: 0 auto !important;
    gap: 24px !important;
  }

  .site-header__brand {
    grid-column: 1 !important;
    justify-self: start !important;
    width: 135px !important;
  }

  .site-header__center-logo {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 270px !important;
    z-index: 2 !important;
  }

  .site-header__center-logo img {
    width: 100% !important;
    height: auto !important;
  }

  .site-header__right {
    grid-column: 3 !important;
    justify-self: end !important;
  }

  .site-nav {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    margin-left: 0 !important;
    white-space: nowrap !important;
    font-size: 12px !important;
  }

  .site-header__sanplus-button {
    display: inline-flex !important;
  }

  .site-header__sanplus-button img {
    width: 86px !important;
  }

  .site-header__cta {
    display: inline-flex !important;
    white-space: nowrap !important;
  }

  .menu-button {
    display: none !important;
  }
}

/* ---------- Tablet ---------- */
@media (min-width: 641px) and (max-width: 900px) {
  .site-header {
    height: 76px !important;
  }

  .site-header__inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 120px 1fr 120px !important;
    align-items: center !important;
    width: min(calc(100% - 32px), 900px) !important;
    height: 76px !important;
    margin: 0 auto !important;
    gap: 10px !important;
  }

  .site-header__brand {
    grid-column: 1 !important;
    justify-self: start !important;
    width: 110px !important;
  }

  .site-header__center-logo {
    position: static !important;
    transform: none !important;
    grid-column: 2 !important;
    justify-self: center !important;
    width: 210px !important;
  }

  .site-header__right {
    grid-column: 3 !important;
    justify-self: end !important;
    gap: 12px !important;
  }

  .site-nav,
  .site-header__cta {
    display: none !important;
  }

  .site-header__sanplus-button {
    display: inline-flex !important;
  }

  .site-header__sanplus-button img {
    width: 70px !important;
  }

  .menu-button {
    display: inline-grid !important;
    width: 44px !important;
    height: 44px !important;
    border: 1px solid var(--color-line) !important;
    border-radius: 50% !important;
    background: #fff !important;
    gap: 5px !important;
    place-content: center !important;
  }

  .menu-button span:not(.visually-hidden) {
    display: block !important;
    width: 20px !important;
    height: 2px !important;
    background: var(--color-green) !important;
  }
}

/* ---------- SP ---------- */
@media (max-width: 640px) {
  .site-header {
    height: 72px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border-bottom: 1px solid rgba(229, 225, 216, 0.9) !important;
  }

  .site-header__inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 66px 1fr 116px !important;
    align-items: center !important;
    width: 100% !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    gap: 6px !important;
  }

  .site-header__brand {
    grid-column: 1 !important;
    justify-self: start !important;
    display: inline-flex !important;
    width: 60px !important;
  }

  .site-header__brand img {
    width: 60px !important;
    height: auto !important;
  }

  .site-header__center-logo {
    position: static !important;
    transform: none !important;
    grid-column: 2 !important;
    justify-self: center !important;
    display: inline-flex !important;
    width: min(100%, 160px) !important;
  }

  .site-header__center-logo img {
    width: 100% !important;
    height: auto !important;
  }

  .site-header__right {
    grid-column: 3 !important;
    justify-self: end !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    margin-left: 0 !important;
  }

  .site-nav,
  .site-header__cta {
    display: none !important;
  }

  .site-header__sanplus-button {
    display: inline-flex !important;
    width: 54px !important;
  }

  .site-header__sanplus-button img {
    width: 54px !important;
    height: auto !important;
  }

  .menu-button {
    display: inline-grid !important;
    width: 44px !important;
    height: 50px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    gap: 4px !important;
    place-content: center !important;
  }

  .menu-button span:not(.visually-hidden) {
    display: block !important;
    width: 32px !important;
    height: 4px !important;
    background: var(--color-green) !important;
  }

  .menu-button::after {
    content: "MENU";
    display: block;
    margin-top: 0;
    color: var(--color-green);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
  }

  .sp-menu {
    display: block !important;
    top: 72px !important;
  }
}

/* =========================================================
  SAN+ロゴ ポップアップ
========================================================= */

.sanplus-modal[hidden] {
  display: none !important;
}

.sanplus-modal {
  position: fixed;
  inset: 0;
  z-index: 5000;
}

.sanplus-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.42);
}

.sanplus-modal__panel {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(calc(100% - 40px), 520px);
  max-height: calc(100svh - 80px);
  overflow: auto;
  transform: translate(-50%, -50%);
  padding: 34px 30px 32px;
  background: #ffffff;
  border-radius: 22px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.18);
}

.sanplus-modal__close {
  position: absolute;
  top: 14px;
  right: 16px;
  padding: 4px 0;
  color: var(--color-green);
  font-size: 13px;
  font-weight: 800;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.sanplus-modal__logo {
  display: flex;
  justify-content: center;
  margin: 12px 0 22px;
}

.sanplus-modal__logo img {
  width: 180px;
  height: auto;
}

.sanplus-modal__title {
  margin: 0 0 22px;
  color: #222222;
  font-size: 22px;
  font-weight: 800;
  text-align: center;
}

.sanplus-modal__nav {
  display: grid;
  gap: 12px;
}

.sanplus-modal__nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 18px;
  color: var(--color-green);
  font-weight: 800;
  text-align: center;
  background: var(--color-green-pale);
  border: 1px solid rgba(0, 122, 66, 0.16);
  border-radius: 999px;
}

@media (max-width: 640px) {
  .sanplus-modal__panel {
    width: min(calc(100% - 28px), 420px);
    padding: 34px 20px 26px;
    border-radius: 18px;
  }

  .sanplus-modal__logo img {
    width: 150px;
  }

  .sanplus-modal__title {
    font-size: 20px;
  }
}
/* =========================================================
  FINAL HEADER RESET
  PC/SPヘッダーを安定化
  - PC：左オウチノコト／中央hiraya_logo／右ナビ＋SAN+＋CTA
  - SP：左オウチノコト／中央hiraya_logo／右SAN+＋MENU
========================================================= */

.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  height: 64px !important;
  background: rgba(255, 255, 255, 0.97) !important;
  border-bottom: 1px solid rgba(229, 225, 216, 0.9) !important;
  backdrop-filter: blur(10px) !important;
}

.site-header__inner {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 150px 1fr minmax(520px, auto) !important;
  align-items: center !important;
  width: min(calc(100% - 48px), 1320px) !important;
  height: 64px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  gap: 20px !important;
}

.site-header__brand {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-self: start !important;
  width: 118px !important;
  height: auto !important;
}

.site-header__brand img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

.site-header__center-logo {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  z-index: 2 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 240px !important;
  height: auto !important;
  transform: translate(-50%, -50%) !important;
}

.site-header__center-logo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

.site-header__right {
  grid-column: 3 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  justify-self: end !important;
  width: auto !important;
  height: 64px !important;
  margin: 0 !important;
  gap: 14px !important;
}

.site-nav {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #222 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.site-nav a {
  display: inline-flex !important;
  align-items: center !important;
  color: inherit !important;
  white-space: nowrap !important;
}

.site-header__sanplus-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: 58px !important;
  height: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer !important;
}

.site-header__sanplus-button:focus-visible {
  outline: 2px solid var(--color-green) !important;
  outline-offset: 3px !important;
}

.site-header__sanplus-button img {
  display: block !important;
  width: 58px !important;
  height: auto !important;
  max-width: none !important;
}

.site-header__cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 132px !important;
  min-height: 34px !important;
  padding: 8px 16px !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  background: var(--color-green) !important;
  border-radius: 999px !important;
  white-space: nowrap !important;
}

.menu-button {
  display: none !important;
}

/* ---------- tablet：ナビは隠し、SAN+とMENUを残す ---------- */
@media (min-width: 641px) and (max-width: 1180px) {
  .site-header {
    height: 64px !important;
  }

  .site-header__inner {
    grid-template-columns: 120px 1fr 118px !important;
    width: min(calc(100% - 32px), 960px) !important;
    height: 64px !important;
  }

  .site-header__brand {
    width: 104px !important;
  }

  .site-header__center-logo {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 210px !important;
    transform: translate(-50%, -50%) !important;
  }

  .site-header__right {
    grid-column: 3 !important;
    height: 64px !important;
    gap: 10px !important;
  }

  .site-nav,
  .site-header__cta {
    display: none !important;
  }

  .site-header__sanplus-button {
    display: inline-flex !important;
    width: 52px !important;
    height: 32px !important;
  }

  .site-header__sanplus-button img {
    width: 52px !important;
  }

  .menu-button {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-grid !important;
    place-items: center !important;
    width: 42px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    cursor: pointer !important;
    gap: 4px !important;
  }

  .menu-button span {
    display: block !important;
    width: 30px !important;
    height: 3px !important;
    background: var(--color-green) !important;
  }

  .menu-button em {
    display: block !important;
    color: var(--color-green) !important;
    font-style: normal !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
  }
}

/* ---------- SP：左オウチノコト／中央hiraya_logo／右SAN+＋MENU ---------- */
@media (max-width: 640px) {
  .site-header {
    height: 58px !important;
  }

  .site-header__inner {
    grid-template-columns: 70px 1fr 92px !important;
    width: 100% !important;
    height: 58px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    gap: 4px !important;
  }

  .site-header__brand {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 62px !important;
    justify-self: start !important;
  }

  .site-header__brand img {
    width: 62px !important;
  }

  .site-header__center-logo {
    position: static !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
    display: inline-flex !important;
    width: min(100%, 154px) !important;
    transform: none !important;
  }

  .site-header__center-logo img {
    width: 100% !important;
  }

  .site-header__right {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    height: 58px !important;
    gap: 6px !important;
  }

  .site-nav,
  .site-header__cta {
    display: none !important;
  }

  .site-header__sanplus-button {
    display: inline-flex !important;
    width: 42px !important;
    height: 28px !important;
  }

  .site-header__sanplus-button img {
    width: 42px !important;
  }

  .menu-button {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-grid !important;
    place-items: center !important;
    width: 38px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    cursor: pointer !important;
    gap: 3px !important;
  }

  .menu-button span {
    display: block !important;
    width: 28px !important;
    height: 3px !important;
    background: var(--color-green) !important;
  }

  .menu-button em {
    display: block !important;
    color: var(--color-green) !important;
    font-style: normal !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
  }

  .sp-menu {
    position: fixed !important;
    top: 58px !important;
    left: 0 !important;
    z-index: 999 !important;
    display: block !important;
    width: 100% !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border-bottom: 1px solid var(--color-line) !important;
    transform: translateY(-120%) !important;
    transition: transform 0.24s ease !important;
  }

  .sp-menu.is-open {
    transform: translateY(0) !important;
  }

  .sp-menu__nav {
    display: grid !important;
    width: min(calc(100% - 32px), 480px) !important;
    margin: 0 auto !important;
    padding: 12px 0 !important;
  }

  .sp-menu__nav a {
    display: block !important;
    padding: 13px 0 !important;
    color: #222 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    border-bottom: 1px solid var(--color-line) !important;
  }
}

/* =========================================================
  SAN+ MODAL RESET
========================================================= */

.sanplus-modal[hidden] {
  display: none !important;
}

.sanplus-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 5000 !important;
}

.sanplus-modal__overlay {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0, 0, 0, 0.42) !important;
}

.sanplus-modal__panel {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: min(calc(100% - 40px), 520px) !important;
  max-height: calc(100svh - 80px) !important;
  overflow: auto !important;
  transform: translate(-50%, -50%) !important;
  padding: 34px 30px 32px !important;
  background: #fff !important;
  border-radius: 20px !important;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.18) !important;
}

.sanplus-modal__close {
  position: absolute !important;
  top: 14px !important;
  right: 16px !important;
  padding: 4px 0 !important;
  color: var(--color-green) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
}

.sanplus-modal__logo {
  display: flex !important;
  justify-content: center !important;
  margin: 12px 0 22px !important;
}

.sanplus-modal__logo img {
  width: 160px !important;
  height: auto !important;
}

.sanplus-modal__title {
  margin: 0 0 22px !important;
  color: #222 !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  text-align: center !important;
}

.sanplus-modal__nav {
  display: grid !important;
  gap: 12px !important;
}

.sanplus-modal__nav a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  padding: 12px 18px !important;
  color: var(--color-green) !important;
  font-weight: 800 !important;
  text-align: center !important;
  background: var(--color-green-pale) !important;
  border: 1px solid rgba(0, 122, 66, 0.16) !important;
  border-radius: 999px !important;
}

@media (max-width: 640px) {
  .sanplus-modal__panel {
    width: min(calc(100% - 28px), 420px) !important;
    padding: 34px 20px 26px !important;
    border-radius: 18px !important;
  }

  .sanplus-modal__logo img {
    width: 140px !important;
  }

  .sanplus-modal__title {
    font-size: 20px !important;
  }
}
/* =========================================================
  PCヘッダー右側ブロック位置修正
  コンセプト〜資料請求・相談予約を1ブロックとして右寄せ
  SPには影響させない
========================================================= */

@media (min-width: 1181px) {
  .site-header__inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 160px 1fr 160px !important;
    width: min(calc(100% - 48px), 1760px) !important;
    height: 64px !important;
    margin: 0 auto !important;
  }

  .site-header__brand {
    grid-column: 1 !important;
    justify-self: start !important;
    width: 118px !important;
  }

  .site-header__center-logo {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 240px !important;
    transform: translate(-50%, -50%) !important;
    z-index: 2 !important;
  }

  .site-header__right {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: auto !important;
    height: 64px !important;
    gap: 14px !important;
    margin: 0 !important;
    z-index: 3 !important;
  }

  .site-nav {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
  }

  .site-nav a {
    white-space: nowrap !important;
  }

  .site-header__sanplus-button {
    display: inline-flex !important;
    width: 54px !important;
    height: 34px !important;
    flex: 0 0 auto !important;
  }

  .site-header__sanplus-button img {
    width: 54px !important;
    height: auto !important;
  }

  .site-header__cta {
    display: inline-flex !important;
    min-width: 132px !important;
    min-height: 34px !important;
    padding: 8px 16px !important;
    font-size: 12px !important;
    white-space: nowrap !important;
  }

  .menu-button {
    display: none !important;
  }
}

/* 画面幅がやや狭いPCでは、さらに詰めて被りを防止 */
@media (min-width: 1181px) and (max-width: 1420px) {
  .site-header__inner {
    width: min(calc(100% - 32px), 1380px) !important;
  }

  .site-header__center-logo {
    width: 220px !important;
  }

  .site-header__right {
    gap: 10px !important;
  }

  .site-nav {
    gap: 10px !important;
    font-size: 11px !important;
  }

  .site-header__sanplus-button,
  .site-header__sanplus-button img {
    width: 48px !important;
  }

  .site-header__cta {
    min-width: 124px !important;
    padding: 8px 13px !important;
    font-size: 11px !important;
  }
}
/* =========================================================
  PCヘッダー：天地余白を追加
  SPには影響させない
========================================================= */

@media (min-width: 1181px) {
  .site-header {
    height: 96px !important;
  }

  .site-header__inner {
    height: 96px !important;
  }

  .site-header__right {
    height: 96px !important;
  }

  .site-header__center-logo {
    width: 250px !important;
  }

  .site-header__brand {
    width: 124px !important;
  }

  .site-header__sanplus-button {
    width: 56px !important;
    height: 38px !important;
  }

  .site-header__sanplus-button img {
    width: 56px !important;
  }

  .site-header__cta {
    min-height: 38px !important;
  }
}
/* =========================================================
  PCヘッダー96px化に伴うFV位置補正
  ヘッダーの見た目は96pxのまま、FVの見え方は旧バランスに戻す
========================================================= */

@media (min-width: 1181px) {
  :root {
    --pc-header-base-height: 64px;
    --pc-header-visual-height: 64px;
    --pc-header-diff: calc(var(--pc-header-visual-height) - var(--pc-header-base-height));
    --header-height: var(--pc-header-visual-height);
  }

  .site-header {
    height: var(--pc-header-visual-height) !important;
  }

  .site-header__inner {
    height: var(--pc-header-visual-height) !important;
  }

  .site-header__right {
    height: var(--pc-header-visual-height) !important;
  }

  .fv {
    margin-top: calc(var(--pc-header-diff) * -1) !important;
  }
}
/* =========================================================
  PCヘッダー高さとFV位置を分離
  FVは64pxヘッダー時の見え方で固定
  ヘッダーだけ任意の高さに調整可能
========================================================= */

@media (min-width: 1181px) {
  :root {
    /* FVの基準位置。ここは固定 */
    --pc-header-layout-height: 64px;

    /* 実際に見せたいヘッダー高さ。ここだけ変更する */
    --pc-header-visual-height: 96px;

    --pc-header-diff: calc(var(--pc-header-visual-height) - var(--pc-header-layout-height));

    /* ページ内リンクの停止位置は、実際のヘッダー高さに合わせる */
    --header-height: var(--pc-header-visual-height);
  }

  .site-header {
    height: var(--pc-header-visual-height) !important;
  }

  .site-header__inner {
    height: var(--pc-header-visual-height) !important;
  }

  .site-header__right {
    height: var(--pc-header-visual-height) !important;
  }

  .site-header__center-logo {
    top: 50% !important;
  }

  .site-header__right {
    top: 50% !important;
  }

  /*
    ヘッダーを高くした分だけFVを上に戻す。
    これにより、FVは64pxヘッダー時の見え方で固定される。
  */
  .fv {
    margin-top: calc(var(--pc-header-diff) * -1) !important;
  }
}
/* =========================================================
  FINAL FIX：PCヘッダー96px固定 + FVを削らない
  ヘッダー調整とFV余白を完全に分離
========================================================= */

@media (min-width: 1181px) {
  :root {
    --header-height: 96px;
  }

  .site-header {
    height: 96px !important;
  }

  .site-header__inner {
    height: 96px !important;
  }

  .site-header__right {
    height: 96px !important;
  }

  .site-header__center-logo {
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
  }

  .site-header__right {
    top: 50% !important;
    transform: translateY(-50%) !important;
  }

  /*
    ここが重要。
    FVを上に引き上げない。
    ヘッダーの下から、FVを普通に開始させる。
  */
  .fv {
    margin-top: 0 !important;
    min-height: auto !important;
    display: block !important;
    padding-top: 54px !important;
    padding-bottom: 54px !important;
  }

  .fv__inner {
    width: min(calc(100% - 80px), 1500px) !important;
    display: grid !important;
    grid-template-columns: minmax(560px, 0.92fr) minmax(700px, 1.08fr) !important;
    align-items: center !important;
    gap: clamp(90px, 7vw, 140px) !important;
    margin-inline: auto !important;
  }

  .fv__visual {
    border-radius: 52px !important;
    overflow: hidden !important;
  }

  .fv__visual img {
    width: 100% !important;
    aspect-ratio: 1.22 / 1 !important;
    object-fit: cover !important;
    object-position: center !important;
  }
}
/* =========================================================
  SAN+Lite流用：SAN+関連カードモーダル
  既存LPへ干渉しないよう専用クラスで再現
========================================================= */

#new_san_information.san-product-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 6000 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 40px 24px !important;
}

#new_san_information.san-product-modal.is-open {
  display: flex !important;
}

.san-product-modal .overlay {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  background: rgba(238, 126, 45, 0.32) !important;
  border: 0 !important;
  cursor: pointer !important;
}

.san-product-modal__inner {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
  width: min(calc(100vw - 120px), 1460px) !important;
  padding: 14px !important;
  background: #ffffff !important;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18) !important;
}

.san-product-modal__article {
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
  overflow: hidden !important;
}

.san-product-modal__article a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.san-product-modal__article picture,
.san-product-modal__article img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.san-product-modal__article img {
  object-fit: cover !important;
}

.san-product-modal .close {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  z-index: 3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  padding: 0 !important;
  color: #ffffff !important;
  background: #e86614 !important;
  border: 0 !important;
  cursor: pointer !important;
}

.san-product-modal .close span {
  position: relative !important;
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  overflow: hidden !important;
  text-indent: 100% !important;
  white-space: nowrap !important;
}

.san-product-modal .close span::before,
.san-product-modal .close span::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 22px !important;
  height: 2px !important;
  background: #ffffff !important;
}

.san-product-modal .close span::before {
  transform: translate(-50%, -50%) rotate(45deg) !important;
}

.san-product-modal .close span::after {
  transform: translate(-50%, -50%) rotate(-45deg) !important;
}

body.is-san-product-modal-open {
  overflow: hidden !important;
}

/* SP */
@media (max-width: 767px) {
  #new_san_information.san-product-modal {
    padding: 24px 16px !important;
  }

  .san-product-modal__inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: min(calc(100vw - 32px), 420px) !important;
    max-height: calc(100svh - 48px) !important;
    overflow-y: auto !important;
    padding: 10px !important;
  }

  .san-product-modal__article img {
    height: auto !important;
    object-fit: contain !important;
  }

  .san-product-modal .close {
    width: 32px !important;
    height: 32px !important;
  }
}
/* =========================================================
  SP：SAN+ロゴタップ時の緑枠・タップハイライトを消す
========================================================= */

.site-header__sanplus-button {
  -webkit-tap-highlight-color: transparent !important;
}

.site-header__sanplus-button:focus,
.site-header__sanplus-button:active,
.site-header__sanplus-button:focus-visible {
  outline: none !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

@media (max-width: 640px) {
  .site-header__sanplus-button,
  .site-header__sanplus-button:focus,
  .site-header__sanplus-button:active,
  .site-header__sanplus-button:focus-visible {
    outline: none !important;
    box-shadow: none !important;
    border: 0 !important;
  }
}
/* =========================================================
  FINAL FIX：SAN+Lite型モーダル表示崩れ・MENU二重表示修正
========================================================= */

/* 旧テキスト型モーダルが残っている場合は非表示 */
#sanplusModal,
.sanplus-modal,
.sanplus-modal__panel {
  display: none !important;
}

/* MENU二重表示を防止：emを正、::afterを無効化 */
.menu-button::after {
  content: none !important;
  display: none !important;
}

.menu-button em {
  display: block !important;
  color: var(--color-green) !important;
  font-style: normal !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-align: center !important;
}

/* SAN+ボタンのタップ・フォーカス枠を消す */
.site-header__sanplus-button,
.site-header__sanplus-button:focus,
.site-header__sanplus-button:active,
.site-header__sanplus-button:focus-visible {
  outline: none !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

/* =========================================================
  SAN+Lite流用：SAN+関連カードモーダル
========================================================= */

#new_san_information {
  position: fixed !important;
  inset: 0 !important;
  z-index: 6000 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100vw !important;
  height: 100svh !important;
  margin: 0 !important;
  padding: 40px 24px !important;
  background: transparent !important;
  overflow: hidden !important;
}

#new_san_information.is-open {
  display: flex !important;
}

#new_san_information .overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: rgba(238, 126, 45, 0.32) !important;
  border: 0 !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  font-size: 0 !important;
}

#new_san_information_inner,
#new_san_information .san-product-modal__inner {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  width: min(calc(100vw - 120px), 1260px) !important;
  max-height: calc(100svh - 96px) !important;
  margin: 0 auto !important;
  padding: 14px !important;
  background: #ffffff !important;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18) !important;
  overflow: visible !important;
}

#new_san_information .article,
#new_san_information .san-product-modal__article {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
  line-height: 0 !important;
  overflow: hidden !important;
}

#new_san_information .article a,
#new_san_information .san-product-modal__article a {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

#new_san_information .article picture,
#new_san_information .article img,
#new_san_information .san-product-modal__article picture,
#new_san_information .san-product-modal__article img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

#new_san_information .article img,
#new_san_information .san-product-modal__article img {
  object-fit: contain !important;
  object-position: center !important;
}

/* closeボタン */
#new_san_information .close {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  z-index: 5 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #e86614 !important;
  border: 0 !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

#new_san_information .close span {
  position: relative !important;
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  overflow: hidden !important;
  text-indent: 100% !important;
  white-space: nowrap !important;
}

#new_san_information .close span::before,
#new_san_information .close span::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 22px !important;
  height: 2px !important;
  background: #ffffff !important;
}

#new_san_information .close span::before {
  transform: translate(-50%, -50%) rotate(45deg) !important;
}

#new_san_information .close span::after {
  transform: translate(-50%, -50%) rotate(-45deg) !important;
}

body.is-san-product-modal-open {
  overflow: hidden !important;
}

/* SP */
@media (max-width: 767px) {
  #new_san_information {
    align-items: flex-start !important;
    justify-content: center !important;
    padding: 74px 12px 20px !important;
    overflow-y: auto !important;
  }

  #new_san_information_inner,
  #new_san_information .san-product-modal__inner {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    width: min(calc(100vw - 24px), 520px) !important;
    max-height: none !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  #new_san_information .article,
  #new_san_information .san-product-modal__article {
    width: 100% !important;
  }

  #new_san_information .article img,
  #new_san_information .san-product-modal__article img {
    width: 100% !important;
    height: auto !important;
  }

  #new_san_information .close {
    top: 0 !important;
    right: 0 !important;
    width: 32px !important;
    height: 32px !important;
  }

  .menu-button em {
    font-size: 10px !important;
  }
}
/* =========================================================
  追加修正：PC見出し改行 / CONSULTATION調整 / フッターCTA色変更
========================================================= */

/* PCのみ表示する改行 */
.pc-only {
  display: inline;
}

@media (max-width: 900px) {
  .pc-only {
    display: none !important;
  }
}

/* PLAN：PC版のみ改行したh3の見え方を整える */
@media (min-width: 901px) {
  .plan-panel h3 {
    line-height: 1.55 !important;
  }
}

/* CONSULTATION：PC版のみ2行表示前提で一回り小さく */
@media (min-width: 901px) {
  .consultation__title {
    font-size: clamp(24px, 2.35vw, 34px) !important;
    line-height: 1.55 !important;
    white-space: normal !important;
  }
}

/* フッターCTA：背景の緑と同化しないようオレンジに変更 */
.final-cta__buttons .button,
.final-cta__buttons .button--white,
.final-cta__buttons .button--primary,
.final-cta__buttons .button--outline {
  color: #ffffff !important;
  background: var(--color-orange) !important;
  border-color: var(--color-orange) !important;
  box-shadow: 0 10px 24px rgba(232, 102, 20, 0.26) !important;
}

.final-cta__buttons .button:hover,
.final-cta__buttons .button--white:hover,
.final-cta__buttons .button--primary:hover,
.final-cta__buttons .button--outline:hover {
  color: #ffffff !important;
  background: #d7560c !important;
  border-color: #d7560c !important;
}
/* =========================================================
  FINAL：フッターCTAボタンをオレンジに統一
  final-cta内のボタン + SP固定CTAも対象
========================================================= */

/* フッターCTA内のすべてのリンク・ボタン */
.final-cta a,
.final-cta .button,
.final-cta__buttons a,
.final-cta__buttons .button,
#contact a.button,
#contact .final-cta__buttons a {
  color: #ffffff !important;
  background: var(--color-orange) !important;
  border-color: var(--color-orange) !important;
  box-shadow: 0 10px 24px rgba(232, 102, 20, 0.28) !important;
}

/* hover */
.final-cta a:hover,
.final-cta .button:hover,
.final-cta__buttons a:hover,
.final-cta__buttons .button:hover,
#contact a.button:hover,
#contact .final-cta__buttons a:hover {
  color: #ffffff !important;
  background: #d7560c !important;
  border-color: #d7560c !important;
}

/* SP下部固定CTAもオレンジに統一 */
.fixed-cta a,
.fixed-cta a + a {
  color: #ffffff !important;
  background: var(--color-orange) !important;
  border-color: var(--color-orange) !important;
}

/* SP下部固定CTA hover / active */
.fixed-cta a:hover,
.fixed-cta a:active,
.fixed-cta a + a:hover,
.fixed-cta a + a:active {
  color: #ffffff !important;
  background: #d7560c !important;
  border-color: #d7560c !important;
}

/* =========================================================
  SIZE COMPARISON：24坪＝約79㎡の広さ訴求
========================================================= */

.spaciousness {
  position: relative !important;
  overflow: hidden !important;
  background:
    linear-gradient(180deg, #ffffff 0%, var(--color-ivory) 100%) !important;
}

.spaciousness::before {
  content: "" !important;
  position: absolute !important;
  top: 62px !important;
  right: max(24px, calc((100vw - var(--max-width)) / 2 - 82px)) !important;
  width: 220px !important;
  height: 220px !important;
  background: rgba(232, 102, 20, 0.08) !important;
  border-radius: 50% !important;
  pointer-events: none !important;
}

.spaciousness__title {
  line-height: 1.55 !important;
}

.spaciousness__lead {
  max-width: 820px !important;
  margin-inline: auto !important;
}

.spaciousness__compare {
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 22px !important;
  max-width: 980px !important;
  margin: 44px auto 0 !important;
}

.spaciousness-card {
  display: grid !important;
  align-content: center !important;
  min-height: 224px !important;
  padding: 28px 22px 30px !important;
  text-align: center !important;
  background: var(--color-white) !important;
  border: 1px solid var(--color-line) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-soft) !important;
}

.spaciousness-card__label {
  margin: 0 0 10px !important;
  color: var(--color-muted) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
}

.spaciousness-card__title {
  margin: 0 0 16px !important;
  color: #292929 !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
}

.spaciousness-card__value {
  margin: 0 !important;
  color: var(--color-green) !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(42px, 4.4vw, 58px) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
}

.spaciousness-card__value span {
  margin-left: 4px !important;
  font-family: var(--font-sans) !important;
  font-size: 0.44em !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
}

.spaciousness-card__caption {
  margin: 14px auto 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 86px !important;
  min-height: 30px !important;
  padding: 4px 16px !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  background: var(--color-orange) !important;
  border-radius: 999px !important;
}

.spaciousness-card--emphasis {
  position: relative !important;
  min-height: 246px !important;
  transform: translateY(-10px) !important;
  border: 2px solid var(--color-orange) !important;
  background:
    linear-gradient(180deg, #ffffff 0%, #fff6ee 100%) !important;
  box-shadow: 0 18px 44px rgba(232, 102, 20, 0.18) !important;
}

.spaciousness-card--emphasis::before {
  content: "POINT" !important;
  position: absolute !important;
  top: -15px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 78px !important;
  min-height: 30px !important;
  padding: 0 16px !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.08em !important;
  background: var(--color-orange) !important;
  border-radius: 999px !important;
}

.spaciousness-card--emphasis .spaciousness-card__label {
  color: var(--color-orange) !important;
}

.spaciousness-card--emphasis .spaciousness-card__title {
  color: #222222 !important;
}

.spaciousness-card--emphasis .spaciousness-card__value {
  color: var(--color-orange) !important;
  font-size: clamp(52px, 5.6vw, 76px) !important;
}

.spaciousness__message {
  max-width: 850px !important;
  margin: 34px auto 0 !important;
  padding: 22px 28px !important;
  color: var(--color-text-soft) !important;
  font-size: 16px !important;
  line-height: 2 !important;
  text-align: center !important;
  background: rgba(255, 255, 255, 0.72) !important;
  border: 1px solid rgba(229, 225, 216, 0.92) !important;
  border-radius: var(--radius-md) !important;
}

.spaciousness__note {
  max-width: 900px !important;
  margin: 24px auto 0 !important;
  color: var(--color-muted) !important;
  font-size: 11px !important;
  line-height: 1.9 !important;
}

.spaciousness__note a {
  color: var(--color-green) !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

@media (max-width: 900px) {
  .spaciousness__compare {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    max-width: 520px !important;
    margin-top: 34px !important;
  }

  .spaciousness-card,
  .spaciousness-card--emphasis {
    min-height: auto !important;
    transform: none !important;
  }

  .spaciousness-card {
    padding: 24px 18px 26px !important;
  }

  .spaciousness-card--emphasis {
    margin-top: 14px !important;
  }

  .spaciousness__message {
    margin-top: 28px !important;
    padding: 20px 18px !important;
    text-align: left !important;
  }
}

@media (max-width: 640px) {
  .spaciousness {
    padding: 72px 0 !important;
  }

  .spaciousness::before {
    top: 34px !important;
    right: -78px !important;
    width: 170px !important;
    height: 170px !important;
  }

  .spaciousness__title {
    font-size: 28px !important;
  }

  .spaciousness__lead {
    text-align: left !important;
  }

  .spaciousness-card__value {
    font-size: 46px !important;
  }

  .spaciousness-card--emphasis .spaciousness-card__value {
    font-size: 62px !important;
  }

  .spaciousness__note {
    font-size: 11px !important;
  }
}

/* =========================================================
  PRICE VIEW：本体価格だけでは総額が見えない比較セクション
  FVコピーを維持しつつ、差別化ポイントをFV直下で補足
========================================================= */

.price-view {
  position: relative !important;
  overflow: hidden !important;
  background:
    linear-gradient(180deg, #ffffff 0%, var(--color-ivory) 54%, #ffffff 100%) !important;
}

.price-view::before {
  content: "" !important;
  position: absolute !important;
  top: 64px !important;
  left: -120px !important;
  width: 260px !important;
  height: 260px !important;
  background: rgba(0, 122, 66, 0.055) !important;
  border-radius: 50% !important;
  pointer-events: none !important;
}

.price-view::after {
  content: "" !important;
  position: absolute !important;
  right: -120px !important;
  bottom: 74px !important;
  width: 300px !important;
  height: 300px !important;
  background: rgba(232, 102, 20, 0.055) !important;
  border-radius: 50% !important;
  pointer-events: none !important;
}

.price-view .container {
  position: relative !important;
  z-index: 1 !important;
}

.price-view__title {
  letter-spacing: 0.045em !important;
}

.price-view__lead {
  max-width: 820px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: left !important;
}

.price-view__table-wrap {
  max-width: 1040px !important;
  margin: 42px auto 0 !important;
  overflow: hidden !important;
  background: #ffffff !important;
  border: 1px solid rgba(229, 225, 216, 0.95) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-soft) !important;
}

.price-view__table {
  width: 100% !important;
  border-collapse: collapse !important;
  color: var(--color-text) !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}

.price-view__table caption {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

.price-view__table thead th {
  padding: 18px 20px !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  text-align: center !important;
  background: var(--color-green) !important;
  border-right: 1px solid rgba(255, 255, 255, 0.24) !important;
}

.price-view__table thead th:first-child {
  width: 20% !important;
  background: var(--color-green-dark) !important;
}

.price-view__table thead th:nth-child(2),
.price-view__table thead th:nth-child(3) {
  width: 40% !important;
}

.price-view__table tbody th,
.price-view__table tbody td {
  padding: 19px 20px !important;
  vertical-align: top !important;
  border-top: 1px solid var(--color-line) !important;
  border-right: 1px solid var(--color-line) !important;
}

.price-view__table tbody th {
  color: #222222 !important;
  font-weight: 800 !important;
  text-align: left !important;
  background: #fbfaf5 !important;
}

.price-view__table tbody td:nth-child(2) {
  color: var(--color-text-soft) !important;
  background: #ffffff !important;
}

.price-view__table tbody td:nth-child(3) {
  color: #1f3f32 !important;
  font-weight: 700 !important;
  background: var(--color-green-pale) !important;
}

.price-view__table tbody th:last-child,
.price-view__table tbody td:last-child,
.price-view__table thead th:last-child {
  border-right: 0 !important;
}

.standard-set {
  max-width: 1040px !important;
  margin: 26px auto 0 !important;
  padding: 26px 30px 24px !important;
  background: rgba(255, 255, 255, 0.78) !important;
  border: 1px solid rgba(229, 225, 216, 0.92) !important;
  border-radius: var(--radius-md) !important;
}

.standard-set__heading {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 18px !important;
  margin-bottom: 12px !important;
}

.standard-set__label {
  order: 2 !important;
  margin: 0 !important;
  color: var(--color-green) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  white-space: nowrap !important;
}

.standard-set__title {
  order: 1 !important;
  margin: 0 !important;
  color: #222222 !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
}

.standard-set__lead {
  margin: 0 0 16px !important;
  color: var(--color-text-soft) !important;
  font-size: 13px !important;
  line-height: 1.9 !important;
}

.standard-set__list {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.standard-set__list li {
  position: relative !important;
  padding: 9px 10px 9px 22px !important;
  color: #2c2c2c !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  background: rgba(238, 246, 237, 0.78) !important;
  border-radius: 8px !important;
}

.standard-set__list li::before {
  content: "" !important;
  position: absolute !important;
  top: 1.08em !important;
  left: 10px !important;
  width: 5px !important;
  height: 5px !important;
  background: var(--color-orange) !important;
  border-radius: 50% !important;
}

.standard-set__note {
  margin: 16px 0 0 !important;
  color: var(--color-muted) !important;
  font-size: 11px !important;
  line-height: 1.85 !important;
}

.standard-set__note a {
  color: var(--color-green) !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

@media (max-width: 900px) {
  .price-view__lead {
    max-width: 640px !important;
  }

  .price-view__table-wrap,
  .standard-set {
    max-width: 720px !important;
  }

  .price-view__table {
    font-size: 13px !important;
  }

  .price-view__table thead th,
  .price-view__table tbody th,
  .price-view__table tbody td {
    padding: 16px 14px !important;
  }

  .standard-set__list {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 640px) {
  .price-view {
    padding: 72px 0 !important;
  }

  .price-view::before {
    top: 24px !important;
    left: -100px !important;
    width: 180px !important;
    height: 180px !important;
  }

  .price-view::after {
    right: -110px !important;
    bottom: 42px !important;
    width: 210px !important;
    height: 210px !important;
  }

  .price-view__title {
    font-size: 28px !important;
  }

  .price-view__lead {
    text-align: left !important;
  }

  .price-view__table-wrap {
    margin-top: 32px !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view__table,
  .price-view__table tbody,
  .price-view__table tr,
  .price-view__table th,
  .price-view__table td {
    display: block !important;
    width: 100% !important;
  }

  .price-view__table thead {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
  }

  .price-view__table tbody tr {
    overflow: hidden !important;
    margin-bottom: 16px !important;
    background: #ffffff !important;
    border: 1px solid var(--color-line) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-soft) !important;
  }

  .price-view__table tbody th {
    padding: 14px 16px !important;
    color: #ffffff !important;
    background: var(--color-green) !important;
    border: 0 !important;
  }

  .price-view__table tbody td {
    position: relative !important;
    padding: 42px 16px 15px !important;
    border: 0 !important;
    border-top: 1px solid var(--color-line) !important;
  }

  .price-view__table tbody td::before {
    content: attr(data-label) !important;
    position: absolute !important;
    top: 13px !important;
    left: 16px !important;
    color: var(--color-green) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
  }

  .price-view__table tbody td:nth-child(3) {
    background: var(--color-green-pale) !important;
  }

  .standard-set {
    margin-top: 24px !important;
    padding: 22px 18px 20px !important;
  }

  .standard-set__heading {
    display: block !important;
  }

  .standard-set__label {
    display: block !important;
    margin-bottom: 6px !important;
  }

  .standard-set__title {
    font-size: 17px !important;
  }

  .standard-set__list {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .standard-set__list li {
    font-size: 12px !important;
  }
}



/* =========================================================
  PRICE VIEW：比較表アイコン追加
  PCは表のまま、SPはカード見出しとして視認性を上げる
========================================================= */

.price-view__point {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

.price-view__icon {
  flex: 0 0 48px !important;
  display: grid !important;
  place-items: center !important;
  width: 48px !important;
  height: 48px !important;
  background: rgba(238, 246, 237, 0.88) !important;
  border: 1px solid rgba(0, 122, 66, 0.12) !important;
  border-radius: 50% !important;
}

.price-view__icon img {
  display: block !important;
  width: 34px !important;
  height: 34px !important;
  object-fit: contain !important;
}

.price-view__point-text {
  display: block !important;
}

@media (max-width: 640px) {
  .price-view__table tbody th {
    padding: 16px 16px 14px !important;
    color: #222222 !important;
    background: #ffffff !important;
    border-bottom: 1px solid var(--color-line) !important;
  }

  .price-view__point {
    gap: 14px !important;
  }

  .price-view__icon {
    flex-basis: 64px !important;
    width: 64px !important;
    height: 64px !important;
    background: var(--color-green-pale) !important;
    border-color: rgba(0, 122, 66, 0.14) !important;
  }

  .price-view__icon img {
    width: 48px !important;
    height: 48px !important;
  }

  .price-view__point-text {
    color: #222222 !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
  }

  .price-view__table tbody td {
    padding-top: 40px !important;
  }
}

/* =========================================================
  PRICE VIEW：比較表をカード型デザインへ変更
  - アイコンの丸囲みなし
  - PC：2カラムカード
  - SP：1項目ずつ読みやすい縦カード
========================================================= */

.price-compare {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 46px;
}

.price-compare-card {
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(229, 225, 216, 0.98);
  border-radius: 26px;
  box-shadow: 0 18px 44px rgba(74, 62, 46, 0.08);
}

.price-compare-card--wide {
  grid-column: 1 / -1;
}

.price-compare-card__head {
  display: grid;
  grid-template-columns: 104px 1fr;
  align-items: center;
  gap: 24px;
  padding: 28px 30px 24px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(251, 250, 245, 0.92));
  border-bottom: 1px solid rgba(229, 225, 216, 0.9);
}

.price-compare-card__icon {
  display: block;
  width: 104px;
  height: 104px;
  object-fit: contain;
}

.price-compare-card__number {
  margin: 0 0 8px;
  color: var(--color-green);
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.16em;
}

.price-compare-card__title {
  margin: 0;
  color: #222222;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: 0.04em;
}

.price-compare-card__body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

.price-compare-card__side {
  min-height: 156px;
  padding: 24px 28px 26px;
}

.price-compare-card__side + .price-compare-card__side {
  border-left: 1px solid rgba(229, 225, 216, 0.9);
}

.price-compare-card__side--general {
  background: rgba(251, 250, 245, 0.78);
}

.price-compare-card__side--san {
  background: linear-gradient(180deg, rgba(238, 246, 237, 0.96), rgba(255, 255, 255, 0.98));
}

.price-compare-card__label {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  margin: 0 0 12px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.08em;
  border-radius: 999px;
}

.price-compare-card__side--general .price-compare-card__label {
  color: #6a6256;
  background: rgba(229, 225, 216, 0.62);
}

.price-compare-card__side--san .price-compare-card__label {
  color: var(--color-white);
  background: var(--color-green);
}

.price-compare-card__side p:not(.price-compare-card__label) {
  margin: 0;
  color: var(--color-text-soft);
  font-size: 15px;
  line-height: 1.9;
}

.price-compare-card__side--san p:not(.price-compare-card__label) {
  color: #243a2b;
  font-weight: 700;
}

.price-view__compare-note {
  max-width: 1120px;
  margin: 24px auto 0;
  color: var(--color-muted);
  font-size: 12px;
  line-height: 1.9;
}

@media (min-width: 1181px) {
  .price-compare {
    gap: 28px;
  }

  .price-compare-card--wide .price-compare-card__head {
    grid-template-columns: 126px 1fr;
  }

  .price-compare-card--wide .price-compare-card__icon {
    width: 126px;
    height: 126px;
  }

  .price-compare-card--wide .price-compare-card__title {
    font-size: 28px;
  }
}

@media (max-width: 900px) {
  .price-compare {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 36px;
  }

  .price-compare-card--wide {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .price-compare {
    gap: 18px;
    margin-top: 30px;
  }

  .price-compare-card {
    border-radius: 20px;
  }

  .price-compare-card__head,
  .price-compare-card--wide .price-compare-card__head {
    grid-template-columns: 74px 1fr;
    gap: 16px;
    padding: 20px 18px 18px;
  }

  .price-compare-card__icon,
  .price-compare-card--wide .price-compare-card__icon {
    width: 74px;
    height: 74px;
  }

  .price-compare-card__number {
    margin-bottom: 6px;
    font-size: 10px;
  }

  .price-compare-card__title,
  .price-compare-card--wide .price-compare-card__title {
    font-size: 20px;
    line-height: 1.4;
  }

  .price-compare-card__body {
    grid-template-columns: 1fr;
  }

  .price-compare-card__side {
    min-height: 0;
    padding: 18px 18px 20px;
  }

  .price-compare-card__side + .price-compare-card__side {
    border-left: 0;
    border-top: 1px solid rgba(229, 225, 216, 0.9);
  }

  .price-compare-card__label {
    margin-bottom: 10px;
    font-size: 11px;
  }

  .price-compare-card__side p:not(.price-compare-card__label) {
    font-size: 14px;
    line-height: 1.85;
  }

  .price-view__compare-note {
    margin-top: 18px;
    font-size: 11px;
  }
}


/* =========================================================
  PRICE VIEW：二段カード配置＋全体ワイド化
  - PC：POINT 01〜03を1段目、POINT 04〜07を2段目
  - 4列でも読みにくくならないようカード内比較は縦積み
  - FVの左右端に近い横幅へ各セクションを拡張
========================================================= */

@media (min-width: 1181px) {
  :root {
    --max-width: 1500px;
  }

  .section > .container,
  .price-view > .container {
    width: min(calc(100% - 80px), 1500px) !important;
  }

  .section {
    padding-top: 112px !important;
    padding-bottom: 112px !important;
  }

  .section-heading {
    margin-bottom: 52px !important;
  }

  .section-title {
    font-size: clamp(34px, 3vw, 48px) !important;
  }

  .section-lead {
    font-size: 17px !important;
    line-height: 2.05 !important;
  }

  .concept__inner,
  .consultation__inner {
    gap: 96px !important;
  }

  .concept__image img,
  .consultation__image img,
  .tsubo-card img,
  .plan-panel__image img,
  .spec__visual img {
    width: 100% !important;
  }

  .merit__grid,
  .tsubo__grid {
    gap: 30px !important;
  }

  .merit-card {
    padding: 42px 30px 36px !important;
  }

  .merit-card h3 {
    font-size: 20px !important;
  }

  .merit-card p,
  .tsubo-card span,
  .plan-panel li {
    font-size: 15px !important;
  }

  .tsubo-card figcaption {
    padding: 24px 24px 28px !important;
  }

  .tsubo-card strong {
    font-size: 19px !important;
  }

  .plan-panel {
    gap: 64px !important;
    padding: 46px !important;
  }

  .spec__box {
    max-width: 1280px !important;
    gap: 70px !important;
    padding: 56px !important;
  }

  .faq-list {
    max-width: 1080px !important;
  }

  .subdivision__grid {
    max-width: 1180px !important;
    gap: 56px !important;
  }

  .standard-set,
  .price-view__compare-note {
    max-width: 100% !important;
  }
}

@media (min-width: 1600px) {
  :root {
    --max-width: 1640px;
  }

  .section > .container,
  .price-view > .container {
    width: min(calc(100% - 120px), 1640px) !important;
  }
}

.price-compare--two-rows {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 28px !important;
  margin-top: 54px !important;
}

.price-compare__row {
  display: grid !important;
  gap: 24px !important;
}

.price-compare__row--top {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.price-compare__row--bottom {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.price-compare--two-rows .price-compare-card,
.price-compare--two-rows .price-compare-card--wide {
  grid-column: auto !important;
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
}

.price-compare--two-rows .price-compare-card__head,
.price-compare--two-rows .price-compare-card--wide .price-compare-card__head {
  grid-template-columns: 92px 1fr !important;
  gap: 18px !important;
  min-height: 154px !important;
  padding: 26px 24px 22px !important;
}

.price-compare--two-rows .price-compare-card__icon,
.price-compare--two-rows .price-compare-card--wide .price-compare-card__icon {
  width: 92px !important;
  height: 92px !important;
}

.price-compare--two-rows .price-compare-card__title,
.price-compare--two-rows .price-compare-card--wide .price-compare-card__title {
  font-size: 22px !important;
  line-height: 1.42 !important;
}

.price-compare--two-rows .price-compare-card__body {
  display: grid !important;
  grid-template-columns: 1fr !important;
  flex: 1 1 auto !important;
}

.price-compare--two-rows .price-compare-card__side {
  min-height: 0 !important;
  padding: 20px 24px 22px !important;
}

.price-compare--two-rows .price-compare-card__side + .price-compare-card__side {
  border-left: 0 !important;
  border-top: 1px solid rgba(229, 225, 216, 0.9) !important;
}

.price-compare--two-rows .price-compare-card__side p:not(.price-compare-card__label) {
  font-size: 14px !important;
  line-height: 1.82 !important;
}

@media (min-width: 1181px) {
  .price-compare--two-rows .price-compare__row {
    gap: 28px !important;
  }

  .price-compare__row--top .price-compare-card__head {
    grid-template-columns: 108px 1fr !important;
    min-height: 168px !important;
    padding: 30px 28px 26px !important;
  }

  .price-compare__row--top .price-compare-card__icon {
    width: 108px !important;
    height: 108px !important;
  }

  .price-compare__row--top .price-compare-card__title {
    font-size: 24px !important;
  }

  .price-compare__row--bottom .price-compare-card__head {
    grid-template-columns: 86px 1fr !important;
    gap: 16px !important;
    min-height: 150px !important;
  }

  .price-compare__row--bottom .price-compare-card__icon {
    width: 86px !important;
    height: 86px !important;
  }

  .price-compare__row--bottom .price-compare-card__title {
    font-size: 20px !important;
  }
}

@media (max-width: 1180px) {
  .price-compare__row--top,
  .price-compare__row--bottom {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 900px) {
  .price-compare--two-rows {
    gap: 20px !important;
    margin-top: 36px !important;
  }

  .price-compare__row {
    gap: 20px !important;
  }
}

@media (max-width: 640px) {
  .price-compare__row--top,
  .price-compare__row--bottom {
    grid-template-columns: 1fr !important;
  }

  .price-compare--two-rows {
    gap: 18px !important;
    margin-top: 30px !important;
  }

  .price-compare--two-rows .price-compare-card__head,
  .price-compare--two-rows .price-compare-card--wide .price-compare-card__head {
    grid-template-columns: 74px 1fr !important;
    min-height: 0 !important;
    gap: 16px !important;
    padding: 20px 18px 18px !important;
  }

  .price-compare--two-rows .price-compare-card__icon,
  .price-compare--two-rows .price-compare-card--wide .price-compare-card__icon {
    width: 74px !important;
    height: 74px !important;
  }

  .price-compare--two-rows .price-compare-card__title,
  .price-compare--two-rows .price-compare-card--wide .price-compare-card__title {
    font-size: 20px !important;
  }

  .price-compare--two-rows .price-compare-card__side {
    padding: 18px 18px 20px !important;
  }

  .price-compare--two-rows .price-compare-card__side p:not(.price-compare-card__label) {
    font-size: 14px !important;
  }
}
/* =========================================================
  PRICE VIEW：POINTカードを修正案PDFに合わせて再設計
  - 背景色・シャドウを削除
  - 罫線のみのシンプルな枠組み
  - PC：POINT01〜03を1段目、POINT04〜07を2段目
  - SP：1カラムで読みやすく縦積み
========================================================= */

.price-compare--minimal-points {
  display: grid !important;
  gap: 30px !important;
  width: 100% !important;
  margin: 54px auto 0 !important;
}

.price-compare--minimal-points .price-compare__row {
  display: grid !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 0 !important;
}

.price-compare--minimal-points .price-compare__row--top {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
}

.price-compare--minimal-points .price-compare__row--bottom {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px !important;
}

.price-compare--minimal-points .price-compare-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 34px 30px 32px !important;
  background: transparent !important;
  border: 1px solid rgba(35, 35, 35, 0.54) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.price-compare--minimal-points .price-compare__row--bottom .price-compare-card {
  padding: 30px 24px 28px !important;
}

.price-compare--minimal-points .price-compare-card::before,
.price-compare--minimal-points .price-compare-card::after {
  content: none !important;
  display: none !important;
}

.price-compare--minimal-points .price-compare-card__head {
  display: grid !important;
  grid-template-columns: 62px minmax(0, 1fr) !important;
  align-items: center !important;
  min-height: 0 !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  gap: 16px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__head {
  grid-template-columns: 52px minmax(0, 1fr) !important;
  gap: 13px !important;
  margin-bottom: 21px !important;
}

.price-compare--minimal-points .price-compare-card__icon {
  display: block !important;
  width: 62px !important;
  height: 62px !important;
  max-width: none !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__icon {
  width: 52px !important;
  height: 52px !important;
}

.price-compare--minimal-points .price-compare-card__title-block {
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.price-compare--minimal-points .price-compare-card__number {
  margin: 0 0 5px !important;
  color: var(--color-green) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

.price-compare--minimal-points .price-compare-card__title {
  margin: 0 !important;
  color: #222222 !important;
  font-size: 21px !important;
  font-weight: 900 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.02em !important;
}

.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__number {
  font-size: 11px !important;
}

.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__title {
  font-size: 17px !important;
  line-height: 1.45 !important;
}

.price-compare--minimal-points .price-compare-card__body {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 17px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__body {
  gap: 15px !important;
}

.price-compare--minimal-points .price-compare-card__side {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.price-compare--minimal-points .price-compare-card__label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 27px !important;
  margin: 0 0 9px !important;
  padding: 5px 13px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.02em !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}

.price-compare--minimal-points .price-compare-card__side--general .price-compare-card__label {
  color: #333333 !important;
  background: transparent !important;
  border: 1px solid rgba(70, 70, 70, 0.28) !important;
}

.price-compare--minimal-points .price-compare-card__side--san .price-compare-card__label {
  color: #ffffff !important;
  background: var(--color-green) !important;
  border: 1px solid var(--color-green) !important;
}

.price-compare--minimal-points .price-compare-card__side p:not(.price-compare-card__label) {
  margin: 0 !important;
  color: #333333 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.9 !important;
  letter-spacing: 0.02em !important;
}

.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__side p:not(.price-compare-card__label) {
  font-size: 12px !important;
  line-height: 1.85 !important;
}

.price-compare--minimal-points .price-compare-card__side--general p:not(.price-compare-card__label) {
  color: var(--color-text-soft) !important;
  font-weight: 500 !important;
}

.price-compare--minimal-points .price-compare-card__side--san p:not(.price-compare-card__label) {
  color: #1d3f31 !important;
  font-weight: 700 !important;
}

@media (min-width: 1200px) {
  .price-view .container {
    width: min(calc(100% - 80px), 1500px) !important;
    max-width: none !important;
  }
}

@media (min-width: 1600px) {
  .price-view .container {
    width: min(calc(100% - 120px), 1640px) !important;
  }

  .price-compare--minimal-points .price-compare__row--top {
    gap: 28px !important;
  }

  .price-compare--minimal-points .price-compare__row--bottom {
    gap: 24px !important;
  }

  .price-compare--minimal-points .price-compare-card {
    padding: 38px 34px 36px !important;
  }

  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card {
    padding: 34px 28px 32px !important;
  }
}

@media (min-width: 641px) and (max-width: 1180px) {
  .price-compare--minimal-points {
    gap: 22px !important;
    margin-top: 42px !important;
  }

  .price-compare--minimal-points .price-compare__row--top,
  .price-compare--minimal-points .price-compare__row--bottom {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
  }

  .price-compare--minimal-points .price-compare-card,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card {
    padding: 30px 26px 28px !important;
  }

  .price-compare--minimal-points .price-compare-card__head,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__head {
    grid-template-columns: 58px minmax(0, 1fr) !important;
    gap: 15px !important;
  }

  .price-compare--minimal-points .price-compare-card__icon,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__icon {
    width: 58px !important;
    height: 58px !important;
  }

  .price-compare--minimal-points .price-compare-card__title,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__title {
    font-size: 20px !important;
  }

  .price-compare--minimal-points .price-compare-card__side p:not(.price-compare-card__label),
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__side p:not(.price-compare-card__label) {
    font-size: 13px !important;
    line-height: 1.9 !important;
  }
}

@media (max-width: 640px) {
  .price-compare--minimal-points {
    gap: 18px !important;
    margin-top: 34px !important;
  }

  .price-compare--minimal-points .price-compare__row--top,
  .price-compare--minimal-points .price-compare__row--bottom {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .price-compare--minimal-points .price-compare-card,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card {
    padding: 24px 20px 23px !important;
    border-color: rgba(35, 35, 35, 0.48) !important;
  }

  .price-compare--minimal-points .price-compare-card__head,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__head {
    grid-template-columns: 54px minmax(0, 1fr) !important;
    gap: 14px !important;
    margin-bottom: 18px !important;
  }

  .price-compare--minimal-points .price-compare-card__icon,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__icon {
    width: 54px !important;
    height: 54px !important;
  }

  .price-compare--minimal-points .price-compare-card__number,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__number {
    margin-bottom: 4px !important;
    font-size: 11px !important;
  }

  .price-compare--minimal-points .price-compare-card__title,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__title {
    font-size: 20px !important;
    line-height: 1.4 !important;
  }

  .price-compare--minimal-points .price-compare-card__body,
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__body {
    gap: 14px !important;
  }

  .price-compare--minimal-points .price-compare-card__label {
    min-height: 26px !important;
    margin-bottom: 8px !important;
    padding: 5px 12px !important;
    font-size: 11px !important;
  }

  .price-compare--minimal-points .price-compare-card__side p:not(.price-compare-card__label),
  .price-compare--minimal-points .price-compare__row--bottom .price-compare-card__side p:not(.price-compare-card__label) {
    font-size: 13px !important;
    line-height: 1.85 !important;
  }
}
/* =========================================================
  STANDARD PLAN SET：修正案レイアウトへ変更
  - 添付案に合わせ、外枠カード感を削除
  - SIZE COMPARISON直前の小さめ補足ブロックとして整理
  - PCは3列×3段、SPは1列
========================================================= */

.price-view .standard-set {
  max-width: 860px !important;
  margin: clamp(58px, 5.2vw, 82px) auto 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.price-view .standard-set__heading {
  display: block !important;
  margin: 0 0 12px !important;
  text-align: left !important;
}

.price-view .standard-set__label {
  display: block !important;
  order: initial !important;
  margin: 0 0 20px !important;
  color: var(--color-green) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.08em !important;
  white-space: nowrap !important;
}

.price-view .standard-set__title {
  order: initial !important;
  margin: 0 !important;
  color: #222222 !important;
  font-family: var(--font-sans) !important;
  font-size: clamp(23px, 1.9vw, 30px) !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.02em !important;
}

.price-view .standard-set__lead {
  max-width: 860px !important;
  margin: 12px 0 0 !important;
  color: #333333 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.9 !important;
  text-align: left !important;
}

.price-view .standard-set__list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px 24px !important;
  max-width: 860px !important;
  margin: 42px 0 0 !important;
  padding: 0 !important;
}

.price-view .standard-set__list li {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 52px !important;
  padding: 10px 14px !important;
  color: #222222 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  text-align: center !important;
  letter-spacing: 0.01em !important;
  white-space: nowrap !important;
  background: transparent !important;
  border: 1px solid #222222 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.price-view .standard-set__list li::before {
  content: none !important;
  display: none !important;
}

.price-view .standard-set__note {
  max-width: 860px !important;
  margin: 36px 0 0 !important;
  color: var(--color-muted) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.9 !important;
  text-align: left !important;
}

.price-view .standard-set__note a {
  color: var(--color-green) !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

/* SIZE COMPARISONとの距離感調整：STANDARD PLAN SETを軽く見せる */
.price-view .standard-set + * {
  margin-top: 0 !important;
}

@media (min-width: 1181px) {
  .price-view .standard-set {
    /* SIZE COMPARISONの比較カード幅980pxより少し小さく設定 */
    max-width: 860px !important;
  }
}

@media (max-width: 900px) {
  .price-view .standard-set {
    max-width: 720px !important;
    margin-top: 54px !important;
  }

  .price-view .standard-set__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px 16px !important;
    margin-top: 32px !important;
  }

  .price-view .standard-set__list li {
    min-height: 50px !important;
    white-space: normal !important;
  }
}

@media (max-width: 640px) {
  .price-view .standard-set {
    width: 100% !important;
    max-width: none !important;
    margin-top: 48px !important;
  }

  .price-view .standard-set__label {
    margin-bottom: 14px !important;
    font-size: 11px !important;
  }

  .price-view .standard-set__title {
    font-size: 22px !important;
    line-height: 1.5 !important;
  }

  .price-view .standard-set__lead {
    margin-top: 12px !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
  }

  .price-view .standard-set__list {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 28px !important;
  }

  .price-view .standard-set__list li {
    min-height: 46px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    white-space: normal !important;
  }

  .price-view .standard-set__note {
    margin-top: 26px !important;
    font-size: 11px !important;
  }
}

/* =========================================================
  PRICE VIEW：SAN+平屋ラベル上の罫線を削除
========================================================= */
.price-compare--minimal-points .price-compare-card__side + .price-compare-card__side,
.price-compare--minimal-points .price-compare-card__side--san,
.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__side + .price-compare-card__side,
.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__side--san {
  border-top: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-shadow: none !important;
}
/* =========================================================
  STANDARD PLAN SET：右側にイメージ画像を追加
  - PC：左に内容、右に画像
  - SP：内容の下に画像
========================================================= */

.price-view .standard-set.standard-set--with-image {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px) !important;
  align-items: end !important;
  gap: clamp(34px, 4vw, 54px) !important;
  max-width: 1040px !important;
  margin: clamp(58px, 5.2vw, 82px) auto 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.price-view .standard-set__content {
  min-width: 0 !important;
}

.price-view .standard-set.standard-set--with-image .standard-set__lead,
.price-view .standard-set.standard-set--with-image .standard-set__list,
.price-view .standard-set.standard-set--with-image .standard-set__note {
  max-width: none !important;
}

.price-view .standard-set.standard-set--with-image .standard-set__list {
  width: 100% !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px 18px !important;
  margin-top: 34px !important;
}

.price-view .standard-set.standard-set--with-image .standard-set__list li {
  min-height: 48px !important;
  padding: 9px 10px !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

.price-view .standard-set.standard-set--with-image .standard-set__note {
  margin-top: 30px !important;
}

.price-view .standard-set__visual {
  width: 100% !important;
  margin: 0 !important;
  align-self: end !important;
  overflow: hidden !important;
  background: #f6f4ee !important;
}

.price-view .standard-set__visual img {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1.18 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
}

@media (min-width: 1181px) {
  .price-view .standard-set.standard-set--with-image {
    max-width: 1040px !important;
    grid-template-columns: minmax(0, 1fr) 320px !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .price-view .standard-set.standard-set--with-image {
    max-width: 920px !important;
    grid-template-columns: minmax(0, 1fr) 280px !important;
    gap: 30px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    gap: 12px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    font-size: 11px !important;
    white-space: normal !important;
  }
}

@media (max-width: 900px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    max-width: 720px !important;
    margin-top: 54px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px 16px !important;
    margin-top: 32px !important;
  }

  .price-view .standard-set__visual {
    max-width: 420px !important;
  }
}

@media (max-width: 640px) {
  .price-view .standard-set.standard-set--with-image {
    width: 100% !important;
    max-width: none !important;
    gap: 24px !important;
    margin-top: 48px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 28px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    min-height: 46px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    white-space: normal !important;
  }

  .price-view .standard-set__visual {
    max-width: none !important;
  }

  .price-view .standard-set__visual img {
    aspect-ratio: 1.28 / 1 !important;
  }
}
/* =========================================================
  PRICE VIEW：SAN+平屋ラベル上の罫線を削除
========================================================= */
.price-compare--minimal-points .price-compare-card__side + .price-compare-card__side,
.price-compare--minimal-points .price-compare-card__side--san,
.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__side + .price-compare-card__side,
.price-compare--minimal-points .price-compare__row--bottom .price-compare-card__side--san {
  border-top: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-shadow: none !important;
}


/* =========================================================
  STANDARD PLAN SET：修正案(3)に合わせてPOINT04〜07幅へ整列
  - PC：PRICE VIEWのPOINT04〜07と同じ横幅で配置
  - 左3カラム分に標準プランセット内容、右1カラム分に画像
  - タブレット/SPは視認性優先で崩れない構成
========================================================= */

@media (min-width: 1181px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    align-items: end !important;
    gap: 20px !important;
    width: 100% !important;
    max-width: none !important;
    margin: clamp(58px, 5.2vw, 82px) auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__content {
    grid-column: 1 / span 3 !important;
    min-width: 0 !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual {
    grid-column: 4 / span 1 !important;
    align-self: end !important;
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #f6f4ee !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1.18 / 1 !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__lead,
  .price-view .standard-set.standard-set--with-image .standard-set__list,
  .price-view .standard-set.standard-set--with-image .standard-set__note {
    max-width: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    width: 100% !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px 18px !important;
    margin-top: 34px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    min-height: 48px !important;
    padding: 9px 10px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__note {
    margin-top: 30px !important;
  }
}

@media (min-width: 1600px) {
  .price-view .standard-set.standard-set--with-image {
    gap: 24px !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 280px !important;
    align-items: end !important;
    gap: 30px !important;
    width: 100% !important;
    max-width: 920px !important;
    margin: 54px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-top: 32px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    min-height: 46px !important;
    padding: 9px 10px !important;
    font-size: 11px !important;
    white-space: normal !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual {
    width: 100% !important;
    margin: 0 !important;
    align-self: end !important;
    overflow: hidden !important;
    background: #f6f4ee !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1.18 / 1 !important;
    object-fit: cover !important;
    object-position: center !important;
  }
}

@media (max-width: 900px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    width: 100% !important;
    max-width: 720px !important;
    margin: 54px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px 16px !important;
    margin-top: 32px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual {
    width: 100% !important;
    max-width: 420px !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #f6f4ee !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1.28 / 1 !important;
    object-fit: cover !important;
    object-position: center !important;
  }
}

@media (max-width: 640px) {
  .price-view .standard-set.standard-set--with-image {
    max-width: none !important;
    gap: 24px !important;
    margin-top: 48px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 28px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    min-height: 46px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    white-space: normal !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual {
    max-width: none !important;
  }
}
/* =========================================================
  STANDARD PLAN SET：修正案(4)再現
  - 外枠はPRICE VIEW下段POINT04〜07の横幅に揃える
  - 右側画像 sizecomparison.webp は元の表示サイズ・比率を維持
  - 画像は絶対にトリミング・変形しない
  - 横幅調整は左側9項目の枠幅・余白で行う
========================================================= */

@media (min-width: 1181px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: minmax(0, 680px) 320px !important;
    justify-content: space-between !important;
    align-items: end !important;
    gap: clamp(40px, 5vw, 96px) !important;
    width: 100% !important;
    max-width: none !important;
    margin: clamp(58px, 5.2vw, 82px) auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__content {
    grid-column: auto !important;
    width: 100% !important;
    max-width: 680px !important;
    min-width: 0 !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__heading {
    margin-bottom: 12px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__lead,
  .price-view .standard-set.standard-set--with-image .standard-set__note {
    max-width: 680px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px 18px !important;
    width: 100% !important;
    max-width: 680px !important;
    margin-top: 34px !important;
    padding: 0 !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 42px !important;
    padding: 8px 10px !important;
    color: #222222 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-align: center !important;
    letter-spacing: 0.01em !important;
    white-space: nowrap !important;
    background: transparent !important;
    border: 1px solid #222222 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li::before {
    content: none !important;
    display: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__note {
    margin-top: 28px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual {
    grid-column: auto !important;
    align-self: end !important;
    justify-self: end !important;
    width: 320px !important;
    max-width: 320px !important;
    min-width: 320px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    display: block !important;
    width: 320px !important;
    max-width: 320px !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}

@media (min-width: 1600px) {
  .price-view .standard-set.standard-set--with-image {
    grid-template-columns: minmax(0, 700px) 320px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__content,
  .price-view .standard-set.standard-set--with-image .standard-set__lead,
  .price-view .standard-set.standard-set--with-image .standard-set__list,
  .price-view .standard-set.standard-set--with-image .standard-set__note {
    max-width: 700px !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 280px !important;
    align-items: end !important;
    gap: 30px !important;
    width: 100% !important;
    max-width: 920px !important;
    margin: 54px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__content {
    width: 100% !important;
    min-width: 0 !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: none !important;
    margin-top: 32px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    min-height: 40px !important;
    padding: 8px 8px !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual {
    justify-self: end !important;
    align-self: end !important;
    width: 280px !important;
    max-width: 280px !important;
    min-width: 280px !important;
    margin: 0 !important;
    overflow: visible !important;
    background: transparent !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    display: block !important;
    width: 280px !important;
    max-width: 280px !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
  }
}

@media (max-width: 900px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    width: 100% !important;
    max-width: 720px !important;
    margin: 54px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px 16px !important;
    margin-top: 32px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual {
    justify-self: start !important;
    width: min(100%, 420px) !important;
    max-width: 420px !important;
    margin: 0 !important;
    overflow: visible !important;
    background: transparent !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    display: block !important;
    width: min(100%, 420px) !important;
    max-width: 420px !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
  }
}

@media (max-width: 640px) {
  .price-view .standard-set.standard-set--with-image {
    max-width: none !important;
    gap: 24px !important;
    margin-top: 48px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 28px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    min-height: 46px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    white-space: normal !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual,
  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    width: 100% !important;
    max-width: none !important;
  }
}
/* =========================================================
  FINAL CORRECT：STANDARD PLAN SET 右画像付きレイアウト
  修正案(5)再現
  - 全体幅はPRICE VIEW下段POINT04〜07と同じ
  - 右画像はトリミング・変形しない
  - 横幅調整は左側9項目の枠幅・gapで行う
  - 9項目の枠幅はすべて同一
========================================================= */

@media (min-width: 1181px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: minmax(0, 64.6%) minmax(0, 30.5%) !important;
    justify-content: start !important;
    align-items: end !important;
    column-gap: 4.9% !important;
    width: 100% !important;
    max-width: none !important;
    margin: clamp(58px, 5.2vw, 82px) auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__content {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__heading {
    display: block !important;
    margin: 0 0 12px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__label {
    display: block !important;
    margin: 0 0 18px !important;
    color: var(--color-green) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: 0.16em !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__title {
    margin: 0 !important;
    color: #222222 !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.02em !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__lead,
  .price-view .standard-set.standard-set--with-image .standard-set__note {
    width: 100% !important;
    max-width: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__lead {
    margin: 12px 0 0 !important;
    color: #222222 !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.9 !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px 22px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 32px 0 0 !important;
    padding: 0 !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 8px !important;
    color: #222222 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-align: center !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    background: transparent !important;
    border: 1px solid #222222 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li::before {
    content: none !important;
    display: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__note {
    margin: 26px 0 0 !important;
    color: #555555 !important;
    font-size: 10px !important;
    line-height: 1.75 !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__note a {
    color: var(--color-green) !important;
    font-weight: 900 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual {
    grid-column: 2 !important;
    justify-self: stretch !important;
    align-self: end !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 32%) !important;
    column-gap: 32px !important;
    align-items: end !important;
    width: 100% !important;
    max-width: 920px !important;
    margin: 54px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: none !important;
    margin-top: 30px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    min-height: 38px !important;
    padding: 8px 6px !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual,
  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
  }
}

@media (max-width: 900px) {
  .price-view .standard-set.standard-set--with-image {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    width: 100% !important;
    max-width: 720px !important;
    margin: 54px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px 16px !important;
    margin-top: 30px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual {
    justify-self: start !important;
    width: min(100%, 420px) !important;
    max-width: 420px !important;
    margin: 0 !important;
    overflow: visible !important;
    background: transparent !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    display: block !important;
    width: min(100%, 420px) !important;
    max-width: 420px !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
  }
}

@media (max-width: 640px) {
  .price-view .standard-set.standard-set--with-image {
    max-width: none !important;
    gap: 24px !important;
    margin-top: 48px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 28px !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__list li {
    min-height: 46px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    white-space: normal !important;
  }

  .price-view .standard-set.standard-set--with-image .standard-set__visual,
  .price-view .standard-set.standard-set--with-image .standard-set__visual img {
    width: 100% !important;
    max-width: none !important;
  }
}


/* =========================================================
  PLAN：修正案レイアウトへ変更
  - タブ切替機能は既存JSのまま維持
  - 左に間取り図、右に想定・見出し・箇条書き・生活イメージ画像・CTA
  - 旧デザインの角丸背景カード／英字オーバーレイは使用しない
========================================================= */

.plans {
  background: #ffffff !important;
}

.plans .section-heading {
  margin-bottom: 44px !important;
}

.plans .section-lead {
  max-width: 680px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
}

.plan-tabs {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 48px !important;
  padding: 0 !important;
}

.plan-tabs__button {
  min-width: 128px !important;
  min-height: 46px !important;
  padding: 10px 24px !important;
  color: var(--color-green) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  background: #ffffff !important;
  border: 1px solid var(--color-green) !important;
  border-radius: 16px !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.plan-tabs__button.is-active {
  color: #ffffff !important;
  background: var(--color-green) !important;
}

.plan-panels {
  width: min(100%, 1080px) !important;
  margin: 0 auto !important;
}

.plan-panel {
  display: grid !important;
  grid-template-columns: minmax(360px, 0.95fr) minmax(420px, 1.05fr) !important;
  align-items: center !important;
  gap: 52px !important;
  width: 100% !important;
  min-height: 620px !important;
  margin: 0 auto !important;
  padding: 62px 58px !important;
  background: #ffffff !important;
  border: 2px solid #222222 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.plan-panel[hidden] {
  display: none !important;
}

.plan-panel__image {
  display: none !important;
}

.plan-panel__drawing,
.plan-panel__photo {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.plan-panel__drawing {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
}

.plan-panel__drawing img {
  display: block !important;
  width: 100% !important;
  max-width: 410px !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
}

.plan-panel__body {
  min-width: 0 !important;
}

.plan-panel__target {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 30px !important;
  margin: 0 0 16px !important;
  padding: 6px 14px !important;
  color: #ffffff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  background: #222222 !important;
  border-radius: 0 !important;
}

.plan-panel h3 {
  margin: 0 0 28px !important;
  color: #222222 !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(26px, 2.1vw, 36px) !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.04em !important;
}

.plan-panel__detail {
  display: grid !important;
  grid-template-columns: minmax(180px, 0.92fr) minmax(210px, 1.08fr) !important;
  align-items: start !important;
  gap: 28px !important;
  margin: 0 0 34px !important;
}

.plan-panel__points {
  display: grid !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.plan-panel__points li,
.plan-panel li {
  position: relative !important;
  margin: 0 !important;
  padding: 0 0 0 1.15em !important;
  color: #2d2d2d !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.75 !important;
  list-style: none !important;
}

.plan-panel__points li::before,
.plan-panel li::before {
  content: "" !important;
  position: absolute !important;
  top: 0.72em !important;
  left: 0 !important;
  width: 5px !important;
  height: 5px !important;
  background: var(--color-orange) !important;
  border-radius: 50% !important;
}

.plan-panel__photo {
  width: 100% !important;
}

.plan-panel__photo img {
  display: block !important;
  width: 100% !important;
  max-width: 285px !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
}

.plan-panel__button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 226px !important;
  min-height: 56px !important;
  padding: 14px 22px !important;
  color: var(--color-orange) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  text-align: center !important;
  background: #ffffff !important;
  border: 1.5px solid var(--color-orange) !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease !important;
}

.plan-panel__button:hover {
  color: #ffffff !important;
  background: var(--color-orange) !important;
  transform: translateY(-2px) !important;
}

.plan-panel .text-link {
  display: none !important;
}

@media (min-width: 1181px) {
  .plans > .container {
    width: min(calc(100% - 80px), 1500px) !important;
  }

  .plan-panels {
    max-width: 1080px !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .plan-panels {
    width: min(calc(100% - 48px), 980px) !important;
  }

  .plan-panel {
    grid-template-columns: minmax(320px, 0.95fr) minmax(360px, 1.05fr) !important;
    gap: 38px !important;
    min-height: 560px !important;
    padding: 46px 40px !important;
  }

  .plan-panel__drawing img {
    max-width: 360px !important;
  }

  .plan-panel__detail {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .plan-panel__photo img {
    max-width: 300px !important;
  }
}

@media (max-width: 900px) {
  .plan-tabs {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: min(100%, 520px) !important;
    margin: 32px auto 34px !important;
    overflow: visible !important;
  }

  .plan-tabs__button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    padding: 10px 18px !important;
    border-radius: 999px !important;
    font-size: 17px !important;
  }

  .plan-panels {
    width: min(calc(100% - 32px), 720px) !important;
  }

  .plan-panel {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    min-height: 0 !important;
    padding: 32px 22px 36px !important;
    border-width: 1.5px !important;
  }

  .plan-panel__drawing img {
    max-width: 420px !important;
  }

  .plan-panel h3 {
    font-size: 27px !important;
  }

  .plan-panel__detail {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  .plan-panel__photo img {
    max-width: 100% !important;
  }

  .plan-panel__button {
    width: 100% !important;
  }
}

@media (max-width: 640px) {
  .plans {
    padding: 72px 0 !important;
  }

  .plans .section-heading {
    margin-bottom: 30px !important;
  }

  .plans__title {
    white-space: normal !important;
  }

  .plan-panel {
    padding: 26px 18px 30px !important;
  }

  .plan-panel__drawing img {
    max-width: 100% !important;
  }

  .plan-panel__target {
    font-size: 12px !important;
  }

  .plan-panel h3 {
    margin-bottom: 22px !important;
    font-size: 24px !important;
    line-height: 1.55 !important;
  }

  .plan-panel__points li,
  .plan-panel li {
    font-size: 14px !important;
  }
}
/* =========================================================
  PLAN：修正案サイズ再現（大枠・間取り・右側情報を拡大）
  - タブ切り替え機能は既存JSのまま維持
  - plan_senior.webp / plan_couple.webp / plan_family.webp を大きく表示
  - 旧デザイン要素が残っていても非表示
========================================================= */

/* 旧デザインの英字オーバーレイ用要素が残っている場合は消す */
.plan-panel__image,
.plan-panel__image::before,
.plan-panel__image::after,
.plan-panel__image *::before,
.plan-panel__image *::after {
  display: none !important;
  content: none !important;
}

@media (min-width: 1181px) {
  .plans {
    padding-top: 112px !important;
    padding-bottom: 120px !important;
  }

  .plans > .container {
    width: min(calc(100% - 80px), 1500px) !important;
  }

  .plans .section-heading {
    margin-bottom: 44px !important;
  }

  .plans .section-label {
    margin-bottom: 14px !important;
    font-size: 15px !important;
  }

  .plans__title {
    font-size: clamp(40px, 3.35vw, 56px) !important;
    line-height: 1.45 !important;
  }

  .plans .section-lead {
    margin-top: 20px !important;
    font-size: 17px !important;
    line-height: 1.9 !important;
  }

  .plan-tabs {
    gap: 14px !important;
    margin-bottom: 54px !important;
  }

  .plan-tabs__button {
    min-width: 150px !important;
    min-height: 48px !important;
    padding: 11px 26px !important;
    font-size: 15px !important;
    border-radius: 17px !important;
  }

  .plan-panels {
    width: min(100%, 1240px) !important;
    max-width: 1240px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .plan-panel {
    display: grid !important;
    grid-template-columns: minmax(470px, 0.98fr) minmax(520px, 1.02fr) !important;
    align-items: center !important;
    gap: 72px !important;
    width: 100% !important;
    min-height: 720px !important;
    padding: 74px 72px !important;
    background: #ffffff !important;
    border: 2px solid #222222 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .plan-panel__drawing {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  .plan-panel__drawing img {
    display: block !important;
    width: 100% !important;
    max-width: 520px !important;
    max-height: 590px !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    filter: none !important;
  }

  .plan-panel__body {
    display: block !important;
    min-width: 0 !important;
    max-width: 540px !important;
  }

  .plan-panel__target {
    min-height: 32px !important;
    margin-bottom: 18px !important;
    padding: 7px 15px !important;
    font-size: 14px !important;
    background: #222222 !important;
    color: #ffffff !important;
    border-radius: 0 !important;
  }

  .plan-panel h3 {
    margin-bottom: 30px !important;
    color: #222222 !important;
    font-family: var(--font-serif) !important;
    font-size: clamp(34px, 2.55vw, 46px) !important;
    font-weight: 600 !important;
    line-height: 1.48 !important;
    letter-spacing: 0.04em !important;
  }

  .plan-panel__detail {
    display: grid !important;
    grid-template-columns: minmax(220px, 0.88fr) minmax(310px, 1.12fr) !important;
    align-items: start !important;
    gap: 32px !important;
    margin-bottom: 38px !important;
  }

  .plan-panel__points {
    display: grid !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .plan-panel__points li,
  .plan-panel li {
    padding-left: 1.15em !important;
    color: #2d2d2d !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.85 !important;
  }

  .plan-panel__photo {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  .plan-panel__photo img {
    display: block !important;
    width: 100% !important;
    max-width: 340px !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .plan-panel__button {
    min-width: 282px !important;
    min-height: 64px !important;
    padding: 17px 30px !important;
    color: var(--color-orange) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    background: #ffffff !important;
    border: 2px solid var(--color-orange) !important;
    border-radius: 0 !important;
  }
}

@media (min-width: 1600px) {
  .plan-panels {
    width: min(100%, 1320px) !important;
    max-width: 1320px !important;
  }

  .plan-panel {
    grid-template-columns: minmax(520px, 1fr) minmax(560px, 1fr) !important;
    gap: 84px !important;
    min-height: 760px !important;
    padding: 82px 82px !important;
  }

  .plan-panel__drawing img {
    max-width: 570px !important;
    max-height: 630px !important;
  }

  .plan-panel__photo img {
    max-width: 365px !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .plan-panels {
    width: min(calc(100% - 48px), 1080px) !important;
    max-width: 1080px !important;
  }

  .plan-panel {
    grid-template-columns: minmax(390px, 0.95fr) minmax(420px, 1.05fr) !important;
    gap: 46px !important;
    min-height: 640px !important;
    padding: 56px 46px !important;
  }

  .plan-panel__drawing img {
    max-width: 440px !important;
    max-height: 520px !important;
  }

  .plan-panel h3 {
    font-size: 34px !important;
  }

  .plan-panel__detail {
    grid-template-columns: minmax(190px, 0.92fr) minmax(260px, 1.08fr) !important;
    gap: 26px !important;
  }

  .plan-panel__photo img {
    max-width: 300px !important;
  }
}

@media (max-width: 900px) {
  .plan-panels {
    width: min(calc(100% - 32px), 760px) !important;
  }

  .plan-panel {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
    padding: 38px 28px 42px !important;
    border: 1.5px solid #222222 !important;
  }

  .plan-panel__drawing img {
    width: 100% !important;
    max-width: 560px !important;
    height: auto !important;
    object-fit: contain !important;
  }

  .plan-panel h3 {
    font-size: 30px !important;
  }

  .plan-panel__detail {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .plan-panel__photo img {
    width: 100% !important;
    max-width: 420px !important;
  }
}
/* =========================================================
  PLAN：24TSUBO PLAN画像グリッドの左右端に外枠幅を合わせる
  - PCではPLAN外枠を .tsubo__grid と同じコンテナ幅にする
  - 見出し・タブは中央寄せのまま維持
  - SP/タブレットは既存の1カラム・縮小レイアウトを維持
========================================================= */

@media (min-width: 1181px) {
  .plans > .container {
    width: min(calc(100% - 80px), 1500px) !important;
  }

  .plans .plan-panels {
    width: 100% !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .plans .plan-panel {
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: minmax(560px, 0.95fr) minmax(620px, 1.05fr) !important;
    gap: 82px !important;
    min-height: 760px !important;
    padding: 82px 86px !important;
  }

  .plans .plan-panel__drawing img {
    max-width: 620px !important;
    max-height: 650px !important;
  }

  .plans .plan-panel__body {
    max-width: 680px !important;
  }

  .plans .plan-panel__detail {
    grid-template-columns: minmax(245px, 0.9fr) minmax(350px, 1.1fr) !important;
    gap: 36px !important;
  }

  .plans .plan-panel__photo img {
    max-width: 390px !important;
  }
}

@media (min-width: 1600px) {
  .plans > .container {
    width: min(calc(100% - 120px), 1640px) !important;
  }

  .plans .plan-panels {
    width: 100% !important;
    max-width: none !important;
  }

  .plans .plan-panel {
    grid-template-columns: minmax(620px, 0.96fr) minmax(700px, 1.04fr) !important;
    gap: 94px !important;
    min-height: 800px !important;
    padding: 86px 96px !important;
  }

  .plans .plan-panel__drawing img {
    max-width: 680px !important;
    max-height: 690px !important;
  }

  .plans .plan-panel__body {
    max-width: 740px !important;
  }

  .plans .plan-panel__detail {
    grid-template-columns: minmax(270px, 0.9fr) minmax(390px, 1.1fr) !important;
    gap: 40px !important;
  }

  .plans .plan-panel__photo img {
    max-width: 420px !important;
  }
}
/* =========================================================
  PRICE VIEW / STANDARD PLAN SET：読みやすさ改善案
  - PRICE VIEWは文章量の圧を下げ、SAN+平屋の含有内容を視覚的に強調
  - STANDARD PLAN SETは9項目羅列から3カテゴリ表示へ変更
========================================================= */

.price-compare--readable {
  --pv-card-border: #d8d2c8;
  --pv-soft-line: rgba(216, 210, 200, 0.82);
  --pv-soft-green: rgba(238, 246, 237, 0.92);
  --pv-soft-gray: rgba(247, 246, 242, 0.92);
}

.price-compare--readable .price-compare-card {
  position: relative !important;
  display: grid !important;
  grid-template-rows: auto 1fr !important;
  padding: 30px 30px 28px !important;
  background: linear-gradient(180deg, #ffffff 0%, #fffefa 100%) !important;
  border: 1px solid var(--pv-card-border) !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

.price-compare--readable .price-compare-card::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 5px !important;
  background: linear-gradient(90deg, var(--color-green), rgba(0, 122, 66, 0.18)) !important;
  opacity: 0.88 !important;
}

.price-compare--readable .price-compare-card__head {
  display: grid !important;
  grid-template-columns: 66px minmax(0, 1fr) !important;
  gap: 16px !important;
  align-items: center !important;
  margin-bottom: 24px !important;
}

.price-compare--readable .price-compare__row--bottom .price-compare-card__head {
  grid-template-columns: 58px minmax(0, 1fr) !important;
  gap: 13px !important;
}

.price-compare--readable .price-compare-card__icon {
  width: 66px !important;
  height: 66px !important;
  object-fit: contain !important;
}

.price-compare--readable .price-compare__row--bottom .price-compare-card__icon {
  width: 58px !important;
  height: 58px !important;
}

.price-compare--readable .price-compare-card__number {
  margin: 0 0 4px !important;
  color: var(--color-green) !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.1em !important;
}

.price-compare--readable .price-compare-card__title {
  margin: 0 !important;
  color: #1f1f1f !important;
  font-size: 25px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.02em !important;
}

.price-compare--readable .price-compare__row--bottom .price-compare-card__title {
  font-size: 21px !important;
}

.price-compare--readable .price-compare-card__body {
  position: relative !important;
  display: grid !important;
  gap: 12px !important;
}

.price-compare--readable .price-compare-card__side {
  margin: 0 !important;
  padding: 16px 17px !important;
  border: 0 !important;
  border-radius: 12px !important;
}

.price-compare--readable .price-compare-card__side + .price-compare-card__side {
  border-top: 0 !important;
}

.price-compare--readable .price-compare-card__side--general {
  color: #555555 !important;
  background: var(--pv-soft-gray) !important;
}

.price-compare--readable .price-compare-card__side--san {
  color: #174333 !important;
  background: var(--pv-soft-green) !important;
  border-left: 4px solid var(--color-green) !important;
}

.price-compare--readable .price-compare-card__label {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  min-height: 0 !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  color: inherit !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  letter-spacing: 0.02em !important;
}

.price-compare--readable .price-compare-card__side--san .price-compare-card__label::before {
  content: "" !important;
  display: inline-block !important;
  width: 8px !important;
  height: 8px !important;
  margin-right: 8px !important;
  background: var(--color-green) !important;
  border-radius: 50% !important;
}

.price-compare--readable .price-compare-card__side p:not(.price-compare-card__label) {
  margin: 0 !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.78 !important;
}

.price-compare--readable .price-compare-card__side--general p:not(.price-compare-card__label) {
  color: #666666 !important;
  font-weight: 700 !important;
}

.price-compare--readable .price-compare-card__side--san p:not(.price-compare-card__label) {
  color: #123f2d !important;
}

/* STANDARD PLAN SET：3カテゴリ表示 */
.price-view .standard-set.standard-set--categories {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 320px !important;
  align-items: center !important;
  gap: 52px !important;
  width: min(calc(100% - 0px), 1260px) !important;
  max-width: 1260px !important;
  margin: 70px auto 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.price-view .standard-set.standard-set--categories .standard-set__content {
  min-width: 0 !important;
}

.price-view .standard-set.standard-set--categories .standard-set__heading {
  display: block !important;
  margin-bottom: 14px !important;
}

.price-view .standard-set.standard-set--categories .standard-set__label {
  margin: 0 0 10px !important;
  color: var(--color-green) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: 0.14em !important;
}

.price-view .standard-set.standard-set--categories .standard-set__title {
  margin: 0 !important;
  color: #222222 !important;
  font-size: 27px !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.02em !important;
}

.price-view .standard-set.standard-set--categories .standard-set__lead {
  max-width: 720px !important;
  margin: 0 0 22px !important;
  color: #333333 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.9 !important;
}

.price-view .standard-set__category-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

.price-view .standard-set-category {
  padding: 18px 18px 17px !important;
  background: #ffffff !important;
  border: 1px solid #d6d1c8 !important;
}

.price-view .standard-set-category__title {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 28px !important;
  margin: 0 0 12px !important;
  padding: 4px 12px !important;
  color: #ffffff !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  background: var(--color-green) !important;
  border-radius: 999px !important;
}

.price-view .standard-set-category__list {
  display: grid !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.price-view .standard-set-category__list li {
  position: relative !important;
  padding-left: 14px !important;
  color: #202020 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.55 !important;
}

.price-view .standard-set-category__list li::before {
  content: "" !important;
  position: absolute !important;
  top: 0.72em !important;
  left: 0 !important;
  width: 5px !important;
  height: 5px !important;
  background: var(--color-orange) !important;
  border-radius: 50% !important;
}

.price-view .standard-set.standard-set--categories .standard-set__note {
  margin: 18px 0 0 !important;
  color: var(--color-muted) !important;
  font-size: 11px !important;
  line-height: 1.85 !important;
}

.price-view .standard-set.standard-set--categories .standard-set__note a {
  color: var(--color-green) !important;
  font-weight: 900 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

.price-view .standard-set.standard-set--categories .standard-set__visual {
  width: 320px !important;
  margin: 0 !important;
  line-height: 0 !important;
}

.price-view .standard-set.standard-set--categories .standard-set__visual img {
  display: block !important;
  width: 320px !important;
  height: auto !important;
  max-width: 100% !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
}

@media (min-width: 1600px) {
  .price-view .standard-set.standard-set--categories {
    max-width: 1320px !important;
    gap: 60px !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .price-compare--readable .price-compare-card__title,
  .price-compare--readable .price-compare__row--bottom .price-compare-card__title {
    font-size: 22px !important;
  }

  .price-view .standard-set.standard-set--categories {
    grid-template-columns: 1fr !important;
    max-width: 760px !important;
    gap: 26px !important;
  }

  .price-view .standard-set__category-grid {
    grid-template-columns: 1fr 1fr 1fr !important;
  }

  .price-view .standard-set.standard-set--categories .standard-set__visual {
    width: 360px !important;
    justify-self: center !important;
  }

  .price-view .standard-set.standard-set--categories .standard-set__visual img {
    width: 360px !important;
  }
}

@media (max-width: 640px) {
  .price-compare--readable .price-compare-card {
    padding: 24px 18px 22px !important;
  }

  .price-compare--readable .price-compare-card__head,
  .price-compare--readable .price-compare__row--bottom .price-compare-card__head {
    grid-template-columns: 64px minmax(0, 1fr) !important;
    gap: 14px !important;
    margin-bottom: 18px !important;
  }

  .price-compare--readable .price-compare-card__icon,
  .price-compare--readable .price-compare__row--bottom .price-compare-card__icon {
    width: 64px !important;
    height: 64px !important;
  }

  .price-compare--readable .price-compare-card__title,
  .price-compare--readable .price-compare__row--bottom .price-compare-card__title {
    font-size: 22px !important;
  }

  .price-compare--readable .price-compare-card__side {
    padding: 15px 15px !important;
  }

  .price-compare--readable .price-compare-card__label {
    font-size: 13px !important;
  }

  .price-compare--readable .price-compare-card__side p:not(.price-compare-card__label) {
    font-size: 15px !important;
  }

  .price-view .standard-set.standard-set--categories {
    grid-template-columns: 1fr !important;
    width: min(calc(100% - 32px), 560px) !important;
    max-width: none !important;
    gap: 26px !important;
    margin-top: 48px !important;
  }

  .price-view .standard-set.standard-set--categories .standard-set__title {
    font-size: 23px !important;
  }

  .price-view .standard-set.standard-set--categories .standard-set__lead {
    font-size: 14px !important;
  }

  .price-view .standard-set__category-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .price-view .standard-set-category {
    padding: 17px 16px !important;
  }

  .price-view .standard-set-category__list li {
    font-size: 14px !important;
  }

  .price-view .standard-set.standard-set--categories .standard-set__visual {
    width: min(100%, 360px) !important;
    justify-self: center !important;
  }

  .price-view .standard-set.standard-set--categories .standard-set__visual img {
    width: 100% !important;
    height: auto !important;
  }
}
/* =========================================================
  PRICE VIEW：積み上げ比較ビジュアル案
  - 実際の金額差ではなく、価格表示の考え方を示すイメージ
========================================================= */

.price-view--stacked .price-stack {
  position: relative !important;
  width: min(calc(100% - 0px), 1240px) !important;
  margin: 48px auto 0 !important;
  padding: 46px 46px 40px !important;
  background: linear-gradient(180deg, #f3fbfc 0%, #ffffff 100%) !important;
  border: 1px solid rgba(229, 225, 216, 0.95) !important;
  border-radius: 0 !important;
  box-shadow: 0 18px 48px rgba(74, 62, 46, 0.07) !important;
  overflow: visible !important;
}

.price-stack__headline {
  position: absolute !important;
  top: -28px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 2 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 340px !important;
  min-height: 58px !important;
  padding: 12px 34px !important;
  color: #ffffff !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  text-align: center !important;
  letter-spacing: 0.04em !important;
  background: var(--color-green) !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 24px rgba(0, 122, 66, 0.18) !important;
}

.price-stack__headline::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  bottom: -14px !important;
  width: 0 !important;
  height: 0 !important;
  border-top: 14px solid var(--color-green) !important;
  border-right: 16px solid transparent !important;
  border-left: 16px solid transparent !important;
  transform: translateX(-50%) !important;
}

.price-stack__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 62px !important;
  align-items: stretch !important;
  padding-top: 30px !important;
}

.price-stack-panel {
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
  min-height: 620px !important;
  padding: 32px 34px 30px !important;
  background: rgba(255, 255, 255, 0.88) !important;
  border: 1px solid rgba(229, 225, 216, 0.95) !important;
}

.price-stack-panel--san {
  background: linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(238,246,237,0.72) 100%) !important;
}

.price-stack-panel--general {
  background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(255,246,238,0.72) 100%) !important;
}

.price-stack-panel__header {
  text-align: center !important;
}

.price-stack-panel__eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 30px !important;
  margin: 0 0 12px !important;
  padding: 5px 18px !important;
  color: #ffffff !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.06em !important;
  background: var(--color-green) !important;
  border-radius: 999px !important;
}

.price-stack-panel--general .price-stack-panel__eyebrow {
  color: #9b4b00 !important;
  background: #fff0dc !important;
  border: 1px solid rgba(232, 102, 20, 0.24) !important;
}

.price-stack-panel__title {
  margin: 0 !important;
  color: #222222 !important;
  font-family: var(--font-serif) !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.05em !important;
}

.price-stack-visual {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  min-height: 390px !important;
  padding: 30px 0 18px !important;
}

.price-stack-column {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 250px !important;
  filter: drop-shadow(12px 18px 18px rgba(50, 45, 38, 0.12)) !important;
}

.price-stack-column::after {
  content: "" !important;
  position: absolute !important;
  right: -26px !important;
  bottom: 0 !important;
  width: 26px !important;
  height: 100% !important;
  transform: skewY(-28deg) !important;
  transform-origin: left bottom !important;
  opacity: 0.86 !important;
  pointer-events: none !important;
}

.price-stack-column--san::after {
  background: linear-gradient(180deg, rgba(0, 122, 66, 0.16) 0%, rgba(0, 104, 58, 0.42) 100%) !important;
}

.price-stack-column--general::after {
  background: linear-gradient(180deg, rgba(255, 204, 102, 0.72) 0%, rgba(232, 102, 20, 0.44) 100%) !important;
}

.price-stack-included {
  position: relative !important;
  display: grid !important;
  align-content: center !important;
  min-height: 250px !important;
  padding: 24px 22px !important;
  color: var(--color-green) !important;
  text-align: center !important;
  background: rgba(238, 246, 237, 0.58) !important;
  border: 3px dashed rgba(0, 122, 66, 0.42) !important;
  border-bottom: 0 !important;
}

.price-stack-included::before {
  content: "" !important;
  position: absolute !important;
  top: -20px !important;
  right: -26px !important;
  width: 100% !important;
  height: 20px !important;
  background: rgba(238, 246, 237, 0.44) !important;
  border-top: 3px dashed rgba(0, 122, 66, 0.38) !important;
  border-right: 3px dashed rgba(0, 122, 66, 0.32) !important;
  transform: skewX(-48deg) !important;
  transform-origin: left bottom !important;
}

.price-stack-included__title {
  margin: 0 0 16px !important;
  font-size: 24px !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
}

.price-stack-included__list {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.price-stack-included__list li {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 28px !important;
  padding: 5px 10px !important;
  color: #1f5f45 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  background: rgba(255, 255, 255, 0.84) !important;
  border: 1px solid rgba(0, 122, 66, 0.14) !important;
  border-radius: 999px !important;
}

.price-stack-base,
.price-stack-segment {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 70px !important;
  padding: 10px 14px !important;
  color: #ffffff !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  text-align: center !important;
  border-top: 1px solid rgba(255, 255, 255, 0.36) !important;
}

.price-stack-base--san {
  min-height: 88px !important;
  background: var(--color-green) !important;
}

.price-stack-base--general {
  min-height: 76px !important;
  background: #e86614 !important;
}

.price-stack-segment {
  min-height: 58px !important;
  color: #5d3000 !important;
  background: #ffd36e !important;
}

.price-stack-segment:nth-of-type(1) { background: #ffe7ad !important; }
.price-stack-segment:nth-of-type(3) { background: #ffd989 !important; }
.price-stack-segment:nth-of-type(5) { background: #ffc85c !important; }
.price-stack-segment:nth-of-type(7) { background: #ffbc35 !important; }
.price-stack-segment:nth-of-type(9) { background: #f5a800 !important; color: #ffffff !important; }

.price-stack-plus {
  position: relative !important;
  z-index: 2 !important;
  align-self: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 30px !important;
  height: 30px !important;
  margin: -15px 0 !important;
  color: var(--color-orange) !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  background: #ffffff !important;
  border: 2px solid rgba(232, 102, 20, 0.28) !important;
  border-radius: 50% !important;
  box-shadow: 0 4px 12px rgba(232, 102, 20, 0.16) !important;
}

.price-stack-panel__caption {
  margin: 0 !important;
  padding: 17px 18px !important;
  color: var(--color-text-soft) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.8 !important;
  text-align: center !important;
  background: rgba(255, 255, 255, 0.78) !important;
  border: 1px solid rgba(229, 225, 216, 0.9) !important;
}

.price-stack__summary {
  margin: 34px auto 0 !important;
  max-width: 940px !important;
  padding: 20px 26px !important;
  color: #224035 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 2 !important;
  text-align: center !important;
  background: rgba(238, 246, 237, 0.72) !important;
  border: 1px solid rgba(0, 122, 66, 0.12) !important;
}

.price-view__compare-note--stacked {
  max-width: 1240px !important;
  margin: 22px auto 0 !important;
  color: var(--color-muted) !important;
  font-size: 11px !important;
  line-height: 1.9 !important;
}

/* 旧POINTカードが残る場合の干渉防止 */
.price-view--stacked .price-compare,
.price-view--stacked .price-compare-card {
  display: none !important;
}

@media (min-width: 1181px) {
  .price-view--stacked .price-stack {
    width: min(calc(100% - 80px), 1500px) !important;
  }

  .price-view--stacked .standard-set.standard-set--with-image {
    width: min(calc(100% - 80px), 1500px) !important;
    max-width: none !important;
  }
}

@media (min-width: 1600px) {
  .price-view--stacked .price-stack,
  .price-view--stacked .standard-set.standard-set--with-image,
  .price-view__compare-note--stacked {
    width: min(calc(100% - 120px), 1640px) !important;
    max-width: none !important;
  }

  .price-stack__grid {
    gap: 86px !important;
  }
}

@media (max-width: 1180px) {
  .price-view--stacked .price-stack {
    width: min(calc(100% - 48px), 1080px) !important;
    padding: 44px 30px 36px !important;
  }

  .price-stack__grid {
    gap: 34px !important;
  }

  .price-stack-panel {
    padding: 28px 24px 26px !important;
  }

  .price-stack-column {
    width: 220px !important;
  }

  .price-stack-panel__title {
    font-size: 24px !important;
  }
}

@media (max-width: 900px) {
  .price-view--stacked .price-stack {
    width: min(calc(100% - 32px), 720px) !important;
    padding: 42px 18px 28px !important;
  }

  .price-stack__headline {
    min-width: 0 !important;
    width: min(calc(100% - 52px), 420px) !important;
    font-size: 18px !important;
  }

  .price-stack__grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .price-stack-panel {
    min-height: auto !important;
  }

  .price-stack-visual {
    min-height: 340px !important;
  }

  .price-stack-column {
    width: 230px !important;
  }
}

@media (max-width: 640px) {
  .price-view--stacked .price-stack {
    margin-top: 42px !important;
    padding: 42px 14px 24px !important;
  }

  .price-stack__headline {
    min-height: 50px !important;
    padding: 10px 18px !important;
    font-size: 16px !important;
  }

  .price-stack-panel {
    padding: 24px 14px 18px !important;
  }

  .price-stack-panel__title {
    font-size: 22px !important;
  }

  .price-stack-visual {
    min-height: 320px !important;
    padding-top: 24px !important;
  }

  .price-stack-column {
    width: min(230px, calc(100vw - 110px)) !important;
  }

  .price-stack-included {
    min-height: 210px !important;
    padding: 20px 16px !important;
  }

  .price-stack-included__title {
    font-size: 20px !important;
  }

  .price-stack-included__list li {
    font-size: 11px !important;
  }

  .price-stack-base,
  .price-stack-segment {
    font-size: 15px !important;
  }

  .price-stack-segment {
    min-height: 50px !important;
  }

  .price-stack-base--san {
    min-height: 76px !important;
  }

  .price-stack__summary {
    padding: 18px 16px !important;
    font-size: 14px !important;
    text-align: left !important;
  }

  .price-view__compare-note--stacked {
    width: min(calc(100% - 32px), 720px) !important;
    font-size: 10px !important;
  }
}


/* =========================================================
  PRICE VIEW：積み上げ比較図 破線修正
  - SAN+平屋側の上面破線のずれを補正
  - 上面手前側・右側面に破線を追加
========================================================= */
.price-view--stacked .price-stack-included {
  overflow: visible !important;
  border-top: 3px dashed rgba(0, 122, 66, 0.46) !important;
  border-right: 3px dashed rgba(0, 122, 66, 0.46) !important;
  border-left: 3px dashed rgba(0, 122, 66, 0.46) !important;
  border-bottom: 0 !important;
}

.price-view--stacked .price-stack-included::before {
  content: "" !important;
  position: absolute !important;
  top: -22px !important;
  left: 0 !important;
  right: auto !important;
  z-index: 1 !important;
  width: calc(100% + 27px) !important;
  height: 22px !important;
  background: rgba(238, 246, 237, 0.46) !important;
  border-top: 3px dashed rgba(0, 122, 66, 0.42) !important;
  border-right: 3px dashed rgba(0, 122, 66, 0.38) !important;
  border-bottom: 3px dashed rgba(0, 122, 66, 0.42) !important;
  border-left: 3px dashed rgba(0, 122, 66, 0.38) !important;
  transform: skewX(-48deg) !important;
  transform-origin: left bottom !important;
  pointer-events: none !important;
}

.price-view--stacked .price-stack-included::after {
  content: "" !important;
  position: absolute !important;
  top: -1px !important;
  right: -27px !important;
  z-index: 1 !important;
  width: 27px !important;
  height: calc(100% + 1px) !important;
  background: rgba(238, 246, 237, 0.24) !important;
  border-top: 3px dashed rgba(0, 122, 66, 0.36) !important;
  border-right: 3px dashed rgba(0, 122, 66, 0.36) !important;
  transform: skewY(-28deg) !important;
  transform-origin: left top !important;
  pointer-events: none !important;
}

.price-view--stacked .price-stack-included__title,
.price-view--stacked .price-stack-included__list {
  position: relative !important;
  z-index: 3 !important;
}

/* =========================================================
  STANDARD PLAN SET：画像3枚カード型デザイン
  - 比較表と同じ横幅
  - 左から standardplanset_planning / carspace / exterior
========================================================= */
.price-view--stacked .standard-set.standard-set--image-cards {
  width: min(calc(100% - 80px), 1500px) !important;
  max-width: none !important;
  margin: 76px auto 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.price-view--stacked .standard-set.standard-set--image-cards .standard-set__heading {
  display: block !important;
  max-width: 720px !important;
  margin: 0 0 32px !important;
}

.price-view--stacked .standard-set.standard-set--image-cards .standard-set__label {
  margin: 0 0 10px !important;
  color: var(--color-green) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.14em !important;
}

.price-view--stacked .standard-set.standard-set--image-cards .standard-set__title {
  margin: 0 !important;
  color: #222222 !important;
  font-size: 30px !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.02em !important;
}

.price-view--stacked .standard-set.standard-set--image-cards .standard-set__lead {
  margin: 16px 0 0 !important;
  color: #222222 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 2 !important;
}

.standard-set-image-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(34px, 3vw, 56px) !important;
  align-items: start !important;
}

.standard-set-image-card {
  min-width: 0 !important;
}

.standard-set-image-card__visual {
  margin: 0 0 30px !important;
  overflow: hidden !important;
  background: #f5f3ee !important;
}

.standard-set-image-card__visual img {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1.42 / 1 !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center !important;
}

.standard-set-image-card__body {
  display: grid !important;
  gap: 18px !important;
}

.standard-set-image-card__label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: fit-content !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 7px 15px !important;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  background: var(--color-green) !important;
  border-radius: 999px !important;
}

.standard-set-image-card__list {
  display: grid !important;
  gap: 13px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.standard-set-image-card__list li {
  margin: 0 !important;
  color: #202020 !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.65 !important;
}

.price-view--stacked .standard-set.standard-set--image-cards .standard-set__note {
  max-width: 1080px !important;
  margin: 32px 0 0 !important;
  color: var(--color-muted) !important;
  font-size: 11px !important;
  line-height: 1.85 !important;
}

.price-view--stacked .standard-set.standard-set--image-cards .standard-set__note a {
  color: var(--color-green) !important;
  font-weight: 900 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

@media (min-width: 1600px) {
  .price-view--stacked .standard-set.standard-set--image-cards {
    width: min(calc(100% - 120px), 1640px) !important;
  }
}

@media (max-width: 1180px) {
  .price-view--stacked .standard-set.standard-set--image-cards {
    width: min(calc(100% - 48px), 1080px) !important;
  }

  .standard-set-image-grid {
    gap: 28px !important;
  }

  .standard-set-image-card__list li {
    font-size: 14px !important;
  }
}

@media (max-width: 900px) {
  .price-view--stacked .standard-set.standard-set--image-cards {
    width: min(calc(100% - 32px), 720px) !important;
    margin-top: 56px !important;
  }

  .price-view--stacked .standard-set.standard-set--image-cards .standard-set__heading {
    max-width: none !important;
    margin-bottom: 26px !important;
  }

  .standard-set-image-grid {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }

  .standard-set-image-card__visual {
    margin-bottom: 18px !important;
  }

  .standard-set-image-card__visual img {
    aspect-ratio: 1.45 / 1 !important;
  }
}

@media (max-width: 640px) {
  .price-view--stacked .standard-set.standard-set--image-cards .standard-set__title {
    font-size: 24px !important;
  }

  .price-view--stacked .standard-set.standard-set--image-cards .standard-set__lead {
    font-size: 14px !important;
  }

  .standard-set-image-card__label {
    font-size: 14px !important;
  }

  .standard-set-image-card__list li {
    font-size: 14px !important;
  }
}

/* =========================================================
  PRICE VIEW：SAN+平屋側の比較図を画像化
  - 破線が正確な作成済み画像を使用
  - 旧CSSの擬似要素・3Dボックス指定の影響を受けない
========================================================= */
.price-view--stacked .price-stack-visual--image {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 390px !important;
  margin: 0 !important;
  padding: 22px 0 10px !important;
  background: transparent !important;
}

.price-view--stacked .price-stack-visual--image img {
  display: block !important;
  width: min(100%, 350px) !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (min-width: 1600px) {
  .price-view--stacked .price-stack-visual--image img {
    width: min(100%, 390px) !important;
  }
}

@media (max-width: 1180px) {
  .price-view--stacked .price-stack-visual--image img {
    width: min(100%, 320px) !important;
  }
}

@media (max-width: 640px) {
  .price-view--stacked .price-stack-visual--image {
    min-height: 300px !important;
    padding-top: 18px !important;
  }

  .price-view--stacked .price-stack-visual--image img {
    width: min(100%, 280px) !important;
  }
}


/* =========================================================
  PRICE VIEW：比較図修正案2 反映
  - ラベルボタンのみ拡大
  - 右側の積み上げ図を左側画像の高さに近づける
  - 右側最上段にも色を付ける
  - SAN+平屋側キャプションを改行表示
  - 下部説明文の枠・背景を削除し、文字を大きくする
========================================================= */

/* 「SAN+平屋」「一般的な本体価格中心の見せ方」のラベルボタンのみ拡大 */
.price-view--stacked .price-stack-panel__eyebrow {
  min-height: 40px !important;
  margin-bottom: 12px !important;
  padding: 9px 26px !important;
  font-size: 16px !important;
  line-height: 1.15 !important;
  border-radius: 999px !important;
}

.price-view--stacked .price-stack-panel--general .price-stack-panel__eyebrow {
  font-size: 15px !important;
  padding-inline: 24px !important;
}

/* 右側の積み上げ図を左側の画像と同程度の高さに調整 */
@media (min-width: 901px) {
  .price-view--stacked .price-stack-visual--general {
    min-height: 390px !important;
    padding: 22px 0 10px !important;
    align-items: center !important;
  }

  .price-view--stacked .price-stack-visual--general .price-stack-column {
    width: 250px !important;
  }

  .price-view--stacked .price-stack-visual--general .price-stack-segment {
    min-height: 68px !important;
  }

  .price-view--stacked .price-stack-visual--general .price-stack-base--general {
    min-height: 86px !important;
  }
}

/* 右側最上段「地盤対応・その他」に色を追加 */
.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child {
  color: #5d3000 !important;
  background: #ffe0a3 !important;
}

/* 左側キャプションの改行を自然に見せる */
.price-view--stacked .price-stack-panel--san .price-stack-panel__caption br {
  display: block !important;
}

/* 下部説明文：枠・背景を削除し、文字を大きくする */
.price-view--stacked .price-stack__summary {
  max-width: 980px !important;
  margin: 34px auto 0 !important;
  padding: 0 !important;
  color: #224035 !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 2.05 !important;
  text-align: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.price-view--stacked .price-stack__summary p {
  margin: 0 !important;
}

@media (max-width: 900px) {
  .price-view--stacked .price-stack-panel__eyebrow,
  .price-view--stacked .price-stack-panel--general .price-stack-panel__eyebrow {
    min-height: 36px !important;
    padding: 8px 20px !important;
    font-size: 14px !important;
  }

  .price-view--stacked .price-stack-visual--general .price-stack-segment {
    min-height: 58px !important;
  }

  .price-view--stacked .price-stack-visual--general .price-stack-base--general {
    min-height: 78px !important;
  }

  .price-view--stacked .price-stack__summary {
    width: min(calc(100% - 32px), 720px) !important;
    font-size: 16px !important;
    text-align: left !important;
  }
}

@media (max-width: 640px) {
  .price-view--stacked .price-stack__summary {
    font-size: 15px !important;
  }
}
/* =========================================================
  PRICE VIEW：右側積み上げ図の最上段・上面に色を追加
  - 「地盤対応・その他」の上面だけが白く見える問題を修正
  - 前面のサイズや積み上げ高さは変更しない
========================================================= */

.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child {
  position: relative !important;
  overflow: visible !important;
  background: #ffe0a3 !important;
  border-top-color: rgba(255, 255, 255, 0.48) !important;
}

.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: -22px !important;
  z-index: 0 !important;
  width: calc(100% + 26px) !important;
  height: 22px !important;
  background: #f6c987 !important;
  transform: skewX(-48deg) !important;
  transform-origin: left bottom !important;
  pointer-events: none !important;
}

.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child > * {
  position: relative !important;
  z-index: 1 !important;
}
/* =========================================================
  PRICE VIEW：右側積み上げ図の最上段・上面色ズレ修正
  - skew変形で発生していた右端の色ズレを解消
  - 前面・高さ・積み上げサイズは変更しない
  - 上面はclip-pathで台形を作り、右側面と端を揃える
========================================================= */

.price-view--stacked .price-stack-visual--general .price-stack-column {
  overflow: visible !important;
}

.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child {
  position: relative !important;
  overflow: visible !important;
  background: #ffe0a3 !important;
  border-top-color: rgba(255, 255, 255, 0.48) !important;
}

.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: -22px !important;
  z-index: 0 !important;
  width: calc(100% + 26px) !important;
  height: 22px !important;
  background: #f6c987 !important;
  transform: none !important;
  transform-origin: initial !important;
  clip-path: polygon(26px 0, 100% 0, calc(100% - 26px) 100%, 0 100%) !important;
  pointer-events: none !important;
}

.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child > * {
  position: relative !important;
  z-index: 1 !important;
}

@media (max-width: 900px) {
  .price-view--stacked .price-stack-visual--general .price-stack-segment:first-child::before {
    top: -18px !important;
    width: calc(100% + 22px) !important;
    height: 18px !important;
    clip-path: polygon(22px 0, 100% 0, calc(100% - 22px) 100%, 0 100%) !important;
  }
}

/* =========================================================
  PRICE VIEW：配置・上面接続・SP横幅 最終調整
  - PC：左に一般的な本体価格中心の見せ方／右にSAN+平屋
  - SP：上に一般的な本体価格中心の見せ方／下にSAN+平屋
  - 右側積み上げ図の最上段上面と右側面の接続を補正
  - SPで右側積み上げ図がSAN+平屋画像よりはみ出さないよう幅を統一
========================================================= */

/* 念のため、表示順を明示 */
.price-view--stacked .price-stack-panel--general {
  order: 1 !important;
}

.price-view--stacked .price-stack-panel--san {
  order: 2 !important;
}

/* PC・タブレット：左右の比較図を同じ高さ基準に寄せる */
@media (min-width: 901px) {
  .price-view--stacked .price-stack-visual--image,
  .price-view--stacked .price-stack-visual--general {
    min-height: 390px !important;
    padding-top: 22px !important;
    padding-bottom: 10px !important;
    align-items: center !important;
  }

  .price-view--stacked .price-stack-visual--general .price-stack-column {
    width: 250px !important;
  }
}

/* 右側積み上げ図：上面の色ズレ・右上の隙間を解消 */
.price-view--stacked .price-stack-visual--general .price-stack-column {
  --stack-depth: 26px;
  --stack-top: 22px;
  overflow: visible !important;
}

.price-view--stacked .price-stack-visual--general .price-stack-column::after {
  right: calc(var(--stack-depth) * -1) !important;
  width: var(--stack-depth) !important;
  z-index: 1 !important;
}

.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child {
  position: relative !important;
  z-index: 2 !important;
  overflow: visible !important;
  background: #ffe0a3 !important;
  border-top-color: rgba(255, 255, 255, 0.48) !important;
}

.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: calc(var(--stack-top) * -1) !important;
  z-index: 1 !important;
  width: calc(100% + var(--stack-depth) + 2px) !important;
  height: calc(var(--stack-top) + 1px) !important;
  background: #f6c987 !important;
  transform: none !important;
  transform-origin: initial !important;
  clip-path: polygon(var(--stack-depth) 0, 100% 0, calc(100% - var(--stack-depth) + 2px) 100%, 0 100%) !important;
  pointer-events: none !important;
}

/* 右上の接続部を1枚かぶせて、白い三角の隙間を消す */
.price-view--stacked .price-stack-visual--general .price-stack-segment:first-child::after {
  content: "" !important;
  position: absolute !important;
  top: calc(var(--stack-top) * -1) !important;
  right: calc(var(--stack-depth) * -1 - 1px) !important;
  z-index: 2 !important;
  width: calc(var(--stack-depth) + 2px) !important;
  height: calc(var(--stack-top) + 1px) !important;
  background: #f6c987 !important;
  clip-path: polygon(0 100%, calc(100% - 1px) 0, 100% 100%, 0 100%) !important;
  pointer-events: none !important;
}

/* SP：一般的な本体価格中心の見せ方が横にはみ出さないようSAN+平屋画像幅に合わせる */
@media (max-width: 640px) {
  .price-view--stacked .price-stack__grid {
    grid-template-columns: 1fr !important;
  }

  .price-view--stacked .price-stack-panel--general {
    order: 1 !important;
  }

  .price-view--stacked .price-stack-panel--san {
    order: 2 !important;
  }

  .price-view--stacked .price-stack-visual--image img {
    width: min(100%, 280px) !important;
  }

  .price-view--stacked .price-stack-visual--general {
    width: min(100%, 280px) !important;
    max-width: 280px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    overflow: visible !important;
  }

  .price-view--stacked .price-stack-visual--general .price-stack-column {
    --stack-depth: 22px;
    --stack-top: 18px;
    width: calc(100% - var(--stack-depth)) !important;
    max-width: calc(280px - var(--stack-depth)) !important;
    margin-right: var(--stack-depth) !important;
  }

  .price-view--stacked .price-stack-visual--general .price-stack-segment:first-child::before {
    width: calc(100% + var(--stack-depth) + 2px) !important;
    height: calc(var(--stack-top) + 1px) !important;
    clip-path: polygon(var(--stack-depth) 0, 100% 0, calc(100% - var(--stack-depth) + 2px) 100%, 0 100%) !important;
  }

  .price-view--stacked .price-stack-visual--general .price-stack-segment:first-child::after {
    right: calc(var(--stack-depth) * -1 - 1px) !important;
    width: calc(var(--stack-depth) + 2px) !important;
    height: calc(var(--stack-top) + 1px) !important;
  }
}
/* =========================================================
  PRICE VIEW：比較図をPNG画像に差し替え
  - PC：左に一般的な本体価格中心の見せ方／右にSAN+平屋
  - SP：上に一般的な本体価格中心の見せ方／下にSAN+平屋
  - 比較図と図内テキストは画像として表示
========================================================= */

.price-view--stacked .price-stack__grid--image-compare {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: clamp(28px, 3.2vw, 48px) !important;
}

.price-view--stacked .price-stack-panel--image-compare {
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
  align-items: start !important;
  background: #ffffff !important;
}

.price-view--stacked .price-stack-panel--image-compare .price-stack-panel__header {
  margin-bottom: 24px !important;
  text-align: center !important;
}

.price-view--stacked .price-stack-panel--image-compare .price-stack-panel__eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 10px 22px !important;
  border-radius: 999px !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.02em !important;
}

.price-view--stacked .price-stack-panel--image-compare .price-stack-panel__title {
  margin-top: 18px !important;
  font-size: clamp(24px, 2.2vw, 34px) !important;
  line-height: 1.55 !important;
}

.price-view--stacked .price-stack-visual-png {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

.price-view--stacked .price-stack-visual-png img {
  display: block !important;
  width: min(100%, 427px) !important;
  max-width: 427px !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center bottom !important;
}

.price-view--stacked .price-stack-panel--image-compare .price-stack-panel__caption {
  margin-top: 28px !important;
}

@media (min-width: 1181px) {
  .price-view--stacked .price-stack-panel--image-compare {
    min-height: 760px !important;
    padding: 44px 34px 34px !important;
  }

  .price-view--stacked .price-stack-visual-png {
    min-height: 625px !important;
  }
}

@media (max-width: 1180px) {
  .price-view--stacked .price-stack__grid--image-compare {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  .price-view--stacked .price-stack-panel--image-compare {
    width: min(100%, 560px) !important;
    margin-inline: auto !important;
  }
}

@media (max-width: 640px) {
  .price-view--stacked .price-stack-panel--image-compare {
    width: 100% !important;
    padding: 26px 18px 24px !important;
  }

  .price-view--stacked .price-stack-panel--image-compare .price-stack-panel__header {
    margin-bottom: 18px !important;
  }

  .price-view--stacked .price-stack-panel--image-compare .price-stack-panel__eyebrow {
    min-height: 38px !important;
    padding: 9px 16px !important;
    font-size: 13px !important;
  }

  .price-view--stacked .price-stack-panel--image-compare .price-stack-panel__title {
    margin-top: 14px !important;
    font-size: 23px !important;
  }

  .price-view--stacked .price-stack-visual-png img {
    width: min(100%, 427px) !important;
    max-width: 427px !important;
  }
}
/* =========================================================
  SP：PRICE VIEW見出しサイズ調整
  「本体価格だけでは、平屋の総額は見えてきません。」のみ一回り小さく
========================================================= */

@media (max-width: 640px) {
  .price-view--stacked .price-view__title,
  .price-view .price-view__title {
    font-size: 24px !important;
    line-height: 1.55 !important;
    letter-spacing: 0.035em !important;
  }
}

/* =========================================================
  PLAN：修正案レイアウトへ変更
  左：暮らしイメージ＋外観パース＋説明＋CTA
  右：想定ラベル＋見出し＋本文＋間取り図
========================================================= */
.plans--story {
  background: #ffffff !important;
}

.plans--story .plans__container {
  width: min(calc(100% - 48px), 1500px) !important;
  max-width: none !important;
}

.plans--story .plan-tabs {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  margin: 34px auto 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

.plans--story .plan-tabs--top {
  margin-bottom: 62px !important;
}

.plans--story .plan-tabs--inside {
  grid-column: 1 / -1 !important;
  margin-top: 62px !important;
}

.plans--story .plan-tabs__button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 122px !important;
  min-height: 32px !important;
  padding: 7px 18px !important;
  color: var(--color-green) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  background: #ffffff !important;
  border: 1.4px solid var(--color-green) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  cursor: pointer !important;
  white-space: nowrap !important;
}

.plans--story .plan-tabs__button.is-active {
  color: #ffffff !important;
  background: var(--color-green) !important;
}

.plans--story .plan-panels,
.plans--story .plan-panels--story {
  width: min(calc(100% - 80px), 1360px) !important;
  max-width: none !important;
  margin: 0 auto !important;
}

.plans--story .plan-panel.plan-panel--story[hidden] {
  display: none !important;
}

.plans--story .plan-panel.plan-panel--story:not([hidden]) {
  display: block !important;
  width: 100% !important;
  min-height: auto !important;
  padding: clamp(74px, 6.2vw, 100px) clamp(76px, 6.6vw, 112px) clamp(48px, 4.2vw, 70px) !important;
  background: #ffffff !important;
  border: 2px solid #1f1f1f !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

.plans--story .plan-panel__layout {
  display: grid !important;
  grid-template-columns: minmax(360px, 0.92fr) minmax(420px, 1.08fr) !important;
  align-items: center !important;
  gap: clamp(58px, 6vw, 92px) !important;
}

.plans--story .plan-panel__media,
.plans--story .plan-panel__content {
  min-width: 0 !important;
}

.plans--story .plan-panel__media {
  display: grid !important;
  gap: 24px !important;
  align-content: start !important;
}

.plans--story .plan-panel__life-image,
.plans--story .plan-panel__exterior,
.plans--story .plan-panel__drawing {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.plans--story .plan-panel__life-image img,
.plans--story .plan-panel__exterior img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1.56 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.plans--story .plan-panel__media-text {
  margin: -2px 0 0 !important;
  color: #2f2f2f !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 2 !important;
  letter-spacing: 0.03em !important;
}

.plans--story .plan-panel__button,
.plans--story .plan-panel__button--story {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  justify-self: start !important;
  min-width: 230px !important;
  min-height: 44px !important;
  margin-top: 8px !important;
  padding: 10px 24px !important;
  color: var(--color-orange) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  background: #ffffff !important;
  border: 2px solid var(--color-orange) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.plans--story .plan-panel__button:hover,
.plans--story .plan-panel__button--story:hover {
  color: #ffffff !important;
  background: var(--color-orange) !important;
  transform: none !important;
}

.plans--story .plan-panel__content {
  display: grid !important;
  align-content: center !important;
  gap: 36px !important;
}

.plans--story .plan-panel__copy {
  display: grid !important;
  gap: 16px !important;
}

.plans--story .plan-panel__target {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  justify-self: start !important;
  margin: 0 !important;
  padding: 5px 14px !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  background: #111111 !important;
  border-radius: 0 !important;
}

.plans--story .plan-panel h3 {
  margin: 0 !important;
  color: #202020 !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(27px, 2.6vw, 42px) !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
}

.plans--story .plan-panel__lead-text {
  margin: 0 !important;
  max-width: 620px !important;
  color: #333333 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 2 !important;
  letter-spacing: 0.03em !important;
}

.plans--story .plan-panel__drawing {
  width: 100% !important;
  justify-self: start !important;
}

.plans--story .plan-panel__drawing img {
  display: block !important;
  width: 100% !important;
  max-width: 620px !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 0 !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

.plans--story .plan-panel__image,
.plans--story .plan-panel__image::before,
.plans--story .plan-panel__image::after,
.plans--story .plan-panel__detail,
.plans--story .plan-panel__points,
.plans--story .plan-panel__photo {
  display: none !important;
}

@media (min-width: 1600px) {
  .plans--story .plans__container {
    width: min(calc(100% - 120px), 1640px) !important;
  }

  .plans--story .plan-panels,
  .plans--story .plan-panels--story {
    width: min(calc(100% - 120px), 1500px) !important;
  }

  .plans--story .plan-panel.plan-panel--story:not([hidden]) {
    padding-right: 120px !important;
    padding-left: 120px !important;
  }

  .plans--story .plan-panel__layout {
    gap: 108px !important;
  }
}

@media (max-width: 1180px) {
  .plans--story .plan-panels,
  .plans--story .plan-panels--story {
    width: min(calc(100% - 48px), 960px) !important;
  }

  .plans--story .plan-panel.plan-panel--story:not([hidden]) {
    padding: 54px 42px 42px !important;
  }

  .plans--story .plan-panel__layout {
    grid-template-columns: 1fr !important;
    gap: 46px !important;
  }

  .plans--story .plan-panel__content {
    gap: 28px !important;
  }

  .plans--story .plan-panel__drawing img {
    max-width: 680px !important;
    margin-inline: auto !important;
  }
}

@media (max-width: 900px) {
  .plans--story .plan-tabs--top {
    margin-bottom: 36px !important;
  }

  .plans--story .plan-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: min(100%, 520px) !important;
  }

  .plans--story .plan-tabs__button {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 40px !important;
    padding: 8px 8px !important;
    font-size: 13px !important;
  }

  .plans--story .plan-panel.plan-panel--story:not([hidden]) {
    padding: 38px 22px 34px !important;
  }

  .plans--story .plan-panel__media {
    gap: 18px !important;
  }

  .plans--story .plan-panel__media-text,
  .plans--story .plan-panel__lead-text {
    font-size: 14px !important;
    line-height: 1.9 !important;
  }

  .plans--story .plan-panel h3 {
    font-size: 29px !important;
  }
}

@media (max-width: 640px) {
  .plans--story {
    padding: 72px 0 !important;
  }

  .plans--story .plans__container {
    width: min(calc(100% - 32px), var(--max-width)) !important;
  }

  .plans--story .plan-panels,
  .plans--story .plan-panels--story {
    width: 100% !important;
  }

  .plans--story .plan-tabs {
    gap: 7px !important;
  }

  .plans--story .plan-tabs__button {
    min-height: 36px !important;
    padding: 7px 5px !important;
    font-size: 12px !important;
    letter-spacing: 0 !important;
  }

  .plans--story .plan-panel.plan-panel--story:not([hidden]) {
    padding: 28px 16px 28px !important;
    border-width: 1.5px !important;
  }

  .plans--story .plan-panel__layout {
    gap: 34px !important;
  }

  .plans--story .plan-panel__life-image img,
  .plans--story .plan-panel__exterior img {
    aspect-ratio: 1.5 / 1 !important;
  }

  .plans--story .plan-panel__media-text,
  .plans--story .plan-panel__lead-text {
    font-size: 13px !important;
    line-height: 1.9 !important;
  }

  .plans--story .plan-panel h3 {
    font-size: 25px !important;
    line-height: 1.5 !important;
  }

  .plans--story .plan-panel__button,
  .plans--story .plan-panel__button--story {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    font-size: 14px !important;
  }

  .plans--story .plan-tabs--inside {
    margin-top: 34px !important;
  }
}
/* =========================================================
  PLAN：SP表示順の変更
  変更後：タイトル → テキストA → 間取り図 → CTA → イメージ画像 → 外観パース → テキストB
  PC表示には影響させない
========================================================= */

@media (max-width: 640px) {
  .plans--story .plan-panel__layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 22px !important;
  }

  .plans--story .plan-panel__media,
  .plans--story .plan-panel__content {
    display: contents !important;
  }

  .plans--story .plan-panel__copy {
    order: 1 !important;
    display: grid !important;
    gap: 12px !important;
  }

  .plans--story .plan-panel__drawing {
    order: 2 !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .plans--story .plan-panel__button,
  .plans--story .plan-panel__button--story {
    order: 3 !important;
    margin: 2px 0 8px !important;
  }

  .plans--story .plan-panel__life-image {
    order: 4 !important;
    margin: 0 !important;
  }

  .plans--story .plan-panel__exterior {
    order: 5 !important;
    margin: 0 !important;
  }

  .plans--story .plan-panel__media-text {
    order: 6 !important;
    margin: 0 !important;
  }

  .plans--story .plan-panel__target {
    justify-self: start !important;
  }

  .plans--story .plan-panel__lead-text {
    margin: 0 !important;
  }
}

/* =========================================================
  SPEC：画像付き仕様カード型デザイン
========================================================= */
.spec--cards {
  background: linear-gradient(180deg, #eef7ef 0%, #ffffff 100%) !important;
}

.spec--cards .container {
  max-width: min(calc(100vw - 120px), 1500px) !important;
}

.spec--cards .spec__heading {
  max-width: 980px !important;
  margin: 0 auto 52px !important;
}

.spec--cards .spec__title {
  text-align: center !important;
  white-space: normal !important;
}

.spec--cards .spec__lead {
  max-width: 920px !important;
  margin: 22px auto 0 !important;
  color: #333 !important;
  font-size: 18px !important;
  line-height: 2.05 !important;
  text-align: center !important;
}

.spec-card-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: 100% !important;
  margin: 0 auto !important;
}

.spec-card {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
  background: #ffffff !important;
  border: 1px solid #dfe4da !important;
  border-radius: 0 !important;
  box-shadow: 0 18px 48px rgba(30, 60, 42, 0.06) !important;
  overflow: hidden !important;
}

.spec-card__image {
  margin: 0 !important;
  background: #f7faf4 !important;
  border-bottom: 1px solid #e2e8dc !important;
}

.spec-card__image img {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1.56 / 1 !important;
  object-fit: cover !important;
}

.spec-card__body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  padding: 24px 22px 26px !important;
}

.spec-card__kicker {
  display: inline-flex !important;
  align-items: center !important;
  width: fit-content !important;
  margin: 0 0 12px !important;
  padding: 5px 12px !important;
  color: #007f4b !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.2 !important;
  background: #e8f3e9 !important;
  border-radius: 999px !important;
}

.spec-card h3 {
  margin: 0 0 14px !important;
  color: #2d2d2d !important;
  font-family: var(--font-serif) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.03em !important;
}

.spec-card p:not(.spec-card__kicker) {
  margin: 0 !important;
  color: #4b4b4b !important;
  font-size: 14px !important;
  line-height: 1.9 !important;
}

.spec--cards .spec__note--cards {
  max-width: 1180px !important;
  margin: 30px auto 0 !important;
  color: #686868 !important;
  font-size: 13px !important;
  line-height: 1.9 !important;
  text-align: center !important;
}

.spec--cards .spec__cta--cards {
  display: flex !important;
  justify-content: center !important;
  margin-top: 44px !important;
}

@media (min-width: 1600px) {
  .spec--cards .container {
    max-width: min(calc(100vw - 160px), 1640px) !important;
  }

  .spec-card-grid {
    gap: 26px !important;
  }

  .spec-card__body {
    padding: 28px 26px 30px !important;
  }

  .spec-card h3 {
    font-size: 24px !important;
  }

  .spec-card p:not(.spec-card__kicker) {
    font-size: 15px !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .spec--cards .container {
    max-width: min(calc(100vw - 56px), 980px) !important;
  }

  .spec-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
  }

  .spec-card:last-child {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 900px) {
  .spec--cards .container {
    max-width: min(calc(100vw - 36px), 680px) !important;
  }

  .spec--cards .spec__heading {
    margin-bottom: 32px !important;
  }

  .spec-card-grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .spec-card {
    box-shadow: 0 12px 32px rgba(30, 60, 42, 0.06) !important;
  }

  .spec-card__image img {
    aspect-ratio: 1.7 / 1 !important;
  }

  .spec-card__body {
    padding: 22px 20px 24px !important;
  }

  .spec-card h3 {
    font-size: 22px !important;
  }
}

@media (max-width: 640px) {
  .spec--cards .spec__title {
    font-size: 0 !important;
  }

  .spec--cards .spec__title::before,
  .spec--cards .spec__title::after {
    color: #2d2d2d !important;
    font-family: var(--font-serif) !important;
    font-size: 28px !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
    letter-spacing: 0.05em !important;
  }

  .spec--cards .spec__title::before {
    content: "仕様はSAN+の" !important;
    display: block !important;
  }

  .spec--cards .spec__title::after {
    content: "G2水準をベースに。" !important;
    display: block !important;
  }

  .spec--cards .spec__lead {
    font-size: 15px !important;
    line-height: 1.9 !important;
    text-align: left !important;
  }

  .spec-card__image img {
    aspect-ratio: 1.48 / 1 !important;
  }

  .spec-card__kicker {
    font-size: 12px !important;
  }

  .spec-card h3 {
    font-size: 21px !important;
  }

  .spec-card p:not(.spec-card__kicker) {
    font-size: 14px !important;
    line-height: 1.85 !important;
  }

  .spec--cards .spec__note--cards {
    font-size: 12px !important;
    line-height: 1.8 !important;
    text-align: left !important;
  }

  .spec--cards .spec__cta--cards {
    margin-top: 34px !important;
  }
}
/* =========================================================
  CONSULTATION：画像背景CTAブロック
========================================================= */
.consultation.consultation--hero {
  background: var(--color-white) !important;
  padding: clamp(72px, 8vw, 116px) 0 !important;
}

.consultation-hero__container {
  max-width: 1180px !important;
}

.consultation-hero {
  position: relative !important;
  min-height: clamp(300px, 31vw, 420px) !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  isolation: isolate !important;
  background: #1f1f1f !important;
}

.consultation-hero__image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  z-index: -2 !important;
}

.consultation-hero__overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.56) 0%, rgba(0, 0, 0, 0.42) 42%, rgba(0, 0, 0, 0.16) 76%, rgba(0, 0, 0, 0.06) 100%) !important;
}

.consultation-hero__content {
  width: min(520px, 56%) !important;
  padding: clamp(44px, 5.2vw, 72px) clamp(36px, 5.8vw, 78px) !important;
  color: var(--color-white) !important;
}

.consultation-hero__title {
  margin: 0 !important;
  color: var(--color-white) !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(30px, 3.1vw, 44px) !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
  letter-spacing: 0.08em !important;
}

.consultation-hero__lead {
  margin: 26px 0 0 !important;
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 15px !important;
  line-height: 2.05 !important;
  letter-spacing: 0.05em !important;
}

.consultation-hero__button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 34px !important;
  min-width: 190px !important;
  min-height: 48px !important;
  padding: 0 26px !important;
  border: 1px solid rgba(255, 255, 255, 0.94) !important;
  border-radius: 999px !important;
  color: var(--color-white) !important;
  background: rgba(255, 255, 255, 0.02) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-decoration: none !important;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease !important;
}

.consultation-hero__button:hover {
  background: var(--color-white) !important;
  color: var(--color-green) !important;
  transform: translateY(-2px) !important;
}

@media (max-width: 900px) {
  .consultation.consultation--hero {
    padding: 64px 0 !important;
  }

  .consultation-hero {
    min-height: 420px !important;
  }

  .consultation-hero__overlay {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.58) 0%, rgba(0, 0, 0, 0.42) 58%, rgba(0, 0, 0, 0.26) 100%) !important;
  }

  .consultation-hero__content {
    width: 100% !important;
    padding: 40px 28px !important;
  }

  .consultation-hero__title {
    font-size: clamp(26px, 7.2vw, 34px) !important;
    line-height: 1.55 !important;
  }

  .consultation-hero__lead {
    font-size: 14px !important;
    line-height: 1.95 !important;
  }

  .consultation-hero__lead br {
    display: none !important;
  }
}

@media (max-width: 640px) {
  .consultation-hero__container {
    width: min(100% - 32px, 1180px) !important;
  }

  .consultation-hero {
    min-height: 440px !important;
  }

  .consultation-hero__content {
    padding: 34px 22px !important;
  }

  .consultation-hero__button {
    width: 100% !important;
    min-height: 50px !important;
  }
}
/* =========================================================
  CONSULTATION：見本サイズに合わせて横幅を拡張
  SPECカード群と同じ横幅基準にする
========================================================= */
.consultation-hero__container {
  width: min(calc(100vw - 120px), 1500px) !important;
  max-width: min(calc(100vw - 120px), 1500px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (min-width: 1600px) {
  .consultation-hero__container {
    width: min(calc(100vw - 160px), 1640px) !important;
    max-width: min(calc(100vw - 160px), 1640px) !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .consultation-hero__container {
    width: min(calc(100vw - 56px), 980px) !important;
    max-width: min(calc(100vw - 56px), 980px) !important;
  }
}

@media (max-width: 900px) {
  .consultation-hero__container {
    width: min(calc(100vw - 36px), 680px) !important;
    max-width: min(calc(100vw - 36px), 680px) !important;
  }
}

@media (max-width: 640px) {
  .consultation-hero__container {
    width: min(calc(100vw - 32px), 680px) !important;
    max-width: min(calc(100vw - 32px), 680px) !important;
  }
}

/* =========================================================
  CONSULTATION：見出し改行修正
  - PC/タブレットで「平屋づくりを相談できます。」が途中で割れないようにする
  - 画像は consultation_image.webp を使用
========================================================= */
@media (min-width: 641px) {
  .consultation-hero__content {
    width: min(760px, 68%) !important;
    max-width: 760px !important;
  }

  .consultation-hero__title-nowrap {
    display: inline-block !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }
}

@media (min-width: 901px) {
  .consultation-hero__title {
    font-size: clamp(36px, 3vw, 52px) !important;
    line-height: 1.55 !important;
  }
}

@media (max-width: 640px) {
  .consultation-hero__title {
    font-size: clamp(26px, 7vw, 32px) !important;
    line-height: 1.55 !important;
  }

  .consultation-hero__title-nowrap {
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
  }
}
/* CONSULTATION：本文の改行崩れ防止 */
.consultation-hero__lead {
  max-width: 760px !important;
  line-height: 2.05 !important;
}

@media (max-width: 640px) {
  .consultation-hero__lead br {
    display: none !important;
  }
}

/* =========================================================
  FINAL PATCH：CTA色・SP改行・CONTACTボタン・SAN+Lite型フッター
========================================================= */

/* SP下部固定CTA：資料請求は既存オレンジ、相談予約は水色 */
@media (max-width: 900px) {
  .fixed-cta a:first-child {
    color: #ffffff !important;
    background: var(--color-orange) !important;
    border-color: var(--color-orange) !important;
  }

  .fixed-cta a:last-child {
    color: #ffffff !important;
    background: #5fc8d9 !important;
    border-color: #5fc8d9 !important;
  }

  .fixed-cta a:first-child:hover,
  .fixed-cta a:first-child:active {
    background: #d7560c !important;
    border-color: #d7560c !important;
  }

  .fixed-cta a:last-child:hover,
  .fixed-cta a:last-child:active {
    background: #42b7cb !important;
    border-color: #42b7cb !important;
  }
}

/* PLAN：SPのみ、指定位置でタイトル改行 */
.sp-plan-title-break {
  display: none;
}

@media (max-width: 640px) {
  .sp-plan-title-break {
    display: block !important;
  }
}

/* FAQ前 CONSULTATION：PCは2行、SPは3行で見せる */
.consultation-hero__title-sp-line {
  display: inline;
}

@media (min-width: 641px) {
  .consultation-hero__title-nowrap {
    white-space: nowrap !important;
  }
}

@media (max-width: 640px) {
  .consultation-hero__title-nowrap {
    white-space: normal !important;
  }

  .consultation-hero__title-sp-line {
    display: block !important;
  }
}

/* CONTACT：SPのみタイトルを指定位置で改行 */
.final-cta__title span {
  display: inline;
}

@media (max-width: 640px) {
  .final-cta__title span {
    display: block !important;
  }
}

/* CONTACT：来場予約削除後、2つのCTAを中央揃えで整理 */
.final-cta__buttons {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 20px !important;
  width: 100% !important;
  margin-inline: auto !important;
  text-align: center !important;
}

.final-cta__buttons .button {
  min-width: 220px !important;
}

@media (max-width: 640px) {
  .final-cta__buttons {
    flex-direction: column !important;
    align-items: center !important;
    gap: 16px !important;
  }

  .final-cta__buttons .button {
    width: min(100%, 320px) !important;
    min-width: 0 !important;
  }
}

/* SAN+Lite参考フッター */
.sayama-footer {
  color: #222222;
  font-family: var(--font-sans);
  background: #ffffff;
  border-top: 1px solid #e5e1d8;
}

.sayama-footer .contents_size,
.sayama-footer #main_bottom_link,
.sayama-footer #footer_sitemap .contents_size,
.sayama-footer #footer_company .contents_size {
  width: min(calc(100% - 48px), 1180px);
  margin-inline: auto;
}

.sayama-footer a {
  color: inherit;
  text-decoration: none;
}

.sayama-footer ul,
.sayama-footer dl,
.sayama-footer dd,
.sayama-footer p {
  margin: 0;
  padding: 0;
}

.sayama-footer li {
  list-style: none;
}

.sayama-footer img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

.sayama-footer .pc_only {
  display: inline;
}

.sayama-footer .sp_only {
  display: none;
}

.sayama-footer #main_bottom_container {
  background: #f7f3ec;
  border-bottom: 1px solid #e5e1d8;
}

.sayama-footer #main_bottom_link {
  padding: 26px 0;
}

.sayama-footer #main_bottom_link ul {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.sayama-footer #main_bottom_link a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 12px 34px 12px 16px;
  color: #333333;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  background: #ffffff;
  border: 1px solid #ded8ce;
}

.sayama-footer #main_bottom_link a::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 2px solid var(--color-orange);
  border-right: 2px solid var(--color-orange);
  transform: translateY(-50%) rotate(45deg);
}

.sayama-footer #footer {
  background: #ffffff;
}

.sayama-footer #footer_description {
  padding: 34px 0;
  color: #555555;
  font-size: 13px;
  line-height: 2;
  border-bottom: 1px solid #e8e2d8;
}

.sayama-footer #footer_sitemap {
  padding: 34px 0 42px;
  background: #fbfaf5;
}

.sayama-footer #page_top_btn {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 18px;
}

.sayama-footer #page_top_btn a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 34px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
  background: var(--color-green);
  border-radius: 999px;
}

.sayama-footer .accordion_title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--color-green);
  font-size: 18px;
  font-weight: 800;
}

.sayama-footer .accordion_title .icon {
  width: 22px;
  margin: 0;
}

.sayama-footer .accordion_container > em {
  display: block;
  margin-bottom: 20px;
  font-style: normal;
  font-weight: 800;
}

.sayama-footer .accordion_container .inner {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 28px;
}

.sayama-footer .accordion_container dt {
  margin: 0 0 10px;
  color: #222222;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.6;
}

.sayama-footer .accordion_container dd {
  margin: 0 0 7px;
  color: #555555;
  font-size: 12px;
  line-height: 1.7;
}

.sayama-footer #footer_company {
  padding: 42px 0 50px;
  color: #ffffff;
  background: #222222;
}

.sayama-footer #footer_company .flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  margin-bottom: 34px;
}

.sayama-footer #footer_logo img {
  width: 220px;
  filter: brightness(0) invert(1);
}

.sayama-footer #footer_logo p {
  margin-top: 12px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  line-height: 1.8;
}

.sayama-footer #footer_info {
  display: flex;
  align-items: center;
  gap: 24px;
}

.sayama-footer #footer_mail a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 22px;
  color: #ffffff;
  font-weight: 800;
  background: var(--color-green);
  border-radius: 999px;
}

.sayama-footer #footer_mail .icon {
  width: 18px;
  margin: 0;
}

.sayama-footer #footer_info ul {
  display: flex;
  align-items: center;
  gap: 12px;
}

.sayama-footer #footer_info li img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.sayama-footer #footer_shop_list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.sayama-footer #footer_shop_list > li {
  overflow: hidden;
  background: #ffffff;
  border-radius: 14px;
}

.sayama-footer #footer_shop_list .map iframe {
  display: block;
  width: 100% !important;
  height: 160px !important;
}

.sayama-footer #footer_shop_list .text {
  padding: 18px;
  color: #222222;
}

.sayama-footer #footer_shop_list .outline {
  display: grid;
  gap: 12px;
}

.sayama-footer #footer_shop_list .title em {
  display: block;
  margin-bottom: 10px;
  font-style: normal;
  font-size: 18px;
  font-weight: 800;
}

.sayama-footer #footer_shop_list .point {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.sayama-footer #footer_shop_list .point p {
  padding: 3px 8px;
  color: #ffffff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.4;
  background: var(--color-green);
  border-radius: 999px;
}

.sayama-footer #footer_shop_list .point .sell { background: var(--color-orange); }
.sayama-footer #footer_shop_list .point .rent { background: #4b8bbd; }
.sayama-footer #footer_shop_list .point .owner { background: #7d6a4f; }
.sayama-footer #footer_shop_list .point .studio { background: #7b4bbd; }

.sayama-footer #footer_shop_list .contact a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  color: var(--color-green);
  font-size: 13px;
  font-weight: 800;
}

.sayama-footer #footer_shop_list .contact .icon {
  width: 18px;
  margin: 0;
}

.sayama-footer #footer_shop_list .tel a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  color: #222222;
  font-size: 20px;
  font-weight: 800;
}

.sayama-footer #footer_shop_list .tel .icon {
  width: 20px;
  margin: 0;
}

.sayama-footer .eigyo_area {
  margin-top: 32px;
  padding: 22px 24px;
  color: rgba(255, 255, 255, 0.88);
  background: rgba(255, 255, 255, 0.08);
  border-radius: 12px;
}

.sayama-footer .eigyo_area dl {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 20px;
  align-items: start;
}

.sayama-footer .eigyo_area dt {
  color: #ffffff;
  font-weight: 800;
  line-height: 1.7;
}

.sayama-footer .eigyo_area dd {
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  line-height: 1.9;
}

.sayama-footer #copy_right {
  margin-top: 28px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  text-align: center;
}

@media (max-width: 900px) {
  .sayama-footer .contents_size,
  .sayama-footer #main_bottom_link,
  .sayama-footer #footer_sitemap .contents_size,
  .sayama-footer #footer_company .contents_size {
    width: min(calc(100% - 32px), 720px);
  }

  .sayama-footer #main_bottom_link ul,
  .sayama-footer .accordion_container .inner,
  .sayama-footer #footer_shop_list {
    grid-template-columns: 1fr;
  }

  .sayama-footer #footer_company .flex,
  .sayama-footer #footer_info {
    flex-direction: column;
    align-items: flex-start;
  }

  .sayama-footer .eigyo_area dl {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .sayama-footer {
    padding-bottom: 54px;
  }

  .sayama-footer .pc_only {
    display: none !important;
  }

  .sayama-footer .sp_only {
    display: inline !important;
  }

  .sayama-footer #main_bottom_link {
    padding: 20px 0;
  }

  .sayama-footer #main_bottom_link a {
    min-height: 44px;
    font-size: 13px;
  }

  .sayama-footer #footer_description {
    padding: 26px 0;
    font-size: 12px;
  }

  .sayama-footer #footer_sitemap {
    padding: 28px 0 34px;
  }

  .sayama-footer .accordion_container dt {
    font-size: 14px;
  }

  .sayama-footer .accordion_container dd {
    font-size: 12px;
  }

  .sayama-footer #footer_company {
    padding: 34px 0 42px;
  }

  .sayama-footer #footer_logo img {
    width: 190px;
  }

  .sayama-footer #footer_shop_list .map iframe {
    height: 140px !important;
  }

  .sayama-footer #footer_shop_list .title em {
    font-size: 17px;
  }
}


/* =========================================================
  FINAL UPDATE：SP固定CTA / MERIT改行 / PLAN詳細化 / SPEC改行解除
========================================================= */

/* SP固定CTA：資料請求は既存オレンジ、相談予約は水色 */
@media (max-width: 900px) {
  .fixed-cta a:first-child {
    color: #ffffff !important;
    background: var(--color-orange) !important;
    border-color: var(--color-orange) !important;
  }

  .fixed-cta a:nth-child(2),
  .fixed-cta a + a {
    color: #ffffff !important;
    background: #00BFFF !important;
    border-color: #00BFFF !important;
  }

  .fixed-cta a:nth-child(2):hover,
  .fixed-cta a:nth-child(2):active,
  .fixed-cta a + a:hover,
  .fixed-cta a + a:active {
    background: #00A8E6 !important;
    border-color: #00A8E6 !important;
  }
}

/* MERIT：SPだけ指定位置で改行 */
br.sp-merit-break {
  display: none !important;
}

@media (max-width: 640px) {
  br.sp-merit-break {
    display: block !important;
  }
}

/* 24TSUBO PLAN：追加文章後も読みやすい行間に調整 */
.tsubo-card span {
  line-height: 1.9 !important;
}

/* SPEC：SPでもリード文を強制改行しない */
.spec--cards .spec__lead,
.spec__lead {
  white-space: normal !important;
}

@media (max-width: 640px) {
  .spec--cards .spec__lead,
  .spec__lead {
    display: block !important;
    max-width: 100% !important;
    font-size: 15px !important;
    line-height: 2 !important;
    text-align: left !important;
  }
}

/* =========================================================
  PLAN：修正案PDFに合わせた詳細レイアウト
========================================================= */
.plans--detail .plan-panels,
.plans--detail .plan-panels--story,
.plans--detail .plan-panels--detail {
  width: min(calc(100% - 80px), 1360px) !important;
  max-width: none !important;
  margin: 0 auto !important;
}

.plans--detail .plan-panel.plan-panel--detail:not([hidden]) {
  display: block !important;
  padding: clamp(70px, 5.6vw, 96px) clamp(70px, 6vw, 108px) clamp(52px, 4.4vw, 76px) !important;
  background: #ffffff !important;
  border: 2px solid #1f1f1f !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.plans--detail .plan-detail-layout,
.plans--detail .plan-panel__layout.plan-detail-layout {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  align-items: stretch !important;
}

.plans--detail .plan-detail-hero {
  display: grid !important;
  grid-template-columns: minmax(320px, 0.92fr) minmax(420px, 1.08fr) !important;
  align-items: center !important;
  gap: clamp(50px, 5vw, 82px) !important;
}

.plans--detail .plan-detail-copy {
  display: grid !important;
  gap: 14px !important;
  min-width: 0 !important;
}

.plans--detail .plan-panel__meta {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 2px !important;
}

.plans--detail .plan-panel__target {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 5px 14px !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  background: #111111 !important;
  border-radius: 0 !important;
}

.plans--detail .plan-panel__area {
  margin: 0 !important;
  color: #4a4a4a !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.03em !important;
}

.plans--detail .plan-panel h3 {
  margin: 0 !important;
  color: #202020 !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(25px, 2.1vw, 34px) !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
}

.plans--detail .plan-title-line {
  display: inline !important;
}

.plans--detail .plan-panel__lead-text {
  max-width: 560px !important;
  margin: 0 !important;
  color: #333333 !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  line-height: 2 !important;
  letter-spacing: 0.03em !important;
}

.plans--detail .plan-detail-life-image,
.plans--detail .plan-panel__life-image,
.plans--detail .plan-detail-drawing,
.plans--detail .plan-panel__drawing,
.plans--detail .plan-detail-bottom__image {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.plans--detail .plan-detail-life-image img,
.plans--detail .plan-panel__life-image img {
  display: block !important;
  width: 100% !important;
  max-width: 430px !important;
  aspect-ratio: 1.52 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.plans--detail .plan-detail-drawing img,
.plans--detail .plan-panel__drawing img {
  display: block !important;
  width: 100% !important;
  max-width: 560px !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  margin-inline: auto !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

.plans--detail .plan-detail-note {
  margin: 32px 0 52px !important;
  color: #777777 !important;
  font-size: 12px !important;
  line-height: 1.8 !important;
  text-align: center !important;
}

.plans--detail .plan-feature-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 34px 28px !important;
}

.plans--detail .plan-feature-card {
  display: grid !important;
  gap: 10px !important;
  min-width: 0 !important;
}

.plans--detail .plan-feature-card img {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1.5 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
  background: #e5e5e5 !important;
}

.plans--detail .plan-feature-card h4 {
  margin: 0 !important;
  color: #222222 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.03em !important;
}

.plans--detail .plan-feature-card p {
  margin: 0 !important;
  color: #333333 !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  line-height: 1.85 !important;
  letter-spacing: 0.02em !important;
}

.plans--detail .plan-detail-bottom {
  display: grid !important;
  gap: 16px !important;
  width: min(100%, 560px) !important;
  margin: 58px auto 0 !important;
}

.plans--detail .plan-detail-bottom__image img {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1.6 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
}

.plans--detail .plan-detail-bottom p {
  margin: 0 !important;
  color: #333333 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 2 !important;
  letter-spacing: 0.03em !important;
}

.plans--detail .plan-detail-button,
.plans--detail .plan-panel__button.plan-detail-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  justify-self: center !important;
  min-width: 230px !important;
  min-height: 44px !important;
  margin: 42px auto 0 !important;
  padding: 10px 24px !important;
  color: var(--color-green) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  background: #ffffff !important;
  border: 2px solid var(--color-green) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.plans--detail .plan-detail-button:hover,
.plans--detail .plan-panel__button.plan-detail-button:hover {
  color: #ffffff !important;
  background: var(--color-green) !important;
  border-color: var(--color-green) !important;
}

@media (min-width: 1600px) {
  .plans--detail .plan-panels,
  .plans--detail .plan-panels--story,
  .plans--detail .plan-panels--detail {
    width: min(calc(100% - 120px), 1500px) !important;
  }
}

@media (max-width: 1180px) {
  .plans--detail .plan-panels,
  .plans--detail .plan-panels--story,
  .plans--detail .plan-panels--detail {
    width: min(calc(100% - 48px), 960px) !important;
  }

  .plans--detail .plan-panel.plan-panel--detail:not([hidden]) {
    padding: 54px 42px 46px !important;
  }

  .plans--detail .plan-detail-hero {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }

  .plans--detail .plan-detail-life-image img,
  .plans--detail .plan-panel__life-image img,
  .plans--detail .plan-panel__lead-text {
    max-width: 620px !important;
  }
}

@media (max-width: 900px) {
  .plans--detail .plan-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .plans--detail .plans__container {
    width: min(calc(100% - 32px), var(--max-width)) !important;
  }

  .plans--detail .plan-panels,
  .plans--detail .plan-panels--story,
  .plans--detail .plan-panels--detail {
    width: 100% !important;
  }

  .plans--detail .plan-panel.plan-panel--detail:not([hidden]) {
    padding: 30px 16px 28px !important;
    border-width: 1.5px !important;
  }

  .plans--detail .plan-detail-layout,
  .plans--detail .plan-panel__layout.plan-detail-layout {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  .plans--detail .plan-panel__media,
  .plans--detail .plan-panel__content {
    display: block !important;
  }

  .plans--detail .plan-detail-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  .plans--detail .plan-panel__meta {
    display: grid !important;
    gap: 8px !important;
  }

  .plans--detail .plan-panel__area {
    font-size: 11.5px !important;
  }

  .plans--detail .plan-panel h3 {
    font-size: 24px !important;
    line-height: 1.55 !important;
  }

  .plans--detail .plan-title-line {
    display: block !important;
  }

  .plans--detail .plan-panel__lead-text {
    font-size: 13px !important;
    line-height: 1.9 !important;
  }

  .plans--detail .plan-detail-life-image img,
  .plans--detail .plan-panel__life-image img {
    max-width: none !important;
  }

  .plans--detail .plan-detail-note {
    margin: 24px 0 34px !important;
    text-align: left !important;
  }

  .plans--detail .plan-feature-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .plans--detail .plan-feature-card h4 {
    font-size: 15px !important;
  }

  .plans--detail .plan-feature-card p {
    font-size: 13px !important;
  }

  .plans--detail .plan-detail-bottom {
    width: 100% !important;
    margin-top: 40px !important;
  }

  .plans--detail .plan-detail-button,
  .plans--detail .plan-panel__button.plan-detail-button {
    width: 100% !important;
    min-width: 0 !important;
    margin-top: 30px !important;
  }
}
/* =========================================================
  PLAN：下部CTAまわりを横長ボックス型に変更
  - PC：左画像 / 右テキスト＋オレンジCTA
  - SP：画像 → テキスト → CTA の縦積み
========================================================= */
.plans--detail .plan-detail-bottom.plan-detail-bottom--cta {
  display: grid !important;
  grid-template-columns: minmax(320px, 0.92fr) minmax(360px, 1.08fr) !important;
  align-items: center !important;
  gap: clamp(34px, 4vw, 58px) !important;
  width: min(100%, 960px) !important;
  margin: 62px auto 0 !important;
  padding: clamp(32px, 3.6vw, 54px) clamp(34px, 4.4vw, 64px) !important;
  background: #ffffff !important;
  border: 1px solid #1f1f1f !important;
  box-shadow: none !important;
}

.plans--detail .plan-detail-bottom.plan-detail-bottom--cta .plan-detail-bottom__image {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  overflow: hidden !important;
}

.plans--detail .plan-detail-bottom.plan-detail-bottom--cta .plan-detail-bottom__image img {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1.55 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.plans--detail .plan-detail-bottom__content {
  display: grid !important;
  gap: 20px !important;
  min-width: 0 !important;
  align-content: center !important;
}

.plans--detail .plan-detail-bottom__content h4 {
  margin: 0 !important;
  color: #202020 !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(21px, 1.7vw, 28px) !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.05em !important;
}

.plans--detail .plan-detail-bottom__content p {
  margin: 0 !important;
  color: #333333 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 2 !important;
  letter-spacing: 0.035em !important;
}

.plans--detail .plan-detail-cta-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  justify-self: start !important;
  min-width: 280px !important;
  min-height: 54px !important;
  padding: 14px 32px !important;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  background: var(--color-orange) !important;
  border: 2px solid var(--color-orange) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, opacity 0.2s ease !important;
}

.plans--detail .plan-detail-cta-button:hover {
  transform: translateY(-2px) !important;
  opacity: 0.9 !important;
}

.plans--detail .plan-tabs--inside {
  margin-top: 70px !important;
}

@media (max-width: 900px) {
  .plans--detail .plan-detail-bottom.plan-detail-bottom--cta {
    grid-template-columns: 1fr !important;
    gap: 26px !important;
    width: 100% !important;
    padding: 32px 26px !important;
  }

  .plans--detail .plan-detail-cta-button {
    justify-self: start !important;
  }
}

@media (max-width: 640px) {
  .plans--detail .plan-detail-bottom.plan-detail-bottom--cta {
    margin-top: 42px !important;
    padding: 20px !important;
    border-width: 1px !important;
    gap: 20px !important;
  }

  .plans--detail .plan-detail-bottom__content {
    gap: 14px !important;
  }

  .plans--detail .plan-detail-bottom__content h4 {
    font-size: 21px !important;
    line-height: 1.55 !important;
  }

  .plans--detail .plan-detail-bottom__content p {
    font-size: 13px !important;
    line-height: 1.9 !important;
  }

  .plans--detail .plan-detail-cta-button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    padding: 12px 18px !important;
    font-size: 14px !important;
  }

  .plans--detail .plan-tabs--inside {
    margin-top: 36px !important;
  }
}

/* =========================================================
  FV変更案反映：横長メインビジュアル型ファーストビュー
  - CONCEPTより広いFV専用幅
  - FV画像上に白ロゴ＋コピー
  - 特徴バッジは画像下にオレンジで横並び
========================================================= */

.fv.fv--wide {
  display: block !important;
  min-height: auto !important;
  margin: 0 !important;
  padding: 36px 0 82px !important;
  background: #ffffff !important;
}

.fv-wide__frame {
  position: relative !important;
  width: min(calc(100% - 56px), 1500px) !important;
  margin: 0 auto !important;
  overflow: hidden !important;
  background: #1f1f1f !important;
}

.fv-wide__image {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 16 / 7 !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center !important;
}

.fv-wide__overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.52) 0%, rgba(0, 0, 0, 0.34) 38%, rgba(0, 0, 0, 0.08) 72%, rgba(0, 0, 0, 0.10) 100%) !important;
  pointer-events: none !important;
}

.fv-wide__content {
  position: absolute !important;
  left: clamp(44px, 6.2vw, 92px) !important;
  bottom: clamp(42px, 6vw, 86px) !important;
  z-index: 2 !important;
  width: min(46%, 620px) !important;
  color: #ffffff !important;
}

.fv-wide__logo {
  margin: 0 !important;
}

.fv-wide__logo img {
  display: block !important;
  width: min(100%, 410px) !important;
  height: auto !important;
}

.fv-wide__lead {
  margin: 24px 0 0 !important;
  color: #ffffff !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(18px, 1.35vw, 24px) !important;
  font-weight: 600 !important;
  line-height: 1.95 !important;
  letter-spacing: 0.07em !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.28) !important;
}

.fv--wide .fv__badges,
.fv-wide__badges {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: min(calc(100% - 56px), 1080px) !important;
  margin: 50px auto 0 !important;
  padding: 0 !important;
}

.fv--wide .fv__badges li,
.fv-wide__badges li {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 58px !important;
  padding: 12px 18px !important;
  color: #ffffff !important;
  font-size: clamp(15px, 1.2vw, 20px) !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  background: var(--color-orange) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* FV変更に合わせてPCナビを細かく調整 */
@media (min-width: 1181px) {
  .site-header__inner {
    grid-template-columns: 132px 1fr minmax(760px, auto) !important;
    width: min(calc(100% - 56px), 1500px) !important;
  }

  .site-header__brand {
    width: 116px !important;
  }

  .site-header__center-logo {
    width: 230px !important;
  }

  .site-header__right {
    gap: 12px !important;
  }

  .site-nav {
    gap: 10px !important;
    font-size: 10px !important;
    letter-spacing: 0.02em !important;
  }

  .site-header__sanplus-button,
  .site-header__sanplus-button img {
    width: 48px !important;
  }

  .site-header__cta {
    min-width: 124px !important;
    padding-inline: 14px !important;
    font-size: 11px !important;
  }
}

/* かなり広い画面ではFVをさらに見本寄りに広く */
@media (min-width: 1600px) {
  .fv-wide__frame {
    width: min(calc(100% - 120px), 1580px) !important;
  }

  .fv-wide__content {
    left: clamp(76px, 6vw, 112px) !important;
  }
}

/* タブレット */
@media (min-width: 641px) and (max-width: 1180px) {
  .fv.fv--wide {
    padding: 26px 0 68px !important;
  }

  .fv-wide__frame {
    width: min(calc(100% - 40px), 980px) !important;
  }

  .fv-wide__image {
    aspect-ratio: 16 / 8.2 !important;
  }

  .fv-wide__content {
    left: 42px !important;
    bottom: 42px !important;
    width: 58% !important;
  }

  .fv-wide__logo img {
    width: min(100%, 330px) !important;
  }

  .fv-wide__lead {
    margin-top: 18px !important;
    font-size: 17px !important;
    line-height: 1.9 !important;
  }

  .fv--wide .fv__badges,
  .fv-wide__badges {
    width: min(calc(100% - 40px), 860px) !important;
    gap: 14px !important;
    margin-top: 34px !important;
  }

  .fv--wide .fv__badges li,
  .fv-wide__badges li {
    min-height: 52px !important;
    font-size: 15px !important;
  }
}

/* SP */
@media (max-width: 640px) {
  .fv.fv--wide {
    padding: 0 0 52px !important;
    background: #ffffff !important;
  }

  .fv-wide__frame {
    width: 100% !important;
    margin: 0 !important;
  }

  .fv-wide__image {
    width: 100% !important;
    height: 430px !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center top !important;
  }

  .fv-wide__overlay {
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.14) 0%, rgba(0, 0, 0, 0.24) 38%, rgba(0, 0, 0, 0.58) 100%) !important;
  }

  .fv-wide__content {
    left: 22px !important;
    right: 22px !important;
    bottom: 28px !important;
    width: auto !important;
  }

  .fv-wide__logo img {
    width: min(100%, 270px) !important;
  }

  .fv-wide__lead {
    margin-top: 18px !important;
    font-size: 15px !important;
    line-height: 1.9 !important;
    letter-spacing: 0.05em !important;
  }

  .fv--wide .fv__badges,
  .fv-wide__badges {
    width: min(calc(100% - 32px), 520px) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    margin: 28px auto 0 !important;
  }

  .fv--wide .fv__badges li,
  .fv-wide__badges li {
    min-height: 48px !important;
    padding: 10px 8px !important;
    font-size: 14px !important;
  }
}


/* =========================================================
  FINAL FIX：FV変更案の完全反映
  - ヘッダーは hiraya_logo.png のみ
  - FV画像はヘッダー直下にべた付け
  - FV画像は保存比率のまま表示（固定height / object-fit: cover 不使用）
  - FV画像上に白ロゴ・コピー・ページ内リンク・SAN+・CTA・メニューを配置
========================================================= */

:root {
  --header-height: 64px !important;
}

.site-header.site-header--single-logo,
.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  height: var(--header-height) !important;
  min-height: 0 !important;
  background: #ffffff !important;
  border-bottom: 1px solid rgba(229, 225, 216, 0.9) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.site-header--single-logo .site-header__inner,
.site-header__inner--single-logo {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: none !important;
  height: var(--header-height) !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  grid-template-columns: none !important;
}

.site-header--single-logo .site-header__center-logo,
.site-header__inner--single-logo .site-header__center-logo {
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: clamp(186px, 16vw, 248px) !important;
  height: auto !important;
  margin: 0 auto !important;
  z-index: 1 !important;
}

.site-header--single-logo .site-header__center-logo img,
.site-header__inner--single-logo .site-header__center-logo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

.site-header--single-logo .site-header__brand,
.site-header--single-logo .site-header__right,
.site-header--single-logo .site-nav,
.site-header--single-logo .site-header__cta,
.site-header--single-logo .site-header__sanplus-button,
.site-header--single-logo .menu-button {
  display: none !important;
}

/* SPメニューはFV内のMENUボタンから開く。ヘッダー直下に固定表示 */
.sp-menu {
  display: block !important;
  position: fixed !important;
  top: var(--header-height) !important;
  left: 0 !important;
  z-index: 980 !important;
  width: 100% !important;
  max-height: calc(100svh - var(--header-height)) !important;
  overflow-y: auto !important;
  background: rgba(255, 255, 255, 0.98) !important;
  border-bottom: 1px solid var(--color-line) !important;
  transform: translateY(-120%) !important;
  transition: transform 0.24s ease !important;
}

.sp-menu.is-open {
  transform: translateY(0) !important;
}

/* FV本体 */
.fv.fv--wide {
  display: block !important;
  min-height: auto !important;
  margin: 0 !important;
  padding: 0 0 clamp(60px, 7vw, 96px) !important;
  background: #ffffff !important;
}

.fv-wide__frame {
  position: relative !important;
  display: block !important;
  width: min(94vw, 1580px) !important;
  max-width: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  line-height: 0 !important;
  background: #1f1f1f !important;
}

.fv-wide__image {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: initial !important;
}

.fv-wide__overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.37) 36%, rgba(0, 0, 0, 0.10) 70%, rgba(0, 0, 0, 0.12) 100%) !important;
}

.fv-wide__topbar {
  position: absolute !important;
  top: clamp(12px, 1.2vw, 20px) !important;
  left: clamp(18px, 2.4vw, 44px) !important;
  right: clamp(18px, 2.4vw, 44px) !important;
  z-index: 3 !important;
  display: grid !important;
  grid-template-columns: minmax(96px, 150px) minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: clamp(12px, 1.4vw, 24px) !important;
  line-height: 1 !important;
}

.fv-wide__brand {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: clamp(104px, 10vw, 150px) !important;
  min-width: 0 !important;
}

.fv-wide__brand img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

.fv-wide__nav {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(8px, 1vw, 16px) !important;
  min-width: 0 !important;
  color: #ffffff !important;
  font-size: clamp(8px, 0.72vw, 11px) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  white-space: nowrap !important;
}

.fv-wide__nav a {
  display: inline-flex !important;
  align-items: center !important;
  color: #ffffff !important;
  text-decoration: none !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.38) !important;
  white-space: nowrap !important;
}

.fv-wide__nav a + a::before {
  content: "|" !important;
  display: inline-block !important;
  margin-right: clamp(8px, 1vw, 16px) !important;
  color: rgba(255, 255, 255, 0.62) !important;
  font-weight: 400 !important;
}

.fv-wide__actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(8px, 0.9vw, 14px) !important;
  min-width: 0 !important;
}

.fv-wide__cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 132px !important;
  min-height: 34px !important;
  padding: 8px 16px !important;
  color: #ffffff !important;
  font-size: clamp(10px, 0.78vw, 12px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  background: var(--color-green) !important;
  border-radius: 999px !important;
  text-decoration: none !important;
}

.fv-wide__sanplus-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: clamp(42px, 3.6vw, 58px) !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  cursor: pointer !important;
}

.fv-wide__sanplus-button img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
}

.fv-wide__menu.menu-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-grid !important;
  place-content: center !important;
  width: clamp(34px, 3vw, 44px) !important;
  height: clamp(34px, 3vw, 44px) !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 4px !important;
  background: rgba(255, 255, 255, 0.96) !important;
  border: 0 !important;
  border-radius: 50% !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12) !important;
  cursor: pointer !important;
}

.fv-wide__menu.menu-button::after,
.fv-wide__menu.menu-button em {
  content: none !important;
  display: none !important;
}

.fv-wide__menu.menu-button span:not(.visually-hidden) {
  display: block !important;
  width: clamp(16px, 1.5vw, 22px) !important;
  height: 2px !important;
  background: #333333 !important;
  border-radius: 999px !important;
}

.fv-wide__content {
  position: absolute !important;
  left: clamp(42px, 6vw, 96px) !important;
  bottom: clamp(34px, 5.2vw, 84px) !important;
  z-index: 2 !important;
  width: min(46%, 620px) !important;
  color: #ffffff !important;
  line-height: 1.8 !important;
}

.fv-wide__logo,
.fv-wide__logo.fv__logo-title {
  margin: 0 !important;
  line-height: 1 !important;
}

.fv-wide__logo img {
  display: block !important;
  width: min(100%, 390px) !important;
  height: auto !important;
}

.fv-wide__lead {
  margin: clamp(14px, 1.7vw, 24px) 0 0 !important;
  color: #ffffff !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(15px, 1.16vw, 21px) !important;
  font-weight: 600 !important;
  line-height: 1.9 !important;
  letter-spacing: 0.07em !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.32) !important;
}

.fv--wide .fv__badges,
.fv-wide__badges {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(14px, 1.6vw, 24px) !important;
  width: min(calc(100% - 56px), 1100px) !important;
  margin: clamp(34px, 3.8vw, 54px) auto 0 !important;
  padding: 0 !important;
}

.fv--wide .fv__badges li,
.fv-wide__badges li {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: clamp(48px, 4vw, 62px) !important;
  padding: 12px 16px !important;
  color: #ffffff !important;
  font-size: clamp(14px, 1.06vw, 19px) !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  background: var(--color-orange) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

@media (min-width: 1600px) {
  .fv-wide__frame {
    width: min(92vw, 1640px) !important;
  }

  .fv-wide__logo img {
    width: min(100%, 430px) !important;
  }
}

@media (max-width: 1180px) {
  .fv-wide__topbar {
    grid-template-columns: minmax(82px, 128px) 1fr auto !important;
    left: 18px !important;
    right: 18px !important;
    gap: 12px !important;
  }

  .fv-wide__nav {
    display: none !important;
  }

  .fv-wide__brand {
    width: 122px !important;
  }

  .fv-wide__cta {
    min-width: 118px !important;
    min-height: 32px !important;
    padding-inline: 12px !important;
    font-size: 11px !important;
  }
}

@media (max-width: 640px) {
  :root {
    --header-height: 58px !important;
  }

  .site-header.site-header--single-logo,
  .site-header {
    height: var(--header-height) !important;
  }

  .site-header--single-logo .site-header__inner,
  .site-header__inner--single-logo {
    height: var(--header-height) !important;
  }

  .site-header--single-logo .site-header__center-logo,
  .site-header__inner--single-logo .site-header__center-logo {
    width: 178px !important;
  }

  .fv.fv--wide {
    padding-bottom: 52px !important;
  }

  .fv-wide__frame {
    width: 100% !important;
    margin: 0 !important;
  }

  .fv-wide__image {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: initial !important;
  }

  .fv-wide__overlay {
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.16) 0%, rgba(0, 0, 0, 0.25) 42%, rgba(0, 0, 0, 0.62) 100%) !important;
  }

  .fv-wide__topbar {
    top: 10px !important;
    left: 12px !important;
    right: 12px !important;
    grid-template-columns: 88px 1fr auto !important;
    gap: 8px !important;
  }

  .fv-wide__brand {
    width: 88px !important;
  }

  .fv-wide__actions {
    gap: 6px !important;
  }

  .fv-wide__cta {
    display: none !important;
  }

  .fv-wide__sanplus-button {
    width: 42px !important;
  }

  .fv-wide__menu.menu-button {
    width: 36px !important;
    height: 36px !important;
  }

  .fv-wide__menu.menu-button span:not(.visually-hidden) {
    width: 18px !important;
    height: 2px !important;
  }

  .fv-wide__content {
    left: 22px !important;
    right: 22px !important;
    bottom: 24px !important;
    width: auto !important;
  }

  .fv-wide__logo img {
    width: min(100%, 250px) !important;
  }

  .fv-wide__lead {
    margin-top: 14px !important;
    font-size: 14px !important;
    line-height: 1.85 !important;
    letter-spacing: 0.05em !important;
  }

  .fv--wide .fv__badges,
  .fv-wide__badges {
    width: min(calc(100% - 32px), 520px) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    margin-top: 28px !important;
  }

  .fv--wide .fv__badges li,
  .fv-wide__badges li {
    min-height: 48px !important;
    padding: 10px 8px !important;
    font-size: 14px !important;
  }
}
/* =========================================================
  FV最終修正：PC / SP
  - PC：メニューアイコン非表示、CTA黒、SAN+ロゴ右詰め、コピー2行
  - SP：メニューアイコン表示、FV画像を大きく表示、コピー3行
  - PCのfv_image.webpは保存比率のまま表示
========================================================= */

/* ヘッダーはSAN+平屋ロゴのみ */
.site-header.site-header--single-logo,
.site-header--single-logo {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  height: var(--header-height) !important;
  background: rgba(255, 255, 255, 0.98) !important;
  border-bottom: 1px solid rgba(229, 225, 216, 0.9) !important;
  backdrop-filter: blur(10px) !important;
}

.site-header--single-logo .site-header__inner,
.site-header__inner--single-logo {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: var(--header-height) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-header--single-logo .site-header__center-logo,
.site-header__inner--single-logo .site-header__center-logo {
  position: static !important;
  left: auto !important;
  top: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 240px !important;
  transform: none !important;
}

.site-header--single-logo .site-header__center-logo img,
.site-header__inner--single-logo .site-header__center-logo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

/* FV共通 */
.fv.fv--wide {
  display: block !important;
  min-height: auto !important;
  margin: 0 !important;
  padding: 0 0 clamp(54px, 5vw, 86px) !important;
  background: #ffffff !important;
}

.fv-wide__frame {
  position: relative !important;
  width: min(92vw, 1640px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #111111 !important;
  border-radius: 0 !important;
  line-height: 0 !important;
}

.fv-wide__image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  aspect-ratio: auto !important;
  object-fit: initial !important;
  object-position: initial !important;
}

.fv-wide__overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.52) 0%, rgba(0, 0, 0, 0.25) 42%, rgba(0, 0, 0, 0.15) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.22) 0%, rgba(0, 0, 0, 0.04) 34%, rgba(0, 0, 0, 0.35) 100%) !important;
  pointer-events: none !important;
}

.fv-wide__topbar {
  position: absolute !important;
  top: clamp(18px, 1.9vw, 32px) !important;
  left: clamp(22px, 2.8vw, 52px) !important;
  right: clamp(22px, 2.8vw, 52px) !important;
  z-index: 3 !important;
  display: grid !important;
  grid-template-columns: clamp(110px, 9vw, 156px) minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: clamp(14px, 1.4vw, 26px) !important;
  color: #ffffff !important;
  line-height: 1.4 !important;
}

.fv-wide__brand {
  display: inline-flex !important;
  align-items: center !important;
  width: clamp(98px, 8vw, 142px) !important;
}

.fv-wide__brand img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

.fv-wide__nav {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
  gap: 0 !important;
  color: #ffffff !important;
  font-size: clamp(10px, 0.7vw, 13px) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35) !important;
  white-space: nowrap !important;
}

.fv-wide__nav a {
  display: inline-flex !important;
  align-items: center !important;
  color: #ffffff !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.fv-wide__nav a + a::before {
  content: "|" !important;
  display: inline-block !important;
  margin: 0 clamp(7px, 0.72vw, 14px) !important;
  color: rgba(255, 255, 255, 0.75) !important;
}

.fv-wide__actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(8px, 0.9vw, 14px) !important;
  min-width: max-content !important;
}

/* PC：CTAは黒、SAN+ロゴは右詰め、メニューなし */
.fv-wide__cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: clamp(126px, 9vw, 162px) !important;
  min-height: clamp(34px, 2.4vw, 42px) !important;
  padding: 8px clamp(14px, 1.1vw, 20px) !important;
  color: #ffffff !important;
  font-size: clamp(11px, 0.78vw, 13px) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  background: #111111 !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22) !important;
  white-space: nowrap !important;
}

.fv-wide__sanplus-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: clamp(34px, 2.4vw, 42px) !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.fv-wide__sanplus-button img {
  display: block !important;
  width: auto !important;
  height: 100% !important;
  max-width: none !important;
}

.fv-wide__menu.menu-button {
  display: none !important;
}

.fv-wide__content {
  position: absolute !important;
  left: clamp(48px, 6vw, 104px) !important;
  bottom: clamp(36px, 5.4vw, 90px) !important;
  z-index: 2 !important;
  width: min(52%, 760px) !important;
  color: #ffffff !important;
  line-height: 1.8 !important;
}

.fv-wide__logo,
.fv-wide__logo.fv__logo-title {
  margin: 0 !important;
  line-height: 1 !important;
}

.fv-wide__logo img {
  display: block !important;
  width: min(100%, 430px) !important;
  height: auto !important;
}

.fv-wide__lead {
  margin: clamp(16px, 1.7vw, 24px) 0 0 !important;
  color: #ffffff !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(15px, 1.16vw, 21px) !important;
  font-weight: 600 !important;
  line-height: 1.85 !important;
  letter-spacing: 0.07em !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.34) !important;
}

.fv-wide__lead-line {
  display: block !important;
}

.fv-wide__lead-line--sp {
  display: none !important;
}

.fv-wide__lead-line--pc {
  display: block !important;
}

.fv--wide .fv__badges,
.fv-wide__badges {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(14px, 1.6vw, 24px) !important;
  width: min(calc(100% - 56px), 1100px) !important;
  margin: clamp(34px, 3.8vw, 54px) auto 0 !important;
  padding: 0 !important;
}

.fv--wide .fv__badges li,
.fv-wide__badges li {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: clamp(48px, 4vw, 62px) !important;
  padding: 12px 16px !important;
  color: #ffffff !important;
  font-size: clamp(14px, 1.06vw, 19px) !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  background: var(--color-orange) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* 中間幅：PC扱い。メニューは出さない */
@media (max-width: 1180px) and (min-width: 641px) {
  .fv-wide__topbar {
    grid-template-columns: 112px 1fr auto !important;
    left: 20px !important;
    right: 20px !important;
    gap: 12px !important;
  }

  .fv-wide__nav {
    display: none !important;
  }

  .fv-wide__brand {
    width: 112px !important;
  }

  .fv-wide__actions {
    margin-left: auto !important;
  }

  .fv-wide__cta {
    min-width: 138px !important;
    min-height: 36px !important;
    font-size: 12px !important;
  }

  .fv-wide__sanplus-button {
    height: 36px !important;
  }

  .fv-wide__menu.menu-button {
    display: none !important;
  }
}

/* SP：FV変更案に合わせて画像を大きく表示 */
@media (max-width: 640px) {
  :root {
    --header-height: 58px !important;
  }

  .site-header--single-logo .site-header__center-logo,
  .site-header__inner--single-logo .site-header__center-logo {
    width: 178px !important;
  }

  .fv.fv--wide {
    padding-bottom: 48px !important;
  }

  .fv-wide__frame {
    width: 100% !important;
    height: min(122vw, 560px) !important;
    min-height: 430px !important;
    max-height: calc(100svh - var(--header-height) - 92px) !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }

  .fv-wide__image {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center top !important;
  }

  .fv-wide__overlay {
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.16) 0%, rgba(0, 0, 0, 0.22) 42%, rgba(0, 0, 0, 0.66) 100%),
      linear-gradient(90deg, rgba(0, 0, 0, 0.32) 0%, rgba(0, 0, 0, 0.06) 62%, rgba(0, 0, 0, 0.16) 100%) !important;
  }

  .fv-wide__topbar {
    top: 12px !important;
    left: 12px !important;
    right: 12px !important;
    grid-template-columns: 86px 1fr auto !important;
    gap: 8px !important;
  }

  .fv-wide__brand {
    width: 86px !important;
  }

  .fv-wide__nav,
  .fv-wide__cta {
    display: none !important;
  }

  .fv-wide__actions {
    gap: 7px !important;
    justify-content: flex-end !important;
  }

  .fv-wide__sanplus-button {
    height: 40px !important;
    width: auto !important;
  }

  .fv-wide__sanplus-button img {
    width: auto !important;
    height: 40px !important;
  }

  .fv-wide__menu.menu-button {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-grid !important;
    place-content: center !important;
    width: 40px !important;
    height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 4px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14) !important;
    cursor: pointer !important;
  }

  .fv-wide__menu.menu-button::after,
  .fv-wide__menu.menu-button em {
    content: none !important;
    display: none !important;
  }

  .fv-wide__menu.menu-button span:not(.visually-hidden) {
    display: block !important;
    width: 20px !important;
    height: 2px !important;
    background: #333333 !important;
    border-radius: 999px !important;
  }

  .fv-wide__content {
    left: 22px !important;
    right: 22px !important;
    bottom: 28px !important;
    width: auto !important;
  }

  .fv-wide__logo img {
    width: min(100%, 255px) !important;
  }

  .fv-wide__lead {
    margin-top: 14px !important;
    font-size: 14px !important;
    line-height: 1.85 !important;
    letter-spacing: 0.05em !important;
  }

  .fv-wide__lead-line--pc {
    display: none !important;
  }

  .fv-wide__lead-line--sp {
    display: block !important;
  }

  .fv--wide .fv__badges,
  .fv-wide__badges {
    width: min(calc(100% - 32px), 520px) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    margin-top: 26px !important;
  }

  .fv--wide .fv__badges li,
  .fv-wide__badges li {
    min-height: 48px !important;
    padding: 10px 8px !important;
    font-size: 14px !important;
  }
}
/* =========================================================
  FV FINAL：fv修正案pc/sp反映
  - 暗いオーバーレイなし
  - FV内ロゴは白ヌキではなく hiraya_logo.png
  - ロゴ下コピーはHTMLテキスト＋白背景帯
  - PC：ヘッダーは hiraya_logo.png のみ、メニューアイコンなし
  - SP：FV画像を短くせず縦幅を大きく確保、メニューアイコンあり
========================================================= */

:root {
  --fv-pc-width: min(76vw, 1320px);
  --fv-orange: #e86614;
  --fv-black: #111111;
}

/* ---------- Header：PCは中央ロゴのみ ---------- */
.site-header.site-header--single-logo {
  position: relative !important;
  top: auto !important;
  z-index: 1000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 54px !important;
  min-height: 54px !important;
  background: #ffffff !important;
  border-bottom: 1px solid rgba(229, 225, 216, 0.9) !important;
  backdrop-filter: none !important;
}

.site-header__inner--single-logo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 54px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-header__inner--single-logo .site-header__center-logo {
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: clamp(150px, 14vw, 210px) !important;
  max-width: none !important;
  height: auto !important;
  transform: none !important;
}

.site-header__inner--single-logo .site-header__center-logo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

/* ---------- FV Common ---------- */
.fv.fv--wide {
  display: block !important;
  min-height: 0 !important;
  padding: 0 0 104px !important;
  margin: 0 !important;
  background: #ffffff !important;
}

.fv-wide__frame {
  position: relative !important;
  width: var(--fv-pc-width) !important;
  max-width: 1320px !important;
  margin: 0 auto !important;
  overflow: hidden !important;
  background: #f5f5f5 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.fv-wide__image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: initial !important;
  object-position: initial !important;
  filter: none !important;
  opacity: 1 !important;
}

.fv-wide__overlay {
  display: none !important;
  background: transparent !important;
  opacity: 0 !important;
}

.fv-wide__topbar {
  position: absolute !important;
  top: clamp(18px, 2.2vw, 30px) !important;
  left: clamp(22px, 3vw, 50px) !important;
  right: clamp(20px, 2.6vw, 42px) !important;
  z-index: 4 !important;
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  align-items: center !important;
  gap: clamp(16px, 2vw, 28px) !important;
  width: auto !important;
  padding: 0 !important;
  background: transparent !important;
}

.fv-wide__brand {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: clamp(110px, 10vw, 170px) !important;
  min-width: 0 !important;
}

.fv-wide__brand img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  filter: none !important;
  opacity: 1 !important;
}

.fv-wide__nav {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(7px, 0.7vw, 14px) !important;
  color: #111111 !important;
  font-size: clamp(8px, 0.55vw, 11px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;
  white-space: nowrap !important;
  text-shadow: none !important;
}

.fv-wide__nav a {
  display: inline-flex !important;
  align-items: center !important;
  color: #111111 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.fv-wide__nav a + a::before {
  content: "|" !important;
  display: inline-block !important;
  margin-right: clamp(7px, 0.7vw, 14px) !important;
  color: rgba(17, 17, 17, 0.55) !important;
}

.fv-wide__actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.fv-wide__cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: clamp(92px, 8vw, 140px) !important;
  min-height: clamp(28px, 2.6vw, 38px) !important;
  padding: 7px 14px !important;
  color: #ffffff !important;
  font-size: clamp(8px, 0.65vw, 12px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  background: #111111 !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  white-space: nowrap !important;
}

.fv-wide__sanplus-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: clamp(30px, 3vw, 44px) !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.fv-wide__sanplus-button img {
  display: block !important;
  width: auto !important;
  height: 100% !important;
  max-width: none !important;
}

/* PCではFV上のメニューアイコンを出さない */
.fv-wide__menu.menu-button {
  display: none !important;
}

.fv-wide__content {
  position: absolute !important;
  left: clamp(28px, 4vw, 64px) !important;
  bottom: clamp(48px, 8.2vw, 128px) !important;
  z-index: 3 !important;
  width: min(47vw, 560px) !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #222222 !important;
  text-align: left !important;
  transform: none !important;
}

.fv-wide__logo,
.fv-wide__logo.fv__logo-title {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: auto !important;
  margin: 0 0 clamp(16px, 1.5vw, 24px) !important;
  padding: clamp(8px, 0.85vw, 14px) clamp(12px, 1.2vw, 22px) !important;
  background: #ffffff !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.fv-wide__logo img {
  display: block !important;
  width: clamp(260px, 22vw, 430px) !important;
  height: auto !important;
  filter: none !important;
}

.fv-wide__lead {
  display: grid !important;
  justify-items: start !important;
  gap: clamp(8px, 0.85vw, 12px) !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #222222 !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(14px, 1.05vw, 20px) !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.06em !important;
  text-shadow: none !important;
}

.fv-wide__lead-line {
  display: inline-block !important;
  width: fit-content !important;
  max-width: 100% !important;
  padding: 2px 8px !important;
  color: #222222 !important;
  background: rgba(255, 255, 255, 0.95) !important;
}

.fv-wide__lead-line--sp {
  display: none !important;
}

.fv-wide__lead-line--pc {
  display: inline-block !important;
}

.fv-wide__badges {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(12px, 1.2vw, 20px) !important;
  width: min(44vw, 680px) !important;
  margin: clamp(32px, 3.8vw, 54px) auto 0 !important;
  padding: 0 !important;
}

.fv-wide__badges li {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: clamp(42px, 3.5vw, 56px) !important;
  padding: 10px 12px !important;
  color: #ffffff !important;
  font-size: clamp(11px, 0.8vw, 15px) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  letter-spacing: 0.02em !important;
  background: var(--fv-orange) !important;
  border: 0 !important;
  border-radius: 0 !important;
}

/* ---------- Tablet ---------- */
@media (min-width: 641px) and (max-width: 1180px) {
  .fv-wide__frame {
    width: min(calc(100% - 48px), 980px) !important;
  }

  .fv-wide__nav {
    display: none !important;
  }

  .fv-wide__topbar {
    grid-template-columns: auto 1fr auto !important;
  }

  .fv-wide__content {
    width: min(56vw, 500px) !important;
    bottom: clamp(42px, 7vw, 90px) !important;
  }

  .fv-wide__badges {
    width: min(calc(100% - 96px), 720px) !important;
  }
}

/* ---------- SP：fv修正案spに合わせて縦幅を確保 ---------- */
@media (max-width: 640px) {
  .site-header.site-header--single-logo {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .fv.fv--wide {
    padding: 0 0 64px !important;
    margin: 0 !important;
    background: #ffffff !important;
  }

  .fv-wide__frame {
    width: 100% !important;
    max-width: none !important;
    height: clamp(720px, 88svh, 880px) !important;
    min-height: 720px !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    background: #f5f5f5 !important;
  }

  .fv-wide__image {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: 58% top !important;
    filter: none !important;
    opacity: 1 !important;
  }

  .fv-wide__overlay {
    display: none !important;
  }

  .fv-wide__topbar {
    top: 18px !important;
    left: 18px !important;
    right: 18px !important;
    display: grid !important;
    grid-template-columns: minmax(120px, 1fr) auto !important;
    align-items: start !important;
    gap: 14px !important;
    padding: 0 !important;
    background: transparent !important;
  }

  .fv-wide__brand {
    width: min(45vw, 188px) !important;
    justify-self: start !important;
  }

  .fv-wide__brand img {
    width: 100% !important;
  }

  .fv-wide__nav,
  .fv-wide__cta {
    display: none !important;
  }

  .fv-wide__actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    grid-column: 2 !important;
  }

  .fv-wide__sanplus-button {
    display: inline-flex !important;
    height: 50px !important;
    width: auto !important;
  }

  .fv-wide__sanplus-button img {
    height: 50px !important;
    width: auto !important;
  }

  .fv-wide__menu.menu-button {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-grid !important;
    place-content: center !important;
    width: 62px !important;
    height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;
    gap: 5px !important;
  }

  .fv-wide__menu.menu-button::after,
  .fv-wide__menu.menu-button em {
    display: none !important;
    content: none !important;
  }

  .fv-wide__menu.menu-button span:not(.visually-hidden) {
    display: block !important;
    width: 28px !important;
    height: 3px !important;
    background: #333333 !important;
    border-radius: 999px !important;
  }

  .sp-menu {
    top: 0 !important;
    z-index: 1100 !important;
  }

  .fv-wide__content {
    left: 24px !important;
    right: 18px !important;
    bottom: 44px !important;
    width: auto !important;
    max-width: none !important;
  }

  .fv-wide__logo,
  .fv-wide__logo.fv__logo-title {
    margin: 0 0 18px !important;
    padding: 9px 12px !important;
    background: #ffffff !important;
  }

  .fv-wide__logo img {
    width: min(75vw, 392px) !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .fv-wide__lead {
    gap: 7px !important;
    font-size: clamp(15px, 4.2vw, 22px) !important;
    font-weight: 700 !important;
    line-height: 1.48 !important;
    letter-spacing: 0.05em !important;
  }

  .fv-wide__lead-line {
    padding: 2px 7px !important;
    background: rgba(255, 255, 255, 0.95) !important;
  }

  .fv-wide__lead-line--pc {
    display: none !important;
  }

  .fv-wide__lead-line--sp {
    display: inline-block !important;
  }

  .fv-wide__badges {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px 14px !important;
    width: calc(100% - 44px) !important;
    margin: 22px auto 0 !important;
    padding: 0 !important;
  }

  .fv-wide__badges li {
    min-height: 64px !important;
    padding: 10px 8px !important;
    font-size: clamp(18px, 5vw, 24px) !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    background: var(--fv-orange) !important;
  }
}
/* =========================================================
  FV最終調整：PC幅・ナビ干渉・SPサイズ再調整
  - PC：FV画像幅をCONCEPTと同じコンテンツ幅へ
  - PC：上部ナビが左右ロゴ/CTA/SAN+と被らないよう領域分割
  - SP：メニューを正円、上部ロゴ/アイコン縮小
  - SP：FV画像の過度な拡大と縦長化を抑制
========================================================= */

@media (min-width: 641px) {
  .fv.fv--wide {
    padding-top: 0 !important;
    padding-bottom: 104px !important;
    margin-top: 0 !important;
    background: #ffffff !important;
  }

  .fv-wide__frame {
    width: min(calc(100% - 48px), var(--max-width)) !important;
    max-width: var(--max-width) !important;
    margin: 0 auto !important;
    height: auto !important;
    overflow: hidden !important;
  }

  .fv-wide__image {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: initial !important;
    object-position: initial !important;
    filter: none !important;
    opacity: 1 !important;
  }

  .fv-wide__topbar {
    top: clamp(16px, 1.8vw, 26px) !important;
    left: clamp(22px, 2.6vw, 40px) !important;
    right: clamp(22px, 2.6vw, 40px) !important;
    display: grid !important;
    grid-template-columns: clamp(110px, 12vw, 152px) minmax(0, 1fr) clamp(136px, 15vw, 190px) !important;
    align-items: center !important;
    column-gap: clamp(12px, 1.4vw, 22px) !important;
    width: auto !important;
  }

  .fv-wide__brand {
    width: clamp(96px, 10vw, 138px) !important;
    justify-self: start !important;
  }

  .fv-wide__nav {
    min-width: 0 !important;
    max-width: 100% !important;
    justify-self: center !important;
    justify-content: center !important;
    gap: clamp(4px, 0.42vw, 8px) !important;
    overflow: hidden !important;
    color: #111111 !important;
    font-size: clamp(6.8px, 0.48vw, 8.5px) !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  .fv-wide__nav a {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    white-space: nowrap !important;
  }

  .fv-wide__nav a + a::before {
    margin-right: clamp(4px, 0.42vw, 8px) !important;
  }

  .fv-wide__actions {
    justify-self: end !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    min-width: 0 !important;
  }

  .fv-wide__cta {
    min-width: clamp(98px, 9vw, 128px) !important;
    min-height: clamp(28px, 2.4vw, 34px) !important;
    padding: 7px 12px !important;
    font-size: clamp(7.5px, 0.62vw, 10px) !important;
    background: #111111 !important;
    color: #ffffff !important;
  }

  .fv-wide__sanplus-button {
    height: clamp(30px, 2.8vw, 38px) !important;
  }

  .fv-wide__sanplus-button img {
    height: 100% !important;
    width: auto !important;
  }

  .fv-wide__menu.menu-button {
    display: none !important;
  }

  .fv-wide__content {
    left: clamp(36px, 4.2vw, 64px) !important;
    bottom: clamp(46px, 6.5vw, 86px) !important;
    width: min(45vw, 530px) !important;
  }

  .fv-wide__logo,
  .fv-wide__logo.fv__logo-title {
    margin-bottom: clamp(12px, 1.1vw, 18px) !important;
    padding: clamp(7px, 0.75vw, 12px) clamp(10px, 1.1vw, 18px) !important;
  }

  .fv-wide__logo img {
    width: clamp(230px, 20vw, 360px) !important;
  }

  .fv-wide__lead {
    gap: clamp(6px, 0.6vw, 9px) !important;
    font-size: clamp(12px, 0.95vw, 16px) !important;
    line-height: 1.55 !important;
  }

  .fv-wide__badges {
    width: min(calc(100% - 96px), 760px) !important;
    gap: clamp(12px, 1.25vw, 20px) !important;
    margin-top: clamp(30px, 3vw, 44px) !important;
  }
}

@media (min-width: 641px) and (max-width: 1180px) {
  .fv-wide__frame {
    width: min(calc(100% - 48px), var(--max-width)) !important;
    max-width: var(--max-width) !important;
  }

  .fv-wide__nav {
    display: none !important;
  }

  .fv-wide__topbar {
    grid-template-columns: auto 1fr auto !important;
  }
}

@media (max-width: 640px) {
  .site-header.site-header--single-logo {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .fv.fv--wide {
    padding: 0 0 54px !important;
    margin: 0 !important;
    background: #ffffff !important;
  }

  .fv-wide__frame {
    width: 100% !important;
    max-width: none !important;
    height: clamp(600px, 74svh, 660px) !important;
    min-height: 600px !important;
    max-height: 660px !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    background: #f5f5f5 !important;
  }

  .fv-wide__image {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: 54% top !important;
    filter: none !important;
    opacity: 1 !important;
  }

  .fv-wide__overlay {
    display: none !important;
  }

  .fv-wide__topbar {
    top: 14px !important;
    left: 14px !important;
    right: 14px !important;
    display: grid !important;
    grid-template-columns: minmax(96px, 1fr) auto !important;
    align-items: start !important;
    gap: 10px !important;
    padding: 0 !important;
    background: transparent !important;
  }

  .fv-wide__brand {
    width: min(33vw, 132px) !important;
    justify-self: start !important;
  }

  .fv-wide__brand img {
    width: 100% !important;
    height: auto !important;
  }

  .fv-wide__nav,
  .fv-wide__cta {
    display: none !important;
  }

  .fv-wide__actions {
    grid-column: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
  }

  .fv-wide__sanplus-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: 36px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }

  .fv-wide__sanplus-button img {
    display: block !important;
    width: auto !important;
    height: 36px !important;
    max-width: none !important;
  }

  .fv-wide__menu.menu-button {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-grid !important;
    place-content: center !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12) !important;
    gap: 4px !important;
  }

  .fv-wide__menu.menu-button::after,
  .fv-wide__menu.menu-button em {
    display: none !important;
    content: none !important;
  }

  .fv-wide__menu.menu-button span:not(.visually-hidden) {
    display: block !important;
    width: 20px !important;
    height: 2px !important;
    background: #333333 !important;
    border-radius: 999px !important;
  }

  .sp-menu {
    top: 0 !important;
    z-index: 1100 !important;
  }

  .fv-wide__content {
    left: 24px !important;
    right: 18px !important;
    bottom: 38px !important;
    width: auto !important;
    max-width: none !important;
  }

  .fv-wide__logo,
  .fv-wide__logo.fv__logo-title {
    margin: 0 0 13px !important;
    padding: 8px 10px !important;
    background: #ffffff !important;
  }

  .fv-wide__logo img {
    width: min(64vw, 320px) !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .fv-wide__lead {
    display: grid !important;
    justify-items: start !important;
    gap: 6px !important;
    margin: 0 !important;
    font-family: var(--font-serif) !important;
    font-size: clamp(13px, 3.6vw, 17px) !important;
    font-weight: 700 !important;
    line-height: 1.46 !important;
    letter-spacing: 0.04em !important;
  }

  .fv-wide__lead-line {
    display: inline-block !important;
    width: fit-content !important;
    max-width: 100% !important;
    padding: 2px 6px !important;
    color: #222222 !important;
    background: rgba(255, 255, 255, 0.95) !important;
  }

  .fv-wide__lead-line--pc {
    display: none !important;
  }

  .fv-wide__lead-line--sp {
    display: inline-block !important;
  }

  .fv-wide__badges {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px 12px !important;
    width: calc(100% - 44px) !important;
    margin: 20px auto 0 !important;
    padding: 0 !important;
  }

  .fv-wide__badges li {
    min-height: 56px !important;
    padding: 9px 8px !important;
    color: #ffffff !important;
    font-size: clamp(15px, 4.3vw, 20px) !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    background: var(--fv-orange) !important;
  }
}
/* =========================================================
  FINAL FV ADJUSTMENT
  PC：ロゴ・コピーを見本寄せで拡大し、少し上へ移動
  SP：FV画像のトリミング位置のみ修正
========================================================= */

@media (min-width: 901px) {
  .fv-wide__content {
    left: clamp(54px, 5.6vw, 86px) !important;
    bottom: clamp(76px, 8.2vw, 124px) !important;
    width: min(54vw, 700px) !important;
  }

  .fv-wide__logo,
  .fv-wide__logo.fv__logo-title {
    margin-bottom: clamp(16px, 1.35vw, 24px) !important;
    padding: clamp(10px, 0.9vw, 16px) clamp(16px, 1.45vw, 26px) !important;
    background: #ffffff !important;
  }

  .fv-wide__logo img {
    width: clamp(340px, 27vw, 520px) !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .fv-wide__lead {
    display: grid !important;
    justify-items: start !important;
    gap: clamp(9px, 0.85vw, 14px) !important;
    font-size: clamp(15px, 1.22vw, 21px) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.055em !important;
  }

  .fv-wide__lead-line {
    display: inline-block !important;
    width: fit-content !important;
    max-width: 100% !important;
    padding: clamp(3px, 0.28vw, 5px) clamp(8px, 0.65vw, 12px) !important;
    color: #222222 !important;
    background: rgba(255, 255, 255, 0.96) !important;
  }
}

@media (max-width: 640px) {
  .fv-wide__image {
    object-position: 60% top !important;
  }
}
/* =========================================================
  FV PC FIX：PCコピー重複表示解消 + PCナビサイズ調整
  - SP表示は変更しない
  - PCではSP用コピーを確実に非表示
  - PCナビは左右要素に干渉しない範囲で拡大
========================================================= */

@media (min-width: 901px) {
  /* PCでは2行コピーのみ表示。SP用3行コピーは完全に非表示 */
  .fv-wide__lead-line--pc {
    display: inline-block !important;
  }

  .fv-wide__lead-line--sp {
    display: none !important;
  }

  /* PC上部ナビ：左右ロゴ・CTA・SAN+ロゴに干渉しない範囲で拡大 */
  .fv-wide__topbar {
    grid-template-columns: clamp(92px, 9vw, 130px) minmax(0, 1fr) clamp(138px, 13.5vw, 184px) !important;
    column-gap: clamp(10px, 1.1vw, 18px) !important;
  }

  .fv-wide__brand {
    width: clamp(88px, 8.8vw, 126px) !important;
  }

  .fv-wide__nav {
    display: flex !important;
    justify-content: center !important;
    gap: clamp(6px, 0.55vw, 10px) !important;
    font-size: clamp(9.5px, 0.68vw, 12px) !important;
    font-weight: 800 !important;
    letter-spacing: 0.01em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
  }

  .fv-wide__nav a + a::before {
    margin-right: clamp(6px, 0.55vw, 10px) !important;
  }

  .fv-wide__actions {
    gap: 8px !important;
  }
}


/* =========================================================
  FINAL PATCH：FVメニューのスクロール残り防止 / footer削除後調整
  - PCではヘッダーをstickyに戻し、FV内ナビが上部に露出しないようにする
  - SPは既存表示を維持
  - footerはHTML側で削除済み。CONTACT後は固定CTAとscriptのみ
========================================================= */

@media (min-width: 641px) {
  .site-header.site-header--single-logo {
    position: sticky !important;
    top: 0 !important;
    z-index: 6000 !important;
    display: flex !important;
    background: #ffffff !important;
    border-bottom: 1px solid rgba(229, 225, 216, 0.9) !important;
  }

  .fv-wide__frame {
    position: relative !important;
    overflow: hidden !important;
    isolation: isolate !important;
  }

  .fv-wide__topbar {
    position: absolute !important;
    z-index: 4 !important;
  }
}

@media (max-width: 640px) {
  .site-header.site-header--single-logo {
    display: none !important;
  }
}


/* =========================================================
  FINAL UPDATE: CTAリンク統一・CONTACT単独CTA中央配置
========================================================= */
.final-cta__buttons--single {
  justify-content: center !important;
  align-items: center !important;
}

.final-cta__buttons--single .button {
  margin-inline: auto !important;
}

@media (max-width: 900px) {
  .final-cta__buttons--single {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .final-cta__buttons--single .button {
    width: min(100%, 320px) !important;
  }
}
/* =========================================================
  PLAN：PCの間取り図拡大＋見出し指定改行
  - PCのみ plan_couple / plan_family の間取り図を拡大
  - PC/SPともに plan-title-line を改行表示
========================================================= */

.plans--detail .plan-title-line {
  display: block !important;
}

@media (min-width: 901px) {
  .plans--detail #planCouple .plan-detail-drawing img,
  .plans--detail #planFamily .plan-detail-drawing img {
    width: 102% !important;
    max-width: none !important;
    margin-left: -6% !important;
  }
}

/* =========================================================
  FINAL REQUEST PATCH 2026-06-08
  - FV内topbar要素をヘッダーへ移動
  - PC：ouchinokoto_logo / hiraya_logo＋ページ内ナビ / CTA＋SAN+ をヘッダー固定
  - ヘッダー左右端をFV画像（fv_image）の左右ラインに合わせる
  - PRICE VIEW 吹き出し三角の隙間を解消
========================================================= */

:root {
  --lp-header-height: 104px;
}

html {
  scroll-padding-top: var(--lp-header-height) !important;
}

.site-header.site-header--lp,
.site-header--lp {
  position: sticky !important;
  top: 0 !important;
  z-index: 6000 !important;
  display: block !important;
  width: 100% !important;
  height: var(--lp-header-height) !important;
  min-height: var(--lp-header-height) !important;
  margin: 0 !important;
  padding: 0 !important;
  background: rgba(255, 255, 255, 0.98) !important;
  border-bottom: 1px solid rgba(229, 225, 216, 0.92) !important;
  box-shadow: 0 8px 22px rgba(74, 62, 46, 0.045) !important;
  backdrop-filter: blur(10px) !important;
}

.site-header__inner.site-header__inner--lp,
.site-header__inner--lp {
  position: relative !important;
  display: block !important;
  width: min(calc(100% - 48px), var(--max-width)) !important;
  max-width: var(--max-width) !important;
  height: var(--lp-header-height) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

.site-header--lp .site-header__brand {
  position: absolute !important;
  top: 50% !important;
  left: 0 !important;
  z-index: 3 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: clamp(104px, 8.2vw, 138px) !important;
  height: auto !important;
  margin: 0 !important;
  transform: translateY(-50%) !important;
}

.site-header--lp .site-header__brand img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

.site-header--lp .site-header__center {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  z-index: 2 !important;
  display: grid !important;
  justify-items: center !important;
  align-content: center !important;
  gap: 18px !important;
  width: min(60vw, 890px) !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: translate(-50%, -50%) !important;
}

.site-header--lp .site-header__center-logo {
  position: static !important;
  left: auto !important;
  top: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: clamp(178px, 15vw, 236px) !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}

.site-header--lp .site-header__center-logo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

.site-header--lp .site-header__nav {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: nowrap !important;
  gap: clamp(6px, 0.52vw, 10px) !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #222222 !important;
  font-size: clamp(13px, 1vw, 14px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.01em !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}

.site-header--lp .site-header__nav a {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
  color: inherit !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.site-header--lp .site-header__nav a:hover {
  color: var(--color-green) !important;
}

.site-header--lp .site-header__nav a + a::before {
  content: "|" !important;
  display: inline-block !important;
  margin-right: clamp(6px, 0.52vw, 10px) !important;
  color: rgba(34, 34, 34, 0.42) !important;
  font-weight: 500 !important;
}

.site-header--lp .site-header__actions {
  position: absolute !important;
  top: 50% !important;
  right: 0 !important;
  z-index: 3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: translateY(-50%) !important;
}

.site-header--lp .site-header__cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: clamp(120px, 9vw, 148px) !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 8px 16px !important;
  color: #ffffff !important;
  font-size: clamp(10px, 0.74vw, 12px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  background: #111111 !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.site-header--lp .site-header__sanplus-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent !important;
}

.site-header--lp .site-header__sanplus-button img {
  display: block !important;
  width: auto !important;
  height: 100% !important;
  max-width: none !important;
}

.site-header--lp .site-header__menu.menu-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: none !important;
  place-content: center !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 4px !important;
  background: #ffffff !important;
  border: 1px solid rgba(229, 225, 216, 0.96) !important;
  border-radius: 50% !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.site-header--lp .site-header__menu.menu-button span:not(.visually-hidden) {
  display: block !important;
  width: 20px !important;
  height: 2px !important;
  background: #333333 !important;
  border-radius: 999px !important;
}

.site-header--lp .site-header__menu.menu-button em,
.site-header--lp .site-header__menu.menu-button::after {
  display: none !important;
  content: none !important;
}

/* FV内から移動した旧topbarは、HTML側で削除済み。残存時も表示させない。 */
.fv-wide__topbar,
.fv-wide__brand,
.fv-wide__nav,
.fv-wide__actions,
.fv-wide__cta,
.fv-wide__sanplus-button,
.fv-wide__menu.menu-button {
  display: none !important;
}

/* FVの左右ラインとヘッダー左右ラインを一致させる */
@media (min-width: 641px) {
  .fv-wide__frame {
    width: min(calc(100% - 48px), var(--max-width)) !important;
    max-width: var(--max-width) !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .fv.fv--wide {
    padding-top: 0 !important;
  }
}

.sp-menu {
  top: var(--lp-header-height) !important;
  z-index: 5900 !important;
}

@media (min-width: 1181px) and (max-width: 1420px) {
  .site-header--lp .site-header__center {
    width: min(58vw, 780px) !important;
  }

  .site-header--lp .site-header__nav {
    gap: 5px !important;
    font-size: clamp(13px, 1vw, 14px) !important;
    letter-spacing: 0 !important;
  }

  .site-header--lp .site-header__nav a + a::before {
    margin-right: 5px !important;
  }

  .site-header--lp .site-header__brand {
    width: 104px !important;
  }

  .site-header--lp .site-header__cta {
    min-width: 116px !important;
    padding-inline: 12px !important;
    font-size: 10px !important;
  }

  .site-header--lp .site-header__sanplus-button {
    height: 34px !important;
  }
}

@media (min-width: 641px) and (max-width: 1180px) {
  :root {
    --lp-header-height: 76px;
  }

  html {
    scroll-padding-top: var(--lp-header-height) !important;
  }

  .site-header.site-header--lp,
  .site-header--lp,
  .site-header__inner.site-header__inner--lp,
  .site-header__inner--lp {
    height: var(--lp-header-height) !important;
    min-height: var(--lp-header-height) !important;
  }

  .site-header__inner.site-header__inner--lp,
  .site-header__inner--lp {
    width: min(calc(100% - 40px), var(--max-width)) !important;
  }

  .site-header--lp .site-header__brand {
    width: 108px !important;
  }

  .site-header--lp .site-header__center {
    width: min(46vw, 330px) !important;
    gap: 0 !important;
  }

  .site-header--lp .site-header__center-logo {
    width: 190px !important;
  }

  .site-header--lp .site-header__nav {
    display: none !important;
  }

  .site-header--lp .site-header__cta {
    min-width: 126px !important;
    min-height: 34px !important;
    padding-inline: 13px !important;
    font-size: 11px !important;
  }

  .site-header--lp .site-header__sanplus-button {
    height: 34px !important;
  }

  .site-header--lp .site-header__menu.menu-button {
    display: inline-grid !important;
  }

  .sp-menu {
    top: var(--lp-header-height) !important;
  }
}

@media (max-width: 640px) {
  :root {
    --lp-header-height: 64px;
  }

  html {
    scroll-padding-top: var(--lp-header-height) !important;
  }

  .site-header.site-header--lp,
  .site-header--lp {
    position: sticky !important;
    top: 0 !important;
    display: block !important;
    height: var(--lp-header-height) !important;
    min-height: var(--lp-header-height) !important;
    overflow: visible !important;
  }

  .site-header__inner.site-header__inner--lp,
  .site-header__inner--lp {
    width: 100% !important;
    height: var(--lp-header-height) !important;
    min-height: var(--lp-header-height) !important;
    padding: 0 10px !important;
  }

  .site-header--lp .site-header__brand {
    left: 10px !important;
    width: 58px !important;
  }

  .site-header--lp .site-header__center {
    width: min(42vw, 154px) !important;
    gap: 0 !important;
  }

  .site-header--lp .site-header__center-logo {
    width: min(42vw, 154px) !important;
  }

  .site-header--lp .site-header__nav,
  .site-header--lp .site-header__cta {
    display: none !important;
  }

  .site-header--lp .site-header__actions {
    right: 10px !important;
    gap: 7px !important;
  }

  .site-header--lp .site-header__sanplus-button {
    height: 30px !important;
  }

  .site-header--lp .site-header__menu.menu-button {
    display: inline-grid !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    border: 0 !important;
    background: transparent !important;
  }

  .site-header--lp .site-header__menu.menu-button span:not(.visually-hidden) {
    width: 24px !important;
    height: 3px !important;
    background: var(--color-green) !important;
  }

  .fv.fv--wide {
    padding-top: 0 !important;
  }

  .fv-wide__frame {
    margin-top: 0 !important;
  }

  .sp-menu {
    top: var(--lp-header-height) !important;
    z-index: 5900 !important;
  }
}

/* PRICE VIEW：緑吹き出しの三角を四角部分へ少し重ね、拡大時の白い隙間を防止 */
.price-stack__headline {
  overflow: visible !important;
}

.price-stack__headline::after {
  bottom: -13px !important;
  border-top-width: 16px !important;
  transform: translate(-50%, -1px) !important;
}


/* =========================================================
  SEO/AIO内部リンク導線：SAN+平屋 関連コンテンツ
========================================================= */

/* =========================================================
  FINAL：RELATED CONTENTS
  - SPEC後 / CONSULTATION前に配置
  - PC横3列 / SP縦1列
  - 左サムネイルをカード左端にベタ付け
========================================================= */

.related-contents {
  padding: 0 0 86px !important;
  background: linear-gradient(180deg, #ffffff 0%, var(--color-ivory) 100%) !important;
}

.related-contents .san-hiraya-related-container {
  width: min(calc(100% - 48px), 1200px) !important;
  max-width: none !important;
  margin: 0 auto !important;
}

.related-contents .san-hiraya-related {
  margin: 0 !important;
  padding: 30px 32px 32px !important;
  background: #ffffff !important;
  border: 1px solid var(--color-line) !important;
  border-left: 5px solid var(--color-orange) !important;
  border-radius: 0 var(--radius-md) var(--radius-md) 0 !important;
  box-shadow: var(--shadow-soft) !important;
}

.san-hiraya-related__label {
  margin: 0 0 10px !important;
  color: var(--color-green) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.14em !important;
}

.san-hiraya-related__title {
  margin: 0 !important;
  color: #2d2d2d !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(24px, 2.6vw, 34px) !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.04em !important;
}

.san-hiraya-related__lead {
  margin: 16px 0 0 !important;
  color: var(--color-text-soft) !important;
  font-size: 14px !important;
  line-height: 1.95 !important;
}

.san-hiraya-related__lead a {
  color: var(--color-green) !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
}

.san-hiraya-related__links {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin-top: 22px !important;
}

.san-hiraya-related__link {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 120px minmax(0, 1fr) !important;
  align-items: stretch !important;
  min-height: 104px !important;
  padding: 0 !important;
  color: #222222 !important;
  background: #ffffff !important;
  border: 1px solid rgba(0, 122, 66, 0.14) !important;
  border-radius: var(--radius-sm) !important;
  text-decoration: none !important;
  overflow: hidden !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
}

.san-hiraya-related__link::after {
  content: "›" !important;
  position: absolute !important;
  right: 15px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: var(--color-orange) !important;
  font-size: 24px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

.san-hiraya-related__link:hover {
  transform: translateY(-2px) !important;
  border-color: var(--color-orange) !important;
  box-shadow: 0 12px 28px rgba(74, 62, 46, 0.10) !important;
}

.san-hiraya-related__thumb {
  display: block !important;
  width: 120px !important;
  height: 100% !important;
  min-height: 104px !important;
  margin: 0 !important;
  background: var(--color-ivory) !important;
  overflow: hidden !important;
}

.san-hiraya-related__thumb img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.san-hiraya-related__body {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-width: 0 !important;
  padding: 16px 38px 16px 16px !important;
}

.san-hiraya-related__link-title {
  display: block !important;
  color: var(--color-green) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
}

.san-hiraya-related__link-text {
  display: block !important;
  margin-top: 6px !important;
  color: var(--color-muted) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
}

/* CONCEPT内のテキストリンク */
.concept__note a {
  color: var(--color-green) !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
}

/* Tablet */
@media (max-width: 900px) {
  .related-contents {
    padding: 68px 0 !important;
  }

  .related-contents .san-hiraya-related-container {
    width: min(calc(100% - 32px), 680px) !important;
  }

  .related-contents .san-hiraya-related {
    padding: 24px 22px 26px !important;
  }

  .san-hiraya-related__links {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .san-hiraya-related__link {
    grid-template-columns: 100px minmax(0, 1fr) !important;
    min-height: 96px !important;
    padding: 0 !important;
  }

  .san-hiraya-related__thumb {
    width: 100px !important;
    min-height: 96px !important;
  }

  .san-hiraya-related__body {
    padding: 14px 34px 14px 14px !important;
  }
}

/* SP */
@media (max-width: 640px) {
  .related-contents {
    padding: 56px 0 !important;
  }

  .related-contents .san-hiraya-related-container {
    width: min(calc(100% - 32px), 680px) !important;
  }

  .related-contents .san-hiraya-related {
    padding: 22px 18px 24px !important;
    border-left-width: 4px !important;
    border-radius: 0 14px 14px 0 !important;
  }

  .san-hiraya-related__label {
    font-size: 11px !important;
  }

  .san-hiraya-related__title {
    font-size: 24px !important;
    line-height: 1.55 !important;
  }

  .san-hiraya-related__lead {
    font-size: 14px !important;
    line-height: 1.9 !important;
  }

  .san-hiraya-related__links {
    margin-top: 18px !important;
  }

  .san-hiraya-related__link {
    grid-template-columns: 84px minmax(0, 1fr) !important;
    min-height: 92px !important;
  }

  .san-hiraya-related__thumb {
    width: 100px !important;
    min-height: 92px !important;
  }

  .san-hiraya-related__body {
    padding: 13px 30px 13px 33px !important;
  }

  .san-hiraya-related__link-title {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }

  .san-hiraya-related__link-text {
    font-size: 12px !important;
    line-height: 1.5 !important;
  }

  .san-hiraya-related__link::after {
    right: 13px !important;
    font-size: 22px !important;
  }
}