@charset "UTF-8";
/* html5 reset*/
html {
  overflow-y: scroll;
}

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, dialog, figure, footer, header,
hgroup, menu, nav, section,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset, img {
  border: 0;
}

h1, h2, h3, h4, h5, h6, address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
}

li {
  list-style: none;
}

article, aside, dialog, figure, footer, header, hgroup, nav, section {
  display: block;
}

q:before, q:after {
  content: "";
}

abbr, acronym {
  border: 0;
  font-variant: normal;
}

sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

img {
  vertical-align: bottom;
}

/*sass用　ブレイクポイント定義*/
:root {
  --font-weight-Regular: 400;
  --font-weight-Medium: 500;
  --font-weight-SemiBold: 600;
  --font-weight-Bold: 700;
  --font-weight-Black: 900;
}

/* original reset */
a {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

html {
  line-height: 1;
}

/* common item */
.clrfx:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
  overflow: hidden;
  font-size: 0.1em;
  line-height: 0;
}

.clrfx {
  zoom: 1;
}

strong {
  font-weight: bold;
}

em {
  font-style: italic;
}

/* items */
img {
  max-width: 100%;
  height: auto;
  image-rendering: -webkit-optimize-contrast;
}

a img {
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}

a:hover img {
  opacity: 0.7;
}

/* body style */
body {
  font-size: 14px;
  -webkit-text-size-adjust: 100%;
}

/* common */
/* SP/PC出し分け（PCは1024px〜） */
@media (width > 1023px) {
  .sp_v {
    display: none !important;
  }
}

@media (width <= 1023px) {
  .pc_v {
    display: none !important;
  }
}

/*==============================
	LP：SECOND STAGE
	SP：375px基準（〜1023px は最大600pxの1カラム）
	PC：1440pxデザイン（コンテンツ幅1200px）基準、1024px〜
===============================*/
:root {
  --color-red:#FF0000;
  --color-red-pale:#FFA5A5;
  --color-green:#00BE55;
  --color-green-pc:#00C52A;
  --color-yellow:#FFE100;
  --color-cream:#FFF5E8;
  --color-cream-pc:#FFF3E1;
  --color-pink:#FFEFF0;
  --color-pink-dark:#FFBFBF;
  --color-gray:#E6E6E6;
  --color-black:#000000;
  --color-beige:#F5D9A0;
  --color-shop:#FFEFE5;
  --color-base-blue:#1D1F87;
  --height-hamburger:75px;
  --z-index-hamburger:1001;
  --z-index-hamburgermenu:1000;
  --font-plex:"IBM Plex Sans JP","Noto Sans JP","游ゴシック",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  --font-noto:"Noto Sans JP","IBM Plex Sans JP",sans-serif;
  --font-lato:"Lato","IBM Plex Sans JP",sans-serif;
}

/* SP：375px基準 1rem=10px、600pxで固定
   PC：1240px以上で1rem=10px、それ未満は画面幅に合わせて縮小（コンテンツ幅=120rem） */
html {
  font-size: min(2.6667vw, 16px);
}
@media (width > 1023px) {
  html {
    font-size: min(10px, 0.8064516129vw);
  }
}

body {
  font-family: var(--font-plex);
  font-weight: var(--font-weight-Medium);
  color: var(--color-black);
  background: #fff;
  line-height: 1.5;
}
@media (min-width: 601px) {
  body {
    background: var(--color-beige);
  }
}

#wrapper {
  position: relative;
  max-width: 600px;
  margin: 0 auto;
  background: #fff;
  overflow: hidden;
}
@media (width > 1023px) {
  #wrapper {
    max-width: 120rem;
  }
}

.lp {
  display: block;
  font-size: 1.4rem;
}
.lp *, .lp *::before, .lp *::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.lp img {
  max-width: 100%;
  height: auto;
}
.lp .red {
  color: var(--color-red);
}
.lp .yl {
  color: var(--color-yellow);
}
@media (width > 1023px) {
  .lp {
    -webkit-font-feature-settings: "palt";
            font-feature-settings: "palt";
  }
}

/* ---- 共通パーツ ---- */
.tag_red {
  display: inline-block;
  padding: 0.5rem 1.5rem;
  background: var(--color-red);
  color: #fff;
  font-size: 1.5rem;
  font-weight: var(--font-weight-Bold);
  border-radius: 0.4rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media (width > 1023px) {
  .tag_red {
    padding: 0.3rem 2rem;
    font-size: 2.4rem;
  }
}

.c_ttl_ul {
  text-align: center;
  font-size: 2.7rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.65;
  letter-spacing: 0.05em;
}
.c_ttl_ul .ul {
  display: inline-block;
  padding: 0 0.4rem 0.2rem;
  border-bottom: 2px solid var(--color-black);
  line-height: 1.35;
  margin-bottom: 0.6rem;
}
.c_ttl_ul.is_white {
  color: #fff;
}
.c_ttl_ul.is_white .ul {
  border-color: #fff;
}
@media (width > 1023px) {
  .c_ttl_ul {
    font-size: 4.4rem;
    line-height: 1.5;
  }
  .c_ttl_ul .ul {
    padding: 0 0 0.4rem;
    margin-bottom: 1.6rem;
  }
  .c_ttl_ul .ul.is_red_pc {
    border-color: var(--color-red);
  }
}

.btn_wrap {
  padding: 0 1.8rem;
  text-align: center;
}

.c_btn_green,
.c_btn_red {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  max-width: 34rem;
  height: 9.2rem;
  margin: 0 auto;
  padding: 0 3.2rem 0 1.6rem;
  white-space: nowrap;
  border: none;
  border-radius: 1rem;
  background: var(--color-green);
  -webkit-box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
          box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
  color: #fff;
  font-family: var(--font-plex);
  font-size: 2.3rem;
  font-weight: var(--font-weight-SemiBold);
  letter-spacing: 0.05em;
  text-decoration: none;
  cursor: pointer;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
  /* 無効時（同意チェック前など） */
}
.c_btn_green::after,
.c_btn_red::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 2rem;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.8rem 0 0.8rem 1rem;
  border-color: transparent transparent transparent #fff;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c_btn_green:hover,
.c_btn_red:hover {
  opacity: 0.8;
  text-decoration: none;
}
.c_btn_green:disabled, .c_btn_green:disabled:hover,
.c_btn_red:disabled,
.c_btn_red:disabled:hover {
  opacity: 0.4;
  -webkit-box-shadow: none;
          box-shadow: none;
  cursor: not-allowed;
}
@media (width > 1023px) {
  .c_btn_green,
  .c_btn_red {
    max-width: 44.6rem;
    height: 9.4rem;
    padding: 0 4rem 0 2rem;
    font-size: 3.2rem;
    letter-spacing: 0.08em;
  }
  .c_btn_green::after,
  .c_btn_red::after {
    right: 2.6rem;
    border-width: 0.9rem 0 0.9rem 1rem;
  }
}

.c_btn_red {
  background: var(--color-red);
  height: 8rem;
}
@media (width > 1023px) {
  .c_btn_red {
    height: 9.4rem;
  }
}

.c_btn_red_s {
  position: relative;
  display: inline-block;
  width: 20rem;
  padding: 0.55rem 1.6rem 0.55rem 1.9rem;
  border-radius: 0.2rem;
  background: var(--color-red);
  color: #fff;
  font-size: 1.5rem;
  font-weight: var(--font-weight-Bold);
  text-align: center;
  line-height: 1.2;
}
.c_btn_red_s::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0.9rem;
  width: 0.8rem;
  height: 1.4rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 12'%3E%3Cpolyline points='.5 .5 6.3 6 .5 11.5' fill='none' stroke='%23fff' stroke-width='1.3'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c_btn_red_s:hover {
  opacity: 0.8;
  text-decoration: none;
}
@media (width > 1023px) {
  .c_btn_red_s {
    padding: 0.7rem 2rem 0.7rem 1.5rem;
    border-radius: 0.2rem;
    font-size: 1.47rem;
  }
  .c_btn_red_s::after {
    right: 1.2rem;
  }
}

.photo_full .photo_full_picture {
  display: block;
}
.photo_full .photo_full_img {
  display: block;
  width: 100%;
}

.spark {
  display: inline-block;
  width: 1.5rem;
  height: auto;
  vertical-align: top;
}

/* ---- ロゴ（クローバーはSVG、AT HOUSINGは画像） ---- */
.logo_set {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 3.4%;
}
.logo_set .logo_set_mark {
  width: 26.8%;
}
.logo_set .logo_set_txt {
  width: 69.8%;
}

/* ---- ヘッダー ---- */
.lp_header {
  position: relative;
  height: 7.5rem;
  background: #fff;
}
.lp_header .header_logo_link {
  display: block;
}
.lp_header .header_logo {
  position: absolute;
  top: 50%;
  left: 2rem;
  width: 22.8rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  line-height: 0;
}
@media (width > 1023px) {
  .lp_header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    height: 12.7rem;
    padding: 0 6rem 0 6.2rem;
  }
  .lp_header .header_logo {
    position: static;
    width: 23rem;
    -webkit-transform: none;
            transform: none;
  }
}
.lp_header .header_brands {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.6rem;
}
.lp_header .header_brand {
  width: 13.3rem;
  height: 6.1rem;
  border: 2px solid #D9D9D9;
  background: #fff;
}
.lp_header .header_brand_link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 100%;
  padding: 0.8rem 1rem;
}
.lp_header .header_brand_img {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

/* ---- SPナビ（ハンバーガーメニュー） ---- */
.navBtn {
  position: fixed;
  top: 0;
  right: 0;
  width: 7.5rem;
  height: 7.5rem;
  margin: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  z-index: var(--z-index-hamburger);
  cursor: pointer;
}
.navBtn .navIcon {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
  padding: 0;
  border: none;
  border-radius: 0;
  outline: none;
  background: var(--color-red);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  cursor: pointer;
}
.navBtn .navbar {
  position: relative;
  display: block;
  width: 3.2rem;
  margin-inline: auto;
  aspect-ratio: 1/1;
}
.navBtn .menu-btn-bar {
  position: absolute;
  top: 50%;
  left: 0;
  display: block;
  width: 100%;
  height: 0.4rem;
  border-radius: 0.2rem;
  background-color: #fff;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
}
.navBtn .menu-btn-top {
  -webkit-transform: translateY(-1rem);
          transform: translateY(-1rem);
}
.navBtn .menu-btn-bottom {
  -webkit-transform: translateY(1rem);
          transform: translateY(1rem);
}
.navBtn .navIcon.btn_on .menu-btn-middle {
  opacity: 0;
}
.navBtn .navIcon.btn_on .menu-btn-top {
  -webkit-transform: rotate(-45deg) translateY(0);
          transform: rotate(-45deg) translateY(0);
}
.navBtn .navIcon.btn_on .menu-btn-bottom {
  -webkit-transform: rotate(45deg) translateY(0);
          transform: rotate(45deg) translateY(0);
}

.menu-wrap {
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  max-width: 600px;
  height: 100vh;
  margin: 0;
  padding: var(--height-hamburger) 20px 60px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background-color: rgba(255, 255, 255, 0.965);
  -webkit-transition: visibility 0.2s, -webkit-transform 0.2s ease-in-out;
  transition: visibility 0.2s, -webkit-transform 0.2s ease-in-out;
  transition: transform 0.2s ease-in-out, visibility 0.2s;
  transition: transform 0.2s ease-in-out, visibility 0.2s, -webkit-transform 0.2s ease-in-out;
  z-index: var(--z-index-hamburgermenu);
  overflow-x: hidden;
  overflow-y: auto;
}
.menu-wrap .menu-inner {
  max-width: 400px;
  width: 86%;
  margin: 40px auto 0;
  padding-top: 60px;
  padding-bottom: 60px;
}
.menu-wrap .menu_logo_01 {
  max-width: 22.8rem;
  width: 70%;
  margin-inline: auto;
}
.menu-wrap .global_nav_block_01 {
  margin-top: 35px;
}

.menuOff {
  -webkit-transform: translate3d(100%, 0%, 0);
          transform: translate3d(100%, 0%, 0);
  -webkit-box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0);
          box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0);
}

.menuOn {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  -webkit-box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
          box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
}

/* 601px以上では閉じたメニューが画面内に残るため非表示にする */
.menu-wrap.menuOff:not(.menuOn) {
  visibility: hidden;
}

@media (min-width: 601px) {
  .navBtn,
  .menu-wrap {
    right: calc(50% - 300px);
  }
}
/* PCはヘッダーにブランドロゴを並べるため、ハンバーガーメニューは使わない */
@media (width > 1023px) {
  .navBtn,
  .menu-wrap {
    display: none;
  }
}
.global-nav-menu-01 .nav_item_01 {
  padding-top: 24px;
  padding-bottom: 24px;
  border-bottom: 2px dotted #c4c4c4;
}
.global-nav-menu-01 .p_menu_01 {
  position: relative;
  display: block;
  padding: 0 40px 0 20px;
  color: var(--color-black);
  font-size: 14px;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.08em;
  -webkit-transition: 0.3s all ease-out;
  transition: 0.3s all ease-out;
}
.global-nav-menu-01 .p_menu_01::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 12px;
  height: 2px;
  background: var(--color-red);
  border-radius: 5px;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.global-nav-menu-01 .p_menu_01:hover {
  text-decoration: none;
  opacity: 0.7;
}

/* ---- ロックアップ（40代からの住宅の買い方 新定番 SECOND STAGE）----
   --lk で全体の拡大率を指定（SP=1） */
.ss_lockup {
  --lk:1;
  width: calc(26.4rem * var(--lk));
  margin: 0 auto;
  color: var(--color-red);
}
.ss_lockup .lockup_catch {
  line-height: 0;
}
.ss_lockup .lockup_catch_img {
  width: 100%;
}
.ss_lockup .lockup_logo {
  margin-top: calc(1.2rem * var(--lk));
  line-height: 0;
}
.ss_lockup .lockup_logo_img {
  width: 100%;
}
.ss_lockup.is_white {
  color: #fff;
}
@media (width > 1023px) {
  .ss_lockup {
    --lk:1.77;
    margin: 0;
  }
}

/* メインビジュアル用（60歳を過ぎたら〜3万円台をSVG1枚で表示） */
.mv_price_visual {
  width: 25.8rem;
  margin: 2.2rem auto 0;
  line-height: 0;
}
@media (width > 1023px) {
  .mv_price_visual {
    width: 100%;
    margin: 0;
  }
}

.mv_price_visual_picture {
  display: block;
}

.mv_price_visual_img {
  width: 100%;
}

.mv_note {
  margin-top: 1.4rem;
  font-size: 1rem;
  font-weight: var(--font-weight-Bold);
  text-align: center;
  letter-spacing: -0.02em;
}
.mv_note.is_white {
  color: #fff;
}
@media (width > 1023px) {
  .mv_note {
    margin-top: 0.6rem;
    font-size: 1.44rem;
    font-weight: var(--font-weight-Medium);
    text-align: right;
    letter-spacing: 0;
  }
}

/* PC：ロックアップ（左）＋返済額（右）の2カラム */
@media (width > 1023px) {
  .mv_price_block {
    width: 57rem;
  }
}

/* ---- メインビジュアル ---- */
.sec_mv .mv_photos {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  /* 下端の白グラデーション（SP・PC共通） */
}
.sec_mv .mv_photos::after {
  content: "";
  position: absolute;
  inset: 0;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(55%, rgba(255, 255, 255, 0)), to(#fff));
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 55%, #fff 100%);
  pointer-events: none;
}
.sec_mv .mv_photo {
  line-height: 0;
}
.sec_mv .mv_photo_picture {
  display: block;
}
.sec_mv .mv_photo_img {
  width: 100%;
  aspect-ratio: 189/125;
  -o-object-fit: cover;
     object-fit: cover;
}
.sec_mv .mv_copy {
  padding: 3.2rem 0 4.5rem;
}
.sec_mv .btn_wrap {
  margin-top: 3.6rem;
}
@media (width > 1023px) {
  .sec_mv .mv_photos {
    grid-template-columns: repeat(4, 1fr);
  }
  .sec_mv .mv_photo:nth-child(1) {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .sec_mv .mv_photo:nth-child(2) {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .sec_mv .mv_photo:nth-child(3) {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .sec_mv .mv_photo:nth-child(4) {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .sec_mv .mv_photo_img {
    aspect-ratio: 300/226;
  }
  .sec_mv .mv_copy {
    display: grid;
    grid-template-columns: 47rem 57rem;
    -webkit-column-gap: 4.2rem;
       -moz-column-gap: 4.2rem;
            column-gap: 4.2rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    padding: 3.2rem 0 6.4rem;
  }
  .sec_mv .mv_note {
    margin-top: 1.6rem;
    text-align: center;
  }
  .sec_mv .btn_wrap {
    grid-column: 1/-1;
    margin-top: 5.8rem;
  }
}

/* ---- こんなことを言われませんでしたか ---- */
/* 回答ボックスの背面までグレーを敷く */
.sec_worry {
  position: relative;
  background-color: var(--color-gray);
  background-image: radial-gradient(#fff 1.2px, transparent 1.3px);
  background-size: 1.6rem 1.6rem;
  /* 文字数の多い左側の吹き出しは字間を詰める */
}
.sec_worry .worry_inner {
  padding: 6.2rem 0 0;
}
.sec_worry .worry_lead {
  font-size: 1.6rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
  text-align: center;
}
.sec_worry .worry_ttl {
  font-size: 2.5rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
  text-align: center;
  line-height: 1.75;
}
.sec_worry .worry_ttl .ul {
  display: inline-block;
  padding: 0 0.5rem 0.1rem;
  border-bottom: 2px solid var(--color-black);
  line-height: 1.3;
}
.sec_worry .worry_bubbles {
  position: relative;
  height: 36rem;
  margin-top: 2.1rem;
}
.sec_worry .bubble {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 14.4rem;
  aspect-ratio: 135.75/141.55;
  /* 吹き出しのしっぽ分（幅の約4.27%）だけ下に余白を取り、文字を円の中央に置く */
  padding-bottom: 0.61rem;
  background: url(./images/bubble_tail_r.svg) center/100% 100% no-repeat;
  text-align: center;
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.65;
  letter-spacing: 0.02em;
}
.sec_worry .bubble.b2, .sec_worry .bubble.b4 {
  background-image: url(./images/bubble_tail_l.svg);
}
.sec_worry .b1 {
  top: 0;
  left: 4.4rem;
}
.sec_worry .b2 {
  top: 6rem;
  left: 19.4rem;
}
.sec_worry .b3 {
  top: 16rem;
  left: 4.8rem;
}
.sec_worry .b4 {
  top: 22rem;
  left: 19.4rem;
}
.sec_worry .b1, .sec_worry .b3 {
  letter-spacing: -0.03em;
}
@media (width <= 1023px) {
  .sec_worry .b1, .sec_worry .b3 {
    width: 15rem;
    padding-bottom: 0.64rem;
  }
  .sec_worry .b1 {
    left: 3.8rem;
  }
  .sec_worry .b3 {
    left: 4.2rem;
  }
}
.sec_worry .worry_ill {
  position: relative;
  z-index: 1;
  width: 22.8rem;
  margin: -7.6rem auto 0;
  line-height: 0;
}
.sec_worry .worry_ill_img {
  width: 100%;
}
.sec_worry .worry_answer {
  position: relative;
  z-index: 2;
  margin: -2.5rem 0 0;
  padding: 0 1.8rem;
}
.sec_worry .answer_box {
  position: relative;
  padding: 2.1rem 1rem 0;
  background: #fff;
  text-align: center;
  font-weight: var(--font-weight-Bold);
  /* 下の山形（疑似要素）ごと影を付けるため filter を使う */
  -webkit-filter: drop-shadow(0 0 0.3rem rgba(0, 0, 0, 0.2));
          filter: drop-shadow(0 0 0.3rem rgba(0, 0, 0, 0.2));
}
.sec_worry .answer_box::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4.1rem;
  width: 100%;
  height: 4.2rem;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.sec_worry .answer_box .line1 {
  font-size: 2.1rem;
  letter-spacing: 0.05em;
}
.sec_worry .answer_box .line2 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 0.5rem;
}
.sec_worry .answer_box .line2 .tag_red {
  padding: 0.3rem 1.6rem;
  border-radius: 10rem;
  font-size: 2.2rem;
  letter-spacing: 0.08em;
}
.sec_worry .answer_box .line2 .wo {
  margin-left: 0.4rem;
  font-size: 2.2rem;
}
.sec_worry .answer_box .line3 {
  margin-top: 1.3rem;
  font-size: 2.1rem;
  letter-spacing: 0.05em;
  line-height: 1.55;
}
@media (width > 1023px) {
  .sec_worry {
    /* 人物イラストを吹き出しより前面に出す */
  }
  .sec_worry .worry_inner {
    position: relative;
    padding: 8rem 0 0;
  }
  .sec_worry .worry_lead {
    font-size: 2.72rem;
  }
  .sec_worry .worry_ttl {
    margin-top: 0.6rem;
    font-size: 4.25rem;
    line-height: 1.5;
    letter-spacing: 0.03em;
  }
  .sec_worry .worry_ttl .ul {
    padding: 0 0 0.8rem;
  }
  .sec_worry .worry_ttl .ul:first-child {
    padding-left: 1.6rem;
  }
  .sec_worry .worry_ttl .ul:last-child {
    padding-right: 1.6rem;
  }
  .sec_worry .worry_bubbles {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
  }
  .sec_worry .bubble {
    z-index: 1;
    width: 24.4rem;
    padding-bottom: 1.04rem;
    font-size: 2.31rem;
    line-height: 1.7;
  }
  .sec_worry .b1 {
    top: 22.5rem;
    left: 26.2rem;
  }
  .sec_worry .b2 {
    top: 40.9rem;
    left: 87.9rem;
  }
  .sec_worry .b3 {
    top: 39.5rem;
    left: 9.4rem;
  }
  .sec_worry .b4 {
    top: 22rem;
    left: 72.3rem;
  }
  .sec_worry .worry_ill {
    position: relative;
    z-index: 2;
    width: 37.5rem;
    margin: 5rem auto 0;
  }
  .sec_worry .worry_answer {
    margin: -8rem 0 0;
    padding: 0;
  }
  .sec_worry .answer_box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 64.2rem;
    margin: 0 auto;
    padding: 3rem 1rem 1.6rem;
    -webkit-filter: none;
            filter: none;
    -webkit-box-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.12);
            box-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.12);
  }
  .sec_worry .answer_box::after {
    bottom: -6.5rem;
    height: 6.6rem;
  }
  .sec_worry .answer_box .line1 {
    font-size: 2.69rem;
    letter-spacing: 0;
  }
  .sec_worry .answer_box .line2 {
    margin: 0 0 0 0.4rem;
  }
  .sec_worry .answer_box .line2 .tag_red {
    padding: 0.3rem 2.4rem;
    border-radius: 1.4rem;
    font-size: 2.84rem;
    letter-spacing: 0.04em;
  }
  .sec_worry .answer_box .line2 .wo {
    margin-left: 1.6rem;
    font-size: 2.69rem;
  }
  .sec_worry .answer_box .line3 {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    margin-top: 1.4rem;
    font-size: 2.69rem;
  }
}

.photo_house {
  position: relative;
  z-index: 1;
  margin-top: -3.4rem;
  /* PCは3枚の写真を横に並べた帯画像（1200px幅）を中央基準で敷く */
}
.photo_house .photo_full_img {
  aspect-ratio: 375/265;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (width > 1023px) {
  .photo_house {
    height: 28.2rem;
    margin-top: -2.3rem;
    z-index: auto;
    background: url(images/photo_house_pc.webp) center center/120rem auto repeat-x;
  }
  .photo_house .photo_full_img {
    display: none;
  }
}

/* ---- 返済推移 ---- */
/* 赤背景は見出し部分＋カード上部まで */
.sec_ss_red {
  padding: 0 0 6.2rem;
  /* PC：赤背景は見出し部分＋カード上部まで。グラフは縦棒 */
}
.sec_ss_red .ss_red_head {
  padding: 5.5rem 0 15.7rem;
  background: var(--color-red);
}
.sec_ss_red .repay_card {
  margin: -11.3rem 2rem 0;
  padding: 2.9rem 1.7rem 2.7rem;
  border: 1px solid var(--color-red);
  border-radius: 0.4rem;
  background: #FFEDEF;
}
.sec_ss_red .repay_sub {
  line-height: 1.2;
  font-size: 1.6rem;
  font-weight: var(--font-weight-SemiBold);
  text-align: center;
  letter-spacing: 0.05em;
}
.sec_ss_red .repay_ttl {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: -0.4rem auto 0;
  padding-bottom: 0.2rem;
  border-bottom: 2px dashed var(--color-red);
  font-family: var(--font-noto);
  font-size: 2.4rem;
  font-weight: var(--font-weight-Bold);
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.4;
}
.sec_ss_red .repay_list {
  margin-top: 1.7rem;
}
.sec_ss_red .repay_item {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding-bottom: 2.5rem;
}
.sec_ss_red .repay_item::after {
  content: "";
  position: absolute;
  left: 2.27rem;
  bottom: 0.6rem;
  width: 1.655rem;
  height: 1.839rem;
  background: url(./images/repay_arrow.svg) center/contain no-repeat;
}
.sec_ss_red .repay_item.is_last {
  padding-bottom: 0;
}
.sec_ss_red .repay_item.is_last::after {
  content: none;
}
.sec_ss_red .avatar {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 6.2rem;
          flex: 0 0 6.2rem;
  margin-right: 1.5rem;
  text-align: center;
  line-height: 0;
}
.sec_ss_red .avatar_img {
  width: 6.2rem;
}
.sec_ss_red .age {
  display: block;
  margin-top: 0.1rem;
  font-family: var(--font-noto);
  font-size: 1.74rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.2;
  white-space: nowrap;
}
.sec_ss_red .age_small {
  font-size: 1.22rem;
}
.sec_ss_red .bar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 5rem;
  margin-top: 0.8rem;
  background: var(--color-red);
  color: #fff;
  font-family: var(--font-noto);
  font-size: 2rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
}
.sec_ss_red .bar.w1 {
  width: 16.2rem;
}
.sec_ss_red .bar.w2 {
  width: 18.4rem;
}
.sec_ss_red .bar.w3 {
  width: 20.2rem;
}
.sec_ss_red .bar.w4 {
  width: 6.6rem;
  background: var(--color-red-pale);
}
.sec_ss_red .last_price {
  margin: 0.4rem 0 0 1rem;
}
.sec_ss_red .last_price .tag {
  display: inline-block;
  padding: 0.15rem 1rem;
  background: var(--color-red);
  color: #fff;
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.4;
  -webkit-transform: skewX(-12deg);
          transform: skewX(-12deg);
}
.sec_ss_red .last_price .price {
  display: block;
  margin: 0.4rem 0 0 0.8rem;
  color: var(--color-red);
  font-family: var(--font-noto);
  font-size: 2rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.1;
}
.sec_ss_red .last_price .price_num {
  font-size: 2.8rem;
}
.sec_ss_red .repay_note {
  margin-top: 2.4rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--color-black);
  font-size: 1.05rem;
  letter-spacing: -0.05em;
  font-weight: var(--font-weight-Bold);
  text-align: center;
  line-height: 1.5;
}
@media (width > 1023px) {
  .sec_ss_red {
    padding: 0 0 8rem;
    background: #fff;
  }
  .sec_ss_red .ss_red_head {
    display: grid;
    grid-template-columns: 47rem 57rem;
    -webkit-column-gap: 4.2rem;
       -moz-column-gap: 4.2rem;
            column-gap: 4.2rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 7rem 0 20.4rem;
    background: var(--color-red);
  }
  .sec_ss_red .repay_card {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 95.5rem;
    margin: -14.2rem auto 0;
    padding: 3.4rem 6rem 3.8rem;
    border-radius: 1rem;
    background: #FFEBED;
  }
  .sec_ss_red .repay_sub,
  .sec_ss_red .repay_ttl {
    padding-bottom: 0.8rem;
    border-bottom: 2px dashed var(--color-red);
  }
  .sec_ss_red .repay_sub {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    padding-bottom: 1.4rem;
    font-size: 2.72rem;
    font-weight: var(--font-weight-Bold);
    letter-spacing: 0;
    line-height: 1.5;
  }
  .sec_ss_red .repay_ttl {
    width: auto;
    margin: 0;
    font-family: var(--font-plex);
    font-size: 4.25rem;
  }
  .sec_ss_red .repay_list {
    display: grid;
    grid-template-columns: repeat(4, 20rem);
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: end;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    margin-top: 5.6rem;
  }
  .sec_ss_red .repay_item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-bottom: 0;
  }
  .sec_ss_red .repay_item::after {
    content: none;
  }
  .sec_ss_red .repay_item:not(.is_last) .avatar::after {
    content: "";
    position: absolute;
    top: 4.6rem;
    right: -5.4rem;
    width: 2.6rem;
    height: 2.4rem;
    background: var(--color-red);
    clip-path: polygon(0 38%, 55% 38%, 55% 0, 100% 50%, 55% 100%, 55% 62%, 0 62%);
  }
  .sec_ss_red .avatar {
    position: relative;
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    margin: 2.4rem 0 0;
  }
  .sec_ss_red .avatar_img {
    width: 11.7rem;
  }
  .sec_ss_red .age {
    margin-top: 0.6rem;
    font-size: 3rem;
  }
  .sec_ss_red .age_small {
    font-size: 2.25rem;
  }
  .sec_ss_red .bar {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: auto;
    margin-top: 0;
    background: none;
    color: var(--color-red);
    font-size: 3.27rem;
    line-height: 1.2;
    white-space: nowrap;
  }
  .sec_ss_red .bar::after {
    content: "";
    display: block;
    width: 9.8rem;
    height: var(--bar-h);
    margin-top: 1rem;
    background: var(--color-red);
  }
  .sec_ss_red .bar.w1 {
    width: auto;
    --bar-h:23.7rem;
  }
  .sec_ss_red .bar.w2 {
    width: auto;
    --bar-h:27.7rem;
  }
  .sec_ss_red .bar.w3 {
    width: auto;
    --bar-h:31.7rem;
  }
  .sec_ss_red .bar.w4 {
    width: auto;
    background: none;
    --bar-h:12.5rem;
  }
  .sec_ss_red .bar.w4::after {
    background: var(--color-red-pale);
  }
  .sec_ss_red .last_price {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    margin: 0;
    text-align: center;
  }
  .sec_ss_red .last_price .tag {
    padding: 0.2rem 1.4rem;
    font-size: 2.25rem;
  }
  .sec_ss_red .last_price .price {
    margin: 0.2rem 0 0;
    font-size: 3.17rem;
  }
  .sec_ss_red .last_price .price_num {
    font-size: 4.23rem;
  }
  .sec_ss_red .repay_note {
    -ms-flex-preferred-size: 75rem;
        flex-basis: 75rem;
    margin-top: 3.4rem;
    padding-top: 2.4rem;
    font-size: 1.94rem;
    letter-spacing: 0;
    line-height: 1.6;
  }
}

/* ---- さらに選べるのは ---- */
.sec_more {
  /* 住宅写真4枚（SPは2×2、PCは横1列） */
}
.sec_more .more_photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.sec_more .more_photo {
  line-height: 0;
}
.sec_more .more_photo_img {
  width: 100%;
  aspect-ratio: 300/226;
  -o-object-fit: cover;
     object-fit: cover;
}
.sec_more .more_box {
  position: relative;
  z-index: 1;
  display: block;
  margin: -3.9rem 1.8rem 0;
  padding: 1.3rem 1.5rem 1.3rem 3.7rem;
  border: 3px solid var(--color-black);
  background: #fff;
  overflow: visible;
  /* 白い三角を同じ大きさで3px×√2上にずらし、しっぽの線幅を枠線（3px）にそろえる */
}
.sec_more .more_box::before, .sec_more .more_box::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 0;
  height: 0;
  border-style: solid;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.sec_more .more_box::before {
  bottom: -2.8rem;
  border-width: 2.8rem 2.8rem 0 2.8rem;
  border-color: var(--color-black) transparent transparent transparent;
}
.sec_more .more_box::after {
  bottom: calc(-2.8rem + 4.24px);
  border-width: 2.8rem 2.8rem 0 2.8rem;
  border-color: #fff transparent transparent transparent;
}
.sec_more .more_txt {
  position: relative;
  z-index: 1;
  font-family: var(--font-noto);
  font-weight: var(--font-weight-Bold);
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
.sec_more .more_txt .l1 {
  font-size: 2.1rem;
  line-height: 1.43;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.sec_more .more_txt .l2 {
  margin-top: 0.2rem;
  color: var(--color-red);
  font-size: 2.4rem;
  font-weight: var(--font-weight-Black);
  line-height: 1.42;
}
.sec_more .more_ill {
  position: absolute;
  right: 1.4rem;
  bottom: 0;
  width: 12.6rem;
  line-height: 0;
}
.sec_more .more_ill_img {
  width: 100%;
}
.sec_more .choice_tags {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem 0.8rem;
  margin-top: 6.2rem;
  padding: 0 1.8rem;
}
.sec_more .choice_tag {
  padding: 0.4rem 1.5rem;
  background: var(--color-red);
  color: #fff;
  font-size: 1.6rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.sec_more .choice_ttl {
  margin-top: 2.6rem;
  font-family: var(--font-noto);
  font-size: 2.7rem;
  font-weight: var(--font-weight-Bold);
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
.sec_more .choice_ttl .ul {
  display: inline-block;
  padding: 0 0.3rem 0.1rem;
  border-bottom: 2px solid var(--color-black);
  line-height: 1.3;
}
.sec_more .choice_ttl .num {
  font-size: 3.6rem;
  font-family: var(--font-noto);
}
.sec_more .choice_ttl .tsu {
  font-size: 2rem;
}
.sec_more .choice_ttl .red {
  letter-spacing: 0.02em;
}
@media (width > 1023px) {
  .sec_more .more_photos {
    grid-template-columns: repeat(4, 1fr);
  }
  .sec_more .more_box {
    width: 76.3rem;
    margin: -3.4rem auto 0;
    padding: 2.4rem 2rem 2.4rem 4.6rem;
    border-width: 2px;
  }
  .sec_more .more_box::before {
    bottom: -3.7rem;
    border-width: 3.7rem 2.1rem 0 2.1rem;
  }
  .sec_more .more_box::after {
    bottom: -3.3rem;
    border-width: 3.4rem 1.85rem 0 1.85rem;
  }
  .sec_more .more_txt {
    -webkit-font-feature-settings: normal;
            font-feature-settings: normal;
  }
  .sec_more .more_txt .l1 {
    font-family: var(--font-noto);
    font-size: 2.51rem;
    line-height: 1.6;
  }
  .sec_more .more_txt .l2 {
    margin-top: 0;
    font-family: var(--font-noto);
    font-size: 5.06rem;
    font-weight: var(--font-weight-Black);
    line-height: 1.22;
  }
  .sec_more .more_ill {
    right: 3.6rem;
    width: 18.5rem;
  }
  .sec_more .choice_tags {
    gap: 0.8rem;
    margin-top: 7.6rem;
    padding: 0;
  }
  .sec_more .choice_tag {
    padding: 0.2rem 2.3rem;
    border-radius: 0.4rem;
    font-family: var(--font-noto);
    font-size: 2.48rem;
  }
  .sec_more .choice_ttl {
    margin-top: 1.6rem;
    font-family: var(--font-noto);
    font-size: 4.4rem;
    line-height: 1.65;
    letter-spacing: 0.04em;
  }
  .sec_more .choice_ttl .ul {
    padding: 0 0 0.6rem;
    margin-bottom: 1.2rem;
  }
  .sec_more .choice_ttl .ul.is_plain_pc {
    border-bottom: none;
  }
  .sec_more .choice_ttl .num {
    font-size: 4.84rem;
  }
  .sec_more .choice_ttl .tsu {
    font-size: 3.3rem;
  }
  .sec_more .choice_ttl_ss {
    display: inline-block;
    padding-bottom: 0.2rem;
    border-bottom: 2px solid var(--color-red);
    line-height: 1.2;
  }
}

/* ---- 3つの選択肢 ---- */
.sec_option {
  padding: 3rem 1.8rem 0;
  /* SPは見出し・本文を左右に少し内側へ寄せる（白いボックスはカード幅のまま） */
}
.sec_option .option_card {
  position: relative;
  margin-top: 4.2rem;
  padding: 4.5rem 2rem 2rem;
  border-radius: 1.2rem;
  background: var(--color-red);
  color: #fff;
}
.sec_option .option_badge {
  position: absolute;
  top: -2.2rem;
  left: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 15.8rem;
  height: 4.4rem;
  border: 2px solid var(--color-red);
  border-radius: 1rem;
  background: #fff;
  color: var(--color-black);
  font-size: 2rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.sec_option .option_badge .n {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  margin-left: 0.6rem;
  border-radius: 50%;
  background: var(--color-red);
  color: #fff;
  font-family: var(--font-noto);
  font-size: 1.8rem;
  line-height: 1;
}
.sec_option .option_head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.sec_option .option_head .icon {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 5rem;
          flex: 0 0 5rem;
  width: 5rem;
  margin-left: 1rem;
}
.sec_option .option_ttl {
  font-size: 2.8rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.sec_option .option_txt {
  margin-top: 1.4rem;
  font-size: 1.5rem;
  font-weight: var(--font-weight-Medium);
  line-height: 1.9;
  text-align: justify;
}
@media (width <= 1023px) {
  .sec_option .option_head,
  .sec_option .option_txt {
    margin-left: 1rem;
    margin-right: 1rem;
  }
  .sec_option .option_ttl {
    white-space: nowrap;
  }
  .sec_option .option_txt {
    font-family: var(--font-noto);
    font-weight: var(--font-weight-Bold);
    -webkit-font-feature-settings: "palt";
            font-feature-settings: "palt";
  }
}
.sec_option .option_point {
  position: relative;
  margin-top: 2.2rem;
  padding: 2rem 0.8rem 2rem 5.8rem;
  border-radius: 0.8rem;
  background: #fff;
  color: var(--color-black);
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.9;
  letter-spacing: -0.03em;
}
.sec_option .option_point::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 2rem;
  width: 2.6rem;
  height: 2.04rem;
  background: url(./images/option_arrow.svg) center/contain no-repeat;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.sec_option .stay_block {
  padding: 7.5rem 0 3rem;
  text-align: center;
}
.sec_option .stay_block .tag_red {
  font-size: 1.8rem;
  padding: 0.4rem 1.2rem;
}
.sec_option .stay_block .stay_ttl {
  margin-top: 1.4rem;
  font-size: 3.3rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.sec_option .cond_acc {
  position: relative;
  z-index: 1;
  margin-top: 3.6rem;
}
.sec_option .cond_acc .cond_ttl {
  position: relative;
  display: inline-block;
  font-size: 2rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
}
.sec_option .cond_acc .cond_ttl .spark {
  position: absolute;
  top: -1.4rem;
  right: -1.8rem;
  width: 1.8rem;
}
.sec_option .cond_acc .cond_btn {
  position: relative;
  display: block;
  width: 100%;
  margin-top: 1.4rem;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
.sec_option .cond_acc .cond_btn::before {
  content: "";
  position: absolute;
  top: 2rem;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--color-red);
}
.sec_option .cond_acc .cond_btn .plus {
  position: relative;
  z-index: 1;
  display: block;
  width: 4rem;
  height: 4rem;
  margin: 0 auto;
  border-radius: 50%;
  background: var(--color-red);
}
.sec_option .cond_acc .cond_btn .plus::before, .sec_option .cond_acc .cond_btn .plus::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2rem;
  height: 2px;
  background: #fff;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.sec_option .cond_acc .cond_btn .plus::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}
.sec_option .cond_acc .cond_btn .txt {
  display: block;
  margin-top: 1rem;
  font-family: var(--font-lato);
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.15em;
}
.sec_option .cond_acc .cond_btn[aria-expanded=true] .plus::after {
  -webkit-transform: translate(-50%, -50%) rotate(0);
          transform: translate(-50%, -50%) rotate(0);
}
.sec_option .cond_acc .cond_body {
  display: none;
  padding: 2rem 0 0;
  font-size: 1.4rem;
  line-height: 1.8;
  text-align: left;
}
.sec_option .cond_acc .cond_sec + .cond_sec {
  margin-top: 2rem;
}
.sec_option .cond_acc .cond_sec_ttl {
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--color-red);
  color: var(--color-red);
  font-size: 1.5rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.4;
}
.sec_option .cond_acc .cond_list {
  margin-top: 1rem;
}
.sec_option .cond_acc .cond_item {
  position: relative;
  padding-left: 1.4em;
}
.sec_option .cond_acc .cond_item + .cond_item {
  margin-top: 0.6rem;
}
.sec_option .cond_acc .cond_item::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 0.3em;
  width: 0.5em;
  height: 0.5em;
  border-radius: 50%;
  background: var(--color-red);
}
@media (width > 1023px) {
  .sec_option {
    padding: 9.6rem 6rem 0;
  }
  .sec_option .option_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }
  .sec_option .option_card {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: 0;
    padding: 4rem 2rem 2.4rem;
    border-radius: 1rem;
  }
  .sec_option .option_badge {
    top: -1.7rem;
    width: 16.2rem;
    height: 3.8rem;
    border-radius: 0.6rem;
    font-size: 1.84rem;
  }
  .sec_option .option_badge .n {
    width: 2.2rem;
    height: 2.2rem;
    font-size: 1.6rem;
  }
  .sec_option .option_head .icon {
    -ms-flex-preferred-size: 5.4rem;
        flex-basis: 5.4rem;
    width: 5.4rem;
  }
  .sec_option .option_ttl {
    font-size: 2.56rem;
    line-height: 1.45;
  }
  .sec_option .option_txt {
    margin: 1.6rem 0 2.6rem;
    font-size: 1.43rem;
    font-weight: var(--font-weight-SemiBold);
    line-height: 1.78;
  }
  .sec_option .option_point {
    margin-top: auto;
    padding: 1.2rem 1.2rem 1.2rem 6.3rem;
    border-radius: 0.6rem;
    font-size: 1.43rem;
    line-height: 1.8;
    letter-spacing: 0;
  }
  .sec_option .stay_block {
    padding: 8.4rem 0 0;
  }
  .sec_option .stay_block .tag_red {
    padding: 0.2rem 1.6rem;
    font-family: var(--font-noto);
    font-size: 2.5rem;
  }
  .sec_option .stay_block .stay_ttl {
    margin-top: 1.2rem;
    font-family: var(--font-noto);
    font-size: 4.41rem;
    line-height: 1.36;
    letter-spacing: 0.04em;
  }
  .sec_option .cond_acc {
    position: relative;
    z-index: 1;
    margin-top: 4.6rem;
  }
  .sec_option .cond_acc .cond_ttl {
    font-size: 3.37rem;
  }
  .sec_option .cond_acc .cond_ttl .spark {
    top: -1.6rem;
    right: -2.8rem;
    width: 2.8rem;
  }
  .sec_option .cond_acc .cond_btn {
    margin-top: 1.8rem;
  }
  .sec_option .cond_acc .cond_btn::before {
    top: 3.75rem;
  }
  .sec_option .cond_acc .cond_btn .plus {
    width: 7.5rem;
    height: 7.5rem;
  }
  .sec_option .cond_acc .cond_btn .plus::before, .sec_option .cond_acc .cond_btn .plus::after {
    width: 3.4rem;
    height: 4px;
  }
  .sec_option .cond_acc .cond_btn .txt {
    margin-top: 1.2rem;
    font-family: var(--font-plex);
    font-size: 2.68rem;
    letter-spacing: 0.1em;
  }
  .sec_option .cond_acc .cond_body {
    max-width: 90rem;
    margin: 0 auto;
    padding: 2.4rem 3rem;
    background: rgba(255, 255, 255, 0.9);
    font-size: 1.8rem;
  }
  .sec_option .cond_acc .cond_sec + .cond_sec {
    margin-top: 2.8rem;
  }
  .sec_option .cond_acc .cond_sec_ttl {
    padding-bottom: 0.6rem;
    font-size: 2rem;
  }
  .sec_option .cond_acc .cond_list {
    margin-top: 1.4rem;
  }
  .sec_option .cond_acc .cond_item + .cond_item {
    margin-top: 0.8rem;
  }
}

/* 「適用条件と注意点」を写真上部の白いグラデーション（画像に焼き込み済み）に重ねる */
.photo_sofa {
  margin-top: -13rem;
  /* PCは「適用条件と注意点」を写真上部の白いグラデーションに重ねる */
}
.photo_sofa .photo_full_img {
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (width > 1023px) {
  .photo_sofa {
    position: relative;
    margin-top: -21rem;
  }
  .photo_sofa::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 45%;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(30%, #fff), to(rgba(255, 255, 255, 0)));
    background: linear-gradient(to bottom, #fff 30%, rgba(255, 255, 255, 0));
  }
  .photo_sofa .photo_full_img {
    height: 61.3rem;
    aspect-ratio: auto;
    -o-object-position: 0 95%;
       object-position: 0 95%;
  }
}

/* ---- 品質・保証 ---- */
.sec_quality {
  padding: 7rem 2rem 7rem;
  background: var(--color-cream);
  text-align: center;
}
.sec_quality .c_ttl_ul {
  margin-top: 1.2rem;
  font-family: var(--font-noto);
  font-weight: var(--font-weight-Black);
}
.sec_quality .quality_txt {
  margin: 2.6rem 3.8rem 0;
  font-family: var(--font-noto);
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.75;
  text-align: justify;
}
.sec_quality .cert_card {
  margin-top: 3.6rem;
  padding: 3rem 2rem 3.6rem;
  border: 2px solid var(--color-red);
  border-radius: 1rem;
  background: var(--color-pink);
  text-align: left;
}
.sec_quality .cert_head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.sec_quality .cert_ttl {
  padding-top: 1.4rem;
  font-family: var(--font-noto);
  font-size: 2.8rem;
  font-weight: var(--font-weight-Black);
  line-height: 1.3;
}
.sec_quality .cert_ttl .dots {
  font-size: 3.3rem;
  /* 傍点は文字サイズの半分で描かれるため、小さい「・」を使って点を小さくする */
  -webkit-text-emphasis: "・" var(--color-red);
  text-emphasis: "・" var(--color-red);
  -webkit-text-emphasis-position: over left;
  text-emphasis-position: over left;
}
.sec_quality .cert_img {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 10.9rem;
          flex: 0 0 10.9rem;
  width: 10.9rem;
}
.sec_quality .cert_txt {
  margin-top: 2.4rem;
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.75;
  text-align: justify;
}
.sec_quality .tag_red + .c_ttl_ul {
  margin-top: 1.2rem;
}
.sec_quality .quality_body + .tag_red {
  margin-top: 7.5rem;
}
.sec_quality .support_list {
  margin-top: 2.4rem;
}
.sec_quality .support_item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 1.8rem;
  padding: 1.8rem 0.2rem 1.8rem 2.6rem;
  border: 2px solid var(--color-red);
  border-radius: 1rem;
  background: #fff;
  -webkit-box-shadow: 0 0.3rem 0.3rem rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.3rem 0.3rem rgba(0, 0, 0, 0.15);
}
.sec_quality .support_item:first-child {
  margin-top: 0;
}
.sec_quality .support_item .icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 7.8rem;
          flex: 0 0 7.8rem;
  width: 7.8rem;
  height: 7.8rem;
  border-radius: 50%;
  background: var(--color-red);
}
.sec_quality .support_item .txt {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  text-align: center;
}
.sec_quality .support_item .txt .tag_red {
  padding: 0.45rem 1rem 0.15rem;
  font-size: 1.5rem;
}
.sec_quality .support_icon_img {
  width: 4.8rem;
}
.sec_quality .support_icon_img.is_headset {
  width: 4.6rem;
}
.sec_quality .support_main {
  margin-top: 0.4rem;
  font-family: var(--font-noto);
  font-size: 2.7rem;
  font-weight: var(--font-weight-Black);
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.sec_quality .support_main .red {
  font-family: var(--font-noto);
  font-size: 3rem;
}
.sec_quality .support_more {
  margin-top: 2.6rem;
  padding: 3rem 2rem 2.4rem;
  border: 2px solid var(--color-red);
  border-radius: 1rem;
  background: #fff;
  -webkit-box-shadow: 0 0.3rem 0.3rem rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.3rem 0.3rem rgba(0, 0, 0, 0.15);
}
.sec_quality .support_more .lead {
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--color-red);
  font-family: var(--font-noto);
  font-size: 1.6rem;
  font-weight: var(--font-weight-Black);
  line-height: 1.9;
}
.sec_quality .support_more .big {
  margin-top: 1.6rem;
  font-family: var(--font-noto);
  font-size: 3rem;
  font-weight: var(--font-weight-Black);
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.sec_quality .support_more .big .red {
  font-size: 3.8rem;
}
@media (width > 1023px) {
  .sec_quality {
    padding: 6.4rem 6rem 10.2rem;
    background: var(--color-cream-pc);
  }
  .sec_quality .tag_red {
    font-family: var(--font-noto);
  }
  .sec_quality .c_ttl_ul {
    font-family: var(--font-noto);
    font-weight: var(--font-weight-Bold);
  }
  .sec_quality .tag_red + .c_ttl_ul {
    margin-top: 1.4rem;
  }
  .sec_quality .quality_body {
    display: grid;
    grid-template-columns: 40.4rem 45.1rem;
    -webkit-column-gap: 5.2rem;
       -moz-column-gap: 5.2rem;
            column-gap: 5.2rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-top: 4.2rem;
  }
  .sec_quality .quality_txt {
    margin: 0;
    font-family: var(--font-plex);
    font-size: 2.2rem;
    line-height: 2;
    text-align: left;
  }
  .sec_quality .cert_card {
    display: grid;
    grid-template-columns: 1fr 20.6rem;
    -webkit-column-gap: 1.4rem;
       -moz-column-gap: 1.4rem;
            column-gap: 1.4rem;
    margin-top: 0;
    padding: 2.2rem 2.2rem 2rem 3.4rem;
    border-width: 1px;
  }
  .sec_quality .cert_head {
    display: contents;
  }
  .sec_quality .cert_ttl {
    padding-top: 0.8rem;
    font-family: var(--font-plex);
    font-size: 3.24rem;
    font-weight: var(--font-weight-Bold);
    line-height: 1.38;
  }
  .sec_quality .cert_ttl .dots {
    font-size: 3.24rem;
  }
  .sec_quality .cert_img {
    grid-column: 2;
    grid-row: 1/span 2;
    width: 20.6rem;
  }
  .sec_quality .cert_txt {
    grid-column: 1;
    margin-top: 1.4rem;
    font-size: 1.4rem;
    line-height: 1.72;
    text-align: left;
  }
  .sec_quality .quality_body + .tag_red {
    margin-top: 9.4rem;
  }
  .sec_quality .support_wrap {
    display: grid;
    grid-template-columns: 1fr 41.3rem;
    gap: 2.3rem;
    margin-top: 3.6rem;
  }
  .sec_quality .support_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.1rem;
    margin-top: 0;
  }
  .sec_quality .support_item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: 0;
    padding: 2.2rem 1.5rem 1.8rem;
    border-width: 1px;
    border-radius: 0.6rem;
  }
  .sec_quality .support_item .icon {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 8.7rem;
    height: 8.7rem;
  }
  .sec_quality .support_item .txt {
    width: 100%;
    margin-top: 0.6rem;
  }
  .sec_quality .support_item .txt .tag_red {
    display: block;
    padding: 0;
    border-radius: 0.3rem;
    font-family: var(--font-plex);
    font-size: 1.76rem;
    line-height: 1.4;
  }
  .sec_quality .support_icon_img {
    width: 5.4rem;
  }
  .sec_quality .support_icon_img.is_headset {
    width: 5.1rem;
  }
  .sec_quality .support_main {
    margin-top: 0.6rem;
    font-family: var(--font-plex);
    font-size: 2.42rem;
    font-weight: var(--font-weight-Bold);
    line-height: 1.3;
  }
  .sec_quality .support_main .red {
    font-family: var(--font-plex);
    font-size: 3rem;
  }
  .sec_quality .support_more {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-top: 0;
    padding: 2.4rem 2rem;
    border-width: 1px;
    border-radius: 0.6rem;
  }
  .sec_quality .support_more .lead {
    padding-bottom: 1.4rem;
    font-family: var(--font-plex);
    font-size: 2.11rem;
    font-weight: var(--font-weight-Bold);
    line-height: 1.75;
  }
  .sec_quality .support_more .big {
    margin-top: 1.6rem;
    font-family: var(--font-plex);
    font-size: 2.89rem;
    font-weight: var(--font-weight-Bold);
  }
  .sec_quality .support_more .big .red {
    font-size: 4.34rem;
  }
}

/* ---- 30年後も貸せる・売れる ---- */
.sec_ss_red2 {
  padding: 6.5rem 2rem 3rem;
  background: var(--color-red);
  color: #fff;
  text-align: center;
}
.sec_ss_red2 .dakara {
  font-size: 1.8rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.02em;
}
.sec_ss_red2 .y30 {
  margin-top: 0.6rem;
  font-size: 3.6rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1;
}
.sec_ss_red2 .y30 .num {
  font-family: var(--font-lato);
  font-size: 5.6rem;
  font-weight: 700;
}
.sec_ss_red2 .kaseru {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 1.6rem;
}
.sec_ss_red2 .kaseru .boxed {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.sec_ss_red2 .kaseru .boxed_char {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4.2rem;
  height: 4.2rem;
  margin-left: -2px;
  /* 和文は字面が上に寄って見えるため、上に余白を足して見た目の中心に合わせる */
  padding-top: 0.2em;
  border: 2px solid #fff;
  font-size: 3rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1;
}
.sec_ss_red2 .kaseru .boxed_char:first-child {
  margin-left: 0;
}
.sec_ss_red2 .kaseru .dot {
  margin: 0 0.4rem;
  font-size: 2.4rem;
  font-weight: var(--font-weight-Bold);
}
.sec_ss_red2 .ss_lockup {
  margin-top: 4.6rem;
}
@media (width > 1023px) {
  .sec_ss_red2 {
    display: grid;
    grid-template-columns: auto auto;
    grid-template-areas: "dakara lockup" "y30 lockup" "kaseru lockup";
    -webkit-column-gap: 3.6rem;
       -moz-column-gap: 3.6rem;
            column-gap: 3.6rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 10rem 6rem 8.2rem;
    text-align: left;
  }
  .sec_ss_red2 .dakara {
    grid-area: dakara;
    font-size: 3.71rem;
  }
  .sec_ss_red2 .y30 {
    grid-area: y30;
    margin-top: 1.8rem;
    font-size: 10.44rem;
  }
  .sec_ss_red2 .y30 .num {
    font-size: 17.4rem;
    letter-spacing: -0.02em;
  }
  .sec_ss_red2 .kaseru {
    grid-area: kaseru;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    margin-top: 2.4rem;
  }
  .sec_ss_red2 .kaseru .boxed_char {
    width: 7.8rem;
    height: 7.8rem;
    font-size: 5.29rem;
  }
  .sec_ss_red2 .kaseru .dot {
    margin: 0 1rem;
    font-size: 4rem;
  }
  .sec_ss_red2 .ss_lockup {
    --lk:1.37;
    grid-area: lockup;
    margin-top: 0;
  }
}

.chevron_red {
  position: relative;
  height: 4rem;
  /* 上の赤いセクションとの境目に細い線が出ないよう1px重ね、上端2pxも赤にして▼の縁の混色を防ぐ */
  margin-top: -1px;
  background: linear-gradient(var(--color-red) 2px, var(--color-cream) 2px);
}
.chevron_red::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--color-red);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media (width > 1023px) {
  .chevron_red {
    height: 9.2rem;
    background: linear-gradient(var(--color-red) 2px, var(--color-cream-pc) 2px);
  }
}

/* ---- 対応ブランド ---- */
.sec_brand {
  padding: 5rem 1.8rem 6rem;
  background: var(--color-cream);
  text-align: center;
}
.sec_brand .tag_red {
  padding: 0.5rem 1.6rem;
  font-size: 1.6rem;
}
.sec_brand .brand_ttl {
  margin-top: 1.4rem;
  font-family: var(--font-noto);
  font-size: 2.7rem;
  font-weight: var(--font-weight-Black);
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.sec_brand .brand_note {
  margin-top: 1rem;
  font-size: 1.1rem;
  font-weight: var(--font-weight-Bold);
}
.sec_brand .brand_list {
  margin-top: 2.4rem;
}
.sec_brand .brand_item {
  margin-top: 2.2rem;
  border-radius: 0.6rem;
  background: #fff;
  -webkit-box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.15);
  overflow: hidden;
}
.sec_brand .brand_item:first-child {
  margin-top: 0;
}
.sec_brand .photo {
  position: relative;
  line-height: 0;
}
.sec_brand .photo .logo {
  position: absolute;
  top: 1.5rem;
  left: 1.8rem;
  width: 9rem;
}
.sec_brand .brand_photo_img {
  width: 100%;
  aspect-ratio: 340/192;
  -o-object-fit: cover;
     object-fit: cover;
}
.sec_brand .brand_logo_img {
  width: 100%;
}
.sec_brand .body {
  position: relative;
  padding: 2.6rem 2rem 2.2rem;
}
.sec_brand .badge {
  position: absolute;
  top: -1.55rem;
  left: 50%;
  display: block;
  width: 14.6rem;
  padding: 0.2rem 0;
  border: 2px solid var(--color-red);
  border-radius: 0.3rem;
  background: #fff;
  color: var(--color-red);
  font-size: 1.35rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.55;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  white-space: nowrap;
}
.sec_brand .brand_name {
  font-size: 2.2rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
  line-height: 1.3;
}
.sec_brand .brand_txt {
  margin-top: 0;
  font-size: 1.5rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.5;
}
.sec_brand .c_btn_red_s {
  margin-top: 1.6rem;
}
@media (width > 1023px) {
  .sec_brand {
    padding: 8.6rem 6rem 8rem;
    background: var(--color-cream-pc);
  }
  .sec_brand .tag_red {
    padding: 0.2rem 2.4rem;
    font-family: var(--font-noto);
    font-size: 2.48rem;
  }
  .sec_brand .brand_ttl {
    margin-top: 1.2rem;
    font-family: var(--font-noto);
    font-size: 4.4rem;
    font-weight: var(--font-weight-Bold);
    line-height: 1.55;
  }
  .sec_brand .brand_ttl_ss {
    font-family: var(--font-plex);
    font-size: 5.91rem;
  }
  .sec_brand .brand_note {
    margin-top: 0.4rem;
    font-family: var(--font-noto);
    font-size: 2.2rem;
  }
  .sec_brand .brand_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem 2.7rem;
    margin-top: 4.4rem;
  }
  .sec_brand .brand_item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: 0;
    border-radius: 0.6rem;
    -webkit-box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.25);
  }
  .sec_brand .brand_photo_img {
    aspect-ratio: 340/190;
  }
  .sec_brand .photo .logo {
    top: 1.2rem;
    left: 1.6rem;
    width: 8.9rem;
  }
  .sec_brand .body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    padding: 2.6rem 1.5rem 2.2rem;
  }
  .sec_brand .badge {
    top: -1.6rem;
    width: 14.4rem;
    padding: 0.3rem 0;
    border-width: 1px;
    border-radius: 0.3rem;
    font-size: 1.31rem;
  }
  .sec_brand .brand_name {
    font-size: 2.2rem;
  }
  .sec_brand .brand_txt {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    min-height: 4.6rem;
    margin-top: 0.4rem;
    font-size: 1.5rem;
    font-weight: var(--font-weight-Medium);
    line-height: 1.47;
  }
  .sec_brand .c_btn_red_s {
    margin-top: 1rem;
  }
}

/* ---- お客様の声 ---- */
.sec_voice {
  position: relative;
  padding: 12rem 2rem 7rem;
  text-align: center;
  /* SPはカード内の文字をNoto Sans JPの太字にそろえる */
}
.sec_voice .voice_confetti {
  position: absolute;
  top: 0;
  left: 50%;
  width: 140%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  line-height: 0;
  pointer-events: none;
}
.sec_voice .voice_confetti_img {
  width: 100%;
}
.sec_voice .tag_red, .sec_voice .c_ttl_ul, .sec_voice .voice_lead, .sec_voice .voice_list {
  position: relative;
}
.sec_voice .tag_red {
  padding: 0.5rem 1.6rem;
  font-family: var(--font-noto);
  font-size: 1.6rem;
}
.sec_voice .c_ttl_ul {
  margin-top: 1.4rem;
  font-family: var(--font-noto);
  font-weight: var(--font-weight-Black);
  letter-spacing: 0;
}
.sec_voice .voice_lead {
  margin-top: 2rem;
  font-family: var(--font-noto);
  font-size: 1.6rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.9;
}
.sec_voice .voice_list {
  margin-top: 3.6rem;
  text-align: left;
}
.sec_voice .voice_item {
  margin-top: 2.2rem;
  padding: 2rem 2rem 2.4rem;
  border: 2px solid var(--color-black);
  border-radius: 1.2rem;
  background: #fff;
}
.sec_voice .voice_item:first-child {
  margin-top: 0;
}
.sec_voice .voice_head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.sec_voice .voice_head .photo {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 12rem;
          flex: 0 0 12rem;
  width: 12rem;
  margin-right: 1.6rem;
  line-height: 0;
}
.sec_voice .voice_head .txt {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}
.sec_voice .voice_head .badge {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.4rem 1.4rem;
  background: var(--color-red);
  color: #fff;
  font-size: 1.6rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
}
.sec_voice .voice_head .badge .n {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 1.8rem;
  height: 1.8rem;
  margin-left: 0.6rem;
  border-radius: 50%;
  background: #fff;
  color: var(--color-red);
  font-family: var(--font-noto);
  font-size: 1.3rem;
  line-height: 1;
}
.sec_voice .voice_photo_img {
  width: 100%;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
}
.sec_voice .voice_ttl {
  margin-top: 1.2rem;
  font-size: 1.71rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.5;
  letter-spacing: 0;
}
.sec_voice .comment {
  margin-top: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--color-black);
  font-size: 1.4rem;
  font-weight: var(--font-weight-Medium);
  line-height: 1.9;
  text-align: justify;
}
.sec_voice .name {
  margin-top: 1.6rem;
  font-size: 1.4rem;
  font-weight: var(--font-weight-Medium);
}
@media (width > 1023px) {
  .sec_voice {
    padding: 13rem 6rem 7.4rem;
  }
  .sec_voice .voice_confetti {
    top: 1.4rem;
    width: 100%;
    max-width: 50rem;
  }
  .sec_voice .tag_red {
    padding: 0.2rem 2.4rem;
    font-family: var(--font-noto);
    font-size: 2.48rem;
  }
  .sec_voice .c_ttl_ul {
    margin-top: 1.4rem;
    font-family: var(--font-noto);
    font-weight: var(--font-weight-Bold);
    letter-spacing: 0.05em;
  }
  .sec_voice .voice_lead {
    margin-top: 1.8rem;
    font-family: var(--font-noto);
    font-size: 2.2rem;
    font-weight: var(--font-weight-Bold);
    line-height: 1.6;
  }
  .sec_voice .voice_list {
    margin-top: 4.4rem;
  }
  .sec_voice .voice_item {
    display: grid;
    grid-template-columns: 24.8rem 1fr;
    grid-template-rows: auto auto auto 1fr;
    -webkit-column-gap: 3.6rem;
       -moz-column-gap: 3.6rem;
            column-gap: 3.6rem;
    margin-top: 4.2rem;
    padding: 2.3rem 6rem 2.3rem 2.6rem;
    border-radius: 0.6rem;
    -webkit-box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.25);
  }
  .sec_voice .voice_head,
  .sec_voice .voice_head .txt {
    display: contents;
  }
  .sec_voice .voice_head .photo {
    grid-column: 1;
    grid-row: 1/span 4;
    width: 24.8rem;
    margin: 0;
  }
  .sec_voice .voice_head .badge {
    justify-self: start;
    padding: 0.2rem 1.5rem;
    font-size: 2.23rem;
  }
  .sec_voice .voice_head .badge .n {
    width: 2.3rem;
    height: 2.3rem;
    font-size: 1.8rem;
  }
  .sec_voice .voice_photo_img {
    border-radius: 0.6rem;
  }
  .sec_voice .voice_ttl {
    margin-top: 1.4rem;
    font-size: 3.2rem;
    line-height: 1.4;
  }
  .sec_voice .comment {
    margin-top: 1rem;
    padding-bottom: 1.8rem;
    font-size: 1.6rem;
    line-height: 2;
    text-align: left;
  }
  .sec_voice .name {
    margin-top: 1.6rem;
    font-size: 1.6rem;
  }
}
@media (width <= 1023px) {
  .sec_voice .voice_item {
    font-family: var(--font-noto);
  }
  .sec_voice .comment,
  .sec_voice .name {
    font-weight: var(--font-weight-Bold);
  }
}

/* ---- リノベーションと建て替え比較 ---- */
.sec_compare {
  padding: 6.5rem 1.8rem 6rem;
  background: var(--color-red);
  color: #fff;
  /* SPはデザインに合わせて本文幅を狭め、文字をNoto Sans JPの太字に。表には影を付ける */
}
.sec_compare .compare_txt {
  margin-top: 2.2rem;
  font-size: 1.6rem;
  font-weight: var(--font-weight-SemiBold);
  line-height: 2;
  text-align: justify;
}
.sec_compare .compare_table {
  width: 100%;
  margin-top: 3.5rem;
  border-radius: 0.8rem;
  background: #fff;
  color: var(--color-black);
  overflow: hidden;
  table-layout: fixed;
}
.sec_compare .compare_head,
.sec_compare .compare_th,
.sec_compare .compare_td {
  padding: 1.2rem 0.4rem;
  text-align: center;
  vertical-align: middle;
  font-size: 1.5rem;
  line-height: 1.3;
  word-break: break-all;
}
.sec_compare .compare_head {
  color: #fff;
  font-weight: var(--font-weight-Bold);
  font-size: 1.4rem;
  padding: 0.8rem 0.4rem;
  line-height: 1.35;
}
.sec_compare .th_item {
  width: 28%;
  background: #999;
}
.sec_compare .th_reform {
  width: 34%;
  background: var(--color-green);
}
.sec_compare .th_ss {
  width: 38%;
  background: var(--color-yellow);
  color: var(--color-red);
  font-size: 1.2rem;
}
.sec_compare .compare_th {
  font-weight: var(--font-weight-Medium);
}
.sec_compare .compare_row:nth-child(even) {
  background: var(--color-pink);
}
.sec_compare .compare_td.small {
  font-size: 1.2rem;
  font-weight: var(--font-weight-Bold);
}
.sec_compare .compare_small {
  font-size: 1.1rem;
}
.sec_compare .compare_note {
  margin-top: 2.4rem;
  font-size: 1.1rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.9;
  text-align: justify;
}
@media (width <= 1023px) {
  .sec_compare .compare_ttl {
    font-family: var(--font-noto);
    font-weight: var(--font-weight-Black);
  }
  .sec_compare .compare_txt {
    margin: 2.2rem 4.2rem 0 4.1rem;
    font-family: var(--font-noto);
    font-size: 1.5rem;
    font-weight: var(--font-weight-Bold);
    line-height: 2.13;
    letter-spacing: 0.04em;
    -webkit-font-feature-settings: "palt";
            font-feature-settings: "palt";
  }
  .sec_compare .compare_table {
    font-family: var(--font-noto);
    -webkit-box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.3);
            box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.3);
  }
  .sec_compare .compare_th,
  .sec_compare .compare_td {
    font-weight: var(--font-weight-Bold);
  }
}
@media (width > 1023px) {
  .sec_compare {
    display: grid;
    grid-template-columns: 49.6rem 53.6rem;
    grid-template-rows: auto auto 1fr;
    grid-template-areas: "ttl table" "txt table" "note table";
    -webkit-column-gap: 4.6rem;
       -moz-column-gap: 4.6rem;
            column-gap: 4.6rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 10.2rem 6rem 11rem;
  }
  .sec_compare .compare_ttl {
    grid-area: ttl;
    text-align: left;
    font-size: 4.3rem;
    letter-spacing: 0.02em;
  }
  .sec_compare .compare_ttl .ul {
    white-space: nowrap;
    padding: 0 0 0.4rem;
    margin-bottom: 1.6rem;
  }
  .sec_compare .compare_txt {
    grid-area: txt;
    margin-top: 1.4rem;
    font-size: 2.2rem;
    font-weight: var(--font-weight-Bold);
    line-height: 2;
  }
  .sec_compare .compare_note {
    grid-area: note;
    margin-top: 2rem;
    font-size: 1.4rem;
    line-height: 2;
  }
  .sec_compare .compare_table {
    grid-area: table;
    align-self: start;
    margin-top: 0.4rem;
    border-radius: 0.6rem;
    -webkit-box-shadow: 0 0.4rem 0 #B40000;
            box-shadow: 0 0.4rem 0 #B40000;
  }
  .sec_compare .compare_head,
  .sec_compare .compare_th,
  .sec_compare .compare_td {
    height: 6.65rem;
    padding: 0.4rem;
    border-left: 1px solid #CCC;
    font-size: 1.9rem;
  }
  .sec_compare .compare_head:first-child,
  .sec_compare .compare_th:first-child,
  .sec_compare .compare_td:first-child {
    border-left: none;
  }
  .sec_compare .compare_head {
    border-left: none;
    font-size: 1.59rem;
    font-weight: var(--font-weight-SemiBold);
    line-height: 1.3;
  }
  .sec_compare .th_item {
    width: 28.2%;
    background: #B0B0B0;
  }
  .sec_compare .th_reform {
    width: 35.8%;
    background: #3CC51A;
  }
  .sec_compare .th_ss {
    width: 36%;
    background: #FFED00;
    font-size: 1.59rem;
  }
  .sec_compare .compare_th {
    font-weight: var(--font-weight-SemiBold);
  }
  .sec_compare .compare_row:nth-child(even) {
    background: #FFE5E5;
  }
  .sec_compare .compare_td:last-child {
    font-size: 1.59rem;
  }
  .sec_compare .compare_td.small {
    font-size: 1.59rem;
    font-weight: var(--font-weight-Medium);
  }
  .sec_compare .compare_small {
    font-size: 1.43rem;
  }
}

/* ---- 白いアーチ ---- */
.arch_white {
  position: relative;
  height: 12rem;
  background: var(--color-red);
  overflow: hidden;
}
.arch_white::after {
  content: "";
  position: absolute;
  left: -15%;
  bottom: 0;
  width: 130%;
  height: 12rem;
  border-radius: 50% 50% 0 0/100% 100% 0 0;
  background: #fff;
}
@media (width > 1023px) {
  .arch_white {
    height: 17rem;
  }
  .arch_white::after {
    left: -10%;
    width: 120%;
    height: 17rem;
  }
}

/* ---- 残価設定型住宅ローン ---- */
.sec_loan {
  background: #fff;
  text-align: center;
}
.sec_loan .loan_now {
  position: relative;
  display: inline-block;
  margin-top: -5rem;
}
.sec_loan .loan_now .spark {
  position: absolute;
  top: -1.6rem;
  right: -1.6rem;
  width: 2rem;
}
.sec_loan .loan_now_txt {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 6rem;
  height: 6rem;
  border-radius: 50%;
  background: var(--color-red);
  color: #fff;
  font-size: 2.6rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1;
}
.sec_loan .loan_now_txt::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -0.9rem;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 1.1rem 0.9rem 0 0.9rem;
  border-color: var(--color-red) transparent transparent transparent;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.sec_loan .loan_ttl {
  margin-top: 2rem;
  font-size: 3.6rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.3;
  letter-spacing: 0.02em;
}
.sec_loan .loan_txt {
  margin-top: 2.6rem;
  padding: 0 5.8rem;
  font-family: var(--font-noto);
  font-size: 1.5rem;
  font-weight: var(--font-weight-Bold);
  line-height: 2.13;
  text-align: justify;
}
.sec_loan .loan_txt .yl {
  color: var(--color-black);
  background: var(--color-yellow);
}
.sec_loan .loan_photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 7rem;
}
.sec_loan .loan_photo {
  line-height: 0;
}
.sec_loan .loan_photo_img {
  width: 100%;
  aspect-ratio: 188/128;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (width > 1023px) {
  .sec_loan .loan_now {
    margin-top: -7rem;
  }
  .sec_loan .loan_now .spark {
    top: -2rem;
    right: -2rem;
    width: 2.8rem;
  }
  .sec_loan .loan_now_txt {
    width: 8rem;
    height: 8rem;
    font-size: 3.67rem;
  }
  .sec_loan .loan_now_txt::after {
    bottom: -1.2rem;
    border-width: 1.4rem 1.1rem 0 1.1rem;
  }
  .sec_loan .loan_ttl {
    margin-top: 2.6rem;
    font-size: 4.46rem;
    line-height: 1.4;
  }
  .sec_loan .loan_txt {
    margin-top: 2.4rem;
    padding: 0;
    font-family: var(--font-plex);
    font-size: 2rem;
    font-weight: var(--font-weight-SemiBold);
    line-height: 2;
    text-align: center;
  }
  .sec_loan .loan_photos {
    grid-template-columns: repeat(4, 1fr);
    margin-top: 10.8rem;
  }
  .sec_loan .loan_photo_img {
    aspect-ratio: 300/205;
  }
}

/* ---- デビュー記念 選べる50万円サポート ---- */
.sec_campaign {
  padding: 7rem 1.8rem 6rem;
  background: #fff;
  /* 「※」は擬似要素で左に置き、2行目以降を※の右にそろえる */
}
.sec_campaign.is_second {
  padding: 3rem 1.8rem 7rem;
}
.sec_campaign .campaign_card {
  position: relative;
  padding: 4.2rem 2.5rem 3.4rem;
  border-radius: 1rem;
  background: var(--color-green);
  -webkit-box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
  color: #fff;
  text-align: center;
  overflow: hidden;
}
.sec_campaign .campaign_card .confetti {
  position: absolute;
  top: 0.2rem;
  left: 50%;
  width: 32rem;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  pointer-events: none;
}
.sec_campaign .campaign_tag {
  position: relative;
  font-size: 2rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
}
.sec_campaign .campaign_tag_txt {
  position: relative;
  display: inline-block;
  padding: 0 2.4rem;
}
.sec_campaign .campaign_tag_txt::before, .sec_campaign .campaign_tag_txt::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 2px;
  height: 2.8rem;
  background: #fff;
  -webkit-transform: translateY(-50%) rotate(-30deg);
          transform: translateY(-50%) rotate(-30deg);
}
.sec_campaign .campaign_tag_txt::before {
  left: 0;
}
.sec_campaign .campaign_tag_txt::after {
  right: 0;
  -webkit-transform: translateY(-50%) rotate(30deg);
          transform: translateY(-50%) rotate(30deg);
}
.sec_campaign .campaign_ttl {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 0.6rem;
  padding-bottom: 1.2rem;
  border-bottom: 2px dotted #fff;
  line-height: 1;
  white-space: nowrap;
}
.sec_campaign .campaign_ttl .s {
  font-size: 2rem;
  font-weight: var(--font-weight-Bold);
}
.sec_campaign .campaign_ttl .big {
  margin: 0 0.3rem;
  color: var(--color-yellow);
  font-size: 4.8rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: -0.02em;
}
.sec_campaign .campaign_txt {
  position: relative;
  margin-top: 2rem;
  font-size: 1.6rem;
  font-weight: var(--font-weight-SemiBold);
  line-height: 2;
}
.sec_campaign .campaign_limit {
  position: relative;
  margin-top: 2.4rem;
  padding: 1.4rem 1rem;
  border-radius: 0.8rem;
  background: #fff;
  -webkit-box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
  color: var(--color-green);
  font-size: 2.2rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.3;
}
.sec_campaign .campaign_list {
  margin-top: 2.6rem;
}
.sec_campaign .campaign_item {
  position: relative;
  margin-top: 1.8rem;
  padding: 3rem 2.5rem 3rem;
  border-radius: 1rem;
  background: var(--color-green);
  -webkit-box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
  color: #fff;
  overflow: hidden;
}
.sec_campaign .campaign_item:first-child {
  margin-top: 0;
}
.sec_campaign .campaign_item .confetti {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  width: 9.6rem;
  pointer-events: none;
}
.sec_campaign .campaign_item .n {
  position: relative;
  top: -0.3rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 3.4rem;
          flex: 0 0 3.4rem;
  width: 3.4rem;
  height: 3.4rem;
  margin-right: 1rem;
  border-radius: 50%;
  background: var(--color-yellow);
  color: var(--color-green);
  font-family: var(--font-noto);
  font-size: 2.2rem;
}
.sec_campaign .campaign_item .n .spark {
  position: absolute;
  top: -1.4rem;
  left: -1.2rem;
  width: 1.5rem;
}
.sec_campaign .campaign_item_ttl {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: var(--color-yellow);
  font-size: 2.2rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.sec_campaign .campaign_item_txt {
  margin-top: 1rem;
  font-size: 1.5rem;
  font-weight: var(--font-weight-SemiBold);
  line-height: 1.75;
}
.sec_campaign .campaign_note {
  margin-top: 2.4rem;
  padding: 0 1.8rem;
  font-size: 1rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.9;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
.sec_campaign .campaign_note .ttl {
  font-size: 1.2rem;
}
.sec_campaign .campaign_note_item {
  position: relative;
  display: block;
  padding-left: 1em;
}
.sec_campaign .campaign_note_item::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}
.sec_campaign .btn_wrap {
  margin-top: 4rem;
  padding: 0;
}
@media (width > 1023px) {
  .sec_campaign {
    padding: 17rem 6rem 9rem;
  }
  .sec_campaign.is_second {
    padding: 6.6rem 6rem 9rem;
  }
  .sec_campaign .campaign_card {
    padding: 6.6rem 4rem 4.8rem;
    border-radius: 2rem;
    background: var(--color-green-pc);
    -webkit-box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
  }
  .sec_campaign .campaign_card .confetti {
    top: 0.6rem;
    width: 66rem;
  }
  .sec_campaign .campaign_tag {
    font-size: 4.42rem;
  }
  .sec_campaign .campaign_tag_txt {
    padding: 0 4.6rem;
  }
  .sec_campaign .campaign_tag_txt::before, .sec_campaign .campaign_tag_txt::after {
    height: 5rem;
  }
  .sec_campaign .campaign_ttl {
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
    margin-top: -1rem;
    padding-bottom: 0;
    border-bottom: none;
  }
  .sec_campaign .campaign_ttl .s {
    font-size: 6.19rem;
  }
  .sec_campaign .campaign_ttl .big {
    margin: 0 1rem 0 1.6rem;
    font-size: 16.8rem;
    letter-spacing: -0.01em;
  }
  .sec_campaign .campaign_ttl .big_unit {
    font-size: 8.41rem;
  }
  .sec_campaign .campaign_txt {
    margin-top: 0.4rem;
    font-size: 2rem;
  }
  .sec_campaign .campaign_limit {
    width: 62.6rem;
    margin: 2.4rem auto 0;
    padding: 1.6rem 1rem;
    color: var(--color-green-pc);
    font-size: 3.39rem;
  }
  .sec_campaign .campaign_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.9rem;
    margin-top: 1.5rem;
  }
  .sec_campaign .campaign_item {
    margin-top: 0;
    padding: 2.2rem 2.4rem 2.6rem 3.4rem;
    border-radius: 0.6rem;
    background: var(--color-green-pc);
  }
  .sec_campaign .campaign_item .confetti {
    top: 1.2rem;
    right: 0.8rem;
    width: 8.8rem;
  }
  .sec_campaign .campaign_item .n {
    top: 0;
    -ms-flex-preferred-size: 4rem;
        flex-basis: 4rem;
    width: 4rem;
    height: 4rem;
    margin-right: 1rem;
    color: var(--color-green-pc);
    font-size: 2.8rem;
  }
  .sec_campaign .campaign_item .n .spark {
    top: -1.6rem;
    left: -1.6rem;
    width: 1.6rem;
  }
  .sec_campaign .campaign_item_ttl {
    margin-left: -1.2rem;
    font-size: 3rem;
  }
  .sec_campaign .campaign_item_txt {
    margin-top: 1.2rem;
    font-size: 2rem;
    line-height: 2;
  }
  .sec_campaign .campaign_note {
    margin-top: 2.4rem;
    padding: 0;
    font-size: 1.4rem;
    line-height: 2;
    -webkit-font-feature-settings: normal;
            font-feature-settings: normal;
    text-align: center;
  }
  .sec_campaign .campaign_note .ttl {
    display: inline;
    margin-right: 1.6rem;
    font-size: 1.4rem;
  }
  .sec_campaign .campaign_note_list {
    display: inline;
  }
  .sec_campaign .campaign_note_item {
    display: inline;
  }
  .sec_campaign .campaign_note_item + .campaign_note_item {
    margin-left: 1.4rem;
  }
  .sec_campaign .btn_wrap {
    margin-top: 5.6rem;
  }
}

/* ---- STAFF紹介 ---- */
.sec_staff {
  padding: 7rem 2rem 7rem;
  background: var(--color-gray);
  text-align: center;
}
.sec_staff .staff_fukidashi {
  position: relative;
  display: inline-block;
  padding: 1rem 2.6rem;
  border: 2px solid var(--color-black);
  background: #fff;
  font-size: 2rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
  /* 白い三角を外側と同じ形で上にずらし、しっぽの線幅を枠線（2px）にそろえる */
}
.sec_staff .staff_fukidashi::before, .sec_staff .staff_fukidashi::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 0;
  height: 0;
  border-style: solid;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.sec_staff .staff_fukidashi::before {
  bottom: -1.6rem;
  border-width: 1.6rem 1.4rem 0 1.4rem;
  border-color: var(--color-black) transparent transparent transparent;
}
.sec_staff .staff_fukidashi::after {
  bottom: calc(-1.6rem + 3.03px);
  border-width: 1.6rem 1.4rem 0 1.4rem;
  border-color: #fff transparent transparent transparent;
}
.sec_staff .staff_ttl {
  margin-top: 2.4rem;
  font-size: 3.6rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
  line-height: 1.2;
}
.sec_staff .staff_list {
  margin-top: 1.5rem;
  text-align: left;
}
.sec_staff .staff_item {
  padding: 3.5rem 2rem 3.6rem;
  border-bottom: 1px solid var(--color-black);
}
.sec_staff .staff_item:first-child {
  padding-top: 2rem;
}
.sec_staff .staff_item:last-child {
  border-bottom: none;
}
.sec_staff .staff_item .catch {
  font-size: 1.8rem;
  font-weight: var(--font-weight-SemiBold);
  line-height: 1.55;
}
.sec_staff .staff_item .photo {
  margin-top: 1.5rem;
  line-height: 0;
}
.sec_staff .staff_item .name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  margin-top: 1.4rem;
}
.sec_staff .staff_item .post {
  margin-right: 1.2rem;
  font-size: 1.4rem;
  font-weight: var(--font-weight-SemiBold);
}
.sec_staff .staff_item .n {
  font-size: 2.8rem;
  font-weight: var(--font-weight-SemiBold);
  letter-spacing: 0.05em;
}
.sec_staff .staff_item .txt {
  margin-top: 1rem;
  font-size: 1.3rem;
  font-weight: var(--font-weight-Medium);
  line-height: 1.85;
  text-align: justify;
}
.sec_staff .staff_photo_img {
  width: 100%;
  aspect-ratio: 258/159;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (width > 1023px) {
  .sec_staff {
    padding: 7.6rem 6rem 11.4rem;
    background: #E3E3E3;
  }
  .sec_staff .staff_fukidashi {
    padding: 1.6rem 3.6rem;
    font-size: 2.6rem;
  }
  .sec_staff .staff_fukidashi::before {
    bottom: -2.2rem;
    border-width: 2.2rem 1.6rem 0 1.6rem;
  }
  .sec_staff .staff_fukidashi::after {
    bottom: calc(-2.2rem + 3.4px);
    border-width: 2.2rem 1.6rem 0 1.6rem;
  }
  .sec_staff .staff_ttl {
    margin-top: 1.8rem;
    font-family: var(--font-noto);
    font-size: 4.4rem;
  }
  .sec_staff .staff_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    -webkit-column-gap: 8.8rem;
       -moz-column-gap: 8.8rem;
            column-gap: 8.8rem;
    margin-top: 5.4rem;
  }
  .sec_staff .staff_item {
    position: relative;
    padding: 0;
    border-bottom: none;
  }
  .sec_staff .staff_item:first-child {
    padding-top: 0;
  }
  .sec_staff .staff_item + .staff_item::before {
    content: "";
    position: absolute;
    top: 0;
    left: -4.4rem;
    width: 1px;
    height: 100%;
    background: #555;
  }
  .sec_staff .staff_item .catch {
    font-size: 2.1rem;
    line-height: 1.45;
    white-space: nowrap;
  }
  .sec_staff .staff_item .photo {
    margin-top: 1.4rem;
  }
  .sec_staff .staff_item .name {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-top: 2.4rem;
  }
  .sec_staff .staff_item .post {
    margin-right: 0;
    font-size: 1.63rem;
  }
  .sec_staff .staff_item .n {
    font-size: 3.2rem;
    line-height: 1.3;
  }
  .sec_staff .staff_item .txt {
    margin-top: 1.6rem;
    font-size: 1.6rem;
    line-height: 2;
  }
  .sec_staff .staff_photo_img {
    aspect-ratio: 302/187;
    border-radius: 0.6rem;
  }
}

/* ---- 無料相談会 ---- */
.sec_event {
  padding: 6rem 1.8rem 6rem;
  background: var(--color-red);
  /* SPは本文の幅をデザインに合わせて狭め、Noto Sans JPの太字に */
}
.sec_event .event_ttl {
  margin-top: 3rem;
  text-align: center;
}
.sec_event .event_ttl .box {
  display: inline-block;
  padding: 0.4rem 1.4rem;
  background: #fff;
  color: var(--color-red);
  font-size: 4.2rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.04em;
  line-height: 1.3;
}
.sec_event .event_ttl .box + .box {
  margin-top: 0.6rem;
}
.sec_event .event_card {
  margin-top: 2.8rem;
  padding: 3.5rem 2rem 4rem;
  border-radius: 1rem 1rem 0 0;
  background: #fff;
  text-align: center;
}
.sec_event .event_card .event_txt {
  font-size: 1.6rem;
  font-weight: var(--font-weight-SemiBold);
  line-height: 2;
  text-align: justify;
}
.sec_event .event_card .tag_red {
  margin-top: 3.4rem;
  font-size: 1.6rem;
}
.sec_event .event_card .c_ttl_ul {
  margin-top: 1rem;
  font-size: 2.3rem;
  letter-spacing: 0;
}
.sec_event .event_card .event_img {
  margin-top: 2rem;
  line-height: 0;
}
.sec_event .event_card .event_img_el {
  width: 100%;
  max-width: 29.2rem;
}
.sec_event .event_card .event_txt2 {
  margin-top: 2.4rem;
  font-size: 1.9rem;
  font-weight: var(--font-weight-SemiBold);
  line-height: 1.8;
  text-align: justify;
}
.sec_event .event_card .event_note {
  margin-top: 1.4rem;
  font-size: 1.1rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.8;
  text-align: justify;
}
.sec_event .event_card .btn_wrap {
  margin-top: 4rem;
  padding: 0;
}
@media (width <= 1023px) {
  .sec_event .event_card .event_txt,
  .sec_event .event_card .event_txt2,
  .sec_event .event_card .event_note {
    margin-left: 0.6rem;
    margin-right: 0.9rem;
    font-family: var(--font-noto);
    font-weight: var(--font-weight-Bold);
  }
  .sec_event .event_card .event_txt {
    font-size: 1.6rem;
    line-height: 2.25;
    letter-spacing: 0.04em;
  }
  .sec_event .event_card .event_txt2 {
    font-size: 1.65rem;
    line-height: 2.2;
  }
}
@media (width > 1023px) {
  .sec_event {
    padding: 7rem 6rem 7.2rem;
  }
  .sec_event .event_head {
    display: grid;
    grid-template-columns: 47rem 1fr;
    -webkit-column-gap: 4.8rem;
       -moz-column-gap: 4.8rem;
            column-gap: 4.8rem;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .sec_event .event_ttl {
    margin-top: 0;
  }
  .sec_event .event_ttl .box {
    display: block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    padding: 0 3.4rem;
    font-size: 9.23rem;
    letter-spacing: 0;
    white-space: nowrap;
    line-height: 1.25;
  }
  .sec_event .event_ttl .box + .box {
    margin-top: 2.6rem;
  }
  .sec_event .event_card {
    display: grid;
    grid-template-columns: 34.6rem 1fr;
    grid-template-areas: "tag txt" "ttl txt" "img txt" "txt2 note" "btn btn";
    grid-template-rows: auto auto auto 1fr auto;
    -webkit-column-gap: 4.8rem;
       -moz-column-gap: 4.8rem;
            column-gap: 4.8rem;
    margin-top: 5.8rem;
    padding: 7rem 6.6rem 6.4rem;
    border-radius: 1rem;
  }
  .sec_event .event_card .event_txt {
    grid-area: txt;
    align-self: start;
    font-size: 2.2rem;
    font-weight: var(--font-weight-Bold);
    line-height: 2;
    text-align: left;
  }
  .sec_event .event_card .tag_red {
    grid-area: tag;
    justify-self: center;
    margin-top: 0;
    padding: 0.1rem 1.4rem;
    border-radius: 0;
    font-size: 1.87rem;
  }
  .sec_event .event_card .c_ttl_ul {
    grid-area: ttl;
    margin-top: 0.6rem;
    font-size: 3.13rem;
    letter-spacing: 0;
  }
  .sec_event .event_card .c_ttl_ul .ul {
    margin-bottom: 0.6rem;
    padding: 0 0.2rem 0.4rem;
    white-space: nowrap;
  }
  .sec_event .event_card .event_img {
    grid-area: img;
    margin-top: 1.4rem;
  }
  .sec_event .event_card .event_img_el {
    max-width: 27.8rem;
  }
  .sec_event .event_card .event_txt2 {
    grid-area: txt2;
    margin-top: 0.4rem;
    padding: 0 2rem;
    font-size: 1.4rem;
    font-weight: var(--font-weight-Bold);
    line-height: 1.72;
    text-align: left;
  }
  .sec_event .event_card .event_note {
    grid-area: note;
    margin-top: 0.8rem;
    font-size: 1.4rem;
    text-align: left;
  }
  .sec_event .event_card .btn_wrap {
    grid-area: btn;
    margin-top: 5.4rem;
  }
}

/* ---- よくあるご質問 ---- */
.sec_faq {
  padding-bottom: 7rem;
  background: #fff;
}
.sec_faq .faq_ttl {
  /* 白いアーチの中に見出しを引き上げる */
  position: relative;
  margin-top: -3rem;
  font-size: 3rem;
  font-weight: var(--font-weight-Bold);
  text-align: center;
  letter-spacing: 0.05em;
}
.sec_faq .faq_list {
  margin-top: 2rem;
  padding: 0 1.8rem;
}
.sec_faq .faq_item {
  margin-top: 2rem;
  padding: 1.8rem 1.5rem 1.8rem;
  border: 1px solid #ddd;
  border-radius: 1rem;
  background: #fff;
  -webkit-box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.12);
          box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.12);
}
.sec_faq .faq_item:first-child {
  margin-top: 0;
}
.sec_faq .faq_q {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.sec_faq .faq_q .q {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 3rem;
          flex: 0 0 3rem;
  width: 3rem;
  height: 3rem;
  margin-right: 0.8rem;
  border-radius: 50%;
  background: var(--color-red);
  color: #fff;
  font-size: 2rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1;
}
.sec_faq .faq_q .txt {
  font-size: 1.5rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.4;
}
.sec_faq .faq_a {
  margin-top: 1.6rem;
  padding: 1.6rem 0.8rem 0;
  border-top: 1px dashed var(--color-black);
}
.sec_faq .faq_a .a {
  float: left;
  margin-right: 1rem;
  color: #8DC21F;
  font-family: var(--font-lato);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
}
.sec_faq .faq_a_txt {
  overflow: hidden;
  font-size: 1.5rem;
  font-weight: var(--font-weight-Medium);
  line-height: 1.85;
}
@media (width > 1023px) {
  .sec_faq {
    padding-bottom: 10rem;
  }
  .sec_faq .faq_ttl {
    margin-top: -1rem;
    font-family: var(--font-noto);
    font-size: 4.4rem;
  }
  .sec_faq .faq_list {
    margin-top: 3.4rem;
    padding: 0 6rem;
  }
  .sec_faq .faq_item {
    margin-top: 2.2rem;
    padding: 1.4rem 3.8rem;
    border-color: #CCC;
    border-radius: 0.6rem;
    -webkit-box-shadow: 0 0.2rem 0.4rem rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.2rem 0.4rem rgba(0, 0, 0, 0.25);
  }
  .sec_faq .faq_q .q {
    -ms-flex-preferred-size: 3.1rem;
        flex-basis: 3.1rem;
    width: 3.1rem;
    height: 3.1rem;
    margin-right: 2rem;
    font-size: 2.06rem;
  }
  .sec_faq .faq_q .txt {
    font-size: 2.2rem;
  }
  .sec_faq .faq_a {
    margin-top: 1.6rem;
    padding: 1.4rem 0.4rem 0.4rem;
  }
  .sec_faq .faq_a .a {
    margin-right: 1.4rem;
    color: #28C500;
    font-family: var(--font-plex);
    font-size: 3.09rem;
    line-height: 1.1;
  }
  .sec_faq .faq_a_txt {
    font-size: 2rem;
    line-height: 1.8;
  }
}

/* ---- 店舗案内 ---- */
.sec_shop {
  padding: 8rem 3.7rem 6rem;
  background: var(--color-cream);
  text-align: center;
}
.sec_shop .tag_red {
  font-size: 1.4rem;
  padding: 0.6rem 1.6rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.sec_shop .shop_ttl {
  margin-top: 1.2rem;
  font-size: 3rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
}
.sec_shop .shop_lead {
  margin-top: 1rem;
  font-size: 1.8rem;
  font-weight: var(--font-weight-Medium);
  line-height: 1.6;
}
.sec_shop .shop_tabs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem 0.8rem;
  margin-top: 2.2rem;
  padding: 0 1rem;
}
.sec_shop .shop_tab {
  width: 8.2rem;
  height: 4.6rem;
  border: 1px solid #444;
  border-radius: 0.6rem;
  background: #fff;
  font-family: var(--font-plex);
  font-size: 1.6rem;
  font-weight: var(--font-weight-Medium);
  cursor: pointer;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
.sec_shop .shop_tab.is_active {
  border-color: var(--color-red);
  background: var(--color-red);
  color: #fff;
}
.sec_shop .shop_list {
  margin-top: 2.2rem;
  text-align: left;
}
.sec_shop .shop_item {
  margin-top: 2rem;
  border-radius: 1rem;
  background: #fff;
  overflow: hidden;
}
.sec_shop .shop_item:first-child {
  margin-top: 0;
}
.sec_shop .shop_item[hidden] {
  display: none;
}
.sec_shop .photo {
  line-height: 0;
}
.sec_shop .shop_photo_img {
  width: 100%;
  aspect-ratio: 300/158;
  -o-object-fit: cover;
     object-fit: cover;
}
.sec_shop .body {
  padding: 2rem 2rem 2rem;
}
.sec_shop .shop_name {
  font-size: 2.2rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.3;
}
.sec_shop .addr {
  margin-top: 0.6rem;
  font-size: 1.5rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.6;
}
.sec_shop .tel {
  margin-top: 0.2rem;
  color: var(--color-red);
  font-size: 1.8rem;
  font-weight: var(--font-weight-Bold);
}
.sec_shop .shop_tel_link {
  color: var(--color-red);
}
.sec_shop .map {
  margin-top: 1.6rem;
  line-height: 0;
}
.sec_shop .shop_map_iframe {
  display: block;
  width: 100%;
  aspect-ratio: 259/92;
  border: 0;
}
@media (width > 1023px) {
  .sec_shop {
    padding: 6.6rem 6rem 8rem;
    background: var(--color-shop);
  }
  .sec_shop .tag_red {
    padding: 0.2rem 2.6rem;
    font-family: var(--font-noto);
    font-size: 2.51rem;
  }
  .sec_shop .shop_ttl {
    margin-top: 1rem;
    font-family: var(--font-noto);
    font-size: 4.41rem;
  }
  .sec_shop .shop_lead {
    margin-top: 0.4rem;
    font-family: var(--font-noto);
    font-size: 2.2rem;
    font-weight: var(--font-weight-Bold);
  }
  .sec_shop .shop_tabs {
    gap: 0.9rem;
    margin-top: 3.8rem;
    padding: 0;
  }
  .sec_shop .shop_tab {
    width: 10.7rem;
    height: 6.1rem;
    border-radius: 0.4rem;
    font-size: 2.1rem;
    font-weight: var(--font-weight-SemiBold);
  }
  .sec_shop .shop_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem 3.2rem;
    margin-top: 4.2rem;
  }
  .sec_shop .shop_item {
    margin-top: 0;
    border-radius: 0.6rem;
    -webkit-box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.2);
            box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.2);
  }
  .sec_shop .shop_photo_img {
    aspect-ratio: 338/178;
  }
  .sec_shop .body {
    padding: 2rem 2.3rem 2rem;
  }
  .sec_shop .shop_name {
    font-size: 2.07rem;
  }
  .sec_shop .addr {
    margin-top: 0.8rem;
    font-size: 1.57rem;
  }
  .sec_shop .tel {
    margin-top: 0.4rem;
    font-size: 1.57rem;
  }
  .sec_shop .map {
    margin-top: 2.4rem;
  }
  .sec_shop .shop_map_iframe {
    aspect-ratio: 292/102;
  }
}

/* ---- お問い合わせ ---- */
.sec_contact {
  padding: 6rem 1.8rem 4rem;
  background: var(--color-red);
  color: #fff;
  text-align: center;
  /* ご希望時間（時・分）の横並び */
  /* 本体フォームの選択肢（.survey_choices の見た目を流用） */
  /* 事前アンケート本体 */
  /* ラジオボタンは標準の影付きの見た目をやめ、細い枠＋中の丸で表示する */
  /* Mailform Pro：エラー表示 */
  /* TOPに戻る（追尾なし・右寄せ） */
}
.sec_contact .contact_icon {
  line-height: 0;
}
.sec_contact .contact_icon_img {
  width: 4.5rem;
}
.sec_contact .contact_ttl {
  margin-top: 1.2rem;
  padding-bottom: 1.6rem;
  border-bottom: 1px solid #fff;
  font-size: 3rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
  line-height: 1.3;
}
.sec_contact .contact_lead {
  margin-top: 1.6rem;
  font-size: 1.6rem;
  font-weight: var(--font-weight-SemiBold);
  line-height: 2;
}
.sec_contact .contact_note {
  margin-top: 0.6rem;
  font-size: 1.1rem;
  font-weight: var(--font-weight-Bold);
}
.sec_contact .contact_form {
  margin-top: 3rem;
  padding: 4rem 2rem 3rem;
  border-radius: 1rem;
  background: #fff;
  color: var(--color-black);
  text-align: left;
}
.sec_contact .form_row {
  margin-top: 2.8rem;
}
.sec_contact .form_row:first-child {
  margin-top: 0;
}
.sec_contact .form_label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 1.8rem;
  font-weight: var(--font-weight-Medium);
  line-height: 1.3;
}
.sec_contact .form_label .req, .sec_contact .form_label .opt {
  display: inline-block;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  margin-right: 0.8rem;
  padding: 0.4rem 0.9rem;
  background: var(--color-red);
  color: #fff;
  font-size: 1.2rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1;
}
.sec_contact .form_label .opt {
  background: #888;
}
.sec_contact .form_input,
.sec_contact .form_select,
.sec_contact .form_textarea {
  display: block;
  width: 100%;
  margin-top: 1.2rem;
  padding: 0 1.5rem;
  border: 1px solid var(--color-red);
  border-radius: 0;
  background: #fff;
  font-family: var(--font-plex);
  font-size: 1.4rem;
  font-weight: var(--font-weight-Medium);
  color: var(--color-black);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
.sec_contact .form_input::-webkit-input-placeholder, .sec_contact .form_select::-webkit-input-placeholder, .sec_contact .form_textarea::-webkit-input-placeholder {
  color: #999;
}
.sec_contact .form_input::-moz-placeholder, .sec_contact .form_select::-moz-placeholder, .sec_contact .form_textarea::-moz-placeholder {
  color: #999;
}
.sec_contact .form_input:-ms-input-placeholder, .sec_contact .form_select:-ms-input-placeholder, .sec_contact .form_textarea:-ms-input-placeholder {
  color: #999;
}
.sec_contact .form_input::-ms-input-placeholder, .sec_contact .form_select::-ms-input-placeholder, .sec_contact .form_textarea::-ms-input-placeholder {
  color: #999;
}
.sec_contact .form_input::placeholder,
.sec_contact .form_select::placeholder,
.sec_contact .form_textarea::placeholder {
  color: #999;
}
.sec_contact .form_input,
.sec_contact .form_select {
  height: 4.4rem;
}
.sec_contact .form_textarea {
  height: 12rem;
  padding: 1rem 1.5rem;
  resize: vertical;
}
.sec_contact .select_wrap {
  position: relative;
  /* 未選択（「〜を選択」）のときだけグレー、選択後は黒 */
}
.sec_contact .select_wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.4rem;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.7rem 0.5rem 0 0.5rem;
  border-color: var(--color-black) transparent transparent transparent;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}
.sec_contact .select_wrap .form_select {
  padding-right: 3.2rem;
}
.sec_contact .select_wrap .form_select:has(option[value=""]:checked) {
  color: #999;
}
.sec_contact .date_list {
  margin-top: 1.2rem;
}
.sec_contact .date_list .lbl {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 7.2rem;
          flex: 0 0 7.2rem;
  font-size: 1.6rem;
  font-weight: var(--font-weight-Bold);
}
.sec_contact .date_list .select_wrap {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 0;
  margin-left: 0.6rem;
  /* 日付ピッカー（flatpickr）の入力欄。選択後の値は黒で表示 */
}
.sec_contact .date_list .select_wrap .form_select {
  margin-top: 0;
  padding: 0 2.4rem 0 1rem;
  font-size: 1.2rem;
}
.sec_contact .date_list .select_wrap .form_date {
  color: var(--color-black);
  cursor: pointer;
}
.sec_contact .date_list .select_wrap::after {
  right: 1rem;
}
.sec_contact .date_item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 1.2rem;
}
.sec_contact .date_item:first-child {
  margin-top: 0;
}
.sec_contact .date_item .mfp_err {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  padding-left: 7.8rem;
}
.sec_contact .time_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1rem;
  margin-top: 1.2rem;
}
.sec_contact .time_list .select_wrap {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 0;
}
.sec_contact .time_list .form_select {
  margin-top: 0;
}
.sec_contact .form_choices {
  margin-top: 1.2rem;
}
.sec_contact .form_note {
  margin-top: 1rem;
  color: #666;
  font-size: 1.2rem;
  line-height: 1.6;
}
.sec_contact .survey {
  margin-top: 4rem;
}
.sec_contact .survey_btn {
  display: block;
  width: 100%;
  padding: 1.6rem 1rem 1.6rem;
  border: none;
  border-radius: 1rem;
  background: var(--color-green);
  -webkit-box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
  color: #fff;
  font-family: var(--font-plex);
  text-align: center;
  line-height: 1.5;
  cursor: pointer;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.sec_contact .survey_btn .l1, .sec_contact .survey_btn .l2, .sec_contact .survey_btn .l3 {
  display: block;
}
.sec_contact .survey_btn .l1 {
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
}
.sec_contact .survey_btn .l2 {
  font-size: 1.6rem;
  font-weight: var(--font-weight-Bold);
}
.sec_contact .survey_btn .yl {
  font-size: 2rem;
}
.sec_contact .survey_btn .l3 {
  margin-top: 0.6rem;
  font-size: 1.9rem;
  font-weight: var(--font-weight-Medium);
}
.sec_contact .survey_btn .arrow {
  display: inline-block;
  width: 1.2rem;
  height: 1.2rem;
  margin: 0 0 0.4rem 0.8rem;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
.sec_contact .survey_btn[aria-expanded=true] .arrow {
  -webkit-transform: translateY(0.6rem) rotate(-135deg);
          transform: translateY(0.6rem) rotate(-135deg);
}
.sec_contact .survey_btn:hover {
  opacity: 0.85;
  text-decoration: none;
}
.sec_contact .survey_btn:disabled {
  opacity: 0.6;
  cursor: wait;
}
.sec_contact .survey_btn:focus-visible {
  outline: 3px solid var(--color-base-blue);
  outline-offset: 3px;
}
.sec_contact .survey_noscript {
  margin-top: 1rem;
  font-size: 1.3rem;
  text-align: center;
}
.sec_contact .survey_body {
  margin-top: 2rem;
  border: 2px solid var(--color-green);
  border-radius: 1rem;
  background: #F4FBF6;
  overflow: hidden;
}
.sec_contact .survey_body[hidden] {
  display: none;
}
.sec_contact .survey_head {
  padding: 2rem 1.6rem 1.8rem;
  background: var(--color-green);
  color: #fff;
  text-align: center;
}
.sec_contact .survey_ttl {
  font-size: 1.5rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.6;
}
.sec_contact .survey_ttl_em {
  color: var(--color-yellow);
}
.sec_contact .survey_lead {
  margin-top: 1rem;
  font-size: 1.3rem;
  line-height: 1.7;
  text-align: left;
}
.sec_contact .survey_note {
  margin-top: 0.8rem;
  font-size: 1.15rem;
  line-height: 1.6;
  text-align: left;
}
.sec_contact .survey_list {
  padding: 0 1.6rem;
}
.sec_contact .survey_q {
  padding: 2.2rem 0;
  border-top: 1px dashed #9FD7B5;
}
.sec_contact .survey_q:first-child {
  border-top: none;
}
.sec_contact .survey_q_ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 0.4rem 0.8rem;
  font-size: 1.6rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.55;
}
.sec_contact .survey_q_ttl .req, .sec_contact .survey_q_ttl .opt {
  display: inline-block;
  padding: 0.4rem 0.8rem;
  background: var(--color-red);
  color: #fff;
  font-size: 1.1rem;
  line-height: 1;
}
.sec_contact .survey_q_ttl .opt {
  background: #888;
}
.sec_contact .survey_q_num {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  color: var(--color-green);
  font-family: var(--font-lato);
  font-size: 1.8rem;
  font-weight: 900;
}
.sec_contact .survey_q_txt {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 70%;
}
.sec_contact .survey_q_body {
  margin-top: 1.2rem;
}
.sec_contact .survey_q_note {
  margin-top: 0.8rem;
  color: #666;
  font-size: 1.2rem;
}
.sec_contact .survey_choices {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8rem;
}
.sec_contact .survey_choices.is_wide .survey_choice {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
}
.sec_contact .survey_choice {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  min-height: 4.4rem;
  padding: 0.8rem 1.2rem;
  border: 1px solid #CCC;
  border-radius: 0.6rem;
  background: #fff;
  font-size: 1.4rem;
  line-height: 1.4;
  cursor: pointer;
}
.sec_contact .survey_choice:has(.survey_check:checked) {
  border-color: var(--color-green);
  background: #E3F6EA;
}
.sec_contact .survey_choice:has(.survey_check:focus-visible) {
  outline: 2px solid var(--color-base-blue);
  outline-offset: 2px;
}
.sec_contact .survey_check {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 2rem;
  height: 2rem;
  margin: 0;
  accent-color: var(--color-green);
}
.sec_contact .survey_check[type=radio] {
  border: 1px solid #999;
  border-radius: 50%;
  background: #fff;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
.sec_contact .survey_check[type=radio]:checked {
  border-color: var(--color-green);
  background: radial-gradient(circle, var(--color-green) 0 45%, #fff calc(45% + 1px));
}
.sec_contact .survey_field {
  margin-top: 1rem;
}
.sec_contact .survey_field:first-child {
  margin-top: 0;
}
.sec_contact .survey_field_label {
  display: block;
  margin-bottom: 0.6rem;
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
}
.sec_contact .survey_unit_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
}
.sec_contact .survey_unit {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
}
.sec_contact .survey_input,
.sec_contact .survey_textarea {
  display: block;
  width: 100%;
  padding: 0 1.2rem;
  border: 1px solid #AAA;
  border-radius: 0;
  background: #fff;
  font-family: var(--font-plex);
  font-size: 1.6rem;
  color: var(--color-black);
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
.sec_contact .survey_input::-webkit-input-placeholder, .sec_contact .survey_textarea::-webkit-input-placeholder {
  color: #AAA;
}
.sec_contact .survey_input::-moz-placeholder, .sec_contact .survey_textarea::-moz-placeholder {
  color: #AAA;
}
.sec_contact .survey_input:-ms-input-placeholder, .sec_contact .survey_textarea:-ms-input-placeholder {
  color: #AAA;
}
.sec_contact .survey_input::-ms-input-placeholder, .sec_contact .survey_textarea::-ms-input-placeholder {
  color: #AAA;
}
.sec_contact .survey_input::placeholder,
.sec_contact .survey_textarea::placeholder {
  color: #AAA;
}
.sec_contact .survey_input {
  height: 4.4rem;
}
.sec_contact .survey_input.is_s {
  width: 12rem;
}
.sec_contact .survey_textarea {
  height: 8rem;
  padding: 1rem 1.2rem;
  resize: vertical;
}
.sec_contact .survey_select_wrap {
  max-width: 28rem;
}
.sec_contact .survey_select_wrap .survey_select {
  margin-top: 0;
  border-color: #AAA;
}
.sec_contact .survey_sub {
  margin-top: 1.2rem;
  padding: 1.4rem 1.2rem;
  border-radius: 0.6rem;
  background: #fff;
}
.sec_contact .survey_sub[hidden] {
  display: none;
}
.sec_contact .survey_sub_label {
  margin-bottom: 0.8rem;
  font-size: 1.3rem;
  font-weight: var(--font-weight-Bold);
}
.sec_contact .mfp_err {
  display: none;
  margin-top: 0.6rem;
  color: var(--color-red);
  font-size: 1.3rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.5;
  text-align: left;
}
.sec_contact .problem {
  background-color: #FFF0F0;
}
.sec_contact .privacy {
  margin-top: 5rem;
  font-size: 1.3rem;
  font-weight: var(--font-weight-Medium);
  line-height: 1.65;
  text-align: justify;
  /* 本文はスクロール枠に収める */
}
.sec_contact .privacy .ttl {
  text-align: left;
}
.sec_contact .privacy .privacy_box {
  margin-top: 0.8rem;
  max-height: 24rem;
  padding: 1.4rem 1.6rem;
  overflow-y: auto;
  border: 1px solid #CCC;
  background: #FAFAFA;
  -webkit-overflow-scrolling: touch;
}
.sec_contact .privacy .privacy_h {
  margin-top: 1.4rem;
  font-weight: var(--font-weight-Bold);
}
.sec_contact .privacy .privacy_txt {
  margin-top: 0.4rem;
}
.sec_contact .privacy .privacy_txt:first-child {
  margin-top: 0;
}
.sec_contact .privacy .privacy_list {
  margin-top: 0.4rem;
}
.sec_contact .privacy .privacy_list li {
  position: relative;
  padding-left: 1.2em;
}
.sec_contact .privacy .privacy_list.is_dot li::before {
  content: "・";
  position: absolute;
  left: 0;
}
.sec_contact .privacy .privacy_list.is_paren li {
  padding-left: 2em;
  text-indent: -2em;
}
.sec_contact .privacy a {
  color: inherit;
  text-decoration: underline;
  word-break: break-all;
}
.sec_contact .privacy .privacy_lead {
  margin-top: 1.2rem;
  font-weight: var(--font-weight-Bold);
  text-align: center;
}
.sec_contact .agree {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 3rem;
  padding: 2rem;
  background: var(--color-pink-dark);
  cursor: pointer;
  /* メールフォームプロが入力欄の直後に補助要素を挿入するため、隣接ではなく ~ で指定する */
}
.sec_contact .agree .box {
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 2.2rem;
          flex: 0 0 2.2rem;
  width: 2.2rem;
  height: 2.2rem;
  margin-right: 1.2rem;
  border: 1px solid #444;
  background: #fff;
}
.sec_contact .agree .box::after {
  content: "";
  position: absolute;
  top: 0.2rem;
  left: 0.6rem;
  width: 0.7rem;
  height: 1.2rem;
  border-right: 3px solid var(--color-red);
  border-bottom: 3px solid var(--color-red);
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  opacity: 0;
}
.sec_contact .agree .agree_input:checked ~ .box::after {
  opacity: 1;
}
.sec_contact .agree .agree_input:focus-visible ~ .box {
  outline: 2px solid var(--color-base-blue);
  outline-offset: 2px;
}
.sec_contact .agree .txt {
  font-size: 1.6rem;
  font-weight: var(--font-weight-Medium);
  white-space: nowrap;
}
.sec_contact .agree_wrap .mfp_err {
  text-align: center;
}
.sec_contact .agree_input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.sec_contact .btn_wrap {
  margin: 4rem 0 0;
  padding: 0;
}
.sec_contact .btn_wrap .c_btn_red {
  max-width: none;
  height: 6.6rem;
  font-size: 2.2rem;
}
.sec_contact .btn_wrap .c_btn_red::after {
  right: 2.4rem;
}
.sec_contact .totop_wrap {
  margin-top: 2.4rem;
  line-height: 0;
  text-align: right;
}
.sec_contact .totop {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.5rem;
  width: 5.6rem;
  height: 5.6rem;
  border: 2px solid #fff;
  border-radius: 0.8rem;
  background: #fff;
  color: var(--color-red);
  text-decoration: none;
  -webkit-transition: background 0.2s, color 0.2s;
  transition: background 0.2s, color 0.2s;
}
.sec_contact .totop:hover {
  background: transparent;
  color: #fff;
}
.sec_contact .totop_tri {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0.6rem 0.9rem 0.6rem;
  border-color: transparent transparent currentColor transparent;
}
.sec_contact .totop_txt {
  font-family: var(--font-lato);
  font-size: 1.1rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1;
  letter-spacing: 0.05em;
}
.sec_contact .copyright {
  margin-top: 4.5rem;
  font-size: 1.2rem;
  font-weight: var(--font-weight-Medium);
}
@media (width > 1023px) {
  .sec_contact {
    padding: 10.6rem 6rem 3rem;
  }
  .sec_contact .contact_icon_img {
    width: 6rem;
  }
  .sec_contact .contact_ttl {
    margin-top: 1rem;
    padding-bottom: 0;
    border-bottom: none;
    font-family: var(--font-noto);
    font-size: 4.4rem;
  }
  .sec_contact .contact_lead {
    margin-top: 3.4rem;
    font-family: var(--font-noto);
    font-size: 2.2rem;
    font-weight: var(--font-weight-Bold);
    line-height: 1.6;
  }
  .sec_contact .contact_note {
    margin-top: 2rem;
    font-family: var(--font-noto);
    font-size: 1.4rem;
  }
  .sec_contact .contact_form {
    margin-top: 4.4rem;
    padding: 7.2rem 6.8rem 6.2rem 6.2rem;
  }
  .sec_contact .form_row {
    display: grid;
    grid-template-columns: 19.8rem 1fr;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    margin-top: 5.4rem;
  }
  .sec_contact .form_label {
    min-height: 6rem;
    font-size: 1.83rem;
    font-weight: var(--font-weight-SemiBold);
  }
  .sec_contact .form_label .req, .sec_contact .form_label .opt {
    margin-right: 1rem;
    padding: 0.45rem 1.1rem;
    font-size: 1.44rem;
  }
  .sec_contact .form_input,
  .sec_contact .form_select,
  .sec_contact .form_textarea {
    margin-top: 0;
    padding: 0 1.8rem;
    font-family: var(--font-noto);
    font-size: 2rem;
    font-weight: var(--font-weight-Bold);
  }
  .sec_contact .form_input::-webkit-input-placeholder, .sec_contact .form_select::-webkit-input-placeholder, .sec_contact .form_textarea::-webkit-input-placeholder {
    color: #B0B0B0;
  }
  .sec_contact .form_input::-moz-placeholder, .sec_contact .form_select::-moz-placeholder, .sec_contact .form_textarea::-moz-placeholder {
    color: #B0B0B0;
  }
  .sec_contact .form_input:-ms-input-placeholder, .sec_contact .form_select:-ms-input-placeholder, .sec_contact .form_textarea:-ms-input-placeholder {
    color: #B0B0B0;
  }
  .sec_contact .form_input::-ms-input-placeholder, .sec_contact .form_select::-ms-input-placeholder, .sec_contact .form_textarea::-ms-input-placeholder {
    color: #B0B0B0;
  }
  .sec_contact .form_input::placeholder,
  .sec_contact .form_select::placeholder,
  .sec_contact .form_textarea::placeholder {
    color: #B0B0B0;
  }
  .sec_contact .form_input,
  .sec_contact .form_select {
    height: 6rem;
  }
  .sec_contact .form_textarea {
    height: 19.7rem;
    padding: 1.4rem 1.8rem;
  }
  .sec_contact .select_wrap::after {
    right: 2.8rem;
    border-width: 1.2rem 0.8rem 0 0.8rem;
  }
  .sec_contact .select_wrap .form_select {
    padding-right: 6rem;
  }
  .sec_contact .select_wrap .form_select:has(option[value=""]:checked) {
    color: #B0B0B0;
  }
  .sec_contact .date_list {
    margin-top: 0;
  }
  .sec_contact .date_list .lbl {
    -ms-flex-preferred-size: 12.7rem;
        flex-basis: 12.7rem;
    padding-left: 2rem;
    font-size: 1.83rem;
    font-weight: var(--font-weight-SemiBold);
  }
  .sec_contact .date_list .select_wrap {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    margin-left: 0;
  }
  .sec_contact .date_list .select_wrap + .select_wrap {
    margin-left: 2rem;
  }
  .sec_contact .date_list .select_wrap .form_select {
    padding: 0 5rem 0 2.6rem;
    font-size: 2.08rem;
  }
  .sec_contact .date_list .select_wrap::after {
    right: 2.8rem;
  }
  .sec_contact .date_item {
    margin-top: 2.2rem;
  }
  .sec_contact .date_item .mfp_err {
    padding-left: 12.7rem;
  }
  .sec_contact .time_list {
    gap: 2rem;
    margin-top: 0;
  }
  .sec_contact .form_choices {
    margin-top: 0;
  }
  .sec_contact .form_note {
    margin-top: 1.4rem;
    padding-left: 12.7rem;
    font-size: 1.4rem;
  }
  .sec_contact .mfp_err {
    font-size: 1.5rem;
  }
  .sec_contact .survey {
    margin-top: 6rem;
  }
  .sec_contact .survey_btn {
    position: relative;
    width: 54.3rem;
    margin: 0 auto;
    padding: 2rem 4rem 1.8rem;
    border-radius: 1.2rem;
    background: var(--color-green-pc);
    -webkit-box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
            box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
    line-height: 1.5;
  }
  .sec_contact .survey_btn .l1 {
    font-size: 2.28rem;
  }
  .sec_contact .survey_btn .l2 {
    margin-top: 0.2rem;
    font-size: 2.28rem;
  }
  .sec_contact .survey_btn .yl {
    font-size: 3.2rem;
  }
  .sec_contact .survey_btn .l3 {
    margin-top: 0.4rem;
    color: var(--color-black);
    font-size: 2.85rem;
    font-weight: var(--font-weight-SemiBold);
  }
  .sec_contact .survey_btn .arrow {
    position: absolute;
    top: 50%;
    right: 3.4rem;
    width: 1.4rem;
    height: 1.4rem;
    margin: 0;
    border-width: 2px;
    border-color: var(--color-black);
    -webkit-transform: translateY(-70%) rotate(45deg);
            transform: translateY(-70%) rotate(45deg);
  }
  .sec_contact .survey_btn[aria-expanded=true] .arrow {
    -webkit-transform: translateY(-20%) rotate(-135deg);
            transform: translateY(-20%) rotate(-135deg);
  }
  .sec_contact .survey_body {
    margin-top: 3.2rem;
    border-radius: 1.2rem;
  }
  .sec_contact .survey_head {
    padding: 3.2rem 4rem 2.8rem;
  }
  .sec_contact .survey_ttl {
    font-size: 2.6rem;
  }
  .sec_contact .survey_lead {
    margin-top: 1.4rem;
    font-size: 1.7rem;
    text-align: center;
  }
  .sec_contact .survey_note {
    margin-top: 1rem;
    font-size: 1.4rem;
    text-align: center;
  }
  .sec_contact .survey_list {
    padding: 0 4rem;
  }
  .sec_contact .survey_q {
    display: grid;
    grid-template-columns: 30rem 1fr;
    -webkit-column-gap: 3.2rem;
       -moz-column-gap: 3.2rem;
            column-gap: 3.2rem;
    padding: 3rem 0;
  }
  .sec_contact .survey_q_ttl {
    -ms-flex-line-pack: start;
        align-content: start;
    font-size: 1.8rem;
  }
  .sec_contact .survey_q_ttl .req, .sec_contact .survey_q_ttl .opt {
    font-size: 1.3rem;
  }
  .sec_contact .survey_q_num {
    font-size: 2rem;
  }
  .sec_contact .survey_q_body {
    margin-top: 0;
  }
  .sec_contact .survey_q_note {
    font-size: 1.4rem;
  }
  .sec_contact .survey_choices {
    gap: 1rem;
  }
  .sec_contact .survey_choice {
    min-height: 5rem;
    padding: 1rem 1.6rem;
    font-size: 1.6rem;
  }
  .sec_contact .survey_check {
    width: 2.2rem;
    height: 2.2rem;
  }
  .sec_contact .survey_field_label {
    font-size: 1.6rem;
  }
  .sec_contact .survey_unit {
    font-size: 1.6rem;
  }
  .sec_contact .survey_input,
  .sec_contact .survey_textarea {
    padding: 0 1.6rem;
    font-size: 1.8rem;
  }
  .sec_contact .survey_input {
    height: 5rem;
  }
  .sec_contact .survey_input.is_s {
    width: 16rem;
  }
  .sec_contact .survey_textarea {
    height: 10rem;
    padding: 1.2rem 1.6rem;
  }
  .sec_contact .survey_select_wrap {
    max-width: 36rem;
  }
  .sec_contact .survey_select_wrap .survey_select {
    height: 5rem;
    font-size: 1.8rem;
  }
  .sec_contact .survey_sub {
    padding: 1.8rem 2rem;
  }
  .sec_contact .survey_sub_label {
    font-size: 1.5rem;
  }
  .sec_contact .privacy {
    margin-top: 4.6rem;
    font-family: var(--font-noto);
    font-size: 1.4rem;
    font-weight: var(--font-weight-Bold);
    line-height: 2;
  }
  .sec_contact .privacy .privacy_box {
    max-height: 30rem;
    padding: 2rem 2.4rem;
    font-family: var(--font-plex);
    font-weight: var(--font-weight-Medium);
  }
  .sec_contact .privacy .privacy_h {
    margin-top: 2rem;
  }
  .sec_contact .privacy .privacy_lead {
    margin-top: 1.6rem;
  }
  .sec_contact .agree {
    width: 44.6rem;
    margin: 5rem auto 0;
    padding: 1.8rem 2.6rem;
  }
  .sec_contact .agree .box {
    -ms-flex-preferred-size: 2.8rem;
        flex-basis: 2.8rem;
    width: 2.8rem;
    height: 2.8rem;
    margin-right: 1.2rem;
  }
  .sec_contact .agree .box::after {
    top: 0.3rem;
    left: 0.9rem;
    width: 0.9rem;
    height: 1.5rem;
  }
  .sec_contact .agree .txt {
    font-size: 1.83rem;
    font-weight: var(--font-weight-SemiBold);
  }
  .sec_contact .btn_wrap {
    margin: 4.4rem 0 0;
  }
  .sec_contact .btn_wrap .c_btn_red {
    width: 100%;
    max-width: 44.6rem;
    height: 9.4rem;
    margin: 0 auto;
    background: var(--color-green-pc);
    font-size: 3.2rem;
  }
  .sec_contact .totop_wrap {
    margin-top: 3rem;
  }
  .sec_contact .totop {
    gap: 0.6rem;
    width: 7rem;
    height: 7rem;
    border-radius: 1rem;
  }
  .sec_contact .totop_tri {
    border-width: 0 0.8rem 1.2rem 0.8rem;
  }
  .sec_contact .totop_txt {
    font-size: 1.4rem;
  }
  .sec_contact .copyright {
    margin-top: 5.4rem;
    font-size: 1.57rem;
  }
}

/*==============================
	Mailform Pro：確認画面・エラー・送信中
	（Mailform Proが生成する要素のためクラスを付けられず、id配下の要素を指定）
===============================*/
#mfp_hidden {
  overflow: hidden;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: 0;
}

#mfp_error,
#mfp_warning {
  display: none;
  margin: 0 0 2rem;
  padding: 1.4rem;
  border: 2px solid var(--color-red);
  background: #FFF0F0;
  color: var(--color-red);
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.6;
  text-align: center;
}
#mfp_error p,
#mfp_warning p {
  margin: 0;
}
#mfp_error strong,
#mfp_warning strong {
  font-size: 1.6rem;
}

#mfp_overlay {
  position: absolute;
  display: none;
  z-index: 10001;
  font-family: var(--font-plex);
}
#mfp_overlay *, #mfp_overlay *::before, #mfp_overlay *::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

#mfp_overlay_background {
  position: absolute;
  display: none;
  z-index: 10000;
  background-color: #000;
}

#mfp_overlay_inner {
  width: 92%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 2.4rem 1.6rem;
  border-top: 0.6rem solid var(--color-red);
  border-radius: 1rem;
  background: #fff;
  -webkit-box-shadow: 0 0.8rem 3rem rgba(0, 0, 0, 0.3);
          box-shadow: 0 0.8rem 3rem rgba(0, 0, 0, 0.3);
}
#mfp_overlay_inner h4 {
  margin: 0 0 1.6rem;
  color: var(--color-red);
  font-size: 2rem;
  font-weight: var(--font-weight-Bold);
  text-align: center;
}
@media (width > 1023px) {
  #mfp_overlay_inner {
    padding: 4rem 4.8rem;
  }
  #mfp_overlay_inner h4 {
    font-size: 2.8rem;
  }
}

#mfp_confirm_table {
  width: 100%;
  border-collapse: collapse;
}
#mfp_confirm_table tr {
  background: #fff;
}
#mfp_confirm_table .mfp_colored {
  background: #FFF5F5;
}
#mfp_confirm_table th, #mfp_confirm_table td {
  display: block;
  padding: 0.8rem 1.2rem;
  border-top: 1px solid #E5E5E5;
  font-size: 1.4rem;
  line-height: 1.6;
  text-align: left;
  word-break: break-all;
}
#mfp_confirm_table th {
  padding-bottom: 0;
  border-top: none;
  color: #555;
  font-weight: var(--font-weight-Bold);
}
#mfp_confirm_table td {
  border-top: none;
}
#mfp_confirm_table tr + tr th {
  border-top: 1px solid #E5E5E5;
  padding-top: 1rem;
}
@media (width > 1023px) {
  #mfp_confirm_table th, #mfp_confirm_table td {
    display: table-cell;
    padding: 1.2rem 1.6rem;
    border-top: 1px solid #E5E5E5;
    font-size: 1.6rem;
    vertical-align: top;
  }
  #mfp_confirm_table th {
    width: 32%;
  }
  #mfp_confirm_table tr + tr th {
    padding-top: 1.2rem;
  }
  #mfp_confirm_table tr:first-child th,
  #mfp_confirm_table tr:first-child td {
    border-top: none;
  }
}

#mfp_overlay .mfp_buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1.2rem;
  margin-top: 2.4rem;
}

#mfp_button_send,
#mfp_button_cancel {
  min-width: 14rem;
  padding: 1.4rem 2.4rem;
  border: 2px solid var(--color-red);
  border-radius: 0.8rem;
  background: var(--color-red);
  color: #fff;
  font-family: var(--font-plex);
  font-size: 1.8rem;
  font-weight: var(--font-weight-Bold);
  cursor: pointer;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
#mfp_button_send:hover,
#mfp_button_cancel:hover {
  opacity: 0.8;
}
@media (width > 1023px) {
  #mfp_button_send,
  #mfp_button_cancel {
    min-width: 22rem;
    font-size: 2rem;
  }
}

#mfp_button_cancel {
  background: #fff;
  color: var(--color-red);
}

#mfp_loading_screen {
  position: absolute;
  display: none;
  z-index: 20000;
  background-color: #000;
  opacity: 0.6;
}

#mfp_loading {
  position: absolute;
  display: none;
  z-index: 20001;
  width: 40px;
  height: 40px;
  border: 4px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-radius: 50%;
  -webkit-animation: mfp_spin 1s linear infinite;
          animation: mfp_spin 1s linear infinite;
}

@-webkit-keyframes mfp_spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes mfp_spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
/*==============================
	送信完了ページ
===============================*/
.sec_thanks {
  padding: 6rem 1.8rem 4rem;
  background: var(--color-red);
  color: #fff;
  text-align: center;
}
.sec_thanks .thanks_icon {
  line-height: 0;
}
.sec_thanks .thanks_icon_img {
  width: 4.5rem;
}
.sec_thanks .thanks_ttl {
  margin-top: 1.2rem;
  font-size: 3rem;
  font-weight: var(--font-weight-Bold);
  letter-spacing: 0.05em;
}
.sec_thanks .thanks_txt {
  margin-top: 2.4rem;
  padding: 3rem 1.6rem;
  border-radius: 1rem;
  background: #fff;
  color: var(--color-black);
  font-size: 1.6rem;
  font-weight: var(--font-weight-SemiBold);
  line-height: 2;
}
.sec_thanks .thanks_note {
  margin-top: 1.6rem;
  font-size: 1.2rem;
  font-weight: var(--font-weight-Bold);
}
.sec_thanks .btn_wrap {
  margin-top: 4rem;
}
.sec_thanks .c_btn_red {
  border: 2px solid #fff;
}
.sec_thanks .copyright {
  margin-top: 4.5rem;
  font-size: 1.2rem;
}
@media (width > 1023px) {
  .sec_thanks {
    padding: 10rem 6rem 4rem;
  }
  .sec_thanks .thanks_icon_img {
    width: 6rem;
  }
  .sec_thanks .thanks_ttl {
    font-size: 4.4rem;
  }
  .sec_thanks .thanks_txt {
    max-width: 80rem;
    margin: 4rem auto 0;
    padding: 5rem 4rem;
    font-size: 2.2rem;
  }
  .sec_thanks .thanks_note {
    margin-top: 2.4rem;
    font-size: 1.6rem;
  }
  .sec_thanks .btn_wrap {
    margin-top: 6rem;
  }
  .sec_thanks .copyright {
    margin-top: 8rem;
    font-size: 1.57rem;
  }
}

/* ---- 追尾CTA（画面下固定） ---- */
.fixed_cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 900;
  padding: 0.8rem 1.8rem 1rem;
  background: #fff;
  -webkit-box-shadow: 0 -0.2rem 0.8rem rgba(0, 0, 0, 0.15);
          box-shadow: 0 -0.2rem 0.8rem rgba(0, 0, 0, 0.15);
  text-align: center;
  -webkit-transition: visibility 0.3s, -webkit-transform 0.3s;
  transition: visibility 0.3s, -webkit-transform 0.3s;
  transition: transform 0.3s, visibility 0.3s;
  transition: transform 0.3s, visibility 0.3s, -webkit-transform 0.3s;
  /* TOPに戻る（▲＋TOP）。SPはバーの上に浮かせ、PCはバー内の右端 */
}
.fixed_cta.is_hidden {
  visibility: hidden;
  -webkit-transform: translateY(110%);
          transform: translateY(110%);
}
.fixed_cta .fixed_cta_sub {
  color: var(--color-red);
  font-size: 1.4rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1.3;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.fixed_cta .fixed_cta_sep {
  margin: 0 0.2em;
}
.fixed_cta .fixed_cta_btn {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  max-width: 34rem;
  height: 5.2rem;
  margin: 0.6rem auto 0;
  padding: 0 3rem 0 1.6rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  white-space: nowrap;
  border-radius: 1rem;
  background: var(--color-green);
  -webkit-box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.3rem 0.4rem rgba(0, 0, 0, 0.2);
  color: #fff;
  font-family: var(--font-plex);
  font-size: 1.8rem;
  font-weight: var(--font-weight-SemiBold);
  letter-spacing: 0.05em;
  text-decoration: none;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.fixed_cta .fixed_cta_btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.6rem;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.6rem 0 0.6rem 0.8rem;
  border-color: transparent transparent transparent #fff;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.fixed_cta .fixed_cta_btn:hover {
  opacity: 0.8;
}
.fixed_cta .fixed_cta_top {
  position: absolute;
  bottom: calc(100% + 1rem);
  right: 1.2rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.3rem;
  width: 4.8rem;
  height: 4.8rem;
  border-radius: 0.8rem;
  background: var(--color-red);
  color: #fff;
  text-decoration: none;
  /* 少しスクロールするまでは非表示（JSで .is_show を付与） */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  -webkit-transition: opacity 0.3s, visibility 0.3s;
  transition: opacity 0.3s, visibility 0.3s;
}
.fixed_cta .fixed_cta_top.is_show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.fixed_cta .fixed_cta_top .tri {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0.5rem 0.8rem 0.5rem;
  border-color: transparent transparent currentColor transparent;
}
.fixed_cta .fixed_cta_top .txt {
  font-family: var(--font-lato);
  font-size: 1rem;
  font-weight: var(--font-weight-Bold);
  line-height: 1;
  letter-spacing: 0.05em;
}
.fixed_cta .fixed_cta_top.is_show:hover {
  opacity: 0.8;
}
@media (width > 1023px) {
  .fixed_cta {
    padding: 1.2rem 2rem 1.4rem;
  }
  .fixed_cta .fixed_cta_sub {
    font-size: 1.8rem;
  }
  .fixed_cta .fixed_cta_btn {
    max-width: 44.6rem;
    height: 6.4rem;
    margin-top: 0.8rem;
    padding: 0 4rem 0 2rem;
    font-size: 2.2rem;
    letter-spacing: 0.08em;
  }
  .fixed_cta .fixed_cta_btn::after {
    right: 2.4rem;
    border-width: 0.8rem 0 0.8rem 1rem;
  }
  .fixed_cta .fixed_cta_top {
    top: 50%;
    bottom: auto;
    right: 2.4rem;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    gap: 0.5rem;
    width: 6rem;
    height: 6rem;
    border-radius: 1rem;
  }
  .fixed_cta .fixed_cta_top .tri {
    border-width: 0 0.7rem 1.1rem 0.7rem;
  }
  .fixed_cta .fixed_cta_top .txt {
    font-size: 1.3rem;
  }
}

/* ---- PC左サイド固定メニュー（コンテンツ左の余白に収まる幅のときだけ表示） ---- */
.side_nav {
  display: none;
}

@media (min-width: 1440px) {
  .side_nav {
    position: fixed;
    top: 50%;
    left: 1.6rem;
    z-index: 800;
    display: block;
    width: min(20rem, (100vw - 120rem) / 2 - 3.2rem);
    max-height: calc(100vh - 4rem);
    padding: 0.8rem 0;
    overflow-y: auto;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.96);
    -webkit-box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.12);
            box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.12);
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .side_nav_item + .side_nav_item {
    border-top: 1px solid #EEE;
  }
  .side_nav_link {
    position: relative;
    display: block;
    padding: 1rem 1rem 1rem 2.2rem;
    color: var(--color-black);
    font-size: 1.2rem;
    font-weight: var(--font-weight-Bold);
    line-height: 1.4;
    text-decoration: none;
    -webkit-transition: color 0.2s;
    transition: color 0.2s;
  }
  .side_nav_link::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 1rem;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background: #CCC;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    -webkit-transition: background 0.2s;
    transition: background 0.2s;
  }
  .side_nav_link:hover, .side_nav_link.is_active {
    color: var(--color-red);
    text-decoration: none;
  }
  .side_nav_link:hover::before, .side_nav_link.is_active::before {
    background: var(--color-red);
  }
}
/* 余白が広い画面ではメニューの文字をひと回り大きく */
@media (min-width: 1600px) {
  .side_nav_link {
    padding: 1.1rem 1.2rem 1.1rem 2.4rem;
    font-size: 1.3rem;
  }
  .side_nav_link::before {
    left: 1.2rem;
  }
}
/* ---- 日付ピッカー（flatpickr）の配色をサイトの赤に合わせる ---- */
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.selected:focus {
  border-color: var(--color-red);
  background: var(--color-red);
}
.flatpickr-day.today {
  border-color: var(--color-red);
}

