:root{--navy: #00154a;--navy-2: #071f60;--orange: #ff8f3b;--orange-dark: #d76416;--ink: #0f172a;--muted: #64748b;--line: #e2e8f0;--soft: #f7f9fc;--white: #ffffff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--white)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:292px minmax(0,1fr);height:100vh;min-height:100vh;overflow:hidden;background:var(--white)}.sidebar{position:sticky;top:0;align-self:start;display:flex;flex-direction:column;height:100vh;padding:24px 20px;color:var(--white);background:linear-gradient(180deg,var(--navy),#021038);overflow:hidden}.sidebar-top{display:grid;gap:14px}.brand-logo{width:118px;height:118px;object-fit:contain;padding:0;border-radius:0;background:transparent}.sidebar h1{margin:6px 0 0;max-width:220px;font-size:22px;line-height:1.12;letter-spacing:0}.eyebrow{margin:0 0 10px;color:var(--orange);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.nav-list{display:grid;gap:3px;margin:18px 0}.nav-list button,.sub-nav button,.language,.mobile-menu,.mobile-close{border:0;background:transparent}.nav-list button,.sub-nav button{display:flex;align-items:center;justify-content:space-between;min-height:37px;padding:8px 10px;color:#ffffffc7;border-radius:7px;text-align:left}.nav-list button:hover,.nav-list button.active,.sub-nav button:hover,.sub-nav button.active{color:var(--white);background:#ffffff1c}.nav-group{display:grid;gap:3px}.sub-nav{display:grid;gap:2px;margin:0 0 3px 12px;padding-left:10px;border-left:1px solid rgba(255,255,255,.2)}.sub-nav button{min-height:32px;padding:6px 10px;font-size:14px;color:#ffffffad}.sub-nav button.active{color:var(--white);background:#ffffff24}.sidebar-footer{margin-top:auto;display:grid;gap:8px}.language,.admin-link,.footer-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;color:var(--white);border:1px solid rgba(255,255,255,.22);border-radius:7px;text-decoration:none}.admin-link,.footer-link{color:#ffffffc7;font-size:14px}.footer-link{background:transparent}.content-area{height:100vh;min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--white)}.page{width:min(1080px,calc(100% - 56px));margin:0 auto;padding:46px 0 64px}.page-heading{max-width:760px;margin-bottom:30px}.page-heading h2,.home-main h2{margin:0;color:var(--navy);font-family:Georgia,Times New Roman,serif;font-size:clamp(42px,6vw,76px);line-height:.96;letter-spacing:0}.rich-text{max-width:820px}.rich-text p{margin:0 0 16px;color:#34405b;font-size:17px;line-height:1.72}.rich-text p:last-child{margin-bottom:0}.about-grid .rich-text p{font-size:15.5px;line-height:1.65;color:var(--muted)}.page-heading p,.lead{color:#34405b;font-size:17px;line-height:1.72}.home-grid{display:grid;grid-template-columns:minmax(0,1.2fr) 370px;gap:34px;align-items:start}.home-main{padding-top:24px}.home-main h2{font-size:clamp(56px,7vw,92px)}.lead{max-width:690px;margin:24px 0}.hero-actions,.admin-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.primary,.secondary,.link-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:7px;border:1px solid transparent;font-weight:800;text-decoration:none}.primary{color:#111827;background:var(--orange)}.primary:hover{background:#ff9f55}.primary:disabled{opacity:.58;cursor:not-allowed}.secondary,.link-button{color:var(--navy);background:var(--white);border-color:var(--line)}.secondary:hover,.link-button:hover{border-color:var(--navy)}.notice-board,.list-panel,.contact-form,.contact-aside,.admin-panel{border:1px solid var(--line);border-radius:8px;background:var(--white)}.notice-board{padding:20px}.section-heading.compact{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.section-heading h3,.carousel-shell h3,.class-row h3,.contact-aside h3,.admin-panel h1,.admin-panel h2{margin:0;color:var(--navy);letter-spacing:0}.section-heading span{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;color:var(--navy);background:#fff2e8;font-weight:800}.notice{padding:14px 0;border-top:1px solid var(--line)}.notice:first-of-type{border-top:0}.notice time{color:var(--muted);font-size:13px}.notice h4{margin:6px 0;color:var(--ink)}.notice p{margin:0;color:var(--muted);line-height:1.5}.notice.high{border-left:3px solid var(--orange);padding-left:12px}.quick-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:34px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.quick-strip button{display:flex;justify-content:space-between;align-items:center;min-height:68px;padding:0 18px;border:0;color:var(--navy);background:var(--white);font-weight:800}.quick-strip button:hover{background:var(--soft)}.carousel-shell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:34px;align-items:center;padding:18px 0 0}.carousel-shell p{color:var(--muted);line-height:1.6}.carousel{position:relative;display:grid;place-items:center;min-height:360px;overflow:visible}.carousel img{display:block;width:min(100%,720px);max-height:560px;height:auto;object-fit:contain;border-radius:8px}.carousel-controls{position:absolute;left:16px;right:16px;bottom:16px;display:flex;justify-content:space-between;align-items:center}.carousel-controls button{width:40px;height:40px;border:0;border-radius:999px;color:var(--navy);background:#ffffffeb}.dots{display:flex;gap:7px;padding:8px 10px;border-radius:999px;background:#ffffffd9}.dots .dot{width:8px;height:8px;padding:0;background:#cbd5e1}.dots .dot.active{width:22px;background:var(--orange)}.list-panel{overflow:hidden}.merged-block{margin-top:22px}.merged-block>h3{margin:0 0 10px;color:var(--navy)}.about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.about-grid article{padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--white)}.about-grid h3{margin:0 0 10px;color:var(--navy)}.about-grid p{margin:0;color:var(--muted);line-height:1.65}.class-row{display:flex;justify-content:space-between;gap:20px;padding:22px;border-top:1px solid var(--line)}.class-row:first-child{border-top:0}.class-copy{min-width:0}.class-button{width:100%;border:0;background:var(--white);text-align:left}.class-button:hover{background:#f8fafc}.class-button:focus-visible{outline:2px solid #1685ff;outline-offset:-2px}.class-row-icon{align-self:center;flex:0 0 auto;color:var(--muted)}.class-fee{display:inline-flex;margin-top:10px;padding:7px 10px;border-radius:7px;color:var(--navy)!important;background:#fff7ed;font-weight:800}.class-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,42%);gap:28px;align-items:start}.class-detail-copy{min-width:0}.class-detail-image{width:100%;max-height:620px;height:auto;object-fit:contain;object-position:center;border-radius:8px}.detail-card{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--white)}.detail-card h3{margin:0 0 8px;color:var(--navy)}.detail-card p{color:var(--muted);line-height:1.6}.detail-schedule{display:grid;gap:8px}.detail-schedule button{display:grid;grid-template-columns:minmax(150px,1fr) auto auto;align-items:center;gap:12px;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;color:var(--navy);background:var(--soft);text-align:left}.detail-schedule span{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.event-button{width:100%;border-top:0;border-right:0;border-bottom:0;text-align:left;cursor:pointer}.event-button:hover{background:#f8fafc}.back-button{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px}.class-row p{color:var(--muted);line-height:1.62}.class-row.with-uniform{align-items:center}.class-uniform{width:clamp(260px,34%,360px);max-height:260px;height:auto;flex:0 0 auto;object-fit:contain;object-position:center;border-radius:8px}.meta{color:var(--orange-dark)!important;font-weight:800}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.calendar-toolbar strong{color:var(--navy);font-size:18px;text-align:center;min-width:210px}.calendar-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.icon-button{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:7px;color:var(--navy);background:var(--white)}.today-button{min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:7px;color:var(--navy);background:var(--white);font-weight:800}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.segmented button{min-width:94px;padding:11px 14px;border:0;background:var(--white);color:var(--navy);font-weight:800}.segmented .selected{background:var(--navy);color:var(--white)}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;padding-bottom:4px}.calendar-day{min-width:0;min-height:260px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.calendar-day h3{margin:0 0 12px;color:var(--navy);font-size:14px;line-height:1.25}.calendar-week-timetable{--hour-height: 120px;--minute-height: calc(var(--hour-height) / 60);display:grid;grid-template-columns:72px repeat(7,minmax(148px,1fr));gap:0;min-width:1108px;overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--line)}.week-time-spacer,.week-day-heading{position:sticky;top:0;z-index:2;min-height:44px;padding:11px 10px;background:#f8fafc;color:var(--navy);font-weight:800;border-bottom:1px solid var(--line)}.week-time-spacer{left:0;z-index:3}.week-time-axis{position:sticky;left:0;z-index:1;display:grid;grid-template-rows:repeat(var(--hour-count),var(--hour-height));background:#f8fafc}.week-time-label{padding:8px 8px 0;border-top:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:800;text-align:right}.week-day-track{position:relative;min-width:0;height:calc(var(--hour-count) * var(--hour-height));background:var(--soft);overflow:hidden}.week-hour-grid{display:grid;grid-template-rows:repeat(var(--hour-count),var(--hour-height));height:100%}.week-hour-block{border-top:1px solid rgba(15,23,42,.11);background:linear-gradient(to bottom,#ffffff57,#ffffff14)}.week-event-position{position:absolute;left:8px;right:8px;top:calc(var(--event-start) * var(--minute-height) + 6px);height:max(58px,calc(var(--event-duration) * var(--minute-height) - 8px));z-index:1}.week-event-position .event{height:100%;margin:0;padding:7px 9px;align-content:start;box-shadow:0 1px #0f172a08;overflow:hidden}.week-event-position .event strong{display:block;color:var(--navy);font-size:14px;line-height:1.18;overflow-wrap:normal;word-break:normal}.week-event-position .event span{font-size:12px}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));gap:1px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--line)}.calendar-weekdays{display:contents}.calendar-weekdays span{padding:10px;color:var(--navy);background:#f8fafc;font-weight:800;text-align:center}.month-cell{min-height:124px;padding:9px;background:var(--white)}.month-cell.muted-month{background:#f8fafc;color:#94a3b8}.month-date{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-bottom:6px;color:var(--navy);font-weight:800}.event{display:grid;min-width:0;gap:6px;margin-top:10px;padding:10px;border-radius:7px;background:var(--white);border-left:3px solid var(--navy)}.event strong{min-width:0;overflow-wrap:anywhere;line-height:1.25}.event span{display:inline-flex;align-items:center;min-width:0;gap:6px;color:var(--muted);font-size:13px;line-height:1.25;overflow-wrap:anywhere}.event span svg{flex:0 0 auto}.event.adult{border-left-color:var(--orange)}.event.conditioning{border-left-color:#0f766e}.event.compact{gap:3px;margin-top:5px;padding:7px;font-size:12px}.event.compact span{font-size:12px}.location-page iframe{width:100%;height:420px;border:0;border-radius:8px;margin-bottom:20px}.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.contact-layout .page-heading{grid-column:1 / -1}.contact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px}.contact-form label,.admin-panel label{display:grid;gap:7px;color:var(--navy);font-weight:800}.contact-form label:nth-last-of-type(1){grid-column:1 / -1}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:7px;padding:12px;color:var(--ink);background:var(--white)}textarea{resize:vertical}.contact-form .primary{grid-column:1 / -1}.success,.error{display:inline-flex;gap:8px;align-items:center;margin:0;font-weight:800}.success{color:#0f766e}.error{color:#b91c1c}.contact-aside{padding:20px;align-self:start}.contact-aside p{display:flex;gap:8px;color:var(--muted);line-height:1.5}.new-joiner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.lesson-guide{margin-top:24px}.lesson-guide>h3{margin:0 0 14px;color:var(--navy)}.lesson-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lesson-guide article{padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--white)}.lesson-guide h4{margin:0 0 10px;color:var(--navy)}.lesson-guide ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.62}.lesson-guide li+li{margin-top:5px}.mobile-menu,.mobile-close{display:none}.admin-page{min-height:100vh;padding:42px;background:var(--soft)}.admin-panel{max-width:980px;margin:0 auto 18px;padding:24px}.admin-panel p{color:var(--muted);line-height:1.6}.admin-panel label{margin:14px 0}.notice-editor-list{display:grid;gap:14px;margin-top:18px}.notice-editor{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--white)}.notice-editor-top{display:grid;grid-template-columns:minmax(150px,1fr) minmax(130px,180px) auto;align-items:end;gap:12px}.notice-editor textarea{resize:vertical}.secondary.danger{color:#b91c1c;border-color:#fecaca}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--navy)}@media(max-width:920px){.app-shell{display:block}.content-area{height:auto;min-height:100vh;overflow:visible}.mobile-menu{display:inline-flex;position:sticky;top:0;z-index:12;align-items:center;gap:8px;width:100%;min-height:52px;padding:0 18px;color:var(--navy);background:var(--white);border-bottom:1px solid var(--line);font-weight:800}.mobile-close{display:grid;position:absolute;right:14px;top:14px;place-items:center;width:38px;height:38px;color:var(--white)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:min(310px,86vw);transform:translate(-105%);transition:transform .2s ease;overflow:hidden}.sidebar.is-open{transform:translate(0)}.page{width:min(100% - 32px,760px);padding-top:28px}.home-grid,.carousel-shell,.contact-layout,.about-grid,.lesson-guide-grid,.class-detail-grid{grid-template-columns:1fr}.quick-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-form,.notice-editor-top{grid-template-columns:1fr}.carousel{min-height:320px}.carousel img{width:min(100%,620px);max-height:440px}.calendar-week-grid{grid-template-columns:1fr}.calendar-month-grid{grid-template-columns:repeat(7,minmax(110px,1fr));overflow-x:auto}.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-controls{justify-content:flex-start;width:100%}.calendar-controls strong{min-width:0;text-align:left}.calendar-day{min-height:0}}@media(max-width:560px){.page-heading h2,.home-main h2{font-size:42px}.calendar-month-grid{grid-template-columns:repeat(7,minmax(82px,1fr))}.calendar-weekdays span,.month-cell{padding:7px}.event.compact{padding:6px}.quick-strip{grid-template-columns:1fr}.hero-actions,.admin-actions,.new-joiner{align-items:stretch;flex-direction:column}.primary,.secondary,.link-button{width:100%}.admin-page{padding:18px}}@media(max-width:700px){.class-row.with-uniform{align-items:stretch;flex-direction:column}.class-row-icon{display:none}.detail-schedule button{grid-template-columns:1fr}.class-uniform{width:min(100%,520px);max-height:420px;align-self:center}}:root{--ivory: #fbf7f1;--warm: #f3ebe1;--blush: #d7a8a1;--charcoal: #1f2933}.page{width:min(1180px,calc(100% - 56px))}.hero-stage{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:38px;align-items:center;min-height:560px;padding:18px 0 30px}.hero-copy{max-width:640px}.hero-copy h2{margin:0;color:var(--navy);font-family:Georgia,Times New Roman,serif;font-size:clamp(58px,7vw,104px);line-height:.93;letter-spacing:0}.hero-image,.editorial-panel img,.editorial-split img,.booking-cta img,.media-aside img,.image-route-card img,.class-card img,.uniform-card img{display:block;max-width:100%;height:auto;border:0;background:transparent}.hero-image{width:100%;max-height:660px;object-fit:contain;border-radius:8px}.image-route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0 36px}.image-route-card{display:grid;gap:14px;align-content:start;min-width:0;padding:0 0 18px;border:0;border-bottom:1px solid var(--line);color:var(--ink);background:transparent;text-align:left}.image-route-card img{width:100%;border-radius:8px}.image-route-card:hover strong,.class-card:hover strong{color:var(--orange-dark)}.route-card-copy,.class-card-copy{display:grid;gap:8px}.route-card-copy strong,.class-card-copy strong,.editorial-panel h3,.timetable-preview h3,.booking-cta h3{color:var(--navy);font-family:Georgia,Times New Roman,serif;font-size:28px;line-height:1.08;letter-spacing:0}.route-card-copy span:last-child,.class-card-copy>span:not(.meta):not(.card-action),.editorial-panel p,.booking-cta p{color:var(--muted);line-height:1.6}.home-panels{display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:24px;align-items:stretch;margin:12px 0 28px}.editorial-panel{display:grid;grid-template-columns:minmax(220px,36%) minmax(0,1fr);gap:22px;align-items:center;padding:22px;border-radius:8px;background:var(--ivory)}.editorial-panel img{width:100%;max-height:420px;object-fit:contain;border-radius:8px}.timetable-preview,.booking-cta{display:grid;align-items:center;gap:18px;margin:28px 0;padding:24px;border-radius:8px;background:linear-gradient(135deg,var(--ivory),#fff)}.timetable-preview{grid-template-columns:minmax(180px,.8fr) minmax(0,1.3fr) auto;border:1px solid var(--line)}.preview-events{display:grid;gap:8px}.preview-events button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;color:var(--navy);background:#ffffffbd;text-align:left}.preview-events span{color:var(--muted)}.booking-cta{grid-template-columns:minmax(280px,.86fr) minmax(0,1fr);background:var(--navy);color:var(--white);overflow:hidden}.booking-cta img{width:100%;max-height:420px;object-fit:contain;border-radius:8px}.booking-cta h3{color:var(--white);font-size:clamp(32px,4vw,54px)}.booking-cta p{color:#ffffffc7}.class-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.class-card{display:grid;gap:16px;min-width:0;padding:0 0 18px;border:0;border-bottom:1px solid var(--line);color:var(--ink);background:transparent;text-align:left}.class-card img{width:100%;max-height:520px;object-fit:contain;border-radius:8px}.class-card-copy strong{font-size:26px}.card-action{display:inline-flex;align-items:center;gap:6px;color:var(--navy);font-weight:800}.class-detail-grid{grid-template-columns:minmax(0,1fr) minmax(360px,44%)}.class-detail-image{width:100%;max-height:700px;object-fit:contain;border-radius:8px}.uniform-card img{width:min(100%,420px);max-height:520px;object-fit:contain;border-radius:8px}.editorial-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,42%);gap:34px;align-items:start;margin-bottom:28px}.editorial-split img{width:100%;max-height:640px;object-fit:contain;border-radius:8px}.media-aside img{width:100%;margin-bottom:16px;border-radius:8px}.carousel{min-height:0}.carousel img{max-height:620px}@media(max-width:1080px){.hero-stage,.home-panels,.editorial-panel,.timetable-preview,.booking-cta,.editorial-split{grid-template-columns:1fr}.hero-stage{min-height:0}.image-route-grid,.class-card-grid,.preview-events button{grid-template-columns:1fr}}@media(max-width:920px){.page{width:min(100% - 32px,780px)}.hero-copy h2{font-size:52px}.route-card-copy strong,.class-card-copy strong{font-size:24px}.hero-image,.editorial-split img,.class-detail-image{max-height:560px}}@media(max-width:560px){.hero-copy h2{font-size:42px}.hero-stage{gap:22px;padding-top:8px}.image-route-card,.class-card{gap:12px}.editorial-panel,.timetable-preview,.booking-cta{padding:18px}.booking-cta .primary{width:100%}.class-card img{max-height:460px}}.home-page{width:100%;padding:0 0 52px}.home-hero{position:relative;min-height:calc(100vh + -0px);display:grid;align-items:end;overflow:hidden;background:var(--navy)}.home-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#00154aeb,#00154aad 42%,#00154a2e),linear-gradient(0deg,#00154ad1,#00154a00 44%)}.home-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.home-hero-inner{position:relative;z-index:1;width:min(1180px,calc(100% - 56px));margin:0 auto;padding:74px 0 42px;display:grid;gap:30px}.home-hero-copy{max-width:720px;color:var(--white)}.home-hero-copy h2{margin:0;color:var(--white);font-family:Georgia,Times New Roman,serif;font-size:clamp(58px,7vw,110px);line-height:.9;letter-spacing:0}.home-hero-copy .lead{max-width:650px;color:#ffffffdb}.hero-path-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}.hero-path-grid .image-route-card{position:relative;min-height:100%;padding:10px 10px 14px;border:0;border-radius:8px;background:#fffffff0;overflow:hidden}.hero-path-grid .image-route-card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:6px}.hero-path-grid .route-card-copy{padding:0 2px}.hero-path-grid .route-card-copy strong{font-size:clamp(22px,2.2vw,31px)}.hero-path-grid .image-route-card>svg{position:absolute;right:14px;bottom:14px;color:var(--navy)}.home-section-inner{width:min(1180px,calc(100% - 56px));margin:0 auto;padding-top:28px}.home-brief-grid{display:grid;grid-template-columns:minmax(280px,390px) minmax(0,1fr);gap:22px;align-items:stretch;margin-bottom:20px}.home-notices .link-button{width:100%;margin-top:14px}.mission-teaser{padding:24px;border-radius:8px;background:var(--ivory)}.mission-teaser h3{margin:0 0 12px;color:var(--navy);font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,3.6vw,52px);line-height:1;letter-spacing:0}.mission-teaser p{color:var(--muted);line-height:1.65}.home-section-inner .booking-cta{margin-bottom:0}.class-card-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-items:start}.class-card{gap:0;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--white);overflow:hidden}.class-card:hover{border-color:#ff8f3bb3;box-shadow:0 16px 34px #0f172a14}.class-card img{width:100%;max-height:none;object-fit:contain;border-radius:0;background:transparent}.class-card-copy{padding:16px}.class-card-copy strong{font-size:24px}.class-card-copy .card-action{margin-top:4px}.about-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.about-option-card{display:grid;grid-template-columns:minmax(170px,36%) minmax(0,1fr) auto;gap:18px;align-items:center;min-width:0;padding:14px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--white);text-align:left}.about-option-card:hover{border-color:#ff8f3bb3;box-shadow:0 16px 34px #0f172a14}.about-option-card img{width:100%;max-height:220px;object-fit:contain;border-radius:6px}.about-option-card span{display:grid;gap:7px}.about-option-card strong{color:var(--navy);font-family:Georgia,Times New Roman,serif;font-size:28px;line-height:1.05}.about-option-card em{color:var(--muted);font-style:normal;line-height:1.55}@media(max-width:1080px){.home-hero{min-height:calc(100vh - 52px)}.hero-path-grid,.home-brief-grid,.about-option-grid{grid-template-columns:1fr}.hero-path-grid .image-route-card{grid-template-columns:150px minmax(0,1fr) auto;align-items:center}.hero-path-grid .image-route-card img{aspect-ratio:4 / 3}}@media(max-width:920px){.home-hero-inner,.home-section-inner{width:min(100% - 32px,780px)}.home-hero-inner{padding-top:44px}.home-hero-copy h2{font-size:54px}}@media(max-width:640px){.home-hero{min-height:auto}.home-hero-inner{padding:38px 0 28px}.home-hero-copy h2{font-size:44px}.hero-path-grid .image-route-card,.about-option-card{grid-template-columns:1fr}.hero-path-grid .image-route-card>svg,.about-option-card>svg{display:none}.hero-path-grid .image-route-card img{aspect-ratio:auto;object-fit:contain}}.class-card-grid{align-items:stretch;grid-auto-rows:1fr}.class-card{height:100%;min-height:0;grid-template-rows:auto 1fr}.class-card img{width:100%;height:clamp(280px,30vw,420px);aspect-ratio:4 / 5;object-fit:cover;object-position:center}.class-card-copy{min-height:150px;grid-template-rows:auto 1fr auto;align-content:stretch}.class-card-copy .meta{min-height:42px;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.class-card-copy strong{min-height:58px;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.class-card-copy .card-action{align-self:end}@media(max-width:1080px){.class-card img{height:clamp(300px,54vw,520px)}}@media(max-width:560px){.class-card img{height:clamp(260px,96vw,460px)}.class-card-copy{min-height:138px}}.recurring-schedule button{grid-template-columns:minmax(150px,1fr) auto;grid-template-areas:"day time" "dates dates"}.recurring-schedule strong{grid-area:day}.recurring-schedule span:nth-of-type(1){grid-area:time}.recurring-schedule small{grid-area:dates;color:var(--muted);line-height:1.45}@media(max-width:700px){.recurring-schedule button{grid-template-columns:1fr;grid-template-areas:"day" "time" "dates"}}.content-area{height:100dvh;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(max-width:920px){html,body,#root{height:auto;min-height:100%}body{overflow-y:auto;overflow-x:hidden}.app-shell{height:auto;min-height:100dvh;overflow-x:hidden;overflow-y:visible}.content-area{height:auto;min-height:calc(100dvh - 52px);overflow:visible}}img,svg,video,iframe{max-width:100%}.page,.page-heading,.class-detail-page,.class-detail-grid,.class-detail-copy,.detail-card,.detail-schedule,.contact-layout,.editorial-split,.about-option-card,.image-route-card,.class-card,.home-section-inner,.home-hero-inner{min-width:0}.detail-card,.detail-schedule button,.event,.class-card,.image-route-card,.about-option-card{overflow-wrap:anywhere}@media(max-width:920px){.page{width:min(100% - 28px,780px);padding:24px 0 48px}.page-heading{max-width:100%;margin-bottom:22px}.page-heading h2,.home-main h2{font-size:clamp(38px,12vw,58px);line-height:.98}.class-detail-grid,.contact-layout,.editorial-split,.about-option-grid,.about-option-card,.image-route-card,.timetable-preview,.booking-cta{display:grid;grid-template-columns:minmax(0,1fr)!important}.class-detail-grid{gap:20px}.class-detail-copy{order:1}.class-detail-image{order:2;justify-self:center;width:min(100%,520px);max-height:560px;object-fit:contain}.detail-card{padding:16px}.detail-schedule button,.recurring-schedule button{grid-template-columns:minmax(0,1fr)!important;gap:8px;align-items:start}.detail-schedule span,.detail-schedule small,.recurring-schedule span,.recurring-schedule small{min-width:0;max-width:100%}.uniform-card img{width:min(100%,420px);max-height:520px}.location-page iframe{height:min(420px,72vh)}}@media(max-width:640px){.page{width:min(100% - 24px,620px);padding-bottom:40px}.page-heading h2,.home-main h2{font-size:clamp(34px,11vw,46px)}.page-heading p,.lead,.rich-text,.class-row p,.detail-card p{font-size:16px;line-height:1.62}.class-detail-image{width:100%;max-height:460px}.detail-card{margin-top:14px;padding:14px}.recurring-schedule small{font-size:13px}.class-card-copy,.route-card-copy{min-height:auto}.contact-form,.admin-panel,.editorial-panel,.booking-cta,.timetable-preview{padding:16px}}
