@charset "UTF-8";
/*--------------------------------------------------------
定数
--------------------------------------------------------*/

@media screen and (max-width: 1905px) {
  .container1905 {
    width: 100%;
    margin-left: 0px;
  }
}
@media screen and (max-width: 1000px) {
  .bo_box2 {
    padding: 4% 4%;
  }
}
@media screen and (max-width: 800px) {
  .visible800 {
    display: block !important;
  }

  .hidden800 {
    display: none;
  }

  .container800 {
    width: 100%;
  }

  .center_img {
    margin-left: 0px;
  }

  .break_800:after {
    content: "\A";
    white-space: pre;
  }

  /*--------------------------------------------------------
  margin・padding系の部分は設定するwidthで変わる。テンプレートの場合は800pxで設定しているのでここに記載。
  900pxの場合は上の @media screen and (max-width: 900px) の中に記載する。
  --------------------------------------------------------*/
  .mtop-10 {
    margin-top: 3%;
  }

  .mtop-20 {
    margin-top: 4%;
  }

  .mtop-30 {
    margin-top: 5%;
  }

  .mtop-40 {
    margin-top: 6%;
  }

  .mtop-50 {
    margin-top: 7%;
  }

  .mtop-60 {
    margin-top: 8%;
  }

  .mtop-70 {
    margin-top: 9%;
  }

  .mtop-80 {
    margin-top: 10%;
  }

  .mtop-90 {
    margin-top: 11%;
  }

  .mtop-100 {
    margin-top: 12%;
  }

  .mtop-200 {
    margin-top: 22%;
  }

  .mtop-500 {
    margin-top: 52%;
  }

  .mtop-1000 {
    margin-top: 120%;
  }

  .ptop-10 {
    padding-top: 3%;
  }

  .ptop-20 {
    padding-top: 4%;
  }

  .ptop-30 {
    padding-top: 5%;
  }

  .ptop-40 {
    padding-top: 6%;
  }

  .ptop-50 {
    padding-top: 7%;
  }

  .ptop-60 {
    padding-top: 8%;
  }

  .ptop-70 {
    padding-top: 9%;
  }

  .ptop-80 {
    padding-top: 10%;
  }

  .ptop-90 {
    padding-top: 11%;
  }

  .ptop-100 {
    padding-top: 12%;
  }

  .pbottom-100 {
    padding-bottom: 12%;
  }

  .pbottom-200 {
    padding-bottom: 22%;
  }

  .pbottom-300 {
    padding-bottom: 32%;
  }
}

@media screen and (max-width: 600px) {
  .hidden600 {
    display: none;
  }

  .visible600 {
    display: block;
  }

  .break_600:after {
    content: "\A";
    white-space: pre;
  }
}


/*--------------------------------------------------------
各種設定
--------------------------------------------------------*/
@media screen and (max-width: 1405px) {
  .section_toptxt {
    font-size: 70px;
  }
  .section_subtxt {
    font-size: 30px;
  }
  .section_3rdtxt {
    font-size: 40px;
  }
}
@media screen and (max-width: 800px) {
  body {
    min-width: 100%;
  }

  img {
    max-width: 100%;
    height: auto;
  }

  .inner .title {
    font-size: 1.4em;
    padding-bottom: 0.2em;
  }

  .field {
    font-size: 1.2em;
  }

  input[type="text"],
  input[type="tel"],
  input[type="email"],
  select {
    border: 1px solid var(--primary-color-main_blue);
  }

  .info_txt {
    font-size: 23px;
  }

  .kiyaku {
    font-size: 30px;
  }

  .white_box.lawtext>div {
    height: 13em;
  }

  .back {
    font-size: 23px;
  }

  .pay_btn {
    width: 100%;
  }



html, body { height: 100%; }
body { position: relative; }

/* 固定背景を画面に貼る */
body::before {
  content: "";
  position: fixed;
  top: 0; left: 0;
  width: 100vw;

  /* 動く原因：ツールバーの開閉で 100vh が変わる。
     → “安定する” svh/lvh/dvh を環境に応じて使い分け */
  height: 100svh;           /* 最小の安定高。動きにくい */
  background: url(../img/logo_haikei.svg) no-repeat center;
  background-size: contain; /* 必要なら cover に */
  z-index: -1;
  pointer-events: none;
}

/* dvh が使える環境では動的高に切替（全面を常に覆いたい場合） */
@supports (height: 100dvh) {
  body::before { height: 100dvh; }
}

/* 古い環境フォールバック */
@supports not (height: 100svh) {
  body::before { height: 100vh; }
}
.under-main {
  background-image: none;
}


  .menu-toggle-wrapper {
    display: block;
  }
  .sp-menu {
    display: none; /* JSで .active が付いた時だけ flex */
  }
  .sp-menu.active {
    display: flex;
  }

.logo_header {
  width: 20%;
  margin-top: -10%;
}
.logo_header-under {
  width: 35%;
}
.header_txt {
  display: none;
}
.header_inner {
  top: 7.8%;
}
.xcvb_hmbg_sp {
  display: block;
  width: 9%;
}

.slider {
  padding-top: 6%;
}
.slider-imgs {
  width: 100%;
  aspect-ratio: 730 / 690;
}
  .slider-imgs .slide{
    background-size: cover;      /* ← contain から cover に */
    background-position: center; /* 中央基準でトリミング */
    transform-origin: center;    /* 拡大の基準点を中央に */
    will-change: transform;      /* アニメを安定化（任意） */
  }

  .img-01{
    background-image: url('../img/xcvb_03_01_sp.png');
  }
  .img-02{
    background-image: url('../img/xcvb_03_02_sp.png');
  }
  .img-03{
    background-image: url('../img/xcvb_03_03_sp.png');
  }
  .xcvb_01 {
    top: 3%;
  }
  .greetings-txt {
    margin-top: 16%;
  }
  .section_txt, .section_txt-name {
    padding: 0;
  }
  .section_toptxt {
    font-size: 48px;
  }
  .section_subtxt, .section_3rdtxt {
    font-size: 20px;
  }
  .section_txt {
    font-size: 16px;
  }
  .btn-img {
    width: 61.1%;
  }
  .track img{
    height: 150px;
  }
  .greetings_logo_haikei  {
    width: 90%;
  }
  .marquee {
    margin-bottom: 0px;
  }

  .header_inner-under {
    padding: 10px 15px;
  }
  .hamburger {
    display: flex;
  }
  .hamburger span {
    display: block;
  }
  .under-toptxt {
    padding-top: 10%;
  }
  .sv_title {
    width: 85%;
  }
  .sv_box {
    width: 100%;
  }
  .sv_button {
    width: 58.3%;
  }
  .co_box {
    margin-top: 20%;
    margin-bottom: 30%;
  }
  .co_box .flex p:first-of-type {
  flex: 2;
  text-align: center;
  }
  .co_box .flex p:last-of-type {
    flex: 8;
  }
  .bo_container {
    display: block;
  }
  .books_img {
    text-align: center;
    padding-bottom: 30px;
  }
  .bo_box {
    padding: 4% 6%;
  }
  .button_bks2 {
    margin-left: 0;
  }
  .law_toptxt {
    font-size: 36px;
  }
  .contact_box {
    padding-left: 25px;
    padding-right: 25px;
    }
    button img {
      width: 55%;
    }
}

@media screen and (max-width: 600px) {
  .info_txt {
    font-size: 20px;
  }

  .kiyaku {
    font-size: 25px;
  }

  .checkbox {
    font-size: 18px;
    margin-left: 8%;
  }



  .track img{
    height: 100px;
  }
  .sv_box div {
    display: block;
  }
  .sv_box div p:first-of-type {
    margin-bottom: 10px;
  }
  .hamburger span {
    height: 2px;
  }
  .hamburger {
    width: 35px;
    height: 20px;
  }
  .hamburger span:nth-child(1) {
    width: 25px;
  }
  .hamburger span:nth-child(2) {
    width: 30px;
  }
  .sv_inner, .co_box {
    padding-left: 25px;
    padding-right: 25px;
  }
  .sv_box-toptxt {
    font-size: 20px;
  }
  .co_box div {
    display: block;
  }
  .co_box .flex p:first-of-type {
    text-align: left;
    padding-left: 30px;
    padding-bottom: 10px;
  }
  .co_span {
    margin-left: 0;
  }
  .bo_toptxt {
    font-size: 25px;
  }
  .bo_2ndtxt {
    font-size: 18px;
  }
  .books_img img {
    width: 50%;
  }
  .button_bks, .button_bks2  {
    width: 60%;
    margin-left: auto;
  }
  .law_toptxt {
    font-size: 25px;
  }
  .contact_box {
    padding-left: 15px;
    padding-right: 15px;
  }
  .contact {
    margin-top: 100px;
  }
}

@media screen and (max-width: 500px) {
  .inner .title {
    font-size: 1.2em;
  }

  .field {
    font-size: 1em;
  }

  .info_txt {
    font-size: 18px;
  }

  .kiyaku {
    font-size: 23px;
  }

  .checkbox {
    font-size: 17px;
  }

  .back {
    font-size: 18px;
  }

  .err_msg2 {
    font-size: 0.9em;
  }

  .white_box.lawtext>div {
    height: 11em;
  }

  .white_box p {
    font-size: 14px;
  }

  .checkbox label input:checked+span.txt::after {
    left: -1em;
    border-bottom: 2px solid #FFBA39;
    border-right: 3px solid #FFBA39;
    top: -45%;
  }

  .close_btn {
    font-size: 30px;
  }
}

@media screen and (max-width: 400px) {
  .info_txt {
    font-size: 17px;
  }

  .kiyaku {
    font-size: 20px;
  }

  .checkbox {
    font-size: 14px;
  }

  .err_msg2 {
    font-size: 0.8em;
  }

  .white_box.lawtext>div {
    height: 9em;
  }



  .section_toptxt {
    font-size: 45px;
  }
  .section_subtxt, .section_3rdtxt {
    font-size: 17px;
  }
  .section_txt {
    font-size: 14px;
  }
  .track img {
    height: 70px;
  }
  .hamburger {
    width: 30px;
    height: 18px;
  }
  .hamburger span:nth-child(1) {
    width: 20px;
  }
  .hamburger span:nth-child(2) {
    width: 25px;
  }
  .sv_box, .co_box, .re_box, .bo_3ndtxt, .law_txt {
    font-size: 14px;
  }
  .sv_inner, .co_box {
    padding-left: 15px;
    padding-right: 15px;
  }
  .co_box .flex p:first-of-type, .co_box .flex p:last-of-type {
    padding-left: 10px;
  }
  .law_toptxt {
    font-size: 20px;
  }
  .co_txt {
    font-size: 14px;
  }
  .contact {
    margin-top: 50px;
  }
}