/* Shared behavior and refinements for the A / DARK and B / LIGHT forms. */
.period-notice{padding:15px 18px;margin-bottom:24px;border:1px solid var(--line);border-left:3px solid var(--accent);font-size:13px;line-height:1.85;background:var(--surface);color:var(--ink)}
.period-notice{font-weight:600}
.bootstrap-status{max-width:660px;margin:12vh auto;padding:32px 24px;color:var(--ink);line-height:1.9}
.bootstrap-status h1{font-size:26px;margin-bottom:18px}.bootstrap-status .button{margin-top:22px}
.review-tools{flex-wrap:wrap}
.application-reference{margin-top:20px;overflow-wrap:anywhere}.application-reference strong{letter-spacing:.08em}
.completion-note p{line-height:1.9}
.site-footer nav{display:flex;flex-wrap:wrap;gap:18px}.site-footer nav a{white-space:nowrap}
[aria-busy=true]{cursor:progress}button:disabled{cursor:default;transform:none!important}
.field-error,.error-summary{overflow-wrap:anywhere}.upload-field{min-width:0}.file-status{overflow-wrap:anywhere}
.postal-tools{margin-top:9px;min-width:0}.postal-button{min-height:44px;padding:9px 14px;border:1px solid var(--line);border-radius:2px;background:var(--surface);color:var(--ink);font-size:13px;line-height:1.5;text-align:center}.postal-button:hover:not(:disabled){border-color:var(--accent)}.postal-status{margin-top:9px;font-size:13px;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}.postal-results{margin-top:13px;padding:14px;border:1px solid var(--line);background:var(--surface)}.postal-results label{font-size:13px!important}.postal-results select{font-size:14px!important}.postal-results .postal-button{margin-top:10px;max-width:100%}.theme-a .postal-button{border-color:#635a64;background:#242025;color:#f1eaf0}.theme-a .postal-status{color:#bdb3bd}
.theme-a .error-summary{background:#2b1519;color:#ffc3c8;border-color:#e50914}
.theme-a .period-notice{background:#1b191d;color:#e7dfe4}
.theme-a #done-step .success-mark{margin-left:auto;margin-right:auto}
@media(max-width:600px){.period-notice{padding:13px 15px}.application-reference{font-size:14px}.bootstrap-status{margin:8vh 18px;padding:22px 0}.site-footer nav{width:100%}.site-footer nav a{margin-left:0}}
@media(max-width:760px){.postal-results select{font-size:16px!important}}
/* A quiet, compact event overview leads directly into the application. */
:is(.theme-a,.theme-b) .site-header{min-height:82px}
:is(.theme-a,.theme-b) .header-link{font-size:12px;white-space:nowrap}
:is(.theme-a,.theme-b) .page-layout{max-width:1060px;padding-top:32px}
:is(.theme-a,.theme-b) .event-rail{gap:18px 28px;margin-bottom:38px}
:is(.theme-a,.theme-b) .rail-block{padding-top:10px;padding-bottom:20px}
:is(.theme-a,.theme-b) .rail-block h2{font-size:18px;margin:8px 0 17px}
:is(.theme-a,.theme-b) .rail-block p,.conditions-list{font-size:13px;line-height:1.9}
:is(.theme-a,.theme-b) .rail-note{padding:14px 18px;font-size:13px;line-height:1.85}
:is(.theme-a,.theme-b) .section-intro{margin:0 0 28px}
:is(.theme-a,.theme-b) .section-intro h1{font-size:28px;line-height:1.55;font-weight:700;letter-spacing:0;margin:8px 0 12px}
.mobile-title-break{display:none}
:is(.theme-a,.theme-b) .section-intro p:not(.eyebrow){font-size:14px;line-height:1.9}
:is(.theme-a,.theme-b) .progress-nav{margin-bottom:29px;padding-bottom:0;border-bottom:0}
:is(.theme-a,.theme-b) .progress-nav ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;align-items:end}
:is(.theme-a,.theme-b) .progress-nav li{padding:0 0 15px;gap:9px;min-width:0;border-bottom-width:3px;font-size:13px}
:is(.theme-a,.theme-b) .step-number{flex:0 0 27px;height:27px;font-size:11px}
:is(.theme-a,.theme-b) .form-section{padding:30px 32px 34px;margin:0 0 22px;border:1px solid var(--line);border-radius:3px;background:var(--surface)}
:is(.theme-a,.theme-b) .section-heading{grid-template-columns:32px minmax(0,1fr);gap:0 12px;padding:0 0 23px;margin:0 0 27px;border-bottom:1px solid var(--line)}
:is(.theme-a,.theme-b) .section-heading h3{font-size:19px;line-height:1.55;letter-spacing:0}
:is(.theme-a,.theme-b) .section-heading p{font-size:13px;line-height:1.8;margin-top:6px}
:is(.theme-a,.theme-b) .section-number{font-size:13px;line-height:1.6;align-self:start;padding-top:3px}
:is(.theme-a,.theme-b) .field-grid{gap:26px 24px}
:is(.theme-a,.theme-b) .field label{font-size:14px;font-weight:500;line-height:1.8;margin-bottom:9px}
:is(.theme-a,.theme-b) .field input:not([type=checkbox]):not([type=radio]),:is(.theme-a,.theme-b) .field select,:is(.theme-a,.theme-b) .field textarea{font-size:16px;min-height:50px;border-radius:3px;padding:11px 13px;line-height:1.75}
:is(.theme-a,.theme-b) .field textarea{min-height:144px}
:is(.theme-a,.theme-b) .field-help{font-size:13px;line-height:1.8;margin-top:8px}
:is(.theme-a,.theme-b) .field-help:empty{display:none}
:is(.theme-a,.theme-b) .field-error{font-size:13px;line-height:1.75;margin-top:9px}
:is(.theme-a,.theme-b) .required,:is(.theme-a,.theme-b) .optional{font-size:10px;line-height:1.5;letter-spacing:0}
:is(.theme-a,.theme-b) .choice-check{gap:12px;font-size:14px!important;padding:12px 0;line-height:1.85!important}
:is(.theme-a,.theme-b) .choice-check input{flex-basis:19px;width:19px;height:19px;margin-top:4px}
:is(.theme-a,.theme-b) .choice-check span{min-width:0}
:is(.theme-a,.theme-b) .upload-field{padding:21px 22px;border:1px dashed var(--line);border-radius:3px}
:is(.theme-a,.theme-b) .upload-field input[type=file]{padding:0;min-height:44px;border:0;background:transparent;font-size:14px}
:is(.theme-a,.theme-b) input[type=file]::file-selector-button{min-height:44px;border-radius:2px;padding:10px 15px;font-family:inherit;font-size:13px}
:is(.theme-a,.theme-b) .file-status{font-size:13px;line-height:1.8;margin-top:8px}
:is(.theme-a,.theme-b) .clear-file{font-size:12px;min-height:40px;padding:7px 10px;margin-top:6px;line-height:1.6}
:is(.theme-a,.theme-b) .notice-box{font-size:13px;line-height:1.95;padding:23px;max-height:290px;border-radius:3px}
:is(.theme-a,.theme-b) .form-actions{gap:14px;margin-top:22px;padding-top:14px}
:is(.theme-a,.theme-b) .button{font-size:15px;min-height:55px;font-weight:500;letter-spacing:0;border-radius:3px}
:is(.theme-a,.theme-b) .button-primary{background:#e50914;border-color:#e50914;min-width:270px}
:is(.theme-a,.theme-b) .action-note{font-size:12px;line-height:1.85}
:is(.theme-a,.theme-b) .review-bar{font-size:11px;line-height:1.6;padding-top:7px;padding-bottom:7px}
.review-tools button{min-height:32px}
.skip-link{position:absolute;z-index:100;top:8px;left:12px;transform:translateY(-160%);background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:10px 16px;font-size:14px}
.skip-link:focus{transform:translateY(0)}
.error-summary-title{font-weight:700;margin:0}
:is(.theme-a,.theme-b) .error-summary{padding:18px 20px;font-size:13px;line-height:1.85;margin-bottom:25px;border-radius:2px}
.error-summary ul{padding-left:18px;margin:10px 0 0}.error-summary li+li{margin-top:5px}
.error-jump{font:inherit;color:inherit;background:none;border:0;padding:3px 0;line-height:1.8;text-align:left;text-decoration:underline;text-underline-offset:3px;white-space:normal}
:is(.theme-a,.theme-b) .confirm-summary{padding:25px 28px;border:1px solid var(--line);border-radius:3px;background:var(--surface)}
:is(.theme-a,.theme-b) .review-group{margin-bottom:29px;border-bottom:0}
:is(.theme-a,.theme-b) .review-group:last-child{margin-bottom:0}
.review-group-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid var(--line)}
:is(.theme-a,.theme-b) .review-group-header h3{margin:0;padding:0;border:0;font-size:17px;line-height:1.6}
.review-edit{flex:0 0 auto;min-height:40px;padding:7px 13px;background:var(--field-bg);border:1px solid var(--line);border-radius:3px;color:var(--ink);font-size:12px;line-height:1.6}
.review-edit:hover{border-color:var(--accent)}
:is(.theme-a,.theme-b) .review-row{grid-template-columns:180px minmax(0,1fr);padding:16px 0;gap:16px;font-size:14px}
:is(.theme-a,.theme-b) .review-row dt{font-size:13px;line-height:1.9}
:is(.theme-a,.theme-b) .review-row dd{font-size:14px;line-height:1.9}
:is(.theme-a,.theme-b) #done-step{padding:42px 32px;border:1px solid var(--line);border-radius:3px;background:var(--surface)}
:is(.theme-a,.theme-b) #done-step h2{font-size:27px;line-height:1.7}
:is(.theme-a,.theme-b) .application-reference{font-size:15px}
:is(.theme-a,.theme-b) .application-reference strong{display:inline-block;font-weight:500;letter-spacing:.06em}
:is(.theme-a,.theme-b) .site-footer{max-width:980px;font-size:11px;gap:24px}
:is(.theme-a,.theme-b) :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--ink);outline-offset:4px}
:is(.theme-a,.theme-b) :is(.section-intro h1,.section-intro h2,.error-summary):focus{outline:2px solid var(--line);outline-offset:5px}
body.theme-a{--bg:#0d0d0f;--surface:#17171a;--ink:#f6f3f1;--muted:#b0aab1;--line:#3a373e;--field-bg:#202020}
.theme-a .form-section{box-shadow:none}.theme-a .field input:not([type=checkbox]),.theme-a .field select,.theme-a .field textarea{background:#202020;border-color:#424242}
.theme-a .upload-field,.theme-a .notice-box{background:#1d1c21}
.theme-a .progress-nav li:not(.active){color:#b0aab1}
.theme-a .review-edit{background:#26232a}
.theme-a .error-summary{background:#27171b;color:#ffe4e7}
body.theme-b{--bg:#f6f6f6;--surface:#fff;--ink:#171717;--muted:#606060;--line:#d9d9d9;--field-bg:#fafafa}
.theme-b .form-section{box-shadow:0 2px 10px #00000003}
.theme-b .field input:not([type=checkbox]),.theme-b .field select,.theme-b .field textarea{background:#fafafa;border-color:#aaa}
.theme-b .upload-field,.theme-b .notice-box{background:#f8f8f8}
.theme-b .error-summary{background:#fff1f1;color:#9c111b}
@media(max-width:760px){
  :is(.theme-a,.theme-b) .site-header{min-height:72px;padding-top:13px;padding-bottom:13px}
  :is(.theme-a,.theme-b) .page-layout{padding:25px 20px 52px}
  :is(.theme-a,.theme-b) .event-rail{margin-bottom:28px}
  :is(.theme-a,.theme-b) .section-intro h1{font-size:25px;line-height:1.5;margin-bottom:12px}
  .mobile-title-break{display:inline}
  :is(.theme-a,.theme-b) .form-section{padding:24px 21px 27px;margin-bottom:18px}
  :is(.theme-a,.theme-b) .field-grid{gap:23px}
  :is(.theme-a,.theme-b) .section-heading{grid-template-columns:26px minmax(0,1fr);gap:0 10px;padding-bottom:19px;margin-bottom:23px}
  :is(.theme-a,.theme-b) .section-heading h3{font-size:18px}
  :is(.theme-a,.theme-b) .progress-nav li{font-size:12px;gap:7px}
  :is(.theme-a,.theme-b) .step-number{flex-basis:23px;height:23px;font-size:10px}
  :is(.theme-a,.theme-b) .upload-field{padding:17px 14px}
  :is(.theme-a,.theme-b) .notice-box{padding:18px 16px}
  :is(.theme-a,.theme-b) .button{min-width:0;width:100%}
  :is(.theme-a,.theme-b) .confirm-summary{padding:23px 20px}
  :is(.theme-a,.theme-b) .review-row{grid-template-columns:1fr;gap:5px;padding:14px 0}
  :is(.theme-a,.theme-b) #done-step{padding:31px 21px}
  :is(.theme-a,.theme-b) #done-step h2{font-size:24px}
  :is(.theme-a,.theme-b) .error-summary{padding:15px 16px}
}
@media(max-width:380px){
  :is(.theme-a,.theme-b) .page-layout{padding-left:14px;padding-right:14px}
  :is(.theme-a,.theme-b) .form-section{padding-left:17px;padding-right:17px}
  :is(.theme-a,.theme-b) .section-intro h1{font-size:23px}
  :is(.theme-a,.theme-b) .progress-nav li{font-size:11px;gap:5px}
  :is(.theme-a,.theme-b) .review-group-header h3{font-size:16px}
}
/* r8: birth date as year / month / day selects, following the shared ENTRY.EMAIL form. */
.field .field-label{display:block;font-size:14px;font-weight:700;line-height:1.7;margin-bottom:8px}
:is(.theme-a,.theme-b) .field .field-label{font-size:14px;font-weight:500;line-height:1.8;margin-bottom:9px}
.theme-a .field .field-label{color:#e9e9e9;line-height:1.6}
.birth-selects{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.birth-part{display:inline-flex;align-items:center;gap:6px;min-width:0}
.birth-part select{width:auto;min-width:0}
.birth-part:first-child select{width:7.6em}
.birth-part:not(:first-child) select{width:6.2em}
.theme-b .birth-part select{padding-right:32px}
.theme-b .birth-part:not(:first-child) select{width:6.8em}
.birth-unit{font-size:13px;color:var(--muted);white-space:nowrap}
/* r12: on phones the three selects share one row (year wider, month / day narrow). The native menulist reserves
   extra room for its arrow, so the selects draw their own chevron and keep an exact text area. */
@media(max-width:600px){
  .birth-selects{display:flex;flex-wrap:nowrap;gap:6px;align-items:center}
  .birth-part{display:flex;align-items:center;gap:4px;min-width:0;flex:1 1 0;max-width:118px}
  .birth-part:first-child{flex:1.35 1 0;max-width:160px}
  :is(.theme-a,.theme-b) .field .birth-part select{-webkit-appearance:none;appearance:none;width:100%;flex:1 1 0;min-width:0;padding-left:9px;padding-right:22px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23555555' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center;background-size:10px 6px}
  .theme-a .field .birth-part select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23d9d9d9' stroke-width='1.6'/%3E%3C/svg%3E")}
  .birth-unit{font-size:12px}
}
@media(max-width:359px){.birth-selects{gap:4px}.birth-part{gap:3px}:is(.theme-a,.theme-b) .field .birth-part select{padding-left:7px;padding-right:18px;background-position:right 5px center}.birth-unit{font-size:11px}}
/* r9: supplied event title artwork (black key visual, kept unaltered; the band extends its black background). */
.title-band{background:#000;display:flex;justify-content:center;align-items:center;padding:14px 20px 6px}
.title-art{display:block;width:min(100%,520px);height:auto}
.title-band{flex-direction:column}
.title-sub{margin:-6px 0 12px;color:#fff;font-size:22px;font-weight:700;letter-spacing:.12em;line-height:1.4}   /* r17: 大題の下の「〜アニメ〜」 */
@media(max-width:760px){.title-sub{margin:-4px 0 8px;font-size:16px}}
.theme-a .title-band{background:#000;border-bottom:1px solid #262626}
.theme-b .title-band{background:#000;padding:18px 20px 10px}
:is(.theme-a,.theme-b) .title-band{width:auto;max-width:none;margin:0}
@media(max-width:760px){.title-band{padding:10px 16px 4px}.title-art{width:min(100%,360px)}}
/* r9: longer two-day schedule text must not squeeze the status label. */
:is(.theme-a,.theme-b) .hero-detail{flex:1 1 auto;min-width:0}
:is(.theme-a,.theme-b) .hero-status{flex-shrink:0;white-space:nowrap}
/* r9.1: B footer was a 980px black bar pinned to the left (r7 frontend.css max-width vs theme-b margin:0). Full width, content aligned. */
.theme-b .site-footer{max-width:none;margin:0;padding-left:max(5.5vw,calc((100vw - 1060px) / 2 + 40px));padding-right:max(5.5vw,calc((100vw - 1060px) / 2 + 40px))}
@media(max-width:1000px){.theme-b .site-footer{padding-left:28px;padding-right:28px}}
@media(max-width:760px){.theme-b .site-footer{padding-left:20px;padding-right:20px}}
/* r9.1: schedule, venue and capacity on their own lines under the title; header label removed. */
.hero-line{display:block}
:is(.theme-a,.theme-b) .hero-detail{line-height:1.9}
/* r11: theme A keeps the required chip readable (theme-a.css paints text and background the same red) */
.theme-a .required{color:#fff;background:#e50914;border-color:#e50914}
.review-legend{margin-left:14px;font-weight:500}
/* r12: 開催概要 holds the date, time, venue and capacity (the separate event strip is gone).
   Labels never break mid-word; multi-part values are split onto their own lines by the script. */
:is(.theme-a,.theme-b) .rail-block dl.info-list{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px 18px;align-items:baseline}
:is(.theme-a,.theme-b) .rail-block dl.info-list dt{white-space:nowrap;margin:0}
:is(.theme-a,.theme-b) .rail-block dl.info-list dd{margin:0;line-height:1.75}
.info-sub{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:1px}
.theme-a .info-sub{color:#a2a2a2}.theme-b .info-sub{color:#6b6b6b}
/* r12: the privacy text is shown in full; no inner scrolling. */
:is(.theme-a,.theme-b) .policy-box{max-height:none;overflow:visible}
/* r12: no explanatory copy under the postal field; the lookup runs on its own. */
.postal-status:empty{display:none}
@media(max-width:760px){:is(.theme-a,.theme-b) .rail-block dl.info-list{grid-template-columns:auto minmax(0,1fr);gap:8px 14px}}
/* r12 (10/9 evening, B案): the 必須 / 任意 labels are boxed chips as in A案; the checkbox sits on the centre line of
   the first text line in both designs (theme-b.css aligned the row by baseline, which put the box too high); the top
   of the completion screen (mark, title, reference number) is centred on the page. */
.theme-b .required,.theme-b .optional{display:inline-block;padding:1px 5px;margin-left:8px;border:1px solid #e50914;border-radius:0;vertical-align:1px;font-weight:500;letter-spacing:0;line-height:1.5}
.theme-b .required{color:#fff;background:#e50914}
.theme-b .optional{color:#6b6b6b;background:transparent;border-color:#bdbdbd}
.theme-b .field > label > :is(.required,.optional){margin-left:0}
:is(.theme-a,.theme-b) .field > label.choice-check{display:flex;align-items:flex-start}
:is(.theme-a,.theme-b) .choice-check input{margin-top:2px}
:is(.theme-a,.theme-b) #done-step{text-align:center}
:is(.theme-a,.theme-b) #done-step .success-mark{margin-left:auto;margin-right:auto}
.theme-b #done-step .completion-note{text-align:left}
/* r14: the form title carries the application track (全日参加 / MAIN EVENT 参加); the media notice has sub-bullets;
   the sample-fill bar (staging ?sample=1) reuses the old review-bar styles. */
.title-track{display:inline-block;font-size:.6em;font-weight:500;margin-left:.15em;letter-spacing:0;white-space:nowrap}
@media(max-width:600px){.title-track{display:block;margin:4px 0 0}}
.notice-sublist{margin:6px 0 0;padding-left:1.4em}
.notice-sublist li{margin-top:2px}
/* r14: /creators-dojo/ entry page with the two form links */
.chooser{max-width:720px;margin:0 auto;padding:40px 20px 80px}
.chooser-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px}
.chooser-links .button{flex:1 1 280px;text-align:center;text-decoration:none}
/* r16: 応募区分 (radio) — same rhythm as the consent checkboxes; each choice is a bordered row that is easy to tap. */
.choice-radios{display:flex;flex-wrap:wrap;gap:10px 12px}
.choice-radio{display:flex;align-items:center;gap:10px;flex:1 1 260px;min-height:48px;padding:10px 14px;border:1px solid rgba(255,255,255,.28);border-radius:4px;font-size:14px;line-height:1.6;cursor:pointer}
.choice-radio input{width:19px;height:19px;flex:0 0 19px;margin:0;accent-color:var(--accent)}
.choice-radio:has(input:checked){border-color:var(--accent)}
.choice-radio:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.radio-field[aria-invalid="true"] .choice-radio,.choice-radio:has(input[aria-invalid="true"]){border-color:var(--accent)}
.theme-b .choice-radio{border-color:rgba(0,0,0,.25)}
/* r16b: the generic text-input rule (.field input:not([type=checkbox])) must not size the radio itself. */
:is(.theme-a,.theme-b) .field .choice-radio input[type=radio]{width:18px;height:18px;min-height:0;max-width:none;flex:0 0 18px;margin:0;padding:0;border:0;border-radius:50%;background:none;box-shadow:none;outline-offset:2px;accent-color:var(--accent)}
/* r16c: radio row — beat the generic ".field label" (display:block) and draw a dark-theme circle. */
:is(.theme-a,.theme-b) .field .choice-radio{display:flex;align-items:center;gap:12px;margin:0;font-weight:500}
:is(.theme-a,.theme-b) .field .choice-radio input[type=radio]{appearance:none;-webkit-appearance:none;position:relative;border:2px solid #8c8c8c;background:transparent;cursor:pointer}
:is(.theme-a,.theme-b) .field .choice-radio input[type=radio]:checked{border-color:var(--accent)}
:is(.theme-a,.theme-b) .field .choice-radio input[type=radio]:checked::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--accent)}
:is(.theme-a,.theme-b) .field .choice-radio input[type=radio]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.theme-a .field .choice-radio{background:#202020;border-color:#424242;color:#e9e9e9}
.theme-a .field .choice-radio:has(input:checked){border-color:var(--accent);background:#2a1a1c}
.theme-b .field .choice-radio input[type=radio]{border-color:#777}
/* r16: terms page (terms.html) — Netflix合同会社「日本における利用規約および個人情報保護方針」 */
.terms-page{max-width:860px;margin:0 auto;padding:40px 20px 72px;line-height:1.95;font-size:14px}
.terms-page h1{font-size:24px;line-height:1.5;margin:8px 0 28px}
.terms-page h2{font-size:17px;margin:36px 0 12px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16)}
.terms-page p{margin:0 0 14px;overflow-wrap:anywhere}
.terms-page a{color:inherit;text-decoration:underline}
.terms-back{margin-top:40px!important;text-align:center}
.terms-back .button{text-decoration:none}
.choice-check a{color:inherit;text-decoration:underline;text-underline-offset:2px}
/* r16: 開催概要 — 応募方法 is a sentence (normal weight); 主なプログラム（予定） as a time-table list */
.info-list dd.info-text{font-weight:500;line-height:1.8}
.program-list{list-style:none;margin:0;padding:0}
.program-list li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:4px 14px;padding:11px 0;border-top:1px solid var(--line)}
.program-list li:first-child{border-top:0;padding-top:2px}
.program-time{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap;line-height:1.9}
.program-body strong{display:block;font-size:13px;line-height:1.7}
.program-desc{display:block;margin-top:2px;font-size:12px;line-height:1.8;color:var(--muted)}
.program-note{margin:10px 0 0;font-size:11px!important;color:var(--muted)}
@media(max-width:600px){.program-list li{grid-template-columns:1fr}}
/* r16: 主なプログラム — a little tighter so its column ends near the 開催概要 column */
.program-list li{padding:7px 0;gap:2px 14px}
.program-body strong{line-height:1.6}
.program-desc{margin-top:1px;line-height:1.65}
.program-time{line-height:1.75}
.program-note{margin-top:8px}
.program-list li{grid-template-columns:86px minmax(0,1fr);gap:2px 12px}
.theme-a .program-body strong{color:#fff}   /* r16: プログラムのタイトルは白 */
.program-speaker{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:12px;line-height:1.6;color:var(--ink)}   /* r17: 登壇者名（説明の下） */
.program-speaker em{font-style:normal;font-size:10px;font-weight:700;line-height:1;padding:3px 6px;border:1px solid var(--line);border-radius:2px;color:var(--muted)}
.program-list li{padding:10px 0 8px}
.program-desc{word-break:auto-phrase}   /* r17: 日本語を文節で折り返す（Chrome/Edge。他のブラウザは従来どおり） */
/* r16: outside the application period — a notice replaces the progress steps and the form */
.closed-panel{padding:48px 40px;margin:8px 0 40px;border:1px solid var(--line);border-top:3px solid var(--accent);background:var(--surface);text-align:center}
.closed-panel h1{font-size:26px;line-height:1.5;margin:8px 0 18px}
.closed-panel p{font-size:15px;line-height:2}
.closed-panel .closed-contact{margin-top:22px;font-size:13px;color:var(--muted)}
.theme-a .closed-panel{background:#17171a;border-color:#424242;border-top-color:var(--accent)}
@media(max-width:600px){.closed-panel{padding:32px 20px}.closed-panel h1{font-size:21px}.closed-panel p{font-size:14px}}
