/* A compact course prospectus: shared dates, courses by year, original posters. */
.xov-page{padding-top:28px;padding-bottom:70px}
.xov-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:center;padding:3px 0 35px}
.xov-heading h1{font:500 clamp(36px,3.7vw,53px)/1.4 'Noto Serif TC',serif;letter-spacing:.025em;margin:0 0 18px}
.xov-heading h1 .en{font-family:'Newsreader',Georgia,serif;font-size:1.12em;line-height:1.08;letter-spacing:-.025em}
.xov-lead{font-size:15px;line-height:1.95;color:#60665c;max-width:530px;margin:0}
.xov-heading .xc-early{margin-top:20px;margin-bottom:0}
.xov-calendar{padding-top:8px;color:var(--xc-green)}
.xov-calendar-heading{font-size:11px;letter-spacing:.08em;margin:0 0 15px;padding-bottom:13px;border-bottom:1px solid var(--xc-line)}
.xov-dates{display:grid;grid-template-columns:1fr 1fr}
.xov-dates>div+div{border-left:1px solid var(--xc-line);padding-left:30px;margin-left:16px}
.xov-dates>div>span{font-size:11px;color:var(--xc-muted)}
.xov-dates p{margin:8px 0 0;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;line-height:1.2}
.xov-dates strong{font:500 clamp(34px,3vw,45px)/1.1 'Newsreader',Georgia,serif;letter-spacing:-.035em}
.xov-dates p>span{font-size:12px;white-space:nowrap}
.xov-dates small{display:block;font-size:10px;color:var(--xc-muted);margin-top:8px}
.xov-calendar-note{margin:16px 0 0;font-size:11px;color:var(--xc-muted);line-height:1.8}
.xov-index{display:flex;gap:0;align-items:stretch;border-top:1px solid var(--xc-line);border-bottom:1px solid var(--xc-line);background:#fff;position:sticky;top:74px;z-index:25}
.xov-index a{display:flex;align-items:center;gap:16px;flex:1;padding:19px 0;text-decoration:none;font-size:13px;font-weight:500;line-height:1.6;white-space:nowrap}
.xov-index a+a{padding-left:26px;border-left:1px solid var(--xc-line);margin-left:26px}
.xov-index a:last-child{flex:0 0 auto;min-width:140px}
.xov-index small{font-size:10px;font-weight:400;color:var(--xc-muted)}
.xov-index a>span:last-child{margin-left:auto;padding-right:24px;color:var(--xc-green);transition:transform .25s}
.xov-index a:last-child>span:last-child{padding-right:0}
.xov-index a:hover{color:var(--xc-red)}
.xov-index a:hover>span:last-child{transform:translateY(3px)}
.xov-section{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:72px;padding:55px 0 52px;border-bottom:1px solid var(--xc-line);scroll-margin-top:147px}
.xov-copy{min-width:0}
.xov-section-heading h2{font-size:35px;margin:0 0 18px;line-height:1.4}
.xov-section-heading>.xc-eyebrow{font-size:10px;letter-spacing:.055em;margin-bottom:12px}
.xov-section-heading>p:last-child{font-size:15px;line-height:1.95;color:#62665d;margin:0 0 23px}
.xov-class-facts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0;padding:19px 0;border-top:1px solid var(--xc-line);border-bottom:1px solid var(--xc-line)}
.xov-class-facts dt{font-size:11px;color:var(--xc-muted);margin:0 0 5px}
.xov-class-facts dd{margin:0;font-size:16px;font-weight:500;color:var(--xc-green)}
.xov-class-facts dd small{display:block;font-size:10px;font-weight:400;color:var(--xc-muted);margin-top:3px;line-height:1.8}
.xov-level-note{font-size:12px;color:var(--xc-muted);margin:19px 0 25px}
.xov-course-group>h3{font:500 20px/1.5 'Noto Serif TC',serif;margin:27px 0 16px}
.xov-course-group+.xov-course-group{margin-top:35px}
.xov-poster{top:153px}
.xov-audience-booking{display:flex;width:max-content;max-width:100%;margin:18px auto 0;font-size:12px}
.xov-private{display:grid;grid-template-columns:1fr 1fr;gap:72px;padding:40px 0;border-bottom:1px solid var(--xc-line)}
.xov-private h2{font-size:31px}
.xov-private>div>p:not(.xc-eyebrow){font-size:14px;color:var(--xc-muted);line-height:2;margin:0 0 18px}
.xov-enrolment{padding-top:36px;scroll-margin-top:153px}
.christmas-editorial .ho-news{background:#f4f1ea;color:#31594c;border-radius:0;padding:35px 32px}
.christmas-editorial .ho-news h2{font-size:25px;font-weight:500;margin-bottom:20px}
.christmas-editorial .ho-form input[type=email]{border:1px solid #d5d9cf;border-radius:0}
.christmas-editorial .ho-form button{background:#31594c;border-radius:0}
.christmas-editorial .ho-msg{color:#31594c}
.christmas-editorial .ho-consent input:focus-visible{outline-color:#31594c}
@media(min-width:761px) and (max-height:850px){.xov-poster figure{max-width:min(100%,calc((100dvh - 260px)*.7072))}}
@media(max-width:1080px){.xov-hero,.xov-section,.xov-private{gap:38px}.xov-heading h1{font-size:39px}.xov-index a{gap:9px;font-size:12px}.xov-index small{display:none}.xov-index a+a{margin-left:17px;padding-left:17px}.xov-section-heading h2{font-size:31px}.xov-class-facts dd{font-size:14px}.xov-dates>div+div{padding-left:20px;margin-left:6px}.xov-calendar-heading{font-size:10px}}
@media(max-width:760px){.xov-page{padding:25px 22px 50px}.xov-hero{grid-template-columns:1fr;gap:26px;padding-bottom:27px}.xov-heading h1{font-size:35px;margin-bottom:15px}.xov-lead{font-size:14px}.xov-calendar{padding-top:0}.xov-calendar-note{font-size:10px}.xov-dates strong{font-size:38px}.xov-index{top:74px}.xov-index a{font-size:11px;gap:6px;flex:1;min-width:0;white-space:normal;padding:15px 0}.xov-index a+a{margin-left:12px;padding-left:12px}.xov-index a:last-child{flex:.6;min-width:0}.xov-index a>span:last-child{padding-right:0;font-size:11px}.xov-section{grid-template-columns:1fr;gap:30px;padding:35px 0 38px;scroll-margin-top:138px}.xov-copy{display:block}.xov-poster{grid-row:auto;margin-top:0;max-width:420px}.xov-section-heading h2{font-size:30px}.xov-section-heading>p:last-child{font-size:14px}.xov-class-facts{gap:16px}.xov-class-facts dd{font-size:14px}.xov-class-facts dd small{font-size:10px}.xov-private{grid-template-columns:1fr;gap:20px;padding-top:32px}.xov-enrolment{padding-top:28px}.xov-private h2{font-size:27px}.xov-private>div>p:not(.xc-eyebrow){font-size:13px}.christmas-editorial .ho-news{padding:29px 22px}.christmas-editorial .ho-news h2{font-size:23px}}
@media(max-width:380px){.xov-page{padding-left:18px;padding-right:18px}.xov-heading h1{font-size:31px}.xov-index a{font-size:10px}.xov-index a+a{margin-left:9px;padding-left:9px}.xov-class-facts dd{font-size:13px}.xov-dates strong{font-size:35px}}
@media(prefers-reduced-motion:reduce){.xov-index a:hover>span:last-child{transform:none}}
@media print{.xov-index,.xov-audience-booking{display:none!important}.xov-hero,.xov-section,.xov-private,.xov-enrolment{display:block}.xov-poster{max-width:300px;margin-top:20px}.xov-section{break-before:page}}

/* Make each course grade easy to scan. */
.xov-page .xc-grade{font-size:18px;font-weight:700;line-height:1.5;margin-top:2px}
.xov-page .xc-course-row{grid-template-columns:110px minmax(0,1fr)}
@media(max-width:560px){.xov-page .xc-grade{font-size:16px}.xov-page .xc-course-row{grid-template-columns:94px minmax(0,1fr);gap:14px}}

/* Early-bird ribbon links directly to the course choices. */
.xov-early-ribbon{position:relative;display:inline-flex;align-items:center;gap:22px;margin:25px 12px 10px 0;padding:17px 28px 17px 23px;background:#a7302e;color:#fff!important;border-radius:4px 4px 0 4px;text-decoration:none;box-shadow:0 5px 15px #7c282414;transition:transform .2s,box-shadow .2s,background .2s}
.xov-early-ribbon::after{content:"";position:absolute;right:0;bottom:-10px;border-top:10px solid #6f2424;border-right:12px solid transparent}
.xov-ribbon-saving{font-size:22px;font-weight:500;white-space:nowrap;line-height:1.1}
.xov-ribbon-saving b{font-family:'Newsreader',Georgia,serif;font-size:64px;font-weight:500;letter-spacing:-.04em}
.xov-ribbon-saving .en{font-size:15px}.xov-ribbon-saving .en b{font-size:48px}
.xov-ribbon-copy{display:grid;gap:4px;border-left:1px solid #ffffff55;padding-left:22px}
.xov-ribbon-label{font-size:12px;font-weight:600;letter-spacing:.12em}.xov-ribbon-deadline{font-size:13px;line-height:1.6}.xov-ribbon-action{font-size:11px;margin-top:3px}.xov-ribbon-action>span:last-child{display:inline-block;transition:transform .2s}
.xov-early-ribbon:hover{background:#922a29;transform:translateY(-2px);box-shadow:0 8px 20px #7c282426}.xov-early-ribbon:hover .xov-ribbon-action>span:last-child{transform:translateX(4px)}
.xov-early-ribbon:focus-visible{outline:2px solid #31594c;outline-offset:5px}.xov-early-ribbon[hidden]{display:none!important}
@media(max-width:560px){.xov-early-ribbon{gap:16px;padding:15px 20px;margin-top:22px}.xov-ribbon-copy{padding-left:16px}.xov-ribbon-saving b{font-size:56px}.xov-ribbon-deadline{font-size:12px}.xov-ribbon-saving .en b{font-size:39px}.xov-ribbon-saving .en{font-size:12px}}
@media(prefers-reduced-motion:reduce){.xov-early-ribbon,.xov-ribbon-action>span:last-child{transition:none}.xov-early-ribbon:hover,.xov-early-ribbon:hover .xov-ribbon-action>span:last-child{transform:none}}
