/* =============================================================================
   コラム（column）専用スタイル
   レイアウト: SWELL demo05 相当（ピックアップ / グリッド / サイドバー）
   記事パーツ: Cocoon 実装（entry-content.css）を解析し忠実再現。配色のみサイトに調整。
   Cocoon基準値: 角丸4px / 細ボーダー #ccc・#ddd / 見出しbg #f5f6f7 / フラット
   ============================================================================= */
.col-archive, .col-single {
  --navy:#12305c; --navy2:#1c437e; --gold:#c99a2e; --blue:#1d6fbb; --orange:#f2760a;
  --c-text:#333; --c-border:#ccc; --c-thin:#ddd; --c-xxthin:#f5f6f7; --c-line:#e6e9ef;
  --ink:#333; --gray:#666; --bg:#fafbfd; --radius:6px; --radius-s:4px;
  --mincho:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  --gothic:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",Meiryo,sans-serif;
  font-family:var(--gothic); color:var(--c-text); background:var(--bg);
}
.col-archive img, .col-single img{ max-width:100%; height:auto; vertical-align:bottom; }
.col-wrap{ max-width:1140px; margin:0 auto; padding:0 24px; }

/* 共通セクション見出し（控えめ・センター） */
.col-secttl{ text-align:center; margin:0 0 28px; }
.col-secttl__en{ display:block; letter-spacing:.22em; font-size:11px; font-weight:700; color:var(--gold); margin-bottom:5px; }
.col-secttl__jp{ font-family:var(--mincho); font-size:clamp(20px,2.3vw,28px); font-weight:800; color:var(--navy); letter-spacing:.03em; position:relative; padding-bottom:12px; display:inline-block; }
.col-secttl__jp::after{ content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:40px; height:3px; background:var(--gold); border-radius:2px; }

/* =========================================================================
   一覧: HERO
   ========================================================================= */
.col-hero{ position:relative; padding:52px 24px 66px; text-align:center; color:#fff; overflow:hidden;
  background:linear-gradient(105deg,rgba(8,35,70,.92),rgba(12,54,99,.75)),url('../images/column/column-hero-v1.webp') center/cover no-repeat; }
.col-hero__inner{ position:relative; z-index:1; max-width:900px; margin:0 auto; }
.col-crumb{ font-size:12px; opacity:.82; margin-bottom:14px; }
.col-crumb a{ color:#fff; text-decoration:none; } .col-crumb span{ margin:0 8px; } .col-crumb .c{ opacity:.8; }
.col-hero__eyebrow{ letter-spacing:.26em; font-size:12px; font-weight:700; color:var(--gold); margin:0 0 8px; }
.col-hero__title{ font-family:var(--mincho); font-size:clamp(28px,4.2vw,46px); font-weight:800; letter-spacing:.05em; margin:0 0 12px; line-height:1.12; }
.col-hero__lead{ font-size:clamp(13px,1.05vw,15px); line-height:1.9; opacity:.94; margin:0; }
.col-hero__wave{ position:absolute; left:0; bottom:-1px; width:100%; line-height:0; }
.col-hero__wave svg{ width:100%; height:48px; display:block; }

/* =========================================================================
   一覧: ピックアップ・カルーセル
   ========================================================================= */
.col-pickup{ padding:40px 0 8px; }
.col-carousel{ position:relative; max-width:1188px; margin:0 auto; padding:0 24px; }
.col-carousel__track{ display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  padding:4px 2px 12px; -ms-overflow-style:none; scrollbar-width:none; }
.col-carousel__track::-webkit-scrollbar{ display:none; }
.col-slide{ flex:0 0 calc((100% - 36px)/3); scroll-snap-align:start; position:relative; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--c-line); text-decoration:none; color:#fff; aspect-ratio:16/9; background:#12305c; }
.col-slide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.col-slide::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,28,66,0) 38%,rgba(10,28,66,.8) 100%); }
.col-slide:hover img{ transform:scale(1.05); }
.col-slide__cap{ position:absolute; left:0; right:0; bottom:0; z-index:1; padding:14px 16px; }
.col-slide__cat{ display:inline-block; background:var(--navy); color:#fff; font-size:11px; font-weight:700; padding:3px 9px; border-radius:3px; margin-bottom:7px; }
.col-slide__ttl{ font-weight:700; font-size:14.5px; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.col-carousel__arrow{ position:absolute; top:calc(50% - 6px); transform:translateY(-50%); width:40px; height:40px; border-radius:50%; border:1px solid var(--c-line);
  background:#fff; color:var(--navy); box-shadow:0 2px 8px rgba(18,48,92,.14); cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:3; }
.col-carousel__arrow:hover{ background:var(--navy); color:#fff; border-color:var(--navy); }
.col-carousel__arrow--prev{ left:0; } .col-carousel__arrow--next{ right:0; }
.col-carousel__arrow svg{ width:18px; height:18px; }

/* =========================================================================
   一覧: タブ + 新着グリッド（Cocoon エントリーカード風・フラット）
   ========================================================================= */
.col-body{ padding:38px 0 78px; }
.col-tabs{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-bottom:34px; }
.col-tab{ display:inline-block; padding:8px 20px; background:#fff; border:1px solid var(--c-thin); border-radius:3px;
  text-decoration:none; color:var(--navy); font-weight:700; font-size:13.5px; transition:.2s; }
.col-tab:hover,.col-tab.is-active{ background:var(--navy); color:#fff; border-color:var(--navy); }

.col-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.col-card{ background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); overflow:hidden; transition:.2s; }
.col-card:hover{ border-color:#c3d0e2; box-shadow:0 6px 18px rgba(18,48,92,.09); }
.col-card__link{ display:flex; flex-direction:column; height:100%; text-decoration:none; color:inherit; }
.col-card__thumb{ position:relative; padding-top:56.25%; overflow:hidden; background:#e7edf4; }
.col-card__thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.col-card:hover .col-card__thumb img{ transform:scale(1.04); }
.col-card__new{ position:absolute; top:0; left:0; background:var(--gold); color:#fff; font-size:11px; font-weight:700; padding:3px 10px; letter-spacing:.03em; }
.col-card__cat{ position:absolute; bottom:8px; left:8px; background:rgba(18,48,92,.88); color:#fff; font-size:11.5px; font-weight:600; padding:3px 10px; border-radius:3px; }
.col-card__body{ padding:16px 18px 18px; flex:1; display:flex; flex-direction:column; }
.col-card__date{ font-size:12px; color:#9aa4b2; font-weight:600; margin-bottom:6px; }
.col-card__title{ font-size:16px; font-weight:700; line-height:1.5; color:var(--navy); margin:0 0 10px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.col-card__excerpt{ font-size:13px; line-height:1.7; color:var(--gray); margin:0 0 14px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex:1; }
.col-card__more{ display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; color:var(--blue); margin-top:auto; }
.col-card:hover .col-card__more{ gap:8px; }

.col-pager{ margin-top:46px; text-align:center; }
.col-pager .page-numbers{ display:inline-flex; flex-wrap:wrap; justify-content:center; gap:6px; list-style:none; padding:0; }
.col-pager .page-numbers li a,.col-pager .page-numbers li span{ display:flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 6px; border:1px solid var(--c-thin); border-radius:var(--radius-s); text-decoration:none; color:var(--navy); font-weight:700; background:#fff; transition:.2s; }
.col-pager .page-numbers li span.current,.col-pager .page-numbers li a:hover{ background:var(--navy); color:#fff; border-color:var(--navy); }
.col-empty{ text-align:center; padding:60px 20px; color:#9aa4b2; }

/* 一覧下部CTA */
.col-cta{ background:var(--c-xxthin); border-top:1px solid var(--c-line); padding:52px 0; text-align:center; }
.col-cta__title{ font-family:var(--mincho); font-size:clamp(20px,2.4vw,28px); font-weight:800; color:var(--navy); margin:0 0 10px; }
.col-cta__text{ font-size:14px; line-height:1.8; color:var(--gray); margin:0 0 22px; }
.col-cta__btn{ display:inline-flex; align-items:center; gap:9px; background:var(--orange); color:#fff; font-weight:700; font-size:15px; padding:14px 32px; border-radius:var(--radius-s); text-decoration:none; }
.col-cta__btn:hover{ filter:brightness(1.05); }

/* =========================================================================
   個別記事: 2カラム（本文 + サイドバー）
   ========================================================================= */
.col-single{ padding:26px 0 0; }
.cs-layout{ max-width:1140px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px; align-items:start; }
.cs-main{ min-width:0; }
.cs-crumb{ font-size:12px; color:#8a94a6; margin-bottom:16px; }
.cs-crumb a{ color:var(--blue); text-decoration:none; } .cs-crumb span{ margin:0 6px; } .cs-crumb .c{ color:#8a94a6; }
.cs-head__meta{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.cs-cat{ background:var(--navy); color:#fff; font-size:12px; font-weight:600; padding:4px 12px; border-radius:3px; text-decoration:none; }
.cs-date{ font-size:12.5px; color:#9aa4b2; font-weight:600; }
.cs-title{ font-family:var(--mincho); font-size:clamp(22px,2.8vw,33px); font-weight:800; line-height:1.45; color:var(--navy); margin:0 0 20px; letter-spacing:.01em; }
.cs-eyecatch{ margin:0 0 26px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--c-line); }
.cs-eyecatch img{ width:100%; display:block; }

/* 目次（Cocoon: 1px枠 / 中央タイトル / 連番） */
.cs-toc{ border:1px solid var(--c-border); border-radius:var(--radius-s); background:#fff; padding:16px 22px; margin:0 0 30px; font-size:15px; }
.cs-toc__ttl{ display:flex; align-items:center; justify-content:center; gap:7px; font-weight:800; font-size:16px; color:var(--navy); margin:0 0 10px; }
.cs-toc__ttl svg{ stroke:var(--gold); }
.cs-toc__list{ margin:0; padding:0 0 0 2px; list-style:none; counter-reset:toc; }
.cs-toc__list li{ margin:6px 0; line-height:1.6; }
.cs-toc__list li a{ color:var(--c-text); text-decoration:none; font-size:14px; }
.cs-toc__list li a:hover{ color:var(--blue); text-decoration:underline; }
.cs-toc__list li.lv2{ counter-increment:toc; padding-left:24px; position:relative; font-weight:600; }
.cs-toc__list li.lv2::before{ content:counter(toc); position:absolute; left:0; top:1px; width:18px; height:18px; background:var(--navy); color:#fff; border-radius:3px; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.cs-toc__list li.lv3{ padding-left:40px; position:relative; font-size:13.5px; }
.cs-toc__list li.lv3::before{ content:""; position:absolute; left:27px; top:11px; width:7px; height:1.5px; background:var(--gold); }

/* 本文（Cocoon: h2=薄グレー枠 / h3=左太線+細枠） */
.cs-content{ font-size:16px; line-height:1.9; color:var(--c-text); }
.cs-content > *{ margin:0 0 1.3em; }
.cs-content h2{ font-family:var(--mincho); font-size:24px; font-weight:800; color:var(--navy); line-height:1.35; margin:2em 0 .9em; padding:18px 22px; background:var(--c-xxthin); border-left:5px solid var(--navy); border-radius:var(--radius-s); scroll-margin-top:90px; }
.cs-content h3{ font-family:var(--mincho); font-size:20px; font-weight:800; color:var(--navy); line-height:1.4; margin:1.8em 0 .7em; padding:11px 18px; border-left:6px solid var(--gold); border-top:1px solid var(--c-thin); border-right:1px solid var(--c-thin); border-bottom:1px solid var(--c-thin); border-radius:0 var(--radius-s) var(--radius-s) 0; scroll-margin-top:90px; }
.cs-content h4{ font-size:18px; font-weight:800; color:var(--navy); border-bottom:2px solid var(--c-thin); padding-bottom:6px; margin:1.6em 0 .6em; }
.cs-content a{ color:var(--blue); text-decoration:underline; }
.cs-content ul,.cs-content ol{ padding-left:1.5em; }
.cs-content li{ margin:.35em 0; }
.cs-content img{ border-radius:var(--radius-s); }
.cs-content .cs-fig{ margin:1.7em 0; }
.cs-content .cs-fig img{ width:100%; border:1px solid var(--c-line); border-radius:var(--radius); box-shadow:0 4px 14px rgba(18,48,92,.07); }
.cs-content blockquote{ border-left:4px solid var(--c-thin); background:var(--c-xxthin); padding:12px 18px; color:#55606f; }
.cs-content strong{ font-weight:800; background:linear-gradient(transparent 62%,#ffe89a 62%); }
.cs-content table{ width:100%; border-collapse:collapse; font-size:14.5px; }
.cs-content th,.cs-content td{ border:1px solid var(--c-thin); padding:9px 13px; }
.cs-content th{ background:var(--c-xxthin); color:var(--navy); }

/* シェア */
.cs-share{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:36px 0 0; padding-top:22px; border-top:1px solid var(--c-line); }
.cs-share__label{ font-weight:700; color:var(--navy); font-size:13.5px; margin-right:2px; }
.cs-share__btn{ display:inline-flex; align-items:center; justify-content:center; padding:8px 18px; border-radius:var(--radius-s); color:#fff; font-weight:700; font-size:13px; text-decoration:none; }
.cs-share__btn--x{ background:#111; } .cs-share__btn--fb{ background:#1877f2; } .cs-share__btn--ln{ background:#06c755; }
.cs-share__btn:hover{ filter:brightness(1.08); }

/* 執筆者（Cocoon プロフィールボックス風・フラット） */
.cs-author{ display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--c-border); border-radius:var(--radius-s); padding:20px 22px; margin:30px 0 0; }
.cs-author__avatar{ width:60px; height:60px; border-radius:50%; overflow:hidden; flex:none; border:2px solid var(--c-thin); background:var(--navy); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:22px; }
.cs-author__avatar img{ width:100%; height:100%; object-fit:cover; }
.cs-author__name{ font-weight:800; color:var(--navy); font-size:16px; margin:0 0 3px; }
.cs-author__desc{ font-size:12.5px; color:var(--gray); line-height:1.7; margin:0; }
.cs-author{ align-items:flex-start; }
.cs-author__avatar{ width:72px; height:72px; }
.cs-author__label{ font-size:11px; font-weight:700; letter-spacing:.06em; color:var(--gold); margin:0 0 5px; }
.cs-author__name{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; font-size:17px; }
.cs-author__role{ font-size:11.5px; font-weight:700; color:var(--gray); letter-spacing:.02em; }
.cs-author__link{ display:inline-block; margin-top:9px; font-size:12.5px; font-weight:700; color:var(--blue); text-decoration:none; }
.cs-author__link::after{ content:"→"; margin-left:5px; }
.cs-author__link:hover{ text-decoration:underline; }
@media (max-width:600px){
  .cs-author{ flex-direction:column; gap:12px; }
  .cs-author__avatar{ width:64px; height:64px; }
}

/* 前後記事 */
.cs-nav{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:26px 0 0; }
.cs-nav a{ display:flex; flex-direction:column; gap:4px; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-s); padding:14px 16px; text-decoration:none; color:var(--c-text); transition:.2s; }
.cs-nav a:hover{ border-color:var(--navy); }
.cs-nav__label{ font-size:11px; font-weight:700; color:var(--blue); }
.cs-nav__ttl{ font-size:13px; font-weight:600; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cs-nav__next{ text-align:right; } .cs-nav__next .cs-nav__label{ color:var(--gold); }

/* 関連 */
.cs-related{ margin-top:40px; }
.cs-related__grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cs-rcard{ display:flex; gap:12px; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-s); overflow:hidden; text-decoration:none; color:inherit; padding:10px; transition:.2s; }
.cs-rcard:hover{ border-color:#c3d0e2; }
.cs-rcard__thumb{ flex:none; width:104px; height:68px; border-radius:3px; overflow:hidden; background:#e7edf4; }
.cs-rcard__thumb img{ width:100%; height:100%; object-fit:cover; }
.cs-rcard__date{ font-size:11px; color:#9aa4b2; font-weight:600; }
.cs-rcard__title{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-weight:700; font-size:14px; line-height:1.5; color:var(--navy); margin-top:4px; }

/* 記事下CTA */
.cs-cta{ margin-top:40px; background:linear-gradient(135deg,#12305c,#1c437e); color:#fff; padding:34px 30px; text-align:center; border-radius:var(--radius); }
.cs-cta__title{ font-family:var(--mincho); font-size:clamp(19px,2.2vw,26px); font-weight:800; margin:0 0 9px; }
.cs-cta__text{ font-size:14px; line-height:1.8; opacity:.92; margin:0 0 20px; }
.cs-cta__btn{ display:inline-flex; align-items:center; gap:9px; background:var(--orange); color:#fff; font-weight:700; font-size:15px; padding:14px 30px; border-radius:var(--radius-s); text-decoration:none; }
.cs-cta__btn:hover{ filter:brightness(1.05); }

/* ---------- サイドバー ---------- */
.cs-side{ position:sticky; top:20px; display:flex; flex-direction:column; gap:22px; }
.cs-widget{ background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:18px 18px 20px; }
.cs-widget__ttl{ font-weight:800; font-size:15px; color:var(--navy); margin:0 0 13px; padding-bottom:9px; border-bottom:2px solid var(--navy); }
.cs-search{ display:flex; gap:6px; }
.cs-search input[type=search]{ flex:1; min-width:0; border:1px solid var(--c-thin); border-radius:var(--radius-s); padding:9px 11px; font-size:13.5px; font-family:inherit; }
.cs-search button{ flex:none; border:0; background:var(--navy); color:#fff; border-radius:var(--radius-s); padding:0 13px; cursor:pointer; }
.cs-rank{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.cs-rank li a{ display:flex; gap:10px; align-items:center; text-decoration:none; color:var(--c-text); }
.cs-rank__no{ flex:none; width:24px; height:24px; border-radius:3px; background:var(--navy); color:#fff; font-weight:800; font-size:12px; display:flex; align-items:center; justify-content:center; }
.cs-rank li:nth-child(1) .cs-rank__no{ background:#d9a441; } .cs-rank li:nth-child(2) .cs-rank__no{ background:#9aa7b6; } .cs-rank li:nth-child(3) .cs-rank__no{ background:#c08a58; }
.cs-rank__ttl{ font-size:13px; font-weight:600; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cs-catlist{ list-style:none; margin:0; padding:0; }
.cs-catlist li{ border-bottom:1px solid var(--c-line); }
.cs-catlist li:last-child{ border-bottom:0; }
.cs-catlist li a{ display:flex; justify-content:space-between; align-items:center; padding:9px 2px; text-decoration:none; color:var(--c-text); font-weight:600; font-size:13.5px; }
.cs-catlist li a:hover{ color:var(--blue); }
.cs-catlist li a span{ font-size:12px; color:#9aa4b2; }

/* =========================================================================
   記事内パーツ（Cocoon entry-content.css 準拠）
   ========================================================================= */
/* ふきだし（Cocoon: 円形アイコン2px枠 / 名前 / 吹き出し2px枠 + 三角） */
.cparts-balloon{ display:flex; align-items:flex-start; margin:1.5em 0; }
.cparts-balloon--r{ flex-direction:row-reverse; }
.cparts-balloon__person{ flex:none; width:64px; }
.cparts-balloon__icon,.cparts-balloon__icon--ph{ width:64px; height:64px; border-radius:50%; border:2px solid var(--c-border); object-fit:cover; display:block; box-sizing:border-box; }
.cparts-balloon__icon--ph{ background:var(--navy); color:#fff; font-weight:800; font-size:22px; display:flex; align-items:center; justify-content:center; }
.cparts-balloon__name{ font-size:13px; text-align:center; color:var(--gray); margin-top:3px; line-height:1.3; }
.cparts-balloon__body{ position:relative; margin:0 20px; max-width:86%; padding:12px 15px; background:#fff; border:2px solid var(--c-border); border-radius:6px; font-size:14.5px; line-height:1.75; }
.cparts-balloon__body > *{ margin:0; }
.cparts-balloon__body::before,.cparts-balloon__body::after{ content:""; position:absolute; top:12px; width:0; height:0; border-top:11px solid transparent; border-bottom:11px solid transparent; }
.cparts-balloon--l .cparts-balloon__body::before{ left:-13px; border-right:12px solid var(--c-border); }
.cparts-balloon--l .cparts-balloon__body::after{ left:-10px; border-right:12px solid #fff; }
.cparts-balloon--r .cparts-balloon__body::before{ right:-13px; border-left:12px solid var(--c-border); }
.cparts-balloon--r .cparts-balloon__body::after{ right:-10px; border-left:12px solid #fff; }

/* ボックス（Cocoon アイコンボックス: 淡色bg + 左アイコン + 縦罫） */
.cparts-box{ position:relative; margin:1.5em 0; padding:15px 15px 15px 66px; border:1px solid; border-radius:var(--radius-s); font-size:15px; line-height:1.8; }
.cparts-box__ic{ position:absolute; left:0; top:0; bottom:0; width:52px; display:flex; align-items:center; justify-content:center; border-right:1px solid; }
.cparts-box__ic svg{ width:30px; height:30px; }
.cparts-box__ttl{ font-weight:800; margin:0 0 4px; }
.cparts-box__body > *{ margin:0 0 .6em; } .cparts-box__body > *:last-child{ margin-bottom:0; }
.cparts-box--point{ color:#0c5460; background:#e8f6f9; border-color:#bee5eb; } .cparts-box--point .cparts-box__ic{ color:#4bb6cc; border-right-color:#bee5eb; }
.cparts-box--alert{ color:#7a3b3b; background:#fdf2f2; border-color:#f6b9b9; } .cparts-box--alert .cparts-box__ic{ color:#e57373; border-right-color:#f6b9b9; }
.cparts-box--memo{ color:#2e6b58; background:#ebf8f4; border-color:#8dd7c1; } .cparts-box--memo .cparts-box__ic{ color:#3fbb99; border-right-color:#8dd7c1; }
.cparts-box--good{ color:#3a6b34; background:#f5fbf4; border-color:#98e093; } .cparts-box--good .cparts-box__ic{ color:#5cbf54; border-right-color:#98e093; }

/* ボタン（フラット・角丸小） */
.cparts-btn{ display:inline-flex; align-items:center; gap:8px; padding:13px 30px; border-radius:var(--radius-s); color:#fff; font-weight:700; font-size:15px; text-decoration:none; margin:.5em 0; transition:.2s; }
.cparts-btn:hover{ filter:brightness(1.06); }
.cparts-btn--blue{ background:var(--blue); } .cparts-btn--orange{ background:var(--orange); } .cparts-btn--navy{ background:var(--navy); }
.cparts-btn--gold{ background:var(--gold); }

/* Q&A（Cocoon qaスタイル） */
.cparts-qa{ margin:1.4em 0; border:1px solid var(--c-border); border-radius:var(--radius-s); overflow:hidden; background:#fff; }
.cparts-qa__q,.cparts-qa__a{ display:flex; gap:12px; padding:13px 16px; }
.cparts-qa__q{ background:var(--c-xxthin); } .cparts-qa__a{ border-top:1px solid var(--c-thin); }
.cparts-qa__q span,.cparts-qa__a span{ flex:none; width:26px; height:26px; border-radius:3px; color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; font-size:13px; }
.cparts-qa__q span{ background:var(--navy); } .cparts-qa__a span{ background:var(--gold); }
.cparts-qa__q p{ margin:0; font-weight:700; color:var(--navy); line-height:1.6; }
.cparts-qa__a div > *{ margin:0; } .cparts-qa__a div{ line-height:1.8; }

/* アコーディオン */
.cparts-toggle{ margin:1.3em 0; border:1px solid var(--c-border); border-radius:var(--radius-s); background:#fff; overflow:hidden; }
.cparts-toggle__ttl{ cursor:pointer; padding:13px 42px 13px 16px; font-weight:700; color:var(--navy); position:relative; list-style:none; }
.cparts-toggle__ttl::-webkit-details-marker{ display:none; }
.cparts-toggle__ttl::after{ content:""; position:absolute; right:16px; top:50%; width:9px; height:9px; border-right:2px solid var(--navy); border-bottom:2px solid var(--navy); transform:translateY(-70%) rotate(45deg); transition:.2s; }
.cparts-toggle[open] .cparts-toggle__ttl::after{ transform:translateY(-30%) rotate(-135deg); }
.cparts-toggle__body{ padding:2px 16px 14px; line-height:1.8; border-top:1px solid var(--c-line); }
.cparts-toggle__body > *{ margin:.4em 0 .6em; }

/* ステップ（Cocoon step: 番号丸 + 縦線） */
.cparts-step{ margin:1.5em 0; padding-left:6px; counter-reset:cstep; }
.cparts-step__item{ position:relative; padding:0 0 20px 30px; border-left:2px solid var(--c-thin); counter-increment:cstep; }
.cparts-step__item:last-child{ border-left-color:transparent; padding-bottom:0; }
.cparts-step__item::before{ content:counter(cstep); position:absolute; left:-14px; top:-2px; width:26px; height:26px; border-radius:50%; background:var(--navy); color:#fff; font-weight:800; font-size:12px; display:flex; align-items:center; justify-content:center; }
.cparts-step__head{ font-weight:800; color:var(--navy); font-size:16px; margin-bottom:5px; padding-top:1px; }
.cparts-step__body{ line-height:1.8; } .cparts-step__body > *{ margin:.2em 0 .5em; }

/* リッチカラム */
.cparts-cols{ display:flex; flex-wrap:wrap; gap:16px; margin:1.5em 0; align-items:stretch; }
.cparts-col{ flex:1 1 0; min-width:200px; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius-s); padding:16px; }
@media (max-width:560px){ .cparts-col{ flex-basis:100%; } }
.cparts-col > *{ margin:0 0 .6em; } .cparts-col > *:last-child{ margin-bottom:0; }

/* タブ（CSSのみ） */
.cparts-tabs{ display:flex; flex-wrap:wrap; margin:1.5em 0; gap:4px 4px; }
.cparts-tab__radio{ position:absolute; opacity:0; pointer-events:none; }
.cparts-tab__label{ order:0; cursor:pointer; padding:9px 20px; background:var(--c-xxthin); border:1px solid var(--c-thin); border-bottom:0; color:var(--navy); font-weight:700; font-size:13.5px; border-radius:var(--radius-s) var(--radius-s) 0 0; }
.cparts-tab__panel{ order:1; width:100%; display:none; background:#fff; border:1px solid var(--c-thin); border-radius:0 var(--radius-s) var(--radius-s) var(--radius-s); padding:18px; line-height:1.8; }
.cparts-tab__panel > *{ margin:0 0 .6em; } .cparts-tab__panel > *:last-child{ margin-bottom:0; }
.cparts-tab__radio:checked + .cparts-tab__label{ background:var(--navy); color:#fff; border-color:var(--navy); }
.cparts-tab__radio:checked + .cparts-tab__label + .cparts-tab__panel{ display:block; }

/* 記事内CTA（フッターCTAと同一デザイン・記事内サイズ） */
.cparts-cta{ position:relative; overflow:hidden; margin:1.9em 0; border-radius:var(--radius); background:#0e2a5e; color:#fff; padding:30px 28px; }
.cparts-cta__bg{ position:absolute; inset:0; pointer-events:none; background:#0e2a5e url("../images/contact/477b0e22-075f-4330-98de-e12bb1f4da5f.webp") no-repeat center/cover; }
.cparts-cta__bg::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,28,66,.9) 0%,rgba(10,28,66,.66) 46%,rgba(10,28,66,.34) 100%); }
.cparts-cta__inner{ position:relative; z-index:1; display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; }
.cparts-cta__ttl{ font-family:var(--mincho); font-weight:800; font-size:clamp(19px,2.2vw,26px); line-height:1.4; margin:0 0 10px; letter-spacing:.02em; }
.cparts-cta__hl{ color:#ff8a1e; }
.cparts-cta__lead{ font-size:13.5px; line-height:1.75; color:#e6ecf6; margin:0 0 16px; }
.cparts-cta__lead b{ color:#ff6b5a; font-weight:800; }
.cparts-cta__feats{ display:flex; flex-wrap:wrap; gap:16px; list-style:none; margin:0; padding:0; }
.cparts-cta__feats li{ display:flex; flex-direction:column; align-items:center; gap:7px; font-size:12px; font-weight:700; color:#fff; text-align:center; line-height:1.3; }
.cparts-cta__badge{ width:54px; height:54px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 5px 14px rgba(0,0,0,.22); }
.cparts-cta__badge svg{ width:26px; height:26px; stroke:#0b4fd0; fill:none; }
.cparts-cta__act{ min-width:250px; }
.cparts-cta__card{ background:#fff; border-radius:var(--radius); padding:16px 18px; box-shadow:0 14px 34px rgba(0,0,0,.28); }
.cparts-cta__phone{ text-align:center; }
.cparts-cta__phone-label{ display:block; font-size:12.5px; font-weight:700; color:#3a4560; margin-bottom:6px; }
.cparts-cta__phone-number{ display:inline-flex; align-items:center; justify-content:center; gap:9px; color:#0e2a5e; font-family:var(--mincho); font-weight:800; font-size:clamp(24px,2.6vw,32px); line-height:1; text-decoration:none; }
.cparts-cta__phone-ic{ width:34px; height:34px; border-radius:50%; background:#0b4fd0; display:flex; align-items:center; justify-content:center; flex:none; }
.cparts-cta__phone-ic svg{ width:18px; height:18px; stroke:#fff; fill:none; }
.cparts-cta__phone-hours{ display:block; font-size:12px; color:#5c6472; margin-top:7px; }
.cparts-cta__btn{ margin-top:14px; display:flex; align-items:center; justify-content:center; gap:9px; background:linear-gradient(180deg,#ff9126,#f2760a); color:#fff; font-weight:800; font-size:15px; padding:14px 20px; border-radius:var(--radius-s); text-decoration:none; box-shadow:0 10px 22px rgba(242,118,10,.34); }
.cparts-cta__btn:hover{ filter:brightness(1.05); }
@media (max-width:720px){
  .cparts-cta__inner{ grid-template-columns:1fr; gap:22px; text-align:center; }
  .cparts-cta__feats{ justify-content:center; }
  .cparts-cta__act{ min-width:0; max-width:360px; margin:0 auto; width:100%; }
}

/* =========================================================================
   レスポンシブ
   ========================================================================= */
@media (max-width:1024px){
  .cs-layout{ grid-template-columns:1fr; gap:30px; }
  .cs-side{ position:static; }
  .col-slide{ flex-basis:calc((100% - 18px)/2); }
}
@media (max-width:980px){ .col-grid{ grid-template-columns:repeat(2,1fr); gap:18px; } }
@media (max-width:720px){ .cs-related__grid{ grid-template-columns:1fr; } .cs-nav{ grid-template-columns:1fr; } }
@media (max-width:620px){
  .col-grid{ grid-template-columns:1fr; }
  .col-slide{ flex-basis:88%; }
  .col-hero{ padding:44px 20px 56px; }
  .cparts-box{ padding:15px 15px 15px 58px; }
  .cparts-box__ic{ width:46px; }
}
