/* Pearl / Liquid Glass: one dominant translucent layer, stable content surfaces. */
.announcement{background:var(--background);color:var(--text-secondary);min-height:36px;padding-block:0;font-size:12px}
.announcement>a,.preview-label{color:var(--text-secondary)}
.header{width:min(1328px,calc(100% - 48px));margin:8px auto 0;top:12px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--glass-shadow),var(--edge-highlight)}
.header-inner{width:100%;padding-inline:var(--space-medium);min-height:80px;gap:var(--space-medium)}
.desktop-nav a{min-height:70px;color:var(--text)}
.desktop-nav a.active:after{background:var(--accent);bottom:10px}
.mobile-nav{background:var(--surface);border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:1px solid var(--border)}
.header:has(.mobile-nav:not([hidden])){background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}
.hero{position:relative;isolation:isolate;gap:80px;padding-block:58px 76px;grid-template-columns:1fr 1fr}
.hero:before,.hero:after{content:'';position:absolute;pointer-events:none;z-index:-1;border:1px solid var(--accent-soft);border-radius:50%;width:240px;height:28px;transform:rotate(-12deg)}
.hero:before{inset-inline-start:0;top:20px}.hero:after{inset-inline-end:0;bottom:24px;transform:rotate(-16deg)}
.hero h1{font-size:clamp(32px,3.2vw,46px);line-height:1.75;letter-spacing:-1.3px;color:var(--text)}
.hero h1 em{border:0}
.hero-description{margin-top:20px;max-width:470px;font-size:17px;line-height:2.1}
.hero-actions{align-items:center;gap:24px;margin-top:28px}
.consultation-link{border-bottom:0;color:var(--text-secondary);font-size:15px;gap:10px}
.consultation-link:hover{color:var(--text);text-decoration:underline;text-underline-offset:6px}
.hero-footnote{border:0;margin-top:23px;padding-top:0;color:var(--text-secondary)}
.hero-footnote small{margin-top:4px}
.hero-visual{min-height:510px;padding:8px;border:1px solid var(--glass-border);border-radius:calc(var(--radius-lg) + 8px);background:var(--pearl);box-shadow:var(--shadow),var(--edge-highlight)}
.hero-visual:before{display:none}
.hero-image{position:relative;inset:auto;width:100%;min-height:510px;height:100%;border-radius:var(--radius-lg);object-position:64% center}
.hero-image-caption{left:28px;right:28px;bottom:27px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:13px 17px;flex-wrap:wrap;gap:3px}
.hero-image-caption>span:first-child{font-size:16px}
.hero-image-caption small{color:var(--text-secondary);font-size:12px}
.disciplines{padding-block:18px}
.disciplines>a{padding-block:13px}
.discipline-icon{color:var(--accent-text)}
.eyebrow,.eyebrow.light{color:var(--text-secondary)}
.section-heading h2{color:var(--text)}
.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1060px;margin-inline:auto}
.featured-grid .card-image-wrap{aspect-ratio:2/1}
.course-card{background:var(--surface);border-color:var(--border);box-shadow:var(--edge-highlight)}
.card-image-wrap{margin:7px 7px 0;border-radius:calc(var(--radius-lg) - 5px)}
.card-title{min-height:44px;font-size:20px}
.card-subtitle{min-height:0;margin-top:8px}
.card-body{padding:var(--space-medium)}
.course-facts{padding-block:18px;gap:12px 18px}
.registration-status{padding-bottom:15px}
.card-detail{border-color:var(--border-control);color:var(--text)}
.card-badge{color:var(--text);background:var(--surface)}
.card-bottom{gap:14px;padding-top:16px}
.events-section{background:var(--surface);color:var(--text);border-block:1px solid var(--border);padding-block:72px}
.event-intro h2{font-size:32px;color:var(--text);line-height:1.8}
.event-intro h2 em{border:0}
.event-intro>p:not(.eyebrow),.event-row p,.event-date small{color:var(--text-secondary)}
.event-row .event-fee,.event-row button{color:var(--text)}
.event-row{border-bottom-color:var(--border)}
.event-row button{border-color:var(--border-control)}
.event-row button:hover{background:var(--surface-soft)}
.event-feature{border:6px solid var(--pearl);border-radius:var(--radius-lg)}
.event-date{background:var(--background);border-color:var(--border)}
.button-cream{background:var(--surface);color:var(--primary);border-color:var(--border-control)}
.about-mark{background:var(--pearl);border:0}
.organization-section{background:var(--background);border-block-color:var(--border)}
.journal-section{background:var(--surface);border-block:1px solid var(--border)}
.invitation{background:var(--pearl);color:var(--text);margin-top:72px;border:0;border-radius:var(--radius-lg)}
.invitation p:not(.eyebrow){color:var(--text-secondary)}
.footer-wrapper{background:var(--surface);color:var(--text);border-top:1px solid var(--border)}
.footer-brand>p,.footer-group p,.footer-link,.footer-bottom{color:var(--text-secondary)}
.footer-bottom{border-color:var(--border)}
.events-section :focus-visible,.footer-wrapper :focus-visible,.invitation :focus-visible{outline-color:var(--primary);box-shadow:0 0 0 6px var(--background)}
.dialog,.dialog-body{background:var(--surface)}
.detail-decision{background:var(--background)}
.notice{background:var(--background)}
.catalog-toolbar{padding-block:12px 20px;border-bottom:1px solid var(--border)}
.filter-tabs{padding:5px;background:var(--pearl);border:1px solid var(--border);border-radius:calc(var(--radius) + 5px)}
.filter{border-color:transparent;border-radius:var(--radius)}
.filter.active{background:var(--surface);color:var(--text);border-color:var(--border-control);box-shadow:var(--edge-highlight)}
.breadcrumb{display:flex;align-items:center;gap:14px;color:var(--text-secondary);font-size:14px;margin-bottom:35px}
.breadcrumb a{min-height:44px;min-width:44px;display:flex;align-items:center}
[data-page=courses] #courses{padding-top:40px}
[data-page=courses] h1{font-size:36px;line-height:1.8;letter-spacing:-1px}
[data-page=courses] .catalog-note{margin-top:30px}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 .header{background:var(--glass-fill);border-color:var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(105%);backdrop-filter:blur(var(--glass-blur)) saturate(105%)}
 .header:has(.mobile-nav:not([hidden])){background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media(prefers-reduced-transparency:reduce){
 .header{background:var(--surface);border-color:var(--border);-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media(max-width:1200px){
 .hero{gap:40px}.header-inner{padding-inline:20px}
 .hero-visual,.hero-image{min-height:480px}
}
@media(max-width:900px){
 .hero{gap:30px}.hero h1{font-size:35px}.hero-visual,.hero-image{min-height:480px}
 .hero-actions{gap:13px}.hero-actions .button{font-size:15px}
 .hero-image-caption{left:21px;right:21px;bottom:20px}
 .hero-image-caption small{font-size:12px}
 .featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 .announcement{padding-inline:20px;min-height:34px;font-size:11px}
 .header{width:100%;margin:0;top:0;border-radius:0;border-inline:0}
 .header-inner{padding-inline:16px;min-height:76px;gap:4px}
 .header-inner .brand{gap:5px}
 .mobile-nav{max-height:calc(100dvh - 78px);border-radius:0;padding-bottom:20px}
 .hero{grid-template-columns:1fr;padding-block:30px 44px;gap:28px}
 .hero h1{font-size:clamp(29px,8vw,34px);line-height:1.75;letter-spacing:-.7px}
 .hero:before{width:150px;height:18px;top:10px}.hero:after{display:none}
 .hero-description{font-size:16px;margin-top:17px}
 .hero-actions{align-items:stretch;gap:10px;flex-direction:column;margin-top:24px}
 .hero-actions .button{font-size:16px;flex:auto;width:100%}
 .consultation-link{align-self:center;font-size:16px}
 .hero-footnote{font-size:14px;margin-top:16px}
 .hero-footnote small{font-size:14px}
 .hero-visual{height:360px;min-height:0;padding:6px}
 .hero-image{height:100%;min-height:0;object-position:64% center}
 .hero-image-caption{left:19px;right:19px;bottom:19px;padding:12px 14px}
 .featured-grid{grid-template-columns:1fr}
 .featured-grid .card-image-wrap,.card-image-wrap{aspect-ratio:3/2}
 .card-body{padding:22px}.card-title{font-size:21px}
 .events-section{padding-block:48px}.event-intro h2{font-size:28px}
 .invitation{margin-top:44px;margin-bottom:44px}
 .catalog-toolbar{padding-top:4px}
 .filter-tabs{gap:6px}
 .filter{padding-inline:6px}
 [data-page=courses] #courses{padding-top:22px}
 [data-page=courses] h1{font-size:28px}
 .breadcrumb{margin-bottom:22px;font-size:16px}
}
@media(max-width:360px){
 .header-inner{padding-inline:10px;gap:2px}.hero-visual{height:335px}
}
@media(prefers-reduced-motion:reduce){
 .header,a,button,input{transition:none!important}
}


/* Full category names stay readable without horizontal scrolling. */
[data-page=courses] #course-filters{flex-direction:column;align-items:stretch}
[data-page=courses] #course-filters .filter-tabs{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.4fr);min-width:0;gap:8px}
[data-page=courses] #course-filters .filter{min-width:0;min-height:48px;font-size:16px;line-height:1.9;white-space:normal;overflow-wrap:anywhere;padding:10px 14px}
[data-page=courses] #course-filters .filter.active:before{flex-shrink:0}
[data-page=courses] #course-filters .catalog-search{width:100%;max-width:360px;min-width:0;align-self:flex-start}
@media(max-width:700px){[data-page=courses] #course-filters .filter-tabs{grid-template-columns:minmax(0,1fr)}}
