/* =========================================================
   vitom | Corporate TOP（corp-page）
   防災/おにもち/ビジョンのトンマナ継承
   ======================================================= */
   .corp-page{
    --brand-deep:#0f2b3a; --brand-accent:#002130;
    --ink:#222; --ink-weak:#4d4d4d; --ink-mute:#637280;
    --bg-soft:#f6f9fb; --bd-soft:#e6edf2;
    font-family:"Noto Sans JP",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
    color:var(--ink);
  }
  .corp-page .container-md{ max-width: 1080px; margin-inline:auto; padding-inline:16px; }
  .corp-page img{ display:block; max-width:100%; height:auto; }
  .corp-page p{ font-size:16px; line-height:1.9; color:var(--ink-weak); letter-spacing:.2px; }
  
  /* ===== HERO ===== */
  .cp-hero{ position:relative; overflow:hidden; }
  .cp-hero__media{ margin:0; }
  .cp-hero__media img{
    width:100%; height: clamp(320px, 48vw, 560px); object-fit: cover;
    filter: saturate(1.05) contrast(1.02);
  }
  .cp-hero::after{
    content:""; position:absolute; inset:0;
    background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.15) 30%, rgba(0,0,0,0) 60%);
    pointer-events:none;
  }
  .cp-hero__inner{
    position:absolute; inset:0; display:grid; place-content:center; text-align:center; gap:14px;
  }
  .cp-eyebrow{
    display:inline-block; font-size:12px; letter-spacing:.12em; text-transform:none;
    background:var(--brand-accent); color:#fff; padding:6px 10px; border-radius:999px;
    justify-self:center;
  }
  .cp-hero h1{
    color:#fff; font-weight:800; letter-spacing:.04em; margin:0;
    font-size: clamp(26px, 4vw, 44px);
    text-shadow: 0 2px 16px rgba(0,0,0,.25);
  }
  .cp-lead{ color:#fff !important; margin:0; text-shadow: 0 2px 10px rgba(0,0,0,.35); }
  .cp-hero__ctas{ display:flex; gap:12px; justify-content:center; margin-top:8px; flex-wrap:wrap; }
  
  /* Buttons */
  .cp-btn-primary{
    background:#fff; color:var(--brand-deep); border:none; font-weight:700; border-radius:9999px; padding:.7rem 1.1rem;
  }
  .cp-btn-ghost{
    background:transparent; color:#fff; border:1px solid rgba(255,255,255,.85);
    font-weight:700; border-radius:9999px; padding:.7rem 1.1rem;
  }
  .cp-btn-primary:hover{ opacity:.92; }
  .cp-btn-ghost:hover{ background:rgba(255,255,255,.08); }
  
  /* ===== セクション共通 ===== */
  .cp-sec{ margin: 36px 0 8px; }
  .cp-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
  .cp-head h2{ margin:0; font-size: clamp(22px, 2.2vw, 28px); font-weight:800; color:var(--brand-deep); }
  .cp-head__more{ color:var(--brand-deep); font-weight:700; text-decoration:none; }
  .cp-head__more:hover{ text-decoration:underline; }
  
  /* ===== グリッド＆カード ===== */
  .cp-grid{ display:grid; gap:12px; }
  .cp-grid--4{ grid-template-columns: repeat(4, 1fr); }
  .cp-grid--3{ grid-template-columns: repeat(3, 1fr); }
  .cp-grid--mt{ margin-top:12px; }
  
  @media (max-width: 992px){
    .cp-grid--4{ grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 576px){
    .cp-grid--4, .cp-grid--3{ grid-template-columns: 1fr; }
  }
  
  .corp-page .cp-card{
    display:block; text-decoration:none; color:inherit;
    border:1px solid var(--bd-soft); border-radius:12px; overflow:hidden; background:#fff;
    transition: transform .2s ease, box-shadow .2s ease;
  }
  .corp-page .cp-card:hover{ transform: translateY(-3px); box-shadow:0 10px 24px rgba(15,43,58,.12); }
  
  .cp-thumb{ aspect-ratio: 1 / 1; margin:0; background:#f1f5f8; }
  .cp-thumb--16x9{ aspect-ratio: 16 / 9; }
  .cp-thumb img{ width:100%; height:100%; object-fit: cover; }
  
  .cp-card__body{ padding:12px; }
  .cp-card__body h3{ margin:0 0 4px; font-size:16px; font-weight:700; color:var(--brand-deep); }
  .cp-card__meta{ margin:0; font-size:13px; color:var(--ink-mute); }
  
  /* ===== NEWS ===== */
  .cp-news{ border:1px solid var(--bd-soft); border-radius:12px; overflow:hidden; background:#fff; }
  .cp-news__item{
    display:flex; gap:12px; align-items:center; padding:12px 14px;
    text-decoration:none; color:inherit; border-top:1px solid var(--bd-soft);
  }
  .cp-news__item:first-child{ border-top:none; }
  .cp-news__item:hover{ background:#f8fbfe; }
  .cp-news__date{ flex:0 0 120px; font-size:13px; color:var(--ink-mute); }
  .cp-news__title{ font-weight:700; color:var(--brand-deep); font-size:16px;}
  
  /* ===== CTA（大） ===== */
  .cp-cta{
    background:var(--brand-deep); color:#fff; border-radius:14px;
    padding:18px 20px; margin:24px 0 32px;
    display:grid; gap:16px; grid-template-columns:1fr auto; align-items:center;
    box-shadow:0 6px 20px rgba(15,43,58,.08);
  }
  .cp-cta__title{ margin:0; font-weight:700; letter-spacing:.02em; font-size:16px; color:#fff; }
  .cp-cta .btn{ background:#fff; color:var(--brand-deep); border:none; font-weight:700; padding:.6rem 1rem; border-radius:9999px; }
  .cp-cta .btn:hover{ opacity:.92; }
  @media (max-width:576px){
    .cp-cta{ grid-template-columns:1fr; text-align:center; }
    .cp-cta .btn{ width:100%; }
  }
  