:root {
  --navy: #002241;
  --navy-deep: #00172e;
  --blue: #002241;
  --red: #f9040f;
  --red-button: #df0010;
  --red-dark: #c9000c;
  --ink: #002241;
  --muted: #586b7b;
  --paper: #f3f6f8;
  --line: #dce4e9;
  --white: #fff;
  --sans: "Avenir Next", Avenir, "Segoe UI", system-ui, sans-serif;
  --body: "Avenir Next", Avenir, "Segoe UI", system-ui, sans-serif;
  --page: min(1240px, calc(100% - 72px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; color: var(--ink); background: #fff; font: 16px/1.6 var(--body); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1.1rem; }
h1, h2, h3 { margin: 0; font-family: var(--sans); font-weight: 700; letter-spacing: -.045em; line-height: 1.08; }
h1 { font-size: clamp(3rem, 6.5vw, 6.25rem); }
h2 { font-size: clamp(2.4rem, 4.3vw, 4.25rem); }
h3 { font-size: clamp(1.65rem, 2.3vw, 2.25rem); }
em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.page-width { width: var(--page); margin-inline: auto; }
.section-pad { padding: clamp(76px, 9vw, 132px) 0; }
.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; transform: translateY(-160%); padding: .7rem 1rem; color: white; background: var(--navy); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #f9040f; outline-offset: 4px; }
.eyebrow { margin: 0 0 17px; color: var(--red-button); font: 700 .72rem/1.2 var(--body); letter-spacing: .16em; text-transform: uppercase; }
.eyebrow-light { color: rgba(255,255,255,.78); }

.site-header { height: 84px; width: 100%; padding: 0 3.4vw; display: grid; grid-template-columns: 214px 1fr auto 116px; align-items: center; gap: clamp(20px,3vw,48px); background: #fff; position: sticky; top: 0; z-index: 20; border-bottom: 1px solid rgba(0,34,65,.08); }
.brand { display: block; width: 205px; }
.brand img { width: 100%; height: 55px; object-fit: contain; object-position: left center; }
.primary-nav { display: flex; align-items: center; justify-content: center; gap: clamp(16px,2.25vw,36px); white-space: nowrap; }
.primary-nav a { color: var(--navy); font: 700 .69rem/1.2 var(--body); letter-spacing: .045em; text-transform: uppercase; transition: color .2s; }
.primary-nav a:hover, .footer-nav a:hover { color: var(--red-button); }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 22px; white-space: nowrap; }
.whatsapp-link { display: inline-flex; align-items: center; gap: 8px; color: var(--navy); font: 700 .68rem/1.2 var(--body); text-transform: uppercase; letter-spacing: .025em; }
.wa-mark { width: 23px; height: 23px; border: 1px solid rgba(0,34,65,.25); border-radius: 50%; display: inline-grid; place-items: center; font-size: .9rem; line-height: 1; }
.rya-mark { width: 98px; min-width: 80px; border-left: 1px solid #aeb7c1; padding-left: 18px; }
.rya-mark img { width: 100%; height: 55px; object-fit: contain; }
.menu-toggle { display: none; }
.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 15px; padding: 0 24px; border: 1px solid transparent; border-radius: 2px; font: 700 .74rem/1.2 var(--body); text-transform: uppercase; letter-spacing: .055em; transition: background .18s ease, color .18s ease, border .18s ease, transform .18s ease; cursor: pointer; }
.button:hover { transform: translateY(-2px); }
.button-red { color: white; background: var(--red-button); }
.button-red:hover { background: var(--red-dark); }
.button-small { min-height: 42px; padding: 0 18px; font-size: .66rem; }
.button-navy { color: white; background: var(--navy); }
.button-navy:hover { background: var(--navy-deep); }
.button-white { color: var(--navy); background: white; }
.button-white:hover { color: white; background: transparent; border-color: white; }
.button-glass { color: white; background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.55); }
.button-glass:hover { background: rgba(255,255,255,.16); }
.text-link { display: inline-flex; align-items: center; gap: 12px; padding: 0; border: 0; color: white; background: transparent; font: 700 .75rem/1.4 var(--body); text-transform: uppercase; letter-spacing: .045em; cursor: pointer; }
.text-link span { font-size: 1.08rem; transition: transform .2s; }
.text-link:hover span { transform: translateX(4px); }
.text-link-navy { color: var(--navy); }

.hero { height: min(690px, 72vw); min-height: 520px; overflow: hidden; position: relative; isolation: isolate; display: flex; align-items: center; color: white; background: var(--navy-deep); }
.hero-image, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-image { z-index: -2; object-fit: cover; object-position: center 54%; filter: brightness(1.12) saturate(1.15) contrast(1.02); }
.hero-shade { z-index: -1; background: linear-gradient(90deg, rgba(0,34,65,.38) 0%, rgba(0,34,65,.23) 39%, rgba(0,34,65,.02) 77%), linear-gradient(0deg, rgba(0,34,65,.12), transparent 46%); }
.hero-content { position: relative; padding-top: 5px; }
.hero-content .eyebrow { display: flex; align-items: center; gap: 12px; }
.eyebrow-dot { width: 5px; height: 5px; display: inline-block; border-radius: 50%; background: #f9040f; }
.hero h1 { max-width: 820px; margin-bottom: 19px; text-transform: uppercase; }
.hero-subtitle { max-width: 720px; margin: 0 0 10px; font: 600 clamp(.89rem,1.45vw,1.12rem)/1.65 var(--body); }
.hero-subtitle span { padding: 0 7px; color: #ff7379; }
.hero-copy { max-width: 520px; margin: 0 0 30px; color: rgba(255,255,255,.83); font-size: .98rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.scroll-cue { position: absolute; bottom: 28px; left: 50%; width: 30px; height: 43px; border: 1px solid rgba(255,255,255,.6); border-radius: 20px; display: grid; place-items: start center; padding-top: 8px; }
.scroll-cue span { width: 3px; height: 8px; border-radius: 4px; background: white; animation: drift 1.6s ease-in-out infinite; }
@keyframes drift { 0%,100% { transform: translateY(0); opacity: .55; } 55% { transform: translateY(8px); opacity: 1; } }
.hero-caption { position: absolute; right: 3.5vw; bottom: 31px; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.8); font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; }
.hero-caption i { width: 30px; height: 1px; background: rgba(255,255,255,.65); }

.quick-section { background: var(--navy-deep); }
.quick-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.quick-card { min-height: 285px; overflow: hidden; position: relative; color: white; isolation: isolate; background: var(--navy); }
.quick-card img, .quick-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.quick-card img { z-index: -2; object-fit: cover; filter: brightness(1.18) saturate(1.18) contrast(1.04); transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.quick-card-powerboat img { transform: scaleX(-1); }
.quick-overlay { z-index: -1; background: linear-gradient(0deg,rgba(0,23,46,.84) 0%,rgba(0,23,46,.48) 34%,rgba(0,23,46,.12) 65%,transparent 88%); }
.quick-card:hover img { transform: scale(1.045); }
.quick-card-powerboat:hover img { transform: scaleX(-1.045); }
.quick-content { min-height: 285px; padding: 26px 28px; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; position: relative; }
.quick-kicker { margin-bottom: 11px; color: rgba(255,255,255,.78); font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.quick-content strong { max-width: 240px; font: 700 clamp(1.65rem,2.4vw,2.25rem)/1.02 var(--sans); letter-spacing: -.04em; text-transform: uppercase; }
.quick-description { max-width: 255px; min-height: 4.2em; margin-top: 10px; color: rgba(255,255,255,.85); font-size: .8rem; line-height: 1.4; }
.quick-arrow { position: absolute; right: 24px; bottom: 27px; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; display: grid; place-items: center; font-size: 1rem; transition: background .2s, color .2s; }
.quick-card:hover .quick-arrow { color: var(--navy); background: white; }

.intro-band { background: var(--paper); }
.intro-layout { display: grid; grid-template-columns: 1.05fr .75fr; gap: 10vw; align-items: end; padding-bottom: clamp(72px,8vw,120px); }
.intro-layout h2 { color: var(--navy); }
.intro-layout h2 em, .course-heading h2 em { color: var(--red-button); }
.intro-layout h2 em { font-size: .72em; line-height: 1.15; }
.intro-copy { max-width: 500px; color: #495971; font-size: .96rem; }
.intro-copy p { margin-bottom: 16px; }
.intro-copy .text-link { margin-top: 9px; }
.course-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 34px; }
.course-heading h2 { color: var(--navy); font-size: clamp(2rem,3.4vw,3.2rem); }
.course-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 18px; align-items: stretch; }
.course-card { background: white; box-shadow: 0 12px 34px rgba(0,34,65,.05); display: flex; flex-direction: column; }
.course-card-accent { border-top: 3px solid var(--red); }
.course-card-body { height: 100%; padding: 28px clamp(21px,2.2vw,34px) 30px; display: flex; flex-direction: column; align-items: flex-start; }
.course-type { margin-bottom: 9px; color: var(--red-button); font: 700 .82rem/1.3 var(--body); letter-spacing: .1em; text-transform: uppercase; }
.course-card h3 { margin: 0 0 13px; color: var(--navy); font-size: clamp(1.55rem,2vw,2rem); }
.course-card-body > p:not(.course-type) { color: var(--muted); font-size: .89rem; }
.mini-facts { list-style: none; padding: 0; margin: 6px 0 23px; color: var(--ink); font-size: .77rem; line-height: 1.5; }
.mini-facts li { position: relative; padding: 5px 0 5px 20px; }
.mini-facts li::before { content: ""; position: absolute; left: 0; top: 12px; width: 7px; height: 7px; border-radius: 50%; background: var(--red); }
.course-open { margin-top: auto; }
.next-step { display: flex; align-items: flex-start; gap: 17px; margin-top: 28px; padding: 20px 25px; border-left: 2px solid var(--red); color: #58667a; background: rgba(255,255,255,.64); font-size: .83rem; }
.next-step p { margin: 0; }
.next-step strong { color: var(--navy); }
.next-step a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.next-step-mark { flex: 0 0 auto; color: var(--red-button); font-size: 1.2rem; }

.location-section { min-height: 540px; display: grid; grid-template-columns: 1.05fr .95fr; position: relative; overflow: hidden; color: white; background: var(--navy-deep); }
.location-image-wrap { min-height: 540px; overflow: hidden; }
.location-image-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 47%; }
.location-copy { align-self: center; max-width: 620px; padding: 72px clamp(40px,7vw,120px); }
.location-copy h2 { margin-bottom: 24px; }
.location-copy h2 em { color: #ff7379; }
.location-copy > p:not(.eyebrow) { max-width: 480px; margin-bottom: 29px; color: rgba(255,255,255,.77); font-size: .95rem; }
.location-index { position: absolute; right: 3.6vw; bottom: 26px; color: rgba(255,255,255,.65); font-size: .65rem; letter-spacing: .13em; }

.tuition-section { background: #fff; }
.tuition-layout { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(48px,8vw,120px); align-items: center; }
.tuition-image { min-height: 0; position: relative; }
.tuition-image > img:first-child { display: block; width: 100%; height: auto; object-fit: contain; }
.image-note { position: absolute; bottom: 21px; left: 21px; padding: 10px 14px; color: white; background: var(--navy); font: 700 .62rem/1.3 var(--body); letter-spacing: .1em; text-transform: uppercase; }
.tuition-copy { max-width: 570px; }
.tuition-copy h2 { margin-bottom: 22px; color: var(--navy); }
.tuition-copy h2 em { color: var(--red-button); }
.tuition-copy > p:not(.eyebrow):not(.small-note) { margin-bottom: 26px; color: var(--muted); }
.service-points { margin: 29px 0 30px; border-top: 1px solid var(--line); }
.service-points div { display: flex; gap: 17px; padding: 12px 0; border-bottom: 1px solid var(--line); align-items: center; }
.service-points span { color: var(--red-button); font: 700 .66rem/1 var(--body); letter-spacing: .1em; }
.service-points p { margin: 0; color: var(--navy); font-size: .88rem; font-weight: 600; }
.small-note { color: #758095; font-size: .75rem; line-height: 1.5; }
.tuition-copy .small-note { margin-top: 15px; }
.private-callout { margin-top: clamp(66px,8vw,115px); padding: 36px 0 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1.05fr .9fr auto; align-items: end; gap: 42px; }
.private-callout h3 { color: var(--navy); font-size: clamp(1.5rem,2.5vw,2.3rem); }
.private-callout > p { margin: 0; color: var(--muted); font-size: .88rem; }
.private-callout .text-link { white-space: nowrap; }

.pwc-feature { color: white; background: var(--navy); }
.pwc-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; align-items: center; }
.pwc-copy { max-width: 550px; }
.pwc-copy h2 { margin-bottom: 22px; }
.pwc-copy h2 em { color: #ff7379; }
.pwc-copy > p:not(.eyebrow) { color: rgba(255,255,255,.75); font-size: .94rem; }
.pwc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 25px; margin-top: 29px; }
.pwc-image { margin: 0; }
.pwc-image img { width: 100%; height: 440px; object-fit: cover; }
.pwc-image figcaption { margin-top: 11px; color: rgba(255,255,255,.6); font-size: .72rem; letter-spacing: .04em; }

.about-section { background: var(--paper); }
.about-layout { display: grid; grid-template-columns: .76fr 1.1fr; gap: clamp(48px,8vw,120px); align-items: center; }
.about-photo { aspect-ratio: 4 / 3; height: auto; position: relative; background: #d5e2e8; }
.about-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.photo-caption { position: absolute; left: 20px; right: 20px; bottom: 20px; display: flex; justify-content: space-between; gap: 12px; align-items: end; padding: 15px 17px; color: white; background: rgba(0,23,46,.88); }
.photo-caption span:first-child { font: 700 1.08rem/1.2 var(--sans); }
.photo-caption span:last-child { color: rgba(255,255,255,.72); font-size: .68rem; letter-spacing: .11em; text-transform: uppercase; }
.about-copy { max-width: 660px; }
.about-copy h2 { margin-bottom: 22px; color: var(--navy); }
.about-copy h2 em { color: var(--red-button); }
.about-copy > p:not(.eyebrow) { color: #56657a; font-size: .93rem; }
.experience-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin: 31px 0; padding: 24px 0; border-top: 1px solid #d7dce0; border-bottom: 1px solid #d7dce0; }
.experience-stats div { display: flex; flex-direction: column; gap: 4px; }
.experience-stats strong { color: var(--navy); font: 700 clamp(2rem,3vw,2.8rem)/1 var(--sans); letter-spacing: -.06em; }
.experience-stats strong span { color: var(--red-button); }
.experience-stats small { max-width: 135px; color: var(--muted); font-size: .69rem; line-height: 1.4; }

.testimonials-section { background: #fff; }
.testimonial-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 39px; }
.testimonial-heading h2 { color: var(--navy); font-size: clamp(2.1rem,3.6vw,3.6rem); }
.quote-mark { margin-bottom: -33px; color: #ecedef; font: 700 9rem/1 Georgia,serif; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 17px; }
.quote-card { min-height: 240px; margin: 0; padding: 29px 30px; display: flex; flex-direction: column; justify-content: space-between; background: var(--paper); }
.quote-card-featured { color: white; background: var(--navy); }
.quote-card blockquote { margin: 0 0 26px; font: 500 clamp(1.08rem,1.5vw,1.35rem)/1.48 var(--sans); letter-spacing: -.015em; }
.quote-card figcaption { display: flex; flex-direction: column; gap: 1px; color: var(--red-button); font: 700 .74rem/1.4 var(--body); }
.quote-card-featured figcaption { color: #ff7379; }
.quote-card figcaption small { color: var(--muted); font: 500 .72rem/1.4 var(--body); }
.quote-card-featured figcaption small { color: rgba(255,255,255,.66); }

.gift-section { padding: 58px 0; color: white; background: var(--red-button); }
.gift-layout { display: grid; grid-template-columns: 82px 1fr .9fr; align-items: center; gap: clamp(28px,5vw,75px); }
.gift-symbol { height: 82px; position: relative; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; font: 300 2.5rem/1 Georgia,serif; }
.gift-symbol i { position: absolute; left: -7px; bottom: -8px; width: 20px; height: 20px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; }
.gift-section .eyebrow { color: rgba(255,255,255,.75); }
.gift-section h2 { font-size: clamp(2rem,3.2vw,3.2rem); }
.gift-copy p { max-width: 470px; color: rgba(255,255,255,.82); font-size: .9rem; }
.gift-copy .button { min-height: 45px; }

.marine-section { background: var(--paper); }
.marine-layout { display: grid; grid-template-columns: .6fr 1.25fr .9fr; gap: 38px 5vw; align-items: start; }
.marine-kicker { height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.marine-number { color: #8993a1; font: 700 .72rem/1 var(--body); letter-spacing: .12em; }
.marine-number i { color: var(--red-button); font-style: normal; }
.marine-title h2 { color: var(--navy); font-size: clamp(2.4rem,4vw,4rem); }
.marine-title h2 em { color: var(--red-button); }
.marine-copy p { color: var(--muted); font-size: .9rem; }
.marine-routes { grid-column: 2 / 3; display: flex; flex-wrap: wrap; gap: 10px; }
.marine-routes span { padding: 9px 12px; border: 1px solid #d1d7dd; color: var(--navy); font-size: .69rem; font-weight: 600; }
.marine-detail { grid-column: 3 / 4; grid-row: 2 / span 2; width: 100%; height: 300px; object-fit: cover; }

.resources-section { padding-top: 100px; padding-bottom: 106px; }
.resources-layout { display: grid; grid-template-columns: .8fr 1fr; gap: 9vw; align-items: start; }
.resources-layout h2 { margin-bottom: 18px; color: var(--navy); font-size: clamp(2.35rem,4vw,3.8rem); }
.resources-layout h2 em { color: var(--red-button); }
.resources-intro { max-width: 390px; color: var(--muted); font-size: .9rem; }
.resource-list { border-top: 1px solid var(--line); }
.resource-list a { min-height: 72px; display: grid; grid-template-columns: 32px 1fr 18px; align-items: center; gap: 15px; border-bottom: 1px solid var(--line); transition: padding .2s; }
.resource-list a:hover { padding-inline: 8px; }
.resource-num { color: var(--red-button); font: 700 .62rem/1 var(--body); }
.resource-list strong { display: block; color: var(--navy); font: 700 .83rem/1.4 var(--body); }
.resource-list small { display: block; color: var(--muted); font-size: .71rem; line-height: 1.4; }
.resource-list b { color: var(--navy); font-size: 1rem; }

.contact-section { position: relative; isolation: isolate; color: white; background: var(--navy-deep); }
.contact-bg, .contact-bg img, .contact-bg span { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; }
.contact-bg img { object-fit: cover; object-position: 50% 55%; }
.contact-bg span { background: linear-gradient(90deg,rgba(0,23,46,.94),rgba(0,23,46,.83) 47%,rgba(0,23,46,.4)); }
.contact-layout { display: grid; grid-template-columns: .85fr 1fr; gap: clamp(50px,9vw,130px); align-items: center; }
.contact-copy { max-width: 500px; }
.contact-copy h2 { margin-bottom: 19px; }
.contact-copy > p:not(.eyebrow) { max-width: 390px; color: rgba(255,255,255,.73); }
.contact-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 24px; }
.contact-actions .button { min-height: 45px; padding-inline: 16px; font-size: .67rem; }
.contact-lines { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; color: rgba(255,255,255,.66); font-size: .78rem; }
.contact-lines a { color: white; }
.contact-lines .local-call { text-decoration: underline; text-underline-offset: 3px; }
.enquiry-form { padding: clamp(25px,4vw,47px); color: var(--ink); background: white; box-shadow: 0 20px 70px rgba(0,0,0,.16); }
.form-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; margin-bottom: 22px; }
.form-heading span { color: var(--navy); font: 700 1.4rem/1.1 var(--sans); letter-spacing: -.03em; }
.form-heading small { color: var(--muted); font-size: .7rem; }
.enquiry-form label { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; color: var(--navy); font: 700 .68rem/1.4 var(--body); letter-spacing: .025em; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #d6dce2; border-radius: 0; color: var(--ink); background: #fff; font: 400 .8rem/1.4 var(--body); }
.enquiry-form textarea { resize: vertical; }
.enquiry-form input::placeholder, .enquiry-form textarea::placeholder { color: #9ba4af; }
.enquiry-form input:focus, .enquiry-form select:focus, .enquiry-form textarea:focus { border-color: var(--blue); outline: 2px solid rgba(32,63,112,.16); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-submit { width: 100%; margin-top: 1px; }
.form-note { margin: 12px 0 0; color: #7c8795; font-size: .68rem; text-align: center; }
.form-status { min-height: 1px; margin: 0; color: var(--navy); font-size: .75rem; }

.site-footer { color: white; background: #00172e; padding: 50px 0 0; }
.footer-top { display: grid; grid-template-columns: 200px 1fr 1fr .8fr; gap: 40px; align-items: start; padding-bottom: 43px; }
.footer-brand { display: inline-block; padding: 7px 9px; background: #fff; }
.footer-brand img { width: 190px; height: 72px; object-fit: contain; object-position: left center; }
.footer-top > p { color: rgba(255,255,255,.66); font-size: .83rem; }
.footer-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; color: rgba(255,255,255,.8); font-size: .74rem; }
.footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; color: white; font-size: .75rem; }
.footer-contact a:first-child { color: #ff7379; font-weight: 700; }
.footer-bottom { min-height: 54px; display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.48); font-size: .64rem; }
.footer-bottom button, .footer-bottom a { padding: 0; border: 0; color: rgba(255,255,255,.66); background: transparent; font: inherit; cursor: pointer; }
.footer-bottom button:hover, .footer-bottom a:hover { color: white; }
.mobile-contact { display: none; }

dialog { position: fixed; inset: 0; margin: auto; width: min(720px, calc(100% - 28px)); max-height: min(88vh,850px); padding: 0; border: 0; color: var(--ink); background: white; box-shadow: 0 28px 90px rgba(0,23,46,.28); }
dialog::backdrop { background: rgba(0,23,46,.72); backdrop-filter: blur(3px); }
.course-dialog { overflow: hidden; border-top: 4px solid var(--red); }
.dialog-head { position: sticky; top: 0; z-index: 5; min-height: 60px; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; border-bottom: 1px solid var(--line); background: #fff; }
.dialog-eyebrow { color: var(--red-button); font: 700 .65rem/1.3 var(--body); letter-spacing: .13em; text-transform: uppercase; }
.dialog-close, .privacy-close { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 48px; border: 0; border-radius: 50%; color: var(--navy); background: #f1f4f8; font-size: 1.8rem; cursor: pointer; }
.dialog-close { position: relative; z-index: 6; box-shadow: 0 2px 10px rgba(0,23,46,.12); }
.dialog-close:focus-visible, .privacy-close:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }
.dialog-content { max-height: calc(88vh - 62px); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: clamp(26px,5vw,48px); }
.dialog-content h2, .privacy-content h2 { margin-bottom: 14px; color: var(--navy); font-size: clamp(2.2rem,5vw,3.7rem); }
.dialog-content > p:not(.eyebrow) { max-width: 600px; color: var(--muted); }
.dialog-facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 25px; }
.dialog-facts span { padding: 8px 11px; color: var(--navy); background: var(--paper); font-size: .73rem; font-weight: 700; }
.dialog-content h3 { margin: 25px 0 12px; color: var(--navy); font-size: 1.15rem; }
.dialog-content ul { padding-left: 20px; color: #536176; font-size: .86rem; }
.dialog-content li { padding: 4px 0; }
.dialog-note { margin-top: 22px; padding: 14px 16px; border-left: 2px solid var(--red); color: #56657a; background: var(--paper); font-size: .78rem; }
.dialog-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 24px; }
.privacy-content { padding: clamp(26px,5vw,48px); }
.privacy-content > p { color: var(--muted); font-size: .87rem; }
.privacy-content a { color: var(--navy); font-weight: 700; text-decoration: underline; }

@media (max-width: 1120px) {
  :root { --page: min(100% - 48px, 920px); }
  .site-header { grid-template-columns: 175px 1fr auto 78px; gap: 16px; padding-inline: 24px; }
  .brand { width: 175px; }
  .header-actions { gap: 12px; }
  .header-actions .whatsapp-link { font-size: 0; }
  .header-actions .wa-mark { font-size: .9rem; }
  .rya-mark { width: 76px; padding-left: 12px; }
  .primary-nav { gap: 17px; }
  .primary-nav a { font-size: .63rem; }
  .quick-content { padding: 23px 20px; }
  .quick-arrow { right: 17px; bottom: 21px; }
  .quick-description { padding-right: 20px; font-size: .75rem; }
}
@media (max-width: 820px) {
  :root { --page: calc(100% - 42px); }
  html { scroll-padding-top: 76px; }
  body { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
  .site-header { height: 72px; grid-template-columns: minmax(105px,1fr) auto auto auto; padding: 0 20px; gap: 14px; }
  .brand { width: 168px; }
  .brand img { height: 48px; }
  .primary-nav { position: absolute; top: 71px; left: 0; right: 0; padding: 12px 21px 19px; display: none; align-items: stretch; flex-direction: column; gap: 0; background: white; box-shadow: 0 15px 24px rgba(0,34,65,.09); }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { padding: 14px 2px; border-bottom: 1px solid var(--line); font-size: .72rem; }
  .header-actions { margin-left: auto; }
  .header-actions .whatsapp-link { display: none; }
  .header-actions .button { min-height: 39px; padding-inline: 13px; font-size: .59rem; }
  .rya-mark { width: 69px; min-width: 69px; padding-left: 10px; }
  .rya-mark img { height: 42px; }
  .menu-toggle { width: 37px; height: 37px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; order: 3; border: 1px solid #dbe0e6; background: white; cursor: pointer; }
  .menu-toggle span { width: 16px; height: 1px; display: block; background: var(--navy); }
  .hero { height: min(760px, calc(100svh - 72px)); min-height: 560px; align-items: end; padding-bottom: 68px; }
  .hero-image { object-position: 55% center; }
  .hero-shade { background: linear-gradient(0deg,rgba(0,34,65,.48),rgba(0,34,65,.17) 62%,rgba(0,34,65,.01)); }
  .hero-content { padding-bottom: 15px; }
  .hero h1 { max-width: 630px; font-size: clamp(2.75rem,10vw,5rem); }
  .hero-subtitle { max-width: 540px; font-size: .9rem; }
  .hero-copy { max-width: 460px; font-size: .9rem; }
  .hero-caption { display: none; }
  .scroll-cue { bottom: 20px; left: auto; right: 22px; width: 24px; height: 35px; }
  .quick-grid { grid-template-columns: repeat(2,1fr); }
  .quick-card, .quick-content { min-height: 250px; }
  .quick-content strong { font-size: clamp(1.65rem,4vw,2.1rem); }
  .intro-layout { grid-template-columns: 1fr; gap: 28px; }
  .intro-copy { max-width: 650px; }
  .course-heading { align-items: flex-start; flex-direction: column; }
  .course-grid { grid-template-columns: 1fr 1fr; }
  .location-section { grid-template-columns: 1fr; }
  .location-image-wrap { min-height: 370px; max-height: 450px; }
  .location-copy { max-width: 700px; padding: 60px 0 75px; margin: auto; width: var(--page); }
  .location-index { bottom: 20px; }
  .tuition-layout { grid-template-columns: 1fr; gap: 38px; }
  .tuition-image { min-height: 0; max-height: none; }
  .tuition-copy { max-width: 680px; }
  .private-callout { grid-template-columns: 1fr 1fr; gap: 24px; }
  .private-callout > p { align-self: end; }
  .pwc-layout { grid-template-columns: 1fr; gap: 38px; }
  .pwc-copy { max-width: 670px; }
  .pwc-image img { height: 360px; }
  .about-layout { grid-template-columns: .85fr 1fr; gap: 36px; }
  .about-photo { height: auto; aspect-ratio: 4 / 3; }
  .experience-stats { gap: 9px; }
  .experience-stats small { font-size: .64rem; }
  .testimonial-grid { grid-template-columns: 1fr 1fr; }
  .quote-card:last-child { grid-column: 1 / -1; min-height: 190px; }
  .gift-layout { grid-template-columns: 68px 1fr; gap: 25px; }
  .gift-symbol { width: 68px; height: 68px; }
  .gift-copy { grid-column: 2; }
  .marine-layout { grid-template-columns: .35fr 1fr; gap: 27px 28px; }
  .marine-kicker { grid-row: 1 / span 2; }
  .marine-copy { grid-column: 2; }
  .marine-routes { grid-column: 2; }
  .marine-detail { grid-column: 2; grid-row: auto; height: 260px; }
  .resources-layout { grid-template-columns: 1fr; gap: 32px; }
  .contact-layout { grid-template-columns: 1fr; gap: 42px; }
  .contact-copy { max-width: 670px; }
  .enquiry-form { max-width: 650px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-bottom { justify-content: flex-start; padding: 13px 0; }
  .mobile-contact { position: fixed; z-index: 30; right: 0; bottom: 0; left: 0; min-height: calc(61px + env(safe-area-inset-bottom)); padding: 6px 10px calc(6px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: 1.2fr .85fr .9fr; gap: 7px; background: rgba(255,255,255,.97); border-top: 1px solid #d9dee4; box-shadow: 0 -6px 20px rgba(0,23,46,.07); backdrop-filter: blur(10px); }
  .mobile-contact a { display: flex; align-items: center; justify-content: center; gap: 7px; color: var(--navy); font: 700 .65rem/1 var(--body); letter-spacing: .025em; text-transform: uppercase; }
  .mobile-contact a:first-child { color: #fff; background: #002241; }
  .mobile-contact a span { font-size: .9rem; }
}
@media (max-width: 560px) {
  :root { --page: calc(100% - 36px); }
  h2 { font-size: clamp(2.25rem,11vw,3.1rem); }
  .site-header { grid-template-columns: minmax(105px,1fr) auto auto auto; gap: 8px; padding-inline: 13px; }
  .brand { width: min(36vw,150px); }
  .brand img { height: 43px; }
  .header-actions .button { min-height: 36px; padding-inline: 9px; font-size: .52rem; letter-spacing: .02em; }
  .rya-mark { width: 58px; min-width: 58px; padding-left: 7px; }
  .rya-mark img { height: 36px; }
  .menu-toggle { width: 34px; height: 34px; }
  .hero { min-height: 610px; height: calc(100svh - 72px); max-height: 760px; padding-bottom: 69px; }
  .hero-image { object-position: 58% center; }
  .hero-content { padding-bottom: 8px; }
  .hero-content .eyebrow { margin-bottom: 14px; font-size: .62rem; }
  .hero h1 { max-width: 390px; margin-bottom: 15px; font-size: clamp(2.65rem,11.7vw,3.6rem); line-height: .99; }
  .hero-subtitle { max-width: 365px; margin-bottom: 9px; font-size: .78rem; line-height: 1.7; }
  .hero-subtitle span { padding-inline: 3px; }
  .hero-copy { max-width: 320px; margin-bottom: 22px; font-size: .84rem; }
  .hero-actions { align-items: stretch; flex-direction: column; max-width: 340px; }
  .hero-actions .button { min-height: 47px; }
  .scroll-cue { display: none; }
  .quick-grid { grid-template-columns: 1fr 1fr; }
  .quick-card, .quick-content { min-height: 235px; }
  .quick-content { padding: 18px 15px 21px; }
  .quick-kicker { font-size: .55rem; }
  .quick-content strong { font-size: clamp(1.3rem,7vw,1.7rem); }
  .quick-description { padding-right: 2px; font-size: .69rem; }
  .quick-arrow { width: 28px; height: 28px; right: 10px; bottom: 12px; font-size: .85rem; }
  .section-pad { padding: 72px 0; }
  .intro-layout { padding-bottom: 68px; }
  .intro-copy { font-size: .88rem; }
  .text-link { font-size: .67rem; }
  .course-heading { margin-bottom: 23px; gap: 13px; }
  .course-heading h2 { font-size: 2.35rem; }
  .course-heading .text-link { line-height: 1.6; }
  .course-grid { grid-template-columns: 1fr; gap: 12px; }
  .course-card:first-child { grid-column: auto; }
  .course-card-body { padding: 24px 23px; }
  .course-card h3 { font-size: 1.75rem; }
  .course-card-body > p:not(.course-type) { font-size: .85rem; }
  .next-step { padding: 17px 15px; gap: 11px; font-size: .76rem; }
  .location-image-wrap { min-height: 290px; }
  .location-copy { padding: 49px 0 64px; }
  .location-copy h2 { font-size: 2.8rem; }
  .location-copy > p:not(.eyebrow) { font-size: .86rem; }
  .location-index { right: 18px; font-size: .55rem; }
  .tuition-image { min-height: 0; max-height: none; }
  .tuition-copy h2 { font-size: 2.5rem; }
  .tuition-copy > p:not(.eyebrow):not(.small-note) { font-size: .87rem; }
  .private-callout { grid-template-columns: 1fr; gap: 13px; margin-top: 65px; }
  .private-callout > p { font-size: .84rem; }
  .private-callout .text-link { justify-self: start; }
  .pwc-copy h2 { font-size: 2.65rem; }
  .pwc-copy > p:not(.eyebrow) { font-size: .86rem; }
  .pwc-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .pwc-image img { height: 265px; }
  .about-layout { grid-template-columns: 1fr; gap: 33px; }
  .about-photo { height: auto; aspect-ratio: 4 / 3; }
  .about-copy h2 { font-size: 2.6rem; }
  .about-copy > p:not(.eyebrow) { font-size: .87rem; }
  .experience-stats { margin: 24px 0; padding: 20px 0; gap: 6px; }
  .experience-stats strong { font-size: 2.1rem; }
  .experience-stats small { font-size: .59rem; }
  .testimonial-heading { margin-bottom: 27px; }
  .testimonial-heading h2 { font-size: 2.4rem; }
  .quote-mark { margin-bottom: -12px; font-size: 5.3rem; }
  .testimonial-grid { grid-template-columns: 1fr; gap: 10px; }
  .quote-card, .quote-card:last-child { grid-column: auto; min-height: 190px; padding: 23px 23px; }
  .quote-card blockquote { font-size: 1.1rem; }
  .gift-section { padding: 45px 0; }
  .gift-layout { grid-template-columns: 55px 1fr; gap: 21px 18px; }
  .gift-symbol { width: 55px; height: 55px; font-size: 1.9rem; }
  .gift-section h2 { font-size: 2.15rem; }
  .gift-copy { grid-column: 1 / -1; }
  .gift-copy p { font-size: .84rem; }
  .marine-layout { grid-template-columns: 1fr; gap: 20px; }
  .marine-kicker { grid-row: auto; flex-direction: row; }
  .marine-title h2 { font-size: 2.5rem; }
  .marine-copy { grid-column: auto; }
  .marine-routes { grid-column: auto; gap: 7px; }
  .marine-routes span { padding: 8px 9px; font-size: .62rem; }
  .marine-detail { grid-column: auto; grid-row: auto; height: 240px; }
  .resources-layout h2 { font-size: 2.65rem; }
  .resource-list a { grid-template-columns: 23px 1fr 16px; gap: 10px; min-height: 69px; }
  .resource-list strong { font-size: .76rem; }
  .resource-list small { font-size: .65rem; }
  .contact-copy h2 { font-size: 2.9rem; }
  .contact-copy > p:not(.eyebrow) { font-size: .86rem; }
  .contact-actions { align-items: stretch; flex-direction: column; }
  .contact-actions .button { width: 100%; }
  .enquiry-form { padding: 23px 18px; }
  .form-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 23px 18px; }
  .footer-brand img { width: 150px; }
  .footer-top > p { font-size: .72rem; }
  .footer-nav { grid-column: 1 / -1; gap: 9px 12px; font-size: .7rem; }
  .footer-contact { grid-column: 1 / -1; flex-direction: row; gap: 18px; font-size: .7rem; }
  .footer-bottom { gap: 10px 19px; font-size: .58rem; }
  .dialog-head { min-height: 53px; padding-inline: 16px; }
  .dialog-close { width: 48px; height: 48px; margin-right: -6px; }
  .dialog-content, .privacy-content { padding: 24px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Header branding and larger boxed navigation. Keep both logo files intact. */
html { scroll-padding-top: 156px; }
.site-header { height: 140px; padding: 12px 28px; grid-template-columns: 230px minmax(0, 1fr) 172px 164px; grid-template-rows: 1fr; grid-template-areas: "brand nav actions rya"; gap: 18px; }
.brand { grid-area: brand; width: 230px; }
.brand img { width: 100%; height: auto; max-height: 116px; object-fit: contain; }
.primary-nav { grid-area: nav; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; align-self: center; transform: translateY(12px); }
.primary-nav a { width: 100%; height: 56px; display: flex; align-items: center; justify-content: center; padding: 8px; border: 1px solid #d4dfe7; border-bottom: 3px solid var(--navy); border-radius: 7px; background: linear-gradient(180deg, #fff, #edf3f7); box-shadow: 0 3px 8px rgba(0,34,65,.07); font-size: .9rem; line-height: 1.2; text-align: center; white-space: normal; letter-spacing: 0; text-transform: none; transition: background .18s, color .18s, box-shadow .18s; }
.primary-nav a:hover { color: white; background: var(--navy); border-color: var(--navy); border-bottom-color: var(--red); box-shadow: 0 5px 12px rgba(0,34,65,.15); }
.header-actions { grid-area: actions; display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 8px; align-self: center; width: 172px; }
.header-actions .whatsapp-link { display: inline-flex; min-height: 44px; padding: 10px 18px; gap: 10px; border-radius: 3px; background: #128c4b; color: white; font-size: .9rem; text-transform: none; letter-spacing: 0; }
.header-actions .whatsapp-link:hover { background: #0d703b; }
.whatsapp-icon { width: 23px; height: 23px; flex: 0 0 23px; }
.header-actions .button { min-height: 44px; font-size: .78rem; }
.header-actions > a { width: 100%; height: 44px; justify-content: center; border-radius: 5px; }
.rya-mark { grid-area: rya; width: 164px; min-width: 0; padding-left: 16px; }
.rya-mark img { width: 100%; height: auto; max-height: 108px; object-fit: contain; }
@media (max-width: 1280px) {
 .site-header { height: 116px; grid-template-columns: 190px 1fr 150px 44px; grid-template-rows: 1fr; grid-template-areas: "brand actions rya toggle"; gap: 14px; padding: 10px 24px; }
 .brand { width: 190px; }
 .brand img { height: auto; max-height: 88px; }
 .rya-mark { width: 150px; min-width: 0; padding-left: 12px; }
 .rya-mark img { height: auto; max-height: 88px; }
 .header-actions { align-self: center; justify-self: end; }
 .primary-nav { transform: none; position: absolute; top: 115px; left: 0; right: 0; display: none; flex-direction: column; padding: 16px 24px; background: white; box-shadow: 0 15px 24px rgba(0,34,65,.09); }
 .primary-nav.is-open { display: grid; grid-template-columns: 1fr; }
 .primary-nav a { font-size: 1rem; padding: 13px 16px; }
 .menu-toggle { grid-area: toggle; display: flex; width: 42px; height: 42px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--line); background: white; }
 .menu-toggle span { width: 18px; height: 2px; background: var(--navy); }
 html { scroll-padding-top: 132px; }
}
@media (max-width: 620px) {
 .site-header { height: 164px; padding: 8px 14px; grid-template-columns: minmax(0,1fr) 132px 90px; grid-template-rows: 96px 36px; grid-template-areas: "brand actions rya" "toggle toggle toggle"; gap: 8px; }
 .brand { width: min(100%, 160px); }
 .brand img { height: auto; max-height: 78px; }
 .rya-mark { justify-self: end; width: 90px; padding-left: 6px; }
 .rya-mark img { height: auto; max-height: 78px; }
 .header-actions { width: 132px; justify-self: end; justify-content: center; margin-left: 0; gap: 8px; }
 .header-actions .whatsapp-link { display: inline-flex; font-size: .7rem; padding: 8px; min-height: 42px; gap: 6px; }
 .header-actions .button { font-size: .6rem; min-height: 42px; padding-inline: 10px; }
 .menu-toggle { width: 42px; height: 36px; justify-self: end; }
 .primary-nav { top: 163px; }
 .hero { height: calc(100svh - 164px); }
 html { scroll-padding-top: 180px; }
}

@media (min-width: 621px) and (max-width: 760px) {
 .site-header { grid-template-columns: 150px 1fr 115px 42px; padding-inline: 16px; gap: 8px; }
 .brand { width: 150px; }
 .rya-mark { width: 115px; }
 .header-actions { width: 150px; }
 .header-actions .whatsapp-link { font-size: .78rem; padding-inline: 10px; }
}

/* Clearer header labels and balanced contact-button spacing. */
.primary-nav a { font-size: calc(1.02rem + 7pt); font-weight: 400; letter-spacing: -.02em; padding-inline: 4px; }
.header-actions .whatsapp-link { padding: 10px 16px; gap: 9px; font-size: .9rem; line-height: 1.2; }
.header-actions .whatsapp-icon { display: block; width: 22px; height: 22px; flex: 0 0 22px; overflow: visible; }
.header-actions .button { letter-spacing: .035em; }
@media (max-width: 760px) {
 .header-actions .whatsapp-link { padding: 10px 12px; font-size: .8rem; gap: 7px; }
 .header-actions .whatsapp-icon { width: 20px; height: 20px; flex-basis: 20px; }
}

/* Refined header: smaller equal navigation and slimmer contact actions. */
.site-header { grid-template-columns: 230px minmax(0, 1fr) 129px 164px; }
.primary-nav { width: calc(85% - 36.55px); justify-self: center; }
.primary-nav a { height: 47.6px; min-height: 0; font-size: calc(1.02rem + 3pt); font-weight: 400; color: white; background: var(--navy); border-color: var(--navy); border-bottom-color: var(--red); box-shadow: 0 2px 6px rgba(0,34,65,.09); }
.primary-nav a:hover, .primary-nav a:focus-visible { color: var(--navy); background: white; border-color: #d4dfe7; border-bottom-color: var(--red); }
.header-actions { width: 129px; }
.header-actions > a, .header-actions .whatsapp-link, .header-actions .button { height: 37.4px; min-height: 37.4px; padding: 6px 10px; }
.header-actions .whatsapp-link { gap: 7px; }
.header-actions .whatsapp-icon { width: 20px; height: 20px; flex-basis: 20px; }
@media (max-width: 1280px) {
 .site-header { grid-template-columns: 190px 1fr 150px 44px; }
 .primary-nav { width: auto; justify-self: stretch; }
}
@media (min-width: 621px) and (max-width: 760px) {
 .site-header { grid-template-columns: 150px 1fr 115px 42px; }
}
@media (max-width: 620px) {
 .site-header { grid-template-columns: minmax(0,1fr) 99px 90px; }
 .header-actions { width: 99px; }
 .header-actions .whatsapp-link { font-size: .72rem; gap: 5px; padding-inline: 7px; }
 .header-actions .whatsapp-icon { width: 17px; height: 17px; flex-basis: 17px; }
 .header-actions .button { font-size: .58rem; padding-inline: 5px; }
}

/* Optical vertical centring for the uppercase enquiry label. */
.header-actions .button { padding-top: 8px; padding-bottom: 4px; }

/* Let the original training photographs show through with clearer colour. */
.quick-card:nth-child(2) img { filter: brightness(1.24) saturate(1.16) contrast(1.04); }
.quick-card:nth-child(3) img { filter: brightness(1.16) saturate(1.2) contrast(1.04); }
.quick-card:nth-child(4) img { filter: brightness(1.25) saturate(1.12) contrast(1.02); }
.quick-content { text-shadow: 0 1px 5px rgba(0,23,46,.7); }
.quick-kicker, .quick-description { color: #fff; }
.quick-arrow { background: rgba(0,34,65,.25); text-shadow: none; }

/* Sea School glass contact panel */
.header-actions{position:relative}
.school-contact-email{font-size:10px!important;height:auto!important;min-height:0!important;line-height:1.4;text-align:center;color:var(--navy);text-transform:none;letter-spacing:0}
.school-contact-toggle{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);border:0;padding:0}
.school-contact-toggle:focus-visible{position:static;width:auto;height:auto;clip-path:none;padding:5px}
.school-contact-panel[hidden]{display:none!important}
.school-contact-panel{position:absolute;right:0;top:calc(100% + 10px);width:260px;max-width:calc(100vw - 28px);padding:10px 8px 5px;border:1px solid rgba(255,255,255,.85);border-radius:18px;background:linear-gradient(145deg,rgba(31,58,80,.5),rgba(93,178,196,.25));backdrop-filter:blur(20px) saturate(145%);-webkit-backdrop-filter:blur(20px) saturate(145%);box-shadow:0 18px 50px rgba(0,30,52,.25);white-space:normal;z-index:100;color:#092536}
.school-contact-panel:before{content:"";position:absolute;left:0;right:0;top:-14px;height:16px}
.school-contact-panel h2{font:700 21px/1.3 var(--body);color:white;margin:0 6px 14px;letter-spacing:-.5px}
.school-contact-close{position:absolute;right:10px;top:9px;border:0;background:none;color:white;font:25px/1 var(--body);cursor:pointer}
.school-contact-action{display:flex;align-items:center;gap:11px;width:100%;min-height:58px;text-align:left;padding:9px 11px;margin:5px 0;border:1px solid rgba(255,255,255,.8);border-radius:11px;background:linear-gradient(125deg,rgba(255,255,255,.65),rgba(255,255,255,.12));box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 3px 8px rgba(0,30,50,.07);color:#092536;font-family:var(--body);cursor:pointer;text-decoration:none}
.school-contact-action:hover,.school-contact-action:focus-visible{background:linear-gradient(125deg,rgba(255,255,255,.92),rgba(255,255,255,.35));transform:translateY(-1px)}
.school-contact-action strong{display:block;font-size:14px;line-height:1.4;font-weight:700}.school-contact-action small{display:block;font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.school-action-icon{display:flex;width:21px;flex:none}.school-action-icon svg{width:21px;height:21px}.school-contact-action:first-of-type .school-action-icon{color:#ff344b}.school-contact-action[href*="wa.me"] .school-action-icon{color:#07994e}
.school-copy-status{font-size:10px;min-height:14px;margin:5px 6px;color:white}
@media(max-width:620px){.school-contact-email{font-size:8px!important}.school-contact-panel{right:-98px;width:260px}.header-actions{gap:5px}}
.header-actions > .whatsapp-link,.header-actions > .button-small{min-height:36px!important;height:36px!important;padding-top:8px;padding-bottom:8px}
.header-actions{gap:4px}

/* Final readability and spacing review, 14 November 2026.
   Points are CSS pt: +5pt = 6.67px, +4pt = 5.33px, +3pt = 4px. */
.contact-layout{align-items:start;grid-template-columns:minmax(0,.85fr) minmax(0,1fr)}
.contact-copy .eyebrow{font-size:calc(.72rem + 5pt)}
.contact-copy h2{font-size:calc(clamp(2.4rem,4.3vw,4.25rem) + 5pt)}
.contact-copy > p:not(.eyebrow){font-size:calc(1rem + 5pt);max-width:none}
.contact-actions .button{font-size:calc(.67rem + 5pt);min-height:58px;line-height:1.4;white-space:normal}
.contact-lines{font-size:calc(.78rem + 5pt);overflow-wrap:anywhere}
.form-heading{flex-wrap:wrap}
.form-heading span{font-size:calc(1.4rem + 5pt)}
.form-heading small{font-size:calc(.7rem + 5pt)}
.enquiry-form label{font-size:calc(.68rem + 5pt);min-width:0}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:calc(.8rem + 5pt);min-height:52px}
.enquiry-form .form-submit{font-size:calc(.72rem + 5pt);line-height:1.4;white-space:normal}
.enquiry-form .form-note{font-size:calc(.68rem + 5pt)}
.enquiry-form .form-status{font-size:calc(.75rem + 5pt)}
.footer-brand{padding:0;background:transparent}
.footer-brand img{width:190px;height:auto;object-fit:contain}
.marine-routes{display:grid;gap:24px;padding:10px 0;align-content:start}
.marine-routes span{border:0;padding:0;font-size:clamp(1.4rem,2.2vw,2rem);font-weight:700;line-height:1.25;letter-spacing:-.02em}
.private-callout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;column-gap:55px;row-gap:22px}
.private-callout>div{grid-column:1;grid-row:1 / span 2}
.private-callout>p{grid-column:2;margin-top:31px}
.private-callout>.text-link{grid-column:2;justify-self:start;padding:18px 22px;background:var(--navy);color:white;border-radius:5px;font-size:calc(.72rem + 4pt);white-space:normal;line-height:1.4}
.private-callout>.text-link:hover{background:var(--red-button)}
.tuition-copy>.eyebrow{font-size:calc(.72rem + 4pt)}
.tuition-copy h2{font-size:calc(clamp(2.4rem,4.3vw,4.25rem) + 4pt)}
.tuition-copy>p:not(.eyebrow):not(.small-note){font-size:calc(1rem + 4pt)}
.service-points span{font-size:calc(.66rem + 4pt)}
.service-points p{font-size:calc(.88rem + 4pt)}
.tuition-copy>.button{font-size:calc(.72rem + 4pt)}
.course-heading .eyebrow{font-size:calc(.72rem + 3pt)}
.course-heading h2{font-size:calc(clamp(2rem,3.4vw,3.2rem) + 3pt)}
.course-heading .text-link{font-size:calc(.72rem + 3pt)}
.course-type{font-size:calc(.82rem + 3pt)}
.course-card h3{font-size:calc(clamp(1.55rem,2vw,2rem) + 3pt)}
.course-card-body>p:not(.course-type){font-size:calc(.89rem + 3pt)}
.course-card .mini-facts{font-size:calc(.77rem + 3pt)}
.course-card .course-open{font-size:calc(.67rem + 3pt);white-space:normal}
.next-step{font-size:calc(.83rem + 2pt)}
@media(max-width:1120px){.form-row{grid-template-columns:1fr}}
@media(max-width:820px){.contact-layout{grid-template-columns:1fr}.private-callout{grid-template-columns:1fr}.private-callout>div,.private-callout>p,.private-callout>.text-link{grid-column:auto;grid-row:auto}.private-callout>p{margin-top:0}.enquiry-form{max-width:none}}
@media(max-width:560px){
.contact-copy h2{font-size:calc(2.9rem + 5pt)}
.contact-copy>p:not(.eyebrow){font-size:calc(.86rem + 5pt)}
.tuition-copy h2{font-size:calc(2.5rem + 4pt)}
.tuition-copy>p:not(.eyebrow):not(.small-note){font-size:calc(.87rem + 4pt)}
.course-heading h2{font-size:calc(2.35rem + 3pt)}
.course-card h3{font-size:calc(1.75rem + 3pt)}
.course-card-body>p:not(.course-type){font-size:calc(.85rem + 3pt)}
.next-step{font-size:calc(.76rem + 2pt)}
.marine-routes{gap:20px}.marine-routes span{font-size:1.5rem}
.footer-brand img{width:170px}.contact-copy h2{overflow-wrap:normal}.contact-actions .button{padding-inline:18px}
}

/* Refine enquiry type and imagery, 14 November 2026. */
.form-heading span{font-size:calc(1.4rem + 3pt)}
.form-heading small{font-size:calc(.7rem + 3pt)}
.enquiry-form label{font-size:calc(.68rem + 3pt)}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:calc(.8rem + 3pt)}
.enquiry-form .form-submit{font-size:calc(.72rem + 3pt)}
.enquiry-form .form-note{font-size:calc(.68rem + 3pt)}
.enquiry-form .form-status{font-size:calc(.75rem + 3pt)}
#enquiry-form{scroll-margin-top:170px}
.marine-detail{filter:brightness(1.22) saturate(1.17) contrast(1.04);image-rendering:auto}
.about-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(36px,4.5vw,70px);align-items:stretch}
.about-photo{aspect-ratio:auto;height:100%;min-height:510px;overflow:hidden}
.about-photo img{object-position:30% center}
.school-contact-panel{max-height:calc(100dvh - 175px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:820px){.about-layout{grid-template-columns:1fr}.about-photo{height:auto;min-height:0;aspect-ratio:4/3}.about-photo img{object-position:center}#enquiry-form{scroll-margin-top:190px}}

/* Updated school imagery, enquiry delivery and private-tuition layout. */
.form-trap{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-row{align-items:start}.form-row>label{display:grid;grid-template-rows:auto 1fr}
.form-status:not(:empty){margin-top:16px;font-weight:600;line-height:1.5}.form-status.is-error{color:#b00020}
.form-submit:disabled{opacity:.65;cursor:wait}
.quick-card-powerboat img{object-position:58% 65%}
.quick-card[href="#course/pwc"] img{object-position:48% center}
.quick-card[href="#own-boat"] img{object-position:52% center}
.marine-routes{gap:0;align-self:stretch;align-content:space-between;min-height:300px;padding-block:12px}
.marine-routes span{padding:22px 0;border-bottom:1px solid #cad6df;font-size:clamp(1.5rem,2.5vw,2.15rem);font-weight:600;letter-spacing:-.025em}
.marine-routes span:nth-child(2){color:#9c6b2e}.marine-routes span:last-child{border-bottom:0}
.tuition-layout{align-items:start;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,5vw,80px)}
.tuition-gallery{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:340px 340px;gap:18px;align-self:start;margin-top:12px}
.tuition-slot{position:relative;margin:0;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:25px;color:var(--navy);border:1px solid #d5e4e6;background:linear-gradient(150deg,#e9f3f2,#bbd7df)}
.tuition-slot-main{grid-row:1 / 3;margin-top:60px;margin-bottom:55px;background:linear-gradient(155deg,#d7ecee 0%,#92bcc8 55%,#226579 100%);color:white}
.tuition-slot-helm{margin-bottom:20px;background:linear-gradient(145deg,#e8eceb,#d3dcdf)}
.tuition-slot-skills{margin-top:20px;background:linear-gradient(145deg,#f4ece1,#d7c5a7)}
.slot-number{font-size:12px;letter-spacing:.15em;opacity:.65}
.tuition-slot figcaption{font-size:24px;line-height:1.2;font-weight:600;letter-spacing:-.03em}
.tuition-slot figcaption small{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-top:12px;opacity:.75;font-weight:500}
.slot-horizon{position:absolute;inset:43% -10% auto;height:100px;border-top:1px solid rgba(255,255,255,.6);border-radius:50%;transform:rotate(-8deg)}
@media(max-width:820px){.tuition-layout{grid-template-columns:1fr}.tuition-gallery{grid-template-rows:250px 250px}.marine-routes{min-height:270px}}
@media(max-width:560px){.tuition-gallery{gap:12px;grid-template-rows:210px 210px}.tuition-slot{padding:16px}.tuition-slot-main{margin-top:35px;margin-bottom:35px}.tuition-slot figcaption{font-size:20px}.marine-routes span{padding:24px 0;font-size:1.5rem}}

/* Email accuracy and layered privacy information. */
.email-match-status:empty{display:none}.email-match-status{margin:-7px 0 18px;color:#b00020;font-size:14px;line-height:1.5}
.enquiry-form label .optional-label{display:inline;font-size:12px;font-weight:400;color:var(--muted)}
.enquiry-privacy{margin:4px 0 22px;font-size:13px;line-height:1.6;color:#40596b}
.enquiry-privacy p{margin:0 0 7px}.privacy-inline{border:0;background:none;padding:0;color:var(--navy);font:600 13px/1.5 var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.enquiry-privacy .privacy-sensitive{margin-top:10px;font-size:12px;color:var(--muted)}
.privacy-detail-link{text-decoration:underline;text-underline-offset:3px;font-weight:600}
.privacy-draft{padding:14px;background:#f2f5f6;border-left:3px solid #bd914c;font-size:13px!important}
.enquiry-privacy{font-size:14px}.privacy-inline{font-size:14px}.enquiry-privacy .privacy-sensitive{font-size:13px}

/* Selected school photography, retaining the staggered tuition layout. */
.intro-rya{display:block;width:210px;max-width:65%;margin:0 0 26px}.intro-rya img{display:block;width:100%;height:auto}
.tuition-slot{padding:0;border:0;background:var(--navy);color:white}
.tuition-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tuition-slot-main img{object-position:48% center}
.tuition-slot-helm img{object-position:center 40%}
.tuition-slot-skills img{object-position:48% 58%}
.tuition-slot:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(0,24,43,.72));pointer-events:none}
.tuition-slot figcaption{position:absolute;left:20px;right:12px;bottom:20px;z-index:1;font-size:clamp(17px,1.5vw,23px);text-shadow:0 1px 8px #001b2a}
.quick-card[href="#own-boat"] img{object-position:center center}
@media(max-width:560px){.tuition-slot{padding:0}.tuition-slot figcaption{left:12px;bottom:14px;font-size:17px}.intro-rya{width:180px}}

/* Course order, natural own-boat exposure and transparent RYA marks. */
.quick-card[href="#own-boat"] img{filter:none}
.quick-card[href="#bespoke"] img{filter:brightness(1.16) saturate(1.2) contrast(1.04)}
.quick-card[href="#course/pwc"] img{filter:brightness(1.24) saturate(1.16) contrast(1.04)}
.intro-layout{grid-template-columns:minmax(0,1.05fr) minmax(190px,.6fr) minmax(0,1fr);gap:36px;align-items:center}
.intro-rya{width:250px;max-width:100%;margin:0;justify-self:center}
.course-card-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;width:100%;margin-top:auto}
.course-card-footer .course-open{margin-top:0}.course-rya{width:130px;height:auto;flex:0 0 130px}
@media(max-width:1000px) and (min-width:701px){.intro-layout{grid-template-columns:minmax(0,1fr) 210px;gap:30px}.intro-copy{grid-column:1/-1}.intro-rya{width:230px}}
@media(max-width:700px){.intro-layout{grid-template-columns:1fr;gap:30px}.intro-rya{width:235px;justify-self:start}.course-card-footer{flex-wrap:wrap;align-items:center}.course-rya{margin-left:auto;width:117px;flex-basis:117px}}

/* Sister-business link in the marine support section. */
.marine-kicker{justify-content:flex-start;gap:28px}
.consultants-portal{display:block;width:100%;max-width:230px;padding:20px 14px 14px;background:#fff;border:1px solid #ded7c8;border-top:3px solid #bd914a;box-shadow:0 8px 24px #00224108;transition:box-shadow .2s,transform .2s}
.consultants-portal img{display:block;width:100%;height:auto}
.consultants-portal span{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;color:var(--navy);font-size:13px;font-weight:700;line-height:1.4}
.consultants-portal b{color:#a77731;font-size:20px;font-weight:400}
.consultants-portal:hover,.consultants-portal:focus-visible{transform:translateY(-3px);box-shadow:0 10px 28px #00224120}
.consultants-portal:focus-visible{outline:2px solid var(--navy);outline-offset:5px}
@media(max-width:560px){.marine-kicker{flex-direction:column;align-items:flex-start;gap:16px}.consultants-portal{max-width:260px}}
.marine-layout{grid-template-columns:minmax(0,.6fr) minmax(0,1.25fr) minmax(0,.9fr)}
.marine-layout>*{min-width:0}.consultants-portal{box-sizing:border-box}
@media(max-width:820px){.marine-layout{grid-template-columns:minmax(0,.35fr) minmax(0,1fr)}}
@media(max-width:560px){.marine-layout{grid-template-columns:minmax(0,1fr)}}

/* Align the transparent Consultants mark with the middle marine service. */
.marine-layout{grid-template-columns:minmax(0,.72fr) minmax(0,1.25fr) minmax(0,.9fr);column-gap:4vw}
.consultants-portal{grid-column:1;grid-row:2;align-self:center;justify-self:start;max-width:260px;padding:22px 0 0;background:transparent;border:0;border-top:3px solid #bd914a;box-shadow:none}
.consultants-portal:hover,.consultants-portal:focus-visible{box-shadow:none}
.consultants-portal span{margin-top:22px}.marine-kicker{grid-row:1}
@media(max-width:820px){.marine-layout{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr)}.consultants-portal{grid-column:1;grid-row:3}.marine-routes{grid-row:3}.marine-kicker{grid-row:1}.marine-detail{grid-row:4}}
@media(max-width:560px){.marine-layout{grid-template-columns:minmax(0,1fr)}.consultants-portal,.marine-routes,.marine-detail,.marine-kicker{grid-column:auto;grid-row:auto}.consultants-portal{max-width:285px}}

/* Lift darker tuition detail while keeping the original highlight range. */
.tuition-slot-main img,.tuition-slot-skills img{filter:url(#tuition-shadow-lift)}
.tuition-slot-main:after,.tuition-slot-skills:after{display:none}
.quick-card[href="#own-boat"] img{object-position:50% 78%;filter:none}
