:root{
--ws-blue:#0054b8;
--ws-blue-dark:#062b63;
--ws-blue-light:#f3f8ff;
--ws-border:#dce7f5;
--ws-text:#17233c;
--ws-green:#06b34b;
--ws-orange:#f58220;
--ws-shadow:0 10px 30px rgba(0,62,140,.06);
}

.entry-title{display:none!important;}
.inside-article{padding-top:0!important;}

.ws-faq-page{
background:#fff;
font-family:"Noto Sans JP",sans-serif;
color:var(--ws-text);
line-height:1.8;
}

.ws-container{
width:min(1120px,calc(100% - 40px));
margin:auto;
}

.ws-sp-only{display:none;}

/* hero */
.ws-faq-hero{
padding:54px 0 56px;
background:linear-gradient(180deg,#f8fbff 0%,#eef5ff 100%);
overflow:hidden;
}

.ws-faq-hero__inner{
display:grid;
grid-template-columns:minmax(0,1fr) minmax(420px,560px);
gap:40px;
align-items:center;
}

.ws-faq-hero__label{
display:inline-flex;
align-items:center;
background:#e7f2ff;
color:var(--ws-blue);
border:1px solid #cfe4ff;
border-radius:999px;
font-weight:800;
font-size:14px;
padding:6px 14px;
margin:0 0 18px;
}

.ws-faq-hero h1{
font-size:52px;
font-weight:900;
line-height:1.25;
color:var(--ws-blue-dark);
margin:0 0 16px;
letter-spacing:.02em;
}

.ws-faq-hero h1:after{
content:"";
display:block;
width:70px;
height:3px;
background:var(--ws-blue);
margin:18px 0 0;
}

.ws-faq-hero__lead{
font-size:18px;
font-weight:700;
margin:0;
color:#203350;
}

.ws-faq-hero__image{
border-radius:18px;
overflow:hidden;
box-shadow:0 20px 46px rgba(5,66,138,.12);
background:#fff;
}

.ws-faq-hero__image img{
display:block;
width:100%;
height:300px;
object-fit:cover;
}

/* faq */
.ws-faq-main{
padding:52px 0 28px;
background:#fff;
}

.ws-faq-intro{
text-align:center;
margin:0 auto 34px;
}

.ws-faq-intro h2{
font-size:32px;
font-weight:900;
color:var(--ws-blue-dark);
margin:0 0 8px;
}

.ws-faq-intro h2:before,
.ws-faq-intro h2:after{
content:"";
display:inline-block;
width:44px;
height:2px;
background:#9ec9ff;
vertical-align:middle;
margin:0 14px;
}

.ws-faq-intro p{
margin:0;
font-size:16px;
font-weight:700;
color:#40516c;
}

.ws-faq-group{
display:grid;
grid-template-columns:220px 1fr;
gap:18px;
margin-bottom:18px;
}

.ws-faq-category{
background:#fff;
border:1px solid var(--ws-border);
border-radius:12px;
box-shadow:var(--ws-shadow);
min-height:158px;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
padding:22px 18px;
}

.ws-cat-icon{
display:none;
}

.ws-cat-icon-img{
width:76px;
height:76px;
object-fit:contain;
margin:0 auto 14px;
display:block;
}

.ws-faq-category h2{
font-size:18px;
font-weight:900;
color:var(--ws-blue);
margin:0;
line-height:1.45;
}

.ws-faq-list{
background:#fff;
border:1px solid var(--ws-border);
border-radius:12px;
box-shadow:var(--ws-shadow);
overflow:hidden;
}

.ws-faq-list details{
border-bottom:1px solid var(--ws-border);
}

.ws-faq-list details:last-child{
border-bottom:none;
}

.ws-faq-list summary{
list-style:none;
cursor:pointer;
display:flex;
align-items:center;
gap:18px;
padding:18px 28px;
font-size:18px;
font-weight:900;
color:#071f45;
position:relative;
}

.ws-faq-list summary::-webkit-details-marker{
display:none;
}

.ws-faq-list summary span{
width:34px;
height:34px;
border-radius:50%;
background:#e7f2ff;
color:var(--ws-blue);
font-size:19px;
font-weight:900;
display:inline-flex;
align-items:center;
justify-content:center;
flex:0 0 auto;
}

.ws-faq-list summary:after{
content:"+";
margin-left:auto;
font-size:28px;
line-height:1;
color:var(--ws-blue);
font-weight:700;
}

.ws-faq-list details[open] summary:after{
content:"−";
}

.ws-faq-list p{
margin:0;
padding:0 34px 22px 80px;
font-size:16px;
font-weight:600;
color:#33435c;
}

/* cta */
.ws-faq-cta{
padding:24px 0 64px;
}

.ws-cta-box{
background:linear-gradient(180deg,#f7fbff 0%,#eef5ff 100%);
border:1px solid var(--ws-border);
border-radius:12px;
padding:28px 46px;
display:grid;
grid-template-columns:1fr 280px 280px;
gap:22px;
align-items:center;
box-shadow:var(--ws-shadow);
}

.ws-cta-copy h2{
font-size:26px;
line-height:1.4;
color:var(--ws-blue);
font-weight:900;
margin:0 0 8px;
}

.ws-cta-copy p{
font-size:16px;
font-weight:700;
margin:0;
}

.ws-tel-btn,
.ws-line-btn{
min-height:88px;
border-radius:8px;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
color:#fff;
font-weight:900;
text-decoration:none;
box-shadow:0 8px 18px rgba(0,67,153,.12);
}

.ws-tel-btn{
background:linear-gradient(180deg,#ff8b22,#f06f10);
}

.ws-line-btn{
background:linear-gradient(180deg,#0b5be1,#0044c3);
font-size:22px;
}

.ws-tel-btn strong{
display:block;
font-size:30px;
line-height:1.2;
}

.ws-tel-btn small,
.ws-line-btn small{
font-size:12px;
margin-top:3px;
}

/* responsive */
@media(max-width:1024px){
.ws-faq-hero__inner,
.ws-faq-group,
.ws-cta-box{
grid-template-columns:1fr;
}
.ws-faq-hero{text-align:center;}
.ws-faq-hero h1:after{margin-left:auto;margin-right:auto;}
.ws-faq-hero__image img{height:auto;}
.ws-faq-category{min-height:120px;}
.ws-cta-box{text-align:center;}
}

@media(max-width:640px){
.ws-container{width:min(100% - 24px,1120px);}
.ws-sp-only{display:block;}
.ws-faq-hero{padding:42px 0 44px;}
.ws-faq-hero h1{font-size:34px;}
.ws-faq-hero__lead{font-size:15px;}
.ws-faq-intro h2{font-size:24px;}
.ws-faq-intro h2:before,
.ws-faq-intro h2:after{width:24px;margin:0 8px;}
.ws-faq-list summary{padding:16px 16px;font-size:16px;gap:10px;}
.ws-faq-list summary span{width:30px;height:30px;font-size:16px;}
.ws-faq-list p{padding:0 18px 18px 56px;font-size:15px;}
.ws-cat-icon-img{width:68px;height:68px;}
.ws-cta-box{padding:26px 18px;}
.ws-cta-copy h2{font-size:22px;}
.ws-tel-btn strong{font-size:28px;}
}

/* v50: FAQカテゴリ画像の視認性調整 */
.ws-faq-page .ws-faq-category .ws-cat-icon-img{
  width:72px !important;
  height:72px !important;
  max-width:72px !important;
  max-height:72px !important;
  object-fit:contain !important;
  margin:0 auto 12px !important;
  display:block !important;
}
@media (max-width: 768px){
  .ws-faq-page .ws-faq-category .ws-cat-icon-img{
    width:64px !important;
    height:64px !important;
    max-width:64px !important;
    max-height:64px !important;
  }
}

/* v51: FAQカテゴリ画像サイズ統一（画像内余白トリミング済み） */
.ws-faq-page .ws-faq-category .ws-cat-icon-img{
  width:78px !important;
  height:78px !important;
  max-width:78px !important;
  max-height:78px !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 auto 12px !important;
}

.ws-faq-page .ws-faq-category{
  gap:0 !important;
}

@media (max-width: 768px){
  .ws-faq-page .ws-faq-category .ws-cat-icon-img{
    width:70px !important;
    height:70px !important;
    max-width:70px !important;
    max-height:70px !important;
  }
}

/* v52: FAQ FV image should not crop the faucet. Keep the full image visible. */
.ws-faq-hero__image{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
}
.ws-faq-hero__image img{
  width:100%;
  height:auto !important;
  max-height:300px;
  object-fit:contain !important;
  object-position:center center !important;
}

@media(max-width:1024px){
  .ws-faq-hero__image img{
    max-height:none;
  }
}
