* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Arial', sans-serif;
  line-height: 1.6;
}

/* =========================
ヘッダー以外を中央寄せ
========================= */

.page-inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
}

/* 幅が狭くなる */
.fv{
  width: 100%;
}

/* スマホは全幅 */
@media screen and (max-width: 768px){

  .page-inner{
    max-width: 100%;
    padding: 0;
  }

}




/* ヘッダー */
.site-header {
  background-color: #092343 ;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: none;
  animation: fadeInDown 0.6s ease-out both;
}

.header-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0.65rem 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}


/* ロゴ */
.logo a {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: #26499d;
  font-weight: bold;
}

.logo-en {
  font-size: 15px;
  color: #FFFFFF;
  line-height: 1.2;
  position: relative;
  padding-bottom: 0.25rem;
}

.logo-en::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 2px;
  background-color: #FD7652;
  border-radius: 2px;
}

.logo-ja {
  font-size: 10px;
  color: #FFFFFF;
}


/* ナビゲーションメニュー */
.nav-menu {
  display: none;
}

.nav-menu ul {
  list-style: none;
  display: flex;
  gap: 2rem;
}

.nav-menu a {
  text-decoration: none;
  color: #333;
  font-weight: 500;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}

.nav-menu a:hover {
  color: #FD7652;
}

.nav-menu a::after {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  background: transparent;
  margin-top: 0.35rem;
  transition: background 0.2s;
}

.nav-menu a:hover::after {
  background: #FD7652;
}

/* 無料相談ボタン */
.contact-btn {
  background-color: #FD7652;
  color: #fff;
  padding: 0.35rem 2rem;
  min-width: 180px;
  border-radius:  30px;
  text-decoration: none;
  font-weight: bold;
  transition: background-color 0.3s, transform 0.3s;
  box-shadow: none;
  position: relative;
  overflow: hidden;
}

.contact-btn::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 40px;
  height: 120%;
  background: rgba(255, 255, 255, 0.35);
  transform: rotate(25deg);
  transition: transform 0.7s ease;
}

.contact-btn:hover::before {
  transform: translateX(300%) rotate(25deg);
}

.contact-btn:hover {
  background-color: #FD7652;
  transform: translateY(-1px);
  box-shadow: none;
}

/* =========================
スマホ：ヘッダーボタン
========================= */

@media (max-width: 768px) {

  .contact-btn {
    width: 100%;          /* 横幅いっぱい */
    max-width: 150px;     /* 最大幅 */
    min-width: auto;
    padding: 0.5rem 0.8rem;
    font-size: 13px;
    border-radius: 30px;
    text-align: center;
    display: inline-block;
  }

}



/* ハンバーガーメニュー */
.hamburger {
  display: none;
}

.hamburger span {
  width: 25px;
  height: 3px;
  background-color: #26499d;
  border-radius: 3px;
  transition: all 0.3s;
}

/* モバイルメニュー */
.mobile-menu {
  display: none;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem 2rem;
  background-color: #f9f9f9;
}

.mobile-menu a {
  text-decoration: none;
  color: #333;
  padding: 0.75rem;
  border-bottom: 1px solid #eee;
}

.mobile-menu a:hover {
  color: #1e90ff;
}

.mobile-contact {
  background-color: #FD7652 !important;
  color: #fff !important;
  text-align: center;
  border-radius: 0;
  border: none !important;
  font-weight: bold;
}

.mobile-contact:hover {
  background-color: #FD7652 !important;
}

/* =========================
共通
========================= */

body {
  margin: 0;
  color: #092343;
background: #d7e3f3;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;
}

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

/* =========================
PC・スマホ切替
========================= */
/* PC */
.pc-only {
  display: block !important;
}

.sp-only {
  display: none !important;
}

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

  .pc-only {
    display: none !important;
  }

  .sp-only {
    display: block !important;
  }

}


/* =========================
FV
========================= */

.fv,
.recommend-visual,
.support-visual {
  width: 100%;
}

.fv-img,
.recommend-img,
.support-img {
  width: 100%;
  height: auto;
}


/* =========================
おすすめカード
========================= */

.recommend-section {
  padding: 50px 80px 100px;
  background: #fff;
}

.recommend-grid {
  max-width: 700px;
  margin: 0 auto;
  display: grid;
  gap: 24px;
}

.recommend-card {
  display: flex;
  align-items: flex-start;
  gap: 18px;

  padding: 20px 28px;
  background: #fff;

  box-shadow: 0 15px 40px rgba(9, 35, 67, 0.18);
  transition: transform 0.3s;
}

.recommend-card:hover {
  transform: translateY(-5px);
}

.check-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  background: #DED35D;
  color: #970357;

  border-radius: 50%;
  font-size: 20px;
  font-weight: bold;
}

.recommend-card p {
  margin: 0;
  color: #092343;
  font-size: 19px;
  line-height: 1.9;
  font-weight: 1000;
}

/* =========================
スマホ
========================= */

@media (max-width: 768px) {

  .recommend-section {
    padding: 40px 20px 80px;
  }

  .recommend-grid {
    gap: 16px;
  }

  .recommend-card {
    padding: 24px 20px;
  }

  .recommend-card p {
    font-size: 18px;
    line-height: 1.7;
  }

}
/* =========================
健康サポート
========================= */







/* =========================
CTAボタン
========================= */


.cta-area {
  text-align: center;
  padding: 60px 20px 80px;
  background: #092343;

  border-top: 1px solid rgba(212, 175, 55, 0.25);
  border-bottom: 1px solid rgba(212, 175, 55, 0.25);
}


.cta-button {
  position: relative;
  overflow: hidden;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: min(90%, 560px);
  min-height: 78px;
  padding: 0 40px;

  background: #FD7652;
  color: #ffffff;

  border-radius: 999px;

  font-size: clamp(20px, 2vw, 30px);
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.05em;

  box-shadow:
    0 10px 25px rgba(253, 118, 82, 0.35),
    0 4px 10px rgba(0, 0, 0, 0.08);

  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

/* ホバー */

.cta-button:hover {
  transform: translateY(-4px);

  box-shadow:
    0 16px 32px rgba(253, 118, 82, 0.45),
    0 8px 20px rgba(0, 0, 0, 0.12);
}

/* クリック */

.cta-button:active {
  transform: translateY(0);
}

/* キラッと光る演出 */

.cta-button::before {
  content: "";

  position: absolute;
  top: -50%;
  left: -130%;

  width: 70px;
  height: 220%;

  background: linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.25) 45%,
    rgba(255,255,255,0.9) 50%,
    rgba(255,255,255,0.25) 55%,
    rgba(255,255,255,0) 100%
  );

  transform: rotate(25deg);

  animation: shine 4s infinite;
}

@keyframes shine {

  0% {
    left: -100%;
  }

  15% {
    left: 100%;
  }

  100% {
    left: 100%;
  }
}


.cta-note {
  margin-top: 16px;

  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  letter-spacing: 0.05em;
}






/* =========================
FVボタンスマホ
========================= */

@media (max-width: 768px) {

  .cta-area {
    padding: 40px 16px 50px;
  }

  .cta-button {
    width: 100%;
    min-height: 64px;

    font-size: 18px;
    padding: 0 20px;
  }

  .cta-note {
    font-size: 12px;
  }
}


/* =========================
FV
========================= */

.fv{
  position: relative;
  width: 100%;
}

.fv-img{
  display: block;
  width: 100%;
  height: auto;
}

/* =========================
FV CTA
========================= */

.fv-cta{
  position: absolute;
  right: 5%;
  bottom: 8%;
  z-index: 10;
}

.fv .cta-button{
  width: 460px;
  min-height: 51px;
  font-size: 20px;
  font-weight: 700;
}

/* iPad・小さいPC */

@media (min-width:850px) and (max-width:1350px){

  .fv .cta-button{
    width:360px;
    min-height:40px;
    font-size:18px;
    padding:0 24px;
  }

}

/* スマホ */

@media (max-width:768px){

  .fv-cta{
    position: static;      /* absolute解除 */
    transform:none;
    width:100%;
    padding: 20px 16px 62px;
    background:#fff;
  }

  .fv .cta-button{
    width:100%;
    min-height:62px;
    font-size:18px;
  }

}

/* よくある質問 */
.faq-section{
  padding:100px 20px;
  background:#fff;
}

.faq-section .container{
  max-width:700px;
  margin:auto;
}

.faq-title{
  text-align:center;
  font-size:42px;
  color:#0b8bb9;
  font-weight:600;
  margin-bottom:16px;
  letter-spacing:.05em;
}

.faq-subtitle{
  text-align:center;
  color:#525151;
  font-size:17px;
  margin-bottom:60px;
  line-height:1.8;
}

.faq-category2 {
  margin: 60px 0 30px;
   font-size: 18px;     /* 文字サイズ */
  font-weight: 500;    /* 太字 */
}


/* カード */

.faq-item{
  background:#fff;
  border:1px solid #edf3f7;
  border-radius:22px;
  margin-bottom:20px;
  overflow:hidden;
  box-shadow:
      0 8px 25px rgba(0,0,0,.04);
  transition:.3s;
}

.faq-item:hover{
  box-shadow:
      0 12px 35px rgba(0,0,0,.07);
}

/* 質問 */

.faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:28px 80px 28px 32px;
  font-size:18px;
  font-weight:500;
  color:#092343;
  line-height:1.8;
  position:relative;
}

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

/* ＋ボタン */

.faq-item summary::after{
  content:"+";
  width:36px;
  height:36px;
  border-radius:50%;
  background:#E9F6FB;
  color:#6EC6E6;
  font-size:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:absolute;
  right:28px;
  top:50%;
  transform:translateY(-50%);
  font-weight:300;
}

/* 開いた時 */

.faq-item[open] summary::after{
  content:"－";
}

/* 答え */

.faq-item p{
  padding:0 32px 32px;
  color:#092343;
  line-height:2;
  font-size:17px;
  margin:0;
}

/* スマホ */

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

  .faq-section{
    padding:70px 16px;
  }

  .faq-title{
    font-size:30px;
  }

  .faq-subtitle{
    font-size:15px;
    margin-bottom:40px;
  }

  .faq-item{
    border-radius:18px;
    margin-bottom:16px;
  }

  .faq-item summary{
    padding:20px 60px 20px 20px;
    font-size:15px;
    line-height:1.7;
    font-weight:600;
  }

  .faq-item p{
    padding:0 20px 24px;
    font-size:14px;
    line-height:1.9;
    font-weight:600;
  }

  .faq-item summary::after{
    width:30px;
    height:30px;
    font-size:20px;
    right:18px;
  }
.faq-category2 {
  margin: 60px 0 30px;
   font-size: 16px;     /* 文字サイズ */
  font-weight: 500;    /* 太字 */
}


}




/* ==================================
プレミアム特典
================================== */

.premium-section{
  padding:120px 40px;
  background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);
}

.premium-head{
  max-width:900px;
  margin:0 auto 80px;
  text-align:center;
}

.premium-badge{
  display:inline-block;
  padding:10px 28px;
  margin-bottom:25px;

  background:linear-gradient(135deg,#c8a75d,#f6e7b5);
  color:#092343;

  border-radius:999px;

  font-size:14px;
  font-weight:700;
  letter-spacing:.18em;
}

.premium-head h2{
  color:#092343;
  font-size:38px;
  line-height:1.5;
  margin-bottom:20px;
}

.premium-head p{
  color:#666;
  font-size:20px;
  font-weight:700;
  line-height:1.9;
}


/* ======================
カード
====================== */

.premium-wrap{
  max-width:1200px;
  margin:0 auto;

  display:grid;
  gap:35px;
}

.premium-card{
  position:relative;
  background:#fff;
  padding:55px;
  border-radius:22px;
  border:1px solid rgba(201,167,93,.35);
  box-shadow:
  0 20px 60px rgba(9,35,67,.10);

  transition:.35s;
}

.premium-card:hover{
  transform:translateY(-8px);
  box-shadow:
  0 30px 70px rgba(9,35,67,.16);
}


/* ======================
番号
====================== */

.premium-number{

  display:inline-flex;
  align-items:center;
  justify-content:center;

  width:110px;
  height:42px;

  margin-bottom:25px;

  background:linear-gradient(135deg,#c8a75d,#f5e7ba);

  color:#092343;

  border-radius:999px;

  font-weight:700;
}


/* ======================
見出し
====================== */

.premium-card h3{

  color:#092343;

  font-size:31px;

  line-height:1.6;

  margin-bottom:28px;
}


/* ======================
本文
====================== */

.premium-card p{

  color:#444;

  font-size:18px;
font-weight:600;  
  line-height:2.1;

  margin-bottom:20px;
}


/* ======================
ポイント
====================== */

.premium-point{

  margin-top:30px;

  padding:25px 30px;

  background:#f8fbff;

  border-left:6px solid #c8a75d;

  border-radius:10px;

  color:#092343;

  font-size:20px;

  font-weight:700;

  line-height:1.9;
}


/* ======================
注釈
====================== */

.premium-note{
  margin-top:28px;
  padding:18px 24px;
  background:#fffdf5;
  border:1px solid rgba(201,167,93,.30);
  border-radius:10px;
  color:#666;
  font-size:16px;
  font-weight:500;  
  line-height:1.9;
}


/* ======================
メッセージ
====================== */
.premium-message{
max-width:1000px;
margin:90px auto 0;
padding:60px;
background:#ffffff;
border:2px solid #6EC6E6;
border-radius:0;
text-align:center;
box-shadow:0 10px 30px rgba(9,35,67,.08);

}

.premium-message h3{
color:#d4af37;
font-size:38px;
margin-bottom:35px;
}

.premium-message p{
color:#333;
font-size:20px;
font-weight:500; 
line-height:2.1;
margin-bottom:18px;
}

/* ======================
次へ
====================== */

.premium-next{
  max-width:900px;
  margin:100px auto 0;
  text-align:center;
}

.premium-next h2{
  color:#092343;
  font-size:28px;
  line-height:1.6;
  margin-bottom:25px;
}

.premium-next p{
  color:#666;
  font-size:21px;
  font-weight:800;  
  line-height:2;
}


/* ======================
スマホ
====================== */

@media (max-width:768px){
.premium-section{
  padding:70px 20px;
}

.premium-head{
  margin-bottom:50px;
}

.premium-head h2{
  font-size:22px;
}

.premium-head p{
  font-size:17px;
}

.premium-card{
  padding:28px;
}

.premium-card h3{
  font-size:22px;
}

.premium-card p{
  font-size:16px;
  line-height:1.9;
}

.premium-point{
  padding:18px;
  font-size:17px;
}

.premium-note{
  font-size:15px;
}

.premium-message{
  padding:35px 24px;
}

.premium-message h3{
  font-size:28px;
}

.premium-message p{
  font-size:18px;
  font-weight:800;  
}

.premium-next h2{
  font-size:28px;
}

.premium-next p{
  font-size:17px;
}

}

.premium-number{
  display: flex;
  justify-content: center;
  align-items: center;

  width: 110px;
  height: 42px;

  margin: 0 auto 25px;
}
.premium-card h3{
  text-align: center !important;
}

/* ======================
無料なのにここまで丁寧画像
====================== */
.fv-online{
    display: block;
    width: 50%;      /* 好きなサイズ */
    height: auto;
     margin: 0 auto 50px;/* 中央寄せ */
}


@media (max-width:768px){

.fv-online{
    width:75%;
}

}


/* ======================
   お客様の声
====================== */

.voice-section{
  background:#EAF7FC;
  padding:100px 20px;
}

.voice-container{
  max-width:900px;
  margin:auto;
}

/* タイトル帯 */

.voice-main-title{
  background:#17354B;
  color:#fff;
  text-align:center;
  font-size:34px;
  font-weight:600;
  padding:28px;
  margin-bottom:55px;
  letter-spacing:.08em;
  border-top:4px solid #D6B56A;
}

/* カード */

.voice-card{
  background:#fff;
  padding:50px;
  border-radius:10px;
  box-shadow:
    0 15px 40px rgba(0,0,0,.08);
  border-top:5px solid #D6B56A;
}

/* 上部 */

.voice-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:35px;
}

.voice-info{
  flex:1;
}

.voice-info h3{
  font-size:34px;
  line-height:1.5;
  color:#1D2B38;
  margin-bottom:16px;
  font-weight:700;
}

/* 水色ライン */

.voice-line{
  width:140px;
  height:4px;
  background:#6EC6E6;
  margin-bottom:25px;
}

.voice-name{
  color:#666;
  font-size:17px;
  line-height:1.9;
}

/* 顔写真 */

.voice-image img{
  width:120px;
  height:120px;
  object-fit:cover;
  border-radius:8px;
  border:4px solid #D6B56A;
}

/* 本文 */

.voice-text{
  margin-top:45px;
  font-size:18px;
  color:#444;
  line-height:2.2;
}

/* スマホ */

@media (max-width:768px){

  .voice-section{
    padding:70px 16px;
  }

  .voice-main-title{
    font-size:26px;
    padding:22px;
    margin-bottom:35px;
  }

  .voice-card{
    padding:30px 22px;
  }

  .voice-head{
    flex-direction:column-reverse;
    align-items:center;
    text-align:center;
    gap:20px;
  }

  .voice-info h3{
    font-size:24px;
  }

  .voice-line{
    width:90px;
    margin:18px auto 22px;
  }

  .voice-name{
    font-size:15px;
  }

  .voice-image img{
    width:100px;
    height:100px;
  }

  .voice-text{
    margin-top:30px;
    font-size:15px;
    line-height:2;
  }
}

/* ======================
  プロフィール
====================== */
.career-section{
background:#f7f9fc;
padding:40px 20px 80px;
}

.career-wrap{
max-width:900px;
margin:0 auto;
}

.career-heading{
text-align:center;
margin-bottom:40px;
}

.career-heading h2{
display:inline-block;
font-size:28px;
font-weight:700;
color:#092343;
padding-bottom:14px;
margin-bottom:16px;
border-bottom:2px solid #6EC6E6;
}

.career-heading p{
font-size:18px;
color:#666;
}

.career-box{
background:#fff;
padding:55px;
box-shadow:0 12px 35px rgba(9,35,67,.08);
}

.career-box>p{
font-size:17px;
line-height:2;
font-weight:500;
color:#333;
margin-bottom:28px;
}

.career-result{
margin:35px 0;
padding:30px 35px;
background:#f4f9fc;
border:1px solid #d8e9f4;
border-left:5px solid #092343;
}

.career-result h3{
font-size:23px;
font-weight:700;
color:#092343;
margin-bottom:20px;
}

.career-result p{
font-size:17px;
line-height:2;
font-weight:500;
color:#333;
margin-bottom:18px;
}

.career-result ul{
margin:18px 0 20px 22px;
padding:0;
}

.career-result li{
font-size:17px;
font-weight:600;
line-height:2;
color:#092343;
}

@media(max-width:768px){

.career-section{
padding:30px 18px 60px;
}

.career-wrap{
max-width:100%;
}

.career-heading{
margin-bottom:30px;
}

.career-heading h2{
font-size:20px;
padding-bottom:10px;
}

.career-heading p{
font-size:16px;
}

.career-box{
padding:28px 22px;
}

.career-box>p{
font-size:16px;
line-height:1.9;
margin-bottom:22px;
}

.career-result{
padding:22px 20px;
margin:28px 0;
border-left:4px solid #092343;
}

.career-result h3{
font-size:23px;
line-height:1.5;
margin-bottom:16px;
}

.career-result p{
font-size:16px;
line-height:1.9;
margin-bottom:16px;
}

.career-result li{
font-size:16px;
line-height:1.8;
}

}


/* =========================
フッター
========================= */

.site-footer{
background:#092343;
padding:40px 20px 28px;
text-align:center;
}

.footer-menu{
display:flex;
justify-content:center;
align-items:center;
gap:18px;
margin-bottom:20px;
flex-wrap:wrap;
}

.footer-menu a{
color:#ffffff;
text-decoration:none;
font-size:16px;
font-weight:500;
transition:.3s;
}

.footer-menu a:hover{
color:#6EC6E6;
}

.footer-menu span{
color:rgba(255,255,255,.4);
}

.footer-copy{
margin:0;
font-size:14px;
color:rgba(255,255,255,.7);
letter-spacing:.05em;
line-height:1.8;
}

@media(max-width:768px){

.site-footer{
padding:32px 20px 24px;
}

.footer-menu{
gap:12px;
margin-bottom:16px;
}

.footer-menu a{
font-size:14px;
}

.footer-copy{
font-size:12px;
}

}


/* =========================
最終CTA
========================= */

.final-cta{
background:#fff;
padding:70px 20px 130px;
text-align:center;
}

.final-cta-inner{
max-width:900px;
margin:0 auto;
}

.final-cta-text{
margin:0 0 36px;
font-size:23px;
font-weight:700;
line-height:1.8;
color:#333;
letter-spacing:.04em;
display:inline-block;
padding-bottom:14px;
border-bottom:1px solid #6EC6E6;
}

.final-cta .cta-button{
display:inline-flex;
justify-content:center;
align-items:center;
width:min(90%,560px);
min-height:72px;
}

/* =========================
スマホ
========================= */

@media(max-width:768px){

.final-cta{
padding:50px 20px 45px;
}

.final-cta-text{
font-size:22px;
line-height:1.7;
margin-bottom:28px;
padding-bottom:10px;
}

.final-cta .cta-button{
width:100%;
min-height:62px;
font-size:18px;
}

}


/* PCでは改行しない */
.sp {
  display: none;
}

/* スマホだけ改行する */
@media (max-width: 768px) {
  .sp {
    display: block;
  }
}
