/* =========================================================
   HIT IT事業部 - Final adjustments
   Typography / readability / image fitting / section headings / NETIS
   Keep this file loaded after style.css.
   ========================================================= */

:root{
  --font-ja:"Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  --font-en:"Helvetica Neue",Arial,sans-serif;
  --fs-body:clamp(14px,.78vw,15px);
  --fs-small:clamp(11px,.62vw,12px);
  --fs-lead:clamp(15px,.88vw,16.5px);
  --fs-h3:clamp(19px,1.18vw,23px);
  --fs-h2:clamp(32px,2.35vw,40px);
  --fs-eyebrow:clamp(10px,.62vw,12px);
  --lh-body:1.85;
  --lh-heading:1.38;
}
html,body,button,input,textarea,select{
  font-family:var(--font-ja)!important;
  font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:.01em;}
p,li,.business-panel__items span,.hokutsu-step__tags span,.flow-row span,.faq-horizontal-a p{
  font-size:var(--fs-body)!important;line-height:var(--lh-body)!important;font-weight:400;
}
.section .title,.contact .title,.faq-section .title,.business-head h2{
  font-family:var(--font-ja)!important;font-size:var(--fs-h2)!important;line-height:var(--lh-heading)!important;
  font-weight:700!important;letter-spacing:-.025em!important;
}
.feature h3,.business-panel__copy h3,.hokutsu-step__caption h3,.faq-horizontal-q h3,.contact-side strong,.other-copy h3{
  font-family:var(--font-ja)!important;font-size:var(--fs-h3)!important;line-height:1.5!important;
  font-weight:700!important;letter-spacing:-.015em!important;
}
.lead,.business-head>p,.contact-copy>p,.other-copy>p,.hokutsu-one-stop__intro>p{
  font-family:var(--font-ja)!important;font-size:var(--fs-lead)!important;line-height:1.9!important;
  font-weight:400!important;letter-spacing:.005em!important;
}
.eyebrow,.business-panel__label,.contact-ready{
  font-family:var(--font-en)!important;font-size:var(--fs-eyebrow)!important;line-height:1.2!important;
  font-weight:700!important;letter-spacing:.11em!important;
}
.hero-reference__copy h1,.business-head__en,.hokutsu-one-stop__intro h2,.one-stop-wheel__center,.business-panel__label,.contact-ready,.hokutsu-step__number{
  font-family:var(--font-en)!important;
}
.hero-reference__copy h1{
  font-size:clamp(58px,6.3vw,108px)!important;line-height:.94!important;font-weight:600!important;letter-spacing:-.05em!important;
}
.hero-reference__copy>p{
  font-family:var(--font-ja)!important;font-size:clamp(14px,1vw,18px)!important;line-height:1.7!important;font-weight:700!important;letter-spacing:.005em!important;
}
/* Businessは英字を主役にしつつ、以前よりかなり抑える */
.business-head__en{
  display:block!important;font-size:clamp(37px,3.75vw,63px)!important;line-height:.95!important;font-weight:600!important;letter-spacing:-.045em!important;
}
.business-head h2{
  margin-top:10px!important;font-size:calc(clamp(22px,1.7vw,30px) - 3pt)!important;letter-spacing:-.02em!important;
}
/* One StopもBusinessと同じ英字階層 */
.hokutsu-one-stop__intro h2{
  font-size:clamp(42px,3.8vw,62px)!important;line-height:1!important;font-weight:600!important;letter-spacing:-.04em!important;
}
.nav a,.footer-links a,.btn,.mobile-quick-cta{
  font-family:var(--font-ja)!important;font-size:clamp(12px,.72vw,13.5px)!important;font-weight:700!important;letter-spacing:.005em!important;
}
.business-tab span{font-family:var(--font-ja)!important;font-size:clamp(12px,.82vw,14px)!important;font-weight:700!important;}
.business-tab b,.faq-letter{font-family:var(--font-en)!important;font-size:var(--fs-small)!important;font-weight:700!important;}
/* ネイビー背景上の文字色を明示して可読性を統一 */
#services .business-head>p,
#services .business-panel__copy>p{color:rgba(236,244,251,.78)!important;}
#services .business-panel__copy h3,
#services .business-head h2,
#services .business-head__en{color:#fff!important;}
#contact .title{color:#fff!important;}
#contact .contact-copy>p{color:rgba(230,240,249,.78)!important;}
#contact .eyebrow--light{color:#b7cde1!important;}

/* 写真はFV以外、切り取りより全体表示を優先 */
#strengths .feature-mosaic,#services .business-panel__photo,#one-stop .hokutsu-step>figure,#other .other-shutter{
  display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;
}
#strengths .feature-mosaic,#one-stop .hokutsu-step>figure,#other .other-shutter{background:#eef3f7!important;}
#services .business-panel__photo{background:#0b2a4c!important;}
#strengths .feature-mosaic>img,#services .business-panel__photo>img,#one-stop .hokutsu-step>figure>img,#other .other-shutter>img{
  display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important;
}
.contact-side--photo{padding:0!important;overflow:hidden!important;background:transparent!important;border:0!important;min-height:0!important;}
.contact-visual{margin:0!important;width:100%!important;height:100%!important;min-height:400px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#0a2747;}
.contact-visual img{display:block;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;}
@media(max-width:768px){
  :root{--fs-body:14px;--fs-lead:15px;--fs-h3:19px;--fs-h2:30px;}
  .hero-reference__copy h1{font-size:clamp(44px,13vw,68px)!important;}
  .business-head__en{font-size:clamp(42px,13vw,58px)!important;}
  .business-head h2{font-size:22px!important;}
  .hokutsu-one-stop__intro h2{font-size:clamp(40px,12vw,54px)!important;}
  .contact-visual{min-height:260px;}
}

/* ===== セクションタイトル統一：英字ラベル + 日本語タイトル ===== */
.section-heading__en{
  display:block!important;
  font-family:var(--font-en)!important;
  font-size:calc(clamp(46px,4.4vw,72px) - 15pt)!important;
  line-height:.95!important;
  font-weight:600!important;
  letter-spacing:-.045em!important;
  text-transform:none;
}
.section-heading__ja,
.hokutsu-one-stop__intro h2.section-heading__ja{
  margin-top:10px!important;
  font-family:var(--font-ja)!important;
  font-size:calc(clamp(22px,1.7vw,30px) - 3pt)!important;
  line-height:var(--lh-heading)!important;
  font-weight:700!important;
  letter-spacing:-.02em!important;
}
#strengths .section-heading__en,#strengths .section-heading__ja,
#one-stop .section-heading__en,#one-stop .section-heading__ja,
#faq .section-heading__en,#faq .section-heading__ja,
#other .section-heading__en,#other .section-heading__ja{color:#0b2a4c!important;}
#services .section-heading__en,#services .section-heading__ja,
#contact .section-heading__en,#contact .section-heading__ja{color:#fff!important;}
/* ご指定どおり「よくあるご質問」だけ2pt小さく */
#faq .section-heading__ja{font-size:calc(clamp(22px,1.7vw,30px) - 5pt)!important;}
.section-heading__statement,
.other-copy>p.section-heading__statement{
  margin:24px 0 0!important;
  font-family:var(--font-ja)!important;
  font-size:var(--fs-h2)!important;
  line-height:var(--lh-heading)!important;
  font-weight:700!important;
  letter-spacing:-.025em!important;
}
@media(max-width:768px){
  .section-heading__en{font-size:calc(clamp(33px,10.5vw,49px) - 15pt)!important;}
  .section-heading__ja,.hokutsu-one-stop__intro h2.section-heading__ja{font-size:calc(22px - 3pt)!important;}
  #faq .section-heading__ja{font-size:calc(22px - 5pt)!important;}
}

/* ===== 可読性調整：薄い文字色を全体的に濃く ===== */
#strengths .lead,
#strengths .feature p,
#one-stop .hokutsu-one-stop__intro>p,
#one-stop .hokutsu-step__caption p,
#faq .lead,
#faq .faq-horizontal-a p,
#other .other-copy>p{
  color:#24384b!important;
}

/* FAQ：Q側の質問文だけ3pt小さく */
#faq .faq-horizontal-q h3{
  font-size:calc(var(--fs-h3) - 3pt)!important;
}

/* ネイビー背景上の薄い本文も少し濃く（白に近づけて可読性向上） */
#services .business-head>p,
#services .business-panel__copy>p{color:rgba(245,249,252,.90)!important;}
#contact .contact-copy>p{color:rgba(245,249,252,.90)!important;}
#contact .eyebrow--light{color:#d2e0ec!important;}

/* ===== NETIS：文字サイズを他セクションの基準に統一 ===== */
.netis-retro__eyebrow{
  font-family:var(--font-en)!important;
  font-size:calc(var(--fs-eyebrow) - 2pt)!important;
  line-height:1.2!important;
  font-weight:700!important;
}
.netis-retro__body>h3{
  font-family:var(--font-ja)!important;
  font-size:calc(var(--fs-h3) - 2pt)!important;
  line-height:1.5!important;
  font-weight:700!important;
  letter-spacing:-.015em!important;
}
.netis-retro__lead,
.netis-retro__points p,
.netis-retro__note,
.netis-retro__mark>p{
  font-family:var(--font-ja)!important;
  font-size:calc(var(--fs-body) - 2pt)!important;
  line-height:var(--lh-body)!important;
}
.netis-retro__points h4{
  font-family:var(--font-ja)!important;
  font-size:calc(var(--fs-body) - 2pt)!important;
  line-height:1.6!important;
  font-weight:700!important;
}

.netis-retro__points article>span{
  font-size:calc(var(--fs-small) - 2pt)!important;
}

/* ===== Number badge image replacement ===== */
.number-badge{
  display:block;
  width:100%;
  height:auto;
}

.feature{
  grid-template-columns:58px 1fr;
  align-items:start;
}
.feature-badge{
  width:42px;
  margin-top:1px;
}

.business-tab{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:8px;
}
.business-tab__badge{
  width:28px;
  flex:0 0 auto;
}
.business-tab span{
  margin-top:0!important;
}

.netis-retro__points article{
  grid-template-columns:42px 1fr;
  align-items:start;
}
.netis-point-badge{
  width:30px;
  margin-top:1px;
}

@media (max-width: 767px){
  .feature{grid-template-columns:52px 1fr;gap:12px}
  .feature-badge{width:38px}
  .business-tab{gap:6px}
  .business-tab__badge{width:24px}
  .netis-retro__points article{grid-template-columns:38px 1fr;gap:8px}
  .netis-point-badge{width:28px}
}
