@charset "UTF-8";
/*
Theme Name: Bestone
Theme URL: テーマのサイトのURI
Description: テーマの説明
Author: helios
Version: 1.0
Tags: テーマの特徴を表すタグ（カンマ区切り/オプション）
License: テーマのライセンス
License URI: テーマのライセンスのURI
*/
/*============================
共通
============================*/
/*フェードインアニメーションの指定*/
.tekkyo.animate__animated.animate__bounceInDown, .tekkyo.animate__animated.animate__fadeinUp {
  animation-delay: 0.3s;
  animation-duration: 1s; }

.scrollanime {
  opacity: 0; }

/*一瞬表示されるのを防ぐ*/
.fadeInDown2 {
  animation-name: fadeInDown2;
  animation-duration: 1s;
  animation-fill-mode: forwards; }

@keyframes fadeInDown2 {
  0% {
    opacity: 0; }
  100% {
    opacity: 1;
    transform: translate(0); } }
/*上下の動きを指定*/
.updown {
  transform: translateY(-100px); }

.downup {
  transform: translateY(100px); }

/*左右の動きを指定*/
.sect02 {
  overflow: hidden; }

/*横スクロールバーを隠す*/
.slide-right {
  transform: translateX(200px); }

.slide-left {
  transform: translateX(-200px); }

.mb_20 {
  margin-bottom: 20px; }

.mb_30 {
  margin-bottom: 30px; }

.mb_50 {
  margin-bottom: 50px; }

.fw_b {
  font-weight: bold; }

.pb_50 {
  padding-bottom: 50px; }

.center {
  text-align: center; }

.bold {
  font-weight: bold; }

.flex_bw {
  display: flex;
  justify-content: space-between; }

html {
  font-size: 62.5%;
  overflow-x: hidden;
  scroll-padding-top: 100px; }

body {
  margin: 0 auto;
  letter-spacing: 1px;
  font-family: "源真ゴシック", sans-serif;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  color: #444;
  font-size: clamp(16px, 2vw, 20px); }

  header .header_inner {
    padding: 20px;
    height: 100%;
    display: flex;
    justify-content: space-between; }
    header .header_inner .header_left img {
      width: clamp(100px, 18vw, 228px);
      height: auto; }
    header .header_inner .header_left a {
      transition: 0.5s; }
      header .header_inner .header_left a:hover {
        opacity: 0.6; }

  

/*追従メニューバーここから
.g-nav {
    width: 100%;
    z-index: 10;
}
.fixed {
    position: fixed;
    top: 0;
    left: 0;
}*/
/*メインビジュアルここから*/
.fv {
  background-size: cover;
  background-position: center;

  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 30px;
}

.fv h1 {
  font-size: 32px;
  color: #295a75;
  text-align: center;
}
#main_vis {
  position: relative;
  margin-bottom: 80px; }
  #main_vis header {
    background-color: transparent;
    position: absolute;
    /* 絶対的な位置指定 */
    top: 0;
    /* 画面上端に配置 */
    left: 50%;
    /* 画面中央に配置するために左端を50%に設定 */
    transform: translateX(-50%);
    /* 中央揃え */
    max-width: 1400px;
    height: 100%;
    width: 90%;
    /* ヘッダーの幅を指定 */
    z-index: 999; }
    #main_vis header .header_inner {
      padding: 20px;
      height: 100%;
      display: flex;
      justify-content: space-between; }
      #main_vis header .header_inner .header_left img {
        width: clamp(100px, 18vw, 228px);
        height: auto; }
      #main_vis header .header_inner .header_left a {
        transition: 0.5s; }
        #main_vis header .header_inner .header_left a:hover {
          opacity: 0.6; }
  #main_vis img {
    width: 100%;
    height: auto;
    position: relative;
    z-index: -1; }
    #main_vis img.main_sp {
      display: none; }
  #main_vis .main_text {
    position: absolute;
    top: 30%;
    left: 50%;
    width: 100%;
    transform: translate(-50%, -30%);
    text-align: center; }
    #main_vis .main_text .fv h1 {
      /*margin-top: -20px;  必要に応じて調整、またはマイナスでもOK */
      font-size: 32px;
      color: #295a75;
      /*text-align: center;*/
      margin-bottom: 20px;
      /*position: relative; */
    }
  

    #main_vis .main_text .main_text_blue {
      display: flex;
      justify-content: center;
      margin-bottom: min(10px, 1.8vw); }
      #main_vis .main_text .main_text_blue span {
        background-color: #2491CC;
        color: #fff;
        font-size: min(90px, 5.7vw);
        font-weight: 900;
        border-radius: 120px;
        padding: min(30px, 1.5vw) min(50px, 3vw);
        display: block; }
        #main_vis .main_text .main_text_blue span:first-child {
          margin-right: clamp(20px, 2.5vw, 45px); }
    #main_vis .main_text .main_text_soudan {
      font-size: clamp(14px, 2.6vw, 50px);
      font-weight: 700; }
      #main_vis .main_text .main_text_soudan br {
        display: none; }

/*メインコンテンツここから*/
.box_type1 {
  width: 90%;
  max-width: 1600px;
  margin: 0 auto;
  text-align: center; }

h2 {
  pointer-events: none;
  color: #2491CC;
  font-size: min(80px, 6vw);
  font-weight: bold;
  position: relative;
  margin-top: -100px;
  padding-top: 100px;
  margin-bottom: 7.5vw;
  text-align: center; }
  h2:after {
    position: absolute;
    z-index: 1;
    pointer-events: none;
    content: "";
    background: url("img/h2_item.png") no-repeat;
    background-size: contain;
    width: 5.5vw;
    height: 5.5vw;
    top: calc(140px + 7vw);
    left: 50%;
    transform: translateX(-50%); }

.contents1_inner {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  text-align: center;
  margin-bottom: 8vw; }
  .contents1_inner dl {
    background-color: #2491CC;
    border-radius: 4vw;
    width: 47%;
    max-height: 664px;
    margin-bottom: 60px;
    padding: 10px 2.5vw;
    color: #ffffff; }
    .contents1_inner dl dt {
      font-size: min(50px, 2.8vw);
      font-weight: 600;
      margin-bottom: 10px; }
    .contents1_inner dl dd {
      font-size: clamp(16px, 2vw, 20px); }
      .contents1_inner dl dd figure {
        max-width: 100%;
        margin-bottom: 30px; }
        .contents1_inner dl dd figure img {
          height: auto;
          max-width: 100%;
          margin-bottom: 20px; }

.bg_img {background: url("img/bg01.jpg") repeat;background-size: contain; }

.bg_white {
  background-color: #fff;
  padding-top: 5vw; }

.box_type2 {
  border-radius: 7vw;
  width: 90%;
  max-width: 1600px;
  margin: 0 auto; }

.contents2 {
  padding: 9vw 3vw; }
  .contents2 .contents2_inner {
    padding: 5vw 0;
    margin: 0 auto; }

.box_type3 {
  width: 90%;
  max-width: 1300px;
  margin: 0 auto; }

.dl_blue {
  margin-bottom: 5vw; }
  .dl_blue:last-child {
    margin-bottom: 0; }
  .dl_blue dt {
    background-color: #2491CC;
    border-radius: 80px;
    color: #fff;
    padding: max(15px, 3vw);
    font-size: clamp(18px, 3vw, 40px);
    text-align: center;
    line-height: 1.3; }
  .dl_blue dd {
    padding: 2vw; }

.text_type1 {
  font-size: clamp(22px, 3vw, 40px);
  font-weight: 500;
  margin-bottom: 30px; }

.contents3_img {
  position: relative;
  margin-bottom: 5vw; }
  .contents3_img h3 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
    background-color: #2491CC;
    border-radius: 80px;
    color: #fff;
    padding: 2vw 4.3vw;
    font-size: min(40px, 3vw);
    font-weight: 500; }
  .contents3_img img {
    width: 100%; }

.contents3_inner {
  margin-bottom: 10vw; }
  .contents3_inner table {
    border-collapse: collapse;
    max-width: 1300px;
    margin: 0 auto; }
    .contents3_inner table thead tr th {
      display: table-cell;
      vertical-align: middle;
      font-size: clamp(14px, 2.5vw, 25px);
      font-weight: 400; }
      .contents3_inner table thead tr th:first-child {
        background-color: #A9A9A9;
        color: #fff; }
      .contents3_inner table thead tr th:nth-child(2) {
        text-align: center; }
      .contents3_inner table thead tr th:last-child {
        text-align: center; }
    .contents3_inner table th, .contents3_inner table tr, .contents3_inner table td {
      border: 1px solid #707070;
      padding: 2vw; }
    .contents3_inner table tbody tr {
      font-size: clamp(14px, 2.5vw, 20px); }
      .contents3_inner table tbody tr th {
        width: 50%;
        display: table-cell;
        vertical-align: middle; }
      .contents3_inner table tbody tr td {
        width: 25%;
        display: table-cell;
        vertical-align: middle; }
        .contents3_inner table tbody tr td span {
          color: #fff;
          border-radius: 40px;
          font-weight: bold;
          padding: 5px 30px; }
        .contents3_inner table tbody tr td:nth-child(2) {
          background-color: #FFFACB; }
          .contents3_inner table tbody tr td:nth-child(2) span {
            background-color: #2491CC; }
        .contents3_inner table tbody tr td:nth-child(3) {
          background-color: #F5F5F5; }
          .contents3_inner table tbody tr td:nth-child(3) span {
            background-color: #EB1F77; }
    .contents3_inner table tbody .bg_blue th {
      background-color: #2491CC;
      color: #fff; }

.contents4 {
  padding: 9vw 0 4vw 0; }
  .contents4 .contents4_inner {
    width: 90%;
    max-width: 1300px; }
    .contents4 .contents4_inner h3 {
      background-color: #2491CC;
      border-radius: 80px;
      color: #fff;
      padding: 2vw;
      font-size: clamp(18px, 3vw, 40px);
      text-align: center;
      font-weight: 500;
      margin-bottom: 2vw; }
    .contents4 .contents4_inner ol {
      margin-bottom: 5vw; }
      .contents4 .contents4_inner ol li {
        padding: 10px;
        background-color: #fff;
        border: 1px solid #707070;
        margin-bottom: 1.2vw; }

.contents5 {
  padding-bottom: 9vw; }
  .contents5 .contents5_inner {
    padding: 5vw 0; }
    .contents5 .contents5_inner .dl_blue:last-child {
      margin-bottom: 0; }
      .contents5 .contents5_inner .dl_blue:last-child dd {
        margin-bottom: 0; }
    .contents5 .contents5_inner .dl_blue dt {
      background-color: #FFEC44;
      color: #2491CC;
      font-weight: bold;
      padding: 15px 20px; }
    .contents5 .contents5_inner .dl_blue dd .contents5_inner_img {
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      margin-top: 20px;
      margin-bottom: 30px;
      counter-reset: number 0; }
      .contents5 .contents5_inner .dl_blue dd .contents5_inner_img figure {
        width: calc( 33.33% - 2.5vw );
        height: auto;
        position: relative;
        display: inline-block;
        counter-increment: number 1; }
        .contents5 .contents5_inner .dl_blue dd .contents5_inner_img figure:before {
          content: counter(number);
          font-size: clamp(16px, 2.5vw, 35px);
          font-weight: 400;
          color: #fff;
          background-color: #2491CC;
          line-height: clamp(30px, 5vw, 60px);
          left: 0;
          top: 0;
          width: clamp(30px, 5vw, 60px);
          height: clamp(30px, 5vw, 60px);
          border-radius: 0 0 0.8em 0;
          position: absolute;
          text-align: center; }
        .contents5 .contents5_inner .dl_blue dd .contents5_inner_img figure img {
          width: 100%; }
    .contents5 .contents5_inner .dl_blue dd .area {
      margin-top: 20px; }
      .contents5 .contents5_inner .dl_blue dd .area span {
        display: inline-block;
        border-radius: 80px;
        background-color: #afafaf;
        color: #fff;
        font-size: clamp 18px, 3vw, 25px;
        font-weight: bold;
        padding: 5px 50px;
        margin-bottom: 30px; }
    .contents5 .contents5_inner .dl_blue dd .ul_area {
      display: flex;
      flex-wrap: wrap;
      margin-bottom: 70px; }
      .contents5 .contents5_inner .dl_blue dd .ul_area:last-child {
        margin-bottom: 0; }
      .contents5 .contents5_inner .dl_blue dd .ul_area li {
        margin-right: 20px;
        padding: 0 0 10px 25px;
        position: relative; }
        .contents5 .contents5_inner .dl_blue dd .ul_area li:before {
          content: "";
          width: 20px;
          height: 20px;
          border-radius: 50px;
          background-color: #2491CC;
          position: absolute;
          top: 5px;
          left: 0; }
    .contents5 .contents5_inner .text_type2 {
      padding: 0 2vw;
      font-size: clamp(16px, 2vw, 25px); }
    .contents5 .contents5_inner .text_blue {
      color: #2491CC;
      font-weight: bold;
      font-size: clamp(20px, 2.5vw, 35px);
      border: 1px solid #2491CC;
      border-radius: 5vw;
      padding: 10px 5vw; }

.tel_box {
  margin: 6vw auto 8vw auto; }
  .tel_box h4 {
    font-weight: bold;
    font-size: clamp(20px, 3vw, 35px);
    margin-bottom: 20px; }
  .tel_box .tel_box_inner {
    background-color: #2491CC;
    color: #fff;
    font-weight: bold;
    font-size: clamp(40px, 6vw, 70px);
    border-radius: 150px;
    padding: 10px 5vw;
    line-height: 1.4; }
    .tel_box .tel_box_inner .tel1, .tel_box .tel_box_inner .tel2 {
      display: flex;
      align-items: center;
      justify-content: center; }
    .tel_box .tel_box_inner img {
      width: clamp(50px, 7vw, 86px);
      height: auto; }

.contents6 .contents6_inner {
  padding: 6vw 4vw 8vw 4vw; }
  .contents6 .contents6_inner .flow_box {
    border-radius: 6vw;
    background-color: #fff;
    padding: 2.5vw 5vw 2.5vw 4vw;
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: max(6vw, 45px); }
    .contents6 .contents6_inner .flow_box:before {
      content: "1";
      font-size: clamp(25px, 4vw, 60px);
      font-weight: bold;
      color: #fff;
      background-color: #2491CC;
      line-height: min(7vw, 90px);
      left: 0;
      top: -12%;
      width: min(7vw, 90px);
      height: min(7vw, 90px);
      border-radius: 50%;
      position: absolute; }
    .contents6 .contents6_inner .flow_box:nth-of-type(2):before {
      content: "2"; }
    .contents6 .contents6_inner .flow_box:nth-of-type(3):before {
      content: "3"; }
    .contents6 .contents6_inner .flow_box .flow_left {
      text-align: left;
      margin-right: 20px; }
      .contents6 .contents6_inner .flow_box .flow_left h3 {
        color: #2491CC;
        font-size: clamp(22px, 3vw, 40px);
        font-weight: 600;
        margin: 3vw 0 1vw 0; }
    .contents6 .contents6_inner .flow_box img {
      width: 45%;
      height: 45%; }

.contents7 {
  padding-bottom: 4vw; }
  .contents7 .form_box {
    background-color: #f5f5f5;
    border-radius: 6vw;
    padding: 40px 0;
    margin-bottom: 5vw; }
    .contents7 .form_box .form_box_inner {
      width: min(90%, 1000px);
      margin: 0 auto; }
      .contents7 .form_box .form_box_inner dl {
        display: flex;
        justify-content: space-between; }
        .contents7 .form_box .form_box_inner dl dt {
          padding: 25px 62px 25px 25px;
          width: 35%;
          text-align: left;
          display: flex; }
          .contents7 .form_box .form_box_inner dl dt.require {
            position: relative; }
            .contents7 .form_box .form_box_inner dl dt.require:before {
              content: "必須";
              background-color: #FC9546;
              color: #fff;
              border-radius: 10px;
              padding: 5px 10px;
              top: 25px;
              right: 0;
              position: absolute; }
          .contents7 .form_box .form_box_inner dl dt.dt_long {
            width: 35%;
            padding-right: 0; }
        .contents7 .form_box .form_box_inner dl dd {
          padding: 25px 25px 25px 15px;
          width: 65%; }
          .contents7 .form_box .form_box_inner dl dd select, .contents7 .form_box .form_box_inner dl dd input, .contents7 .form_box .form_box_inner dl dd textarea {
            border: 1px solid #707070;
            background-color: #fff;
            width: 100%;
            border-radius: 10px;
            padding: 5px 10px;
            /* フォーカス時のスタイル */ }
            .contents7 .form_box .form_box_inner dl dd select:focus, .contents7 .form_box .form_box_inner dl dd input:focus, .contents7 .form_box .form_box_inner dl dd textarea:focus {
              border: 1px solid #FC9546;
              /* 枠の色を変更 */
              outline: none;
              /* デフォルトのフォーカス時のアウトラインを非表示にする */ }
          .contents7 .form_box .form_box_inner dl dd textarea {
            height: 200px; }
          .contents7 .form_box .form_box_inner dl dd #dropzone .codedropz-upload-handler {
            border: 1px dashed #707070;
            border-radius: 10px; }
            .contents7 .form_box .form_box_inner dl dd #dropzone .codedropz-upload-handler .codedropz-upload-container {
              padding: 15px 20px 20px 20px; }
              .contents7 .form_box .form_box_inner dl dd #dropzone .codedropz-upload-handler .codedropz-upload-container .codedropz-upload-inner {
                overflow: visible; }
                .contents7 .form_box .form_box_inner dl dd #dropzone .codedropz-upload-handler .codedropz-upload-container .codedropz-upload-inner h3 {
                  font-size: clamp(16px, 2vw, 20px);
                  margin: 0;
                  line-height: 1.5;
                  word-break: break-word; }
                .contents7 .form_box .form_box_inner dl dd #dropzone .codedropz-upload-handler .codedropz-upload-container .codedropz-upload-inner span {
                  font-size: 14px;
                  line-height: 1.4; }
                .contents7 .form_box .form_box_inner dl dd #dropzone .codedropz-upload-handler .codedropz-upload-container .codedropz-upload-inner .codedropz-btn-wrap .cd-upload-btn {
                  background-color: #2491CC;
                  color: #fff;
                  font-size: 16px;
                  font-weight: 500;
                  padding: 5px 60px;
                  border-radius: 5px;
                  cursor: pointer;
                  margin-top: 10px;
                  transition: 0.5s; }
                  .contents7 .form_box .form_box_inner dl dd #dropzone .codedropz-upload-handler .codedropz-upload-container .codedropz-upload-inner .codedropz-btn-wrap .cd-upload-btn:hover {
                    background-color: #707070; }
          .contents7 .form_box .form_box_inner dl dd #dropzone .dnd-upload-status .dnd-upload-details .name {
            font-size: 15px; }
            .contents7 .form_box .form_box_inner dl dd #dropzone .dnd-upload-status .dnd-upload-details .name em {
              font-style: normal;
              font-weight: 300; }
  .contents7 .btn_send input {
    background-color: #2491CC;
    color: #fff;
    font-size: clamp 20px, 3vw, 35px;
    font-weight: 500;
    padding: 10px 60px;
    border-radius: 10px;
    cursor: pointer;
    transition: 0.5s;
    margin: 0 auto 0;
    text-align: center; }
    .contents7 .btn_send input:hover {
      background-color: #999; }
  .contents7 .btn_send .wpcf7-spinner {
    display: none; }

.font_s {
  font-size: 14px;
  font-weight: normal; }

.contents8 {
  padding: 6vw 0 8vw 0; }
  .contents8 .contents8_inner {
    padding: 5vw 0; }
    .contents8 .contents8_inner .privacy_box dl {
      margin-bottom: 60px; }
      .contents8 .contents8_inner .privacy_box dl dt {
        font-size: clamp(22px, 2.5vw, 35px);
        color: #2491CC;
        font-weight: 600; }

/*メインコンテンツここまで*/

/*フッターここから*/
footer {
  background-color: #D3F1FC; }
  footer .footer_inner {
    width: min(90%, 1600px);
    margin: 0 auto;
    padding: 40px 0;
    background: url("img/footer01.png") no-repeat;
    background-position: right bottom 40px;
    background-size: auto 50%; }
    footer .footer_inner .footer_link {
      margin-bottom: 30px; }
      footer .footer_inner .footer_link a {
        transition: 0.5s; }
        footer .footer_inner .footer_link a:hover {
          opacity: 0.7; }
    footer .footer_inner ul {
      margin-bottom: 30px; }
      footer .footer_inner ul li {
        position: relative;
        margin-left: 30px;
        font-size: clamp(16px, 3vw, 18px);
        font-weight: 600; }
        footer .footer_inner ul li:before {
          content: "";
          width: 18px;
          height: 18px;
          background-color: #2491CC;
          top: 6px;
          left: -28px;
          position: absolute; }
    footer .footer_inner .footer_text {
      font-size: clamp(14px, 2vw, 16px); }

/* ————————————————
   モバイル（幅768px以下）向け
   ———————————————— */
   /* --- SP（768px以下）はPC画像を使う暫定対応 --- */
@media (max-width: 768px){

  /* 親：レイヤー化＆高さ（お好みで 360–440px） */
  #main_vis{ position: relative; min-height: 400px; }

  /* PC画像を背景として敷く（SP画像は使わない） */
  #main_vis img.main_pc{
    display: block !important;
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center top; /* 見せたい位置に合わせて調整OK */
    z-index: 0;
  }
  #main_vis img.main_sp{ display: none !important; }

  /* ★テキストを上部に固定（これだけで十分） */
  #main_vis .main_text{
    position: absolute !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    transform: none !important;
    z-index: 1 !important;
    padding: 16px 16px 0 !important;
    text-align: center !important;
  }

  /* H1・サブのサイズ */
  #main_vis .fv h1{
    font-size: 22px;           /* 20–24px でお好み調整 */
    line-height: 1.45;
    margin: 0 0 12px;
  }
  #main_vis .main_text_blue,
  #main_vis .main_text_soudan{
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
  }
}
/* ========== PC（769px以上）だけのFV調整 ========== */
@media (min-width: 769px){
  /* FVは“普通のボックス”に（SPの display:contents の影響を遮断） */
  .fv{ display:block !important; }

  /* 下のセクションが食い込まないように保険（必要に応じて調整） */
  #main_vis{ min-height: 720px; } /* 650〜800pxくらいで好み調整 */

  /* テキスト位置を下げる（上に詰まっている対策） */
  #main_vis > .main_text{
    position:absolute !important;
    top:0 !important; left:0 !important; right:0 !important;
    transform:none !important;
    z-index:3 !important;
    text-align:center;
    padding-top: 120px;        /* ←好みで調整。もっと下げたいなら 140〜180px */
  }

  /* h1のサイズと行間 */
  #main_vis > .main_text h1{
    font-size: 32px;           /* ご希望の 32px */
    line-height: 1.8;          /* 読みやすいように */
    margin: 0 0 16px;
    font-weight: 700;          /* お好みで */
  }

  /* 改行制御：PCではSP用の <br> を消し、PC専用だけ出す */
  br.br-425, br.br-375{ display:none; }   /* SP専用の <br> はPCで無効化 */
  br.br-pc{ display:inline; }             /* PC専用の <br> を有効化 */
}
/* ===== PC 769px以上だけ（SPは既にOK） ===== */
@media (min-width: 769px){

  /* SP用の改行はPCで消す／PC用だけ表示 */
  br.br-425, br.br-375 { display: none !important; }
  br.br-pc { display: inline !important; }

  /* ヒーローのテキスト位置を下げる（お好みで数値調整） */
  #main_vis > .main_text{
    position: absolute !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    transform: none !important;
    z-index: 3 !important;
    text-align: center !important;
    padding-top: 160px !important;  /* ← もっと下げたければ 180〜200px に */
  }

  /* h1のサイズと行間（空行対策で余白も明示） */
  #main_vis > .main_text h1{
    font-size: 32px !important;   /* ご希望の32px */
    line-height: 1.6 !important;
    margin: 0 0 16px !important;
    font-weight: 700;
  }

  /* 次セクションの見出しが食い込む対策（必要なら） */
  h2{
    margin-top: 0 !important;     /* 既存の -100px を打ち消し */
    padding-top: 100px;            /* アンカー余白は維持 */
  }
}
/* PC最終オーバーライド（保険） */
@media (min-width: 769px){
  #main_vis > .main_text h1{
    font-size: 32px !important;
    line-height: 1.6;
    margin: 0 0 16px;
    font-weight: 700;
  }
}
/* ===== PC最終オーバーライド（769px以上だけ。style.css の一番下に置く）===== */
@media (min-width: 769px){

  /* SP用 br を消して、PC用 br だけ出す */
  html body #main_vis .main_text br.br-425,
  html body #main_vis .main_text br.br-375{ display:none !important; }
  html body #main_vis .main_text br.br-pc{ display:inline !important; }

  /* .fv は“普通のボックス”として表示（display:contents の影響を遮断） */
  html body .fv{ display:block !important; }

  /* テキスト塊を下げる（好みで調整OK） */
  html body #main_vis > .main_text{
    position:absolute !important;
    top:0 !important; left:0 !important; right:0 !important;
    transform:none !important; z-index:3 !important; text-align:center !important;
    padding-top: 340px !important;  
  }

  /* 見出しサイズ＆余白 —— ここが最優先で効きます */
  html body #main_vis > .main_text h1{
    font-size: 40px !important;     /* ご希望の32px */
    line-height: 1.6 !important;
    margin: 0 0 16px !important;
    font-weight: 700 !important;
    color: #295a75;                  /* 必要なら */
  }

  /* 下のセクションが食い込む対策（必要に応じて） */
  html body h2{
    margin-top: 0 !important;
    padding-top: 100px !important;
  }
  /* 背景が切れないように高さの下限を追加（必要なら） */
  html body #main_vis{
    min-height: 900px !important; 
    padding-bottom: 44px;             /* 余白のクッション（任意） */ 
  }
}
/* 相談コピーは濃いグレーに固定 */
#main_vis .main_text .main_text_soudan,
#main_vis .main_text .main_text_soudan *{
  color: #444 !important;
  -webkit-text-fill-color: #444 !important; /* Safari対策 */
}

/* 万一 .main_text_blue が当たってしまっても上書き */
#main_vis .main_text .main_text_blue.main_text_soudan{
  color: #444 !important;
  -webkit-text-fill-color: #444 !important;
}

/* 相談コピー内にリンクがあっても青に戻らないように */
#main_vis .main_text .main_text_soudan a{
  color: inherit !important;
  text-decoration: none;
}
/* タブレット帯：768px〜1023px でFVのテキストを下げる */
@media (min-width: 768px) and (max-width: 1023.98px){
  #main_vis > .main_text{
    padding-top: 260px !important;   /* ←まずはこの値で。多ければ±20pxずつ調整 */
  }

  /* 必要なら背景の見切れ防止（重なり防止）もセットで */
  #main_vis{
    min-height: 720px;               /* 画像が切れる/重なる場合はここも調整 */
  }
}

/* iPad Proなど横幅が広いタブレット（1024〜1365くらい）も分けたい場合 */
@media (min-width: 1024px) and (max-width: 1365.98px){
  #main_vis > .main_text{
    padding-top: 260px !important;   /* こちらは少し多めに */
  }
  #main_vis{ min-height: 760px; }
}
/* 768px〜1023px（タブレット）：もう少し下げる */
@media (min-width:768px) and (max-width:1023.98px){
  #main_vis > .main_text{
    padding-top: 340px !important; /* ← まずは320px。好みに合わせて±してOK */
  }
}

/* 1024px〜1279px（小さめノートPC）：ちょっと上げる＝少なめに */
@media (min-width:1024px) and (max-width:1279.98px){
  #main_vis > .main_text{
    padding-top: 260px !important; /* ← 220〜260の間で微調整おすすめ */
  }
}

/* 1280px〜（デスクトップ）：今の気持ちいい位置を維持 */
@media (min-width:1280px){
  #main_vis > .main_text{
    padding-top: 280px !important; /* ここは今まで通りでOK。好みで調整可 */
  }
}
/* ===============================
   FV（PC/Tablet）最終調整
   =============================== */

/* FVのベース */
#main_vis{
  height: auto !important;
  min-height: clamp(560px, 70vh, 820px);
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  background-position: center top;
  background-size: cover;
}

/* テキストの押し下げ量（流体） */
#main_vis > .main_text{
  padding-top: clamp(140px, 12vh, 320px);
}

/* 見出し色（PC/Tablet共通） */
#main_vis .main_text h1{
  color: #295a75;
  -webkit-text-fill-color: #295a75;
}

/* 768〜1023px（タブレット）：少し下げる */
@media (min-width:768px) and (max-width:1023.98px){
  #main_vis > .main_text{ padding-top: 200px; }
}

/* 1024〜1279px（小さめノート）：最小高さ & 直後セクションの余白消し */
@media (min-width:1024px) and (max-width:1279.98px){
  #main_vis{ min-height: 720px; }
  #main_vis + *{ margin-top: 0 !important; }
}

/* 1280〜1365px：必要なら最小高さを微調整 */
@media (min-width:1280px) and (max-width:1365.98px){
  #main_vis{ min-height: 760px; }
}
/* ========== FVの最終オーバーライド（style.cssの一番最後） ========== */

/* 768〜1023px（タブレット）：テキストを下げる＋FV高さを控えめに */
@media (min-width:768px) and (max-width:1023.98px){
  html body #main_vis{ 
    /*min-height: 700px !important;   /* 480〜600の範囲で好み調整OK */
    padding-bottom: 20px !important;
  }
  html body #main_vis > .main_text{
    padding-top: 200px !important;  /* 180〜220で微調整OK */
    position: relative !important;   /* ← ここが効いているか確認 */
    top:auto !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
  }
  #main_vis + *{ margin-top:0 !important; clear:both !important; }
  #main_vis + * > *:first-child{ margin-top:0 !important; }
}

/* 1024〜1279px（小さめノートPC）：900pxを打ち消す＆テキスト下げ */
@media (min-width:1024px) and (max-width:1279.98px){
  html body #main_vis{
    min-height: 560px !important;   /* ← “900px” をこれで上書き */
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
  html body #main_vis > .main_text{
    padding-top: 210px !important;  /* 220〜260で微調整OK */
  }
}

/* 1280〜1439px（一般デスクトップ） */
@media (min-width:1280px) and (max-width:1439.98px){
  html body #main_vis{ min-height: 780px !important; }
  html body #main_vis > .main_text{ padding-top: 320px !important; }
}

/* 1440〜1919px（広めデスクトップ） */
@media (min-width:1440px) and (max-width:1919.98px){
  html body #main_vis{ min-height: 820px !important; }
  html body #main_vis > .main_text{ padding-top: 340px !important; }
}

/* 1920px以上（フルHD〜） */
@media (min-width:1920px){
  html body #main_vis{ min-height: 880px !important; }
  html body #main_vis > .main_text{ padding-top: 360px !important; }
}
/* 共通でOK：FVは高さを自前で持つ＆重なりは隠す */
#main_vis{
  position: relative;     /* 絶対配置の背景の基準に */
  overflow: hidden;       /* 食い込みをクリップ */
  height: auto !important;
}
/* ===== 最終パッチ：style.css の一番最後に追加 ===== */

/* 768〜1023px（タブレット）— .main_text を絶対配置に戻し、FVの高さと食い込みを調整 */
@media (min-width:768px) and (max-width:1023.98px){

  /* ヒーローは自分で最低高さを持つ（画像の高さに依存しない） */
  html body #main_vis{
    min-height: 700px !important;    /* 680〜740の範囲でお好み調整OK */
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    overflow: hidden !important;
  }

  /* テキスト層は絶対配置に統一（相対配置にしてしまうと崩れます） */
  html body #main_vis > .main_text{
    position: absolute !important;
    top: 0 !important; left: 0 !important; right: 0 !important;
    transform: none !important;
    z-index: 3 !important;
    text-align: center !important;
    padding-top: 240px !important;   /* 220〜260で微調整OK */
  }

  /* 次セクションが食い込まないように（h2の負のマージンを中和） */
  html body h2{
    margin-top: 0 !important;
    padding-top: 70px !important;   /* アンカーの余白は確保 */
  }
}

/* 1024〜1279px（小さめノート）— もう少し詰めたい場合 */
@media (min-width:1024px) and (max-width:1279.98px){
  html body #main_vis{
    min-height: 560px !important;    /* 600〜660で微調整OK（今より少し狭め） */
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
  html body #main_vis > .main_text{
    padding-top: 220px !important;   /* 200〜240で微調整OK */
  }
   /* 次セクションが食い込まないように（h2の負のマージンを中和） */
   html body h2{
    margin-top: 0 !important;
    padding-top: 70px !important;   /* アンカーの余白は確保 */
  }
}
/* h1 の下と .main_text_blue（アニメ）の間隔を少しだけ空ける */
#main_vis .main_text_blue{
  /* 8px〜22pxの範囲で自然に伸び縮み */
  margin-top: clamp(8px, 2vw, 22px) !important;
}
/* v=2025-08-10 11:20 test */

/*20260218 口コミボタン装飾追加*/
.__parts-navigate ul li .link-google {
  padding: 20px 25px;
  border-radius: 30px;
  font-size: clamp(18px, 2.5vw, 25px);
}

/*20260227 トップのコラムに装飾追加*/
.column-prepare {
  text-align: center;
  padding: 30px 20px 60px 20px;
}