/* ==========================================================
   株式会社Clavis コーポレートサイト（静的版）
   直前の公開サイト（2026年10月 renewal.css）のデザインを引き継いでいます。
   - 外部フォント・外部スクリプトは読み込みません（端末に入っている書体を使用）
   - インラインstyleは使いません（セキュリティ設定 CSP に合わせるため）
   ========================================================== */
:root{
  --cv-navy:#002f6d; --cv-blue:#135cbc; --cv-green:#058b4c;
  --cv-purple:#6a3fb0; --cv-orange:#b5501a;
  --cv-ink:#1c2430; --cv-muted:#4a5563; --cv-line:#d9dee6;
  --cv-light:#f4f6f9; --cv-dark:#0b1f3f;
  --cv-sans:'Noto Sans JP','Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic UI','Yu Gothic',YuGothic,Meiryo,sans-serif;
  --cv-latin:'Outfit',system-ui,-apple-system,'Segoe UI',Arial,var(--cv-sans);
}
.cv-body, .cv-body *{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.cv-body{margin:0;font-family:var(--cv-sans);color:var(--cv-ink);background:#fff;line-height:1.8;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}
:where(.cv-body) img{max-width:100%;height:auto}
.cv-body a{color:var(--cv-blue);text-decoration:none}
.cv-body a:hover{color:var(--cv-navy);text-decoration:underline}
.cv-body a.cv-btn:hover{text-decoration:none}
.cv-body h1,.cv-body h2,.cv-body h3,.cv-body p{margin:0}
.cv-body :focus-visible{outline:2px solid var(--cv-blue);outline-offset:3px}

.cv-skip{position:absolute;left:-9999px;top:0;background:#fff;padding:8px 16px;z-index:100}
.cv-skip:focus{left:8px}

/* ---------- レイアウト ---------- */
.cv-wrap{max-width:1280px;margin:0 auto;padding:0 40px}
.cv-sec{padding:104px 0}
.cv-sec--light{background:var(--cv-light)}
.cv-sec--navy{background:var(--cv-navy);color:#fff}
.cv-sec--top{padding-top:32px}
.cv-stack{display:flex;flex-direction:column;gap:40px}
.cv-stack--20{gap:20px}
.cv-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:64px;align-items:center}
.cv-split--rev > :first-child{order:2}
.cv-side{display:grid;grid-template-columns:400px minmax(0,1fr);gap:72px;align-items:start}
.cv-side--center{align-items:center}
.cv-side .cv-h2{font-size:32px}
.cv-grid2,.cv-grid3,.cv-grid4{display:grid;gap:24px}
.cv-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cv-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cv-grid4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ---------- 文字 ---------- */
.cv-label{font-family:var(--cv-latin);font-size:14px;font-weight:600;letter-spacing:3px;color:var(--cv-green)}
.cv-sec--navy .cv-label{color:#7fd3a4}
.cv-h1{font-size:52px;font-weight:900;line-height:1.4;color:var(--cv-navy)}
.cv-h1--md{font-size:46px}
.cv-h1--sm{font-size:40px}
.cv-h2{font-size:36px;font-weight:700;line-height:1.45;color:var(--cv-navy)}
.cv-h3{font-size:22px;font-weight:700;line-height:1.5;color:var(--cv-navy)}
.cv-h3--lg{font-size:26px}
.cv-h3--sm{font-size:16px}
.cv-sec--navy .cv-h1,.cv-sec--navy .cv-h2,.cv-sec--navy .cv-h3{color:#fff}
.cv-lead{font-size:17px;line-height:2}
.cv-muted{color:var(--cv-muted)}
.cv-sec--navy .cv-lead,.cv-sec--navy .cv-muted{color:#dbe4f1}
.cv-note{font-size:14px;color:var(--cv-muted)}
.cv-sec--navy .cv-note{color:#c3cfe2}
.cv-head{display:flex;flex-direction:column;gap:16px}
.cv-crumb{font-size:13px;color:var(--cv-muted)}
.cv-crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 12px}
.cv-crumb li+li::before{content:"›";margin-right:12px}
.cv-sec--navy .cv-crumb, .cv-sec--navy .cv-crumb a{color:#aebbd0}
.cv-num{font-family:var(--cv-latin);font-size:32px;font-weight:700;color:var(--cv-green)}

/* ---------- ボタン・タグ ---------- */
.cv-btns{display:flex;flex-wrap:wrap;gap:16px}
.cv-btn{display:inline-block;font-size:16px;font-weight:700;padding:16px 32px;border-radius:8px;background:var(--cv-navy);color:#fff !important;border:2px solid var(--cv-navy);line-height:1.4}
.cv-btn:hover{background:#00224f}
.cv-btn--ghost{background:#fff;color:var(--cv-navy) !important}
.cv-btn--ghost:hover{background:var(--cv-light)}
.cv-btn--white{background:#fff;color:var(--cv-navy) !important;border-color:#fff}
.cv-btn--white:hover{background:var(--cv-light)}
.cv-btn--outline-white{background:transparent;border-color:#fff}
.cv-more{font-size:15px;font-weight:700}
.cv-tag{display:inline-block;align-self:flex-start;font-size:13px;font-weight:700;border:1.5px solid currentColor;border-radius:20px;padding:3px 14px;line-height:1.6}
.cv-tag--green{color:var(--cv-green)} .cv-tag--blue{color:var(--cv-blue)}
.cv-tag--purple{color:var(--cv-purple)} .cv-tag--orange{color:var(--cv-orange)}

/* ---------- ヘッダー ---------- */
.cv-hdr{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--cv-line)}
.cv-hdr__in{height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.cv-hdr__logo img{display:block;width:120px;height:auto}
.cv-nav{display:flex;align-items:center;gap:32px}
.cv-nav a{font-size:15px;font-weight:500;color:var(--cv-ink)}
.cv-nav a[aria-current="page"]{color:var(--cv-navy);font-weight:700}
.cv-nav .cv-btn{padding:10px 20px;font-size:14px}
.cv-menu{display:none}
.cv-menu summary{list-style:none;cursor:pointer;font-size:15px;font-weight:700;color:var(--cv-navy);padding:10px 16px;border:1.5px solid var(--cv-navy);border-radius:8px}
.cv-menu summary::-webkit-details-marker{display:none}
.cv-menu nav{position:absolute;left:0;right:0;top:80px;background:#fff;border-bottom:1px solid var(--cv-line);display:flex;flex-direction:column;padding:8px 24px 24px;box-shadow:0 12px 24px rgba(0,47,109,.08)}
.cv-menu nav a{padding:14px 0;border-bottom:1px solid var(--cv-line);font-weight:700;color:var(--cv-ink)}
.cv-menu nav a[aria-current="page"]{color:var(--cv-navy)}

/* ---------- ヒーロー ---------- */
.cv-hero{padding:88px 0 96px;background:var(--cv-light)}
.cv-hero--sub{padding:56px 0 88px}
.cv-hero.cv-sec--navy{background:var(--cv-navy)}
.cv-hero__txt{display:flex;flex-direction:column;gap:26px}
.cv-hero__mark{width:320px;justify-self:end}
.cv-hero__cube{width:240px}
.cv-hero__full{width:100%;max-width:520px}

/* ---------- カード ---------- */
.cv-card{display:flex;flex-direction:column;gap:14px;background:#fff;border:1px solid var(--cv-line);border-radius:16px;padding:32px}
.cv-sec--light .cv-card{border-color:#fff}
.cv-card p{font-size:15px;line-height:1.9}
.cv-mod{display:flex;flex-direction:column;gap:18px;background:#fff;border:1px solid var(--cv-line);border-radius:16px;padding:32px 28px}
.cv-mod p{font-size:15px;line-height:1.8}
.cv-mod .cv-more{margin-top:auto}
.cv-mod__logo{height:56px;width:auto;max-width:100%;align-self:flex-start}
.cv-mod__top{display:flex;flex-direction:column;gap:18px;min-height:110px;justify-content:flex-end}

/* モジュールロゴ（縮尺統一：高さ基準） */
.cv-logo-mod{display:block;height:88px;width:auto;max-width:100%}
.cv-logo-mod--sm{height:44px}

/* ---------- サービス行（シリーズ一覧） ---------- */
.cv-svc{padding:72px 0;border-top:1px solid var(--cv-line);scroll-margin-top:96px}
.cv-svc:first-child{border-top:0}
.cv-svc__txt{display:flex;flex-direction:column;gap:18px}
.cv-svc__logo{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.cv-points{margin:0;padding:0 0 0 1.2em;font-size:15px;line-height:1.9}
.cv-sec--navy .cv-points{color:#dbe4f1}

/* ---------- パネル ---------- */
.cv-panel{background:var(--cv-light);border-radius:16px;padding:32px;display:flex;flex-direction:column;gap:14px}
.cv-panel--white{background:#fff}
.cv-panel--row{flex-direction:row;align-items:center;gap:28px;flex-wrap:wrap}
.cv-panel--row p{flex:1;min-width:240px;font-size:16px}
.cv-panel__mark{width:64px;flex-shrink:0}
.cv-q{font-size:15px;color:#fff;background:var(--cv-navy);border-radius:28px;padding:12px 22px}
.cv-rank{display:flex;align-items:center;gap:18px;background:#fff;border-radius:12px;padding:16px 22px}
.cv-rank__b{flex-shrink:0;width:44px;height:44px;border-radius:50%;color:#fff;background:var(--cv-navy);font-family:var(--cv-latin);font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center}
.cv-rank__b--green{background:var(--cv-green)} .cv-rank__b--blue{background:var(--cv-blue)} .cv-rank__b--orange{background:var(--cv-orange)}
.cv-rank h3{font-size:17px;font-weight:700;color:var(--cv-navy)}
.cv-rank p{font-size:14px;color:var(--cv-muted)}

/* ---------- 表 ---------- */
.cv-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--cv-line)}
.cv-table th,.cv-table td{text-align:left;vertical-align:top;font-size:15px;padding:18px 24px;border-bottom:1px solid var(--cv-line)}
.cv-table th{width:200px;font-weight:700;color:var(--cv-navy)}
.cv-bizlist{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.cv-bizlist div{display:flex;align-items:center;gap:16px;flex-wrap:wrap}

/* ---------- 会社情報 ---------- */
.cv-story{align-items:center;text-align:center;margin:0}
.cv-story img{width:100%;max-width:880px}
.cv-msg-mark{width:140px;margin-top:16px}
.cv-signname{font-size:28px;font-weight:700;color:var(--cv-navy);line-height:1.45}

/* ---------- 理念 ---------- */
.cv-center{text-align:center;display:flex;flex-direction:column;align-items:center;gap:24px}
.cv-center .cv-lead{max-width:760px}

/* ---------- 規程（プライバシーポリシー等） ---------- */
.cv-legal{max-width:880px}
.cv-legal h2{font-size:28px;font-weight:700;line-height:1.5;color:var(--cv-navy);margin:72px 0 24px}
.cv-legal h2:first-child{margin-top:0}
.cv-legal h3{font-size:18px;font-weight:700;color:var(--cv-navy);margin:40px 0 12px;padding-top:24px;border-top:1px solid var(--cv-line)}
.cv-legal p,.cv-legal li{font-size:16px;line-height:2}
.cv-legal p{margin:0 0 14px}
.cv-legal ul{margin:0 0 18px;padding-left:1.4em}
.cv-legal .cv-sub{font-weight:700;color:var(--cv-ink);margin:18px 0 6px}
.cv-legal__sign{margin-top:28px !important;padding-top:20px;border-top:1px solid var(--cv-line);text-align:right;font-weight:500}
.cv-legal .cv-panel{margin-top:48px}
.cv-legal .cv-panel h3{border:0;padding:0;margin:0}
.cv-legal .cv-panel p{margin:0}

/* ---------- お問い合わせ ---------- */
.cv-contact-big{font-family:var(--cv-latin);font-size:30px;font-weight:700;letter-spacing:.02em;line-height:1.4;color:var(--cv-navy)}
.cv-contact-big a{color:var(--cv-navy)}

/* ---------- CTA ---------- */
.cv-cta{background:var(--cv-navy);color:#fff;padding:88px 0}
.cv-cta__in{display:flex;align-items:center;gap:40px}
.cv-cta__mark{width:112px;flex-shrink:0}
.cv-cta__txt{flex:1;display:flex;flex-direction:column;gap:12px}
.cv-cta .cv-h2{color:#fff}
.cv-cta .cv-muted{color:#dbe4f1}
.cv-cta__tel{font-family:var(--cv-latin);font-size:24px;font-weight:600;color:#fff}
.cv-cta__tel a{color:#fff !important}
.cv-cta__tel span{color:#aebbd0;margin:0 .5em}

/* ---------- フッター ---------- */
.cv-ftr{background:var(--cv-dark);color:#dbe4f1;padding:56px 0 40px}
.cv-ftr a{color:#dbe4f1 !important}
.cv-ftr__top{display:flex;justify-content:space-between;gap:48px;align-items:flex-start}
.cv-ftr__logo img{width:150px;height:auto;display:block}
.cv-ftr__tag{font-size:14px;margin-top:12px !important}
.cv-ftr__nav{display:grid;grid-template-columns:repeat(3,auto);gap:12px 40px;font-size:14px}
.cv-ftr__copy{margin-top:32px !important;font-size:13px;color:#aebbd0;line-height:1.9}

/* ---------- 404 ---------- */
.cv-404{font-family:var(--cv-latin);font-size:88px;font-weight:700;line-height:1;color:var(--cv-navy)}

/* ---------- レスポンシブ ---------- */
@media (max-width:960px){
  .cv-nav{display:none}
  .cv-menu{display:block}
}
@media (max-width:1024px){
  .cv-split,.cv-side{grid-template-columns:minmax(0,1fr);gap:40px}
  .cv-split--rev > :first-child{order:0}
  .cv-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cv-hero__mark{width:220px;justify-self:start}
}
@media (max-width:768px){
  .cv-wrap{padding:0 20px}
  .cv-sec{padding:72px 0}
  .cv-sec--top{padding-top:16px}
  .cv-hero{padding:56px 0 64px}
  .cv-h1,.cv-h1--md,.cv-h1--sm{font-size:34px}
  .cv-h2,.cv-side .cv-h2{font-size:26px}
  .cv-h3--lg{font-size:22px}
  .cv-grid2,.cv-grid3,.cv-grid4{grid-template-columns:minmax(0,1fr)}
  .cv-mod__top{min-height:0}
  .cv-hero__mark{width:160px}
  .cv-table th{width:110px;padding:14px 12px}
  .cv-table td{padding:14px 12px}
  .cv-cta{padding:64px 0}
  .cv-cta__in{flex-direction:column;align-items:flex-start;gap:28px}
  .cv-cta__mark{width:80px}
  .cv-cta__tel{font-size:20px}
  .cv-ftr__top{flex-direction:column}
  .cv-ftr__nav{grid-template-columns:repeat(2,auto)}
  .cv-logo-mod{height:64px}
  .cv-legal h2{font-size:22px;margin-top:56px}
  .cv-contact-big{font-size:24px}
  .cv-svc{padding:56px 0}
}
@media (max-width:480px){
  .cv-table th,.cv-table td{display:block;width:100%}
  .cv-table th{border-bottom:0;padding-bottom:2px}
  .cv-ftr__nav{grid-template-columns:minmax(0,1fr)}
}

/* ---------- 1ページ構成（2026-10-23） ---------- */
.cv-anchor{scroll-margin-top:96px}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.cv-sign{font-size:17px;font-weight:700;color:var(--cv-navy)}
.cv-ftr__nav--2{grid-template-columns:repeat(2,auto)}
@media (max-width:480px){.cv-ftr__nav--2{grid-template-columns:minmax(0,1fr)}}
.cv-card .cv-contact-big{font-size:28px;line-height:1.4}
.cv-mod__logo{height:68px}
@media (max-width:768px){.cv-card .cv-contact-big{font-size:22px}}
@media (max-width:768px){.cv-h1.cv-h1--md{font-size:28px}.cv-hero .cv-hero__mark{width:120px}}
@media (max-width:360px){.cv-h1.cv-h1--md{font-size:25px}}

/* ---------- 製品画面（デモ用データ） ---------- */
.cv-shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;align-items:start}
.cv-fig{margin:0}
.cv-shot{display:block;width:100%;height:auto;background:#fff;border:1px solid var(--cv-line);border-radius:12px}
.cv-figcap{font-size:14px;color:var(--cv-muted);margin-top:10px}
@media (max-width:1024px){.cv-shots{grid-template-columns:minmax(0,1fr)}}
.cv-shot--light{background:#fff;max-width:620px}
