/* ========================================
   相続ポータルサイト
     *元データにコンテンツを追加する形で修正
     *layout.cssを追加（その他cssを上書きする形で調整）
======================================== */

/* 初期状態 */
.sp_only {
 display: none;
}

.pc_only {
 display: block;
}

/* スマホだけ表示 */
@media screen and (max-width: 768px) {

 .sp_only {
  display: block ;
 }

 .pc_only {
  display: none ;
 }

}

/* ========================================
   検索フォームタイトルに虫眼鏡を追加
======================================== */
#search-form>p.kensaku {
 display: flex ;
 align-items: center ;
 justify-content: center ;
 gap: 8px ;
 /* 虫眼鏡と文字の間のすき間 */
}

#search-form>p.kensaku::before {
 content: "🔍" ;
 /* 虫眼鏡の絵文字 */
 font-size: 22px ;
 /* 虫眼鏡の大きさ */
 font-weight: normal ;
}


/* ========================================
HEADER
======================================== */
#a-header {
  background: #fff ;
  border-top: 5px solid #2e7d32 ;
  box-shadow: 0 2px 10px rgba(0,0,0,.12) ;
  position: relative ;
  z-index: 100 ;
}

.cssskin-block_gnavi {
  position: relative ;
  height: 94px ;
  max-width: 1500px ;
  margin: 0 auto ;
  padding: 0 32px ;
  box-sizing: border-box ;
}

.cssskin-block_gnavi > .g-column {
  display: block ;
  width: 100% ;
  height: 94px ;
  margin: 0 ;
  padding: 0 ;
}

.cssskin-block_gnavi .column {
  float: none ;
  width: auto ;
  margin: 0 ;
  padding: 0 ;
}

.cssskin-block_gnavi .column.-col4 {
  position: absolute ;
  left: 32px ;
  top: 50% ;
  transform: translateY(-50%) ;
}

.cssskin-block_gnavi .c-page_title {
  margin: 0 ;
  padding: 0 ;
}

.cssskin-block_gnavi .c-img img {
  width: 216px ;
  height: auto ;
  display: block ;
}

.cssskin-block_gnavi .column.-col8 {
  position: absolute ;
  right: 32px ;
  top: 50% ;
  transform: translateY(-50%) ;
}

#js-globalNavigation .-menu_right {
  display: flex ;
  align-items: center ;
  justify-content: flex-end ;
  gap: 34px ;
}

#js-globalNavigation ul.c-menu {
  display: flex ;
  align-items: center ;
  gap: 30px ;
  margin: 0 ;
  padding: 0 ;
}

#js-globalNavigation ul.c-menu li {
  list-style: none ;
  margin: 0 ;
  padding: 0 ;
  border: 0 ;
}

#js-globalNavigation ul.c-menu li a {
  display: block ;
  padding: 0 ;
  color: #333 ;
  text-decoration: none ;
  font-size: 12px ;
  line-height: 1.25 ;
  text-align: center ;
  white-space: nowrap ;
}

.header-contact {
  display: flex ;
  align-items: center ;
  gap: 22px ;
}

.header-tel {
  white-space: nowrap ;
  line-height: 1.3 ;
  text-align: left ;
  font-weight: 700 ;
  font-size: 12px ;
}

.header-tel-label {
  display: block ;
  font-size: 12px ;
  font-weight: 800 ;
  color: #333 ;
  line-height: 1 ;
  margin-bottom: 2px ;
}

.header-tel a {
  display: flex ;
  align-items: center ;
  gap: 8px ;
  color: #2f7d32 ;
  text-decoration: none ;
}

.header-tel-icon {
  width: 40px ;
  height: auto ;
  display: block ;
}

.tel-number {
  font-size: 32px ;
  font-weight: 700 ;
  color: #2f7d32 ;
  line-height: 1 ;
  letter-spacing: .02em ;
}

.tel-time {
  display: block ;
  margin-top: 2px ;
  font-size: 12px ;
  font-weight: 700 ;
  color: #333 ;
  line-height: 1.2 ;
}

.header-web-btn {
  height: 58px ;
  padding: 0 24px ;
  background: #f58a1f ;
  color: #fff !important;
  text-decoration: none ;
  border-radius: 6px ;
  box-shadow: 0 6px 0 #d96f05 ;
  display: flex ;
  align-items: center ;
  gap: 10px ;
  font-size: 20px ;
  font-weight: 700 ;
  white-space: nowrap ;
}

.header-mail-icon {
  width: 38px ;
  height: auto ;
  display: block ;
}

/* ========================================
HEADER RESPONSIVE
======================================== */

@media screen and (max-width: 1100px) {
 .cssskin-block_gnavi {
  height: 70px ;
  padding: 0 16px ;
 }

 .cssskin-block_gnavi>.g-column {
  height: 70px ;
 }

 .cssskin-block_gnavi .column.-col4 {
  left: 16px ;
 }

 .cssskin-block_gnavi .c-img img {
  width: 150px ;
  max-width: 150px ;
  height: auto ;
 }

 .cssskin-block_gnavi .column.-col8 {
  right: 16px ;
 }

 .header-contact {
  display: none ;
 }

 #js-globalNavigation ul.c-menu {
  gap: 18px ;
 }
}


/* ========================================
FV / HERO
======================================== */

.bd-no-webp #a-billboard,
.bd-webp #a-billboard,
#a-billboard {
 position: relative ;
 min-height: 840px ;
 overflow: hidden ;
 background-image: url("../_src/index/fv_pc.png") ;
 background-position: center center ;
 background-size: cover ;
 background-repeat: no-repeat ;
}

#a-billboard .site_frame,
#a-billboard section,
#bk21792117,
#bk21792117>.column {
 position: static ;
}

#bk21792117>.column>h1.c-page_title,
#bk21792117>.column>p.c-body,
#bk21792117>.column>h4.c-small_headline {
 display: none ;
}

/* FVコピー */
.fv-copy,
.fv-copy * {
 writing-mode: horizontal-tb ;
 text-orientation: mixed ;
 transform: none ;
}

.fv-copy {
 position: absolute ;
 left: 15% ;
 top: 40px ;
 z-index: 20 ;
 text-align: left ;
 text-shadow: none ;
}

.fv-copy h2 {
 margin: 0 ;
 line-height: 1.18 ;
 font-weight: 900 ;
}

.fv-copy .green {
 display: block ;
 font-size: 60px ;
 color: #2f7d32 ;
 font-weight: 900 ;
}

.fv-copy .black {
 font-size: 46px ;
 color: #333 ;
 font-weight: 900 ;
}

.fv-copy .orange {
 font-size: 72px ;
 color: #f58a1f ;
 font-weight: 900 ;
}

.fv-copy p {
 margin: 16px 0 0 ;
 font-size: 21px ;
 line-height: 1.4 ;
 font-weight: 800 ;
 color: #333 ;
}

/* 検索フォーム */
#search-form {
 position: absolute ;
 left: 15% ;
 top: 268px ;
 z-index: 21 ;
 display: block ;
 width: 430px ;
 min-width: 0 ;
 margin: 0 ;
 padding: 28px 36px ;
 background: rgba(255, 255, 255, .94) ;
 border-radius: 4px ;
 box-shadow: 0 2px 10px rgba(0, 0, 0, .16) ;
 text-align: left ;
 box-sizing: border-box ;
}

#search-form>p {
 margin: 0 0 22px ;
 color: #2f7d32 ;
 font-size: 22px ;
 font-weight: 900 ;
 text-align: center ;
}

#search-form label,
#search-form span {
 color: #333 ;
}

#search-form label {
 display: block ;
 margin-bottom: 5px ;
 font-size: 14px ;
 font-weight: 800 ;
}

#search-form select {
 width: 100% ;
 height: 43px ;
 padding: 0 12px ;
 border: 1px solid #ccc ;
 border-radius: 4px ;
 background: #fff ;
 font-size: 15px ;
}

#search-form .search-expert-group {
 margin-bottom: 18px ;
}

#search-form .search-expert-group>span {
 display: block ;
 margin-bottom: 8px ;
 font-size: 14px ;
 font-weight: 800 ;
}

#search-form .search-expert-group label {
 display: inline ;
 font-size: 14px ;
 font-weight: 400 ;
 line-height: 1.9 ;
 cursor: pointer ;
}

#search-form .search-btn-wrap {
 text-align: center ;
}

#search-btn {
 width: 150px ;
 height: 56px ;
 padding: 0 ;
 background: #2e7d32 ;
 color: #fff ;
 border: 0 ;
 border-radius: 4px ;
 font-size: 18px ;
 font-weight: 900 ;
 cursor: pointer ;
}

/* FV内CTA */
.wrapper {
 position: relative ;
 margin-bottom: 20px;
}




/* ========================================
FV内CTA（PC表示：基準スタイルと配置固定）
======================================== */
.fv-cta {
 position: absolute ;
 right: 10% ;
 left: auto ;
 bottom: 38px ;
 z-index: 30 ;
 width: 720px ;
 height: 228px ;
 /* 枠線の上側に文字がぶつからないよう、パディングを上36pxに調整 */
 padding: 36px 240px 22px 40px ;
 background: #fff8ec ;
 border-radius: 18px ;
 box-shadow: 0 10px 24px rgba(0, 0, 0, .14) ;
 box-sizing: border-box ;
 border: 2px #f58a1f solid ;
 /* 🚨【最重要】枠線の上に綺麗にはみ出させるために、hiddenではなくvisibleにします */
 overflow: visible ;
}

.fv-cta-text {
 text-align: center ;
 position: relative ;
}

/* 「お急ぎの方へ」の吹き出し画像（PC版：枠線の真上にジャスト配置） */
.cta_fv_oisogi {
 position: absolute ;
 width: 184px ;
 max-width: 184px ;
 height: auto ;
 /* 🚨 枠線（.fv-cta）を基準に、真上に綺麗に乗るように数値を調整 */
 top: -68px ;
 left: 100px ;
 /* 「今すぐ相談したい方」の文字の左端あたりに綺麗に揃えます */
 margin: 0 ;
 padding: 0 ;
 z-index: 10 ;
}

/* 元々あった不要なテキストマージンをリセット */
.fv-cta-text strong {
 display: block ;
 margin: 0 0 8px ;
 font-size: 0 ;
 line-height: 1.1 ;
 white-space: nowrap ;
}

.fv-cta-text strong .orange {
 color: #f58a1f ;
 font-size: 32px ;
 font-weight: 900 ;
}

.fv-cta-text strong .black {
 color: #333 ;
 font-size: 28px ;
 font-weight: 900 ;
}

.fv-cta-text>span {
 display: block ;
 margin: 0 0 14px ;
 color: #555 ;
 font-size: 18px ;
 line-height: 1.3 ;
 font-weight: 700 ;
}

.fv-cta-btn {
 width: 416px ;
 height: 68px ;
 margin: 0 auto ;
 padding: 0 ;
 background: #f58a1f ;
 border-radius: 8px ;
 box-shadow: 0 7px 0 #d96f05 ;
 display: flex ;
 align-items: center ;
 justify-content: center ;
 gap: 16px ;
 color: #fff !important;
 text-decoration: none ;
 font-size: 30px ;
 font-weight: 700 ;
 line-height: 1 ;
 white-space: nowrap ;
 box-sizing: border-box ;
}

.fv-cta-btn::before {
 content: "" ;
 width: 56px ;
 height: 56px ;
 flex: 0 0 56px ;
 background: url("../_src/index/icon_web.png") center / contain no-repeat ;
}

/* PC用女性画像 */
.fv-cta-woman-pc {
 position: absolute ;
 right: 28px ;
 bottom: 0 ;
 height: 220px ;
 width: auto ;
 display: block ;
}

/* SP用女性画像はPCでは非表示 */
.fv-cta-woman-sp {
 display: none ;
}


/* ========================================
FV TABLET：769〜1400px（中画面・タブレット調整）
======================================== */
@media screen and (min-width: 769px) and (max-width: 1400px) {
 .fv-cta {
  position: relative ;
  left: auto ;
  right: auto ;
  bottom: auto ;
  width: calc(100% - 50px) ;
  height: auto ;
  margin: 24px auto 0 ;
  padding: 40px 20px 20px ;
  overflow: visible ;
 }

 /* タブレットでも枠線の上に綺麗に浮かせる */
 .cta_fv_oisogi {
   position: absolute ;
    top: -60px ;
    left: 40% ;
    width: 184px ;
    display: block ;
 }

 .fv-cta-woman-pc {
  right: 1% ;
  height: 200px ;
  display: block ;
 }

 .fv-cta-btn {
  width: 360px ;
  height: 62px ;
  font-size: 26px ;
 }
}


/* ========================================
FV 641〜768px補正（SP表示への切り替わり期）
======================================== */
@media screen and (min-width: 641px) and (max-width: 768px) {
 .fv-cta {
  position: relative ;
  width: calc(100% - 50px) ;
  height: auto ;
  margin: 24px auto 0 ;
  padding: 20px ;
  overflow: visible ;
 }

 /* この道中幅ではテキストの上に綺麗に乗せる */
 .cta_fv_oisogi {
  position: relative ;
  top: 0 ;
  left: 0 ;
  display: block ;
  width: 150px ;
  margin: 0 auto 10px ;
 }

 .fv-cta-woman-pc {
  display: none ;
 }
}


/* ========================================
FV SP：640px以下（完全にスマホ最適化）
======================================== */
@media screen and (max-width: 640px) {
 .fv-cta {
  position: relative ;
  left: auto ;
  right: auto ;
  bottom: auto ;
  width: calc(100% - 32px) ;
  height: auto ;
  margin: 0 auto ;
  padding: 16px 16px 25px ;
  overflow: visible ;
 }

 /* スマホ用のインナー配置に合わせる */
 .fv-cta-text-wrap {
  display: flex ;
  align-items: center ;
  justify-content: center ;
  gap: 12px ;
 }

 .fv-cta-woman-sp {
  display: block ;
  width: 95px ;
  height: auto ;
  flex-shrink: 0 ;
 }

 .fv-cta-text {
  display: block ;
  text-align: center ;
  flex: 1 ;
 }

 /* スマホではテキストの上に中央揃えで「ちょこん」と配置 */
 .cta_fv_oisogi {
  position: relative ;
  top: 0 ;
  left: 0 ;
  display: block ;
  width: 140px ;
  max-width: 140px ;
  margin: 0 auto 6px ;
  /* 下の文字との隙間 */
 }

 .fv-cta-text strong {
  white-space: normal ;
 }

 .fv-cta-text strong .orange {
  display: inline ;
  font-size: 22px ;
 }

 .fv-cta-text strong .black {
  display: inline ;
  font-size: 16px ;
  line-height: 2 ;
 }

 .fv-cta-text>span {
  font-size: 13px ;
 }

 .fv-cta-btn {
  width: 100% ;
  height: 66px ;
  font-size: 26px ;
 }

 .fv-cta-btn::before {
  width: 44px ;
  height: 44px ;
  flex-basis: 44px ;
 }

 .fv-cta-woman-pc {
  display: none ;
 }
}


/* SP */
@media screen and (max-width:640px) {

 .fv-cta-woman-pc {
  display: none;
 }

 .fv-cta-text-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
 }

 .fv-cta-woman-sp {
  display: block;
  width: 95px;
  height: auto;
  flex-shrink: 0;
 }
}

@media screen and (max-width:640px) {

 .fv-cta-text {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: left ;
 }

 .fv-cta-text>img.cta_fv_oisogi {
  display: none;
 }

 .fv-cta-text strong {
  margin: 0 0 8px ;
 }

 .fv-cta-text strong .orange {
  font-size: 30px ;
  line-height: 1.2 ;
 }

 .fv-cta-text strong .black {
  font-size: 30px ;
  line-height: 1.2 ;
 }

 .fv-cta-text>span {
  font-size: 16px ;
 }

 
  .fv-cta-text-inner {
   flex: 1;
  }
}


@media screen and (max-width:640px) {

 .fv-cta-text-wrap {
  display: flex ;
  align-items: center ;
  justify-content: center ;
  gap: 12px ;
 }

 .fv-cta-woman-sp {
  display: block ;
  width: 95px ;
  height: auto ;
  flex-shrink: 0 ;
 }

 .fv-cta-text {
  display: block ;
  text-align: center ;
  flex: 1 ;
 }

 .fv-cta-text>img.cta_fv_oisogi {
  display: block ;
  width: 140px ;
  margin: 0 auto 6px ;
 }

 .fv-cta-text::before {
  display: none ;
  content: none ;
 }
}


/* ========================================
FV TABLET：769〜1400px
======================================== */

@media screen and (min-width: 769px) and (max-width: 1400px) {
 #a-billboard {
  min-height: 900px ;
 }

 .fv-copy {
  left: 5% ;
  top: 34px ;
 }

 #search-form {
  left: 5% ;
  top: 250px ;
  width: 380px ;
  padding: 24px 28px ;
 }

 .fv-cta {
  position: relative ;
  left: auto ;
  right: auto ;
  bottom: auto ;
  width: calc(100% - 50px) ;
  height: auto ;
  margin: 24px auto 0 ;
  padding: 20px ;
 }

 .fv-cta>img,
 .fv-cta-person {
  right: 1% ;
  height: 200px ;
 }

 .fv-cta-btn {
  width: 360px ;
  height: 62px ;
  font-size: 26px ;
 }
}

/* ========================================
FV 641〜768px補正
======================================== */

@media screen and (min-width: 641px) and (max-width: 768px) {

 .bd-no-webp #a-billboard,
 .bd-webp #a-billboard,
 #a-billboard {
  min-height: 900px ;
  padding-bottom: 36px ;
  background-image: url("../_src/index/fv_sp.png") ;
  background-position: center center ;
  background-size: cover ;
  background-repeat: no-repeat ;
 }

 .fv-copy {
  position: absolute ;
  left: 5% ;
  top: 34px ;
  padding: 0 ;
 }

 .fv-copy .green {
  font-size: 48px ;
 }

 .fv-copy .black {
  font-size: 40px ;
 }

 .fv-copy .orange {
  font-size: 60px ;
 }

 .fv-copy p {
  font-size: 18px ;
 }

 #search-form {
  position: absolute ;
  left: 5% ;
  top: 230px ;
  width: 380px ;
  margin: 0 ;
  padding: 24px 28px ;
 }

 .fv-cta {
  position: relative ;
  left: auto ;
  right: auto ;
  bottom: auto ;
  width: calc(100% - 50px) ;
  height: auto ;
  margin: 24px auto 0 ;
  padding: 20px ;
 }

 .fv-cta>img,
 .fv-cta-person {
  display: none ;
 }
}

/* ========================================
FV SP：640px以下
======================================== */

@media screen and (max-width: 640px) {

 .bd-no-webp #a-billboard,
 .bd-webp #a-billboard,
 #a-billboard {
  min-height: auto ;
  padding-bottom: 36px ;
  background-image: url("../_src/index/fv_sp.png") ;
  background-position: center top ;
  background-size: contain ;
  background-repeat: no-repeat ;
 }

 .fv-copy {
  position: relative ;
  left: auto ;
  top: auto ;
  padding: 10px ;
  text-align: left ;
 }

 .fv-copy .green {
  font-size: 30px ;
 }

 .fv-copy .black {
  font-size: 26px ;
 }

 .fv-copy .orange {
  font-size: 42px ;
 }

 .fv-copy p {
  font-size: 15px ;
  line-height: 1.6 ;
 }

 #search-form {
  position: relative ;
  left: auto ;
  top: auto ;
  width: calc(100% - 32px) ;
  margin: 24px auto 0 ;
  padding: 24px 22px ;
 }

 .fv-cta {
  position: relative ;
  left: auto ;
  right: auto ;
  bottom: auto ;
  width: calc(100% - 32px) ;
  height: auto ;
  margin: 0 auto ;
  padding: 16px 16px 25px ;
 }

 .fv-cta-text strong {
  white-space: normal ;
 }

 .fv-cta-text strong .orange {
  display: inline ;
  font-size: 22px ;
 }

 .fv-cta-text strong .black {
  display: inline ;
  font-size: 16px ;
  line-height: 2;
 }

 .fv-cta-text>span {
  font-size: 13px ;
 }

 .fv-cta-btn {
  width: 100% ;
  height: 66px ;
  font-size: 26px ;
 }

 .fv-cta-btn::before {
  width: 44px ;
  height: 44px ;
  flex-basis: 44px ;
 }

 .fv-cta>img,
 .fv-cta-person {
  display: none ;
 }
}


/* ========================================
共通セクション
======================================== */

.sz-inner {
 max-width: 1080px;
 margin: 0 auto;
 padding: 70px 24px;
}

.sz-title {
 display: table;
 margin: 0 auto 28px;
 padding-bottom: 8px;
 border-bottom: 5px solid #2f7d32;
 font-size: 36px;
 font-weight: 900;
 line-height: 1.4;
 color: #333;
 text-align: center;
}

.sz-lead {
 margin: 0 auto 68px;
 font-size: 20px;
 line-height: 2;
 font-weight: 500;
 color: #333;
 text-align: center;
}

/* ========================================
相続のぜんぶとは
======================================== */

.sz-about {
 background: #fff;
}

.sz-about-cards {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 46px;
}

.sz-about-card {
 position: relative;
 min-height: 250px;
 padding: 42px 28px 30px;
 border: 1.5px solid #2f7d32;
 border-radius: 14px;
 background: #fff;
 text-align: center;
}

.sz-card-label {
 position: absolute;
 left: 50%;
 top: -30px;
 transform: translateX(-50%);
 min-width: 170px;
 padding: 9px 24px 12px;
 background: #2f7d32;
 color: #fff;
 border-radius: 999px;
 font-size: 24px;
 font-weight: 900;
 line-height: 1;
}

.sz-card-label::after {
 content: "";
 position: absolute;
 left: 50%;
 bottom: -14px;
 transform: translateX(-50%);
 border-style: solid;
 border-width: 16px 8px 0 8px;
 border-color: #2f7d32 transparent transparent transparent;
}

.sz-about-card img {
 height: 130px;
 width: auto;
 margin-bottom: 18px;
}

.sz-about-card h3 {
 margin: 0 0 16px;
 font-size: 22px;
 line-height: 1.45;
 font-weight: 900;
 color: #2f7d32;
}

.sz-about-card h3 span {
 font-size: 32px;
}

.sz-about-card p {
 margin: 0;
 font-size: 17px;
 line-height: 1.5;
 font-weight: 600;
 color: #333;
}

/* tablet */
@media screen and (max-width: 1024px) {
 .sz-about-cards {
  gap: 24px;
 }

 .sz-about-card {
  padding-left: 18px;
  padding-right: 18px;
 }

 .sz-about-card h3 span {
  font-size: 26px;
 }

  .sz-about-card img {
   height: 100px;
   width: auto;
   margin-bottom: 18px;
  }
}

/* sp */
@media screen and (max-width: 768px) {
 .sz-inner {
  padding: 48px 18px;
 }

 .sz-title {
  font-size: 24px;
 }

 .sz-lead {
  font-size: 15px;
  text-align: left;
 }

 .sz-about-cards {
  grid-template-columns: 1fr;
  gap: 42px;
 }

 .sz-about-card {
  min-height: auto;
 }

  .sz-card-label {
   font-size: 20px;
  }


}

/* ========================================
あなたの状況はどれに近いですか？ (sz-situation)
「相続のぜんぶとは？」(sz-about) のソースコード・記述ルールを完全同期
======================================== */

.sz-situation {
 background: #eef7e9;
}

.sz-situation-cards {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 46px;
}

/* カード自体の構造：sz-about-card の余白や角丸を完全ベース化 */
.sz-situation-card {
 position: relative;
 min-height: 250px;
 padding: 42px 28px 30px;
 border: 1.5px solid #2f7d32;
 /* 司法書士：深緑枠線 */
 border-radius: 14px;
 background: #fff;
 text-align: center;
}

/* 弁護士：オレンジ枠線 */
.sz-situation-card--orange {
 border-color: #f58a1f;
}

/* 税理士：明るい黄緑枠線 */
.sz-situation-card--lightgreen {
 border-color: #5fae34;
}

/* 上部ラベル：正解画像(2枚目)のスマートな角丸長方形を完全再現 */
.sz-situation-card .sz-card-label {
 position: absolute;
 left: 50%;
 top: -20px;
 /* 枠線の上に綺麗に重なる、カンプ通りのジャストな配置高さ */
 transform: translateX(-50%);
 min-width: 170px;
 padding: 9px 24px 10px;
 background: #2f7d32;
 /* 司法書士：深緑 */
 color: #fff;
 border-radius: 6px;
 /* 2枚目の正解通りの「ゆるやかな角丸」 */
 font-size: 22px;
 font-weight: 900;
 line-height: 1;
 white-space: nowrap;
}

/* 🚨【超重要】共通パーツから引き継がれてしまう下の三角（▼）を強制的に消し去る命令 */
.sz-situation-card .sz-card-label::after {
 display: none ;
 content: none ;
 border: none ;
}

/* 弁護士：オレンジラベル */
.sz-situation-card--orange .sz-card-label {
 background: #f58a1f;
}

/* 税理士：明るい黄緑ラベル */
.sz-situation-card--lightgreen .sz-card-label {
 background: #5fae34;
}

/* イラスト画像 */
.sz-situation-card img {
 height: 190px;
 width: auto;
 margin-bottom: 18px;
}

/* カード内見出し：sz-about-card h3 のフォントルールをベースに配色をカンプに固定 */
.sz-situation-card h3 {
 margin: 0 0 16px;
 font-size: 24px;
 line-height: 1.45;
 font-weight: 900;
 color: #2f7d32;
 /* 司法書士：深緑 */
}

.sz-situation-card--orange h3 {
 color: #f58a1f;
 /* 弁護士：オレンジ */
}

.sz-situation-card--lightgreen h3 {
 color: #5fae34;
 /* 税理士：明るい黄緑 */
}

/* カード内説明文：sz-about-card p とフォント・カラー・配置（中央揃え）を完全一致 */
.sz-situation-card p {
 margin: 0;
 font-size: 16px;
 line-height: 1.8;
 font-weight: 600;
 color: #333;
 text-align: center;
}

/* ========================================
RESPONSIVE (sz-about のレスポンシブルールをそのまま適用)
======================================== */

@media screen and (max-width: 1024px) {
 .sz-situation-cards {
  gap: 24px;
 }

 .sz-situation-card {
  padding-left: 18px;
  padding-right: 18px;
 }
}

@media screen and (max-width: 768px) {
 .sz-situation-cards {
  grid-template-columns: 1fr;
  gap: 42px;
 }

 .sz-situation-card {
  min-height: auto;
 }

  .sz-situation-card img {
   height: 150px;
   width: auto;
   margin-bottom: 18px;
  }
}









/* ========================================
ページ中CTA
======================================== */
.sz-contact {
 background: #fff8ec;
 padding: 30px 0 40px;
 overflow: hidden;
 border-top: 2px solid #f58a1f;
 border-bottom: 2px solid #f58a1f;
}

.sz-contact__inner {
 max-width: 980px;
 margin: 0 auto;
 padding: 0 20px;
 box-sizing: border-box;
}

.sz-contact__top {
 position: relative;
 min-height: 250px;
}

.sz-contact__copy {
 width: 680px;
 text-align: center;
 position: relative;
 z-index: 2;
}

.sz-contact__lead {
 display: inline-block;
 position: relative;
 margin-bottom: 8px;
 color: #333;
 font-size: 20px;
 font-weight: 500;
}

.sz-contact__title {
 margin: 0 0 16px;
 color: #333;
 font-size: 46px;
 line-height: 1.25;
 font-weight: 900;
 letter-spacing: .04em;
}

.sz-contact__title span {
 color: #f58a1f;
}

.sz-contact__text {
 margin: 0 0 28px;
 color: #333;
 font-size: 18px;
 font-weight: 800;
}

.sz-contact__points {
 display: flex;
 width: 624px;
 height: 48px;
 background: #fff;
 margin-bottom: 16px;
}

.sz-contact__point {
 flex: 1;
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 9px;
 border-right: 1px solid #f58a1f;
 color: #333;
 font-size: 18px;
 font-weight: 800;
}

.sz-contact__point:last-child {
 border-right: 0;
}

.sz-contact__point img {
 width: 34px;
 height: 34px;
 object-fit: contain;
 flex-shrink: 0;
}

.sz-contact__person {
 position: absolute;
 right: 66px;
 bottom: -16px;
 width: 220px;
 z-index: 1;
}

.sz-contact__person img {
 display: block;
 width: 100%;
 height: auto;
}

.sz-contact__balloon {
 position: absolute;
 right: -72px;
 top: 18px;
 width: 116px;
 height: 116px;
 border-radius: 50%;
 background: #fff;
 color: #f58a1f;
 display: flex;
 align-items: center;
 justify-content: center;
 text-align: center;
 font-size: 15px;
 font-weight: 900;
 line-height: 1.5;
}

.sz-contact__bottom {
 display: flex;
 gap: 20px;
}

.sz-contact__btn {
 width: 50%;
 min-height: 128px;
 border-radius: 4px;
 color: #fff;
 text-decoration: none;
 text-align: center;
 box-shadow: 0 6px 0 #d96f05;
 box-sizing: border-box;
 padding: 6px 10px 12px;
}

.sz-contact__btn--tel {
 background: #43a51f;
 box-shadow: 0 6px 0 #2d600e;
}

.sz-contact__btn--web {
 background: #f58a1f;
  box-shadow: 0 6px 0 #d96f05;
}

.sz-contact__btn-label {
 display: block;
 margin-bottom: 2px;
 color: #fff;
 font-size: 18px;
 font-weight: 800;
}

.sz-contact__btn-main {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 14px;
 color: #fff;
 font-size: 43px;
 font-weight: 700;
 line-height: 1;
}

.sz-contact__btn--web .sz-contact__btn-main {
 font-size: 36px;
}

.sz-contact__btn-main span {
 color: #fff;
}

.sz-contact__btn-icon {
 width: 48px;
 height: 48px;
 object-fit: contain;
 flex-shrink: 0;
}

.sz-contact__btn-note {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-width: 320px;
 max-width: calc(100% - 40px);
 min-height: 28px;
 margin-top: 12px;
 padding: 3px 18px;
 border-radius: 999px;
 background: #fff;
 color: #43a51f;
 font-size: 14px;
 font-weight: 900;
 line-height: 1.4;
 box-sizing: border-box;
}

.sz-contact__btn-note em {
 display: inline-block;
 margin-left: 8px;
 padding: 2px 8px;
 border-radius: 999px;
 background: #fff5ad;
 color: #43a51f;
 font-size: 10px;
 font-style: normal;
 font-weight: 900;
 line-height: 1;
}

.sz-contact__btn--web .sz-contact__btn-note {
 color: #f58a1f;
}


.cta_oisogi {
 width: 180px;
}

/* SP用女性画像 */
.sz-contact__woman-sp {
 display: none;
}

/* ============================================================
   タブレット・中画面向け：601px 〜 900px
   ============================================================ */
@media screen and (min-width: 601px) and (max-width: 900px) {
 .sz-contact {
  background: #fff8ec;
  padding: 40px 0;
  overflow: hidden;
 }

 .sz-contact__top {
  min-height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
 }

 .sz-contact__copy {
  width: 100% ;
  max-width: 680px;
  padding-right: 0;
  text-align: center;
  z-index: 2;
 }

 /* タブレット時は女性とテキストを横並びでゆったり見せる */
 .sz-contact__sp-head {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-bottom: 24px;
  width: 100%;
  box-sizing: border-box;
  padding: 0 20px;
 }

 .sz-contact__woman-sp {
  display: block ;
  width: 110px;
  height: auto;
  flex-shrink: 0;
 }

 .sz-contact__sp-copy {
  flex: 1;
  text-align: left;
 }

 .sz-contact__lead {
  margin-bottom: 6px;
 }

 .sz-contact__title {
  margin: 0 0 8px ;
  font-size: 26px ;
  line-height: 1.3 ;
 }

 .sz-contact__text {
  font-size: 16px ;
  margin-bottom: 0 ;
 }

 .sz-contact__person,
 .sz-contact__balloon {
  display: none ;
 }

 /* 3つのポイント：横並びを維持しつつジャストサイズに */
 .sz-contact__points {
  display: flex;
  width: 100% ;
  max-width: 624px;
  height: auto;
  margin: 0 auto 24px;
  background: #fff;
  border: 1px solid #f58a1f;
  border-radius: 4px;
  box-sizing: border-box;
 }

 .sz-contact__point {
  flex: 1;
  min-height: 48px;
  padding: 8px;
  font-size: 15px ;
  font-weight: 800;
  border-right: 1px solid #f58a1f;
  border-bottom: 0;
  display: flex;
  flex-direction: row;
  /* 横並びキープ */
  align-items: center;
  justify-content: center;
  gap: 8px;
 }

 .sz-contact__point:last-child {
  border-right: 0;
 }

 .sz-contact__point img {
  width: 28px;
  height: 28px;
 }

 /* ボタン：PCの2カラム（横並び）を維持して綺麗に縮小 */
 .sz-contact__bottom {
  display: flex;
  flex-direction: row;
  gap: 16px;
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
 }

 .sz-contact__btn {
  width: 50% ;
  min-height: auto ;
  padding: 12px 10px 16px ;
 }

 .sz-contact__btn-label {
  font-size: 14px ;
 }

 .sz-contact__btn-main,
 .sz-contact__btn--web .sz-contact__btn-main {
  font-size: 24px ;
  gap: 6px;
 }

 .sz-contact__btn-icon {
  width: 28px;
  height: 28px;
 }

 .sz-contact__btn-note {
  min-width: 0;
  max-width: 100%;
  width: 100%;
  margin-top: 8px;
  font-size: 11px ;
 }
}

/* ============================================================
   タブレット・中画面向け：601px 〜 900px（中央寄せ最適化）
   ============================================================ */
@media screen and (min-width: 601px) and (max-width: 900px) {
 .sz-contact {
  background: #fff8ec;
  padding: 40px 0;
  overflow: hidden;
 }

 .sz-contact__top {
  min-height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
 }

 .sz-contact__copy {
  width: 100% ;
  max-width: 100%;
  padding-right: 0;
  text-align: center;
  z-index: 2;
 }

 /* 女性とテキストを横並びのまま完全に中央寄せ */
 .sz-contact__sp-head {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  /* 🚨 中央寄せ */
  gap: 20px;
  margin-bottom: 24px;
  width: 100%;
  box-sizing: border-box;
  padding: 0 20px;
 }

 .sz-contact__woman-sp {
  display: block ;
  width: 100px;
  height: auto;
  flex-shrink: 0;
  margin: 0;
 }

 .sz-contact__sp-copy {
  flex: 0 1 auto;
  /* 🚨 広がりすぎを防いで中央に寄せる */
  text-align: left;
  min-width: 0;
 }

 .sz-contact__lead {
  margin-bottom: 6px;
 }

 .sz-contact__title {
  margin: 0 0 8px ;
  font-size: 26px ;
  line-height: 1.3 ;
  text-align: center;
 }

 .sz-contact__text {
  font-size: 16px ;
  margin-bottom: 0 ;
 }

 .sz-contact__person,
 .sz-contact__balloon {
  display: none ;
 }

 /* 3つのポイント */
 .sz-contact__points {
  display: flex;
  width: 100% ;
  max-width: 624px;
  height: auto;
  margin: 0 auto 24px;
  background: #fff;
  border: 1px solid #f58a1f;
  border-radius: 4px;
  box-sizing: border-box;
 }

 .sz-contact__point {
  flex: 1;
  min-height: 48px;
  padding: 8px;
  font-size: 15px ;
  font-weight: 800;
  border-right: 1px solid #f58a1f;
  border-bottom: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
 }

 .sz-contact__point:last-child {
  border-right: 0;
 }

 .sz-contact__point img {
  width: 28px;
  height: 28px;
 }

 /* ボタン：2カラム（横並び） */
 .sz-contact__bottom {
  display: flex;
  flex-direction: row;
  gap: 16px;
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
 }

 .sz-contact__btn {
  width: 50% ;
  min-height: auto ;
  padding: 12px 10px 16px ;
 }

 .sz-contact__btn-label {
  font-size: 14px ;
 }

 .sz-contact__btn-main,
 .sz-contact__btn--web .sz-contact__btn-main {
  font-size: 24px ;
  gap: 6px;
 }

 .sz-contact__btn-icon {
  width: 28px;
  height: 28px;
 }

 .sz-contact__btn-note {
  min-width: 0;
  max-width: 100%;
  width: 100%;
  margin-top: 8px;
  font-size: 11px ;
 }
}

/* ============================================================
   スマートフォン向け：600px 以下（左に女性、右にテキスト・中央寄せ）
   ============================================================ */
@media screen and (max-width: 600px) {
 .cta_oisogi {
   width: 150px;
  }

 .sz-contact {
  background: #fff8ec;
  padding: 20px 0;
  overflow: hidden;
 }

 .sz-contact__top {
  min-height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
 }

 .sz-contact__copy {
  width: 100% ;
  padding: 0 12px;
  box-sizing: border-box;
  z-index: 2;
 }

 /* スマホ幅でも横並び（row）を維持しつつ完全に中央寄せ */
 .sz-contact__sp-head {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  /* 🚨 中央寄せ */
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
 }

 .sz-contact__woman-sp {
  display: block ;
  width: 100px;
  /* スマホ用にコンパクト化 */
  height: auto;
  flex-shrink: 0;
  margin: 0;
 }

 .sz-contact__sp-copy {
  flex: 0 1 auto;
  /* 🚨 広がりすぎを防いで中央に寄せる */
  text-align: center;
  min-width: 0;
 }

 .sz-contact__lead {
  margin: 0 0 4px 0;
  display: inline-block;
 }

 .sz-contact__title {
  margin: 0 0 4px ;
  font-size: 19px ;
  line-height: 1.3 ;
  text-align: center;
  font-weight: bold;
 }

 .sz-contact__text {
  font-size: 13px ;
  margin-bottom: 0 ;
  text-align: left;
  line-height: 1.4 ;
 }

 .sz-contact__person,
 .sz-contact__balloon {
  display: none ;
 }

 /* 3つのポイント */
 .sz-contact__points {
  display: flex;
  width: 100% ;
  height: auto;
  margin: 0 auto 20px;
  background: #fff;
  border: 1px solid #f58a1f;
  border-radius: 4px;
  box-sizing: border-box;
 }

 .sz-contact__point {
  flex: 1;
  min-height: 60px;
  padding: 6px 2px;
  font-size: 11px ;
  font-weight: 800;
  border-right: 1px solid #f58a1f;
  border-bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-align: center;
 }

 .sz-contact__point:last-child {
  border-right: 0;
 }

 .sz-contact__point img {
  width: auto;
  height: 26px;
 }

 /* ボタン：1カラム（縦並びの100%） */
 .sz-contact__bottom {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
 }

 .sz-contact__btn {
  width: 100% ;
  min-height: auto ;
  padding: 10px 10px 12px ;
 }

 .sz-contact__btn-label {
  font-size: 12px ;
 }

 .sz-contact__btn-main,
 .sz-contact__btn--web .sz-contact__btn-main {
  font-size: 26px ;
  gap: 6px;
 }

 .sz-contact__btn-icon {
  width: 24px;
  height: 24px;
 }

 .sz-contact__btn-note {
  min-width: 0;
  max-width: 100%;
  width:80%;
  margin-top: 6px;
  font-size: 11px ;
  padding: 2px 4px;
 }
}


.sz-form {
 background: #fff;
 padding: 70px 0 90px;
}

.sz-form__inner {
 max-width: 980px;
 margin: 0 auto;
 padding: 0 20px;
 box-sizing: border-box;
}

.sz-form__title {
 display: table;
 margin: 0 auto 28px;
 padding-bottom: 8px;
 border-bottom: 5px solid #2f7d32;
 font-size: 36px;
 font-weight: 900;
 line-height: 1.4;
 color: #333;
 text-align: center;
}

.sz-form__title::after {
 display: none;
}

.sz-form__lead {
 display: flex;
 align-items: center;
 justify-content: space-around;
 gap: 17px;
 margin-bottom: 74px;
}

.sz-form__image {
 width: 48%;
 text-align: center;
}

.sz-form__image img {
 max-width: 80%;
 height: auto;
 vertical-align: bottom;
}

.sz-form__message {
 width: 44%;
}

/* 既存の1001行目付近をこちらの記述に丸ごと置き換えてください（行数は増えません） */
.sz-form__bubble {
 display: block;
 text-align: center;
 margin: 0 auto 10px;
 max-width: 762px;
 /* 画像の最大横幅を担保 */
 width: 100%;
}

.sz-form__bubble img {
 display: block;
 width: 80%;
 /* 親要素に合わせて100%伸縮 */
 height: auto;
 /* 縦横比を維持（144pxから自動縮小） */
 margin: 0 auto;
}

.sz-form__bubble::after {
 content: "";
 position: absolute;
 left: 50%;
 bottom: -18px;
 border-width: 20px 12px 0 12px;
 border-style: solid;
 border-color: #5fae34 transparent transparent transparent;
 transform: translateX(-50%) rotate(-10deg);
}

.sz-form__message h3 {
 margin: 0 0 22px;
 color: #333;
 font-size: 26px;
 font-weight: 900;
 line-height: 1.5;
  text-align: center;
}

.sz-form__message p {
 margin: 0;
 color: #333;
 font-size: 17px;
 font-weight: 600;
 line-height: 1.8;
 text-align: center;
}

.sz-form__intro {
 margin: 0 0 34px;
 color: #333;
 font-size: 19px;
 font-weight: 500;
 line-height: 1.7;
 text-align: center;
}

.sz-form__body {
 max-width: 820px;
 margin: 0 auto;
}

.sz-form__field {
 margin-bottom: 36px;
}

.sz-form__field label {
 display: block;
 margin-bottom: 6px;
 color: #333;
 font-size: 16px;
 font-weight: 500;
}

.sz-form__field label span {
 color: #ff2020;
 font-size: 14px;
}

.sz-form__field input,
.sz-form__field textarea {
 width: 100%;
 border: 1px solid #ccc;
 border-radius: 4px;
 background: #fff;
 box-sizing: border-box;
 font-size: 16px;
}

.sz-form__field input {
 height: 50px;
 padding: 0 14px;
}

.sz-form__field textarea {
 height: 220px;
 padding: 12px 14px;
 resize: vertical;
}

.sz-form__privacy {
 margin: 72px 0 48px;
 text-align: center;
}

.sz-form__privacy label {
 display: inline-flex;
 align-items: center;
 gap: 12px;
 color: #333;
 font-size: 17px;
 line-height: 1.6;
 cursor: pointer;
}

.sz-form__privacy input {
 width: 22px;
 height: 22px;
 margin: 0;
 accent-color: #5fae34;
}

.sz-form__privacy a {
 color: #333;
 text-decoration: none;
}

.sz-form__privacy em {
 color: #ff2020;
 font-style: normal;
}

.sz-form__submit {
 position: relative;
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 14px;
 width: 360px;
 height: 70px;
 margin: 0 auto;
 border: 0;
 border-radius: 4px;
 background: #f58a1f;
 box-shadow: 0 6px 0 #d96f05;
 color: #fff;
 font-size: 27px;
 font-weight: 900;
 letter-spacing: .1em;
 cursor: pointer;
}

.sz-form__submit span {
 position: relative;
 display: inline-block;
 width: 30px;
 height: 30px;
 border-radius: 50%;
 background: #fff;
}

.sz-form__submit span::after {
 content: "";
 position: absolute;
 top: 50%;
 left: 47%;
 width: 8px;
 height: 8px;
 border-top: 3px solid #f58a1f;
 border-right: 3px solid #f58a1f;
 transform: translate(-50%, -50%) rotate(45deg);
}

@media screen and (max-width: 900px) {
  .sz-form__title {
    font-size: 24px;
   }
  
   .sz-form__title::after {
    display: none;
   }

 .sz-form__title::after {
  width: 260px;
 }

 .sz-form__lead {
  flex-direction: column;
  gap: 28px;
  margin-bottom: 44px;
 }

 .sz-form__image,
 .sz-form__message {
  width: 100%;
 }

 .sz-form__message {
  text-align: center;
 }

 .sz-form__bubble {
  font-size: 18px;
 }

.sz-form__bubble img {
 display: block;
 width: 60%;
 /* 親要素に合わせて100%伸縮 */
 height: auto;
 /* 縦横比を維持（144pxから自動縮小） */
 margin: 0 auto;
}



 .sz-form__message h3 {
  font-size: 22px;
 }

 .sz-form__message p {
  font-size: 15px;
 }

 .sz-form__intro {
  font-size: 16px;
 }

 .sz-form__field {
  margin-bottom: 24px;
 }

 .sz-form__privacy {
  margin: 42px 0 36px;
  text-align: left;
 }

 .sz-form__privacy label {
  align-items: flex-start;
  font-size: 14px;
 }

 .sz-form__submit {
  width: 100%;
  max-width: 360px;
  height: 62px;
  font-size: 22px;
 }
}









.sz-merit {
 padding: 70px 0 90px;
 background: #fff;
 overflow: hidden;
}

.sz-merit__inner {
 max-width: 1200px;
 margin: 0 auto;
 padding: 0 20px;
 box-sizing: border-box;
}


 .sz-merit__title {
   display: table;
   margin: 0 auto 28px;
   padding-bottom: 8px;
   border-bottom: 5px solid #2f7d32;
   font-size: 36px;
   font-weight: 900;
   line-height: 1.4;
   color: #333;
   text-align: center;
  }

.sz-merit__lead {
 margin: 0 0 52px;
 color: #333;
 font-size: 19px;
 font-weight: 500;
 line-height: 1.7;
 text-align: center;
}

.sz-merit__content {
 position: relative;
}

.sz-merit__list {
 width: 700px;
 margin: 0 auto;
}

.sz-merit__item {
 display: flex;
 margin-bottom: 28px;
 border: 1px solid #5fae34;
 border-radius: 12px;
 overflow: hidden;
 background: #fff;
}

.sz-merit__num {
 width: 92px;
 flex-shrink: 0;
 background: #5fae34;
 color: #fff;
 display: flex;
 align-items: center;
 justify-content: center;
 font-size: 40px;
 line-height: 1;
}

.sz-merit__body {
 flex: 1;
 padding: 14px 14px 14px 22px;
}

.sz-merit__body h3 {
 margin: 0 0 14px;
 color: #2f8738;
 font-size: 28px;
 line-height: 1.5;
 font-weight: 900;
}

.sz-merit__body p {
 margin: 0;
 color: #333;
 font-size: 18px;
 line-height: 1.6;
 font-weight: 700;
}

.sz-merit__left {
 position: absolute;
  left: -224px;
  bottom: 10px;
  width: 360px;
}

.sz-merit__left img {
 width: 100%;
 height: auto;
 display: block;
}

.sz-merit__right {
 position: absolute;
 right: -116px;
 bottom: 0;
 width: 200px;
}

.sz-merit__right img {
 width: 100%;
 height: auto;
 display: block;
}

@media screen and (max-width: 1100px) {

 .sz-merit__content {
  display: flex;
  flex-direction: column;
 }

 .sz-merit__list {
  order: 1;
  width: 100%;
 }

 .sz-merit__left,
 .sz-merit__right {
  position: static;
  display: block;
  width: 350px;
  margin: 20px auto 0;
 }

 .sz-merit__left {
  order: 2;
 }

 .sz-merit__right {
  order: 3;
  display: none;
 }

 .sz-merit__left img,
 .sz-merit__right img {
  width: 100%;
  height: auto;
 }
}

@media screen and (max-width: 768px) {
 .sz-merit {
   padding-bottom: 50px;
  }
 
  .sz-merit__left {
   width: 300px;
   left: 10px;
  }
 
  .sz-merit__right {
   width: 110px;
   right: 10px;
  }

 .sz-merit__title {
  font-size: 24px;
 }

 .sz-merit__title::after {
  width: 260px;
 }

 .sz-merit__lead {
  margin-bottom: 36px;
  font-size: 16px;
 }

 .sz-merit__list {
  width: 100%;
 }

 .sz-merit__item {
  margin-bottom: 20px;
 }

 .sz-merit__num {
  width: 48px;
  font-size: 36px;
 }

 .sz-merit__body {
  padding: 18px 18px 16px;
 }

 .sz-merit__body h3 {
  margin-bottom: 10px;
  font-size: 22px;
 }

 .sz-merit__body p {
  font-size: 15px;
  line-height: 1.7;
 }
}



.sz-form-tel {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 32px;
 margin: 56px auto 0;
 padding: 18px 42px;
 max-width: 1200px;
 border-radius: 8px;
 background: #eef8e9;
 box-sizing: border-box;
}

.sz-form-tel__left {
 display: flex;
 align-items: center;
 gap: 28px;
 flex: 1 1 auto;
 min-width: 0;
}

.sz-form-tel__photo {
 width: 130px;
 height: 130px;
 border-radius: 50%;
 overflow: hidden;
 background: #fff;
 flex-shrink: 0;
}

.sz-form-tel__photo img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.sz-form-tel__text {
 flex: 1;
 min-width: 0;
}

.sz-form-tel__text h3 {
 margin: 0 0 14px;
 color: #333;
 font-size: 24px;
 font-weight: 900;
 line-height: 1.4;
 white-space: nowrap;
}

.sz-form-tel__text p {
 margin: 0;
 color: #333;
 font-size: 16px;
 font-weight: 500;
 line-height: 1.6;
 white-space: nowrap;
}

.sz-form-tel__btn {
 width: 360px;
 min-height: 128px;
 padding: 18px 18px 12px;
 border-radius: 4px;
 background: #43a51f;
 box-shadow: 0 6px 0 #2d600e;
 text-decoration: none;
 text-align: center;
 box-sizing: border-box;
 flex: 0 0 360px;
}

.sz-form-tel__main {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 14px;
 color: #fff;
 font-size: 32px;
 font-weight: 700;
 line-height: 1;
}

.sz-form-tel__main img {
 width: 48px;
 height: 48px;
 object-fit: contain;
 flex-shrink: 0;
}

.sz-form-tel__main span,
.sz-form-tel__main {
 color: #fff;
}

.sz-form-tel__note {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-width: 280px;
 max-width: calc(100% - 40px);
 min-height: 28px;
 margin-top: 12px;
 padding: 3px 18px;
 border-radius: 999px;
 background: #fff;
 color: #43a51f;
 font-size: 11px;
 font-weight: 900;
 line-height: 1.4;
 box-sizing: border-box;
}

.sz-form-tel__note em {
  display: inline-block;
   margin-left: 8px;
   padding: 2px 8px;
   border-radius: 999px;
   background: #fff5ad;
   color: #43a51f;
   font-size: 10px;
   font-style: normal;
   font-weight: 900;
}

/* ============================================================
   フォーム下電話バナー（sz-form-tel）：601px 〜 900px
   ============================================================ */
@media screen and (min-width: 601px) and (max-width: 900px) {
 .sz-form-tel {
  flex-direction: column ;
  /* タブレット幅では「上の写真エリア」と「下の緑ボタン」を縦に並べる */
  gap: 20px ;
  padding: 24px ;
  align-items: center ;
 }

 /* 写真とテキストを包む要素を横並びに固定し、中央に寄せる */
 .sz-form-tel__left {
  flex-direction: row ;
  /* 🚨 横並びを維持 */
  align-items: center ;
  justify-content: center ;
  /* 🚨 全体をセンター寄せ */
  gap: 20px ;
  width: 100% ;
 }

 .sz-form-tel__photo {
  width: 100px ;
  /* 写真を少しコンパクトに */
  height: 100px ;
  margin: 0 ;
 }

 .sz-form-tel__text {
  text-align: left ;
  /* テキストの行頭は左揃え */
  flex: 0 1 auto ;
 }

 .sz-form-tel__text h3 {
  font-size: 22px ;
  margin: 0 0 6px 0 ;
 }

 .sz-form-tel__text p {
  font-size: 15px ;
  margin: 0 ;
 }

 /* 緑色の電話ボタン */
 .sz-form-tel__btn {
  width: 100% ;
  max-width: 500px;
  /* ボタンが広がりすぎないように制限 */
  flex-basis: auto ;
  min-height: auto ;
  padding: 12px 10px 14px ;
 }
}

/* ============================================================
   フォーム下電話バナー（sz-form-tel）：600px 以下（スマホ）
   ============================================================ */
@media screen and (max-width: 600px) {
 .sz-form-tel {
  flex-direction: column ;
  /* 「上の写真エリア」と「下の緑ボタン」を縦並びに */
  gap: 16px ;
  padding: 20px 16px ;
  align-items: center ;
 }

 /* スマホ幅でも写真とテキストの横並びを完全に維持して中央寄せ */
 .sz-form-tel__left {
  display: flex ;
  flex-direction: row ;
  /* 🚨 横並びを維持 */
  align-items: center ;
  justify-content: center ;
  /* 🚨 全体をセンター寄せ */
  gap: 14px ;
  width: 100% ;
  box-sizing: border-box;
 }

 .sz-form-tel__photo {
  width: 75px ;
  /* スマホ用に写真をスケールダウン */
  height: 75px ;
  margin: 0 ;
 }

 .sz-form-tel__text {
  text-align: left ;
  flex: 0 1 auto ;
  min-width: 0;
 }

 .sz-form-tel__text h3 {
  font-size: 18px ;
  /* 画面幅に合わせて文字サイズを調整 */
  margin: 0 0 4px 0 ;
  line-height: 1.3 ;
 }

 .sz-form-tel__text p {
  font-size: 13px ;
  margin: 0 ;
  line-height: 1.4 ;
 }

 /* 緑色の電話ボタン */
 .sz-form-tel__btn {
  width: 100% ;
  flex-basis: auto ;
  min-height: auto ;
  padding: 10px 10px 12px ;
 }

 .sz-form-tel__main {
  font-size: 24px ;
  gap: 6px ;
 }

 .sz-form-tel__main img {
  width: 28px ;
  height: 28px ;
 }

 .sz-form-tel__note {
  width: 80% ;
  min-width: 0 ;
  margin-top: 6px ;
  font-size: 11px ;
  padding: 2px 4px ;
 }
}





.sz-footer {
 padding: 34px 20px 24px;
 background: #fff;
 border-top: 1px solid #e5e5e5;
}

.sz-footer__pagetop {
 position: fixed;
 right: 24px;
 bottom: 140px;
 z-index: 999;
 margin: 0;
 opacity: 0;
 visibility: hidden;
 transform: translateY(20px);
 transition:
  opacity .3s,
  visibility .3s,
  transform .3s;
}

.sz-footer__pagetop.is-show {
 opacity: 1;
 visibility: visible;
 transform: translateY(0);
}

.sz-footer__pagetop a {
 display: inline-flex;
 flex-direction: column;
 align-items: center;
 gap: 8px;
 color: #666;
 font-size: 14px;
 font-weight: 700;
 text-decoration: none;
 line-height: 1;
 transition: opacity .2s;
}

.sz-footer__pagetop a:hover {
 opacity: .7;
}

.sz-footer__pagetop span {
 position: relative;
 width: 44px;
 height: 44px;
 border-radius: 50%;
 border: 1px solid #bbb;
 background: #fff;
}

.sz-footer__pagetop span::before {
 content: "";
 position: absolute;
 top: 54%;
 left: 50%;
 width: 12px;
 height: 12px;
 border-top: 2px solid #666;
 border-left: 2px solid #666;
 transform: translate(-50%, -50%) rotate(45deg);
}

.sz-footer__nav {
 text-align: center;
}

.sz-footer__list {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 align-items: center;
 gap: 0;
 margin: 0;
 padding: 0;
 list-style: none;
}

.sz-footer__item {
 position: relative;
 padding: 0 28px;
 line-height: 1;
}

.sz-footer__item::after {
 content: "";
 position: absolute;
 top: 50%;
 right: 0;
 width: 1px;
 height: 36px;
 background: #cfc8bb;
 transform: translateY(-50%);
}

.sz-footer__item:last-child::after {
 display: none;
}

.sz-footer__item a {
 color: #444;
 font-size:14px;
 font-weight: 700;
 line-height: 1.6;
 text-decoration: underline;
 text-underline-offset: 3px;
 transition: opacity .2s;
}

.sz-footer__item a:hover {
 opacity: .7;
}


/* 既存のフッター関連（sz-footer等）のスタイルの近くを上書き・内包させます */
/* 既存の sz-footer__disclaimer 関連をこちらに丸ごと差し替えます */
.sz-footer__disclaimer {
 margin-top: 24px;
 margin-bottom: 16px;
 padding: 0 20px;
 text-align: center;
}

/* 💡 新しく目立たせた見出しのスタイル */
.sz-footer__disclaimer tragic,
/* エラー除け */
.sz-footer__disclaimer strong {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 6px;
  font-size: 14px;
 font-weight: 900;
 margin-bottom: 8px;

}

/* 💡 アイコン（iマーク）の再現 */
.sz-footer__disclaimer strong::before {
 content: "i";
 display: inline-block;
 width: 16px;
 height: 16px;
 line-height: 16px;
 background: #fbead2;
 color: #333;
 /* 丸の中の文字を黒に */
 border-radius: 50%;
 font-size: 11px;
 font-family: serif;
 /* iの文字を綺麗に見せるフォント */
 font-weight: bold;
 text-align: center;
}

/* 本文のスタイル */
.sz-footer__disclaimer p {
 color: #333;
 font-size: 12px;
 line-height: 1.6;
 max-width: 900px;
 margin: 0 auto;
 text-align: left;
}

.sz-footer__disclaimer a {
 color: blue;
 text-decoration: underline;
}

@media screen and (max-width: 768px) {

 .sz-footer {
  padding: 28px 16px 20px;
 }

  .sz-footer__pagetop {
   right: 14px;
   bottom: 110px !important;
  }

 .sz-footer__list {
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
 }

 .sz-footer__item {
  padding: 0;
 }

 .sz-footer__item::after {
  display: none;
 }

 .sz-footer__item a {
  font-size: 15px;
 }

}








.sz-fixed-cta {
 position: fixed;
 left: 0;
 bottom: 0;
 width: 100%;
 background: #fdf9ed;
 box-shadow: 0 -2px 10px rgba(0, 0, 0, .08);
 z-index: 9998;
 box-sizing: border-box;
 border-top: 1px solid #f58a1f;
}

.sz-fixed-cta__inner {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 26px;
 max-width: 1420px;
 margin: 0 auto;
 padding: 10px;
}

.sz-fixed-cta__lead {
 display: flex;
 align-items: center;
 gap: 18px;
 flex-shrink: 0;
}

.sz-fixed-cta__img {
 width: 125px;
 margin-top: -38px;
 margin-bottom: -20px;
 flex-shrink: 0;
}

.sz-fixed-cta__img img {
 display: block;
 width: 100%;
 height: auto;
}

.sz-fixed-cta__text {
/* min-width: 250px; */
 line-height: 1.2;
}

.sz-fixed-cta__sub {
 width: 130px;
 margin: 0 auto 5px;
}

.sz-fixed-cta__sub img {
 display: block;
 width: 100%;
 height: auto;
}

.sz-fixed-cta__title {
 margin: 0;
  color: #f58a1f;
  font-size: 26px;
  font-weight: 900;
  line-height: 1.3;
}

.sz-fixed-cta__small {
 margin: 0;
 color: #333;
 font-size: 22px;
 font-weight: 900;
 text-align: center;
}

.sz-fixed-cta__btn {
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 10px;
 width: 420px;
 min-height: 88px;
 padding: 12px 22px;
 border-radius: 4px;
 text-decoration: none;
 box-sizing: border-box;
 flex-shrink: 0;
}

.sz-fixed-cta__btn--tel {
 background: #43a51f;
 box-shadow: 0 6px 0 #2d600e;
}

.sz-fixed-cta__btn--web {
 background: #f58a1f;
 box-shadow: 0 6px 0 #d96f05;
}




.sz-fixed-cta__content {
 width: 100%;
 display: flex;
 flex-direction: column;
 align-items: center;
}

.sz-fixed-cta__main {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 7px;

 color: #fff;
 font-size: 34px;
 font-weight: 700;
 line-height: 1;
 white-space: nowrap;
}

.sz-fixed-cta__main img {
 width: 40px;
 height: 40px;
 object-fit: contain;
 flex-shrink: 0;
}

.sz-fixed-cta__btn--web .sz-fixed-cta__main {
 font-size: 28px;
}

.sz-fixed-cta__note {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 8px;
 width: 80%;
 min-height: 24px;
 padding: 2px 12px;
 border-radius: 999px;
 background: #fff;
 color: #43a51f;
 font-size: 11px;
 font-weight: 900;
 line-height: 1.4;
 box-sizing: border-box;
}

.sz-fixed-cta__btn--web .sz-fixed-cta__note {
 color: #f58a1f ;
}

.sz-fixed-cta__note em {
 display: inline-block;
 padding: 2px 8px;
 border-radius: 999px;
 background: #fff5ad;
 color: #43a51f;
 font-size: 10px;
 font-style: normal;
 font-weight: 900;
}

.sz-fixed-cta__btn--web .sz-fixed-cta__note {
 color: #f58a1f;
}

@media screen and (max-width: 1200px) {
 .sz-fixed-cta__lead {
  display: none;
 }

 .sz-fixed-cta__btn {
  width: 40%;
 }
}

@media screen and (max-width: 768px) {
 .sz-fixed-cta {
  padding: 10px;
 }

 .sz-fixed-cta__inner {
  gap: 10px;
 }

 .sz-fixed-cta__btn {
  width: 50%;
  min-height: auto;
  gap: 8px;
  padding: 10px 8px 8px;
 }

 

 .sz-fixed-cta__main,
 .sz-fixed-cta__btn--web .sz-fixed-cta__main {
  font-size: 18px;
 }

 .sz-fixed-cta__note {
  display: none;
 }

 .sz-fixed-cta__note em {
  display: none;
 }

.sz-fixed-cta__main img {
 width: 30px;
 height: 30px;
 object-fit: contain;
 flex-shrink: 0;
}
}

body {
 padding-bottom: 120px;
}

.sz-footer__pagetop {
 bottom: 140px;
}

@media screen and (max-width: 768px) {
 body {
  padding-bottom: 90px;
 }

  .sz-footer__pagetop-img {
   display: block;
   width: 90px;
   /* 💡 PC時は160pxの大きめサイズに拡大 */
   height: auto;
   max-width: 100%;
  
  }
}


/* ========================================
スクロール表示：高級感のあるゆっくり出現
======================================== */

.js-fade-up {
 opacity: 0;
 transform: translateY(50px);

 transition:
  opacity 1.6s cubic-bezier(.22, 1, .36, 1),
  transform 1.6s cubic-bezier(.22, 1, .36, 1);
}

.js-fade-up.is-show {
 opacity: 1;
 transform: translateY(0);
}


/* 641〜768pxでFVがSP表示になり狭くなる問題の補正 */
@media screen and (min-width: 641px) and (max-width: 768px) {
  .bd-no-webp #a-billboard,
  .bd-webp #a-billboard,
  #a-billboard {
    min-height: 900px ;
    padding-bottom: 36px ;
    background-image: url("../_src/index/fv_sp.png") ;
    background-position: center center ;
    background-size: cover ;
    background-repeat: no-repeat ;
  }

  .fv-copy {
    position: absolute ;
    left: 5% ;
    top: 34px ;
    padding: 0 ;
  }

  #search-form {
    position: absolute ;
    left: 5% ;
    top: 230px ;
    width: 380px ;
    margin: 0 ;
    padding: 24px 28px ;
  }

  .fv-cta {
    position: relative ;
    width: calc(100% - 50px) ;
    margin: 24px auto 0 ;
    padding: 20px ;
  }
}


/* ========================================
共通：押せるボタン（ホバーで3pxへこむ）
======================================== */
.push-btn {
 transition:
  transform .15s ease,
  box-shadow .15s ease ;
}

/* ホバーした時に、ほどよく少しだけへこむ（3px） */
.push-btn:hover {
 transform: translateY(3px) ;
}

/* クリック時もホバー状態をキープ */
.push-btn:active {
 transform: translateY(3px) ;
}


/*　↓↓↓ここから↓↓↓
 ========================================
別のcssにあるが、デザインを変えたいためここに記述
======================================== */

.-dress_pp023a .a-billboard {
 color: #fff;
 text-shadow:none;
 background-color: #fff;
}

/* ========================================
スマホメニュー：開いた時の表示調整
======================================== */

@media screen and (max-width: 768px) {

 #js-globalNavigation .-menu_right {
  background: #fff ;
  padding: 84px 24px 32px ;
  text-align: center ;
 }

 #js-globalNavigation ul.c-menu {
  display: block ;
  margin: 0 auto ;
  padding: 0 ;
  width: 100% ;
  max-width: 320px ;
 }

 #js-globalNavigation ul.c-menu li {
  display: block ;
  margin: 0 ;
  padding: 0 ;
  border-bottom: 1px solid #ddd ;
 }

 #js-globalNavigation ul.c-menu li:first-child {
  border-top: 1px solid #ddd ;
 }

 #js-globalNavigation ul.c-menu li a {
  display: block ;
  padding: 18px 8px ;
  color: #333 ;
  font-size: 16px ;
  font-weight: 500 ;
  line-height: 1.7 ;
  letter-spacing: .08em ;
  text-align: center ;
  text-decoration: none ;
 }

 #js-globalNavigation .header-contact {
  display: none ;
 }

  #spNavigationTrigger.-js-menuPosition-right_top_fixed {
   top: -40px;
   left: auto;
   right: 0
  }


}
/* ========================================
お知らせにあった背景画像削除 ＆ 周辺の緑ノイズを消去
======================================== */
.bd-webp.-dress_pp023a {
 background-image: none ;
}

#bk21792213,
#bk21792213 *,
#bk21792158,
#bk21792158 *,
.c-hr,
.link-top,
.link-top::before,
.link-top::after {
 background: none ;
 border: none ;
 display: none ;
 height: 0 ;
 padding: 0 ;
 margin: 0 ;
}

/* ========================================
検索結果画面に左右余白を入れる
======================================== */
@media screen and (max-width: 768px) {
 #bk-shoshi-list {
  padding-left: 16px;
  padding-right: 16px;
 }
}





/* ========================================
   スマホ表示（768px以下）の横スクロール完全修正（強化版）
   ======================================== */
@media screen and (max-width: 768px) {

 /* 1. すべての要素の横揺れ・はみ出しの根本原因をリセット */
 html,
 body,
 .wrapper,
 #page,
 .bg-document {
  /* 🚨 ページ全体で右側にはみ出たものを強制的に非表示にしてスクロールを消す */
  overflow-x: hidden !important;
 }

 /* 2. paddingを含める設定を主要ブロックに強制 */
 .sz-contact,
 .sz-contact__inner,
 .sz-contact__points,
 .sz-contact__point,
 .sz-contact__bottom,
 .sz-contact__btn,
 .sz-contact__btn-note,
 .sz-form,
 .sz-form__inner,
 .sz-form-tel,
 .sz-form-tel__left,
 .sz-form-tel__btn,
 .sz-fixed-cta,
 .sz-fixed-cta__inner,
 .sz-fixed-cta__btn,
 .fv-cta {
  box-sizing: border-box !important;
  max-width: 100% !important;
  /* 🚨 どんな要素も画面幅を超えないように縛る */
 }

 /* 3. 中身が固定値で突っ張っている要素をレスポンシブ化 */
 .sz-contact__points {
  width: 100% !important;
 }

 .sz-contact__btn-note,
 .sz-form-tel__note {
  min-width: 0 !important;
  /* 🚨 PC用の min-width: 320px; などを強制解除 */
  width: 100% !important;
 }

 /* 4. 画面下部固定CTAのはみ出しをリセット */
 .sz-fixed-cta {
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
  overflow: hidden !important;
 }

 .sz-fixed-cta__inner {
  width: 100% !important;
  padding: 10px !important;
  gap: 8px !important;
 }

 /* 左右に50%ずつ並ぶボタンの横揺れ防止 */
 .sz-fixed-cta__btn {
  width: 50% !important;
  min-width: 0 !important;
  flex-shrink: 1 !important;
  padding: 10px 4px 8px !important;
 }

 /* ボタン内の文字が大きすぎて溢れるのを防ぐ */
 .sz-fixed-cta__main,
 .sz-fixed-cta__btn--web .sz-fixed-cta__main {
  font-size: 4vw !important;
  white-space: nowrap !important;
 }

 .sz-fixed-cta__main img {
  width: 24px !important;
  height: 24px !important;
 }
}

/* 画面幅が狭いスマホ（400px以下）向けの文字サイズ保険 */
@media screen and (max-width: 400px) {

 .sz-fixed-cta__main,
 .sz-fixed-cta__btn--web .sz-fixed-cta__main {
  font-size: 13px !important;
 }
}


/* ========================================
   お知らせページの背景削除
======================================== */
.bd-webp.-dress_pp023a {
 background-image:none !important;
}