/* ================================
   FIT LINK 試作LP
   色はオリジナル（モデルサイトからコピーしない）
   ・メイン：ディープティール #0e6b6b
   ・アクセント：コーラル #f2694f
================================ */
:root{
  --main:#0e6b6b;
  --main-dark:#0a4f4f;
  --accent:#f2694f;
  --accent-dark:#d6532f;
  --ink:#25313a;
  --sub:#5c6b76;
  --wash:#eef6f4;
  --line:#d8e4e1;
  --white:#fff;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:76px;}
body{
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  color:var(--ink);
  line-height:1.8;
  font-size:16px;
}
img{max-width:100%;display:block;}
a{color:inherit;}

/* ---- 共通部品 ---- */
.section{padding:80px 24px;}
.section__inner{max-width:1040px;margin:0 auto;}
.section__title{
  text-align:center;font-size:32px;line-height:1.4;margin-bottom:48px;
}
.section__en{
  display:block;font-size:14px;letter-spacing:.2em;color:var(--accent);
  font-weight:700;margin-bottom:8px;
}

.btn{
  display:inline-block;background:var(--accent);color:var(--white);
  font-weight:700;text-decoration:none;text-align:center;
  padding:14px 32px;border-radius:999px;
  box-shadow:0 4px 0 var(--accent-dark);
  transition:transform .15s,box-shadow .15s;
}
.btn:hover{transform:translateY(2px);box-shadow:0 2px 0 var(--accent-dark);}
.btn--small{padding:10px 20px;font-size:14px;}
.btn--large{padding:18px 48px;font-size:18px;}
.btn--outline{
  background:var(--white);color:var(--main);border:2px solid var(--main);
  box-shadow:0 4px 0 var(--main-dark);
}
.btn--outline:hover{box-shadow:0 2px 0 var(--main-dark);}

/* ---- プレースホルダー画像 ---- */
.ph{
  background:repeating-linear-gradient(45deg,#cfe0dc,#cfe0dc 12px,#dcebe7 12px,#dcebe7 24px);
  border:2px dashed #9db8b2;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  color:#4d6862;font-size:13px;font-weight:700;text-align:center;line-height:1.5;
}

/* ---- ヘッダー ---- */
.header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(255,255,255,.95);
  border-bottom:1px solid var(--line);
}
.header__inner{
  max-width:1120px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;gap:32px;
}
.logo{
  font-size:24px;font-weight:900;letter-spacing:.04em;
  color:var(--main);text-decoration:none;
  display:inline-flex;align-items:center;gap:10px;
}
.logo img{height:38px;width:auto;}
.logo span{color:var(--accent);}
.gnav{display:flex;gap:24px;margin-left:auto;}
.gnav a{
  text-decoration:none;font-size:15px;font-weight:600;color:var(--ink);
}
.gnav a:hover{color:var(--main);}

/* ---- ヒーロー ---- */
.hero{
  background:linear-gradient(135deg,var(--wash) 0%,#dff0ec 100%);
  padding:150px 24px 80px;
}
.hero__inner{
  max-width:1120px;margin:0 auto;
}
.hero__label{
  display:inline-block;background:var(--main);color:var(--white);
  font-size:14px;font-weight:700;padding:6px 16px;border-radius:6px;margin-bottom:20px;
}
.hero__title{font-size:52px;line-height:1.3;margin-bottom:20px;}
.hero__lead{color:var(--sub);margin-bottom:32px;}
.hero__note{font-size:13px;color:var(--sub);margin-top:12px;}
.ph--hero{aspect-ratio:4/3;}
/* ---- ヒーロー背景スライドショー ---- */
.hero{position:relative;overflow:hidden;}
.hero__bg{position:absolute;inset:0;}
.hero__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;
  opacity:0;animation:heroBgFade 24s infinite;}
.hero__bg img:nth-child(1){animation-delay:-1s;opacity:1;} /* アニメ非対応環境でも1枚目は見える */
.hero__bg img:nth-child(2){animation-delay:7s;}
.hero__bg img:nth-child(3){animation-delay:15s;}
@keyframes heroBgFade{
  0%{opacity:0;transform:scale(1.06);}
  6%{opacity:1;}
  33%{opacity:1;}
  41%{opacity:0;transform:scale(1);}
  100%{opacity:0;transform:scale(1.06);}
}
@keyframes heroBgFadeSoft{
  0%{opacity:0;}
  6%{opacity:1;}
  33%{opacity:1;}
  41%{opacity:0;}
  100%{opacity:0;}
}
/* 「視差効果を減らす」設定の人には、ズームなしのフェードのみ */
@media (prefers-reduced-motion: reduce){
  .hero__bg img{animation-name:heroBgFadeSoft;transform:none;}
}
.hero__scrim{position:absolute;inset:0;
  background:linear-gradient(100deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.88) 38%, rgba(255,255,255,.5) 62%, rgba(255,255,255,.08) 100%);}
.hero__inner{position:relative;}
.hero__text{max-width:560px;}

/* ---- 悩み提起 ---- */
.worries{background:var(--white);}
.worries__list{
  max-width:720px;margin:0 auto 40px;list-style:none;
  display:flex;flex-direction:column;gap:16px;
}
.worries__item{
  background:var(--wash);border-radius:12px;padding:18px 20px 18px 56px;
  position:relative;font-weight:600;
}
.worries__item::before{
  content:"✔";position:absolute;left:20px;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border-radius:50%;
  background:var(--main);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-size:14px;
}
.worries__answer{
  text-align:center;font-size:26px;font-weight:700;
  padding-top:32px;position:relative;
}
.worries__answer::before{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  border:16px solid transparent;border-top-color:var(--main);
}
.worries__answer strong{color:var(--accent);}

/* ---- 特徴 ---- */
.features{background:var(--wash);}
.features__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
}
.feature-card{
  background:var(--white);border-radius:16px;padding:28px;
  box-shadow:0 4px 16px rgba(14,107,107,.08);position:relative;
}
.feature-card__num{
  position:absolute;top:-16px;left:20px;
  background:var(--accent);color:var(--white);
  font-size:18px;font-weight:900;letter-spacing:.05em;
  padding:4px 14px;border-radius:8px;
}
.feature-card__image{aspect-ratio:3/2;margin-bottom:20px;}
img.feature-card__image{width:100%;object-fit:cover;border-radius:12px;display:block;}
.feature-card__title{font-size:20px;margin-bottom:12px;line-height:1.5;}
.feature-card__text{font-size:15px;color:var(--sub);}

/* ---- 料金 ---- */
.price{background:var(--white);}
.price__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;
}
.price-card{
  border:2px solid var(--line);border-radius:16px;padding:32px 24px;
  display:flex;flex-direction:column;text-align:center;position:relative;
}
.price-card--featured{
  border-color:var(--accent);
  box-shadow:0 8px 24px rgba(242,105,79,.18);
}
.price-card__badge{
  position:absolute;top:-16px;left:50%;transform:translateX(-50%);
  background:var(--accent);color:var(--white);
  font-size:14px;font-weight:700;padding:4px 20px;border-radius:999px;white-space:nowrap;
}
.price-card__name{font-size:22px;margin-bottom:4px;}
.price-card__for{font-size:13px;color:var(--sub);margin-bottom:16px;}
.price-card__price{font-size:40px;font-weight:900;color:var(--main);line-height:1.2;margin-bottom:20px;}
.price-card__yen{font-size:22px;}
.price-card__unit{font-size:13px;font-weight:600;color:var(--sub);display:block;}
.price-card__list{
  list-style:none;text-align:left;margin-bottom:24px;flex:1;
  display:flex;flex-direction:column;gap:10px;font-size:15px;
}
.price-card__list li{padding-left:28px;position:relative;}
.price-card__list li.ok::before{
  content:"○";position:absolute;left:0;color:var(--main);font-weight:900;
}
.price-card__list li.ng{color:#a7b2ba;}
.price-card__list li.ng::before{
  content:"−";position:absolute;left:0;font-weight:900;
}
.price__note{font-size:13px;color:var(--sub);text-align:center;margin-top:24px;}
.price__more{text-align:center;margin-top:16px;}
.price__more a{color:var(--main);font-weight:700;}

/* ---- お客様の声 ---- */
.voice{background:var(--wash);}
.voice__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.voice-card{
  background:var(--white);border-radius:16px;padding:24px;
  box-shadow:0 4px 16px rgba(14,107,107,.08);
}
.voice-card__head{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.ph--avatar{width:56px;height:56px;border-radius:50%;flex:none;font-size:10px;}
img.voice-card__avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;}
.voice-card__name{font-size:14px;font-weight:700;}
.voice-card__result{font-size:13px;color:var(--accent);font-weight:700;}
.voice-card__text{font-size:14px;color:var(--sub);}
.voice__note{font-size:13px;color:var(--sub);text-align:center;margin-top:24px;}

/* ---- FAQ ---- */
.faq{background:var(--white);}
.faq__list{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
.faq-item{border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.faq-item__q{
  width:100%;background:var(--white);border:none;cursor:pointer;
  font:inherit;font-weight:700;font-size:16px;text-align:left;
  padding:18px 56px 18px 20px;position:relative;color:var(--ink);
}
.faq-item__q::before{
  content:"Q.";color:var(--accent);font-weight:900;margin-right:10px;
}
.faq-item__icon{
  position:absolute;right:20px;top:50%;width:14px;height:14px;
  transform:translateY(-50%);
}
.faq-item__icon::before,.faq-item__icon::after{
  content:"";position:absolute;background:var(--main);
  top:50%;left:50%;transition:transform .25s;
}
.faq-item__icon::before{width:14px;height:2px;transform:translate(-50%,-50%);}
.faq-item__icon::after{width:2px;height:14px;transform:translate(-50%,-50%);}
.faq-item__q[aria-expanded="true"] .faq-item__icon::after{transform:translate(-50%,-50%) scaleY(0);}
.faq-item__a{
  max-height:0;overflow:hidden;transition:max-height .3s ease;
  background:var(--wash);
}
.faq-item__a p{padding:18px 20px;font-size:15px;color:var(--sub);}

/* ---- CTA ---- */
.cta{
  background:linear-gradient(135deg,var(--main) 0%,var(--main-dark) 100%);
  color:var(--white);text-align:center;padding:80px 24px;
}
.cta__title{font-size:34px;line-height:1.5;margin-bottom:16px;}
.cta__text{margin-bottom:32px;opacity:.92;}
.btn--cta{font-size:20px;padding:20px 56px;}
.cta__note{font-size:13px;margin-top:14px;opacity:.75;}

/* ---- フッター ---- */
.footer{background:#1c262d;color:#b8c4cc;text-align:center;padding:40px 24px;}
.logo--footer{color:var(--white);margin-bottom:12px;}
.footer__copy{font-size:12px;line-height:1.9;}

.sp-only{display:none;}

/* ================================
   下層ページ共通
================================ */
.section--wash{background:var(--wash);}
.section__inner--narrow{max-width:760px;}

.page-hero{
  background:linear-gradient(135deg,var(--wash) 0%,#dff0ec 100%);
  padding:130px 24px 48px;text-align:center;
}
.page-hero__en{
  font-size:14px;letter-spacing:.2em;color:var(--accent);font-weight:700;
}
.page-hero__title{font-size:36px;line-height:1.4;margin:4px 0 8px;}
.page-hero__lead{font-size:15px;color:var(--sub);}
.page-hero__link{color:var(--main);font-weight:700;}

/* 見出し */
.cat-title{
  font-size:22px;margin:48px 0 20px;padding-left:14px;
  border-left:5px solid var(--accent);line-height:1.5;
}
.cat-title:first-child{margin-top:0;}
.sub-title{
  font-size:18px;margin:36px 0 14px;padding-bottom:8px;
  border-bottom:2px solid var(--line);
}

/* テーブル */
.table-wrap{overflow-x:auto;}
.cmp-table{
  width:100%;min-width:640px;border-collapse:collapse;background:var(--white);
  font-size:15px;
}
.cmp-table th,.cmp-table td{
  border:1px solid var(--line);padding:14px 12px;text-align:center;
}
.cmp-table thead th{
  background:var(--main);color:var(--white);font-size:16px;
}
.cmp-table tbody th{
  background:var(--wash);text-align:left;font-weight:700;width:34%;
}
.cmp-table__featured{background:#fff3ef;font-weight:700;}
.cmp-table thead .cmp-table__featured{background:var(--accent);}

.info-table{
  width:100%;border-collapse:collapse;background:var(--white);font-size:15px;
}
.info-table th,.info-table td{
  border:1px solid var(--line);padding:14px 16px;text-align:left;
}
.info-table th{background:var(--wash);width:30%;font-weight:700;}
.em{color:var(--accent);font-size:1.1em;}

.dot-list{list-style:none;display:flex;flex-direction:column;gap:8px;font-size:15px;}
.dot-list li{padding-left:20px;position:relative;}
.dot-list li::before{
  content:"";position:absolute;left:4px;top:.7em;
  width:8px;height:8px;border-radius:50%;background:var(--main);
}

/* フッターナビ */
.footer__nav{
  display:flex;justify-content:center;gap:8px 28px;flex-wrap:wrap;margin-bottom:20px;
}
.footer__nav a{
  color:#dce5ea;text-decoration:none;font-size:14px;font-weight:600;
}
.footer__nav a:hover{color:var(--white);text-decoration:underline;}

/* お問い合わせフォーム */
.contact-lead{margin-bottom:36px;color:var(--sub);}
.contact-lead a{color:var(--main);font-weight:700;}
.form__row{margin-bottom:24px;}
.form__label{
  display:block;font-weight:700;margin-bottom:8px;
}
.form__req,.form__opt{
  display:inline-block;font-size:12px;font-weight:700;color:var(--white);
  border-radius:4px;padding:1px 8px;margin-left:10px;vertical-align:middle;
}
.form__req{background:var(--accent);}
.form__opt{background:#9aa7b0;}
.form__input{
  width:100%;font:inherit;color:var(--ink);
  border:2px solid var(--line);border-radius:10px;
  padding:12px 14px;background:var(--white);
}
.form__input:focus{outline:none;border-color:var(--main);}
.form__select{appearance:auto;}
.form__textarea{resize:vertical;}
.form__agree{margin:28px 0;text-align:center;font-size:15px;}
.form__agree input{margin-right:8px;transform:scale(1.2);}
.form__agree a{color:var(--main);font-weight:700;}
.form__submit{text-align:center;}
.form__submit .btn{min-width:280px;border:none;cursor:pointer;font:inherit;font-weight:700;}
.form__note{font-size:13px;color:var(--sub);margin-top:12px;}
.form__result{
  display:none;margin-top:24px;text-align:center;font-weight:700;
  background:var(--wash);border:2px solid var(--main);border-radius:10px;
  padding:16px;color:var(--main);
}
.form__result.is-show{display:block;}

/* ================================
   レスポンシブ
================================ */
@media (max-width:900px){
  .hero__title{font-size:40px;}
  .features__grid,.price__grid,.voice__grid{grid-template-columns:1fr;max-width:480px;margin:0 auto;}
  .price-card--featured{order:-1;}
}
@media (max-width:768px){
  .gnav{display:none;}
  .header__inner{padding:10px 16px;gap:12px;justify-content:space-between;}
  .logo{font-size:18px;gap:6px;}
  .logo img{height:26px;}
  .btn--small{padding:8px 14px;font-size:13px;white-space:nowrap;}
  .section{padding:56px 20px;}
  .section__title{font-size:26px;margin-bottom:36px;}
  .hero{padding:120px 20px 56px;}
  .hero__title{font-size:36px;}
  .hero__scrim{background:linear-gradient(180deg, rgba(255,255,255,.93) 0%, rgba(255,255,255,.82) 100%);}
  .hero__bg img{object-position:68% center;}
  .worries__answer{font-size:21px;}
  .cta__title{font-size:26px;}
  .btn--cta{font-size:17px;padding:16px 36px;}
  .sp-only{display:inline;}
  .page-hero{padding:104px 20px 36px;}
  .page-hero__title{font-size:28px;}
  .cat-title{font-size:19px;}
  .form__submit .btn{min-width:0;width:100%;}
}
