/* ============================================================
   いわてAI — corporate sections (2026-08-27 会社サイト型リデザイン)
   nabai.jp の構造（HERO→VISION→WHO→BUSINESS→NEWS→CLIENTS→SEMINAR→TILES→MISSION→CONTACT）を
   借り、文言・写真・配色は自前。藍(#1F4E79)×白の編集的ミニマリズムを維持する。
   above-the-fold（ヘッダー/ヒーロー/ページヒーロー）は critical/*.css 側に複製あり。
   ============================================================ */

/* ---- 共通プリミティブ ---- */
.cp-en{display:inline-block;font-family:var(--font-en);font-size:1.2rem;font-weight:700;letter-spacing:.28em;color:var(--accent);line-height:1}
.cp-en::before{content:'';display:inline-block;width:24px;height:2px;background:currentColor;vertical-align:middle;margin-right:12px;position:relative;top:-1px}
.cp-en--light{color:rgba(255,255,255,.75)}

.cp-btn{display:inline-flex;align-items:center;gap:12px;font-size:1.4rem;font-weight:700;letter-spacing:.06em;padding:15px 30px;border-radius:var(--radius-btn);text-decoration:none;line-height:1;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.cp-btn::after{content:'\2192';font-family:var(--font-en);font-size:1.4rem;transition:transform .2s ease}
.cp-btn:hover::after{transform:translateX(4px)}
.cp-btn--white{background:#fff;color:var(--accent-deep);border:1px solid #fff}
.cp-btn--white:hover{background:var(--accent-light);color:var(--accent-deep)}
.cp-btn--ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.7)}
.cp-btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#fff}
.cp-btn--navy{background:var(--accent);color:#fff;border:1px solid var(--accent)}
.cp-btn--navy:hover{background:var(--accent-dark);color:#fff;border-color:var(--accent-dark)}
.cp-btn--line{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.cp-btn--line:hover{background:var(--ink);color:#fff}

body.home .l-main,body.page-template-page-business .l-main,body.page-template-page-about .l-main{padding-bottom:0}

/* ---- HERO（トップ） ---- */
.cp-hero{position:relative;min-height:620px;display:flex;align-items:center;overflow:hidden;background:var(--accent-deep);color:#fff}
.cp-hero__media{position:absolute;inset:0}
.cp-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center}
.cp-hero__media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,23,32,.82) 0%,rgba(14,23,32,.55) 45%,rgba(14,23,32,.12) 100%)}
.cp-hero__in{position:relative;z-index:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:104px 24px 96px}
.cp-hero h1{font-family:var(--font-serif-ja);font-size:5.2rem;font-weight:700;line-height:1.35;letter-spacing:.06em;margin:24px 0 20px;color:#fff}
.cp-hero__lead{font-size:1.6rem;line-height:2;max-width:560px;color:rgba(255,255,255,.88);margin:0}
.cp-hero__btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}

/* ---- STATS（ヒーロー直下の白帯） ---- */
.cp-stats{background:#fff;border-bottom:var(--hairline)}
.cp-stats__in{max-width:var(--max-width);margin:0 auto;padding:26px 24px 22px;display:grid;grid-template-columns:repeat(3,auto) 1fr;gap:16px 48px;align-items:center}
.cp-stat{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.cp-stat__label{font-size:1.25rem;font-weight:600;color:var(--color-text-light);letter-spacing:.06em}
.cp-stat__num{font-family:var(--font-en);font-size:3.2rem;font-weight:800;color:var(--accent);letter-spacing:-.01em;line-height:1;font-variant-numeric:tabular-nums}
.cp-stat__unit{font-size:1.3rem;font-weight:700;color:var(--ink)}
.cp-stats__note{font-size:1.1rem;line-height:1.7;color:var(--color-text-muted);margin:0;justify-self:end;max-width:360px}

/* ---- VISION（藍帯） ---- */
.cp-vision{background:var(--accent-deep);color:#fff;padding:80px 24px;text-align:center;position:relative;overflow:hidden}
.cp-vision::before{content:'VISION';position:absolute;left:50%;top:-10px;transform:translateX(-50%);font-family:var(--font-en);font-size:15rem;font-weight:800;letter-spacing:.04em;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.08);pointer-events:none;user-select:none}
.cp-vision__in{position:relative;max-width:760px;margin:0 auto}
.cp-vision h2{font-family:var(--font-serif-ja);font-size:3.4rem;font-weight:700;letter-spacing:.1em;line-height:1.5;margin:18px 0 20px;color:#fff}
.cp-vision p{font-size:1.5rem;line-height:2.1;color:rgba(255,255,255,.82);margin:0}

/* ---- WHO WE ARE ---- */
.cp-who{padding:104px 24px}
.cp-who__in{max-width:var(--max-width);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.cp-who__media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-card);display:block}
.cp-who__body h2{font-family:var(--font-serif-ja);font-size:3rem;font-weight:700;letter-spacing:.08em;line-height:1.5;margin:16px 0 22px;color:var(--ink)}
.cp-who__body p{font-size:1.55rem;line-height:2.05;color:var(--color-text-2);margin:0 0 16px}
.cp-who__note{font-size:1.25rem;line-height:1.8;color:var(--color-text-muted)}
.cp-who__link{margin-top:28px}

/* ---- BUSINESS（4本柱カード） ---- */
.cp-business{background:var(--color-bg-alt);padding:96px 24px}
.cp-business__in{max-width:var(--max-width);margin:0 auto}
.cp-business__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cp-business__head p{font-size:1.45rem;line-height:1.9;color:var(--color-text-light);max-width:560px;margin:0 0 30px}
.cp-bgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:8px}
.cp-bcard{background:#fff;border:var(--hairline);border-radius:var(--radius-card);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.cp-bcard:hover{transform:translateY(-4px);box-shadow:0 3px 6px rgba(14,39,64,.05),0 16px 34px rgba(14,39,64,.09);border-color:var(--accent-soft)}
.cp-bcard__img{aspect-ratio:4/3;overflow:hidden;background:var(--accent-light)}
.cp-bcard__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.22,1,.36,1)}
.cp-bcard:hover .cp-bcard__img img{transform:scale(1.045)}
.cp-bcard__body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.cp-bcard__num{font-family:var(--font-en);font-size:1.1rem;font-weight:700;letter-spacing:.24em;color:var(--accent)}
.cp-bcard h3{font-size:1.75rem;font-weight:700;letter-spacing:.04em;line-height:1.5;margin:8px 0 10px;color:var(--ink)}
.cp-bcard p{font-size:1.35rem;line-height:1.85;color:var(--color-text-light);margin:0}
.cp-bcard__more{margin-top:auto;padding-top:18px;font-size:1.25rem;font-weight:700;letter-spacing:.06em;color:var(--accent)}
.cp-bcard__more::after{content:'\2192';margin-left:8px;display:inline-block;transition:transform .2s ease}
.cp-bcard:hover .cp-bcard__more::after{transform:translateX(4px)}
.cp-business__foot{text-align:center;margin-top:40px}

/* ---- ARTICLES（最新記事4本＋カテゴリ） ---- */
.cp-articles{padding:96px 24px}
.cp-articles__in{max-width:var(--max-width);margin:0 auto}
.cp-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.cp-cats{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:36px 0 0}
.cp-cat{display:inline-flex;align-items:center;gap:6px;border:var(--hairline-strong);border-radius:999px;padding:9px 18px;font-size:1.3rem;font-weight:600;color:var(--color-text);text-decoration:none;transition:border-color .2s ease,color .2s ease,background-color .2s ease}
.cp-cat span{font-family:var(--font-en);font-size:1.15rem;font-weight:700;color:var(--color-text-muted)}
.cp-cat:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}
.cp-articles__foot{text-align:center;margin-top:30px}

/* ---- CLIENTS（運営会社の支援実績ロゴ） ---- */
.cp-clients{border-top:var(--hairline);border-bottom:var(--hairline);padding:64px 24px 60px;text-align:center}
.cp-clients__in{max-width:var(--max-width);margin:0 auto}
.cp-clients h2{font-size:1.5rem;font-weight:700;letter-spacing:.08em;color:var(--ink);margin:14px 0 0}
.cp-clients__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px 32px;align-items:center;max-width:980px;margin:32px auto 0}
.cp-clients__grid div{display:flex;align-items:center;justify-content:center;height:64px}
.cp-clients__grid img{max-height:40px;max-width:150px;width:auto;height:auto;filter:grayscale(1);opacity:.65;transition:opacity .2s ease,filter .2s ease}
.cp-clients__grid img:hover{opacity:1;filter:none}
.cp-clients__note{font-size:1.15rem;line-height:1.7;color:var(--color-text-muted);margin:24px 0 0}

/* ---- TRAINING PROGRAMS（3カード） ---- */
.cp-programs{background:var(--color-bg-alt);padding:96px 24px}
.cp-programs__in{max-width:var(--max-width);margin:0 auto}
.cp-pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.cp-pcard{background:#fff;border:var(--hairline);border-top:3px solid var(--accent);border-radius:var(--radius-card);padding:30px 28px 28px;display:flex;flex-direction:column}
.cp-pcard__en{font-family:var(--font-en);font-size:1.05rem;font-weight:700;letter-spacing:.22em;color:var(--accent)}
.cp-pcard h3{font-family:var(--font-serif-ja);font-size:2rem;font-weight:700;letter-spacing:.06em;line-height:1.5;margin:10px 0 14px;color:var(--ink)}
.cp-pcard p{font-size:1.4rem;line-height:1.9;color:var(--color-text-light);margin:0}
.cp-pcard dl{margin:20px 0 0;padding:16px 0 0;border-top:var(--hairline);display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:1.3rem;line-height:1.7}
.cp-pcard dt{color:var(--color-text-muted);font-weight:600;white-space:nowrap}
.cp-pcard dd{margin:0;color:var(--color-text)}
.cp-programs__note{font-size:1.2rem;line-height:1.8;color:var(--color-text-muted);margin:26px 0 0;text-align:center}
.cp-programs__foot{text-align:center;margin-top:28px}

/* ---- TILES（Message / Company / Community） ---- */
.cp-tiles{display:grid;grid-template-columns:repeat(3,1fr)}
.cp-tile{position:relative;min-height:320px;display:flex;align-items:flex-end;color:#fff;text-decoration:none;overflow:hidden;background:var(--accent-deep)}
.cp-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transition:transform .7s cubic-bezier(.22,1,.36,1),opacity .3s ease}
.cp-tile::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,39,64,.05) 0%,rgba(14,39,64,.88) 100%)}
.cp-tile:hover img{transform:scale(1.05);opacity:.7}
.cp-tile__body{position:relative;padding:32px 34px}
.cp-tile__en{font-family:var(--font-en);font-size:1.1rem;font-weight:700;letter-spacing:.26em;color:rgba(255,255,255,.72)}
.cp-tile h3{font-family:var(--font-serif-ja);font-size:2.4rem;font-weight:700;letter-spacing:.1em;line-height:1.4;margin:8px 0 6px;color:#fff}
.cp-tile p{font-size:1.3rem;line-height:1.8;color:rgba(255,255,255,.82);margin:0}
.cp-tile__more{display:inline-block;margin-top:14px;font-family:var(--font-en);font-size:1.1rem;font-weight:700;letter-spacing:.2em;color:#fff}
.cp-tile__more::after{content:'\2192';margin-left:8px}

/* ---- MISSION ---- */
.cp-mission{padding:112px 24px;text-align:center}
.cp-mission__in{max-width:720px;margin:0 auto}
.cp-mission h2{font-family:var(--font-serif-ja);font-size:3.6rem;font-weight:700;letter-spacing:.1em;line-height:1.5;margin:18px 0 22px;color:var(--ink)}
.cp-mission p{font-size:1.5rem;line-height:2.1;color:var(--color-text-2);margin:0}

/* ---- CONTACT（藍帯） ---- */
.cp-contact{background:var(--accent);color:#fff;padding:88px 24px 80px;text-align:center}
.cp-contact__in{max-width:760px;margin:0 auto}
.cp-contact h2{font-family:var(--font-serif-ja);font-size:3.2rem;font-weight:700;letter-spacing:.08em;line-height:1.5;margin:18px 0 18px;color:#fff}
.cp-contact p{font-size:1.5rem;line-height:2;color:rgba(255,255,255,.88);margin:0}
.cp-contact__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:32px}
.cp-contact__note{font-size:1.2rem;color:rgba(255,255,255,.65);margin-top:26px}

/* ---- PAGE HERO / INTRO（下層） ---- */
.cp-pagehero{position:relative;overflow:hidden;background:var(--accent-deep);color:#fff;padding:84px 24px 72px}
.cp-pagehero::before{content:attr(data-en);position:absolute;right:-12px;bottom:-34px;font-family:var(--font-en);font-size:16rem;font-weight:800;letter-spacing:-.02em;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.12);pointer-events:none;user-select:none;white-space:nowrap}
.cp-pagehero__in{position:relative;max-width:var(--max-width);margin:0 auto}
.cp-crumb{font-size:1.2rem;color:rgba(255,255,255,.6);margin:0 0 22px;letter-spacing:.04em}
.cp-crumb a{color:inherit;text-decoration:none}
.cp-crumb a:hover{color:#fff}
.cp-crumb span{margin:0 8px}
.cp-pagehero h1{font-family:var(--font-serif-ja);font-size:4rem;font-weight:700;letter-spacing:.1em;line-height:1.3;margin:14px 0 14px;color:#fff}
.cp-pagehero p{font-size:1.5rem;line-height:2;color:rgba(255,255,255,.82);max-width:640px;margin:0}
.cp-intro{padding:80px 24px 24px}
.cp-intro__in{max-width:840px;margin:0 auto}
.cp-intro__lead{font-family:var(--font-serif-ja);font-size:2.4rem;font-weight:700;letter-spacing:.06em;line-height:1.6;margin:0 0 20px;color:var(--ink)}
.cp-intro p{font-size:1.55rem;line-height:2.05;color:var(--color-text-2);margin:0}

/* ---- PILLARS（事業内容） ---- */
.cp-pillars{margin-top:56px}
.cp-pillar{padding:88px 24px;border-top:var(--hairline)}
.cp-pillar:nth-of-type(even){background:var(--color-bg-alt)}
.cp-pillar__in{max-width:var(--max-width);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.cp-pillar--rev .cp-pillar__media{order:2}
.cp-pillar__media{position:sticky;top:96px}
.cp-pillar__media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-card);display:block}
.cp-pillar__num{font-family:var(--font-en);font-size:1.2rem;font-weight:700;letter-spacing:.3em;color:var(--accent)}
.cp-pillar h2{font-family:var(--font-serif-ja);font-size:3rem;font-weight:700;letter-spacing:.08em;line-height:1.4;margin:10px 0 4px;color:var(--ink)}
.cp-pillar__en{display:block;font-family:var(--font-en);font-size:1.1rem;font-weight:700;letter-spacing:.22em;color:var(--color-text-muted)}
.cp-pillar__lead{font-size:1.75rem;font-weight:700;line-height:1.8;letter-spacing:.02em;margin:22px 0 12px;color:var(--ink)}
.cp-pillar__body > p{font-size:1.5rem;line-height:2;color:var(--color-text-2);margin:0}
.cp-subs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}
.cp-sub{background:#fff;border:var(--hairline);border-left:3px solid var(--accent);border-radius:var(--radius-card);padding:16px 18px}
.cp-sub h3{font-size:1.45rem;font-weight:700;line-height:1.5;margin:0 0 6px;color:var(--ink)}
.cp-sub h3 a{color:inherit;text-decoration:none}
.cp-sub h3 a:hover{color:var(--accent)}
.cp-sub p{font-size:1.3rem;line-height:1.8;color:var(--color-text-light);margin:0}
.cp-pillar__note{font-size:1.2rem;line-height:1.8;color:var(--color-text-muted);margin:18px 0 0}
.cp-pillar__link{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}

/* ---- FLOW（ご相談の流れ） ---- */
.cp-flow{padding:96px 24px;border-top:var(--hairline)}
.cp-flow__in{max-width:var(--max-width);margin:0 auto}
.cp-flow__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:8px}
.cp-step{border-top:2px solid var(--accent);padding-top:18px;position:relative}
.cp-step__num{font-family:var(--font-en);font-size:2.6rem;font-weight:800;color:var(--accent);line-height:1}
.cp-step h3{font-size:1.65rem;font-weight:700;letter-spacing:.04em;margin:10px 0 8px;color:var(--ink)}
.cp-step p{font-size:1.35rem;line-height:1.85;color:var(--color-text-light);margin:0}

/* ---- SUBSIDY（補助金・助成金） ---- */
.cp-subsidy{background:var(--color-bg-alt);padding:80px 24px}
.cp-subsidy__in{max-width:840px;margin:0 auto}
.cp-subsidy p{font-size:1.5rem;line-height:2.05;color:var(--color-text-2);margin:0 0 22px}

/* ---- ABOUT: intro / strengths / mvv / message / company / policy ---- */
.cp-about{padding:96px 24px}
.cp-about__in{max-width:var(--max-width);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.cp-about__media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-card);display:block}
.cp-about__body h2{font-family:var(--font-serif-ja);font-size:3rem;font-weight:700;letter-spacing:.08em;line-height:1.5;margin:16px 0 22px;color:var(--ink)}
.cp-about__body p{font-size:1.55rem;line-height:2.05;color:var(--color-text-2);margin:0 0 16px}

.cp-strengths{background:var(--color-bg-alt);padding:96px 24px;text-align:center}
.cp-strengths__in{max-width:var(--max-width);margin:0 auto}
.cp-strengths h2{font-family:var(--font-serif-ja);font-size:2.8rem;font-weight:700;letter-spacing:.1em;margin:16px 0 0;color:var(--ink)}
.cp-strengths__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:980px;margin:48px auto 0}
.cp-str{display:flex;flex-direction:column;align-items:center}
.cp-str__circle{width:190px;height:190px;border-radius:50%;border:2px solid var(--accent);background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;font-family:var(--font-serif-ja);font-size:1.9rem;font-weight:700;letter-spacing:.06em;line-height:1.5;color:var(--accent-deep);text-align:center}
.cp-str__circle .cp-str__en{font-family:var(--font-en);font-size:1rem;font-weight:700;letter-spacing:.22em;color:var(--accent);margin-bottom:10px}
.cp-str p{font-size:1.35rem;line-height:1.9;color:var(--color-text-light);margin:20px 0 0;max-width:290px}
.cp-strengths__note{font-size:1.15rem;color:var(--color-text-muted);margin:36px 0 0}

.cp-mvv{padding:96px 24px}
.cp-mvv__in{max-width:960px;margin:0 auto}
.cp-mvv__row{display:grid;grid-template-columns:200px 1fr;gap:32px;padding:36px 0;border-top:var(--hairline);align-items:baseline}
.cp-mvv__row:last-child{border-bottom:var(--hairline)}
.cp-mvv__key{font-family:var(--font-en);font-size:1.3rem;font-weight:800;letter-spacing:.3em;color:var(--accent)}
.cp-mvv__row h3{font-family:var(--font-serif-ja);font-size:2.6rem;font-weight:700;letter-spacing:.08em;line-height:1.5;margin:0 0 12px;color:var(--ink)}
.cp-mvv__row p{font-size:1.5rem;line-height:2;color:var(--color-text-2);margin:0}

.cp-message{background:var(--color-bg-alt);padding:96px 24px}
.cp-message__in{max-width:var(--max-width);margin:0 auto;display:grid;grid-template-columns:300px 1fr;gap:64px;align-items:start}
.cp-message__photo img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius-card);display:block}
.cp-message__role{font-size:1.2rem;color:var(--color-text-muted);margin:16px 0 4px;letter-spacing:.06em}
.cp-message__nm{font-family:var(--font-serif-ja);font-size:2.2rem;font-weight:700;letter-spacing:.12em;color:var(--ink);line-height:1.3}
.cp-message__nm small{display:block;font-family:var(--font-en);font-size:1rem;font-weight:700;letter-spacing:.2em;color:var(--color-text-muted);margin-top:6px}
.cp-message__body h2{font-family:var(--font-serif-ja);font-size:2.8rem;font-weight:700;letter-spacing:.06em;line-height:1.55;margin:14px 0 24px;color:var(--ink)}
.cp-message__body p{font-size:1.55rem;line-height:2.1;color:var(--color-text-2);margin:0 0 18px}
.cp-message__tags{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.cp-message__tags li{font-size:1.2rem;font-weight:600;color:var(--color-text);background:#fff;border:var(--hairline-strong);border-radius:999px;padding:6px 13px}
.cp-message__tags a{color:inherit;text-decoration:none}

.cp-company{padding:96px 24px}
.cp-company__in{max-width:900px;margin:0 auto}
.cp-company table{width:100%;border-collapse:collapse;margin-top:34px;font-size:1.45rem}
.cp-company th,.cp-company td{padding:18px 12px;border-bottom:var(--hairline);text-align:left;vertical-align:top;line-height:1.85}
.cp-company tr:first-child th,.cp-company tr:first-child td{border-top:var(--hairline-strong)}
.cp-company th{width:180px;color:var(--color-text-light);font-weight:600;letter-spacing:.04em}
.cp-company td a{color:var(--accent)}
.cp-company__note{font-size:1.15rem;color:var(--color-text-muted);margin:16px 0 0}

.cp-policy{padding:0 24px 96px}
.cp-policy__in{max-width:900px;margin:0 auto}
.cp-policy .p-article-content{max-width:none}
.cp-policy .p-article-content h2{font-family:var(--font-serif-ja);font-size:2.2rem;letter-spacing:.06em;border-left:3px solid var(--accent);padding-left:14px;margin:44px 0 16px}
.cp-policy .p-article-content p{font-size:1.5rem;line-height:2.05;color:var(--color-text-2)}
.cp-policy .p-article-content table{width:100%;border-collapse:collapse;font-size:1.4rem}
.cp-policy .p-article-content th,.cp-policy .p-article-content td{padding:12px;border-bottom:var(--hairline);text-align:left}

/* ---- FOOTER（企業型4カラム） ---- */
.iw-footer{background:var(--color-bg-dark);color:rgba(255,255,255,.78);padding:72px 0 0;margin:0}
.iw-footer__top{max-width:var(--max-width);margin:0 auto;padding:0 24px 56px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:40px}
.iw-footer__logo{font-family:var(--font-serif-ja);font-size:2.4rem;font-weight:700;letter-spacing:.14em;color:#fff;text-decoration:none;line-height:1}
.iw-footer__en{font-family:var(--font-en);font-size:1rem;font-weight:700;letter-spacing:.24em;color:rgba(255,255,255,.5);margin-top:8px}
.iw-footer__desc{font-size:1.3rem;line-height:1.95;margin:20px 0 0;color:rgba(255,255,255,.7);max-width:380px}
.iw-footer__op{font-size:1.25rem;margin:14px 0 0;color:rgba(255,255,255,.7)}
.iw-footer__op a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.iw-footer h4{font-family:var(--font-en);font-size:1.1rem;font-weight:700;letter-spacing:.24em;color:#fff;margin:6px 0 18px}
.iw-footer ul{list-style:none;margin:0;padding:0}
.iw-footer li{margin:0 0 11px;padding:0}
.iw-footer__col a{font-size:1.35rem;color:rgba(255,255,255,.78);text-decoration:none;transition:color .2s ease}
.iw-footer__col a:hover{color:#fff}
.iw-footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding:22px 24px;font-size:1.2rem;color:rgba(255,255,255,.5);text-align:center;letter-spacing:.04em}
.iw-footer__bottom .l-footer__operator{display:inline;margin:0 0 0 16px;color:inherit}
.iw-footer__bottom a{color:inherit}

/* ---- Responsive ---- */
@media (max-width:1180px){
  .cp-bgrid,.cp-grid4{grid-template-columns:repeat(2,1fr)}
  .cp-stats__in{grid-template-columns:repeat(3,auto)}
  .cp-stats__note{grid-column:1/-1;justify-self:start;max-width:none}
}
@media (max-width:1023px){
  .cp-hero{min-height:560px}
  .cp-hero h1{font-size:4.2rem}
  .cp-who__in,.cp-about__in,.cp-pillar__in,.cp-message__in{grid-template-columns:1fr;gap:36px}
  .cp-pillar--rev .cp-pillar__media{order:0}
  .cp-pillar__media{position:static}
  .cp-message__in{grid-template-columns:1fr}
  .cp-message__photo{max-width:260px}
  .cp-pgrid{grid-template-columns:1fr}
  .cp-flow__grid{grid-template-columns:repeat(2,1fr)}
  .cp-clients__grid{grid-template-columns:repeat(4,1fr)}
  .cp-tiles{grid-template-columns:1fr}
  .cp-tile{min-height:220px}
  .cp-mvv__row{grid-template-columns:1fr;gap:10px}
  .cp-strengths__grid{grid-template-columns:1fr;gap:36px}
  .iw-footer__top{grid-template-columns:1fr 1fr}
  .cp-vision::before{font-size:10rem}
}
@media (max-width:640px){
  .cp-hero{min-height:520px}
  .cp-hero__in{padding:72px 20px 64px}
  .cp-hero h1{font-size:3.3rem;letter-spacing:.04em}
  .cp-hero__lead{font-size:1.45rem}
  .cp-stats__in{grid-template-columns:1fr;gap:10px;padding:20px 20px 18px}
  .cp-stat{white-space:normal}
  .cp-stat__num{font-size:2.6rem}
  .cp-vision{padding:64px 20px}
  .cp-vision h2{font-size:2.5rem}
  .cp-who,.cp-about,.cp-business,.cp-articles,.cp-programs,.cp-mission,.cp-flow,.cp-mvv,.cp-message,.cp-company,.cp-strengths{padding-left:20px;padding-right:20px;padding-top:64px;padding-bottom:64px}
  .cp-pillar{padding:56px 20px}
  .cp-bgrid,.cp-grid4,.cp-subs,.cp-flow__grid{grid-template-columns:1fr}
  .cp-clients{padding:48px 20px}
  .cp-clients__grid{grid-template-columns:repeat(2,1fr);gap:8px 20px}
  .cp-who__body h2,.cp-about__body h2,.cp-pillar h2{font-size:2.4rem}
  .cp-mission h2{font-size:2.6rem}
  .cp-contact{padding:64px 20px 56px}
  .cp-contact h2{font-size:2.4rem}
  .cp-btn{width:100%;justify-content:center}
  .cp-hero__btns .cp-btn{width:auto}
  .cp-pagehero{padding:56px 20px 48px}
  .cp-pagehero::before{font-size:9rem;bottom:-18px}
  .cp-pagehero h1{font-size:3rem}
  .cp-intro{padding:56px 20px 16px}
  .cp-intro__lead{font-size:2rem}
  .cp-mvv__row h3{font-size:2.2rem}
  .cp-message__body h2{font-size:2.3rem}
  .cp-company th{width:110px;padding:14px 8px}
  .cp-company td{padding:14px 8px}
  .iw-footer{padding-top:56px}
  .iw-footer__top{grid-template-columns:1fr;gap:32px;padding-bottom:40px}
}
@media (prefers-reduced-motion:reduce){
  .cp-bcard,.cp-bcard__img img,.cp-tile img,.cp-btn,.cp-btn::after{transition:none}
  .cp-bcard:hover{transform:none}
  .cp-bcard:hover .cp-bcard__img img,.cp-tile:hover img{transform:none}
}
