/* Registration uses the same white, ruled layout as the forum subpages. */
.registration-page { background:var(--wef-bg); color:var(--wef-dark); font-size:1rem; line-height:1.8; }
.registration-shell { padding:64px 0 132px; }
.registration-page .free-tag { display:inline-flex; align-items:center; margin-top:20px; padding:7px 14px; border:1px solid var(--wef-rule); border-radius:999px; font-size:.875rem; font-weight:650; line-height:1.5; color:var(--wef-dark); }
.reg-layout { display:grid; grid-template-columns:230px minmax(0,980px); justify-content:space-between; gap:76px; align-items:start; }
.reg-panel { grid-column:2; grid-row:1; min-width:0; }
.reg-panel h2 { font-size:43px; font-weight:590; letter-spacing:-.06em; line-height:1.2; margin:0 0 30px; }
.reg-panel fieldset { border:0; padding:0; margin:0; min-width:0; }
.reg-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.reg-field { display:block; min-width:0; }
.reg-field.full { grid-column:1/-1; }
.reg-field span { display:block; margin-bottom:9px; font-weight:650; }
.reg-field input { width:100%; min-height:50px; border:1px solid var(--wef-rule); border-radius:8px; padding:12px 14px; background:#fff; color:var(--wef-dark); font:inherit; line-height:1.5; }
.reg-field small { display:block; font-size:.875rem; line-height:1.6; color:#66716d; margin-top:7px; }
.reg-field em,.reg-legend small { font-size:.875rem; font-style:normal; font-weight:400; color:#66716d; }
.reg-panel .reg-dates { margin-top:44px; }
.reg-legend { font-size:28px; font-weight:620; letter-spacing:-.04em; line-height:1.4; margin-bottom:12px; }
.reg-hint { font-size:.875rem; color:#66716d; margin:0 0 18px; }
.reg-days { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.reg-day { display:block; min-width:0; border:1px solid var(--wef-rule); border-radius:12px; padding:22px 18px; cursor:pointer; background:#fff; transition:background .15s,border-color .15s; }
.reg-day:has(input:checked) { border:2px solid var(--teal); padding:21px 17px; background:var(--teal-pale); }
.reg-day:has(input:disabled) { background:var(--wef-soft); color:#66716d; cursor:default; }
.reg-day input,.reg-tour input,.reg-consent input { width:18px; height:18px; accent-color:#267d6d; flex-shrink:0; vertical-align:middle; }
.reg-day .reg-day-name { font-size:.875rem; font-weight:700; margin-left:5px; }
.reg-day strong { display:block; font-size:24px; font-weight:650; letter-spacing:-.04em; line-height:1.35; margin-top:20px; }
.reg-day .reg-day-program { display:block; font-size:.875rem; color:#66716d; min-height:48px; margin:8px 0 18px; }
.reg-day .reg-seat { display:block; font-size:.875rem; line-height:1.6; font-weight:650; color:#267d6d; }
.reg-day .reg-seat.full { color:#66716d; }
.reg-status-row { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:16px 0 0; }
.reg-status-row p { font-size:.875rem; color:#66716d; }
.reg-refresh { border:0; background:none; padding:4px 0; color:#267d6d; font:inherit; font-size:.875rem; font-weight:650; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.reg-availability-error { margin-top:16px; font-size:.875rem; color:#66716d; }
.reg-panel .reg-meals { border-top:1px solid var(--wef-rule); margin-top:32px; padding-top:28px; }
.reg-meal-days { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.reg-panel .reg-meal-day { min-width:0; padding:0; }
.reg-meal-day legend { font-size:1rem; line-height:1.6; font-weight:650; margin-bottom:10px; }
.reg-meal-day label { display:flex; align-items:flex-start; gap:9px; font-size:1rem; line-height:1.6; cursor:pointer; }
.reg-meal-day input { width:18px; height:18px; accent-color:#267d6d; flex-shrink:0; margin-top:4px; }
.reg-panel .reg-tour { border-top:1px solid var(--wef-rule); margin-top:32px; padding-top:28px; }
.reg-tour label { display:inline-flex; align-items:center; gap:9px; margin:4px 28px 0 0; }
.reg-notice { border-top:1px solid var(--wef-rule); margin-top:40px; padding-top:28px; }
.reg-notice h3 { font-size:21px; line-height:1.4; letter-spacing:-.03em; font-weight:650; margin:0 0 16px; }
.reg-notice ul { list-style:disc; padding-left:21px; color:#66716d; font-size:1rem; }
.reg-notice li+li { margin-top:10px; }
.reg-notice a,.reg-privacy a { color:#267d6d; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.reg-privacy { border-top:1px solid var(--wef-rule); margin-top:32px; padding-top:28px; }
.reg-privacy summary { font-weight:650; cursor:pointer; }
.reg-privacy dl { font-size:.875rem; color:#66716d; margin:16px 0; }
.reg-privacy dt { font-weight:700; color:var(--wef-dark); margin-top:12px; }
.reg-privacy dd { margin:4px 0; }
.reg-consent { display:flex; align-items:flex-start; gap:11px; margin-top:20px; }
.reg-consent input { margin-top:5px; }
.reg-consent span { font-size:1rem; }
.reg-submit { display:block; width:100%; min-height:54px; border:1px solid var(--teal); border-radius:999px; padding:15px 24px; margin-top:30px; background:var(--teal); color:#fff; font:inherit; font-weight:750; cursor:pointer; transition:background .2s,border-color .2s; }
.reg-submit:hover { background:#267d6d; border-color:#267d6d; }
.reg-submit:disabled { opacity:.55; cursor:default; }
.reg-message { background:var(--sand-pale); color:#655525; border-radius:8px; padding:16px 18px; margin:22px 0; font-size:1rem; }
.reg-message:empty { display:none; }
.reg-aside { grid-column:1; grid-row:1; min-width:0; border-top:2px solid #17211e; padding-top:18px; }
.reg-aside .reg-info { padding-bottom:26px; margin-bottom:26px; border-bottom:1px solid var(--wef-rule); }
.reg-aside .reg-info:last-child { border:0; padding-bottom:0; margin-bottom:0; }
.reg-aside h2,.reg-aside h3 { font-size:1rem; font-weight:650; letter-spacing:-.02em; line-height:1.5; margin:0 0 14px; }
.reg-aside p { font-size:.875rem; line-height:1.8; color:#66716d; margin:7px 0; }
.reg-aside a { color:#267d6d; font-size:.875rem; font-weight:650; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.reg-aside .reg-capacity { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:.875rem; border-bottom:1px solid var(--wef-rule); padding:12px 0; }
.reg-aside .reg-capacity:last-of-type { margin-bottom:16px; }
.reg-aside .reg-capacity b { font:700 21px/1.3 Urbanist,Pretendard,sans-serif; white-space:nowrap; }
.reg-success h2 { font-size:43px; font-weight:590; line-height:1.2; letter-spacing:-.06em; margin:14px 0 22px; }
.reg-success p { color:#66716d; }
.reg-success .success-label { color:#267d6d; font:700 .875rem/1.5 Urbanist,Pretendard,sans-serif; letter-spacing:.13em; }
.reg-success dl { margin:32px 0; border-top:1px solid #17211e; padding:8px 0 24px; border-bottom:1px solid var(--wef-rule); }
.reg-success dt { font-size:.875rem; color:#66716d; margin-top:20px; }
.reg-success dd { margin:5px 0; overflow-wrap:anywhere; }
.reg-success .reg-reference { color:var(--wef-dark); font:700 42px/1.3 Urbanist,Pretendard,sans-serif; font-variant-numeric:tabular-nums; letter-spacing:.07em; }
.reg-success a { display:inline-flex; color:#267d6d; font-weight:650; margin-top:20px; text-decoration:underline; text-underline-offset:4px; }
html[lang="en"] .reg-panel h2,html[lang="en"] .reg-success h2 { font-family:var(--font-latin); letter-spacing:-.035em; }
.reg-honeypot { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
.registration-page [hidden] { display:none!important; }
.registration-page :is(input,button,a,summary):focus-visible { outline:3px solid #1c7662; outline-offset:4px; }
.nav-register[aria-current="page"] { color:var(--teal)!important; }
@media(max-width:1180px) {
  .reg-layout { grid-template-columns:210px minmax(0,1fr); gap:52px; }
  .reg-days { gap:10px; }
  .reg-day { padding:18px 14px; }
  .reg-day:has(input:checked) { padding:17px 13px; }
}
@media(max-width:980px) {
  .registration-shell { padding:68px 0 96px; }
  .reg-layout { grid-template-columns:1fr; gap:48px; }
  .reg-panel,.reg-aside { grid-column:1; grid-row:auto; }
  .reg-aside { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding-top:24px; }
  .reg-aside .reg-info { border:0; margin:0; padding:0; }
  .reg-aside .reg-info:last-child { grid-column:1/-1; }
}
@media(max-width:640px) {
  .registration-shell { padding:44px 0 76px; }
  .reg-panel h2,.reg-success h2 { font-size:32px; }
  .reg-fields { grid-template-columns:1fr; gap:20px; }
  .reg-legend { font-size:24px; }
  .reg-days { grid-template-columns:1fr; gap:12px; }
  .reg-meal-days { grid-template-columns:1fr; gap:20px; }
  .reg-day { display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:16px; padding:20px; }
  .reg-day:has(input:checked) { padding:19px; }
  .reg-day>span:first-child { grid-row:1/4; align-self:center; }
  .reg-day strong { font-size:22px; margin:0; }
  .reg-day .reg-day-program { min-height:0; margin:5px 0 10px; }
  .reg-day .reg-seat { grid-column:2; }
  .reg-aside { grid-template-columns:1fr; }
  .reg-aside .reg-info:last-child { grid-column:auto; }
}
