:root{--navy:#071b3e;--blue:#0076ba;--sky:#0095db;--ink:#122542;--muted:#536278;--pale:#f2f7fb;--border:#dce5ed;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);font:16px/1.65 'DM Sans',sans-serif;background:white}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Manrope',sans-serif;font-weight:650;line-height:1.15;letter-spacing:-.045em}h1{font-size:clamp(2.8rem,4.2vw,4.7rem)}h2{font-size:clamp(2rem,3.1vw,3.15rem)}h3{font-size:1.5rem;letter-spacing:-.035em}em{font-style:normal;color:var(--blue)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:wait;opacity:.65}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #079bde;outline-offset:4px}a,button{touch-action:manipulation}button{border:0;background:none}img{max-width:100%;display:block}.wrap{width:min(1280px,calc(100% - 112px));margin:0 auto}.topbar{background:var(--navy);color:#d3deee;font-size:.8125rem;padding:9px 0}.topbar .wrap{display:flex;justify-content:space-between}.topbar a span{color:#fff;margin-left:12px;font-weight:600}.nav{display:flex;align-items:center;justify-content:space-between;min-height:101px;gap:28px}.logo{width:205px;height:auto}header{position:sticky;top:0;background:#ffffffef;backdrop-filter:blur(14px);z-index:20;border-bottom:1px solid #ecf0f4}.nav nav{display:flex;align-items:center;gap:29px;font-size:.875rem;font-weight:550}.nav nav>a:not(.button):hover{color:var(--blue)}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:55px;border-radius:6px;background:var(--navy);color:white;padding:14px 24px;font-weight:600;font-size:.9375rem;transition:background .2s,transform .2s;line-height:1.4}.button:hover{background:#005c96;transform:translateY(-2px)}.button span{font-size:1.25rem;line-height:1}.button.small{min-height:46px;font-size:.875rem;padding:12px 18px;gap:20px}.text-link{display:inline-flex;align-items:center;gap:21px;font-weight:600;font-size:.9375rem;padding:4px 0}.text-link:hover{color:var(--blue)}.text-link span{font-size:1.2rem}.eyebrow{font-size:.75rem;letter-spacing:.15em;font-weight:700;color:var(--blue);margin-bottom:22px;line-height:1.5}.hero{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding-top:65px;padding-bottom:81px}.hero h1{line-height:1.15}.hero .eyebrow{display:flex;align-items:center;font-size:.7rem;letter-spacing:.13em}.line{width:30px;height:1px;background:var(--blue);display:inline-block;margin-right:12px}.lead{max-width:475px;font-size:1.0625rem;line-height:1.8;color:var(--muted);margin-top:25px}.actions{display:flex;gap:25px;align-items:center;margin-top:31px;flex-wrap:wrap}.hero-note{display:flex;gap:10px;align-items:center;margin-top:27px;font-size:.8125rem;color:#647287}.check{color:var(--blue);font-weight:700;font-size:1rem}.hero-visual{position:relative;padding:0 20px 25px 0}.image-frame{position:relative;height:510px;border-radius:100px 10px 10px 10px;overflow:hidden;background:#bcd5e7}.image-frame img{width:100%;height:100%;object-fit:cover;object-position:53% center}.image-frame:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#061e37c9)}.image-caption{position:absolute;z-index:1;bottom:29px;left:32px;color:white}.image-caption span{display:block;font-size:.65rem;letter-spacing:.16em;margin-bottom:13px}.image-caption strong{font-family:'Manrope',sans-serif;font-size:1.65rem;line-height:1.3;letter-spacing:-.03em;font-weight:500}.hero-badge{position:absolute;bottom:0;right:0;display:flex;gap:15px;background:white;padding:20px 25px;border-radius:8px;box-shadow:0 12px 40px #0a325917;z-index:2;border:1px solid #edf1f6}.badge-icon{background:#e9f5fd;color:var(--blue);width:43px;height:43px;display:grid;place-items:center;border-radius:50%;font-size:1.4rem}.hero-badge strong{display:block;line-height:1.4;font-size:.875rem}.hero-badge div>span{display:block;font-size:.75rem;color:var(--muted);margin-top:7px}.vertical-label{position:absolute;right:-13px;top:28px;writing-mode:vertical-rl;font-size:.625rem;letter-spacing:.18em;color:#748094}.path-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#f8fbfd}.path-strip .wrap{display:grid;grid-template-columns:1.35fr 1fr 1.25fr 1.45fr;align-items:center;min-height:83px;gap:20px}.path-strip .wrap>span{font-size:.625rem;letter-spacing:.13em;font-weight:700;color:var(--muted)}.path-strip a,.path-strip button{font-size:.875rem;font-weight:600;display:flex;align-items:center;justify-content:space-between;border-left:1px solid #d9e4eb;padding-left:25px;text-align:left;line-height:1.5}.path-strip a:hover,.path-strip button:hover{color:var(--blue)}.path-strip b{font-size:1.3rem;font-weight:400}.section{padding-top:100px;padding-bottom:100px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:43px}.section-heading>p{max-width:352px;color:var(--muted);font-size:.9375rem}.section-heading .eyebrow{margin-bottom:16px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.service-card{padding:30px;background:#f5f8fb;border:1px solid #e6edf2;border-radius:10px;display:flex;flex-direction:column;align-items:flex-start}.card-top{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:37px}.service-icon{width:47px;height:47px;display:grid;place-items:center;background:white;border-radius:9px;color:var(--blue);font-size:1.8rem}.card-top>span+span{font-size:.625rem;letter-spacing:.13em;color:#667a91}.service-card h3{max-width:245px;margin-bottom:16px;font-size:1.5rem;line-height:1.3}.service-card p{font-size:.9375rem;color:var(--muted);margin-bottom:28px;line-height:1.75}.service-card .text-link{margin-top:auto;font-size:.875rem}.service-card.featured{background:var(--navy);color:white;border-color:var(--navy)}.featured .service-icon{background:#1c3455;color:#66c8ff}.featured p,.featured .card-top>span+span{color:#bacadd}.featured .text-link{color:#8bd3fd}.catalog-section{background:var(--pale);padding:90px 0}.catalog-controls{display:flex;gap:15px;margin-bottom:20px}.search-field{background:white;border:1px solid #d7e1eb;display:flex;align-items:center;border-radius:7px;flex:1;padding-left:18px;gap:12px}.search-field>span:first-child{font-size:1.8rem;color:var(--blue);line-height:1}.search-field input{width:100%;border:0;background:transparent;padding:16px 16px 16px 0;outline-offset:0;font-size:.9375rem;color:var(--ink);min-width:0}.category-field select{background:white;width:270px;border:1px solid #d7e1eb;padding:17px;border-radius:7px;color:var(--ink);font-size:.875rem}.category-chips{display:flex;gap:8px;flex-wrap:wrap}.category-chips button{font-size:.75rem;border:1px solid #d5e0e9;border-radius:30px;padding:8px 14px;background:transparent}.category-chips button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.category-chips button:hover{border-color:var(--blue)}.catalog-meta{display:flex;justify-content:space-between;margin:28px 0 15px;font-size:.75rem;color:var(--muted)}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.course-card{background:white;border:1px solid #e0e8ef;border-radius:8px;padding:23px;display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s;min-height:244px}.course-card:hover{border-color:#8dbbda;box-shadow:0 10px 25px #0c284308}.course-card .course-area{font-size:.6875rem;font-weight:600;color:var(--blue);margin-bottom:15px;letter-spacing:.03em}.course-card h3{font-size:1.125rem;letter-spacing:-.025em;line-height:1.45;flex:1;margin-bottom:20px}.course-code{font-size:.75rem;letter-spacing:.07em;color:#61748b}.course-card-bottom{border-top:1px solid #edf1f5;margin-top:17px;padding-top:14px;display:flex;justify-content:space-between;align-items:center}.course-card-bottom button{font-size:.8125rem;padding:0;color:var(--blue);font-weight:600}.course-card-bottom .round-arrow{display:grid;place-items:center;border-radius:50%;background:#eef6fb;color:var(--blue);width:28px;height:28px;font-size:1rem}.catalog-bottom{text-align:center;margin-top:28px}.button.outline{background:transparent;color:var(--navy);border:1px solid #becfdd}.button.outline:hover{background:white}.catalog-bottom p{max-width:660px;font-size:.75rem;line-height:1.7;color:var(--muted);margin:23px auto 0}.rpl{display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:center}.rpl-panel{padding:46px;background:var(--navy);color:white;border-radius:12px;position:relative;overflow:hidden}.rpl-panel h2{font-size:2.55rem;line-height:1.25}.rpl-panel em{color:#76cdfd}.rpl-panel .eyebrow{color:#92d4ff;font-size:.6875rem}.rpl-panel>p:not(.eyebrow){color:#bdcee0;font-size:.9375rem;margin:26px 0}.button.light{background:white;color:var(--navy)}.button.light:hover{background:#d9f0ff}.rpl-footnote{font-size:.75rem;color:#9bb1ca;border-top:1px solid #294161;padding-top:20px;margin-top:29px;max-width:340px}.rpl-content h2{font-size:2.35rem}.steps{padding:0;list-style:none;margin:34px 0 25px}.steps li{display:flex;gap:20px;margin-top:23px}.steps li>span{font-family:'Manrope',sans-serif;color:var(--blue);font-weight:500;padding-top:2px;font-size:1rem}.steps h3{font-size:1.0625rem;letter-spacing:-.015em;margin-bottom:8px}.steps p{font-size:.875rem;color:var(--muted)}.fine-print{font-size:.75rem;color:var(--muted);line-height:1.75}.about-section{background:#eaf4fa;padding:74px 0}.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:90px}.about-lead{font-size:1.45rem;font-family:'Manrope',sans-serif;line-height:1.5;letter-spacing:-.03em;margin-bottom:20px}.about-grid>div>p:not(.eyebrow):not(.about-lead){font-size:.9375rem;color:var(--muted)}.values{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:28px;font-size:.75rem;font-weight:600}.values span:before{content:'✓';color:var(--blue);margin-right:6px}.faq{display:grid;grid-template-columns:1fr 1.65fr;gap:90px}.faq .text-link{margin-top:29px}.faq details{border-bottom:1px solid var(--border);padding:21px 0}.faq details:first-child{padding-top:0}.faq summary{cursor:pointer;font-weight:550;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.9375rem}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';color:var(--blue);font-size:1.5rem;font-weight:400}.faq details[open] summary:after{content:'−'}.faq details p{font-size:.875rem;color:var(--muted);padding:13px 35px 0 0}.enquiry-section{background:var(--navy);padding:90px 0}.enquiry-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:86px}.enquiry-copy{color:white;padding-top:22px}.enquiry-copy .eyebrow{color:#87d3fc;font-size:.6875rem}.enquiry-copy h2{font-size:3.65rem;line-height:1.2}.enquiry-copy h2 em{color:#78cffd}.enquiry-copy>p:not(.eyebrow){color:#b9cce1;font-size:1rem;max-width:270px;margin-top:27px}.contact-item{margin-top:34px}.contact-item>span{display:block;font-size:.75rem;color:#91a9c6;margin-bottom:6px}.contact-item a{font-size:1.25rem;letter-spacing:-.025em}.contact-item a.email-link{font-size:1.125rem;overflow-wrap:anywhere}.contact-note{margin-top:37px;border-top:1px solid #263b57;padding-top:23px;font-size:.75rem;color:#91a9c6;max-width:280px}.form-card{border-radius:11px;background:white;padding:33px 35px}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.form-header .eyebrow{font-size:.625rem;margin-bottom:9px}.form-header h3{font-size:1.8rem}.form-header>span{font-size:.6875rem;color:#6b7b8f;text-align:right;line-height:1.5}.service-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:0;margin:0 0 22px;padding:0}.service-choice label{display:block;position:relative;cursor:pointer}.service-choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.service-choice label>span{display:block;border:1px solid var(--border);padding:11px 8px;border-radius:5px;font-size:.75rem;text-align:center}.service-choice input:checked+span{border-color:var(--blue);color:#005c93;background:#edf8ff;font-weight:600}.service-choice input:focus-visible+span{outline:3px solid #079bde;outline-offset:2px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label{font-size:.75rem;font-weight:600;display:flex;flex-wrap:wrap;gap:6px;color:#33455d}.form-grid label>span:not(#message-label){color:var(--blue)}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;padding:11px 12px;font-size:.8125rem;font-weight:400;border:1px solid #d5dfe8;border-radius:5px;color:var(--ink);background:white;min-width:0}.form-grid textarea{resize:vertical;min-height:93px}.contact-choice{padding:0;border:0;display:flex;gap:22px;font-size:.8125rem;margin:18px 0}.contact-choice legend{font-size:.75rem;font-weight:600;margin-bottom:6px}.contact-choice input{accent-color:var(--blue);margin-left:0}.consent{display:flex;gap:10px;font-size:.6875rem;line-height:1.65;align-items:flex-start;color:var(--muted)}.consent input{margin:3px 0 0;accent-color:var(--blue);min-width:16px;min-height:16px}.consent a{text-decoration:underline;color:var(--blue)}.form-hint{font-size:.625rem;color:#6c7c90;line-height:1.6;margin-top:9px}.submit{width:100%;margin-top:18px;justify-content:space-between;background:var(--blue)}.last{text-align:center}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#form-status:not(:empty){padding:13px;background:#fff4ee;color:#823b16;font-size:.8125rem;border-radius:5px;margin-top:15px}#form-status.success{background:#ecf7f3;color:#166043}footer{padding:49px 0 25px}.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;border-bottom:1px solid var(--border);padding-bottom:32px;gap:30px}.footer-top p{font-size:1.25rem;line-height:1.5;font-family:'Manrope',sans-serif;letter-spacing:-.03em}.footer-top>div{display:flex;gap:24px;font-size:.75rem;justify-content:flex-end;padding-top:6px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:.6875rem;color:var(--muted);margin-top:23px}.footer-bottom>span{flex:1}.footer-disclaimer{font-size:.625rem;color:#748296;margin-top:17px;max-width:950px;line-height:1.65}.menu-toggle{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.skip-link{position:fixed;left:15px;top:-80px;background:white;padding:12px;z-index:100}.skip-link:focus{top:10px}dialog{border:0;box-shadow:0 20px 100px #0005;border-radius:12px;padding:45px;max-width:590px;width:calc(100% - 32px);color:var(--ink);max-height:90vh;overflow:auto}dialog::backdrop{background:#00102999;backdrop-filter:blur(3px)}dialog h2{font-size:2rem;line-height:1.3;margin-bottom:16px}dialog p{margin-bottom:18px;font-size:.9375rem}dialog .eyebrow{font-size:.75rem;margin-top:10px}dialog .course-code{font-size:.8125rem}dialog .fine-print{font-size:.8125rem}dialog .button{margin-top:9px}.dialog-close{position:absolute;right:14px;top:10px;font-size:1.9rem;padding:0 8px;line-height:1.5}.empty-state{grid-column:1/-1;padding:40px;background:#fff;border-radius:8px;text-align:center}.empty-state p{color:var(--muted);margin:10px}.legal{max-width:820px;margin:60px auto;padding:0 25px}.legal h1{font-size:3rem;margin-bottom:30px}.legal h2{font-size:1.4rem;margin:27px 0 12px}.legal p{margin-bottom:18px}.legal a{text-decoration:underline;color:var(--blue)}.legal .button{color:white;text-decoration:none;margin-bottom:30px}

/* Shared sizing keeps long course names and enlarged text inside their columns. */
html { scroll-padding-top: calc(var(--header-height, 101px) + 16px); -webkit-text-size-adjust: 100%; }
.hero > *, .service-grid > *, .course-grid > *, .rpl > *, .about-grid > *, .faq > *,
.enquiry-layout > *, .form-grid > *, .footer-top > *, .catalog-controls > * { min-width: 0; }
h1, h2, h3, .course-code, .legal a { overflow-wrap: anywhere; }
.button { max-width: 100%; }
.button > span, .line, .check, .badge-icon, .steps li > span { flex-shrink: 0; }
.connection-notice { background: #edf5fc; border: 1px solid #d7e5ef; color: #334f68; border-radius: 6px; padding: 13px 15px; font-size: .875rem; margin-bottom: 22px; line-height: 1.6; }
.eyebrow, .hero .eyebrow, .rpl-panel .eyebrow, .enquiry-copy .eyebrow, .form-header .eyebrow,
.card-top > span + span, .course-card .course-area, .course-code, .catalog-meta,
.catalog-bottom p, .fine-print, .rpl-footnote, .footer-disclaimer, .footer-bottom,
.form-hint, .hero-badge div > span { font-size: .75rem; }
.form-grid label, .service-choice label > span, .contact-choice, .contact-choice legend,
.consent, .category-chips button, .course-card-bottom button { font-size: .875rem; }
.service-card p, .section-heading > p, .steps p, .about-grid > div > p:not(.eyebrow):not(.about-lead),
.faq details p { font-size: 1rem; }
.form-grid input, .form-grid select, .form-grid textarea { min-height: 48px; max-width: 100%; }
.form-grid label, .service-choice, .contact-choice { min-width: 0; }
.course-card-bottom button { min-height: 48px; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; }
.course-card-bottom .round-arrow { flex-shrink: 0; }
.category-chips button { min-height: 44px; }
.dialog-close { width: 48px; height: 48px; display: grid; place-items: center; }
dialog { max-height: 90dvh; overscroll-behavior: contain; }
html:has(dialog[open]) { overflow: hidden; }
#enquiry-form:focus { outline: none; }
input, select, textarea { scroll-margin-top: calc(var(--header-height, 101px) + 24px); }

@media (min-width: 1500px) {
  .hero { padding-top: 80px; padding-bottom: 90px; gap: 65px; }
  .image-frame { height: 545px; }
}
@media (max-width: 1100px) {
  .wrap { width: calc(100% - 64px); }
  .nav nav { gap: 18px; }
  .nav .logo { width: 180px; }
  .hero { gap: 30px; }
  .hero h1 { font-size: 3.2rem; }
  .image-frame { height: 475px; }
  .actions { gap: 18px; }
  .service-card { padding: 24px; }
  .rpl { gap: 40px; }
  .rpl-panel { padding: 34px; }
  .rpl-panel h2 { font-size: 2.2rem; }
  .enquiry-layout { gap: 40px; }
  .enquiry-copy h2 { font-size: 3.1rem; }
  .form-card { padding: 28px; }
  .footer-top > div { flex-wrap: wrap; gap: 10px 20px; }
}
@media (max-width: 1024px) {
  .nav { min-height: 80px; gap: 16px; }
  .menu-toggle { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; min-width: 88px; padding: 8px 12px; font-size: .9375rem; border: 1px solid var(--border); border-radius: 6px; }
  .nav nav { display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 6px; padding: 16px max(24px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-bottom)); background: white; box-shadow: 0 15px 25px #071b3e18; max-height: calc(100dvh - var(--header-height, 80px)); overflow-y: auto; overscroll-behavior: contain; }
  .nav nav.open { display: flex; }
  .nav nav > a { min-height: 48px; padding: 12px 16px; font-size: 1rem; }
  .nav nav > .button { margin-top: 8px; }
  .form-grid input, .form-grid select, .form-grid textarea, .search-field input, .category-field select { font-size: 1rem; }
  .path-strip .wrap { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 16px 0; gap: 12px; }
  .path-strip .wrap > span { grid-column: 1 / -1; text-align: center; font-size: .75rem; }
  .path-strip a, .path-strip button { min-height: 48px; padding: 8px 12px; font-size: .875rem; }
  .path-strip a:first-of-type { border-left: 0; }
}
@media (max-width: 850px) {
  .wrap { width: calc(100% - 48px); }
  .hero { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 40px; padding-bottom: 48px; }
  .hero-copy { max-width: 620px; }
  .hero h1 { font-size: clamp(2.25rem, 6.5vw, 3.5rem); line-height: 1.15; }
  .lead { max-width: 600px; font-size: 1rem; }
  .hero .actions { flex-direction: row; align-items: center; }
  .hero-visual { padding: 0; }
  .image-frame { height: auto; aspect-ratio: 3 / 2; border-radius: 60px 10px 10px 10px; }
  .image-frame img { object-position: center; }
  .image-caption { left: 28px; bottom: 28px; }
  .hero-badge { right: 20px; bottom: 20px; padding: 16px; }
  .vertical-label { display: none; }
  .section { padding-top: 64px; padding-bottom: 64px; }
  .section-heading { align-items: flex-start; gap: 26px; }
  .section-heading h2 { font-size: 2.2rem; }
  .section-heading > p { max-width: 270px; }
  .service-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .service-card { padding: 28px; }
  .service-card h3 { max-width: none; }
  .service-card .text-link { min-height: 44px; }
  .card-top { margin-bottom: 24px; }
  .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rpl, .about-grid, .faq, .enquiry-layout { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .rpl-panel h2, .rpl-content h2 { font-size: 2.3rem; }
  .about-section { padding: 64px 0; }
  .about-grid { gap: 25px; }
  .about-lead { font-size: 1.3rem; }
  .faq h2 br { display: none; }
  .faq .text-link { margin-top: 20px; min-height: 44px; }
  .faq summary { min-height: 44px; gap: 18px; }
  .faq summary:after { flex-shrink: 0; }
  .enquiry-section { padding: 60px 0; }
  .enquiry-copy { padding-top: 0; }
  .enquiry-copy h2 { font-size: 2.75rem; }
  .enquiry-copy h2 br { display: none; }
  .enquiry-copy > p:not(.eyebrow) { max-width: 550px; margin-top: 20px; }
  .contact-note { display: none; }
  .contact-item { margin-top: 22px; }
  .contact-item a { display: inline-flex; align-items: center; min-height: 44px; }
  .form-header > span { display: none; }
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-choice { flex-wrap: wrap; }
  .contact-choice label { min-height: 44px; display: flex; align-items: center; gap: 8px; }
  .contact-choice input, .consent input { width: 20px; height: 20px; flex-shrink: 0; }
  .service-choice label > span { display: flex; align-items: center; justify-content: center; min-height: 52px; height: 100%; }
  .footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-top > div { grid-column: 1 / -1; justify-content: flex-start; }
  .footer-top > div a, .footer-bottom > a { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; }
  .footer-bottom { flex-wrap: wrap; gap: 8px 24px; }
  .footer-bottom > span { flex-basis: 100%; }
}
@media (max-width: 620px) {
  .wrap { width: auto; margin-left: max(20px, env(safe-area-inset-left)); margin-right: max(20px, env(safe-area-inset-right)); }
  .topbar { padding: 0; }
  .topbar .wrap { justify-content: center; }
  .topbar .wrap > span { display: none; }
  .topbar a { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; font-size: .875rem; }
  .nav { min-height: 72px; }
  .nav .logo { width: clamp(140px, 43vw, 180px); }
  .menu-toggle { min-width: 80px; padding: 8px; font-size: .875rem; }
  .hero { padding-top: 28px; padding-bottom: 32px; gap: 24px; }
  .hero .eyebrow { font-size: .75rem; letter-spacing: .08em; margin-bottom: 16px; }
  .line { width: 20px; margin-right: 10px; }
  .hero h1 { font-size: clamp(2rem, 8.7vw, 2.75rem); line-height: 1.14; letter-spacing: -.045em; }
  .hero .lead { margin-top: 18px; line-height: 1.7; }
  .hero .actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin-top: 22px; }
  .hero .button, .hero .text-link { width: 100%; min-height: 48px; justify-content: center; font-size: .9375rem; }
  .hero-note { margin-top: 12px; font-size: .8125rem; align-items: flex-start; }
  .image-frame { border-top-left-radius: 42px; }
  .image-caption { left: 18px; bottom: 16px; }
  .image-caption span { display: none; }
  .image-caption strong { font-size: 1.25rem; line-height: 1.25; }
  .hero-badge { position: static; margin-top: 12px; box-shadow: none; padding: 14px 16px; gap: 12px; }
  .hero-badge strong { font-size: .875rem; }
  .hero-badge strong br { display: none; }
  .hero-badge div > span { margin-top: 3px; }
  .path-strip .wrap { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 8px 0; }
  .path-strip .wrap > span { text-align: left; padding: 10px 0 5px; letter-spacing: .08em; }
  .path-strip a, .path-strip button { border-left: 0; border-bottom: 1px solid var(--border); width: 100%; padding: 12px 0; min-height: 52px; font-size: .9375rem; gap: 16px; }
  .path-strip button { border-bottom: 0; }
  .section { padding-top: 48px; padding-bottom: 48px; }
  h2, .section-heading h2, .rpl-panel h2, .rpl-content h2 { font-size: clamp(1.8rem, 7.2vw, 2.2rem); line-height: 1.22; }
  .section-heading { display: block; margin-bottom: 26px; }
  .section-heading > p { margin-top: 16px; max-width: none; }
  .eyebrow { margin-bottom: 15px; letter-spacing: .1em; }
  .service-card { padding: 22px; }
  .service-card h3 { font-size: 1.4rem; }
  .service-card p { margin-bottom: 18px; }
  .card-top { gap: 12px; }
  .card-top > span + span { letter-spacing: .08em; }
  .catalog-section { padding: 48px 0; }
  .catalog-controls { flex-direction: column; gap: 12px; }
  .search-field { padding-left: 14px; gap: 10px; }
  .search-field input { min-height: 52px; padding: 12px 12px 12px 0; }
  .category-field select { width: 100%; max-width: 100%; min-height: 52px; padding: 12px; }
  .category-chips { gap: 8px; }
  .category-chips button { max-width: 100%; font-size: .875rem; padding: 8px 12px; white-space: normal; }
  .catalog-meta { margin-top: 22px; font-size: .875rem; }
  .catalog-meta > span + span { display: none; }
  .course-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .course-card { min-height: 0; padding: 20px; }
  .course-card h3 { font-size: 1.125rem; line-height: 1.45; margin-bottom: 12px; }
  .course-card .course-area { margin-bottom: 12px; }
  .course-card-bottom { margin-top: 12px; padding-top: 8px; }
  .catalog-bottom .button { width: 100%; }
  .rpl-panel { padding: 28px 22px; }
  .rpl-panel .button { width: 100%; font-size: .875rem; padding: 14px 16px; gap: 12px; }
  .rpl-panel > p:not(.eyebrow) { font-size: 1rem; }
  .steps { margin-top: 26px; }
  .steps li { gap: 16px; }
  .about-section { padding: 48px 0; }
  .values { font-size: .875rem; gap: 10px 18px; }
  .faq details p { padding-right: 0; }
  .faq summary { font-size: 1rem; }
  .enquiry-section { padding: 48px 0; }
  .enquiry-copy h2 { font-size: clamp(2rem, 8vw, 2.65rem); }
  .contact-item a, .contact-item a.email-link { font-size: 1.0625rem; }
  .form-card { padding: 24px 18px; }
  .form-header h3 { font-size: 1.65rem; }
  .form-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .form-grid input, .form-grid select, .form-grid textarea { padding: 12px; }
  .form-grid textarea { min-height: 120px; }
  .service-choice { gap: 8px; }
  .service-choice label > span { padding: 10px 8px; line-height: 1.4; }
  .consent { line-height: 1.7; gap: 10px; }
  .form-hint { font-size: .8125rem; }
  .submit { font-size: .9375rem; min-height: 52px; padding: 14px 16px; gap: 12px; }
  #form-status:not(:empty) { font-size: .875rem; }
  footer { padding: 36px 0 max(24px, env(safe-area-inset-bottom)); }
  .footer-top { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .footer-top .logo { width: 180px; }
  .footer-top p { font-size: 1.125rem; }
  .footer-top > div { gap: 6px 20px; }
  .legal { margin: 32px auto; padding: 0 20px; }
  .legal h1 { font-size: 2.2rem; line-height: 1.2; }
  dialog { width: calc(100% - 24px); max-height: calc(100dvh - 32px); padding: 58px 22px 24px; }
  dialog h2 { font-size: 1.5rem; line-height: 1.35; }
  dialog .button { width: 100%; font-size: .875rem; gap: 12px; padding: 14px; }
}
@media (max-width: 359px) {
  .wrap { margin-left: max(16px, env(safe-area-inset-left)); margin-right: max(16px, env(safe-area-inset-right)); }
  .nav { gap: 10px; }
  .service-choice { grid-template-columns: minmax(0, 1fr); }
}
@media (hover: none), (pointer: coarse) {
  .button:hover { transform: none; }
  .form-grid input, .form-grid select, .form-grid textarea, .search-field input, .category-field select { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *:before, *:after { transition: none !important; animation: none !important; }
}
