/* 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; }

/*
 * コラム本文（CMS入稿HTML）の見出し・段落
 * サイトのトーン＆マナーに合わせる: 見出し #17181B / 本文 #45474E /
 * アクセント 紺→青グラデーション（linear-gradient(135deg,#17181B,#3D6F9E)）/ 罫線 #E2E3E8
 */
.article-body { font-size:1.02rem; line-height:1.95; max-width:820px; margin-inline:auto; }
.article-body p { margin:1.2em 0 0; color:#45474E; }
.article-body h2 {
  position:relative;
  margin-top:2.4em;
  padding-bottom:14px;
  border-bottom:1px solid #E2E3E8;
  font-size:clamp(1.3rem, 2.6vw, 1.6rem);
  line-height:1.5;
  color:#17181B;
}
.article-body h2::after {
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:48px;
  height:2px;
  border-radius:2px;
  background:linear-gradient(135deg,#17181B,#3D6F9E);
}
.article-body h3 {
  margin-top:1.9em;
  padding-left:14px;
  border-left:3px solid #3D6F9E;
  font-size:clamp(1.12rem, 2vw, 1.3rem);
  line-height:1.5;
  color:#17181B;
}
.article-body h2 + p, .article-body h3 + p { margin-top:1em; }
.article-body > :first-child { margin-top:0; }
