:root{ --ys-primary:#2d5016; --ys-accent:#4a7c59; --ys-silver:#7b9fa8; --ys-indigo:#1a3a0a; --ys-ink:#1a2419; --ys-wash:#e8f0e6; }
body{ font-family:"Hiragino Sans","游ゴシック","Yu Gothic","メイリオ",Meiryo,"MS Pゴシック","MS PGothic",sans-serif; color:var(--ys-ink); scroll-behavior:smooth; }
html{ scroll-padding-top:5rem; }
.hero{
  position:relative; isolation:isolate; display:grid; place-items:center; text-align:center; color:white;
  background: linear-gradient(120deg, #4a7c59, #2d5016);
  overflow:hidden;
}
.hero .container{ padding-top:5rem !important; padding-bottom:3rem !important; }
.hero::after{
  content:""; position:absolute; inset:0;
  background-image:url("assets/images/yagasuri.gif");
  background-size:200px auto; background-repeat:repeat;
  opacity:0.08; pointer-events:none;
}
.btn-ys{ background:var(--ys-primary); color:white; border:none; }
.btn-ys:hover{ background:var(--ys-silver); color:var(--ys-ink); }
.section-title{ font-weight:800; margin-bottom:24px; border-left:6px solid var(--ys-indigo); padding-left:12px; }
footer{ background:#1a3a0a; color:#d4e8d0; }
a{ color:var(--ys-primary); text-decoration:none; }
a:hover{ color:var(--ys-indigo); }

/* ページ固有スタイル */
#index-page section{ padding:72px 0; }
#index-page section:nth-of-type(even){ background:var(--ys-wash); }
#index-page .work-card{ transition:transform .2s ease, box-shadow .2s ease; }
#index-page .work-card:hover{ transform:translateY(-4px); box-shadow:0 1rem 2rem rgba(0,0,0,.08); }
#index-page .btn-ys{ transition: background .3s ease; }

/* モバイル最適化 */
@media (max-width: 767.98px) {
  #index-page .hero .container{ padding-top:4rem !important; padding-bottom:1.5rem !important; }
  #index-page section{ padding:48px 0; }
  .display-5{ font-size:2.5rem; }
  .lead{ font-size:1.1rem; }
  .btn-lg{ padding:0.75rem 1.5rem; font-size:1.1rem; }
  .section-title{ font-size:1.75rem; margin-bottom:20px; }
  .card{ margin-bottom:1rem; }
  html{ scroll-padding-top:4rem; }
}

/* タッチデバイスでのホバー効果無効化 */
@media (pointer: coarse) {
  #index-page .work-card:hover{ transform:none; box-shadow:none; }
}

/* タッチフレンドリーなボタン */
@media (max-width: 767.98px) {
  .btn{ min-height:44px; padding:0.75rem 1rem; }
  .navbar-toggler{ min-height:44px; min-width:44px; }
}

#privacy-page section{ padding:24px 0; }

/* Privacyページのモバイル最適化 */
@media (max-width: 767.98px) {
  #privacy-page .hero .container{ padding-top:4rem !important; padding-bottom:1.5rem !important; }
  #privacy-page main{ padding:32px 0; }
  #privacy-page section{ padding:16px 0; }
}

/* Contactページスタイル */
#contact-page main{ padding:72px 0; }
.hp-wrap{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Contactページのモバイル最適化 */
@media (max-width: 767.98px) {
  #contact-page .hero .container{ padding-top:4rem !important; padding-bottom:1.5rem !important; }
  #contact-page main{ padding:48px 0; }
  #contact-page .form-control{ font-size:16px; } /* iOSでのズーム防止 */
}
