@charset "utf-8";
*{
    font-family: "Roboto", "Helvetica", "Arial", sans-serif;  
    margin: -1px;
    padding: 0;
}
img {
    max-width: 100%;	
    vertical-align: bottom;
}
html{
    overflow: auto;
    overflow-x: hidden;
}
html, body{
    touch-action: pan-y;          /* ← 縦スクロールのみ許可 */
    overscroll-behavior-x: none;  /* ← iOS/Androidでの横慣性も止める */
  }
.Wrapper{
    margin:  0 auto;
    width: 100%;
    /*overflow-x: hidden;*/
    max-width: 100%;
}
#wrapper{
    margin:  0 auto;
    width: 100%;
    /*overflow-x: hidden;*/
    max-width: 100%;
}
.header{
    height: 49px;
    margin: 0 auto;
    padding: 1% 2%;
    display: flex;
    justify-content: space-between;
    background-color: #fff;
    width: 68%;
    max-width: 1300px;
    padding-left: 7%;
}
.header p{
    font-size: 18.5px;
    line-height: 1.2;
    margin-top: 1%;
}
.contact.min_content{
   width: 90%;
    margin: 1% auto;
}
.contact_img{
    padding: 1% 3%;
    text-align: center;
}
.icon img {
  display: block !important;   /* ← inline の余白を消す */
}

/* ===== フォーム共通 基本リセット ===== */
input, textarea, select, button {
    font: inherit;               /* ボタンだけ勝手に太字/サイズ変更されるのを防ぐ */
    color: inherit;
    background-color: #fff;      /* 端末側のグレー背景を打ち消す */
    border: 1px solid #bbb;
    border-radius: 8px;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
  }


/* 光 */
.shine{
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
    border-radius: 80px;
}

.shine::before{
    content: '';
    width: 30px;
    height: 100%;
    background-color: #fff;
    animation: shine 3s ease-in-out infinite;
    position: absolute;
    top: -180px;
    left: 0;
    opacity: 0;
    transform: rotate(45deg);
}

/* 光の動き */
@keyframes shine{
  0% {
    transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}


.red{
    color:#ff0000;
    font-weight: bold;
}
.blue{
    color: #0046dc;
    font-weight: bold;
}
.header .h_left{
    width: 65%;
    display: flex;             
    align-items: center;        
    gap: 7px;               
}
.header .h_left img{
    margin-top: 0px;
    width: 26%;
}
.header .h_right{
    width: 51%;
    padding: 0px 0 15px;
}
.icon{
    display: flex;
    width: 100%;
}
.icon a:nth-child(2){
    margin-left: 5px;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .header .h_right{
    width: 64%;
    padding: 0px 0 15px;
    margin-top: 1%;
}
.header .h_left img{
  width: 35%;
}
.header p{
  font-size: 16px;
}
}
@media (min-width: 767px) { 
	.icon a:first-child:before{
    width: 40px;
    height: 40px;
    right: 40%;
	content: "";
    display: none;
    position: absolute;
    background: url(../img/hand.png) no-repeat;
    background-size: contain;
    animation: fuwafuwa 1.5s infinite ease-in-out .8s alternate;
    z-index: 2;
    top: 6%;
}
}
@media (max-width: 767px) { 
	.b_cta a:first-child:before{
    width: 30px;
    height: 30px;
    left: 0%;
	content: "";
    display: inline-block;
    position: absolute;
    background: url(../img/hand.png) no-repeat;
    background-size: contain;
    animation: fuwafuwa 1.5s infinite ease-in-out .8s alternate;
    z-index: 2;
    top: 43%;
}
}
.hand {
    animation: fuwafuwa 1.5s infinite ease-in-out .8s alternate;
    display: inline-block;
    transition: 1.5s ease-in-out;
    width: 5%;
    position: absolute;
    top: 20px;
    left: 25%;
    z-index: 10;
}
@keyframes fuwafuwa {
    0% {
      transform:translate(0, 0) rotate(-7deg);
    }
    50% {
      transform:translate(0, -7px) rotate(0deg);
    }
    100% {
      transform:translate(0, 0) rotate(7deg);
    }
}

.header .h_right p{
    font-size: 13px;
    margin-top: 2px;
    text-align: right;
}
.contact p{
    font-weight: bold;
    font-size: 1.5rem;
    text-align: center;
    margin: 10px auto;
    animation: flash 1.5s linear infinite;
}
@keyframes flash {
    0%,100% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }
}
.cta{
    margin: 0 auto;
}
.standard_area{
    max-width:1300px;
    display: block;
    margin: 0 auto;
}
img.card{
    display: block;
    margin: 60px auto;
}
img.virus{
    max-width: 800px;
    display: block;
    margin: 60px auto;
}
.point_image{
    max-width: 600px;
    margin-left: 30px;
}
.ttl{
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}
.ttl p{
    margin-top: 0;
    margin-left: 10px;
    font-weight: bold;
    font-size: 1.1rem;
}

.ttl p .red{
    font-size: 1.5rem;
}
.reason .ttl img {
    display: block;
    width: 15%;
}
.tried .ttl img {
    display: block;
    width: 10%;
}
.contact2{
    position: relative;
    max-height: 650px;
    margin: 0 auto 110px;
    background-image: url(../img/tel_women.png);
    background-size: cover;
}
.cta_area {
    text-align: center;
    width: 100%;
    margin: auto;
    background-color: #fff5b0;
}
.women_comment {
    font-size: 1.5rem;
    font-weight: bold;
    padding: 11% 8% 10% 45%;
}
.tried{
    max-width: 900px;
    background-color: #fffef5;
    margin: 40px auto;
    padding: 3%;
    border: 1px solid #3f3f3f;
}
.tried p{
    line-height: 1.8rem;
}
.tried .min{
    font-weight: normal;
    font-size: 0.8rem;
}
.tried .ttl{
    line-height: normal;
    padding-bottom: 7px;
    margin-bottom: 15px;
    border-bottom: 1px solid #3f3f3f;
}
.map_area{
    background-image: url(../img/map_bg.jpg);
    background-size: cover;
}
.map_area img{
    display: block;
    margin: 0 auto;
    padding: 3% 0;
    width: 60%;
}
.mt30{
    margin-top: 30px;
}
/*----------------------------------------------------------------------------------------------------------------------------------*/
.grad-wrap{
    position: relative;
}
.grad-btn {
    z-index: 2;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 148px;
    margin: auto;
    padding: .2em 0;
    border-radius: 2px;
    background: #ef5663;
    color: #fff;
    font-weight: bold;
    font-size: 1rem;
    text-align: center;
    cursor: pointer;
    transition: .2s ease;
    box-shadow: 0 0 3px rgb(0 0 0 / 30%);
}
.grad-item {
    position: relative;
    overflow: hidden;
    height: 70px; /*隠した状態の高さ*/
}
.grad-item::before {
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40px; /*グラデーションで隠す高さ*/
    background: -webkit-linear-gradient(top, rgb(255 254 245 / 67%) 0%, rgb(255 254 245) 50%, rgb(255 254 245) 50%, #fffef5 100%);
    background: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
    content: "";
}
.grad-trigger {
    display: none; /*チェックボックスは常に非表示*/
}
.grad-trigger:checked + .grad-btn {
    display: none; /*チェックされていたら、grad-btnを非表示にする*/
}
.grad-trigger:checked ~ .grad-item {
    height: auto; /*チェックされていたら、高さを戻す*/
}
.grad-trigger:checked ~ .grad-item::before {
    display: none; /*チェックされていたら、grad-itemのbeforeを非表示にする*/
}
.mt0{
    margin-top: 0px;
}
/*------------------------------------------------------------------------------------------------------------------------------------------*/
.toggle_contents {
   
}
.toggle_title {
    border: 2px solid #ff9b00;
    border-radius: 15px;
    margin-top: 10px;
    position: relative;
    padding: 3% 3% 3% 7%;
    cursor: pointer;
    font-size: 1.2rem;
    text-align: left;
    line-height: 1.4;
    font-weight: bold;
    color: #595959;

    max-height: 999999px;  /*Androidブラウザフォントバグ対策*/
}
.toggle_btn {
    position: absolute;
    top: 45%;
    right: 2%;
    transform: translateY(-50%);
    display: block;
    width: 32px;
    height: 32px;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    border-radius: 50%;
}
.toggle_btn:before {
    display: block;
    content: '▼';
    background-repeat: no-repeat;
    position: absolute;
    top: 50%;
    left: 20%;
    transform: translate(-50%, -50%);
}
.toggle_btn:before {
    width: 2px;
    height: 15px;
}
.toggle_title .toggle_btn:before {
    content: normal;
}
.toggle_contents dd {
    display: none;
    margin-inline-start:0;
}
.toggle_contents:first-of-type dd {
    display: block;
}
.toggle_contents dd p{
    margin: auto ;
    font-size: 1rem;
    line-height: 1.3rem;
    padding: 2%;
    box-sizing: border-box;
    color: #595959;
    position: relative;
}
.qa{
    margin: 70px auto;
    padding: 3%;
    max-width:1100px;
}
.toggle_title::before{
    position: absolute;
    content: "Q";
    top: 0;
    left: 2%;
    content: "Q";
    font-size: 2rem;
    font-weight: bold;
    border-radius: 5px;
    margin-top: 1.5%;
    margin-left: 0.5%;
}

#footer .f_nav {
    font-size: 0;
    margin-bottom: 20px;
}
ol, ul {
    list-style: none;
}
footer{
    text-align: center;
}
#footer .f_nav li a {
    color: #666;
    text-decoration: none;
    font-size: 0.9rem;
}
#footer .f_nav li {
    margin-right: 10px;
    display: inline-block;
    font-size: 13px;
}
#footer .f_nav li::after {
    content: '|';
    margin-left: 10px;
}
#footer .f_nav li:last-child::after {
    content: '';
    margin-left: 0px;
}
.pc_dp_n{
    display:none;
}
footer{
    background-color: #999;
    color: #fff;
    padding: 3%;
}
footer p, footer a{
    font-size: 0.8rem;
    text-decoration: none;
    color: #fff;
    line-height: 1.6;
}
.b_cta{
    display: none;
}

footer p:first-of-type a {
  font-size: 1.1em;          /* 少し大きく */
  font-weight: bold;         /* 任意：強調したい場合 */
  text-decoration: underline;/* 下線 */
  text-underline-offset: 3px;/* 下線と文字の間に少し余白 */
  display: inline-block;     /* 下に余白を効かせるため */
  margin-bottom: 1%;        /* 下に余白 */
}

/*--------SP-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media (max-width: 767px) { 
    .Wrapper{
        margin:  0 auto;
        width: 100%;
    }
    .header{
        width: 100%;
        height: auto;
        margin: 0 auto;
        padding: 12px 3%;
        padding-left: 4%;
        box-sizing: border-box;
        display: flex;
        justify-content: space-between;
        background-color: #fff;
    }
    .header p{
    font-size: 11.5px;
    line-height: 1.2;
    margin-top: 1%;
    }
    .header .h_right p{
    font-size: 10px;
    margin-top: 2px;
    text-align: right;
    }
    .header .h_right {
        width: 35%;
        padding:0 ;
    }
    .header .h_right {
        width: 43%;
    }
    .header .h_left {
        width: 57%;
    }
    .header .h_left img{
        margin-top: 5px;
        width: 98%;
    }
    .icon{
    display: flex;
    margin-left: 5%;
    width: 94%;
    }
    .reason{
        display: block;
        position: relative;
    }
    .point_image {
        max-width: 100%;
        margin:  20px 0 40px;
    }
    .contact.min_content {
        width: 100%;
    }
    .contact {
        margin: 20px auto;
    }
    .contact p{
        font-size: 1.2rem;
    }
    
    .cta_area a img{
        width: 100%;
        margin: 0 auto;
    } 
    .cta_area a:nth-child(2) {
    margin-left: 0px;
    }
    .toggle_title {
        padding: 3% 3% 3% 12%;
    }
    .toggle_title::before{
        margin-top: 0%;
        margin-left: 0.5%;
    }
    .contact2 .cta{
    bottom: -10%;
    }
    .cta {
    width: 90%;
}
    .pc_dp_n{
    display:block;
    }
    .header .h_left img{
    margin-top: 0px;
    width: 46%;
}
    input,textarea,select {
    font-size: 16px ;
    }
    .standard_area{
        width: 100%;
        display: block;
        margin: 0 auto;
    }
    img.card{
        width: 100%;
        display: block;
        margin: 0px auto;
    }
    img.virus{
        width: 100%;
        display: block;
        margin: 0px auto;
    }
    .ttl img{
        width: 20%;
    }
    .contact2 {
        width: 100%;
        height: auto;
        margin: 0px auto 50px;
        background-image: url(../img/tel_women_sp.png);
    }
    .women_comment {
        font-size: 1rem;
        font-weight: bold;
        padding: 13% 5% 13% 38%;
    }
    .tried {
        width: 90%;
        background-color: #fffef5;
        margin: 20px auto;
        padding: 3%;
        box-sizing: border-box;
        border: 1px solid #3f3f3f;
    }
    .grad-item {
        height: 160px; /*隠した状態の高さ*/
    }
    .tried .ttl img {
        width: 20%;
    }
    .map_area img{
        padding: 9% 0%;
        box-sizing: border-box;
        display: block;
        margin: 0 auto;
        width: 75%;
    }
/*-------追従ボタン--------------------------------------*/
/* フッターのプライバシーポリシーリンクを確保するための余白を設定 */
    footer {
        margin-top: 15%;
        position: relative;
        padding-bottom: 50px; /* 追従ボタンの高さ分の余白を追加 */
        line-height: 1.5;
    }
    .b_cta{
        display: flex;
        width: 100%;
        background: #fff;
        box-sizing: border-box;
        padding: 3% 3% 5% 4%;
        margin-top: 3%;
    }
    .b_cta a{
        display: block;
        width: 100%;
    }
    .b_cta a img{
        display: block;
        width: 97%;
        margin: 0 auto
    }
    .button{
        height: auto;
        position: fixed;
        right: 0;
        bottom: 0;
        cursor: pointer;
        transition: .3s;
        /*デフォルトで非表示にする*/
        opacity: 0;
        visibility: hidden;
        z-index: 20;
    }
    footer{
        margin-top: 17%;
        position: relative;
        padding-top: 15%;
    }

    /*このクラスが付与されると表示する*/
    .active{
        opacity: 1;
        visibility: visible;
    }
    /* フッター直前で停止 */
    .absolute {
        position: absolute;
        bottom: auto;
        top: -70px; /* 追従ボタンがフッターの上に移動 */
    }
    /*-------追従ボタン--------------------------------------*/
}
.pc_ds {
    display: block;
}
.sp_ds {
    display: none;
}
.pc {
  display: block;
}
.sp{
  display: none;
}
@media (max-width: 767px) { 
.pc_ds {
    display: none;
}
	.sp_ds {
    display: block;
}
.pc {
  display: none;
}
.sp{
  display: block;
}
}

/* CTA */
.cta_area {
    position: relative;
    text-align: center;
    margin: 0 auto;
  }
  
  /* 背景画像 */
  .cta_bg {
    width: 95%;
    height: auto;
    display: block;
    margin: 0 auto;
    padding: 5% 0 8% 0;
  }
  
  /* ボタンを中央に縦並び配置 */
  .btn_wrap {
    position: absolute;
    top: 59%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    width: 75%; /* 背景に対しての幅 */
  }
  
  /* 共通ボタン */
  .btn_wrap .btn img {
    width: 100%;  /* 画面サイズに応じて可変 */
    height: auto;
    display: block;
    border-radius: 0; /* 角丸なし */
  }
  
  /* 波紋アニメーションラッパ */
  .btn_anm {
    position: relative;
    width: 100%;
  }
  
/* ボタンアニメ */
@keyframes anime{
	0%{transform:scale(.95); opacity:1}
	90%{opacity:.1}to{transform:scale(1.2,1.5); opacity:0}
	}
	.btn_anm {
		position: relative;
		margin-top: 0%;
		margin-bottom: -1%;
		transition: .2s;
	}
	.btn_anm:before, .btn_anm:after {
		content: "";
		position: absolute;
		z-index: 0;
		width: 100%;
		height: 100%;
		top: -3px;
		left: 0;
		border-radius: 5px;
		background: #ffa2a2;
		border: 1px solid #ff8282;
		transform: translate3d(0,0,0);
	}
	.btn_anm:before {
		animation: anime 2s ease-out infinite;
	}
	.btn_anm:after {
	 animation: anime 2s ease-out 1s infinite;
	}
	.btn_anm a {
		display: block;
		border-radius: 32px;
		text-align: center;
		text-decoration: none;
	}
	.btn_anm span {
		display: block;
		position: relative;
		font-family: sans-serif;
	}
	.btn_anm span:after {
		content: "";
		position: absolute;
		top: 50%;
		right: 30px;
		width: 8px;
		height: 8px;
		margin: -4px 0 0 0;
		border-right: 1px solid #fff;
		border-top: 1px solid #fff;
		transform: translateX(5px) rotate(45deg);
	}
	.btn img {
			z-index: 10;
			position: relative;
	}

/* アニメーション */
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

@keyframes zoomIn {
	to {
			transform: scale(1.5);
	}
}

@keyframes poyopoyo {
	0%, 40%, 60% {
			transform: scale(1.0);
	}
	50% {
			transform: scale(1.05);
	}
}

@keyframes poyopoyo2 {
	0%, 60%, 80% {
			transform: scale(1.0);
	}
	70% {
			transform: scale(1.05);
	}
}

/* ===== PC(>=768px) だけ適用 ===== */
@media (min-width: 768px) {
  /* 画像の切替（PCはpcを表示、spは消す） */
  .sp { display: none !important; }
  .pc { display: block !important; }

  .cta_bg{
    width: 70%;
    max-width: 1050px;
    min-width: 770px;
    padding: 2% 0 3% 0;
  }

  /* ボタンを横並び（flex row）にして中央配置 */
  .cta_area { position: relative; }             
  .btn_wrap{
    position: absolute;
    top: 51%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: row;                         
    align-items: center;
    justify-content: center;
    gap: 2.6%;                                
  }

  .btn_anm,
  .btn_normal{
    flex: 0 0 auto;
    width: auto;
  }
  .btn_wrap .btn{ display:block; }

  .btn_wrap .btn img{
    height: clamp(82px, 9.8vw, 128px);  /* 画面幅に比例＋最小/最大 */
    width: auto !important;                          /* 比率維持 */
    display: block;
  }
  .btn_anm{ margin-top: 1%; }
  .btn_anm:before, .btn_anm:after {
		content: "";
		position: absolute;
		z-index: 0;
		width: 100%;
		height: 100%;
		top: -12px;
		left: 0;
		border-radius: 5px;
		background: #ffa2a2;
		border: 1px solid #ff8282;
		transform: translate3d(0,0,0);
	}
}
@media (min-width: 1101px) and (max-width: 1700px){
  .btn_wrap{
    top: 52%;
  }
  .btn_wrap .btn img{
    height: clamp(80px, 8.8vw, 140px) !important;
  }
  .btn_anm{ margin-top: 1%; }
  .btn_anm:before, .btn_anm:after {
    content: "";
    position: absolute;
    z-index: 0;
    top: -12px;
    border-radius: 5px;
    background: #ffa2a2;
    border: 1px solid #ff8282;
  }
}
  /* --- 900〜1100px：少しだけ低め＋位置微調整 --- */
  @media (min-width: 900px) and (max-width: 1100px){
    .btn_wrap{
      top: 52%;
    }
    .btn_wrap .btn img{
      height: clamp(80px, 9vw, 140px) !important;
    }
    .btn_anm{ margin-top: 1%; }
    .btn_anm:before, .btn_anm:after {
      top: -12px;
    }
  }
  
  /* --- 768〜900px：高さを少し上げる --- */
  @media (min-width: 768px) and (max-width: 960px){
    .btn_wrap{
      top: 53%;
    }
    .btn_wrap .btn img{
      height: clamp(97px, 10vw, 130px) !important;
    }
    .btn_wrap{ margin-left: 0%; }
    .btn_anm{ margin-top: 1%; }
    .btn_anm:before, .btn_anm:after {
      top: -13px;
    }
  }

/*お問い合わせフォーム*/
/* 背景と外側余白（任意） */
.anke{
    background:#bfe0ff;      /* 見本に近い青 */
    padding: 40px 0;
  }
  
  /* 見出しの横幅はレスポンシブに（固定700pxは崩れやすい） */
  .anke h2{
    max-width: 700px;
    width: min(92vw, 700px);
    margin: 0 auto;
    padding: 50px 0 30px;
  }
  
  /* 青い下地のブロック */
  .form_content{
    max-width: 900px;
    margin: 0 auto;
    background:#b4d9fe;
    padding: 2% 6% 100px;     /* 重複していた padding を整理 */
    overflow: hidden;         /* 内側をきっちり切る */
  }
  
  /* 白いフォーム本体 */
  .form_content .container{
    background:#fff;
    border-radius: 12px;             /* 上左右をしっかり丸く */
    overflow: hidden;                /* ← 画像/要素の角はみ出し防止 */
    background-clip: padding-box;    /* アンチエイリアスをきれいに */
  }
  
  /* STEP 矢印行 */
  .arrow{
    max-width: 600px;
    width: 100%;
    margin: clamp(8px, 2vw, 16px) auto 20px;
    box-sizing: border-box;     /* paddingを幅に含める */
    overflow: hidden;           /* 見切れるのを防止 */
    margin-top: 10%;
    margin-right: 2%;
    margin-left: 2%;
  }
  
  .arrow img{
    display: block;
    width: 100%;                /* 枠にフィット */
    height: auto;
    margin: 0;                  /* ← 右マージンは削除！ */
    object-fit: cover;          /* 念のため */
  }
  
  /* PC時は角丸を少しだけ小さくして自然に */
  @media (min-width: 768px){
    .form_content{ border-radius: 24px; }
    .form_content .container{
      padding: 28px 70px;
    }
    button.slide-next.question_btn_next{
        margin-top: 2%;
    }
    .Q_section03{
        margin-right: 0;
    }
    .arrow{
      max-width: 600px;
      width: 100%;
      margin: clamp(8px, 2vw, 16px) auto 20px;
      box-sizing: border-box;     /* paddingを幅に含める */
      overflow: hidden;           /* 見切れるのを防止 */
      margin-top: 4%;
      margin-right: 2%;
      margin-left: 16%;
      margin-bottom: 3%;
    }
    
    .arrow img{
      display: block;
      width: 100%;                /* 枠にフィット */
      height: auto;
      margin: 0;                  /* ← 右マージンは削除！ */
      object-fit: cover;          /* 念のため */
    }
  }
/* --- タブレット横・小さめ画面（768～1023px）--- */
@media (min-width: 768px) and (max-width: 1023.98px){
  .form_content .container{
    padding: 20px 40px;  /* 少し狭め */
  }
  .arrow{
    max-width: 515px;    /* 矢印画像は少し小さく */
    margin-left: 20%;    /* 左余白も縮小 */
    width: 65%;
  }
}

/* --- 小さめPC（1024～1365px）--- */
@media (min-width: 1024px) and (max-width: 1365.98px){
  .form_content .container{
    padding: 24px 60px;  /* PC寄りだがまだ少しコンパクト */
  }
  .arrow{
    max-width: 560px;
    margin-left: 18%;
    width: 65%;
  }
}

/* --- 大きめPC（1366px～）--- */
@media (min-width: 1366px){
  .form_content .container{
    padding: 32px 80px;  /* 余裕があるので広め */
  }
  .arrow{
    max-width: 540px;    /* 大きめに */
    margin-left: 14%;
  }
}

.Q_section{
    margin-right: 2%;
    margin-left: 0%;
}
@media (max-width: 767px){
    .Q_section03{
        margin-right: -2%;
    }
  }
.slide-next.question_btn_next:disabled {
  background: #ccc;
	box-shadow: 0px 9px 0px 0px rgba(185, 185, 185, 1);
}
button.slide-next.question_btn_next {
  	display: block;
    text-align: center;
    margin: auto;
    background: linear-gradient(to bottom, #5d97ec, #1e68d6);
    box-shadow: 0px 9px 0px 0px #003078;
    font-weight: bold;
    width: 29%;
    height: 60px;
    color: #fff;
    font-size: 20px;
    border-radius: 10px;
    border: none;
    margin: 3% 0 3% 36.5%;
}
 .q3_input {
    height: 35px;
    width: 104%;
    font-size: 18px;
    margin: 10px auto 20px;
    padding: 1%;
}
label span.must {
    margin-left: 10px;
    color: #fff;
    background: #ff5f00 !important;
    padding: 4px 4px 4px;
    font-size: 11px;
    margin-bottom: 3px;
    margin-right: 2px;
    border-radius: 3px;
}
.explanation .must{
    margin-left: 10px;
    color: #fff;
    background: #ff5f00 !important;
    padding: 4px 4px 4px;
    font-size: 11px;
    margin-bottom: 3px;
    margin-right: 2px;
    border-radius: 3px;
}
label b{
	padding: 6px 0 0px 0px;
}
.q_text{
    padding: 0 10px;
    font-size: 17px;
}
.q_text01>div {
    margin: 35px 10px 35px;
}
.postcode1,.postcode2{
	height: 35px;
    max-width: 170px;
	width: 100%;
    font-size: 18px;
    margin: 10px auto 20px;
    padding: 1%;
}
.prefecture{
	height: 35px;
    max-width: 529px;
	width: 95%;
    font-size: 18px;
    margin: 10px 10px 20px;
    padding: 1%;
}
.city{
	height: 35px;
    max-width: 488px;
	width: 100%;
    font-size: 18px;
    margin: 10px 10px 20px;
    padding: 1%;
}

.address{
	height: 35px;
    max-width: 500px;
	width: 100%;
    font-size: 18px;
    margin: 10px 10px 20px;
    padding: 1%;
}
.q_text02>div {
    margin: 20px 10px 35px;
    margin-right: -5%;
}

.tel1{
	height: 35px;
    max-width: 180px;
	width: 100%;
    font-size: 18px;
    margin: 10px auto 20px;
    padding: 1% ;
}
.tel2{
	height: 35px;
    max-width: 180px;
	width: 100%;
    font-size: 18px;
    margin: 10px auto 20px;
    padding: 1% ;
}
.request{
	height: 45px;
    width: 100%;
    font-size: 16px;
    margin: 10px auto 20px;
}
.date input ,.date select{
	height: 45px;
    max-width: 230px;
	width: 100%;
    font-size: 18px;
    margin: 10px 5px 20px;
}
.naiyou{
	height: 75px;
    width: 100%;
    font-size: 18px;
    margin: 10px auto 20px;
}
.q_text03>div {
    margin: 20px 10px 0;
}
input.submitBtn.question_btn_next {
    display: block;
    text-align: center;
    margin: auto;
    background: linear-gradient(to bottom, #5d97ec, #1e68d6);
    box-shadow: 0px 9px 0px 0px #003078;
	font-weight: bold;
    max-width: 500px;
	width: 100%;
    height: 70px;
    color: #fff;
    font-size: 20px;
    border-radius: 5px;
    border: none;
    margin-bottom: 25px;
    line-height: 1.3;
    margin-left: 20%;
}
input.prev2 {
    display: block;
    text-align: center;
    margin: auto;
    background: linear-gradient(to bottom, #5d97ec, #1e68d6);
    box-shadow: 0px 9px 0px 0px #003078;
	font-weight: bold;
    max-width: 500px;
	width: 100%;
    height: 70px;
    color: #fff;
    font-size: 20px;
    border-radius: 5px;
    border: none;
    margin-bottom: 25px;
    line-height: 1.3;
}
input[type="submit"] {
  appearance: none;
  -webkit-appearance: none;
  }
input.submitBtn.question_btn_next:disabled {
    background: #ccc;
	box-shadow: 0px 9px 0px 0px rgba(185, 185, 185, 1);
}
.slick-disabled {
    display: none !important;
}
@media (min-width: 768px) and (max-width: 910px){
  .tel1{
    height: 35px;
      max-width: 140px;
    width: 100%;
      font-size: 18px;
      margin: 10px auto 20px;
      padding: 1% ;
  }
  .tel2{
    height: 35px;
      max-width: 140px;
    width: 100%;
      font-size: 18px;
      margin: 10px auto 20px;
      padding: 1% ;
  }
}
@media screen and (max-width:740px) {
  .postcode1,.postcode2{
    height: 35px;
      max-width: 170px;
    width: 100%;
      font-size: 18px;
      margin: 10px auto 20px;
  }
  .prefecture{
    height: 35px;
      max-width: 400px;
    width: 95%;
      font-size: 18px;
      margin: 10px 10px 20px;
  }
  .city{
    height: 35px;
      max-width: 450px;
    width: 100%;
      font-size: 18px;
      margin: 10px 10px 20px;
  }
  .anke h2{
      width: 100%;
	  padding: 50px 20px 30px;
  }
	.form_content {
    padding: 0px 10px 40px;
}
	.form_content .container {
    padding: 16px;
    padding-right: 1% ;
    padding-bottom: 0%;
}
	.tel1 {
    width: 26%;
    max-width: 90px;
	font-size: 13px;
    padding: 2% 1%;
}
	.tel2 {
    width: 26%;
    max-width: 90px;
	font-size: 13px;
    padding: 2% 1%;
}
	.postcode1, .postcode2 {
    width: 80px;
}
	.prefecture {
    max-width: 400px;
    width: 95%;
    font-size: 16px;
    margin: 10px 0px 20px;
}
	.city {
    max-width: 450px;
    width: 95%;
    font-size: 16px;
    margin: 10px 0px 20px;
}
.q_text{
  padding: 0 10px;
  font-size: 20px;
}
	.q_text03>div {
    margin: 20px 10px 0;
}
	button.slide-next.question_btn_next {
	margin-bottom: 1%;
}
	span.form_s {
    font-size: 16px;
}	
	.date input {
	width: 200px;
    margin: 10px 5px 0;
	font-size: 16px;
}
	.date select{
	width: 200px;
    margin: 10px 5px 0;
	font-size: 16px;
}
	.naiyou {
    font-size: 15px;
}
	.form_ttl {
    padding: 25px 6%;
}
	.q_text01>div {
    margin: 20px 10px 35px;
}
	.q_text02>div {
    margin: 20px 10px 35px;
    
}
.q_text{
    padding: 0 10px;
    font-size: 15px;
}
.q3_input {
  height: 35px;
  width: 95%;
  font-size: 18px;
  margin: 10px auto 20px;
  padding: 3%;
}

button.slide-next.question_btn_next {
    display: block;
  text-align: center;
  margin: auto;
  background: linear-gradient(to bottom, #5d97ec, #1e68d6);
  box-shadow: 0px 9px 0px 0px #003078;
  font-weight: bold;
  width: 50%;
  height: 55px;
  color: #fff;
  font-size: 20px;
  border-radius: 10px;
  border: none;
  margin-top: -4%;
  margin-bottom: 5%;
  margin-right: 27% !important;
}
}
.err{
    color: #e80000;
    background: rgb(255, 237, 237);
    font-weight: bold;
    margin: 0 0 10px;
    padding: 0 10px;
    font-size: 12px;
}
.min {
    font-size: 0.7rem;
    margin-bottom: 5px;
    font-weight: normal;
}


  /* 実績 */
.record {
    position: relative;
    background-image: url('../img/record_bg.jpg');
    background-size: cover;
    background-position: center;
    width: 100%;
    padding-top: 5%;
    padding-bottom: 5%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    
  }
  
  .record_overlay {
    position: relative;
    z-index: 2;
    max-width: 95%;
    height: auto;
    padding-left: 2%;
  }
  
  :root { --record-gap: 12px; } /* 画像の間隔（px推奨） */

.record { position: relative; }

/* ビューポート */
:root{
    --record-gap: 12px;   /* 画像の間隔（整数px推奨） */
    --record-speed: 40s;  /* 速度：小さいほど速い */
  }
  
  /* ビューポート */
  .record{ position: relative; }
  .record_slider{
    position: absolute; left: 0; bottom: 12%;
    width: 100%; height: 30%;
    overflow: hidden; z-index: 3;
  }
  
  /* コンテンツ（A+B を横に並べる） */
  .slide_track{
    display: flex;
    align-items: center;
    gap: var(--record-gap);           /* 余白はpxで */
    height: 100%;
    width: max-content;               /* 中身分だけの幅にするのがポイント */
    will-change: transform;
    backface-visibility: hidden;
    transform: translate3d(0,0,0);    /* 合成レイヤー固定 */
    animation: record-scroll var(--record-speed) linear infinite;
    /* 外側の影響を減らす（任意）*/
    contain: layout paint;
  }
  
  /* 画像：高さで揃え、横は自動。インライン隙間は block で除去 */
  .slide_img{
    height: 100%;
    width: auto;
    display: block;
    flex: 0 0 auto;
    object-fit: cover;                /* 全体を見せたいなら contain に */
    /* object-fit: contain; */
  }
  
  /* 無限ループ（A+Bの“半分”だけ移動） */
  @keyframes record-scroll{
    0%   { transform: translate3d(0,0,0); }
    100% { transform: translate3d(-50%,0,0); }
  }
  
  /* 動きが苦手な人の環境配慮（任意） */
  @media (prefers-reduced-motion: reduce){
    .slide_track{ animation: none; }
  }

/* --------------------------
   PC表示：4枚並べて静止
-------------------------- */
@media (min-width: 768px){ 
  .record {
    padding: 4% 0 3% 0;
    
  }  
  .record_overlay {
    position: relative;
    z-index: 2;
    width: 70%;
    max-width: 1050px;
    min-width: 770px;
    height: auto;
    padding-left: 0%;
  }
  .record_slider{
    position: absolute;
    left: 25%;
    bottom: 15.5%;
    width: 50%;
    max-width: 1000px;
    height: auto;            /* ← 高さ固定を解除 */
    overflow: hidden;
    z-index: 3;
  }

  /* トラックはアニメ停止＆横並びの器に */
  .slide_track{
    animation: none ; /* ← スクロール停止 */
    transform: none ;
    width: 100%;
    height: auto;
    gap: var(--record-gap);
    display: flex;
    justify-content: center;     /* 中央寄せ */
    align-items: center;
    flex-wrap: nowrap;           /* 4枚横一列 */
  }

  /* 画像は4等分幅。縦横比はお好みで調整 */
  .slide_img{
    width: calc((100% - (var(--record-gap) * 3)) / 4); /* 4枚＋間隔3つ */
    height: auto;               /* ← 画像の自然な比率 */
    aspect-ratio: 4 / 4;        /* 形を揃えたいときに便利（任意） */
    object-fit: cover;          /* 全体を見せたいなら contain に変更 */
    flex: 0 0 auto;
    display: block;
  }

  /* セットB（5枚目以降）は非表示にして4枚だけ出す */
  .slide_img:nth-child(n+5){
    display: none;
  }
}

/* --- タブレット縦（768px〜1023px） --- */
@media (min-width: 768px) and (max-width: 1023px) {
  .record_slider{
    position: absolute;
    left: 19%;
    bottom: 18.5%;
    width: 73%;
    max-width: 610px;
    height: auto;            /* ← 高さ固定を解除 */
    overflow: hidden;
    z-index: 3;
  }
}

/* --- 小さめPC / タブレット横（1024px〜1279px） --- */
@media (min-width: 1101px) and (max-width: 1500px) {
  .record_slider{
    position: absolute;
    left: 24%;
    bottom: 18.5%;
    width: 50%;
    max-width: 1000px;
    height: auto;            /* ← 高さ固定を解除 */
    overflow: hidden;
    z-index: 3;
  }
}
@media (min-width: 768px) and (max-width: 998px) {
  .record_slider{
    position: absolute;
    left: 21%;
    bottom: 16.5%;
    width: 50%;
    max-width: 1000px;
    min-width: 600px;
    height: auto;            /* ← 高さ固定を解除 */
    overflow: hidden;
    z-index: 3;
  }
}
@media (min-width: 936px) and (max-width: 990px){
  .record_slider{
    position: absolute;
    left: 16%;
    bottom: 16.5%;
    width: 50%;
    max-width: 1000px;
    min-width: 650px;
    height: auto;            /* ← 高さ固定を解除 */
    overflow: hidden;
    z-index: 3;
  }
}
@media (min-width: 885px) and (max-width: 935px){
  .record_slider{
    left: 13%;
    bottom: 16.5%;
    width: 50%;
  }
}
@media (min-width: 768px) and (max-width: 884px){
  .record_slider{
    left: 9%;
    bottom: 16.5%;
    width: 50%;
  }
}

/* === SP強制アニメ（視差軽減がONでもSPは動かす） ===================== */
@media (prefers-reduced-motion: reduce) and (max-width: 767.98px){
  .slide_track{
    animation: record-scroll var(--record-speed) linear infinite !important;
  }
}

/* === SPだけ高さを“確実に”与える（%依存を避ける） ======================= */
@media (max-width: 767.98px){
  /* 親の高さに依存しないように vw で決め打ち */
  .record_slider{
    height: 30vw !important;   /* 例: 画面幅の30%（好みで 24〜36vw に調整） */
    bottom: 12%;
  }
  .slide_img{
    height: 100% !important;
    width: auto;
  }
}

/* 価格 */
  .price {
    position: relative;
    background-color: #fff;
  }
.price h2{
    background-image: url('../img/price_bg.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 11% 3% 0 3%;
}
.price h3 {
    width: 94%;       /* タイトル横幅 */
    height: auto;
    display: block;
    margin: 0 auto 0 auto; 
    padding-left: 3%;
  }
  .price-title {
    width: 92%;       /* タイトル横幅 */
    max-width: 500px; /* 最大幅 */
    height: auto;
    display: block;
    margin: 0 auto 20px auto; 
  }
  
  .standard_area {
    width: 100%;
  }

  .standard_area img{
    padding-left: 1%;
  }

  .virus {
    width: 100%;            /* 親コンテナ幅 */
    text-align: center;     /* 画像を中央寄せ */
    margin: 3% 0 7% 0;
    padding-left: 1%;
  }
  
  .virus img {
    width: 94%;             /* 画面幅に応じてサイズ調整 */
    height: auto;           /* 縦横比維持 */
    display: inline-block;  /* 中央寄せ対応 */
  }

  @media only screen and (min-width: 768px) {
    .price {
      padding-bottom: 0%; 
      margin-bottom: -7%;
    }
    .price h2{
      background-image: url('../img/price_bg_pc.jpg');
      background-size: cover;
      background-position: center top;
      background-repeat: no-repeat;
      padding: 8% 3% 0 3%;
  }
  .price h3 {
      width: 75%;       /* タイトル横幅 */
      height: auto;
      display: block;
      margin: 0 auto 30px auto; 
      padding-left: 0%;
      max-width: 1100px;
      min-width: 770px;
    }
    .price-title {
      width: 80%;       /* タイトル横幅 */
      max-width: 700px; /* 最大幅 */
      height: auto;
      display: block;
      margin: 0 auto 40px auto; 
    }
    
    .standard_area {
      width: 100%;
    }
  
    .standard_area img{
      padding-left: 1%;
    }
  
    .virus {
      width: 100%;            /* 親コンテナ幅 */
      text-align: center;     /* 画像を中央寄せ */
      margin: 7% 0 -2% 0;
      padding-left: 0%;
    }
    
    .virus img {
      width: 75%;             /* 画面幅に応じてサイズ調整 */
      height: auto;           /* 縦横比維持 */
      display: inline-block; 
      max-width: 1100px;
      min-width: 770px; 
    }
  }


/* 理由 */
.reason {
    background-color: #0046dc; /* 背景色 */
    text-align: center;        /* 中央寄せ */
  }
  
  /* タイトル画像の余白調整 */
  .reason h2 {
    padding-top: 11%;    /* 上余白 */
    margin-bottom: 3%; /* 下余白 */
  }
  
  .reason h2 img {
    width: 88%;       /* タイトル幅 */
    max-width: 550px;
    height: auto;
    display: block;
    margin: 0 auto;   /* 中央寄せ */
  }
  
  /* 下の画像の余白調整 */
  .reason h3 {
    margin-top: 5%;    /* タイトルとの間隔 */
    padding-bottom: 8%; /* 下余白 */
  }
  
  .reason h3 img {
    width: 94%;       /* 画像幅 */
    max-width: 94%;   /* 最大幅も % 指定 */
    height: auto;
    display: block;
    margin: 0 auto;   /* 中央寄せ */
    margin-top: 9%;
    padding-left: 2%;
  }
  @media only screen and (min-width: 768px){
    /* タイトル画像の余白調整 */
    .reason h2 {
      padding-top: 5%;    /* 上余白 */
      margin-bottom: -5%; /* 下余白 */
    }
    
    .reason h2 img {
      width: 75%;       /* タイトル幅 */
      max-width: 550px;
      min-width: 300px;
      height: auto;
      display: block;
      margin: 0 auto;   /* 中央寄せ */
    }
    
    /* 下の画像の余白調整 */
    .reason h3 {
      margin-top: 5%;    /* タイトルとの間隔 */
      padding-bottom: 5%; /* 下余白 */
    }
    
    .reason h3 img {
      width: 70%;       /* 画像幅 */
      height: auto;
      display: block;
      margin: 0 auto;   /* 中央寄せ */
      margin-top: 7%;
      padding-left: 0%;
      max-width: 1050px;
      min-width: 770px; 
    }
  }

/* 募集 */
.cooperate img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

/* PC用の画像だけ 768〜1279px のとき拡大 */
@media (min-width: 768px) {
  .cooperate .pc {
    width: 60% !important;   /* 横幅を画面より大きく */
    max-width: 1050px;
    min-width: 700px;
    margin: 0 auto;
    padding: 2% 0 2% 0;
  }
}

/* 比較 */
.cost {
    background-color: #e5f2ff;
    text-align: center;        /* タイトル・画像中央寄せ */
  }
  
  /* タイトル画像の余白 */
  .cost h2 {
    padding: 14% 0 0 0;
    background-image: url('../img/cost_bg.jpg'); /* 背景画像 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  
  .cost h2 img {
    width: 62%;
    height: auto;
    display: block;
    margin: 0 auto;
  }
  
  /* 下の画像の余白 */
  .cost h3 {
    margin-top: 5%;
    padding-bottom: 7%;
  }
  
  .cost h3 img {
    width: 94%;
    height: auto;
    display: block;
    margin: 0 auto;
  }
  @media only screen and (min-width: 768px){
    .cost h2 {
      padding: 7% 0 0 0;
      background-image: url('../img/cost_bg_pc.jpg'); /* 背景画像 */
      background-size: cover;
      background-position: center top;
      background-repeat: no-repeat;
    }
    
    .cost h2 img {
      width: 62%;
      height: auto;
      display: block;
      margin: 0 auto;
      max-width: 840px;
      min-width: 770px; 
    }
    
    /* 下の画像の余白 */
    .cost h3 {
      margin-top: 2%;
      padding-bottom: 4%;
    }
    
    .cost h3 img {
      width: 70%;
      height: auto;
      display: block;
      margin: 0 auto;
      max-width: 1050px;
      min-width: 770px; 
    }
  }

/* 注意 */
  .caution {
    background-image: url('../img/caution_bg.jpg'); /* 背景画像 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    text-align: center;        /* タイトル・画像中央寄せ */
}

/* タイトル画像の余白 */
.caution h2 {
    padding-top: 9%;
    padding: 9% 0 0 0;
}

.caution h2 img {
    width: 90%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* 下の画像の余白 */
.caution h3 {
    margin-top: 5%;
    padding-bottom: 10%;
}

.caution h3 img {
    width: 90%;
    height: auto;
    display: block;
    margin: 0 auto;
}
@media only screen and (min-width: 768px){
  .caution {
    background-image: url('../img/caution_bg_pc.jpg'); /* 背景画像 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    text-align: center;        /* タイトル・画像中央寄せ */
}

/* タイトル画像の余白 */
.caution h2 {
    padding: 5% 0 0 0;
}

.caution h2 img {
    width: 85%;
    height: auto;
    display: block;
    margin: 0 auto;
    max-width: 1200px;
    min-width: 770px;
}

/* 下の画像の余白 */
.caution h3 {
    margin-top: 3%;
    padding-bottom: 5%;
}

.caution h3 img {
    width: 70%;
    height: auto;
    display: block;
    margin: 0 auto;
    max-width: 1050px;
    min-width: 770px;
}
}

/* 安心 */
.trust {
    background-image: url('../img/trust_bg.jpg'); /* 背景画像 */
    background-size: cover;
    background-repeat: no-repeat;
    text-align: center;        /* タイトル・画像中央寄せ */
    background-color: #fff5b0;
}

/* タイトル画像の余白 */
.trust h2 {
    padding-top: 5%;
    padding-bottom: 0%;
}

.trust h2 img {
    width: 74%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* 下の画像の余白 */
.trust h3 {
    margin-top: 1%;
    padding-bottom: 6%;
}

.trust h3 img {
    width: 97%;
    height: auto;
    display: block;
    margin: 0 auto;
    padding-left: 3%;
}
@media only screen and (min-width: 768px){
  .trust {
    background: url("../img/trust_bg_pc.jpg") center / cover no-repeat #fff5b0;
  text-align: center;
  background-position: 58% center; /* ← 中央(50%)より少し左に */
}

/* タイトル画像の余白 */
.trust h2 {
    padding-top: 4%;
    padding-bottom: 0%;
}

.trust h2 img {
    width: 50%;
    height: auto;
    display: block;
    margin: 0 auto;
    max-width: 750px;
    min-width: 570px;
}

/* 下の画像の余白 */
.trust h3 {
    margin-top: 1%;
    padding-bottom: 0%;
}

.trust h3 img {
    width: 52%;
    height: auto;
    display: block;
    margin: 0 auto;
    padding-left: 1%;
    max-width: 1050px;
    min-width: 770px;
}
}

@media (min-width: 1100px) and (max-width: 1450px){
  .trust {
    background: url("../img/trust_bg_pc.jpg") center / cover no-repeat #fff5b0;
  text-align: center;
  background-position: 54% center; /* ← 中央(50%)より少し左に */
}
}
@media (min-width: 1101px) and (max-width: 1150px){
  .trust {
    background: url("../img/trust_bg_pc.jpg") center / cover no-repeat #fff5b0;
  text-align: center;
  background-position: 52% center; /* ← 中央(50%)より少し左に */
}
}
@media (min-width: 768px) and (max-width: 1100px){
  .trust {
    background: url("../img/trust_bg_pc.jpg") center / cover no-repeat #fff5b0;
  text-align: center;
  background-position: center; /* ← 中央(50%)より少し左に */
}
}

/* 流れ */
.flow {
    font-family: 'Source Han Sans JP', '源ノ角ゴシック', sans-serif;
    background-color: #c1e0ff;
    padding: 5%; /* 上下10%、左右5% */
    text-align: center;
  }
  
  .flow img.title {
    width: 70%;
    margin: 0 auto;
    margin-bottom: 6%;
    margin-top: 10%;
  }
  
  .flow-container {
    display: flex;
    flex-direction: column;
    gap: 5%; /* ボックス間の余白 */
    max-width: 100%;
    margin: 0 auto;
  }
  
  .flow-item {
    background: #fff;
    border-radius: 2%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    padding: 4% 5% 7% 5%; /* 上余白は5%でOK */
    text-align: left;
    margin-bottom: 5%;
    position: relative; /* 番号の絶対配置用 */
  }
  
  .flow-header {
    display: flex;
    align-items: center;
    gap: 3%;
    margin-bottom: 3%;
    justify-content: flex-start; /* 左揃え */
    position: relative;
  }
  
  .flow-number {
    width: 13%;
    max-height: 80px;
    position: absolute; /* ボックスから飛び出す */
    top: -67%;          /* ボックス上に浮かせる */
    left: 0;            /* 左揃え */
  }
  
  .flow-number img {
    width: 100%;
    height: auto;
    display: block;
  }
  
  .flow-title {
    font-size: 5.8vw;
    color: #0046dc;
    font-weight: bold;
    margin-left: 16%; /* 番号画像の幅+少しの余白を空ける */
  }
  /* 画像 */
  .flow-item img {
    width: 97%;
    height: auto;
    margin: 0 auto 3%;
    display: block;
    margin-top: 4%;
    margin-bottom: 4%;
  }
  
  /* 説明文 */
  .flow-text {
    font-size: 4vw;
    line-height: 1.6;
    text-align: left !important;
    font-weight: 600;
  }
  
  .highlight {
    background: linear-gradient(transparent 60%, #ffe32a 60%);
    padding: 0 0.3%;
  }

/* ===== PC(>=768px) は横4列・高さ揃え・番号はボックス内に ===== */
@media (min-width: 768px) {

  /* 横並びは grid が安定 */
  .flow-container{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    align-items: stretch;               /* 高さそろえ */
  }
  .flow img.title {
    width: 28%;
    margin-bottom: 5%;
    margin-top: 3%;
    max-width: 700px;
    min-width: 500px;
  }

  .flow-item{
    margin: 0;                          /* SPの余白をリセット */
    height: 100%;                       /* 伸ばす */
    box-sizing: border-box;
    padding: 14px 20px 28px;
  }
  .flow-title {
    font-size: 2vw;
    color: #0046dc;
    font-weight: bold;
    margin-left: 16%; /* 番号画像の幅+少しの余白を空ける */
    line-height: 1.3;
  }
  .flow-text {
    font-size: 1.1vw;
    line-height: 1.6;
    text-align: left !important;
    font-weight: 600;
  }


  .flow-number{
    position: static !important;        /* ← ここがポイント */
    top: -67%;
    left: auto;
    width: 56px;                        /* お好みで */
    max-height: none;
  }

  .flow-header{
    position: static;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
  }

  /* タイトルの左マージン（SPで番号分あけてたやつ）を戻す */
  .flow-title{
    margin-left: 0;
  }

  /* 画像はカード幅にフィット */
  .flow-item img{
    width: 100%;
    height: auto;
    display: block;
    margin: -px 0 12px;
  }
}

/* ===== PC(>=768px) は横4列・高さ揃え・番号はボックス内に ===== */
@media (min-width: 768px) {
  .flow{
    padding: 3% 0 5% 0;
  }

  /* 横並びは grid が安定 */
  .flow-container{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    align-items: stretch; /* 高さそろえ */
    width: 80%;
    max-width: 1400px;
    min-width: 700px;
  }

  .flow img.title {
    width: 28%;
    margin: 0 auto;
    margin-bottom: 4%;
    margin-top: 3%;
    max-width: 700px;
    min-width: 320px;
  }

  .flow-item{
    margin: 0;
    height: 100%;
    box-sizing: border-box;
    padding: 28px 20px 35px;
  }

  .flow-title {
    font-size: 1.5vw;
    color: #0046dc;
    font-weight: bold;
    margin-left: 10px;
    line-height: 1.3;
  }

  .flow-text {
    font-size: 0.9vw;
    line-height: 1.6;
    font-weight: 600;
    text-align: justify !important;
  }

  .flow-number{
    position: static !important;
    top: auto;
    left: auto;
    width: 56px;
    max-height: none;
  }

  .flow-header{
    position: static;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
  }

  .flow-item img{
    width: 100%;
    height: auto;
    display: block;
    margin: 0 0 12px;
  }
}

/* --- 追加: 1620px 以下は文字を少し小さく --- */
@media (max-width: 1620px) and (min-width: 1025px) {
  .flow-title {
    font-size: 1.6vw;   /* ← 2vw より小さめ */
  }
  .flow-text {
    font-size: 1vw;  /* ← 1.1vw より小さめ */
  }
}

/* --- 追加: タブレット（1024px 以下）はさらに小さく --- */
@media (max-width: 870px) and (min-width: 768px) {
  .flow-title {
    font-size: 20px !important; 
    margin-left: -2%;
  }
  .flow-text {
    font-size: 14px;
  }
  .flow-number img{
    width: 85%;
  }
  .flow-item{
    margin: 0;
    height: 100%;
    box-sizing: border-box;
    padding: 14px 12px 25px;
  }
}
@media (max-width: 1024px) and (min-width: 869px) {
  .flow-title {
    font-size: 17px; 
    margin-left: -4%;
  }
  .flow-text {
    font-size: 14px;
  }
  .flow-number img{
    width: 75%;
  }
  .flow-item{
    margin: 0;
    height: 100%;
    box-sizing: border-box;
    padding: 14px 12px 25px;
  }
}
/* --- タブレット〜小さめPC (768px〜1210px)：2列×2行 --- */
@media (min-width: 768px) and (max-width: 1300px) {
  .flow-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2列 */
    gap: 20px;  /* 余白は好みで */
    width: 90%; /* 少し広めに */
    max-width: 1000px;
    margin: 0 auto;
  }

  .flow-item {
    padding: 20px 20px 28px; /* 少しコンパクトに */
  }

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

  .flow-text {
    font-size: 14px;
  }

  .flow-number {
    width: 48px; /* 番号画像少し小さめ */
    margin-left: 2%;
  }
  .flow-title br.pc {
    display: none !important;
  }
  .flow-header{
    margin-bottom: 0%;
  }
}

/* エリア */
.area {
    background-color: #fff;
    text-align: center; /* タイトル・画像中央寄せ */
  }
  
  /* タイトル画像の余白 */
  .area h2 {
    background-image: url('../img/area_bg.jpg'); /* 背景画像 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding-top: 18%;
    padding-bottom: 0%;
  }
  
  .area h2 img {
    width: 62%;
    height: auto;
    display: block;
    margin: 0 auto;
  }
  
  /* 下の画像の余白 */
  .area h3 {
    margin-top: 5%;
    padding-bottom: 10%;
  }
  
  .area h3 img {
    width: 90%;
    height: auto;
    display: block;
    margin: 0 auto;
  }
  @media (min-width: 768px){
    .area {
      background-color: #fff;
      text-align: center; /* タイトル・画像中央寄せ */
    }
    
    /* タイトル画像の余白 */
    .area h2 {
      background-image: url('../img/area_bg_pc.jpg'); /* 背景画像 */
      background-size: cover;
      background-position: top center;
      background-repeat: no-repeat;
      padding-top: 8%;
      padding-bottom: 0%;
    }
    
    .area h2 img {
      width: 44%;
      height: auto;
      display: block;
      margin: 0 auto;
      max-width: 550px;
      min-width: 430px;
    }
    
    /* 下の画像の余白 */
    .area h3 {
      margin-top: 1%;
      padding-bottom: 4%;
    }
    
    .area h3 img {
      width: 48%;
      height: auto;
      display: block;
      margin: 0 auto;
      max-width: 900px;
      min-width: 600px;
    }
  }


 /* 口コミ */
 .voice {
    background-color: #b4d9fe;
    text-align: center;        /* タイトル・画像中央寄せ */
    padding-bottom: 6%;
}

/* タイトル画像の余白 */
.voice h2 {
    padding: 14% 0 0 0;
}

.voice h2 img {
    width: 104%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* 基本色や寸法はここで調整 */
:root{
    --blue: #0b56d9;
    --blue-light: #e7f1ff;
    --card-w: 360px;
    --radius: 16px;
    --shadow: 0 6px 18px rgba(0,0,0,.12);
    --text: #0a0a0a;
    --muted: #666;
  }
  /* カード全体：外側余白を少し広く、飛び出しOKに */
  .voice-card{
    width: min(calc(100% - 10vw), var(--card-w));  /* 左右5vwずつ引く */
    margin: 32px auto;                 /* ← 余白を広げた */
    background: linear-gradient(#cfe9ff,#bfe0ff);
    border: 4px solid var(--blue);
    border-radius: calc(var(--radius) + 4px);
    box-shadow: var(--shadow);
    overflow: visible;                  /* ← アイコンを枠外に出す */
    font-family: system-ui, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    color: var(--text);
    margin-bottom: -2%;
  }
.voice02{
        margin-bottom: 4%;
}
 /* PCのとき（画面幅768px以上）だけ広げる */
@media (min-width: 768px){
    .voice-card{
      width: min(100%, 585px); /* ← 好きな値に調整 */
    }
  } 
  /* ヘッダー（青帯） */
  .voice-head{
    position: relative;
    display: grid;
    grid-template-columns: 88px 1fr;
    align-items: center;
    gap: 4px;
    padding: 18px 16px 14px 16px;      /* 少しだけ上余白を詰め気味に */
    background: var(--blue);
    color: #fff;
    border-top-left-radius: var(--radius);
    border-top-right-radius: var(--radius);
    overflow: visible;                  /* 念のため */
  }
  
  /* アイコン＋名前（縦積み） */
  .voice-user{
    position: relative;
    display:flex;
    flex-direction: column;
    align-items:center;
    gap:6px;
    width: 88px;
    z-index: 1;
  }
  
  /* アイコンを上に“せり出し”＋ドロップシャドウ */
  .voice-avatar{
    position: absolute;
    left: 50%;
    top: -29px;                         /* ← カード外に出す量 */
    transform: translateX(-50%);
    width: 65px; height: 65px;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,.18));
  }
  .voice-avatar img{
    width:100%; height:100%;
    border-radius:50%;
    object-fit: cover; 
  }
  
  /* 名前はアイコン下に */
  .voice-name{
    display:block;
    font-size:.9rem; line-height:1;
    margin-top: 40px;                   /* せり出した分だけ下げる */
  }
  
  /* タイトル */
  .voice-title{
    margin:0;
    font-size:1.1rem; font-weight:700; line-height:1.35;
    text-align:left;
  }
  
  /* 本体（白エリア） */
  .voice-body{
    background:#fff;
    padding: 14px 14px 18px;
    border-bottom-left-radius: var(--radius);
    border-bottom-right-radius: var(--radius);
  }
  
  /* 写真：角丸＆枠線を外す */
  .voice-photo{
    margin:0 0 12px;
    border-radius: 0;                   /* ← 角丸なし */
    overflow: visible;
    background:#f2f2f2;
    border: none;                       /* ← 枠線なし */
  }
  .voice-photo img{display:block; width:100%; height:auto;}
  
  /* テキストラッパ：表示範囲をやや狭く */
  .voice-text-wrap{
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    background: #fff;
    transition: max-height 0.6s ease;
    max-height: 115px;                  /* ← 280px → 180px に */
  }
  
  /* 本文テキスト */
  .voice-text{
    margin: 0;
    color: #000;
    font-size: .98rem;
    line-height: 1.5;
    padding: 0 2px 6px;
    text-align: left;
    font-weight: 400;
  }
  
  /* 下部の白グラデ（閉じている時のみ） */
  .voice-text-wrap::after{
    content: "";
    position: absolute; left: 0; right: 0; bottom: 0;
    height: 72px;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 70%);
    pointer-events: none;
    transition: opacity .25s ease;
  }
  
  /* 開いた状態 */
  .voice-text-wrap.open{
    max-height: 2000px;
  }
  .voice-text-wrap.open::after{
    opacity: 0;
  }
  
  /* 続きを見るボタン */
  .voice-more{
    display: block;
    width: 60%;              /* ← 横幅を狭めた（例: 86% → 72%） */
    margin: 12px auto 0;
    text-align: center;
    padding: 10px 12px;
    background: var(--blue);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    border-radius: 10px;
    border: none;            /* ← 境界線を完全に消す */
    transition: transform .05s ease, filter .2s ease;
  }
  .voice-more:hover{ filter: brightness(1.05); }
  .voice-more:active{ transform: translateY(1px); }
  
  /* フォーカス */
  .voice-more:focus-visible{
    outline: 3px solid var(--blue-light);
    outline-offset: 2px;
  }
  
  .sp-br{display:none;}
  @media (max-width:420px){
    .voice-title{font-size:1.3rem;}
    .sp-br{display:inline;}
  }
  @media (min-width: 768px){
    .voice-title{
        margin:0;
        font-size:1.3rem; font-weight:700; line-height:1.35;
        text-align:left;
      }
  }

/* ===== PC(>=1024px) のみ 口コミを横2列に ===== */
@media (min-width: 1024px) {
  .voice h2 {
    padding: 6% 0 0 0;
}
.voice-text{
  margin: 0;
  color: #000;
  font-size: 1rem;
  line-height: 1.5;
  padding: 0 2px 6px;
  text-align: left;
  font-weight: 400;
}
.voice-head{
  position: relative;
  gap: 4px;
  padding: 12px 16px 14px 16px; 
}

.voice h2 img {
    width: 90%;
    height: auto;
    display: block;
    margin: 0 auto;
    margin-bottom: 3%;
    max-width: 1200px;
    min-width: 770px;
}
  .voice{
    background-color: #b4d9fe;  /* 背景色 */
    padding-bottom: 0%;
  }
  .voice-box{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2列 */
    gap: 18px;                        /* カード間余白 */
    align-items: start;
    width: 80%;         /* コンテンツ最大幅 */
    max-width: 1070px;
    margin-inline: auto;              /* 中央寄せ */
    padding-bottom: 5%;               /* 既存の余白は維持 */
  }

  /* 見出しは2列ぶち抜きで上に配置 */
  .voice > h2{
    grid-column: 1 / -1;
    margin-bottom: 8px;               /* 任意：見出し下の余白調整 */
  }

  /* カードはグリッドに任せるので固定幅/外側余白は無効化 */
  .voice-card{
    width: auto !important;
    margin: 0 !important;
  }
  .voice-more{
    display: block;
    width: 40%;              /* ← 横幅を狭めた（例: 86% → 72%） */
    margin: 12px auto 0;
    text-align: center;
    padding: 10px 12px;
    background: var(--blue);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    border-radius: 10px;
  }
  .voice-text-wrap{
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    background: #fff;
    transition: max-height 0.6s ease;
    max-height: 37px;                  /* ← 280px → 180px に */
  }

/* aspect-ratio 非対応ブラウザのフォールバック（任意） */
@supports not (aspect-ratio: 1 / 1){
  .voice-card .voice-photo{
    height: clamp(180px, 22vw, 300px); /* 画面幅に応じて可変＋上限 */
  }
}

/* ===== PC(>=1024px)：白グラの隠し高さを低く ===== */
.voice-card .voice-text-wrap{
  max-height: 52px;        /* 例：~2行程度。好みで 36〜60px で微調整 */
}

/* 白グラの高さも低くして“被り”を控えめに */
.voice-card .voice-text-wrap::after{
  height: 28px;            /* 例：元72px→28px に縮小。好みで 20〜36px 程度 */
}
}

/* もし 768–1023px（タブレット横など）でも横2列にしたければこちらも追加 */
@media (min-width: 768px) and (max-width: 1023.98px){
  .voice h2 {
    padding: 6% 0 0 0;
}
  .voice-box{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    align-items: start;
    width: min(1100px, 91vw);
    margin-inline: auto;
    margin-top: 3%;
  }
  .voice > h2{ grid-column: 1 / -1; }
  .voice-card{ width: auto !important; margin: 0 !important; }
}
/* ===== PC(>=1024px) ===== */
@media (min-width: 1024px){

  /* 閉じているときの初期高さ（低めに） */
  .voice-card .voice-text-wrap{
    max-height: 95px;       /* 好みで調整 */
  }

  /* ← open時は必ずこちらを勝たせる */
  .voice-card .voice-text-wrap.open{
    max-height: 2000px;     /* 充分に大きければOK */
  }

  /* グラデーションも消す（または高さ0） */
  .voice-card .voice-text-wrap.open::after{
    opacity: 0;
    height: 0;
  }
}

/*QA*/
.QA_ttl{
	width: 30%;
  min-width: 300px;
  max-width: 400px;
	margin: 0 auto;
	margin-bottom: 3%;
}
.qa-area{
  background-color: #fff;
  padding: 5% 0 8% 0;
}
@media (min-width: 768px){
    .QA_ttl{
        width: 31%;
      min-width: 300px;
      max-width: 450px;
        margin: 0 auto;
        margin-bottom: 3%;
    }
    .qa-area{
        background-color: #fff;
        padding: 5% 0 4% 0;
      }
}
.accordion-menu dt {
  background: #0046dc;
  padding: 1.2rem 1.2rem 1.2rem 4rem;  /* ← 左に余白追加してQのスペース確保 */
  color: #fff;
  border-radius: 10px;
  margin-top: 1.5%;
  margin-bottom: 5px;
  position: relative;
  font-weight: bold;
  font-size: 1.4rem;
  cursor: pointer;
}

/* ← Qの装飾をAと揃えるためにabsoluteに変更 */
.accordion-menu dt::before {
  content: 'Q';
  position: absolute;
  font-size: 2.2rem;
  font-weight: bold;
  color: #fff;
  top: 49%;
  left: 1.5rem;
  transform: translateY(-50%);
}

.accordion-menu dt::after {
  content: '+';
  font-size: 3rem;
  font-weight: bold;
  color: #fff;
  position: absolute;
  right: 5%;
  top: 48%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
}

.accordion-menu dt.open::after {
  transform: translateY(-50%) rotate(45deg);
}

.accordion-menu dt:first-child {
border-top: none;
}
.accordion-menu dd {
display: none;
padding: 1rem;
border-radius: 10px;
color: #000;
margin-inline-start: 0px;
border: 2px solid #0046dc;
margin-bottom: 20px;
position: relative;
padding-left: 3.9rem;
font-weight: 600;
font-size: 1.1rem;
}
.accordion-menu dd::before{
position: absolute;
content: 'A';
font-size: 2.2rem;
padding-left: 3rem;
font-weight: bold;
margin-right: 5px;
vertical-align: middle;
color: #0046dc;
top: 0.6rem;
left: -1.6rem;
}
.qa-area dl{
width: 60%;
min-width: 730px;
max-width: 800px;
margin: 0 auto;
}

@media (max-width: 767px){
  .accordion-menu dd::before{
    position: absolute;
    content: 'A';
    font-size: 1.7rem;
    padding-left: 3rem;
    font-weight: bold;
    margin-right: 5px;
    vertical-align: middle;
    color: #0046dc;
    top: 0.9rem;
    left: -2.1rem;
    }
    .accordion-menu dd {
      display: none;
      padding: 1rem;
      border-radius: 10px;
      color: #000;
      margin-inline-start: 0px;
      border: 2px solid #0046dc;
      margin-bottom: 20px;
      position: relative;
      padding-left: 2.9rem;
      font-weight: 600;
      font-size: 1.1rem;
      }
  .QA_ttl{
    width: 66%;
    min-width: 100px;
    margin: 0 auto;
    margin-bottom: 5%;
    margin-top: 7%;
  }
  .qa-area dl {
    width: 90%;
    min-width: 300px;
    margin: 0 auto;
}
.accordion-menu dt::before {
  content: 'Q';
  position: absolute;
  font-size: 1.7rem;
  font-weight: bold;
  color: #fff;
  top: 36%;
  left: 1rem;
  transform: translateY(-50%);
}
.accordion-menu dt::after {
  content: '+';
  font-size: 2rem;
  font-weight: bold;
  color: #fff;
  position: absolute;
  right: 5%;
  top: 45%;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
}
.accordion-menu dt {
  background: #0046dc;
  padding: 0.8rem 1.2rem 0.8rem 3rem;  
  color: #fff;
  border-radius: 10px;
  margin-top: 2%;
  margin-bottom: 5px;
  position: relative;
  font-weight: bold;
  font-size: 1rem;
  cursor: pointer;
}
.accordion-menu dd {
  font-size: 1rem;
  }
}

/*フォームタイトル*/
.form_ttl{
	width: 26%;
  min-width: 230px;
  max-width: 400px;
	margin: 0 auto;
	margin-bottom: 0%;
    margin-top: 5%;
}
.form-area{
  background-color: #fff;
  padding: 4% 0 8% 0;
}
@media (min-width: 768px){
    .form_ttl{
        width: 31%;
      min-width: 300px;
      max-width: 500px;
        margin: 0 auto;
        margin-bottom: 3%;
        margin-top: 4%;
        padding-left: 5%;
    }
    .form-area{
        background-color: #fff;
        padding: 13% 0 8% 0;
      }
}

.form_ttl02{
	width: 32%;
  min-width: 275px;
  max-width: 400px;
	margin: 0 auto;
	margin-bottom: 0%;
    margin-top: 5%;
}

@media (min-width: 768px){
    .form_ttl02{
        width: 40%;
      min-width: 300px;
      max-width: 500px;
        margin: 0 auto;
        margin-bottom: 3%;
        margin-top: 10%;
    }
}

/* ▼ ネイティブUIを戻す対象だけ appearance を復活 */
select,
input[type="date"],
input[type="time"]{
  -webkit-appearance: auto; /* iOS/Chrome */
  appearance: auto;
}

/* ▼ アイコンが隠れないように右側に余白を確保 */
select,
input[type="date"],
input[type="time"]{
  padding-right: 2.2em;
}

/* ▼ Chrome系の date ピッカーアイコンを確実に表示 */
input[type="date"]::-webkit-calendar-picker-indicator{
  display: block;
  opacity: 1;
  cursor: pointer;
  background: transparent;
}

img.sp { display: block !important; }
img.pc { display: none !important; }

@media (min-width: 768px) {
  img.sp { display: none !important; }
  img.pc { display: block !important; }
  .icon img {
    display: block ;
  }
}

@media (min-width: 768px) {
  .icon{
    display: flex;
    align-items: center;
    gap: 6px;        /* ← 横の余白は gap に統一 */
    line-height: 0;  /* ← 行間をゼロにして余白カット */
    font-size: 0;    /* ← インライン隙間を完全に無効化 */
  }

  .icon a{
    display: inline-flex;
    align-items: center;
    font-size: 0;    /* ← 念のため */
  }

  .icon img{
    display: block;  /* ← 画像のベースライン隙間を消す */
    vertical-align: middle;
  }

  /* 旧ルールの margin-left を無効化 */
  .icon a:nth-child(2){
    margin-right: 0 !important;
  }
}

@media (min-width: 1700px){
    .header{
      width: 89%;
      padding-left: 12%;
      max-width: 1500px;
      padding-left: 14%;
    }
    .header2{
      width: 89%;
      padding-left: 12%;
      max-width: 1500px;
      padding-left: 14%;
    }
}