/* site.css — 全ページ共通スタイル（Claude Design の helmet スタイルを集約） */

body { margin:0; font-family:"Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif; color:#17181B; background:#fff; line-height:1.8; font-size:16px; letter-spacing:.01em; -webkit-font-smoothing:antialiased; }
* { box-sizing:border-box; }
a { color:inherit; text-decoration:none; }
a:hover { color:#3D6F9E; }
h1,h2,h3,h4 { line-height:1.35; letter-spacing:.02em; margin:0; font-weight:700; }
p { margin:0; }
ul { margin:0; padding:0; list-style:none; }
input,textarea,select { font:inherit; }
input:focus,textarea:focus,select:focus { outline:none; border-color:#3D6F9E; background:#fff; box-shadow:0 0 0 4px rgba(61,111,158,.18); }

@media (max-width: 960px) {
  .gb-burger { display:inline-flex !important; }
  .gb-nav {
    position:fixed; left:0; right:0; top:72px;
    flex-direction:column; align-items:stretch !important; gap:4px !important;
    background:#fff; padding:12px clamp(20px,5vw,40px) 20px;
    border-bottom:1px solid #E2E3E8; box-shadow:0 12px 30px rgba(11,16,32,.10);
    transform:translateY(-14px); opacity:0; pointer-events:none;
    transition:transform .3s cubic-bezier(.22,.61,.36,1), opacity .3s;
    max-height:calc(100vh - 72px); overflow:auto;
  }
  .gb-nav.is-open { transform:none; opacity:1; pointer-events:auto; }
  .gb-nav > a { display:block !important; width:100%; margin:0 !important; padding:14px !important; border-radius:10px; text-align:left; }
  .gb-footer-grid { grid-template-columns:repeat(auto-fit,minmax(320px,1fr)) !important; }
}
@media (max-width: 620px) {
  .gb-footer-grid { grid-template-columns:1fr !important; }
  .gb-nav-links { column-count:1 !important; }
}
@media (max-width: 640px) {
  .gb-news-row { grid-template-columns:1fr !important; gap:14px !important; }
  .pres-float { float:none !important; width:100% !important; max-width:300px; margin:0 auto 22px !important; }
}

/*
 * hover クラス（元デザインの style-hover 属性を変換したもの）
 * 各要素の基本スタイルはインラインのため、hover 側は !important で上書きする。
 */
.hv-white:hover { color:#fff !important; }
.hv-nav:hover { color:#17181B !important; background:#F4F5F7 !important; }
.hv-lift:hover { transform:translateY(-2px) !important; box-shadow:0 10px 30px rgba(11,16,32,.10) !important; }
.hv-lift-outline:hover { transform:translateY(-2px) !important; box-shadow:0 10px 30px rgba(11,16,32,.10) !important; border-color:#3D6F9E !important; color:#3D6F9E !important; }
.hv-card:hover { transform:translateY(-6px) !important; box-shadow:0 10px 30px rgba(11,16,32,.10) !important; border-color:transparent !important; }
.hv-card-sm:hover { transform:translateY(-4px) !important; box-shadow:0 10px 30px rgba(11,16,32,.10) !important; border-color:transparent !important; }
.hv-outline:hover { border-color:#3D6F9E !important; color:#3D6F9E !important; }
.hv-row:hover { border-color:#3D6F9E !important; box-shadow:0 6px 18px rgba(11,16,32,.08) !important; }
