:root {
    --navy: #071c3b;
    --navy-soft: #102d53;
    --blue: #194b83;
    --blue-light: #eaf0f7;
    --gold: #b58a31;
    --gold-light: #d7b761;
    --warm-white: #f7f5f0;
    --white: #ffffff;
    --ink: #0b1c32;
    --muted: #5d6878;
    --line: rgba(7, 28, 59, 0.13);
    --page: min(1180px, calc(100% - 64px));
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--warm-white);
    color: var(--ink);
    font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}

body,
button,
a {
    font-family: inherit;
}

img {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    width: 100%;
    background: rgba(255, 255, 255, 0.88);
    border-bottom: 1px solid transparent;
    backdrop-filter: saturate(150%) blur(18px);
    -webkit-backdrop-filter: saturate(150%) blur(18px);
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.site-header.is-scrolled {
    border-bottom-color: var(--line);
    box-shadow: 0 8px 26px rgba(7, 28, 59, 0.05);
}

.header-inner {
    width: var(--page);
    min-height: 78px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.logo {
    display: block;
}

.logo img {
    width: auto;
    height: 62px;
}

nav {
    display: flex;
    align-items: center;
    gap: 30px;
}

nav a {
    color: #273951;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease;
}

nav a:hover {
    color: var(--blue);
}

.contact-link {
    padding: 9px 16px;
    border-radius: 999px;
    background: var(--navy);
    color: var(--white);
}

nav .contact-link:hover {
    background: var(--blue);
    color: var(--white);
}

main {
    overflow: hidden;
}

.hero {
    position: relative;
    min-height: calc(100vh - 78px);
    min-height: calc(100svh - 78px);
    display: grid;
    place-items: center;
    padding: 92px 24px 116px;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% -10%, rgba(181, 138, 49, 0.13), transparent 35%),
        linear-gradient(180deg, var(--white) 0%, #f3f6fa 100%);
}

.hero-content {
    position: relative;
    z-index: 2;
    width: min(970px, 100%);
    margin: 0 auto;
    text-align: center;
}

.eyebrow {
    margin: 0 0 26px;
    color: var(--gold-light);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.eyebrow-dark {
    color: var(--blue);
}

.hero h1,
.story h2,
.services-heading h2,
.contact h2 {
    margin: 0;
    font-family: "Space Grotesk", "IBM Plex Sans", sans-serif;
    font-weight: 700;
    letter-spacing: -0.048em;
}

.hero h1 {
    color: var(--navy);
    font-size: clamp(58px, 8.3vw, 122px);
    line-height: 0.94;
}

.hero h1 span {
    color: var(--gold);
}

.hero-text {
    max-width: 660px;
    margin: 34px auto 0;
    color: #536276;
    font-size: clamp(18px, 1.55vw, 21px);
    font-weight: 400;
    line-height: 1.65;
}

.hero-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    margin-top: 38px;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 23px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.button:hover {
    transform: translateY(-2px);
}

.button-primary {
    background: var(--navy);
    color: var(--white);
}

.button-primary:hover {
    background: var(--blue);
}

.button-text {
    padding-right: 8px;
    padding-left: 8px;
    color: var(--navy);
}

.button-text span {
    margin-left: 8px;
    color: var(--gold);
    font-size: 18px;
}

.hero-glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.hero-glow-one {
    width: 600px;
    height: 600px;
    top: -390px;
    left: 50%;
    background: radial-gradient(circle, rgba(31, 76, 130, 0.12), transparent 68%);
    transform: translateX(-50%);
}

.hero-glow-two {
    width: 460px;
    height: 460px;
    right: -260px;
    bottom: -270px;
    background: radial-gradient(circle, rgba(181, 138, 49, 0.14), transparent 68%);
}

.scroll-cue {
    position: absolute;
    z-index: 2;
    bottom: 30px;
    left: 50%;
    width: 24px;
    height: 38px;
    border: 1px solid rgba(7, 28, 59, 0.25);
    border-radius: 999px;
    transform: translateX(-50%);
}

.scroll-cue span {
    position: absolute;
    top: 8px;
    left: 50%;
    width: 3px;
    height: 7px;
    border-radius: 999px;
    background: var(--gold);
    transform: translateX(-50%);
    animation: scroll-dot 1.8s ease-in-out infinite;
}

@keyframes scroll-dot {
    0%, 100% { transform: translate(-50%, 0); opacity: 0.4; }
    50% { transform: translate(-50%, 12px); opacity: 1; }
}

.story {
    min-height: 88vh;
    min-height: 88svh;
    display: grid;
    place-items: center;
    padding: 140px 32px;
    background: var(--white);
}

.narrow {
    width: min(950px, 100%);
    margin: 0 auto;
    text-align: center;
}

.story h2,
.services-heading h2,
.contact h2 {
    color: var(--navy);
    font-size: clamp(48px, 7vw, 98px);
    line-height: 1;
}

.story h2 span,
.services-heading h2 span {
    color: var(--blue);
}

.section-lead {
    max-width: 730px;
    margin: 40px auto 0;
    color: var(--muted);
    font-size: clamp(18px, 1.5vw, 21px);
    line-height: 1.7;
}

.services-section {
    padding: 140px max(32px, calc((100vw - 1180px) / 2));
    background: var(--warm-white);
}

.services-heading {
    max-width: 920px;
    margin: 0 auto 78px;
    text-align: center;
}

.services-heading > p:last-child {
    max-width: 630px;
    margin: 30px auto 0;
    color: var(--muted);
    font-size: 18px;
    line-height: 1.65;
}

.services-list {
    width: min(1180px, 100%);
    margin: 0 auto;
}

.service-row {
    min-height: 680px;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
    align-items: center;
    gap: clamp(56px, 8vw, 118px);
    padding: 110px 0;
    border-top: 1px solid var(--line);
}

.service-row-reverse .service-visual {
    order: 2;
}

.service-row-reverse .service-copy {
    order: 1;
}

.service-visual {
    position: relative;
    min-width: 0;
    height: clamp(440px, 48vw, 620px);
    margin: 0;
    overflow: hidden;
    border-radius: 30px;
    background: var(--blue-light);
    box-shadow: 0 28px 70px rgba(7, 28, 59, 0.13);
}

.service-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.75s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.service-row:hover .service-visual img {
    transform: scale(1.025);
}

.service-copy {
    max-width: 530px;
}

.service-label {
    margin: 0 0 24px;
    color: var(--blue);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.055em;
    line-height: 1.4;
    text-transform: uppercase;
}

.service-copy h3 {
    margin: 0;
    color: var(--navy);
    font-family: "Space Grotesk", "IBM Plex Sans", sans-serif;
    font-size: clamp(43px, 4.8vw, 68px);
    font-weight: 600;
    letter-spacing: -0.045em;
    line-height: 1.02;
}

.service-copy > p:last-child {
    margin: 30px 0 0;
    color: var(--muted);
    font-size: clamp(18px, 1.7vw, 21px);
    line-height: 1.72;
}

.service-visual-type {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px;
    background:
        radial-gradient(circle at 78% 20%, rgba(215, 183, 97, 0.28), transparent 26%),
        linear-gradient(145deg, var(--navy) 0%, var(--navy-soft) 100%);
    color: var(--white);
    box-shadow: 0 28px 70px rgba(7, 28, 59, 0.18);
    text-align: center;
}

.service-visual-type span,
.service-visual-type strong {
    display: block;
    font-family: "Space Grotesk", "IBM Plex Sans", sans-serif;
}

.service-visual-type > span:first-child {
    font-size: clamp(38px, 4.5vw, 66px);
    font-weight: 500;
    letter-spacing: -0.045em;
}

.service-visual-type .visual-connector {
    margin: 12px 0;
    color: #bac8d9;
    font-family: "IBM Plex Sans", sans-serif;
    font-size: 17px;
}

.service-visual-type strong {
    color: var(--gold-light);
    font-size: clamp(48px, 5.8vw, 82px);
    font-weight: 600;
    letter-spacing: -0.055em;
}

.contact {
    min-height: 88vh;
    min-height: 88svh;
    display: grid;
    place-items: center;
    padding: 140px 32px;
    background: var(--navy);
    color: var(--white);
}

.contact .eyebrow-dark {
    color: var(--gold-light);
}

.contact h2 {
    color: var(--white);
}

.contact h2 span {
    color: var(--gold-light);
}

.contact .button {
    margin-top: 42px;
    background: var(--white);
    color: var(--navy);
}

.contact .button:hover {
    background: var(--gold-light);
}

.email-link {
    display: block;
    width: fit-content;
    margin: 24px auto 0;
    color: #bcc9d8;
    font-size: 14px;
    text-decoration: none;
}

.email-link:hover {
    color: var(--white);
}

footer {
    width: var(--page);
    min-height: 84px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--muted);
    font-size: 12px;
}

.js .reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.8s cubic-bezier(0.2, 0.7, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.js .reveal.is-visible {
    opacity: 1;
    transform: none;
}

@media (max-width: 980px) {
    .service-row {
        grid-template-columns: 1fr;
        gap: 48px;
        padding: 92px 0;
    }

    .service-row-reverse .service-visual {
        order: 0;
    }

    .service-row-reverse .service-copy {
        order: 1;
    }

    .service-copy {
        max-width: 680px;
    }
}

@media (max-width: 760px) {
    :root {
        --page: calc(100% - 40px);
    }

    .header-inner {
        min-height: 114px;
        flex-direction: column;
        justify-content: center;
        gap: 7px;
        padding: 8px 0 11px;
    }

    .logo img {
        height: 53px;
    }

    nav {
        width: 100%;
        justify-content: center;
        gap: 18px;
    }

    nav a {
        font-size: 12px;
    }

    .contact-link {
        padding: 6px 12px;
    }

    .hero {
        min-height: calc(100svh - 114px);
        padding: 66px 20px 92px;
    }

    .eyebrow {
        margin-bottom: 20px;
        font-size: 13px;
        letter-spacing: 0.09em;
    }

    .hero h1 {
        font-size: clamp(52px, 17vw, 74px);
    }

    .hero-text {
        margin-top: 27px;
        font-size: 17px;
    }

    .hero-actions {
        flex-direction: column;
        gap: 3px;
        margin-top: 29px;
    }

    .story,
    .contact {
        min-height: auto;
        padding: 108px 20px;
    }

    .story h2,
    .services-heading h2,
    .contact h2 {
        font-size: clamp(43px, 13vw, 62px);
    }

    .section-lead {
        margin-top: 30px;
        font-size: 17px;
    }

    .services-section {
        padding: 108px 20px 84px;
    }

    .services-heading {
        margin-bottom: 50px;
    }

    .services-heading > p:last-child {
        margin-top: 26px;
        font-size: 17px;
    }

    .service-row {
        grid-template-columns: 1fr;
        gap: 40px;
        min-height: auto;
        padding: 78px 0;
    }

    .service-row-reverse .service-visual {
        order: 0;
    }

    .service-row-reverse .service-copy {
        order: 1;
    }

    .service-visual {
        height: 340px;
        border-radius: 20px;
    }

    .service-copy h3 {
        font-size: clamp(39px, 11.5vw, 54px);
    }

    .service-copy > p:last-child {
        margin-top: 24px;
        font-size: 17px;
    }

    .service-visual-type {
        padding: 28px;
    }

    footer {
        min-height: 100px;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        text-align: center;
    }

    footer p {
        margin: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .js .reveal {
        opacity: 1;
        transform: none;
    }
}

/* Headline appears immediately; supporting copy follows after one second. */
.hero {
    background: #0b193c;
}

.hero-content {
    width: min(1180px, 100%);
}

.hero h1 {
    color: #ffffff;
    font-size: clamp(32px, 5.2vw, 80px);
    line-height: 1.12;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

.hero h1 span {
    color: #ffffff;
}

.hero-text {
    max-width: 790px;
    color: #d4dceb;
    margin-top: 40px;
    font-size: clamp(17px, 1.6vw, 22px);
    animation: hero-copy-in 900ms ease-out 1s both;
}

.hero .scroll-cue {
    border-color: rgba(255, 255, 255, 0.4);
}

.hero .scroll-cue span {
    background: #ffffff;
}

@keyframes hero-copy-in {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .hero-text { animation: none; }
}

/* Minimal aviation opening concept. */
.site-header {
    background: #0b193c;
    color: white;
    border-bottom: 1px solid rgba(255,255,255,.12);
    backdrop-filter: none;
}
.header-inner { min-height: 88px; }
.logo { text-decoration: none; color: white; }
.wordmark { display: block; font: 500 26px/1.2 Inter, sans-serif; letter-spacing: .24em; }
.wordmark small { display: block; margin-top: 7px; text-align: center; font: 400 9px/1 Inter, sans-serif; letter-spacing: .5em; }
nav a { color: #fff; font-family: Inter, sans-serif; font-weight: 400; }
nav a:hover { color: #b9ccec; }
.contact-link { border: 1px solid rgba(255,255,255,.5); background: transparent; border-radius: 2px; }
.hero {
    min-height: calc(100svh - 88px);
    padding: 80px 28px 220px;
}
.hero h1 { font-family: Inter, sans-serif; font-weight: 400; font-size: clamp(30px, 4.4vw, 68px); letter-spacing: .015em; line-height: 1.25; }
.hero-text { font-family: Inter, sans-serif; font-weight: 300; max-width: 760px; line-height: 1.8; }
.aircraft-scene { position: absolute; bottom: 88px; left: 0; width: 100%; height: 100px; pointer-events: none; overflow: hidden; }
.taxi-line { position: absolute; top: 50%; left: 0; width: calc(50% + 46px); border-top: 1px dashed rgba(255,255,255,.16); }
.parking-stop { position: absolute; top: 25%; left: calc(50% + 46px); height: 50%; border-left: 1px solid rgba(255,255,255,.35); }
.taxi-aircraft { position: absolute; top: 5px; left: calc(50% - 45px); width: 90px; height: 90px; color: #fff; opacity: .65; transform: rotate(90deg); animation: taxi-arrive 5s cubic-bezier(.15,.55,.25,1) both; }
@keyframes taxi-arrive {
    from { transform: translateX(-65vw) rotate(90deg); opacity: 0; }
    12% { opacity: .65; }
    to { transform: translateX(0) rotate(90deg); opacity: .65; }
}
@media (max-width: 600px) {
    .header-inner { width: calc(100% - 36px); }
    .wordmark { font-size: 19px; }
    nav { gap: 14px; }
    nav a { font-size: 11px; }
    .contact-link { padding: 8px 10px; }
    .hero { padding: 60px 22px 210px; }
    .hero h1 { font-size: clamp(27px, 7vw, 36px); }
    .hero-text { font-size: 16px; margin-top: 28px; }
}
@media (prefers-reduced-motion: reduce) {
    .taxi-aircraft { animation: none; }
}

/* Original logo artwork split into two visual layers, without changing the image. */
.hero { padding: 24px 28px 96px; }
.logo-arrival {
    position: relative;
    width: min(390px, 70vw);
    aspect-ratio: 3 / 2;
    margin: 0 auto 12px;
    isolation: isolate;
}
.logo-arrival img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    /* White presentation of the supplied artwork on the navy opening. */
    filter: grayscale(1) invert(1);
    mix-blend-mode: screen;
}
.logo-base { clip-path: inset(27.5% 0 0 0); }
.logo-aircraft {
    clip-path: inset(0 0 72.5% 0);
    transform-origin: 50% 22%;
    animation: logo-approach 4.5s cubic-bezier(.16,.6,.22,1) both;
}
.hero h1 { animation: hero-copy-in 900ms ease-out 4.5s both; }
.hero-text { animation: hero-copy-in 900ms ease-out 5.5s both; }
@keyframes logo-approach {
    0% { transform: translateY(-70px) scale(.12); opacity: 0; }
    15% { opacity: .7; }
    100% { transform: translateY(0) scale(1); opacity: 1; }
}
@media (max-width: 600px) {
    .hero { padding: 30px 22px 90px; }
    .logo-arrival { width: min(300px, 75vw); margin-bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .logo-aircraft, .hero h1, .hero-text { animation: none; }
}

/* Once the aircraft settles, reveal the book with a single soft glint. */
.logo-base {
    mask-image: linear-gradient(to bottom, #000 0 61%, transparent 61% 71%, #000 71% 100%);
    -webkit-mask-image: linear-gradient(to bottom, #000 0 61%, transparent 61% 71%, #000 71% 100%);
}
.logo-book {
    position: absolute;
    inset: 0;
    mix-blend-mode: screen;
    animation: book-arrival 1.4s ease-out 4.5s both;
}
.logo-book img { clip-path: inset(61% 0 29% 0); }
.hero h1 { animation-delay: 5.5s; }
.hero-text { animation-delay: 6.5s; }
@keyframes book-arrival {
    0% { opacity: 0; filter: brightness(1) drop-shadow(0 0 0 transparent); }
    35% { opacity: 1; filter: brightness(1.7) drop-shadow(0 0 9px rgba(215,230,255,.85)); }
    100% { opacity: 1; filter: brightness(1) drop-shadow(0 0 0 transparent); }
}
@media (prefers-reduced-motion: reduce) {
    .logo-book { animation: none; }
}

/* Blend the logo layers into the same navy as the opening section. */
.logo-arrival {
    isolation: auto;
    background: transparent;
}
.logo-arrival img {
    filter: grayscale(1) invert(1) contrast(8);
}

/* Trace the aircraft silhouette once it reaches its place in the logo. */
.aircraft-outline {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
    fill: none;
    stroke: #e5f2ff;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    opacity: 0;
    filter: drop-shadow(0 0 4px #b7d9ff) drop-shadow(0 0 9px rgba(183,217,255,.65));
    animation: aircraft-edge-glint 1.5s ease-in-out 4.5s both;
}
@keyframes aircraft-edge-glint {
    0% { stroke-dashoffset: 1; opacity: 0; }
    12% { opacity: 1; }
    72% { stroke-dashoffset: 0; opacity: 1; }
    100% { stroke-dashoffset: 0; opacity: 0; }
}
.logo-book { animation-delay: 6s; }
.hero h1 { animation-delay: 7s; }
.hero-text { animation-delay: 8s; }
@media (prefers-reduced-motion: reduce) {
    .aircraft-outline { animation: none; opacity: 0; }
}

/* Use real alpha transparency instead of blending opaque image rectangles. */
.logo-arrival { isolation: isolate; background: none; }
.logo-arrival img {
    filter: url(#logo-transparent);
    mix-blend-mode: normal;
}
.logo-book { mix-blend-mode: normal; }
.aircraft-outline {
    clip-path: inset(14% 36% 72% 36%);
    stroke: none;
    filter: none;
    animation: actual-aircraft-glint 1.5s ease-in-out 4.5s both;
}
@keyframes actual-aircraft-glint {
    0% { opacity: 0; }
    35% { opacity: 1; }
    65% { opacity: .8; }
    100% { opacity: 0; }
}
.logo-book {
    animation: book-pages-open 1.4s ease-out 6s both;
}
@keyframes book-pages-open {
    0% { opacity: 0; clip-path: inset(0 50% 0 50%); filter: none; }
    60% { opacity: 1; clip-path: inset(0 15% 0 15%); filter: drop-shadow(0 0 4px rgba(220,236,255,.6)); }
    100% { opacity: 1; clip-path: inset(0); filter: none; }
}
@media (prefers-reduced-motion: reduce) {
    .aircraft-outline { animation: none; opacity: 0; }
    .logo-book { animation: none; clip-path: none; }
}

/* Keep the edge effect absent until the aircraft has actually settled. */
.aircraft-outline {
    visibility: hidden;
    opacity: 0;
    animation: none;
}
.logo-arrival.is-parked .aircraft-outline {
    visibility: visible;
    animation: actual-aircraft-glint 1.5s ease-in-out both;
}
@media (prefers-reduced-motion: reduce) {
    .logo-arrival.is-parked .aircraft-outline {
        visibility: hidden;
        animation: none;
    }
}

/* Exclude the source canvas edges from the moving aircraft layer. */
.logo-aircraft {
    clip-path: inset(15% 38% 72.5% 38%);
    border: 0;
    outline: 0;
}

/* Reveal each thought separately after the logo sequence. */
.hero h1 { animation: none; }
.hero h1 > span { display: block; }
.headline-experience { animation: hero-copy-in 800ms ease-out 7s both; }
.headline-learning { animation: hero-copy-in 800ms ease-out 8.3s both; }
.page-invitation {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    margin-top: 36px;
    padding: 12px 4px;
    color: #fff;
    font: 400 clamp(12px, 1.2vw, 16px)/1.6 Inter, sans-serif;
    letter-spacing: .12em;
    text-decoration: none;
    animation: invitation-in 900ms ease-out 9.8s both;
}
.page-invitation span { font-size: 22px; }
.page-invitation:hover { text-decoration: underline; text-underline-offset: 7px; }
.page-invitation:focus-visible { outline: 2px solid white; outline-offset: 6px; }
@keyframes invitation-in {
    from { opacity: 0; visibility: hidden; transform: translateY(12px); }
    to { opacity: 1; visibility: visible; transform: translateY(0); }
}
.hero .scroll-cue { display: none; }
@media (prefers-reduced-motion: reduce) {
    .headline-experience, .headline-learning, .page-invitation { animation: none; }
}

/* Second chapter: soft white with the opening's deep aviation blue. */
.story {
    background: #fafbfc;
    color: #0b193c;
    min-height: calc(100svh - 88px);
    scroll-margin-top: 88px;
    padding: clamp(80px, 10vw, 140px) 28px;
}
.story .narrow { max-width: 1000px; }
.story .eyebrow {
    color: #0b193c;
    font-family: Inter, sans-serif;
    font-size: 12px;
    letter-spacing: .2em;
    font-weight: 500;
    margin-bottom: 30px;
}
.story .section-lead {
    color: #0b193c;
    font-family: Inter, sans-serif;
    font-size: clamp(18px, 2vw, 23px);
    font-weight: 400;
    line-height: 1.8;
    max-width: 790px;
    margin: 0 auto;
}
.story h2 {
    color: #0b193c;
    font-family: Inter, sans-serif;
    font-weight: 400;
    font-size: clamp(32px, 4.5vw, 62px);
    line-height: 1.2;
    letter-spacing: -.035em;
    text-wrap: balance;
    margin: 56px auto 0;
}
@media (max-width: 600px) {
    .story { padding: 76px 24px; }
    .story h2 { margin-top: 38px; }
}

/* Editorial layout for the experience chapter. */
.story { background: #fafbfc; padding: clamp(80px, 10vw, 140px) 32px; }
.story-layout {
    display: grid;
    grid-template-columns: .8fr 1.4fr;
    align-items: center;
    gap: clamp(48px, 7vw, 100px);
    width: min(1080px, 100%);
    margin: 0 auto;
}
.experience-mark { align-self: center; }
.experience-number {
    display: block;
    font: 300 clamp(110px, 13vw, 180px)/1 Inter, sans-serif;
    letter-spacing: -.07em;
}
.experience-number > span { font-size: .45em; vertical-align: top; position: relative; top: .15em; }
.experience-mark p {
    margin: 24px 0 0;
    font: 500 11px/1.9 Inter, sans-serif;
    letter-spacing: .12em;
}
.story-copy { border-left: 1px solid #d9dee7; padding-left: clamp(32px, 4vw, 64px); text-align: left; }
.story .eyebrow { margin-bottom: 24px; font-size: 11px; }
.story .section-lead { margin: 0; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.8; max-width: 560px; }
.story h2 {
    font-size: clamp(29px, 3vw, 43px);
    line-height: 1.25;
    font-weight: 400;
    letter-spacing: -.03em;
    text-wrap: pretty;
    margin: 38px 0 0;
    max-width: 590px;
}
.story-link {
    display: inline-flex;
    align-items: center;
    gap: 28px;
    margin-top: 34px;
    padding: 10px 0;
    border-bottom: 1px solid #aeb8ca;
    text-decoration: none;
    font: 500 13px/1.5 Inter, sans-serif;
}
.story-link:hover { border-color: #0b193c; }
.story-link:focus-visible { outline: 2px solid #0b193c; outline-offset: 5px; }
#services { scroll-margin-top: 88px; }
@media (max-width: 720px) {
    .story { padding: 72px 26px; }
    .story-layout { grid-template-columns: 1fr; gap: 38px; }
    .experience-number { font-size: 110px; }
    .experience-mark p { margin-top: 14px; }
    .story-copy { border-left: none; border-top: 1px solid #d9dee7; padding: 32px 0 0; }
    .story h2 { margin-top: 28px; }
}

/* Final refinement: restrained depth, clearer hierarchy and compact service explorer. */
.hero {
    background:
        radial-gradient(ellipse at 50% 39%, rgba(38, 73, 128, .28) 0%, rgba(11, 25, 60, 0) 48%),
        linear-gradient(180deg, #0b193c 0%, #091735 100%);
}
.logo-arrival { width: min(438px, 72vw); margin-bottom: -2px; transform: translateY(8px); }
.hero h1 { font-size: clamp(30px, 4.1vw, 64px); line-height: 1.18; letter-spacing: .012em; }
.hero h1 > span + span { margin-top: 6px; }
.page-invitation { margin-top: 42px; }
.page-invitation span { animation: invitation-arrow 2.2s ease-in-out infinite; }
@keyframes invitation-arrow { 0%,100% { transform: translateY(0); opacity: .65; } 50% { transform: translateY(7px); opacity: 1; } }

.story { min-height: 78svh; padding: clamp(76px, 8vw, 112px) 28px; }
.story-layout { width: min(880px, 100%); }
.story h2 { margin-bottom: 30px; font-size: clamp(36px, 4.2vw, 58px); }
.story .section-lead { font-size: clamp(19px, 1.9vw, 24px); line-height: 1.7; }
.story-promise { margin-top: 25px; font-size: clamp(21px, 2.3vw, 30px); line-height: 1.48; }
.story-link { margin-top: 29px; font-size: 14px; }

.nav-services { position: relative; }
.services-nav-link span { display: inline-block; margin-left: 4px; transition: transform .2s ease; }
.services-menu {
    position: absolute; top: calc(100% + 19px); right: -150px; width: min(760px, calc(100vw - 40px));
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 26px;
    background: #fff; color: #0b193c; border: 1px solid #d8dee8; box-shadow: 0 18px 45px rgba(7,28,59,.14);
    opacity: 0; visibility: hidden; transform: translateY(-8px); transition: .2s ease;
}
.nav-services:hover .services-menu, .nav-services:focus-within .services-menu, .nav-services.is-open .services-menu { opacity: 1; visibility: visible; transform: none; }
.nav-services:hover .services-nav-link span, .nav-services.is-open .services-nav-link span { transform: rotate(180deg); }
.services-menu > div { padding: 2px 22px 4px; }
.services-menu > div + div { border-left: 1px solid #dde2ea; }
.services-menu strong { display: block; margin-bottom: 13px; font: 600 12px/1.4 Inter,sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.services-menu a { display: block; padding: 6px 0; color: #536178; font-size: 12px; line-height: 1.45; }
.services-menu a:hover { color: #0b193c; }

.services-section { padding-top: clamp(78px, 8vw, 112px); }
.services-heading { margin-bottom: 54px; }
.service-audiences { border: 1px solid #ccd3df; }
.audience { padding: 22px 28px 25px; }
.audience-number { margin-bottom: 21px; }
.audience h3 { font-size: clamp(21px, 2vw, 29px); }
.audience h3 span { font-size: 15px; margin-top: 8px; }
.service-panels { margin-top: 58px; }
.panel-intro { max-width: 930px; margin-bottom: 42px; }
.service-accordion { border-top: 1px solid #ccd3df; }
.service-accordion .service-detail { padding: 0; border: 0; border-bottom: 1px solid #ccd3df; }
.service-detail > button { width: 100%; display: grid; grid-template-columns: 58px 1fr 30px; align-items: center; gap: 20px; padding: 25px 12px; border: 0; background: transparent; color: #0b193c; text-align: left; cursor: pointer; }
.service-detail > button span { color: #71809a; font: 400 12px/1.5 Inter,sans-serif; }
.service-detail > button strong { font: 500 clamp(18px, 1.8vw, 24px)/1.35 Inter,sans-serif; }
.service-detail > button i { position: relative; width: 18px; height: 18px; }
.service-detail > button i::before, .service-detail > button i::after { content: ""; position: absolute; top: 8px; left: 2px; width: 14px; border-top: 1px solid currentColor; transition: transform .2s ease; }
.service-detail > button i::after { transform: rotate(90deg); }
.service-detail.is-open > button i::after { transform: rotate(0); }
.service-detail > button:hover { background: #f5f7fa; }
.detail-content { padding: 0 40px 30px 90px; }
.detail-content ul { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 50px; margin: 0; }
.detail-content li { margin-top: 9px; }
.services-contact { margin-top: 88px; padding-top: clamp(68px, 7vw, 96px); padding-bottom: clamp(68px, 7vw, 96px); }
.services-contact h3 { max-width: 780px; font-size: clamp(29px, 3.3vw, 48px); }
.services-contact > p:not(.contact-kicker) { margin-top: 22px; }
.contact-toggle { margin-top: 30px; }
.contact-details { margin-top: 42px; }

@media (max-width: 760px) {
    .header-inner { min-height: 74px; }
    .wordmark { font-size: 18px; }
    nav { gap: 11px; }
    nav a { font-size: 10px; }
    .services-nav-link span { display: none; }
    .services-menu { position: fixed; top: 74px; left: 14px; right: 14px; width: auto; grid-template-columns: 1fr; max-height: calc(100svh - 90px); overflow-y: auto; padding: 18px; }
    .services-menu > div { padding: 10px 8px; }
    .services-menu > div + div { border-left: 0; border-top: 1px solid #dde2ea; }
    .hero { min-height: calc(100svh - 74px); padding: 20px 20px 68px; }
    .logo-arrival { width: min(335px, 84vw); transform: translateY(4px); margin-bottom: 0; }
    .hero h1 { font-size: clamp(25px, 7.2vw, 34px); line-height: 1.24; }
    .page-invitation { margin-top: 31px; font-size: 10px; }
    .story { min-height: auto; padding: 68px 24px 74px; }
    .story h2 { margin-bottom: 24px; font-size: 34px; }
    .story .section-lead { font-size: 17px; line-height: 1.65; }
    .story-promise { font-size: 20px; }
    .services-section { padding: 68px 22px 0; }
    .services-heading { margin-bottom: 30px; }
    .service-audiences { grid-template-columns: 1fr; }
    .audience { padding: 20px 22px; }
    .audience + .audience { border-top: 1px solid #ccd3df; }
    .audience-number, .audience-for { display: inline-block; margin: 0 10px 8px 0; }
    .audience h3 { font-size: 22px; }
    .service-panels { margin-top: 38px; }
    .panel-intro { font-size: 19px; line-height: 1.55; }
    .service-detail > button { grid-template-columns: 34px 1fr 24px; gap: 10px; padding: 21px 5px; }
    .detail-content { padding: 0 8px 26px 44px; }
    .detail-content ul { grid-template-columns: 1fr; }
    .services-contact { margin-top: 62px; }
}

/* Centered introduction with Why Skylore as the main heading. */
.story-layout { display: block; width: min(800px, 100%); }
.story-copy { border: 0; padding: 0; text-align: center; }
.story h2 {
    max-width: none;
    margin: 0 0 36px;
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 400;
    letter-spacing: .06em;
    line-height: 1.2;
}
.story .section-lead {
    max-width: 740px;
    margin: 0 auto;
    font-size: clamp(18px, 1.8vw, 22px);
    line-height: 1.85;
}
.story-promise {
    max-width: 680px;
    margin: 30px auto 0;
    color: #0b193c;
    font: 400 clamp(20px, 2.2vw, 28px)/1.6 Inter, sans-serif;
    text-wrap: balance;
}

/* Give the completed logo one extra second before the text sequence. */
.headline-experience { animation-delay: 8s; }
.headline-learning { animation-delay: 9.3s; }
.page-invitation { animation-delay: 10.8s; }

/* Keep aircraft timing independent of the delayed text sequence. */
@media (prefers-reduced-motion: no-preference) {
    .logo-arrival .logo-aircraft {
        animation-duration: 4.5s;
        animation-delay: 0s;
    }
}

/* Three audiences, separated by fine rules on white. */
.services-section {
    background: #fafbfc;
    color: #0b193c;
    min-height: calc(100svh - 88px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(80px, 9vw, 130px) 32px;
}
.services-heading { width: 100%; margin: 0 auto 76px; }
.services-heading h2 {
    color: #0b193c;
    font: 400 clamp(32px, 4vw, 52px)/1.2 Inter, sans-serif;
    letter-spacing: .06em;
}
.service-audiences {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(1120px, 100%);
    margin: 0 auto;
}
.audience { padding: 32px clamp(20px, 3vw, 44px) 44px; text-align: left; }
.audience + .audience { border-left: 1px solid #ccd3df; }
.audience-number { margin: 0 0 46px; font: 400 13px/1.5 Inter, sans-serif; color: #5d6c86; }
.audience-for { margin: 0 0 14px; font: 500 11px/1.5 Inter, sans-serif; letter-spacing: .18em; }
.audience h3 { margin: 0; color: #0b193c; font: 400 clamp(25px, 2.7vw, 38px)/1.25 Inter, sans-serif; letter-spacing: -.02em; }
.audience h3 span { display: block; margin-top: 14px; font-size: clamp(17px, 1.6vw, 21px); line-height: 1.5; letter-spacing: 0; }
@media (max-width: 720px) {
    .services-section { padding: 72px 26px; }
    .services-heading { margin-bottom: 34px; }
    .service-audiences { grid-template-columns: 1fr; }
    .audience { padding: 30px 0; }
    .audience + .audience { border-left: 0; border-top: 1px solid #ccd3df; }
    .audience-number { margin-bottom: 18px; }
}

/* Completed service explorer and inline contact panel. */
.services-section {
    justify-content: flex-start;
    min-height: auto;
    background: #ffffff;
    padding-bottom: 0;
}

.service-audiences {
    border-top: 1px solid #ccd3df;
    border-bottom: 1px solid #ccd3df;
}

.audience {
    appearance: none;
    width: 100%;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #0b193c;
    cursor: pointer;
    font-family: Inter, sans-serif;
    transition: background-color .25s ease, color .25s ease;
}

.audience:hover,
.audience.is-active {
    background: #0b193c;
    color: #ffffff;
}

.audience:hover h3,
.audience.is-active h3,
.audience:hover .audience-number,
.audience.is-active .audience-number {
    color: #ffffff;
}

.audience:focus-visible {
    outline: 2px solid #0b193c;
    outline-offset: 4px;
    z-index: 1;
}

.service-panels {
    width: min(1120px, 100%);
    margin: 70px auto 0;
}

.service-panel[hidden] { display: none; }

.panel-intro {
    max-width: 810px;
    margin: 0 0 52px;
    color: #0b193c;
    font: 400 clamp(20px, 2.2vw, 29px)/1.55 Inter, sans-serif;
    letter-spacing: -.02em;
}

.service-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid #ccd3df;
}

.service-detail-grid.four-columns {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.service-detail {
    padding: 34px clamp(20px, 2.5vw, 36px) 42px;
}

.service-detail + .service-detail { border-left: 1px solid #ccd3df; }

.service-detail > p {
    margin: 0 0 25px;
    color: #71809a;
    font: 400 12px/1.5 Inter, sans-serif;
}

.service-detail h4 {
    min-height: 3.3em;
    margin: 0 0 25px;
    color: #0b193c;
    font: 500 clamp(18px, 1.5vw, 23px)/1.4 Inter, sans-serif;
}

.service-detail ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.service-detail li {
    position: relative;
    margin-top: 12px;
    padding-left: 16px;
    color: #4f5d74;
    font: 400 14px/1.65 Inter, sans-serif;
}

.service-detail li::before {
    content: "";
    position: absolute;
    top: .75em;
    left: 0;
    width: 5px;
    border-top: 1px solid #0b193c;
}

.services-contact {
    width: 100vw;
    margin: 110px calc(50% - 50vw) 0;
    padding: clamp(85px, 10vw, 140px) 32px;
    background: #0b193c;
    color: #ffffff;
    text-align: center;
}

.contact-kicker {
    margin: 0 0 30px;
    font: 500 12px/1.5 Inter, sans-serif;
    letter-spacing: .2em;
}

.services-contact h3 {
    max-width: 900px;
    margin: 0 auto;
    font: 400 clamp(31px, 4vw, 58px)/1.2 Inter, sans-serif;
    letter-spacing: -.035em;
    text-wrap: balance;
}

.services-contact > p:not(.contact-kicker) {
    max-width: 650px;
    margin: 28px auto 0;
    color: #d4dceb;
    font: 300 clamp(17px, 1.5vw, 20px)/1.75 Inter, sans-serif;
}

.contact-toggle {
    margin-top: 38px;
    padding: 13px 3px;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,.55);
    background: transparent;
    color: #ffffff;
    cursor: pointer;
    font: 500 13px/1.5 Inter, sans-serif;
    letter-spacing: .1em;
}

.contact-toggle span { margin-left: 18px; }
.contact-toggle:hover { border-color: #ffffff; }
.contact-toggle:focus-visible { outline: 2px solid #ffffff; outline-offset: 6px; }

.contact-details {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: min(1120px, 100%);
    margin: 58px auto 0;
    border-top: 1px solid rgba(255,255,255,.25);
    border-bottom: 1px solid rgba(255,255,255,.25);
    text-align: left;
}

.contact-details[hidden] { display: none; }
.contact-details > * {
    min-width: 0;
    margin: 0;
    padding: 28px 24px;
    color: #ffffff;
    font: 400 14px/1.55 Inter, sans-serif;
    overflow-wrap: anywhere;
    text-decoration: none;
}
.contact-details > * + * { border-left: 1px solid rgba(255,255,255,.25); }
.contact-details span {
    display: block;
    margin-bottom: 9px;
    color: #aebbd0;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.contact-details a:hover { background: rgba(255,255,255,.07); }

@media (max-width: 960px) {
    .service-detail-grid.four-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-detail-grid.four-columns .service-detail:nth-child(3) { border-left: 0; border-top: 1px solid #ccd3df; }
    .service-detail-grid.four-columns .service-detail:nth-child(4) { border-top: 1px solid #ccd3df; }
    .contact-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .contact-details > *:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255,255,255,.25); }
    .contact-details > *:nth-child(4) { border-top: 1px solid rgba(255,255,255,.25); }
}

@media (max-width: 720px) {
    .service-audiences { border-bottom: 0; }
    .audience + .audience { border-left: 0; }
    .service-panels { margin-top: 48px; }
    .panel-intro { margin-bottom: 36px; }
    .service-detail-grid,
    .service-detail-grid.four-columns { grid-template-columns: 1fr; }
    .service-detail + .service-detail,
    .service-detail-grid.four-columns .service-detail:nth-child(3),
    .service-detail-grid.four-columns .service-detail:nth-child(4) { border-left: 0; border-top: 1px solid #ccd3df; }
    .service-detail h4 { min-height: auto; }
    .services-contact { margin-top: 72px; padding-right: 24px; padding-left: 24px; }
    .contact-details { grid-template-columns: 1fr; }
    .contact-details > * + *,
    .contact-details > *:nth-child(3),
    .contact-details > *:nth-child(4) { border-left: 0; border-top: 1px solid rgba(255,255,255,.25); }
}

/* Authoritative final layout overrides. */
.hero { background: radial-gradient(ellipse at 50% 39%, rgba(38,73,128,.28), rgba(11,25,60,0) 48%), linear-gradient(180deg,#0b193c,#091735); }
.logo-arrival { width:min(438px,72vw); margin-bottom:-2px; transform:translateY(8px); }
.hero h1 { font-size:clamp(30px,4.1vw,64px); line-height:1.18; letter-spacing:.012em; }
.hero h1>span+span { margin-top:6px; }
.page-invitation { margin-top:42px; }
.page-invitation span { animation:invitation-arrow 2.2s ease-in-out infinite; }
@keyframes invitation-arrow { 0%,100%{transform:translateY(0);opacity:.65} 50%{transform:translateY(7px);opacity:1} }

.story { min-height:78svh; padding:clamp(76px,8vw,112px) 28px; }
.story-layout { width:min(880px,100%); }
.story h2 { margin:0 0 30px; font-size:clamp(36px,4.2vw,58px); }
.story .section-lead { font-size:clamp(19px,1.9vw,24px); line-height:1.7; }
.story-promise { margin-top:25px; font-size:clamp(21px,2.3vw,30px); line-height:1.48; }
.story-link { margin-top:29px; font-size:14px; }

.services-section { padding-top:clamp(78px,8vw,112px); }
.services-heading { margin-bottom:54px; }
.service-audiences { border:1px solid #ccd3df; }
.audience { padding:22px 28px 25px; }
.audience-number { margin-bottom:21px; }
.audience h3 { font-size:clamp(21px,2vw,29px); }
.audience h3 span { margin-top:8px; font-size:15px; }
.service-panels { margin-top:58px; }
.panel-intro { max-width:930px; margin-bottom:42px; }
.service-accordion { border-top:1px solid #ccd3df; }
.service-accordion .service-detail { padding:0; border:0; border-bottom:1px solid #ccd3df; }
.service-detail>button { width:100%; display:grid; grid-template-columns:58px 1fr 30px; align-items:center; gap:20px; padding:25px 12px; border:0; background:transparent; color:#0b193c; text-align:left; cursor:pointer; }
.service-detail>button span { color:#71809a; font:400 12px/1.5 Inter,sans-serif; }
.service-detail>button strong { font:500 clamp(18px,1.8vw,24px)/1.35 Inter,sans-serif; }
.service-detail>button i { position:relative; width:18px; height:18px; }
.service-detail>button i::before,.service-detail>button i::after { content:""; position:absolute; top:8px; left:2px; width:14px; border-top:1px solid currentColor; transition:transform .2s ease; }
.service-detail>button i::after { transform:rotate(90deg); }
.service-detail.is-open>button i::after { transform:rotate(0); }
.service-detail>button:hover { background:#f5f7fa; }
.detail-content { padding:0 40px 30px 90px; }
.detail-content ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:50px; margin:0; }
.detail-content li { margin-top:9px; }
.services-contact { margin-top:88px; padding-top:clamp(68px,7vw,96px); padding-bottom:clamp(68px,7vw,96px); }
.services-contact h3 { max-width:780px; font-size:clamp(29px,3.3vw,48px); }
.services-contact>p:not(.contact-kicker) { margin-top:22px; }
.contact-toggle { margin-top:30px; }
.contact-details { margin-top:42px; }

@media (max-width:760px) {
    .header-inner { min-height:74px; }
    .wordmark { font-size:18px; }
    nav { gap:11px; }
    nav a { font-size:10px; }
    .services-nav-link span { display:none; }
    .services-menu { position:fixed; top:74px; left:14px; right:14px; width:auto; grid-template-columns:1fr; max-height:calc(100svh - 90px); overflow-y:auto; padding:18px; }
    .services-menu>div { padding:10px 8px; }
    .services-menu>div+div { border-left:0; border-top:1px solid #dde2ea; }
    .hero { min-height:calc(100svh - 74px); padding:20px 20px 68px; }
    .logo-arrival { width:min(335px,84vw); transform:translateY(4px); margin-bottom:0; }
    .hero h1 { font-size:clamp(25px,7.2vw,34px); line-height:1.24; }
    .page-invitation { margin-top:31px; font-size:10px; }
    .story { min-height:auto; padding:68px 24px 74px; }
    .story h2 { margin-bottom:24px; font-size:34px; }
    .story .section-lead { font-size:17px; line-height:1.65; }
    .story-promise { font-size:20px; }
    .services-section { padding:68px 22px 0; }
    .services-heading { margin-bottom:30px; }
    .service-audiences { grid-template-columns:1fr; }
    .audience { padding:20px 22px; }
    .audience+.audience { border-top:1px solid #ccd3df; }
    .audience-number,.audience-for { display:inline-block; margin:0 10px 8px 0; }
    .audience h3 { font-size:22px; }
    .service-panels { margin-top:38px; }
    .panel-intro { font-size:19px; line-height:1.55; }
    .service-detail>button { grid-template-columns:34px 1fr 24px; gap:10px; padding:21px 5px; }
    .detail-content { padding:0 8px 26px 44px; }
    .detail-content ul { grid-template-columns:1fr; }
    .services-contact { margin-top:62px; }
}

/* Page navigation and two-level service disclosure. */
.primary-page[hidden] { display:none !important; }
.wordmark small { font-size:7px; letter-spacing:.22em; white-space:nowrap; }
.nav-services { display:flex; align-items:center; gap:4px; }
.services-menu-toggle { padding:5px 3px; border:0; background:transparent; color:#fff; cursor:pointer; font:400 13px/1 Inter,sans-serif; }
.nav-services:hover .services-menu,.nav-services:focus-within .services-menu { opacity:0; visibility:hidden; transform:translateY(-8px); }
.nav-services.is-open .services-menu { opacity:1; visibility:visible; transform:none; }
.services-menu { right:0; width:min(390px,calc(100vw - 32px)); grid-template-columns:1fr; padding:18px 22px; }
.services-menu>div { padding:12px 4px; }
.services-menu>div+div { border-left:0; border-top:1px solid #dde2ea; }
.category-view { display:inline-flex; align-items:center; gap:11px; margin-top:4px; padding:8px 0; border:0; border-bottom:1px solid #aeb8c7; background:transparent; color:#0b193c; cursor:pointer; font:500 10px/1.4 Inter,sans-serif; letter-spacing:.12em; }
.category-view span { font-size:16px; font-weight:300; transition:transform .2s ease; }
.category-view[aria-expanded="true"] span { transform:rotate(45deg); }
.category-details[hidden] { display:none; }
.category-details { margin-top:24px; border-top:1px solid #d6dce5; }
.services-section { min-height:calc(100svh - 88px); }
.services-contact { width:100%; margin:0; }

@media (max-width:760px) {
    .wordmark small { font-size:5.5px; letter-spacing:.13em; }
    .services-menu-toggle { font-size:11px; }
}

@media (min-width:761px) {
    .story-layout { width:min(1180px,100%); }
    .story-promise {
        max-width:none;
        white-space:nowrap;
        color:#071c3b;
        font-size:clamp(23px,2.25vw,34px);
        font-weight:500;
        line-height:1.35;
        letter-spacing:-.025em;
    }
}

/* Balanced content pages and compact service actions. */
.who-layout { display:block; width:min(1180px,100%); }
.who-heading { text-align:center; }
.who-heading h2 { white-space:nowrap; }
.who-copy { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:62px; padding:0; border:0; }
.who-copy p { margin:0; padding:4px clamp(28px,3.2vw,48px); font-size:clamp(16px,1.35vw,19px); line-height:1.72; }
.who-copy p+p { margin:0; border-left:1px solid #d6dce5; }

.services-heading { margin-bottom:38px; }
.service-column { padding-top:30px; padding-bottom:28px; }
.service-column>h3 { min-height:2.35em; }
.column-intro { min-height:6.2em; margin:20px 0 20px; line-height:1.6; }
.service-column .service-detail { position:relative; min-height:76px; padding:17px 0 15px; }
.service-column .service-detail h4 { padding-right:108px; font-size:16px; line-height:1.4; }
.service-column .see-more {
    position:absolute;
    top:16px;
    right:0;
    width:auto;
    display:inline-flex;
    grid-template-columns:none;
    align-items:center;
    gap:8px;
    margin:0;
    padding:2px 0;
    color:#607089;
    font:500 9px/1.4 Inter,sans-serif;
    letter-spacing:.11em;
    white-space:nowrap;
}
.service-column .see-more span { display:grid; place-items:center; width:19px; height:19px; margin:0; border:1px solid #aeb8c7; border-radius:50%; font-size:13px; line-height:1; }
.service-column .detail-content { padding:14px 0 3px; }
.service-column .service-detail.is-open { min-height:auto; }

.services-contact { min-height:calc(100svh - 88px); display:flex; flex-direction:column; justify-content:center; scroll-margin-top:88px; margin-top:70px; }

@media (max-width:920px) {
    .who-copy { grid-template-columns:1fr; margin-top:38px; }
    .who-copy p { padding:22px 0; }
    .who-copy p+p { border-left:0; border-top:1px solid #d6dce5; }
    .service-column .service-detail h4 { padding-right:112px; }
}
@media (max-width:760px) {
    .who-heading { text-align:left; }
    .who-heading h2 { white-space:normal; }
    .who-copy { margin-top:28px; }
    .services-contact { min-height:auto; }
}

/* Navigation rules must remain last. */
.primary-page[hidden] { display:none !important; }
.wordmark small { font-size:7px; letter-spacing:.22em; white-space:nowrap; }
.nav-services { display:flex; align-items:center; gap:4px; }
.services-menu-toggle { padding:5px 3px; border:0; background:transparent; color:#fff; cursor:pointer; font:400 13px/1 Inter,sans-serif; }
.nav-services:hover .services-menu,.nav-services:focus-within .services-menu { opacity:0; visibility:hidden; transform:translateY(-8px); }
.nav-services.is-open .services-menu { opacity:1; visibility:visible; transform:none; }
.category-view { display:inline-flex; align-items:center; gap:11px; margin-top:4px; padding:8px 0; border:0; border-bottom:1px solid #aeb8c7; background:transparent; color:#0b193c; cursor:pointer; font:500 10px/1.4 Inter,sans-serif; letter-spacing:.12em; }
.category-view span { font-size:16px; font-weight:300; transition:transform .2s ease; }
.category-view[aria-expanded="true"] span { transform:rotate(45deg); }
.category-details[hidden] { display:none; }
.category-details { margin-top:24px; border-top:1px solid #d6dce5; }
.services-section { min-height:calc(100svh - 88px); }
.services-contact { width:100%; min-height:calc(100svh - 88px); margin:0; }
@media (max-width:760px) {
    .wordmark small { font-size:5.5px; letter-spacing:.13em; }
    .services-menu-toggle { font-size:11px; }
    .services-contact { min-height:auto; }
}

/* Who We Are and a clearer visual hierarchy for the opening. */
.logo-arrival::before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:18% 13% 23%;
    border-radius:50%;
    background:radial-gradient(ellipse,rgba(91,147,216,.24),rgba(91,147,216,0) 68%);
    filter:blur(16px);
    animation:logo-atmosphere 6s ease-in-out both;
}
.logo-arrival.is-parked::before { animation:logo-settle 1.8s ease-out both; }
.logo-aircraft { filter:url(#logo-transparent) drop-shadow(0 0 7px rgba(190,222,255,.5)) !important; }
.logo-arrival.is-parked .aircraft-outline { filter:drop-shadow(0 0 6px rgba(213,233,255,.95)) drop-shadow(0 0 16px rgba(112,173,239,.8)); }
.headline-experience { color:#fff !important; }
.headline-learning { color:#dbe7f6 !important; font-weight:300; }
.hero h1::after { content:""; display:block; width:52px; margin:25px auto 0; border-top:1px solid rgba(206,164,77,.9); animation:hero-copy-in 800ms ease-out 10s both; }
@keyframes logo-atmosphere { 0%{opacity:.15;transform:scale(.7)} 70%{opacity:1;transform:scale(1.08)} 100%{opacity:.65;transform:scale(1)} }
@keyframes logo-settle { 0%{opacity:1;transform:scale(1.08)} 100%{opacity:.58;transform:scale(1)} }

.who-section { scroll-margin-top:88px; background:#fff; color:#0b193c; padding:clamp(85px,9vw,130px) 32px; }
.who-section { min-height:calc(100svh - 88px); display:grid; align-items:center; }
.who-layout { width:min(1120px,100%); margin:0 auto; display:grid; grid-template-columns:70px minmax(250px,.72fr) minmax(420px,1.28fr); gap:clamp(28px,5vw,72px); align-items:start; }
.section-number { margin:8px 0 0; color:#8490a4; font:400 12px/1.5 Inter,sans-serif; }
.section-kicker { margin:0 0 22px; color:#66758d; font:500 11px/1.5 Inter,sans-serif; letter-spacing:.2em; }
.who-heading h2 { margin:0; color:#0b193c; font:400 clamp(35px,4vw,54px)/1.15 Inter,sans-serif; letter-spacing:.055em; }
.who-copy { border-left:1px solid #d6dce5; padding-left:clamp(28px,4vw,58px); }
.who-copy p { margin:0; color:#33435c; font:400 clamp(17px,1.55vw,21px)/1.75 Inter,sans-serif; }
.who-copy p+p { margin-top:22px; }
.story { min-height:calc(100svh - 88px); background:#f5f7fa; }

@media (max-width:920px) {
    .who-layout { grid-template-columns:42px 1fr; }
    .who-copy { grid-column:2; border-left:0; padding:8px 0 0; }
}
@media (max-width:760px) {
    .header-inner { width:calc(100% - 28px); }
    nav { gap:9px; }
    nav a { font-size:9px; }
    .contact-link { padding:7px 8px; }
    .who-section { min-height:auto; display:block; padding:66px 24px 72px; }
    .who-layout { display:block; }
    .section-number { display:none; }
    .section-kicker { margin-bottom:16px; }
    .who-heading h2 { font-size:34px; }
    .who-copy { margin-top:28px; padding:25px 0 0; border-top:1px solid #d6dce5; }
    .who-copy p { font-size:16px; line-height:1.7; }
    .who-copy p+p { margin-top:18px; }
    .hero h1::after { margin-top:18px; }
}
@media (max-width:480px) {
    .wordmark { font-size:16px; }
    .wordmark small { font-size:7px; }
    nav { gap:7px; }
    nav a { font-size:8px; }
    .contact-link { padding:6px; }
}

/* Final requested hero and three-column services structure. */
.hero h1::after { display:none; }
.logo-arrival::before { inset:5% -8% 9%; background:radial-gradient(ellipse,rgba(115,179,245,.42),rgba(55,112,184,.18) 43%,rgba(11,25,60,0) 72%); filter:blur(20px); opacity:0; animation:none; }
.logo-arrival.is-parked::before { animation:logo-glow-on 1.8s ease-out 2.9s forwards; }
.logo-arrival.is-parked { animation:skylore-radiance 2s ease-out 2.9s forwards; }
.logo-arrival::after {
    content:"";
    position:absolute;
    z-index:-1;
    left:50%;
    top:65%;
    width:22%;
    height:12%;
    border-radius:50%;
    background:radial-gradient(ellipse,rgba(235,247,255,.95) 0%,rgba(137,195,245,.5) 35%,rgba(64,125,196,0) 74%);
    filter:blur(8px);
    opacity:0;
    transform:translate(-50%,-50%) scale(.15,.25);
    pointer-events:none;
}
.logo-arrival.is-parked::after { animation:book-light-spread 2s cubic-bezier(.16,.72,.25,1) 2.9s forwards; }
@keyframes logo-glow-on { 0%{opacity:0;transform:scale(.72)} 45%{opacity:.95;transform:scale(1.05)} 100%{opacity:.35;transform:scale(1)} }
@keyframes book-light-spread {
    0%{opacity:0;transform:translate(-50%,-50%) scale(.15,.25)}
    18%{opacity:1}
    58%{opacity:.78;transform:translate(-50%,-66%) scale(4.8,6.2)}
    100%{opacity:0;transform:translate(-50%,-74%) scale(6.4,8)}
}
@keyframes skylore-radiance { 0%{filter:drop-shadow(0 0 0 rgba(184,220,255,0))} 45%{filter:drop-shadow(0 0 19px rgba(184,220,255,.72))} 100%{filter:drop-shadow(0 0 7px rgba(184,220,255,.24))} }

.who-layout { grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr); }
.who-copy { grid-column:auto; }

.menu-category-toggle { width:100%; display:grid; grid-template-columns:1fr 20px; gap:12px; padding:0 0 13px; border:0; background:transparent; color:#0b193c; text-align:left; cursor:pointer; font:600 12px/1.5 Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.menu-category-toggle span { font-size:18px; font-weight:300; transition:transform .2s ease; }
.menu-category-toggle[aria-expanded="true"] span { transform:rotate(45deg); }
.menu-subservices[hidden] { display:none; }
.menu-subservices { padding-bottom:8px; }

.service-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:min(1180px,100%); margin:0 auto; border-top:1px solid #ccd3df; border-bottom:1px solid #ccd3df; }
.service-column { min-width:0; padding:38px clamp(22px,2.6vw,38px) 44px; }
.service-column+.service-column { border-left:1px solid #ccd3df; }
.service-column>.audience-for { margin:0 0 15px; }
.service-column>h3 { min-height:2.65em; margin:0; color:#0b193c; font:400 clamp(25px,2.5vw,36px)/1.2 Inter,sans-serif; letter-spacing:-.025em; }
.service-column>h3 span { display:block; margin-top:9px; font-size:16px; line-height:1.4; letter-spacing:0; }
.column-intro { min-height:7.2em; margin:27px 0 28px; color:#59677d; font:400 14px/1.7 Inter,sans-serif; }
.service-column .service-detail { padding:21px 0; border:0; border-top:1px solid #d6dce5; }
.service-column .service-detail h4 { min-height:auto; margin:0; color:#0b193c; font:500 17px/1.45 Inter,sans-serif; }
.service-column .service-detail h4[role="button"] { cursor:pointer; }
.service-column .service-detail h4[role="button"]:hover { color:#24548a; }
.service-column .service-detail h4[role="button"]:focus-visible { outline:2px solid #0b193c; outline-offset:5px; }
.see-more { margin-top:14px; padding:4px 0; border:0; background:transparent; color:#58677e; cursor:pointer; font:500 10px/1.5 Inter,sans-serif; letter-spacing:.14em; }
.see-more span { display:inline-block; margin-left:8px; font-size:15px; transition:transform .2s ease; }
.see-more[aria-expanded="true"] span { transform:rotate(45deg); }
.service-column .detail-content { padding:14px 0 0; }
.service-column .detail-content ul { display:block; margin:0; }
.service-column .detail-content li { font-size:13px; line-height:1.55; }

@media (max-width:920px) {
    .who-layout { grid-template-columns:1fr; }
    .who-copy { grid-column:auto; }
    .service-columns { grid-template-columns:1fr; }
    .service-column+.service-column { border-left:0; border-top:1px solid #ccd3df; }
    .service-column>h3,.column-intro { min-height:auto; }
    .column-intro { margin-bottom:24px; }
}

/* Final page layouts — kept last to prevent legacy rules from overriding them. */
.who-layout { display:block; width:min(1180px,100%); margin:0 auto; }
.who-heading { text-align:center; }
.who-heading h2 { white-space:nowrap; }
.who-copy { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; margin:58px 0 0; padding:0; border:0; }
.who-copy p { min-width:0; margin:0; padding:3px clamp(28px,3.2vw,48px); color:#33435c; font:400 clamp(16px,1.3vw,19px)/1.72 Inter,sans-serif; }
.who-copy p+p { margin:0; border:0; border-left:1px solid #d6dce5; }

.services-heading { margin-bottom:38px; }
.service-column { padding:30px clamp(22px,2.6vw,38px) 28px; }
.service-column>h3 { min-height:2.35em; }
.column-intro { min-height:6.2em; margin:20px 0; line-height:1.6; }
.service-column .service-detail { position:relative; min-height:76px; padding:17px 0 15px; }
.service-column .service-detail h4 { padding-right:112px; font-size:16px; line-height:1.4; }
.service-column .see-more { position:absolute; top:16px; right:0; width:auto; display:inline-flex; align-items:center; gap:8px; margin:0; padding:2px 0; color:#607089; font:500 9px/1.4 Inter,sans-serif; letter-spacing:.11em; white-space:nowrap; }
.service-column .see-more span { display:grid; place-items:center; width:19px; height:19px; margin:0; border:1px solid #aeb8c7; border-radius:50%; font-size:13px; line-height:1; }
.service-column .detail-content { padding:14px 0 3px; }
.service-column .service-detail.is-open { min-height:auto; }
.services-contact { min-height:calc(100svh - 88px); display:flex; flex-direction:column; justify-content:center; scroll-margin-top:88px; margin-top:70px; }

@media (max-width:920px) {
    .who-copy { grid-template-columns:1fr; margin-top:38px; }
    .who-copy p { padding:22px 0; }
    .who-copy p+p { border-left:0; border-top:1px solid #d6dce5; }
}
@media (max-width:760px) {
    .who-heading { text-align:left; }
    .who-heading h2 { white-space:normal; }
    .who-copy { margin-top:28px; }
    .services-contact { min-height:auto; }
}

/* Final navigation state. */
.primary-page[hidden] { display:none !important; }
.wordmark small { width:100%; margin-top:7px; text-align:center; font-size:5.5px; letter-spacing:.11em; white-space:nowrap; }
.nav-services { display:flex; align-items:center; gap:4px; }
.services-menu-toggle { padding:5px 3px; border:0; background:transparent; color:#fff; cursor:pointer; font:400 13px/1 Inter,sans-serif; }
.nav-services:hover .services-menu,.nav-services:focus-within .services-menu { opacity:0; visibility:hidden; transform:translateY(-8px); }
.nav-services.is-open .services-menu { opacity:1; visibility:visible; transform:none; }
.category-view { display:inline-flex; align-items:center; gap:11px; margin-top:4px; padding:8px 0; border:0; border-bottom:1px solid #aeb8c7; background:transparent; color:#0b193c; cursor:pointer; font:500 10px/1.4 Inter,sans-serif; letter-spacing:.12em; }
.category-view span { font-size:16px; font-weight:300; transition:transform .2s ease; }
.category-view[aria-expanded="true"] span { transform:rotate(45deg); }
.category-details[hidden] { display:none; }
.category-details { margin-top:24px; border-top:1px solid #d6dce5; }
.services-section { min-height:calc(100svh - 88px); }
.services-contact { width:100%; min-height:calc(100svh - 88px); margin:0; }
@media (max-width:760px) {
    .wordmark small { font-size:4.5px; letter-spacing:.08em; }
    .services-menu-toggle { font-size:11px; }
    .services-contact { min-height:auto; }
}

/* Quiet two-column Who We Are composition. */
.who-layout { display:grid; grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr); width:min(1040px,100%); gap:clamp(48px,7vw,100px); align-items:start; }
.who-heading { padding-top:4px; text-align:left; }
.who-heading h2 { white-space:nowrap; font-size:clamp(34px,3.3vw,47px); letter-spacing:.045em; }
.who-copy { display:block; width:auto; margin:0; padding:0 0 0 clamp(34px,4vw,58px); border:0; border-left:1px solid #d6dce5; }
.who-copy p { margin:0; padding:0; color:#33435c; font:400 clamp(17px,1.45vw,20px)/1.72 Inter,sans-serif; }
.who-copy p+p { margin-top:21px; padding:0; border:0; }
@media (max-width:760px) {
    .who-layout { display:block; }
    .who-heading h2 { white-space:normal; font-size:34px; }
    .who-copy { margin-top:27px; padding:24px 0 0; border-left:0; border-top:1px solid #d6dce5; }
}

/* Refined opening invitation. */
.page-invitation { transition:color .25s ease; }
.page-invitation .invitation-line { width:34px; height:1px; margin-left:5px; background:rgba(255,255,255,.68); animation:none; transition:width .28s ease,background-color .28s ease; }
.page-invitation:hover { color:#fff; text-decoration:none; }
.page-invitation:hover .invitation-line { width:52px; background:#fff; }

/* Final brand and menu polish. */
.wordmark small { font-size:6.6px; letter-spacing:.14em; }
.who-heading h2,.story h2 { font-size:clamp(36px,3.6vw,52px); }
.services-menu { border:1px solid rgba(7,28,59,.14); box-shadow:0 16px 38px rgba(7,28,59,.10); }
.services-menu>div+div { border-top-color:rgba(7,28,59,.11); }
.menu-category-toggle { padding-top:2px; padding-bottom:14px; }
.menu-category-toggle span { font-size:15px; color:#53647d; }
.menu-subservices { padding:2px 0 9px; }
.menu-subservices a { padding:7px 0; line-height:1.5; }
@media (max-width:760px) {
    .wordmark small { font-size:5.2px; letter-spacing:.06em; }
}

/* Mobile navigation. */
.mobile-menu-toggle { display:none; }
@media (max-width:760px) {
    .site-header { position:sticky; }
    .header-inner { position:relative; min-height:74px; flex-direction:row; justify-content:space-between; gap:0; padding:0; }
    .site-header .logo { flex:0 1 auto; min-width:0; }
    .mobile-menu-toggle { display:grid; width:38px; height:38px; place-content:center; gap:6px; padding:0; border:1px solid rgba(255,255,255,.38); background:transparent; color:#fff; cursor:pointer; }
    .mobile-menu-toggle span { display:block; width:17px; border-top:1px solid currentColor; transition:transform .25s ease; }
    .site-header.mobile-nav-open .mobile-menu-toggle span:first-child { transform:translateY(3.5px) rotate(45deg); }
    .site-header.mobile-nav-open .mobile-menu-toggle span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
    .site-header nav { position:absolute; top:74px; left:-14px; right:-14px; display:none; flex-direction:column; align-items:stretch; gap:0; padding:12px 20px 20px; background:#0b193c; border-top:1px solid rgba(255,255,255,.12); box-shadow:0 18px 32px rgba(4,15,36,.22); }
    .site-header.mobile-nav-open nav { display:flex; }
    .site-header nav>a,.nav-services { width:100%; min-height:48px; justify-content:space-between; padding:14px 4px; border-bottom:1px solid rgba(255,255,255,.12); font-size:13px; }
    .site-header nav .contact-link { margin-top:10px; justify-content:center; border:1px solid rgba(255,255,255,.42); }
    .services-menu-toggle { margin-left:auto; padding:10px; }
    .services-menu { top:74px; }
}

/* Open-book cue for the first-page invitation. */
.page-invitation .invitation-line { display:none; }
.page-turn-icon { width:31px; height:22px; margin-left:3px; overflow:visible; fill:none; stroke:rgba(255,255,255,.72); stroke-width:1.15; stroke-linecap:round; stroke-linejoin:round; animation:none !important; }
.page-turn-icon path { transition:transform .3s ease,stroke .3s ease; }
.page-turn-icon .page-left { transform-origin:17px 21px; }
.page-turn-icon .page-right { transform-origin:17px 21px; }
.page-invitation:hover .page-turn-icon { stroke:#fff; }
.page-invitation:hover .page-left { transform:translateX(-1.5px) rotate(-2deg); }
.page-invitation:hover .page-right { transform:translateX(1.5px) rotate(2deg); }
.services-contact .contact-details { margin-top:48px; }
