/* cms.css — linkedin.css から自動で分割。CMSのページ（ブログ・資料・セミナー・お知らせ・導入事例・フォーム） */
/* ===== 導入事例一覧（/case） ===== */
/* ファーストビュー（.csh） */
.csh { padding-block: clamp(32px, 5vw, 72px) clamp(48px, 6vw, 88px); }
.csh__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.csh__lead { margin-top: 28px; font-size: 15px; color: var(--ink-2); }
.csh__lead b { font-family: var(--font-en); font-size: 22px; font-weight: 400; color: var(--brand-blue); margin-right: 2px; }
/* 写真のスライド: 写真がある事例を、写真の上に会社名・タイトルを重ねて回す。下の線が伸びきると次へ（cms.js） */
.csh__vis { position: relative; border-radius: 24px; background: var(--ink); color: #fff; aspect-ratio: 4 / 3; overflow: hidden; isolation: isolate; }
.csh__list { position: absolute; inset: 0; }
.csh__it { position: absolute; inset: 0; opacity: 0; transition: opacity .8s; }
.csh__it.is-on { opacity: 1; }
.csh__a { position: absolute; inset: 0; display: block; color: #fff; }
.csh__a img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 7s linear; }
.csh__it.is-on .csh__a img { transform: scale(1); }
.csh__a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10,12,16,.9) 0%, rgba(10,12,16,.6) 34%, rgba(10,12,16,0) 64%); }
.csh__badge { position: absolute; z-index: 1; left: clamp(18px, 2.4vw, 28px); top: clamp(18px, 2.4vw, 28px); display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 4px; max-width: 15em; padding: 10px 16px 12px; border-radius: 14px; background: #fff; color: var(--ink); font-size: 14px; font-weight: 500; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.csh__badge b { font-family: var(--font-en); font-size: 38px; font-weight: 300; line-height: 1; letter-spacing: -.02em; color: var(--brand-blue); }
.csh__badge small { flex-basis: 100%; margin-top: 4px; font-size: 11px; line-height: 1.5; color: var(--ink-2); }
.csh__cap { position: absolute; z-index: 1; left: clamp(20px, 2.8vw, 32px); right: clamp(20px, 2.8vw, 32px); bottom: clamp(38px, 4.4vw, 50px); display: grid; justify-items: start; gap: 6px; }
.csh__svc { font-size: 11px; padding: 2px 10px; border-radius: 99px; border: 1px solid rgba(255,255,255,.45); color: rgba(255,255,255,.92); }
.csh__co { margin-top: 4px; font-size: 13px; font-weight: 500; color: rgba(255,255,255,.85); }
.csh__t { font-size: clamp(16px, 1.55vw, 20px); font-weight: 700; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-wrap: pretty; }
.csh__a:hover .csh__t, .csh__a:focus-visible .csh__t { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.csh__dots { position: absolute; z-index: 2; left: clamp(20px, 2.8vw, 32px); right: clamp(20px, 2.8vw, 32px); bottom: clamp(16px, 2vw, 22px); display: flex; gap: 6px; }
.csh__dot { position: relative; flex: 1 1 0; max-width: 40px; height: 3px; border: 0; padding: 0; border-radius: 2px; background: rgba(255,255,255,.28); cursor: pointer; overflow: hidden; }
.csh__dot i { position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; }
.csh__dot.is-on i { animation: bs-prog 5s linear forwards; }
.csh__dot.is-done i { transform: scaleX(1); }
.csh__vis.is-paused .csh__dot.is-on i { animation-play-state: paused; }
.csh__vis.is-static .csh__dot.is-on i { animation: none; transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) { .csh__a img, .csh__it.is-on .csh__a img { transform: none; transition: none; } .csh__it { transition: none; } }

.csl { scroll-margin-top: var(--header-h, 72px); }

/* 絞り込み（.csf） */
.csl { padding-bottom: clamp(72px, 8vw, 120px); }
.csf { position: sticky; top: var(--header-h, 72px); z-index: 20; background: rgba(255,255,255,.94); backdrop-filter: blur(10px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-bottom: 36px; }
.csf__row { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 14px 0 0; }
.csf__row::-webkit-scrollbar { display: none; }
.csf__row--ind { padding: 10px 0 14px; align-items: center; }
.csf__b { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font: inherit; font-size: 14px; color: var(--ink); cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.csf__b small { font-family: var(--font-en); font-size: 11px; color: var(--ink-2); }
.csf__b:hover { border-color: var(--ink); }
.csf__b.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.csf__b.is-on small { color: var(--brand-sky); }
.csf__c { flex: none; padding: 6px 12px; border-radius: 8px; border: 0; background: none; font: inherit; font-size: 13px; color: var(--ink-2); cursor: pointer; transition: background .25s, color .25s; }
.csf__c:hover { color: var(--ink); }
.csf__c.is-on { background: #e8f1fa; color: var(--brand-blue); }
.csf__res { margin-left: auto; flex: none; padding-left: 16px; font-size: 13px; color: var(--ink-2); }
.csf__res b { font-family: var(--font-en); font-size: 20px; font-weight: 400; color: var(--ink); margin-right: 2px; }
.csc__tags .csc__svc--br { background: #8a7b67; }
.csg__none { padding: 48px 0; text-align: center; color: var(--ink-2); }
.csg__none a { color: var(--brand-blue); }
@media (max-width: 900px) {
  .csh__in { grid-template-columns: 1fr; }
  .csh__badge { font-size: 12px; padding: 8px 12px 10px; } .csh__badge b { font-size: 30px; }
  .csf__b { font-size: 13px; padding: 8px 14px; }
  .csf__res { position: sticky; right: 0; background: rgba(255,255,255,.94); }
}

/* ===== 事例詳細テンプレート（/case/*） ===== */
.cdh { padding-block: clamp(24px, 4vw, 56px) clamp(32px, 4vw, 56px); }
.cdh__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: center; }
.cdh__tags { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12px; }
.cdh__tags > * { padding: 4px 12px; border-radius: 99px; background: var(--paper); color: var(--ink-2); text-decoration: none; }
.cdh__tags .csc__svc { background: var(--ink); color: #fff; }
.cdh__co { margin-top: 22px; font-size: 15px; color: var(--ink-2); }
.cdh__t { margin-top: 10px; font-size: clamp(24px, 2.6vw, 36px); font-weight: 400; line-height: 1.6; letter-spacing: .02em; text-wrap: pretty; }
.cdh__who { margin-top: 20px; font-size: 14px; }
.cdh__img { border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; }
.cdh__img img { width: 100%; height: 100%; object-fit: cover; }
.cds { padding-bottom: clamp(40px, 5vw, 72px); }
.cds__box { display: grid; grid-template-columns: 1fr 1fr .9fr; border-radius: 20px; overflow: hidden; border: 1px solid var(--line); }
.cds__col { padding: clamp(22px, 2.6vw, 34px); background: #fff; }
.cds__col + .cds__col { border-left: 1px solid var(--line); }
.cds__lb { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 500; margin-bottom: 14px; }
.cds__lb span { font-family: var(--font-en); font-size: 11px; color: var(--brand-blue); }
.cds__col ul { display: grid; gap: 8px; }
.cds__col li { position: relative; padding-left: 16px; font-size: 14px; line-height: 1.7; }
.cds__col li::before { content: ""; position: absolute; left: 0; top: .75em; width: 6px; height: 6px; border-radius: 50%; background: #c3ccd5; }
.cds__col--res { background: var(--ink); color: #fff; }
.cds__col--res .cds__lb span { color: var(--brand-sky); }
.cds__num { display: flex; align-items: baseline; gap: 4px; font-size: 20px; }
.cds__num b { font-family: var(--font-en); font-weight: 200; font-size: clamp(64px, 7vw, 96px); line-height: 1; color: var(--brand-sky); }
.cds__nl { margin-top: 8px; font-size: 14px; color: rgba(255,255,255,.75); }
.cdb { padding-bottom: clamp(64px, 8vw, 112px); }
.cdb__in { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(32px, 5vw, 80px); align-items: start; }
.cd-body { max-width: 720px; font-size: 16px; line-height: 2; }
.cd-body > * + * { margin-top: 1.3em; }
.cd-body h2 { margin-top: 2.6em; padding-top: 1.2em; border-top: 1px solid var(--line); font-size: clamp(20px, 2vw, 24px); font-weight: 500; line-height: 1.6; }
.cd-q { font-weight: 500; color: var(--brand-blue); padding-left: 28px; position: relative; }
.cd-q::before { content: "Q"; position: absolute; left: 0; font-family: var(--font-en); }
.cd-a b { display: inline-block; margin-right: 10px; padding: 0 10px; border-radius: 99px; background: var(--paper); font-size: 12px; font-weight: 500; line-height: 2; vertical-align: 2px; }
.cd-quote { margin: 2em 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--brand-blue); font-size: clamp(20px, 2.2vw, 26px); font-weight: 400; line-height: 1.7; }
.cd-fig img { width: 100%; border-radius: 14px; }
.cd-fig figcaption { margin-top: 8px; font-size: 12px; color: var(--ink-2); }
.cdi { position: sticky; top: calc(var(--header-h, 80px) + 24px); }
.cdi__box { padding: 24px; border-radius: 18px; background: var(--paper); }
.cdi__co { font-size: 16px; font-weight: 500; margin-bottom: 14px; }
.cdi dl { display: grid; gap: 12px; font-size: 13px; }
.cdi dt { font-size: 11px; color: var(--ink-2); margin-bottom: 2px; }
.cdi dd a { color: var(--brand-blue); }
.cdi__btn { width: 100%; margin-top: 22px; justify-content: center; }
.cdi__dl { display: block; margin-top: 12px; text-align: center; font-size: 13px; color: var(--ink-2); }
@media (max-width: 900px) {
  .cdh__in, .cdb__in { grid-template-columns: 1fr; }
  .cdh__img { order: -1; }
  .cds__box { grid-template-columns: 1fr; }
  .cds__col + .cds__col { border-left: 0; border-top: 1px solid var(--line); }
  .cdi { position: static; }
}
.cdi dd { margin: 0; }
.cdh__img, .cd-fig { margin: 0; }

/* =====================================================================
   CMSページ（ブログ／お役立ち資料／セミナー・イベント／お知らせ）とフォームページ（.cm-*）
   ===================================================================== */
.cm-tplnote { margin: 0; padding: 8px var(--gutter-r) 8px var(--gutter-l); background: #fff6d6; color: #6b5300; font-size: 12px; text-align: center; }
.cm-hero { padding: clamp(32px, 4vw, 56px) 0 clamp(20px, 3vw, 32px); }
.cm-hero__t { margin-top: 10px; font-size: clamp(30px, 3.4vw, 46px); font-weight: 300; letter-spacing: .04em; }
.cm-hero__lead { margin-top: 14px; max-width: 40em; font-size: 15px; color: var(--ink-2); line-height: 1.9; }
.cm-sec { padding: clamp(32px, 4vw, 56px) 0 clamp(56px, 6vw, 96px); }
.cm-sec--paper { background: var(--paper); padding-top: clamp(48px, 5vw, 80px); }
.cm-sec__h { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 24px; }
.cm-h2 { font-size: clamp(20px, 1.9vw, 26px); font-weight: 400; }
.cm-txt { margin-top: 8px; font-size: 14px; color: var(--ink-2); }
.cm-narrow { max-width: 860px; }
.cm-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 12px; color: var(--ink-2); }
.cm-meta time { font-family: var(--font-en); letter-spacing: .04em; }
.cm-cat { display: inline-block; padding: 2px 10px; border-radius: 99px; background: #eaf2fb; color: var(--brand-blue); font-size: 11px; }
.cm-sample { padding: 2px 8px; border-radius: 4px; background: #fff1c2; color: #6b5300; font-size: 10px; }
.cm-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.cm-chip { padding: 8px 16px; border-radius: 99px; border: 1px solid var(--line); background: #fff; font: inherit; font-size: 13px; color: var(--ink-2); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.cm-chip:hover { border-color: var(--ink); color: var(--ink); }
.cm-chip.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.cm-empty { padding: 48px 0; text-align: center; color: var(--ink-2); }
.cm-pager { display: flex; justify-content: center; gap: 6px; margin-top: 48px; font-family: var(--font-en); font-size: 14px; }
.cm-pager > * { min-width: 40px; height: 40px; padding: 0 12px; display: grid; place-items: center; border-radius: 99px; border: 1px solid var(--line); }
.cm-pager .is-on { background: var(--ink); color: #fff; border-color: var(--ink); }
.cm-pager span:not(.is-on) { border: 0; }
.cm-pager__next { font-family: var(--font-ja); font-size: 13px; }
.cm-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }

/* サムネイル（アイキャッチがない時の代わり。CMSで画像が入ったら img に置き換え） */
.cm-th { position: relative; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; display: flex; align-items: flex-end; padding: 16px 18px; background: linear-gradient(135deg, #eef5fb, #dfeef9); }
.cm-th::after { content: ""; position: absolute; right: -40px; top: -40px; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, rgba(46,184,222,.35), transparent 70%); }
.cm-th span { position: relative; font-size: 12px; letter-spacing: .08em; color: var(--brand-blue); }
.cm-th--li { background: linear-gradient(135deg, #e8f1fb, #d4e6f7); } .cm-th--li span { color: #0a66c2; }
.cm-th--ds { background: linear-gradient(135deg, #1b1d20, #111214); } .cm-th--ds span { color: var(--brand-sky); }
.cm-th--br { background: linear-gradient(135deg, #f6f3ee, #ece5da); } .cm-th--br span { color: #8a7b67; }
.cm-th--ng { background: linear-gradient(135deg, #e7f7fb, #d2eef6); } .cm-th--ng span { color: #1a9bb0; }
.cm-th--big { aspect-ratio: 21 / 9; }
.cm-th img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ブログ：カード */
.cm-pc { display: grid; gap: 14px; align-content: start; color: var(--ink); text-decoration: none; }
.cm-pc .cm-th { transition: transform .4s cubic-bezier(.2,.7,.2,1); }
.cm-pc:hover .cm-th { transform: translateY(-3px); }
.cm-pc__b { display: grid; gap: 8px; }
.cm-pc__t { font-size: 15px; font-weight: 500; line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cm-pc:hover .cm-pc__t { color: var(--brand-blue); }
.cm-feat { margin-bottom: 48px; }
.cm-pc--big { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 32px; align-items: center; }
.cm-pc--big .cm-pc__t { font-size: clamp(20px, 2vw, 26px); font-weight: 400; -webkit-line-clamp: 4; }
.cm-pc__ex { font-size: 14px; color: var(--ink-2); line-height: 1.9; }
.cm-dlb { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }

/* ブログ：記事 */
.cm-art__h { display: grid; gap: 16px; padding-top: clamp(24px, 3vw, 40px); max-width: 1000px; }
.cm-art__t { font-size: clamp(24px, 2.6vw, 36px); font-weight: 400; line-height: 1.55; letter-spacing: .02em; }
.cm-art__t--news { margin: 14px 0 32px; }
.cm-by { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--ink-2); }
.cm-by__av { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: #fff; font-size: 13px; flex: none; }
.cm-by__av--l { width: 64px; height: 64px; font-size: 22px; }
.cm-art__h .cm-th { margin-top: 8px; }
.cm-art__in { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(32px, 5vw, 72px); align-items: start; padding-top: clamp(32px, 4vw, 56px); padding-bottom: 56px; }
.cm-body { font-size: 16px; line-height: 2; min-width: 0; }
.cm-body > * + * { margin-top: 1.4em; }
.cm-body h2 { margin-top: 2.6em; padding-bottom: 12px; border-bottom: 1px solid var(--ink); font-size: clamp(20px, 1.9vw, 24px); font-weight: 500; line-height: 1.6; scroll-margin-top: 110px; }
.cm-body h3 { margin-top: 2em; padding-left: 12px; border-left: 3px solid var(--brand-blue); font-size: 18px; font-weight: 500; scroll-margin-top: 110px; }
.cm-body ul, .cm-body ol:not(.cm-tt) { padding-left: 1.4em; } .cm-body ul { list-style: disc; } .cm-body ol { list-style: decimal; }
.cm-body li + li { margin-top: .4em; }
.cm-body a:not(.btn) { color: var(--brand-blue); text-decoration: underline; text-underline-offset: 3px; }
.cm-lead { font-size: 17px; font-weight: 500; }
.cm-sum { padding: 22px 26px; border-radius: 14px; background: var(--paper); }
.cm-sum__h { font-size: 13px; font-weight: 500; color: var(--brand-blue); margin-bottom: 6px; }
.cm-quote { padding: 8px 0 8px 22px; border-left: 3px solid var(--brand-sky); font-size: 19px; line-height: 1.8; }
.cm-table { overflow-x: auto; }
.cm-table table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14px; line-height: 1.7; }
.cm-table th, .cm-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.cm-table th { background: var(--paper); font-weight: 500; font-size: 13px; }
.cm-cta { padding: 26px 28px; border-radius: 16px; background: var(--ink); color: #fff; }
.cm-cta__lb { font-size: 12px; color: var(--brand-sky); }
.cm-cta__t { margin-top: 6px; font-size: 16px; line-height: 1.8; }
.cm-cta__a { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.cm-cta .btn--dark { background: #fff; color: var(--ink); }
.cm-cta .btn--line { border-color: rgba(255,255,255,.5); color: #fff; }
.cm-body .faq { margin-top: 1em; }
.cm-side { position: sticky; top: 104px; display: grid; gap: 16px; }
.cm-toc { padding: 20px 22px; border-radius: 14px; border: 1px solid var(--line); }
.cm-toc__h { font-size: 12px; letter-spacing: .1em; color: var(--ink-2); margin-bottom: 10px; }
.cm-toc ol { display: grid; gap: 2px; counter-reset: t; }
.cm-toc li { counter-increment: t; }
.cm-toc a { display: grid; grid-template-columns: 22px 1fr; padding: 6px 0; font-size: 13px; line-height: 1.6; color: var(--ink-2); }
.cm-toc a::before { content: counter(t, decimal-leading-zero); font-family: var(--font-en); font-size: 11px; color: #b5bdc5; padding-top: 2px; }
.cm-toc a:hover, .cm-toc a.is-on { color: var(--ink); }
.cm-toc a.is-on::before { color: var(--brand-blue); }
.cm-side__cta { padding: 20px 22px; border-radius: 14px; background: var(--paper); display: grid; gap: 12px; font-size: 13px; line-height: 1.7; }
.cm-art__f { display: grid; gap: 28px; padding-bottom: 72px; max-width: calc(100% - 372px); }
.cm-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 40px; font-size: 12px; color: var(--ink-2); }
.cm-share a { padding: 6px 14px; border-radius: 99px; border: 1px solid var(--line); color: var(--ink); }
.cm-author { display: flex; gap: 20px; padding: 24px; border-radius: 16px; background: var(--paper); }
.cm-author__n { font-size: 16px; font-weight: 500; display: grid; gap: 2px; } .cm-author__n small { font-size: 12px; font-weight: 400; color: var(--ink-2); }
.cm-author__t { margin-top: 8px; font-size: 13px; line-height: 1.8; color: var(--ink-2); }
.cm-back { margin-top: 40px; }

/* お役立ち資料：表紙（資料の画像が入るまでの代わり） */
.cm-grid--dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cm-cov { position: relative; aspect-ratio: 4 / 3; border-radius: 14px; padding: 22px 22px 18px; display: grid; grid-template-rows: auto 1fr auto; gap: 10px; overflow: hidden; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.cm-cov::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 8px; background: var(--brand-blue); }
.cm-cov--li::before { background: #0a66c2; } .cm-cov--lscw::before { background: var(--brand-sky); } .cm-cov--br::before { background: #8a7b67; } .cm-cov--kn::before { background: #b9c1c9; } .cm-cov--ds::before { background: var(--ink); }
.cm-cov__lb { font-size: 11px; color: var(--ink-2); letter-spacing: .08em; }
.cm-cov__t { font-size: 16px; font-weight: 500; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cm-cov__logo { font-family: var(--font-en); font-size: 11px; color: var(--brand-blue); }
.cm-cov--big { aspect-ratio: 16 / 10; padding: 32px 32px 26px 40px; margin: 28px 0; box-shadow: 0 20px 50px rgba(17,18,20,.10), inset 0 0 0 1px var(--line); }
.cm-cov--big .cm-cov__t { font-size: clamp(20px, 2vw, 28px); font-weight: 400; -webkit-line-clamp: 4; }
.cm-dc { display: grid; gap: 14px; align-content: start; color: var(--ink); text-decoration: none; }
.cm-dc .cm-cov { background: var(--paper); transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s; }
.cm-dc:hover .cm-cov { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(17,18,20,.08), inset 0 0 0 1px var(--line); }
.cm-dc__b { display: grid; gap: 6px; }
.cm-dc__t { font-size: 15px; font-weight: 500; line-height: 1.6; }
.cm-dc__ex { font-size: 13px; color: var(--ink-2); }
.cm-dc__go { margin-top: 4px; font-size: 12px; color: var(--brand-blue); }

/* フォームのページ（資料ダウンロード／お問い合わせ／料金） */
.cm-fp { padding: clamp(32px, 4vw, 56px) 0 clamp(64px, 7vw, 112px); }
.cm-fp__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: clamp(32px, 5vw, 80px); align-items: start; }
.cm-fp__t { margin-top: 14px; font-size: clamp(24px, 2.6vw, 36px); font-weight: 400; line-height: 1.5; }
.cm-fp__lead { margin-top: 14px; font-size: 15px; color: var(--ink-2); line-height: 1.9; }
.cm-learn { margin-top: 28px; padding: 22px 26px; border-radius: 14px; background: var(--paper); }
.cm-learn__h { font-size: 13px; font-weight: 500; margin-bottom: 10px; }
.cm-learn li { position: relative; padding-left: 22px; font-size: 14px; line-height: 1.8; }
.cm-learn li + li { margin-top: 6px; }
.cm-learn li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 10px; height: 6px; border: solid var(--brand-blue); border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.cm-flow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 24px; }
.cm-flow li { display: grid; gap: 4px; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--line); font-size: 13px; }
.cm-flow b { font-family: var(--font-en); font-weight: 300; font-size: 20px; color: var(--brand-blue); }
.cm-fp__r { position: sticky; top: 104px; }
.cm-fbox { padding: clamp(24px, 3vw, 36px); border-radius: 20px; background: #fff; box-shadow: 0 20px 60px rgba(17,18,20,.08), 0 0 0 1px var(--line); }
.cm-fbox__h { font-size: 16px; font-weight: 500; margin-bottom: 18px; }
.cm-fbox__note { margin-top: 16px; font-size: 11px; color: var(--ink-2); }
.cm-fbox__note a { color: var(--brand-blue); text-decoration: underline; }
.cm-hs { min-height: 360px; }
.cm-hs__wait { padding: 40px 0; text-align: center; font-size: 13px; color: var(--ink-2); }
.cm-hs--none { min-height: 0; padding: 28px; border-radius: 12px; background: #fff6d6; color: #6b5300; font-size: 13px; line-height: 1.8; }
/* HubSpotフォームの見た目を、サイトに合わせる */
/* ---------- HubSpotフォーム（資料ダウンロード・お問い合わせ共通） ----------
   方針：見出しは小さく、入力欄は大きく。見出しと同じ文字の「入力例」は消す（同じ言葉が2回並んでうるさいため）。
   色は黒とグレーだけ。必須の印は控えめに。押すところは大きく */
.cm-hs .hs-form { display: grid; gap: 16px; }
.cm-hs .hs-form fieldset { max-width: none !important; margin: 0; padding: 0; border: 0; }
.cm-hs .hs-form fieldset.form-columns-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.cm-hs .hs-form fieldset .hs-form-field { width: 100% !important; float: none !important; padding: 0 !important; }
.cm-hs .hs-form fieldset .input { margin-right: 0 !important; }
@media (max-width: 480px) { .cm-hs .hs-form fieldset.form-columns-2 { grid-template-columns: 1fr; gap: 16px; } }
.cm-hs .hs-form-field { margin: 0; }
.cm-hs .hs-form-field > label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 500; letter-spacing: .04em; color: var(--ink); }
.cm-hs .hs-form-required { margin-left: 4px; color: var(--ink-2); font-weight: 400; }
.cm-hs .hs-field-desc { margin: -2px 0 6px; font-size: 12px; color: var(--ink-2); }
.cm-hs .hs-input:not([type=checkbox]):not([type=radio]) { width: 100% !important; min-height: 48px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font: inherit; font-size: 16px; letter-spacing: .02em; color: var(--ink); transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none; }
.cm-hs .hs-input:not([type=checkbox]):not([type=radio]):hover { border-color: #c9cfd5; }
.cm-hs .hs-input::placeholder { color: transparent; }
.cm-hs .hs-input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(58, 138, 200, .16); }
.cm-hs .hs-input.invalid, .cm-hs .hs-input.error { border-color: #c8553d; }
.cm-hs textarea.hs-input { min-height: 104px; resize: vertical; }
.cm-hs select.hs-input { background-image: linear-gradient(45deg, transparent 50%, var(--ink-2) 50%), linear-gradient(135deg, var(--ink-2) 50%, transparent 50%); background-position: calc(100% - 20px) 21px, calc(100% - 15px) 21px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 40px; }
.cm-hs .hs-error-msgs { margin: 6px 0 0; padding: 0; list-style: none; font-size: 12px; color: #c8553d; }
.cm-hs .hs-error-msgs li::before, .cm-hs .inputs-list li::before { content: none !important; }
.cm-hs .inputs-list { margin: 0; padding: 0; list-style: none; }
.cm-hs .hs-form-booleancheckbox-display, .cm-hs .hs-form-checkbox-display { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.7; font-weight: 400; color: var(--ink); cursor: pointer; }
.cm-hs input[type=checkbox] { flex: none; width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--ink); }
.cm-hs .legal-consent-container, .cm-hs .hs-richtext { font-size: 12px; line-height: 1.8; color: var(--ink-2); }
.cm-hs .legal-consent-container p { margin: 0 0 6px; }
.cm-hs .hs-richtext a, .cm-hs .legal-consent-container a { color: var(--ink-2); text-decoration: underline; text-underline-offset: 3px; }
.cm-hs .hs-richtext img { display: none; }
.cm-hs .hs_recaptcha { margin: 0; }
.cm-hs .hs_submit { margin-top: 4px; }
.cm-hs .hs-button { width: 100%; min-height: 54px; border: 0; border-radius: 99px; background: var(--ink); color: #fff; font: inherit; font-size: 15px; letter-spacing: .1em; cursor: pointer; transition: background .3s; -webkit-appearance: none; appearance: none; }
.cm-hs .hs-button:hover, .cm-hs .hs-button:focus-visible { background: var(--brand-blue); }
.cm-hs .hs-form-field > label:empty, .cm-hs .hs-field-desc:empty { display: none; }
/* セミナー申込（見た目だけの仮フォーム） */
.cm-mock { display: grid; gap: 14px; }
.cm-mock label { display: grid; gap: 6px; font-size: 13px; font-weight: 500; }
.cm-mock input[type=text], .cm-mock input[type=email] { min-height: 46px; border: 1px solid #cfd6dd; border-radius: 10px; background: var(--paper); }
.cm-mock fieldset { display: grid; gap: 8px; border: 0; padding: 0; font-size: 13px; }
.cm-mock legend { font-weight: 500; margin-bottom: 4px; }
.cm-r { display: flex !important; align-items: center; gap: 8px; font-weight: 400 !important; }
.cm-mock .btn { width: 100%; opacity: .5; }

/* セミナー・イベント */
.cm-tabs { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 20px; border-radius: 99px; background: var(--paper); }
.cm-tabs button { display: inline-flex; gap: 6px; align-items: baseline; padding: 9px 20px; border: 0; border-radius: 99px; background: transparent; font: inherit; font-size: 14px; color: var(--ink-2); cursor: pointer; }
.cm-tabs button b { font-family: var(--font-en); font-weight: 400; font-size: 12px; }
.cm-tabs button.is-on { background: var(--ink); color: #fff; } .cm-tabs button.is-on b { color: var(--brand-sky); }
.cm-evs { display: grid; gap: 10px; }
.cm-ev { display: grid; grid-template-columns: 96px minmax(0, 1fr) 40px; gap: 24px; align-items: center; padding: 18px 22px; border-radius: 16px; background: #fff; border: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: border-color .3s, box-shadow .3s, transform .3s; }
.cm-ev:hover { border-color: var(--ink); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(17,18,20,.06); }
.cm-ev__d { display: grid; justify-items: center; padding: 10px 0; border-radius: 12px; background: var(--paper); font-family: var(--font-en); line-height: 1.2; }
.cm-ev__d span { font-size: 11px; color: var(--ink-2); } .cm-ev__d b { font-size: 24px; font-weight: 300; } .cm-ev__d small { font-family: var(--font-ja); font-size: 11px; color: var(--ink-2); }
.cm-ev.is-open .cm-ev__d { background: var(--ink); color: #fff; } .cm-ev.is-open .cm-ev__d span, .cm-ev.is-open .cm-ev__d small { color: rgba(255,255,255,.7); }
.cm-ev__b { display: grid; gap: 8px; }
.cm-ev__t { font-size: 16px; font-weight: 500; line-height: 1.6; }
.cm-ev__go { color: var(--ink-2); }
.cm-st { padding: 2px 10px; border-radius: 99px; font-size: 11px; }
.cm-st--open { background: var(--brand-sky); color: #fff; } .cm-st--end { background: #e6e9ec; color: var(--ink-2); }
/* セミナー・イベントの詳細: 最初の画面（.evh）。左に何の会か・日時・場所・参加費・登壇・申し込みボタン、右に告知の画像 */
.evh { padding: clamp(24px, 3vw, 40px) 0 clamp(40px, 5vw, 64px); background: var(--paper); }
.evh__in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.evh__in--solo { grid-template-columns: minmax(0, 1fr); }
.evh__in--solo .evh__txt { max-width: 820px; }
.evh__txt { min-width: 0; }
.evh__t { margin: 14px 0 22px; font-size: clamp(22px, 2.3vw, 32px); font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; text-wrap: pretty; }
.evh__left { padding: 2px 10px; border-radius: 99px; background: #fff3d6; color: #8a5a00; font-size: 11px; font-weight: 500; }
.evh__dl { display: grid; gap: 0; border-top: 1px solid var(--line); }
.evh__dl > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.evh__dl dt { padding-top: 3px; font-size: 12px; color: var(--ink-2); }
.evh__dl dd { margin: 0; font-size: 15px; font-weight: 500; line-height: 1.6; }
.evh__date dd { font-size: 17px; }
.evh__dl small { display: block; margin-top: 2px; font-size: 12px; font-weight: 400; color: var(--ink-2); }
.evh__fmt { margin-left: 8px; padding: 1px 8px; border-radius: 99px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); font-size: 11px; font-weight: 400; color: var(--ink-2); vertical-align: 2px; white-space: nowrap; }
.evh__map { display: inline-block; margin-top: 4px; font-size: 12px; font-weight: 400; color: var(--brand-blue); text-decoration: underline; text-underline-offset: 3px; }
.evh__sp { display: flex; align-items: center; gap: 12px; margin-top: 16px; color: var(--ink); text-decoration: none; }
.evh__avs { display: flex; flex: none; }
.evh__av { display: grid; place-items: center; width: 40px; height: 40px; margin-left: -10px; border-radius: 50%; background: var(--ink); color: #fff; font-size: 13px; box-shadow: 0 0 0 3px var(--paper); }
.evh__av:first-child { margin-left: 0; }
.evh__spt { min-width: 0; font-size: 13px; font-weight: 500; line-height: 1.5; }
.evh__spt small { display: block; font-size: 11px; font-weight: 400; color: var(--ink-2); }
.evh__sp:hover .evh__spt { color: var(--brand-blue); }
.evh__cta { display: grid; justify-items: start; gap: 10px; margin-top: 24px; }
.evh__go { min-width: 280px; min-height: 56px; font-size: 15px; }
.evh__note { font-size: 12px; color: var(--ink-2); }
.evh__closed { font-size: 14px; font-weight: 500; color: var(--ink-2); }
.evh__img { margin: 0; }
.evh__img img { display: block; width: 100%; height: auto; border-radius: 16px; background: #fff; box-shadow: 0 20px 50px rgba(17,18,20,.10); }
.evh--end .evh__img img { filter: saturate(.85); }
/* 申し込みフォームの上に、日時と参加費をもう一度出す（フォームだけ見ても何の申し込みか分かるように） */
.ev-sum { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: -6px 0 18px; font-size: 13px; color: var(--ink-2); }
.ev-sum b { padding: 2px 10px; border-radius: 99px; background: #eaf2fb; color: var(--brand-blue); font-size: 11px; font-weight: 500; }
/* スマホ: 画面の下の申し込みボタン（.evbar）。PC では出さない */
.evbar { display: none; }
@media (max-width: 1000px) {
  .evh__in { grid-template-columns: minmax(0, 1fr); }
  .evh__img { order: -1; }
  .evh__date dd { font-size: 16px; }
  .evh__go { width: 100%; min-width: 0; }
  .evh__cta { justify-items: stretch; }
  .evbar { position: fixed; z-index: 50; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); backdrop-filter: blur(10px); box-shadow: 0 -1px 0 var(--line), 0 -8px 24px rgba(17,18,20,.06); transform: translateY(110%); transition: transform .3s; }
  .evbar.is-on { transform: none; }
  main:has(.evbar) { padding-bottom: 72px; }
  .evbar__d { display: grid; font-size: 14px; line-height: 1.4; } .evbar__d small { font-size: 11px; color: var(--brand-blue); }
  .evbar__go { flex: none; min-height: 46px; padding: 0 22px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .evbar { transition: none; } }
.cm-tt { display: grid; border-top: 1px solid var(--line); }
.cm-tt li { display: grid; grid-template-columns: 80px 1fr; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.cm-tt time { font-family: var(--font-en); color: var(--brand-blue); }
.cm-sp { list-style: none !important; padding: 0 !important; display: grid; gap: 14px; }
.cm-sp li { display: flex; gap: 16px; padding: 18px; border-radius: 14px; background: var(--paper); }
.cm-sp__av { width: 52px; height: 52px; border-radius: 50%; flex: none; display: grid; place-items: center; background: var(--ink); color: #fff; font-family: var(--font-en); font-size: 13px; }
.cm-sp__co { font-size: 15px; font-weight: 500; line-height: 1.5; } .cm-sp__r { font-size: 12px; color: var(--brand-blue); } .cm-sp__t { margin-top: 6px; font-size: 13px; line-height: 1.8; color: var(--ink-2); }
.cm-fbox--side { box-shadow: 0 0 0 1px var(--line); }

/* お知らせ */
.cm-nws { border-top: 1px solid var(--ink); }
.cm-nw { display: grid; grid-template-columns: 100px 120px minmax(0, 1fr) 24px; gap: 16px; align-items: center; padding: 22px 4px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.cm-nw time { font-family: var(--font-en); font-size: 13px; color: var(--ink-2); }
.cm-nw .cm-cat { justify-self: start; }
.cm-nw__t { font-size: 15px; line-height: 1.7; }
.cm-nw:hover .cm-nw__t { color: var(--brand-blue); }
.cm-nw__go { color: var(--ink-2); }

@media (max-width: 1000px) {
  .cm-grid, .cm-grid--dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cm-art__in, .cm-fp__in { grid-template-columns: 1fr; }
  .cm-side, .cm-fp__r { position: static; }
  .cm-art__f { max-width: none; }
  .cm-toc { display: none; }
}
@media (max-width: 600px) {
  .cm-grid, .cm-grid--dl { grid-template-columns: 1fr; gap: 28px; }
  .cm-pc--big { grid-template-columns: 1fr; gap: 16px; }
  .cm-flow { grid-template-columns: 1fr; }
  .cm-ev { grid-template-columns: 72px minmax(0, 1fr); gap: 14px; padding: 14px; }
  .cm-ev__go { display: none; } .cm-ev__d b { font-size: 20px; }
  .cm-nw { grid-template-columns: auto 1fr; gap: 6px 12px; } .cm-nw__t { grid-column: 1 / -1; } .cm-nw__go { display: none; }
  .cm-author { flex-direction: column; }
  .cm-chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter-l) * -1); padding-inline: var(--gutter-l); scrollbar-width: none; }
  .cm-chip { flex: none; }
}
.cm-ev__b { min-width: 0; } .cm-ev__t { overflow-wrap: anywhere; } .cm-ev { min-width: 0; } .cm-evs { min-width: 0; grid-template-columns: minmax(0, 1fr); }

/* Sanity の本文（Portable Text）用：引用・画像・見出し4 */
.cm-body blockquote { margin: 0; padding: 8px 0 8px 22px; border-left: 3px solid var(--brand-sky); font-size: 19px; line-height: 1.8; }
.cm-body figure { margin: 8px 0; }
.cm-body figure img { border-radius: 12px; }
.cm-body figcaption { margin-top: 8px; font-size: 13px; color: var(--ink-2); }
.cm-body h4 { font-size: 16px; font-weight: 500; }

/* ===== 資料ダウンロードのお礼のページ（/download/<スラッグ>/thanks/） ===== */
/* PC: 左に「お礼・資料・相談の説明」、右に予約のカレンダー。スマホ: お礼・資料 → 相談の見出し → カレンダー → 相談の中身 */
.ty-top { padding: clamp(20px, 3vw, 40px) 0 clamp(48px, 6vw, 88px); }
.ty-top__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); grid-template-areas: "a cal" "b cal" "c cal"; grid-template-rows: auto auto 1fr; column-gap: clamp(32px, 5vw, 72px); align-items: start; }
.ty-a { grid-area: a; }
.ty-b { grid-area: b; margin-top: clamp(32px, 4vw, 44px); padding-top: clamp(28px, 3vw, 36px); border-top: 1px solid var(--line); }
.ty-c { grid-area: c; }
.ty-cal { grid-area: cal; position: sticky; top: 96px; padding: 20px 20px 16px; border-radius: 20px; background: #fff; box-shadow: 0 20px 60px rgba(17,18,20,.10), 0 0 0 1px var(--line); }
.ty-done { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--brand-blue); }
.ty-done__ic { width: 20px; height: 20px; border-radius: 50%; background: var(--brand-blue); position: relative; flex: none; }
.ty-done__ic::after { content: ""; position: absolute; left: 6px; top: 6px; width: 8px; height: 5px; border: solid #fff; border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.ty-a__t { margin-top: 12px; font-size: clamp(22px, 2.4vw, 30px); font-weight: 400; line-height: 1.5; }
.ty-a__x { margin-top: 8px; font-size: 14px; color: var(--ink-2); }
.ty-file { display: flex; align-items: center; gap: 16px; margin-top: 20px; padding: 16px 18px; border-radius: 14px; background: var(--paper); }
.ty-file__ic { flex: none; display: grid; place-items: center; width: 44px; height: 54px; border-radius: 6px; background: #fff; box-shadow: 0 0 0 1px var(--line); font-size: 11px; font-weight: 600; color: #d93025; }
.ty-file__t { flex: 1; font-size: 15px; font-weight: 500; line-height: 1.6; }
.ty-file__btn { flex: none; }
.ty-b__en { font-size: 12px; letter-spacing: .12em; color: var(--brand-blue); }
.ty-b__t { margin-top: 8px; font-size: clamp(20px, 2.1vw, 26px); font-weight: 500; line-height: 1.55; }
.ty-b__sub { margin-top: 10px; font-size: 14px; font-weight: 500; }
.ty-b__x { margin-top: 10px; font-size: 14px; line-height: 1.9; color: var(--ink-2); }
.ty-list { margin-top: 20px; }
.ty-list__h { font-size: 14px; font-weight: 500; margin-bottom: 10px; }
.ty-list li { position: relative; padding-left: 22px; font-size: 14px; line-height: 1.8; }
.ty-list li + li { margin-top: 6px; }
.ty-list li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 10px; height: 6px; border: solid var(--brand-blue); border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.ty-list--card { margin: 0; padding: 22px 26px; border-radius: 14px; background: #fff; }
.ty-person { display: flex; gap: 14px; align-items: center; margin-top: 28px; }
.ty-person img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.ty-person__lb { font-size: 11px; color: var(--ink-2); }
.ty-person__n { font-size: 15px; font-weight: 500; }
.ty-person__r { font-size: 12px; color: var(--ink-2); }
.ty-proof { display: grid; gap: 8px; margin-top: 20px; }
.ty-proof li { display: flex; gap: 10px; font-size: 13px; color: var(--ink-2); }
.ty-proof b { flex: none; min-width: 64px; font-weight: 600; color: var(--ink); }
.ty-assure { margin-top: 18px; font-size: 13px; color: var(--ink-2); }
.ty-cal__h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 4px 14px; }
.ty-cal__t { font-size: 15px; font-weight: 500; }
.ty-cal__tags { display: flex; gap: 6px; }
.ty-cal__tags li { padding: 3px 10px; border-radius: 999px; background: var(--paper); font-size: 12px; }
.ty-cal .meetings-iframe-container { min-height: 600px; }
.ty-cal .meetings-iframe-container iframe { display: block; }
.ty-cal__alt { margin-top: 8px; font-size: 12px; color: var(--ink-2); text-align: center; }
.ty-cal__alt a { color: var(--brand-blue); text-decoration: underline; }
.ty-more { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.ty-more__go { margin-top: 28px; text-align: center; }
.ty-notes { padding: 28px 0 56px; }
.ty-notes p { font-size: 11px; color: var(--ink-2); line-height: 1.8; }
@media (max-width: 960px) {
  .ty-top__in { grid-template-columns: 1fr; grid-template-areas: "a" "b" "cal" "c"; grid-template-rows: none; }
  .ty-cal { position: static; margin-top: 20px; padding: 12px 8px; }
  .ty-file { flex-wrap: wrap; }
  .ty-file__btn { width: 100%; }
}

/* ===== セミナー・イベントのカード（/seminar-event/ の一覧・イベントのページ） ===== */
.ev-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.ev-grid--later { margin-top: 32px; }
.ev-t { display: grid; gap: 14px; align-content: start; color: var(--ink); text-decoration: none; min-width: 0; }
.ev-t.is-hidden { display: none; }
.ev-t__img { position: relative; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: var(--ink); }
.ev-t--meetup .ev-t__img { background: #0a66c2; } .ev-t--student .ev-t__img { background: var(--brand-sky); }
.ev-t__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.ev-t:hover .ev-t__img img { transform: scale(1.03); }
.ev-t__d { position: absolute; left: 12px; top: 12px; display: grid; justify-items: center; min-width: 58px; padding: 6px 10px; border-radius: 10px; background: rgba(255,255,255,.95); font-family: var(--font-en); line-height: 1.2; color: var(--ink); }
.ev-t__d b { font-size: 18px; font-weight: 400; } .ev-t__d small { font-family: var(--font-ja); font-size: 10px; color: var(--ink-2); }
.ev-t__b { display: grid; gap: 8px; min-width: 0; }
.ev-t__t { font-size: 15px; font-weight: 500; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.ev-t__m { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: var(--ink-2); }
.ev-t--big { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); align-items: center; margin-top: 8px; padding: clamp(16px, 2vw, 24px); border-radius: 20px; background: #fff; box-shadow: 0 20px 60px rgba(17,18,20,.08), 0 0 0 1px var(--line); }
.ev-t--big .ev-t__t { font-size: clamp(18px, 1.9vw, 24px); font-weight: 400; -webkit-line-clamp: 4; }
.ev-t--big .ev-t__m { font-size: 13px; }
.ev-t--big .ev-t__d b { font-size: 24px; }
.ev-t__go { justify-self: start; margin-top: 10px; }
.ev-next .cm-h2 { margin-bottom: 24px; }
.ev-soon { padding: clamp(24px, 3vw, 36px); border-radius: 20px; background: var(--paper); }
.ev-soon__t { font-size: 17px; font-weight: 500; }
.ev-soon__x { margin-top: 8px; font-size: 14px; color: var(--ink-2); line-height: 1.8; }
.ev-count { margin-left: 10px; font-family: var(--font-en); font-size: 14px; font-weight: 400; color: var(--brand-blue); }
.ev-sp { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ev-sp .cm-sp__av { width: 80px; height: 80px; font-size: 18px; }
.ev-sp li { align-items: center; }
/* 紹介文がある登壇者は、写真を上にそろえ、紹介文の改行をそのまま出す */
.ev-sp li:has(.cm-sp__t) { align-items: flex-start; }
.ev-sp .cm-sp__t { white-space: pre-line; }
.ev-nextbox { display: grid; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.ev-nextbox__h { font-size: 13px; font-weight: 500; }
.ev-nextbox__x { font-size: 13px; line-height: 1.8; color: var(--ink-2); }
.ev-nextbox .ev-t__t { font-size: 14px; }
@media (max-width: 960px) {
  .ev-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ev-t--big { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .ev-grid { grid-template-columns: 1fr; gap: 28px; }
  .ev-sp { grid-template-columns: 1fr; }
}

/* ===== お役立ち資料: おすすめの2冊（/download/ の一番上） ===== */
.dl-feat { padding: 0 0 clamp(16px, 2vw, 24px); }
.dl-feat__h { margin-bottom: 18px; font-size: 14px; font-weight: 500; color: var(--ink-2); }
.dl-feat__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.dl-fc { display: grid; gap: 14px; align-content: start; padding: clamp(20px, 2.4vw, 32px); border-radius: 20px; background: #fff; box-shadow: 0 20px 60px rgba(17,18,20,.08), 0 0 0 1px var(--line); color: var(--ink); text-decoration: none; transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s; }
.dl-fc:hover { transform: translateY(-3px); box-shadow: 0 26px 70px rgba(17,18,20,.12), 0 0 0 1px var(--ink); }
.dl-fc__need { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 16px; font-weight: 500; }
.dl-fc__need span { padding: 3px 10px; border-radius: 999px; background: var(--brand-blue); color: #fff; font-size: 11px; font-weight: 500; }
.dl-fc .cm-cov { aspect-ratio: 16 / 9; background: var(--paper); }
.dl-fc__t { font-size: clamp(17px, 1.6vw, 20px); font-weight: 500; line-height: 1.6; }
.dl-fc__ex { font-size: 14px; color: var(--ink-2); }
.dl-fc__pt li { position: relative; padding-left: 22px; font-size: 13px; line-height: 1.8; }
.dl-fc__pt li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 10px; height: 6px; border: solid var(--brand-blue); border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.dl-fc__go { justify-self: start; margin-top: 6px; }
@media (max-width: 760px) {
  .dl-feat__grid { grid-template-columns: 1fr; }
  .dl-fc__go { justify-self: stretch; }
}
.csh__lead { line-height: 1.9; max-width: 34em; }
