/* ============================================================
   chipper Corporate — Design System 2026 (site-wide)
   Editorial × Typography-led × Clean · restrained accent
   Foundation: ink black + paper white. Purple gradient = ACCENT only.
   Motion: typewriter-style reveal (chipper-motion.js)
   日本語見出し・本文はテーマフォント継承（上書きしない）
   ============================================================ */

:root {
  --cd-ink:        #0D0D14;   /* near-black — primary structure & text */
  --cd-ink-2:      #3B3B45;   /* secondary text */
  --cd-muted:      #8A8F9A;   /* tertiary / captions */
  --cd-line:       #E7E8EC;   /* hairline borders */
  --cd-line-2:     #F0F1F4;
  --cd-paper:      #ffffff;
  --cd-paper-2:    #F6F6F9;   /* off-white section */
  --cd-dark:       #0D0D14;
  --cd-on-dark:    rgba(255,255,255,0.94);
  --cd-on-dark-mut:rgba(255,255,255,0.52);
  --cd-line-dark:  rgba(255,255,255,0.14);
  --cd-grad:       linear-gradient(100deg,#4976E6 0%,#8E55E9 100%);
  --cd-grad-start: #4976E6;
  --cd-grad-end:   #8E55E9;
  --cd-accent:     #6E56E9;   /* solid fallback of the accent */
  --cd-text-shadow:0 1px 30px rgba(0,0,0,0.28);
  --cd-ease:       cubic-bezier(0.22,1,0.36,1);
  --cd-maxw:       1200px;
  --cd-pad:        56px;
}

/* accent gradient text helper (use SPARINGLY) */
.cd-grad-text { background: var(--cd-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* Kill the theme's black-bar (.anim-textBg) reveal — unified into chipper-motion.js */
.anim-textBg, .anim-textBg__wrap { visibility:visible !important; opacity:1 !important; animation:none !important; display:inline !important; }
.anim-textBg::before, .wf-active .anim-textBg.isInView::before, .wf-active .anim-textBg.late::before { display:none !important; content:none !important; animation:none !important; background:transparent !important; }
.animated { opacity:1 !important; }

/* English UI (Inter). 和文は継承 */
.cd-hero__eyebrow,.cd-label,.cd-btn,.cd-service-card__num,.cd-service-card__link,
.cd-news-card__date,.cd-compare__label,.cd-media-card__date { font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif !important; }

/* ============================================================
   MOTION — typed reveal states (JS-driven)
   ============================================================ */
.cd-reveal.is-armed { opacity:0; }
.cd-reveal.is-armed.cd-reveal--fade { transform: translateY(20px); }
.cd-reveal.is-typing,.cd-reveal.is-revealed { opacity:1; transform:none; }
.cd-reveal--fade { transition: opacity .8s var(--cd-ease), transform .8s var(--cd-ease); }
.cd-caret { display:inline-block; width:.5em; margin-left:.02em; color:var(--cd-accent);
  animation: cd-blink 1.05s step-end infinite; font-weight:300; }
.cd-caret::after { content:"|"; }
.cd-caret.is-done { animation:none; opacity:0; transition:opacity .4s ease; }
@keyframes cd-blink { 0%,100%{opacity:1;} 50%{opacity:0;} }
@keyframes cd-fade-up { from{opacity:0;transform:translateY(22px);} to{opacity:1;transform:none;} }
.cd-anim { opacity:0; animation: cd-fade-up .85s var(--cd-ease) forwards; }
@media (prefers-reduced-motion: reduce){
  .cd-reveal,.cd-reveal.is-armed{opacity:1!important;transform:none!important;}
  .cd-anim{opacity:1!important;animation:none!important;} .cd-caret{display:none;}
  .cd-hero__bg-orb{animation:none!important;}
}

/* ============================================================
   LAYOUT PRIMITIVES
   ============================================================ */
.cd-section { padding: 132px 0; background: var(--cd-paper); position: relative; }
.cd-section--gray { background: var(--cd-paper-2); }
.cd-section--dark { background: var(--cd-dark); }
.cd-container { max-width: var(--cd-maxw); margin:0 auto; padding: 0 var(--cd-pad); }

/* eyebrow / section label — small, uppercase, gradient accent + tick */
.cd-label {
  font-size:.7rem !important; font-weight:600 !important; letter-spacing:.22em !important;
  text-transform:uppercase !important; color: var(--cd-accent) !important;
  display:inline-flex !important; align-items:center; gap:.7em;
  margin:0 0 26px !important;
}
.cd-label::before { content:""; width:26px; height:1px; background:var(--cd-grad); display:inline-block; }
.cd-label--light { color:#fff !important; }

.cd-section__h2 {
  font-size: clamp(1.8rem, 3.1vw, 2.7rem) !important;
  font-weight:700 !important; line-height:1.4 !important;
  letter-spacing:-.015em !important; color: var(--cd-ink) !important;
  margin: 0 0 26px !important; max-width: 22em;
  text-wrap: balance; word-break: normal; overflow-wrap: anywhere;
}
.cd-section__h2--light { color: var(--cd-on-dark) !important; }
.cd-section__lead {
  font-size: clamp(.95rem,1.15vw,1.02rem) !important; font-weight:400 !important;
  line-height:1.95 !important; color: var(--cd-ink-2) !important;
  max-width: 640px; margin: 0 0 64px !important;
  text-wrap: pretty; word-break: normal;
}
.cd-section__lead--light { color: var(--cd-on-dark-mut) !important; }

/* ============================================================
   HERO — typography-led, minimal, whitespace
   ============================================================ */
.cd-hero { position:relative; min-height: 92vh; display:flex; align-items:center; overflow:hidden; background: var(--cd-paper); }

/* ---- Flowing aurora background (CSS-only, ~0kb JS, white × purple) ---- */
.cd-hero__aurora {
  position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none;
  /* keep it subtle behind the headline (left), richer on the right */
  -webkit-mask-image: linear-gradient(100deg, transparent 2%, rgba(0,0,0,.45) 38%, #000 70%);
          mask-image: linear-gradient(100deg, transparent 2%, rgba(0,0,0,.45) 38%, #000 70%);
}
.cd-aurora {
  position:absolute; border-radius:50%; filter: blur(70px); opacity:.5; will-change: transform;
  mix-blend-mode: multiply;
}
.cd-aurora--1 { width:52vw; height:52vw; top:-14vw; right:-6vw;
  background: radial-gradient(circle at 50% 50%, rgba(142,85,233,.55), rgba(142,85,233,0) 66%);
  animation: cd-aur1 24s ease-in-out infinite; }
.cd-aurora--2 { width:44vw; height:44vw; top:8vw; right:16vw;
  background: radial-gradient(circle at 50% 50%, rgba(73,118,230,.50), rgba(73,118,230,0) 66%);
  animation: cd-aur2 30s ease-in-out infinite; }
.cd-aurora--3 { width:36vw; height:36vw; bottom:-10vw; right:24vw;
  background: radial-gradient(circle at 50% 50%, rgba(120,90,240,.45), rgba(120,90,240,0) 66%);
  animation: cd-aur3 27s ease-in-out infinite; }
.cd-aurora--4 { width:30vw; height:30vw; top:22vw; right:2vw;
  background: radial-gradient(circle at 50% 50%, rgba(180,140,250,.40), rgba(180,140,250,0) 66%);
  animation: cd-aur4 21s ease-in-out infinite; }
@keyframes cd-aur1 { 0%,100%{transform:translate(0,0) scale(1);} 33%{transform:translate(-6vw,4vw) scale(1.12);} 66%{transform:translate(3vw,-3vw) scale(.94);} }
@keyframes cd-aur2 { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-8vw,-5vw) scale(1.16);} }
@keyframes cd-aur3 { 0%,100%{transform:translate(0,0) scale(1);} 40%{transform:translate(5vw,-4vw) scale(1.1);} 75%{transform:translate(-4vw,2vw) scale(.9);} }
@keyframes cd-aur4 { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(4vw,5vw) scale(1.2);} }
@media (prefers-reduced-motion: reduce){ .cd-aurora{ animation:none !important; } }

.cd-hero__inner { position:relative; z-index:10; width:100%; max-width: var(--cd-maxw); margin:0 auto; padding: 150px var(--cd-pad) 120px; }
.cd-hero__content { max-width: 960px; }
.cd-hero__eyebrow {
  font-size:.72rem !important; font-weight:600 !important; letter-spacing:.26em !important;
  text-transform:uppercase !important; color: var(--cd-accent) !important;
  display:inline-flex !important; align-items:center; gap:.8em; margin:0 0 30px !important;
}
.cd-hero__eyebrow::before { content:""; width:34px;height:1px; background:var(--cd-grad); display:inline-block; }
.cd-hero__h1 {
  font-size: clamp(2.5rem, 5.2vw, 4.9rem) !important;
  font-weight:700 !important; line-height:1.18 !important;
  letter-spacing:-.035em !important; color: var(--cd-ink) !important;
  margin:0 0 34px !important; word-break:normal; overflow-wrap:anywhere; text-wrap:balance;
}
.cd-hero__typewriter {
  font-size: clamp(1rem, 1.6vw, 1.35rem) !important; font-weight:500 !important;
  color: var(--cd-ink-2) !important; line-height:1.6 !important; min-height:1.8em !important;
  margin:0 0 48px !important;
}
#cd-typewriter-text { color: var(--cd-accent) !important; font-weight:700 !important; }
.cd-hero__cta { display:flex; flex-wrap:wrap; gap:16px; align-items:center; }

/* ============================================================
   BUTTONS — flat, editorial (no gloss)
   ============================================================ */
.cd-btn {
  display:inline-flex; align-items:center; gap:.55em;
  font-size:.85rem !important; font-weight:600 !important; letter-spacing:.02em !important;
  padding:16px 30px !important; border-radius:4px !important; text-decoration:none !important;
  transition: background .2s var(--cd-ease), color .2s, border-color .2s, transform .2s var(--cd-ease); line-height:1 !important; border:1px solid transparent !important;
}
.cd-btn--primary { background: var(--cd-ink) !important; color:#fff !important; }
.cd-btn--primary:hover { background: var(--cd-accent) !important; color:#fff !important; }
.cd-btn--ghost, .cd-btn--outline { background:transparent !important; color: var(--cd-ink) !important; border-color: var(--cd-ink) !important; }
.cd-btn--ghost:hover, .cd-btn--outline:hover { background: var(--cd-ink) !important; color:#fff !important; }
.cd-btn--white { background:#fff !important; color: var(--cd-ink) !important; }
.cd-btn--white:hover { background: rgba(255,255,255,.86) !important; color: var(--cd-ink) !important; }
/* arrow ligature */
.cd-btn::after { content:""; }

/* ============================================================
   ATTRIBUTION / COMPARE — hairline, flat
   ============================================================ */
.cd-compare { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--cd-line); margin-top:8px; }
.cd-compare__card { padding:40px 34px; border-bottom:1px solid var(--cd-line); border-right:1px solid var(--cd-line); transition: background .25s; }
.cd-compare__card:first-child { border-left:1px solid var(--cd-line); }
.cd-compare__card--highlight { background: var(--cd-ink); border-color: var(--cd-ink); }
.cd-compare__label { font-size:.72rem !important; font-weight:700 !important; letter-spacing:.14em !important; text-transform:uppercase !important; color: var(--cd-muted) !important; margin-bottom:22px !important; display:block; }
.cd-compare__label--highlight { color: #fff !important; }
.cd-compare__list { list-style:none !important; padding:0 !important; margin:0 !important; }
.cd-compare__list li { font-size:.9rem !important; color: var(--cd-ink-2) !important; padding:12px 0 !important; border-bottom:1px solid var(--cd-line-2) !important; line-height:1.5 !important; }
.cd-compare__list li:last-child { border:none !important; }
.cd-compare__card--highlight .cd-compare__list li { color: var(--cd-on-dark) !important; border-color: var(--cd-line-dark) !important; }

/* ============================================================
   INTELLIGENCE (dark) — flat, hairline, white text
   ============================================================ */
.cd-intel-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:1px solid var(--cd-line-dark); }
.cd-intel-card { padding:44px 40px; border-bottom:1px solid var(--cd-line-dark); border-right:1px solid var(--cd-line-dark); transition: background .25s; }
.cd-intel-card:nth-child(2n){ border-right:none; }
.cd-intel-card:hover { background: rgba(255,255,255,.03); }
.cd-intel-card__icon { width:40px;height:40px; margin-bottom:22px; display:flex; align-items:center; justify-content:center; color:var(--cd-grad-end); }
.cd-intel-card__icon svg { width:24px;height:24px; }
.cd-intel-card__title { font-size:1.1rem !important; font-weight:600 !important; color: var(--cd-on-dark) !important; margin-bottom:12px !important; }
.cd-intel-card__text { font-size:.88rem !important; color: var(--cd-on-dark-mut) !important; line-height:1.9 !important; }

/* ============================================================
   DATA FOUNDATION × CRM (dark) — formula + outcomes
   ============================================================ */
.cd-formula { display:flex; flex-direction:column; align-items:center; gap:14px; max-width:760px; margin:8px auto 48px; }
.cd-formula__box { width:100%; text-align:center; padding:28px 32px; border-radius:16px;
  background:rgba(255,255,255,.04); border:1px solid var(--cd-line-dark); }
.cd-formula__brand { display:block; font:700 1.1rem/1.3 'Inter',sans-serif; color:var(--cd-on-dark); letter-spacing:.01em; margin-bottom:8px; }
.cd-formula__note { display:block; font:500 .72rem/1.4 'Inter',sans-serif; color:var(--cd-on-dark-mut); letter-spacing:.04em; margin-top:5px; }
.cd-formula__desc { font-size:.86rem; color:var(--cd-on-dark-mut); line-height:1.7; margin:0; }
.cd-formula__tools { display:flex; flex-wrap:wrap; justify-content:center; gap:9px; margin-top:16px; }
.cd-formula__tools span { font:600 .76rem/1 'Inter',sans-serif; color:var(--cd-on-dark); padding:8px 15px; border-radius:999px; border:1px solid var(--cd-line-dark); background:rgba(255,255,255,.03); }
.cd-formula__op { font:700 1.5rem/1 'Inter',sans-serif; background:var(--cd-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.cd-outcomes { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.cd-outcome { position:relative; padding:28px 24px; border-radius:16px; color:var(--cd-on-dark);
  font-size:.96rem; font-weight:600; line-height:1.55; text-align:center;
  border:1px solid var(--cd-line-dark);
  background:linear-gradient(180deg, rgba(142,85,233,.10), rgba(73,118,230,.05)); }
.cd-outcome__no { display:block; font:700 .72rem/1 'Inter',sans-serif; letter-spacing:.12em; margin-bottom:12px;
  background:var(--cd-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* ============================================================
   SERVICES — editorial, big index numbers, hairline
   ============================================================ */
.cd-services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.cd-service-card { position:relative; background:var(--cd-paper); border:1px solid var(--cd-line); border-radius:12px; overflow:hidden; transition: transform .28s var(--cd-ease), box-shadow .28s; display:flex; flex-direction:column; }
.cd-service-card:hover { transform:translateY(-4px); box-shadow: 0 16px 40px rgba(13,13,20,.08); }
.cd-service-card__media { aspect-ratio:16/9; overflow:hidden; background:var(--cd-paper-2); border-bottom:1px solid var(--cd-line); }
.cd-service-card__media img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; transition:transform .6s var(--cd-ease); }
.cd-service-card:hover .cd-service-card__media img { transform:scale(1.04); }
.cd-service-card__media--ph { display:flex; align-items:center; justify-content:center; background:var(--cd-grad); border-bottom:none; }
.cd-service-card__media--ph span { color:#fff; font:700 .95rem/1 'Inter',sans-serif; letter-spacing:.08em; opacity:.9; }
.cd-service-card__body { padding:22px 24px 24px; flex:1; display:flex; flex-direction:column; }
.cd-service-card__body .cd-service-card__link { margin-top:auto; align-self:flex-start; }
.cd-service-card__num { font-size:1.15rem !important; font-weight:700 !important; letter-spacing:.02em !important; color: var(--cd-line) !important; -webkit-text-fill-color: initial; }
.cd-service-card:hover .cd-service-card__num { background:var(--cd-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.cd-service-card__title { font-size:1.05rem !important; font-weight:700 !important; color: var(--cd-ink) !important; margin-bottom:10px !important; letter-spacing:-.01em; }
.cd-service-card__text { font-size:.83rem !important; color: var(--cd-ink-2) !important; line-height:1.75 !important; margin-bottom:18px !important; }
.cd-service-card__link { font-size:.82rem !important; font-weight:600 !important; color: var(--cd-ink) !important; text-decoration:none !important; border-bottom:1px solid var(--cd-ink); padding-bottom:2px; transition: color .2s, border-color .2s; }
.cd-service-card__link:hover { color: var(--cd-accent) !important; border-color: var(--cd-accent); }

/* ============================================================
   NEWS / SEMINARS — editorial list w/ rules
   ============================================================ */
.cd-news-grid { display:flex; flex-direction:column; margin-bottom:40px; border-top:1px solid var(--cd-line); }
.cd-news-card { display:flex; align-items:baseline; gap:32px; padding:24px 4px !important; border-bottom:1px solid var(--cd-line) !important; text-decoration:none !important; color: var(--cd-ink) !important; transition: padding-left .28s var(--cd-ease), color .2s; }
.cd-news-card:hover { color: var(--cd-accent) !important; padding-left:12px !important; }
.cd-news-card__date { font-size:.78rem !important; color: var(--cd-muted) !important; white-space:nowrap; min-width:92px; letter-spacing:.04em; }
.cd-news-card__title { font-size:.96rem !important; line-height:1.6 !important; font-weight:500 !important; }
.cd-more-link { text-align:left; margin-top:44px; }

/* ============================================================
   MEDIA — clean editorial cards (hairline)
   ============================================================ */
.cd-media-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.cd-media-card { display:flex; flex-direction:column; text-decoration:none !important; background:transparent; }
.cd-media-card__thumb { aspect-ratio:16/10; overflow:hidden; background:var(--cd-paper-2); border:1px solid var(--cd-line); }
.cd-media-card__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition: transform .6s var(--cd-ease); }
.cd-media-card:hover .cd-media-card__thumb img { transform: scale(1.04); }
.cd-media-card__body { padding:18px 2px 0; }
.cd-media-card__date { font:600 .74rem/1 'Inter',sans-serif; color:var(--cd-muted); letter-spacing:.06em; }
.cd-media-card__title { font-size:.98rem !important; font-weight:600 !important; color:var(--cd-ink) !important; line-height:1.65 !important; margin:12px 0 0 !important; transition: color .2s; }
.cd-media-card:hover .cd-media-card__title { color: var(--cd-accent) !important; }

/* ============================================================
   INDEX LIST (news / seminars / media) — editorial, hairline rows
   ============================================================ */
.cd-idx { border-top:1px solid var(--cd-line); margin-bottom:40px; }
.cd-idx__item { display:grid; grid-template-columns:auto 1fr 200px; align-items:center; gap:36px;
  padding:26px 4px; border-bottom:1px solid var(--cd-line); text-decoration:none !important; color:var(--cd-ink) !important;
  transition: padding-left .3s var(--cd-ease); }
.cd-idx__item:hover { padding-left:12px; }
.cd-idx__no { font:700 .8rem/1 'Inter',sans-serif; color:var(--cd-line); flex:none; align-self:start; padding-top:6px; }
.cd-idx__item:hover .cd-idx__no { background:var(--cd-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.cd-idx__body { min-width:0; }
.cd-idx__date { display:block; font:600 .74rem/1 'Inter',sans-serif; letter-spacing:.05em; color:var(--cd-muted); margin-bottom:10px; }
.cd-idx__title { font-size:1.12rem !important; font-weight:700 !important; line-height:1.5 !important; color:var(--cd-ink) !important; letter-spacing:-.01em; margin:0 !important; transition:color .2s; }
.cd-idx__item:hover .cd-idx__title { color:var(--cd-accent) !important; }
.cd-idx__thumb { width:200px; aspect-ratio:16/10; overflow:hidden; border:1px solid var(--cd-line); border-radius:8px; background:var(--cd-paper-2); justify-self:end; }
.cd-idx__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--cd-ease); }
.cd-idx__item:hover .cd-idx__thumb img { transform:scale(1.05); }
@media (max-width:768px){
  .cd-idx__item { grid-template-columns:1fr 120px; gap:18px; }
  .cd-idx__no { display:none; }
  .cd-idx__thumb { width:120px; }
}

/* ============================================================
   KNOWLEDGE — left heading + right card carousel
   ============================================================ */
.cd-knowledge__inner { display:grid; grid-template-columns:260px 1fr; gap:44px; align-items:start; }
.cd-knowledge__head { }
.cd-knowledge__title { font:700 clamp(2.2rem,3.4vw,3rem)/1 'Inter',sans-serif; letter-spacing:-.02em; color:var(--cd-ink); margin:0; }
.cd-knowledge__title::after { content:""; display:block; width:56px; height:3px; background:var(--cd-grad); margin:18px 0 14px; }
.cd-knowledge__sub { font-size:.82rem; letter-spacing:.1em; color:var(--cd-muted); margin:0 0 30px; }
.cd-knowledge__head .cd-btn { border-radius:0 !important; }
.cd-knowledge__title::after { border-radius:0; }
.cd-knowledge__track { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.cd-know-card { text-decoration:none !important; display:flex; flex-direction:column;
  background:var(--cd-paper); border:1px solid var(--cd-line); border-radius:0; overflow:hidden; transition:transform .28s var(--cd-ease), border-color .28s; }
.cd-know-card:hover { transform:translateY(-3px); border-color:var(--cd-ink); }
.cd-know-card__thumb { aspect-ratio:16/10; overflow:hidden; background:var(--cd-paper-2); border-bottom:1px solid var(--cd-line); border-radius:0; }
.cd-know-card__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--cd-ease); }
.cd-know-card:hover .cd-know-card__thumb img { transform:scale(1.05); }
.cd-know-card__body { padding:22px 24px 26px; }
.cd-know-card__date { display:inline-flex; align-items:center; gap:9px; font:600 .74rem/1 'Inter',sans-serif; letter-spacing:.08em; color:var(--cd-muted); margin-bottom:14px; }
.cd-know-card__date::before { content:""; width:18px; height:2px; background:var(--cd-grad); flex:none; }
.cd-know-card__title { font-size:1rem !important; font-weight:700 !important; line-height:1.62 !important; color:var(--cd-ink) !important; letter-spacing:-.01em; margin:0 !important; transition:color .2s; }
.cd-know-card:hover .cd-know-card__title { color:var(--cd-accent) !important; }
@media (max-width:1024px){
  .cd-knowledge__inner { grid-template-columns:1fr; gap:28px; }
  .cd-knowledge__track { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:768px){
  .cd-knowledge__track { grid-template-columns:1fr; }
}

/* ============================================================
   CTA BANNER — ink, restrained (single gradient hairline accent)
   ============================================================ */
.cd-cta-banner { background: var(--cd-ink); padding:120px 0; text-align:center; position:relative; overflow:hidden; }
.cd-cta-banner::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--cd-grad); }
.cd-cta-banner .cd-container { display:flex; flex-direction:column; align-items:center; position:relative; z-index:1; }
.cd-cta-banner__h2 { font-size: clamp(1.8rem,3.4vw,2.7rem) !important; font-weight:700 !important; color:#fff !important; line-height:1.44 !important; margin-bottom:16px !important; letter-spacing:-.02em; }
.cd-cta-banner__sub { font-size:.95rem !important; color: rgba(255,255,255,.62) !important; margin-bottom:40px !important; }

/* ============================================================
   TRUST BAR
   ============================================================ */
.cd-trust-wrap { background: var(--cd-paper); border-top:1px solid var(--cd-line); border-bottom:1px solid var(--cd-line); }
.cd-trust { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); }
.cd-trust__item { display:flex; flex-direction:column; gap:8px; padding:38px 24px; text-align:center; border-right:1px solid var(--cd-line); }
.cd-trust__item:last-child { border-right:none; }
.cd-trust__num { font:700 clamp(1.4rem,2.4vw,2.1rem)/1 'Inter',sans-serif; letter-spacing:-.02em; color:var(--cd-ink); }
.cd-trust__num em { font-style:normal; font-size:.55em; color:var(--cd-accent); margin-left:1px; }
.cd-trust__label { font-size:.74rem; color:var(--cd-muted); letter-spacing:.04em; }

/* ============================================================
   CLIENT LOGOS — auto-scroll marquee (credibility)
   ============================================================ */
.cd-logos { padding:46px 0 50px; background:var(--cd-paper); border-bottom:1px solid var(--cd-line); overflow:hidden; }
.cd-logos__label { text-align:center; font:600 .72rem/1 'Inter',sans-serif; letter-spacing:.18em; text-transform:uppercase; color:var(--cd-muted); margin:0 0 30px; }
.cd-logos__viewport { position:relative; width:100%; overflow:hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cd-logos__track { display:flex; align-items:center; gap:40px; width:max-content; animation: cd-marquee 60s linear infinite; }
.cd-logos:hover .cd-logos__track { animation-play-state:paused; }
/* fixed slot so every logo occupies the same visual footprint */
.cd-logos__track img { width:132px; height:40px; object-fit:contain; object-position:center; flex:none;
  filter:grayscale(1) opacity(.55); transition:filter .3s; }
.cd-logos__track img:hover { filter:grayscale(0) opacity(1); }
@keyframes cd-marquee { from{transform:translateX(0);} to{transform:translateX(-50%);} }
@media (prefers-reduced-motion: reduce){ .cd-logos__track{ animation:none; flex-wrap:wrap; justify-content:center; } }

.cd-work-card__thumb--ph2 { background: linear-gradient(120deg,#2b2b38,#0D0D14); }

/* ============================================================
   DOMAINS (得意領域)
   ============================================================ */
.cd-domain-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--cd-line); border-left:1px solid var(--cd-line); }
.cd-domain { display:flex; align-items:baseline; gap:14px; padding:30px 28px; border-right:1px solid var(--cd-line); border-bottom:1px solid var(--cd-line); transition: background .25s; }
.cd-domain:hover { background: var(--cd-paper-2); }
.cd-domain__no { font:700 .8rem/1 'Inter',sans-serif; color:var(--cd-line); flex:none; }
.cd-domain:hover .cd-domain__no { background:var(--cd-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.cd-domain__name { font-size:1.02rem; font-weight:700; color:var(--cd-ink); letter-spacing:-.01em; flex:1; }
.cd-domain__kpi { font-size:.74rem; font-weight:600; color:var(--cd-accent); white-space:nowrap; }

/* ============================================================
   SERVICE card head / tag / sub (extends services)
   ============================================================ */
.cd-service-card__head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.cd-service-card__tag { font:600 .64rem/1 'Inter',sans-serif; letter-spacing:.1em; text-transform:uppercase; color:var(--cd-accent); border:1px solid var(--cd-accent); border-radius:3px; padding:5px 9px; }
.cd-service-card__sub { display:block; font-size:.8rem; font-weight:500; color:var(--cd-muted); margin-top:4px; letter-spacing:0; }
.cd-service-card__text em { font-style:normal; color:var(--cd-accent); font-weight:600; }

/* ============================================================
   WORKS (実績)
   ============================================================ */
.cd-work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-bottom:12px; }
.cd-work-card { display:flex; flex-direction:column; text-decoration:none !important; }
.cd-work-card__thumb { aspect-ratio:16/10; overflow:hidden; background:var(--cd-paper-2); border:1px solid var(--cd-line); }
.cd-work-card__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition: transform .6s var(--cd-ease); }
.cd-work-card:hover .cd-work-card__thumb img { transform:scale(1.04); }
.cd-work-card__thumb--ph { display:flex; align-items:center; justify-content:center; background:var(--cd-grad); border:none; }
.cd-work-card__thumb--ph span { color:#fff; font:700 1.5rem/1 'Inter',sans-serif; letter-spacing:.02em; opacity:.92; }
.cd-work-card__body { padding:18px 2px 0; display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.cd-work-card__client { font-size:.92rem; font-weight:700; color:var(--cd-ink); }
.cd-work-card__tag { font:600 .64rem/1 'Inter',sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--cd-muted); border:1px solid var(--cd-line); border-radius:3px; padding:4px 8px; }
.cd-work-card__title { flex-basis:100%; font-size:.9rem !important; font-weight:500 !important; color:var(--cd-ink-2) !important; line-height:1.6 !important; margin:4px 0 0 !important; transition:color .2s; }
.cd-work-card:hover .cd-work-card__title { color:var(--cd-accent) !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .cd-intel-grid,.cd-compare { grid-template-columns:1fr; }
  .cd-services-grid { grid-template-columns:repeat(2,1fr); }
  .cd-domain-grid { grid-template-columns:repeat(2,1fr); }
  .cd-work-grid { grid-template-columns:repeat(2,1fr); }
  .cd-trust { grid-template-columns:repeat(2,1fr); }
  .cd-trust__item:nth-child(2){ border-right:none; } .cd-trust__item:nth-child(1),.cd-trust__item:nth-child(2){ border-bottom:1px solid var(--cd-line); }
  .cd-intel-card:nth-child(2n),.cd-service-card:nth-child(2n){ border-right:1px solid; }
  .cd-intel-card{border-right-color:var(--cd-line-dark);} .cd-service-card{border-right-color:var(--cd-line);}
  .cd-compare__card{border-right:1px solid var(--cd-line);}
  .cd-media-grid { grid-template-columns:repeat(2,1fr); }
  .cd-outcomes { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px){
  :root { --cd-pad: 24px; }
  .cd-outcomes { grid-template-columns:1fr; }
  .cd-section { padding:84px 0; }
  .cd-hero__inner { padding:120px 24px 88px; }
  .cd-hero__content { max-width:100%; }
  .cd-media-grid { grid-template-columns:1fr; gap:26px; }
  .cd-services-grid { grid-template-columns:1fr; }
  .cd-domain-grid { grid-template-columns:1fr; }
  .cd-work-grid { grid-template-columns:1fr; gap:26px; }
}
@media (max-width:480px){
  .cd-hero__h1 { font-size:2.5rem !important; }
  .cd-section__h2 { font-size:1.8rem !important; }
}

/* ============================================================
   GLOBAL RESKIN (site-wide, 一旦) — additive polish for existing
   page templates. Conservative: typography/links/titles only,
   no layout changes. Loaded via header.php on all non-LP pages.
   ============================================================ */
body { text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; }
::selection { background: rgba(110,86,233,.16); }

/* page titles (SERVICE / COMPANY / NEWS ...) — editorial polish */
.line-heading { letter-spacing:.01em !important; color:var(--cd-ink) !important; }
.line-heading--small { letter-spacing:0 !important; }

/* breadcrumb — quiet, refined */
.breadcrumb, .breadcrumb a, .breadcrumb span { font-size:.75rem !important; letter-spacing:.03em; color:var(--cd-muted) !important; }
.breadcrumb a:hover { color:var(--cd-accent) !important; }

/* content links accent (within article/wysiwyg) */
.wysiwyg a, .article-area a:not(.cd-btn) { color:var(--cd-accent); text-underline-offset:2px; }

/* content headings — align weight/tracking with new system (no size/layout change) */
.wysiwyg h2, .wysiwyg h3 { letter-spacing:-.01em; }

/* footer tagline — new type feel */
.footer-logo-text { letter-spacing:.01em; }
