/* ============================================
   コラム記事 共通 warm CSS（10記事共有）
   ============================================ */

/* === Article container === */
.column-article{
  max-width:780px;margin:0 auto;
  padding:60px 24px 80px;
  line-height:1.95;color:var(--warm-ink);font-size:16px;
}
.column-article .breadcrumb{
  font-family:var(--font-hand);font-size:13px;
  color:var(--warm-ink-soft);margin-bottom:24px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.column-article .breadcrumb a{color:var(--warm-ink-soft);transition:color .2s;border-bottom:1px dotted var(--warm-ink-mute)}
.column-article .breadcrumb a:hover{color:var(--terracotta)}
.column-article .article-meta{
  font-family:var(--font-kid);font-size:12px;color:var(--terracotta-deep);
  margin-bottom:20px;letter-spacing:.05em;
}
.column-article h1{
  font-family:var(--font-display);
  font-size:34px;line-height:1.45;font-weight:900;
  color:var(--warm-ink);letter-spacing:.02em;margin:0 0 32px;
}
.column-article h2{
  font-family:var(--font-display);
  font-size:24px;line-height:1.5;font-weight:900;
  color:var(--warm-ink);
  margin:64px 0 20px;padding:0 0 0 16px;
  border-left:4px solid var(--terracotta);
}
.column-article h3{
  font-family:var(--font-display);
  font-size:18px;font-weight:700;
  color:var(--warm-ink);margin:36px 0 12px;
}
.column-article p{margin:0 0 20px;font-family:var(--font-body)}
.column-article p strong{color:var(--terracotta-deep);font-weight:700}
.column-article a{color:var(--terracotta-deep);text-decoration:none;border-bottom:1px dashed var(--terracotta)}
.column-article a:hover{color:var(--terracotta);border-bottom-style:solid}
.column-article .lead{
  font-family:var(--font-hand);
  font-size:17px;line-height:2.1;color:var(--warm-ink);
  padding:28px;
  background:linear-gradient(180deg,var(--peach-soft) 0%,var(--cream) 100%);
  border-radius:var(--r-md);
  border-left:4px solid var(--terracotta);
  margin:0 0 48px;
}
.column-article ul,.column-article ol{margin:0 0 24px;padding-left:24px}
.column-article li{margin-bottom:10px;font-family:var(--font-body)}

/* === Data callout === */
.column-article .data-callout{
  margin:36px 0;padding:28px 30px;
  background:var(--peach-soft);
  border-left:4px solid var(--terracotta);
  border-radius:0 var(--r-md) var(--r-md) 0;
  box-shadow:var(--shadow-soft);
}
.column-article .data-callout-label{
  font-family:var(--font-kid);font-size:12px;letter-spacing:.1em;
  color:var(--terracotta-deep);font-weight:700;
  margin-bottom:12px;display:block;
}
.column-article .data-callout-fact{
  font-family:var(--font-display);font-size:19px;font-weight:900;
  line-height:1.55;margin:0 0 12px;color:var(--warm-ink);
}
.column-article .data-callout-detail{
  font-family:var(--font-hand);font-size:14px;line-height:1.85;
  color:var(--warm-ink-soft);margin:0 0 10px;
}
.column-article .data-callout-detail strong{color:var(--terracotta-deep)}
.column-article .data-callout-source{
  font-family:var(--font-hand);font-size:11px;color:var(--warm-ink-mute);
  margin:12px 0 0;font-style:italic;
}

/* === Comparison table === */
.column-article .comparison-table{
  width:100%;border-collapse:separate;border-spacing:0;
  margin:32px 0;font-size:14px;background:#fff;
  border-radius:var(--r-md);overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.column-article .comparison-table th,
.column-article .comparison-table td{
  padding:14px 16px;border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);text-align:left;vertical-align:top;
  font-family:var(--font-hand);
}
.column-article .comparison-table th:last-child,
.column-article .comparison-table td:last-child{border-right:none}
.column-article .comparison-table tr:last-child td{border-bottom:none}
.column-article .comparison-table thead th{
  background:var(--terracotta);color:#fff;
  font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.03em;
  border-bottom:none;border-right:1px solid rgba(255,255,255,.2);
}
.column-article .comparison-table thead th:last-child{border-right:none}
.column-article .comparison-table tbody tr:nth-child(even){background:var(--cream)}

/* === NG/OK table (記事5) === */
.column-article .ng-table{
  width:100%;border-collapse:separate;border-spacing:0;
  margin:32px 0;font-size:14px;background:#fff;
  border-radius:var(--r-md);overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.column-article .ng-table th,.column-article .ng-table td{
  padding:14px 16px;border-bottom:1px solid var(--line);
  text-align:left;vertical-align:top;font-family:var(--font-hand);
}
.column-article .ng-table tr:last-child td{border-bottom:none}
.column-article .ng-table thead th{
  background:var(--terracotta);color:#fff;
  font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.03em;
}
.column-article .ng-table .ng-word{font-family:var(--font-display);font-weight:700;color:#C0654B;font-size:15px}
.column-article .ng-table .ok-word{font-family:var(--font-display);font-weight:700;color:var(--leaf);font-size:15px}

/* === CTA Box base === */
.column-article .cta-box{
  position:relative;z-index:2;
  margin:64px 0;padding:40px 32px;
  background:#fff;
  border:2px solid var(--terracotta);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow);
  text-align:center;
}
.column-article .cta-box::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,var(--peach-soft) 0%,rgba(255,255,255,.5) 100%);
  border-radius:calc(var(--r-lg) - 2px);
  z-index:-1;
}
.column-article .cta-box h3{
  font-family:var(--font-display);font-size:24px;
  margin:0 0 20px;padding:0;border:0;color:var(--warm-ink);font-weight:900;
}
.column-article .cta-box p{
  font-family:var(--font-hand);font-size:15px;line-height:2;
  margin:0 0 28px;color:var(--warm-ink);text-align:left;
  max-width:540px;margin-left:auto;margin-right:auto;
}
.column-article .cta-box p strong{color:var(--terracotta-deep);font-weight:700}
.column-article .cta-eyebrow,
.column-article .cta-box .cta-eyebrow{
  display:inline-block;
  font-family:var(--font-kid);font-size:12px;letter-spacing:.1em;
  color:var(--terracotta-deep);font-weight:700;
  margin-bottom:16px;text-align:center;
}
.column-article .cta-box .btn-group{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;border-bottom:0}
.column-article .cta-box .btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 26px;border-radius:999px;
  font-family:var(--font-hand);font-size:14px;font-weight:700;
  transition:transform .15s,box-shadow .2s,background .2s;border:none;
}
.column-article .cta-box .btn:hover{transform:translateY(-2px)}
.column-article .cta-box .btn-primary{background:var(--terracotta);color:#fff;box-shadow:var(--shadow)}
.column-article .cta-box .btn-primary:hover{background:var(--terracotta-deep)}
.column-article .cta-box .btn-glass{background:#fff;color:var(--warm-ink);border:2px solid var(--warm-ink)}
.column-article .cta-box .btn-glass:hover{background:var(--warm-ink);color:#fff}

/* === CTA Voice (記事1, 8) === */
.column-article .cta-box .cta-voice{
  font-family:var(--font-hand);font-size:14px;line-height:2;
  color:var(--warm-ink-soft);font-style:italic;
  margin:0 auto 24px;max-width:520px;text-align:left;
  padding:20px 24px;background:rgba(255,255,255,.85);
  border-radius:var(--r-md);border-left:3px solid var(--terracotta);
}
.column-article .cta-box .cta-voice-label{
  display:block;font-family:var(--font-kid);font-size:11px;letter-spacing:.1em;
  color:var(--terracotta-deep);font-style:normal;margin-bottom:10px;font-weight:700;
}

/* === CTA Questions (記事2) === */
.column-article .cta-questions{
  max-width:540px;margin:0 auto 28px;text-align:left;
  background:rgba(255,255,255,.85);
  padding:24px 28px;border-radius:var(--r-md);border:1.5px dashed var(--terracotta);
}
.column-article .cta-questions-label{
  display:block;font-family:var(--font-kid);font-size:12px;letter-spacing:.1em;
  color:var(--terracotta-deep);font-weight:700;margin-bottom:16px;
}
.column-article .cta-questions ul{list-style:none;margin:0;padding:0;font-family:var(--font-hand);font-size:14px;line-height:2}
.column-article .cta-questions li{padding-left:28px;position:relative;margin-bottom:8px;font-family:var(--font-hand)}
.column-article .cta-questions li::before{
  content:'□';position:absolute;left:0;color:var(--terracotta);font-weight:700;font-family:var(--font-kid);
}

/* === CTA Numbered (記事3) === */
.column-article .cta-numbered{
  list-style:none;padding:0;margin:0 0 28px;counter-reset:cta-counter;text-align:left;
}
.column-article .cta-numbered li{
  counter-increment:cta-counter;
  padding:16px 18px 16px 64px;position:relative;
  background:rgba(255,255,255,.85);border:1px solid var(--line);border-radius:var(--r-md);
  margin-bottom:12px;font-size:14px;line-height:1.75;font-family:var(--font-hand);
}
.column-article .cta-numbered li::before{
  content:counter(cta-counter);position:absolute;left:16px;top:16px;
  width:32px;height:32px;background:var(--terracotta);color:#fff;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:900;font-size:14px;
}
.column-article .cta-numbered .num-label{
  font-family:var(--font-display);font-weight:700;color:var(--warm-ink);
  margin-bottom:4px;display:block;
}
.column-article .cta-numbered .num-detail{color:var(--warm-ink-soft);font-size:13px}

/* === CTA Transformation (記事4, 9) === */
.column-article .cta-transformation{
  display:flex;align-items:stretch;justify-content:center;gap:14px;
  max-width:540px;margin:0 auto 28px;flex-wrap:wrap;
}
.column-article .cta-before,.column-article .cta-after{
  flex:1;min-width:140px;padding:20px 18px;border-radius:var(--r-md);
  text-align:left;display:flex;flex-direction:column;justify-content:center;
}
.column-article .cta-before{background:var(--cream-deep);color:var(--warm-ink-soft);border:1px dashed var(--warm-ink-mute)}
.column-article .cta-after{background:var(--terracotta);color:#fff}
.column-article .cta-state-label{
  display:block;font-family:var(--font-kid);font-size:11px;letter-spacing:.18em;
  font-weight:700;margin-bottom:12px;opacity:.9;
}
.column-article .cta-state-text{font-family:var(--font-hand);font-size:13px;font-weight:600;line-height:1.7}
.column-article .cta-arrow{
  display:flex;align-items:center;font-family:var(--font-kid);font-size:24px;
  font-weight:700;color:var(--terracotta);padding:0 4px;
}

/* === CTA Pillars (記事5) === */
.column-article .cta-box .cta-pillars{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:540px;margin:0 auto 28px;
}
.column-article .cta-pillar{
  background:rgba(255,255,255,.85);padding:20px 14px;border-radius:var(--r-md);
  border:1px solid var(--line);text-align:center;
}
.column-article .cta-pillar-num{
  display:block;font-family:var(--font-display);font-size:30px;font-weight:900;
  color:var(--terracotta);line-height:1;margin-bottom:8px;
}
.column-article .cta-pillar-label{
  display:block;font-family:var(--font-kid);font-size:11px;letter-spacing:.1em;
  color:var(--terracotta-deep);font-weight:700;margin-bottom:6px;
}
.column-article .cta-pillar-text{font-family:var(--font-hand);font-size:12px;line-height:1.65;color:var(--warm-ink-soft)}

/* === If-Then (記事6) === */
.column-article .if-then{
  margin:24px 0;padding:22px 26px;background:#fff;
  border:2px solid var(--terracotta);border-radius:var(--r-md);
  font-family:var(--font-hand);font-size:14px;line-height:1.9;
}
.column-article .if-then-label{
  display:inline-block;font-family:var(--font-kid);font-size:10px;letter-spacing:.15em;
  color:#fff;background:var(--terracotta);padding:4px 12px;border-radius:4px;
  font-weight:700;margin-bottom:12px;
}
.column-article .if-then-if{color:var(--warm-ink-soft);font-size:13px;margin-bottom:6px}
.column-article .if-then-then{color:var(--warm-ink);font-weight:700;font-family:var(--font-display)}

/* === CTA Saboru (記事6) === */
.column-article .cta-saboru{max-width:540px;margin:0 auto 28px;text-align:left}
.column-article .cta-saboru-item{
  padding:14px 18px;background:rgba(255,255,255,.85);
  border:1px solid var(--line);border-radius:var(--r-md);
  margin-bottom:10px;font-family:var(--font-hand);font-size:13px;line-height:1.7;
  display:flex;gap:14px;align-items:flex-start;
}
.column-article .cta-saboru-mark{
  font-family:var(--font-display);font-weight:900;color:var(--terracotta);
  font-size:20px;line-height:1;flex-shrink:0;
}
.column-article .cta-saboru-text{color:var(--warm-ink)}
.column-article .cta-saboru-text strong{color:var(--terracotta-deep)}

/* === Loop diagram + CTA Loop (記事7) === */
.column-article .loop-diagram{
  margin:24px 0;padding:24px;background:#fff;
  border:2px dashed var(--terracotta);border-radius:var(--r-md);text-align:center;
}
.column-article .loop-flow{
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;
}
.column-article .loop-step{
  padding:10px 16px;background:var(--terracotta);color:#fff;border-radius:8px;
  font-family:var(--font-display);font-size:13px;font-weight:700;line-height:1.4;
}
.column-article .loop-arrow{font-family:var(--font-kid);font-size:18px;color:var(--warm-ink-soft);font-weight:700}
.column-article .loop-caption{font-family:var(--font-hand);font-size:12px;color:var(--warm-ink-soft);font-style:italic;margin:8px 0 0}
.column-article .cta-loop{
  max-width:540px;margin:0 auto 28px;padding:22px 20px;
  background:rgba(255,255,255,.85);border:1px solid var(--line);border-radius:var(--r-md);
}
.column-article .cta-loop-row{
  display:flex;gap:14px;align-items:flex-start;padding:10px 0;
  font-family:var(--font-hand);font-size:13px;line-height:1.7;
}
.column-article .cta-loop-row:not(:last-child){border-bottom:1px dashed var(--line)}
.column-article .cta-loop-label{
  font-family:var(--font-kid);font-weight:700;color:var(--terracotta-deep);
  min-width:100px;font-size:13px;letter-spacing:.05em;
}
.column-article .cta-loop-text{color:var(--warm-ink);flex:1}

/* === Check list (記事9) === */
.column-article .check-list{margin:24px 0;padding:0;list-style:none}
.column-article .check-list li{
  position:relative;padding:18px 18px 18px 60px;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:12px;
  font-family:var(--font-hand);font-size:14px;line-height:1.75;
}
.column-article .check-list li::before{
  content:'';position:absolute;left:18px;top:20px;
  width:24px;height:24px;border:2px solid var(--terracotta);border-radius:6px;
}
.column-article .check-list strong{
  display:block;font-family:var(--font-display);font-size:16px;
  color:var(--warm-ink);margin-bottom:6px;font-weight:700;
}

/* === Observation grid (記事10) === */
.column-article .observation-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:24px 0;
}
.column-article .observation-card{
  padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-soft);
}
.column-article .observation-card-label{
  display:block;font-family:var(--font-kid);font-size:11px;letter-spacing:.1em;
  color:var(--terracotta-deep);font-weight:700;margin-bottom:10px;
}
.column-article .observation-card-q{
  font-family:var(--font-display);font-size:14px;font-weight:700;
  color:var(--warm-ink);line-height:1.6;margin-bottom:8px;
}
.column-article .observation-card-detail{font-family:var(--font-hand);font-size:13px;color:var(--warm-ink-soft);line-height:1.75}

/* === CTA First Step (記事10) === */
.column-article .cta-firststep{max-width:540px;margin:0 auto 28px;text-align:left}
.column-article .cta-step-item{
  padding:14px 18px 14px 50px;background:rgba(255,255,255,.85);
  border:1px solid var(--line);border-radius:var(--r-md);
  margin-bottom:10px;font-family:var(--font-hand);font-size:13px;line-height:1.7;
  position:relative;
}
.column-article .cta-step-item::before{
  content:'';position:absolute;left:18px;top:50%;transform:translateY(-50%);
  width:18px;height:18px;background:var(--terracotta);border-radius:50%;
}
.column-article .cta-step-item strong{color:var(--terracotta-deep);font-family:var(--font-display)}

/* === Related === */
.column-article .related{
  margin-top:72px;padding:28px;background:var(--peach-soft);border-radius:var(--r-lg);
}
.column-article .related h3{
  font-family:var(--font-kid);font-size:13px;color:var(--terracotta-deep);
  letter-spacing:.08em;text-transform:uppercase;margin:0 0 20px;padding:0;border:0;font-weight:700;
}
.column-article .related ul{list-style:none;padding:0;margin:0}
.column-article .related li{margin-bottom:12px;padding:0}
.column-article .related a{
  font-family:var(--font-hand);color:var(--warm-ink);
  border:none;display:inline-block;padding:8px 0;line-height:1.6;font-size:14px;
}
.column-article .related a:hover{color:var(--terracotta)}
.column-article .related .related-tag{
  display:inline-block;font-family:var(--font-kid);font-size:11px;color:var(--terracotta-deep);
  background:#fff;padding:2px 10px;border-radius:999px;letter-spacing:.05em;margin-right:10px;
}

@media(max-width:768px){
  .column-article{padding:40px 20px 60px}
  .column-article h1{font-size:25px}
  .column-article h2{font-size:20px}
  .column-article h3{font-size:16px}
  .column-article .data-callout-fact{font-size:17px}
  .column-article .cta-transformation{flex-direction:column}
  .column-article .cta-arrow{justify-content:center;transform:rotate(90deg);padding:8px 0}
  .column-article .cta-box .cta-pillars{grid-template-columns:1fr}
  .column-article .observation-grid{grid-template-columns:1fr}
}
