@charset "UTF-8";
html {
  font-size: 62.5%;
}
@media (max-width: 750px) {
  html {
    font-size: 30%;
  }
}

body {
  font-size: 1.4rem;
  line-height: 1;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
}

.fa-solid,
.fa-regular,
.fa-brands {
  width: 1em;
  height: 1em;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  line-height: 1;
  vertical-align: -0.08em;
}

.hero {
  background: #fff;
  overflow: hidden;
}

/* =========================================
  HEADER
========================================= */
.heroHeader {
  height: 95px;
  padding: 0 60px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #fff;
}

.heroHeader__logo {
  display: flex;
  align-items: center;
  gap: 18px;
  font-size: 2.8rem;
  font-weight: 700;
  color: #0F5AE5;
}

.heroHeader__logo > .fa-solid {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #EEF4FF;
  color: #0F5AE5;
  font-size: 2.4rem;
}

.heroHeader__right {
  display: flex;
  align-items: center;
  gap: 24px;
}

.heroHeader__tel {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 2rem;
  font-weight: 700;
  color: #1A2A4A;
  text-decoration: none;
}

.heroHeader__btn {
  width: 180px;
  height: 56px;
  border-radius: 12px;
  background: linear-gradient(135deg, #0F5AE5, #006BFF);
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 10px 25px rgba(15, 90, 229, 0.25);
}

/* =========================================
  HERO
========================================= */
.heroMain {
  position: relative;
  overflow: hidden;
  background: #0F5AE5;
}

.heroMain__slider {
  position: relative;
  z-index: 0;
  display: flex;
  width: 100%;
  -webkit-animation: heroSlider 18s infinite;
          animation: heroSlider 18s infinite;
}

.heroMain__slide {
  min-width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 60px;
  position: relative;
  background-position: center;
  background-size: cover;
}

.heroMain__dots {
  position: absolute;
  left: 60px;
  bottom: 38px;
  z-index: 3;
  display: flex;
  gap: 10px;
}

.heroMain__dots span {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
  -webkit-animation: heroDot 18s infinite;
          animation: heroDot 18s infinite;
}

.heroMain__dots span:nth-child(2) {
  -webkit-animation-delay: 6s;
          animation-delay: 6s;
}

.heroMain__dots span:nth-child(3) {
  -webkit-animation-delay: 12s;
          animation-delay: 12s;
}

@-webkit-keyframes heroSlider {
  0%, 28% {
    transform: translateX(0);
  }
  34%, 61% {
    transform: translateX(-100%);
  }
  67%, 94% {
    transform: translateX(-200%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes heroSlider {
  0%, 28% {
    transform: translateX(0);
  }
  34%, 61% {
    transform: translateX(-100%);
  }
  67%, 94% {
    transform: translateX(-200%);
  }
  100% {
    transform: translateX(0);
  }
}
@-webkit-keyframes heroDot {
  0%, 28% {
    background: #fff;
    transform: scale(1.25);
  }
  34%, 100% {
    background: rgba(255, 255, 255, 0.45);
    transform: scale(1);
  }
}
@keyframes heroDot {
  0%, 28% {
    background: #fff;
    transform: scale(1.25);
  }
  34%, 100% {
    background: rgba(255, 255, 255, 0.45);
    transform: scale(1);
  }
}
.heroMain__content {
  width: 48%;
  position: relative;
  z-index: 2;
}

.heroMain__ttl {
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
  margin-bottom: 40px;
}

.heroMain__txt {
  font-size: 3rem;
  line-height: 2;
  color: #fff;
  font-weight: 500;
  margin-bottom: 50px;
}

.heroMain__cta {
  width: 520px;
  height: 120px;
  background: #fff;
  border-radius: 24px;
  display: flex;
  align-items: center;
  padding: 0 40px;
  gap: 28px;
  text-decoration: none;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15);
}

.heroMain__ctaIcon {
  font-size: 4rem;
  line-height: 1;
}

.heroMain__ctaText {
  font-size: 3.4rem;
  font-weight: 700;
  color: #0F5AE5;
}

.heroMain__ctaArrow {
  margin-left: auto;
  font-size: 4rem;
  color: #0F5AE5;
  line-height: 1;
}

.heroHeader__telIcon,
.heroMain__ctaIcon,
.heroMain__ctaArrow,
.marketCard__arrow,
.flowArrow,
.purchaseCase__btn small,
.timingCheckBtn small,
.subsidyBtn small,
.lineAssessmentBtn small,
.faqBtn__arrow,
.ctaBtn__arrow {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  line-height: 1;
}

/* =========================================
  FEATURE
========================================= */
.heroFeature {
  width: 44%;
  display: flex;
  justify-content: space-between;
  gap: 30px;
  position: relative;
  z-index: 2;
}

.heroFeature__item {
  width: 33.333%;
  text-align: center;
  color: #fff;
  position: relative;
}

.heroFeature__item:not(:last-child)::after {
  content: "";
  width: 1px;
  height: 220px;
  background: rgba(255, 255, 255, 0.25);
  position: absolute;
  top: 20px;
  right: -15px;
}

.heroFeature__icon {
  width: 130px;
  height: 130px;
  margin: 0 auto 30px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 5rem;
}

.heroFeature__icon .fa-solid,
.troubleCard__icon .fa-solid,
.reasonCard__icon .fa-solid,
.purchaseCaseCard__icon .fa-solid,
.dangerCard__icon .fa-solid,
.flowItem__icon .fa-solid,
.supportAreaCard__icon .fa-solid,
.timingCheckBox__icon .fa-solid,
.subsidyCard__icon .fa-solid,
.subsidySupport__icon .fa-solid,
.lineAssessmentList__icon .fa-solid,
.ctaIcon .fa-solid,
.footerCircle .fa-solid {
  font-size: 0.82em;
}

.heroFeature__ttl {
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 18px;
}

.heroFeature__txt {
  font-size: 2rem;
  line-height: 1.8;
}

/* =========================================
  TROUBLE
========================================= */
.trouble {
  padding: 110px 40px 130px;
  background: #F7FAFF;
  position: relative;
}

.trouble__inner {
  position: relative;
  z-index: 2;
}

.trouble__ttl {
  text-align: center;
  font-size: 5rem;
  font-weight: 700;
  color: #1A2A4A;
  margin-bottom: 80px;
  position: relative;
}

.trouble__ttl::after {
  content: "";
  width: 90px;
  height: 4px;
  background: #0F5AE5;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -25px;
}

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

.troubleCard {
  background: #fff;
  border-radius: 24px;
  padding: 35px;
  display: flex;
  align-items: center;
  gap: 25px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

.troubleCard__icon {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  background: #EEF4FF;
  color: #0F5AE5;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 3.2rem;
  flex-shrink: 0;
}

.troubleCard p {
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1.7;
  color: #1A2A4A;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .heroHeader {
    height: auto;
    padding: 20px;
    flex-direction: column;
    gap: 20px;
  }
  .heroHeader__logo {
    font-size: 2rem;
  }
  .heroMain__slide {
    padding: 70px 20px;
    flex-direction: column;
    gap: 44px;
  }
  .heroMain__content {
    width: 100%;
  }
  .heroMain__ttl {
    font-size: 3.8rem;
  }
  .heroMain__txt {
    font-size: 2.2rem;
  }
  .heroMain__cta {
    width: 100%;
    height: 90px;
    padding: 0 24px;
    gap: 18px;
  }
  .heroMain__ctaText {
    font-size: 2.4rem;
    line-height: 1.35;
  }
  .heroMain__ctaIcon,
.heroMain__ctaArrow {
    font-size: 3.2rem;
  }
  .heroFeature {
    width: 100%;
    flex-direction: column;
  }
  .heroFeature__item {
    width: 100%;
  }
  .heroFeature__item::after {
    display: none;
  }
  .trouble__ttl {
    font-size: 3.6rem;
  }
  .trouble__list {
    grid-template-columns: 1fr;
  }
  .troubleCard {
    padding: 25px;
  }
  .troubleCard p {
    font-size: 1.8rem;
  }
}
/* =========================================
  COMMON
========================================= */
.sectionHead {
  text-align: center;
  margin-bottom: 70px;
}

.sectionHead__ttl {
  font-size: 5.6rem;
  font-weight: 700;
  line-height: 1.4;
  color: #0F2347;
  position: relative;
  padding-bottom: 28px;
}

.sectionHead__ttl::after {
  content: "";
  width: 85px;
  height: 4px;
  background: #0F5AE5;
  border-radius: 10px;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
}

.sectionHead__txt {
  margin-top: 28px;
  font-size: 2.2rem;
  line-height: 1.8;
  color: #667085;
}

/* =========================================
  REASON
========================================= */
.reason {
  padding: 120px 40px;
  background: linear-gradient(180deg, #F8FBFF 0%, #FFFFFF 100%);
}

.reason__inner {
  max-width: 1400px;
  margin: 0 auto;
}

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

.reasonCard {
  background: #fff;
  border-radius: 30px;
  padding: 55px 45px;
  text-align: center;
  box-shadow: 0 20px 50px rgba(15, 90, 229, 0.06);
  border: 1px solid rgba(15, 90, 229, 0.05);
  transition: 0.3s;
}

.reasonCard:hover {
  transform: translateY(-10px);
  box-shadow: 0 30px 70px rgba(15, 90, 229, 0.12);
}

.reasonCard__icon {
  width: 140px;
  height: 140px;
  margin: 0 auto 35px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 6rem;
}

.reasonCard__icon.blue {
  background: #EEF4FF;
  color: #0F5AE5;
}

.reasonCard__icon.green {
  background: #ECFFF1;
  color: #12A150;
}

.reasonCard__icon.orange {
  background: #FFF3E9;
  color: #F97316;
}

.reasonCard__ttl {
  font-size: 4rem;
  font-weight: 700;
  color: #0F2347;
  margin-bottom: 30px;
}

.reasonCard__txt {
  font-size: 2.2rem;
  line-height: 2;
  color: #475467;
}

/* =========================================
  MARKET
========================================= */
.market {
  padding: 130px 40px;
  background: linear-gradient(180deg, #F7FAFF 0%, #FDFEFF 100%);
}

.market__inner {
  max-width: 1500px;
  margin: 0 auto;
}

.marketCardWrap {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 28px;
}

.marketCard {
  background: #fff;
  border-radius: 26px;
  padding: 30px 24px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(15, 90, 229, 0.06);
  border: 1px solid rgba(15, 90, 229, 0.06);
  transition: 0.3s;
}

.marketCard:hover {
  transform: translateY(-8px);
}

.marketCard__line {
  width: 100%;
  height: 8px;
  position: absolute;
  top: 0;
  left: 0;
}

.marketCard__line.blue {
  background: #0F5AE5;
}

.marketCard__line.sky {
  background: #2EA7FF;
}

.marketCard__line.green {
  background: #14B8A6;
}

.marketCard__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}

.marketCard__area {
  font-size: 2.4rem;
  font-weight: 700;
  color: #0F2347;
}

.marketCard__arrow {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.8rem;
  font-weight: 700;
}

.marketCard__arrow.green {
  background: #ECFFF1;
  color: #12A150;
}

.marketCard__arrow.orange {
  background: #FFF3E9;
  color: #F97316;
}

.marketCard__price {
  font-size: 3.4rem;
  font-weight: 700;
  line-height: 1.4;
  color: #0F5AE5;
  margin-bottom: 24px;
}

.marketCard__info {
  font-size: 1.6rem;
  line-height: 1.6;
  color: #667085;
}

.market__note {
  text-align: center;
  margin-top: 60px;
  font-size: 2rem;
  color: #667085;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .reason {
    padding: 80px 20px;
  }
  .market {
    padding: 80px 20px;
  }
  .sectionHead {
    margin-bottom: 50px;
  }
  .sectionHead__ttl {
    font-size: 3.8rem;
  }
  .sectionHead__txt {
    font-size: 1.7rem;
  }
  .reasonCardWrap {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .reasonCard {
    padding: 40px 25px;
  }
  .reasonCard__icon {
    width: 100px;
    height: 100px;
    font-size: 4rem;
  }
  .reasonCard__ttl {
    font-size: 2.8rem;
  }
  .reasonCard__txt {
    font-size: 1.7rem;
  }
  .marketCardWrap {
    grid-template-columns: 1fr;
  }
  .marketCard {
    padding: 26px 22px;
  }
  .marketCard__area {
    font-size: 2rem;
  }
  .marketCard__price {
    font-size: 3rem;
  }
  .marketCard__info {
    font-size: 1.4rem;
  }
  .market__note {
    font-size: 1.5rem;
    line-height: 1.8;
  }
}
/* =========================================
  COMMON
========================================= */
.sectionTitle {
  text-align: center;
  margin-bottom: 70px;
}

.sectionTitle__main {
  font-size: 5.4rem;
  font-weight: 700;
  color: #0F2347;
  line-height: 1.4;
}

.sectionTitle__line {
  width: 85px;
  height: 4px;
  border-radius: 10px;
  background: #0F5AE5;
  display: block;
  margin: 24px auto 0;
}

/* =========================================
  PURCHASE CASE
========================================= */
.purchaseCase {
  padding: 120px 40px;
  background: linear-gradient(180deg, #F8FBFF 0%, #FFFFFF 100%);
}

.purchaseCase__inner {
  max-width: 1400px;
  margin: 0 auto;
}

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

.purchaseCaseCard {
  background: #fff;
  border-radius: 28px;
  padding: 45px 40px;
  display: flex;
  align-items: center;
  gap: 28px;
  box-shadow: 0 15px 50px rgba(15, 90, 229, 0.06);
  border: 1px solid rgba(15, 90, 229, 0.06);
  transition: 0.3s;
}

.purchaseCaseCard:hover {
  transform: translateY(-8px);
  box-shadow: 0 30px 60px rgba(15, 90, 229, 0.12);
}

.purchaseCaseCard__icon {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #EEF4FF;
  color: #0F5AE5;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 4.5rem;
  flex-shrink: 0;
}

.purchaseCaseCard__title {
  font-size: 3rem;
  font-weight: 700;
  color: #0F2347;
  margin-bottom: 18px;
}

.purchaseCaseCard__price {
  font-size: 5rem;
  font-weight: 700;
  color: #0F5AE5;
  line-height: 1.3;
  margin-bottom: 18px;
}

.purchaseCaseCard__text {
  font-size: 2rem;
  color: #667085;
}

/* BTN */
.purchaseCase__btn {
  margin-top: 65px;
  text-align: center;
}

.purchaseCase__btn a {
  width: 360px;
  height: 84px;
  margin: 0 auto;
  border: 2px solid #0F5AE5;
  border-radius: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  text-decoration: none;
  color: #0F5AE5;
  font-size: 2.4rem;
  font-weight: 700;
  transition: 0.3s;
}

.purchaseCase__btn a:hover {
  background: #0F5AE5;
  color: #fff;
}

.purchaseCase__btn small {
  font-size: 3rem;
}

/* =========================================
  DANGER AREA
========================================= */
.dangerArea {
  padding: 120px 40px;
  background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%);
}

.dangerArea__inner {
  max-width: 1400px;
  margin: 0 auto;
}

/* CARD */
.dangerCard {
  background: #fff;
  border-radius: 28px;
  padding: 38px 40px;
  display: flex;
  align-items: flex-start;
  gap: 28px;
  box-shadow: 0 15px 50px rgba(15, 90, 229, 0.05);
}

.dangerCard__icon {
  width: 95px;
  height: 95px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 4.5rem;
  flex-shrink: 0;
}

.dangerCard__title {
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 18px;
  line-height: 1.5;
}

.dangerCard__text {
  font-size: 2rem;
  line-height: 2;
  color: #475467;
}

/* RED */
.dangerCard--red {
  border: 2px solid #FF5A5A;
  margin-bottom: 35px;
}

.dangerCard--red .dangerCard__icon {
  background: #FFF1F1;
  color: #FF3B3B;
}

.dangerCard--red .dangerCard__title {
  color: #FF3B3B;
}

/* ORANGE */
.dangerCard--orange {
  border: 2px solid #FFB156;
}

.dangerCard--orange .dangerCard__icon {
  background: #FFF5E9;
  color: #F97316;
}

.dangerCard--orange .dangerCard__title {
  color: #F97316;
}

/* YELLOW */
.dangerCard--yellow {
  border: 2px solid #F4C443;
}

.dangerCard--yellow .dangerCard__icon {
  background: #FFF8E5;
  color: #D99800;
}

.dangerCard--yellow .dangerCard__title {
  color: #D99800;
}

/* GRID */
.dangerGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 35px;
}

/* MESSAGE */
.dangerArea__message {
  text-align: center;
  margin-top: 60px;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.8;
  color: #FF3B3B;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .purchaseCase {
    padding: 80px 20px;
  }
  .dangerArea {
    padding: 80px 20px;
  }
  .sectionTitle {
    margin-bottom: 50px;
  }
  .sectionTitle__main {
    font-size: 3.8rem;
  }
  .purchaseCase__list {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .purchaseCaseCard {
    padding: 30px 25px;
    flex-direction: column;
    text-align: center;
  }
  .purchaseCaseCard__icon {
    width: 85px;
    height: 85px;
    font-size: 4rem;
  }
  .purchaseCaseCard__title {
    font-size: 2.4rem;
  }
  .purchaseCaseCard__price {
    font-size: 4rem;
  }
  .purchaseCaseCard__text {
    font-size: 1.7rem;
  }
  .purchaseCase__btn {
    margin-top: 45px;
  }
  .purchaseCase__btn a {
    width: 100%;
    height: 72px;
    font-size: 2rem;
  }
  .dangerCard {
    padding: 30px 25px;
    flex-direction: column;
  }
  .dangerCard__icon {
    width: 85px;
    height: 85px;
    font-size: 4rem;
  }
  .dangerCard__title {
    font-size: 2.4rem;
  }
  .dangerCard__text {
    font-size: 1.7rem;
  }
  .dangerGrid {
    grid-template-columns: 1fr;
  }
  .dangerArea__message {
    font-size: 2.2rem;
  }
}
/* =========================================
  FLOW
========================================= */
.flow {
  padding: 120px 40px 160px;
  background: linear-gradient(180deg, #F8FBFF 0%, #EEF5FF 100%);
  position: relative;
  overflow: hidden;
}

.flow::after {
  content: "";
  width: 120%;
  height: 220px;
  background: #DDE9FF;
  opacity: 0.45;
  border-radius: 50%;
  position: absolute;
  left: -10%;
  bottom: -160px;
}

.flow__inner {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* =========================================
  TITLE
========================================= */
.sectionTitle {
  text-align: center;
  margin-bottom: 70px;
}

.sectionTitle__main {
  font-size: 5.8rem;
  font-weight: 700;
  color: #0F2347;
  line-height: 1.4;
}

.sectionTitle__line {
  width: 90px;
  height: 4px;
  background: #0F5AE5;
  border-radius: 10px;
  display: block;
  margin: 26px auto 0;
}

/* =========================================
  FLOW LIST
========================================= */
.flowList {
  position: relative;
}

.flowItem {
  background: #fff;
  border-radius: 28px;
  padding: 42px 50px;
  display: flex;
  align-items: center;
  gap: 40px;
  box-shadow: 0 20px 50px rgba(15, 90, 229, 0.06);
  border: 1px solid rgba(15, 90, 229, 0.05);
  transition: 0.3s;
}

.flowItem:hover {
  transform: translateY(-8px);
  box-shadow: 0 30px 60px rgba(15, 90, 229, 0.12);
}

/* LEFT */
.flowItem__left {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-shrink: 0;
}

.flowItem__number {
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0F5AE5, #004DFF);
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 4rem;
  font-weight: 700;
  box-shadow: 0 15px 35px rgba(15, 90, 229, 0.25);
}

.flowItem__icon {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: #EEF4FF;
  color: #0F5AE5;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 5rem;
}

/* CONTENT */
.flowItem__content {
  flex: 1;
}

.flowItem__step {
  display: block;
  font-size: 2.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #0F5AE5;
  margin-bottom: 18px;
}

.flowItem__title {
  font-size: 5rem;
  font-weight: 700;
  color: #0F2347;
  line-height: 1.4;
  margin-bottom: 18px;
}

.flowItem__text {
  font-size: 2.2rem;
  line-height: 2;
  color: #475467;
}

/* =========================================
  ARROW
========================================= */
.flowArrow {
  width: 58px;
  height: 58px;
  margin: 14px auto;
  border-radius: 50%;
  background: linear-gradient(135deg, #0F5AE5, #004DFF);
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 3rem;
  font-weight: 700;
  box-shadow: 0 12px 30px rgba(15, 90, 229, 0.25);
  position: relative;
}

.flowArrow::before {
  content: "";
  width: 2px;
  height: 35px;
  background: #C7D7FF;
  position: absolute;
  top: -35px;
  left: 50%;
  transform: translateX(-50%);
}

.flowArrow::after {
  content: "";
  width: 2px;
  height: 35px;
  background: #C7D7FF;
  position: absolute;
  bottom: -35px;
  left: 50%;
  transform: translateX(-50%);
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .flow {
    padding: 80px 20px 120px;
  }
  .sectionTitle {
    margin-bottom: 50px;
  }
  .sectionTitle__main {
    font-size: 4rem;
  }
  .flowItem {
    padding: 30px 25px;
    flex-direction: column;
    align-items: flex-start;
    gap: 25px;
  }
  .flowItem__left {
    width: 100%;
  }
  .flowItem__number {
    width: 70px;
    height: 70px;
    font-size: 3rem;
  }
  .flowItem__icon {
    width: 90px;
    height: 90px;
    font-size: 4rem;
  }
  .flowItem__step {
    font-size: 2rem;
  }
  .flowItem__title {
    font-size: 3.4rem;
  }
  .flowItem__text {
    font-size: 1.7rem;
    line-height: 1.9;
  }
  .flowArrow {
    width: 48px;
    height: 48px;
    font-size: 2.4rem;
  }
}
/* =========================================
  COMPARE
========================================= */
.compare {
  padding: 120px 40px;
  background: linear-gradient(180deg, #F8FBFF 0%, #EEF4FF 100%);
}

.compare__inner {
  max-width: 1500px;
  margin: 0 auto;
}

/* =========================================
  TITLE
========================================= */
.sectionTitle {
  text-align: center;
  margin-bottom: 70px;
}

.sectionTitle__main {
  font-size: 5.8rem;
  font-weight: 700;
  color: #0F2347;
  line-height: 1.4;
}

.sectionTitle__line {
  width: 90px;
  height: 4px;
  background: #0F5AE5;
  border-radius: 10px;
  display: block;
  margin: 24px auto 0;
}

/* =========================================
  TABLE
========================================= */
.compareTable {
  background: #fff;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(15, 90, 229, 0.08);
  border: 1px solid rgba(15, 90, 229, 0.05);
}

/* HEAD */
.compareTable__head {
  display: grid;
  grid-template-columns: 1fr 1.25fr 1.25fr;
}

.compareTable__headItem {
  height: 110px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  background: linear-gradient(135deg, #003DCC, #0F5AE5);
  color: #fff;
  font-size: 3rem;
  font-weight: 700;
  border-right: 1px solid rgba(255, 255, 255, 0.25);
}

.compareTable__headItem--sky {
  background: linear-gradient(135deg, #2F80ED, #4DA3FF);
}

.compareTable__headItem span {
  font-size: 3.2rem;
}

/* ROW */
.compareTable__row {
  display: grid;
  grid-template-columns: 1fr 1.25fr 1.25fr;
}

.compareTable__row:not(:last-child) {
  border-bottom: 1px solid #DDE5F2;
}

/* LABEL */
.compareTable__label {
  min-height: 120px;
  padding: 35px 40px;
  display: flex;
  align-items: center;
  gap: 25px;
  font-size: 3rem;
  font-weight: 700;
  color: #0F2347;
  border-right: 1px solid #DDE5F2;
  background: #fff;
}

.compareTable__label span {
  font-size: 4rem;
  color: #0F5AE5;
}

/* VALUE */
.compareTable__value {
  min-height: 120px;
  padding: 35px 40px;
  display: flex;
  align-items: center;
  border-right: 1px solid #DDE5F2;
  background: #fff;
}

.compareTable__value--active {
  background: #F6F9FF;
}

/* ACTIVE BADGE */
.compareBadge {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  padding: 18px 30px;
  border-radius: 999px;
  background: #EAF1FF;
  color: #0F5AE5;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.4;
}

.compareBadge span {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 2rem;
}

/* NORMAL TEXT */
.compareText {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 2.8rem;
  color: #344054;
  line-height: 1.7;
}

.compareText span {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #F2F4F7;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 2rem;
  color: #667085;
}

/* =========================================
  MESSAGE
========================================= */
.compareMessage {
  margin-top: 45px;
  background: #fff;
  border-radius: 24px;
  padding: 38px 45px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  box-shadow: 0 15px 40px rgba(15, 90, 229, 0.05);
}

.compareMessage__icon {
  font-size: 3.8rem;
}

.compareMessage p {
  font-size: 2.6rem;
  line-height: 1.8;
  color: #344054;
}

.compareMessage strong {
  color: #0F5AE5;
  font-weight: 700;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .compare {
    padding: 80px 20px;
  }
  .sectionTitle {
    margin-bottom: 50px;
  }
  .sectionTitle__main {
    font-size: 4rem;
  }
  .compareTable {
    overflow-x: auto;
  }
  .compareTable__head {
    min-width: 1000px;
  }
  .compareTable__row {
    min-width: 1000px;
  }
  .compareTable__headItem {
    height: 80px;
    font-size: 2rem;
  }
  .compareTable__label {
    min-height: 90px;
    padding: 20px;
    font-size: 2rem;
  }
  .compareTable__label span {
    font-size: 2.8rem;
  }
  .compareTable__value {
    min-height: 90px;
    padding: 20px;
  }
  .compareBadge {
    padding: 12px 20px;
    font-size: 1.9rem;
  }
  .compareText {
    font-size: 1.8rem;
  }
  .compareMessage {
    padding: 25px 20px;
    align-items: flex-start;
  }
  .compareMessage p {
    font-size: 1.7rem;
  }
}
/* =========================================
  SUPPORT AREA
========================================= */
.supportArea {
  padding: 120px 40px;
  background: linear-gradient(180deg, #F8FBFF 0%, #EEF5FF 100%);
}

.supportArea__inner {
  max-width: 1500px;
  margin: 0 auto;
}

/* =========================================
  TITLE
========================================= */
.sectionTitle {
  text-align: center;
  margin-bottom: 70px;
}

.sectionTitle__main {
  font-size: 5.8rem;
  font-weight: 700;
  color: #0F2347;
  line-height: 1.4;
}

.sectionTitle__line {
  width: 90px;
  height: 4px;
  background: #0F5AE5;
  border-radius: 10px;
  display: block;
  margin: 24px auto 0;
}

.sectionTitle__text {
  margin-top: 35px;
  font-size: 2.4rem;
  line-height: 2;
  color: #475467;
}

/* =========================================
  AREA LIST
========================================= */
.supportAreaList {
  display: flex;
  flex-direction: column;
  gap: 35px;
}

/* CARD */
.supportAreaCard {
  background: #fff;
  border-radius: 28px;
  padding: 38px 45px;
  box-shadow: 0 15px 50px rgba(15, 90, 229, 0.06);
  border: 1px solid rgba(15, 90, 229, 0.05);
  transition: 0.3s;
}

.supportAreaCard:hover {
  transform: translateY(-6px);
  box-shadow: 0 25px 60px rgba(15, 90, 229, 0.12);
}

/* HEAD */
.supportAreaCard__head {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-bottom: 28px;
}

.supportAreaCard__icon {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  background: #EEF4FF;
  color: #0F5AE5;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 3.8rem;
  flex-shrink: 0;
}

.supportAreaCard__title {
  font-size: 4rem;
  font-weight: 700;
  color: #0F5AE5;
  line-height: 1.4;
}

/* TAGS */
.supportAreaCard__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}

.supportAreaCard__tags span {
  min-height: 58px;
  padding: 0 28px;
  border-radius: 14px;
  border: 2px solid #D6E3FF;
  background: #fff;
  color: #0F5AE5;
  font-size: 2rem;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: 0.3s;
}

.supportAreaCard__tags span:hover {
  background: #0F5AE5;
  border-color: #0F5AE5;
  color: #fff;
}

/* =========================================
  MESSAGE
========================================= */
.supportAreaMessage {
  margin-top: 45px;
  background: #fff;
  border-radius: 22px;
  padding: 32px 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  box-shadow: 0 12px 40px rgba(15, 90, 229, 0.05);
}

.supportAreaMessage__icon {
  font-size: 3.8rem;
}

.supportAreaMessage p {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.8;
  color: #344054;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .supportArea {
    padding: 80px 20px;
  }
  .sectionTitle {
    margin-bottom: 50px;
  }
  .sectionTitle__main {
    font-size: 4rem;
  }
  .sectionTitle__text {
    font-size: 1.7rem;
    line-height: 1.9;
  }
  .supportAreaList {
    gap: 22px;
  }
  .supportAreaCard {
    padding: 28px 22px;
  }
  .supportAreaCard__head {
    gap: 16px;
    margin-bottom: 22px;
  }
  .supportAreaCard__icon {
    width: 60px;
    height: 60px;
    font-size: 2.8rem;
  }
  .supportAreaCard__title {
    font-size: 2.8rem;
  }
  .supportAreaCard__tags {
    gap: 12px;
  }
  .supportAreaCard__tags span {
    min-height: 46px;
    padding: 0 18px;
    font-size: 1.5rem;
    border-radius: 10px;
  }
  .supportAreaMessage {
    padding: 24px 18px;
    align-items: flex-start;
  }
  .supportAreaMessage p {
    font-size: 1.6rem;
    line-height: 1.8;
  }
  .supportAreaMessage__icon {
    font-size: 2.8rem;
  }
}
/* =========================================
  VOICE
========================================= */
.voice {
  padding: 120px 40px;
  background: linear-gradient(180deg, #F8FBFF 0%, #EEF4FF 100%);
  overflow: hidden;
}

.voice__inner {
  max-width: 1500px;
  margin: 0 auto;
}

/* =========================================
  TITLE
========================================= */
.sectionTitle {
  text-align: center;
  margin-bottom: 80px;
}

.sectionTitle__main {
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.4;
  color: #0F2347;
}

.sectionTitle__line {
  width: 90px;
  height: 4px;
  border-radius: 999px;
  background: #0F5AE5;
  display: block;
  margin: 24px auto 0;
}

.sectionTitle__text {
  margin-top: 40px;
  font-size: 2.4rem;
  line-height: 2;
  color: #475467;
}

/* =========================================
  LIST
========================================= */
.voiceList {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

/* =========================================
  CARD
========================================= */
.voiceCard {
  position: relative;
  background: #fff;
  border-radius: 30px;
  padding: 42px 38px 110px;
  box-shadow: 0 20px 60px rgba(15, 90, 229, 0.08);
  border: 1px solid rgba(15, 90, 229, 0.05);
  overflow: hidden;
  transition: 0.35s;
}

.voiceCard:hover {
  transform: translateY(-10px);
  box-shadow: 0 35px 80px rgba(15, 90, 229, 0.14);
}

/* HEAD */
.voiceCard__head {
  display: flex;
  align-items: center;
  gap: 28px;
}

.voiceCard__icon {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0F5AE5, #2F80ED);
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 5rem;
  font-weight: 700;
  flex-shrink: 0;
  box-shadow: 0 15px 30px rgba(15, 90, 229, 0.2);
}

.voiceCard__name {
  font-size: 4rem;
  font-weight: 700;
  color: #0F2347;
  line-height: 1.4;
}

.voiceCard__area {
  margin-top: 8px;
  font-size: 2.4rem;
  color: #667085;
}

/* STAR */
.voiceCard__star {
  margin-top: 32px;
  font-size: 3.2rem;
  letter-spacing: 6px;
  color: #F4B400;
}

/* LINE */
.voiceCard__line {
  width: 100%;
  height: 2px;
  background: #D8E3F8;
  margin: 32px 0;
}

/* TEXT */
.voiceCard__text {
  font-size: 2.5rem;
  line-height: 2;
  color: #344054;
}

/* QUOTE */
.voiceCard__quote {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  font-size: 11rem;
  font-weight: 700;
  color: #CFE0FF;
  line-height: 1;
}

/* =========================================
  MESSAGE
========================================= */
.voiceMessage {
  margin-top: 55px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
}

.voiceMessage__icon {
  font-size: 4rem;
  color: #0F5AE5;
}

.voiceMessage p {
  font-size: 2.3rem;
  line-height: 1.8;
  color: #344054;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .voice {
    padding: 80px 20px;
  }
  .sectionTitle {
    margin-bottom: 50px;
  }
  .sectionTitle__main {
    font-size: 4rem;
  }
  .sectionTitle__text {
    margin-top: 25px;
    font-size: 1.7rem;
    line-height: 1.9;
  }
  .voiceList {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .voiceCard {
    padding: 28px 24px 80px;
    border-radius: 22px;
  }
  .voiceCard__head {
    gap: 18px;
  }
  .voiceCard__icon {
    width: 72px;
    height: 72px;
    font-size: 3.6rem;
  }
  .voiceCard__name {
    font-size: 2.8rem;
  }
  .voiceCard__area {
    font-size: 1.7rem;
  }
  .voiceCard__star {
    margin-top: 22px;
    font-size: 2.2rem;
    letter-spacing: 3px;
  }
  .voiceCard__line {
    margin: 22px 0;
  }
  .voiceCard__text {
    font-size: 1.7rem;
    line-height: 2;
  }
  .voiceCard__quote {
    font-size: 7rem;
    bottom: 10px;
  }
  .voiceMessage {
    margin-top: 40px;
    align-items: flex-start;
  }
  .voiceMessage p {
    font-size: 1.6rem;
    line-height: 1.8;
  }
  .voiceMessage__icon {
    font-size: 2.6rem;
  }
}
/* =========================================
  TIMING CHECK
========================================= */
.timingCheck {
  padding: 120px 40px;
  background: linear-gradient(180deg, #F8FBFF 0%, #EEF4FF 100%);
  overflow: hidden;
}

.timingCheck__inner {
  max-width: 1500px;
  margin: 0 auto;
}

/* =========================================
  TITLE
========================================= */
.sectionTitle {
  text-align: center;
  margin-bottom: 70px;
}

.sectionTitle__main {
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.4;
  color: #0F2347;
}

.sectionTitle__line {
  width: 90px;
  height: 4px;
  border-radius: 999px;
  background: #0F5AE5;
  display: block;
  margin: 24px auto 0;
}

.sectionTitle__text {
  margin-top: 40px;
  font-size: 2.5rem;
  line-height: 2;
  color: #475467;
}

/* =========================================
  BOX
========================================= */
.timingCheckBox {
  background: #fff;
  border-radius: 36px;
  padding: 80px 40px;
  text-align: center;
  box-shadow: 0 25px 70px rgba(15, 90, 229, 0.08);
  border: 1px solid rgba(15, 90, 229, 0.05);
}

/* ICON */
.timingCheckBox__icon {
  width: 190px;
  height: 190px;
  margin: 0 auto;
  border-radius: 50%;
  background: #EEF4FF;
  color: #0F5AE5;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 9rem;
  box-shadow: inset 0 0 0 1px rgba(15, 90, 229, 0.05);
}

/* TITLE */
.timingCheckBox__title {
  margin-top: 45px;
  font-size: 5.5rem;
  font-weight: 700;
  line-height: 1.5;
  color: #0F2347;
}

/* TEXT */
.timingCheckBox__text {
  margin-top: 30px;
  font-size: 2.8rem;
  line-height: 2;
  color: #667085;
}

/* BUTTON */
.timingCheckBtn {
  width: 520px;
  max-width: 100%;
  min-height: 110px;
  margin: 55px auto 0;
  border-radius: 18px;
  background: linear-gradient(135deg, #003DCC 0%, #0F5AE5 100%);
  color: #fff;
  font-size: 3rem;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  text-decoration: none;
  box-shadow: 0 15px 35px rgba(15, 90, 229, 0.25);
  transition: 0.35s;
}

.timingCheckBtn:hover {
  transform: translateY(-6px);
  box-shadow: 0 25px 50px rgba(15, 90, 229, 0.3);
}

.timingCheckBtn small {
  font-size: 4rem;
  line-height: 1;
}

/* =========================================
  MESSAGE
========================================= */
.timingCheckMessage {
  margin-top: 45px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
}

.timingCheckMessage__icon {
  font-size: 4rem;
  color: #0F5AE5;
}

.timingCheckMessage p {
  font-size: 2.4rem;
  line-height: 1.8;
  color: #475467;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .timingCheck {
    padding: 80px 20px;
  }
  .sectionTitle {
    margin-bottom: 50px;
  }
  .sectionTitle__main {
    font-size: 4rem;
  }
  .sectionTitle__text {
    margin-top: 24px;
    font-size: 1.7rem;
    line-height: 1.9;
  }
  .timingCheckBox {
    border-radius: 24px;
    padding: 50px 24px;
  }
  .timingCheckBox__icon {
    width: 120px;
    height: 120px;
    font-size: 5.5rem;
  }
  .timingCheckBox__title {
    margin-top: 28px;
    font-size: 3.2rem;
  }
  .timingCheckBox__text {
    margin-top: 20px;
    font-size: 1.8rem;
    line-height: 1.9;
  }
  .timingCheckBtn {
    min-height: 72px;
    margin-top: 35px;
    border-radius: 14px;
    font-size: 2rem;
    gap: 14px;
  }
  .timingCheckBtn small {
    font-size: 2.6rem;
  }
  .timingCheckMessage {
    margin-top: 35px;
    align-items: flex-start;
  }
  .timingCheckMessage__icon {
    font-size: 2.6rem;
  }
  .timingCheckMessage p {
    font-size: 1.6rem;
    line-height: 1.8;
  }
}
/* =========================================
  SUBSIDY
========================================= */
.subsidy {
  padding: 120px 40px;
  background: linear-gradient(180deg, #F7FCF8 0%, #EDF8F1 100%);
  overflow: hidden;
}

.subsidy__inner {
  max-width: 1500px;
  margin: 0 auto;
}

/* =========================================
  TITLE
========================================= */
.sectionTitle {
  text-align: center;
  margin-bottom: 70px;
}

.sectionTitle__main {
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.4;
  color: #0C4B28;
}

.sectionTitle__line {
  width: 90px;
  height: 4px;
  border-radius: 999px;
  background: #16A34A;
  display: block;
  margin: 24px auto 0;
}

.sectionTitle__text {
  margin-top: 40px;
  font-size: 2.4rem;
  line-height: 2;
  color: #475467;
}

/* =========================================
  LIST
========================================= */
.subsidyList {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 34px;
}

/* =========================================
  CARD
========================================= */
.subsidyCard {
  background: #fff;
  border-radius: 28px;
  padding: 40px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.04);
  transition: 0.35s;
}

.subsidyCard:hover {
  transform: translateY(-8px);
  box-shadow: 0 35px 80px rgba(0, 0, 0, 0.08);
}

/* HEAD */
.subsidyCard__head {
  display: flex;
  gap: 28px;
}

.subsidyCard__icon {
  width: 110px;
  height: 110px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 5rem;
  font-weight: 700;
  flex-shrink: 0;
}

.subsidyCard__title {
  font-size: 4rem;
  font-weight: 700;
  line-height: 1.5;
  color: #111827;
}

.subsidyCard__text {
  margin-top: 20px;
  font-size: 2.3rem;
  line-height: 2;
  color: #475467;
}

/* BOTTOM */
.subsidyCard__bottom {
  min-height: 95px;
  margin-top: 35px;
  border-radius: 16px;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.subsidyCard__label {
  position: relative;
  font-size: 2.3rem;
  font-weight: 700;
  white-space: nowrap;
  padding-right: 24px;
}

.subsidyCard__label::after {
  content: "";
  width: 2px;
  height: 36px;
  background: currentColor;
  opacity: 0.2;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.subsidyCard__bottom p {
  font-size: 2.3rem;
  line-height: 1.8;
  color: #344054;
}

/* =========================================
  COLOR
========================================= */
.subsidyCard--green .subsidyCard__icon {
  background: #EAF8EE;
  color: #16A34A;
}

.subsidyCard--green .subsidyCard__bottom {
  background: #F1FAF3;
}

.subsidyCard--green .subsidyCard__label {
  color: #16A34A;
}

.subsidyCard--blue .subsidyCard__icon {
  background: #EEF4FF;
  color: #2563EB;
}

.subsidyCard--blue .subsidyCard__bottom {
  background: #F2F6FF;
}

.subsidyCard--blue .subsidyCard__label {
  color: #2563EB;
}

.subsidyCard--orange .subsidyCard__icon {
  background: #FFF3EA;
  color: #F97316;
}

.subsidyCard--orange .subsidyCard__bottom {
  background: #FFF7F1;
}

.subsidyCard--orange .subsidyCard__label {
  color: #F97316;
}

.subsidyCard--purple .subsidyCard__icon {
  background: #F5EEFF;
  color: #9333EA;
}

.subsidyCard--purple .subsidyCard__bottom {
  background: #FAF5FF;
}

.subsidyCard--purple .subsidyCard__label {
  color: #9333EA;
}

/* =========================================
  SUPPORT
========================================= */
.subsidySupport {
  margin-top: 40px;
  background: #fff;
  border: 2px solid rgba(22, 163, 74, 0.25);
  border-radius: 24px;
  padding: 38px 42px;
  display: flex;
  gap: 24px;
  align-items: flex-start;
}

.subsidySupport__icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: #EAF8EE;
  color: #16A34A;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 3rem;
  font-weight: 700;
  flex-shrink: 0;
}

.subsidySupport h3 {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.6;
  color: #111827;
}

.subsidySupport p {
  margin-top: 14px;
  font-size: 2.2rem;
  line-height: 2;
  color: #475467;
}

/* =========================================
  BUTTON
========================================= */
.subsidyBtnWrap {
  margin-top: 50px;
  text-align: center;
}

.subsidyBtn {
  width: 420px;
  max-width: 100%;
  min-height: 95px;
  margin: 0 auto;
  border-radius: 18px;
  border: 2px solid #16A34A;
  color: #16A34A;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  text-decoration: none;
  font-size: 2.8rem;
  font-weight: 700;
  transition: 0.35s;
}

.subsidyBtn:hover {
  background: #16A34A;
  color: #fff;
  transform: translateY(-5px);
}

.subsidyBtn small {
  font-size: 3.2rem;
}

/* =========================================
  TAX BENEFIT
========================================= */
.taxBenefit {
  padding: 120px 40px;
  background: linear-gradient(135deg, #EFF6FF 0%, #F8FAFF 55%, #ECFEFF 100%);
}

.taxBenefit__inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);
  gap: 54px;
  align-items: center;
}

.taxBenefit__label {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 20px;
  border-radius: 999px;
  background: #DBEAFE;
  color: #0F5AE5;
  font-size: 1.8rem;
  font-weight: 700;
}

.taxBenefit__title {
  margin-top: 28px;
  font-size: 5.2rem;
  line-height: 1.45;
  color: #0F2347;
}

.taxBenefit__title strong {
  color: #0F5AE5;
}

.taxBenefit__text {
  margin-top: 30px;
  font-size: 2.1rem;
  line-height: 2;
  color: #475467;
}

.taxBenefit__note {
  margin-top: 28px;
  padding: 18px 22px;
  border-radius: 14px;
  background: #fff;
  color: #334155;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 1.7rem;
  line-height: 1.8;
  box-shadow: 0 12px 30px rgba(15, 90, 229, 0.06);
}

.taxBenefit__note .fa-solid {
  margin-top: 0.35em;
  color: #0F5AE5;
  flex-shrink: 0;
}

.taxBenefit__panel {
  padding: 42px 38px;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(15, 90, 229, 0.12);
  border: 1px solid rgba(15, 90, 229, 0.08);
}

.taxBenefit__amount {
  min-height: 210px;
  border-radius: 24px;
  background: linear-gradient(135deg, #0F5AE5, #2EA7FF);
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.taxBenefit__amount span {
  font-size: 2rem;
}

.taxBenefit__amount strong {
  margin-top: 4px;
  font-size: 8rem;
  line-height: 1;
}

.taxBenefit__amount small {
  margin-top: 10px;
  font-size: 2.8rem;
}

.taxBenefit__list {
  margin-top: 30px;
}

.taxBenefit__list li {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 2rem;
  line-height: 1.7;
  color: #0F2347;
}

.taxBenefit__list li + li {
  margin-top: 16px;
}

.taxBenefit__list .fa-solid {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #EEF4FF;
  color: #0F5AE5;
  flex-shrink: 0;
}

.taxBenefit__btn {
  min-height: 72px;
  margin-top: 34px;
  padding: 0 26px;
  border-radius: 14px;
  background: #12A150;
  color: #fff;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  font-size: 2.2rem;
  font-weight: 700;
  box-shadow: 0 16px 34px rgba(18, 161, 80, 0.24);
  transition: 0.3s;
}

.taxBenefit__btn:hover {
  transform: translateY(-4px);
}

@media screen and (max-width: 768px) {
  .taxBenefit {
    padding: 80px 20px;
  }
  .taxBenefit__inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .taxBenefit__label {
    font-size: 1.5rem;
  }
  .taxBenefit__title {
    font-size: 3.4rem;
  }
  .taxBenefit__text {
    font-size: 1.7rem;
  }
  .taxBenefit__note {
    font-size: 1.5rem;
  }
  .taxBenefit__panel {
    padding: 28px 22px;
    border-radius: 20px;
  }
  .taxBenefit__amount {
    min-height: 170px;
  }
  .taxBenefit__amount strong {
    font-size: 6rem;
  }
  .taxBenefit__amount small {
    font-size: 2.2rem;
  }
  .taxBenefit__list li {
    font-size: 1.7rem;
  }
  .taxBenefit__btn {
    min-height: 64px;
    font-size: 1.8rem;
  }
}
/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .subsidy {
    padding: 80px 20px;
  }
  .sectionTitle {
    margin-bottom: 50px;
  }
  .sectionTitle__main {
    font-size: 4rem;
  }
  .sectionTitle__text {
    margin-top: 24px;
    font-size: 1.7rem;
    line-height: 1.9;
  }
  .subsidyList {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .subsidyCard {
    padding: 28px 24px;
    border-radius: 22px;
  }
  .subsidyCard__head {
    gap: 18px;
  }
  .subsidyCard__icon {
    width: 72px;
    height: 72px;
    font-size: 3.4rem;
  }
  .subsidyCard__title {
    font-size: 2.8rem;
  }
  .subsidyCard__text {
    margin-top: 14px;
    font-size: 1.7rem;
    line-height: 1.9;
  }
  .subsidyCard__bottom {
    min-height: auto;
    margin-top: 24px;
    padding: 18px;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .subsidyCard__label {
    padding-right: 0;
    font-size: 1.7rem;
  }
  .subsidyCard__label::after {
    display: none;
  }
  .subsidyCard__bottom p {
    font-size: 1.6rem;
  }
  .subsidySupport {
    margin-top: 28px;
    padding: 24px 20px;
  }
  .subsidySupport__icon {
    width: 52px;
    height: 52px;
    font-size: 2rem;
  }
  .subsidySupport h3 {
    font-size: 2rem;
  }
  .subsidySupport p {
    margin-top: 10px;
    font-size: 1.5rem;
    line-height: 1.9;
  }
  .subsidyBtn {
    min-height: 72px;
    border-radius: 14px;
    font-size: 2rem;
  }
  .subsidyBtn small {
    font-size: 2.4rem;
  }
}
/* =========================================
  LINE ASSESSMENT
========================================= */
.lineAssessment {
  padding: 120px 40px;
  background: linear-gradient(180deg, #F8FCF9 0%, #EEF8F1 100%);
  overflow: hidden;
}

.lineAssessment__inner {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}

/* =========================================
  LOGO
========================================= */
.lineAssessment__logo {
  width: 170px;
  height: 170px;
  margin: 0 auto;
  border: 10px solid #06C755;
  border-radius: 50%;
  background: #fff;
  color: #06C755;
  font-size: 5rem;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  box-shadow: 0 20px 40px rgba(6, 199, 85, 0.15);
}

.lineAssessment__logo::after {
  content: "";
  width: 38px;
  height: 38px;
  background: #fff;
  border-right: 10px solid #06C755;
  border-bottom: 10px solid #06C755;
  position: absolute;
  bottom: -12px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  border-radius: 0 0 10px 0;
}

/* =========================================
  TITLE
========================================= */
.lineAssessment__title {
  margin-top: 55px;
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.4;
  color: #1F2937;
}

/* =========================================
  TEXT
========================================= */
.lineAssessment__text {
  margin-top: 35px;
  font-size: 2.7rem;
  line-height: 2;
  color: #4B5563;
}

/* =========================================
  BOX
========================================= */
.lineAssessmentBox {
  margin-top: 70px;
  background: #fff;
  border-radius: 30px;
  padding: 50px 45px;
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.04);
  text-align: left;
}

.lineAssessmentBox__title {
  text-align: center;
  font-size: 4.8rem;
  font-weight: 700;
  color: #1F2937;
  line-height: 1.4;
}

/* =========================================
  LIST
========================================= */
.lineAssessmentList {
  margin-top: 45px;
}

.lineAssessmentList li {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 32px 0;
}

.lineAssessmentList li:not(:last-child) {
  border-bottom: 2px dashed #E5E7EB;
}

/* ICON */
.lineAssessmentList__icon {
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: #EAF9EF;
  color: #06C755;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 3.6rem;
  flex-shrink: 0;
}

/* TEXT */
.lineAssessmentList p {
  font-size: 2.8rem;
  line-height: 1.8;
  color: #4B5563;
}

.lineAssessmentList strong {
  font-weight: 700;
  color: #1F2937;
}

/* =========================================
  BUTTON
========================================= */
.lineAssessmentBtnWrap {
  margin-top: 60px;
}

.lineAssessmentBtn {
  width: 560px;
  max-width: 100%;
  min-height: 110px;
  margin: 0 auto;
  border-radius: 18px;
  background: linear-gradient(135deg, #00B940 0%, #06C755 100%);
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 22px;
  text-decoration: none;
  font-size: 3.2rem;
  font-weight: 700;
  box-shadow: 0 20px 40px rgba(6, 199, 85, 0.25);
  transition: 0.35s;
}

.lineAssessmentBtn:hover {
  transform: translateY(-6px);
  box-shadow: 0 30px 50px rgba(6, 199, 85, 0.3);
}

.lineAssessmentBtn__icon {
  font-size: 4rem;
}

.lineAssessmentBtn small {
  font-size: 4rem;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .lineAssessment {
    padding: 80px 20px;
  }
  .lineAssessment__logo {
    width: 110px;
    height: 110px;
    border-width: 6px;
    font-size: 3rem;
  }
  .lineAssessment__logo::after {
    width: 24px;
    height: 24px;
    border-right-width: 6px;
    border-bottom-width: 6px;
    bottom: -8px;
  }
  .lineAssessment__title {
    margin-top: 36px;
    font-size: 3.8rem;
  }
  .lineAssessment__text {
    margin-top: 22px;
    font-size: 1.8rem;
    line-height: 1.9;
  }
  .lineAssessmentBox {
    margin-top: 45px;
    padding: 30px 24px;
    border-radius: 22px;
  }
  .lineAssessmentBox__title {
    font-size: 3rem;
  }
  .lineAssessmentList {
    margin-top: 28px;
  }
  .lineAssessmentList li {
    gap: 16px;
    padding: 22px 0;
  }
  .lineAssessmentList__icon {
    width: 56px;
    height: 56px;
    font-size: 2.6rem;
  }
  .lineAssessmentList p {
    font-size: 1.8rem;
    line-height: 1.8;
  }
  .lineAssessmentBtnWrap {
    margin-top: 40px;
  }
  .lineAssessmentBtn {
    min-height: 78px;
    border-radius: 14px;
    gap: 12px;
    font-size: 2rem;
  }
  .lineAssessmentBtn__icon {
    font-size: 2.6rem;
  }
  .lineAssessmentBtn small {
    font-size: 2.8rem;
  }
}
/* =========================================
  FAQ
========================================= */
.faqSection {
  padding: 120px 40px;
  background: linear-gradient(180deg, #F8FAFF 0%, #EEF3FA 100%);
}

.faqSection__inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* =========================================
  HEAD
========================================= */
.faqHead {
  text-align: center;
}

.faqHead__title {
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.4;
  color: #0F172A;
}

.faqHead__line {
  width: 90px;
  height: 6px;
  border-radius: 999px;
  background: #2563EB;
  margin: 22px auto 0;
}

.faqHead__text {
  margin-top: 38px;
  font-size: 2.4rem;
  line-height: 2;
  color: #64748B;
}

/* =========================================
  LIST
========================================= */
.faqList {
  margin-top: 70px;
}

/* =========================================
  ITEM
========================================= */
.faqItem {
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 35px rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(15, 23, 42, 0.04);
}

.faqItem + .faqItem {
  margin-top: 22px;
}

/* =========================================
  QUESTION
========================================= */
.faqQuestion {
  width: 100%;
  min-height: 110px;
  padding: 0 40px;
  background: none;
  border: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  text-align: left;
}

.faqQuestion__left {
  display: flex;
  align-items: center;
  gap: 24px;
}

.faqQuestion__q {
  color: #2563EB;
  font-size: 3.8rem;
  font-weight: 700;
  flex-shrink: 0;
}

.faqQuestion__text {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.6;
  color: #0F172A;
}

/* ICON */
.faqQuestion__icon {
  width: 28px;
  height: 28px;
  color: #64748B;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  transition: 0.3s;
  flex-shrink: 0;
  margin-left: 20px;
}

.faqQuestion__icon::before {
  content: "\f078";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 2.4rem;
  line-height: 1;
}

.faqItem.active .faqQuestion__icon {
  transform: rotate(180deg);
}

/* =========================================
  ANSWER
========================================= */
.faqAnswer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.faqAnswer__inner {
  padding: 0 40px 35px 102px;
  font-size: 2.2rem;
  line-height: 2;
  color: #475569;
}

/* =========================================
  BUTTON
========================================= */
.faqBtnWrap {
  margin-top: 60px;
  text-align: center;
}

.faqBtn {
  min-width: 520px;
  min-height: 88px;
  padding: 0 40px;
  border: 2px solid #2563EB;
  border-radius: 16px;
  background: #fff;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  text-decoration: none;
  transition: 0.3s;
  box-shadow: 0 10px 25px rgba(37, 99, 235, 0.08);
}

.faqBtn:hover {
  background: #2563EB;
  transform: translateY(-4px);
}

.faqBtn__icon {
  font-size: 2.6rem;
}

.faqBtn__text {
  font-size: 2.2rem;
  font-weight: 700;
  color: #2563EB;
  transition: 0.3s;
}

.faqBtn__arrow {
  font-size: 2.6rem;
  color: #2563EB;
  transition: 0.3s;
}

.faqBtn:hover .faqBtn__text,
.faqBtn:hover .faqBtn__arrow {
  color: #fff;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .faqSection {
    padding: 80px 20px;
  }
  .faqHead__title {
    font-size: 3.8rem;
  }
  .faqHead__line {
    width: 60px;
    height: 4px;
    margin-top: 16px;
  }
  .faqHead__text {
    margin-top: 24px;
    font-size: 1.8rem;
    line-height: 1.8;
  }
  .faqList {
    margin-top: 45px;
  }
  .faqQuestion {
    min-height: 88px;
    padding: 0 22px;
  }
  .faqQuestion__left {
    gap: 14px;
  }
  .faqQuestion__q {
    font-size: 2.6rem;
  }
  .faqQuestion__text {
    font-size: 1.8rem;
    line-height: 1.7;
  }
  .faqQuestion__icon {
    width: 12px;
    height: 12px;
    border-width: 2px;
  }
  .faqAnswer__inner {
    padding: 0 22px 24px 58px;
    font-size: 1.7rem;
    line-height: 1.9;
  }
  .faqBtn {
    width: 100%;
    min-width: auto;
    min-height: 72px;
    padding: 0 20px;
    gap: 10px;
  }
  .faqBtn__text {
    font-size: 1.7rem;
  }
  .faqBtn__icon,
.faqBtn__arrow {
    font-size: 2rem;
  }
}
/* =========================================
  CTA FOOTER
========================================= */
.ctaFooter {
  background: #fff;
}

/* =========================================
  CTA
========================================= */
.ctaBox {
  max-width: 1400px;
  margin: 0 auto;
  padding: 90px 60px;
  border-radius: 28px;
  background: linear-gradient(135deg, #2563EB 0%, #0047FF 100%);
  box-shadow: 0 20px 60px rgba(37, 99, 235, 0.25);
  position: relative;
  overflow: hidden;
}

.ctaBox::before {
  content: "";
  position: absolute;
  width: 700px;
  height: 700px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 50%;
  top: -300px;
  left: -180px;
}

.ctaBox::after {
  content: "";
  position: absolute;
  width: 800px;
  height: 800px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 50%;
  bottom: -450px;
  right: -250px;
}

.ctaIcon {
  width: 90px;
  height: 90px;
  margin: 0 auto;
  border-radius: 50%;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 4rem;
  position: relative;
  z-index: 2;
}

.ctaTitle {
  margin-top: 28px;
  text-align: center;
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
  position: relative;
  z-index: 2;
}

.ctaText {
  margin-top: 18px;
  text-align: center;
  font-size: 2.4rem;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.9);
  position: relative;
  z-index: 2;
}

/* CONTENT */
.ctaContent {
  margin-top: 55px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
  position: relative;
  z-index: 2;
}

.ctaContent::after {
  content: "";
  position: absolute;
  width: 1px;
  height: 120px;
  background: rgba(255, 255, 255, 0.3);
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

/* BTN */
.ctaBtn {
  width: 420px;
  height: 120px;
  border-radius: 18px;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  transition: 0.3s;
}

.ctaBtn:hover {
  transform: translateY(-5px);
}

.ctaBtn__icon {
  font-size: 3rem;
}

.ctaBtn__text {
  font-size: 3rem;
  font-weight: 700;
  color: #2563EB;
}

.ctaBtn__arrow {
  font-size: 3rem;
  color: #2563EB;
}

/* TEL */
.ctaTel {
  color: #fff;
}

.ctaTel__label {
  font-size: 2rem;
  font-weight: 700;
}

.ctaTel__number {
  margin-top: 12px;
  display: inline-block;
  text-decoration: none;
  color: #fff;
  font-size: 5rem;
  font-weight: 700;
}

.ctaTel__time {
  margin-top: 10px;
  font-size: 2rem;
  color: rgba(255, 255, 255, 0.9);
}

/* =========================================
  FOOTER
========================================= */
.footer {
  margin-top: 80px;
  padding: 90px 40px 50px;
  background: linear-gradient(135deg, #07152F 0%, #10224A 100%);
  position: relative;
  overflow: hidden;
}

.footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top left, rgba(37, 99, 235, 0.18), transparent 35%);
}

/* INNER */
.footerInner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 80px;
  position: relative;
  z-index: 2;
}

/* COLUMN */
.footerCol {
  position: relative;
}

.footerCol:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0;
  right: -40px;
  width: 1px;
  height: 100%;
  border-right: 1px dashed rgba(255, 255, 255, 0.2);
}

/* HEAD */
.footerHead {
  display: flex;
  align-items: center;
  gap: 20px;
}

.footerCircle {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 3rem;
}

.footerTitle {
  font-size: 3.4rem;
  font-weight: 700;
  color: #fff;
}

/* DESC */
.footerDesc {
  margin-top: 32px;
  font-size: 2rem;
  line-height: 2;
  color: rgba(255, 255, 255, 0.75);
}

/* LIST */
.footerArea,
.footerMenu {
  margin-top: 34px;
  display: flex;
  gap: 70px;
}

.footerList {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.footerList li {
  list-style: none;
}

.footerList a {
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  font-size: 2rem;
  line-height: 1.8;
  transition: 0.3s;
  position: relative;
  padding-right: 24px;
}

.footerList a::after {
  content: "›";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.footerList a:hover {
  color: #fff;
}

/* COPY */
.footerCopy {
  max-width: 1400px;
  margin: 70px auto 0;
  padding-top: 40px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  text-align: center;
  font-size: 1.9rem;
  color: rgba(255, 255, 255, 0.6);
  position: relative;
  z-index: 2;
}

/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  .ctaBox {
    margin: 0 20px;
    padding: 60px 24px;
    border-radius: 22px;
  }
  .ctaIcon {
    width: 70px;
    height: 70px;
    font-size: 3rem;
  }
  .ctaTitle {
    margin-top: 22px;
    font-size: 3.8rem;
  }
  .ctaText {
    margin-top: 14px;
    font-size: 1.8rem;
    line-height: 1.8;
  }
  .ctaContent {
    margin-top: 40px;
    flex-direction: column;
    gap: 40px;
  }
  .ctaContent::after {
    display: none;
  }
  .ctaBtn {
    width: 100%;
    height: 86px;
  }
  .ctaBtn__text {
    font-size: 2rem;
  }
  .ctaBtn__icon,
.ctaBtn__arrow {
    font-size: 2.2rem;
  }
  .ctaTel {
    text-align: center;
  }
  .ctaTel__label {
    font-size: 1.6rem;
  }
  .ctaTel__number {
    font-size: 3.4rem;
  }
  .ctaTel__time {
    font-size: 1.5rem;
  }
  /* FOOTER */
  .footer {
    margin-top: 60px;
    padding: 70px 20px 40px;
  }
  .footerInner {
    grid-template-columns: 1fr;
    gap: 50px;
  }
  .footerCol:not(:last-child)::after {
    display: none;
  }
  .footerTitle {
    font-size: 2.8rem;
  }
  .footerCircle {
    width: 58px;
    height: 58px;
    font-size: 2.4rem;
  }
  .footerDesc {
    margin-top: 24px;
    font-size: 1.7rem;
  }
  .footerArea,
.footerMenu {
    margin-top: 26px;
    gap: 30px;
    flex-wrap: wrap;
  }
  .footerList {
    gap: 16px;
  }
  .footerList a {
    font-size: 1.7rem;
  }
  .footerCopy {
    margin-top: 50px;
    padding-top: 30px;
    font-size: 1.5rem;
  }
}
/* =========================================
  RESPONSIVE BASE
========================================= */
html {
  font-size: clamp(40%, 0.9vw, 62.5%);
}

body {
  overflow-x: hidden;
}

/* =========================================
  CONTAINER
========================================= */
[class*=__inner] {
  width: min(100%, 1400px);
  margin-inline: auto;
}

/* =========================================
  COMMON RESPONSIVE
========================================= */
.sectionTitle__main,
.sectionHead__ttl,
.faqHead__title {
  font-size: clamp(3.2rem, 4vw, 6rem);
}

.sectionTitle__text,
.sectionHead__txt,
.faqHead__text {
  font-size: clamp(1.5rem, 1.8vw, 2.4rem);
  line-height: 1.9;
}

/* =========================================
  DESKTOP LARGE
========================================= */
@media screen and (max-width: 1400px) {
  .heroMain,
.compare,
.voice,
.supportArea,
.subsidy,
.lineAssessment,
.faqSection,
.flow,
.purchaseCase,
.dangerArea,
.timingCheck {
    padding-inline: 30px;
  }
  .heroMain__ttl {
    font-size: clamp(4rem, 4vw, 6rem);
  }
  .heroMain__txt {
    font-size: clamp(2rem, 2vw, 3rem);
  }
}
/* =========================================
  TABLET
========================================= */
@media screen and (max-width: 1024px) {
  .heroMain {
    flex-direction: column;
    gap: 60px;
  }
  .heroMain__slide {
    flex-direction: column;
    gap: 60px;
  }
  .heroMain__content,
.heroFeature {
    width: 100%;
  }
  .heroFeature {
    gap: 20px;
  }
  .heroFeature__ttl {
    font-size: 2.4rem;
  }
  .heroFeature__txt {
    font-size: 1.7rem;
  }
  .reasonCardWrap,
.purchaseCase__list,
.voiceList,
.subsidyList {
    grid-template-columns: repeat(2, 1fr);
  }
  .marketCardWrap {
    grid-template-columns: repeat(2, 1fr);
  }
  .dangerGrid {
    grid-template-columns: 1fr;
  }
  .compareTable {
    overflow-x: auto;
  }
  .compareTable__head,
.compareTable__row {
    min-width: 1000px;
  }
}
/* =========================================
  TABLET SMALL
========================================= */
@media screen and (max-width: 900px) {
  .supportAreaCard__title,
.voiceCard__name,
.subsidyCard__title,
.flowItem__title {
    font-size: 3rem;
  }
  .voiceCard__text,
.flowItem__text,
.subsidyCard__text {
    font-size: 1.8rem;
  }
  .lineAssessment__title,
.timingCheckBox__title {
    font-size: 4rem;
  }
}
/* =========================================
  SP
========================================= */
@media screen and (max-width: 768px) {
  html {
    font-size: 50%;
  }
  .heroHeader {
    padding: 18px;
    gap: 18px;
  }
  .heroHeader__right {
    width: 100%;
    flex-direction: column;
  }
  .heroHeader__btn {
    width: 100%;
  }
  .heroMain {
    padding: 0;
  }
  .heroMain__slide {
    padding: 60px 20px;
  }
  .heroMain__ttl {
    font-size: 3.6rem;
  }
  .heroMain__txt {
    font-size: 1.8rem;
    line-height: 1.8;
  }
  .heroMain__cta {
    width: 100%;
    height: auto;
    min-height: 90px;
    padding: 20px;
  }
  .reasonCardWrap,
.purchaseCase__list,
.voiceList,
.subsidyList,
.marketCardWrap {
    grid-template-columns: 1fr;
  }
  .supportAreaCard__tags {
    gap: 10px;
  }
  .supportAreaCard__tags span {
    font-size: 1.4rem;
  }
  .faqQuestion {
    padding: 20px;
    min-height: 80px;
    align-items: flex-start;
  }
  .faqQuestion__left {
    gap: 12px;
    align-items: flex-start;
  }
  .faqQuestion__q {
    font-size: 2.4rem;
  }
  .faqQuestion__text {
    font-size: 1.8rem;
    line-height: 1.7;
  }
  .faqAnswer__inner {
    padding: 0 20px 25px 56px;
    font-size: 1.6rem;
  }
  .faqBtn {
    min-width: 100%;
  }
}
/* =========================================
  SMALL SP
========================================= */
@media screen and (max-width: 480px) {
  html {
    font-size: 45%;
  }
  .sectionTitle__main,
.faqHead__title {
    font-size: 3.2rem;
  }
  .heroMain__ttl {
    font-size: 3rem;
  }
  .voiceCard,
.subsidyCard,
.supportAreaCard,
.faqItem,
.timingCheckBox {
    border-radius: 18px;
  }
  .lineAssessmentBtn,
.timingCheckBtn,
.subsidyBtn {
    font-size: 1.8rem;
  }
}
/* =========================================
  FLOATING CONTACT
========================================= */
.floatingContact {
  width: 300px;
  min-height: 88px;
  padding: 16px 22px;
  border-radius: 18px;
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 999;
  background: linear-gradient(135deg, #F97316, #FFB020);
  color: #fff;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 18px 45px rgba(249, 115, 22, 0.35);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.floatingContact:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 55px rgba(249, 115, 22, 0.42);
}

.floatingContact__lead {
  font-size: 1.4rem;
  line-height: 1.45;
  font-weight: 700;
}

.floatingContact__main {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 2.8rem;
  line-height: 1;
  font-weight: 700;
}

.floatingContact__main .fa-solid {
  font-size: 0.85em;
}

@media screen and (max-width: 768px) {
  body {
    padding-bottom: 104px;
  }
  .floatingContact {
    width: calc(100% - 32px);
    min-height: 78px;
    right: 16px;
    bottom: 16px;
    padding: 14px 18px;
    border-radius: 14px;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
  }
  .floatingContact__lead {
    font-size: 1.35rem;
    line-height: 1.45;
  }
  .floatingContact__main {
    flex-shrink: 0;
    font-size: 2.4rem;
  }
}/*# sourceMappingURL=style.css.map */

/* =========================================
  FIX 2026-08-06 デザイン調整
========================================= */
/* 1. 基本フォントをゴシック体に統一（メインビジュアルと調和） */
body {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-weight: 500;
}

/* 2. セクション見出しの色をテーマカラーに統一（補助金セクションのみ緑を維持） */
.sectionTitle__main { color: #0F2347; }
.sectionTitle__line { background: #0F5AE5; }
.subsidy .sectionTitle__main { color: #0C4B28; }
.subsidy .sectionTitle__line { background: #16A34A; }

/* 3. ヒーロースライダー：画像を全幅で表示 */
.heroMain { padding-inline: 0 !important; }
.heroMain__slide { padding: 0 !important; }
.heroMain__slide img {
  width: 100%;
  height: auto;
  display: block;
}

/* 4. 相場カードの金額の折返し防止 */
.marketCard__price {
  font-size: clamp(2.4rem, 1.9vw, 3.2rem);
  white-space: nowrap;
}

/* 5. フッターリンクの不自然な折返しを解消 */
.footerList a { font-size: 1.7rem; }
.footerArea, .footerMenu { gap: 40px; }

/* 6. SPヘッダーをロゴ＋ボタンの横並びに */
@media screen and (max-width: 768px) {
  .heroHeader {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
  }
  .heroHeader__logo { font-size: 1.9rem; gap: 10px; }
  .heroHeader__logo > .fa-solid { width: 36px; height: 36px; font-size: 1.8rem; }
  .heroHeader__right { width: auto; flex-direction: row; }
  .heroHeader__btn {
    width: auto;
    height: 44px;
    padding: 0 18px;
    font-size: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 6px 14px rgba(15, 90, 229, 0.2);
  }
  .heroMain__dots {
    left: 50%;
    transform: translateX(-50%);
    bottom: 12px;
  }
}

/* =========================================
  FIX2 2026-08-06 ビジュアルブラッシュアップ
========================================= */
/* --- 英字キッカー --- */
.secKicker {
  display: block;
  text-align: center;
  font-family: "Jost", "Noto Sans JP", sans-serif;
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: #0F5AE5;
  margin-bottom: 14px;
}
.subsidy .secKicker { color: #16A34A; }

/* 見出しまわりの調整 */
.sectionTitle__main,
.sectionHead__ttl,
.faqHead__title,
.trouble__ttl {
  letter-spacing: 0.04em;
}
.sectionTitle__line,
.faqHead__line,
.trouble__ttl::after,
.sectionHead__ttl::after {
  background: linear-gradient(90deg, #0F5AE5, #2EA7FF);
}
.subsidy .sectionTitle__line {
  background: linear-gradient(90deg, #16A34A, #4ADE80);
}

/* --- ヘッダー電話 --- */
.heroHeader__telIcon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #EEF4FF;
  color: #0F5AE5;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 1.8rem;
  flex-shrink: 0;
}
.heroHeader__telBody {
  display: flex;
  flex-direction: column;
  gap: 4px;
  line-height: 1;
}
.heroHeader__telBody strong {
  font-family: "Jost", "Noto Sans JP", sans-serif;
  font-size: 2.2rem;
  font-weight: 700;
  color: #1A2A4A;
}
.heroHeader__telBody small {
  font-size: 1.2rem;
  font-weight: 500;
  color: #667085;
}
@media screen and (max-width: 900px) {
  .heroHeader__tel { display: none; }
}

/* --- お悩みカード --- */
.troubleCard {
  border: 1px solid #E4ECFA;
  box-shadow: 0 6px 20px rgba(15, 90, 229, 0.05);
  transition: 0.3s;
}
.troubleCard:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(15, 90, 229, 0.1);
}
.troubleCard__icon {
  border-radius: 22px;
  background: linear-gradient(135deg, #EEF4FF, #DCE9FF);
}

/* --- 買取事例カード（写真型） --- */
.purchaseCaseCard {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0 0 34px;
  text-align: center;
  overflow: hidden;
}
.purchaseCaseCard__photo {
  position: relative;
  aspect-ratio: 16/10;
  overflow: hidden;
}
.purchaseCaseCard__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.purchaseCaseCard:hover .purchaseCaseCard__photo img {
  transform: scale(1.06);
}
.purchaseCaseCard__badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(15, 90, 229, 0.92);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 999px;
  letter-spacing: 0.05em;
}
.purchaseCaseCard__content {
  padding: 28px 24px 0;
}
.purchaseCaseCard__title {
  font-size: 2.4rem;
  margin-bottom: 12px;
}
.purchaseCaseCard__price {
  font-family: "Jost", "Noto Sans JP", sans-serif;
  font-size: 4.6rem;
  margin-bottom: 14px;
  line-height: 1.1;
}
.purchaseCaseCard__price small {
  font-size: 0.45em;
  font-family: "Noto Sans JP", sans-serif;
  margin-left: 4px;
}
.purchaseCaseCard__text {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #EEF4FF;
  color: #0F5AE5;
  font-weight: 700;
  font-size: 1.6rem;
  padding: 9px 18px;
  border-radius: 999px;
  margin: 0 auto;
}

/* --- 放置リスク写真 --- */
.dangerArea__photo {
  max-width: 1000px;
  margin: 0 auto 45px;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 24px 55px rgba(0, 0, 0, 0.14);
}
.dangerArea__photo img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  display: block;
}

/* --- 相場カードの金額もJostに --- */
.marketCard__price,
.taxBenefit__amount strong,
.ctaTel__number {
  font-family: "Jost", "Noto Sans JP", sans-serif;
}

/* --- CTAに写真背景 --- */
.ctaBox {
  background: linear-gradient(135deg, rgba(27, 78, 216, 0.93), rgba(0, 47, 165, 0.95)), url(../img/cta-bg.jpg) center/cover no-repeat;
}

/* --- LINEカラーボタン（CTA内） --- */
.ctaBtn--line {
  background: linear-gradient(135deg, #00B940, #06C755);
}
.ctaBtn--line .ctaBtn__icon,
.ctaBtn--line .ctaBtn__text,
.ctaBtn--line .ctaBtn__arrow {
  color: #fff;
}

/* --- 全体の質感調整 --- */
.reasonCard,
.marketCard,
.voiceCard,
.subsidyCard,
.supportAreaCard,
.faqItem,
.flowItem {
  border: 1px solid #E8EEF9;
}
img {
  max-width: 100%;
}

/* --- SP調整 --- */
@media screen and (max-width: 768px) {
  .secKicker {
    font-size: 1.4rem;
    margin-bottom: 10px;
  }
  .purchaseCaseCard {
    padding: 0 0 26px;
  }
  .purchaseCaseCard__price {
    font-size: 4rem;
  }
  .dangerArea__photo {
    border-radius: 18px;
    margin-bottom: 30px;
  }
  .dangerArea__photo img {
    height: 210px;
  }
}

/* =========================================
  FIX3 2026-08-06 コンテンツ幅を1100pxに統一
========================================= */
[class*="__inner"] {
  width: min(100%, 1100px);
}
.reason__inner,
.market__inner,
.purchaseCase__inner,
.dangerArea__inner,
.flow__inner,
.compare__inner,
.supportArea__inner,
.voice__inner,
.timingCheck__inner,
.subsidy__inner,
.taxBenefit__inner,
.lineAssessment__inner,
.faqSection__inner {
  max-width: 1100px;
}
.trouble__list {
  max-width: 1100px;
}
.ctaBox,
.footerInner,
.footerCopy {
  max-width: 1100px;
}
.dangerArea__photo {
  max-width: 880px;
}

/* 幅が狭くなった分の微調整 */
.marketCard {
  padding: 26px 20px;
}
.marketCard__price {
  font-size: clamp(2.2rem, 1.6vw, 2.8rem);
}
.heroHeader {
  padding: 0 40px;
}
@media screen and (max-width: 768px) {
  .heroHeader {
    padding: 14px 16px;
  }
}

/* =========================================
  FIX4 2026-08-06 文字サイズ全体調整（一段コンパクトに）
========================================= */
/* 見出し */
.sectionTitle__main,
.sectionHead__ttl,
.faqHead__title,
.trouble__ttl {
  font-size: clamp(2.6rem, 2.7vw, 3.8rem);
}
.sectionHead__txt,
.sectionTitle__text,
.faqHead__text {
  font-size: clamp(1.4rem, 1.2vw, 1.7rem);
}
.secKicker { font-size: 1.4rem; }
.sectionTitle { margin-bottom: 55px; }
.sectionHead { margin-bottom: 55px; }

/* お悩み */
.troubleCard p { font-size: 1.7rem; }
.troubleCard__icon { width: 64px; height: 64px; font-size: 2.6rem; }

/* 選ばれる理由 */
.reasonCard { padding: 40px 30px; }
.reasonCard__ttl { font-size: 2.4rem; margin-bottom: 18px; }
.reasonCard__txt { font-size: 1.6rem; line-height: 1.9; }
.reasonCard__icon { width: 96px; height: 96px; font-size: 4rem; margin-bottom: 24px; }

/* 相場 */
.marketCard__area { font-size: 1.9rem; }
.marketCard__price { font-size: clamp(2rem, 1.5vw, 2.6rem); margin-bottom: 16px; }
.marketCard__info { font-size: 1.3rem; }
.marketCard__arrow { width: 34px; height: 34px; font-size: 1.5rem; }
.market__note { font-size: 1.4rem; margin-top: 40px; }

/* 買取事例 */
.purchaseCaseCard__title { font-size: 2rem; margin-bottom: 8px; }
.purchaseCaseCard__price { font-size: 3.8rem; margin-bottom: 10px; }
.purchaseCaseCard__text { font-size: 1.4rem; }
.purchaseCase__btn a { width: 320px; height: 64px; font-size: 1.8rem; }

/* 放置リスク */
.dangerCard__title { font-size: 2.2rem; margin-bottom: 12px; }
.dangerCard__text { font-size: 1.6rem; line-height: 1.9; }
.dangerCard__icon { width: 70px; height: 70px; font-size: 3.2rem; }
.dangerArea__message { font-size: 2rem; margin-top: 45px; }

/* 流れ */
.flowItem { padding: 32px 38px; gap: 30px; }
.flowItem__step { font-size: 1.5rem; margin-bottom: 8px; }
.flowItem__title { font-size: 2.6rem; margin-bottom: 10px; }
.flowItem__text { font-size: 1.6rem; line-height: 1.9; }
.flowItem__number { width: 62px; height: 62px; font-size: 2.6rem; }
.flowItem__icon { width: 84px; height: 84px; font-size: 3.4rem; }
.flowArrow { width: 46px; height: 46px; font-size: 2.2rem; }

/* 比較表 */
.compareTable__headItem { height: 78px; font-size: 1.9rem; }
.compareTable__headItem span { font-size: 2.2rem; }
.compareTable__label { min-height: 88px; padding: 24px 28px; font-size: 1.9rem; }
.compareTable__label span { font-size: 2.4rem; }
.compareTable__value { min-height: 88px; padding: 24px 28px; }
.compareBadge { padding: 12px 22px; font-size: 1.8rem; gap: 12px; }
.compareBadge span { width: 32px; height: 32px; font-size: 1.5rem; }
.compareText { font-size: 1.8rem; gap: 14px; }
.compareText span { width: 32px; height: 32px; font-size: 1.5rem; }
.compareMessage p { font-size: 1.7rem; }
.compareMessage__icon { font-size: 2.6rem; }

/* 対応エリア */
.supportAreaCard { padding: 30px 34px; }
.supportAreaCard__title { font-size: 2.4rem; }
.supportAreaCard__icon { width: 58px; height: 58px; font-size: 2.6rem; }
.supportAreaCard__tags span { min-height: 42px; padding: 0 18px; font-size: 1.4rem; border-radius: 10px; }
.supportAreaMessage p { font-size: 1.6rem; }
.supportAreaMessage__icon { font-size: 2.6rem; }

/* お客様の声 */
.voiceCard { padding: 34px 30px 90px; }
.voiceCard__icon { width: 70px; height: 70px; font-size: 3.2rem; }
.voiceCard__name { font-size: 2.2rem; }
.voiceCard__area { font-size: 1.4rem; }
.voiceCard__star { font-size: 2.2rem; margin-top: 22px; }
.voiceCard__line { margin: 22px 0; }
.voiceCard__text { font-size: 1.6rem; line-height: 2; }
.voiceCard__quote { font-size: 8rem; }
.voiceMessage p { font-size: 1.5rem; }
.voiceMessage__icon { font-size: 2.6rem; }

/* 診断 */
.timingCheckBox { padding: 60px 40px; }
.timingCheckBox__icon { width: 130px; height: 130px; font-size: 6rem; }
.timingCheckBox__title { font-size: 3rem; margin-top: 30px; }
.timingCheckBox__text { font-size: 1.7rem; margin-top: 18px; }
.timingCheckBtn { width: 400px; max-width: 100%; min-height: 84px; margin-top: 40px; font-size: 2.1rem; }
.timingCheckBtn small { font-size: 2.6rem; }
.timingCheckMessage p { font-size: 1.6rem; }
.timingCheckMessage__icon { font-size: 2.6rem; }

/* 補助金 */
.subsidyCard { padding: 32px; }
.subsidyCard__icon { width: 84px; height: 84px; font-size: 3.6rem; }
.subsidyCard__title { font-size: 2.4rem; }
.subsidyCard__text { font-size: 1.6rem; line-height: 1.9; margin-top: 14px; }
.subsidyCard__label { font-size: 1.6rem; }
.subsidyCard__bottom { min-height: 0; padding: 20px 24px; margin-top: 24px; }
.subsidyCard__bottom p { font-size: 1.6rem; }
.subsidySupport h3 { font-size: 2.2rem; }
.subsidySupport p { font-size: 1.6rem; }
.subsidySupport__icon { width: 56px; height: 56px; font-size: 2.4rem; }
.subsidyBtn { width: 380px; min-height: 78px; font-size: 2rem; }
.subsidyBtn small { font-size: 2.4rem; }

/* 3000万円控除 */
.taxBenefit__title { font-size: clamp(2.6rem, 2.6vw, 3.6rem); }
.taxBenefit__text { font-size: 1.6rem; }
.taxBenefit__note { font-size: 1.4rem; }
.taxBenefit__amount { min-height: 180px; }
.taxBenefit__amount strong { font-size: 6.4rem; }
.taxBenefit__amount small { font-size: 2.2rem; }
.taxBenefit__list li { font-size: 1.6rem; }
.taxBenefit__list .fa-solid { width: 34px; height: 34px; }
.taxBenefit__btn { font-size: 1.8rem; min-height: 62px; }

/* LINE査定 */
.lineAssessment__logo { width: 130px; height: 130px; font-size: 3.8rem; border-width: 8px; }
.lineAssessment__title { font-size: 3.4rem; margin-top: 40px; }
.lineAssessment__text { font-size: 1.7rem; margin-top: 24px; }
.lineAssessmentBox { padding: 40px 38px; margin-top: 50px; }
.lineAssessmentBox__title { font-size: 2.6rem; }
.lineAssessmentList li { padding: 24px 0; }
.lineAssessmentList__icon { width: 60px; height: 60px; font-size: 2.8rem; }
.lineAssessmentList p { font-size: 1.8rem; }
.lineAssessmentBtn { width: 480px; min-height: 92px; font-size: 2.4rem; }
.lineAssessmentBtn__icon { font-size: 3rem; }
.lineAssessmentBtn small { font-size: 3rem; }

/* FAQ */
.faqQuestion { min-height: 92px; padding: 0 32px; }
.faqQuestion__q { font-size: 2.8rem; }
.faqQuestion__text { font-size: 1.9rem; }
.faqAnswer__inner { font-size: 1.7rem; padding: 0 32px 28px 88px; }
.faqBtn { min-width: 460px; min-height: 76px; }
.faqBtn__text { font-size: 1.8rem; }

/* CTA */
.ctaBox { padding: 70px 50px; }
.ctaTitle { font-size: clamp(2.8rem, 3vw, 4rem); }
.ctaText { font-size: 1.7rem; }
.ctaBtn { width: 360px; max-width: 100%; height: 92px; }
.ctaBtn__icon, .ctaBtn__text, .ctaBtn__arrow { font-size: 2.2rem; }
.ctaTel__label { font-size: 1.6rem; }
.ctaTel__number { font-size: 4rem; }
.ctaTel__time { font-size: 1.5rem; }

/* フッター */
.footerCircle { width: 54px; height: 54px; font-size: 2.2rem; }
.footerTitle { font-size: 2.2rem; }
.footerDesc { font-size: 1.5rem; margin-top: 22px; }
.footerList a { font-size: 1.5rem; }
.footerCopy { font-size: 1.4rem; }

/* ヘッダー・フローティング */
.heroHeader { height: 84px; }
.heroHeader__logo { font-size: 2.3rem; }
.heroHeader__logo > .fa-solid { width: 42px; height: 42px; font-size: 2rem; }
.heroHeader__btn { width: 150px; height: 48px; font-size: 1.6rem; }
.floatingContact { width: 260px; min-height: 76px; padding: 13px 18px; }
.floatingContact__lead { font-size: 1.2rem; }
.floatingContact__main { font-size: 2.2rem; }

/* SPは従来のSP用サイズ感を維持 */
@media screen and (max-width: 768px) {
  .heroHeader { height: auto; }
  .flowItem { padding: 26px 22px; }
  .compareTable__label,
  .compareTable__value { padding: 18px; }
  .ctaBox { padding: 55px 24px; }
  .timingCheckBtn,
  .subsidyBtn,
  .faqBtn,
  .lineAssessmentBtn,
  .ctaBtn,
  .purchaseCase__btn a { width: 100%; min-width: 0; }
}

/* スクリーンリーダー・クローラー用の視覚非表示テキスト */
.srOnly {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* =========================================
  FIX5 2026-08-06 空き家買取コラム（CPT: column）
========================================= */
.columnPage {
  background: #F7FAFF;
}

/* --- ヒーロー --- */
.columnHero {
  padding: 70px 20px 55px;
  background: linear-gradient(135deg, #EAF2FF 0%, #F7FAFF 100%);
  text-align: center;
}
.columnHero__title {
  font-size: clamp(2.6rem, 2.7vw, 3.6rem);
  font-weight: 700;
  color: #0F2347;
  line-height: 1.4;
}
.columnHero__text {
  margin-top: 16px;
  font-size: 1.5rem;
  line-height: 1.9;
  color: #667085;
}

/* --- 一覧 --- */
.columnList {
  padding: 50px 20px 80px;
}
.columnList__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.columnFilter {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 40px;
}
.columnFilter__item {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 20px;
  border-radius: 999px;
  border: 2px solid #D6E3FF;
  background: #fff;
  color: #0F5AE5;
  font-size: 1.4rem;
  font-weight: 700;
  text-decoration: none;
  transition: 0.25s;
}
.columnFilter__item:hover,
.columnFilter__item.is-active {
  background: #0F5AE5;
  border-color: #0F5AE5;
  color: #fff;
}
.columnGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.columnCard {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 20px;
  border: 1px solid #E8EEF9;
  overflow: hidden;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(15, 90, 229, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.columnCard:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 45px rgba(15, 90, 229, 0.12);
}
.columnCard__thumb {
  aspect-ratio: 16/9;
  overflow: hidden;
}
.columnCard__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.columnCard:hover .columnCard__thumb img {
  transform: scale(1.05);
}
.columnCard__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 20px 22px 22px;
}
.columnCard__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.columnCard__cat {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 999px;
  background: #EEF4FF;
  color: #0F5AE5;
  font-size: 1.2rem;
  font-weight: 700;
}
.columnCard__date {
  font-size: 1.3rem;
  color: #98A2B3;
}
.columnCard__title {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.6;
  color: #0F2347;
  margin-bottom: 10px;
}
.columnCard__excerpt {
  font-size: 1.4rem;
  line-height: 1.8;
  color: #667085;
  margin-bottom: 14px;
}
.columnCard__more {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 1.4rem;
  font-weight: 700;
  color: #0F5AE5;
}
.columnEmpty {
  text-align: center;
  padding: 60px 0;
  font-size: 1.6rem;
  line-height: 2.2;
  color: #667085;
}
.columnEmpty .fa-solid {
  font-size: 3.6rem;
  color: #C7D7FF;
}

/* --- ページネーション --- */
.columnPagination {
  margin-top: 50px;
}
.columnPagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 8px;
}
.columnPagination .page-numbers {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 42px;
  height: 42px;
  padding: 0 8px;
  border-radius: 12px;
  border: 1px solid #D6E3FF;
  background: #fff;
  color: #0F5AE5;
  font-size: 1.5rem;
  font-weight: 700;
  text-decoration: none;
  transition: 0.25s;
}
.columnPagination .page-numbers.current,
.columnPagination .page-numbers:hover {
  background: #0F5AE5;
  border-color: #0F5AE5;
  color: #fff;
}

/* --- 記事詳細 --- */
.columnSingle {
  padding: 40px 20px 70px;
}
.columnSingle__inner {
  max-width: 800px;
  margin: 0 auto;
}
.columnBreadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 1.3rem;
  color: #98A2B3;
  margin-bottom: 28px;
}
.columnBreadcrumb a {
  color: #0F5AE5;
  text-decoration: none;
}
.columnBreadcrumb a:hover {
  text-decoration: underline;
}
.columnBreadcrumb span[aria-current] {
  color: #667085;
}
.columnSingle__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.columnSingle__cat {
  display: inline-flex;
  align-items: center;
  padding: 5px 16px;
  border-radius: 999px;
  background: #0F5AE5;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  text-decoration: none;
}
.columnSingle__meta time {
  font-size: 1.4rem;
  color: #98A2B3;
}
.columnSingle__title {
  font-size: clamp(2.2rem, 2.6vw, 3.2rem);
  font-weight: 700;
  line-height: 1.6;
  color: #0F2347;
}
.columnSingle__thumb {
  margin-top: 28px;
  border-radius: 20px;
  overflow: hidden;
}
.columnSingle__thumb img {
  width: 100%;
  height: auto;
  display: block;
}

/* 記事本文タイポグラフィ */
.columnSingle__content {
  margin-top: 36px;
  background: #fff;
  border: 1px solid #E8EEF9;
  border-radius: 20px;
  padding: 40px 38px;
  font-size: 1.6rem;
  line-height: 2;
  color: #344054;
}
.columnSingle__content h2 {
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.6;
  color: #0F2347;
  background: #F2F7FF;
  border-left: 5px solid #0F5AE5;
  border-radius: 6px;
  padding: 14px 18px;
  margin: 44px 0 20px;
}
.columnSingle__content h2:first-child {
  margin-top: 0;
}
.columnSingle__content h3 {
  font-size: 1.8rem;
  font-weight: 700;
  color: #0F2347;
  border-bottom: 2px solid #D6E3FF;
  padding-bottom: 8px;
  margin: 34px 0 16px;
}
.columnSingle__content p {
  margin-bottom: 18px;
}
.columnSingle__content ul,
.columnSingle__content ol {
  margin: 0 0 20px;
  padding: 18px 22px 18px 40px;
  background: #F8FAFF;
  border-radius: 12px;
}
.columnSingle__content ul li {
  list-style: disc;
  margin-bottom: 6px;
}
.columnSingle__content ol li {
  list-style: decimal;
  margin-bottom: 6px;
}
.columnSingle__content a {
  color: #0F5AE5;
  font-weight: 700;
}
.columnSingle__content strong {
  background: linear-gradient(transparent 65%, #FFE9A8 65%);
  font-weight: 700;
}
.columnSingle__content blockquote {
  border-left: 4px solid #C7D7FF;
  padding: 10px 18px;
  margin: 0 0 20px;
  color: #667085;
}
.columnSingle__content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
  font-size: 1.5rem;
}
.columnSingle__content th,
.columnSingle__content td {
  border: 1px solid #E0E8F5;
  padding: 10px 14px;
  text-align: left;
}
.columnSingle__content th {
  background: #F2F7FF;
  color: #0F2347;
}

/* --- コラムCTA --- */
.columnCta {
  padding: 0 20px 60px;
}
.columnCta__inner {
  max-width: 800px;
  margin: 0 auto;
  border-radius: 24px;
  background: linear-gradient(135deg, #1B4ED8 0%, #002FA5 100%);
  padding: 45px 30px;
  text-align: center;
  color: #fff;
}
.columnCta__icon {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  color: #0F5AE5;
  font-size: 2.2rem;
}
.columnCta__title {
  margin-top: 16px;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
}
.columnCta__text {
  margin-top: 12px;
  font-size: 1.5rem;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.9);
}
.columnCta__btns {
  margin-top: 26px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}
.columnCta__line {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  padding: 0 30px;
  border-radius: 14px;
  background: linear-gradient(135deg, #00B940, #06C755);
  color: #fff;
  font-size: 1.7rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 10px 25px rgba(6, 199, 85, 0.3);
  transition: 0.25s;
}
.columnCta__line:hover {
  transform: translateY(-3px);
}
.columnCta__tel {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  text-decoration: none;
}
.columnCta__tel .fa-solid {
  font-size: 2.2rem;
}
.columnCta__telBody {
  display: flex;
  flex-direction: column;
  text-align: left;
  line-height: 1.3;
}
.columnCta__telBody strong {
  font-family: "Jost", "Noto Sans JP", sans-serif;
  font-size: 2.6rem;
  font-weight: 700;
}
.columnCta__telBody small {
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.85);
}

/* --- 関連記事・戻る --- */
.columnRelated {
  padding: 10px 20px 60px;
}
.columnRelated__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.columnRelated__title {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 700;
  color: #0F2347;
  margin-bottom: 34px;
}
.columnBack {
  text-align: center;
  padding: 0 20px 80px;
}
.columnBack a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 0 34px;
  border-radius: 14px;
  border: 2px solid #0F5AE5;
  background: #fff;
  color: #0F5AE5;
  font-size: 1.6rem;
  font-weight: 700;
  text-decoration: none;
  transition: 0.25s;
}
.columnBack a:hover {
  background: #0F5AE5;
  color: #fff;
}

/* --- SP --- */
@media screen and (max-width: 768px) {
  .columnGrid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .columnHero {
    padding: 45px 16px 35px;
  }
  .columnList {
    padding: 30px 16px 60px;
  }
  .columnSingle__content {
    padding: 26px 20px;
  }
  .columnCta__btns {
    flex-direction: column;
    gap: 16px;
  }
  .columnCta__line {
    width: 100%;
    justify-content: center;
  }
}
@media screen and (max-width: 1024px) and (min-width: 769px) {
  .columnGrid {
    grid-template-columns: repeat(2, 1fr);
  }
}