.education{position:relative}.education-filter select{border:1px solid var(--line);background:var(--surface,#fff);color:var(--text,#183047);border-radius:10px;padding:11px 34px 11px 12px}.education-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.education-card{background:var(--card,#fff);border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;flex-direction:column;min-height:320px;box-shadow:0 12px 30px rgba(19,52,79,.06);transition:.2s}.education-card:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(19,52,79,.12)}.education-card .course-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.education-card .course-type{font-size:11px;font-weight:900;letter-spacing:.08em;padding:6px 9px;border-radius:999px;background:#e8f4ff;color:#0b67a8}.education-card .course-service{font-size:11px;color:var(--muted)}.education-card h3{font-size:20px;margin:18px 0 8px;color:var(--heading,#092a45)}.education-card p{color:var(--muted);line-height:1.6;flex:1}.course-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}.course-meta b{display:block;color:var(--heading,#092a45);font-size:13px}.course-price{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:16px}.course-price strong{font-size:22px;color:var(--heading,#092a45)}.course-price del{font-size:12px;color:var(--muted);margin-left:7px}.course-price button{border:0;border-radius:10px;background:#0e67b0;color:white;padding:10px 14px;font-weight:900;cursor:pointer}.course-modal-card{max-width:900px}.course-detail-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:22px}.course-detail-copy p{line-height:1.75;color:var(--muted);white-space:pre-wrap}.course-info-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--soft,#f6f9fc)}.course-info-card dl{margin:0;display:grid;grid-template-columns:90px 1fr;gap:9px;font-size:13px}.course-info-card dt{color:var(--muted)}.course-info-card dd{margin:0;font-weight:750}.course-instructor-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.course-instructor{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.course-schedule{margin-top:22px}.course-schedule table{width:100%;border-collapse:collapse}.course-schedule th,.course-schedule td{padding:9px;border-bottom:1px solid var(--line);font-size:12px;text-align:left}.course-session-list{display:grid;gap:8px}.course-session-option{border:1px solid var(--line);border-radius:12px;padding:12px}.course-enroll-form{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.course-enroll-form>label{display:grid;gap:6px;margin-bottom:12px}.course-enroll-form select{border:1px solid var(--line);border-radius:10px;padding:11px}.course-enroll-form.hidden{display:none}.course-policy-note{margin-top:12px;padding:12px;border-radius:10px;background:#fff5db;color:#725215;font-size:12px;line-height:1.5}@media(max-width:950px){.education-grid{grid-template-columns:1fr 1fr}.course-detail-grid{grid-template-columns:1fr}}@media(max-width:650px){.education-grid{grid-template-columns:1fr}.course-meta{grid-template-columns:1fr}.course-price{align-items:flex-start;flex-direction:column}}

.course-materials{margin-top:24px}.course-material-list{display:grid;gap:12px}.course-material{border:1px solid var(--border,#d8e4ef);border-radius:12px;background:var(--surface,#fff);padding:16px;overflow-wrap:anywhere}.course-material h4{margin:0 0 8px;color:var(--text,#183047)}.course-material p{margin:0 0 12px;color:var(--text-soft,#66788a);white-space:pre-wrap;line-height:1.6}.course-material a{display:inline-flex;color:#0969ca;font-weight:800;min-height:36px;align-items:center}

/* V23: course details remain visible while the education API is loading. */
.education-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#education-refresh{border:1px solid var(--border,#dde8f3);border-radius:10px;padding:11px 14px;background:var(--surface,#fff);color:var(--text,#183047);font-weight:750;cursor:pointer}
#education-refresh:disabled{opacity:.6;cursor:wait}
.education-card{min-width:0;background:var(--surface,#fff)}
.education-card h3,.course-price strong,.course-meta b{color:var(--text,#183047)}
.course-meta>div,.course-price>div{min-width:0;overflow-wrap:anywhere}
.course-price button{flex-shrink:0;white-space:nowrap;min-height:44px}
#course-modal{z-index:9100;padding:clamp(16px,5vh,56px) 18px;overscroll-behavior:contain}
#course-modal .course-modal-card{width:min(960px,100%);min-width:0;padding:24px}
#course-modal .modal-head{align-items:flex-start;margin-bottom:24px;gap:14px}
#course-modal-title{overflow-wrap:anywhere;line-height:1.4;font-size:24px}
#course-modal-close{display:inline-flex!important;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer}
#course-modal button:focus-visible,#course-modal a:focus-visible,#course-modal input:focus-visible,#course-modal select:focus-visible,#course-modal textarea:focus-visible{outline:3px solid #0d84ed;outline-offset:3px}
.course-detail-grid>*{min-width:0}.course-detail-copy>p:first-child{margin-top:0}.course-info-card{background:var(--surface-2,#f6f9fc)}
.course-info-card dd,.course-instructor{overflow-wrap:anywhere}.course-instructor small{display:block;margin-top:4px;color:var(--text-soft)}
.course-detail-loading,.course-detail-error,.course-availability,.course-detail-warning{padding:22px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);line-height:1.7}
.course-detail-loading{display:flex;align-items:center;gap:12px;min-height:150px;color:var(--text-soft)}
.course-loading-dot{flex:none;width:20px;height:20px;border:3px solid var(--border);border-top-color:#0d76dc;border-radius:50%;animation:course-loading 1s linear infinite}
@keyframes course-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.course-loading-dot{animation:none}.education-card{transition:none}}
.course-detail-error h3{margin-top:0}.course-detail-error p{overflow-wrap:anywhere;color:var(--text-soft)}
.course-detail-error button{border:0;cursor:pointer;min-height:44px}
.course-availability{margin:12px 0;color:var(--text-soft)}.course-availability b{color:var(--text)}.course-availability p{margin:4px 0 0}
.course-detail-warning{margin-bottom:18px;font-size:14px}.course-detail-warning button{border:0;background:transparent;color:var(--blue);text-decoration:underline;cursor:pointer;padding:5px}
.course-session-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.course-session-status{border-radius:7px;padding:5px 8px;background:var(--surface-2);font-size:12px;color:var(--text-soft)}.course-session-status.is-open{background:#e4f4ec;color:#17613c}
.course-session-option>p{margin:9px 0;color:var(--text-soft);font-size:13px;overflow-wrap:anywhere}
.course-session-option small{display:block;color:var(--text-soft)}
.course-schedule-scroll{overflow:auto;max-width:100%;margin-top:8px}.course-schedule-scroll table{min-width:390px}
.course-session-hint{font-size:13px;color:var(--text-soft);line-height:1.6;margin:0 0 16px}
#course-enroll-form input:not([type="checkbox"]),#course-enroll-form select,#course-enroll-form textarea{width:100%;min-width:0;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:11px}
#course-enroll-form>label.consent{display:flex;gap:10px;align-items:flex-start;line-height:1.6}
#course-enroll-form .consent input{flex:none;width:17px;height:17px;margin-top:3px}
#course-enroll-form button[type="submit"]{border:0;min-height:44px;cursor:pointer}
#course-enroll-form button:disabled{opacity:.55;cursor:default;transform:none}
#course-enroll-message{white-space:pre-wrap;line-height:1.6;overflow-wrap:anywhere}#course-enroll-message.error{color:#bd2c2c}
@media(max-width:650px){
 #course-modal{padding:12px 10px}#course-modal .course-modal-card{padding:18px 16px;border-radius:16px}
 #course-modal-title{font-size:21px}#course-modal .modal-head{margin-bottom:18px}
 .course-detail-grid{gap:16px}.course-info-card dl{grid-template-columns:80px minmax(0,1fr)}
 .course-detail-loading,.course-detail-error,.course-availability,.course-detail-warning{padding:16px}
 .course-price{flex-direction:row;align-items:center;flex-wrap:wrap}.course-price strong{font-size:21px}
 .course-meta{grid-template-columns:1fr 1fr}.course-session-option{padding:12px}
 #course-enroll-form button[type="submit"]{width:100%}.education-filter{width:100%}
}
/* Keep schedule tables inside the session card instead of widening the mobile grid. */
#course-modal-body,.course-schedule,.course-session-list,.course-session-option,.course-session-heading,.course-session-heading>*{min-width:0;max-width:100%}
.course-session-list{grid-template-columns:minmax(0,1fr)}
.course-session-heading>b,.course-session-status{overflow-wrap:anywhere;white-space:normal}
.course-session-status{flex-shrink:1}
.course-schedule-scroll{width:100%;min-width:0;overflow-x:auto}
