/* 日本語の読みやすさ改善(style.css の後に読み込む)
   ・欧文は従来のフォント(Open Sans / Roboto / Poppins)のまま、日本語だけ Noto Sans JP にする
   ・Noto Sans JP が読み込めない環境では、OS標準の日本語ゴシックにフォールバックする */
:root {
  --jp-fallback: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "BIZ UDPGothic", "Yu Gothic Medium", "Yu Gothic", "Meiryo", sans-serif;
}

body,
p, li, td, th, label, small, span,
input, select, textarea, button,
.form-control,
#footer {
  font-family: "Open Sans", "Noto Sans JP", var(--jp-fallback);
}

h1, h2, h3, h4, h5, h6,
.navbar a,
#hero h1, #hero h2,
.section-title h2,
.section-title p,
.counts .count-box p {
  font-family: "Roboto", "Noto Sans JP", var(--jp-fallback);
}

/* 本文は大きめ・ゆったり */
body {
  font-size: 17px;
  line-height: 1.9;
  letter-spacing: .03em;
  font-feature-settings: "palt" 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
p, li {
  line-height: 1.9;
  word-break: normal;
  overflow-wrap: anywhere;
  line-break: strict;
}
p { text-wrap: pretty; }

/* 小さかった文字を拡大(14px以下 → 15〜17px) */
.navbar a, .navbar a:focus { font-size: 15px; font-weight: 500; }
.navbar .dropdown ul a { font-size: 15px; }
#hero .btn-get-started { font-size: 16px; }
.about .content .icon-box p { font-size: 17px; line-height: 1.9; }
.counts .count-box p { font-size: 16px; }
.counts .count-box a { font-size: 16px; }
.services .description { font-size: 16px; line-height: 1.85; }
.portfolio .portfolio-wrap .portfolio-info p { font-size: 16px; }
.portfolio-details .portfolio-info ul { font-size: 16px; }
.team .member span { font-size: 15px; }
.pricing .box ul { font-size: 16px; }
.pricing .box .btn-buy { font-size: 16px; }
#footer .footer-top .footer-info p { font-size: 16px; line-height: 1.9; }
#footer .credits { font-size: 14px; }

/* お問い合わせフォーム: 16px以上(スマホで入力時に拡大されない)・読みやすい余白 */
.contact .php-email-form input,
.contact .php-email-form textarea,
.contact .php-email-form select,
.form-control {
  font-size: 16px;
  line-height: 1.6;
}
.contact .php-email-form input,
.contact .php-email-form select { padding: 12px 14px; height: auto; }
.contact .php-email-form button[type="submit"] { font-size: 17px; }

/* 見出し: 日本語は字間を少し詰めて収まりを良くする */
h1, h2, h3, h4 { letter-spacing: .02em; line-height: 1.5; }

@media (max-width: 768px) {
  body { font-size: 16px; line-height: 1.85; }
  .about .content .icon-box p,
  .services .description { font-size: 16px; }
}

/* スマホのハンバーガーメニュー: 画面いっぱいに大きな文字で表示(PCのグローバルナビは変更なし) */
.navbar-mobile ul {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 0;
}
.navbar-mobile > ul > li {
  width: 100%;
  border-bottom: 1px solid #ececec;
}
.navbar-mobile > ul > li:last-child { border-bottom: 0; }
.navbar-mobile a,
.navbar-mobile a:focus {
  padding: clamp(14px, 3.2vh, 26px) 28px;
  font-size: clamp(21px, 6.2vw, 30px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .06em;
  color: #222;
}
.navbar-mobile a:active { background: #f1f7ea; }
.navbar-mobile .dropdown ul a {
  font-size: clamp(18px, 5.2vw, 24px);
  font-weight: 500;
}
.navbar-mobile a i,
.navbar-mobile .dropdown ul a i { font-size: 1.1em; }
.navbar-mobile .mobile-nav-toggle { font-size: 36px; top: 12px; right: 16px; }
