/* One arrow geometry at every breakpoint; touch layouts retain the desktop finish. */
body .ui-arrow{display:inline-block;width:16px;height:16px;min-width:16px;flex:0 0 16px;vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
body .button>.ui-arrow{width:16px;height:16px;min-width:16px;background:none;border-radius:0;margin:0;color:inherit}
body .button>span:has(>.ui-arrow),body .header-enquire>span{flex-shrink:0;width:21px;height:21px}
body .button>span>.ui-arrow,body .header-enquire>span>.ui-arrow{width:13px;height:13px;min-width:13px;flex-basis:13px;vertical-align:0}
body.home #hero-cta:after{content:'';width:21px;height:21px;flex:0 0 21px;background:#fff url('/assets/arrow-diagonal.svg') center/13px 13px no-repeat}
body .cover-arrow>.ui-arrow{width:16px;height:16px}
body .carousel-controls>button>.ui-arrow{width:20px;height:20px;flex-basis:20px}
.room-diagram i:after{content:'';width:16px;height:16px;top:-8px;background:currentColor;mask:url('/assets/arrow-right.svg') center/contain no-repeat}
body .button,body .header-enquire{white-space:normal;flex-shrink:0}
body a,body button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
body :focus-visible{outline:2px solid currentColor;outline-offset:5px}
body img,body video{max-width:100%}
body .mega-menu{overscroll-behavior:contain;scroll-padding-top:115px}
@media(min-width:761px) and (max-width:1100px){
 .desktop-navigation{display:none}
 body .site-header .brand-name{font-size:21px}
 body.programme .programme-hero h1{font-size:clamp(34px,4.3vw,44px)}
 body.programme .programme-hero-grid{width:55%}
 body.programme .programme-hero-actions{max-width:57%}
 body:not(.home) .rooms-grid,body:not(.home) .lab-grid,body:not(.home) .observe-layout{gap:24px}
 body:not(.home) .room-card,body:not(.home) .lab-file,body:not(.home) .lab-feedback,body:not(.home) .observation-board{padding:25px}
}
@media(max-width:760px){
 html{scroll-padding-top:155px}
 body{ -webkit-text-size-adjust:100%;text-size-adjust:100%}
 body .site-header,body .site-header.scrolled{padding-inline:20px}
 body .menu-button{min-height:44px}
 body .header-enquire{min-height:44px;padding:5px 7px 5px 14px;gap:14px;font-size:12px}
 body .header-enquire span{width:21px;height:21px;font-size:14px}
 body .button{min-height:44px;padding:11px 14px;line-height:1.35;font-size:13px;gap:16px;max-width:100%}
 body .button>span:has(>.ui-arrow){margin:-2px -6px -2px 0}
 body .text-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;line-height:1.5;font-size:14px;max-width:100%}
 body .text-link>.ui-arrow{flex-shrink:0}
 body .video-toggle{width:44px;height:44px;min-height:44px}
 body .carousel-controls>button{width:44px;height:44px;display:grid;place-items:center}
 .carousel-dots{gap:0}
 .carousel-dots button{width:30px;height:44px;border:0;border-radius:0;background:transparent;display:grid;place-items:center}
 .carousel-dots button:after{content:'';width:6px;height:6px;border-radius:50%;background:#b6b7b1}
 .carousel-dots button[aria-pressed=true]{background:transparent}
 .carousel-dots button[aria-pressed=true]:after{background:#171a13}
 body .footer-identity .to-top{width:44px;height:44px;flex-shrink:0}
 body .footer-top>div>a,body .footer-top>div>button{min-height:36px;display:flex;align-items:center;margin-bottom:3px;font-size:13px;line-height:1.45}
 body .footer-bottom{align-items:flex-start;gap:14px;line-height:1.6}
 body .footer-bottom a{overflow-wrap:anywhere}
 body .menu-secondary a{min-height:44px;display:flex;align-items:center}
 body .menu-panel-columns a{min-height:48px;align-items:center}
 body .menu-primary>button{min-height:58px}
 body .mega-menu{padding-bottom:max(35px,env(safe-area-inset-bottom));scroll-padding-top:110px}
 body .dialog-close{min-width:44px;min-height:44px}
 body dialog{max-height:calc(100dvh - 32px);padding-top:58px}
 body dialog input,body dialog select,body dialog textarea{font-size:16px}
 body .popular-searches{flex-wrap:wrap;gap:8px}
 body .popular-searches button,body .access-controls button{min-height:44px}
 body .search-result{font-size:18px;overflow-wrap:anywhere}
 body.home .hero{min-height:570px;height:100vh;height:100svh;height:100dvh;max-height:none}
 body.home .hero-content{bottom:90px}
 body.home .hero h1{font-size:clamp(34px,9.6vw,44px)}
 body.home .method-tabs button{min-height:44px;font-size:12px;padding:10px 12px}
 body.home .method-tabs button span{flex-shrink:0}
 body.home .method-paper{width:100%;padding:24px;transform:none}
 body.home .method-paper>p,body.home .brief-objective p{font-size:14px;line-height:1.6}
 body.home .training-step p,body.home .commission-steps p{font-size:14px;line-height:1.6}
 body.home .home-programmes p{font-size:14px;line-height:1.6}
 body.home .programme-card-footer{font-size:12px;gap:16px;align-items:flex-start}
 body.home .programme-card-footer>span{display:flex;gap:6px;align-items:center}
 body.home .programme-card-footer .ui-arrow{width:14px;height:14px;min-width:14px}
 body.home .vision-columns{font-size:14px;line-height:1.65}
 body.home .faculty-heading>p,body.home .practice details p{font-size:14px;line-height:1.6}
 body.home .practice summary{min-height:44px;font-size:16px}
 body.home .practice details p{padding-left:0}
 body.home .feature-copy{padding-inline:20px;max-width:100%}
 body.home .feature-copy a{font-size:18px;line-height:1.4}
 body.home .team-actions{flex-wrap:wrap;gap:16px}
 body:not(.home) main .breadcrumbs{font-size:11px;line-height:1.6;overflow-wrap:anywhere}
 body:not(.home) .hero-principles strong{font-size:12px}
 body:not(.home) .hero-principles span{font-size:10px}
 .page-index{padding-block:10px;gap:16px}
 .page-index a{min-height:44px;display:flex;align-items:center;font-size:12px}
 .page-index>span{font-size:10px;line-height:1.5;flex:0 0 63px}
 body:not(.home) .lab-grid,body:not(.home) .lab-file,body:not(.home) .lab-feedback{min-width:0}
 body:not(.home) .lab-facts>div{min-width:0;grid-template-columns:22px minmax(0,1fr)}
 body:not(.home) .lab-facts small{overflow-wrap:anywhere}
 body:not(.home) .room-diagram{min-width:0;gap:10px}
 body:not(.home) .room-diagram span{padding:16px!important}
 body:not(.home) .cycle-card p{font-size:14px;line-height:1.6}
 body.programme .dossier-nav{padding-block:10px;margin-bottom:45px}
 body.programme .dossier-nav a{min-height:44px;display:flex;align-items:center;font-size:12px;padding:9px 13px}
 body.programme .programme-spec .spec span{font-size:10px;line-height:1.4}
 body.programme .programme-spec .spec strong{font-size:15px;line-height:1.5}
 body.programme .module{grid-template-columns:minmax(0,1fr);gap:14px}
 body.programme .module>span{font-size:11px}
 body.programme .module p,body.programme .definition p,body.programme .sqe-steps p,body.programme .sqe-difference p,body.programme .sqe-review-details p,body.programme .firm-method-grid p{font-size:14px!important;line-height:1.6}
 body.programme .sqe-day-detail summary,body.programme .schedule-disclosure>summary{min-height:52px;font-size:13px;align-items:center}
 body.programme .sqe-day-title p,body.programme .firm-day-head p,body.programme .sqe-day-body p,body.programme .sqe-day-body li,body.programme .dossier-section ul{font-size:14px;line-height:1.6}
 body.programme .sqe-schedule-row,body.programme .firm-schedule-row{min-width:0}
 body.programme .faq summary{min-height:52px;align-items:center;font-size:16px;line-height:1.4}
 body.programme .faq summary:after{flex-shrink:0}
 body.catalogue .finder-layout,body.catalogue .finder-results,body.catalogue .finder-grid{min-width:0}
 body.catalogue .results-bar{gap:10px;align-items:center;flex-wrap:wrap}
 body.catalogue .results-bar label{min-width:0;font-size:11px}
 body.catalogue .results-bar select{width:140px;font-size:16px;min-height:44px}
 body.catalogue .category-tabs button{min-height:44px;font-size:12px;padding:10px 14px}
 body.catalogue .finder-search input,body.catalogue .finder-filters select{font-size:16px;min-height:48px}
 body.catalogue .finder-filters label{font-size:11px}
 body.catalogue .finder-card p,body.catalogue .format-options p{font-size:14px;line-height:1.6}
 body.enquiry .enquiry-form-panel input,body.enquiry .enquiry-form-panel select,body.enquiry .enquiry-form-panel textarea{font-size:16px;min-height:48px}
 body.enquiry .enquiry-form-panel label{font-size:11px;line-height:1.5}
 body.enquiry .enquiry-steps{gap:12px;counter-reset:steps;list-style:none}
 body.enquiry .enquiry-steps li{flex:1;font-size:11px;line-height:1.5}
 body.enquiry .enquiry-steps li::marker{content:''}
 body.enquiry .enquiry-form-panel{padding:28px 20px}
 body.enquiry .enquiry-notice{font-size:12px;line-height:1.6}
 body.enquiry #enquiry-review{scroll-margin-top:115px}
 body.enquiry #review-details dd{overflow-wrap:anywhere}
 body.legal .legal-content a{overflow-wrap:anywhere}
 body.legal .legal-aside nav a{min-height:44px;display:flex;align-items:center}
}
@media(max-width:480px){
 body.home .vision-columns{grid-template-columns:1fr;gap:20px}
 body:not(.home) .cycle-grid,body.programme .definition,body.programme .sqe-steps,body.programme .sqe-difference,body.programme .sqe-review-details,body.programme .firm-method-grid,body.programme .sqe-outcomes,body.programme .firm-outcomes{grid-template-columns:1fr}
 body:not(.home) .cycle-card{min-height:0;padding:26px}
 body:not(.home) .cycle-card h3{margin-top:25px}
 body:not(.home) .lab-facts>div{grid-template-columns:22px minmax(0,1fr)}
 body:not(.home) .lab-facts small{grid-column:2}
 body.catalogue .results-bar label{width:100%;justify-content:space-between}
 body.catalogue .results-bar select{width:calc(100% - 65px)}
}
@media(max-width:360px){
 body .site-header,body .site-header.scrolled{padding-inline:16px}
 body .menu-button{font-size:11px;gap:6px}
 body .header-enquire{padding-left:11px;gap:8px}
 body.home .method-tabs{grid-template-columns:1fr}
 body.home .method-stage{gap:24px}
 body.home .method-paper{padding:22px 18px}
 body.home .method-icon{height:115px}
 body.home .programme-card-footer{flex-direction:column;gap:12px}
 body.home .commission-steps{grid-template-columns:1fr}
 body:not(.home) main h1{font-size:34px}
 body:not(.home) .hero-principles{gap:12px}
 body:not(.home) .hero-principles strong{font-size:11px}
 body.programme .programme-hero h1{font-size:34px}
 body.programme .firm-price-row{padding-inline:10px;grid-template-columns:1fr 1fr 1fr;font-size:10px}
 body .footer-identity .logo .brand-name{font-size:17px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:760px){
 body.home .hero-content .button{min-height:44px;padding:10px 8px 10px 15px;font-size:13px}
 body .carousel-dots button[aria-pressed=true]{width:30px}
 body:not(.home) .lab-file{transform:none}
}
@media(max-width:760px){
 body .menu-button[aria-expanded=true] .menu-icon{position:relative;width:17px;height:17px;border:0;transform:none}
 body .menu-button[aria-expanded=true] .menu-icon:before,body .menu-button[aria-expanded=true] .menu-icon:after{content:'';position:absolute;left:0;top:8px;width:17px;height:0;border-top:1.5px solid currentColor;transform:rotate(45deg)}
 body .menu-button[aria-expanded=true] .menu-icon:after{transform:rotate(-45deg)}
}
@media(max-width:480px){body .menu-panel-columns{grid-template-columns:minmax(0,1fr);gap:30px}}
body .announcement .ui-arrow,body .footer-bottom .ui-arrow{width:12px;height:12px;min-width:12px;vertical-align:-2px}
body .programme-card-footer .ui-arrow{width:14px;height:14px;min-width:14px}
@media(min-width:761px) and (max-width:1100px){
 body .button,body .menu-button,body .header-enquire,body.home .hero-content .button{min-height:44px}
 body input,body select,body textarea{font-size:16px;min-height:44px}
 body .category-tabs button{min-height:44px}
}
@media(max-width:760px){
 html{scroll-padding-top:165px}
 body.programme .dossier-section,body:not(.home) .editorial-content>section,body.legal .legal-content section,body.enquiry #enquiry-review{scroll-margin-top:0}
 body .footer-top>div>a,body .footer-top>div>button{min-height:44px}
}
