@charset "UTF-8";


html{
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    font-size: 62.5%;
}

body{
    color: #000;
    background:#fff;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    margin:0;
    padding:0;    
    margin:0;
    padding:0;
}


.container{
    margin: 0 auto;
    max-width: 1200px;
    padding: 0 15rem;
    position: relative;
}

.pcback{
    width: 100%;
    margin: 0 auto;
    position: relative;
    padding: 0;
    background: url(/assets/img/back_syugou.webp) center center no-repeat fixed;

    background-attachment: fixed;
}

.container2{
    margin: 0;
    max-width: 750px;
    padding: 0 2rem;
    position: relative;
}

.container2_grey{
    background-color:#f5f5f5;
    margin: 0 auto;
    max-width: 750px;
    padding: .5rem 1rem;
    position: relative;
}

.container2_pink{
    background-color: #FFF0F5;
    margin: 0;
    max-width: 750px;
    padding: 0 2rem;
    position: relative;
}
















.container5{
    margin: 0 auto;
    max-width: 1200px;
    padding: 0 1rem;
    position: relative;
}











.row{
    display: flex;
    flex-direction: column;
    padding: 0;
    width: 100%;
}
.col{
    display: block;
    flex: 1 1 auto;
    margin-left: 0;
    max-width: 100%;
    width: 100%;
}


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

.row{
    display: flex;
    flex-direction: row;
    padding: 0;
}
.col{
    margin-left: 4%;
}
	
.col:first-child{ 
    margin-left: 0; 
}

.row .col.span-1{
    flex: 0 0 4.66666666667%;
    max-width: 4.66666666667%;
}
.row .col.span-3{
    flex: 0 0 22%;
    max-width: 22%;
}
.row .col.span-4{
    flex: 0 0 30.6666666667%;
    max-width: 30.6666666667%;
    margin: 0 auto 1rem;    
}
.row .col.span-5{
    flex: 0 0 39.3333333333%;
    max-width: 39.3333333333%;
}
.row .col.span-6{
    flex: 0 0 48%;
    max-width: 48%;
}
.row .col.span-7{
    flex: 0 0 56.6666666667%;
    max-width: 56.6666666667%;
}
.row .col.span-8{
    flex: 0 0 65.3333333333%;
    max-width: 65.3333333333%;
}
.row .col.span-9{
    flex: 0 0 74.0%;
    max-width: 74.0%;
}
.row .col.span-12{
    flex: 0 0 100%;
    max-width: 100%;
}

}


 @media only screen and (min-width: 600px) and (max-width: 1024px){

.row{
    display: flex;
    flex-direction: row;
    padding: 0;
}
.col{
    margin-left: 4%;
}
	
.col:first-child{ 
    margin-left: 0; 
}

.row .col.span-1{
    flex: 0 0 4.66666666667%;
    max-width: 4.66666666667%;
}
.row .col.span-3{
    flex: 0 0 22%;
    max-width: 22%;
}
.row .col.span-4{
    flex: 0 0 30.6666666667%;
    max-width: 30.6666666667%;
    margin: 0 auto 1rem;    
}
.row .col.span-5{
    flex: 0 0 39.3333333333%;
    max-width: 39.3333333333%;
}
.row .col.span-6{
    flex: 0 0 48%;
    max-width: 48%;
}
.row .col.span-7{
    flex: 0 0 56.6666666667%;
    max-width: 56.6666666667%;
}
.row .col.span-8{
    flex: 0 0 65.3333333333%;
    max-width: 65.3333333333%;
}
.row .col.span-9{
    flex: 0 0 74.0%;
    max-width: 74.0%;
}
.row .col.span-12{
    flex: 0 0 100%;
    max-width: 100%;
}

}



 @media screen and (min-width: 1024px){

.row{
    display: flex;
    flex-direction: row;
    padding: 0;
}
.col{
    margin-left: 4%;
}
	
.col:first-child{ 
    margin-left: 0; 
}

.row .col.span-1{
    flex: 0 0 4.66666666667%;
    max-width: 4.66666666667%;
}
.row .col.span-3{
    flex: 0 0 22%;
    max-width: 22%;
}
.row .col.span-4{
    flex: 0 0 30.6666666667%;
    max-width: 30.6666666667%;
    margin: 0 auto 1rem;    
}
.row .col.span-5{
    flex: 0 0 39.3333333333%;
    max-width: 39.3333333333%;
}
.row .col.span-6{
    flex: 0 0 48%;
    max-width: 48%;
}
.row .col.span-7{
    flex: 0 0 56.6666666667%;
    max-width: 56.6666666667%;
}
.row .col.span-8{
    flex: 0 0 65.3333333333%;
    max-width: 65.3333333333%;
}
.row .col.span-9{
    flex: 0 0 74.0%;
    max-width: 74.0%;
}

.row .col.span-12{
    flex: 0 0 100%;
    max-width: 100%;
}

}






h1,h2,h3,h4,h5,h6{
  margin-top: 0;
  margin-bottom: 2rem;
  font-weight: 300;
  letter-spacing: 0.1em;}
h1{ font-size: 3.5rem; line-height: 1.2;  letter-spacing: -.1rem;}
h2{ font-size: 3.2rem; line-height: 1.25; letter-spacing: -.1rem; }
h3{ font-size: 3.0rem; line-height: 1.3;  letter-spacing: -.1rem; }
h4{ font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; }
h5{ font-size: 1.8rem; line-height: 1.5;  letter-spacing: -.05rem; }
h6{ font-size: 1.5rem; line-height: 1.6;  letter-spacing: 0; }


@media (min-width: 550px){
  h1{ font-size: 3.5rem; }
  h2{ font-size: 3.2rem; }
  h3{ font-size: 3.0rem; }
  h4{ font-size: 2.8rem; }
  h5{ font-size: 2.4rem; }
  h6{ font-size: 1.5rem; }
}

p{
  margin-top: 0; }



a{    
  color: #1EAEDB; }
a:hover{
  color: #0FA0CE; }



.button,button,input[type="submit"],input[type="reset"],input[type="button"]{
  display: inline-block;
  height: 38px;
  padding: 0 30px;
  margin-right: 5px;
  color: #555;
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  line-height: 38px;
  letter-spacing: .1rem;
  text-transform: none;
  text-decoration: none;
  white-space: nowrap;
  background-color: transparent;
  border: 1px solid #bbb;
  border-radius: 0;
  cursor: pointer;
  box-sizing: border-box; }
.button:hover,button:hover,input[type="submit"]:hover,input[type="reset"]:hover,input[type="button"]:hover,.button:focus,button:focus,input[type="submit"]:focus,input[type="reset"]:focus,input[type="button"]:focus{
  color: #333;
  border-color: #888;
  outline: 0; }


ul{
  list-style: circle inside; }
ol{
  list-style: decimal inside; }
ol,ul{
  padding-left: 0;
  margin-top: 0; }
ul ul,ul ol,ol ol,ol ul{
  margin: 1.5rem 0 1.5rem 3rem;
  font-size: 90%; }
li{
  margin-bottom: 1rem; }



code{
  padding: .2rem .5rem;
  margin: 0 .2rem;
  white-space: nowrap;
  background: #F1F1F1;
}
pre > code{
  display: block;
  padding: 1rem 1.5rem;
  white-space: pre; 
}







button,.button{
  margin-bottom: 1rem; }
input,textarea,select,fieldset{
  margin-bottom: 1.5rem; }
pre,blockquote,dl,figure,table,p,ul,ol{
  margin-bottom: 2.5rem; 
}


hr{
  margin-top: 3rem;
  margin-bottom: 3.5rem;
  border-width: 0;
  border-top: 1px solid #E1E1E1; 
}


input[type="email"],input[type="number"],input[type="search"],input[type="text"],input[type="tel"],input[type="url"],input[type="password"],textarea,select{
  height: 38px;
  padding: 6px 10px; 
  background-color: #fff;
  border: 1px solid #D1D1D1;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box; }

input[type="email"],input[type="number"],input[type="search"],input[type="text"],input[type="tel"],input[type="url"],input[type="password"],textarea{
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
textarea{
  min-height: 100px;
  padding-top: 6px;
  padding-bottom: 6px; }
input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="text"]:focus,input[type="tel"]:focus,input[type="url"]:focus,input[type="password"]:focus,textarea:focus,select:focus{
  border: 1px solid #666;
  outline: 0; }
label,legend{
  display: block;
  margin-bottom: .5rem;
  font-weight: 600; }
fieldset{
  padding: 0;
  border-width: 0; }
input[type="checkbox"],input[type="radio"]{
  display: inline; }





 @media screen and (min-width: 1024px){

table{
	border-collapse: collapse; }
th,td{
  padding: 12px 15px;
  text-align: left;
  border-bottom: 1px solid #E1E1E1; }
th:first-child,td:first-child{
  padding-left: 0; }
th:last-child,td:last-child{
  padding-right: 0; }
  
}

@media only screen and (max-width: 748px){
table th,table td{
  width: 100%;
  display: block;
  text-align: left;
  margin: 0;
}
}

img{
	max-width:100%;
	height: auto; 
}
a{    
    color: #333;
    text-decoration-line: none;
}
a:hover{ 
    color: #999;
}
a img:hover{
	opacity: 0.8;
}
.blueback{
	background-color: #003399;
	color: #fff;
	padding: 1rem;
}






.menu {  
  position: fixed;      
  width: 100%; 
  top: 0;
  left: 0;
  z-index: 1000;        

  /* 背景をグラデ＋透明感 */
  background: linear-gradient(90deg, #003399 0%, #0048cc 100%);
  backdrop-filter: blur(4px);

  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;

  /* 軽くシャドウで浮かせる */
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

nav ul {       
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

nav li {
  flex: 0 1 auto;
  margin: 0;
}

nav li a {
  display: block;
  padding: 1.2rem 2rem;
  text-decoration: none;
  text-align: center;
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: all 0.3s ease;
  border-radius: 8px;
}

/* hover時のエフェクトを柔らかく */
nav li a:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  transform: translateY(-2px);
}

/* スクロール時に少し高さを圧縮する（optional） */
.menu.scrolled {
  padding: 0.2rem 0;
  background: rgba(0, 51, 153, 0.95);
  transition: all 0.3s ease;
}

/* ===============================
   大型縦書きサイドCTAボタン
=============================== */
.side-consult-big {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 900;
  font-size: 1.6rem;
  letter-spacing: 0.2em;
  color: #fff;
  background: linear-gradient(180deg, #007f5f 0%, #004b23 100%);
  text-decoration: none;
  padding: 40px 18px;
  border-radius: 12px 0 0 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
  opacity: 0;
  pointer-events: none;
  transition: all 0.5s ease;
  z-index: 9999;
}

/* 表示状態 */
.side-consult-big.visible {
  opacity: 1;
  pointer-events: auto;
}

/* ホバー時アクション */
.side-consult-big:hover {
  background: linear-gradient(180deg, #00a676 0%, #005c37 100%);
  box-shadow: 0 10px 28px rgba(0, 180, 100, 0.45);
  transform: translateY(-50%) scale(1.08);
}

/* スマホでは非表示 */
@media (max-width: 768px) {
  .side-consult-big {
    display: none;
  }
}




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



#navi{
    display: block !important;
}
}

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


nav ul{
	flex-direction: column;
}

nav li{
	padding-top: 0;
	border-bottom: 1px solid #ccc;
	margin-bottom: 0;
}





#navi{
    display: none;
}
}





main{
    margin:  0;
}






.news h2{
    color: #364e96;
    text-align: center; 
    font-size: 36px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.7;
    padding: 0.5em 0;
    border-top: solid 3px #364e96;
    border-bottom: solid 3px #364e96;
}
.news li{
    list-style-type: none;
	border-bottom: 1px solid #ccc;
	padding: 0.5rem 0;
}


.news3 h2{
    color: #364e96;
    text-align: center; 
    font-size: 24px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.7;
    padding: 0.1em 0;
    margin: 1rem 0 2rem;
    border-top: solid 3px #364e96;
    border-bottom: solid 3px #364e96;
}



.copyright{
    text-align: center;
    padding: 1rem 0;
    background-color: #f5f5f5;
}
.copyright a{
    color: #000;
    text-decoration: none;
    display: inline-block;
}



#pagetop{
    position: fixed;
    bottom: 15px;
    right: 15px;
}
#pagetop a{
    display: block;
    background: #003399;
    color: #fff;
    width: 50px;
    padding: 10px 5px;
    text-align: center;
}
#pagetop a:hover{
    background: #3366FF;
}


.breadcrumb{
    margin: 10rem 0 1em 0;
    padding: 0;	
}
.breadcrumb li{
    list-style-type: none;
}
.breadcrumb li a{
    display: inline-block;
    color: #959fa5;
}


@media screen and (max-width: 480px){
  
  .tiikibetsu{
  text-align: center;
  margin: 0 auto 3rem;  
}

 .tiikibetsu img{
  width: 100%;
}

}



 @media only screen and (min-width: 600px) and (max-width: 1024px){

 .tiikibetsu{
  text-align: center;  
}

 .tiikibetsu img{
  width: 100%;
}

}


 @media screen and (min-width: 1024px){

 .tiikibetsu{
  text-align: center;  
}

 .tiikibetsu img{
  width: 100%;
}

}



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

  .mainimg2{
  position: relative;
  text-align: center;    
}

 .mainimg2 img{
  width: 100%;
}

}


 @media only screen and (min-width: 600px) and (max-width: 1024px){
 .mainimg2{

  position: relative;
  text-align: center;
  margin: 7rem auto 5rem;
 }

}


 @media screen and (min-width: 1024px){

  .mainimg2{
  position: relative;
  text-align: center;
  margin: 0 auto 5rem;
 }

}





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

 

@media only screen and (max-width: 750px){
    .pc{ display: none !important; }
    .sp{ display: block !important; }
}





 



.gmap{
height: 0;
overflow: hidden;
padding-bottom: 56.25%;
position: relative;
}
.gmap iframe{
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}

.box17{
     margin: 0 0 5rem;
}

.box17 p{
  font-size: 22px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
  padding: 0;
  margin: 0; 
}

.menu-btn{
    position: fixed;
    top: 5px;
    right: 10px;
    display: flex;
    height: 50px;
    width: 50px;
    justify-content: center;
    align-items: center;
    z-index: 2002;   
}

.menu-btn span,.menu-btn span:before,.menu-btn span:after{
    content: '';
    display: block;
    height: 3px;
    width: 25px;
    border-radius: 3px;
    background-color: #000;
    position: absolute;
}

.menu-btn span:before{
    bottom: 8px;
}

.menu-btn span:after{
    top: 8px;
}

#menu-btn-check:checked ~ .menu-btn span{
    background-color: rgba(255, 255, 255, 0);
}

#menu-btn-check:checked ~ .menu-btn span::before{
    bottom: 0;
    transform: rotate(45deg);
}

#menu-btn-check:checked ~ .menu-btn span::after{
    top: 0;
    transform: rotate(-45deg);
}

.menu-content{
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99;
    background-color: rgba(53,132,187, 1);
}

.menu-content ul{
    padding: 70px 10px 0;
}

.menu-content ul .drawer-item{
  border-bottom: solid 1px #eeeeee;     
  list-style: none;
  text-align: center;
}

.menu-content ul .drawer-item a{
    display: block;
    width: 100%;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 1.5;
    box-sizing: border-box;
    color:#000000;
    text-decoration: none;
    padding: 9px 15px 10px 0;
    position: relative;
}

.menu-content{
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 100%;
    z-index: 80;
    background-color: #ffffff;
    transition: all 0.5s; 
}

#menu-btn-check:checked ~ .menu-content{
    left: 0%;
}


.menu-content ul .drawer-item2{
  background-color: #FFEF6C;
  border-top: solid 4px #00ffff;
  border-bottom: solid 4px #00ffff;     
  list-style: none;
  text-align: center;
}

.menu-content ul .drawer-item2 a{
    display: block;
    width: 100%;
    font-family: 'Noto Serif JP', serif;
    font-size: 20px;
    letter-spacing: 0.05em;
    line-height: 1.5;
    font-weight: bold;
    box-sizing: border-box;
    color:#000;    
    text-decoration: none;
    padding: 9px 15px 10px 0;
    position: relative;
}


.pagetop4{
   position: fixed;
   width: 100%;
   height: 50px;
   top: 0px;
   font-size: 0;
   z-index: 1001;
   background: #fff;
}



.pagetop4 ul{
   display: flex;
   list-style: none;
   padding:0;
   margin:0;
   width:100%;
}

.pagetop4 li{
   justify-content: center;
   align-items: center;
   width: 100%;
   padding:0;
   margin:0;  
   display:block;         
}

.pagetop4 .fm1{
  flex-basis: 100%;
  background: #fff;
  border-right: 2px solid #fff; 
}

.pagetop4 .fm1 img{
  width:100%;
  text-align: left;
}

.tkoumoku{
  margin: 2em auto 1em;
}

.tkoumoku img{
  position: relative;
  width: 100%;
}

.tkoumoku2{
  margin: 0 auto 3em;
}

.tkoumoku2 img{
  position: relative;
  width: 100%;  
}

.flexbox{
  display:flex;
  padding: 2em 0 0;  
}

.flexbox2{
  display:flex;  
}

.flexbox3{
  display:flex;
  padding: 0 0 1em;  
}

.e_tantei{
  margin: 2em 0;
}

.e_tantei img{
  width:100%;
  position: relative;
  margin: 0;    
}


.ask{
  margin: 0 1rem 3rem;
  padding: 1.2em 1em;
  background: url(/assets/img/ask_back.webp) center/cover no-repeat;
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,0.1); 
}


.ask::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  backdrop-filter: blur(3px);
  z-index: 0;
}


.ask_ttl{
  position: relative;
  z-index: 1;
  color: #fff;
  text-align: center;
}
.ask_ttl h2{
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 0.3em;
}
.ask_ttl p{
  font-size: 14px;
  opacity: 0.9;
  margin-bottom: 1.2em;
}


.ask_links{
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.9em;
  margin: 0 10px; 
}


.ask_btn{
  display: block;
  padding: 0.9em;
  border-radius: 12px;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  font-size: 1.15rem;
  text-align: center;
  box-shadow: 0 3px 8px rgba(0,0,0,0.18);
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.ask_btn:hover{
  transform: translateY(-2px);
  opacity: 0.9;
}

.ask_btn small{
  display: block;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.9);
  margin-top: 0.3em;
}


.ask_btn i{
  margin-right: 0.4em;
  font-size: 1.4em;
  vertical-align: middle;
  line-height: 1;
}
.ask_btn.line i{
  font-size: 1.6em;
  transform: translateY(-1px) scale(1.05); 
}


.tel{ background: linear-gradient(180deg,#d32f2f,#b71c1c); }
.mail{ background: linear-gradient(180deg,#42a5f5,#1976d2); }
.line{ background: linear-gradient(180deg,#43a047,#2e7d32); }


.inv_ttl{
 padding: 2em 0 0;
}

.inv_ttl img{
 width: 100%;
}

.ttl_center2{
 font-size: 20px;
 font-family: 'Noto Sans JP', sans-serif;
 letter-spacing: 0.1em;
 line-height: 1.7; 
 font-weight: bold;
 margin: 2rem 0 2rem;
 padding-bottom: 0.5em;
 text-align: center;
 position: relative;
}

.ttl_center2::before,.ttl_center2::after{
  content: '';
  position: absolute;
  margin:auto;
  left: 0;
  bottom: 0;
  width: 2em;
  background-color: #e3e3e3;
  height: 5px;
  right: 2em; 
}

.ttl_center2::before{ 
  background-color:#4c9ac0;
  left:2em;
  width:4em;
}

.fl_back{
 background-color: #FADBDA;
 padding: 1em 0;
}

.fl_cover{
 padding: 1em;
 background-image: url(/assets/img//koumoku.webp);
 background-size: cover; 
}

.k_flexbox{
  display:flex;  
}

.k_flexbox2{
  display:flex;  
}

.k_flexbox3{
  display:flex; 
}

.k_flexbox .tyousakoumoku{
  margin: 0 1em 1em 0;
}

.k_flexbox .tyousakoumoku img{
  width: 100%;
}

.k_flexbox .tyousakoumoku2 img{
  width: 100%;
}

.k_flexbox2 .tyousakoumoku{
  margin: 0 1em 1em 0;
}

.k_flexbox2 .tyousakoumoku img{
  width: 100%;
}

.k_flexbox2 .tyousakoumoku2 img{
  width: 100%;
}

.k_flexbox3 .tyousakoumoku{
  margin: 0 1em 0 0;  
}

.k_flexbox3 .tyousakoumoku img{
  width: 100%;
}

.k_flexbox3 .tyousakoumoku2 img{
  width: 100%;
}

.flexbox2{
  display:flex;
}

.flexbox2 .inv_koumoku{
  width: 100%;
  margin: 0 1em 1em 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1.5;   
}

.flexbox2 .inv_koumoku img{
  width: 100%;
}

.flexbox2 .inv_koumoku a{
  color: #000;
}

.flexbox2 .inv_koumoku2{
  width: 100%;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  letter-spacing: 0.05em;
  line-height: 1.5; 
}

.flexbox2 .inv_koumoku2 img{
  width: 100%;
}

.flexbox2 .inv_koumoku2 a{
  color: #000;
}

.message{
  margin: 0 0 2rem;
}

.message img{
  width:100%;
  position: relative;
}

.message p{
  font-size: 16px;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-weight: bold;
  margin: 0;    
}

.media{
 margin: 0;
 padding: 0;      
}


.media img{
  width:100%;
  position: relative;
}

@keyframes infinity-scroll-left{
from {
  transform: translateX(0);
}
  to {
  transform: translateX(-100%);
}
}
.scroll-infinity__wrap{
  display: flex;
  overflow: hidden;
}
.scroll-infinity__list{
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}
.scroll-infinity__list--left{
  animation: infinity-scroll-left 40s infinite linear 1s both;
}
.scroll-infinity__item{
  width: calc(640vw / 7.5);
  margin: 0;
}
.scroll-infinity__item>img{
  width: 100%;
  padding: 2px;
}














.zenkoku{
   background-color: #fff;
   text-align: center;
   margin: 0 0 2rem;
}

.zenkoku img{
   width: 80%;
   margin: 0 0 1rem;
}

.zenkoku p{
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
  padding: 0;
  margin: 0;
}

.zenkoku_galu{
  padding: 0;
  margin: 5rem 0 1rem; 
}

.zenkoku_g{
  position: relative;
  padding: 0;
  text-align: center;
  font-size: 20px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  font-weight: bold;
}

.zenkoku_g:before{
  position: absolute;
  bottom: -5px;
  left: calc(50% - 60px);
  width: 100px;
  height: 5px;
  content: '';
  border-radius: 3px;
  background: #87cefa;
}

.zenkoku_sp{
  padding: 0;
  margin: 5rem 0 3rem; 
}

.zenkoku_spttl{
  position: relative;
  padding: 0;
  text-align: center;
  font-size: 20px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.5;
  font-weight: bold;
}

.zenkoku_spttl:before{
  position: absolute;
  bottom: -5px;
  left: calc(50% - 60px);
  width: 100px;
  height: 5px;
  content: '';
  border-radius: 3px;
  background: #87cefa;
}

.tihou_sp{
  position: relative;
  padding: 0 65px;
  text-align: center;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  font-weight: bold;
  margin: 2rem 0 2rem;
}

.tihou_sp:before{
  position: absolute;
  top: calc(50% - 1px);
  left: 0;
  width: 100%;
  height: 2px;
  content: '';
  background: #000;
}

.tihou_sp span{
  position: relative;
  padding: 0 1em;
  background: #fff;
}

.tihou_ttl{
  position: relative;
  padding: 0 65px;
  text-align: center;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  font-weight: bold;
  margin: 2rem 0 1rem;
}

.tihou_ttl:before{
  position: absolute;
  top: calc(50% - 1px);
  left: 0;
  width: 100%;
  height: 2px;
  content: '';
  background: #000;
}

.tihou_ttl span{
  position: relative;
  padding: 0 1em;
  background: #fff;
}

.link_ttl{
 margin: 5rem 0 3rem;

}

.link_ttl img{
  width: 100%;
  padding: 5px;
  margin: 0 0 3px;
  background-color:#c2cca9;
}










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

.h_footer{  
  background-color: #f5f5f5;  
  text-align:center;
  margin: 0 0 3em;
}

.h_footer img{
  margin: 5px auto;
  width:80%;
}

.h_footer p{
 margin: 0.5em 0 1em;
 font-size: 14px;
 font-family: 'Noto Sans JP', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1.5;
 font-weight: bold;
}

.h_footer2{
    margin:1em 1.5em 0 1.5em;
    position: relative;
    padding: 0.5em 1.5em;
    border-top: solid 2px black;
    border-bottom: solid 2px black;
}

.h_footer2:before,.h_footer2:after{
    content: '';
    position: absolute;
    top: -10px;
    width: 2px;
    height: -webkit-calc(100% + 20px);
    height: calc(100% + 20px);
    background-color: black;
}

.h_footer2:before{left: 10px;}
.h_footer2:after{right: 10px;}

.h_footer2 p{
 margin: 0;
 font-size: 18px;
 font-family: 'Noto Sans JP', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1.5;
 font-weight: bold;
}

.h_footer2 .f_tel{
 margin: 0;
 font-size: 18px;
 font-family: 'Noto Sans JP', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1.5;
 font-weight: bold;
}

.h_footer2 .f_mail{
 margin: 0;
 font-size: 16px;
 font-family: 'Noto Sans JP', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1.5;
 font-weight: bold;
}

.h_footer .icon{
 margin-top: 1.5em;
 text-align:center;
}

.h_footer .icon p{
 font-size: 18px;
 font-family: 'Noto Sans JP', sans-serif;
 letter-spacing: 0.05em;
 line-height: 1.5;
 font-weight: bold;
}

.h_footer .icon .head-border{
    position: relative;
    display: inline-block;
    padding: 0 55px;
}

.h_footer .icon .head-border:before,.h_footer .icon .head-border:after{
    content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 50px;
    height: 1px;
    background-color: #666;
}

.h_footer .icon .head-border:before{
    left: 0;
}

.h_footer .icon .head-border:after{
    right: 0;
}

.h_footer .icon1{
 display: flex;
 margin: 0.5em 0; 
}

.h_footer .icon1 p{
 margin: 0 auto;
}

.h_footer .icon1 a{
 color: #00bfff
}

.footer04{
 color: #808080;
 text-align: center;
 padding: 5px;
}

.footer04 a{
 color: #808080;
 text-decoration: none;
}

.footer04 a:hover{
 text-decoration: underline;
}

.footer04 .f_menu{
 margin: 0;
 padding: 0;
 list-style: none;
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 font-size: 12px;
}

.footer04 .f_menu li{
 margin: 0;
 padding: 0 20px;
}

.footer04 .f_menu li:last-child{
 border: none;
}

.footer04 .copyright{
 margin: 0;
 padding: 20px 0 0 0;
}

}









.pagetop3 .fm1{
  flex-basis: 30.9%;
  background: #F36261;
  border-right: 2px solid #fff;
  font-size: 16px;
  color: #fff;  
  letter-spacing: 0.1em;
  line-height: 1.3;
  padding:10px 0 10px 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  line-height: 1.1;
}







.ttl_erabikata{
    text-align: center;
    margin: 0 0 3rem;
}

  



.heading-15{
    display: inline-block;
    position: relative;
    padding: .5em 1em;
    border-right: 27px solid #2589d0;
    background-color: #f5f5f5;
    color: #333333;
    font-size: 28px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.5em;
    line-height: 1.5;
}

.heading-15::before{
    position: absolute;
    bottom: 2px;
    right: -20px;
    z-index: -1;
    transform: rotate(5deg);
    width: 100%;
    height: 50%;
    background-color: #d0d0d0;
    content: "";
    filter: blur(4px);
}

.l_menu2{
    margin: 4rem 0 10rem;
}

.l_menu2 h2{
    font-size: 34px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.5em;
    line-height: 1.5;
    text-align: center;
    background-color: #003399;
    color: #fff;
    padding: 0.5rem;
    margin: 0 0 3rem;
}

.l_koumoku2{
    display:flex;
    text-align: center;  
}


.l_koumoku2 .l_img2{
    position: relative;
}

.l_koumoku2 .l_img2 img{
    width: 100%;
    padding: 0 3rem 0 3rem;
    margin: 3rem 0 1rem;
}

.l_koumoku2 .l_img2 p{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.5;   
} 



.l_koumoku2 .l_img3{
    flex: 1;
    position: relative;
    margin: 1rem;
    padding: 1rem;
    border: solid 3px #6091d3; 
}

.l_koumoku2 .l_img3 img{
    width: 100%;     
}

.l_koumoku2 .l_img3 p{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.5;   
} 

.jirei{
   margin: 3rem 0 10rem;
   text-align: center;
}

.jirei img{
    width: 80%;    
}

.jirei_midashi{  
    text-align: center;
}

.jirei_midashi h2{
    font-size: 28px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
    background-color: #E0B0B0;
    color: #fff;
    padding: 1rem;
}

.box5{
    padding: 8px 19px;
    margin: 4rem 0 10rem;
    color: #2c2c2f;    
    border-top: solid 5px #5989cf;
    border-bottom: solid 5px #5989cf;
}
.box5 p{
  display: inline-block;
  text-align: left;
  padding: 0;
  margin: 0;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.l_menu{
    margin: 0 0 10rem;
}

.l_menu h2{
    font-size: 34px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.5em;
    line-height: 1.5;
    text-align: center;
    background-color: #003399;
    color: #fff;
    padding: 0.5rem;
    margin: 0 0 3rem;
}

.l_koumoku{
    display:flex;
    text-align: center;  
}

.button_line007 a{
    position: absolute;
    top: 78%;
    left: 50%;
    -ms-transform: translate(-50%,-50%);
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    margin:0;
    padding:0;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 0 auto;
    max-width: 220px;
    padding: 10px 10px;
    color: #313131;
    transition: 0.3s ease-in-out;
    font-weight: 600;
    background: #eee;
    font-size: 14px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
    margin: 0 0 0.5rem;
}
.button_line007 a:hover{
    background: #ebfcfe;
    color: #6bb6ff;
}
.button_line007 a:before,.button_line007 a:after{
  box-sizing: inherit;
  content: "";
  position: absolute;
  border: 2px solid transparent;
  width: 0;
  height: 0;
}
.button_line007 a:before{
  top: 0;
  left: 0;
}
.button_line007 a:after{
  bottom: 0;
  right: 0;
}
.button_line007 a:hover:before,.button_line007 a:hover:after{
  width: 100%;
  height: 100%;
}
.button_line007 a:hover:before{
  border-top-color: #6bb6ff;
  border-right-color: #6bb6ff;
  transition: width 0.15s ease-out, height 0.15s ease-out 0.15s;
}
.button_line007 a:hover:after{
  border-bottom-color: #6bb6ff;
  border-left-color: #6bb6ff;
  transition: border-color 0s ease-out 0.2s, width 0.15s ease-out 0.2s, height 0.15s ease-out 0.3s;
}

.l_koumoku .l_img{
    position: relative;
}

.l_koumoku .l_img img{
    width: 100%;
    padding: 0 3rem 0 3rem;
    margin: 3rem 0 3rem;
}

.ttl_koumoku{
    text-align: center;
    margin: 0 0 3rem;
}


.heading-6{
    display: inline-block;
    position: relative;
    padding: 0 2.5em;
    color: #333333;
    font-size: 28px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.5em;
    line-height: 1.5;
}

.heading-6::before,.heading-6::after{
    content: '';
    display: inline-block;
    position: absolute;
    top: 50%;
    width: 45px;
    height: 3px;
    background-color: #2589d0;
}

.heading-6::before{
    left: 0;
}

.heading-6::after{
    right: 0;
}

.ttl_news{
    text-align: center;
    margin: 0 0 5rem;
}

.heading-13{
    position: relative;
    color: #333333;
    -webkit-box-reflect: below -10px -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, .5));
    font-size: 28px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.5em;
    line-height: 1.5;
}

.news{
    margin: 0 0 10rem;    
    text-align: center;
}

.news img{
    width: 80%;
    margin: 1rem 0 0;
}

.news li{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.05em;
    line-height: 1.7;
    list-style-type: none;
    border-bottom: 1px solid #ccc;
    padding: 0.5rem 0;
    text-align: left;
}

.ttl_soudan h2{
    font-size: 28px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.5em;
    line-height: 1.5;
    text-align: center;
    background-color: #00FF00;
    color: #fff;
    padding: 0.5rem;
    margin: 0 0 5rem;
}

.ttl_acc h2{
    font-size: 28px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.5em;
    line-height: 1.5;
    text-align: center;
    background-color: #00FF00;
    color: #fff;
    padding: 0.5rem;
    margin: 8rem 0 5rem;
}

.heading-31{
    position: relative;
    padding: .3em 0 .2em 1em;
    border-bottom: 3px solid #25d086;
    color: #333333;
    font-size: 20px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.1em;
    line-height: 1.5;
}

.heading-31::before{
    position: absolute;
    top: 0;
    left: .3em;
    transform: rotate(55deg);
    height: 11px;
    width: 12px;
    background: #25d086;
    content: '';
}

.heading-31::after{
    position: absolute;
    transform: rotate(15deg);
    top: .6em;
    left: 0;
    height: 8px;
    width: 8px;
    background: #25d086;
    content: '';
}

.box17{
    margin:2em 0;
    position: relative;
    padding: 0.5em 1.5em;
    border-top: solid 2px black;
    border-bottom: solid 2px black;
}
.box17:before,.box17:after{
    content: '';
    position: absolute;
    top: -10px;
    width: 2px;
    height: -webkit-calc(100% + 20px);
    height: calc(100% + 20px);
    background-color: black;
}
.box17:before{left: 10px;}
.box17:after{right: 10px;}
.box17 p{  
  text-align: center;
  padding: 0;
  margin: 0;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.ttl_prv h2{
    font-size: 28px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.5em;
    line-height: 1.5;
    text-align: center;
    background-color: #00FF00;
    color: #fff;
    padding: 0.5rem;
    margin: 8rem 0 3rem;
}

.ttl_prv p{
    font-size: 18px;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    letter-spacing: 0.1em;
    line-height: 1.5;
}

.box29{
    margin: 3rem 10rem 3rem;        
    background: #dcefff;
}

.box29 .box-title{
    font-size: 20px;
    font-family: 'Noto Sans JP', sans-serif;
    background: #5fb3f5;
    padding: 4px;
    text-align: center;    
    font-weight: bold;
    letter-spacing: 0.05em;
    text-shadow:1px 1px 0 #FFF, -1px -1px 0 #FFF,
              -1px 1px 0 #FFF, 1px -1px 0 #FFF,
              0px 1px 0 #FFF,  0-1px 0 #FFF,
              -1px 0 0 #FFF, 1px 0 0 #FFF;
}

.box29 p{
    font-size: 18px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.5;
    padding: 2px 25px;
    margin: 0;
    color: #000;
    text-shadow:1px 1px 0 #FFF, -1px -1px 0 #FFF,
              -1px 1px 0 #FFF, 1px -1px 0 #FFF,
              0px 1px 0 #FFF,  0-1px 0 #FFF,
              -1px 0 0 #FFF, 1px 0 0 #FFF;
}

.zenkoku_galu{
  margin: 10rem 0 5rem;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  font-weight: bold;
}

.zenkoku_galu .zenkoku_g{
  position: relative;
  padding: 1.5rem;
  text-align: center;
}

.zenkoku_galu .zenkoku_g:before{
  position: absolute;
  bottom: -5px;
  left: calc(50% - 60px);
  width: 100px;
  height: 5px;
  content: '';
  border-radius: 3px;
  background: #87cefa;
}

.tihou_ttl{
  position: relative;
  padding: 0 65px;
  text-align: center;
  font-size: 24px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  font-weight: bold;
  margin: 0 0 3rem;
}

.tihou_ttl:before{
  position: absolute;
  top: calc(50% - 1px);
  left: 0;
  width: 100%;
  height: 2px;
  content: '';
  background: #000;
}

.tihou_ttl span{
  position: relative;
  padding: 0 1em;
  background: #fff;
}

.galu_g{
 margin: 0 0 10rem;
}

.galu_g p{
  font-size: 14px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  text-align: center;
}

.kaigyou::after{
 content:"\A";
 white-space:pre;
}


footer{
    background-color: #f5f5f5;
    padding: 1rem 0;
    border-top:solid 3px #4472C4;
}

.f_koumoku{
   text-align: center;
}

.f_koumoku a{
  color: #ed7d31;
  text-decoration: none;
}

.f_koumoku img{
   width: 30%;
}

.f_koumoku p{
    font-size: 18px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.05em;
    line-height: 1.7;
    margin: 0; 
}

.footer-tel{
  font-size: 30px;
  font-weight: 600;
}

.f_koumoku .icon1{
 display: flex;
 justify-content: center;
 margin: 3rem 0 1rem; 
}

.f_koumoku .icon1 p{
 margin: 0 1rem;
}

.f_koumoku .icon1 a{
 color: #6495ED;
}

.f_koumoku .icon1 .fb{
 margin: 0 1rem 0 0;
}

.f_koumoku .icon1 .ins{
 margin: 0 1rem;
}

.f_koumoku .icon1 .tw{
 margin: 0 0 0 1rem;
}

.footer03{
 color: #808080; 
 padding: 10px;  
}
.footer03 a{
 color: #808080;
 text-decoration: none;
}
.footer03 a:hover{
 text-decoration: underline;
}
.footer03 .f_menu{
 margin: 0;
 padding: 0;
 list-style: none;
 display: flex;
 justify-content: center;
 flex-wrap: wrap;
}
.footer03 .f_menu li{
 margin: 0;
 padding: 0 20px; 
}
.footer03 .f_menu li:first-child{
 padding-left: 0;
 border: none;
}

.box4_1{
    padding: 8px 19px;
    margin: 2em 0;
    color: #2c2c2f;    
    border-top: solid 5px #5989cf;
    border-bottom: solid 5px #5989cf;
}
.box4_1 p{
  display: inline-block;
  text-align: left;
  padding: 0;
  margin: 0;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.7;
}

.pv_mov{
    display:flex;
    
}

.mov{
 flex: 1;
 margin: 0 0.5rem 0;
}

.mov p{
  text-align: center;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  font-weight: bold;
}

.line_img{
  text-align: center;
  margin: 3rem 0 10rem;
}

.line_img img{
  width: 80%;
}











.blueback3{
  background-color: #003399;
  color: #fff;
  margin: 1rem 0 1rem;
  padding: 0.5rem 0 0.5rem 1rem;  
  font-size: 22px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  font-weight: bold;
}

.box4{
    padding: 8px 19px;
    margin: 2rem 0 5rem;
    color: #2c2c2f;    
    border-top: solid 5px #5989cf;
    border-bottom: solid 5px #5989cf;
}
.box4 p{
  display: inline-block;
  text-align: left;
  padding: 0;
  margin: 0;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.blueback4{
  text-align: center;
  background-color: #003399;
  color: #fff;
  margin: 0 0 1rem;
  padding: 0.5rem;  
  font-size: 22px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  font-weight: bold;
}

.s_text{
  display: inline-block;
  text-align: left;
  padding: 0;
  margin: 0;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.s_table{
  margin: -3rem 0 10rem;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
}

.box12{
    padding: 0.5em 1em;
    margin: 2em 0 5em;
    color: #000000;
    border-top: solid 6px #aac5de;
    border-bottom: solid 6px #aac5de;
    border-radius: 9px;
}
.box12 p{
  display: inline-block;
  text-align: left;
  padding: 0;
  margin: 0;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.7;
}

.box12 img{
  margin: 1em 0;
  width: 100%;
}

.box17_2{
    margin:2em 0 5em;
    position: relative;
    padding: 0.5em 1.5em;
    border-top: solid 2px black;
    border-bottom: solid 2px black;
}

.box17_2:before,.box17_2:after{
    content: '';
    position: absolute;
    top: -10px;
    width: 2px;
    height: -webkit-calc(100% + 20px);
    height: calc(100% + 20px);
    background-color: black;
}

.box17_2:before{left: 10px;}

.box17_2:after{right: 10px;}

.box17_2 p{  
  text-align: center;
  padding: 0;
  margin: 0;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.s_nagare{
  margin: 5rem 0 0;
}



























.s_nagare{
 margin: 0 0 2em;
}

.box2{
    padding: 0.5em 1em;
    margin: 3em 0 3em;
    font-weight: bold;
    color: #000000;
    background: #FFF;
    border: solid 3px #fcc;
}

.box2 p{
  text-align: center;
  padding: 0;
  margin: 0;
  font-size: 20px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.7;
}

.gaiyoufmoji{
        background: linear-gradient(transparent 60%, #fcc 70%);
}

.kai_text{
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
  text-align: center;
}

.box12_1{
    padding: 0.5em 1em;   
    color: #000000;
    border-top: solid 6px #aac5de;
    border-bottom: solid 6px #aac5de;
    border-radius: 9px;
}
.box12_1 p{
  display: inline-block;
  text-align: left;
  padding: 0;
  margin: 0;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.iten{
  margin: 10rem 0 5rem;
  padding: 2em 0;
  border-top: solid 3px #364e96;
  border-bottom: solid 3px #364e96;
}

.navinavi{
  display: flex;
}

.navi1{
 text-align: center;
}

.navi1 p{
  margin: 0;
  text-align: center;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.navi2{
 padding: 0 5rem 0;
 text-align: center;
}

.navi2 p{
  margin: 0;
  text-align: center;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.navi2{
 text-align: center;
}

.navi3 p{
  margin: 0;
  text-align: center;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.zenkoku{
   text-align: center;
   margin: 1rem 0 10rem;
}

.zenkoku img{
   width: 60%;
   margin: 0 0 1rem;
} 

.zenkoku p{
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

.box12_2{
    margin: 3rem 0;
    padding: 0.5em 1em;   
    color: #000000;
    border-top: solid 6px #aac5de;
    border-bottom: solid 6px #aac5de;
    border-radius: 9px;
}
.box12_2 p{
  display: inline-block;
  text-align: left;
  padding: 0;
  margin: 0;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}



























 



.box24{
    position: relative;
    padding: 0.5em 0.7em;
    margin: 2em 0;
    background: #e6f4ff;
    color: #000000;
    font-size: 20px;
    font-weight: bold;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
}

.box24:after{
    position: absolute;
    content: '';
    top: 100%;
    left: 30px;
    border: 15px solid transparent;
    border-top: 15px solid #e6f4ff;
    width: 0;
    height: 0;
}

.blueback5{
  text-align: center;
  background-color: #003399;
  color: #fff;
  margin: 5rem 0 5rem;
  padding: 0.5rem;  
  font-size: 22px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
  font-weight: bold;
}

.uw_table{
    font-size: 16px;
    font-weight: bold;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
} 

.box2_1{
    padding: 0.5em 1em;
    margin: 2em 0 5em;
    font-weight: bold;
    color: #000000;
    background: #FFF;
    border: solid 3px #fcc;
}

.box2_1 p{
  text-align: center;
  padding: 0;
  margin: 0;
  font-size: 20px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.7;
}

.uw_img img{
  width: 100%;
  margin: 0 0 3rem;
}

.box12_3{
    margin: 3rem 0 6rem;
    padding: 0.5em 1em;   
    color: #000000;
    border-top: solid 6px #aac5de;
    border-bottom: solid 6px #aac5de;
    border-radius: 9px;
}

.box12_3 p{
  display: inline-block;
  text-align: left;
  padding: 0;
  margin: 0;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.7;
}

.uw_text{
    font-size: 18px;
    font-weight: bold;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
    margin: 2em 0 3em;
    padding: 0 1em 0;
}

.box29_1{
    margin: 0 0 3rem;        
    background: rgba(220,239,255,0.5);
}

.box29_1 .box-title{
    font-size: 20px;
    font-family: 'Noto Sans JP', sans-serif;
    background: #5fb3f5;
    padding: 4px;
    text-align: center;    
    font-weight: bold;
    letter-spacing: 0.05em;
    text-shadow:1px 1px 0 #FFF, -1px -1px 0 #FFF,
              -1px 1px 0 #FFF, 1px -1px 0 #FFF,
              0px 1px 0 #FFF,  0-1px 0 #FFF,
              -1px 0 0 #FFF, 1px 0 0 #FFF;
}

.box29_1 p{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.5;
    padding: 5px 15px;
    margin: 0;
    color: #000;
}

.uw_text2{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.5;
    padding: 5px 15px;
    margin: 0;
    color: #ED1A3D;
}

.uw_matome{
    margin: 0 0 5rem;
}

.uw_matome p{
    font-size: 24px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.5;
    text-align: center;
}

.omakasemoji{
 padding: 2px 25px;
 margin: 0;
 background: linear-gradient(transparent 60%, #ffff00 70%);
 text-shadow:1px 1px 0 #FFF, -1px -1px 0 #FFF,
              -1px 1px 0 #FFF, 1px -1px 0 #FFF,
              0px 1px 0 #FFF,  0-1px 0 #FFF,
              -1px 0 0 #FFF, 1px 0 0 #FFF;
}







td{
  padding: 12px 15px;
  text-align: left;
  border-bottom: 1px solid #E1E1E1; 
}








































.yukue{
   font-size: 20px;
   font-family: 'Noto Sans JP', sans-serif;
   letter-spacing: 0.1em;
   line-height: 1.5;
   font-weight: bold;
   margin: 0 0 4rem;
}

.box24_1{
    position: relative;
    padding: 0.5em 0.7em;
    margin: 2em 0 30em;
    background: #e6f4ff;
    color: #000000;
    font-size: 24px;
    font-weight: bold;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
}

.box24_1:after{
    position: absolute;
    content: '';
    top: 100%;
    left: 30px;
    border: 15px solid transparent;
    border-top: 15px solid #e6f4ff;
    width: 0;
    height: 0;
}

.cp_h1title{
    position: relative;
    font-size: 18px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
    font-weight: bold;
}

.cp_h1title:after{
	content: "";
	display: block;
	height: 4px;
	background: linear-gradient(to right, #E91E63, transparent);
}

.yukue_table{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
}

.yukuemoji{
        padding: 2px 25px;
        margin: 0;
        background: linear-gradient(transparent 60%, #ffff00 70%);
        text-shadow:1px 1px 0 #FFF, -1px -1px 0 #FFF,
              -1px 1px 0 #FFF, 1px -1px 0 #FFF,
              0px 1px 0 #FFF,  0-1px 0 #FFF,
              -1px 0 0 #FFF, 1px 0 0 #FFF;
}

.box17_3{
    margin:2em 0 5rem;
    position: relative;
    padding: 0.5em 1.5em;
    border-top: solid 2px black;
    border-bottom: solid 2px black;
}

.box17_3:before,.box17_3:after{
    content: '';
    position: absolute;
    top: -10px;
    width: 2px;
    height: -webkit-calc(100% + 20px);
    height: calc(100% + 20px);
    background-color: black;
}

.box17_3:before{left: 10px;}

.box17_3:after{right: 10px;}

.box17_3 p{  
  text-align: center;
  padding: 0;
  margin: 0;
  font-size: 18px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

























.box23{
    position: relative;
    margin: 5rem 5rem;
    padding: 8px 15px;
    background: #ffebcd;
    border-radius: 30px;
    font-size: 20px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
}

.box23:before{font-family: FontAwesome;
    content: "\f111";
    position: absolute;
    font-size: 15px;
    left: -40px;
    bottom: 0;
    color: #ffebcd;
}

.box23:after{
    font-family: FontAwesome;
    content: "\f111";
    position: absolute;
    font-size: 23px;
    left: -23px;
    bottom: 0;
    color: #ffebcd;
}

.tou_table{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
}



td{
  padding: 12px 15px;
  text-align: left;
  border-bottom: 1px solid #E1E1E1; 
}



























.sinyou{
    margin: 0 0 10em; 
}

.sinyou p{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.5;
}

.marri p{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.5;
}













.stal{
    margin: 2em 0 5em;
}

.stal p{
    font-size: 18px;
    font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: 0.1em;
    line-height: 1.7;
    font-weight: bold;
}

.tyousa_ttl{
  margin: 3rem 0 3rem;
}

.tyousa_ttl img{
  width:100%;
}


.flexbox3{
  display:flex;
}

.flexbox3 .inv_koumoku3{
  width: 100%;
  margin: 0 1em 2em 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  letter-spacing: 0.1em;
  line-height: 1.5;   
}

.flexbox3 .inv_koumoku3 img{
  width: 100%;
}

.flexbox3 .inv_koumoku3 a{
  color: #000;
}

.flexbox3 .inv_koumoku4{
  width: 100%;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  letter-spacing: 0.1em;
  line-height: 1.5;   
}

.flexbox3 .inv_koumoku4 img{
  width: 100%;
}

.flexbox3 .inv_koumoku4 a{
  color: #000;
}





 


.branch-toggle{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 92%;
  max-width: 340px;
  margin: 18px auto 25px;
  padding: 14px 0;
  background: #004080; 
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
  border: none;
  border-radius: 6px;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: all 0.25s ease;
  position: relative;
}


.branch-toggle:hover,.branch-toggle:focus{
  background: #0059b2;
  box-shadow: 0 5px 10px rgba(0, 64, 128, 0.25);
  transform: translateY(-1px);
  outline: none;
}


.branch-toggle:active{
  transform: translateY(1px);
  filter: brightness(0.95);
}


.branch-toggle .toggle-icon{
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1;
  transition: transform 0.3s ease;
}


.branch-toggle.active .toggle-icon{
  transform: rotate(45deg);
}


.branch-toggle:focus-visible{
  box-shadow: 0 0 0 3px rgba(0, 89, 178, 0.3);
}


.branch-toggle:visited,.branch-toggle:focus,.branch-toggle:active{
  color: #fff !important;
}


.branch-list{
  display: none;
  animation: fadeIn 0.4s ease-in-out;
}

.branch-list.open{
  display: block;
}

@keyframes fadeIn{
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}



.zenkoku_box{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  font-size: 12px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-align: center;
  margin-bottom: 10px;
}


.zenkoku_it{
  flex: 1 1 calc(50% - 10px);
  margin: 5px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  height: auto;
  box-sizing: border-box;
}


.zenkoku_it img{
  display: block;            
  width: 100%;
  max-width: 100%;
  height: 100px !important;  
  object-fit: cover;
  border-radius: 6px;
  margin-bottom: 4px;
}


.zenkoku_it p,.zenkoku_it span{
  display: block;
  height: auto;
  margin: 0;
  padding: 0;
}


.zenkoku_box--single{
  justify-content: center;
}

.zenkoku_box--single .zenkoku_single{
  flex: 0 1 48%;
  max-width: 180px;
}

.zenkoku_box--single .zenkoku_single img{
  display: block;            
  width: 100%;
  max-width: 100%;
  height: 100px !important;  
  object-fit: cover;
  border-radius: 6px;
  margin-bottom: 4px;
}



.partner{  
  margin: 0 0 1em;
}

.partner img{
  width:100%;
  position: relative;
  margin: 2em 0 1em;   
}
 



.tiikibetsu{
  text-align: center;
  margin: 2rem auto 5rem;  
}

.tiikibetsu img{
  width: 75%;
}

.tiikibetsu2{
  text-align: center;
  margin: 3rem auto;  
}

.tiikibetsu2 img{
  width: 100%;
}













*,*:before,*:after{
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

html{
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 80%;
}

.btn,a.btn,button.btn{
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1rem 4rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}

a.btn--orange{
  color: #fff;
  background-color: #eb6100;
}

a.btn--orange:hover{
  color: #fff;
  background: #f56500;
}



a.btn-c i.fa{
  margin-right: 1rem;
}

.main_pca{
  background: rgba(255, 255, 255, 0.8);
  font-size: 18px;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-style: normal;    
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: 0 10rem 1rem;
  padding: 30px 20px 20px;
}






.trust-inner{
  position: relative;
  z-index: 2; 
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 40px 70px;
  background: rgba(255, 255, 255, 0.88);
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(182, 91, 107, 0.08);
  border: 1px solid #f6d8df;
  backdrop-filter: blur(4px);
  z-index: 0;
}


.trust-title{
  font-size: 28px;
  font-weight: 700;
  color: #b64b5b;
  margin-bottom: 35px;
  letter-spacing: 0.04em;
  line-height: 1.8;
}


.trust-inner p{
  font-size: 18px;
  color: #444;
  margin-bottom: 20px;
  letter-spacing: 0.02em;
}


.trust-message{
  font-weight: 600;
  color: #b64b5b;
  margin-top: 30px;
  font-size: 17.5px;
  letter-spacing: 0.03em;
}


.trust-bottom-title-wrap{
  position: relative;
  z-index: 2;
  margin-top: 90px;
  text-align: center;
}




.trust-bottom-title-wrap{
  position: relative;
  z-index: 2;
  margin-top: 20px;
  text-align: center;
  padding: 20px 0;
  z-index: 0;
}


.trust-bottom-title{
  display: inline-block;
  position: relative;
  background: linear-gradient(135deg, rgba(255,255,255,0.95) 0%, rgba(255,240,242,0.95) 100%);
  border: 1.5px solid rgba(255, 190, 200, 0.6);
  border-radius: 18px;
  padding: 55px 80px;
  margin: 0;
  box-shadow:
    0 8px 25px rgba(182, 91, 107, 0.12),
    inset 0 0 25px rgba(255, 180, 190, 0.15);
  backdrop-filter: blur(8px);
  transition: all 0.4s ease;
  overflow: hidden;
  z-index: 3; 
}


.trust-bottom-title:hover{
  transform: translateY(-6px);
  box-shadow:
    0 14px 40px rgba(182, 91, 107, 0.25),
    inset 0 0 30px rgba(255, 200, 210, 0.25);
}


.trust-bottom-title::before{
  content: "";
  position: absolute;
  top: 0;
  left: -50%;
  width: 50%;
  height: 100%;
  background: linear-gradient(120deg, rgba(255,255,255,0.0) 0%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0.0) 100%);
  transform: skewX(-25deg);
  animation: shine 5s infinite;
}

@keyframes shine{
  0% { left: -50%; }
  60% { left: 120%; }
  100% { left: 120%; }
}


.trust-bottom-main{
  display: block;
  font-size: 26px;
  font-weight: 800;
  color: #b64b5b;
  margin-bottom: 14px;
  letter-spacing: 0.05em;
  line-height: 1.7;
  background: linear-gradient(90deg, #d86b7a 0%, #b64b5b 50%, #d86b7a 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}


.trust-bottom-sub{
  display: block;
  font-size: 20px;
  color: #555;
  letter-spacing: 0.02em;
  line-height: 1.8;
}


.trust-bottom-title-wrap::before,.trust-bottom-title-wrap::after{
  content: "";
  position: absolute;
  left: 50%;
  width: 70%;
  height: 2px;
  background: linear-gradient(
    90deg,
    rgba(255,189,201,0) 0%,
    #e79ba7 50%,
    rgba(255,189,201,0) 100%
  );
  transform: translateX(-50%);
  border-radius: 2px;
}
.trust-bottom-title-wrap::before{ top: 0; }
.trust-bottom-title-wrap::after{ bottom: 0; }





.trust-section-sp{
  position: relative;
  background: #f8f6f3;
  padding: 70px 20px 80px;
  font-family: "Noto Sans JP", sans-serif;
  color: #333;
  text-align: center;
  overflow: hidden;
}


.trust-section-sp::before,.trust-section-sp::after{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(
    to bottom,
    rgba(215, 183, 189, 0.2) 0%,
    rgba(182, 75, 91, 0.25) 50%,
    rgba(215, 183, 189, 0.2) 100%
  );
  z-index: 1;
}
.trust-section-sp::before{
  left: 12px;
}
.trust-section-sp::after{
  right: 12px;
}


.trust-lead{
  position: relative;
  z-index: 2;
  margin-bottom: 50px;
}

.trust-lead h1{
  font-family: "Shippori Mincho B1", "Noto Sans JP", serif;
  font-size: 22px;
  font-weight: 700;
  color: #2f2f2f;
  line-height: 1.7;
  letter-spacing: 0.05em;
}

.trust-lead h1 span{
  color: #b64b5b;
  font-weight: 800;
}

.lead-sub{
  font-size: 15.5px;
  color: #555;
  line-height: 1.9;
  margin-top: 12px;
}


.trust-content-sp{
  position: relative;
  z-index: 2;
  background: #ffffff;
  border: 1px solid #ede4e6;
  border-radius: 14px;
  padding: 25px 20px 30px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.06);
  margin: 0 auto 40px;
  text-align: left;
  max-width: 600px;
}

.trust-content-sp h2{
  font-size: 18px;
  font-weight: 700;
  color: #b64b5b;
  text-align: center;
  margin-bottom: 15px;
  line-height: 1.8;
}

.trust-content-sp p{
  font-size: 15.5px;
  line-height: 1.9;
  color: #333;
  margin-bottom: 18px;
}

.trust-message{
  font-weight: 600;
  color: #b64b5b;
  font-size: 15.5px;
  text-align: center;
  border-top: 1px dashed #e5b7be;
  padding-top: 20px;
  margin-top: 25px;
}


@media (max-width: 480px){
  .trust-section-sp::before,.trust-section-sp::after{
    width: 1px;
    opacity: 0.3;
  }

  .trust-lead h1{
    font-size: 19px;
  }
  .trust-content-sp{
    padding: 15px 10px;
  }
}








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

  
  .main_ca{
    z-index: 9999;
    margin-bottom: 3px;
  }  

  
  .main_ca a{
    font-size: 16px;
    padding: 12px 30px;
  }
}


.main_ca{
  position: relative;
  z-index: 10; 
  text-align: center;
  margin-bottom: 10px;
}

.main_ca a{
  display: inline-block;
  font-size: 18px;
  font-weight: 700;
  padding: 14px 40px;
  color: #fff;
  background: linear-gradient(90deg, #f39c12, #d35400);
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.25);
}

.main_ca a:hover{
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}


.section-title{
  position: relative;
  font-size: 30px;
  font-weight: 700;
  color: #0d1b2a;
  text-align: center;
  margin: 60px auto 30px;
  letter-spacing: 0.05em;
}

.section-title::after{
  content: "";
  display: block;
  width: 700px;
  height: 3px;
  background: linear-gradient(to right, #1b4b91, #3fa7d6);
  margin: 0 auto;
  border-radius: 2px;
}

.section-title .icon{
  color: #1b4b91;
  font-size: 28px;
  margin-right: 10px;
  vertical-align: middle;
}

.reason-intro{
  text-align: center;
  margin-bottom: 50px;
}

.reason-lead{
  font-size: 18px;
  line-height: 1.9;
  color: #444;
  margin-top: 20px;
}


.reason-section{
  width: 100%;
  max-width: 1100px;
  margin: 50px auto;
  display: flex;
  flex-direction: column;
  gap: 80px;
}


.reason-block{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
  background: #fff;
  border-radius: 12px;
  padding: 50px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.reason-block:hover{
  transform: translateY(-4px);
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.08);
}


.reason-block.reverse{
  flex-direction: row-reverse;
}


.reason-text{
  flex: 1;
  max-width: 480px; 
}


.reason-title{
  font-size: 22px;
  font-weight: 700;
  color: #1b4b91;
  margin-bottom: 22px; 
  position: relative;
  letter-spacing: 0.03em;
  line-height: 1.6; 
  max-width: 400px; 
}

.reason-title span{
  display: inline-block;
  background: linear-gradient(135deg, #1b4b91, #3fa7d6);
  color: #fff;
  font-weight: 700;
  border-radius: 50%;
  width: 45px;
  height: 45px;
  line-height: 45px;
  text-align: center;
  margin-right: 10px;
  box-shadow: 0 3px 8px rgba(27, 75, 145, 0.3);
}


.reason-text p{
  text-align: left;
  font-size: 15.8px; 
  line-height: 1.9;
  color: #333;
  letter-spacing: 0.03em;
  max-width: 460px; 
}


.reason-image{
  flex: 1;
}

.reason-image img{
  display: block;
  width: 100%;
  max-width: 740px;
  height: auto;
  border-radius: 10px;
  object-fit: cover;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}

.reason-image img:hover{
  transform: scale(1.03);
}




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

  
  .trust-section-sp{
    padding: 10px 16px;
  }

  
  .trust-lead{
    position: relative;
    margin: 0 auto 20px;
    max-width: 640px;
  }

  
  .trust-lead h1{
    display: block;
    width: auto !important;
    max-width: 100%;
    margin: 0 0 10px;
    font-size: 18px;        
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: .02em;
    text-align: center;       
    white-space: normal;    
    word-break: normal;     
    overflow-wrap: break-word; 
  }

  
  .trust-lead h1::after,.trust-lead h1::before{
    left: 50% !important;
    transform: translateX(-50%) !important;
    right: auto !important;
  }
  
  .trust-lead h1::after{
    width: 104px;        
  }

  
  .lead-sub{
    margin: 6px 0 18px;
    font-size: 14.5px;
    line-height: 1.9;
    color: #555;
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;
  }

  
  .trust-content-sp{
    margin-top: 16px;
  }

  
  .trust-lead .badge,.trust-lead::before{
    transform: translateY(0);
    left: 0.5rem !important;
    scale: .9;
  }
}

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

  
  .reason-intro{
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 10px;
    text-align: center;
    background: linear-gradient(to bottom, #ffffff 0%, #fff9fa 100%);
    box-sizing: border-box;
    overflow: hidden; 
  }

  
  .reason-intro .section-title{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap; 
    gap: 8px;
    width: 100%;
    max-width: 100%;
    font-size: 19px;
    font-weight: 700;
    color: #b64b5b;
    line-height: 1.6;
    letter-spacing: 0.03em;
    margin: 0 auto 10px;
    text-align: center;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: break-word;
  }

  
  .reason-intro .icon{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    color: #fff;
    font-size: 20px;
    box-shadow: 0 6px 10px rgba(182, 91, 107, 0.25);
    background: linear-gradient(145deg, #e45c6b 0%, #d14b60 100%);
  }

  
  .reason-lead{
    font-size: 15.5px;
    color: #444;
    line-height: 1.9;
    margin: 0 auto;
    max-width: 340px;
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;
  }

  .reason-lead br{
    display: none;
  }

  
  .reason-intro::after{
    content: "";
    display: block;
    width: 100%;
    height: 2px;
    margin: 0;
    background: linear-gradient(
      90deg,
      rgba(255, 189, 201, 0) 0%,
      #e79ba7 50%,
      rgba(255, 189, 201, 0) 100%
    );
    border-radius: 2px;
  }
}






@media screen and (max-width: 768px){
  .reason-section{
    margin: 0;
    padding: 10px;
    background: linear-gradient(to bottom, #ffffff 0%, #fff9fa 100%);
    flex-direction: column;
    gap: 20px;
  }

  

  
  .reason-block{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 15px;
    background: linear-gradient(180deg, rgba(255, 235, 240, 0.96) 0%, rgba(255, 240, 245, 0.98) 100%);
    align-items: center;
    text-align: left;
    padding: 0 10px;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(182, 91, 107, 0.05);
    overflow: hidden;
  }

  
  .reason-block.reverse{
    flex-direction: column;
  }  

  
  .reason-image{
    width: 100%;
  }

  .reason-image img{
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    border-bottom: 1px solid #f3d8dc;
  }

  
  .reason-text{
    padding: 10px;
  }

  
  .reason-title{
    font-size: 18px;
    font-weight: 700;
    color: #b64b5b;
    margin-bottom: 12px;
    line-height: 1.7;
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .reason-title span{
    background: #b64b5b;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    flex-shrink: 0;
  }

  
  .reason-text p{
    font-size: 16px;
    color: #333;
    line-height: 1.9;
    letter-spacing: 0.02em;
    margin: 0;
  }

  
  .reason-block:last-of-type{
    margin-bottom: 20px;
  }
}




.main_ca{ 
 padding: 1.5rem 1rem 1.5rem 1rem;
}


a.btn--orange{
  color: #fff;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.5;
  background-color: #eb6100;
  border-bottom: 5px solid #b84c00;
}
a.btn--orange:hover{
  margin-top: 3px;
  color: #fff;
  background: #f56500;
  border-bottom: 2px solid #b84c00;
}

a.btn--radius{
  border-radius: 100vh;
}

a.btn--shadow{
  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
  box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
}

.fa-position-left{
  position: absolute;
  top: calc(50% - .5em);
  left: 1rem;
}
.fa-position-right{
  position: absolute;
  top: calc(50% - .5em);
  right: 1rem;
}

.letter_sp{
 background-image: url(/assets/img//koe_back.webp);
 background-size: cover;
 margin: 0 0 2rem;
}



.scroll-carousel{
  max-width: 1200px;
  margin: 0 auto;
  padding: 30px 20px;
}

.carousel-title{
  font-size: 2em;
  font-weight: bold;
  color: #2c3e50;
  margin-bottom: 5px;
  text-align: center;
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.scroll-container{
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  gap: 20px;
  padding: 10px 0 10px 0;
  
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  
  scrollbar-width: thin;
  scrollbar-color: #bdc3c7 #ecf0f1;
}


.scroll-container::-webkit-scrollbar{
  height: 8px;
}

.scroll-container::-webkit-scrollbar-track{
  background: #ecf0f1;
  border-radius: 4px;
}

.scroll-container::-webkit-scrollbar-thumb{
  background: #bdc3c7;
  border-radius: 4px;
  transition: background 0.3s ease;
}

.scroll-container::-webkit-scrollbar-thumb:hover{
  background: #95a5a6;
}

.scroll-item{
  flex: 0 0 280px; 
  height: 380px;
  padding: 10px;
  background: white;
  border-radius: 16px;
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
  
  scroll-snap-align: start;
  scroll-snap-stop: always;
  text-align: center;
}

.scroll-item:hover{
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

.item-image{
  width: 100%;
  transition: transform 0.3s ease;
  text-align: center;
}

.scroll-item:hover .item-image{
  transform: scale(1.1);
}

.item-info{
  padding: 0;
  text-align: center;
}

.item-title{
  font-size: 18px;
  font-weight: 600;
  color: #2c3e50;
  margin: 0;
  padding: 0;
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.item-price{
  font-size: 16px;
  color: #e74c3c;
  font-style: normal;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: 0 0 1rem;  
}

.item-rating p{
  text-align: left;
  font-size: 14px;
  font-family: 'Noto Serif JP', serif;
  font-weight: 400;
  font-style: normal;    
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: 0;
}

.scroll-hint{
  text-align: center;
  margin-top: 0;
  color: #7f8c8d;
  font-size: 0.9em;
  animation: pulse 2s infinite;
}

@keyframes pulse{
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}


@media (max-width: 768px){
  .scroll-item{
    flex: 0 0 250px;
    height: 350px;
  }

  .item-image{
    height: 180px;
  }

  .item-info{
    padding: 0;
  }

  .item-title{
    font-size: 18px;
  }

  .item-price{
    font-size: 1.2em;
  }
}

@media (max-width: 480px){
  .scroll-carousel{
    padding: 20px 10px 20px 30px;
  }

  .scroll-container{
    gap: 15px;
  }

  .scroll-item{
    flex: 0 0 300px;
    width: 450px;
    height: 400px;
  }

  .letter_sp .item-image{
    width: 80px;      /* 画像幅を小さく調整 */
    height: auto;      /* アスペクト比維持 */
    object-fit: contain;
    margin: 0 auto 10px; /* 中央寄せ＆下に余白 */
    display: block;
  }

  .carousel-title{
    font-size: 1.6em;
  }
}


@media (hover: none) and (pointer: coarse){
  .scroll-container{
    
    -webkit-overflow-scrolling: touch;
    scroll-padding-left: 20px;
  }

  .scroll-item:hover{
    
    transform: none;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
  }

  .scroll-item:hover .item-image{
    transform: none;
  }
}


.s_annai{
 margin: 3rem 0;
 text-align: center; 
}

.soudanshitu{
  position: relative;
  display: inline-block;
  padding: 0 50px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 1.5; 
}

.soudanshitu:before,.soudanshitu:after{
  content: '';
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 35px;
  height: 1px;
  background-color: black;
}

.soudanshitu:before{
  left:0;
}

.soudanshitu:after{
  right: 0;
}

.s_annai p{
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: 1rem 0;
  text-align: center;
  padding: 0 2rem;
}

.syuttyou{
  color: #e74c3c;
  font-weight: bold;
}

.s_annai img{
  width: 100%;
  margin: 0 0 1rem;
}

.box29s{
    background: #f5f5f5;
    margin: 0 2rem;
}
.box29s .box-title{
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-size: 14px;
    letter-spacing: 0.1em;
    line-height: 1.5;
    background: #BBFFFF;
    padding: 0 0 0 10px;
    text-align: left;    
}
.box29s p{
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-size: 14px;
    letter-spacing: 0.1em;
    line-height: 1.5;
    padding: 5px 0 5px 10px;
    margin: 0;
    text-align: left;
}

.s_map{
  width: 100%;
  position: relative;
  padding-top: 75%;
  margin: 2rem 0;
}

.s_map iframe{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.s_heading-16{
    display: flex;
    justify-content: center;
    align-items: center;
    color: #333333;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-size: 16px;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin: 2rem 0 0;
    padding: 0 5rem;
}

.s_heading-16 p{
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-size: 16px;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin: 0 0 1rem;
    padding: 0;
}

.s_heading-16::before,.s_heading-16::after{
    width: 3px;
    height: 40px;
    background-color: #000000;
    content: '';
}

.s_heading-16::before{
    transform: rotate(-35deg);
    margin-right: 20px;
}

.s_heading-16::after{
    transform: rotate(35deg);
    margin-left: 20px;
}

.button-4{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 250px;
    margin: 0 auto 3em;
    padding: 0.5em;
    border: none;
    border-bottom: solid 5px #008e48;
    border-radius: 5px;
    background-color: #27be78;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-size: 14px;
    letter-spacing: 0.1em;
    line-height: 1.5;
    color: #fff;
    transition: .5s ease;
}






.zenkoku picture,
.zenkoku_g picture,
.zenkoku_box picture,
.zenkoku_it picture,
.l_koumoku picture,
.l_koumoku2 picture,
.l_img picture,
.l_img3 picture,
.flexbox2 picture,
.news picture,
.ask_ttl picture,
.partner picture,
figure picture {
  display: block;
  max-width: 100%;
}

.zenkoku picture img,
.zenkoku_g picture img,
.zenkoku_box picture img,
.zenkoku_it picture img,
.l_koumoku picture img,
.l_koumoku2 picture img,
.l_img picture img,
.l_img3 picture img,
.flexbox2 picture img,
.news picture img,
.ask_ttl picture img,
.partner picture img,
figure picture img {
  display: block;
  width: 100%;
  height: auto;
}


.mainimg2 picture{ display: block; width: 100%; }
.mainimg2 picture img{ display: block; width: 100%; height: auto; }




.zenkoku_it picture{ display:inline-block; max-width:100%; vertical-align:middle; }
.zenkoku_it picture img{ display:block; width:100%; height:auto; }


.l_koumoku2 .l_img3 picture{ display:block; width:100%; aspect-ratio: 16 / 9; }
.l_koumoku2 .l_img3 picture img{ display:block; width:100%; height:auto; object-fit: cover; }


.flexbox2 .inv_koumoku picture,.flexbox2 .inv_koumoku2 picture{ display:block; width:100%; aspect-ratio: 16 / 9; }
.flexbox2 .inv_koumoku picture img,.flexbox2 .inv_koumoku2 picture img{ display:block; width:100%; height:auto; object-fit: cover; }


.row .col.span-6 picture{ display:block; width:100%; }
.row .col.span-6 picture img{ display:block; width:100%; height:auto; }


.ask_ttl picture{ display:block; width:100%; }
.ask_ttl picture img{ display:block; width:100%; height:auto; }




.tyousakoumoku picture,.tyousakoumoku2 picture{ display:block; width:100%; }
.tyousakoumoku picture img,.tyousakoumoku2 picture img{ display:block; width:100%; height:auto; object-fit: cover; }


.scroll-infinity__item picture{ display:inline-block; }
.scroll-infinity__item picture img{ display:block; height:auto; }


.l_koumoku .l_img picture{ display:block; width:100%; aspect-ratio: 16 / 9; }
.l_koumoku .l_img picture img{ display:block; width:100%; height:auto; object-fit: cover; }


.l_koumoku .l_img picture,.l_koumoku2 .l_img3 picture,.flexbox2 .inv_koumoku picture,.flexbox2 .inv_koumoku2 picture,.flexbox3 .inv_koumoku3 picture,.flexbox3 .inv_koumoku4 picture{ aspect-ratio: 16 / 9; }

.zenkoku_it picture{ aspect-ratio: 4 / 3; }


.l_koumoku .l_img picture img,.l_koumoku2 .l_img3 picture img,.flexbox2 .inv_koumoku picture img,.flexbox2 .inv_koumoku2 picture img,.flexbox3 .inv_koumoku3 picture img,.flexbox3 .inv_koumoku4 picture img,.zenkoku_it picture img{ object-fit: cover; }




@media screen and (min-width: 768px){
  .menu .global-nav{ display:block; }
  .menu .global-nav ul{ display:flex; flex-direction: row; justify-content: space-around; list-style:none; margin:0; padding:0; }
  .menu .global-nav li{ flex: 1 0 auto; }
  .menu .global-nav a{ display:block; padding:2rem 1rem; text-align:center; color:#fff; text-decoration:none; }
  .menu .global-nav a:hover{ background-color:#3366FF; color:#fff; }
}
@media screen and (max-width: 768px){
  :root{ --sp-top-gap: 44px; --drawer-top-gap: 88px; }
  .menu .global-nav{ display:none; }
  
  .menu{ display:none; }
  
  .sp .pagetop4{ margin: 0; }
  .sp .pagetop4 ul{ margin:0; padding:0; list-style:none; }
  
  header + main{ margin-top: calc(var(--sp-top-gap) + env(safe-area-inset-top, 0px)); }
  .pagetop4{ position: sticky; top: 0; z-index: 1001; }
}


.menu #navi{ display: none !important; }


@media screen and (max-width: 767.98px){
  
  #menu-btn-check{ display:none; }

  
  .menu-overlay{
    position: fixed;
    inset: 0;
    display: block;
    background: rgba(0,0,0,0.4);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease;
    z-index: 2000;
  }
  #menu-btn-check:checked ~ .menu-overlay{ opacity:1; visibility:visible; pointer-events:auto; }

}





.hamburger-menu{
  position: relative;
  z-index: 3000;
}


.menu-overlay{
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  z-index: 2000;
}
#menu-btn-check:checked ~ .menu-overlay{
  opacity: 1;
  visibility: visible;
}


.hamburger-menu .menu-content{
  position: fixed;
  top: 0;
  left: 100%;
  width: 60vw;
  max-width: 400px;
  height: 100vh;
  background: #fff;
  border-left: 1px solid #f2d7df;
  box-shadow: -3px 0 10px rgba(0, 0, 0, 0.15);
  transition: left 0.35s ease;
  z-index: 2100;
  display: flex;
  flex-direction: column;
  padding-top: 55px;
}
#menu-btn-check:checked ~ .menu-content{
  left: 40%;
}


.hamburger-menu .menu-content ul{
  list-style: none;
  margin: 0;
  padding: 0;
}


.hamburger-menu .menu-content li{
  border-bottom: 1px solid #f2e7ea;
}

.hamburger-menu .menu-content li a{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px; 
  font-size: 15px;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  background: #fff;
  transition: all 0.25s ease;
}


.hamburger-menu .menu-content li a::before{
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: #b65b6b;
  opacity: 0.85;
  font-size: 15px;
  width: 20px;
  text-align: center;
}


.hamburger-menu .menu-content li:nth-child(1) a::before{ content: "\f0e0"; } 
.hamburger-menu .menu-content li:nth-child(2) a::before{ content: "\f015"; } 
.hamburger-menu .menu-content li:nth-child(3) a::before{ content: "\f06e"; } 
.hamburger-menu .menu-content li:nth-child(4) a::before{ content: "\f002"; } 
.hamburger-menu .menu-content li:nth-child(5) a::before{ content: "\f0b1"; } 
.hamburger-menu .menu-content li:nth-child(6) a::before{ content: "\f15c"; } 
.hamburger-menu .menu-content li:nth-child(7) a::before{ content: "\f1ad"; } 
.hamburger-menu .menu-content li:nth-child(8) a::before{ content: "\f023"; } 



.hamburger-menu .menu-content li a:hover{
  background: #fff6f8;
  color: #b64b5b;
}
.hamburger-menu .menu-content li a:hover::before{
  color: #b64b5b;
  opacity: 1;
}




.menu-btn{
  position: fixed;
  top: 15px;
  right: 15px;
  z-index: 3002;
  width: 40px;
  height: 40px;
  cursor: pointer;
  background: #fff;
  border: 1px solid #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s ease;
}
.menu-btn:hover{
  background: #ffffff;
}


.menu-btn span,.menu-btn span::before,.menu-btn span::after{
  display: block;
  position: absolute;
  width: 22px;
  height: 2px;
  background-color: #333;
  transition: all 0.3s ease;
  content: "";
}
.menu-btn span::before{ top: -7px; }
.menu-btn span::after{ bottom: -7px; }


#menu-btn-check:checked + .menu-btn span{
  background-color: transparent;
}
#menu-btn-check:checked + .menu-btn span::before{
  transform: rotate(45deg);
  top: 0;
  background-color: #b64b5b;
}
#menu-btn-check:checked + .menu-btn span::after{
  transform: rotate(-45deg);
  bottom: 0;
  background-color: #b64b5b;
}


@media screen and (min-width: 768px){
  .hamburger-menu{ display: none !important; }
}





body.no-scroll{ overflow: hidden; overscroll-behavior: contain; }
body.no-scroll-fixed{ position: fixed; width:100%; overflow:hidden; }





@media screen and (max-width: 768px){
  :root{ --sp-top-gap: 40px; }
  .pagetop4{ position: fixed !important; top:0; left:0; right:0; height: var(--sp-top-gap); z-index: 2001; }
  .pagetop4 ul,.pagetop4 li{ height: var(--sp-top-gap); }
  .pagetop4 li{ display:flex; align-items:center; justify-content:flex-start; padding-left:8px; }
  .pagetop4 .fm1 img{ height: var(--sp-top-gap); width:auto; object-fit: contain; }
  
  .menu-btn{ top: 0; }
  header + main{ margin-top: var(--sp-top-gap); }
}


@media screen and (max-width: 750px){
  .sp-cta{
    padding: 8px 0;
  }
}


@media screen and (min-width: 751px){
  .sp-cta{
    padding: 8px 0;
  }
}


.sp-cta{
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  background: rgba(255, 255, 255, 0.8); 
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(10px); 
  opacity: 0;
  transition: opacity 0.5s ease;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
  padding-bottom: env(safe-area-inset-bottom);  
}


.cta-nav{
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  height: 60px;
}

.cta-label{
  text-align: center;
  font-size: 16px;
  color: #004aad;
  font-weight: 700;
  margin: 0;
  padding: 2px 0 0;
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(6px);
}


.cta-btn{
  flex: 1;
  text-align: center;
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.03em;
  text-decoration: none;
  padding-top: 5px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: all 0.25s ease;
}


.cta-btn i{
  font-size: 22px;
  margin-bottom: 3px;
}


.cta-btn.tel{
  background: linear-gradient(135deg, #0074d9, #004a99);
}

.cta-btn.mail{
  background: linear-gradient(135deg, #f9a825, #f57c00);
}

.cta-btn.line{
  background: linear-gradient(135deg, #00b900, #009c00);
}


.cta-btn:active{
  filter: brightness(0.9);
  transform: scale(0.98);
}


@supports(padding: max(0px)){
  .sp-cta{
    padding-bottom: max(5px, env(safe-area-inset-bottom));
  }
}









.instagram-gallery{
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 40px 60px;
  text-align: center;
  box-sizing: border-box;
  border-radius: 20px;
  overflow: hidden;

  
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.7) 0%, rgba(240, 240, 240, 0.95) 100%);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}


.insta-top-area{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 40px;
  flex-wrap: wrap;
  gap: 12px;
}


.insta-header{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex: 1;
  min-height: 50px; 
}

.insta-header a{
  display: flex;
  align-items: center;
  gap: 14px;
  color: #222;
  font-weight: 700;
  font-size: 18px; 
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.insta-header a:hover{
  opacity: 0.7;
}

.insta-header img{
  width: 48px; 
  height: 48px;
}


.insta-top-btn{
  flex-shrink: 0;
}

.insta-top-btn a{
  display: inline-block;
  background: linear-gradient(90deg, #ff4081, #ff7eb3);
  color: #fff;
  padding: 12px 26px;
  border-radius: 25px;
  font-weight: 700;
  text-decoration: none;
  font-size: 18px;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.insta-top-btn a:hover{
  background: linear-gradient(90deg, #e91e63, #ff4081);
  transform: scale(1.05);
}


.insta-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, auto);
  gap: 24px;
  justify-items: center;
  align-items: start;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}


.insta-grid a{
  display: block;
  width: 100%;
  max-width: 340px;
  border-radius: 12px;
  overflow: hidden;
  background-color: #fff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.insta-grid a:hover{
  transform: translateY(-6px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.insta-grid img{
  width: 100%;
  aspect-ratio: 1 / 1.3;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.insta-grid a:hover img{
  transform: scale(1.05);
  opacity: 0.9;
}


@media (max-width: 768px){
  .instagram-gallery{
    width: 100%;
    margin: 40px auto;       
    padding: 0 16px 40px;    
    box-sizing: border-box;  
    overflow: hidden;        
  }

  .insta-top-area{
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  .insta-header a{
    font-size: 1.2rem;
  }

  .insta-header img{
    width: 38px;
    height: 38px;
  }

  .insta-grid{
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, auto);
    gap: 16px;
  }
}



.investigation-section{
  background: linear-gradient(180deg, #f8f9fb 0%, #f2f3f5 100%); 
  padding: 10px;
  margin: 0 0 40px;
  border-radius: 16px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}


.investigation-inner{
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 40px 100px;
}


.section-heading.minimal{
  text-align: center;
  margin-bottom: 60px;
}

.section-heading.minimal h2{
  display: inline-block;
  font-size: 2.2rem;
  font-weight: 700;
  color: #003366;
  border-left: 6px solid #b64b5b; 
  padding-left: 16px;
  letter-spacing: 0.05em;
  line-height: 1.4;
}

.section-heading.minimal span{
  display: block;
  font-size: 1.05rem;
  color: #777;
  letter-spacing: 0.25em;
  margin-top: 8px;
  font-weight: 500;
}


.investigation-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  max-width: 1080px;
  margin: 0 auto;
}


.investigation-item{
  display: block;
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
}

.investigation-item:hover{
  transform: translateY(-6px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  filter: brightness(1.05);
}

.investigation-item img{
  width: 100%;
  border-radius: 14px;
  display: block;
  transition: transform 0.4s ease;
}

.investigation-item:hover img{
  transform: scale(1.03);
}


@media (max-width: 768px){
  .investigation-grid{
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  .investigation-inner{
    padding: 60px 20px 80px;
  }

  .section-heading.minimal h2{
    font-size: 1.8rem;
  }

  .section-heading.minimal span{
    font-size: 0.9rem;
  }
}



.case-section{
  background: linear-gradient(180deg, #f8f9fb 0%, #f2f3f5 100%);
  padding: 10px;
  margin: 0 0 40px;
  border-radius: 16px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}


.case-inner{
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 40px 100px;
}


.section-heading.minimal{
  text-align: center;
  margin-bottom: 60px;
}

.section-heading.minimal h2{
  display: inline-block;
  font-size: 2.2rem;
  font-weight: 700;
  color: #003366;
  border-left: 6px solid #b64b5b;
  padding-left: 16px;
  letter-spacing: 0.05em;
  line-height: 1.4;
}

.section-heading.minimal span{
  display: block;
  font-size: 1.05rem;
  color: #777;
  letter-spacing: 0.25em;
  margin-top: 8px;
  font-weight: 500;
}


.case-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  max-width: 1080px;
  margin: 0 auto;
}


.case-card{
  background: #fff;
  border: 1.5px solid #d8e3ed; 
  border-radius: 14px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, filter 0.3s ease;
}

.case-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  border-color: #b64b5b; 
  filter: brightness(1.05);
}


.case-card img{
  width: 100%;
  display: block;
  border-radius: 14px 14px 0 0;
  transition: transform 0.4s ease;
}

.case-card:hover img{
  transform: scale(1.03);
}


.case-card p{
  font-size: 16px;
  color: #333;
  line-height: 1.6;
  padding: 16px 18px 22px;
  text-align: justify;
  font-weight: 400;
}


@media (max-width: 768px){
  .case-grid{
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  .case-inner{
    padding: 60px 20px 80px;
  }

  .section-heading.minimal h2{
    font-size: 1.8rem;
  }

  .section-heading.minimal span{
    font-size: 0.9rem;
  }

  .case-card p{
    font-size: 0.9rem;
  }
}



.choose-detail{
  background: #fff;
  text-align: center;
  padding: 40px 20px;
  margin-bottom: 2rem;
  border-radius: 16px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

.choose-detail-heading{
  text-align: center; 
  margin: 0 auto 30px auto; 
  display: flex;
  flex-direction: column;
  align-items: center; 
  justify-content: center;
}

.choose-detail-heading h2{
  font-size: 2.2rem;
  color: #003366;
  font-weight: 700;
  margin-bottom: 8px;
}

.choose-detail-heading p{
  font-size: 1rem;
  color: #888;
  letter-spacing: 0.25em;
  margin-bottom: 20px;
}

.choose-detail-heading img{
  width: 100%;
  padding: 10px 200px;
}



.check-list{
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 35px;
}


.check-item{
  display: flex;
  align-items: flex-start; 
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 5px 25px rgba(0, 0, 0, 0.05);
  padding: 35px 45px;
  border-left: 6px solid #0070c0;
  transition: all 0.3s ease;
  min-height: 180px; 
}

.check-item:hover{
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  border-left-color: #004c99;
}


.check-icon{
  font-size: 2.2rem;
  color: #0070c0;
  background: #e6f1ff;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 30px;
  flex-shrink: 0;
  margin-top: 5px; 
}


.check-content .check-number{
  display: inline-block;
  background: linear-gradient(135deg, #0070c0, #00a0e9);
  color: #fff;
  font-size: 1.1rem;
  font-weight: 700;
  padding: 6px 18px;
  border-radius: 30px;
  margin-bottom: 12px;
  letter-spacing: 0.05em;
  box-shadow: 0 3px 6px rgba(0,0,0,0.1);
}


.check-content h3{
  font-size: 1.5rem;
  color: #003366;
  margin-bottom: 12px;
  font-weight: 700;
}


.check-content p{
  color: #333;
  font-size: 1.1rem;
  line-height: 1.9;
  margin: 0;
}


.check-content{
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}



.detective-trouble{
  background: linear-gradient(180deg, #fdfdfd 0%, #f7fbff 100%);
  border: 2px solid #e1ecf7;
  border-radius: 16px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
  padding: 40px 50px;
  max-width: 1000px;
  margin: 30px auto;
  text-align: center;
  transition: box-shadow 0.3s ease;
}

.detective-trouble:hover{
  box-shadow: 0 10px 35px rgba(0, 70, 140, 0.15);
}

.detective-trouble h3{
  font-size: 2rem;
  color: #a02b2b; 
  margin-bottom: 25px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.detective-trouble p{
  font-size: 18px;
  color: #333;
  line-height: 1.9;
  margin-bottom: 30px;
}

.detective-trouble ul{
  list-style: none;
  padding: 0;
  margin: 0 auto 40px auto;
  max-width: 720px;
  text-align: left;
}

.detective-trouble li{
  font-size: 16px;
  color: #002a52;
  padding: 12px 0;
  border-bottom: 1px dashed #ccd9e6;
  position: relative;
  padding-left: 35px;
}

.detective-trouble li::before{
  content: "⚠";
  color: #e74c3c;
  position: absolute;
  left: 5px;
  top: 15px;
  font-size: 20px;
}

.trouble-note{
  background: #fff7d6;
  border-left: 6px solid #f2c94c;
  padding: 25px 30px;
  border-radius: 10px;
  display: inline-block;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
}

.trouble-note p{
  font-size: 18px;
  font-weight: 600;
  color: #333;
  margin: 0;
  line-height: 1.8;
}


.zero-title{
  text-align: center;
  margin-bottom: 30px;
}
.zero-title h2{
  font-size: 2.4rem;
  color: #003366;
  margin-top: 20px;
}
.zero-title p{
  font-size: 1rem;
  color: #777;
  letter-spacing: 0.15em;
}

@media screen and (min-width: 1025px){
  .zero-title img{
    max-width: 800px; 
    width: 90%;
    height: auto;
    margin: 0 auto;
    display: block;
  }

  .zero-title{
    margin-bottom: 60px; 
  }
}



.zero-lead-memo{
  max-width: 940px;
  margin: 0 auto 30px;
  background: #fffef9;
  position: relative;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.12);
  padding: 30px 90px 30px 110px;
  border: 1px solid #ddd;
  overflow: hidden;
}


.zero-lead-memo::before{
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(0,0,0,0.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0,0,0,0.08) 1px, transparent 1px),
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.3), rgba(245,245,245,0.7));
  background-size: 26px 26px, 26px 26px, 100% 100%;
  z-index: 0;
}


.zero-lead-memo::after{
  content: "";
  position: absolute;
  top: 0;
  left: 85px;
  width: 2px;
  height: 100%;
  background: rgba(255, 80, 80, 0.7);
  z-index: 1;
}


.memo-header{
  position: relative;
  z-index: 0;
  margin-bottom: 35px;
}

.memo-header .memo-label{
  display: inline-block;
  background: linear-gradient(90deg, #2a4b7c, #4368b1);
  color: #fff;
  padding: 6px 16px;
  border-radius: 3px;
  font-size: 16px;
  letter-spacing: 0.08em;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: rotate(-1deg);
}

.memo-header h3{
  margin-top: 15px;
  font-size: 24px;
  color: #1b2d44;
  font-weight: 700;
  line-height: 1.6;
  text-shadow: 1px 1px 0 rgba(255,255,255,0.8);
}


.memo-body{
  position: relative;
  z-index: 2;
  color: #333;
  font-size: 18px;
  line-height: 2.1;
}

.memo-body p{
  margin: 0;
}



.memo-body span.highlight{
  background: linear-gradient(transparent 60%, rgba(255, 240, 100, 0.6) 60%);
}


.zero-lead-memo .memo-sticky{
  position: absolute;
  bottom: -10px;
  right: 25px;
  background: #fff176;
  padding: 8px 16px;
  border-radius: 4px;
  font-size: 0.9rem;
  transform: rotate(2deg);
  box-shadow: 2px 3px 6px rgba(0,0,0,0.2);
}


.zero-lead-memo .memo-sticky::after{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  border-top: 14px solid rgba(0,0,0,0.08);
  border-left: 14px solid transparent;
}



.expense-infograph{
  max-width: 1000px;
  margin: 20px auto;
  background: linear-gradient(180deg, #f6f9fc 0%, #ffffff 100%);
  padding: 50px 100px;
  border-radius: 16px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 15px 35px rgba(0,0,0,0.1);
}


.expense-infograph::before{
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(90deg, rgba(0,0,0,0.02) 1px, transparent 1px),
                    linear-gradient(rgba(0,0,0,0.02) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}


.expense-heading{
  text-align: center;
  margin-bottom: 50px;
  position: relative;
}
.expense-heading i{
  font-size: 2rem;
  color: #1b3a6e;
}
.expense-heading h2{
  font-size: 1.9rem;
  color: #1b3a6e;
  margin: 8px 0 0 0;
  font-weight: 800;
  letter-spacing: 0.05em;
}
.expense-heading p{
  font-size: 0.9rem;
  color: #7b8a9d;
  margin: 5px 0 0 0;
  letter-spacing: 0.12em;
}


.expense-lead{
  background: #fff;
  padding: 15px 40px;
  border-left: 6px solid #e53935;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
  margin-bottom: 20px;
  text-align: center;
}
.expense-lead p{
  margin: 0;
  font-size: 18px;
  color: #333;
  line-height: 1.9;
}


.expense-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 20px;
}
.expense-card{
  background: #fff;
  border-radius: 12px;
  padding: 35px 25px 30px;
  text-align: center;
  box-shadow: 0 6px 15px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
  border-top: 4px solid #3a6ebc;
}
.expense-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 10px 22px rgba(0,0,0,0.12);
}
.expense-icon{
  background: #3a6ebc;
  color: #fff;
  font-size: 2rem;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.expense-icon.orange{ background: #f57c00; }
.expense-icon.navy{ background: #263f6a; }

.expense-card h3{
  font-size: 1.5rem;
  color: #1a2f4d;
  font-weight: 700;
  margin: 0 0 8px 0;
}
.expense-card p{
  font-size: 16px;
  color: #444;
  margin: 0;
  line-height: 1.8;
}


.expense-note{
  background: #fff9e6;
  border-left: 6px solid #f57c00;
  border-radius: 8px;
  padding: 25px 35px;
  text-align: center;
  font-size: 1.5rem;
  color: #222;
  line-height: 1.9;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.expense-note p{
  margin: 0;
}



.zero-truth-section{
  max-width: 1100px;
  margin: 20px auto;
  padding: 30px 60px;
  border-radius: 18px;
  background: linear-gradient(180deg, #fdf5f5 0%, #f8faff 100%);
  position: relative;
  box-shadow: 0 12px 30px rgba(0,0,0,0.1);
}


.zero-truth-header{
  text-align: center;
  margin-bottom: 30px;
}
.zero-truth-header h2{
  font-size: 2.5rem;
  color: #b71c1c;
  margin: 0;
  font-weight: 800;
  letter-spacing: 0.05em;
}


.zero-truth-flow{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  position: relative;
  flex-wrap: nowrap;
}


.flow-step{
  background: #fff;
  border-radius: 12px;
  padding: 20px 15px;
  text-align: center;
  flex: 1;
  box-shadow: 0 6px 14px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
}
.flow-step:hover{
  transform: translateY(-6px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}


.flow-icon{
  width: 70px;
  height: 70px;
  border-radius: 50%;
  margin: 0 auto 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: #fff;
  background: #1b3a6e;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.flow-icon.blue{ background: #3a6ebc; }
.flow-icon.orange{ background: #f57c00; }
.flow-icon.red{ background: #d32f2f; }


.flow-arrow{
  font-size: 2rem;
  color: #b0b0b0;
  flex-shrink: 0;
  opacity: 0.8;
}


.flow-step h3{
  font-size: 18px;
  color: #1c3051;
  margin: 0 0 8px 0;
  font-weight: 700;
}
.flow-step p{
  margin: 0;
  font-size: 16px;
  color: #333;
  line-height: 1.8;
}


.zero-truth-footer{
  margin-top: 30px;
  background: #fff8e6;
  border-left: 6px solid #f57c00;
  border-radius: 10px;
  padding: 20px 30px;
  text-align: center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.08);
}
.zero-truth-footer h4{
  color: #c62828;
  margin: 0 0 10px 0;
  font-size: 2rem;
  font-weight: 700;
}
.zero-truth-footer p{
  font-size: 18px;
  color: #333;
  margin: 0;
  line-height: 1.9;
}


.zero-truth-flow{
  display: flex;
  justify-content: space-between;
  align-items: stretch; 
  gap: 20px;
  position: relative;
  flex-wrap: nowrap;
}

.flow-step{
  flex: 1;
  display: flex;
  flex-direction: column; 
  justify-content: flex-start;
  min-height: 240px; 
  background: #fff;
  border-radius: 12px;
  padding: 20px 15px;
  text-align: center;
  box-shadow: 0 6px 14px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
}

.flow-step p{
  margin-top: auto; 
}



.trust-compare{
  max-width: 1100px;
  margin: 20px auto;
  padding: 30px 60px;
  border-radius: 16px;
  background: linear-gradient(90deg, #fff5f5 0%, #f5f9ff 100%);
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}


.trust-heading{
  text-align: center;
  margin-bottom: 20px;
}
.trust-heading h2{
  font-size: 2rem;
  color: #1b3153;
  margin: 0;
  font-weight: 800;
}


.trust-table{
  display: flex;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 20px;
}
.trust-column{
  flex: 1;
  border-radius: 14px;
  padding: 25px 20px;
  color: #fff;
  box-shadow: 0 6px 18px rgba(0,0,0,0.12);
  position: relative;
}
.trust-column h3{
  text-align: center;
  font-size: 2rem;
  margin: 0 0 20px 0;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.trust-column ul{
  list-style: none;
  padding: 0;
  margin: 0;
}
.trust-column li{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  margin: 12px 0;
  line-height: 1.8;
}


.trust-column.risky{
  background: linear-gradient(160deg, #e53935, #b71c1c);
}
.trust-column.risky h3 i{
  color: #ffebee;
}
.trust-column.risky li i{
  color: #ffebee;
}


.trust-column.safe{
  background: linear-gradient(160deg, #3a6ebc, #1b3a6e);
}
.trust-column.safe h3 i{
  color: #bbdefb;
}
.trust-column.safe li i{
  color: #bbdefb;
}


.trust-footer{
  background: #fff8e6;
  border-left: 6px solid #f57c00;
  border-radius: 10px;
  padding: 20px 30px;
  text-align: center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}
.trust-footer p{
  font-size: 18px;
  color: #333;
  margin: 0;
  line-height: 1.9;
}
.trust-footer strong{
  color: #d32f2f;
}


.trust-final-section{
  max-width: 1100px;
  margin: 20px auto 0;
  padding: 30px 80px;
  background: linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
  border-radius: 20px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
  text-align: center;
  position: relative;
}


.final-heading h2{
  font-size: 2rem;
  color: #1b3153;
  font-weight: 800;
  margin: 0;
  letter-spacing: 0.05em;
}


.final-message{
  margin: 20px auto;
  font-size: 16px;
  color: #333;
  line-height: 2;
  max-width: 800px;
}
.final-message strong{
  color: #1b3a6e;
}


.final-cta{
  background: linear-gradient(135deg, #1b3a6e, #3a6ebc);
  color: #fff;
  border-radius: 16px;
  padding: 10px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}
.final-cta h3{
  font-size: 2rem;
  margin: 0 0 10px 0;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.final-cta p{
  font-size: 18px;
  margin: 0 0 25px 0;
  color: #e0e8ff;
}


.cta-button{
  display: inline-block;
  background: #ffcc00;
  color: #1b3153;
  font-weight: 700;
  text-decoration: none;
  padding: 14px 40px;
  border-radius: 50px;
  font-size: 18px;
  transition: all 0.3s ease;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
}
.cta-button:hover{
  background: #ffe066;
  transform: translateY(-3px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.25);
}




.zero-page-wrapper{
  position: relative;
  background: linear-gradient(180deg, #f8faff 0%, #ffffff 40%, #f7f9fc 100%);
  background-attachment: fixed;
  padding: 30px 0 0;
  margin-bottom: 50px;
  overflow: hidden;
  border-radius: 16px;
  background: linear-gradient(90deg, #fff5f5 0%, #f5f9ff 100%);
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);

}


.zero-page-wrapper::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
  radial-gradient(circle at 25% 15%, rgba(255,255,255,0.8), transparent 70%),
  radial-gradient(circle at 80% 85%, rgba(205,220,255,0.3), transparent 80%);
  z-index: 0;
  pointer-events: none;
}


.zero-page-wrapper > *{
  position: relative;
  z-index: 0;
}


:root{
  --brand: #1554ff;
  --ink: #222;
  --muted: #555;
  --line: #e6e9ef;
  --bg: #f5f7ff;
}


.sp-inquiry{
  background: linear-gradient(180deg, var(--bg) 0%, #ffffff 100%);
  padding: 14px 10px 0;
  margin-bottom: 2rem;
}

.sp-inquiry__card{
  width: 100%;
  margin: 0 auto;
  background: #fff;
  border-radius: 12px;
  padding: 20px 10px 30px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.sp-inquiry__title{
  font-size: 1.5rem;
  font-weight: 800;
  text-align: center;
  color: var(--ink);
  margin-bottom: 10px;
  letter-spacing: 0.05em;
}

.sp-inquiry__lead{
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: var(--muted);
  text-align: center;
  margin-bottom: 16px;
}
.sp-inquiry__lead strong{ color: var(--ink); }

.sp-inquiry__trust{
  background: #f6f9ff;
  border-left: 4px solid var(--brand);
  border-radius: 8px;
  font-size: 14px;
  color: #455066;
  letter-spacing: 0.05em;
  margin-bottom: 20px;
  padding: 10px 16px;
}
.sp-inquiry__trust li{
  list-style: none;
  margin: 5px 0;
  padding-left: 18px;
  position: relative;
}
.sp-inquiry__trust li::before{
  content: "●";
  position: absolute;
  left: 0;
  color: var(--brand);
  font-size: 0.6rem;
}

.fi{ margin: 14px 0 10px; }

.fi label,.fi legend{
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
  display: block;
}

.req{
  color: #fff;
  background: #ff4757;
  font-size: 0.75rem;
  padding: 1px 6px;
  border-radius: 10px;
  margin-left: 4px;
}

.fi input,.fi select,.fi textarea{
  width: 100%;
  padding: 3px 0 3px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 1rem;
  box-sizing: border-box;
  background-color: #fff;
}
.fi input:focus,.fi select:focus,.fi textarea:focus{
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(21, 84, 255, 0.15);
  outline: none;
}

.fi textarea{
  width: 100%;
  min-height: 200px; 
  padding: 14px 12px;
  margin: 0;
  border: 1px solid #ccc;
  border-radius: 8px;
  font-size: 1rem;
  line-height: 1.6;
  resize: vertical;
  box-sizing: border-box;
  background-color: #fff;
}

.fi textarea::placeholder{
  color: #888;
  font-size: 0.9rem;
  line-height: 1.6;
  white-space: pre-line; 
}



.toggle-group{
  display: flex;
  gap: 12px;
  margin-top: 6px;
}

.toggle-group input[type="radio"]{
  display: none;
}

.toggle-group label{
  flex: 1;
  text-align: center;
  padding: 10px 0;
  border-radius: 30px;
  border: 1px solid #ccd2ff;
  background: #f3f5ff;
  color: #333;
  font-weight: 600;
  font-size: 0.95rem;
  transition: all 0.25s ease;
  cursor: pointer;
}

.toggle-group input[type="radio"]:checked + label{
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
  box-shadow: 0 3px 10px rgba(21, 84, 255, 0.25);
}


.sp-submit-btn{
  width: 100%;
  background: linear-gradient(90deg, var(--brand), #3f6bff);
  color: #fff;
  border: none;
  border-radius: 40px;
  padding: 0;
  font-size: 1.05rem;
  font-weight: 700;
  box-shadow: 0 8px 20px rgba(21, 84, 255, 0.25);
  transition: 0.2s;
}
.sp-submit-btn:hover{
  filter: brightness(0.98);
  transform: translateY(-1px);
}

.sp-inquiry__privacy{
  font-size: 0.8rem;
  color: #777;
  text-align: center;
  margin: 12px 0 0;
}
.sp-inquiry__privacy a{
  color: var(--brand);
  text-decoration: underline;
}


@media (min-width: 751px){
  .sp-inquiry{ display: none; }
}



.fv-sp{
  position: relative;
  overflow: hidden;
  padding: 30px 10px 0;
  text-align: center;
  color: #222;
  min-height: 350px; 
  background: #fff;
}


.fv-bg{
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.82);
  z-index: 0;
}


.fv-inner{
  position: relative;
  z-index: 1;
  padding: 40px 10px 40px; 
  background: rgba(255, 255, 255, 0.75);
  border-radius: 16px;
  margin: 0 12px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}


.fv-title{
  font-size: 16px;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
  color: #111;
}


.fv-sub{
  font-size: 14px;
  line-height: 1.7;
  color: #333;
  margin-bottom: 20px;
}


.fv-points{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
  padding: 0;
}
.fv-points li{
  list-style: none;
  font-size: 14px;
  font-weight: 700;
  color: #1554ff;
  background: #f3f7ff;
  border: 1px solid #d7dfff;
  border-radius: 50px;
  padding: 6px 14px;
}


.fv-cta-btn{
  display: inline-block;
  background: linear-gradient(90deg, #1554ff, #3f6bff);
  color: #fff;
  font-weight: 700;
  border-radius: 50px;
  padding: 14px 0;
  width: 100%;
  max-width: 280px;
  box-shadow: 0 6px 18px rgba(21,84,255,0.25);
  transition: 0.25s ease;
  text-decoration: none;
  font-size: 1rem;
  letter-spacing: 0.05em;
}
.fv-cta-btn:hover{
  filter: brightness(0.95);
}


@media (min-width: 751px){
  .fv-sp{ display: none; }
}



.soudan-safe{
  background: linear-gradient(180deg, #f8faff 0%, #ffffff 100%);
  padding: 50px 16px 20px;
  text-align: center;
  color: #111;
}

.soudan-safe-title{
  font-size: 18px;
  font-weight: 800;
  line-height: 1.6;
  color: #0f2d6b;
  margin-bottom: 20px;
}


.soudan-safe-list{
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 0;
}

.soudan-safe-item{
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e3e9ff;
  box-shadow: 0 3px 12px rgba(0,0,0,0.05);
  padding: 20px 16px;
  text-align: left;
}

.soudan-safe-item-title{
  font-size: 16px;
  font-weight: 700;
  color: #222;
  margin-bottom: 6px;
}

.soudan-safe-item-text{
  font-size: 14px;
  line-height: 1.6;
  color: #333;
  margin: 0;
}


@media (min-width: 751px){
  .soudan-safe{ display: none; }
}




.soudan-safe-title{
  position: relative;
  display: inline-block;
  padding-bottom: 6px;
  margin-bottom: 32px;
}
.soudan-safe-title::after{
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
  margin-top: 5px;
  background: linear-gradient(90deg, #1554ff, #3f6bff);
  border-radius: 2px;
}


.soudan-safe-item{
  background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
  border: 1px solid #dbe3ff;
  border-radius: 14px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.04);
  padding: 20px 16px;
  text-align: left;
}


.soudan-safe-item-title{
  position: relative;
  padding-left: 12px;
  font-weight: 700;
  color: #111;
}
.soudan-safe-item-title::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 4px;
  height: 18px;
  background: #3f6bff;
  border-radius: 2px;
}


.soudan-safe{
  background: linear-gradient(180deg, #f8faff 0%, #ffffff 75%);
}


.soudan-safe-next{
  margin-top: 24px;
  text-align: center;
  color: #222;
  font-size: 16px;
  line-height: 1.6;
  opacity: 0.9;
}


.soudan-safe-next .arrow-down{
  display: block;
  width: 18px;
  height: 18px;
  margin: 10px auto 0;
  border-left: 3px solid #1554ff;
  border-bottom: 3px solid #1554ff;
  transform: rotate(-45deg);
  animation: arrowBounce 1.6s infinite;
  opacity: 0.8;
}

@keyframes arrowBounce{
  0%, 100% { transform: translateY(0) rotate(-45deg); }
  50% { transform: translateY(5px) rotate(-45deg); }
}



.soudan-bottom-cta{
  background: linear-gradient(180deg, #f8faff 0%, #ffffff 100%);
  padding: 40px 16px 50px;
  text-align: center;
  border-top: 1px solid #e6ecff;
}


.soudan-bottom-inner{
  max-width: 500px;
  margin: 0 auto;
}


.soudan-bottom-lead{
  font-size: 16px;
  font-weight: 600;
  color: #222;
  margin-bottom: 14px;
}


.soudan-bottom-links{
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 14px;
}

.soudan-bottom-links a{
  flex: 1;
  max-width: 180px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 12px 0;
  border-radius: 8px;
  font-weight: 700;
  text-decoration: none;
  color: #fff;
  font-size: 16px;
  transition: 0.2s ease;
}


.soudan-bottom-links a.call{
  background: #0088cc; 
  box-shadow: 0 4px 10px rgba(0,136,204,0.25);
}
.soudan-bottom-links a.call:hover{
  filter: brightness(0.93);
}


.soudan-bottom-links a.line{
  background: #06c755;
  box-shadow: 0 4px 10px rgba(6,199,85,0.25);
}
.soudan-bottom-links a.line:hover{
  filter: brightness(0.93);
}


.soudan-bottom-note{
  font-size: 14px;
  color: #666;
  line-height: 1.6;
  opacity: 0.9;
}


.soudan-bottom-links a i{
  margin-right: 6px;
  font-size: 1.5rem;
  vertical-align: middle;
}


@media (min-width: 751px){
  .soudan-bottom-cta{ display: none; }
}


.hero{
  position: relative;
  width: 100%;
  height: 55vh; 
  overflow: hidden;
}

.hero picture img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: brightness(0.95); 
}

.hero-overlay{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 1em;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.1) 0%,  
    rgba(0, 0, 0, 0.3) 100%
  );
}

.hero-copy{
  text-align: center;
  color: #fff;
  max-width: 400px;
  margin-top: -1em; 
  background: rgba(0, 0, 0, 0.3);
  padding: 1em 0.8em;
  border-radius: 10px;
  backdrop-filter: blur(2px);
}

.hero-copy h2{
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: 0.5em;
  text-shadow: 0 2px 4px rgba(0,0,0,0.35);
}

.hero-copy p{
  font-size: 16px;
  margin-bottom: 1em;
  letter-spacing: 0.05em;
  text-shadow: 0 2px 4px rgba(0,0,0,0.35);
}

.hero-cta{
  display: flex;
  flex-direction: column;
  gap: 1em; 
}

.hero-cta a{
  display: inline-block;
  padding: 0.65em 1em; 
  border-radius: 6px;
  font-weight: 600;
  font-size: 14px;
  left: auto0.05em;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 3px 8px rgba(0,0,0,0.25);
  transition: all 0.2s ease;
}


.btn-tel{
  background: linear-gradient(90deg, #c85c68 0%, #a94d56 100%);
}
.btn-mail{
  background: linear-gradient(90deg, #2d8cf0 0%, #1b6fd1 100%);
}
.btn-line{
  background: linear-gradient(90deg, #06c755 0%, #04b94e 100%);
}

.hero-cta a:hover{
  opacity: 0.9;
  transform: scale(1.02);
}


.uwaki-sign{
  background: #f8faff;
  padding: 2.5em 1.2em;
  text-align: center;
}

.uwaki-sign h2{
  font-size: 1.3rem;
  font-weight: 700;
  color: #333;
  margin-bottom: 1em;
  line-height: 1.4;
}
.uwaki-sign h2 span{
  color: #b64b5b; 
}

.uwaki-sign .lead{
  font-size: 0.95rem;
  color: #444;
  line-height: 1.7;
  margin-bottom: 1.5em;
}

.sign-list{
  list-style: none;
  text-align: left;
  max-width: 500px;
  margin: 0 auto 2em;
  padding: 0;
}
.sign-list li{
  background: #fff;
  margin-bottom: 0.6em;
  padding: 0.8em 1em;
  border-left: 5px solid #b64b5b;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  font-size: 0.9rem;
  color: #333;
}

.cta-mini{
  text-align: center;
  background: #fff;
  border-radius: 12px;
  padding: 1.2em;
  box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}
.cta-mini p{
  font-size: 0.9rem;
  color: #555;
  margin-bottom: 1em;
}
.btn-consult{
  display: inline-block;
  background: linear-gradient(90deg, #007bff 0%, #005fcc 100%);
  color: #fff;
  padding: 0.7em 1.4em;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none;
  font-size: 0.9rem;
}
.btn-consult:hover{
  opacity: 0.9;
}


.uwaki-sign.trendy{
  background: linear-gradient(180deg, #f9fbff 0%, #fefefe 100%);
  padding: 2em 1.5em;
  text-align: center;
}

.uwaki-sign.trendy h2{
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #222;
  margin-bottom: 1em;
  line-height: 1.5;
}
.uwaki-sign.trendy h2 i{
  color: #b64b5b;
  margin-right: 0.3em;
}

.uwaki-sign.trendy .lead{
  font-size: 16px;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
  margin-bottom: 1em;
}

.sign-list{
  list-style: none;
  padding: 0;
  margin: 0 auto 1em;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  max-width: 500px;
}

.sign-list li{
  background: #fff;
  border-radius: 12px;
  padding: 0.5em 1em;
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #333;
  display: flex;
  align-items: center;
  gap: 0.6em;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.sign-list li:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.1);
}
.sign-list i{
  color: #b64b5b;
  font-size: 1rem;
  flex-shrink: 0;
}

.cta-mini{
  background: linear-gradient(135deg, #f0f6ff 0%, #e4edff 100%);
  border-radius: 14px;
  padding: 1em;
  box-shadow: 0 6px 20px rgba(0,0,0,0.08);
}
.cta-mini p{
  font-size: 16px;
  letter-spacing: 0.03em;
  color: #444;
  margin-bottom: 1em;
  line-height: 1.6;
}
.btn-consult{
  display: inline-block;
  background: linear-gradient(90deg, #2d8cf0 0%, #1b6fd1 100%);
  color: #fff;
  padding: 0.7em 1.6em;
  border-radius: 50px;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.03em;
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: 0 4px 12px rgba(45, 140, 240, 0.3);
}
.btn-consult:hover{
  transform: scale(1.03);
  opacity: 0.95;
}


.law-difference{
  background: #fff;
  padding: 1em 1.5em;
  text-align: left;
}

.law-difference h2{
  text-align: center;
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #222;
  margin-bottom: 1em;
}
.law-difference h2 i{
  color: #b64b5b;
  margin-right: 0.4em;
}

.law-difference .lead{
  text-align: center;
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #444;
  line-height: 1.7;
  margin-bottom: 1em;
}

.law-box{
  background: linear-gradient(180deg, #f9f9fb 0%, #f1f3f8 100%);
  border-left: 4px solid #b64b5b;
  border-radius: 12px;
  padding: 1em;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #333;
  line-height: 1.8;
}
.law-box blockquote{
  background: #fff;
  margin: 1.2em 0 0;
  padding: 0.8em 1em;
  border-left: 4px solid #007bff;
  border-radius: 8px;
  font-size: 14px;
  color: #2a2a2a;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}


.summary{
  margin-top: 1em;
  background: #f3f6fa; 
  border-top: 2px solid #007bff;
  border-bottom: 2px solid #007bff;
  padding: 1em 0.5em 0;
  font-size: 16px;
  letter-spacing: 0.03em;
  color: #1a2a4a;
  line-height: 1.9;
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.01em;
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
  border-radius: 6px;
}
.summary strong{
  color: #005fcc;
  font-weight: 700;
}

.summary::after{
  content: "\f107"; 
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  display: block;
  text-align: center;
  color: #007bff;
  font-size: 18px;
  opacity: 0.7;
}



.proof-section{
  background: linear-gradient(180deg, #fff6f6 0%, #fff1f4 100%);
  padding: 3em 1em 1em;
}
.proof-section h2{
  text-align: center;
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #3a2a2a;
  margin-bottom: 1.5em;
}
.proof-section h2 i{
  color: #b64b5b; 
  margin-right: 0.4em;
}
.proof-section .lead{
  text-align: center;
  color: #5a4a4a;
  font-size: 16px;
  letter-spacing: 0.03em;
  margin-bottom: 1em;
  line-height: 1.7;
}

.proof-section .lead::after{
  content: "\f107"; 
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  display: block;
  text-align: center;
  color: #5a4a4a;
  font-size: 18px;
  opacity: 0.7;
}


.proof-card{
  background: #fff;
  border-radius: 14px;
  border: 1px solid #f2d6da;
  box-shadow: 0 6px 16px rgba(182, 75, 91, 0.08);
  overflow: hidden;
  margin-bottom: 1em;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.proof-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(182, 75, 91, 0.15);
}
.proof-img img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.proof-body{
  padding: 1em;
  text-align: left;
}
.proof-body h3{
  font-size: 16px;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #402a2a;
  margin-bottom: 0.6em;
}
.proof-body h3 i{
  color: #b64b5b;
  margin-right: 0.4em;
}
.proof-body p{
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #2f2f2f;
  line-height: 1.8;
  margin-bottom: 0.8em;
}
.proof-body p strong{
  color: #a43747;
  font-weight: 700;
}
.point{
  background: #fff8f8;
  border-left: 4px solid #b64b5b;
  border-radius: 6px;
  padding: 0.7em 0.8em;
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #402a2a;
  line-height: 1.6;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
}
.point i{
  color: #b64b5b;
  margin-right: 0.4em;
}


.proof-summary{
  background: linear-gradient(180deg, #fff1f4 0%, #ffe9eb 100%);
  border-top: 2px solid #b64b5b;
  border-bottom: 2px solid #b64b5b;
  border-radius: 6px;
  padding: 1em;
  text-align: center;
  color: #3a2a2a;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 1.8;
  box-shadow: 0 4px 14px rgba(182, 75, 91, 0.08);
}
.proof-summary strong{
  color: #a43747;
  font-weight: 700;
}


.after-proof{
  background: linear-gradient(180deg, #ffffff 0%, #f7f8fa 100%);
  padding: 3em 1em 1em;
  margin-bottom: 2em;
}
.after-proof h2{
  text-align: center;
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #222;
  margin-bottom: 1em;
}
.after-proof h2 i{
  color: #b64b5b;
  margin-right: 0.4em;
}
.after-proof .lead{
  text-align: center;
  font-size: 16px;
  color: #444;
  line-height: 1.8;
  margin-bottom: 1em;
}


.after-steps{
  display: flex;
  flex-direction: column;
  gap: 1em;
}
.step{
  background: #fff;
  border-radius: 12px;
  border-left: 4px solid #b64b5b;
  padding: 1em;
  box-shadow: 0 4px 10px rgba(0,0,0,0.04);
}
.step h3{
  font-size: 16px;
  letter-spacing: 0.03em;
  color: #2b2b2b;
  font-weight: 700;
  margin-bottom: 0.5em;
}
.step h3 i{
  color: #b64b5b;
  margin-right: 0.5em;
}
.step p{
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #444;
  line-height: 1.7;
}


.after-summary{
  background: linear-gradient(180deg, #f3f6fa 0%, #eaf0f8 100%);
  border-top: 2px solid #007bff;
  border-bottom: 2px solid #007bff;
  border-radius: 6px;
  padding: 1em;
  margin-top: 1em;
  text-align: center;
  color: #1a2a4a;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 1.8;
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}
.after-summary strong{
  color: #005fcc;
  font-weight: 700;
}


.other-menu{
  background: linear-gradient(180deg, #fff 0%, #fff5f7 100%);
  padding: 1em;
  margin-bottom: 2rem;
  text-align: center;
}
.other-menu h2{
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #3a2a2a;
  margin-bottom: 1em;
}
.other-menu h2 i{
  color: #b64b5b;
  margin-right: 0.4em;
}
.other-menu .lead{
  font-size: 16px;
  letter-spacing: 0.03em;
  color: #555;
  margin-bottom: 1.6em;
}
.menu-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2em;
  justify-items: center;
}
.menu-item{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 10px;
  padding: 1em;
  border: 1px solid #f0d6da;
  box-shadow: 0 4px 12px rgba(182, 75, 91, 0.08);
  text-decoration: none;
  color: #333;
  font-size: 0.9rem;
  font-weight: 600;
  width: 100%;
  transition: all 0.2s ease;
}
.menu-item i{
  font-size: 1.4rem;
  color: #b64b5b;
  margin-bottom: 0.4em;
}
.menu-item:hover{
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(182, 75, 91, 0.15);
}


.jirei-section{
  background: #fff;
  padding: 2em;
}
.jirei-section h2{
  text-align: center;
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #222;
  margin-bottom: 1.2em;
}
.jirei-section h2 i{
  color: #b64b5b;
  margin-right: 0.4em;
}
.jirei-section .lead{
  text-align: center;
  color: #555;
  font-size: 16px;
  letter-spacing: 0.03em;
  margin-bottom: 1em;
}

.jirei-grid{
  display: flex;
  flex-direction: column;
  gap: 1em;
  align-items: center;
}
.jirei-card{
  display: block;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0,0,0,0.05);
  transition: all 0.25s ease;
}
.jirei-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 8px 22px rgba(0,0,0,0.08);
}
.jirei-card img{
  width: 100%;
  height: auto;
  border-radius: 10px;
}


.yukue-hook{
  background: linear-gradient(180deg, #f8fafc 0%, #eef4fb 100%);
  padding: 28px 18px 34px;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  font-family: "Noto Sans JP", sans-serif;
}

.yukue-hook .inner{
  max-width: 640px;
  margin: 0 auto;
}


.yukue-hook h2{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  letter-spacing: 0.03em;
  line-height: 1.6;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 12px;
}

.yukue-hook h2 i{
  color: #2563eb;
  font-size: 18px;
}


.yukue-hook .lead{
  color: #475569;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 1.85;
  margin: 0 0 20px;
}


.yukue-hook .case-list{
  list-style: none;
  margin: 10px 0 24px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.yukue-hook .case-list li{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: #ffffff;
  border: 1px solid #dbe2eb;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 14px;
  letter-spacing: 0.03em;
  line-height: 1.6;
  color: #334155;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.yukue-hook .case-list li i{
  color: #0ea5e9;
  flex: 0 0 auto;
  margin-top: 5px;
  font-size: 1rem;
}


.yukue-hook .cta-mini{
  background: #e0ecff;
  border: 1px solid #bfd3f9;
  border-radius: 14px;
  padding: 14px 16px;
  text-align: center;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.15);
}

.yukue-hook .cta-mini p{
  margin: 0 0 10px;
  color: #1e293b;
  font-size: 16px;
}

.yukue-hook .cta-mini .btn-consult{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 999px;
  background: #2563eb;
  border: 1px solid #1d4ed8;
  color: #fff;
  font-size: 16px;
  letter-spacing: 0.03em;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 10px rgba(37, 99, 235, 0.25);
  transition: background 0.2s ease, transform 0.1s ease;
}

.yukue-hook .cta-mini .btn-consult:active{
  transform: translateY(1px);
  background: #1d4ed8;
}


@media (min-width: 480px){
  .yukue-hook{
    padding: 36px 22px 40px;
  }
  .yukue-hook h2{
    font-size: 1.35rem;
  }
  .yukue-hook .case-list li{
    font-size: 1rem;
  }
}


.yukue-about{
  background: #ffffff;
  padding: 36px 18px 40px;
  border-bottom: 1px solid #e2e8f0;
  font-family: "Noto Sans JP", sans-serif;
}

.yukue-about .inner{
  max-width: 640px;
  margin: 0 auto;
}

.yukue-about h2{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 14px;
}

.yukue-about h2 i{
  color: #2563eb;
  font-size: 1.1em;
}

.yukue-about .lead{
  color: #475569;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 1.9;
  margin-bottom: 22px;
}


.yukue-about .about-points{
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 28px;
}

.yukue-about .point{
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 14px 16px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.yukue-about .point i{
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #0ea5e9;
  margin-bottom: 6px;
}

.yukue-about .point h3{
  font-size: 1rem;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 6px;
}

.yukue-about .point p{
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #475569;
  line-height: 1.7;
}


@media (min-width: 480px){
  .yukue-about{ padding: 42px 24px 46px; }
  .yukue-about h2{ font-size: 1.35rem; }
  .yukue-about .point h3{ font-size: 1.05rem; }
}


.nagare-flow{
  background: linear-gradient(180deg, #2a4cb3 0%, #1e3a8a 100%);
  color: #f8fafc;
  padding: 40px 18px 46px;
  font-family: "Noto Sans JP", sans-serif;
}

.nagare-flow .nagare-inner{
  max-width: 640px;
  margin: 0 auto;
}

.nagare-flow h2{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 14px;
}

.nagare-flow h2 i{
  color: #60a5fa;
  font-size: 1.2em;
}

.nagare-flow .nagare-lead{
  color: #e2e8f0;
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 1.9;
  margin-bottom: 26px;
}


.nagare-flow .nagare-steps{
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 32px;
}

.nagare-flow .nagare-step{
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 14px;
  padding: 14px 16px;
  backdrop-filter: blur(3px);
}

.nagare-flow .nagare-icon{
  text-align: center;
  margin-bottom: 8px;
  color: #bfdbfe;
}

.nagare-flow .nagare-icon i{
  font-size: 1.6rem;
  color: #93c5fd;
}

.nagare-flow .nagare-step h3{
  font-size: 1rem;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #ffffff;
  text-align: center;
  margin-bottom: 6px;
}

.nagare-flow .nagare-step p{
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #e2e8f0;
  line-height: 1.7;
  text-align: center;
}


@media (min-width: 480px){
  .nagare-flow{ padding: 48px 24px 54px; }
  .nagare-flow h2{ font-size: 1.35rem; }
  .nagare-flow .nagare-step h3{ font-size: 1.05rem; }
}



.yukue-result{
  background: linear-gradient(180deg, #f1f5f9 0%, #e2e8f0 100%);
  padding: 40px 18px 46px;
  font-family: "Noto Sans JP", sans-serif;
}

.yukue-result .inner{
  max-width: 640px;
  margin: 0 auto;
}


.yukue-result h2{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 16px;
  letter-spacing: 0.03em;
}

.yukue-result h2 i{
  color: #2563eb;
  font-size: 1.2em;
}


.yukue-result .lead{
  color: #334155;
  font-size: 16px;
  line-height: 1.9;
  margin-bottom: 26px;
  letter-spacing: 0.03em;
}


.yukue-result .result-grid{
  display: flex;
  flex-direction: column;
  gap: 16px;
}


.yukue-result .result-item{
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.05);
}

.yukue-result .result-item i{
  font-size: 20px;
  color: #0284c7;
  margin-bottom: 8px;
}

.yukue-result .result-item h3{
  font-size: 16px;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 6px;
  letter-spacing: 0.03em;
}

.yukue-result .result-item p{
  font-size: 14px;
  color: #475569;
  line-height: 1.8;
  letter-spacing: 0.03em;
}


@media (min-width: 480px){
  .yukue-result{
    padding: 48px 24px 54px;
  }
  .yukue-result .result-grid{
    gap: 18px;
  }
  .yukue-result .result-item{
    padding: 18px 20px;
  }
}


.yukue-summary{
  background: linear-gradient(180deg, #fef8f3 0%, #fdebd3 100%); 
  color: #3a2f2f;
  padding: 46px 20px 54px;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
}

.yukue-summary .inner{
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}

.yukue-summary h2{
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #4b2c16; 
  letter-spacing: 0.03em;
}

.yukue-summary h2 i{
  color: #d97706; 
}

.yukue-summary .lead{
  font-size: 16px;
  line-height: 1.9;
  margin-bottom: 30px;
  color: #5a4635;
  letter-spacing: 0.03em;
}


.summary-points{
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin-bottom: 34px;
}

.summary-points .point{
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(250, 180, 80, 0.3);
  border-radius: 12px;
  padding: 18px 20px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.summary-points .point i{
  color: #eab308; 
  font-size: 20px;
  margin-bottom: 6px;
}

.summary-points .point h3{
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 6px;
  color: #4b2c16;
  letter-spacing: 0.03em;
}

.summary-points .point p{
  font-size: 14px;
  color: #5a4635;
  line-height: 1.8;
  letter-spacing: 0.03em;
}


.sinyou-scenarios{
  background: linear-gradient(180deg, #f7f9fc 0%, #eef3f9 100%);
  color: #1e293b;
  padding: 46px 20px 54px;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
}

.sinyou-scenarios .inner{
  max-width: 640px;
  margin: 0 auto;
}

.sinyou-scenarios h2{
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #1e3a8a;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 20px;
}

.sinyou-scenarios h2 i{
  color: #2563eb;
}

.sinyou-scenarios .lead{
  font-size: 16px;
  color: #334155;
  line-height: 1.8;
  text-align: center;
  margin-bottom: 26px;
  letter-spacing: 0.03em;
}

.scenario-list{
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 2rem;
}

.scenario-list li{
  background: #ffffff;
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #1e293b;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  transition: all 0.25s ease;
  letter-spacing: 0.03em;
}

.scenario-list li i{
  color: #2563eb;
  font-size: 16px;
}

.scenario-list li:hover{
  transform: translateY(-2px);
  background: #f0f6ff;
}


.sinyou-details{
  background: linear-gradient(180deg, #eef3f9 0%, #e2eaf4 100%);
  color: #1e293b;
  padding: 46px 20px 54px;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
}

.sinyou-details .inner{
  max-width: 640px;
  margin: 0 auto;
}

.sinyou-details h2{
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #1e3a8a;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 20px;
  text-align: center;
}

.sinyou-details h2 i{
  color: #2563eb;
}

.sinyou-details .lead{
  font-size: 16px;
  color: #334155;
  text-align: center;
  line-height: 1.8;
  margin-bottom: 34px;
  letter-spacing: 0.03em;
}


.detail-cards{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.detail-cards .card{
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid rgba(37, 99, 235, 0.1);
  padding: 20px 16px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.05);
  transition: all 0.25s ease;
}

.detail-cards .card:hover{
  background: #f0f6ff;
  transform: translateY(-3px);
}

.detail-cards .card i{
  font-size: 22px;
  color: #2563eb;
  margin-bottom: 10px;
}

.detail-cards .card h3{
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
  color: #1e293b;
  letter-spacing: 0.03em;
}

.detail-cards .card p{
  font-size: 14px;
  color: #475569;
  line-height: 1.7;
  letter-spacing: 0.03em;
}

.sinyou-details .summary{
  margin-top: 28px;
  text-align: center;
  font-size: 15px;
  color: #1e293b;
  line-height: 1.8;
  letter-spacing: 0.03em;
}


.sinyou-types{
  background: linear-gradient(180deg, #f7f9fc 0%, #eef3f9 100%);
  color: #1e293b;
  padding: 46px 20px 54px;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
}

.sinyou-types .inner{
  max-width: 640px;
  margin: 0 auto;
}

.sinyou-types h2{
  font-size: 18px;
  font-weight: 700;
  color: #1e3a8a;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 20px;
  text-align: center;
  letter-spacing: 0.03em;
}

.sinyou-types h2 i{
  color: #2563eb;
}

.sinyou-types .lead{
  font-size: 16px;
  color: #334155;
  text-align: center;
  line-height: 1.8;
  margin-bottom: 34px;
  letter-spacing: 0.03em;
}

.type-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.type-card{
  background: #ffffff;
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 12px;
  padding: 20px 16px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  transition: all 0.25s ease;
}

.type-card:hover{
  background: #f0f6ff;
  transform: translateY(-2px);
}

.type-card i{
  font-size: 22px;
  color: #2563eb;
  margin-bottom: 8px;
}

.type-card h3{
  font-size: 16px;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 6px;
  letter-spacing: 0.03em;
}

.type-card p{
  font-size: 14px;
  color: #475569;
  line-height: 1.7;
  letter-spacing: 0.03em;
}



.sinyou-case{
  background: #f0f4fa; 
  color: #1e293b;
  padding: 46px 20px 54px;
  font-family: "Noto Sans JP", sans-serif;
}

.sinyou-case .inner{
  max-width: 640px;
  margin: 0 auto;
}

.sinyou-case h2{
  font-size: 18px;
  font-weight: 700;
  color: #243c5a; 
  text-align: center;
  margin-bottom: 20px;
  letter-spacing: 0.03em;
}

.sinyou-case h2 i{
  color: #2563eb; 
}

.sinyou-case .lead{
  font-size: 16px;
  color: #475569;
  text-align: center;
  line-height: 1.8;
  margin-bottom: 34px;
  letter-spacing: 0.03em;
}

.case-list{
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

.case-card{
  background: #ffffff; 
  border-radius: 12px;
  padding: 22px 18px;
  color: #1e293b;
  border: 1px solid #d9e2ef;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transition: all 0.25s ease;
}

.case-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.case-card i{
  font-size: 22px;
  margin-bottom: 8px;
  color: #2563eb;
}

.case-card h3{
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 6px;
  letter-spacing: 0.03em;
  color: #1e3a8a;
}

.case-card p{
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: #374151;
  letter-spacing: 0.03em;
}

.case-card .result{
  font-weight: 700;
  color: #2563eb;
  margin-top: 8px;
  letter-spacing: 0.03em;
}


.sinyou-summary{
  background: linear-gradient(180deg, #f9f7f4 0%, #f3f2ef 100%);
  color: #2d2d2d;
  padding: 60px 20px;
  font-family: "Noto Sans JP", sans-serif;  
}

.sinyou-summary .inner{
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}

.sinyou-summary h2{
  font-size: 18px;
  font-weight: 700;
  color: #946c2c; 
  margin-bottom: 24px;
  letter-spacing: 0.03em;
}

.sinyou-summary h2 i{
  color: #e6a04b; 
  margin-right: 6px;
}

.sinyou-summary p{
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 18px;
  color: #444;
  letter-spacing: 0.03em;
}

.sinyou-summary strong{
  color: #7b5539; 
  font-weight: 600;
}

.summary-point{
  background: #fff;
  border: 1px solid #e6d9c5;
  border-radius: 12px;
  padding: 20px;
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.summary-point i{
  font-size: 24px;
  color: #e6a04b;
  margin-bottom: 10px;
}

.summary-point p{
  font-size: 14px;
  color: #555;
  line-height: 1.7;
  letter-spacing: 0.03em;
}


.stalker-hook{
  background: linear-gradient(180deg, #fff 0%, #f8f9fb 100%);
  padding: 40px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
}

.hook-image img{
  width: 100%;
  max-width: 640px;
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.15);
  margin-bottom: 20px;
}

.hook-text{
  text-align: center;
  max-width: 640px;
}

.hook-text h2{
  font-size: 18px;
  color: #b71c1c;
  margin-bottom: 18px;
  letter-spacing: 0.03em;
}

.hook-text h2 i{
  color: #d32f2f;
  margin-right: 6px;
}

.hook-text p{
  font-size: 15px;
  color: #333;
  line-height: 1.8;
  margin-bottom: 14px;
}

.hook-text strong{
  color: #b71c1c;
}

.hook-btn{
  margin-top: 24px;
}

.hook-btn .btn-consult{
  display: inline-block;
  background: #1e3a8a;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  padding: 12px 26px;
  border-radius: 6px;
  transition: background 0.3s ease;
}

.hook-btn .btn-consult:hover{
  background: #0f265f;
}


.stalker-stats-section{
  background: #f8faff;
  padding: 60px 20px;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
}

.stalker-stats-section .inner{
  max-width: 680px;
  margin: 0 auto;
}

.stalker-stats-section h2{
  font-size: 18px;
  text-align: center;
  color: #0d47a1;
  margin-bottom: 20px;
  letter-spacing: 0.03em;
}

.stalker-stats-section h2 i{
  margin-right: 6px;
  color: #1565c0;
}

.stalker-stats-section .lead{
  font-size: 15px;
  line-height: 1.8;
  color: #333;
  text-align: center;
  margin-bottom: 28px;
  letter-spacing: 0.03em;
}

.chart-box{
  text-align: center;
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.06);
  margin-bottom: 30px;
}

.source{
  font-size: 12px;
  color: #666;
  margin-top: 6px;
}

.source a{
  color: #1565c0;
  text-decoration: underline;
}

.stat-comment{
  font-size: 15px;
  line-height: 1.8;
  color: #444;
  margin-bottom: 28px;
  text-align: center;
}

.data-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-bottom: 32px;
}

.data-item{
  background: #fff;
  border-radius: 10px;
  padding: 16px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.summary-box{
  background: linear-gradient(90deg, #e3f2fd, #f5faff);
  border-left: 4px solid #1565c0;
  border-radius: 10px;
  padding: 20px;
  text-align: center;
}

.summary-box p{
  font-size: 16px;
  line-height: 1.8;
  color: #0d47a1;
  letter-spacing: 0.03em;
}


.stalker-support{
  background: linear-gradient(180deg, #f0fff7 0%, #e8f8f1 100%);
  padding: 60px 20px;
  font-family: "Noto Sans JP", sans-serif;
}

.stalker-support .inner{
  max-width: 680px;
  margin: 0 auto;
}

.stalker-support h2{
  font-size: 18px;
  color: #156750;
  text-align: center;
  margin-bottom: 20px;
  letter-spacing: 0.03em;
}

.stalker-support h2 i{
  color: #1b8a64;
  margin-right: 6px;
}

.stalker-support .lead{
  font-size: 15px;
  color: #333;
  line-height: 1.8;
  text-align: center;
  margin-bottom: 36px;
  letter-spacing: 0.03em;
}

.support-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-bottom: 40px;
}

.support-item{
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 5px 12px rgba(0,0,0,0.08);
  padding: 22px;
  text-align: center;
  transition: transform 0.3s ease;
}

.support-item:hover{
  transform: translateY(-3px);
}

.support-item i{
  font-size: 32px;
  color: #1b8a64;
  margin-bottom: 12px;
}

.support-item h3{
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 10px;
  color: #156750;
  letter-spacing: 0.03em;
}

.support-item p{
  font-size: 14px;
  line-height: 1.8;
  color: #444;
  letter-spacing: 0.03em;
}


.stalker-case{
  background: #fffaf8;
  padding: 60px 20px;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
}

.stalker-case .inner{
  max-width: 680px;
  margin: 0 auto;
}

.stalker-case h2{
  font-size: 18px;
  color: #b64b5b;
  text-align: center;
  margin-bottom: 20px;
  letter-spacing: 0.03em;
}

.stalker-case h2 i{
  color: #d65c6b;
  margin-right: 6px;
}

.stalker-case .lead{
  font-size: 15px;
  color: #444;
  line-height: 1.8;
  text-align: center;
  margin-bottom: 36px;
  letter-spacing: 0.03em;
}

.case-card{
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.05);
  padding: 24px;
  margin-bottom: 24px;
  border-left: 4px solid #d65c6b;
}

.case-card h3{
  font-size: 16px;
  color: #b64b5b;
  margin-bottom: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 6px;
}

.case-card h3 i{
  font-size: 18px;
  color: #d65c6b;
}

.case-card p{
  font-size: 14px;
  line-height: 1.8;
  color: #333;
}

.case-summary{
  background: linear-gradient(90deg, #ffeaea, #fff3f3);
  border-radius: 10px;
  padding: 20px;
  text-align: center;
  margin-top: 28px;
}

.case-summary p{
  font-size: 15px;
  line-height: 1.8;
  color: #b64b5b;
  font-weight: 600;
}


.stalker-summary{
  background: linear-gradient(180deg, #f9f9fb 0%, #f2f2f4 100%);
  padding: 60px 20px;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
}

.stalker-summary .inner{
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
}

.stalker-summary h2{
  font-size: 18px;
  color: #b64b5b;
  margin-bottom: 20px;
}

.stalker-summary h2 i{
  color: #d65c6b;
  margin-right: 6px;
}

.stalker-summary .lead{
  font-size: 15px;
  color: #333;
  line-height: 1.9;
  margin-bottom: 30px;
}

.summary-box{
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
  padding: 28px;
  margin-bottom: 30px;
}

.summary-box p{
  font-size: 15px;
  line-height: 1.9;
  color: #444;
  margin-bottom: 18px;
}

.summary-box strong{
  color: #b64b5b;
  font-weight: 700;
}


.need-section{
  background: linear-gradient(180deg, #f2f7fb 0%, #e6eff8 100%);
  padding: 50px 20px;
  text-align: center;
  letter-spacing: 0.03em;
}

.need-section h2{
  font-size: 18px;
  color: #1d4e89;
  margin-bottom: 16px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.need-section .lead{
  font-size: 15px;
  color: #2a2a2a;
  margin-bottom: 28px;
  line-height: 1.7;
  letter-spacing: 0.03em;
}

.need-list{
  list-style: none;
  padding: 0;
  margin: 0 auto 28px;
  max-width: 600px;
  text-align: left;
}

.need-list li{
  background: #ffffff;
  border-left: 4px solid #3b78c0;
  padding: 12px 16px;
  margin-bottom: 12px;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  font-size: 14px;
  color: #333;
  display: flex;
  align-items: center;
  gap: 10px;
}

.need-list li i{
  color: #3b78c0;
  font-size: 15px;
}

.need-summary{
  background: #e8f2fb;
  border-radius: 12px;
  padding: 18px 16px;
  max-width: 600px;
  margin: 0 auto;
  box-shadow: 0 4px 10px rgba(0,0,0,0.04);
}

.need-summary p{
  font-size: 16px;
  color: #1a1a1a;
  line-height: 1.7;
  letter-spacing: 0.03em;
}

.need-summary strong{
  color: #1d4e89;
}


.flow-section{
  background: linear-gradient(180deg, #eaf6f0 0%, #e1f3ea 100%);
  padding: 60px 20px 20px;
  text-align: center;
  letter-spacing: 0.03em;
}

.flow-section h2{
  font-size: 18px;
  color: #1b7a57;
  margin-bottom: 20px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.flow-section .lead{
  font-size: 15px;
  color: #153f2b;
  line-height: 1.7;
  margin-bottom: 40px;
  letter-spacing: 0.03em;
}

.flow-step{
  background: #fff;
  border-left: 5px solid #2f9e73;
  border-radius: 12px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.05);
  padding: 20px 16px 0;
  margin-bottom: 20px;
  text-align: left;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.flow-step p{
  font-size: 16px;
  color: #1a1a1a;
  line-height: 1.7;
  margin-top: 1rem;
}


.case-section{
  background: #f5f9fb; 
  padding: 60px 20px 20px;
  letter-spacing: 0.03em;
}

.case-section h2{
  font-size: 18px;
  color: #165c8a; 
  text-align: center;
  margin-bottom: 20px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.case-section .lead{
  font-size: 15px;
  color: #333;
  text-align: center;
  margin-bottom: 40px;
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.case-card{
  background: #ffffff;
  border-left: 5px solid #3a82b7; 
  border-radius: 12px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.05);
  padding: 22px 18px;
  margin-bottom: 24px;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.case-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 6px 12px rgba(0,0,0,0.08);
}

.case-card h3{
  font-size: 16px;
  color: #124b75;
  margin-bottom: 10px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.case-card p{
  font-size: 16px;
  color: #222;
  line-height: 1.8;
  margin-bottom: 8px;
}

.case-card .result{
  color: #165c8a;
  font-size: 16px;
  font-weight: 600;
}


.summary-section{
  background: linear-gradient(180deg, #fff9f4 0%, #fff3e9 100%);
  padding: 60px 20px 20px;
  text-align: center;
  letter-spacing: 0.03em;
}

.summary-section h2{
  font-size: 18px;
  color: #c05621; 
  margin-bottom: 20px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.summary-section p{
  font-size: 15px;
  color: #333;
  line-height: 1.8;
  margin-bottom: 20px;
}

.summary-box{
  background: #fff;
  border-left: 5px solid #d67b2b;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
  padding: 10px 16px;
  margin: 30px auto 40px;
  max-width: 640px;
  text-align: left;
}


.trouble-list{
  background: linear-gradient(180deg, #f7fafc 0%, #eef5f9 100%);
  padding: 30px 20px;
  text-align: center;
  letter-spacing: 0.03em;
}

.trouble-list h2{
  font-size: 18px;
  color: #305d88;
  margin-bottom: 15px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.trouble-list .lead{
  font-size: 16px;
  color: #444;
  line-height: 1.8;
  margin-bottom: 30px;
  letter-spacing: 0.03em;
}

.trouble-grid{
  display: grid;
  gap: 14px;
}

.trouble-card{
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.05);
  padding: 20px 15px;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.trouble-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 5px 12px rgba(0,0,0,0.1);
}

.trouble-card i{
  color: #2c6fae;
  font-size: 22px;
  margin-bottom: 10px;
}

.trouble-card p{
  font-size: 14px;
  color: #222;
  line-height: 1.6;
}


.trouble-summary{
  background: #fff;
  padding: 30px 20px;
  text-align: center;
  letter-spacing: 0.03em;
  border-top: 1px solid #e0e6ea;
}

.trouble-summary h2{
  font-size: 18px;
  color: #2c5178;
  font-weight: 700;
  margin-bottom: 20px;
  letter-spacing: 0.03em;
}

.trouble-summary .lead{
  font-size: 16px;
  color: #333;
  line-height: 1.8;
  margin-bottom: 40px;
  letter-spacing: 0.03em;
}


.cta-mini{
  background: linear-gradient(180deg, #f5f9fc 0%, #eef4f8 100%);
  padding: 30px 20px;
  border-radius: 14px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.cta-label{
  font-size: 16px;
  color: #305d88;
  margin-bottom: 0;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.cta-buttons{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cta-buttons a{
  display: block;
  text-align: center;
  color: #fff;
  font-weight: 600;
  padding: 14px 0;
  border-radius: 8px;
  font-size: 15px;
  transition: opacity 0.3s ease;
  text-decoration: none;
}

.cta-buttons a:hover{
  opacity: 0.9;
}

.btn-mail{ background: #3a7dd1; }


.trouble-approach{
  background: linear-gradient(180deg, #f0f6fa 0%, #e2eef7 100%);
  padding: 30px 20px;
  text-align: center;
  letter-spacing: 0.03em;
}

.trouble-approach h2{
  font-size: 18px;
  color: #274d7b;
  font-weight: 700;
  margin-bottom: 20px;
  letter-spacing: 0.03em;
}

.trouble-approach .lead{
  font-size: 16px;
  color: #333;
  line-height: 1.8;
  margin-bottom: 40px;
  letter-spacing: 0.03em;
}

.approach-grid{
  display: grid;
  gap: 18px;
}

.approach-card{
  background: #fff;
  border-radius: 14px;
  padding: 24px 18px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.approach-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.1);
}

.approach-card i{
  font-size: 24px;
  color: #316ea0;
  margin-bottom: 10px;
}

.approach-card h3{
  font-size: 16px;
  color: #24476b;
  margin-bottom: 10px;
  letter-spacing: 0.03em;
}

.approach-card p{
  font-size: 14px;
  color: #222;
  line-height: 1.7;
}


.trouble-case{
  background: linear-gradient(180deg, #faf7f4 0%, #f3f1ef 100%);
  padding: 30px 20px;
  text-align: left;
  letter-spacing: 0.03em;
}

.trouble-case h2{
  font-size: 18px;
  color: #554d45;
  text-align: center;
  font-weight: 700;
  margin-bottom: 20px;
  letter-spacing: 0.03em;
}

.trouble-case .lead{
  font-size: 15px;
  color: #333;
  text-align: center;
  line-height: 1.8;
  margin-bottom: 40px;
  letter-spacing: 0.03em;
}

.case-card{
  background: #fff;
  border-radius: 12px;
  padding: 24px 18px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
  margin-bottom: 20px;
  transition: transform 0.3s ease;
}

.case-card:hover{
  transform: translateY(-2px);
}

.case-card h3{
  font-size: 16px;
  color: #3b332a;
  margin-bottom: 10px;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.case-card p{
  font-size: 14px;
  color: #222;
  line-height: 1.7;
}


.trouble-summary-final{
  background: linear-gradient(180deg, #f5f8f3 0%, #ecf2ea 100%);
  padding: 30px 20px 20px;
  text-align: center;
  letter-spacing: 0.03em;
}

.trouble-summary-final h2{
  font-size: 18px;
  color: #2f4a38;
  font-weight: 700;
  margin-bottom: 20px;
  letter-spacing: 0.03em;
}

.trouble-summary-final .lead{
  font-size: 16px;
  color: #333;
  line-height: 1.8;
  margin-bottom: 40px;
  letter-spacing: 0.03em;
}




.company-hero{
  position: relative;
  overflow: hidden;
}

.company-hero img{
  width: 100%;
  height: auto;
  display: block;
}


.company-hero .hero-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.05) 0%,
    rgba(0, 0, 0, 0.35) 100%
  );
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: #fff;
}


.company-hero .hero-copy{
  background: rgba(0, 0, 0, 0.45);
  padding: 16px 20px;
  border-radius: 10px;
  backdrop-filter: blur(4px);
}

.company-hero h2{
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 8px;
  color: #fff;
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.4);
  letter-spacing: 0.03em;
}

.company-hero p{
  font-size: 16px;
  color: #f3f6fa;
  line-height: 1.6;
}


.philosophy{
  background: linear-gradient(180deg, #f9fbfe 0%, #eef3f9 100%);
  padding: 30px 20px;
  text-align: center;
  color: #222;
}

.philosophy h2{
  font-size: 20px;
  font-weight: 700;
  color: #123c66;
  margin-bottom: 16px;
  letter-spacing: 0.04em;
}

.philosophy .lead{
  font-size: 16px;
  font-weight: 500;
  color: #0f4472;
  margin-bottom: 24px;
  line-height: 1.7;
  letter-spacing: 0.03em;
}

.philosophy-body{
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.03;
  color: #333;
}

.philosophy i{
  color: #1976d2;
  margin-right: 6px;
}



.company-info{
  background: #fff;
  padding: 50px 20px 10px;
  letter-spacing: 0.03em;
}
.company-info h2{
  font-size: 20px;
  font-weight: 700;
  color: #1d3b6a;
  text-align: center;
  margin-bottom: 25px;
  letter-spacing: 0.03em;
}
.info-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  letter-spacing: 0.03em;
}
.info-table th,.info-table td{
  border-bottom: 1px solid #ddd;
  padding: 10px 6px;
  text-align: left;
  vertical-align: top;
}
.info-table th{
  width: 50%;
  color: #2b3f63;
  font-weight: 600;
}

.hyoshiki-link{
  color: #0078ff; 
  font-weight: 600;
  text-decoration: underline;
  transition: color 0.3s ease;
}

.hyoshiki-link:hover{
  color: #0056b3; 
}

.info-table td a{
  color: #245ea7;
  text-decoration: underline;
}


.access-map{
  background: #f9fbff;
  padding: 10px 15px;
  text-align: center;
}

.access-map h2{
  font-size: 20px;
  font-weight: 700;
  color: #1e3a5f;
  margin-bottom: 20px;
  letter-spacing: 0.03em;
}

.access-links{
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 20px;
}

.access-card{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #eaf2ff;
  color: #1e3a5f;
  font-size: 16px;
  letter-spacing: 0.03em;
  padding: 12px 10px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  font-weight: 500;
  width: 100%;
}

.access-card:hover{
  background: #1e3a5f;
  color: #fff;
  transform: translateY(-2px);
}


.access-modal{
  display: none;
  position: fixed;
  z-index: 9999;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(2px);
}

.modal-content{
  position: relative;
  background: #fff;
  padding: 10px;
  border-radius: 10px;
  max-width: 90%;
  max-height: 90%;
}

.modal-content img{
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

.modal-close{
  position: absolute;
  top: 8px;
  right: 12px;
  font-size: 28px;
  color: #555;
  cursor: pointer;
  transition: 0.2s;
}

.modal-close:hover{
  color: #000;
}

/* ===============================
   PC専用: アクセスボタン＆モーダル調整
=============================== */
@media (min-width: 769px) {

  /* --- ボタン群全体 --- */
  .access-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-top: 40px;
    flex-wrap: wrap;
  }

  /* --- ボタン --- */
  .access-card {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 600px;
    padding: 12px 20px;
    background: #fff;
    border: 2px solid #1e3a8a;
    border-radius: 10px;
    font-size: 20px;
    letter-spacing: 0.03em;
    font-weight: 600;
    color: #1e3a8a;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 3px 8px rgba(0,0,0,0.08);
    text-align: center;
  }

  .access-card:hover {
    background: #1e3a8a;
    color: #fff;
    transform: translateY(-2px);
  }

  .access-card i {
    font-size: 1.1rem;
  }

  /* --- モーダル --- */
  .access-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.65);
    justify-content: center;
    align-items: center;
    padding: 20px;
  }

  /* ==========================
   PC専用: モーダル画像を極端に小さく（テスト用）
  ========================== */
  .modal-content {
    width: 50%;          /* ← 元: 50% → さらに小さく */
    max-width: 500px;    /* ← 元: 650px → 小型化 */
    max-height: 80vh;    /* ← 高さも縮小 */
    padding: 10px;
    overflow-y: auto;        /* ✅ 縦スクロール許可 */
    overflow-x: hidden;      /* ✅ 横方向は非表示 */
    box-sizing: border-box;
  }



  .modal-content img {
    max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  }

  /* スクロールバーが目立たないよう軽微に調整 */
.modal-content::-webkit-scrollbar {
  width: 8px;
}
.modal-content::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.2);
  border-radius: 4px;
}

  /* --- 閉じるボタン --- */
  .modal-close {
    position: absolute;
    top: 8px;
    right: 12px;
    font-size: 24px;
    color: #444;
    cursor: pointer;
    transition: 0.2s;
  }

  .modal-close:hover {
    color: #b64b5b;
  }
}

/* ===============================
   SP専用: GoogleMapサイズ調整
=============================== */
@media (max-width: 768px) {
  iframe {
    width: 100% !important;
    max-width: 100%;
    height: 250px !important; /* ← これで縦長を抑える */
    border-radius: 10px;
  }

  /* 他要素の間隔が広がっている場合 */
  .row {
    flex-direction: column;
    gap: 15px;
  }

  .col {
    width: 100%;
  }

  /* 地図下のボタン間隔を少し詰める */
  .access-links {
    margin-top: 10px;
    gap: 8px;
  }
}





.section-coverage{
  background: linear-gradient(180deg, #f8f8f8 0%, #efefef 100%);
  padding: 20px 15px 40px;
  text-align: center;
}

.coverage-inner{
  max-width: 640px;
  margin: 0 auto;
}

.section-coverage h2{
  font-size: 18px;
  font-weight: 700;
  color: #2a3b4d;
  margin-bottom: 1rem;
  letter-spacing: 0.03em;
}

.section-lead{
  font-size: 16px;
  color: #444;
  margin-bottom: 25px;
  line-height: 1.8;
  letter-spacing: 0.03em;
}



.coverage-list{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.coverage-group{
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 0;
}

.coverage-link{
  display: inline-block;
  background: #ffffff;
  color: #2a3b4d;
  border: 1px solid #ccd2da;
  font-size: 14px;
  padding: 4px 12px;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.3s ease;
  letter-spacing: 0.03em;
}

.coverage-link:hover{
  background: #2a3b4d;
  color: #fff;
}

.coverage-link.active{
  background: #1e3a5f;
  color: #fff;
  font-weight: 600;
  cursor: default;
}


.policy{
   background: #f8fbff; padding: 28px 16px;
}

.policy .inner{
   max-width: 720px; margin: 0 auto; 
}

.policy h2{
  font-size: 18px; 
  font-weight: 800; 
  letter-spacing: 0.03em;
  color: #0e3c68; display: flex; 
  align-items: center; gap: .5em;
  margin: 0 0 14px;
}

.policy .lead{
  font-size: 14px;
  letter-spacing: 0.03em;
  line-height: 1.8;
  color: #333;
  margin-bottom: 16px;
}


.policy .toc{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  background: #e9f2fb;
  border: 1px solid #d6e5f6;
  border-radius: 12px;
  padding: 12px;
  margin: 0 0 16px;
}

.policy .toc a{
  display: block;
  font-size: 13px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #dfe9f6;
  color: #0e3c68;
  text-decoration: none;
}

.policy .toc a:hover{
  background: #0e3c68;
  color: #fff;
}


.policy-card{
  background: #fff;
  border: 1px solid #e6eef7;
  border-radius: 14px;
  padding: 16px; 
  margin: 0 0 12px;
  box-shadow: 0 6px 16px rgba(14,60,104,.06);
}

.policy-card h3{
  font-size: 16px;
  margin: 0 0 8px;
  color: #123f6e;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.policy-list{
  padding-left: 1.2em;
  margin: 0;
}

.policy-list li{
  font-size: 14px;
  line-height: 1.8;
  color: #333;
  margin: 4px 0;
}

.policy .updated{
  font-size: 12px;
  color: #666;
  margin-top: 6px;
}










.flow-hook-section{
  background: linear-gradient(180deg, #f5f8fc 0%, #ffffff 100%);
  text-align: center;
  padding: 30px 20px 50px;
}

.flow-hook-section h2{
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #144a82;
  margin-bottom: 14px;
}

.flow-hook-section h2 i{
  color: #1a73e8;
  margin-right: 6px;
}

.flow-hook-section .lead{
  font-size: 16px;
  letter-spacing: 0.03em;
  color: #333;
  line-height: 1.8;
  margin-bottom: 30px;
}

.flow-hook-section .lead strong{
  color: #0d3a6b;
}


.hook-cards{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
}

.hook-cards .card{
  width: 90%;
  max-width: 300px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  padding: 20px 16px 28px;
  transition: all 0.3s ease;
  position: relative;
}

.hook-cards .card:hover{
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.12);
}

.hook-cards .icon{
  width: 64px;
  height: 64px;
  background: linear-gradient(135deg, #1a73e8, #4a90e2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}

.hook-cards .icon i{
  color: #fff;
  font-size: 1.6rem;
}

.hook-cards h3{
  font-size: 16px;
  color: #104b89;
  font-weight: 600;
  margin-bottom: 8px;
  letter-spacing: 0.03em;
}

.hook-cards p{
  font-size: 14px;
  color: #555;
  line-height: 1.6;
  letter-spacing: 0.03em;
}


.flow-steps{
  background: linear-gradient(180deg, #eef5fb 0%, #ffffff 100%);
  padding: 30px 20px 30px;
  text-align: center;
}

.flow-steps h2{
  font-size: 18px;
  letter-spacing: 0.03em;
  color: #104b89;
  font-weight: 700;
  margin-bottom: 10px;
}

.flow-steps h2 i{
  color: #1a73e8;
  margin-right: 6px;
}

.flow-steps .lead{
  font-size: 16px;
  letter-spacing: 0.03em;
  color: #444;
  line-height: 1.8;
  margin-bottom: 20px;
}


.flow-steps .step{
  position: relative;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.05);
  padding: 20px 18px;
  margin-bottom: 24px;
  text-align: left;
  transition: transform .2s ease, box-shadow .2s ease;
}

.flow-steps .step:hover{
  transform: translateY(-4px);
  box-shadow: 0 12px 25px rgba(0,0,0,0.08);
}

.flow-steps .step-num{
  display: inline-block;
  background: linear-gradient(135deg, #1a73e8, #4a90e2);
  color: #fff;
  border-radius: 50px;
  padding: 6px 14px;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 10px;
}

.flow-steps h3{
  font-size: 16px;
  letter-spacing: 0.03em;
  color: #0f3e7a;
  font-weight: 600;
  margin-bottom: 6px;
}

.flow-steps p{
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.7;
}


.faq-section{
  background: linear-gradient(180deg, #e4edf7 0%, #f2f6fa 100%);
  padding: 30px 20px 20px;
}

.faq-section h2{
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #104b89;
  text-align: center;
  margin-bottom: 10px;
}

.faq-section h2 i{
  color: #1a73e8;
  margin-right: 6px;
}

.faq-section .lead{
  text-align: center;
  color: #555;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.8;
  margin-bottom: 20px;
}


.faq-item{
  border-radius: 12px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.05);
  background: #fff;
  margin-bottom: 20px;
  overflow: hidden;
}

.faq-question{
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  padding: 15px 10px 0;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: #104b89;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  transition: background .3s ease;
}

.faq-question:hover{
  background: #eef5fb;
}

.faq-question i{
  margin-right: 4px;
  transition: transform .3s ease;
}

.faq-item.active .faq-question i{
  transform: rotate(180deg);
}

.faq-answer{
  display: none;
  padding: 0 18px 18px;
  color: #333;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.7;
}

.faq-item.active .faq-answer{
  display: block;
  animation: fadeIn .3s ease;
}


@keyframes fadeIn{
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}


.access-section{
  background: linear-gradient(180deg, #f5f8fb 0%, #ffffff 100%);
  padding: 30px 20px;
  text-align: center;
}

.access-section h2{
  font-size: 18px;
  letter-spacing: 0.03em;
  color: #104b89;
  font-weight: 700;
  margin-bottom: 10px;
}

.access-section h2 i{
  margin-right: 8px;
  color: #1a73e8;
}

.access-section .lead{
  font-size: 16px;
  letter-spacing: 0.03em;
  font-weight: 500;
  color: #555;
  line-height: 1.8;
  margin-bottom: 20px;
}


.access-info{
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.06);
  overflow: hidden;
}

.access-map iframe{
  border-radius: 14px 14px 0 0;
}

.access-details{
  padding: 18px 15px 8px;
  font-size: 14px;
  letter-spacing: 0.03em;
  line-height: 1.6;
  color: #333;
}

.access-details strong{
  font-size: 16px;
  color: #104b89;
  margin-bottom: 10px;
}

.access-details a{
  color: #1a73e8;
  text-decoration: none;
}

.access-details a:hover{
  text-decoration: underline;
}


.access-links{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 15px;
  border-top: 1px solid #eee;
}

.access-link{
  display: block;
  background: #eef5fb;
  padding: 10px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: #104b89;
  text-decoration: none;
  transition: 0.3s ease;
}

.access-link:hover{
  background: #dce9f7;
}




.modal-content{
  position: relative;
  max-width: 90%;
  background: #fff;
  border-radius: 10px;
  padding: 10px;
}



.close{
  position: absolute;
  top: 5px;
  right: 12px;
  font-size: 24px;
  color: #333;
  cursor: pointer;
}


/* =========================================================
   調査事例（SP）共通デザイン / prefix: spc-
   ========================================================= */

/* 全体 */
.spc {
  font-family: "Noto Sans JP", sans-serif;
  color: #222;
  line-height: 1.75;
  background-color: #f9f9fb;
  padding-bottom: 60px;
}

/* ヒーロー帯 */
.spc-hero {
  background: linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%);
  color: #fff;
  text-align: center;
  padding: 30px 20px;
  border-radius: 0 0 30px 30px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}
.spc-hero__eyebrow {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.1em;
  opacity: 0.9;
  margin-bottom: 6px;
}
.spc-hero__title {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 12px;
  line-height: 1.4;
}
.spc-hero__meta {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* バッジ */
.spc-badge {
  display: inline-block;
  font-size: 16px;
  letter-spacing: 0.03em;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 9999px;
  color: #fff;
}
.spc-badge--pink {
  background-color: #f43f5e;
}
.spc-badge--blue {
  background-color: #3b82f6;
}
.spc-badge--green {
  background-color: #22c55e;
}

/* セクション共通 */
.spc-section {
  padding: 30px 20px 0;
}
.spc-secTitle {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  border-left: 4px solid #3b82f6;
  padding-left: 10px;
  color: #111;
}

/* カード */
.spc-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
  padding: 10px;
  margin-top: 10px;
}
.spc-card--summary {
  margin: 0 16px;
}
.spc-card--text p {
  font-size: 14px;
  letter-spacing: 0.03em;
  line-height: 1.5;
  text-align: justify;
}

/* 概要グリッド */
.spc-summary__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  row-gap: 10px;
  column-gap: 12px;
  margin: 0;
}
.spc-summary__grid dt {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #3b82f6;
  margin-bottom: 4px;
}
.spc-summary__grid dd {
  font-size: 14px;
  letter-spacing: 0.03em;
}

/* タイムライン */
.spc-timeline {
  position: relative;
  list-style: none;
  margin: 30px 0 10px;
  padding-left: 10px;
}
.spc-timeline::before {
  content: "";
  position: absolute;
  top: 0;
  left: 16px;
  width: 2px;
  height: 100%;
  background-color: #dbeafe;
}
.spc-tlItem {
  position: relative;
  padding-left: 40px;
  margin-bottom: 18px;
}
.spc-tlItem::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 9px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #3b82f6;
}
.spc-tlItem__head {
  font-size: 16px;
  letter-spacing: 0.03em;
  font-weight: 600;
  color: #3b82f6;
  margin-bottom: 4px;
}
.spc-tlItem__body {
  font-size: 14px;
  letter-spacing: 0.03em;
  color: #333;
}

/* レスポンシブ調整（PC拡張） */
@media (min-width: 768px) {
  .spc-hero__title {
    font-size: 2rem;
  }
  .spc-summary__grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .spc-card--text p {
    font-size: 1rem;
  }
  .spc-section {
    padding: 50px 80px;
  }
}

/* =========================================================
   調査事例一覧（spc-related）
   ========================================================= */
.spc-related {
  padding: 40px 20px 60px;
  background: #f1f5f9;
}

.spc-related__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 20px;
}

.spc-related__card {
  position: relative;
  display: block;
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.spc-related__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

.spc-related__img img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.4s ease;
}
.spc-related__card:hover img {
  transform: scale(1.05);
}

/* オーバーレイ */
.spc-related__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.spc-related__card:hover .spc-related__overlay {
  opacity: 1;
}

.spc-related__label {
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  background: rgba(0, 0, 0, 0.5);
  padding: 6px 12px;
  border-radius: 9999px;
}

/* PC時に3列化 */
@media (min-width: 768px) {
  .spc-related__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}

/* ==============================
   お客様の声（Font Awesome人物アイコン付き）
============================== */
.voice-section {
  background: #f9fafc;
  padding: 90px 20px;
}

.voice-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.voice-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 30px;
}

.voice-card {
  background: #fff;
  border-radius: 14px;
  padding: 40px 35px 30px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.voice-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 35px rgba(0, 0, 0, 0.18);
}

/* カテゴリアイコン */
.voice-icon {
  font-size: 2rem;
  color: #1e66b3;
  margin-bottom: 18px;
}

/* テキスト */
.voice-text {
  font-size: 1.2rem;
  line-height: 1.8;
  color: #222;
  margin-bottom: 18px;
  font-family: "Noto Sans JP", sans-serif;
}

/* フッター（人物アイコン＋名前） */
.voice-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 15px;
}

/* 人物アイコン */
.voice-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eaf2fb;
  color: #1e66b3;
  font-size: 1.4rem;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
}

/* 男性・女性で微妙に色を変える */
.voice-avatar.male {
  background: #e1f0ff;
  color: #0a4b91;
}

.voice-avatar.female {
  background: #fde8f0;
  color: #b64b5b;
}

/* 名前 */
.voice-name {
  text-align: right;
  font-size: 16px;
  color: #444;
  font-weight: 500;
  flex-grow: 1;
  margin-left: 10px;
}

/* ===================================
   新デザイン：調査の流れ
=================================== */
.flow-renew {
  background: linear-gradient(180deg, #f7faff 0%, #e9eef5 100%);
  padding: 120px 20px;
  margin-top: 5rem;
  margin-bottom: 5rem;
  font-family: "Noto Sans JP", sans-serif;
}

.flow-container {
  max-width: 1200px;
  margin: 0 auto;
}

.section-heading.center {
  text-align: center;
  margin-bottom: 80px;
}
.section-heading.center h2 {
  font-size: 2.4rem;
  color: #1e3a8a;
  font-weight: 800;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}
.section-heading.center p {
  color: #777;
  font-size: 1.1rem;
  letter-spacing: 0.1em;
}

/* フローボックス配置 */
.flow-row {
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 25px;
  overflow-x: auto;
  padding-bottom: 10px;
}

/* 各ボックス */
.flow-box {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12);
  flex: 1;
  min-width: 220px;
  padding: 50px 30px 70px;
  text-align: center;
  position: relative;
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.flow-box:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
}

/* アイコン */
.flow-icon {
  width: 100px;
  height: 100px;
  background: radial-gradient(circle at 30% 30%, #3170c3, #1e3a8a);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 2.5rem;
  margin: 0 auto 25px;
  box-shadow: 0 10px 20px rgba(30, 58, 138, 0.25);
}

/* STEPナンバー */
.step-num {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  font-weight: 700;
  font-size: 20px;
  color: #b64b5b;
  letter-spacing: 0.05em;
}

/* タイトル */
.flow-box h3 {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #111;
  margin-bottom: 15px;
}

/* テキスト */
.flow-box p {
  font-size: 16px;
  letter-spacing: 0.03em;
  line-height: 1.9;
  color: #333;
}

/* ===============================
   CTAセクション（背景切替）
=============================== */
.cta-transition {
  background: linear-gradient(180deg, #fdfdfd 0%, #f3f7fc 100%);
  padding: 120px 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
  z-index: 0;
}

.cta-transition::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/assets/img/bg_pattern_light.webp") center/cover no-repeat;
  opacity: 0.08;
  pointer-events: none;
}

.cta-inner {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* 見出し */
.cta-message h2 {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #1e3a8a;
  margin-bottom: 25px;
  line-height: 1.6;
}

/* 説明文 */
.cta-message p {
  font-size: 20px;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 50px;
  line-height: 2;
}

/* CTAボタン */
.cta-button {
  display: inline-block;
  background: linear-gradient(90deg, #1e3a8a, #2d63c3);
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 18px 50px;
  border-radius: 50px;
  box-shadow: 0 10px 25px rgba(30, 58, 138, 0.3);
  text-decoration: none;
  transition: all 0.3s ease;
}
.cta-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 35px rgba(30, 58, 138, 0.45);
  background: linear-gradient(90deg, #2d63c3, #1e3a8a);
}

/* アイコン */
.cta-button i {
  margin-right: 10px;
}


/* ==============================
   メディア出演セクション（拡大・視認性強化）
============================== */
.media-highlight {
  background: linear-gradient(180deg, #f8fbff 0%, #edf2f9 100%);
  padding: 160px 40px;
  font-family: "Noto Sans JP", sans-serif;
}

/* 見出し */
.media-highlight-header {
  text-align: center;
  margin-bottom: 100px;
}
.media-highlight-header h2 {
  font-size: 3.4rem; /* 特集級サイズ */
  font-weight: 800;
  color: #1e3a8a;
  letter-spacing: 0.05em;
  margin-bottom: 12px;
}
.media-highlight-header p {
  color: #6b7280;
  font-size: 1.4rem;
  letter-spacing: 0.18em;
}

/* メインカード */
.media-highlight-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.12);
  padding: 80px;
  max-width: 1300px;
  margin: 0 auto 120px;
  gap: 80px;
}

.media-highlight-image {
  position: relative;
  flex: 1 1 600px;
}
.media-highlight-image img {
  width: 100%;
  border-radius: 18px;
  box-shadow: 0 14px 35px rgba(0, 0, 0, 0.25);
}
.media-highlight-badge {
  position: absolute;
  top: 25px;
  left: 25px;
  background: #b64b5b;
  color: #fff;
  font-weight: 700;
  font-size: 1.3rem;
  padding: 10px 22px;
  border-radius: 40px;
  letter-spacing: 0.08em;
}

/* テキスト部分 */
.media-highlight-text {
  flex: 1 1 580px;
  color: #111;
  font-size: 20px;
  line-height: 2.4;
}
.media-highlight-text h3 {
  font-size: 2.1rem;
  color: #1e3a8a;
  margin-bottom: 25px;
  line-height: 1.6;
}
.media-highlight-text h3 span {
  color: #b64b5b;
  font-weight: 800;
}
.media-highlight-text p {
  margin-bottom: 28px;
}
.media-highlight-note {
  color: #333;
  font-style: italic;
  font-size: 18px;
  margin-bottom: 35px;
}

/* ボタン */
.media-highlight-btn {
  display: inline-block;
  background: linear-gradient(90deg, #1e3a8a, #2d63c3);
  color: #fff;
  font-weight: 800;
  padding: 22px 60px;
  border-radius: 50px;
  text-decoration: none;
  font-size: 1.3rem;
  transition: all 0.3s ease;
}
.media-highlight-btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(30, 58, 138, 0.25);
}

/* その他出演タイトル */
.media-highlight-sub {
  text-align: center;
  margin-top: 40px;
}
.media-highlight-sub h3 {
  font-size: 2rem;
  color: #1e3a8a;
  font-weight: 800;
  margin-bottom: 60px;
}

/* グリッド */
.media-highlight-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); /* 大きめ */
  gap: 50px;
  max-width: 1200px;
  margin: 0 auto;
}
.media-highlight-grid img {
  width: 100%;
  border-radius: 16px;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
  transition: all 0.3s ease;
  object-fit: cover;
}
.media-highlight-grid img:hover {
  transform: scale(1.1);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

/* =============================
   アクセスセクション（横書き・整列型）
============================= */
.access-block {
  background: linear-gradient(180deg, #1e3a8a 0%, #f5f8ff 60%, #ffffff 100%);
  padding: 120px 60px;
  font-family: "Noto Sans JP", sans-serif;
  color: #222;
}

/* 見出し */
.access-header {
  text-align: center;
  margin-bottom: 80px;
}
.access-header h2 {
  font-size: 3rem;
  letter-spacing: 0.05em;
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.06em;
}
.access-header p {
  color: #cbd5e1;
  font-size: 1.2rem;
  letter-spacing: 0.15em;
  margin-top: 10px;
}

/* レイアウト */
.access-flex {
  display: flex;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 60px;
  max-width: 1200px;
  margin: 0 auto;
}

/* 情報ブロック */
.access-info {
  flex: 1 1 45%;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 12px 25px rgba(0,0,0,0.15);
  padding: 60px 70px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.access-company {
  font-size: 24px;
  letter-spacing: 0.05em;
  color: #1e3a8a;
  font-weight: 800;
  margin-bottom: 20px;
  border-bottom: 3px solid #b64b5b;
  display: inline-block;
  padding-bottom: 5px;
}

.access-address {
  font-size: 20px;
  letter-spacing: 0.03em;
  line-height: 2;
  margin-bottom: 25px;
}

.access-contact p {
  font-size: 18px;
  letter-spacing: 0.03em;
  margin-bottom: 10px;
}
.access-contact strong {
  color: #b64b5b;
  font-weight: 700;
}

/* 地図 */
.access-map {
  flex: 1 1 55%;
}
.access-map iframe {
  width: 100%;
  height: 460px;
  border-radius: 20px;
  border: none;
  box-shadow: 0 12px 35px rgba(0,0,0,0.25);
}

/* スマホ対応 */
@media (max-width: 1024px) {
  .access-flex {
    flex-direction: column;
  }
  .access-info {
    text-align: center;
    padding: 50px;
  }
  .access-map iframe {
    height: 400px;
  }
}


/* =========================================================
   全国ガルエージェンシー（展開式）
========================================================= */

/* 全体ラッパー */
.zenkoku-wrapper {
  max-width: 1100px;
  margin: 0 auto;
  padding: 20px 0 0;
}

/* タイトル */
.zenkoku-title {
  font-size: 24px;
  letter-spacing: 0.05em;
  font-weight: 700;
  text-align: center;
  color: #1e3a8a;
  margin: 30px 0;
  border-bottom: 3px solid #1e3a8a;
  display: inline-block;
  padding-bottom: 8px;
}

.z_lead {
  font-size: 20px;
  letter-spacing: 0.05em;
  font-weight: 500;
}

.zenkoku-item i {
  font-size: 20px;
}

.zenkoku-item  p {
  font-size: 20px;
  letter-spacing: 0.03em;
  font-weight: 500;
}

/* 展開ボタン */
.zenkoku-toggle-wrapper {
  text-align: center;
  margin: 40px 0 20px;
}

.zenkoku-toggle-btn {
  background: #1e3a8a;
  color: #fff !important;
  font-size: 24px;
  letter-spacing: 0.05em;
  padding: 1px 30px;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.zenkoku-toggle-btn:hover {
  background: #274bab;
  color: #fff !important;
}

/* 展開エリア（アニメーション） */
.zenkoku-list {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.6s ease;
}

.zenkoku-list.open {
  color: #fff !important;
  max-height: 9999px;
  opacity: 1;
}

/* 地域ブロック（白とグレー交互） */
.area-block {
  padding: 60px 0;
  border-top: 1px solid #e5e7eb;
  border-bottom: 1px solid #e5e7eb;
}

.area-block:nth-of-type(even) {
  background-color: #f8f9fa; /* 淡いグレー */
}

/* 地域タイトル（上品な左右ライン） */
.area-title {
  position: relative;
  text-align: center;
  font-size: 20px;
  letter-spacing: 0.05em;
  font-weight: 600;
  color: #333;
  margin: 30px 0 25px;
}

.area-title::before,
.area-title::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 35%;
  height: 1px;
  background: #000;
}

.area-title::before { left: 0; }
.area-title::after { right: 0; }

/* 支店カード配置 */
.zenkoku-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  justify-items: center;
}

.zenkoku-card {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  text-align: center;
  transition: all 0.25s ease;
  width: 100%;
  max-width: 340px;
}

.zenkoku-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.zenkoku-card img {
  width: 100%;
  height: auto;
  display: block;
  border-bottom: 1px solid #eee;
}

.office-name {
  font-size: 1.05rem;
  font-weight: 600;
  color: #222;
  margin: 15px 0 5px;
  line-height: 1.4;
}

.office-license {
  font-size: 0.85rem;
  color: #666;
  margin-bottom: 15px;
}

/* 展開ボタン下のトグルアイコン（＋／－） */
.toggle-icon {
  margin-right: 6px;
  font-weight: bold;
}


/* =========================================================
   共通PCヒーローセクション
   使用例：各下層ページ・スタッフ紹介など
   ========================================================= */

.pc-hero {
  position: relative;
  width: 100%;
  height: 60vh;
  min-height: 550px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-align: center;
  margin-top: -80px;
}

.pc-hero-bg img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  /* 🔽 brightnessを上げて全体を明るく */
  filter: brightness(85%) contrast(108%);
  z-index: 1;
}

.pc-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* 🔽 グラデーションを薄くして背景が透けるように */
  background: linear-gradient(
    rgba(0, 10, 30, 0.45),
    rgba(0, 0, 0, 0.55)
  );
  z-index: 2;
}


.pc-hero-content {
  position: relative;
  z-index: 3;
  max-width: 900px;
  padding: 40px 20px;
}

.pc-hero-title {
  font-size: 3rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  margin-bottom: 40px;
  line-height: 1.4;
}

.pc-hero-sub {
  max-width: 1000px;
  width: 100%;
  font-size: 1.9rem;
  font-weight: 500;
  color: #fff;
  text-align: center;
}


.pc-hero-lead {
  max-width: 1000px;
  width: 100%;
  font-size: 1.8rem;
  font-weight: 500;
  color: #fff;
  text-align: center;
  margin-bottom: 35px;
}

/* =========================================================
   CTAボタン共通
   ========================================================= */
.pc-hero-cta {
  display: flex;
  gap: 50px;
  justify-content: center;
  flex-wrap: wrap;
}

.pc-hero-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 14px 36px;
  border-radius: 50px;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: all 0.3s ease;
}

/* =========================================================
   メール（メイン）ボタン
   ========================================================= */
.pc-hero-cta .pc-btn-main {
  background: #00b0ff;
  color: #fff;
  box-shadow: 0 0 10px rgba(0,176,255,0.6);
  border: 2px solid #fff;
}

.pc-hero-cta .pc-btn-main:hover {
  background: #00d5ff;
  box-shadow: 0 0 20px rgba(0,176,255,0.8);
  transform: translateY(-2px);
}

/* =========================================================
   LINEボタン（緑系）
   ========================================================= */
.pc-hero-cta .pc-btn-line {
  background: #06C755;
  color: #fff;
  box-shadow: 0 0 10px rgba(6,199,85,0.4);
}

.pc-hero-cta .pc-btn-line:hover {
  background: #00e060;
  box-shadow: 0 0 20px rgba(6,199,85,0.6);
  transform: translateY(-2px);
}

/* =========================================================
   アイコン設定（Font Awesome）
   ========================================================= */
.pc-hero-cta i {
  font-size: 26px;
  vertical-align: middle;
}

/* =========================================================
   代表紹介・代表挨拶セクション
   ========================================================= */

.pc-representative {
  background: linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
  padding: 100px 20px;
}

.pc-rep-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
}

/* 画像部分 */
.pc-rep-image {
  flex: 1;
  min-width: 400px;
  text-align: center;
}

.pc-rep-image img {
  width: 100%;
  max-width: 420px;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.1);
}

/* テキスト部分 */
.pc-rep-content {
  flex: 1.2;
  text-align: left;
}

.pc-rep-title {
  font-size: 3rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #0a1a3a;
  margin-bottom: 25px;
  position: relative;
}

.pc-rep-title::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  background: #00b0ff;
  margin-top: 10px;
  border-radius: 2px;
}

.pc-rep-message {
  color: #37474f;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.9;
  margin-bottom: 35px;
}

.pc-rep-name {
  text-align: right;
  font-weight: 500;
  font-size: 1.8rem;
  letter-spacing: 0.03em;
  color: #263238;
  font-family: 'Yuji Syuku', 'Hiragino Mincho ProN', 'MS PMincho', serif;
}

.pc-rep-lead {
  font-size: 2rem;
  font-weight: 700;
  color: #0091ea;
  margin-bottom: 25px;
  line-height: 1.8;
  letter-spacing: 0.05em;
}

/* =========================================================
   調査員紹介セクション（アイコン版）
   ========================================================= */

.pc-staff {
  background: #fdfaf6;
  padding: 30px 20px;
  text-align: center;
}


.pc-staff-header {
  margin-bottom: 60px;
}

.pc-staff-title {
  position: relative;
  display: inline-block;
  font-size: 3rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  margin-bottom: 40px;
  padding-bottom: 15px;
}

.pc-staff-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg, #00b0ff 0%, #00e0ff 100%);
  box-shadow: 0 0 10px rgba(0,176,255,0.4);
}

.pc-staff-title span {
  display: block;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  font-weight: 500;
  color: #00b0ff;
  letter-spacing: 0.1em;
  margin-top: 5px;
}


.pc-staff-lead {
  color: #546e7a;
  font-size: 1.8rem;
  letter-spacing: 0.03em;
  font-weight: 600;
  line-height: 1.8;
}

/* カード */
.pc-staff-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 80px;
  max-width: 1100px;
  margin: 0 auto 80px;
}

.pc-staff-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 25px rgba(0,0,0,0.08);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pc-staff-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 35px rgba(0,0,0,0.12);
}

/* アイコン */
.pc-staff-icon {
  background: linear-gradient(180deg, #e3f2fd 0%, #f1f8ff 100%);
  padding: 40px 0;
  text-align: center;
}

.pc-staff-icon i {
  font-size: 6.5rem;
  color: #00b0ff;
}

/* テキスト */
.pc-staff-info {
  padding: 25px;
  text-align: left;
}

.pc-staff-name {
  font-size: 1.8rem;
  letter-spacing: 0.03em;
  font-weight: 700;
  margin-bottom: 10px;
}

.pc-staff-name span {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #607d8b;
  margin-left: 6px;
}

.pc-staff-exp {
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #78909c;
  margin-bottom: 10px;
}

.pc-staff-comment {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #37474f;
  line-height: 1.6;
}

/* 女性スタッフのアイコンカラー（淡いピンク） */
.pc-staff-icon.female i {
  color: #e91e63; /* 落ち着いたピンク。可愛すぎず上品 */
}

/* アイコン背景を少し変化（任意） */
.pc-staff-icon.female {
  background: linear-gradient(180deg, #fdeef3 0%, #fff7fa 100%);
}

/* =========================================================
   事務所紹介セクション
   ========================================================= */

.pc-office {
  background: #ffffff;
  padding: 30px 20px;
}

.pc-office-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.pc-office-header {
  text-align: center;
  margin-bottom: 60px;
}

.pc-office-title {
  font-size: 3rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  margin-bottom: 20px;
  position: relative;
}

.pc-office-title::after {
  content: "";
  display: block;
  width: 80px;
  height: 4px;
  background: linear-gradient(90deg, #00b0ff 0%, #00e0ff 100%);
  margin: 10px auto 0;
  border-radius: 2px;
}

.pc-office-lead {
  color: #546e7a;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.8;
}

/* コンテンツレイアウト */
.pc-office-content {
  display: flex;
  font-size: 1.8rem;
  justify-content: space-between;
  align-items: flex-start;
  gap: 50px;
}

.pc-office-info {
  flex: 1;
}

.pc-office-info dl {
  margin: 0;
}

.pc-office-info dt {
  font-weight: 700;
  color: #0a1a3a;
  margin-top: 15px;
}

.pc-office-info dd {
  margin: 5px 0 10px 0;
  color: #37474f;
}

.pc-office-info a {
  color: #00b0ff;
  text-decoration: none;
}

.pc-office-map {
  flex: 1;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

/* =========================================================
   調査サービス紹介セクション
   ========================================================= */

.pc-service {
  background: #fdfaf6;
  padding: 50px 20px;
  text-align: center;
}

.pc-service-header {
  margin-bottom: 60px;
}

.pc-service-title {
  font-size: 2.6rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  margin-bottom: 20px;
  position: relative;
}

.pc-service-title::after {
  content: "";
  display: block;
  width: 80px;
  height: 4px;
  background: linear-gradient(90deg, #00b0ff 0%, #00e0ff 100%);
  margin: 10px auto 0;
  border-radius: 2px;
}

.pc-service-lead {
  color: #546e7a;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.8;
}

/* カードレイアウト */
.pc-service-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  max-width: 1100px;
  margin: 0 auto;
}

.pc-service-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 25px rgba(0,0,0,0.08);
  text-decoration: none;
  color: inherit;
  padding: 40px 25px;
  transition: all 0.3s ease;
}

.pc-service-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 35px rgba(0,176,255,0.2);
}

.pc-service-icon {
  font-size: 3rem;
  color: #00b0ff;
  margin-bottom: 20px;
}

.pc-service-name {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #0a1a3a;
  margin-bottom: 10px;
}

.pc-service-desc {
  color: #546e7a;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.7;
}

/* =========================================================
   詳しく見るリンク
   ========================================================= */

.pc-service-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 18px;
  font-weight: 600;
  color: #00b0ff;
  transition: all 0.3s ease;
  font-size: 18px;
  letter-spacing: 0.03em;
}

.pc-service-card:hover .pc-service-more {
  color: #0091ea;
  transform: translateX(4px);
}

.pc-service-more i {
  font-size: 18px;
  transition: transform 0.3s ease;
}

.pc-service-card:hover .pc-service-more i {
  transform: translateX(4px);
}

/* =========================================================
   調査対応エリアセクション
   ========================================================= */

.pc-area {
  background: linear-gradient(180deg, #ffffff 0%, #f5fbff 100%);
  padding: 50px 20px;
  text-align: center;
}

.pc-area-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.pc-area-header {
  margin-bottom: 60px;
}

.pc-area-title {
  font-size: 2.6rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  margin-bottom: 20px;
  position: relative;
}

.pc-area-title::after {
  content: "";
  display: block;
  width: 80px;
  height: 4px;
  background: linear-gradient(90deg, #00b0ff 0%, #00e0ff 100%);
  margin: 10px auto 0;
  border-radius: 2px;
}

.pc-area-lead {
  color: #546e7a;
  font-size: 18px;
  letter-spacing: 0.03em;
  line-height: 1.8;
}

/* レイアウト */
.pc-area-content {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 60px;
}

.pc-area-map {
  flex: 1;
}

.pc-area-map img {
  width: 100%;
  border-radius: 16px;
  margin-top: 60px;
  box-shadow: 0 8px 25px rgba(0,0,0,0.08);
}

.pc-area-list {
  flex: 1;
  text-align: left;
}

/* 見出し */
.pc-area-list h3 {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: #0a1a3a;
  margin-bottom: 10px;
  border-left: 5px solid #00b0ff;
  padding-left: 10px;
  margin-top: 10px;
}

/* 東京都リスト */
.area-tokyo li,
.area-kanto li {
  color: #37474f;
  font-size: 1rem;
  margin-bottom: 8px;
  line-height: 1.6;
}

/* 全国ネットワーク */
.pc-area-list p {
  color: #546e7a;
  font-size: 16px;
  line-height: 1.7;
}

/* =========================================================
   最終CTA（PC用・電話はテキスト表示）
   ========================================================= */

.pc-final-cta {
  background: linear-gradient(180deg, #0d3b72 0%, #0a1a3a 100%);
  color: #fff;
  padding: 50px 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.pc-final-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%);
  opacity: 0.4;
}

.pc-final-cta-inner {
  position: relative;
  z-index: 2;
  max-width: 900px;
  margin: 0 auto;
}

.pc-final-cta-title {
  font-size: 2.2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  margin-bottom: 25px;
  letter-spacing: 0.05em;
}

.pc-final-cta-lead {
  font-size: 20px;  
  letter-spacing: 0.03em;
  line-height: 1.9;
  color: #e0f7fa;
  margin-bottom: 50px;
}

/* 電話テキスト */
.pc-final-cta-tel {
  margin-bottom: 40px;
  font-size: 24px;
  letter-spacing: 0.05em;
  color: #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.pc-final-cta-tel i {
  color: #00b0ff;
  font-size: 24px;
}

.pc-final-cta-tel .tel-label {
  font-weight: 500;
  color: #e0f7fa;
}

.pc-final-cta-tel .tel-number {
  font-weight: 800;
  font-size: 28px;
  color: #fff;
  letter-spacing: 0.05em;
}

.pc-final-cta-tel .tel-note {
  font-size: 16px;
  color: #b0bec5;
}

/* メール・LINEボタン */
.pc-final-cta-buttons {
  display: flex;
  justify-content: center;
  gap: 50px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.pc-btn-sub,
.pc-btn-line {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 15px 28px;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.05em;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s ease;
}

/* メール・LINE別カラー */
.pc-btn-sub {
  background: #007bff;
  color: #fff;
  border: 2px solid #fff;
}
.pc-btn-sub:hover {
  background: rgba(255,255,255,0.1);
}

.pc-btn-line {
  background: #06c755;
  color: #fff;
  border: 2px solid #fff;
}
.pc-btn-line:hover {
  background: #05a94b;
}

/* 注意書き */
.pc-final-cta-note {
  font-size: 16px;
  letter-spacing: 0.03em;
  color: #b0bec5;
  margin-top: 20px;
  line-height: 1.6;
}

/* =========================================================
   共通フッター（白系・ブルーグレー基調）
   ========================================================= */

.pc-footer {
  background: linear-gradient(180deg, #f8faff 0%, #e9eef4 100%);
  color: #263238;
  padding: 20px 20px 25px;
  font-size: 16px;
  border-top: 5px solid #0048cc;
}

.pc-footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

/* ロゴ */
.pc-footer-logo img {
  display: block;
  margin: 0 auto 15px;
  max-width: 50%;
  height: auto;
}
.pc-footer-copy {
  color: #607d8b;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 40px;
  line-height: 1.6;
}

/* ナビゲーション */
.pc-footer-nav ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 18px;
  padding: 0;
  margin: 0 0 35px 0;
}
.pc-footer-nav a {
  color: #37474f;
  text-decoration: none;
  transition: color 0.3s ease;
  font-weight: 500;
}
.pc-footer-nav a:hover {
  color: #00b0ff;
}

/* 事務所情報 */
.pc-footer-info {
  margin-bottom: 30px;
  line-height: 1.7;
  color: #455a64;
}
.pc-footer-info .office-name {
  font-size: 18px;
  font-weight: 700;
  color: #0a1a3a;
}

/* CTAリンク */
.pc-footer-links {
  display: flex;
  justify-content: center;
  gap: 15px;
  flex-wrap: wrap;
  margin-bottom: 30px;
}

.pc-footer-links a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  border-radius: 30px;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.3s ease;
  font-size: 16px;
}

.pc-footer-links .mail-link {
  background: #007bff;
  color: #fff;
  border: 1px solid #007bff;
}
.pc-footer-links .mail-link:hover {
  background: #0069d9;
}

.pc-footer-links .line-link {
  background: #06c755;
  color: #fff;
  border: 1px solid #06c755;
}
.pc-footer-links .line-link:hover {
  background: #05a94b;
}

/* コピーライト */
.pc-footer-bottom {
  border-top: 1px solid #cfd8dc;
  margin-top: 40px;
  padding-top: 15px;
  text-align: center;
  color: #607d8b;
  font-size: 0.9rem;
}

/* =========================================================
   PC リード文セクション（画像なし・軽量グラデ版）
   ========================================================= */
.pc-consult-lead {
  background: linear-gradient(180deg, #f9fbff 0%, #e9f2fb 100%);
  padding: 90px 20px 100px;
  text-align: center;
  color: #0a1a3a;
}

.pc-consult-lead-inner {
  max-width: 900px;
  margin: 0 auto;
}

.pc-consult-lead-title {
  position: relative;
  display: inline-block;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  margin-bottom: 30px;
  color: #0a1a3a;
  letter-spacing: 0.05em;
}

.pc-consult-lead-title::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  width: 80px;
  height: 3px;
  background: #1976d2;
  transform: translateX(-50%);
  border-radius: 2px;
}

.pc-consult-lead-text {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0.05em;
  color: #37474f;
  margin-bottom: 40px;
}

/* =========================================================
   PC 無料相談フォーム（完全版）
   ========================================================= */
.pc-consult-form {
  background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%);
  padding: 50px 10px;
}

.pc-consult-form-inner {
  max-width: 800px;
  margin: 0 auto;
}

/* 見出しエリア */
.pc-consult-form-header {
  text-align: center;
  margin-bottom: 50px;
}

.pc-consult-form-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  margin-bottom: 15px;
}

.pc-consult-form-lead {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  line-height: 1.8;
  color: #37474f;
}

/* 入力カード */
.pc-form-card {
  background: #fff;
  border-radius: 14px;
  padding: 40px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.05);
  margin-bottom: 40px;
}

/* 入力項目 */
.pc-form-group {
  margin-bottom: 25px;
}

.pc-form-group label {
  display: block;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  font-weight: 600;
  margin-bottom: 8px;
  color: #0a1a3a;
}

.pc-form-group input,
.pc-form-group select,
.pc-form-group textarea {
  width: 100%;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  font-size: 1.5rem;
  padding: 5px 12px;
  box-sizing: border-box;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.pc-form-group input:focus,
.pc-form-group select:focus,
.pc-form-group textarea:focus {
  border-color: #00b0ff;
  box-shadow: 0 0 6px rgba(0, 176, 255, 0.2);
  outline: none;
}

/* ラジオボタン */
.pc-radio-group {
  display: flex;
  gap: 30px;
  padding-top: 5px;
}
.pc-radio-group label {
  font-weight: normal;
  color: #37474f;
}

/* 必須マーク */
.pc-required {
  color: #d32f2f;
  font-size: 1.3rem;
  margin-left: 6px;
}

/* CTA補足文 */
.pc-form-cta {
  text-align: center;
  margin: 40px 0 20px;
}

.pc-form-cta-text {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #455a64;
  line-height: 1.8;
  background: #e8f4ff;
  display: inline-block;
  padding: 15px 25px;
  border-radius: 8px;
  border-left: 5px solid #00b0ff;
}

/* 送信ボタン */
.pc-form-submit {
  text-align: center;
  margin-top: 30px;
}

.pc-form-submit .pc-btn-main {
  background: #00b0ff;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  padding: 0 60px;
  border: none;
  border-radius: 40px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 6px 20px rgba(0, 176, 255, 0.25);
}

.pc-form-submit .pc-btn-main:hover {
  background: #0091ea;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 145, 234, 0.35);
}


/* =========================================================
   PC：ご相談からご報告までの流れ（完全版）
   ========================================================= */
.pc-flow-section {
  background: linear-gradient(180deg, #fdfaf6 0%, #f7f3ed 100%);
  padding: 50px 20px;
  text-align: center;
}

/* 中央寄せ調整 */
.pc-flow-inner {
  max-width: 1100px;
  margin: 0 auto;
}

/* 見出し */
.pc-flow-title {
  position: relative;
  display: inline-block;
  margin: 0 auto 20px;
  font-size: 2.2rem;
  font-weight: 800;
  color: #0a1a3a;
  letter-spacing: 0.05em;
  padding: 0 50px;
}

.pc-flow-title::before,
.pc-flow-title::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, #0091ea, #00b0ff);
  transform: translateY(-50%);
  border-radius: 3px;
}

.pc-flow-title::before {
  left: 0;
  transform: translateX(-100%) translateY(-50%);
}

.pc-flow-title::after {
  right: 0;
  transform: translateX(100%) translateY(-50%);
}

/* リード文 */
.pc-flow-lead {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #4e4e4e;
  line-height: 1.8;
  margin-bottom: 60px;
}

/* ステップ全体レイアウト */
.pc-flow-steps {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  justify-content: center;
}

/* 各ステップカード */
.pc-flow-step {
  background: #ffffff;
  border-radius: 18px;
  padding: 40px 35px 35px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
  position: relative;
  text-align: left;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pc-flow-step:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 35px rgba(0, 0, 0, 0.12);
}

/* ステップ番号 */
.pc-flow-num {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #00b0ff;
  color: #fff;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  position: absolute;
  top: -25px;
  left: 30px;
  box-shadow: 0 4px 10px rgba(0, 176, 255, 0.4);
}

/* 見出し */
.pc-flow-step h3 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0a1a3a;
  margin: 30px 0 12px;
  letter-spacing: 0.05em;
}

/* 本文 */
.pc-flow-step p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #37474f;
  line-height: 1.8;
  margin: 0;
}

/* =========================================================
   PC：よくある質問（FAQ）
   ========================================================= */
.pc-faq-section {
  background: linear-gradient(180deg, #f8faff 0%, #ffffff 100%);
  padding: 50px 20px;
  text-align: center;
}

.pc-faq-inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

/* タイトル */
.pc-faq-title {
  position: relative;
  display: inline-block;
  font-size: 2rem;
  font-weight: 800;
  color: #0a1a3a;
  letter-spacing: 0.05em;
  margin: 0 auto 20px;
  text-align: center;
}

.pc-faq-title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, #0091ea, #00b0ff);
  border-radius: 3px;
}

/* リード文 */
.pc-faq-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #4e4e4e;
  text-align: center;
  line-height: 1.8;
  margin-bottom: 50px;
}

/* FAQアイテム */
.pc-faq-item {
  background: #fff;
  border-radius: 12px;
  margin-bottom: 20px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.05);
  overflow: hidden;
  transition: box-shadow 0.3s ease;
}

.pc-faq-item:hover {
  box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

/* 質問部分 */
.pc-faq-question {
  width: 100%;
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
  font-size: 1.5rem;
  font-weight: 600;
  color: #0a1a3a;
  padding: 5px 50px 20px 55px;
  text-align: left;
  position: relative;
  transition: background 0.3s ease;
}


/* 開閉時の矢印 */
.pc-faq-question::after {
  content: "\f078"; /* Font Awesomeの下向き矢印 */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  right: 20px;
  top: 22px;
  color: #00b0ff;
  transition: transform 0.3s ease;
}

.pc-faq-item.active .pc-faq-question::after {
  transform: rotate(180deg);
}

/* 回答部分 */
.pc-faq-answer {
  max-height: 0;
  overflow: hidden;
  background: #f7fbff;
  border-top: 1px solid #e0f2f7;
  transition: max-height 0.4s ease;
}

.pc-faq-answer p {
  padding: 20px 25px 25px 25px;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #37474f;
  line-height: 1.8;
  margin: 0;
}

/* 開いたとき */
.pc-faq-item.active .pc-faq-answer {
  max-height: 300px;
}

/* ---------------------------------------------------------
   各ステップ詳細
--------------------------------------------------------- */
.pc-flow-detail {
  background: #f8fbff;
  padding: 100px 20px;
}

.pc-flow-detail-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 80px;
}

.pc-flow-detail-block {
  display: flex;
  align-items: center;
  gap: 50px;
}

.pc-flow-detail-block.reverse {
  flex-direction: row-reverse;
}

.detail-text {
  flex: 1;
}

.detail-img {
  flex: 1;
  text-align: center;
}

.detail-img img {
  width: 100%;
  max-width: 460px;
  border-radius: 16px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

/* ステップラベル */
.step-label {
  display: inline-block;
  background: #00b0ff;
  color: #fff;
  font-weight: 700;
  border-radius: 30px;
  padding: 6px 18px;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  margin-bottom: 12px;
}

.detail-text h3 {
  font-size: 2rem;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  font-weight: 800;
  margin-bottom: 15px;
}

.detail-text p {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #37474f;
  line-height: 1.8;
  margin-bottom: 20px;
}

/* 箇条書き */
.detail-text ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.detail-text li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 8px;
  color: #455a64;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
}

.detail-text li::before {
  content: "✔";
  color: #00b0ff;
  font-weight: 700;
  position: absolute;
  left: 0;
  top: 0;
}

/* =========================================================
   調査事例一覧（シンプル版）
   ========================================================= */

.pc-cases-section {
  background: linear-gradient(180deg, #f8fbff 0%, #f1f5f9 100%);
  padding: 50px 20px;
  text-align: center;
}

.pc-cases-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.pc-cases-title {
  font-size: 2.2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
  margin-bottom: 20px;
}

.pc-cases-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #0091ea, #00b0ff);
  border-radius: 2px;
  transform: translateX(-50%);
}

.pc-cases-lead {
  color: #607d8b;
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.8;
  margin-bottom: 50px;
}

/* グリッド */
.pc-cases-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 40px;
}

.case-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  text-align: left;
}

.case-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

.case-card img {
  width: 100%;
  height: auto;
  border-radius: 16px 16px 0 0;
  transition: transform 0.4s ease;
}

.case-card:hover img {
  transform: scale(1.05);
}

.case-card h3 {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #0a1a3a;
  padding: 15px 20px 0;
  line-height: 1.6;
}

/* =========================================================
   ガルエージェンシー渋谷について
   ========================================================= */

.pc-about-section {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  padding: 100px 20px;
  text-align: center;
}

.pc-about-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.pc-about-title {
  font-size: 2.2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
  margin-bottom: 20px;
}

.pc-about-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #0091ea, #00b0ff);
  border-radius: 2px;
}

.pc-about-lead {
  color: #607d8b;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.8;
  margin-bottom: 60px;
}

/* グリッド（3カラム） */
.pc-about-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 40px;
}

.about-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 25px rgba(0,0,0,0.05);
  padding: 40px 20px;
  transition: all 0.3s ease;
}

.about-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 15px 35px rgba(0,0,0,0.08);
}

/* アイコン */
.about-card .icon {
  background: #00b0ff;
  color: #fff;
  border-radius: 50%;
  width: 70px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  font-size: 1.8rem;
  box-shadow: 0 4px 15px rgba(0,176,255,0.3);
}

/* 見出し・本文 */
.about-card h3 {
  font-size: 2rem;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  margin-bottom: 10px;
  font-weight: 700;
}

.about-card p {
  color: #455a64;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.7;
}

/* =========================================================
   会社概要テーブル
   ========================================================= */

.pc-company-info {
  background: #ffffff;
  padding: 50px 20px;
  text-align: center;
}

.pc-company-inner {
  max-width: 1000px;
  margin: 0 auto;
}

.pc-company-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
  margin-bottom: 40px;
}

.pc-company-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 70px;
  height: 3px;
  background: linear-gradient(90deg, #0091ea, #00b0ff);
  border-radius: 2px;
}

/* テーブル */
.pc-company-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  background: #fff;
  box-shadow: 0 8px 25px rgba(0,0,0,0.05);
  border-radius: 12px;
  overflow: hidden;
}

.pc-company-table th,
.pc-company-table td {
  border-bottom: 1px solid #e0e0e0;
  padding: 16px 20px;
  text-align: left;
  vertical-align: top;
}

.pc-company-table th {
  width: 30%;
  background: #f5f7fa;
  font-weight: 700;
  color: #0a1a3a;
  white-space: nowrap;
}

.pc-company-table td {
  color: #455a64;
  line-height: 1.7;
}

.pc-company-table tr:last-child th,
.pc-company-table tr:last-child td {
  border-bottom: none;
}

/* =========================================================
   会社概要専用アクセスセクション（gy-access）
   ========================================================= */

.gy-access {
  background: #d6fada;
  padding: 50px 20px 20px;
}

.gy-access-inner {
  max-width: 1100px;
  margin: 0 auto;
}

/* タイトル部分 */
.gy-access-header {
  text-align: center;
  margin-bottom: 10px;
}

.gy-access-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0a1a3a;
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.gy-access-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #0091ea, #00b0ff);
  border-radius: 2px;
}

.gy-access-sub {
  color: #90a4ae;
  font-size: 0.9rem;
  letter-spacing: 0.15em;
}

/* メインレイアウト */
.gy-access-flex {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 40px;
}

/* 左側：情報カード */
.gy-access-info {
  flex: 1 1 45%;
  background: #ffffff;
  border-radius: 16px;
  padding: 25px 30px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
}

.gy-access-company {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #0a1a3a;
  margin-bottom: 15px;
}

.gy-access-address {
  color: #455a64;
  line-height: 1.8;
  font-size: 1.2rem;
  letter-spacing: 0.03em;
  margin-bottom: 20px;
}

.gy-access-contact p {
  margin: 5px 0;
  color: #37474f;
  font-size: 1.2rem;
  letter-spacing: 0.03em;
}

.gy-access-contact strong {
  color: #0a1a3a;
}

/* アクセス補足情報 */
.gy-access-route {
  margin-top: 25px;
  text-align: left;
}

.gy-access-route h4 {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #0a1a3a;
  margin-bottom: 10px;
  border-left: 4px solid #00b0ff;
  padding-left: 10px;
}

.gy-access-route ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.gy-access-route li {
  position: relative;
  padding-left: 18px;
  margin-bottom: 8px;
  color: #455a64;
  font-size: 1.2rem;
  letter-spacing: 0.03em;
}

.gy-access-route li::before {
  content: "•";
  color: #00b0ff;
  position: absolute;
  left: 0;
  top: 0;
}

/* ボタン */
.gy-access-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(90deg, #0091ea, #00b0ff);
  color: #fff;
  font-weight: 600;
  border-radius: 50px;
  padding: 12px 28px;
  margin-top: 30px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.gy-access-btn:hover {
  background: linear-gradient(90deg, #007ac1, #00a0e0);
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0, 144, 255, 0.3);
}

.gy-access-btn i {
  font-size: 1.1rem;
}

/* 右側：マップ */
.gy-access-map {
  flex: 1 1 50%;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.gy-access-map iframe {
  width: 100%;
  height: 400px;
  border: none;
}

/* =========================================================
   フッターSNSリンク追加対応
   ========================================================= */

/* SNSリンク */
.pc-footer-sns {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin: 20px 0 30px;
}

.pc-footer-sns .sns-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: #fff;
  font-size: 18px;
  transition: all 0.3s ease;
}

.sns-link.fb { background: #1877F2; }
.sns-link.ig { background: linear-gradient(45deg, #F58529, #DD2A7B, #8134AF); }
.sns-link.tw { background: #000; }
.sns-link.th { background: #000; }
.sns-link.tk { background: #000; }
.sns-link.yt { background: #FF0000; }

.sns-link:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}

.sp-footer {
  background: linear-gradient(180deg, #f9fafc 0%, #eef4f8 100%);
  padding: 10px 20px;
  text-align: center;
  font-size: 15px;
  color: #333;
}

.sp-footer-logo img {
  width: 300px;
  margin-bottom: 10px;
}

.sp-footer-contact {
  margin-top: 15px;
  line-height: 1.8;
}

.sp-footer-contact .lead {
  font-size: 16px;
  font-weight: 600;
  color: #004a8f;
  margin-bottom: 8px;
}

.f_tel a {
  color: #004a8f;
  text-decoration: none;
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
}

.f_mail a {
  color: #007bff;
  text-decoration: underline;
}

.sp-footer-sns {
  margin-top: 25px;
}

.sp-footer-sns .head-border {
  font-weight: 600;
  color: #004a8f;
  margin-bottom: 8px;
}

.sp-footer-icons {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

.sp-footer-icons .sns-link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: #fff;
  font-size: 18px;
  transition: all 0.3s ease;
}

.sns-link svg {
  width: 18px;
  height: 18px;
  fill: #fff;
}

.sns-link.fb { background: #1877F2; }
.sns-link.ig { background: linear-gradient(45deg, #F58529, #DD2A7B, #8134AF); }
.sns-link.tw { background: #000; }
.sns-link.th { background: #000; }
.sns-link.tk { background: #000; }
.sns-link.yt { background: #FF0000; }

.sns-link:hover {
  transform: translateY(-3px);
  opacity: 0.9;
}

.sp-footer-menu {
  margin-top: 25px;
}

.sp-footer-menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-footer-menu li {
  display: inline-block;
  margin: 5px 10px;
}

.sp-footer-menu a {
  color: #004a8f;
  text-decoration: none;
  font-weight: 500;
  font-size: 0.95rem;
}

.sp-footer-menu a:hover {
  text-decoration: underline;
}

.sp-footer-copy {
  margin-top: 25px;
  color: #777;
  font-size: 0.8rem;
}

/* =========================================================
   ガル渋谷PCヘッダー（メガメニュー安定＋右CTA切れ防止＋バランス最終版）
========================================================= */

.pc-header-wide {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: linear-gradient(90deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  z-index: 9999;
  overflow: visible; /* ← ドロップダウンが隠れないように */
}

/* ===== 内側レイアウト ===== */
.pc-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  padding: 14px 32px;
  gap: 28px;
  min-width: min(100%, 100vw);
  box-sizing: border-box;
  overflow: visible; /* ← スクロールではなく見えるように */
}

/* ===== ロゴ ===== */
.pc-header-logo {
  flex-shrink: 0;
}
.pc-header-logo img {
  height: 60px;
  width: auto;
  display: block;
}

/* ===== ナビゲーション ===== */
.pc-nav {
  flex: 1;
  display: flex;
  justify-content: center;
  min-width: 620px;
}
.pc-nav-list {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2vw, 26px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.pc-nav-list a {
  text-decoration: none;
  color: #1d3b6a;
  font-weight: 600;
  font-size: clamp(0.95rem, 1.1vw, 1.15rem);
  letter-spacing: 0.02em;
  transition: color 0.3s ease, transform 0.2s ease;
  white-space: nowrap;
}
.pc-nav-list a:hover {
  color: #0b77d4;
  transform: translateY(-2px);
}

/* =========================================================
   メガドロップダウン（横並び安定＋hover切れ防止）
========================================================= */
.has-mega {
  position: relative;
  padding-bottom: 0; /* 隙間削除でhover切れ防止 */
}

/* ▼ ドロップダウン全体 */
.mega-dropdown {
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 100%;
  width: 80vw;
  background: #f8fafc;
  border-top: 3px solid #0b77d4;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  padding: 32px 0 40px;
  z-index: 999999;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: all 0.25s ease;
}

/* ▼ hoverしたときにふわっと出す */
.has-mega:hover .mega-dropdown,
.has-mega:focus-within .mega-dropdown {
  display: block;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

/* ▼ グリッドで横並び */
.mega-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 24px;
  padding: 0 40px;
  box-sizing: border-box;
}

/* ▼ 各項目 */
.mega-item {
  background: #fff;
  border-radius: 10px;
  padding: 20px 14px;
  text-align: center;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
  color: #042b57;
  text-decoration: none;
  transition: all 0.25s ease;
}
.mega-item:hover {
  transform: translateY(-4px);
  color: #0b77d4;
  background: #eef7ff;
}
.mega-item i {
  font-size: 26px;
  margin-bottom: 10px;
  display: block;
  color: #0b77d4;
}

/* =========================================
   ▼ メガメニュー レイアウト修正（全ページ共通）
   ========================================= */
.mega-item {
  display: flex !important;
  flex-direction: column !important; /* 縦方向配置 */
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: normal !important; /* 改行許可 */
  gap: 6px;
}

.mega-item i {
  display: block !important;
  font-size: 28px !important;
  margin-bottom: 4px;
  color: #0b77d4 !important;
}

.mega-item span {
  display: block !important;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #042b57;
}


/* ▼ hover切れ防止の透明エリア */
.has-mega::after {
  content: "";
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
  height: 20px;
  background: transparent;
}

/* ===== CTA（右端） ===== */
.pc-header-cta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-shrink: 0;
  gap: 12px;
  min-width: max-content;
}

.tel-link,
.consult-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 14px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 8px;
  line-height: 1.2;
  white-space: nowrap;
  transition: all 0.3s ease;
  height: 48px;
}

.tel-link {
  background: #eaf6ff;
  color: #0b3b7d;
  border: 1px solid #bcd8f7;
  font-size: 1.05rem;
}
.tel-link:hover {
  background: #d4edff;
}

.consult-btn {
  background: #00a86b;
  color: #fff;
  font-size: 1.05rem;
}
.consult-btn:hover {
  background: #02c37e;
}

/* ===== レスポンシブ ===== */
@media screen and (max-width: 1300px) {
  .pc-nav-list a { font-size: 1rem; }
  .pc-header-logo img { height: 56px; }
}
@media screen and (max-width: 1150px) {
  .pc-header-inner { padding: 10px 24px; gap: 20px; }
  .pc-nav-list a { font-size: 0.95rem; }
}
@media screen and (max-width: 1024px) {
  .pc-header-inner {
    overflow-x: scroll;
  }
  .pc-nav {
    min-width: 500px;
  }
  .pc-nav-list a { font-size: 0.9rem; }
}
@media screen and (min-width: 1700px) {
  .pc-header-inner {
    max-width: 1500px;
    margin: 0 auto;
  }
}

/* ===== 「調査項目」 下矢印アイコン ===== */
.has-mega > a {
  position: relative;
  padding-right: 18px; /* 矢印分の余白を確保 */
}

/* ▼ 下矢印（Font Awesome不要のCSS描画） */
.has-mega > a::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-right: 2px solid #1d3b6a;
  border-bottom: 2px solid #1d3b6a;
  transform: translateY(-50%) rotate(45deg);
  transition: transform 0.2s ease, border-color 0.2s ease;
}

/* hover時に少し上に動いて色変化 */
.has-mega:hover > a::after {
  transform: translateY(-50%) rotate(225deg);
  border-color: #0b77d4;
}

/* ▼ 最初は非表示状態（透明＋上に少し隠す） */
.pc-header-wide {
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

/* ▼ 表示時クラス */
.pc-header-wide.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ▼ 「調査項目」リンクをクリック不可に */
.has-mega > a {
  pointer-events: none;
  cursor: default;
}

/* =========================================================
   浮気調査ページ 第1セクション（pcuw-intro）
========================================================= */
.pcuw-intro {
  background: #f8fafc;
  padding: 50px 20px 30px;
  text-align: center;
}

.pcuw-container {
  max-width: 980px;
  margin: 0 auto;
}

.pcuw-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0b3b7d;
  margin-bottom: 28px;
  line-height: 1.4;
}

.pcuw-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.9;
  color: #333;
  margin-bottom: 24px;
}

.pcuw-text {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.9;
  color: #333;
}

.pcuw-highlight {
  background: linear-gradient(transparent 60%, #fff4cc 60%);
  font-weight: 700;
}

/* =========================================================
   浮気調査ページ 第2セクション（pcuw-expertise）
========================================================= */
.pcuw-expertise {
  background: #fff;
  padding: 50px 20px 200px;
  text-align: center;
}

.pcuw-container {
  max-width: 1100px;
  margin: 0 auto;
}

.pcuw-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0b3b7d;
  margin-bottom: 24px;
}

.pcuw-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #333;
  margin-bottom: 60px;
  line-height: 1.9;
}

/* 特徴グリッド */
.pcuw-feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 36px;
}

.pcuw-feature-item {
  background: #f8fafc;
  border-radius: 14px;
  padding: 30px 28px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pcuw-feature-item:hover {
  transform: translateY(-6px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.pcuw-feature-item i {
  font-size: 40px;
  color: #0b77d4;
  margin-bottom: 18px;
}

.pcuw-feature-title {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 00.03em;
  color: #042b57;
  margin-bottom: 12px;
}

.pcuw-feature-text {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #333;
  line-height: 1.8;
}

/* =========================================================
   浮気調査ページ 第3セクション（pcuw-law）タイトル中央寄せ
========================================================= */
.pcuw-law {
  background: #f9fbfd;
  padding: 100px 20px;
  border-top: 2px solid #e3e9f2;
  text-align: center; /* ← セクション全体を中央寄せベースに */
}

.pcuw-law .pcuw-container {
  max-width: 950px;
  margin: 0 auto;
}

/* ===== タイトル装飾（中央寄せ対応） ===== */
.pcuw-law .pcuw-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #0b3b7d;
  text-align: center;
  margin: 0 auto 24px;
  position: relative;
  display: inline-block; /* ← センター下線を正しく配置するため */
  padding-bottom: 12px;
}

/* タイトル下線を中央に */
.pcuw-law .pcuw-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #0b77d4, #00a86b);
  border-radius: 3px;
}

/* ===== テキスト類 ===== */
.pcuw-law .pcuw-lead {
  text-align: center;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #333;
  margin-bottom: 50px;
  line-height: 1.8;
}

.pcuw-law-content {
  text-align: left; /* 段落本文は左寄せに戻す */
}

.pcuw-law-content p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #333;
  line-height: 1.9;
  margin-bottom: 20px;
}

.pcuw-highlight {
  background: linear-gradient(transparent 60%, #fff4cc 60%);
  font-weight: 700;
}

/* ===== 補足ボックス ===== */
.pcuw-law-note {
  margin-top: 50px;
  background: #fff;
  border-left: 5px solid #0b77d4;
  border-radius: 10px;
  padding: 30px 24px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.05);
  display: flex;
  align-items: flex-start;
  gap: 18px;
  text-align: left;
}

.pcuw-law-note i {
  font-size: 30px;
  color: #0b77d4;
  flex-shrink: 0;
  margin-top: 5px;
}

.pcuw-law-note p {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #042b57;
  line-height: 1.8;
}

/* =========================================================
   浮気調査ページ 第4セクション（pcuw-proof）
   クリーム系グラデーション背景版
========================================================= */
.pcuw-proof {
  background: linear-gradient(180deg, #fff9e6 0%, #fff4cc 100%);
  padding: 80px 20px;
  border-top: 3px solid #f0e2b8;
  text-align: center;
  position: relative;
}

/* ===== コンテナ ===== */
.pcuw-proof .pcuw-container {
  max-width: 1100px;
  margin: 0 auto;
}

/* ===== タイトル ===== */
.pcuw-proof .pcuw-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #3b2f12;
  display: inline-block;
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 12px;
}

.pcuw-proof .pcuw-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #f5b800, #ff9100);
  border-radius: 3px;
}

/* ===== リード文 ===== */
.pcuw-proof .pcuw-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #5a4a1a;
  margin-bottom: 60px;
  line-height: 1.9;
}

/* ===== 証拠カード ===== */
.pcuw-proof-card {
  display: flex;
  align-items: center;
  gap: 40px;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  padding: 40px;
  margin-bottom: 50px;
  text-align: left;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pcuw-proof-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12);
}

.pcuw-proof-img img {
  border-radius: 10px;
  width: 100%;
  max-width: 300px;
  height: auto;
  object-fit: cover;
}

/* ===== テキスト部 ===== */
.pcuw-proof-body h3 {
  color: #3b2f12;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin-bottom: 12px;
}

.pcuw-proof-body p {
  color: #4a3d16;
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  line-height: 1.9;
  margin-bottom: 14px;
}

/* ===== チェックポイント ===== */
.pcuw-point {
  color: #b07a00;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  margin-top: 8px;
}
.pcuw-point i {
  color: #ff9f00;
  margin-right: 6px;
}

/* ===== まとめ部分 ===== */
.pcuw-proof-summary {
  background: #fffef8;
  border-left: 6px solid #f5b800;
  border-radius: 12px;
  padding: 60px 40px;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
  text-align: center;
}

.pcuw-proof-summary p {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #3b2f12;
  line-height: 1.9;
  font-weight: 500;
}

/* =========================================================
   浮気調査ページ 第5セクション（pcuw-after）
   証拠取得後の流れセクション
========================================================= */
.pcuw-after {
  background: linear-gradient(180deg, #f1faff 0%, #e3f5ff 100%);
  padding: 80px 20px;
  border-top: 3px solid #cce6f5;
  text-align: center;
}

.pcuw-after .pcuw-container {
  max-width: 1100px;
  margin: 0 auto;
}

.pcuw-after .pcuw-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #063a6b;
  position: relative;
  display: inline-block;
  margin-bottom: 20px;
  padding-bottom: 12px;
}

.pcuw-after .pcuw-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #0b77d4, #00a86b);
  border-radius: 3px;
}

.pcuw-after .pcuw-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #333;
  margin-bottom: 60px;
  line-height: 1.8;
}

/* ===== ステップ全体 ===== */
.pcuw-steps {
  display: flex;
  flex-direction: column;
  gap: 50px;
}

/* ===== 各ステップ ===== */
.pcuw-step {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  gap: 40px;
  padding: 40px;
  text-align: left;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pcuw-step:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12);
}

/* ===== 画像 ===== */
.pcuw-step-img img {
  width: 100%;
  max-width: 380px;
  border-radius: 10px;
  object-fit: cover;
}

/* ===== テキスト部 ===== */
.pcuw-step-body h3 {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #063a6b;
  margin-bottom: 12px;
}
.step-num {
  font-size: 1.5rem;
  letter-spacing: 0.05em;
  color: #0b77d4;
  font-weight: 700;
  background: #e9f4ff;
  padding: 3px 8px;
  border-radius: 6px;
  margin-right: 6px;
}

.pcuw-step-body p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #333;
  line-height: 1.9;
}

/* ===== まとめ ===== */
.pcuw-after-summary {
  margin-top: 70px;
  background: #fff;
  border-left: 6px solid #0b77d4;
  border-radius: 12px;
  padding: 50px 40px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.05);
}

.pcuw-after-summary p {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #063a6b;
  line-height: 1.9;
  font-weight: 500;
}

/* ===== スマホ対応 ===== */
@media screen and (max-width: 900px) {
  .pcuw-step {
    flex-direction: column;
    text-align: center;
    gap: 20px;
    padding: 30px 20px;
  }
  .pcuw-step-img img {
    max-width: 100%;
  }
}

/* =========================================================
   浮気調査ページ 第6セクション（pcuw-support）
   調査後のサポート体制
========================================================= */
.pcuw-support {
  background: linear-gradient(180deg, #e9fff7 0%, #d9f7eb 100%);
  padding: 80px 20px;
  border-top: 3px solid #b8e8d2;
  text-align: center;
}

.pcuw-support .pcuw-container {
  max-width: 1100px;
  margin: 0 auto;
}

.pcuw-support .pcuw-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #064a34;
  display: inline-block;
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 12px;
}
.pcuw-support .pcuw-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #00a86b, #0b77d4);
  border-radius: 3px;
}
.pcuw-support .pcuw-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #333;
  margin-bottom: 60px;
  line-height: 1.8;
}

/* ===== グリッド構成 ===== */
.pcuw-support-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 30px;
  margin-bottom: 60px;
}

.pcuw-support-card {
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  padding: 40px 30px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pcuw-support-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.pcuw-support-card i {
  font-size: 40px;
  color: #00a86b;
  margin-bottom: 20px;
}

.pcuw-support-card h3 {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #064a34;
  margin-bottom: 14px;
}
.pcuw-support-card p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #333;
  line-height: 1.9;
}

/* ===== まとめ ===== */
.pcuw-support-summary {
  background: #ffffff;
  border-left: 6px solid #00a86b;
  border-radius: 12px;
  padding: 50px 40px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.05);
}
.pcuw-support-summary p {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #064a34;
  line-height: 1.9;
  font-weight: 500;
}

/* =========================================================
   浮気調査ページ 最終セクション（pcuw-cta）
   無料相談・お問い合わせ誘導
========================================================= */
.pcuw-cta {
  background: linear-gradient(180deg, #fefaf3 0%, #fff9e6 100%);
  padding: 80px 20px;
  border-top: 3px solid #f2e2b0;
  text-align: center;
}

.pcuw-cta .pcuw-container {
  max-width: 1100px;
  margin: 0 auto;
}

.pcuw-cta .pcuw-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #3b2f12;
  position: relative;
  display: inline-block;
  margin-bottom: 20px;
  padding-bottom: 12px;
}
.pcuw-cta .pcuw-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #f5b800, #ff9100);
  border-radius: 3px;
}

.pcuw-cta .pcuw-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #4a3d16;
  margin-bottom: 60px;
  line-height: 1.8;
}

/* ===== CTAカード群 ===== */
.pcuw-cta-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px;
  margin-bottom: 60px;
}

.pcuw-cta-card {
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  padding: 40px 30px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pcuw-cta-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.pcuw-cta-card i {
  font-size: 40px;
  color: #f5b800;
  margin-bottom: 18px;
}

.pcuw-cta-card h3 {
  font-size: 1.3rem;
  font-weight: 700;
  color: #3b2f12;
  margin-bottom: 10px;
}

.pcuw-cta-card p {
  font-size: 1.2rem;
  letter-spacing: 0.03em;
  color: #5a4a1a;
  margin-bottom: 20px;
}

/* ===== ボタン ===== */
.pcuw-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 8px;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-decoration: none;
  color: #fff;
  transition: all 0.3s ease;
  width: 100%;
  max-width: 260px;
  margin: 0 auto;
}

.pcuw-cta-btn.phone {
  background: #0b77d4;
}
.pcuw-cta-btn.phone:hover {
  background: #0990ff;
}

.pcuw-cta-btn.mail {
  background: #00a86b;
}
.pcuw-cta-btn.mail:hover {
  background: #02c37e;
}

.pcuw-cta-btn.line {
  background: #06c755;
}
.pcuw-cta-btn.line:hover {
  background: #07de61;
}

/* ===== フッター文 ===== */
.pcuw-cta-footer {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #3b2f12;
  line-height: 1.9;
  font-weight: 500;
}

/* ==============================
   行方・所在調査セクション（最終版）
============================== */
.pcyuk-cases {
  background: linear-gradient(180deg, #f0f6ff 0%, #f9fbfe 100%);
  padding: 80px 0;
}

.pcyuk-inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 25px;
}

/* 見出し */
.pcyuk-cases h2 {
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #0b3b75;
  margin-bottom: 25px;
  position: relative;
}

.pcyuk-cases h2 i {
  color: #1b73d3;
  margin-right: 8px;
}

/* ✅ 微調整：見出しの下線アクセント */
.pcyuk-cases h2::after {
  content: "";
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #1b73d3 0%, #3aa3ff 100%);
  display: block;
  margin: 10px auto 0;
  border-radius: 2px;
}

/* ✅ フック文 */
.pcyuk-hook {
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #0a2b60;
  margin-bottom: 15px;
  letter-spacing: 0.03em;
  line-height: 1.8;
}

.pcyuk-hook strong {
  color: #003366;
  font-weight: 800;
}

/* ✅ リード文 */
.pcyuk-lead {
  text-align: center;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  line-height: 2; /* ←微調整で視認性UP */
  color: #222;
  margin-bottom: 45px;
}

/* リスト */
.pcyuk-case-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 40px;
  max-width: 850px;
  margin: 0 auto;
  list-style: none;
  padding: 0;
}

.pcyuk-case-list li {
  font-size: 1.3rem;
  letter-spacing: 0.05em;
  color: #1b1b1b;
  line-height: 1.7;
  display: flex;
  align-items: flex-start;
  background: #ffffff;
  padding: 15px 10px;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pcyuk-case-list li:hover {
  transform: translateY(-3px);
  box-shadow: 0 5px 12px rgba(0,0,0,0.12);
}

.pcyuk-case-list li i {
  color: #1b73d3;
  margin-right: 20px;
  font-size: 1.3rem;
  flex-shrink: 0;
  /* ✅ 追加：淡い背景サークル */
  background: rgba(27,115,211,0.08);
  padding: 8px;
  border-radius: 50%;
}

/* ==============================
   行方調査とは（融合レイアウト）
============================== */
.yukue-about {
  background: linear-gradient(180deg, #eef4fb 0%, #f9fbff 100%);
  padding: 120px 0;
  overflow: hidden;
}

.yukue-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

.yukue-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
  position: relative;
}

/* 左：画像 */
.yukue-image {
  flex: 1;
  position: relative;
  z-index: 2;
  transform: translateY(15px);
}
.yukue-image img {
  width: 100%;
  border-radius: 20px;
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2);
  transition: all 0.6s ease;
}
.yukue-image::before {
  content: "";
  position: absolute;
  inset: -20px -30px;
  background: radial-gradient(circle at 30% 30%, rgba(90,150,255,0.25), transparent 70%);
  z-index: -1;
  filter: blur(30px);
}
.yukue-image img:hover {
  transform: scale(1.03);
}

/* 右：テキスト */
.yukue-text {
  flex: 1.1;
  background: #ffffffd9;
  backdrop-filter: blur(10px);
  border-radius: 20px;
  padding: 50px 45px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.1);
  position: relative;
  z-index: 3;
}
.yukue-text::before {
  content: "";
  position: absolute;
  top: 20px;
  left: -30px;
  width: 60px;
  height: calc(100% - 40px);
  background: linear-gradient(180deg, #2d6dd8 0%, #6bb8ff 100%);
  border-radius: 6px;
  opacity: 0.3;
}

/* 見出し */
.yukue-text h2 {
  font-size: 2.4rem;
  font-weight: 800;
  color: #083b7a;
  margin-bottom: 25px;
  border-bottom: 3px solid #1b73d3;
  display: inline-block;
}

/* リード文 */
.yukue-lead {
  font-size: 1.05rem;
  color: #333;
  line-height: 1.9;
  margin-bottom: 40px;
}

/* カード群 */
.yukue-cards {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.yukue-card {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  background: #fff;
  border-radius: 14px;
  padding: 20px 25px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
}
.yukue-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0,0,0,0.12);
}

.yukue-card i {
  background: linear-gradient(135deg, #1b73d3, #59b5ff);
  color: #fff;
  font-size: 1.2rem;
  padding: 12px;
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

/* テキスト部分 */
.yukue-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #0a2b60;
  margin-bottom: 6px;
}
.yukue-card p {
  font-size: 0.95rem;
  color: #333;
  line-height: 1.7;
}

/* スマホ対応 */
@media screen and (max-width: 900px) {
  .yukue-flex {
    flex-direction: column;
    gap: 50px;
  }
  .yukue-text::before {
    display: none;
  }
  .yukue-text {
    padding: 35px 25px;
  }
  .yukue-text h2 {
    text-align: center;
  }
  .yukue-lead {
    text-align: center;
  }
}



/* ===============================
   行方調査とは：ビジュアル＋テキスト構成
   class prefix: yukv-
================================= */
.yukv-about {
  position: relative;
  padding: clamp(80px, 7vw, 140px) 0;
  background: linear-gradient(180deg, #eef3fb 0%, #f9fbff 100%);
  overflow: hidden;
}

.yukv-about::before {
  content: "";
  position: absolute;
  inset: -10% -10% auto -10%;
  height: 60%;
  background: radial-gradient(60% 60% at 20% 20%, rgba(48,117,214,.15) 0%, rgba(48,117,214,0) 70%);
  filter: blur(25px);
  pointer-events: none;
}

.yukv-inner {
  max-width: 1200px;
  padding: 0 24px;
  margin: 0 auto;
}

/* Flex構成 */
.yukv-flex {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  gap: clamp(40px, 6vw, 80px);
}

/* 左側：写真 */
.yukv-visual {
  padding-left: 2%;
}

.yukv-visual img {
  width: 100%;
  display: block;
  border-radius: 22px;
  box-shadow: 0 30px 60px rgba(10, 35, 80, .25);
  object-fit: cover;
  aspect-ratio: 16/11;
  transform: translateY(8px);
  transition: transform .5s ease, box-shadow .5s ease;
}

.yukv-visual img:hover {
  transform: translateY(0);
  box-shadow: 0 40px 80px rgba(10, 35, 80, .25);
}

/* 右側：カード */
.yukv-card {
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  padding: clamp(22px, 3.2vw, 40px);
  position: relative;
  box-shadow: 0 20px 45px rgba(20, 40, 80, .12);
}

.yukv-card::before {
  content: "";
  position: absolute;
  left: -18px;
  top: 24px;
  bottom: 24px;
  width: 6px;
  border-radius: 4px;
  background: linear-gradient(180deg, #2f6fd8 0%, #6ab6ff 100%);
  opacity: .7;
}

.yukv-title {
  font-size: clamp(24px, 3.1vw, 34px);
  line-height: 1.25;
  font-weight: 800;
  color: #0b326a;
  margin: 0 0 14px;
  letter-spacing: .02em;
  border-bottom: 3px solid #2f6fd8;
  display: inline-block;
  padding-bottom: 6px;
}

.yukv-lead {
  margin: 0 0 22px;
  font-size: clamp(14px, 1.15vw, 16.5px);
  line-height: 1.9;
  color: #2b2f36;
}

/* 小カード群 */
.yukv-mini {
  display: grid;
  gap: 14px;
}

.yukv-miniItem {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 14px;
  align-items: start;
  padding: 18px 20px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(10,30,70,.07);
  transition: transform .2s ease, box-shadow .2s ease;
}

.yukv-miniItem:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(10,30,70,.12);
}

.yukv-ico {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #2f6fd8, #66b7ff);
  color: #fff;
  box-shadow: 0 6px 12px rgba(47,111,216,.25);
  font-size: 18px;
}

.yukv-miniTitle {
  margin: 2px 0 6px;
  font-weight: 700;
  color: #0a2c5e;
  font-size: 15.5px;
  letter-spacing: .01em;
}

.yukv-miniText {
  margin: 0;
  color: #404650;
  line-height: 1.7;
  font-size: 14.5px;
}

/* スマホ対応 */
@media (max-width: 980px) {
  .yukv-flex {
    grid-template-columns: 1fr;
  }
  .yukv-visual {
    padding-left: 0;
  }
  .yukv-card::before { display: none; }
  .yukv-title {
    text-align: center;
    display: block;
    border: none;
  }
  .yukv-card {
    padding: 30px 20px;
  }
  .yukv-miniItem {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .yukv-ico {
    margin: 0 auto;
  }
}

/* ===============================
   調査の流れセクション（PC用）
================================= */
.yukflow {
  background: linear-gradient(180deg, #ffffff 0%, #f3f7fc 100%);
  padding: 50px 0;
  position: relative;
  overflow: hidden;
}

.yukflow-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 32px;
  text-align: center;
}

/* タイトル */
.yukflow-title {
  font-size: 34px;
  font-weight: 800;
  letter-spacing: 0.05em;
  letter-spacing: 0.05em;
  color: #0a2c5e;
  margin-bottom: 30px;
  position: relative;
  display: inline-block;
}

.yukflow-title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
  width: 60px;
  height: 4px;
  border-radius: 3px;
  background: linear-gradient(90deg, #2f6fd8, #66b7ff);
}

.yukflow-lead {
  color: #3b4250;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.9;
  margin-bottom: 80px;
}

/* ステップ一覧 */
.yukflow-steps {
  display: flex;
  flex-direction: column;
  gap: 36px;
}

/* 各ステップ */
.yukflow-step {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 24px;
  text-align: left;
  padding: 28px 32px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(30, 60, 90, .08);
  transition: transform .25s ease, box-shadow .25s ease;
}

.yukflow-step:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 28px rgba(30, 60, 90, .12);
}

/* アイコン部分 */
.yukflow-icon {
  flex-shrink: 0;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 26px;
  color: #fff;
  background: linear-gradient(135deg, #2f6fd8, #66b7ff);
  box-shadow: 0 10px 20px rgba(47,111,216,.25);
}

/* コンテンツ */
.yukflow-content h3 {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #0a2c5e;
}

.yukflow-content p {
  margin: 0;
  line-height: 1.8;
  color: #444;
  font-size: 18px;
  letter-spacing: 0.03em;
}

/* 偶数ステップ：交互配置 */
.yukflow-step:nth-child(even) {
  flex-direction: row-reverse;
  background: #f8fbff;
}

/* ===============================
   行方調査で分かること（完成版）
================================= */
.yukresult {
  position: relative;
  padding: 50px 0;
  color: #fff;
  text-align: center;
  overflow: hidden;
}

.yukresult-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("/assets/img/missing_result_bg.webp") center center / cover no-repeat;
  filter: brightness(0.85) blur(5px) saturate(1.2);
  transform: scale(1.05);
  z-index: 1;
}

.yukresult-inner {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
}

.yukresult-title {
  font-size: 34px;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #ffffff;
  margin-bottom: 18px;
  letter-spacing: 0.05em;
  text-shadow: 0 3px 8px rgba(0, 0, 0, 0.35);
}

.yukresult-title::after {
  content: "";
  display: block;
  width: 80px;
  height: 3px;
  background: #00b8ff;
  margin: 10px auto 0;
  border-radius: 3px;
}

.yukresult-lead {
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #f8fbff;
  line-height: 1.9;
  margin-bottom: 70px;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

.yukresult-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.yukresult-item {
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(12px);
  border-radius: 16px;
  padding: 35px 24px;
  transition: all 0.3s ease;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.yukresult-item:hover {
  background: rgba(0, 0, 0, 0.45);
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25);
}

.yukresult-item i {
  font-size: 36px;
  color: #00b8ff;
  margin-bottom: 15px;
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}

.yukresult-item h3 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #fff;
  margin-bottom: 10px;
}

.yukresult-item p {
  font-size: 18px;
  letter-spacing: 0.03em;
  line-height: 1.8;
  color: #f0f7ff;
}

/* ===============================
   行方調査のまとめセクション（ベージュ系）
================================= */
.yuksummary.beige {
  background: linear-gradient(180deg, #fff9f3 0%, #fffefb 100%);
  padding: 100px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.yuksummary-inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
  z-index: 2;
}

.yuksummary-title {
  font-size: 34px;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #4a3c2a; /* 落ち着いたブラウン */
  margin-bottom: 20px;
}

.yuksummary-title::after {
  content: "";
  display: block;
  width: 80px;
  height: 3px;
  background: #b78b53; /* ゴールドベージュのライン */
  margin: 12px auto 0;
  border-radius: 3px;
}

.yuksummary-lead {
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.9;
  color: #4b4b4b;
  margin-bottom: 70px;
}

.yuksummary-points {
  display: flex;
  justify-content: center;
  gap: 35px;
  margin-bottom: 80px;
  flex-wrap: wrap;
}

.yuksummary-point {
  background: rgba(255, 255, 255, 0.95);
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(180, 150, 100, 0.15);
  padding: 40px 25px;
  width: 30%;
  min-width: 260px;
  transition: all 0.3s ease;
}

.yuksummary-point:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 35px rgba(180, 150, 100, 0.25);
}

.yuksummary-point i {
  font-size: 36px;
  color: #3a8dcb; /* 柔らかい青で誠実さを演出 */
  margin-bottom: 15px;
}

.yuksummary-point h3 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #333;
  margin-bottom: 10px;
}

.yuksummary-point p {
  font-size: 18px;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
}

/* =========================================================
   信用調査とはセクション（アイコン＋立体デザイン）
   ========================================================= */
.pcsin-trust-intro-section {
  background: linear-gradient(180deg, #f9f9f9 0%, #ffffff 100%);
  background-image: repeating-linear-gradient(
    45deg,
    rgba(0,112,192,0.03) 0,
    rgba(0,112,192,0.03) 2px,
    transparent 2px,
    transparent 6px
  );
  position: relative;
  padding: 80px 0;
  text-align: center;
  overflow: hidden;
}

.pcsin-trust-intro-inner {
  position: relative;
  z-index: 1;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 40px;
}

.pcsin-trust-intro-title {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 15px;
  letter-spacing: 0.05em;
}

.pcsin-trust-subtitle {
  font-size: 20px;
  letter-spacing: 0.03em;
  color: #0070c0;
  margin-bottom: 20px;
  font-weight: 600;
  letter-spacing: 0.05em;
}

/* アイコンと本文構成 */
.pcsin-trust-content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.pcsin-trust-icon {
  font-size: 28px;
  color: #0070c0;
  margin-bottom: 25px;
}

.pcsin-trust-intro-lead {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.9;
  color: #555;
  max-width: 800px;
}

/* フックカード */
.pcsin-trust-hook {
  margin-top: 30px;
  padding: 20px 40px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border-left: 6px solid #0070c0;
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.12);
  display: inline-flex;
  align-items: flex-start;
  gap: 15px;
  text-align: left;
  transition: 0.3s ease;
}

.pcsin-trust-hook:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 35px rgba(0,0,0,0.18);
}

.pcsin-trust-hook i {
  font-size: 28px;
  color: #0070c0;
  margin-top: 4px;
}

.pcsin-trust-hook p {
  font-size: 18px;
  letter-spacing: 0.03em;
  line-height: 1.8;
  color: #333;
}

/* ご相談ブロック */
.pcsin-trust-situation-block {
  position: relative;
  z-index: 2;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 10px 35px rgba(0,0,0,0.08);
  max-width: 880px;
  margin: 50px auto 0;
  padding: 30px 80px;
  text-align: left;
}

.pcsin-trust-situation-block h3 {
  font-size: 20px;
  color: #1b3d6e;
  font-weight: 700;
  margin-bottom: 30px;
  text-align: center;
}

.pcsin-trust-situation-block h3 i {
  color: #0070c0;
  margin-right: 10px;
}

.pcsin-trust-situation-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.pcsin-trust-situation-list li {
  margin-bottom: 14px;
  font-size: 18px;
  color: #444;
  line-height: 1.8;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.pcsin-trust-situation-list li i {
  color: #0070c0;
  margin-top: 5px;
  min-width: 22px;
  text-align: center;
}

.pcsin-trust-cta {
  text-align: center;
  font-weight: 700;
  margin-top: 25px;
}

.pcsin-cta-link {
  color: #0070c0;
  text-decoration: underline;
  transition: 0.3s;
}

.pcsin-cta-link:hover {
  color: #005499;
}

/* =========================================================
   信用調査の種類（PC・rem指定）
   ========================================================= */
.pcsin-trust-types-section {
  background: #fff;
  padding: 2rem 0;
  text-align: center;
}

.pcsin-trust-types-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
}

.pcsin-trust-types-title {
  font-size: 1.7rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 1.5rem;
  letter-spacing: 0.05em;
}

.pcsin-trust-types-title::after {
  content: "";
  display: block;
  width: 3.75rem; /* 60px */
  height: 0.1875rem; /* 3px */
  background: #0070c0;
  margin: 1rem auto 0;
  border-radius: 0.125rem;
}

.pcsin-trust-types-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.9;
  color: #555;
  margin-bottom: 3rem;
}

/* カードレイアウト */
.pcsin-trust-types-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3rem;
}

.pcsin-trust-card {
  background: #f9f9f9;
  border-radius: 1.25rem;
  box-shadow: 0 0.75rem 1.875rem rgba(0, 0, 0, 0.08);
  padding: 2.5rem 2rem;
  transition: all 0.3s ease;
}

.pcsin-trust-card:hover {
  transform: translateY(-0.5rem);
  box-shadow: 0 1.25rem 2.5rem rgba(0, 0, 0, 0.12);
}

.pcsin-trust-icon {
  font-size: 2.5rem;
  color: #0070c0;
  margin-bottom: 1rem;
}

.pcsin-trust-card h3 {
  font-size: 1.5rem; /* 24px */
  letter-spacing: 0.03em;
  color: #1b3d6e;
  font-weight: 700;
  margin-bottom: 1rem;
}

.pcsin-trust-card p {
  font-size: 1.25rem; /* 16px */
  letter-spacing: 0.03em;
  color: #444;
  line-height: 1.8;
  text-align: left;
}

/* =========================================================
   調査で分かること（最終版：静的・上品構成）
   ========================================================= */
.pcsin-trust-result-section {
  background: linear-gradient(180deg, #eef3f8 0%, #f7f9fc 100%);
  padding: 5rem 0;
}

.pcsin-trust-result-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-trust-result-title {
  font-size: 1.875rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 1.5rem;
  letter-spacing: 0.05em;
}

.pcsin-trust-result-title::after {
  content: "";
  display: block;
  width: 3.75rem; /* 60px */
  height: 0.1875rem; /* 3px */
  background: #0070c0;
  margin: 1rem auto 0;
  border-radius: 0.125rem;
}

.pcsin-trust-result-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.9;
  color: #555;
  margin-bottom: 4rem;
}

/* ---------------------------------------------------------
   各ブロック構成：余白・比率・影を最適化
--------------------------------------------------------- */
.pcsin-trust-result-block {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.1);
  padding: 3rem 3rem;
  margin-bottom: 4.5rem;
  transition: 0.3s ease;
}

.pcsin-trust-result-block:hover {
  transform: translateY(-0.3rem);
  box-shadow: 0 1.25rem 2.8rem rgba(0, 0, 0, 0.12);
}

.pcsin-trust-result-block.reverse {
  flex-direction: row-reverse;
}

/* ---------------------------------------------------------
   画像領域：比率・影
--------------------------------------------------------- */
.pcsin-trust-result-img {
  flex: 0 0 43%;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.08);
}

.pcsin-trust-result-img img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  filter: brightness(0.95);
  transition: transform 0.3s ease;
}

.pcsin-trust-result-img img:hover {
  transform: scale(1.03);
}

/* ---------------------------------------------------------
   テキスト領域
--------------------------------------------------------- */
.pcsin-trust-result-text {
  flex: 0 0 52%;
  text-align: left;
}

.pcsin-trust-result-text h3 {
  font-size: 1.5rem; /* 24px */
  letter-spacing: 0.03em;
  color: #1b3d6e;
  font-weight: 700;
  margin-bottom: 1rem;
}

.pcsin-trust-result-text p {
  font-size: 1.3rem; /* 16px */
  letter-spacing: 0.03em;
  line-height: 1.8;
  color: #444;
}

/* =========================================================
   信用調査まとめ（PCデザイン・rem指定）
   ========================================================= */
.pcsin-trust-summary-section {
  background: linear-gradient(180deg, #fff9f3 0%, #fffefb 100%);
  padding: 5rem 0;
  text-align: center;
}

.pcsin-trust-summary-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
}

.pcsin-trust-summary-title {
  font-size: 1.875rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 1.5rem;
  letter-spacing: 0.05em;
}

.pcsin-trust-summary-title::after {
  content: "";
  display: block;
  width: 3.75rem;
  height: 0.1875rem;
  background: #0070c0;
  margin: 1rem auto 0;
  border-radius: 0.125rem;
}

.pcsin-trust-summary-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* ---------------------------------------------------------
   ポイント3カラム
--------------------------------------------------------- */
.pcsin-trust-summary-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  margin-bottom: 4rem;
}

.pcsin-trust-point {
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.08);
  padding: 3rem 2rem;
  transition: 0.3s ease;
}

.pcsin-trust-point:hover {
  transform: translateY(-0.3rem);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.12);
}

.pcsin-trust-point i {
  font-size: 2rem;
  color: #0070c0;
  margin-bottom: 1rem;
}

.pcsin-trust-point h3 {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #1b3d6e;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.pcsin-trust-point p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #444;
  line-height: 1.7;
}

/* =========================================================
   盗聴器・盗撮器発見：導入セクション（PCデザイン）
   ========================================================= */
.pcsin-tap-intro-section {
  background: #fff;
  padding: 5rem 0;
}

.pcsin-tap-intro-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-tap-intro-title {
  font-size: 1.875rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

.pcsin-tap-intro-title::after {
  content: "";
  display: block;
  width: 3.75rem; /* 60px */
  height: 0.1875rem; /* 3px */
  background: #0070c0;
  margin: 1rem auto 0;
  border-radius: 0.125rem;
}

.pcsin-tap-intro-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.9;
  color: #555;
  margin-bottom: 4rem;
}

/* ---------------------------------------------------------
   3カラム構成（PC）
--------------------------------------------------------- */
.pcsin-tap-intro-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}

.pcsin-tap-item {
  background: #f9fbfe;
  border: 1px solid #e3ecf5;
  border-radius: 1.25rem;
  padding: 2rem;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.05);
  transition: 0.3s ease;
}

.pcsin-tap-item:hover {
  transform: translateY(-0.3rem);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.1);
}

.pcsin-tap-item i {
  font-size: 2.5rem;
  color: #0070c0;
  margin-bottom: 1rem;
}

.pcsin-tap-item h3 {
  font-size: 1.5rem; /* 20px */
  letter-spacing: 0.03em;
  color: #1b3d6e;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.pcsin-tap-item p {
  font-size: 1.3rem; /* 16px */
  letter-spacing: 0.03em;
  color: #444;
  line-height: 1.8;
}

/* =========================================================
   発見調査の特徴（PCデザイン・rem指定）
   ========================================================= */
.pcsin-tap-feature-section {
  background: linear-gradient(180deg, #f6f9fc 0%, #ffffff 100%);
  padding: 5rem 0;
}

.pcsin-tap-feature-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-tap-feature-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  color: #333;
  margin-bottom: 1.5rem;
  letter-spacing: 0.05em;
}

.pcsin-tap-feature-title::after {
  content: "";
  display: block;
  width: 3.75rem;
  height: 0.1875rem;
  background: #0070c0;
  margin: 1rem auto 0;
  border-radius: 0.125rem;
}

.pcsin-tap-feature-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 5rem;
}

/* ---------------------------------------------------------
   各ブロック構成
--------------------------------------------------------- */
.pcsin-tap-feature-block {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  margin-bottom: 5rem;
}

.pcsin-tap-feature-block.reverse {
  flex-direction: row-reverse;
}

.pcsin-tap-feature-img {
  flex: 0 0 45%;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.1);
}

.pcsin-tap-feature-img img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  filter: brightness(0.97);
  transition: transform 0.3s ease;
}

.pcsin-tap-feature-img img:hover {
  transform: scale(1.03);
}

.pcsin-tap-feature-text {
  flex: 0 0 50%;
  text-align: left;
}

.pcsin-tap-feature-text h3 {
  font-size: 1.5rem; /* 24px */
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #1b3d6e;
  margin-bottom: 1rem;
}

.pcsin-tap-feature-text p {
  font-size: 1.3rem; /* 16px */
  letter-spacing: 0.03em;
  color: #444;
  line-height: 1.8;
}

/* =========================================================
   発見調査の流れ（PCデザイン・rem指定）
   ========================================================= */
.pcsin-tap-flow-section {
  background: #f7f5f0;
  padding: 7rem 0;
}

.pcsin-tap-flow-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-tap-flow-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 1.5rem;
  letter-spacing: 0.05em;
}

.pcsin-tap-flow-title::after {
  content: "";
  display: block;
  width: 3.75rem;
  height: 0.1875rem;
  background: #0070c0;
  margin: 1rem auto 0;
  border-radius: 0.125rem;
}

.pcsin-tap-flow-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* ---------------------------------------------------------
   ステップエリア（横並び）
--------------------------------------------------------- */
.pcsin-tap-flow-steps {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  position: relative;
}

.pcsin-tap-flow-steps::before {
  content: "";
  position: absolute;
  top: 3.5rem;
  left: 6%;
  width: 88%;
  height: 0.25rem;
  background: #d8e3f2;
  z-index: 0;
}

/* ---------------------------------------------------------
   各ステップ
--------------------------------------------------------- */
.pcsin-tap-step {
  flex: 1;
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: 1.25rem;
  padding: 2rem 1rem;
}

.pcsin-tap-step-icon {
  width: 4.5rem;
  height: 4.5rem;
  background: #0070c0;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  margin: 0 auto 1rem;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
}

.pcsin-tap-step h3 {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #1b3d6e;
  margin-bottom: 0.75rem;
}

.pcsin-tap-step p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #444;
  line-height: 1.7;
}

/* ---------------------------------------------------------
   Hoverエフェクト（上品に）
--------------------------------------------------------- */
.pcsin-tap-step-icon:hover {
  background: #005a99;
  transform: scale(1.05);
  transition: 0.3s ease;
}

/* =========================================================
   調査後の安心サポート（PC・rem）
   ========================================================= */
.pcsin-tap-support-section {
  background: linear-gradient(180deg, #f4f7fb 0%, #ffffff 100%);
  padding: 5rem 0;
  text-align: center;
}

.pcsin-tap-support-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
}

.pcsin-tap-support-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  color: #333;
  margin-bottom: 1.5rem;
  letter-spacing: 0.05em;
}
.pcsin-tap-support-title::after {
  content: "";
  display: block;
  width: 3.75rem; /* 60px */
  height: 0.1875rem; /* 3px */
  background: #0070c0;
  margin: 1rem auto 0;
  border-radius: 0.125rem;
}

.pcsin-tap-support-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* Grid / Cards */
.pcsin-tap-support-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}

.pcsin-tap-support-card {
  background: #fff;
  border: 1px solid #e6edf5;
  border-radius: 1.25rem;
  padding: 3rem 2rem;
  box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pcsin-tap-support-card:hover {
  transform: translateY(-0.3rem);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.1);
}

/* Icon + Text */
.pcsin-tap-support-icon {
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1rem;
  border-radius: 50%;
  background: #e9f2fb;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pcsin-tap-support-icon i {
  font-size: 1.75rem;
  color: #0070c0;
}

.pcsin-tap-support-card h3 {
  font-size: 1.5rem; /* 20px */
  letter-spacing: 0.03em;
  color: #1b3d6e;
  font-weight: 700;
  margin-bottom: 0.75rem;
}
.pcsin-tap-support-card p {
  font-size: 1.3rem; /* 16px */
  letter-spacing: 0.03em;
  color: #444;
  line-height: 1.8;
}

/* =========================================================
   まとめセクション（PC・rem）
   ========================================================= */
.pcsin-tap-summary-section {
  background: linear-gradient(180deg, #f9fafc 0%, #eef3f8 100%);
  padding: 5rem 0;
  text-align: center;
}

.pcsin-tap-summary-inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 2rem;
}

.pcsin-tap-summary-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  color: #1b3d6e;
  margin-bottom: 2rem;
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.pcsin-tap-summary-text {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #444;
  line-height: 2;
}

/* =========================================================
   ストーカー対策 フックセクション（PCデザイン・rem指定）
   ========================================================= */
.pcsin-stalker-hook-section {
  background: #f6f8fa;
  padding: 5rem 0;
}

.pcsin-stalker-hook-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-stalker-hook-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  color: #333;
  margin-bottom: 1.5rem;
  letter-spacing: 0.05em;
}

.pcsin-stalker-hook-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* Grid layout */
.pcsin-stalker-hook-grid {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}

/* Card */
.pcsin-stalker-hook-card {
  flex: 1;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.06);
  padding: 3rem 2rem;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pcsin-stalker-hook-card:hover {
  transform: translateY(-0.4rem);
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.1);
}

/* Icon */
.pcsin-stalker-hook-icon {
  width: 7rem;
  height: 7rem;
  margin: 0 auto 1rem;
  border-radius: 50%;
  background: #f9ecec;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pcsin-stalker-hook-icon i {
  font-size: 4rem;
  color: #b64b5b;
}

/* Text */
.pcsin-stalker-hook-card h3 {
  font-size: 1.5rem; /* 20px */
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #222;
  margin-bottom: 1rem;
}
.pcsin-stalker-hook-card p {
  font-size: 1.3rem; /* 16px */
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
}

/* =========================================================
   調査で分かること（PC・rem指定）
   ========================================================= */
.pcsin-stalker-detail-section {
  background: #ffffff;
  padding: 5rem 0;
}

.pcsin-stalker-detail-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  padding: 0 2rem;
}

/* 画像部分 */
.pcsin-stalker-detail-img {
  flex: 0 0 45%;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.1);
}
.pcsin-stalker-detail-img img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  filter: brightness(0.98);
}

/* テキスト部分 */
.pcsin-stalker-detail-content {
  flex: 0 0 50%;
  text-align: left;
}

.pcsin-stalker-detail-title {
  font-size: 1.8rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #1b3d6e;
  margin-bottom: 1.5rem;
  line-height: 1.5;
}

.pcsin-stalker-detail-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 3rem;
}

/* リスト */
.pcsin-stalker-detail-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.pcsin-stalker-detail-list li {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
}

.pcsin-stalker-detail-list i {
  font-size: 1.75rem;
  color: #1b3d6e;
  flex-shrink: 0;
  margin-top: 0.25rem;
}

.pcsin-stalker-detail-list h3 {
  font-size: 1.5rem; /* 20px */
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #222;
  margin-bottom: 0.25rem;
}

.pcsin-stalker-detail-list p {
  font-size: 1.3rem; /* 16px */
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
}

/* =========================================================
   実際の事例（PC・rem指定）
   ========================================================= */
.pcsin-stalker-case-section {
  background: #f6f7f9;
  padding: 5rem 0;
}

.pcsin-stalker-case-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-stalker-case-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 1.5rem;
}

.pcsin-stalker-case-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* Grid layout */
.pcsin-stalker-case-grid {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}

/* Card */
.pcsin-stalker-case-card {
  flex: 1;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pcsin-stalker-case-card:hover {
  transform: translateY(-0.4rem);
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.1);
}

/* Image */
.pcsin-stalker-case-img img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  filter: brightness(0.9);
}

/* Text block */
.pcsin-stalker-case-text {
  padding: 2.5rem 2rem;
}

.pcsin-stalker-case-icon {
  width: 4rem;
  height: 4rem;
  background: #f9ecec;
  border-radius: 50%;
  margin: 0 auto 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pcsin-stalker-case-icon i {
  font-size: 2rem;
  color: #b64b5b;
}

.pcsin-stalker-case-text h3 {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #222;
  margin-bottom: 0.75rem;
}
.pcsin-stalker-case-text p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
}

/* =========================================================
   ストーカー対策 調査の流れ（ベージュ背景版）
   ========================================================= */
.pcsin-stalker-flow-section {
  background: #f9f6f2; /* ベージュ系 */
  padding: 5rem 0;
}

.pcsin-stalker-flow-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-stalker-flow-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #1b3d6e;
  margin-bottom: 1.5rem;
}

.pcsin-stalker-flow-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* Flow steps */
.pcsin-stalker-flow-steps {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 3rem;
}

.pcsin-stalker-flow-step {
  flex: 1;
  background: #fff;
  border-radius: 1.25rem;
  padding: 3rem 2rem;
  text-align: center;
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pcsin-stalker-flow-step:hover {
  transform: translateY(-0.3rem);
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.08);
}

/* Icons */
.pcsin-stalker-flow-icon {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  background: #efe9e3; /* ベージュ背景と統一 */
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
}

.pcsin-stalker-flow-icon i {
  font-size: 2rem;
  color: #1b3d6e;
}

/* Content */
.pcsin-stalker-flow-content h3 {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #222;
  font-weight: 700;
  margin-bottom: 1rem;
}

.pcsin-stalker-flow-content p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
}

/* =========================================================
   法的対応・専門連携＋まとめ（PCデザイン・rem指定）
   ========================================================= */
.pcsin-stalker-support-section {
  background: linear-gradient(180deg, #e9f1f8 0%, #f5f9fc 100%);
  padding: 5rem 0;
}

.pcsin-stalker-support-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-stalker-support-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #1b3d6e;
  line-height: 1.5;
  margin-bottom: 1.5rem;
}

.pcsin-stalker-support-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* Grid */
.pcsin-stalker-support-grid {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 4rem;
}

.pcsin-stalker-support-card {
  flex: 1;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.06);
  padding: 3rem 2rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pcsin-stalker-support-card:hover {
  transform: translateY(-0.3rem);
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.08);
}

/* Icon */
.pcsin-stalker-support-icon {
  width: 4.5rem;
  height: 4.5rem;
  margin: 0 auto 1.5rem;
  border-radius: 50%;
  background: #e0ecf5;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pcsin-stalker-support-icon i {
  font-size: 2rem;
  color: #1b3d6e;
}

/* Text */
.pcsin-stalker-support-card h3 {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #222;
  margin-bottom: 1rem;
}
.pcsin-stalker-support-card p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
}

/* Summary */
.pcsin-stalker-support-summary {
  background: #fff;
  border-radius: 1rem;
  padding: 3rem 2rem;
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.05);
  max-width: 850px;
  margin: 0 auto;
}
.pcsin-stalker-support-summary p {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #333;
  line-height: 2;
  font-weight: 500;
}

/* =========================================================
   各種トラブル対策 フックセクション（PCデザイン・rem指定）
   ========================================================= */
.pcsin-trouble-hook-section {
  background: #f8f7f5;
  padding: 5rem 0;
}

.pcsin-trouble-hook-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-trouble-hook-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 1.5rem;
  letter-spacing: 0.03em;
}

.pcsin-trouble-hook-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* Grid layout */
.pcsin-trouble-hook-grid {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
}

/* Card */
.pcsin-trouble-hook-card {
  flex: 1;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.06);
  padding: 3rem 1.5rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pcsin-trouble-hook-card:hover {
  transform: translateY(-0.3rem);
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.1);
}

/* Icon */
.pcsin-trouble-hook-icon {
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1.25rem;
  border-radius: 50%;
  background: #f2e7e7;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pcsin-trouble-hook-icon i {
  font-size: 1.75rem;
  color: #b64b5b;
}

/* Text */
.pcsin-trouble-hook-card h3 {
  font-size: 1.5rem; /* 20px */
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #222;
  margin-bottom: 0.75rem;
}
.pcsin-trouble-hook-card p {
  font-size: 1.3rem; /* 16px */
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
}

/* =========================================================
   各種トラブル対策 調査で分かること（PCデザイン・rem指定）
   ========================================================= */
.pcsin-trouble-detail-section {
  background: #ffffff;
  padding: 5rem 0;
}

.pcsin-trouble-detail-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  padding: 0 2rem;
}

/* 画像部分 */
.pcsin-trouble-detail-img {
  flex: 0 0 45%;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.1);
}
.pcsin-trouble-detail-img img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  filter: brightness(0.98);
}

/* テキスト部分 */
.pcsin-trouble-detail-content {
  flex: 0 0 50%;
  text-align: left;
}

.pcsin-trouble-detail-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #1b3d6e;
  margin-bottom: 1.5rem;
  line-height: 1.5;
}

.pcsin-trouble-detail-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 3rem;
}

/* リスト */
.pcsin-trouble-detail-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.pcsin-trouble-detail-list li {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
}

.pcsin-trouble-detail-list i {
  font-size: 1.75rem;
  color: #1b3d6e;
  flex-shrink: 0;
  margin-top: 0.25rem;
}

.pcsin-trouble-detail-list h3 {
  font-size: 1.5rem; /* 20px */
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #222;
  margin-bottom: 0.25rem;
}

.pcsin-trouble-detail-list p {
  font-size: 1.3rem; /* 16px */
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
}

/* =========================================================
   各種トラブル対策：調査の流れ（タイムライン型／PC・rem）
   ========================================================= */
.pcsin-trouble-flow-section {
  background: #f7f4ef; /* 淡いベージュ */
  padding: 5rem 0;
}

.pcsin-trouble-flow-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-trouble-flow-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #1b3d6e;
  margin-bottom: 1.5rem;
  letter-spacing: 0.03em;
}

.pcsin-trouble-flow-lead {
  font-size: 1.5rem; /* 18px */
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* Timeline wrapper */
.pcsin-trouble-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  align-items: start;
}

/* Horizontal line */
.pcsin-trouble-timeline-line {
  position: absolute;
  top: 4.5rem; /* アイコン中心に合わせる */
  left: 0;
  right: 0;
  height: 0.25rem; /* 4px */
  background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(27,61,110,0.25) 10%, rgba(27,61,110,0.25) 90%, rgba(0,0,0,0) 100%);
  border-radius: 0.25rem;
  z-index: 1;
}

/* Step */
.pcsin-trouble-step {
  position: relative;
  text-align: center;
  z-index: 2;
  padding: 0 1rem;
}

/* Big icon */
.pcsin-trouble-step-icon {
  position: relative;
  width: 6rem;
  height: 6rem;           /* 大きめアイコン */
  margin: 0 auto 1rem;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  outline: 0.375rem solid #e8e1d9; /* 背景ベージュと親和するリング */
}

.pcsin-trouble-step-icon i {
  font-size: 2.25rem; /* 36px */
  color: #1b3d6e;
}

/* Step number (badge) */
.pcsin-trouble-step-num {
  position: absolute;
  right: -0.5rem;
  bottom: -0.5rem;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #1b3d6e;
  color: #fff;
  font-size: 0.9375rem; /* 15px */
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0.5rem 1rem rgba(27,61,110,0.25);
}

/* Text */
.pcsin-trouble-step h3 {
  font-size: 1.5rem; /* 20px */
  letter-spacing: 0.03em;
  color: #222;
  font-weight: 700;
  margin: 0.75rem 0 0.5rem;
}

.pcsin-trouble-step p {
  font-size: 1.3rem; /* 16px */
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin: 0;
}

/* Hover micro interaction */
.pcsin-trouble-step-icon:hover {
  transform: translateY(-0.15rem);
  transition: transform 0.25s ease;
}

/* =========================================================
   各種トラブル対策：アフターフォロー・解決支援（PC・rem）
   ========================================================= */
.pcsin-trouble-support-section {
  background: #eaf0f5;
  padding: 5rem 0;
}

.pcsin-trouble-support-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}

.pcsin-trouble-support-title {
  font-size: 2rem; /* 30px */
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #1b3d6e;
  margin-bottom: 1.5rem;
}

.pcsin-trouble-support-lead {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.9;
  margin-bottom: 4rem;
}

/* Grid */
.pcsin-trouble-support-grid {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}

/* Card */
.pcsin-trouble-support-card {
  flex: 1;
  background: #fff;
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pcsin-trouble-support-card:hover {
  transform: translateY(-0.25rem);
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.08);
}

/* Image */
.pcsin-trouble-support-img img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
}

/* Text */
.pcsin-trouble-support-content {
  padding: 2rem 1.5rem;
  text-align: left;
}

.pcsin-trouble-support-content h3 {
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  color: #1b3d6e;
  font-weight: 700;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.pcsin-trouble-support-content i {
  font-size: 1.25rem;
  color: #1b3d6e;
}

.pcsin-trouble-support-content p {
  font-size: 1.3rem;
  letter-spacing: 0.03em;
  color: #555;
  line-height: 1.8;
}

/* =========================================================
   各種トラブル対策：まとめセクション（PCデザイン・rem）
   ========================================================= */
.pcsin-trouble-summary-section {
  background: linear-gradient(180deg, #ffffff 0%, #f7f4ef 100%);
  padding: 5rem 0;
  text-align: center;
}

.pcsin-trouble-summary-inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 2rem;
}

.pcsin-trouble-summary-title {
  font-size: 2rem; /* 30px */
  color: #1b3d6e;
  font-weight: 800;
  line-height: 1.6;
  margin-bottom: 2rem;
  letter-spacing: 0.05em;
}

.pcsin-trouble-summary-text {
  font-size: 1.5rem; /* 18px */
  letter-spacing: 0.03em;
  color: #333;
  line-height: 1.9;
}

/* =========================================================
   PC事例ページ専用デザイン（明るめ×上品トーン）
   ========================================================= */
.pcjirei-section {
  background: linear-gradient(180deg, #fdfdfd 0%, #f6f8fc 100%);
  padding: 5rem 0;
  position: relative;
}

.pcjirei-inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 2rem;
}

/* 見出し */
.pcjirei-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.pcjirei-header h2 {
  font-size: 2rem;
  font-weight: 800;
  color: #1b365d;
  display: inline-block;
  letter-spacing: 0.04em;
  position: relative;
}

.pcjirei-header h2 i {
  margin-right: 0.5rem;
  color: #2a6cc4;
}

.pcjirei-subline {
  display: block;
  width: 100px;
  height: 3px;
  background: linear-gradient(90deg, #1b56a5, #4ea0d8);
  margin: 1rem auto 0;
  border-radius: 2px;
}

/* コンテンツボックス */
.pcjirei-box {
  background: #fff;
  border-radius: 1.5rem;
  box-shadow: 0 1.2rem 2.5rem rgba(0, 0, 0, 0.08);
  padding: 3rem 4rem 1rem;
  text-align: center;
  transition: all 0.4s ease;
}

.pcjirei-box:hover {
  transform: translateY(-5px);
  box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.1);
}

.pcjirei-box p {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: #333;
  line-height: 1.9;
  text-align: justify;
  margin-bottom: 2.5rem;
}

/* 画像 */
.pcjirei-visual {
  text-align: center;
  margin: 0 auto;
  max-width: 680px;
}

.pcjirei-visual img {
  width: 100%;
  margin-bottom: 2rem;
  border-radius: 1rem;
  box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.1);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.pcjirei-visual img:hover {
  transform: scale(1.02);
  box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.15);
}

.pcjirei-visual figcaption {
  margin-top: 1rem;
  font-size: 1rem;
  color: #1b3d6e;
  letter-spacing: 0.03em;
  font-style: italic;
}


