/* セミナー一覧と詳細の専用レイアウト。色と共通部品は tokens.css に従う。 */
.seminar-page{min-height:100vh;background:var(--bg);color:var(--text)}
.seminar-page a{color:inherit;text-decoration:none}
.seminar-page a:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.seminar-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom:1px solid var(--line-strong);backdrop-filter:blur(12px)}
.seminar-header__inner{max-width:var(--max);min-height:64px;margin:0 auto;padding:10px 28px;display:flex;align-items:center;gap:28px}
.seminar-header nav{margin-left:auto;display:flex;align-items:center;gap:20px;overflow-x:auto;white-space:nowrap;font-size:var(--fs-sm);font-weight:700}
.seminar-header nav a{color:var(--text-2)}
.seminar-header nav a:hover,.seminar-header nav a[aria-current=page]{color:var(--brand)}
.seminar-header__login{padding:9px 13px;background:var(--ink);color:var(--text-inv)!important}
.seminar-hero{background:var(--ink);color:var(--text-inv);border-bottom:1px solid var(--line-inv)}
.seminar-hero__inner{max-width:var(--max);margin:0 auto;padding:clamp(70px,10vw,132px) 28px clamp(58px,8vw,96px)}
.seminar-kicker{display:flex;align-items:center;gap:10px;margin:0 0 34px;font:800 11px/1 var(--font-mono);letter-spacing:.16em;color:var(--brand-soft)}
.seminar-kicker__mark{width:28px;height:2px;background:var(--brand-soft)}
.seminar-kicker span:last-child{padding:5px 8px;border:1px solid var(--line-inv);color:var(--text-inv-muted);letter-spacing:.12em}
.seminar-hero__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:64px;align-items:end}
.seminar-hero h1{margin:0;font-size:clamp(56px,10vw,132px);line-height:.95;letter-spacing:-.08em;font-weight:900}
.seminar-hero__lead{margin:28px 0 0;font-size:clamp(20px,2.4vw,30px);line-height:1.5;font-weight:800;letter-spacing:-.03em}
.seminar-hero__summary{border-top:1px solid var(--line-inv);padding-top:18px;color:var(--text-inv-2);font-size:14px;line-height:1.9}
.seminar-hero__summary p{margin:0 0 24px}
.seminar-hero__count{display:flex;align-items:baseline;gap:12px;color:var(--text-inv-muted)}
.seminar-hero__count strong{font-size:64px;line-height:1;color:var(--brand-soft)}
.seminar-hero__count span{font-size:12px;font-weight:700}
.seminar-section{padding:clamp(58px,8vw,96px) 28px}
.seminar-section--upcoming{background:var(--surface-2)}
.seminar-section__inner{max-width:var(--max);margin:0 auto}
.seminar-section-head{display:flex;align-items:baseline;gap:16px;border-bottom:2px solid var(--text);padding-bottom:13px;margin:0 0 28px}
.seminar-section-head__no{font-size:13px;font-weight:800;color:var(--brand)}
.seminar-section-head h2{margin:0;font-size:clamp(22px,3vw,34px);line-height:1.35;letter-spacing:-.04em}
.seminar-section-head__label{margin-left:auto;color:var(--text-muted);font:800 11px/1 var(--font-mono);letter-spacing:.12em;white-space:nowrap}
.seminar-lede{max-width:780px;margin:0 0 28px;border-left:3px solid var(--brand);padding:3px 0 3px 15px;font-size:var(--fs-lg);font-weight:800;line-height:1.7}
.upcoming-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.upcoming-card{position:relative;overflow:hidden;display:flex;flex-direction:column;background:var(--ink);color:var(--text-inv);border:1px solid var(--line-inv);opacity:0;transform:translateY(12px);animation:seminar-rise 700ms var(--ease) var(--stagger) both}
.upcoming-card__banner{display:block;position:relative;z-index:1;aspect-ratio:16/9;overflow:hidden;line-height:0;border-bottom:1px solid var(--line-inv);background:var(--ink-2)}
.upcoming-card__banner img{width:100%;height:100%;object-fit:contain;display:block}
.upcoming-card__body{position:relative;display:flex;flex-direction:column;flex:1;padding:clamp(22px,3.2vw,34px)}
.upcoming-card__fee{position:relative;z-index:1;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line-inv);font-size:13px}
.upcoming-card__fee-amount{font-size:26px;font-weight:800;letter-spacing:-.04em}
.upcoming-card__fee-tax{font-size:11px;color:var(--text-inv-muted)}
.upcoming-card__fee-free{padding:4px 9px;background:var(--brand-fill);color:var(--text-inv);font-size:11.5px;font-weight:800}
.upcoming-card__fee--pending{align-items:center;min-height:55px}
.upcoming-card__fee--pending strong{padding:4px 9px;background:var(--brand-fill);color:var(--brand-ink);font-size:13px}
.upcoming-card__fee--pending span{flex:1;min-width:170px;color:var(--text-inv-muted);font-size:11.5px;line-height:1.65}
.upcoming-card::before{content:"";position:absolute;inset:0 0 auto;height:7px;z-index:2;background:linear-gradient(90deg,var(--brand-soft),var(--brand),transparent)}
.upcoming-card__body::after{content:"";position:absolute;width:260px;height:260px;right:-120px;top:40px;border:1px solid var(--line-inv-weak);transform:rotate(45deg);pointer-events:none}
.upcoming-card__top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px}
.upcoming-card__vol{font:800 13px/1 var(--font-mono);letter-spacing:.16em;color:var(--brand-soft)}
.upcoming-card__status{padding:5px 8px;border:1px solid var(--line-inv);color:var(--text-inv-muted);font-size:11px;font-weight:700}
.upcoming-card__date{position:relative;z-index:1;display:flex;align-items:baseline;gap:12px;margin:44px 0 6px}
.upcoming-card__date .vm-num{font-size:clamp(54px,7vw,92px);line-height:.9;letter-spacing:-.08em;font-weight:800}
.upcoming-card__date span:last-child{font:800 15px/1 var(--font-mono);letter-spacing:.16em;color:var(--brand-soft)}
.upcoming-card__date-full{position:relative;z-index:1;margin:0;color:var(--text-inv-2);font-size:13px}
.upcoming-card__guest{position:relative;z-index:1;margin:38px 0 24px;padding:14px 0;border-top:1px solid var(--line-inv);border-bottom:1px solid var(--line-inv)}
.upcoming-card__label{display:block;margin:0 0 6px;color:var(--text-inv-muted);font:800 10px/1 var(--font-mono);letter-spacing:.14em}
.upcoming-card__guest strong{display:block;font-size:22px;line-height:1.4}
.upcoming-card__guest p{margin:5px 0 0;color:var(--text-inv-2);font-size:12px;line-height:1.75}
.upcoming-card .seminar-action{margin-top:auto}
.upcoming-card h3{position:relative;z-index:1;margin:0;font-size:clamp(22px,3vw,33px);line-height:1.5;letter-spacing:-.04em}
.upcoming-card__facts{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:7px 12px;margin:24px 0 12px;color:var(--text-inv-2);font-size:12px}
.upcoming-card__facts span+span::before{content:"／";margin-right:12px;color:var(--brand-soft)}
.upcoming-card__book{position:relative;z-index:1;margin:0;color:var(--text-inv-muted);font-size:11px;line-height:1.75}
.seminar-action{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin-top:auto;padding:0 16px;border:1px solid var(--line-strong);font-size:13px;font-weight:800;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.seminar-action:hover{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.seminar-action--inverse{align-self:flex-start;margin-top:28px;border-color:var(--line-inv);color:var(--text-inv)}
.seminar-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}
.seminar-card{border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface)}
.seminar-card__link{display:flex;flex-direction:column;height:100%;transition:background var(--dur) var(--ease)}
.seminar-card__link:hover{background:var(--surface-2)}
.seminar-card__media{aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;background:var(--surface-2);border-bottom:1px solid var(--line-strong)}
.seminar-card__media img{display:block;width:100%;height:100%;object-fit:cover}
.seminar-card__placeholder{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:12px}
.seminar-card__placeholder .vm-num{font-size:40px;color:var(--brand)}
.seminar-card__body{display:flex;flex:1;flex-direction:column;padding:20px}
.seminar-card__top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:14px}
.seminar-card__type{color:var(--brand);font:800 10px/1.4 var(--font-mono);letter-spacing:.08em}
.seminar-card__id{color:var(--text-muted);font-size:12px}
.seminar-card h3{margin:0;font-size:17px;line-height:1.7;letter-spacing:-.02em}
.seminar-card__more{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:22px;color:var(--text-muted);font-size:12px;font-weight:800}
.seminar-card__link:hover .seminar-card__more{color:var(--brand)}
.seminar-footer{border-top:1px solid var(--line-strong);padding:34px 28px}
.seminar-footer__inner{max-width:var(--max);margin:0 auto;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.seminar-footer p{margin:0;color:var(--text-muted);font-size:12px}
.seminar-footer small{margin-left:auto;color:var(--text-muted);font-size:11px}
.seminar-detail-shell{max-width:920px;margin:0 auto;padding:38px 28px 84px}
.seminar-breadcrumb{display:flex;align-items:center;gap:10px;margin:0 0 54px;color:var(--text-muted);font-size:12px}
.seminar-breadcrumb a{color:var(--text-2);font-weight:700}
.seminar-detail-head{border-bottom:2px solid var(--text);padding-bottom:28px}
.seminar-detail-head h1{max-width:820px;margin:18px 0 0;font-size:clamp(34px,6vw,68px);line-height:1.25;letter-spacing:-.06em}
.seminar-detail-meta{margin:18px 0 0;color:var(--text-muted);font-size:12px}
.seminar-detail-hero{margin:28px 0 0;border:1px solid var(--line-strong);background:var(--surface-2)}
.seminar-detail-hero img{display:block;width:100%;height:auto;max-height:540px;object-fit:contain}
.seminar-detail-hero figcaption{padding:10px 14px;border-top:1px solid var(--line);color:var(--text-muted);font-size:11px}
.seminar-detail-hero--empty{display:grid;place-items:center;min-height:230px;color:var(--text-muted);font-size:12px}
.seminar-record{margin-top:64px}
.seminar-record__head{display:flex;align-items:baseline;gap:16px;border-bottom:2px solid var(--text);padding-bottom:12px;margin:0 0 28px}
.seminar-record__head h2{margin:0;font-size:24px;line-height:1.4}
.seminar-record__head span{color:var(--brand);font:800 11px/1 var(--font-mono);letter-spacing:.14em;white-space:nowrap}
.seminar-copy{color:var(--text-2);font-size:15px;line-height:2}
.seminar-copy p{margin:0;padding:9px 0;white-space:pre-wrap}
.seminar-copy h2,.seminar-copy h3{color:var(--text);line-height:1.55;letter-spacing:-.03em}
.seminar-copy h2{margin:30px 0 8px;border-left:3px solid var(--brand);padding-left:14px;font-size:22px}
.seminar-copy h3{margin:24px 0 5px;font-size:18px}
.seminar-copy p:has(+ h2),.seminar-copy p:has(+ h3){padding-bottom:2px}
.seminar-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}
.seminar-gallery figure{margin:0;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface)}
.seminar-gallery img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:var(--surface-2)}
.seminar-gallery figcaption{padding:12px;color:var(--text-muted);font-size:11px;line-height:1.6}
.seminar-back{display:inline-flex;align-items:center;gap:8px;margin-top:56px;color:var(--brand)!important;font-weight:800;font-size:13px}
/* アーカイブ視聴の申込フォーム。部品名は /course の vmForm に合わせ、見た目は tokens.css に従う（角丸なし・影なし・罫線で仕切る）。 */
.seminar-apply__lead{margin:0 0 24px;border-left:3px solid var(--brand);padding:3px 0 3px 15px;color:var(--text-2);font-size:var(--fs-md);line-height:1.9}
.vmForm{display:grid;gap:18px;max-width:640px;margin:0}
.vmForm__field{display:grid;gap:7px}
.vmForm__label{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:800;color:var(--text)}
.vmForm__req,.vmForm__opt{padding:3px 7px;font:800 11px/1 var(--font-mono);letter-spacing:.06em}
.vmForm__req{background:var(--brand-fill);color:var(--brand-ink)}
.vmForm__opt{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--line)}
.vmForm input[type=text],.vmForm input[type=email],.vmForm input[type=tel],.vmForm textarea{width:100%;padding:12px 13px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-family:inherit;font-size:15px;line-height:1.7}
.vmForm input:focus-visible,.vmForm textarea:focus-visible{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.vmForm textarea{resize:vertical}
.vmForm__hint{display:block;color:var(--text-muted);font-size:12px;font-weight:400;line-height:1.7}
.vmForm__consent{display:flex;align-items:flex-start;gap:11px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;font-size:14px;line-height:1.8;color:var(--text)}
.vmForm__consent input[type=checkbox]{flex:0 0 auto;width:19px;height:19px;margin:3px 0 0;accent-color:var(--brand)}
.vmForm__consent a{color:var(--brand)!important;font-weight:800;text-decoration:underline}
.vmForm__trap{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vmForm__submit{justify-self:start;min-height:52px;padding:0 30px;border:1px solid var(--brand-fill);background:var(--brand-fill);color:var(--brand-ink);font-family:inherit;font-size:15px;font-weight:800;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.vmForm__submit:hover{background:var(--brand-deep);border-color:var(--brand-deep)}
.vmForm__submit[disabled]{opacity:.55;cursor:progress}
.vmForm__note{margin:0;min-height:1.3em;font-size:13px;line-height:1.8;color:var(--text-2)}
.vmForm__note[data-state=error]{color:var(--negative);font-weight:800}
.vmForm__note[data-state=done]{color:var(--positive);font-weight:800}
/* 記録を探す（キーワード＋開催年）。33件を一望できるよう、終了したセミナーは行で並べる。 */
.seminar-find{padding:clamp(38px,5vw,58px) 28px 0}
.seminar-find__inner{max-width:var(--max);margin:0 auto}
.seminar-find__controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px 32px;align-items:start}
.seminar-find__label{display:block;margin:0 0 8px;color:var(--text-muted);font:800 11px/1 var(--font-mono);letter-spacing:.12em}
.seminar-find__search input{width:100%;padding:12px 13px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-family:inherit;font-size:15px;line-height:1.7}
.seminar-find__search input:focus-visible{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.seminar-chips{display:flex;flex-wrap:wrap;gap:8px}
.seminar-chip{padding:9px 14px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-2);font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.seminar-chip:hover{border-color:var(--brand);color:var(--brand)}
.seminar-chip[aria-pressed=true]{background:var(--brand-fill);border-color:var(--brand-fill);color:var(--brand-ink)}
.seminar-chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.seminar-find__count{margin:20px 0 0;padding-top:14px;border-top:1px solid var(--line);color:var(--text-muted);font-size:13px}
.seminar-find__count .vm-num{color:var(--brand);font-size:18px;font-weight:800}
.seminar-card__when{margin:12px 0 0;color:var(--text-muted);font-size:12px;font-weight:800;letter-spacing:.04em}
.seminar-empty{margin:24px 0 0;padding:18px 0;border-top:1px solid var(--line);color:var(--text-muted);font-size:14px}
.seminar-section--ended{background:var(--surface-2)}
.seminar-year{margin-top:34px}
.seminar-year:first-of-type{margin-top:0}
.seminar-year__head{display:flex;align-items:baseline;gap:14px;margin:0 0 2px;padding-bottom:9px;border-bottom:1px solid var(--line-strong);font-size:15px;letter-spacing:-.02em}
.seminar-year__label .vm-num{font-size:22px;font-weight:800;color:var(--brand)}
.seminar-year__count{margin-left:auto;color:var(--text-muted);font:800 11px/1 var(--font-mono);letter-spacing:.12em}
.seminar-rows{margin:0;padding:0;list-style:none}
.seminar-row{border-bottom:1px solid var(--line)}
.seminar-row__link{display:grid;grid-template-columns:76px minmax(0,1fr) 24px;align-items:baseline;gap:14px;padding:15px 10px;transition:background var(--dur) var(--ease)}
.seminar-row__link:hover{background:var(--surface)}
.seminar-row__date{color:var(--text-muted);font-size:14px;font-weight:800;letter-spacing:.02em}
.seminar-row__title{font-size:15px;line-height:1.75;font-weight:700}
.seminar-row__link:hover .seminar-row__title{color:var(--brand)}
.seminar-row__more{justify-self:end;color:var(--text-muted);font-size:13px;font-weight:800}
.seminar-row__link:hover .seminar-row__more{color:var(--brand)}
@keyframes seminar-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.seminar-find__controls{grid-template-columns:1fr;gap:20px}.seminar-header__inner{align-items:flex-start;flex-direction:column;gap:10px}.seminar-header nav{width:100%;margin-left:0;padding-bottom:2px}.seminar-hero__grid{grid-template-columns:1fr;gap:36px}.seminar-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.seminar-footer small{margin-left:0}}
@media(max-width:720px){.upcoming-grid{grid-template-columns:1fr}}
@media(max-width:560px){.seminar-find{padding-left:16px;padding-right:16px}.seminar-row__link{grid-template-columns:64px minmax(0,1fr);gap:10px;padding:14px 4px}.seminar-row__more{display:none}.seminar-row__date{font-size:13px}.seminar-row__title{font-size:14px}.seminar-chip{padding:8px 11px;font-size:12px}.vmForm{gap:16px}.vmForm__submit{width:100%;justify-self:stretch;padding:0 16px}.seminar-header__inner{padding:10px 16px}.seminar-header nav{gap:10px 14px;font-size:12px;flex-wrap:wrap;overflow-x:visible}.seminar-header__login{margin-left:auto}.seminar-hero__inner,.seminar-section,.seminar-footer{padding-left:16px;padding-right:16px}.seminar-hero h1{font-size:68px}.seminar-section-head{gap:10px}.seminar-section-head__label{font-size:9px}.seminar-card-grid{grid-template-columns:1fr}.seminar-card__body{padding:17px}.upcoming-card__body{padding:22px}.upcoming-card__fee-amount{font-size:23px}.seminar-detail-shell{padding-left:16px;padding-right:16px}.seminar-breadcrumb{margin-bottom:36px}.seminar-detail-head h1{font-size:36px}.seminar-gallery{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.seminar-page *{scroll-behavior:auto!important;transition:none!important}.upcoming-card{animation:none;opacity:1;transform:none}}
