/* Scoped to the server-rendered OTDS information and campus content. */
.otds-content-polish{color:#18364d;line-height:1.65}
.otds-content-polish,.otds-content-polish *{box-sizing:border-box}
.otds-content-polish>section+section{margin-top:42px}
.otds-content-polish h2{color:#18364d;font-size:clamp(24px,3vw,34px);line-height:1.2;margin:0 0 16px}
.otds-content-polish h3{color:#18364d;font-size:19px;line-height:1.3;margin:0 0 12px}
.otds-content-polish p{margin:0 0 16px;max-width:74ch}
.otds-content-polish .otds-eyebrow{margin-bottom:10px}
.otds-content-polish .otds-button-row{margin:22px 0 0}
.otds-content-polish a:focus-visible{outline:3px solid #0b67a3;outline-offset:4px}
.otds-polish-introduction{padding:8px 0 12px;max-width:850px}
.otds-polish-introduction>p:last-child{font-size:19px;color:#536777}
.otds-polish-card-grid,.otds-contact-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.otds-polish-link-card{display:flex;flex-direction:column;padding:25px;border:1px solid #dce4e9;border-radius:12px;background:#fff;text-decoration:none!important;color:#18364d;min-width:0}
.otds-polish-link-card:hover{border-color:#8fa9bc;background:#f7fafc;color:#18364d}
.otds-polish-link-card p{color:#536777;margin-bottom:22px}
.otds-polish-link-card>span{font-size:14px;font-weight:700;margin-top:auto}
.otds-polish-campus-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.otds-polish-campus-links a{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:13px 16px;border:1px solid #dce4e9;border-radius:7px;color:#18364d;background:#fff;font-weight:600;text-decoration:none!important}
.otds-polish-campus-links a:hover{background:#f1f6fa;border-color:#8fa9bc}
.otds-polish-callout{padding:26px 28px;background:#f3f7fa;border:1px solid #dce4e9;border-radius:12px;margin:30px 0}
.otds-content-polish .otds-polish-callout p:last-child,.otds-polish-callout p:last-child{margin-bottom:0}
.otds-polish-standalone{max-width:1180px;margin:0 auto 44px}
.otds-polish-enquiry-form{margin-top:30px;max-width:900px}
.otds-campus-contact{margin:30px 0!important;padding:26px;border:1px solid #dce4e9;border-radius:12px;background:#f7fafc}
.otds-campus-contact .otds-contact-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));gap:24px}
.otds-contact-card{min-width:0}
.otds-contact-card address{font-style:normal;color:#536777;margin-bottom:12px;max-width:36ch}
.otds-contact-card p{font-size:15px;line-height:1.6;margin:0 0 7px}
.otds-contact-card .otds-contact-secondary{font-size:13px;color:#536777;margin-top:10px}
.otds-campus-contact .otds-campus-visit-note{border-top:1px solid #dce4e9;margin:20px 0 0;padding-top:16px;font-size:14px}
.otds-campus-training{margin:32px 0 44px}
.otds-campus-training .otds-polish-section-heading{max-width:850px;margin-bottom:20px}
.otds-content-polish .otds-training-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;list-style:none;padding:0!important;margin:0 0 24px!important}
.otds-content-polish .otds-training-list li{margin:0;padding:12px 14px;border:1px solid #e0e7ec;border-radius:6px;background:#fff;font-size:15px;line-height:1.45}
.otds-other-training{padding:22px 24px;border-left:3px solid #9ab3c5;background:#f4f8fa;margin:24px 0}
.otds-other-training p{font-size:15px}
.otds-other-training p:last-child{margin-bottom:0}
.otds-campus-photos{margin:32px 0 44px}
.otds-campus-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.otds-campus-photo-link{display:block;overflow:hidden;border:1px solid #dce4e9;border-radius:8px;background:#f3f7fa}
.otds-campus-photo-link:hover{border-color:#8fa9bc}
.otds-campus-photo-grid img.otds-campus-photo{display:block;width:100%;height:auto;margin:0}

/* Progressive enhancement: the original gallery remains usable without JavaScript. */
.otds-campus-photos.is-slideshow .otds-campus-photo-grid{display:block;position:relative;overflow:hidden;aspect-ratio:16/10;gap:0;border:1px solid #dce4e9;border-radius:8px;background:#f3f7fa;touch-action:pan-y pinch-zoom}
.otds-campus-photo-track{display:flex;width:100%;height:100%;will-change:transform;transition:none}
.otds-campus-photo-track.is-moving{transition:transform 350ms ease}
.otds-campus-photo-slide{flex:0 0 100%;min-width:0;height:100%}
.otds-campus-photos.is-slideshow .otds-campus-photo-slide>.otds-campus-photo-link{display:block;height:100%;width:100%;border:0;border-radius:0}
.otds-campus-photos.is-slideshow .otds-campus-photo-grid img.otds-campus-photo{display:block;width:100%;height:100%;object-fit:contain}
.otds-campus-photos.is-slideshow .otds-campus-photo-link:focus-visible{outline:3px solid #0b67a3;outline-offset:-4px}
.otds-campus-photo-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}
.otds-campus-photo-controls button{font:inherit;font-size:14px;font-weight:600;color:#18364d;background:#fff;border:1px solid #bdcad7;border-radius:5px;min-height:44px;min-width:44px;padding:9px 14px;cursor:pointer}
.otds-campus-photo-controls button:hover{background:#f3f7fa;border-color:#8fa9bc}
.otds-campus-photo-count{font-size:14px;min-width:50px;text-align:center;color:#536777}
.otds-campus-photo-controls [data-campus-photo-rotation]{margin-left:auto}
@media(max-width:420px){.otds-campus-photo-controls [data-campus-photo-rotation]{width:100%;margin-left:0}}
@media(prefers-reduced-motion:reduce){.otds-campus-photo-track.is-moving{transition:none}}

@media(max-width:760px){
 .otds-campus-photo-grid{grid-template-columns:minmax(0,1fr)}
 .otds-polish-card-grid,.otds-contact-card-grid{grid-template-columns:minmax(0,1fr)}
 .otds-polish-campus-links{grid-template-columns:repeat(2,minmax(0,1fr))}
 .otds-content-polish .otds-training-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .otds-campus-contact,.otds-polish-callout{padding:22px 20px}
 .otds-content-polish>section+section{margin-top:32px}
}
@media(max-width:420px){
 .otds-polish-campus-links,.otds-content-polish .otds-training-list{grid-template-columns:minmax(0,1fr)}
 .otds-polish-link-card{padding:22px}
 .otds-content-polish .otds-button-row>a.otds-btn{width:100%;justify-content:center}
}
