/*
 * Consolidated child theme stylesheet.
 * Phase 1 starts by migrating header/navigation rules from the parent bundle
 * so we can diff behaviour before dequeueing legacy handles.
 */

/* ==========================================================================
   Brand Base & Typography
   ========================================================================== */

:root {
    --lse-primary-magenta: #E6007E;
    --lse-secondary-orange: #EE7218;
    --lse-tertiary-blue: #6ACAF3;
    --lse-structure-navy: #000032;
    --lse-neutral-gray: #666666;
    --lse-light-gray: #f5f5f5;
    --lse-white: #ffffff;
    --partner-london-homestays: #ed3036;
    --partner-uk-residences: #7ac043;
    --lse-primary-orange: var(--lse-secondary-orange);
    --lse-light-blue: var(--lse-tertiary-blue);
    --lse-magenta: var(--lse-primary-magenta);
    --lse-dark-blue: var(--lse-structure-navy);
    --lse-body-font-family: 'proxima-nova', 'Proxima Nova', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --lse-heading-font-family: var(--lse-body-font-family);
    --lse-heading-font-weight: 700;
    --lse-heading-line-height: 1.3;
    --lse-heading-letter-spacing: 0.5px;
    --lse-heading-h2-size: 2.5rem;
    --lse-heading-h2-margin-top: 40px;
    --lse-heading-h2-margin-bottom: 30px;
    --lse-heading-h2-margin: var(--lse-heading-h2-margin-top) 0 var(--lse-heading-h2-margin-bottom);
    --lse-heading-underline-width: 300px;
    --lse-heading-underline-height: 4px;
    --lse-heading-underline-margin-top: 15px;
    --lse-wrap-base-width: 80%;
    --lse-wrap-desktop-width: 85%;
    --lse-wrap-wide-width: 96%;
    --lse-grid-max-width: 1200px;
    --lse-grid-gutter: 24px;
    --lse-grid-gutter-narrow: 12px;
    --lse-grid-gutter-wide: 48px;
    --lse-module-overlay-bg: rgba(0, 0, 0, 0.7);
    --lse-module-heading-padding: 22px;
    --lse-module-heading-letter-spacing: 1px;
    --lse-module-heading-color: #ffffff;
    --lse-module-price-background: var(--lse-structure-navy);
    --lse-module-price-text: #ffffff;
    --lse-module-availability-background: #ffcb99;
    --lse-module-availability-text: #000000;
    --lse-accent-color: var(--lse-primary-magenta);
    --lse-option-module-heading: #424564;
    --lse-residence-module-heading: #684f6d;
}

body {
    font-family: var(--lse-body-font-family);
    font-weight: 400;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--lse-heading-font-family);
    font-weight: var(--lse-heading-font-weight);
    color: var(--lse-structure-navy);
    line-height: var(--lse-heading-line-height);
}

h2 {
    font-size: var(--lse-heading-h2-size) !important;
    letter-spacing: var(--lse-heading-letter-spacing) !important;
    margin: var(--lse-heading-h2-margin) !important;
    color: var(--lse-structure-navy) !important;
    font-weight: var(--lse-heading-font-weight) !important;
    line-height: var(--lse-heading-line-height) !important;
    padding: 0 !important;
    text-align: center !important;
    position: relative !important;
    background: none !important;
    border: none !important;
}

h2::after {
    content: '';
    display: block;
    width: var(--lse-heading-underline-width) !important;
    height: var(--lse-heading-underline-height) !important;
    background: var(--lse-primary-magenta) !important;
    margin: var(--lse-heading-underline-margin-top) auto 0 !important;
    border-radius: 2px !important;
}

body,
html {
    background: #ffffff;
    color: var(--lse-structure-navy);
}

html body {
    overflow-x: hidden;
    max-width: 100vw;
}

html body::after,
html body .container::after,
html body .wrap::after {
    content: "";
    display: table;
    clear: both;
}

/* ==========================================================================
   Layout Grid System Support
   ========================================================================== */

.wrap {
    width: var(--lse-wrap-base-width, 80%);
    margin: 0 auto;
}

@media (min-width: 768px) {
    .wrap {
        width: var(--lse-wrap-desktop-width, 85%);
        max-width: var(--lse-grid-max-width, 1200px);
    }
}

@media (min-width: 1030px) {
    .wrap {
        width: var(--lse-wrap-wide-width, 96%);
    }
}

.clearfix::before,
.clearfix::after {
    content: "";
    display: table;
}
.clearfix::after {
    clear: both;
}
.clearfix {
    zoom: 1;
}
.clear {
    clear: both;
    display: block;
    overflow: hidden;
    visibility: hidden;
    width: 0;
    height: 0;
}

.grid {
    list-style: none;
    margin: 0;
    padding: 0;
    margin-left: calc(-1 * var(--lse-grid-gutter, 24px));
}
.grid__item {
    display: inline-block;
    padding-left: var(--lse-grid-gutter, 24px);
    vertical-align: top;
    width: 100%;
    box-sizing: border-box;
}

[class*='grid--rev'] {
    direction: rtl;
    text-align: left;
}
[class*='grid--rev'] > [class*='grid__item'] {
    direction: ltr;
    text-align: left;
}
[class*='grid--full'] {
    margin-left: 0;
}
[class*='grid--full'] > [class*='grid__item'] {
    padding-left: 0;
}
[class*='grid--right'] {
    text-align: right;
}
[class*='grid--right'] > [class*='grid__item'] {
    text-align: left;
}
[class*='grid--center'] {
    text-align: center;
}
[class*='grid--center'] > [class*='grid__item'] {
    text-align: left;
}
[class*='grid--middle'] > [class*='grid__item'] {
    vertical-align: middle;
}
[class*='grid--bottom'] > [class*='grid__item'] {
    vertical-align: bottom;
}
[class*='grid--narrow'] {
    margin-left: calc(-1 * var(--lse-grid-gutter-narrow, 12px));
}
[class*='grid--narrow'] > [class*='grid__item'] {
    padding-left: var(--lse-grid-gutter-narrow, 12px);
}
[class*='grid--wide'] {
    margin-left: calc(-1 * var(--lse-grid-gutter-wide, 48px));
}
[class*='grid--wide'] > [class*='grid__item'] {
    padding-left: var(--lse-grid-gutter-wide, 48px);
}

.one-whole {
    width: 100%;
}

.eleven-twelfths {
    width: 91.666%;
}

.nine-tenths {
    width: 90%;
}

.seven-eighths {
    width: 87.5%;
}

.five-sixths,
.ten-twelfths {
    width: 83.333%;
}

.eight-tenths,
.four-fifths {
    width: 80%;
}

.nine-twelfths,
.six-eighths,
.three-quarters {
    width: 75%;
}

.seven-tenths {
    width: 70%;
}

.eight-twelfths,
.four-sixths,
.two-thirds {
    width: 66.666%;
}

.five-eighths {
    width: 62.5%;
}

.six-tenths,
.three-fifths {
    width: 60%;
}

.seven-twelfths {
    width: 58.333%;
}

.five-tenths,
.four-eighths,
.one-half,
.six-twelfths,
.three-sixths,
.two-quarters {
    width: 50%;
}

.five-twelfths {
    width: 41.666%;
}

.four-tenths,
.two-fifths {
    width: 40%;
}

.three-eighths {
    width: 37.5%;
}

.four-twelfths,
.one-third,
.two-sixths {
    width: 33.333%;
}

.three-tenths {
    width: 30%;
}

.one-quarter,
.three-twelfths,
.two-eighths {
    width: 25%;
}

.one-fifth,
.two-tenths {
    width: 20%;
}

.one-sixth,
.two-twelfths {
    width: 16.666%;
}

.one-eighth {
    width: 12.5%;
}

.one-tenth {
    width: 10%;
}

.one-twelfth {
    width: 8.333%;
}

@media (max-width: 480px) {
    .palm--one-whole {
        width: 100%;
    }

    .palm--eleven-twelfths {
        width: 91.666%;
    }

    .palm--nine-tenths {
        width: 90%;
    }

    .palm--seven-eighths {
        width: 87.5%;
    }

    .palm--five-sixths,
    .palm--ten-twelfths {
        width: 83.333%;
    }

    .palm--eight-tenths,
    .palm--four-fifths {
        width: 80%;
    }

    .palm--nine-twelfths,
    .palm--six-eighths,
    .palm--three-quarters {
        width: 75%;
    }

    .palm--seven-tenths {
        width: 70%;
    }

    .palm--eight-twelfths,
    .palm--four-sixths,
    .palm--two-thirds {
        width: 66.666%;
    }

    .palm--five-eighths {
        width: 62.5%;
    }

    .palm--six-tenths,
    .palm--three-fifths {
        width: 60%;
    }

    .palm--seven-twelfths {
        width: 58.333%;
    }

    .palm--five-tenths,
    .palm--four-eighths,
    .palm--one-half,
    .palm--six-twelfths,
    .palm--three-sixths,
    .palm--two-quarters {
        width: 50%;
    }

    .palm--five-twelfths {
        width: 41.666%;
    }

    .palm--four-tenths,
    .palm--two-fifths {
        width: 40%;
    }

    .palm--three-eighths {
        width: 37.5%;
    }

    .palm--four-twelfths,
    .palm--one-third,
    .palm--two-sixths {
        width: 33.333%;
    }

    .palm--three-tenths {
        width: 30%;
    }

    .palm--one-quarter,
    .palm--three-twelfths,
    .palm--two-eighths {
        width: 25%;
    }

    .palm--one-fifth,
    .palm--two-tenths {
        width: 20%;
    }

    .palm--one-sixth,
    .palm--two-twelfths {
        width: 16.666%;
    }

    .palm--one-eighth {
        width: 12.5%;
    }

    .palm--one-tenth {
        width: 10%;
    }

    .palm--one-twelfth {
        width: 8.333%;
    }
}

@media (min-width: 481px) and (max-width: 1023px) {
    .lap--one-whole {
        width: 100%;
    }

    .lap--eleven-twelfths {
        width: 91.666%;
    }

    .lap--nine-tenths {
        width: 90%;
    }

    .lap--seven-eighths {
        width: 87.5%;
    }

    .lap--five-sixths,
    .lap--ten-twelfths {
        width: 83.333%;
    }

    .lap--eight-tenths,
    .lap--four-fifths {
        width: 80%;
    }

    .lap--nine-twelfths,
    .lap--six-eighths,
    .lap--three-quarters {
        width: 75%;
    }

    .lap--seven-tenths {
        width: 70%;
    }

    .lap--eight-twelfths,
    .lap--four-sixths,
    .lap--two-thirds {
        width: 66.666%;
    }

    .lap--five-eighths {
        width: 62.5%;
    }

    .lap--six-tenths,
    .lap--three-fifths {
        width: 60%;
    }

    .lap--seven-twelfths {
        width: 58.333%;
    }

    .lap--five-tenths,
    .lap--four-eighths,
    .lap--one-half,
    .lap--six-twelfths,
    .lap--three-sixths,
    .lap--two-quarters {
        width: 50%;
    }

    .lap--five-twelfths {
        width: 41.666%;
    }

    .lap--four-tenths,
    .lap--two-fifths {
        width: 40%;
    }

    .lap--three-eighths {
        width: 37.5%;
    }

    .lap--four-twelfths,
    .lap--one-third,
    .lap--two-sixths {
        width: 33.333%;
    }

    .lap--three-tenths {
        width: 30%;
    }

    .lap--one-quarter,
    .lap--three-twelfths,
    .lap--two-eighths {
        width: 25%;
    }

    .lap--one-fifth,
    .lap--two-tenths {
        width: 20%;
    }

    .lap--one-sixth,
    .lap--two-twelfths {
        width: 16.666%;
    }

    .lap--one-eighth {
        width: 12.5%;
    }

    .lap--one-tenth {
        width: 10%;
    }

    .lap--one-twelfth {
        width: 8.333%;
    }
}

@media (min-width: 1024px) {
    .desk--one-whole {
        width: 100%;
    }

    .desk--eleven-twelfths {
        width: 91.666%;
    }

    .desk--nine-tenths {
        width: 90%;
    }

    .desk--seven-eighths {
        width: 87.5%;
    }

    .desk--five-sixths,
    .desk--ten-twelfths {
        width: 83.333%;
    }

    .desk--eight-tenths,
    .desk--four-fifths {
        width: 80%;
    }

    .desk--nine-twelfths,
    .desk--six-eighths,
    .desk--three-quarters {
        width: 75%;
    }

    .desk--seven-tenths {
        width: 70%;
    }

    .desk--eight-twelfths,
    .desk--four-sixths,
    .desk--two-thirds {
        width: 66.666%;
    }

    .desk--five-eighths {
        width: 62.5%;
    }

    .desk--six-tenths,
    .desk--three-fifths {
        width: 60%;
    }

    .desk--seven-twelfths {
        width: 58.333%;
    }

    .desk--five-tenths,
    .desk--four-eighths,
    .desk--one-half,
    .desk--six-twelfths,
    .desk--three-sixths,
    .desk--two-quarters {
        width: 50%;
    }

    .desk--five-twelfths {
        width: 41.666%;
    }

    .desk--four-tenths,
    .desk--two-fifths {
        width: 40%;
    }

    .desk--three-eighths {
        width: 37.5%;
    }

    .desk--four-twelfths,
    .desk--one-third,
    .desk--two-sixths {
        width: 33.333%;
    }

    .desk--three-tenths {
        width: 30%;
    }

    .desk--one-quarter,
    .desk--three-twelfths,
    .desk--two-eighths {
        width: 25%;
    }

    .desk--one-fifth,
    .desk--two-tenths {
        width: 20%;
    }

    .desk--one-sixth,
    .desk--two-twelfths {
        width: 16.666%;
    }

    .desk--one-eighth {
        width: 12.5%;
    }

    .desk--one-tenth {
        width: 10%;
    }

    .desk--one-twelfth {
        width: 8.333%;
    }
}

[class*='push--'], [class*='pull--'] {
    position: relative;
}

.push--one-whole {
    left: 100%;
}

.push--eleven-twelfths {
    left: 91.666%;
}

.push--nine-tenths {
    left: 90%;
}

.push--seven-eighths {
    left: 87.5%;
}

.push--five-sixths,
.push--ten-twelfths {
    left: 83.333%;
}

.push--eight-tenths,
.push--four-fifths {
    left: 80%;
}

.push--nine-twelfths,
.push--six-eighths,
.push--three-quarters {
    left: 75%;
}

.push--seven-tenths {
    left: 70%;
}

.push--eight-twelfths,
.push--four-sixths,
.push--two-thirds {
    left: 66.666%;
}

.push--five-eighths {
    left: 62.5%;
}

.push--six-tenths,
.push--three-fifths {
    left: 60%;
}

.push--seven-twelfths {
    left: 58.333%;
}

.push--five-tenths,
.push--four-eighths,
.push--one-half,
.push--six-twelfths,
.push--three-sixths,
.push--two-quarters {
    left: 50%;
}

.push--five-twelfths {
    left: 41.666%;
}

.push--four-tenths,
.push--two-fifths {
    left: 40%;
}

.push--three-eighths {
    left: 37.5%;
}

.push--four-twelfths,
.push--one-third,
.push--two-sixths {
    left: 33.333%;
}

.push--three-tenths {
    left: 30%;
}

.push--one-quarter,
.push--three-twelfths,
.push--two-eighths {
    left: 25%;
}

.push--one-fifth,
.push--two-tenths {
    left: 20%;
}

.push--one-sixth,
.push--two-twelfths {
    left: 16.666%;
}

.push--one-eighth {
    left: 12.5%;
}

.push--one-tenth {
    left: 10%;
}

.push--one-twelfth {
    left: 8.333%;
}

@media (max-width: 480px) {
    .push--palm--one-whole {
        left: 100%;
    }

    .push--palm--eleven-twelfths {
        left: 91.666%;
    }

    .push--palm--nine-tenths {
        left: 90%;
    }

    .push--palm--seven-eighths {
        left: 87.5%;
    }

    .push--palm--five-sixths,
    .push--palm--ten-twelfths {
        left: 83.333%;
    }

    .push--palm--eight-tenths,
    .push--palm--four-fifths {
        left: 80%;
    }

    .push--palm--nine-twelfths,
    .push--palm--six-eighths,
    .push--palm--three-quarters {
        left: 75%;
    }

    .push--palm--seven-tenths {
        left: 70%;
    }

    .push--palm--eight-twelfths,
    .push--palm--four-sixths,
    .push--palm--two-thirds {
        left: 66.666%;
    }

    .push--palm--five-eighths {
        left: 62.5%;
    }

    .push--palm--six-tenths,
    .push--palm--three-fifths {
        left: 60%;
    }

    .push--palm--seven-twelfths {
        left: 58.333%;
    }

    .push--palm--five-tenths,
    .push--palm--four-eighths,
    .push--palm--one-half,
    .push--palm--six-twelfths,
    .push--palm--three-sixths,
    .push--palm--two-quarters {
        left: 50%;
    }

    .push--palm--five-twelfths {
        left: 41.666%;
    }

    .push--palm--four-tenths,
    .push--palm--two-fifths {
        left: 40%;
    }

    .push--palm--three-eighths {
        left: 37.5%;
    }

    .push--palm--four-twelfths,
    .push--palm--one-third,
    .push--palm--two-sixths {
        left: 33.333%;
    }

    .push--palm--three-tenths {
        left: 30%;
    }

    .push--palm--one-quarter,
    .push--palm--three-twelfths,
    .push--palm--two-eighths {
        left: 25%;
    }

    .push--palm--one-fifth,
    .push--palm--two-tenths {
        left: 20%;
    }

    .push--palm--one-sixth,
    .push--palm--two-twelfths {
        left: 16.666%;
    }

    .push--palm--one-eighth {
        left: 12.5%;
    }

    .push--palm--one-tenth {
        left: 10%;
    }

    .push--palm--one-twelfth {
        left: 8.333%;
    }
}

@media (min-width: 481px) and (max-width: 1023px) {
    .push--lap--one-whole {
        left: 100%;
    }

    .push--lap--eleven-twelfths {
        left: 91.666%;
    }

    .push--lap--nine-tenths {
        left: 90%;
    }

    .push--lap--seven-eighths {
        left: 87.5%;
    }

    .push--lap--five-sixths,
    .push--lap--ten-twelfths {
        left: 83.333%;
    }

    .push--lap--eight-tenths,
    .push--lap--four-fifths {
        left: 80%;
    }

    .push--lap--nine-twelfths,
    .push--lap--six-eighths,
    .push--lap--three-quarters {
        left: 75%;
    }

    .push--lap--seven-tenths {
        left: 70%;
    }

    .push--lap--eight-twelfths,
    .push--lap--four-sixths,
    .push--lap--two-thirds {
        left: 66.666%;
    }

    .push--lap--five-eighths {
        left: 62.5%;
    }

    .push--lap--six-tenths,
    .push--lap--three-fifths {
        left: 60%;
    }

    .push--lap--seven-twelfths {
        left: 58.333%;
    }

    .push--lap--five-tenths,
    .push--lap--four-eighths,
    .push--lap--one-half,
    .push--lap--six-twelfths,
    .push--lap--three-sixths,
    .push--lap--two-quarters {
        left: 50%;
    }

    .push--lap--five-twelfths {
        left: 41.666%;
    }

    .push--lap--four-tenths,
    .push--lap--two-fifths {
        left: 40%;
    }

    .push--lap--three-eighths {
        left: 37.5%;
    }

    .push--lap--four-twelfths,
    .push--lap--one-third,
    .push--lap--two-sixths {
        left: 33.333%;
    }

    .push--lap--three-tenths {
        left: 30%;
    }

    .push--lap--one-quarter,
    .push--lap--three-twelfths,
    .push--lap--two-eighths {
        left: 25%;
    }

    .push--lap--one-fifth,
    .push--lap--two-tenths {
        left: 20%;
    }

    .push--lap--one-sixth,
    .push--lap--two-twelfths {
        left: 16.666%;
    }

    .push--lap--one-eighth {
        left: 12.5%;
    }

    .push--lap--one-tenth {
        left: 10%;
    }

    .push--lap--one-twelfth {
        left: 8.333%;
    }
}

@media (min-width: 1024px) {
    .push--desk--one-whole {
        left: 100%;
    }

    .push--desk--eleven-twelfths {
        left: 91.666%;
    }

    .push--desk--nine-tenths {
        left: 90%;
    }

    .push--desk--seven-eighths {
        left: 87.5%;
    }

    .push--desk--five-sixths,
    .push--desk--ten-twelfths {
        left: 83.333%;
    }

    .push--desk--eight-tenths,
    .push--desk--four-fifths {
        left: 80%;
    }

    .push--desk--nine-twelfths,
    .push--desk--six-eighths,
    .push--desk--three-quarters {
        left: 75%;
    }

    .push--desk--seven-tenths {
        left: 70%;
    }

    .push--desk--eight-twelfths,
    .push--desk--four-sixths,
    .push--desk--two-thirds {
        left: 66.666%;
    }

    .push--desk--five-eighths {
        left: 62.5%;
    }

    .push--desk--six-tenths,
    .push--desk--three-fifths {
        left: 60%;
    }

    .push--desk--seven-twelfths {
        left: 58.333%;
    }

    .push--desk--five-tenths,
    .push--desk--four-eighths,
    .push--desk--one-half,
    .push--desk--six-twelfths,
    .push--desk--three-sixths,
    .push--desk--two-quarters {
        left: 50%;
    }

    .push--desk--five-twelfths {
        left: 41.666%;
    }

    .push--desk--four-tenths,
    .push--desk--two-fifths {
        left: 40%;
    }

    .push--desk--three-eighths {
        left: 37.5%;
    }

    .push--desk--four-twelfths,
    .push--desk--one-third,
    .push--desk--two-sixths {
        left: 33.333%;
    }

    .push--desk--three-tenths {
        left: 30%;
    }

    .push--desk--one-quarter,
    .push--desk--three-twelfths,
    .push--desk--two-eighths {
        left: 25%;
    }

    .push--desk--one-fifth,
    .push--desk--two-tenths {
        left: 20%;
    }

    .push--desk--one-sixth,
    .push--desk--two-twelfths {
        left: 16.666%;
    }

    .push--desk--one-eighth {
        left: 12.5%;
    }

    .push--desk--one-tenth {
        left: 10%;
    }

    .push--desk--one-twelfth {
        left: 8.333%;
    }
}

.pull--one-whole {
    right: 100%;
}

.pull--eleven-twelfths {
    right: 91.666%;
}

.pull--nine-tenths {
    right: 90%;
}

.pull--seven-eighths {
    right: 87.5%;
}

.pull--five-sixths,
.pull--ten-twelfths {
    right: 83.333%;
}

.pull--eight-tenths,
.pull--four-fifths {
    right: 80%;
}

.pull--nine-twelfths,
.pull--six-eighths,
.pull--three-quarters {
    right: 75%;
}

.pull--seven-tenths {
    right: 70%;
}

.pull--eight-twelfths,
.pull--four-sixths,
.pull--two-thirds {
    right: 66.666%;
}

.pull--five-eighths {
    right: 62.5%;
}

.pull--six-tenths,
.pull--three-fifths {
    right: 60%;
}

.pull--seven-twelfths {
    right: 58.333%;
}

.pull--five-tenths,
.pull--four-eighths,
.pull--one-half,
.pull--six-twelfths,
.pull--three-sixths,
.pull--two-quarters {
    right: 50%;
}

.pull--five-twelfths {
    right: 41.666%;
}

.pull--four-tenths,
.pull--two-fifths {
    right: 40%;
}

.pull--three-eighths {
    right: 37.5%;
}

.pull--four-twelfths,
.pull--one-third,
.pull--two-sixths {
    right: 33.333%;
}

.pull--three-tenths {
    right: 30%;
}

.pull--one-quarter,
.pull--three-twelfths,
.pull--two-eighths {
    right: 25%;
}

.pull--one-fifth,
.pull--two-tenths {
    right: 20%;
}

.pull--one-sixth,
.pull--two-twelfths {
    right: 16.666%;
}

.pull--one-eighth {
    right: 12.5%;
}

.pull--one-tenth {
    right: 10%;
}

.pull--one-twelfth {
    right: 8.333%;
}

@media (max-width: 480px) {
    .pull--palm--one-whole {
        right: 100%;
    }

    .pull--palm--eleven-twelfths {
        right: 91.666%;
    }

    .pull--palm--nine-tenths {
        right: 90%;
    }

    .pull--palm--seven-eighths {
        right: 87.5%;
    }

    .pull--palm--five-sixths,
    .pull--palm--ten-twelfths {
        right: 83.333%;
    }

    .pull--palm--eight-tenths,
    .pull--palm--four-fifths {
        right: 80%;
    }

    .pull--palm--nine-twelfths,
    .pull--palm--six-eighths,
    .pull--palm--three-quarters {
        right: 75%;
    }

    .pull--palm--seven-tenths {
        right: 70%;
    }

    .pull--palm--eight-twelfths,
    .pull--palm--four-sixths,
    .pull--palm--two-thirds {
        right: 66.666%;
    }

    .pull--palm--five-eighths {
        right: 62.5%;
    }

    .pull--palm--six-tenths,
    .pull--palm--three-fifths {
        right: 60%;
    }

    .pull--palm--seven-twelfths {
        right: 58.333%;
    }

    .pull--palm--five-tenths,
    .pull--palm--four-eighths,
    .pull--palm--one-half,
    .pull--palm--six-twelfths,
    .pull--palm--three-sixths,
    .pull--palm--two-quarters {
        right: 50%;
    }

    .pull--palm--five-twelfths {
        right: 41.666%;
    }

    .pull--palm--four-tenths,
    .pull--palm--two-fifths {
        right: 40%;
    }

    .pull--palm--three-eighths {
        right: 37.5%;
    }

    .pull--palm--four-twelfths,
    .pull--palm--one-third,
    .pull--palm--two-sixths {
        right: 33.333%;
    }

    .pull--palm--three-tenths {
        right: 30%;
    }

    .pull--palm--one-quarter,
    .pull--palm--three-twelfths,
    .pull--palm--two-eighths {
        right: 25%;
    }

    .pull--palm--one-fifth,
    .pull--palm--two-tenths {
        right: 20%;
    }

    .pull--palm--one-sixth,
    .pull--palm--two-twelfths {
        right: 16.666%;
    }

    .pull--palm--one-eighth {
        right: 12.5%;
    }

    .pull--palm--one-tenth {
        right: 10%;
    }

    .pull--palm--one-twelfth {
        right: 8.333%;
    }
}

@media (min-width: 481px) and (max-width: 1023px) {
    .pull--lap--one-whole {
        right: 100%;
    }

    .pull--lap--eleven-twelfths {
        right: 91.666%;
    }

    .pull--lap--nine-tenths {
        right: 90%;
    }

    .pull--lap--seven-eighths {
        right: 87.5%;
    }

    .pull--lap--five-sixths,
    .pull--lap--ten-twelfths {
        right: 83.333%;
    }

    .pull--lap--eight-tenths,
    .pull--lap--four-fifths {
        right: 80%;
    }

    .pull--lap--nine-twelfths,
    .pull--lap--six-eighths,
    .pull--lap--three-quarters {
        right: 75%;
    }

    .pull--lap--seven-tenths {
        right: 70%;
    }

    .pull--lap--eight-twelfths,
    .pull--lap--four-sixths,
    .pull--lap--two-thirds {
        right: 66.666%;
    }

    .pull--lap--five-eighths {
        right: 62.5%;
    }

    .pull--lap--six-tenths,
    .pull--lap--three-fifths {
        right: 60%;
    }

    .pull--lap--seven-twelfths {
        right: 58.333%;
    }

    .pull--lap--five-tenths,
    .pull--lap--four-eighths,
    .pull--lap--one-half,
    .pull--lap--six-twelfths,
    .pull--lap--three-sixths,
    .pull--lap--two-quarters {
        right: 50%;
    }

    .pull--lap--five-twelfths {
        right: 41.666%;
    }

    .pull--lap--four-tenths,
    .pull--lap--two-fifths {
        right: 40%;
    }

    .pull--lap--three-eighths {
        right: 37.5%;
    }

    .pull--lap--four-twelfths,
    .pull--lap--one-third,
    .pull--lap--two-sixths {
        right: 33.333%;
    }

    .pull--lap--three-tenths {
        right: 30%;
    }

    .pull--lap--one-quarter,
    .pull--lap--three-twelfths,
    .pull--lap--two-eighths {
        right: 25%;
    }

    .pull--lap--one-fifth,
    .pull--lap--two-tenths {
        right: 20%;
    }

    .pull--lap--one-sixth,
    .pull--lap--two-twelfths {
        right: 16.666%;
    }

    .pull--lap--one-eighth {
        right: 12.5%;
    }

    .pull--lap--one-tenth {
        right: 10%;
    }

    .pull--lap--one-twelfth {
        right: 8.333%;
    }
}

@media (min-width: 1024px) {
    .pull--desk--one-whole {
        right: 100%;
    }

    .pull--desk--eleven-twelfths {
        right: 91.666%;
    }

    .pull--desk--nine-tenths {
        right: 90%;
    }

    .pull--desk--seven-eighths {
        right: 87.5%;
    }

    .pull--desk--five-sixths,
    .pull--desk--ten-twelfths {
        right: 83.333%;
    }

    .pull--desk--eight-tenths,
    .pull--desk--four-fifths {
        right: 80%;
    }

    .pull--desk--nine-twelfths,
    .pull--desk--six-eighths,
    .pull--desk--three-quarters {
        right: 75%;
    }

    .pull--desk--seven-tenths {
        right: 70%;
    }

    .pull--desk--eight-twelfths,
    .pull--desk--four-sixths,
    .pull--desk--two-thirds {
        right: 66.666%;
    }

    .pull--desk--five-eighths {
        right: 62.5%;
    }

    .pull--desk--six-tenths,
    .pull--desk--three-fifths {
        right: 60%;
    }

    .pull--desk--seven-twelfths {
        right: 58.333%;
    }

    .pull--desk--five-tenths,
    .pull--desk--four-eighths,
    .pull--desk--one-half,
    .pull--desk--six-twelfths,
    .pull--desk--three-sixths,
    .pull--desk--two-quarters {
        right: 50%;
    }

    .pull--desk--five-twelfths {
        right: 41.666%;
    }

    .pull--desk--four-tenths,
    .pull--desk--two-fifths {
        right: 40%;
    }

    .pull--desk--three-eighths {
        right: 37.5%;
    }

    .pull--desk--four-twelfths,
    .pull--desk--one-third,
    .pull--desk--two-sixths {
        right: 33.333%;
    }

    .pull--desk--three-tenths {
        right: 30%;
    }

    .pull--desk--one-quarter,
    .pull--desk--three-twelfths,
    .pull--desk--two-eighths {
        right: 25%;
    }

    .pull--desk--one-fifth,
    .pull--desk--two-tenths {
        right: 20%;
    }

    .pull--desk--one-sixth,
    .pull--desk--two-twelfths {
        right: 16.666%;
    }

    .pull--desk--one-eighth {
        right: 12.5%;
    }

    .pull--desk--one-tenth {
        right: 10%;
    }

    .pull--desk--one-twelfth {
        right: 8.333%;
    }
}

/* ==========================================================================
   Legacy Brand & Accommodation Modules
   ========================================================================== */

.brand_module,
.option_module,
.residence_module {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 18px 38px -26px rgba(0, 0, 0, 0.35);
}

.brand_module img,
.option_module img,
.residence_module img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.brand_module h3,
.option_module h3,
.residence_module h3 {
    position: absolute;
    left: 0;
    width: 100%;
    margin: 0;
    padding: var(--lse-module-heading-padding) 0;
    color: var(--lse-module-heading-color);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: var(--lse-module-heading-letter-spacing);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.2;
    z-index: 510;
    background: var(--lse-structure-navy);
    box-shadow: inset 0 -4px 0 rgba(255, 255, 255, 0.12);
}

.option_module h3 {
    background: var(--lse-option-module-heading);
}

.residence_module h3 {
    background: var(--lse-residence-module-heading);
}

.brand_module .top-position,
.option_module .top-position,
.residence_module .top-position {
    top: 0;
    bottom: auto;
}

.brand_module .bottom-position,
.option_module .bottom-position,
.residence_module .bottom-position {
    top: auto;
    bottom: 0;
}

.brand_module .price-row,
.option_module .price-row,
.residence_module .price-row {
    position: absolute;
    left: 0;
    width: 100%;
    display: block;
    z-index: 505;
    letter-spacing: 0.5px;
    pointer-events: none;
}

.brand_module .bottom-row-adjustment,
.option_module .bottom-row-adjustment,
.residence_module .bottom-row-adjustment {
    position: relative;
    display: block;
    width: 100%;
}

.brand_module .price-left,
.option_module .price-left,
.residence_module .price-left {
    background: var(--lse-module-price-background);
    color: var(--lse-module-price-text);
    width: 51.5%;
    float: left;
    display: block;
    padding: 10px 0;
    text-align: center;
    text-transform: lowercase;
    line-height: 1.6;
    font-weight: 600;
    box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.2);
}

.brand_module .availability-text,
.option_module .availability-text,
.residence_module .availability-text {
    background: var(--lse-module-availability-background);
    color: var(--lse-module-availability-text);
    width: 48.5%;
    float: left;
    display: block;
    padding: 10px 0;
    text-align: center;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.4;
    text-transform: uppercase;
}

.brand_module .availability-text span,
.option_module .availability-text span,
.residence_module .availability-text span {
    display: block;
    padding: 0 10px;
}

.brand_module .from-text,
.option_module .from-text,
.residence_module .from-text {
    display: block;
    font-size: 0.75rem;
    letter-spacing: 2px;
    color: rgba(255, 255, 255, 0.75);
    text-transform: uppercase;
}

.brand_module .price-number,
.option_module .price-number,
.residence_module .price-number {
    display: block;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 4px;
}

.brand_module_overlay,
.option_module_overlay,
.residence_module_overlay {
    position: absolute;
    inset: 0;
    padding: 20px 22px 64px;
    background: var(--lse-module-overlay-bg);
    color: #ffffff;
    z-index: 500;
    opacity: 0;
    transition: opacity 0.25s ease;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    pointer-events: none;
}

.brand_module_overlay.pchange {
    padding: 84px 22px 20px;
}

.brand_module_overlay.fchange {
    padding: 90px 40px 20px;
}

.brand_module_overlay.schange {
    padding: 80px 40px 40px;
}

.brand_module_overlay.sbchange {
    padding: 40px 40px 80px;
}

.brand_module:hover .brand_module_overlay,
.brand_module:focus-within .brand_module_overlay,
.option_module:hover .option_module_overlay,
.option_module:focus-within .option_module_overlay,
.residence_module:hover .residence_module_overlay,
.residence_module:focus-within .residence_module_overlay {
    opacity: 1;
    pointer-events: auto;
}

.brand_module_overlay .overlay_content,
.option_module_overlay .overlay_content,
.residence_module_overlay .overlay_content {
    width: 100%;
    max-height: 100%;
    overflow-y: auto;
    padding-right: 6px;
}

.brand_module_overlay .overlay_content a,
.option_module_overlay .overlay_content a,
.residence_module_overlay .overlay_content a {
    color: #ffffff;
    text-decoration: none;
}

.brand_module_overlay .overlay_content a:hover,
.option_module_overlay .overlay_content a:hover,
.residence_module_overlay .overlay_content a:hover {
    text-decoration: underline;
}

.brand_module .over_anchor,
.option_module .over_anchor,
.residence_module .over_anchor {
    position: absolute;
    inset: 0;
    display: block;
    z-index: 999;
}

.brand_module_text {
    width: 100%;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 14px 32px -24px rgba(0, 0, 0, 0.25);
}

.brand_module_text h3 {
    margin: 0;
    padding: var(--lse-module-heading-padding) 0;
    background: var(--lse-structure-navy);
    color: var(--lse-module-heading-color);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: var(--lse-module-heading-letter-spacing);
    font-weight: 700;
}

.brand_module_text p {
    font-size: 0.95rem;
    line-height: 1.7;
    color: rgba(0, 0, 50, 0.75);
    margin: 0;
    padding: 0 24px 18px;
}

.option_menu {
    background: linear-gradient(120deg, rgba(230, 0, 126, 0.92), rgba(238, 114, 24, 0.88));
    border-radius: 18px;
    padding: 10px 0;
    box-shadow: 0 18px 32px -24px rgba(230, 0, 126, 0.45);
}

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

.option_menu ul li {
    margin: 0 18px;
    border-radius: 14px;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.option_menu ul li + li {
    margin-top: 12px;
}

.option_menu ul li a {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    color: #ffffff;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-decoration: none;
    font-size: 1rem;
}

.option_menu ul li a:hover,
.option_menu ul li a:focus {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
}

.option_menu ul li i {
    font-size: 32px;
    width: 36px;
    text-align: center;
}

.option_menu ul li span {
    flex: 1 1 auto;
    display: block;
    line-height: 1.4;
}

.about_content {
    font-size: 1.1rem;
    line-height: 1.8;
    color: rgba(0, 0, 50, 0.78);
    margin: 0 0 32px;
}

.about_content p {
    margin: 0 0 18px;
}

.home_title {
    text-align: center;
    margin: 0 0 24px;
}

.home_title h1 {
    margin: 0;
}

.accommodation_content {
    padding: 35px 0 18px;
}

.accommodation_gallery {
    margin-bottom: 48px;
    overflow: hidden;
    border-radius: 16px;
}

.acc_gallery::after {
    content: "";
    display: table;
    clear: both;
}

.acc_gallery img {
    border: 8px solid rgba(0, 0, 0, 0.08);
    margin: 16px;
    float: left;
    border-radius: 12px;
}

h4.acc_trigger {
    margin: 0 0 10px;
    padding: 12px 20px;
    background: rgba(230, 0, 126, 0.12);
    border: 1px solid rgba(230, 0, 126, 0.22);
    letter-spacing: 1px;
    cursor: pointer;
    text-transform: uppercase;
    font-size: 0.95rem;
}

.acc_container {
    display: block;
    overflow: hidden;
    clear: both;
    background: #f5f8f9;
    border: 2px solid rgba(0, 0, 50, 0.08);
    border-top: none;
    padding: 20px;
    color: #000032;
    line-height: 1.6;
    margin-bottom: 12px;
}

@media (max-width: 1199px) {
    .brand_module .price-number,
    .option_module .price-number,
    .residence_module .price-number {
        font-size: 2rem;
    }

    .brand_module .availability-text,
    .option_module .availability-text,
    .residence_module .availability-text {
        font-size: 1rem;
    }
}

@media (max-width: 1024px) {
    .brand_module .price-number,
    .option_module .price-number,
    .residence_module .price-number {
        font-size: 1.7rem;
    }

    .brand_module .price-left,
    .option_module .price-left,
    .residence_module .price-left,
    .brand_module .availability-text,
    .option_module .availability-text,
    .residence_module .availability-text {
        font-size: 0.95rem;
    }
}

@media (max-width: 767px) {
    .brand_module,
    .option_module,
    .residence_module {
        border-radius: 12px;
    }

    .brand_module .price-row,
    .option_module .price-row,
    .residence_module .price-row {
        position: relative;
        pointer-events: auto;
    }

    .brand_module .price-left,
    .option_module .price-left,
    .residence_module .price-left,
    .brand_module .availability-text,
    .option_module .availability-text,
    .residence_module .availability-text {
        float: none;
        width: 100%;
        padding: 12px 0;
    }

    .brand_module .availability-text,
    .option_module .availability-text,
    .residence_module .availability-text {
        font-size: 0.9rem;
    }
}

@media (max-width: 600px) {
    .option_menu ul li {
        margin: 0 12px;
    }

    .option_menu ul li a {
        padding: 14px 16px;
        font-size: 0.95rem;
    }

    .acc_gallery img {
        width: calc(50% - 32px);
        margin: 12px;
    }
}

@media (max-width: 480px) {
    .option_menu ul li {
        margin: 0 10px;
    }

    .acc_gallery img {
        width: calc(100% - 32px);
    }
}

/* ==========================================================================
   Accommodation Detail Panels
   ========================================================================== */

.home-stay-title,
.home_title {
    text-align: center;
}

.home-stay-title h1,
.home-stay-detail h1 {
    margin: 0;
}

.home-stay-detail {
    font-size: 1.05rem;
    line-height: 1.74;
    color: rgba(0, 0, 50, 0.8);
    margin-bottom: 28px;
}

.home-stay-detail.adjust {
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(0, 0, 50, 0.12);
}

.accommodation_menu {
    margin: 32px 0;
}

.accommodation_menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.accommodation_menu ul li {
    margin: 0;
}

.accommodation_menu ul li a {
    display: block;
    padding: 12px 24px;
    border-radius: 999px;
    background: rgba(0, 0, 50, 0.08);
    color: rgba(0, 0, 50, 0.85);
    font-weight: 600;
    letter-spacing: 0.75px;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.accommodation_menu ul li.current a,
.accommodation_menu ul li a:hover,
.accommodation_menu ul li a:focus {
    background: var(--lse-accent-color);
    color: #ffffff;
    box-shadow: 0 12px 24px -18px rgba(230, 0, 126, 0.55);
}

.tab_content,
.tab-content,
.panes {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid rgba(0, 0, 50, 0.08);
    padding: 28px;
    margin-bottom: 24px;
    box-shadow: 0 20px 46px -32px rgba(0, 0, 50, 0.35);
}

.tab-title {
    display: inline-block;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

.tab-title::after {
    display: block;
    width: min(var(--lse-heading-underline-width), 100%);
    margin-left: auto;
    margin-right: auto;
}

.tab_content h3,
.tab-content h3,
.panes h3 {
    margin-top: 0;
}

.key_info {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 16px;
    border-bottom: 1px solid rgba(0, 0, 50, 0.08);
    padding: 18px 0;
}

.key_info:last-child {
    border-bottom: none;
}

.kye_name {
    flex: 0 0 220px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.75px;
    color: var(--lse-structure-navy);
}

.kye_description,
.room_info {
    flex: 1 1 0;
    font-size: 0.98rem;
    line-height: 1.7;
    color: rgba(0, 0, 50, 0.78);
}

.kye_description ul,
.room_info ul {
    margin: 0;
    padding-left: 18px;
}

.content_holder {
    padding: 15px 22px 0;
}

.text_content {
    width: 100%;
    max-height: 220px;
    overflow-y: auto;
}

.gap {
    margin-bottom: 18px;
}

.rates-section {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    margin: 48px 0 24px;
}

.rates-left-content {
    flex: 1 1 55%;
}

.rates-right-content {
    flex: 1 1 30%;
    background: #f5f8f9;
    border-radius: 16px;
    padding: 24px 24px 18px;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 50, 0.05);
}

.rates-heading h3 {
    margin: 0 0 18px;
    font-size: 1.35rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.catering-section {
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 24px;
}

.availability-section {
    background: rgba(230, 0, 126, 0.08);
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 24px;
}

.availability-info {
    width: 48px;
    height: 4px;
    background: var(--lse-accent-color);
    margin-bottom: 12px;
    border-radius: 999px;
}

.availability_content {
    margin-top: 12px;
}

.rates-right-content ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rates-right-content ul li {
    font-size: 0.95rem;
    line-height: 1.6;
    padding: 6px 0;
    border-bottom: 1px solid rgba(0, 0, 50, 0.08);
}

.rates-right-content ul li:last-child {
    border-bottom: none;
}

.rates-right-content ul li span {
    display: block;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.75px;
    color: var(--lse-structure-navy);
    margin-bottom: 8px;
}

.apply_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--lse-accent-color), var(--lse-secondary-orange));
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.apply_btn:hover,
.apply_btn:focus {
    transform: translateY(-1px);
    box-shadow: 0 14px 32px -20px rgba(238, 114, 24, 0.45);
}

.map_area,
.panes #map_canvas {
    width: 100%;
    min-height: 320px;
    border-radius: 16px;
    overflow: hidden;
}

@media (max-width: 992px) {
    .kye_name {
        flex: 0 0 180px;
    }

    .rates-section {
        gap: 24px;
    }
}

@media (max-width: 768px) {
    .tab_content,
    .tab-content,
    .panes {
        padding: 22px;
    }

    .key_info {
        flex-direction: column;
    }

    .kye_name {
        flex: 1 1 auto;
    }

    .rates-section {
        flex-direction: column;
    }

    .rates-left-content,
    .rates-right-content {
        flex: 1 1 auto;
    }

    .rates-right-content {
        padding: 20px;
    }
}

@media (max-width: 600px) {
    .accommodation_menu ul {
        gap: 10px;
    }

    .accommodation_menu ul li a {
        padding: 10px 18px;
    }

    .tab_content,
    .tab-content,
    .panes {
        padding: 18px;
    }
}

/* ==========================================================================
   Pagination & Comment Styling
   ========================================================================== */

.page-navigation,
.wp-prev-next {
    margin: 24px 0 40px;
}

.bones_page_navi {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    gap: 10px;
    margin: 0;
    padding: 0;
}

.bones_page_navi li {
    margin: 0;
}

.bones_page_navi li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(0, 0, 50, 0.08);
    color: rgba(0, 0, 50, 0.82);
    font-weight: 600;
    letter-spacing: 0.6px;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.bones_page_navi li a:hover,
.bones_page_navi li a:focus {
    background: var(--lse-accent-color);
    color: #ffffff;
    box-shadow: 0 12px 24px -18px rgba(230, 0, 126, 0.5);
}

.bones_page_navi li.bpn-current a,
.bones_page_navi li.bpn-prev-link a,
.bones_page_navi li.bpn-next-link a,
.bones_page_navi li.bpn-first-page-link a,
.bones_page_navi li.bpn-last-page-link a {
    font-weight: 700;
}

.bones_page_navi li.bpn-current a {
    background: var(--lse-accent-color);
    color: #ffffff;
    box-shadow: 0 12px 24px -18px rgba(230, 0, 126, 0.5);
}

.wp-prev-next .prev-link,
.wp-prev-next .next-link {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    letter-spacing: 0.6px;
}

.wp-prev-next .prev-link {
    margin-right: auto;
}

.wp-prev-next .next-link {
    margin-left: auto;
}

.commentlist {
    list-style: none;
    margin: 0;
    padding: 0;
}

.commentlist li {
    position: relative;
    margin-bottom: 32px;
    padding: 24px;
    border: 1px solid rgba(0, 0, 50, 0.08);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 18px 36px -30px rgba(0, 0, 50, 0.3);
}

.commentlist li ul.children {
    margin-top: 24px;
    padding-left: 32px;
}

.commentlist .vcard {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 12px;
}

.commentlist .vcard img.avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 3px solid rgba(0, 0, 50, 0.08);
    background: #ffffff;
}

.commentlist .vcard cite.fn {
    font-weight: 700;
    font-style: normal;
    color: var(--lse-structure-navy);
}

.commentlist .comment_content {
    margin-left: 0;
    color: rgba(0, 0, 50, 0.82);
    line-height: 1.7;
}

.commentlist .comment_content p {
    margin: 12px 0;
}

.commentlist .comment-reply-link {
    display: inline-flex;
    margin-top: 12px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(0, 0, 50, 0.08);
    color: rgba(0, 0, 50, 0.82);
    text-decoration: none;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.commentlist .comment-reply-link:hover,
.commentlist .comment-reply-link:focus {
    background: var(--lse-accent-color);
    color: #ffffff;
}

.nocomments {
    margin: 24px 0;
    padding: 20px;
    border-radius: 12px;
    background: rgba(0, 0, 50, 0.05);
    color: rgba(0, 0, 50, 0.7);
}

.respond-form {
    margin: 32px 0;
    padding: 28px;
    border-radius: 18px;
    border: 1px solid rgba(0, 0, 50, 0.08);
    background: #ffffff;
    box-shadow: 0 18px 36px -30px rgba(0, 0, 50, 0.3);
}

.respond-form form {
    margin: 0;
}

.respond-form input[type="text"],
.respond-form input[type="email"],
.respond-form input[type="url"],
.respond-form textarea {
    width: 100%;
    padding: 12px 16px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 50, 0.12);
    background: rgba(0, 0, 50, 0.02);
    margin-bottom: 16px;
    transition: border-color 0.2s ease;
}

.respond-form input[type="text"]:focus,
.respond-form input[type="email"]:focus,
.respond-form input[type="url"]:focus,
.respond-form textarea:focus {
    border-color: var(--lse-accent-color);
    outline: none;
}

/* ==========================================================================
   Contact & Utility Blocks
   ========================================================================== */

.section_contact {
    background: #f5f8f9;
    border-radius: 18px;
    padding: 32px;
    margin: 40px 0;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 50, 0.05);
}

.contact_wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
}

.contact_form,
.custom_form {
    flex: 1 1 380px;
    background: #ffffff;
    border-radius: 28px;
    padding: 32px 36px;
    box-shadow: 0 32px 80px rgba(0, 0, 50, 0.12);
    border: 1px solid rgba(0, 0, 50, 0.04);
}

.contact_location {
    flex: 1 1 380px;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.contact_info-card {
    background: #ffffff;
    border-radius: 26px;
    padding: 28px 30px;
    box-shadow: 0 28px 70px rgba(0, 0, 50, 0.12);
    border: 1px solid rgba(0, 0, 50, 0.05);
}

.contact_info-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.article-header__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.article-header__top .home-button {
    margin-left: auto;
}

.article-header .page-title {
    position: relative !important;
    display: inline-block !important;
    font-size: 2.5rem !important;
    color: var(--lse-dark-blue, #000032) !important;
    margin: 0 0 1.5rem !important;
    padding: 0 0 0.75rem !important;
    text-align: left !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
}

.article-header .page-title::after {
    content: '' !important;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 140px !important;
    height: 5px !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, var(--lse-primary-magenta, #E6007E), var(--lse-secondary-orange, #EE7218)) !important;
    margin: 0 !important;
    display: block !important;
}

.contact_info-item {
    display: flex;
    align-items: center;
    gap: 18px;
}

.contact_info-icon {
    width: 50px;
    height: 50px;
    border-radius: 18px;
    background: linear-gradient(160deg, rgba(230, 0, 126, 0.18), rgba(106, 202, 243, 0.16));
    color: var(--lse-primary-magenta);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    box-shadow: inset 0 0 0 1px rgba(230, 0, 126, 0.18);
}

.contact_info-text {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: rgba(0, 0, 50, 0.82);
    font-weight: 600;
}

.contact_info-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(0, 0, 50, 0.55);
}

.contact_info-text a {
    color: var(--lse-primary-magenta);
    text-decoration: none;
    font-weight: 700;
}

.contact_info-text a:hover,
.contact_info-text a:focus {
    color: var(--lse-secondary-orange);
}

.contact-map {
    min-height: 0;
    padding: 8px;
    border-radius: 32px;
    background: linear-gradient(150deg, rgba(106, 202, 243, 0.16), rgba(230, 0, 126, 0.12));
}

.contact-map__canvas {
    min-height: 440px;
    border-radius: 26px;
    box-shadow: 0 38px 90px rgba(0, 0, 50, 0.18);
}

@media (max-width: 1024px) {
    .contact_wrap {
        flex-direction: column;
    }

    .contact_form,
    .custom_form {
        order: 2;
        padding: 28px;
    }
}

@media (max-width: 768px) {
    .contact_form,
    .custom_form {
        padding: 24px;
    }

    .contact_location {
        gap: 24px;
    }

    .contact_info-card {
        padding: 22px;
    }

    .contact-map__canvas {
        min-height: 320px;
        border-radius: 22px;
    }
}

.contact_form label,
.custom_form label {
    display: block;
    font-weight: 600;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.contact_form label span,
.custom_form label span {
    color: #e54b4b;
}

.contact_form input[type="text"],
.contact_form input[type="email"],
.contact_form input[type="tel"],
.contact_form textarea,
.custom_form input[type="text"],
.custom_form input[type="email"],
.custom_form input[type="tel"],
.custom_form textarea {
    width: 100%;
    padding: 14px 18px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 50, 0.12);
    background: rgba(0, 0, 50, 0.02);
    margin-bottom: 16px;
    font-size: 1rem;
}

.contact_form textarea,
.custom_form textarea {
    min-height: 160px;
    resize: vertical;
}

.contact_form input[type="submit"],
.custom_form input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    border-radius: 999px;
    border: none;
    background: var(--lse-accent-color);
    color: #ffffff;
    font-weight: 700;
    letter-spacing: 0.75px;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.contact_form input[type="submit"]:hover,
.custom_form input[type="submit"]:hover,
.contact_form input[type="submit"]:focus,
.custom_form input[type="submit"]:focus {
    transform: translateY(-1px);
    box-shadow: 0 16px 32px -24px rgba(230, 0, 126, 0.45);
}

.info_text,
.faq_content,
.base_content,
.archive_content,
.default {
    font-size: 1rem;
    line-height: 1.8;
    color: rgba(0, 0, 50, 0.78);
    margin-bottom: 24px;
}

.section_contact .info_text a,
.section_contact .faq_content a,
.info_text a,
.faq_content a,
.base_content a,
.archive_content a {
    color: var(--lse-accent-color);
    text-decoration: underline;
}

.brand_feature,
.cat_icon {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-weight: 600;
}

.twitter-widget {
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid rgba(0, 0, 50, 0.08);
}

.videoWrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: 16px;
}

.videoWrapper iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.sidebar {
    background: #ffffff;
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 20px 46px -32px rgba(0, 0, 50, 0.3);
}

.widgettitle,
.sidebar h4 {
    margin-top: 0;
    margin-bottom: 18px;
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 0.75px;
    color: var(--lse-structure-navy);
}

.post-meta {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    color: rgba(0, 0, 50, 0.6);
    font-size: 0.95rem;
}

.post-meta li {
    position: relative;
    padding-left: 18px;
}

.post-meta li:before {
    content: '2';
    position: absolute;
    left: 6px;
    color: var(--lse-accent-color);
}

.byline,
.fn {
    font-style: normal;
    font-weight: 600;
}

.read-more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 999px;
    background: rgba(0, 0, 50, 0.08);
    color: rgba(0, 0, 50, 0.82);
    text-decoration: none;
    font-weight: 600;
}

.read-more:hover,
.read-more:focus {
    background: var(--lse-accent-color);
    color: #ffffff;
}

/* ==========================================================================
   Legacy Blog Layout & Content Wrappers
   ========================================================================== */

#container {
    width: 100%;
    background: #ffffff;
}

.full--width {
    width: 100%;
    display: block;
}

.inner-content {
    width: 100%;
}

.inner-content.wrap {
    max-width: var(--lse-grid-max-width, 1200px);
}

.option-section {
    margin: 1.5rem 0;
}

.option-section .option_menu {
    margin-bottom: 0;
}

.player1 {
    position: relative;
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    border-radius: 16px;
    overflow: hidden;
    background: #000000;
    box-shadow: 0 16px 34px -24px rgba(0, 0, 50, 0.4);
}

.player1 iframe,
.player1 video,
.player1 embed {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.player1 .me-plugin,
.player1 .mejs-overlay {
    width: 100% !important;
    height: 100% !important;
}

#blog-content {
    display: grid;
    gap: 32px;
    margin: 0;
    padding: 0;
}

#blog-content article {
    background: #ffffff;
    border-radius: 20px;
    padding: 32px;
    border: 1px solid rgba(0, 0, 50, 0.08);
    box-shadow: 0 20px 48px -32px rgba(0, 0, 50, 0.28);
}

#blog-content article:last-child {
    margin-bottom: 0;
}

#blog-content article .article-header ul {
    list-style: none;
    padding: 0;
    margin: 0 0 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    color: rgba(0, 0, 50, 0.6);
}

#blog-content article .article-header ul li {
    display: inline-flex;
    gap: 8px;
    font-size: 0.95rem;
}

#blog-content article.post:after {
    content: '';
    display: block;
    clear: both;
}

#blog-content article .read-more {
    margin-top: 18px;
}

#post-not-found {
    text-align: center;
    font-size: 1.6rem;
    padding: 80px 0;
    color: rgba(0, 0, 50, 0.75);
}

#post-not-found h1 {
    font-size: 3rem;
    margin-bottom: 12px;
}

#comments {
    margin-top: 48px;
}

#comment-form-title {
    font-size: 1.85rem;
    margin: 0 0 24px;
    font-weight: 700;
    color: var(--lse-structure-navy);
}

#submit {
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

/* ==========================================================================
   Accommodation Gallery (Splide)
   ========================================================================== */

#carousel-wrapper {
    position: relative;
}

#carousel {
    position: relative;
}

.accommodation-gallery__main .splide__track {
    border-radius: 16px;
    overflow: hidden;
}

.accommodation-gallery__slide {
    position: relative;
}

.accommodation-gallery__media {
    display: block;
}

.accommodation-gallery__media img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.accommodation-gallery__arrows {
    pointer-events: none;
}

.accommodation-gallery__arrow {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 50, 0.45);
    color: #ffffff;
    border: none;
    cursor: pointer;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1;
    transition: background 0.3s ease;
    pointer-events: auto;
}

.accommodation-gallery__arrow::after {
    content: '\2039';
}

.accommodation-gallery__arrow--next::after {
    content: '\203A';
}

.accommodation-gallery__arrow--prev {
    left: 0;
}

.accommodation-gallery__arrow--next {
    right: 0;
}

.accommodation-gallery__arrow:hover,
.accommodation-gallery__arrow:focus {
    background: rgba(0, 0, 50, 0.65);
}

.accommodation-gallery__arrow svg {
    display: none;
}

.accommodation_gallery--no-splide [data-accommodation-splide="thumbs"] {
    display: none;
}

.accommodation_gallery--no-splide .splide__track {
    overflow: visible;
}

.accommodation_gallery--no-splide .splide__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    transform: none !important;
}

#thumbs-wrapper {
    padding: 24px 58px;
    background: #e6eaee;
    position: relative;
}

.accommodation-gallery__thumbs .splide__track {
    overflow: visible;
}

.accommodation-gallery__thumbs .splide__list {
    gap: 16px;
}

.accommodation-gallery__thumb-button {
    display: block;
    width: 120px;
    height: 84px;
    border-radius: 12px;
    overflow: hidden;
    border: 4px solid #ffffff;
    box-shadow: 0 12px 28px -20px rgba(0, 0, 50, 0.35);
    transition: border-color 0.25s ease, transform 0.25s ease;
    background: transparent;
    padding: 0;
    cursor: pointer;
}

.accommodation-gallery__thumb-button img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.accommodation-gallery__thumb.is-active .accommodation-gallery__thumb-button,
.accommodation-gallery__thumb-button:hover,
.accommodation-gallery__thumb-button:focus {
    border-color: rgba(0, 0, 50, 0.35);
    transform: translateY(-4px);
}

@media (max-width: 768px) {
    #thumbs-wrapper {
        padding: 16px 46px;
    }

    .accommodation-gallery__thumbs .splide__list {
        gap: 12px;
    }

    .accommodation-gallery__thumb-button {
        width: 92px;
        height: 64px;
    }

    .accommodation-gallery__arrow {
        width: 46px;
    }
}

/* ==========================================================================
   Legacy Utility Helpers
   ========================================================================== */

/* ==========================================================================
   Lightbox Overlay
   ========================================================================== */

body.lse-lightbox-open {
    overflow: hidden;
}

.lse-lightbox {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.lse-lightbox.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.lse-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 24, 44, 0.78);
    backdrop-filter: blur(4px);
}

.lse-lightbox__body {
    position: relative;
    max-width: min(90vw, 1100px);
    max-height: 90vh;
    width: 100%;
    margin: 0 24px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--lse-white);
}

.lse-lightbox__figure {
    margin: 0;
    flex: 1 1 auto;
    text-align: center;
}

.lse-lightbox__image {
    max-width: 100%;
    max-height: 70vh;
    border-radius: 12px;
    box-shadow: 0 24px 64px -28px rgba(0, 0, 0, 0.6);
}

.lse-lightbox__caption {
    margin-top: 12px;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.88);
}

.lse-lightbox__close {
    position: absolute;
    top: -12px;
    right: -12px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: none;
    background: rgba(0, 0, 0, 0.75);
    color: var(--lse-white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    transition: background 0.25s ease, box-shadow 0.25s ease;
    outline: none;
    z-index: 2;
}

.lse-lightbox__close::before {
    content: '\2715';
    line-height: 1;
    font-size: 1.1em;
    position: relative;
    z-index: 3;
}

button.lse-lightbox__close:hover,
button.lse-lightbox__close:focus,
button.lse-lightbox__close:focus-visible {
    background: rgba(16, 16, 20, 0.92);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.45);
    outline: none;
}

.lse-lightbox__nav {
    border: none;
    background: rgba(0, 0, 0, 0.6);
    color: var(--lse-white);
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    outline: none;
    position: relative;
    z-index: 2;
}

.lse-lightbox__nav::before {
    font-weight: 600;
    line-height: 1;
    font-size: 1.2rem;
    font-family: inherit;
    position: relative;
    z-index: 3;
}

.lse-lightbox__nav--prev::before {
    content: '\2039';
}

.lse-lightbox__nav--next::before {
    content: '\203A';
}

button.lse-lightbox__nav:hover,
button.lse-lightbox__nav:focus,
button.lse-lightbox__nav:focus-visible {
    background: rgba(16, 16, 20, 0.82);
    transform: translateY(-2px);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.45);
    outline: none;
}

@media (max-width: 768px) {
    .lse-lightbox__body {
        flex-direction: column;
        max-height: 88vh;
    }

    .lse-lightbox__nav {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
    }

    .lse-lightbox__nav--prev {
        left: -16px;
    }

    .lse-lightbox__nav--next {
        right: -16px;
    }
}

.alignleft {
    float: left;
    margin: 0 24px 12px 0;
}

.small {
    font-size: 0.85rem;
}

.amp {
    font-family: 'Baskerville', 'Goudy Old Style', 'Palatino', 'Book Antiqua', serif;
    font-style: italic;
}

/*
 * Legacy .scroll-pane containers previously relied on jScrollPane.
 * With the vendor script removed we allow native scrolling.
 */
.scroll-pane {
    overflow: auto;
    scrollbar-gutter: stable both-edges;
}

.article-header {
    margin-bottom: 24px;
    border-bottom: 1px solid rgba(0, 0, 50, 0.08);
    padding-bottom: 16px;
}

.h2 {
    font-size: var(--lse-heading-h2-size);
    font-weight: var(--lse-heading-font-weight);
    line-height: var(--lse-heading-line-height);
    text-align: center;
    margin: var(--lse-heading-h2-margin);
    position: relative;
}

.h2::after {
    content: '';
    display: block;
    width: var(--lse-heading-underline-width);
    height: var(--lse-heading-underline-height);
    background: var(--lse-primary-magenta);
    margin: var(--lse-heading-underline-margin-top) auto 0;
    border-radius: 2px;
}

.alert-help,
.alert-info,
.error {
    border-left: 4px solid var(--lse-accent-color);
    background: rgba(0, 0, 50, 0.04);
    padding: 16px 20px;
    border-radius: 12px;
    margin: 16px 0;
}

.alert-info {
    border-color: var(--lse-tertiary-blue);
}

.error {
    border-color: #e54b4b;
    background: rgba(229, 75, 75, 0.1);
}

.item {
    position: relative;
}

.footer-caption {
    font-size: 0.9rem;
    color: rgba(0, 0, 50, 0.65);
    margin-top: 12px;
}

.vcard time,
.vcard span {
    color: rgba(0, 0, 50, 0.6);
    font-size: 0.9rem;
}

.lhs2 {
    --lse-accent-color: #424564;
}

.lsr2 {
    --lse-accent-color: #684f6d;
}

.sel2 {
    --lse-accent-color: #356045;
}

.gs2 {
    --lse-accent-color: #9c1428;
}

.lhs2,
.lsr2,
.sel2,
.gs2 {
    background: #ffffff;
}

.hshares,
.hshares2 {
    --lse-accent-color: #CC3366;
}

.next-link a,
.prev-link a,
.page-navigation a {
    color: var(--lse-accent-color);
    text-decoration: none;
}

.next-link a:hover,
.prev-link a:hover,
.page-navigation a:hover {
    text-decoration: underline;
}

.hshares .accommodation_menu ul li a,
.hshares2 .accommodation_menu ul li a {
    background: var(--lse-accent-color);
}

.hshares .accommodation_menu ul li a:hover,
.hshares .accommodation_menu ul li.current a,
.hshares2 .accommodation_menu ul li a:hover,
.hshares2 .accommodation_menu ul li.current a {
    background: var(--lse-structure-navy);
}

.hshares .option_menu ul li a,
.hshares2 .option_menu ul li a {
    background: var(--lse-accent-color);
}

.hshares .option_menu ul li a:hover,
.hshares2 .option_menu ul li a:hover {
    background: var(--lse-structure-navy);
}

.date_icon {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
}

.twitter-widget a {
    color: var(--lse-accent-color);
}

.videoWrapper .wp-video-shortcode {
    width: 100% !important;
    height: 100% !important;
}

.nogap {
    margin-bottom: 0 !important;
}

.alt {
    color: rgba(0, 0, 50, 0.6);
}

.brand_feature a,
.info_text a,
.faq_content a,
.base_content a,
.archive_content a,
.custom_form a,
.contact_form a {
    color: var(--lse-accent-color);
}

.brand_feature a:hover,
.info_text a:hover,
.faq_content a:hover,
.base_content a:hover,
.archive_content a:hover,
.custom_form a:hover,
.contact_form a:hover {
    text-decoration: underline;
}

@media (max-width: 768px) {
    .commentlist li ul.children {
        padding-left: 18px;
    }

    .contact_wrap {
        flex-direction: column;
    }

    .contact_location {
        order: -1;
        gap: 20px;
    }

    .contact_info-card {
        padding: 22px;
    }

    .contact-map__canvas {
        min-height: 320px;
    }

    .sidebar {
        padding: 24px;
    }
}

/* ==========================================================================
   Primary CTA Buttons
   ========================================================================== */

.btn-primary,
.button-primary,
.wpcf7-submit,
.apply-btn,
.search-btn,
.course-finder .btn,
.pricing-btn,
.cta-button,
input[type="submit"],
button[type="submit"] {
    background-color: var(--lse-primary-magenta) !important;
    border-color: var(--lse-primary-magenta) !important;
    color: var(--lse-white) !important;
    font-weight: 600;
    padding: 12px 24px;
    border-radius: 6px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 6px rgba(230, 0, 126, 0.25);
}

.btn-primary:hover,
.button-primary:hover,
.wpcf7-submit:hover,
.apply-btn:hover,
.search-btn:hover,
.course-finder .btn:hover,
.pricing-btn:hover,
.cta-button:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
    background-color: var(--lse-secondary-orange) !important;
    border-color: var(--lse-secondary-orange) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(238, 114, 24, 0.3);
}

/* ==========================================================================
   Neutral Button Baseline
   ========================================================================== */

button,
input[type="button"],
input[type="submit"],
.btn {
    background: #ffffff;
    border: 1px solid rgba(9, 55, 79, 0.18);
    color: #09374f;
    font-weight: 600;
    padding: 10px 18px;
    border-radius: 10px;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
    box-shadow: none;
}

button:hover,
button:focus,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
.btn:hover,
.btn:focus {
    background: rgba(9, 55, 79, 0.08);
    border-color: rgba(9, 55, 79, 0.28);
    color: #09374f;
    transform: translateY(-1px);
}

.lse-button--primary {
    background: linear-gradient(135deg, #EE7218, #E6007E);
    border: none;
    color: #ffffff;
    box-shadow: 0 18px 32px -20px rgba(238, 114, 24, 0.45);
}

.lse-button--primary:hover,
.lse-button--primary:focus {
    transform: translateY(-1px);
    box-shadow: 0 24px 38px -20px rgba(238, 114, 24, 0.55);
}

.lse-button--ghost {
    background: rgba(9, 55, 79, 0.08);
    border: none;
    color: #09374f;
}

.lse-button--ghost:hover,
.lse-button--ghost:focus {
    background: rgba(9, 55, 79, 0.16);
}

.lse-lightbox button.lse-lightbox__nav,
.lse-lightbox button.lse-lightbox__close {
    background: rgba(0, 0, 0, 0.6);
    color: var(--lse-white);
    border: none;
    box-shadow: none;
    transform: none;
}

.lse-lightbox button.lse-lightbox__close:hover,
.lse-lightbox button.lse-lightbox__close:focus,
.lse-lightbox button.lse-lightbox__close:focus-visible {
    background: rgba(16, 16, 20, 0.92) !important;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.45) !important;
    color: var(--lse-white) !important;
    transform: none !important;
}

.lse-lightbox button.lse-lightbox__nav:hover,
.lse-lightbox button.lse-lightbox__nav:focus,
.lse-lightbox button.lse-lightbox__nav:focus-visible {
    background: rgba(16, 16, 20, 0.82) !important;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.45) !important;
    color: var(--lse-white) !important;
    transform: translateY(-2px) !important;
}

/* ==========================================================================
   Header Redesign 2025
   ========================================================================== */

.top-bar {
    background: #000032;
    color: #ffffff;
    font-size: 0.9rem;
    padding: 0.35rem 0;
    position: relative;
    z-index: 1000;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.top-bar__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    padding: 0 1.5rem;
    width: 100%;
    box-sizing: border-box;
}

.top-bar__left,
.top-bar__right {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.top-bar__contact 
{
}
.top-bar__contacts {
    display: flex;
    align-items: center;
    gap: 1rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.partner-icons {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.top-bar__brand-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.top-bar a,
.top-bar span,
.top-bar i {
    color: #ffffff !important;
    fill: #ffffff !important;
}

.top-bar__lang .header-language-toggle .header-language-icon {
    color: currentColor !important;
    opacity: 1 !important;
    transition: color 0.2s ease, opacity 0.2s ease;
}

/* === PARTNER BAR LAYOUT === */
.partner-bar {
    position: relative;
    background: #f5f5f7;
    border-bottom: 1px solid #e2e3ea;
}

.partner-bar__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0.4rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1.25rem;
}

.partner-bar__label {
    order: 1;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #5b5e6f;
    margin-right: 0.5rem;
}

.partner-bar__logos {
    order: 2;
    display: flex;
    gap: 0.75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.partner-bar__link img {
    height: 30px;
    width: auto;
    object-fit: contain;
    filter: none;
    transition: transform 0.2s ease;
}

.partner-bar__link:hover img {
    transform: translateY(-2px);
}

body.header-sticky .partner-bar {
    display: none !important;
}

body.header-sticky .header {
    margin-top: 0 !important;
}

@media (max-width: 768px) {
    .partner-bar__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .partner-bar__label {
        margin-right: 0;
    }

    .partner-bar__logos {
        flex-wrap: wrap;
        gap: 0.5rem 1rem;
    }
}

.top-bar a:hover,
.top-bar a:focus,
.top-bar a:focus-visible {
    color: #FF4FB2 !important;
    text-decoration: none;
}


.top-bar__contact a,
.top-bar__contact span,
.top-bar__contact i {
    font-weight: 500;
    transition: color 0.2s ease-in-out;
}

.top-bar__contact span,
.top-bar__contact i {
    color: #fff !important;
    fill: #fff !important;
}

/* === UNIFIED TOP-BAR LINK STYLING (CONTACT + PORTAL) === */
.top-bar__contact a,
.top-bar .partner-portal a {
    color: #ffffff;
    text-decoration: none;
    transition: color 0.2s ease-in-out;
}
.top-bar__contact a:hover,
.top-bar .partner-portal a:hover {
    color: #FF4FB2;
    text-decoration: none;
}
.top-bar__contact-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.top-bar__contact-link:hover,
.top-bar__contact-link:focus,
.top-bar__contact-link:focus-visible {
    color: #ff4fb2;
    text-decoration: underline;
}

.top-bar__contact {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
}

.top-bar__contact i {
    color: #fff;
    margin-right: 6px;
    font-size: 0.9rem;
    vertical-align: middle;
    transition: color 0.2s ease-in-out;
}

.top-bar__contact a:hover i,
.top-bar__contact a:focus i,
.top-bar__contact a:focus-visible i {
    color: #FF4FB2;
}

.top-bar .partner-icons img {
    height: 24px;
    width: auto;
    max-width: 48px;
    object-fit: contain;
    margin-left: 1.25rem;
    padding: 3px 6px;
    background: #F2F2F2;
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
    opacity: 0.95;
    transition: opacity 0.2s ease, transform 0.2s ease;
    vertical-align: middle;
}

.top-bar .partner-icons img:hover {
    opacity: 1;
    transform: translateY(-1px);
}

.top-bar a,
.top-bar span,
.top-bar i {
    color: #ffffff !important;
    fill: #ffffff !important;
}

.top-bar a:hover,
.top-bar a:focus,
.top-bar a:focus-visible {
    color: #FF4FB2 !important;
    text-decoration: none;
}

/* === FINAL UNDERLINE SUPPRESSION FOR PARTNER PORTAL === */
.top-bar .partner-portal a:hover {
    text-decoration: none !important;
    border-bottom: none !important;
}

.top-bar__link {
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s ease;
}

.top-bar__link:hover,
.top-bar__link:focus,
.top-bar__link:focus-visible {
    border-bottom-color: #FF4FB2;
}


.top-bar .header-language-toggle {
    border: none;
    background: transparent;
    padding: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    cursor: pointer;
    color: inherit;
}

.top-bar .header-language-flag {
    width: 18px;
    height: 12px;
    border-radius: 2px;
    object-fit: cover;
}

.top-bar .header-language-label,
.top-bar .header-language-name {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.top-bar-language-menu {
    background: #ffffff;
    border-radius: 4px;
    padding: 0.5rem 0;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
    min-width: 120px;
}

.top-bar-language-menu .header-language-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* === HEADER LANGUAGE SWITCHER (CUSTOM STRUCTURE) === */
.top-bar__lang {
    position: relative;
}

/* Toggle button */
.top-bar__lang .header-language-toggle {
    display: inline-flex;
    align-items: center;
    background: #000032 !important;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    color: #FF9F40 !important;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.9rem;
    padding: 4px 10px;
    transition: color 0.2s ease-in-out, background 0.2s ease-in-out, border-color 0.2s ease-in-out;
    z-index: 1000;
}
.top-bar__lang .header-language-toggle:hover {
    color: #FF4FB2 !important;
    border-color: rgba(255, 79, 178, 0.4);
}

.top-bar__lang .header-language-flag {
    width: 20px;
    height: auto;
    margin-right: 6px;
    border-radius: 2px;
}
.top-bar__lang .header-language-icon {
    margin-left: 4px;
    font-size: 0.7rem;
}

/* Dropdown menu */
.top-bar__lang .top-bar-language-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: #000032 !important;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    padding: 4px 0;
    margin-top: -1px;
    list-style: none;
    min-width: 160px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
    display: none;
    z-index: 9999;
    color: #FF9F40 !important;
}

.top-bar__lang:hover .top-bar-language-menu,
.top-bar__lang:focus-within .top-bar-language-menu {
    display: block;
}

.top-bar__lang .header-language-option {
    display: block;
}

.top-bar__lang .header-language-link {
    display: block;
    padding: 6px 12px;
    color: #FF9F40 !important;
    background: #000032;
    text-decoration: none;
    transition: color 0.2s ease, background 0.2s ease;
}
.top-bar__lang .header-language-link:hover,
.top-bar__lang .header-language-link:focus,
.top-bar__lang .header-language-link:focus-visible {
    background: #FF4FB2 !important;
    color: #ffffff !important;
}

/* === MAKE LANGUAGE NAMES VISIBLE INSIDE SWITCHER === */
.top-bar__lang .screen-reader-text {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding-left: 6px;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
    color: #FF9F40 !important;
    font-weight: 600;
    display: inline !important;
}

.top-bar__lang .header-language-link:hover .screen-reader-text {
    color: #FF4FB2 !important;
}


/* FORCE WPML HEADER STYLE ONLY */
.top-bar__lang .wpml-ls-legacy-dropdown,
.top-bar__lang .wpml-ls {
    background: transparent !important;
}

.top-bar__lang .wpml-ls-item,
.top-bar__lang .wpml-ls-current-language {
    background: none !important;
    border: none !important;
}

.top-bar__lang .wpml-ls-item a,
.top-bar__lang .wpml-ls-current-language a {
    color: #ffffff !important;
    background: none !important;
    border: none !important;
    padding: 2px 6px !important;
    display: inline-flex;
    align-items: center;
    font-weight: 500;
}

.top-bar__lang .wpml-ls-item a:after,
.top-bar__lang .wpml-ls-current-language a:after {
    content: '▾';
    margin-left: 4px;
    font-size: 0.7rem;
    color: #ffffff;
    opacity: 0.85;
}

.top-bar__lang .wpml-ls ul {
    background: #000032 !important;
    border: 1px solid rgba(255,255,255,0.25);
    padding: 4px 0;
    z-index: 9999;
}

.top-bar__lang .wpml-ls ul li a {
    color: #ffffff !important;
    padding: 6px 12px;
    display: block;
}

.top-bar__lang .wpml-ls ul li a:hover {
    background: #FF4FB2 !important;
    color: #ffffff !important;
}

.top-bar {
    transition: opacity 0.2s ease, height 0.2s ease;
}

.top-bar.is-hidden {
    height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    visibility: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
}

.top-bar.is-hidden,
body.header-sticky .top-bar {
    transform: translateY(-100%);
}

@media (max-width: 768px) {
    .top-bar__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .top-bar__left,
    .top-bar__right {
        width: 100%;
        flex-wrap: wrap;
        gap: 0.75rem;
    }
}

.top-nav li.menu-item-has-children {
    position: relative;
}

.top-nav li.menu-item-has-children > ul.sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    padding: 12px 0;
    margin: 0;
    list-style: none;
    display: none;
    z-index: 9999;
    border: none;
}

.top-nav li.menu-item-has-children > ul.sub-menu > li {
    width: 100%;
}

.top-nav li.menu-item-has-children > ul.sub-menu > li > a {
    display: block;
    padding: 8px 18px;
    color: var(--lse-structure-navy);
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}

.top-nav li.menu-item-has-children > ul.sub-menu > li > a:hover,
.top-nav li.menu-item-has-children > ul.sub-menu > li > a:focus,
.top-nav li.menu-item-has-children > ul.sub-menu > li > a:focus-visible {
    background: rgba(0, 0, 50, 0.08);
    color: var(--lse-secondary-orange);
}

.top-nav li.menu-item-has-children:hover > ul.sub-menu,
.top-nav li.menu-item-has-children:focus-within > ul.sub-menu,
.top-nav li.menu-item-has-children.is-open > ul.sub-menu {
    display: block;
}

.top-nav .menu-item-apply-for-english-course a {
    background: linear-gradient(90deg, #FF4FB2 0%, #E6007E 100%);
    color: #ffffff !important;
    font-weight: 700;
    padding: 0.65rem 1.4rem;
    border-radius: 9999px;
    box-shadow: 0 0 12px rgba(230, 0, 126, 0.45);
    text-transform: none;
    transition: all 0.25s ease-in-out;
}

.top-nav .menu-item-apply-for-english-course a:hover,
.top-nav .menu-item-apply-for-english-course a:focus,
.top-nav .menu-item-apply-for-english-course a:focus-visible {
    opacity: 0.9;
    box-shadow: 0 0 18px rgba(230, 0, 126, 0.6);
}

/* === LANGUAGE SWITCHER — ORANGE TEXT + MAGENTA HOVER === */
.top-bar__lang .header-language-toggle,
.top-bar__lang .header-language-link {
    color: #FF9F40 !important;
    font-weight: 600;
    transition: color 0.2s ease-in-out;
}
.top-bar__lang .header-language-toggle:hover {
    color: #FF4FB2 !important;
}
.top-bar__lang .top-bar-language-menu {
    background: #000032;
}

/* === EVEN HORIZONTAL SPACING & ALIGNMENT === */
.top-bar__lang,
.top-bar .partner-icons,
.top-bar .partner-portal {
    display: inline-flex;
    align-items: center;
    margin-left: 1.25rem;
}

/* ==========================================================================
   Header Palette Overrides
   ========================================================================== */

.header_top {
    background: #fff8f2 !important;
    color: var(--lse-structure-navy) !important;
}

.header_top * {
    color: var(--lse-structure-navy) !important;
}

.header_top a {
    color: var(--lse-structure-navy) !important;
    text-decoration: none !important;
}

.header_top a:hover {
    color: var(--lse-secondary-orange) !important;
}

#menu-item-6242,
#menu-item-6242 a,
#menu-item-6242 a *,
#menu-item-6242 svg,
#menu-item-6242 svg * {
    color: #ffffff !important;
    fill: #ffffff !important;
}

#menu-item-6242 > a,
#menu-item-6242 > a:link,
#menu-item-6242 > a:visited {
    background: linear-gradient(135deg, var(--lse-primary-magenta) 0%, #ff1a94 100%) !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    border-radius: 25px !important;
    padding: 10px 20px !important;
    margin: 2px 8px !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    box-shadow: 0 3px 12px rgba(230, 0, 126, 0.3) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    border: none !important;
    display: inline-block !important;
    text-align: center !important;
}

#menu-item-6242 > a * {
    color: #ffffff !important;
}

#menu-item-6242 > a:hover,
#menu-item-6242 > a:focus,
#menu-item-6242 > a:focus-visible,
#menu-item-6242 > a:hover:visited,
#menu-item-6242 > a:focus:visited,
#menu-item-6242 > a:focus-visible:visited {
    background: linear-gradient(135deg, var(--lse-secondary-orange) 0%, #ff8534 100%) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(238, 114, 24, 0.4) !important;
}

body .header.sticky #menu-item-6242 > a {
    padding: 8px 16px !important;
    font-size: 12px !important;
    border-radius: 20px !important;
}

.site-header,
.main-navigation,
.navbar,
header,
.header_colored_bg,
.main_header,
.header_bottom {
    background-color: #ffffff !important;
    color: var(--lse-structure-navy) !important;
}

.header_bottom .grid {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.header_bottom .grid__item {
    float: none;
    width: auto;
    min-width: 0;
}

.header_bottom .grid__item:first-child {
    flex: 0 0 auto;
}

.header_bottom .grid__item:last-child {
    flex: 1 1 auto;
}

.header_controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-bottom: 0;
    flex: 0 1 auto;
    max-width: 100%;
    flex-wrap: nowrap;
}

.header-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--lse-primary-magenta) 0%, #ff1a94 100%);
    color: var(--lse-white) !important;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    box-shadow: 0 6px 16px rgba(230, 0, 126, 0.28);
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    max-width: 200px;
    text-align: center;
    white-space: nowrap;
}

.header-cta span {
    color: inherit !important;
}

.header_bottom .header_controls .header-cta,
.header_bottom .header_controls .header-cta:link,
.header_bottom .header_controls .header-cta:visited,
.header_bottom .header_controls .header-cta:active {
    color: var(--lse-white) !important;
    -webkit-text-fill-color: var(--lse-white);
}

.header_bottom .header_controls .header-cta span {
    color: inherit !important;
}

.header-cta:hover,
.header-cta:focus,
.header-cta:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(230, 0, 126, 0.32);
    background: linear-gradient(135deg, var(--lse-secondary-orange) 0%, #ff8534 100%);
    color: var(--lse-white) !important;
    outline: none;
}

.header-cta:active {
    transform: translateY(0);
    box-shadow: 0 4px 12px rgba(230, 0, 126, 0.2);
}

body .header.sticky .header_controls {
    margin-bottom: 0;
}

body .header.sticky .header-cta {
    display: none;
}

.main-navigation a,
.navbar-nav .nav-link,
.site-header a {
    color: var(--lse-structure-navy) !important;
    transition: color 0.3s ease;
}

.main-navigation a:hover,
.navbar-nav .nav-link:hover,
.site-header a:hover {
    color: var(--lse-secondary-orange) !important;
}

.nav-item.london-homestays > a,
.menu-item.london-homestays > a {
    background: linear-gradient(135deg, var(--partner-london-homestays), #ba2f36) !important;
    color: var(--lse-white) !important;
    padding: 8px 16px;
    border-radius: 4px;
}

.nav-item.uk-residences > a,
.menu-item.uk-residences > a {
    background: linear-gradient(135deg, var(--partner-uk-residences), #08913f) !important;
    color: var(--lse-white) !important;
    padding: 8px 16px;
    border-radius: 4px;
}

.logo img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    max-height: 77px !important;
    width: auto !important;
    height: auto !important;
}

/* ==========================================================================
   Header Layout (migrated from parent style.css @1041+)
   ========================================================================== */

.header_top {
    padding: 12px 0;
}

.top_menu {
    overflow: visible;
}

.top_menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.top_menu ul li {
    float: none;
    display: flex;
    align-items: center;
    padding: 0 16px 0 0;
    line-height: 32px;
    font-size: 15px;
    text-transform: none;
    color: var(--lse-neutral-gray) !important;
    border-left: 0;
}

.top_menu ul li:first-child {
    padding-left: 0;
}

.top_menu ul li a {
    display: block;
    padding-left: 24px;
    text-decoration: none;
    position: relative;
    color: var(--lse-neutral-gray) !important;
}

.top_menu ul li a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    font-family: 'FontAwesome';
    font-size: 16px;
    color: var(--lse-neutral-gray) !important;
}

.top_menu ul li a:hover {
    color: var(--lse-secondary-orange) !important;
}

.top_menu ul li a:hover::before {
    color: var(--lse-secondary-orange) !important;
}

.top_menu ul li.mail a::before {
    content: '\f0e0';
}

.top_menu ul li.phone a::before {
    content: '\f095';
}

.header_social {
    float: right;
    margin-right: 20px;
    padding: 6px 0 0 0;
}

.header_social a,
.header_social a:link,
.header_social a:visited,
.header_top .header_social a,
.header_top .header_social a:link,
.header_top .header_social a:visited,
body .header_social a,
body .header_social a:link,
body .header_social a:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 8px;
    color: var(--lse-structure-navy) !important;
    font-size: 16px;
    text-decoration: none;
    transition: color 0.3s ease, transform 0.3s ease;
}

.header_social a:first-child {
    margin-left: 0;
}

.header_social a:hover,
.header_social a:hover:visited,
.header_top .header_social a:hover,
.header_top .header_social a:hover:visited,
body .header_social a:hover,
body .header_social a:hover:visited {
    color: var(--lse-secondary-orange) !important;
    transform: translateY(-2px);
}

.header_social a i,
.header_top .header_social a i,
body .header_social a i {
    font-size: 16px;
    line-height: 1;
    font-style: normal;
    color: inherit !important;
}

.header-brand-symbol img {
    display: block;
    width: auto;
    height: 22px;
    object-fit: contain;
}

.header-brand-symbol--residences img {
    height: 24px;
}

/* Blog single layout refresh */
.blog-single {
    background: #fff;
}

.blog-single__wrap {
    padding: 40px 0 60px;
}

.blog-single__grid {
    display: flex;
    gap: 48px;
    align-items: flex-start;
}

.blog-single__main {
    flex: 1 1 0;
    max-width: 790px;
}

.blog-single__article {
    display: block;
}

.blog-single__hero {
    margin: 0 0 32px;
    border-radius: 20px;
    overflow: hidden;
}

.blog-single__hero img {
    width: 100%;
    height: auto;
    display: block;
}

.blog-single__content {
    font-size: 1.05rem;
    line-height: 1.8;
    color: #333;
}

.blog-single__content p {
    margin-bottom: 1.5em;
}

.blog-single__footer {
    margin-top: 32px;
}

.blog-single__sidebar {
    flex: 0 0 320px;
    position: sticky;
    top: 140px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.blog-single__sidebar .widget {
    background: linear-gradient(135deg, rgba(238, 114, 24, 0.05), rgba(0, 0, 50, 0.03));
    border: 1px solid rgba(0, 0, 50, 0.08);
    border-radius: 18px;
    padding: 24px 26px;
    box-shadow: 0 18px 36px rgba(0, 0, 50, 0.08);
}

.blog-single__sidebar .widget-title,
.blog-single__sidebar h3 {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 18px;
    color: #000032;
    position: relative;
}

.blog-single__sidebar .widget-title::after,
.blog-single__sidebar h3::after {
    content: '';
    display: block;
    width: 48px;
    height: 3px;
    margin-top: 10px;
    border-radius: 999px;
    background: linear-gradient(90deg, #EE7218, #E6007E);
}

@media (max-width: 1200px) {
    .blog-single__grid {
        gap: 32px;
    }
    .blog-single__sidebar {
        flex-basis: 280px;
    }
}

@media (max-width: 991px) {
    .blog-single__grid {
        flex-direction: column;
    }
    .blog-single__sidebar {
        width: 100%;
        position: static;
    }
}

.header_social i.fa,
.header_top .header_social i.fa,
body .header_social i.fa {
    font-family: "FontAwesome" !important;
    font-weight: normal !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}

/* Header top layout refresh */
.header_top .grid {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-left: 0;
    gap: 12px 24px;
}

.header_top .grid__item {
    width: auto;
    padding-left: 0;
    flex: 1 1 auto;
}

.header_top .grid__item:last-child {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
}

.header_top .header_social {
    float: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.header_top .language_option {
    margin-left: 12px;
    display: flex;
    align-items: center;
}

@media (max-width: 900px) {
    .header_top .grid {
        flex-direction: column;
        align-items: flex-start;
    }

    .header_top .grid__item,
    .header_top .grid__item:last-child {
        width: 100%;
        flex: 1 1 100%;
    }

    .header_top .grid__item:last-child {
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 12px;
    }

    .header_top .header_social {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .header_top .language_option {
        margin-left: 0;
    }
}

@media (max-width: 600px) {
    .top_menu ul {
        gap: 8px 16px;
    }

    .top_menu ul li {
        padding-right: 0;
    }

    .header_top .grid__item:last-child {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 768px) {
    .header_top {
        display: none;
    }

    .header-brand-symbol,
    .header_top .header_social,
    .header_top .language_option {
        display: none !important;
    }
}

.header_social .fa-facebook:before,
.header_top .header_social .fa-facebook:before,
body .header_social .fa-facebook:before {
    content: "\f09a" !important;
}

.header_social .fa-twitter:before,
.header_top .header_social .fa-twitter:before,
body .header_social .fa-twitter:before {
    content: "\f099" !important;
}

.header_social .fa-linkedin:before,
.header_top .header_social .fa-linkedin:before,
body .header_social .fa-linkedin:before {
    content: "\f0e1" !important;
}

.header_social .fa-instagram:before,
.header_top .header_social .fa-instagram:before,
body .header_social .fa-instagram:before {
    content: "\f16d" !important;
}

.header_social .fa-whatsapp:before,
.header_top .header_social .fa-whatsapp:before,
body .header_social .fa-whatsapp:before {
    content: "\f232" !important;
}

.header_social a:hover i,
.header_top .header_social a:hover i,
body .header_social a:hover i,
.header_social a:hover i::before,
.header_top .header_social a:hover i::before,
body .header_social a:hover i::before {
    color: var(--lse-secondary-orange) !important;
}

.language_option,
#lang_sel {
    background: #ffffff !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.language_option {
    position: relative;
    z-index: 999;
    min-width: 0;
}

#lang_sel {
    position: static;
    width: auto;
    min-width: 0;
    height: auto;
    display: block;
}

.language_option #lang_sel ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.language_option #lang_sel ul li {
    position: relative;
}

.language_option #lang_sel ul li a {
    display: block;
    padding: 8px 12px;
    font-size: 13px;
    line-height: 16px;
    text-decoration: none;
    border: 0;
    color: var(--lse-structure-navy) !important;
    transition: color 0.3s ease, background 0.3s ease;
}

.language_option #lang_sel a.lang_sel_sel {
    position: relative;
    padding-right: 34px;
    background: #ffffff !important;
    border-radius: 3px;
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
}

.language_option #lang_sel a.lang_sel_sel::after {
    content: '\f107';
    font-family: 'FontAwesome';
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    font-size: 14px;
    color: var(--lse-neutral-gray);
}

.language_option img {
    width: 16px;
    height: 12px;
    margin-right: 6px;
}

.language_option #lang_sel a.lang_sel_sel:hover {
    color: var(--lse-secondary-orange) !important;
}

.language_option #lang_sel ul ul {
    top: calc(100% - 1px);
    min-width: 120px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    background: #ffffff;
    left: auto;
    right: 0;
}

.language_option #lang_sel ul li li {
    width: 100%;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.language_option #lang_sel ul ul a {
    background: #ffffff;
}

.language_option #lang_sel ul ul a:hover {
    background: var(--lse-secondary-orange) !important;
    color: #ffffff !important;
}

/* Custom header language dropdown */
.language-option--dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.header-language-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 18px;
    border-radius: 999px;
    border: 1px solid rgba(26, 40, 89, 0.22);
    background: rgba(255, 255, 255, 0.85);
    color: var(--lse-structure-navy);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.header-language-toggle:hover,
.header-language-toggle:focus,
.header-language-toggle:focus-visible {
    background: #ffffff;
    border-color: rgba(26, 40, 89, 0.36);
    color: var(--lse-structure-navy);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
    outline: none;
}

.header-language-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.header-language-icon {
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid currentColor;
    transition: transform 0.2s ease;
}

.language-option--dropdown.is-open .header-language-icon {
    transform: rotate(180deg);
}

.header-language-menu {
    list-style: none;
    margin: 12px 0 0;
    padding: 8px 0;
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: 220px;
    background: #ffffff;
    border: 1px solid rgba(26, 40, 89, 0.16);
    border-radius: 12px;
    box-shadow: 0 24px 36px rgba(0, 0, 0, 0.22);
    display: flex;
    flex-direction: column;
    gap: 4px;
    z-index: 1000;
}

.header-language-menu[hidden] {
    display: none;
}

.header-language-option {
    margin: 0;
}

.header-language-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    color: var(--lse-structure-navy);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}

.header-language-link:hover,
.header-language-link:focus,
.header-language-link:focus-visible {
    background: rgba(26, 40, 89, 0.08);
    color: var(--lse-structure-navy);
    outline: none;
}

.header-language-option.is-active .header-language-link {
    font-weight: 600;
    background: rgba(255, 156, 106, 0.18);
}

.header-language-flag {
    width: 18px;
    height: 12px;
    border-radius: 2px;
    object-fit: cover;
    flex-shrink: 0;
}

.header-language-name {
    white-space: nowrap;
}


.header_bottom {
    min-height: 96px;
    padding: 22px 0 16px;
}

.header_nav {
    float: right;
    padding-top: 12px;
}

.header_nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
    border-bottom: 1px solid #ccc;
}

.header_nav ul li {
    float: left;
    padding: 0 0 12px 36px;
    font-family: 'proxima-nova', 'Proxima Nova', 'proxima_nova', sans-serif;
    font-weight: 600;
    font-size: 15px;
    line-height: 1.2;
    letter-spacing: 0;
}

.header_nav ul li:first-child {
    padding-left: 0;
}

.header_nav ul li:last-child a {
    text-decoration: underline;
}

.header_nav ul li a {
    text-decoration: none;
    display: inline-block;
    padding: 0;
}

.header_nav ul li:hover > a {
    text-decoration: underline;
}

.header_nav ul ul {
    position: absolute;
    top: 30px;
    left: 0;
    width: 160px;
    margin: 0;
    padding: 0;
    list-style: none;
    background: #fff;
    border: 1px solid #d7d7d7;
    display: none;
    text-align: left;
    z-index: 999;
}

.header_nav ul li:hover > ul,
.header_nav ul li li:hover > ul {
    display: block;
}

.header_nav ul li li {
    float: none;
    width: 100%;
    padding: 10px;
    border-top: 1px solid #d7d7d7;
    font-family: 'ligurino_condensedregular', 'Proxima Nova', sans-serif;
    font-size: 16px;
    letter-spacing: 1px;
    text-transform: none;
}

.header_nav ul li li:first-child {
    border-top: 0;
}

.header_nav ul li li a {
    display: block;
    text-decoration: none;
}

/* Header navigation override (consolidated from child overrides) */
body .header_nav,
.header_nav {
    background: #ffffff !important;
    padding: 8px 0 !important;
    border-top: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
    gap: 0;
}

body .header_nav ul,
body .header_nav .nav,
body .header_nav .top-nav,
.header_nav ul,
.header_nav .nav,
.header_nav .top-nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    gap: 0;
}

body .header_nav li,
body .header_nav .nav li,
body .header_nav .top-nav li,
.header_nav li,
.header_nav .nav li,
.header_nav .top-nav li {
    display: inline-flex !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
}

body .header_nav a,
body .header_nav .nav a,
body .header_nav .top-nav a,
.header_nav a,
.header_nav .nav a,
.header_nav .top-nav a {
    color: var(--lse-structure-navy) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    padding: 8px 12px !important;
    margin: 0 2px !important;
    text-decoration: none !important;
    transition: color 0.3s ease !important;
    background: transparent !important;
}

body .header_nav #menu-item-6242 > a,
.header_nav #menu-item-6242 > a {
    font-size: 12px !important;
    padding: 8px 16px !important;
    margin: 2px 6px !important;
    border-radius: 20px !important;
}

body .header_nav #menu-item-6242 > a:hover,
body .header_nav #menu-item-6242 > a:focus,
body .header_nav #menu-item-6242 > a:focus-visible,
.header_nav #menu-item-6242 > a:hover,
.header_nav #menu-item-6242 > a:focus,
.header_nav #menu-item-6242 > a:focus-visible,
body .header_nav #menu-item-6242 > a:hover:visited,
body .header_nav #menu-item-6242 > a:focus:visited,
body .header_nav #menu-item-6242 > a:focus-visible:visited,
.header_nav #menu-item-6242 > a:hover:visited,
.header_nav #menu-item-6242 > a:focus:visited,
.header_nav #menu-item-6242 > a:focus-visible:visited {
    color: #ffffff !important;
}

.nav.top-nav,
#menu-main-menu-english {
    background: #ffffff !important;
    border-top: 1px solid #e0e0e0 !important;
    border-bottom: 1px solid #e0e0e0 !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) !important;
}

.nav.top-nav a,
#menu-main-menu-english a {
    color: var(--lse-structure-navy) !important;
    transition: color 0.3s ease;
}

.nav.top-nav a:hover,
#menu-main-menu-english a:hover {
    color: var(--lse-secondary-orange) !important;
}

body .header_nav a:hover,
body .header_nav .nav a:hover,
body .header_nav .top-nav a:hover,
.header_nav a:hover,
.header_nav .nav a:hover,
.header_nav .top-nav a:hover {
    color: var(--lse-secondary-orange) !important;
}

@media (max-width: 1200px) {
    body .header_nav a,
    .header_nav a {
        font-size: 12px !important;
        padding: 6px 10px !important;
        margin: 0 1px !important;
    }

    body .header_nav #menu-item-6242 > a {
        font-size: 11px !important;
        padding: 6px 12px !important;
    }
}

@media (max-width: 1024px) {
    body .header_nav a,
    .header_nav a {
        font-size: 11px !important;
        padding: 5px 8px !important;
    }

    body .header_nav #menu-item-6242 > a {
        font-size: 10px !important;
        padding: 5px 10px !important;
    }
}

.site_navigation.desk ul li:hover > ul,
.site_navigation.desk ul li.hover > ul {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    z-index: 9999 !important;
    background: #ffffff !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

/* ==========================================================================
   Sticky Navigation
   ========================================================================== */

.header {
    transition: transform 0.3s ease;
}

body.header-hidden .header {
    transform: translateY(-100%) !important;
    transition: transform 0.3s ease;
}

body .header.sticky {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    background: rgba(255, 255, 255, 0.95) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1) !important;
    animation: slideDown 0.3s ease !important;
}

@keyframes slideDown {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

body .header.sticky .header_top {
    display: none !important;
}

body .header.sticky .header_bottom {
    padding: 16px 0 12px !important;
    min-height: 82px !important;
}

body .header.sticky .header_nav {
    padding-top: 6px !important;
}

body .header.sticky .logo img {
    max-height: 58px !important;
    transition: max-height 0.3s ease !important;
}

@media (max-width: 768px) {
    body .header.sticky .logo img {
        max-height: 48px !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    body .header.sticky .logo img {
        max-height: 53px !important;
    }
}

body.header-sticky {
    padding-top: 96px;
}

@media (max-width: 768px) {
    body.header-sticky {
        padding-top: 72px;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    body.header-sticky {
        padding-top: 76px;
    }
}

/* === FOOTER SOCIAL ICONS === */
.footer-social {
    text-align: center;
    margin-top: 1rem;
}

.footer-social a {
    color: #ffffff;
    font-size: 1.1rem;
    margin: 0 0.5rem;
    display: inline-block;
    transition: color 0.2s ease;
    text-decoration: none;
}

.footer-social a:hover {
    color: #FF4FB2;
}

.footer-social a[aria-label="WhatsApp"]:hover {
    color: #25D366;
}

/* ==========================================================================
   Hero & Course Finder
   ========================================================================== */

.home .banner_holder,
.home .course-finder-hero,
.banner_holder,
.course-finder-hero {
    background-image: url('/wp-content/LSE-hero-image.jpg') !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    min-height: 500px !important;
    border-radius: 0 !important;
    position: relative !important;
}

.course-finder-hero::before,
.hero-section::before,
.banner-section::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(135deg, rgba(0, 0, 50, 0.8) 0%, rgba(230, 0, 126, 0.6) 50%, rgba(238, 114, 24, 0.5) 100%) !important;
    z-index: 1 !important;
    pointer-events: none !important;
}

.hero-title,
.banner_holder .hero-title,
.course-finder-hero .hero-title {
    color: #ffffff !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

.hero-subtitle,
.banner_holder .hero-subtitle,
.course-finder-hero .hero-subtitle {
    color: #ffffff !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2) !important;
}

.hero-stats,
.hero-stats *,
.hero-statistics,
.hero-statistics *,
.course-finder-hero .stats,
.course-finder-hero .stats *,
.banner_holder .stats,
.banner_holder .stats * {
    color: #ffffff !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
    position: relative !important;
    z-index: 2 !important;
}

.course-finder-hero > *,
.hero-section > *,
.banner-section > *,
.banner_holder > *,
.course-finder-wrapper,
.course-finder {
    position: relative !important;
    z-index: 2 !important;
}

.home-hero__finder .course-finder-hero,
.home-hero__finder .course-finder-hero-only {
    background: none !important;
    min-height: auto !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.home-hero__finder .course-finder-hero::before {
    display: none !important;
}

.home-hero__finder .course-finder-hero > .wrap,
.home-hero__finder .quick-search-container,
.home-hero__finder .search-inputs-row {
    padding: 0 !important;
    margin: 0 !important;
}

.home-hero__finder .quick-search-container {
    background: rgba(255, 255, 255, 0.9) !important;
    border-radius: 16px !important;
    padding: 20px 22px !important;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.08) !important;
    font-family: var(--lse-body-font-family, 'Poppins', 'Helvetica Neue', Helvetica, Arial, sans-serif) !important;
}

/* Phase XV-C — Finder form base alignment */
.quick-search-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

/* Phase XV-N — neutralise legacy quick-search widths */
.quick-search-form .search-input-group {
    flex: 0 0 auto !important;
    min-width: unset !important;
    width: auto !important;
}

.home-hero__finder .search-select {
    width: auto !important;
    max-width: none !important;
}

.quick-search-form .search-input-group select.search-select {
    width: auto !important;
}

/* Phase XV-J — legacy layout neutralized */
.search-inputs-row {
    gap: 0.75rem;
    align-items: center;
}

/* keep selects inline */
.search-inputs-row > *:not(.search-cta-btn-wrapper) {
    flex: 0 0 auto;
}

/* only the CTA wrapper breaks to a new full-width row */
.search-inputs-row .search-cta-btn-wrapper {
    flex: 1 1 100%;
    display: flex;
    justify-content: center;
    margin-top: 0.5rem;
}

.search-inputs-row .search-cta-btn {
    min-width: 160px;
    padding: 0.75rem 1.25rem;
    font-weight: 600;
}

@media (max-width: 600px) {
    .search-inputs-row > *:not(.search-cta-btn-wrapper) {
        flex: 1 1 45%;
        min-width: 150px;
    }

    .search-inputs-row .search-cta-btn-wrapper {
        flex-basis: 100%;
    }

    .search-inputs-row .search-cta-btn {
        width: 100%;
        max-width: 320px;
    }
}

.home-hero__finder .search-inputs-row {
    gap: 0.75rem;
}

.home-hero__finder .search-cta-btn {
    background: linear-gradient(135deg, #ee7218 0%, #e6007e 100%) !important;
    border-radius: 12px !important;
    padding: 0.75rem 1.25rem !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    border: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    box-shadow: 0 10px 20px rgba(230, 0, 126, 0.15) !important;
    min-width: 160px !important;
}

.home-hero__finder .search-cta-btn .search-icon {
    display: inline-flex !important;
}

.home-hero__finder .search-input-group label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #1f1f29 !important;
    display: block !important;
    margin-bottom: 8px !important;
    text-align: center !important;
}

.home-hero__finder .search-select {
    width: 100% !important;
    border-radius: 10px !important;
    border: 1px solid rgba(31, 31, 41, 0.15) !important;
    padding: 12px 14px !important;
    font-size: 14px !important;
    font-family: inherit !important;
    box-shadow: none !important;
    background-color: #ffffff !important;
    color: #1f1f29 !important;
    background-image: linear-gradient(135deg, #ffffff 0%, #f7f8fc 100%) !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.home-hero__finder .search-select:focus {
    outline: none !important;
    border-color: #ee7218 !important;
    box-shadow: 0 0 0 3px rgba(238, 114, 24, 0.25) !important;
}

.home-hero__finder .search-select option,
.home-hero__finder .search-select optgroup,
.home-hero__finder .search-select::-ms-value {
    font-size: 14px !important;
    background: #ffffff !important;
    color: #1f1f29 !important;
    font-family: inherit !important;
}

.home-hero__finder .search-select::-webkit-scrollbar {
    width: 8px;
}

.home-hero__finder .search-select::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 10px;
}

.home-hero__finder .search-cta-btn-wrapper {
    grid-column: 1 / -1 !important;
    display: flex !important;
    justify-content: center !important;
}

.home-hero__finder .hero-stats {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-top: 18px !important;
}

.home-hero__finder .hero-stats .stat-item {
    background: rgba(255, 255, 255, 0.85) !important;
    border-radius: 12px !important;
    padding: 12px 14px !important;
    text-align: center !important;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.06) !important;
}

.home-hero__finder .hero-stats .stat-number {
    color: #e6007e !important;
    font-weight: 700 !important;
    font-size: 18px !important;
}

.home-hero__finder .hero-stats .stat-label {
    color: #1f1f29 !important;
    font-size: 12px !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
}

.home-hero__finder .course-finder-hero > .wrap {
    width: 100% !important;
}

.home-hero__finder .hero-content {
    padding: 0 !important;
}

.home-hero__wrap {
    display: flex !important;
    align-items: stretch !important;
    gap: clamp(24px, 5vw, 72px) !important;
    padding: 0 var(--lse-section-horizontal, 24px) 0 var(--lse-section-horizontal, 24px) !important;
}

.home-hero__col--content {
    flex: 2 1 0 !important;
    max-width: none !important;
    color: var(--lse-structure-navy, #000032) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: clamp(18px, 4vw, 36px) !important;
    justify-content: flex-start !important;
    padding-top: clamp(28px, 6vw, 64px) !important;
    padding-bottom: clamp(28px, 6vw, 64px) !important;
}

.home-hero__col--visual {
    flex: 1 1 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: flex-end !important;
    align-self: stretch !important;
    padding-bottom: 0 !important;
}

.home-hero__col--visual img {
    width: clamp(315px, 31.5vw, 465px) !important;
    max-width: none !important;
    height: auto !important;
    border-radius: 14px !important;
    object-fit: cover !important;
    margin: 0 !important;
    align-self: flex-end !important;
}

.home-hero__intro > *:last-child {
    margin-bottom: 0 !important;
}

.home-hero__intro h1,
.home-hero__intro h2 {
    color: var(--lse-structure-navy, #000032) !important;
}

.home-hero__intro p {
    color: #5a6170 !important;
}

.home-hero__title {
    margin: 0 !important;
    font-size: clamp(2.5rem, 5vw, 3.6rem) !important;
    line-height: 1.15 !important;
    color: inherit !important;
}

.home-hero__title h1 {
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.015em !important;
    color: inherit !important;
}

.home-hero__subtitle {
    margin: 0 !important;
    font-size: clamp(1.05rem, 2.2vw, 1.3rem) !important;
    line-height: 1.5 !important;
    color: #5a6170 !important;
}

.home-hero__subtitle--accent {
    font-weight: 600 !important;
    font-size: clamp(1.1rem, 2.2vw, 1.4rem) !important;
    margin-bottom: clamp(12px, 2.5vw, 20px) !important;
}

.home-hero__subtitle--secondary {
    color: #5a6170 !important;
}

.home-hero__finder {
    margin-top: auto !important;
    padding-top: clamp(18px, 4vw, 36px) !important;
}

.home-hero__mini-finder .course-finder-hero {
    padding: 0 !important;
    background: transparent !important;
    color: var(--lse-structure-navy, #000032) !important;
    background-image: none !important;
    min-height: auto !important;
    height: auto !important;
    display: flex !important;
}

.home-hero__mini-finder .course-finder-hero > .wrap {
    display: flex !important;
    flex: 1 1 auto !important;
    padding: 0 !important;
}

.home-hero__mini-finder .course-finder-hero::before {
    display: none !important;
}

.home-hero__mini-finder .hero-content {
    margin: 0 !important;
    max-width: none !important;
    text-align: left !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}

.home-hero__mini-finder .hero-title,
.home-hero__mini-finder .hero-subtitle,
.home-hero__mini-finder .hero-stats {
    display: none !important;
}

.home-hero__mini-finder {
    margin: 0 !important;
}

@media (max-width: 900px) {
    .home-hero__wrap {
        flex-direction: column !important;
        align-items: flex-start !important;
        text-align: left !important;
    }

    .home-hero__col--visual {
        align-self: center !important;
    }
}

@media (max-width: 640px) {
    .home-hero {
        padding: 28px 0 40px !important;
    }

    .home-hero__col--visual img {
        max-width: 360px !important;
        border-radius: 12px !important;
    }
}

.course-finder-wrapper,
.course-finder {
    background: rgba(255, 255, 255, 0.95) !important;
    padding: 30px !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important;
}

.course-card-compact {
    display: flex !important;
    flex-direction: column !important;
    background: #ffffff !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 8px !important;
    padding: 20px !important;
    margin-bottom: 20px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
    transition: box-shadow 0.2s ease !important;
}

.home_content {
    padding: 60px 0 !important;
    background: #ffffff !important;
}

.section_latest_blog .blog_scroller {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 20px !important;
}

.section_latest_blog .blog_module {
    flex: 0 0 300px !important;
    min-width: 300px !important;
}

.grid.section_feature {
    display: none !important;
}

.partner-schools-carousel {
    display: block !important;
    padding: 20px 0 !important;
    background: #fff8f2 !important;
}

/* ==========================================================================
   Layout & Legacy Container Resets
   ========================================================================== */

body,
.container,
.main-container,
#main,
.content-wrapper {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 auto !important;
}

.banner_holder {
    display: none !important;
}

.course-finder-hero {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

.site_navigation.desk {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    overflow: visible !important;
    position: relative !important;
    float: none !important;
}

.site_navigation.desk .wrap {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
}

.home_content,
.main-content,
.content-area {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 20px !important;
    float: none !important;
    clear: both !important;
}

.section_testimonial {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 40px 20px !important;
    height: auto !important;
    overflow: visible !important;
}

.section_latest_blog {
    position: relative !important;
    width: 100vw !important;
    max-width: none !important;
    left: 50% !important;
    right: 50% !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 40px 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    z-index: 1 !important;
}

.section_latest_blog h2.blog-title {
    max-width: 1200px !important;
    margin: 40px auto 40px auto !important;
    padding: 0 20px !important;
    text-align: center !important;
}

.section_latest_blog .blog_update {
    width: 100vw !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    overflow: hidden !important;
}

.section_latest_blog .blog_slide {
    background: #ffffff !important;
    margin: 0 15px !important;
    padding: 30px !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 50, 0.1) !important;
    border: 1px solid rgba(0, 0, 50, 0.05) !important;
    min-height: 200px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    transition: all 0.3s ease !important;
}

.section_latest_blog .blog_slide:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 8px 25px rgba(0, 0, 50, 0.15) !important;
}

.section_latest_blog .blog_slide h3 {
    color: var(--lse-structure-navy) !important;
    font-size: 1.55rem !important;
    line-height: 1.35 !important;
    letter-spacing: var(--lse-heading-letter-spacing) !important;
    font-weight: 700 !important;
    text-align: center !important;
    margin: 0 0 18px !important;
}

.section_latest_blog .blog_slide h3::after {
    content: '' !important;
    display: block !important;
    width: var(--lse-heading-underline-width) !important;
    height: var(--lse-heading-underline-height) !important;
    background: var(--lse-primary-magenta) !important;
    margin: var(--lse-heading-underline-margin-top) auto 0 !important;
    border-radius: 2px !important;
}

.section_latest_blog .blog_slide p {
    color: #495057 !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin-bottom: 20px !important;
    flex: 1 !important;
}

.section_latest_blog .blog_slide span {
    color: #EE7218 !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 10px !important;
    display: block !important;
}

.section_latest_blog .blog_slide .blog-button {
    background: linear-gradient(135deg, #EE7218 0%, #c25a13 100%) !important;
    color: #ffffff !important;
    text-decoration: none !important;
    padding: 12px 20px !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-align: center !important;
    transition: all 0.3s ease !important;
    border: 2px solid #EE7218 !important;
    display: inline-block !important;
    margin-top: auto !important;
}

.section_latest_blog .blog_slide .blog-button:hover {
    background: transparent !important;
    color: #EE7218 !important;
    transform: translateY(-2px) !important;
}

@media (max-width: 768px) {
    .section_latest_blog .blog_slide {
        margin: 0 10px !important;
        padding: 20px !important;
        min-height: 180px !important;
    }

    .section_latest_blog .blog_slide h3 {
        font-size: 1.25rem !important;
    }

    .section_latest_blog .blog_slide p {
        font-size: 13px !important;
    }
}

/* ==========================================================================
   Hero banner (parent style.css @1388 + responsive adjustments)
   ========================================================================== */

.footer-link,
.menu-sitemap a,
.footer-mega-menu a,
#footer_language_list ul li a {
    color: var(--lse-secondary-orange) !important;
    transition: color 0.2s ease;
}

.footer-link:hover,
.menu-sitemap a:hover,
.footer-mega-menu a:hover,
#footer_language_list ul li a:hover {
    color: var(--lse-tertiary-blue) !important;
}

.banner_holder {
    margin-top: -57px;
}

@media (max-width: 1199px) {
    .banner_holder {
        margin-top: -50px;
    }
}

@media (max-width: 979px) {
    .banner_holder {
        margin-top: -40px;
    }
}

@media (max-width: 768px) {
    .banner_holder {
        margin-top: 0;
    }
}

/* ==========================================================================
   Course Finder CTA button (align icon + text, prevent wraps)
   ========================================================================== */

.quick-search-form .search-input-group {
    flex: 1 1 calc(25% - 12px);
    min-width: 160px;
}

.search-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
    justify-content: center;
    margin: 0 auto;
    padding-left: 28px !important;
    padding-right: 28px !important;
    flex: 0 0 auto;
    align-self: flex-end;
}

.search-cta-btn .search-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: currentColor;
}

.search-cta-btn .search-icon svg {
    width: 100%;
    height: 100%;
}

.search-cta-btn .search-label {
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

@media (max-width: 900px) {
    .quick-search-form .search-input-group {
        flex: 1 1 220px;
    }

    .search-cta-btn {
        margin-top: 16px;
    }
}

/* ==========================================================================
   Homepage blog slider (migrated from parent .section_latest_blog/.blog_update)
   ========================================================================== */

/* Footer blog Splide overrides */
.section_latest_blog {
    position: relative;
    padding: 40px 0;
}

.section_latest_blog h2 {
    margin: 0 auto 32px;
    text-align: center;
    font-size: 24px;
    letter-spacing: 1px;
    text-transform: uppercase;
    max-width: min(1200px, 95vw);
    padding: 0 20px;
}

.section_latest_blog .blog_update.splide {
    position: relative;
    width: min(1200px, 95vw);
    margin: 0 auto;
}

.section_latest_blog .blog_update .splide__track {
    overflow: hidden;
}

.section_latest_blog .blog_update .splide__list {
    display: flex;
    align-items: stretch;
}

.section_latest_blog .blog_update .splide__slide {
    display: flex;
    justify-content: center;
    align-items: stretch;
    padding: 0;
    width: auto !important;
}

.section_latest_blog .blog_slide {
    width: 370px !important;
    max-width: 370px !important;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    background: #f5f8f9;
    border: 1px solid #f2f2f2;
    border-radius: 16px;
    padding: 32px;
    box-shadow: 0 16px 30px rgba(0, 0, 50, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.section_latest_blog .blog_slide:hover {
    transform: translateY(-6px);
    box-shadow: 0 22px 40px rgba(0, 0, 50, 0.15);
}

.section_latest_blog .blog_slide span {
    display: block;
    margin-bottom: 18px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: #EE7218;
}

.section_latest_blog .blog_slide h3 {
    font-size: 24px;
    line-height: 1.35;
    margin: 0 0 18px;
    text-transform: none;
    color: #000032;
}

.section_latest_blog .blog_slide p {
    flex: 1 1 auto;
    margin: 0 0 20px;
    color: #495057;
}

.section_latest_blog .blog_slide .blog-button {
    align-self: flex-start;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.section_latest_blog .blog_update .splide__arrows {
    display: none;
}

.section_latest_blog .blog_update .splide__pagination {
    position: static;
    display: flex;
    justify-content: center;
    gap: 12px;
    margin: 28px auto 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
}

.section_latest_blog .blog_update .splide__pagination::-webkit-scrollbar {
    display: none;
}

.section_latest_blog .blog_update .splide__pagination__page {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(0, 0, 50, 0.15);
    transition: background 0.3s ease, transform 0.3s ease;
    flex-shrink: 0;
}

.section_latest_blog .blog_update .splide__pagination__page.is-active,
.section_latest_blog .blog_update .splide__pagination__page:hover,
.section_latest_blog .blog_update .splide__pagination__page:focus-visible {
    background: #E6007E;
    transform: scale(1.15);
}

@media (max-width: 1024px) {
    .section_latest_blog .blog_update.splide {
        width: min(1100px, 92vw);
    }

    .section_latest_blog .blog_slide {
        width: 320px !important;
        max-width: 320px !important;
        padding: 28px;
    }
}

@media (max-width: 768px) {
    .section_latest_blog {
        padding: 32px 0;
    }

    .section_latest_blog .blog_update.splide {
        width: min(640px, 92vw);
    }

    .section_latest_blog .blog_update .splide__slide {
        width: 100% !important;
    }

    .section_latest_blog .blog_slide {
        width: 100% !important;
        max-width: none !important;
        padding: 24px;
    }

    .section_latest_blog .blog_update .splide__pagination {
        display: none !important;
    }
}

/* ==========================================================================
   Featured partner schools carousel
   ========================================================================== */

.partner-schools-carousel {
    padding: 32px 0;
    margin: 48px 0;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 50, 0.08);
    background: #ffffff;
}

.partner-schools-carousel .wrap {
    width: min(95%, 1400px);
    margin: 0 auto;
    padding: 0 24px;
}

.school-card-afs {
    display: flex;
    flex-direction: column;
    width: min(320px, 100%);
    background: #ffffff;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 50, 0.08);
    box-shadow: 0 4px 16px rgba(0, 0, 50, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    overflow: visible;
    position: relative;
    height: 550px;
    max-height: 550px;
    isolation: isolate;
}

.school-card-afs__overlay-link {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}

.school-card-afs__overlay-link:focus-visible {
    outline: 3px solid rgba(238, 114, 24, 0.65);
    outline-offset: 4px;
}

.school-card-afs:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 32px rgba(238, 114, 24, 0.15);
    border-color: rgba(238, 114, 24, 0.3);
}

.school-image-wrapper {
    position: relative;
    z-index: 2;
    aspect-ratio: 4/3;
    overflow: hidden;
}

.school-image-afs {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.school-card-afs:hover .school-image-afs {
    transform: scale(1.03);
}

.school-logo-overlay {
    position: absolute;
    bottom: 18px !important;
    left: 18px !important;
    right: auto !important;
    display: inline-block;
    line-height: 0;
    padding: 0 !important;
    border-radius: 12px;
    background: transparent !important;
    box-shadow: none !important;
    z-index: 5;
    width: auto !important;
    height: auto !important;
    pointer-events: none;
    transform: translate(20px, 10px);
}

.school-logo-overlay img {
    width: 96px !important;
    height: auto !important;
    max-width: 96px !important;
    max-height: 72px !important;
    object-fit: contain;
}

.no-schools-message {
    text-align: center;
    padding: 40px 20px;
    color: var(--lse-neutral-gray, #6c757d);
    font-size: 1.1rem;
}

.school-placeholder-image {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 200px;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    color: var(--lse-structure-navy, #000032);
    text-align: center;
    border-radius: 8px;
    gap: 6px;
}

.school-placeholder-image i {
    font-size: 2.7rem;
    color: var(--lse-structure-navy, #000032);
}

.school-placeholder-image span {
    font-weight: 600;
    font-size: 1.1rem;
    max-width: 200px;
    line-height: 1.3;
}

.school-content-afs {
    display: flex;
    flex-direction: column;
    padding: 24px;
    gap: 16px;
    flex: 1 1 auto;
    position: relative;
    z-index: 2;
}

.school-title-afs {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0;
}

.school-description-afs {
    flex: 1 1 auto;
    font-size: 0.95rem;
    line-height: 1.5;
    color: #475467;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    line-clamp: 4;
    overflow: hidden;
    text-overflow: ellipsis;
    max-height: calc(1.5em * 4);
}

.school-cta-section {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
}

.school-features,
.feature-badge {
    display: none !important;
}

.school-btn-afs {
    min-width: 120px;
    text-align: center;
    font-weight: 600;
    letter-spacing: 0.5px;
    position: relative;
    z-index: 3;
}

@media (max-width: 1024px) {
    .partner-schools-carousel {
        padding: 24px 0;
    }

    .school-card-afs {
        width: 280px;
    }
}

@media (max-width: 768px) {
    .school-placeholder-image {
        height: 150px;
    }

    .school-placeholder-image i {
        font-size: 2rem;
    }
}

@media (max-width: 640px) {
    .partner-schools-carousel .wrap {
        padding: 0 12px;
    }

    .school-card-afs {
        width: min(260px, 100%);
        height: 500px;
        max-height: 500px;
    }

    .school-content-afs {
        padding: 20px;
    }

    .school-logo-overlay {
        bottom: 12px !important;
        left: 12px !important;
        transform: translate(20px, 10px);
    }

    .school-logo-overlay img {
        width: 45px !important;
        max-width: 45px !important;
        max-height: 32px !important;
    }
}

.schools-carousel-slider .splide__track {
    padding: 8px 0 0;
}

.schools-carousel-slider .splide__list {
    display: flex;
    align-items: stretch;
}

.schools-carousel-slider .splide__slide {
    display: flex;
    justify-content: center;
    height: 100%;
}

.partner-schools-carousel .splide__arrows,
.home-testimonials__carousel .splide__arrows,
.school-testimonials__carousel .splide__arrows {
    display: none;
}

.partner-schools-carousel .splide__pagination {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 24px auto 0;
    padding: 0;
    position: static;
}

.partner-schools-carousel .splide__pagination__page {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(0, 0, 50, 0.15);
    transition: background 0.3s ease, transform 0.3s ease;
}

.partner-schools-carousel .splide__pagination__page.is-active,
.partner-schools-carousel .splide__pagination__page:focus-visible,
.partner-schools-carousel .splide__pagination__page:hover {
    background: #E6007E;
    transform: scale(1.15);
}

/* ==========================================================================
   Home school map
   ========================================================================== */

.home-school-map {
    padding: 32px 0 0;
    background: #ffffff;
}

.home-school-map__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.home-school-map__headline {
    max-width: 640px;
}

.home-school-map__headline h2 {
    margin-bottom: var(--lse-heading-h2-margin-bottom);
}

.home-school-map__headline p {
    font-size: 1rem;
    line-height: 1.6;
    color: #3a3a3a;
    margin: 0;
}

/* Legacy heading alignment – ensure emergency overrides match historic layout */
html body div.wrap h2,
html body .wrap h2,
html body h2.schools-carousel-title,
html body h2.testimonial_title,
html body h2.blog-title,
html body h2.content-title,
html body h2.results-title,
html body .section_latest_blog h2,
html body .section_testimonial h2,
html body .partner-schools-carousel h2,
html body .course-results-section h2,
html body div h2,
html body section h2,
html body article h2,
html body .content_middle h2,
html body #home_content h2 {
    font-family: var(--lse-heading-font-family) !important;
    font-size: var(--lse-heading-h2-size) !important;
    font-weight: var(--lse-heading-font-weight) !important;
    color: var(--lse-structure-navy) !important;
    text-align: center !important;
    margin: var(--lse-heading-h2-margin) !important;
    padding: 0 !important;
    position: relative !important;
    line-height: var(--lse-heading-line-height) !important;
    text-transform: none !important;
    letter-spacing: var(--lse-heading-letter-spacing) !important;
    background: none !important;
    border: none !important;
}

html body div.wrap h2::after,
html body .wrap h2::after,
html body h2.schools-carousel-title::after,
html body h2.testimonial_title::after,
html body h2.blog-title::after,
html body h2.content-title::after,
html body h2.results-title::after,
html body .section_latest_blog h2::after,
html body .section_testimonial h2::after,
html body .partner-schools-carousel h2::after,
html body .course-results-section h2::after,
html body div h2::after,
html body section h2::after,
html body article h2::after,
html body .content_middle h2::after,
html body #home_content h2::after {
    content: '' !important;
    display: block !important;
    width: var(--lse-heading-underline-width) !important;
    height: var(--lse-heading-underline-height) !important;
    background: var(--lse-primary-magenta) !important;
    margin: var(--lse-heading-underline-margin-top) auto 0 !important;
    border-radius: 2px !important;
}

.home-school-map__filters {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    background: #ffffff;
    border-radius: 18px;
    padding: 10px 18px;
    box-shadow: 0 18px 40px rgba(0, 0, 50, 0.08);
    border: 1px solid rgba(0, 0, 50, 0.08);
    min-width: 320px;
    align-self: flex-end;
    margin-top: clamp(48px, 8vw, 120px);
}

.home-school-map__filters label {
    font-weight: 600;
    color: #000032;
    font-size: 0.95rem;
    white-space: nowrap;
}

.home-school-map__filters select {
    appearance: none;
    border: 1px solid rgba(0, 0, 50, 0.12);
    border-radius: 14px;
    padding: 8px 36px 8px 14px;
    font-size: 0.95rem;
    font-weight: 600;
    color: #000032;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23000032' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center/12px 8px, #fff;
    min-width: 200px;
    margin-top: 0;
}

.home-school-map__viewport {
    position: relative;
    margin-top: 36px;
    min-height: 560px;
}

.home-school-map__canvas {
    width: 100%;
    min-height: 560px;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 45px 90px rgba(0, 0, 50, 0.18);
}

.home-school-map__overlay,
.lse-school-map-overlay {
    position: absolute;
    top: 40px;
    left: 40px;
    width: 420px;
    max-width: calc(100% - 80px);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 40px 80px rgba(0, 0, 50, 0.22);
    padding: 1.25rem 1.5rem;
    height: auto;
    max-height: 560px;
    overflow-y: auto;
    overflow-x: hidden;
    font-size: 0.95rem;
    line-height: 1.4;
    font-weight: 500;
    transform: translateX(-120%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.35s ease, opacity 0.35s ease;
    z-index: 40;
}

.home-school-map__overlay.is-active {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
}

.home-school-map__overlay-close {
    position: absolute;
    top: 10px;
    right: 10px;
    border: 1px solid rgba(0, 0, 50, 0.12);
    background: #ffffff;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    color: #000032;
    font-size: 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease;
    box-shadow: none;
    outline: none;
}

.home-school-map__overlay-close:hover,
.home-school-map__overlay-close:focus {
    background: rgba(0, 0, 50, 0.08);
    color: #000032;
}

.home-school-map__overlay-inner {
    margin-top: 16px;
    height: calc(100% - 16px);
    max-height: calc(100% - 16px);
    overflow-y: auto;
}

.home-school-map__overlay--fullscreen {
    position: fixed !important;
    top: 24px !important;
    left: 24px !important;
    right: 24px !important;
    bottom: 24px !important;
    width: auto !important;
    max-width: 420px !important;
    margin: 0 auto !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

.home-school-map__overlay--fullscreen .home-school-map__overlay-inner {
    max-height: calc(100vh - 190px) !important;
}

.home-school-map__overlay-empty {
    text-align: left;
}

.home-school-map__overlay-empty h3 {
    font-size: 1.4rem;
    margin-bottom: 10px;
    color: #000032;
}

.home-school-map__overlay-empty p {
    margin: 0;
    color: #525252;
    line-height: 1.6;
}

.home-school-map__overlay-list {
    list-style: none;
    margin: 24px 0 0 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.home-school-map__overlay-list li {
    margin: 0;
    padding: 0;
}

.home-school-map__overlay-list-button {
    width: calc(100% - 10px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 16px;
    border: 1px solid rgba(0, 0, 50, 0.12);
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(0, 0, 50, 0.08);
    font-size: 0.95rem;
    font-weight: 600;
    color: #000032;
    text-align: left;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    margin: 0 auto;
}

.home-school-map__overlay-list-button:hover,
.home-school-map__overlay-list-button:focus {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(0, 0, 50, 0.12), 0 0 0 2px rgba(230, 0, 126, 0.35);
    border-color: rgba(230, 0, 126, 0.65);
    outline: none;
}

.home-school-map__overlay-list-title {
    flex: 1;
    margin-right: 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.home-school-map__overlay-list-meta {
    font-size: 0.78rem;
    font-weight: 600;
    color: rgba(0, 0, 50, 0.65);
    background: rgba(106, 202, 243, 0.16);
    border-radius: 999px;
    padding: 4px 12px;
    white-space: nowrap;
}

.home-school-map__overlay-card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    background: #ffffff;
    border-radius: 24px;
    padding: 24px;
    border-top: 6px solid var(--ukse-city-accent, #edf8fc);
    box-shadow: 0 18px 40px rgba(0, 0, 50, 0.08);
}

.home-school-map__overlay-media {
    border-radius: 18px;
    overflow: hidden;
    background: #edf8fc;
}

.home-school-map__overlay-media img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.home-school-map__overlay-media--logo {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 50, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-school-map__overlay-content h3 {
    font-size: 1.6rem;
    margin: 0 0 12px 0;
    color: #000032;
}

.home-school-map__overlay-address {
    margin: 0 0 16px 0;
    font-weight: 600;
    color: #000032;
}

.home-school-map__overlay-city {
    margin: 0 0 16px 0;
}

.home-school-map__city-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: var(--ukse-city-accent, #edf8fc);
    color: #000032;
    margin-bottom: 8px;
}

.home-school-map__overlay-city p {
    margin: 0;
    color: #000032;
    font-size: 0.95rem;
}

.home-school-map__overlay-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.home-school-map__overlay-tags--secondary {
    margin-top: -4px;
}

.home-school-map__tag {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(106, 202, 243, 0.18);
    color: #000032;
    font-size: 0.82rem;
    font-weight: 600;
}

.home-school-map__tag--secondary {
    background: rgba(0, 0, 50, 0.08);
}

.home-school-map__overlay-description {
    color: #3a3a3a;
    line-height: 1.6;
}

.home-school-map__overlay-actions {
    margin-top: 20px;
}

.home-school-map .home-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: #000032 !important;
    color: #ffffff !important;
    padding: 10px 18px !important;
    border-radius: 999px !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

.home-school-map .home-button:hover,
.home-school-map .home-button:focus {
    background: #1b1b45 !important;
    color: #ffffff !important;
}

.home-school-map .gm-style .gm-style-iw-c {
    border-radius: 18px !important;
    box-shadow: 0 24px 48px rgba(0, 0, 50, 0.18) !important;
    padding: 18px 18px 12px 18px !important;
    border: 1px solid rgba(0, 0, 50, 0.08) !important;
}

.home-school-map .gm-style .gm-style-iw-d {
    color: #000032 !important;
    font-family: 'proxima-nova', 'Proxima Nova', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

.home-school-map .gm-ui-hover-effect {
    background: #ffffff !important;
    border-radius: 50% !important;
    border: 1px solid rgba(0, 0, 50, 0.12) !important;
    box-shadow: none !important;
    width: 26px !important;
    height: 26px !important;
    top: 8px !important;
    right: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    position: absolute !important;
    outline: none !important;
}

.home-school-map .gm-ui-hover-effect svg,
.home-school-map .gm-ui-hover-effect span,
.home-school-map .gm-ui-hover-effect img,
.home-school-map .gm-ui-hover-effect::after {
    display: none !important;
}

.home-school-map .gm-ui-hover-effect::before {
    content: '×';
    display: block;
    font-size: 16px;
    line-height: 1;
    font-weight: 600;
    color: #000032;
}

.home-school-map__tooltip {
    font-weight: 700;
    color: #000032;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-size: 0.85rem;
}

@media (max-width: 1024px) {
    .home-school-map__canvas {
        border-radius: 20px;
    }

    .home-school-map__overlay {
        left: 50%;
        top: auto;
        bottom: 32px;
        transform: translate(-50%, 140%);
        width: min(520px, calc(100% - 32px));
        padding: 24px;
        height: auto;
        max-height: calc(100vh - 160px);
        overflow: visible;
    }

    .home-school-map__overlay.is-active {
        transform: translate(-50%, 0);
    }

    .home-school-map__overlay-inner {
        height: auto;
        max-height: calc(100vh - 220px);
    }
}

@media (max-width: 768px) {
    .home-school-map {
        padding: 56px 0 0;
    }

    .home-school-map__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
    }

    .home-school-map__filters {
        border-radius: 16px;
        width: 100%;
        min-width: 0;
        margin-top: 24px;
        align-self: stretch;
    }

    .home-school-map__filters select {
        flex: 1;
        min-width: 0;
    }

    .home-school-map__canvas {
        min-height: 480px;
    }

    .home-school-map__overlay--fullscreen {
        left: 16px !important;
        right: 16px !important;
        top: 16px !important;
        max-width: none !important;
    }
}

@media (max-width: 540px) {
    .home-school-map__headline h2 {
        font-size: 2rem;
    }

    .home-school-map__filters {
        width: 100%;
        justify-content: space-between;
        margin-top: 20px;
    }

    .home-school-map__filters select {
        flex: 1;
    }

    .home-school-map__overlay {
        position: fixed;
        left: 16px;
        right: 16px;
        bottom: 16px;
        top: auto;
        width: auto;
        max-width: none;
        padding: 20px;
        height: auto;
        max-height: calc(100vh - 160px);
        transform: translateY(140%);
        border-radius: 20px;
        opacity: 0;
        pointer-events: none;
        transition: transform 0.3s ease, opacity 0.3s ease;
    }

    .home-school-map__overlay.is-active {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }

    .home-school-map__overlay-inner {
        display: block;
        max-height: calc(100vh - 220px);
        overflow-y: auto;
    }

.home-school-map__overlay-media img {
    height: 180px;
}
}

/* ==========================================================================
   FAQ Template
   ========================================================================== */

.faq-page .article-header {
    margin-bottom: 32px;
}

.faq-page__intro {
    margin-bottom: 32px;
    font-size: 1.05rem;
}

.faq-page__accordion {
    display: grid;
    gap: 16px;
}

.faq-item {
    border: 1px solid rgba(0, 0, 50, 0.08);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 12px 40px rgba(0, 0, 50, 0.06);
    padding: 0;
    overflow: hidden;
}

.faq-item__trigger {
    margin: 0;
    padding: 20px 24px;
    font-size: 1.05rem;
    font-weight: 600;
    position: relative;
    cursor: pointer;
}

.faq-item__trigger::after {
    content: '+';
    position: absolute;
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2rem;
    color: rgba(0, 0, 50, 0.4);
    transition: transform 0.2s ease;
}

.faq-item__trigger.active::after {
    transform: translateY(-50%) rotate(45deg);
}

.faq-item__content {
    display: none;
    padding: 0 24px 24px;
    font-size: 0.95rem;
    color: rgba(0, 0, 50, 0.75);
}

.faq-item__trigger.active + .faq-item__content {
    display: block;
}

/* ==========================================================================
   Forms Template
   ========================================================================== */

.forms-page__grid {
    display: grid;
    gap: 32px;
}

.forms-page__copy {
    background: #ffffff;
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 24px 60px rgba(0, 0, 50, 0.08);
}

.forms-page__form .forms-page__card {
    background: linear-gradient(135deg, rgba(230, 0, 126, 0.08), rgba(106, 202, 243, 0.08));
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 18px 36px rgba(0, 0, 50, 0.12);
}

.forms-page__form form {
    display: grid;
    gap: 18px;
}

.forms-page__testimonials {
    margin-top: 48px;
}

@media (min-width: 900px) {
    .forms-page__grid {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
        align-items: start;
    }
}

/* ==========================================================================
   Internal Template
   ========================================================================== */

.internal-page .rates-section {
    margin-top: 40px;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 20px 50px rgba(0, 0, 50, 0.08);
    padding: 32px;
}

.internal-page .rates-left-content {
    max-width: 640px;
}

.internal-page .rates-right-content {
    border-left: 1px solid rgba(0, 0, 50, 0.08);
    padding-left: 32px;
}

.internal-page__testimonials {
    margin-top: 48px;
}

@media (max-width: 900px) {
    .internal-page .rates-section {
        display: block;
    }

    .internal-page .rates-right-content {
        border-left: none;
        padding-left: 0;
        margin-top: 24px;
    }
}

/* ==========================================================================
   Blog single
   ========================================================================== */

.blog-single__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
}

.meta-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(0, 0, 50, 0.06);
    font-size: 0.85rem;
    color: rgba(0, 0, 50, 0.75);
}

.meta-chip:link,
.meta-chip:visited {
    color: rgba(0, 0, 50, 0.75);
}

.meta-chip:hover,
.meta-chip:focus-visible {
    background: rgba(230, 0, 126, 0.12);
}

.meta-chip svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

.blog-single__author {
    display: flex;
    gap: 16px;
    margin-top: 32px;
    align-items: center;
}

.blog-single__author-avatar img {
    border-radius: 50%;
    width: 64px;
    height: 64px;
    object-fit: cover;
    box-shadow: 0 16px 40px rgba(0, 0, 50, 0.18);
}

.blog-single__author-name {
    font-weight: 600;
    font-size: 1rem;
}

.blog-single__author-bio {
    margin: 6px 0 0;
    font-size: 0.9rem;
    color: rgba(0, 0, 50, 0.7);
}

.blog-single__media {
    margin: 32px 0;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 32px 90px rgba(0, 0, 50, 0.2);
}

.blog-single__hero img {
    width: 100%;
    height: auto;
    display: block;
}

.blog-single__share {
    display: inline-flex;
    gap: 16px;
    align-items: center;
    margin: 32px 0;
    padding: 16px 24px;
    border-radius: 999px;
    background: rgba(230, 0, 126, 0.08);
    font-size: 0.9rem;
}

.blog-single__share a {
    font-weight: 600;
    color: #000032;
}

.blog-single__tags {
    margin: 24px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.blog-single__tags a {
    background: rgba(0, 0, 50, 0.05);
    border-radius: 999px;
    padding: 6px 12px;
    color: rgba(0, 0, 50, 0.7);
    font-size: 0.85rem;
}

.blog-single__post-nav {
    margin: 40px 0;
    display: flex;
    justify-content: space-between;
    gap: 24px;
    font-weight: 600;
}

.blog-single__sidebar {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.blog-sidebar-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 24px;
    box-shadow: 0 18px 45px rgba(0, 0, 50, 0.1);
}

.blog-sidebar-card .search-form {
    display: flex;
    gap: 12px;
}

.blog-sidebar-card .search-field {
    flex: 1;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 50, 0.12);
    padding: 10px 18px;
    font-size: 0.95rem;
}

.blog-sidebar-card .search-submit {
    border-radius: 999px;
    background: #E6007E;
    color: #ffffff;
    padding: 10px 20px;
    font-weight: 600;
    border: none;
}

.blog-sidebar-card h2 {
    font-size: 1.05rem;
    margin-bottom: 16px;
}

.blog-sidebar-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.blog-sidebar-list__title {
    display: block;
    font-weight: 600;
}

.blog-sidebar-list__date {
    display: block;
    font-size: 0.8rem;
    color: rgba(0, 0, 50, 0.6);
}

.blog-sidebar-card--cta {
    text-align: center;
    background: linear-gradient(135deg, rgba(238, 114, 24, 0.08), rgba(0, 0, 50, 0.08));
}

.blog-sidebar-card--cta .home-button {
    margin-top: 12px;
}

.blog-single__testimonials {
    margin: 64px 0 0;
}

@media (max-width: 960px) {
    .blog-single__grid {
        display: block;
    }

    .blog-single__sidebar {
        margin-top: 40px;
    }
}

/* ==========================================================================
   Blog archive
   ========================================================================== */

.blog-archive__hero {
    background: linear-gradient(135deg, rgba(0, 0, 50, 0.92), rgba(106, 202, 243, 0.25));
    color: #ffffff;
    padding: 72px 0 56px;
    text-align: center;
}

.blog-archive__title {
    font-size: clamp(2rem, 4vw, 3rem);
    margin-bottom: 12px;
}

.blog-archive__intro {
    max-width: 640px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.84);
}

.blog-archive__layout {
    display: grid;
    gap: 40px;
    padding: 56px 0;
}

.blog-archive__grid {
    display: grid;
    gap: 32px;
}

.blog-card {
    display: grid;
    grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
    gap: 24px;
    background: #ffffff;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(0, 0, 50, 0.12);
}

.blog-card__media img,
.blog-card__placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.blog-card__placeholder {
    background: linear-gradient(135deg, rgba(230, 0, 126, 0.08), rgba(0, 0, 50, 0.08));
}

.blog-card__body {
    padding: 24px 32px;
    display: grid;
    gap: 12px;
}

.blog-card__meta {
    display: flex;
    gap: 16px;
    font-size: 0.85rem;
    color: rgba(0, 0, 50, 0.55);
}

.blog-card__title {
    margin: 0;
    font-size: 1.4rem;
}

.blog-card__title a {
    color: inherit;
}

.blog-card__excerpt {
    color: rgba(0, 0, 50, 0.7);
    margin: 0 0 8px;
}

.blog-card__link {
    font-weight: 600;
    color: #E6007E;
}

.blog-archive__sidebar {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.blog-archive__pagination {
    margin-top: 48px;
}

.blog-archive__pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    margin-right: 8px;
    background: rgba(0, 0, 50, 0.06);
    color: rgba(0, 0, 50, 0.7);
    font-weight: 600;
}

.blog-archive__pagination .page-numbers.current {
    background: #E6007E;
    color: #ffffff;
}

.blog-archive__empty {
    background: #ffffff;
    border-radius: 20px;
    padding: 48px;
    text-align: center;
    box-shadow: 0 24px 60px rgba(0, 0, 50, 0.08);
}

@media (max-width: 1024px) {
    .blog-card {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (min-width: 960px) {
    .blog-archive__layout {
        grid-template-columns: minmax(0, 3fr) minmax(0, 1.2fr);
        align-items: start;
    }
}

/* ==========================================================================
   Course single
   ========================================================================== */

.course-hero {
    background: linear-gradient(135deg, rgba(0, 0, 50, 0.95), rgba(230, 0, 126, 0.35));
    color: #ffffff;
    padding: 60px 0 48px;
}

.course-hero__inner {
    display: grid;
    gap: 32px;
    align-items: center;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
}


.course-hero__school {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95rem;
    color: #ffffff;
}

.course-hero__school span {
    text-transform: uppercase;
    font-size: 0.75rem;
    opacity: 0.8;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.75);
}

.course-hero__school-link {
    color: #ffffff;
    font-weight: 600;
}

.course-hero__school-link:hover,
.course-hero__school-link:focus-visible {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: underline;
}

.course-hero__title {
    font-size: clamp(2.2rem, 5vw, 3.2rem);
    margin: 0;
    color: #ffffff;
}

.course-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.course-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.22);
    color: #ffffff;
    font-size: 0.85rem;
    letter-spacing: 0.02em;
}

.course-chip--muted {
    background: rgba(255, 255, 255, 0.12);
}

.course-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.course-hero__content {
    display: grid;
    gap: 20px;
}

.course-hero__visual {
    justify-self: end;
    max-width: 320px;
    max-height: 280px;
    display: flex;
    align-items: center;
}

.course-hero__visual img {
    width: auto;
    height: 100%;
    max-height: 100%;
    display: block;
    filter: drop-shadow(0 24px 60px rgba(0, 0, 50, 0.35));
}
.course-hero__secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: 999px;
    font-weight: 600;
    color: #ffffff;
    border: 2px solid rgba(255, 255, 255, 0.4);
}

.course-hero__secondary:hover,
.course-hero__secondary:focus-visible {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.7);
}

.course-single__body {
    display: grid;
    gap: 40px;
    padding: 56px 0;
}

.course-highlights {
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 24px 60px rgba(0, 0, 50, 0.08);
    padding: 32px;
}

.course-highlights__grid {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.course-highlights__label {
    display: block;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    color: rgba(0, 0, 50, 0.55);
    margin-bottom: 6px;
}

.course-highlights__value {
    font-weight: 600;
    font-size: 1.1rem;
    color: #000032;
}

.course-section {
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 24px 60px rgba(0, 0, 50, 0.08);
    padding: 40px;
}

.course-section__title {
    font-size: 1.6rem;
    margin-bottom: 20px;
}

.course-section__content {
    margin-bottom: 24px;
}

.course-section__lead {
    max-width: 520px;
    color: rgba(0, 0, 50, 0.75);
}

.course-section__notice {
    background: rgba(230, 0, 126, 0.08);
    border-radius: 16px;
    padding: 24px;
    display: grid;
    gap: 16px;
}

.course-levels {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.course-levels__item {
    display: flex;
    flex-direction: column;
    padding: 16px 20px;
    border-radius: 16px;
    background: rgba(0, 0, 50, 0.03);
}

.course-levels__label {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: rgba(0, 0, 50, 0.6);
}

.course-levels__value {
    font-weight: 600;
}

.course-pricing__table {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 50, 0.08);
}

.course-pricing__row {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    padding: 18px 24px;
    background: #ffffff;
    border-bottom: 1px solid rgba(0, 0, 50, 0.06);
    font-size: 0.95rem;
}

.course-pricing__row--header {
    background: rgba(0, 0, 50, 0.05);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
}

.course-pricing__align-right {
    text-align: right;
}

.course-schedule__details {
    display: grid;
    gap: 16px;
    margin-top: 24px;
}

.course-schedule__item {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid rgba(0, 0, 50, 0.08);
    padding-bottom: 12px;
}

.course-schedule__label {
    font-weight: 600;
    color: rgba(0, 0, 50, 0.7);
}

.course-dates {
    display: grid;
    gap: 16px;
}

.course-dates__item {
    padding: 20px 24px;
    border: 1px solid rgba(0, 0, 50, 0.08);
    border-radius: 16px;
    display: grid;
    gap: 8px;
    background: rgba(0, 0, 50, 0.02);
}

.course-dates__date {
    font-weight: 600;
}

.course-dates__spaces {
    font-size: 0.9rem;
    color: rgba(0, 0, 50, 0.6);
}

.course-dates__spaces.is-full {
    color: #E6007E;
    font-weight: 600;
}

.course-cta-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 20px;
}

.course-materials {
    list-style: disc inside;
    color: rgba(0, 0, 50, 0.75);
    display: grid;
    gap: 8px;
}

.course-related__grid {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.course-related__card {
    border: 1px solid rgba(0, 0, 50, 0.08);
    border-radius: 18px;
    padding: 24px;
    box-shadow: 0 18px 40px rgba(0, 0, 50, 0.08);
    background: #ffffff;
}

.course-related__chip {
    display: inline-block;
    margin: 8px 0 12px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(230, 0, 126, 0.1);
    color: #E6007E;
    font-size: 0.8rem;
}

.course-related__meta {
    display: flex;
    gap: 12px;
    color: rgba(0, 0, 50, 0.6);
    font-size: 0.9rem;
    margin-bottom: 12px;
}

.course-testimonials {
    margin: -16px 0 80px;
}

@media (max-width: 960px) {
    .course-hero {
        padding: 64px 0 48px;
    }

    .course-hero__inner {
        grid-template-columns: minmax(0, 1fr);
        text-align: left;
    }

    .course-hero__visual {
        justify-self: center;
        max-width: 220px;
        max-height: 220px;
    }

    .course-hero__visual img {
        width: auto;
        height: 100%;
        max-height: 100%;
    }

    .course-section {
        padding: 28px;
    }

    .course-pricing__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-flow: dense;
    }

    .course-pricing__row span:nth-child(odd) {
        font-weight: 600;
    }
}

/* ==========================================================================
   Course archive
   ========================================================================== */

.course-archive__hero {
    background: linear-gradient(135deg, rgba(0, 0, 50, 0.92), rgba(106, 202, 243, 0.3));
    color: #ffffff;
    text-align: center;
    padding: 72px 0 56px;
}

.course-archive__title {
    font-size: clamp(2.2rem, 5vw, 3.1rem);
    margin-bottom: 12px;
}

.course-archive__intro {
    max-width: 620px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.85);
}

.course-archive__layout {
    display: grid;
    gap: 40px;
    padding: 56px 0;
}

.course-archive__grid {
    display: grid;
    gap: 28px;
}

.course-card {
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 24px 60px rgba(0, 0, 50, 0.08);
    padding: 28px 32px;
    display: grid;
    gap: 18px;
}

.course-card__title {
    margin: 0;
    font-size: 1.5rem;
}

.course-card__school {
    font-size: 0.95rem;
    color: rgba(0, 0, 50, 0.65);
    margin: -12px 0 4px;
}

.course-card__excerpt {
    color: rgba(0, 0, 50, 0.72);
}

.course-card__facts {
    display: grid;
    gap: 10px;
    margin: 0;
}

.course-card__facts dt {
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(0, 0, 50, 0.55);
}

.course-card__facts dd {
    margin: 0;
    font-weight: 600;
}

.course-archive__pagination {
    margin-top: 40px;
}

.course-archive__pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-right: 6px;
    border-radius: 50%;
    background: rgba(0, 0, 50, 0.06);
    font-weight: 600;
}

.course-archive__pagination .page-numbers.current {
    background: #E6007E;
    color: #ffffff;
}

.course-archive__sidebar {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.course-sidebar-card {
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 18px 45px rgba(0, 0, 50, 0.1);
    padding: 24px;
}

.course-sidebar-card--cta {
    background: linear-gradient(135deg, rgba(238, 114, 24, 0.1), rgba(0, 0, 50, 0.08));
    text-align: center;
}

.course-sidebar-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.course-archive__empty {
    background: #ffffff;
    padding: 48px;
    text-align: center;
    border-radius: 24px;
    box-shadow: 0 24px 60px rgba(0, 0, 50, 0.08);
}

@media (min-width: 960px) {
    .course-archive__layout {
        grid-template-columns: minmax(0, 3fr) minmax(0, 1.1fr);
        align-items: start;
    }
}

/* ==========================================================================
   Course results cards
   ========================================================================== */

.course-results-container,
.results-grid,
.search-results,
.course-listings {
    background: #ffffff;
    padding: 40px 20px;
    margin: 20px 0;
    border-radius: 12px;
}

.course-results-section.is-hidden {
    display: none;
}

.course-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 24px;
    margin: 30px 0;
}

.course-result-card,
.course-item,
.course-listing-item {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 16px rgba(0, 0, 50, 0.08);
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 50, 0.05);
    height: auto;
    display: flex;
    flex-direction: column;
}

.course-result-card:hover,
.course-item:hover,
.course-listing-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(238, 114, 24, 0.12);
    border-color: rgba(238, 114, 24, 0.2);
}

.course-result-image {
    position: relative;
    height: 200px;
    overflow: hidden;
    background: #ffffff;
}

.course-result-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.course-result-card:hover .course-result-image img {
    transform: scale(1.03);
}

.course-result-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    background: linear-gradient(135deg, #E6007E 0%, #EE7218 100%);
    color: #ffffff;
    padding: 6px 12px;
    border-radius: 16px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(230, 0, 126, 0.3);
    z-index: 2;
}

.course-result-badge.featured {
    background: linear-gradient(135deg, #000032 0%, #333366 100%);
}

.course-result-badge.special {
    background: linear-gradient(135deg, #6ACAF3 0%, #4fb3d9 100%);
    animation: pulse 2s infinite;
}

.course-result-content {
    padding: 25px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.course-school-name {
    font-size: 1.4rem;
    font-weight: 700;
    color: #000032;
    margin: 0 0 8px 0;
    line-height: 1.3;
}

.course-location {
    color: #666666;
    font-size: 14px;
    margin: 0 0 12px 0;
    display: flex;
    align-items: center;
}

.course-location::before {
    content: "📍";
    margin-right: 6px;
}

.course-type-tag {
    background: rgba(106, 202, 243, 0.1);
    color: #6ACAF3;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    display: inline-block;
    margin-bottom: 15px;
    border: 1px solid #6ACAF3;
}

.course-description {
    color: #666666;
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 20px 0;
    flex: 1;
}

.course-price-section {
    background: rgba(230, 0, 126, 0.05);
    border-radius: 8px;
    padding: 15px;
    margin: 15px 0 20px 0;
    border: 1px solid rgba(230, 0, 126, 0.1);
}

.course-price {
    font-size: 1.8rem;
    font-weight: 700;
    color: #E6007E;
    margin: 0;
    display: block;
}

.course-duration {
    font-size: 14px;
    color: #666666;
    margin: 5px 0 0 0;
}

.course-features-list {
    list-style: none;
    padding: 0;
    margin: 15px 0;
}

.course-features-list li {
    padding: 4px 0;
    font-size: 14px;
    color: #000032;
    position: relative;
    padding-left: 20px;
}

.course-features-list li::before {
    content: "✓";
    color: #EE7218;
    font-weight: 700;
    position: absolute;
    left: 0;
    top: 4px;
}

.course-result-actions {
    display: flex;
    gap: 12px;
    margin-top: auto;
}

.course-btn-primary {
    flex: 1;
    background: linear-gradient(135deg, #E6007E 0%, #ff1a94 100%);
    color: #ffffff;
    text-decoration: none;
    padding: 14px 20px;
    border-radius: 8px;
    text-align: center;
    font-weight: 600;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(230, 0, 126, 0.25);
    border: none;
    cursor: pointer;
}

.course-btn-primary:hover {
    background: linear-gradient(135deg, #EE7218 0%, #ff8534 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(238, 114, 24, 0.3);
    color: #ffffff;
}

.course-btn-secondary {
    background: transparent;
    color: #EE7218;
    border: 2px solid #EE7218;
    padding: 12px 16px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    transition: all 0.3s ease;
    text-align: center;
    min-width: 100px;
}

.course-btn-secondary:hover {
    background: #EE7218;
    color: #ffffff;
    transform: translateY(-1px);
}

.course-results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    padding: 20px 0;
    border-bottom: 2px solid rgba(238, 114, 24, 0.1);
}

.results-count {
    font-size: 1.2rem;
    font-weight: 600;
    color: #000032;
}

.view-toggles {
    display: flex;
    gap: 10px;
}

.view-toggle-btn {
    padding: 8px 16px;
    border: 2px solid #EE7218;
    background: transparent;
    color: #EE7218;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.3s ease;
}

.view-toggle-btn.active,
.view-toggle-btn:hover {
    background: #EE7218;
    color: #ffffff;
}

.course-results-grid.list-view {
    grid-template-columns: 1fr;
}

.course-results-grid.list-view .course-result-card {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    height: 250px;
}

.course-results-grid.list-view .course-result-image {
    width: 300px;
    flex-shrink: 0;
    height: auto;
}

.course-results-grid.list-view .course-result-content {
    padding: 25px 30px;
}

@media (max-width: 768px) {
    .course-results-container {
        padding: 20px 15px;
        margin: 15px 0;
    }

    .course-results-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .course-result-card {
        margin: 0;
    }

    .course-result-content {
        padding: 20px;
    }

    .course-school-name {
        font-size: 1.2rem;
    }

    .course-price {
        font-size: 1.5rem;
    }

    .course-result-actions {
        flex-direction: column;
    }

    .course-btn-primary,
    .course-btn-secondary {
        min-height: 44px;
        font-size: 16px;
    }

    .course-results-header {
        flex-direction: column;
        gap: 15px;
        align-items: stretch;
    }

    .view-toggles {
        justify-content: center;
    }

    .course-results-grid.list-view {
        grid-template-columns: 1fr;
    }

    .course-results-grid.list-view .course-result-card {
        flex-direction: column;
        height: auto;
    }

    .course-results-grid.list-view .course-result-image {
        width: 100%;
        height: 200px;
    }
}

/* ==========================================================================
   Home shared components
   ========================================================================== */

.home-button,
.home-button:link,
.home-button:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: linear-gradient(135deg, #EE7218 0%, #E6007E 100%);
    color: #ffffff !important;
    padding: 12px 28px;
    border-radius: 999px;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 10px 24px rgba(238, 114, 24, 0.25);
}

.home-button:hover,
.home-button:focus,
.home-button:hover:visited,
.home-button:focus:visited {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(230, 0, 126, 0.25);
    color: #ffffff !important;
}

.home-button--outline,
.home-button--outline:link,
.home-button--outline:visited {
    background: transparent;
    color: #000032 !important;
    border: 2px solid #EE7218;
    box-shadow: none;
}

.home-button--outline:hover,
.home-button--outline:focus,
.home-button--outline:hover:visited,
.home-button--outline:focus:visited {
    color: #EE7218;
    box-shadow: none;
}

.home-about {
    background: #ffffff;
    padding: 72px 0;
}

.home-about__wrap {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 48px;
    align-items: center;
}

.home-about__content {
    grid-column: span 6;
}

.home-about__body p {
    margin-bottom: 16px;
    font-size: 1.05rem;
    line-height: 1.65;
    color: #2d2d2d;
}

.home-about__media {
    grid-column: span 6;
    display: flex;
    justify-content: center;
}

.home-about__media img {
    border-radius: 20px;
    max-width: 100%;
    box-shadow: 0 24px 48px rgba(0, 0, 50, 0.18);
}

.home-about__placeholder {
    min-height: 320px;
    width: 100%;
    border-radius: 20px;
    background: radial-gradient(circle at top right, rgba(106, 202, 243, 0.5), rgba(238, 114, 24, 0.6));
    color: #ffffff;
    font-weight: 600;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    box-shadow: 0 24px 48px rgba(0, 0, 50, 0.18);
}

@media (max-width: 1024px) {
    .home-about__wrap {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .home-about__content,
    .home-about__media {
        grid-column: span 1;
    }

    .home-about__media {
        order: -1;
        margin-bottom: 24px;
    }
}

.home-guides {
    padding: 32px 0;
}

.home-guides__intro {
    max-width: 680px;
    margin: 0 auto 40px;
    text-align: center;
}

.home-guides__grid {
    display: grid;
    gap: 28px;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.home-guides__card {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 18px 36px rgba(0, 0, 50, 0.12);
    display: flex;
    flex-direction: column;
    border-top: 6px solid var(--guide-accent);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.home-guides__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 46px rgba(0, 0, 50, 0.16);
}

.home-guides__media {
    position: relative;
    height: 180px;
    background: rgba(106, 202, 243, 0.15);
}

.home-guides__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-guides__swatch {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--guide-accent), rgba(255, 255, 255, 0.15));
}

.home-guides__content {
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.home-guides__content h3 {
    margin: 0;
    font-size: 1.3rem;
    color: #000032;
}

.home-guides__content p {
    margin: 0;
    color: #3a3a3a;
    line-height: 1.6;
}

.home-guides__link {
    align-self: flex-start;
    margin-top: auto;
    font-weight: 600;
    color: var(--guide-accent);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.home-guides__link::after {
    content: '\2192';
    transition: transform 0.2s ease;
}

.home-guides__link:hover::after {
    transform: translateX(3px);
}

.home-faq {
    padding: 0;
}

.home-faq__intro {
    max-width: 680px;
    margin: 0 auto 32px;
    text-align: center;
}

.home-faq__items {
    display: grid;
    gap: 16px;
}

.home-faq__item {
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(255, 248, 242, 0.7), rgba(237, 248, 252, 0.7));
    padding: 0 24px;
    box-shadow: 0 12px 32px rgba(0, 0, 50, 0.1);
}

.home-faq__item summary {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    font-weight: 600;
    font-size: 1.1rem;
    color: #000032;
    padding: 20px 0;
    list-style: none;
}

.home-faq__item summary:focus {
    outline: none;
    box-shadow: none;
}

.home-faq__item summary::-webkit-details-marker {
    display: none;
}

.home-faq__item summary::after {
    content: '\203A';
    font-size: 1.5rem;
    color: #EE7218;
    transition: transform 0.2s ease;
}

.home-faq__item[open] summary::after {
    transform: rotate(90deg);
}

.home-faq__answer {
    padding: 0 0 20px 0;
    color: #2d2d2d;
}

.home-faq__answer p {
    margin-bottom: 12px;
    line-height: 1.65;
}

.home-faq__answer ul {
    padding-left: 20px;
    margin: 12px 0;
}

.home-faq__cta {
    margin-top: 32px;
    text-align: center;
}

@media (max-width: 640px) {
    .home-about {
        padding: 48px 0;
    }

    .home-guides {
        padding: 24px 0;
    }

    .home-guides__content {
        padding: 24px;
    }

    .home-faq__item {
        padding: 0 18px;
    }

    .home-faq__item summary {
        font-size: 1rem;
    }
}

/* ==========================================================================
   Flexible map full-width helper
   ========================================================================== */

.flxmap-container,
.flxmap-wrapper,
div[id^="flxmap-"] {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    position: relative;
    left: 0;
    right: 0;
    overflow: hidden;
    box-sizing: border-box;
}

.flxmap-container iframe,
.flxmap-container .map-content,
div[id^="flxmap-"] iframe,
div[id^="flxmap-"] .map-content {
    width: 100%;
    height: auto;
    min-height: 400px;
}

.flxmap-full-width {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

@media (max-width: 768px) {
    .flxmap-container,
    div[id^="flxmap-"] {
        margin-left: calc(-50vw + 50%);
        margin-right: calc(-50vw + 50%);
    }

    .flxmap-container iframe,
    div[id^="flxmap-"] iframe {
        min-height: 300px;
    }
}

/* ==========================================================================
   Home tuition & partner sections
   ========================================================================== */

.home-tuition,
.home-partner {
    padding: 36px 0;
}

.home-tuition__wrap,
.home-partner__wrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 48px;
    align-items: center;
}

.home-tuition__content,
.home-partner__content {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.home-tuition__body p,
.home-partner__body p {
    font-size: 1rem;
    line-height: 1.65;
    color: #333333;
}

.home-tuition__media,
.home-partner__media {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    min-height: 320px;
    box-shadow: 0 24px 48px rgba(0, 0, 50, 0.14);
}

.home-tuition__media img,
.home-partner__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-tuition__placeholder,
.home-partner__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    background: rgba(255, 255, 255, 0.75);
    color: #000032;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-partner__body {
    max-width: 540px;
}

@media (max-width: 1024px) {
    .home-tuition,
    .home-partner {
        padding: 60px 0;
    }

    .home-tuition__wrap,
    .home-partner__wrap {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap: 32px;
    }

    .home-tuition__media,
    .home-partner__media {
        min-height: 240px;
        order: -1;
    }
}

@media (max-width: 640px) {
    .home-tuition,
    .home-partner {
        padding: 44px 0;
    }

    .home-tuition__body p,
    .home-partner__body p {
        font-size: 0.95rem;
    }

    .home-tuition__media,
    .home-partner__media {
        min-height: 200px;
    }
}

/* ==========================================================================
   Brand Utility Components
   ========================================================================== */

.btn-secondary,
.button-secondary,
.learn-more-btn,
.info-btn,
.outline-btn {
    background-color: var(--lse-secondary-orange) !important;
    border-color: var(--lse-secondary-orange) !important;
    color: var(--lse-white) !important;
    font-weight: 500;
    padding: 10px 20px;
    border-radius: 6px;
    transition: all 0.3s ease;
}

.btn-secondary:hover,
.button-secondary:hover,
.learn-more-btn:hover,
.info-btn:hover,
.outline-btn:hover {
    background-color: var(--lse-tertiary-blue) !important;
    border-color: var(--lse-tertiary-blue) !important;
    transform: translateY(-1px);
}

.info-section,
.course-info,
.school-details,
.feature-box,
.highlight-box,
.info-card {
    background-color: rgba(106, 202, 243, 0.1);
    border-left: 4px solid var(--lse-tertiary-blue);
    padding: 20px;
    margin: 15px 0;
}

.info-section h3,
.course-info h3,
.school-details h3,
.feature-box h3 {
    color: var(--lse-structure-navy);
    border-bottom: 2px solid var(--lse-tertiary-blue);
    padding-bottom: 8px;
}



.course_module,
.language-course {
    border: 1px solid #e1e1e1;
    border-radius: 8px;
    background: var(--lse-white);
    transition: all 0.3s ease;
}

.course_module:hover,
.language-course:hover {
    border-color: var(--lse-tertiary-blue);
    box-shadow: 0 4px 16px rgba(106, 202, 243, 0.15);
    transform: translateY(-2px);
}

.lse-card,
.card,
.partner-school-item,
.testimonial-card,
.intro-section,
.section-container,
.content-block,
.widget,
.sidebar-widget,
.course-finder-container,
.course-results-item,
.school-item {
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 50, 0.08);
    border: 1px solid rgba(0, 0, 50, 0.05);
    padding: 24px;
    margin-bottom: 24px;
    transition: all 0.3s ease;
}

.lse-card:hover,
.card:hover,
.partner-school-item:hover,
.testimonial-card:hover,
.intro-section:hover,
.section-container:hover,
.content-block:hover,
.widget:hover,
.sidebar-widget:hover,
.course-results-item:hover,
.school-item:hover {
    box-shadow: 0 4px 16px rgba(238, 114, 24, 0.15);
    transform: translateY(-2px);
    border-color: rgba(238, 114, 24, 0.2);
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea,
.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form textarea,
.contact-form input,
.contact-form textarea {
    border: 2px solid var(--lse-light-gray);
    border-radius: 6px;
    padding: 12px;
    transition: border-color 0.3s ease;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpforms-form input:focus,
.wpforms-form textarea:focus,
.contact-form input:focus,
.contact-form textarea:focus {
    border-color: var(--lse-tertiary-blue) !important;
    box-shadow: 0 0 0 3px rgba(106, 202, 243, 0.2);
    outline: none;
}

.course-finder-filters,
.filter-row,
.search-form,
.filter-group {
    background: #ffffff;
    border-radius: 8px;
    padding: 20px;
    border: 1px solid rgba(0, 0, 50, 0.05);
    box-shadow: 0 2px 8px rgba(0, 0, 50, 0.08);
}

input[type="text"],
input[type="email"],
input[type="search"],
select,
textarea {
    background: #ffffff;
    border: 2px solid #e9ecef;
    border-radius: 6px;
    padding: 12px 16px;
    font-size: 16px;
    transition: all 0.3s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 50, 0.05);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="search"]:focus,
select:focus,
textarea:focus {
    border-color: var(--lse-secondary-orange);
    box-shadow: 0 0 0 3px rgba(238, 114, 24, 0.1);
    outline: none;
}

.cta-section,
.call-to-action {
    background: linear-gradient(135deg, #EE7218, #6ACAF3);
    color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 16px rgba(238, 114, 24, 0.2);
    padding: 48px;
    margin: 40px 0;
    text-align: center;
}

.cta-section h2,
.call-to-action h2,
.cta-section h3,
.call-to-action h3 {
    color: #ffffff;
    margin-bottom: 16px;
}

.course-grid,
.school-grid,
.content-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 24px;
    padding: 0;
    margin: 24px 0;
}

/* ==========================================================================
   Global Content Utilities (migrated from child style.css)
   ========================================================================== */

img {
    max-width: 100%;
    height: auto;
}

.course-table,
.pricing-table {
    border-collapse: collapse;
    width: 100%;
    margin: 20px 0;
}

.course-table th,
.pricing-table th {
    background-color: var(--lse-structure-navy);
    color: var(--lse-white);
    padding: 12px;
    text-align: left;
}

.course-table td,
.pricing-table td {
    padding: 12px;
    border-bottom: 1px solid var(--lse-light-gray);
}

.course-table tr:hover,
.pricing-table tr:hover {
    background-color: rgba(106, 202, 243, 0.05);
}

.search-form input[type="search"] {
    border: 2px solid var(--lse-light-gray);
    border-radius: 6px 0 0 6px;
    padding: 12px;
}

.search-form button[type="submit"] {
    background-color: var(--lse-primary-magenta);
    border: 2px solid var(--lse-primary-magenta);
    color: var(--lse-white);
    border-radius: 0 6px 6px 0;
    padding: 12px 20px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

#wpadminbar {
    z-index: 999999;
}

body {
    font-family: 'proxima-nova', 'Proxima Nova', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: var(--lse-structure-navy);
    line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--lse-structure-navy);
    font-weight: 600;
    line-height: 1.3;
}

h1 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}

h2 {
    font-size: 2rem;
    margin-bottom: 0.8rem;
    border-bottom: none !important;
    padding-bottom: 0;
    display: block;
}

.h2-underline,
h2,
.schools-carousel-title,
.testimonial_title,
.blog-title,
.content-title,
.results-title,
.home-section-title {
    font-family: 'proxima-nova', 'Proxima Nova', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 2.5rem !important;
    font-weight: 700 !important;
    color: #000032 !important;
    text-align: center !important;
    margin: 40px 0 30px !important;
    padding: 0 !important;
    position: relative !important;
    display: block !important;
    line-height: 1.3 !important;
    text-transform: none !important;
    letter-spacing: 0.5px !important;
    background: none !important;
    border: none !important;
}

.h2-underline::after,
h2::after,
.schools-carousel-title::after,
.testimonial_title::after,
.blog-title::after,
.content-title::after,
.results-title::after,
.home-section-title::after {
    content: '' !important;
    display: block !important;
    width: 300px !important;
    height: 4px !important;
    background: #E6007E !important;
    margin: 15px auto 0 !important;
    border-radius: 2px !important;
}

@media (max-width: 768px) {
    .h2-underline,
    h2,
    .schools-carousel-title,
    .testimonial_title,
    .blog-title,
    .content-title,
    .home-section-title {
        font-size: 2rem !important;
        margin: 32px 0 28px !important;
    }

    .h2-underline::after,
    h2::after,
    .schools-carousel-title::after,
    .testimonial_title::after,
    .blog-title::after,
    .content-title::after,
    .home-section-title::after {
        width: 200px !important;
        height: 3px !important;
        margin: 12px auto 0 !important;
    }
}

h3 {
    font-size: 1.5rem;
    color: var(--lse-secondary-orange);
    margin-bottom: 0.6rem;
}

a,
a:link,
a:visited {
    color: var(--lse-secondary-orange) !important;
    text-decoration: none !important;
    transition: color 0.3s ease;
}

a:hover,
a:focus,
a:active {
    color: var(--lse-structure-navy) !important;
}

.lse-clean-override {
    background: #ffffff !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 50, 0.08) !important;
    border: 1px solid rgba(0, 0, 50, 0.05) !important;
    padding: 24px !important;
}

.menu,
.menu ul,
.menu li,
.nav,
.nav ul,
.nav li,
.navigation ul,
.menu-item ul,
.nav-menu ul,
.widget_nav_menu ul,
#nav_menu-2 ul,
.menu-sitemap,
.menu-sitemap ul,
.menu-sitemap li,
.footer-menu ul,
.footer-menu li,
.header-menu ul,
.header-menu li,
.footer-mega-menu ul,
.footer-mega-menu li,
.service-links,
.service-links li,
.site_navigation ul,
.site_navigation ul li ul,
ul.menu,
ul.nav-menu,
ul.sub-menu {
    list-style: none !important;
    list-style-type: none !important;
    list-style-image: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.menu li,
.nav li,
.navigation li,
.menu-item li,
.nav-menu li,
.widget_nav_menu li,
#nav_menu-2 li,
.footer-menu li,
.header-menu li,
.footer-mega-menu li,
.service-links li,
.site_navigation ul li {
    list-style: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    text-indent: 0 !important;
}

.menu li::before,
.navigation li::before,
.menu-sitemap li::before,
.footer-menu li::before,
.header-menu li::before,
.footer-mega-menu li::before,
.service-links li::before,
.site_navigation ul li::before {
    content: none !important;
    display: none !important;
}

/* ==========================================================================
   Section wrappers & shared backgrounds
   ========================================================================== */

.section_option,
.content-section,
.page-section,
.homepage-section,
.map-section,
.schools-map {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 50, 0.06);
    border: 1px solid rgba(0, 0, 50, 0.05);
    padding: 40px;
    margin: 32px 0;
}

.partner-schools-section,
.schools-carousel-container {
    background: #eeeeee;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 50, 0.06);
    border: 1px solid rgba(0, 0, 50, 0.05);
    padding: 40px;
    margin: 32px 0;
}

.map-section h2,
.schools-map h2 {
    color: #000032;
    font-size: 2rem;
}

@media (max-width: 768px) {
    .section_option,
    .content-section,
    .page-section,
    .homepage-section,
    .map-section,
    .schools-map,
    .partner-schools-section,
    .schools-carousel-container {
        padding: 24px;
        margin: 20px 0;
        border-radius: 10px;
    }

    .map-section h2,
    .schools-map h2 {
        font-size: 1.8rem;
    }
}

/* ==========================================================================
   Footer base palette & language switcher
   ========================================================================== */

.site-footer,
footer {
    background: var(--lse-structure-navy, #000032);
    color: var(--lse-white, #ffffff);
    padding: 40px 0 20px;
}

.site-footer a,
footer a {
    color: var(--lse-tertiary-blue, #6ACAF3);
    transition: color 0.3s ease;
}

.site-footer a:hover,
footer a:hover {
    color: var(--lse-secondary-orange, #EE7218);
}

.footer-section h4,
.footer-widget h4 {
    color: var(--lse-white, #ffffff);
    border-bottom: 2px solid var(--lse-primary-magenta, #E6007E);
    padding-bottom: 8px;
    margin-bottom: 15px;
}

.lse-enhanced-footer {
    background: var(--lse-structure-navy, #000032) !important;
    color: var(--lse-white, #ffffff) !important;
    background-image: none !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.lse-enhanced-footer .footer-mega-menu,
.footer-mega-menu.footer-mega-menu,
.footer-mega-menu {
    background: linear-gradient(180deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 50, 1) 100%) !important;
    margin-top: 0 !important;
    padding: 60px 0 40px 0 !important;
    border-bottom: 2px solid rgba(238, 114, 24, 0.2) !important;
}

footer .footer-mega-menu,
.lse-enhanced-footer .footer-mega-menu,
body footer .footer-mega-menu {
    background: linear-gradient(180deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 50, 1) 100%) !important;
    background-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 50, 1) 100%) !important;
}

.footer-mega-menu[style] {
    background: linear-gradient(180deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 50, 1) 100%) !important;
    background-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 50, 1) 100%) !important;
}

.footer-mega-menu .wrap,
.footer-mega-menu .grid,
.footer-mega-menu .grid__item {
    background-color: transparent !important;
}

.footer-mega-menu .footer-service-section {
    background: rgba(255, 255, 255, 0.02) !important;
    background-color: rgba(255, 255, 255, 0.02) !important;
}

.footer-mega-menu *:not(.footer-btn):not(.service-links a):not(.filter-tag):not(.btn-primary):not(.btn-secondary) {
    background: transparent !important;
    background-color: transparent !important;
}

.footer-service-row {
    width: 100% !important;
    margin-bottom: 40px !important;
    padding: 0 !important;
}

.footer-service-row:last-child {
    margin-bottom: 0 !important;
}

.footer-service-section {
    padding: 30px 20px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    transition: all 0.3s ease !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    background: rgba(255, 255, 255, 0.02) !important;
}

.footer-service-section:hover {
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(238, 114, 24, 0.3) !important;
    transform: translateY(-5px) !important;
}

.menu-sitemap,
.menu-sitemap ul,
.menu-sitemap li,
.footer-mega-menu ul,
.footer-mega-menu li,
.service-links,
.service-links li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.footer-mega-menu ul li::before,
.service-links li::before,
.menu-sitemap li::before {
    content: none !important;
    display: none !important;
}

.service-panel-title {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    margin: 0 0 15px 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

.service-panel-content {
    color: #cccccc !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
}

.service-panel-content p {
    margin: 0 0 20px 0 !important;
    color: #cccccc !important;
}

.service-panel-cta,
.footer-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 12px 20px !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-align: center !important;
    transition: all 0.3s ease !important;
    border: 2px solid !important;
    color: #ffffff !important;
    background-color: #EE7218 !important;
    border-color: #EE7218 !important;
}

.service-panel-cta:hover,
.footer-btn:hover {
    background: transparent !important;
    color: #EE7218 !important;
    transform: translateY(-2px) !important;
}

.footer-btn {
    width: 100% !important;
    display: flex !important;
}


.footer-service-panel.london-homestays,
.footer-service-panel.london-homestays.widget_text {
    border-left: 4px solid #2294D2 !important;
    padding-left: 20px !important;
}

.footer-service-panel.london-homestays .service-panel-content,
.footer-service-panel.london-homestays .textwidget {
    border-left: none !important;
    padding-left: 0 !important;
}

.footer-service-panel.london-homestays .service-panel-cta:hover {
    background: transparent !important;
    color: #2294D2 !important;
}

.footer-service-panel.london-homestays .service-panel-title {
    color: #2294D2 !important;
}

.footer-service-panel.london-homestays .service-panel-cta {
    background-color: #2294D2 !important;
    border-color: #2294D2 !important;
}

.footer-service-panel.london-homestays .service-panel-cta:hover {
    background: transparent !important;
    color: #2294D2 !important;
}

.footer-service-panel.uk-residences,
.footer-service-panel.uk-residences.widget_text {
    border-left: 4px solid #B1CB0C !important;
    padding-left: 20px !important;
}

.footer-service-panel.uk-residences .service-panel-content,
.footer-service-panel.uk-residences .textwidget {
    border-left: none !important;
    padding-left: 0 !important;
}

.footer-service-panel.uk-residences .service-panel-cta:hover {
    background: transparent !important;
    color: #B1CB0C !important;
}

.footer-service-panel.uk-residences .service-panel-title {
    color: #B1CB0C !important;
}

.footer-service-panel.uk-residences .service-panel-cta {
    background-color: #B1CB0C !important;
    border-color: #B1CB0C !important;
}

.footer-service-panel.uk-residences .service-panel-cta:hover {
    background: transparent !important;
    color: #B1CB0C !important;
}

.footer-service-panel.study-english,
.footer-service-panel.study-english.widget_text {
    border-left: 4px solid #EE7218 !important;
    padding-left: 20px !important;
}

.footer-service-panel.study-english .service-panel-content,
.footer-service-panel.study-english .textwidget {
    border-left: none !important;
    padding-left: 0 !important;
}

.footer-service-panel.study-english .service-panel-title {
    color: #EE7218 !important;
}

.footer-service-panel.study-english .service-panel-cta {
    background-color: #EE7218 !important;
    border-color: #EE7218 !important;
}

.footer-service-panel.study-english .service-panel-cta:hover {
    background: transparent !important;
    color: #EE7218 !important;
}

.footer-service-panel.guardianship .service-panel-content,
.footer-service-panel.guardianship.widget_text {
    border-left: 4px solid #E6007E !important;
    padding-left: 20px !important;
}

.footer-service-panel.guardianship .service-panel-title {
    color: #E6007E !important;
}

.footer-service-panel.guardianship .service-panel-cta {
    background-color: #E6007E !important;
    border-color: #E6007E !important;
}

.footer-service-panel.guardianship {
    border-left: none !important;
}

.footer-service-panel.guardianship .service-panel-cta:hover {
    background: transparent !important;
    color: #E6007E !important;
}

@media (max-width: 768px) {
    .footer-mega-menu {
        padding: 40px 0 30px 0 !important;
    }

    .footer-service-section {
        margin-bottom: 30px !important;
        padding: 25px 15px !important;
    }

    .service-title {
        font-size: 1.2rem !important;
        text-align: center !important;
        justify-content: center !important;
    }

    .service-description {
        text-align: center !important;
        margin-bottom: 15px !important;
    }

    .service-links {
        margin-bottom: 20px !important;
    }

    .service-links a {
        text-align: center !important;
        padding: 8px 0 !important;
    }

    .footer-btn {
        padding: 14px 20px !important;
        font-size: 16px !important;
        min-height: 44px !important;
    }

    .service-mega-columns {
        flex-direction: column !important;
        gap: 20px !important;
    }

    .service-column {
        min-width: 100% !important;
        margin-bottom: 20px !important;
    }

    .service-column h4 {
        text-align: center !important;
        font-size: 1rem !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .footer-service-section {
        padding: 25px 15px !important;
    }

    .service-title {
        font-size: 1.2rem !important;
    }

    .service-description,
    .service-links a {
        font-size: 13px !important;
    }
}

@media (min-width: 1200px) {
    .footer-mega-menu {
        padding: 80px 0 50px 0 !important;
    }

    .footer-service-section {
        padding: 35px 25px !important;
    }

    .service-title {
        font-size: 1.4rem !important;
    }
}

.service-title {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    margin: 0 0 15px 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

.service-title i {
    font-size: 1.5rem !important;
    color: #EE7218 !important;
}

.london-homestays .service-title i { color: #ed3036 !important; }
.uk-residences .service-title i { color: #7ac043 !important; }
.study-english .service-title i { color: #E6007E !important; }
.guardianship .service-title i { color: #EE7218 !important; }

.service-description {
    color: #cccccc !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin: 0 0 20px 0 !important;
}

.service-links {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 25px 0 !important;
    flex: 1 !important;
}

.service-links li {
    margin: 0 0 8px 0 !important;
}

.service-links a {
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
    display: block !important;
    padding: 6px 0 !important;
    border-bottom: 1px solid transparent !important;
}

.service-links a:hover {
    color: #6ACAF3 !important;
    border-bottom-color: rgba(106, 202, 243, 0.3) !important;
    padding-left: 8px !important;
}

.service-logo {
    text-align: center !important;
    margin: 0 0 20px 0 !important;
}

.footer-service-panel .service-logo img {
    max-width: 180px !important;
    height: auto !important;
    display: inline-block !important;
}

.homestays-logo,
.residences-logo,
.study-english-logo,
.guardianship-logo {
    max-width: 200px !important;
    height: auto !important;
    background: rgba(255, 255, 255, 0.9) !important;
    padding: 10px !important;
    border-radius: 8px !important;
}

.service-mega-columns {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 30px !important;
    margin-top: 20px !important;
}

.service-column {
    flex: 1 !important;
    min-width: 200px !important;
    padding: 0 !important;
}

.service-column h4 {
    color: #ffffff !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    margin: 0 0 15px 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border-bottom: 2px solid rgba(238, 114, 24, 0.3) !important;
    padding-bottom: 8px !important;
}

.service-column-title--blank {
    color: transparent !important;
}

.london-homestays .service-column h4 {
    border-bottom-color: rgba(34, 148, 210, 0.3) !important;
}

.uk-residences .service-column h4 {
    border-bottom-color: rgba(177, 203, 12, 0.3) !important;
}

.study-english .service-column h4 {
    border-bottom-color: rgba(238, 114, 24, 0.3) !important;
}

.guardianship .service-column h4 {
    border-bottom-color: rgba(230, 0, 126, 0.3) !important;
}

.footer-service-panel .widget,
.footer-service-panel .textwidget {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.footer-service-panel .widget ul,
.footer-service-panel .menu {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.footer-service-panel .widget li,
.footer-service-panel .menu li {
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
}

.footer-service-panel .widget a,
.footer-service-panel .menu a {
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
    display: block !important;
    padding: 6px 0 !important;
    border-bottom: 1px solid transparent !important;
}

.footer-service-panel .widget a:hover,
.footer-service-panel .menu a:hover {
    color: #6ACAF3 !important;
    border-bottom-color: rgba(106, 202, 243, 0.3) !important;
    padding-left: 8px !important;
}

.footer-service-panel .textwidget {
    color: #cccccc !important;
}

.footer-service-panel .textwidget p {
    margin: 0 0 15px 0 !important;
    line-height: 1.6 !important;
}

.service-cta {
    margin-top: auto !important;
}

.homestay-btn {
    background: linear-gradient(135deg, #2294D2 0%, #1a75a8 100%) !important;
    color: #ffffff !important;
    border-color: #2294D2 !important;
}

.homestay-btn:hover {
    background: transparent !important;
    color: #2294D2 !important;
    transform: translateY(-2px) !important;
}

.residence-btn {
    background: linear-gradient(135deg, #B1CB0C 0%, #8aa209 100%) !important;
    color: #ffffff !important;
    border-color: #B1CB0C !important;
}

.residence-btn:hover {
    background: transparent !important;
    color: #B1CB0C !important;
    transform: translateY(-2px) !important;
}

.english-btn {
    background: linear-gradient(135deg, #EE7218 0%, #c25a13 100%) !important;
    color: #ffffff !important;
    border-color: #EE7218 !important;
}

.english-btn:hover {
    background: transparent !important;
    color: #EE7218 !important;
    transform: translateY(-2px) !important;
}

.guardian-btn {
    background: linear-gradient(135deg, #E6007E 0%, #b8005f 100%) !important;
    color: #ffffff !important;
    border-color: #E6007E !important;
}

.guardian-btn:hover {
    background: transparent !important;
    color: #E6007E !important;
    transform: translateY(-2px) !important;
}

#footer_language_list {
    display: block;
    visibility: visible;
    opacity: 1;
    height: auto;
    min-height: 56px;
    background: rgba(255, 255, 255, 0.12);
    padding: 16px 64px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    text-align: center;
    margin: 0 auto;
    width: clamp(760px, 60vw, 1280px);
    box-sizing: border-box;
}

#footer_language_list ul {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 32px;
    flex-wrap: nowrap;
}

#footer_language_list ul li {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 4px 6px;
    color: var(--lse-white, #ffffff);
    white-space: nowrap;
    gap: 10px;
}

#footer_language_list ul li a {
    color: var(--lse-white, #ffffff);
    text-decoration: none;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 2px 0;
}

#footer_language_list ul li a:hover {
    color: rgba(255, 255, 255, 0.8);
}

#footer_language_list .current-language {
    color: var(--lse-white, #ffffff);
    font-weight: 700;
    letter-spacing: 0.02em;
}

@media (max-width: 760px) {
    #footer_language_list {
        width: calc(100% - 48px);
        padding: 14px 24px;
    }

    #footer_language_list ul {
        gap: 24px;
    }
}

@media (max-width: 520px) {
    #footer_language_list {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        border-radius: 18px;
        padding: 12px 18px;
        max-width: 100%;
        width: 100%;
    }

    #footer_language_list ul {
        flex-wrap: wrap;
        gap: 16px;
    }
}

.footer-language-container {
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 0 32px;
    box-sizing: border-box;
}

.footer-middle .wrap {
    display: flex;
    justify-content: center;
}

/* ==========================================================================
   Footer column layout
   ========================================================================== */

.footer .footer-top .grid,
.footer .wrap .grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    align-items: flex-start;
}

.footer .footer-top .grid__item,
.footer .grid__item {
    width: 50%;
    max-width: 400px;
    min-width: 300px;
    flex: 0 0 50%;
    padding: 20px;
    box-sizing: border-box;
}

@media (max-width: 768px) {
    .footer .footer-top .grid__item,
    .footer .grid__item {
        width: 100%;
        max-width: 100%;
        min-width: 100%;
    }
}

.footer .widget_nav_menu,
.footer .footer-column,
#nav_menu-2 {
    width: 100%;
    display: block;
    padding: 20px;
    margin: 0;
    box-sizing: border-box;
}

.footer-top {
    background: rgba(0, 0, 50, 0.8) !important;
    padding: 40px 0 !important;
}

.footer-middle {
    background: rgba(0, 0, 50, 0.9) !important;
    padding: 20px 0 !important;
}

.footer-bottom {
    background: #000020 !important;
    padding: 20px 0 !important;
}

.footer-bottom p,
.footer-bottom a {
    color: #cccccc !important;
    font-size: 14px !important;
}

.footer-bottom a:hover {
    color: #EE7218 !important;
}

.footer_skyline {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.section_latest_blog {
    margin-bottom: 0 !important;
}

.footer .widget_nav_menu h3,
.footer .footer-column h3,
#nav_menu-2 h3,
.footer .widget-title {
    color: #ffffff;
    font-size: 1.3rem;
    font-weight: 700;
    margin: 0 0 20px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.footer .widget_nav_menu ul,
.footer .footer-column ul,
#nav_menu-2 ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer .widget_nav_menu li,
.footer .footer-column li,
#nav_menu-2 li {
    margin: 0 0 8px;
}

.footer .widget_nav_menu a,
.footer .footer-column a,
#nav_menu-2 a {
    color: var(--lse-secondary-orange) !important;
    text-decoration: none;
    font-weight: 500;
    font-size: 16px;
    line-height: 1.6;
    transition: color 0.3s ease, text-decoration 0.3s ease;
}

.footer .widget_nav_menu a:hover,
.footer .footer-column a:hover,
#nav_menu-2 a:hover {
    color: var(--lse-tertiary-blue) !important;
    text-decoration: underline;
}

.fa:before,
i.fa:before {
    font-family: "FontAwesome" !important;
    font-weight: normal !important;
    font-style: normal !important;
    display: inline-block !important;
    text-decoration: inherit !important;
}

.footer-column {
    padding: 20px !important;
}

.footer-column h3 {
    color: #ffffff !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    margin: 0 0 20px 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

.footer-column .contact-info p {
    color: #ffffff !important;
    font-size: 16px !important;
    font-family: 'proxima-nova', 'Proxima Nova', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    line-height: 1.6 !important;
    margin: 0 0 10px 0 !important;
}

.footer-column .contact-info strong {
    color: #ffffff !important;
    font-weight: 600 !important;
}

.footer-column .contact-info a {
    color: #6ACAF3 !important;
    text-decoration: none !important;
    font-weight: 500 !important;
}

.footer-column .contact-info a:hover {
    color: #EE7218 !important;
    text-decoration: underline !important;
}

.home-testimonials__carousel .splide__track,
.school-testimonials__carousel .splide__track {
    padding: 16px 0 0;
}

.home-testimonials__carousel .splide__slide,
.school-testimonials__carousel .splide__slide {
    display: flex;
    justify-content: center;
}

.home-testimonials__item,
.school-testimonials__item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 24px;
    align-items: center;
    max-width: 720px;
    width: 100%;
    margin: 0 auto;
}

.home-testimonials__item .author_image,
.school-testimonials__item .author_image {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 50, 0.12);
}

.home-testimonials__item .author_image img,
.school-testimonials__item .author_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-testimonials__item .testimonial_cont,
.school-testimonials__item .testimonial_cont {
    font-size: 0.95rem;
    line-height: 1.6;
}

.home-testimonials__item .testimonial_cont span,
.school-testimonials__item .testimonial_cont span {
    font-weight: 700;
    letter-spacing: 0.02em;
}

.home-testimonials__carousel .splide__pagination,
.school-testimonials__carousel .splide__pagination {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
    position: static;
}

.home-testimonials__carousel .splide__pagination__page,
.school-testimonials__carousel .splide__pagination__page {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(0, 0, 50, 0.15);
    transition: background 0.3s ease, transform 0.3s ease;
}

.home-testimonials__carousel .splide__pagination__page.is-active,
.home-testimonials__carousel .splide__pagination__page:hover,
.home-testimonials__carousel .splide__pagination__page:focus-visible,
.school-testimonials__carousel .splide__pagination__page.is-active,
.school-testimonials__carousel .splide__pagination__page:hover,
.school-testimonials__carousel .splide__pagination__page:focus-visible {
    background: #E6007E;
    transform: scale(1.15);
}

@media (max-width: 640px) {
    .home-testimonials__item,
    .school-testimonials__item {
        grid-template-columns: 1fr;
        text-align: center;
        max-width: 100%;
    }

    .home-testimonials__item .author_image,
    .school-testimonials__item .author_image {
        justify-self: center;
        width: 80px;
        height: 80px;
    }

    .partner-schools-carousel .splide__pagination,
    .blog_update .splide__pagination,
    .home-testimonials__carousel .splide__pagination,
    .school-testimonials__carousel .splide__pagination {
        display: none;
    }
}

/* ==========================================================================
   Partner logo strip
   ========================================================================== */

.partners-section {
    background: #ffffff !important;
    padding: 50px 0 !important;
    margin-bottom: 0 !important;
    border-top: 1px solid #e9ecef !important;
    border-bottom: 1px solid #e9ecef !important;
}

.partners-section .wrap {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 30px !important;
}

.partners-section .partner-logos-fallback,
.partners-section .widget_partners_logo_widget {
    display: flex !important;
    align-items: center !important;
    justify-content: space-evenly !important;
    gap: 32px !important;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
    overflow-x: auto !important;
    padding: 12px 0 !important;
    scroll-snap-type: x mandatory !important;
}

.partners-section .partner-logos-fallback::-webkit-scrollbar,
.partners-section .widget_partners_logo_widget::-webkit-scrollbar {
    height: 6px;
}

.partners-section .partner-logos-fallback::-webkit-scrollbar-thumb,
.partners-section .widget_partners_logo_widget::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 50, 0.2);
    border-radius: 999px;
}

.partners-section .partner-logos-fallback > a,
.partners-section .partner-logos-fallback > span,
.partners-section .widget_partners_logo_widget > a,
.partners-section .widget_partners_logo_widget > span {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    scroll-snap-align: center !important;
}

.partners-section img {
    display: block !important;
    max-height: 45px !important;
    width: auto !important;
    transition: transform 0.3s ease, opacity 0.3s ease !important;
    pointer-events: none;
}

.partners-section a:hover img {
    transform: scale(1.05) !important;
    opacity: 0.85 !important;
}

@media (max-width: 768px) {
    .partners-section {
        padding: 40px 0 !important;
    }

    .partners-section .wrap {
        padding: 0 15px !important;
    }

    .partners-section .partner-logos-fallback,
    .partners-section .widget_partners_logo_widget {
        gap: 18px !important;
        justify-content: flex-start !important;
    }

    .partners-section img {
        max-height: 38px !important;
    }
}

@media (min-width: 1200px) {
    .partners-section {
        padding: 60px 0 !important;
    }

    .partners-section img {
        max-height: 50px !important;
    }
}

/* ==========================================================================
   Navigation (migrated from parent style.css @1242+ and responsive variants)
   ========================================================================== */

.site_navigation {
    width: 100%;
    border-top: 1px solid #ebebeb;
    position: relative;
    z-index: 900;
}

.site_navigation.desk {
    display: block;
}

.site_navigation.mob {
    display: none;
}

.site_navigation .wrap {
    position: relative;
}

.site_navigation::after {
    content: "";
    display: table;
    clear: both;
}

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

.site_navigation ul li {
    font-family: 'ligurino_condensedregular', 'Proxima Nova', sans-serif;
    float: left;
    width: 25%;
    font-size: 18px;
    line-height: 57px;
    letter-spacing: 1px;
    text-align: center;
    text-transform: uppercase;
}

.site_navigation ul li i {
    margin-left: 10px;
    position: relative;
    top: -4px;
}

.site_navigation ul li a {
    display: block;
    text-decoration: none;
    color: #fff;
}

.site_navigation ul li .megamenu {
    position: absolute;
    top: 57px;
    left: 0;
    display: none;
    width: 1200px;
    padding: 0 40px;
    overflow: hidden;
    text-align: left;
    font-family: 'proxima-nova', 'Proxima Nova', 'proxima_nova', sans-serif;
}

.megamenu .menu_widget {
    float: left;
    width: 25%;
    padding: 44px 0 36px;
}

.megamenu .menu_widget h3 {
    margin: 0 0 10px;
    padding: 0;
    font-family: 'ligurino_condensedregular', 'Proxima Nova', sans-serif;
    font-size: 20px;
    line-height: 24px;
    color: #fff;
}

.megamenu .menu_widget ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.megamenu .menu_widget ul li {
    margin: 0 0 14px;
    font-family: 'proxima-nova', 'Proxima Nova', 'proxima_nova', sans-serif;
    font-size: 16px;
    line-height: 18px;
    color: #e96587;
    letter-spacing: normal;
    text-transform: none;
    text-align: left;
    background: none !important;
    float: none;
    width: 100%;
}

.megamenu .menu_widget ul li a {
    color: #c9cad3;
    text-decoration: none;
}

.megamenu .menu_widget .menu-london-homestays-container ul li:first-child a,
.megamenu .menu_widget .menu-student-residence-information-container ul li:first-child a {
    font-weight: bold;
    color: #f9ddd0;
}

.megamenu .menu_widget .menu-become-a-host-family-container ul li:first-child a,
.megamenu .menu_widget ul li.lsr a,
.megamenu .menu_widget .menu-year-round-residences-container ul li:first-child a {
    font-weight: bold;
    color: #d6dfd9;
}

/* ==========================================================================
   Enhanced Mobile Navigation System
   ========================================================================== */

.menu_icon.nav-toggle {
    --nav-toggle-size: 48px;
    display: inline-flex;
    background: var(--lse-primary-magenta);
    border: 0;
    border-radius: 8px;
    width: var(--nav-toggle-size);
    height: var(--nav-toggle-size);
    min-width: var(--nav-toggle-size);
    min-height: var(--nav-toggle-size);
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: relative;
    z-index: 1000;
    transition: background 0.3s ease, transform 0.3s ease;
    margin: 8px 0 0 auto;
    float: right;
    color: var(--lse-white);
}

.menu_icon.nav-toggle:hover {
    background: var(--lse-secondary-orange);
    transform: scale(1.05);
}

.menu_icon.nav-toggle:focus,
.menu_icon.nav-toggle:focus-visible {
    outline: 3px solid var(--lse-tertiary-blue);
    outline-offset: 2px;
    position: relative;
    z-index: 10;
}

.menu_icon.nav-toggle::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 2px;
    background: var(--lse-white);
    box-shadow: 0 6px 0 var(--lse-white), 0 12px 0 var(--lse-white);
    transform: translate(-50%, -50%);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.menu_icon.nav-toggle[aria-expanded="true"]::before {
    box-shadow: none;
    transform: translate(-50%, -50%) rotate(45deg);
}

.menu_icon.nav-toggle[aria-expanded="true"]::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 2px;
    background: var(--lse-white);
    transform: translate(-50%, -50%) rotate(-45deg);
}



.site_navigation.mob {
    position: fixed;
    top: 0;
    right: 0 !important;
    left: auto !important;
    width: 100%;
    max-width: 420px;
    height: 100vh;
    background: var(--lse-structure-navy) !important;
    z-index: 1400;
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    overflow: hidden;
    box-shadow: -12px 0 24px rgba(0, 0, 0, 0.25);
    padding: 0;
    box-sizing: border-box;
    transform: translateX(100%);
    color: var(--lse-white);
}

.site_navigation.mob.is-open {
    transform: translateX(0);
}

.mobile-nav-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 50, 0.8);
    z-index: 1350;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    pointer-events: none;
}

.mobile-nav-overlay.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.site_navigation.mob {
    display: flex;
    flex-direction: column;
    pointer-events: none;
}

.site_navigation.mob.is-open {
    pointer-events: auto;
}

.mobile-nav-scroll {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 32px 28px 44px;
    display: flex;
    flex-direction: column;
    gap: 28px;
    box-sizing: border-box;
}

.mobile-nav-section {
    display: block;
}

.mobile-nav-section--primary {
    display: flex;
    flex-direction: column;
    gap: 12px;
    border-bottom: 0;
    padding-bottom: 0;
}

.mobile-primary-menu,
.mobile-primary-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mobile-primary-menu {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mobile-primary-menu > li {
    margin: 0;
}

.mobile-primary-menu > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 15px 18px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.05);
    color: var(--lse-white);
    text-decoration: none;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
    transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.mobile-primary-menu > li > a:hover,
.mobile-primary-menu > li > a:focus,
.mobile-primary-menu > li > a:focus-visible {
    color: var(--lse-white);
    background: rgba(106, 202, 243, 0.18);
    border-color: rgba(255, 255, 255, 0.32);
    outline: none;
}

.mobile-primary-menu li.menu-item-has-children > a::after {
    content: '\25BC';
    font-size: 12px;
    margin-left: 12px;
    color: rgba(255, 255, 255, 0.7);
}

.mobile-primary-menu .sub-menu {
    border: 0;
    padding: 0 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.mobile-primary-menu .sub-menu li {
    border: 0;
    margin: 0;
}

.mobile-primary-menu .sub-menu a {
    display: block;
    padding: 0;
    font-size: 15px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    transition: color 0.3s ease;
}

.mobile-primary-menu .sub-menu a:hover,
.mobile-primary-menu .sub-menu a:focus,
.mobile-primary-menu .sub-menu a:focus-visible {
    color: var(--lse-white);
    outline: none;
}

.mobile-primary-menu #menu-item-6242 > a {
    background: linear-gradient(135deg, var(--lse-primary-magenta) 0%, #ff1a94 100%);
    padding: 16px 20px;
    border-radius: 999px;
    border: 0;
    justify-content: center;
    color: var(--lse-white) !important;
    font-weight: 600;
    box-shadow: 0 8px 20px rgba(230, 0, 126, 0.35);
    width: 100%;
    text-align: center;
    text-transform: none !important;
    letter-spacing: 0.04em !important;
}

.mobile-primary-menu #menu-item-6242 > a:hover,
.mobile-primary-menu #menu-item-6242 > a:focus,
.mobile-primary-menu #menu-item-6242 > a:focus-visible {
    color: var(--lse-white) !important;
    border: 0;
}


.mobile-nav-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 24px 28px;
    background: rgba(6, 18, 54, 0.96);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    position: sticky;
    top: 0;
    z-index: 2;
    box-sizing: border-box;
}

.mobile-nav-languages {
    flex: 1 1 auto;
}

.mobile-nav-section--languages {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mobile-language-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 12px 16px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
    color: var(--lse-white);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    text-align: left;
    transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.mobile-language-toggle:hover,
.mobile-language-toggle:focus,
.mobile-language-toggle:focus-visible {
    background: rgba(106, 202, 243, 0.2);
    border-color: rgba(255, 255, 255, 0.36);
    color: var(--lse-white);
    outline: none;
}

.mobile-language-label {
    color: inherit;
    flex: 1 1 auto;
    text-transform: none;
}

.mobile-language-icon {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
    position: relative;
    flex-shrink: 0;
}

.mobile-language-icon::before,
.mobile-language-icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 1.5px;
    background: currentColor;
    transform: translate(-50%, -50%) rotate(45deg);
    transition: transform 0.3s ease;
}

.mobile-language-icon::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.mobile-nav-section--languages.is-open .mobile-language-icon::before {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.mobile-nav-section--languages.is-open .mobile-language-icon::after {
    transform: translate(-50%, -50%) rotate(45deg);
}

.mobile-language-menu {
    list-style: none;
    margin: 8px 0 0;
    padding: 8px 0;
    display: none;
    flex-direction: column;
    gap: 4px;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    background: rgba(6, 18, 54, 0.98);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 12px;
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.35);
    z-index: 5;
}

.mobile-language-menu[hidden] {
    display: none;
}

.mobile-nav-section--languages.is-open .mobile-language-menu {
    display: flex;
}

.mobile-language-option {
    margin: 0;
}

.mobile-language-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    transition: color 0.3s ease, background 0.3s ease;
}

.mobile-language-link:hover,
.mobile-language-link:focus,
.mobile-language-link:focus-visible {
    color: var(--lse-white);
    background: rgba(106, 202, 243, 0.12);
    outline: none;
}

.mobile-language-option.is-active .mobile-language-link {
    color: var(--lse-white);
    font-weight: 600;
    background: rgba(255, 255, 255, 0.08);
}

.mobile-language-flag {
    width: 18px;
    height: 12px;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18);
    flex-shrink: 0;
}

.mobile-language-name {
    color: inherit;
    text-transform: none;
}

.mobile-nav-heading {
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 16px;
    color: rgba(255, 255, 255, 0.7);
}

.mobile-brand-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mobile-brand-item {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.02);
}

.mobile-brand-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    background: transparent;
    border: 0;
    color: var(--lse-white);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.3s ease, color 0.3s ease;
}

.mobile-brand-toggle:hover,
.mobile-brand-toggle:focus,
.mobile-brand-toggle:focus-visible {
    background: rgba(106, 202, 243, 0.1);
    color: var(--lse-tertiary-blue);
    outline: none;
}

.mobile-brand-icon {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    position: relative;
    flex-shrink: 0;
}

.mobile-brand-icon::before,
.mobile-brand-icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 2px;
    background: currentColor;
    transform: translate(-50%, -50%);
}

.mobile-brand-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.mobile-brand-toggle.is-open .mobile-brand-icon::after {
    opacity: 0;
}

.mobile-brand-panel {
    display: none;
    padding: 0 16px 16px;
    background: rgba(0, 0, 50, 0.35);
}

[data-mobile-brand-panel][hidden] {
    display: none !important;
}

.mobile-brand-panel .mobile-brand-link {
    margin: 16px 0 8px;
}

.mobile-brand-panel .mobile-brand-link a {
    color: var(--lse-white);
    font-weight: 600;
    text-decoration: none;
}

.mobile-brand-panel .mobile-brand-link a:hover,
.mobile-brand-panel .mobile-brand-link a:focus,
.mobile-brand-panel .mobile-brand-link a:focus-visible {
    color: var(--lse-white);
    text-decoration: underline;
    outline: none;
}

.mobile-brand-panel .mobile-brand-widgets {
    display: grid;
    gap: 12px;
}

.mobile-brand-panel .menu_widget,
.mobile-brand-panel .menu_widget ul,
.mobile-brand-panel .menu_widget li {
    float: none !important;
}

.mobile-brand-panel .menu_widget ul {
    padding: 0;
    list-style: none;
}

.mobile-brand-panel .menu_widget ul li a {
    display: block;
    padding: 8px 0;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    font-size: 15px;
}

.mobile-brand-panel .menu_widget ul li a:hover {
    color: var(--lse-tertiary-blue);
}

.mobile-nav-close {
    position: static;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--lse-white);
    width: 44px;
    height: 44px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
    transition: transform 0.2s ease, color 0.2s ease, background 0.2s ease;
    flex-shrink: 0;
}

.mobile-nav-close:hover,
.mobile-nav-close:focus,
.mobile-nav-close:focus-visible {
    color: var(--lse-tertiary-blue);
    background: rgba(106, 202, 243, 0.18);
    transform: rotate(90deg);
    outline: none;
}

@media (max-width: 768px) {
    .site_navigation.desk {
        display: none;
    }

    .menu_icon.nav-toggle {
        display: inline-flex;
        visibility: visible;
        opacity: 1;
    }

    .header_nav {
        display: none !important;
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
    }

    .site_navigation.mob {
        width: 100%;
    }

    .mobile-nav-scroll {
        padding: 28px 20px 36px;
        gap: 24px;
    }

    .header_bottom {
        position: relative;
        z-index: 1001;
    }

    .header_bottom .grid {
        flex-wrap: nowrap;
        gap: 16px;
    }

    .header_controls {
        margin-bottom: 0;
        flex: 1 1 auto;
        justify-content: flex-end;
        max-width: 100%;
        flex-wrap: nowrap;
    }

    .logo img {
        max-height: 60px;
    }

    .header-cta {
        font-size: 0.75rem;
        padding: 6px 12px;
        box-shadow: 0 6px 16px rgba(230, 0, 126, 0.22);
        max-width: 150px;
        white-space: nowrap;
    }

    body .header.sticky .header-cta {
        display: inline-flex;
    }

    .header_bottom .grid__item {
        flex: 0 0 auto;
        max-width: 100%;
    }

    .header_bottom .grid__item.lap--eight-tenths,
    .header_bottom .grid__item.desk--eight-tenths {
        flex: 1 1 auto;
        min-width: 0;
    }

body.mobile-nav-open {
    overflow: hidden;
    position: fixed;
    inset: 0;
    width: 100%;
}

body.mobile-nav-open .header {
    z-index: 997 !important;
}

body.mobile-nav-open .header.sticky {
    box-shadow: none !important;
}

body.mobile-nav-open .header_top,
body.mobile-nav-open .top-bar {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, visibility 0.25s ease;
    }

    body.mobile-nav-open .header_bottom .logo,
    body.mobile-nav-open .header_bottom .grid__item:first-child {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.25s ease, visibility 0.25s ease;
    }

    body.mobile-nav-open .header_bottom .grid__item:first-child {
        display: none;
    }
}

@media (max-width: 1024px) {
    .header_top {
        display: none !important;
    }
}

@media (min-width: 769px) {
    .header_controls {
        margin-bottom: 0;
    }

    .header-cta {
        display: none;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .menu_icon.nav-toggle {
        visibility: visible;
        opacity: 1;
    }

    .site_navigation.desk {
        display: none;
    }

    .site_navigation.mob {
        width: 360px;
    }

    body.mobile-nav-open {
        overflow: hidden;
        position: fixed;
        inset: 0;
        width: 100%;
    }

    body.mobile-nav-open .header_top,
body.mobile-nav-open .top-bar {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    body.mobile-nav-open .header_bottom .logo,
    body.mobile-nav-open .header_bottom .grid__item:first-child {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.25s ease, visibility 0.25s ease;
    }

    body.mobile-nav-open .header_bottom .grid__item:first-child {
        display: none;
    }

    .mobile-nav-scroll {
        padding: 40px 32px 44px;
    }
}

@media (min-width: 1025px) {
    .menu_icon.nav-toggle,
    .mobile-nav-overlay,
    .mobile-nav-close {
        display: none;
    }

    .site_navigation.mob {
        display: none;
    }

    .site_navigation.desk {
        display: block;
    }
}

.touch-device .menu_icon.nav-toggle {
    --nav-toggle-size: 52px;
    width: var(--nav-toggle-size);
    height: var(--nav-toggle-size);
    min-width: var(--nav-toggle-size);
    min-height: var(--nav-toggle-size);
}

.slow-connection .site_navigation.mob,
.slow-connection .menu_icon.nav-toggle,
.slow-connection .mobile-nav-overlay {
    transition: none;
}

.css-fallback .site_navigation.mob {
    position: absolute;
    right: -300px;
}

.css-fallback .site_navigation.mob.is-open {
    right: 0;
}

.css-fallback .menu_icon.nav-toggle::before,
.css-fallback .menu_icon.nav-toggle::after {
    display: none;
}

.css-fallback .menu_icon.nav-toggle {
    background-image: url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 24px 24px;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .course-card,
    .course-image img,
    .course-card .cta-button {
        transition: none;
    }

    .course-badge.special-offer {
        animation: none;
    }

    .course-card:hover {
        transform: none;
    }

    .site_navigation.mob,
    .mobile-nav-overlay,
    .menu_icon.nav-toggle,
    .mobile-brand-toggle,
    .mobile-brand-panel,
    .mobile-primary-menu a {
        transition: none;
    }

    .menu_icon.nav-toggle:hover,
    .mobile-primary-menu a:hover,
    .mobile-brand-toggle:hover {
        transform: none;
    }
}

@media (prefers-contrast: high) {
    .menu_icon.nav-toggle {
        border: 3px solid var(--lse-white);
    }

    .mobile-primary-menu > li {
        border-bottom: 2px solid rgba(255, 255, 255, 0.3);
    }

    .mobile-nav-overlay {
        background: rgba(0, 0, 0, 0.9);
    }
}

@media print {
    .no-print,
    .site-header,
    .site-footer,
    .navigation,
    button,
    .btn {
        display: none !important;
    }

    body {
        color: #000000 !important;
        background: #ffffff !important;
    }

    .menu_icon.nav-toggle,
    .site_navigation.mob,
    .mobile-nav-overlay,
    .mobile-nav-close {
        display: none !important;
    }
}

@supports (padding: max(0px)) {
    .site_navigation.mob {
        padding-left: max(24px, env(safe-area-inset-left));
        padding-right: max(24px, env(safe-area-inset-right));
    }

    .mobile-nav-header {
        padding-left: max(24px, env(safe-area-inset-left));
        padding-right: max(24px, env(safe-area-inset-right));
        padding-top: max(20px, env(safe-area-inset-top));
    }
}

/* Default colour palette (raspberry theme) */
.site_navigation ul li,
.site_navigation ul li .megamenu {
    background: #cc3366;
}

.site_navigation ul li.lsr,
.site_navigation ul li.lsr .megamenu {
    background: #684f6d;
}

.site_navigation ul li.sel,
.site_navigation ul li.sel .megamenu {
    background: #356045;
}

.site_navigation ul li.gs,
.site_navigation ul li.gs .megamenu {
    background: #9c1428;
}

/* Contextual palette overrides (lifted from custom.css) */
.lhs .site_navigation ul li,
.lsr .site_navigation ul li,
.sel .site_navigation ul li,
.gs .site_navigation ul li,
.lhs .site_navigation ul li .megamenu,
.lsr .site_navigation ul li .megamenu,
.sel .site_navigation ul li .megamenu,
.gs .site_navigation ul li .megamenu {
    background: #424564;
}

.lhs .site_navigation ul li.lsr,
.lsr .site_navigation ul li.lsr,
.sel .site_navigation ul li.lsr,
.gs .site_navigation ul li.lsr,
.lhs .site_navigation ul li.lsr .megamenu,
.lsr .site_navigation ul li.lsr .megamenu,
.sel .site_navigation ul li.lsr .megamenu,
.gs .site_navigation ul li.lsr .megamenu {
    background: #684f6d;
}

.lhs .site_navigation ul li.sel,
.lsr .site_navigation ul li.sel,
.sel .site_navigation ul li.sel,
.gs .site_navigation ul li.sel,
.lhs .site_navigation ul li.sel .megamenu,
.lsr .site_navigation ul li.sel .megamenu,
.sel .site_navigation ul li.sel .megamenu,
.gs .site_navigation ul li.sel .megamenu {
    background: #356045;
}

.lhs .site_navigation ul li.gs,
.lsr .site_navigation ul li.gs,
.sel .site_navigation ul li.gs,
.gs .site_navigation ul li.gs,
.lhs .site_navigation ul li.gs .megamenu,
.lsr .site_navigation ul li.gs .megamenu,
.sel .site_navigation ul li.gs .megamenu,
.gs .site_navigation ul li.gs .megamenu {
    background: #9c1428;
}

/* Responsive adjustments */
@media (max-width: 1199px) {
    .header_top {
        padding: 10px 0;
    }

    .header_bottom {
        min-height: 88px;
        padding-top: 20px;
    }

    .header_nav {
        padding: 6px 0 0 32px;
    }

    .header_nav ul li {
        padding-left: 28px;
        font-size: 16px;
    }

    #lang_sel {
        position: static;
        left: auto;
        top: auto;
    }

    .language_option {
        height: auto;
    }

    .language_option #lang_sel ul ul,
    .language_option #lang_sel ul li li {
        width: 135px;
    }

    .language_option #lang_sel ul li a {
        font-size: 14px;
        line-height: 18px;
        padding: 8px 14px 9px;
    }

    .language_option img {
        margin: 4px 10px 0 0;
    }

    .site_navigation ul li .megamenu {
        width: 980px;
    }
}

@media (max-width: 1024px) {
    .header_top {
        padding: 10px 0;
    }

    .top_menu ul li {
        font-size: 14px;
        padding: 0 8px 0 0;
    }

    .header_bottom {
        min-height: 80px;
        padding-top: 16px;
    }

    .header_nav {
        padding: 4px 0 0 24px;
    }

    .header_nav ul li {
        padding-left: 20px;
        font-size: 15px;
    }

    .header_social a {
        margin-left: 25px;
    }

    .language_option {
        width: auto;
    }

    #lang_sel {
        position: static;
        left: auto;
        top: auto;
    }

    .site_navigation ul li {
        font-size: 15px;
        line-height: 50px;
    }

    .site_navigation ul li i {
        margin-left: 3px;
    }

    .site_navigation ul li .megamenu {
        top: 50px;
        width: 833px;
        padding: 0 20px;
    }

    .megamenu .menu_widget {
        width: 33.333%;
        padding: 24px 0;
    }

    .megamenu .menu_widget h3 {
        font-size: 18px;
    }

    .megamenu .menu_widget ul li {
        font-size: 14px;
        margin-bottom: 10px;
    }
}

@media (max-width: 900px) {
    .header_top {
        padding: 8px 0;
    }

    .top_menu ul {
        gap: 8px 12px;
    }

    .top_menu ul li {
        font-size: 12px;
        padding-right: 0;
    }

    .top_menu ul li a::before {
        font-size: 12px;
    }

    .language_option a {
        padding: 7px 9px;
        font-size: 12px;
    }

    .language_option img {
        margin-right: 6px;
        margin-top: 3px;
    }

    .header_top .grid__item:last-child {
        justify-content: flex-start;
        gap: 12px;
    }

    .header_top .header_social {
        gap: 12px;
    }

    .header_bottom {
        min-height: 68px;
        padding-top: 14px;
    }

    .header_nav {
        padding: 0 0 0 18px;
    }

    .header_nav ul li {
        padding-left: 14px;
        font-size: 14px;
    }

    #lang_sel {
        position: static;
        left: auto;
        top: auto;
    }

    .site_navigation ul li {
        width: 33.333%;
        font-size: 14px;
        line-height: 44px;
    }

    .site_navigation ul li .megamenu {
        width: calc(100vw - 40px);
    }
}

@media (max-width: 767px) {
    .header_top {
        padding: 8px 0;
    }

    .top_menu ul {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .top_menu ul li {
        font-size: 10px;
        padding: 0;
    }

    .top_menu ul li a::before {
        font-size: 9px;
        top: 1px;
    }

    .language_option a {
        padding: 5px 7px;
        font-size: 10px;
    }

    .language_option img {
        margin-right: 8px;
    }

    .header_top .grid__item:last-child {
        align-items: flex-start;
        gap: 8px;
    }

    .header_top .header_social {
        gap: 10px;
    }

    .header_bottom {
        min-height: 60px;
        padding-top: 12px;
    }

    .header_nav {
        width: 100%;
        padding: 0;
        margin: 5px 0;
        text-align: right;
    }

    .header_nav ul {
        width: 100%;
    }

    .header_nav ul li {
        float: none;
        font-size: 15px;
        padding: 0 !important;
    }

    .header_nav ul li a {
        padding: 6px 10px;
    }

    #lang_sel {
        position: static;
        left: auto;
        top: auto;
        width: 100%;
    }

    .language_option #lang_sel ul ul,
    .language_option #lang_sel ul li li {
        width: 115px;
    }

    .language_option #lang_sel ul li a {
        font-size: 12px;
        line-height: 17px;
        padding: 6px 9px;
    }

    .site_navigation.desk {
        display: none;
    }

    .site_navigation.mob {
        display: block;
    }

    .site_navigation ul {
        display: block;
    }

    .site_navigation ul li {
        float: none;
        width: 100%;
        font-size: 13px;
        line-height: 40px;
        letter-spacing: 2px;
        position: relative;
    }

    .site_navigation ul li i {
        margin-left: 1px;
        top: 0;
    }

    .site_navigation ul li .megamenu {
        position: static;
        top: auto;
        width: 100%;
        padding: 15px;
    }

    .megamenu .menu_widget {
        width: 100%;
        padding: 14px 0;
    }
}

@media (max-width: 480px) {
    .top_menu ul li {
        font-size: 9px;
        padding-left: 6px;
    }

    .top_menu ul li:first-child {
        padding-right: 6px;
    }

    .top_menu ul li a::before {
        font-size: 9px;
    }

    .site_navigation ul li {
        font-size: 12px;
        line-height: 35px;
    }

    .site_navigation ul li .megamenu {
        padding: 12px;
    }
}

@media (max-width: 640px) {
    #lang_sel {
        position: static;
        left: auto;
        top: auto;
        width: 100%;
    }

    .language_option {
        margin: 0;
        width: auto;
    }

    .language_option #lang_sel ul ul,
    .language_option #lang_sel ul li li {
        width: 128px;
    }

    .language_option #lang_sel ul li a {
        font-size: 13px;
        line-height: 15px;
        padding: 7px 10px;
    }
}
.text-muted {
    color: var(--lse-neutral-gray) !important;
}

*:focus {
    outline: 3px solid var(--lse-tertiary-blue);
    outline-offset: 2px;
}

.lse-lightbox button.lse-lightbox__nav:focus,
.lse-lightbox button.lse-lightbox__nav:focus-visible,
.lse-lightbox button.lse-lightbox__close:focus,
.lse-lightbox button.lse-lightbox__close:focus-visible {
    outline: none;
    outline-offset: 0;
}

@media (prefers-contrast: high) {
    :root {
        --lse-primary-magenta: #C5005A;
        --lse-secondary-orange: #D66100;
        --lse-tertiary-blue: #0080CC;
        --lse-structure-navy: #000000;
    }
}

.course_search_form .btn,
.course_finder_btn {
    background-color: var(--lse-primary-magenta) !important;
    border-color: var(--lse-primary-magenta) !important;
}

.school_grid_item,
.course_grid_item {
    border: 2px solid var(--lse-light-gray);
    transition: all 0.3s ease;
}

.school_grid_item:hover,
.course_grid_item:hover {
    border-color: var(--lse-tertiary-blue);
    box-shadow: 0 6px 20px rgba(106, 202, 243, 0.2);
}

.acf-field .button,
.acf-frontend-form .button {
    background-color: var(--lse-secondary-orange) !important;
    border-color: var(--lse-secondary-orange) !important;
}

.ls-slide .ls-btn,
.layerslider .ls-btn {
    background-color: var(--lse-primary-magenta) !important;
    color: var(--lse-white) !important;
}

.wpcf7-form .wpcf7-submit,
.wpforms-submit {
    background: var(--lse-primary-magenta) !important;
    border: 2px solid var(--lse-primary-magenta) !important;
    color: var(--lse-white) !important;
    padding: 12px 30px;
    border-radius: 6px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
}

.wpcf7-form .wpcf7-submit:hover,
.wpforms-submit:hover {
    background: var(--lse-secondary-orange) !important;
    border-color: var(--lse-secondary-orange) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(238, 114, 24, 0.3);
}

.clear-filters-btn,
.apply-filters-btn,
.advanced-filters-toggle,
.clear-all-filters,
.load-more-btn,
.clear-comparison,
button.clear-filters-btn,
button.apply-filters-btn,
button.advanced-filters-toggle {
    background-color: var(--lse-secondary-orange);
    border: 1px solid var(--lse-secondary-orange);
    color: #ffffff;
    font-weight: 500;
    padding: 10px 20px;
    border-radius: 6px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.clear-filters-btn:hover,
.apply-filters-btn:hover,
.advanced-filters-toggle:hover,
.clear-all-filters:hover,
.load-more-btn:hover,
.clear-comparison:hover,
button.clear-filters-btn:hover,
button.apply-filters-btn:hover,
button.advanced-filters-toggle:hover {
    background-color: var(--lse-tertiary-blue);
    border-color: var(--lse-tertiary-blue);
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(106, 202, 243, 0.3);
}
.home-hero {
    background: linear-gradient(180deg, #fff8f2 0%, #ffffff 45%, #edf8fc 100%) !important;
    padding: 0 !important;
}

.button.button--small {
    border-radius: 8px;
    padding: 10px 16px;
    font-size: 0.9rem;
}

/* UKSE Course Metadata Enhancements */
.course-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.course-badge--fallback {
    background: rgba(238, 114, 24, 0.12);
    color: #b04a00;
    border: 1px solid rgba(238, 114, 24, 0.3);
    margin-left: 0.5rem;
}

.ukse-course-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.75rem;
    margin-top: 0.75rem;
    font-size: 0.9rem;
}

.ukse-course-meta__item {
    background: #f7f9fc;
    border-radius: 8px;
    padding: 0.65rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-height: 84px;
}

.ukse-course-meta__label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #3a4b67;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ukse-course-meta__value {
    font-weight: 600;
    color: #09204f;
}

.course-calculator {
    margin-top: 1rem;
    background: #f7f9fc;
    border: 1px solid rgba(9, 32, 79, 0.08);
    border-radius: 12px;
    padding: 1rem;
}

.course-calculator__title {
    display: block;
    margin-bottom: 0.5rem;
    color: #09204f;
}

.course-calculator__label {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-weight: 600;
    color: #3a4b67;
}

.course-calculator__weeks {
    width: 100%;
    max-width: 120px;
    padding: 0.45rem 0.6rem;
    border-radius: 6px;
    border: 1px solid rgba(9, 32, 79, 0.2);
    font-size: 0.95rem;
}

.course-calculator__line {
    margin: 0.5rem 0;
    color: #09204f;
}

.course-calculator__line--total {
    font-weight: 700;
}

.course-calculator__fees,
.course-calculator__note {
    margin: 0.35rem 0 0;
    font-size: 0.8rem;
    color: #4f6283;
}

.course-accommodation {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    padding: 0.75rem 0.875rem;
    border: 1px solid #f3ded0;
    border-radius: 0.75rem;
    background-color: #fff8f2;
}

.course-accommodation__media {
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.course-accommodation__media img {
    max-width: 100%;
    height: auto;
}

.course-accommodation__content {
    flex: 1 1 auto;
}

.course-accommodation__text {
    margin: 0 0 0.5rem;
    font-size: 0.875rem;
    line-height: 1.4;
    color: #162330;
}

.course-accommodation__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 600;
    color: #ee7218;
    text-decoration: none;
}

.course-accommodation__cta:hover,
.course-accommodation__cta:focus {
    text-decoration: underline;
    color: #c45a12;
}

.course-accommodation__icon {
    font-size: 1rem;
    line-height: 1;
}

.course-calculator--compare {
    margin-top: 0.5rem;
}

@media (max-width: 640px) {
    .course-accommodation {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }

    .course-accommodation__media {
        width: 40px;
        height: 40px;
    }
}

.school-courses-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1.5rem;
}

.school-courses-table th,
.school-courses-table td {
    padding: 0.75rem;
    text-align: left;
    border-bottom: 1px solid rgba(9, 32, 79, 0.08);
}

.school-courses-table th {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #3a4b67;
}

.school-courses-table td.course-meta-hours,
.school-courses-table td.course-meta-level,
.school-courses-table td.course-meta-price,
.school-courses-table td.course-meta-start {
    font-weight: 600;
    color: #09204f;
}

@media (max-width: 768px) {
    .ukse-course-meta {
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    }

    .school-courses-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

/* --- Course comparison --- */
.ukse-compare-tray {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 1050;
    width: min(100%, 320px);
    background: #ffffff;
    border: 1px solid #d8e2ec;
    border-radius: 0.875rem;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.15);
}

.ukse-compare-tray[hidden] {
    display: none;
}

.ukse-compare-tray__inner {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ukse-compare-tray__summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 600;
    color: #1f2a44;
}

.ukse-compare-tray__label {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    font-size: 0.95rem;
}

.ukse-compare-tray__count {
    color: #E6007E;
    font-weight: 700;
}

.ukse-compare-tray__clear {
    border: none;
    background: none;
    font-size: 0.85rem;
    color: #536176;
    cursor: pointer;
    text-decoration: underline;
}

.ukse-compare-tray__clear:disabled {
    opacity: 0.4;
    cursor: default;
    text-decoration: none;
}

.ukse-compare-tray__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.ukse-compare-tray__item {
    position: relative;
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 140px;
    background: #f5f9fd;
    border-radius: 0.75rem;
    padding: 0.5rem 0.5rem 0.5rem 0.75rem;
    box-shadow: inset 0 0 0 1px rgba(100, 116, 139, 0.08);
}

.ukse-compare-tray__item:nth-child(odd) {
    background: #f0f7fe;
}

.ukse-compare-tray__remove {
    position: absolute;
    top: 0.25rem;
    right: 0.25rem;
    border: none;
    background: transparent;
    font-size: 1.1rem;
    line-height: 1;
    color: #61708a;
    cursor: pointer;
}

.ukse-compare-tray__remove:hover,
.ukse-compare-tray__remove:focus {
    color: #2f3b52;
}

.ukse-compare-tray__link {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    text-decoration: none;
    color: inherit;
}

.ukse-compare-tray__thumb {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #e5eef6;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.95rem;
    color: #1f3b63;
    overflow: hidden;
}

.ukse-compare-tray__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ukse-compare-tray__meta {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.ukse-compare-tray__title {
    font-size: 0.9rem;
    font-weight: 600;
    color: #142238;
}

.ukse-compare-tray__school,
.ukse-compare-tray__city {
    font-size: 0.75rem;
    color: #4f5d73;
}

.ukse-compare-tray__actions {
    display: flex;
    justify-content: flex-end;
}

.ukse-compare-tray__cta[aria-disabled="true"] {
    pointer-events: none;
    opacity: 0.55;
}

.ukse-compare__main {
    padding-bottom: 5rem;
}

.ukse-compare__section {
    margin-top: 1.5rem;
}

.ukse-compare__notice {
    border-radius: 0.75rem;
    padding: 1rem;
    margin-bottom: 1rem;
    font-size: 0.95rem;
}

.ukse-compare__notice--error {
    background: #fdecea;
    color: #7f1d1d;
}

.ukse-compare__notice--warning {
    background: #fff4e5;
    color: #7c3e04;
}

.ukse-compare__empty {
    padding: 1.5rem;
    background: #f1f6fb;
    border-radius: 0.85rem;
    font-size: 0.95rem;
}

.ukse-compare__empty p {
    margin: 0;
}

.ukse-compare-table-wrapper {
    overflow-x: auto;
    border-radius: 1rem;
    box-shadow: inset 0 0 0 1px rgba(209, 213, 219, 0.5);
    background: #ffffff;
}

.ukse-compare-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
}

.ukse-compare-table th,
.ukse-compare-table td {
    border: 1px solid #e1e7ef;
    padding: 1rem;
    vertical-align: top;
    text-align: left;
}

.ukse-compare-table__feature {
    width: 220px;
    background: #f6f9fc;
    font-weight: 600;
    color: #1e2a3d;
}

.ukse-compare-table__course-header {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
}

.ukse-compare-table__course-title {
    font-weight: 700;
    font-size: 1.05rem;
    color: #1f2a44;
}

.ukse-compare-table__remove {
    font-size: 0.85rem;
    color: #E6007E;
    text-decoration: none;
}

.ukse-compare-table__remove:hover,
.ukse-compare-table__remove:focus {
    text-decoration: underline;
}

.ukse-compare-table__school {
    font-weight: 600;
    color: #1f2a44;
    text-decoration: none;
}

.ukse-compare-table__city {
    margin-top: 0.2rem;
    font-size: 0.85rem;
    color: #4f5d73;
}

.ukse-compare-table__price {
    font-weight: 700;
    color: #102246;
}

.ukse-compare-table__price-note {
    font-size: 0.85rem;
    color: #4f5d73;
}

.ukse-compare-table__flag {
    margin-top: 0.35rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #E6007E;
}

@media (max-width: 900px) {
    .ukse-compare-table {
        min-width: 640px;
    }
}

@media (max-width: 782px) {
    .ukse-compare-tray {
        left: 1rem;
        right: 1rem;
        bottom: 1rem;
        width: auto;
    }

    .ukse-compare-tray__list {
        flex-direction: column;
    }

    .ukse-compare-tray__item {
        flex: 1 1 auto;
    }
}

@media (max-width: 600px) {
    .ukse-compare-table {
        min-width: 560px;
    }
}

/* === ABSOLUTE OVERRIDE: LANGUAGE NAME VISIBILITY & COLOUR === */
header .top-bar__lang .header-language-menu .screen-reader-text,
header .top-bar__lang .header-language-link .screen-reader-text {
  all: unset !important;
  display: inline !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding-left: 6px !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
  color: #FF9F40 !important;
  font-weight: 600 !important;
  vertical-align: middle;
}

header .top-bar__lang .header-language-link:hover .screen-reader-text {
  color: #FF4FB2 !important;
}

/* === FINAL POLISH: LANGUAGE SWITCHER HOVER + TOGGLE CORNERS === */

/* 1. Change hover text to dark navy */
header .top-bar__lang .header-language-link:hover .screen-reader-text {
  color: #000032 !important;   /* dark navy on magenta hover */
}

/* 2. Remove white background layer / corner artifacts on toggle */
header .top-bar__lang .header-language-toggle {
  background: #000032 !important;   /* match navy background */
  border: none !important;
  border-radius: 0 !important;      /* remove rounded edges */
  box-shadow: none !important;      /* eliminate subtle outline */
}

/* optional: reinforce dropdown border colour for crisp edges */
header .top-bar__lang .header-language-menu {
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 4px;
  overflow: hidden;                 /* trims any remaining white edge */
}
/* === PATCH: REMOVE WHITE GAP ON LANGUAGE TOGGLE HOVER === */
header .top-bar__lang .header-language-toggle {
  position: relative;
  background: #000032 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  top: 0 !important;
}
header .top-bar__lang .header-language-toggle:hover {
  transform: none !important;
  top: 0 !important;
  box-shadow: 0 0 0 1px #000032 inset;
}
/* === MOBILE HEADER CLEANUP === */
@media (max-width: 768px) {
  .top-bar,
  .partner-bar {
    display: none !important;
  }

  header .logo img {
    max-height: 34px !important;
    width: auto;
    margin-right: 0.5rem !important;
  }

  .header-cta {
    padding: 0.4rem 0.8rem;
    font-size: 0.75rem;
  }

  .header-cta span {
    font-size: inherit;
  }

  .header_bottom.wrap .grid__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .header_controls {
    display: flex;
    align-items: center;
    gap: 0.4rem;
  }

  .site_navigation.mob {
    text-align: center;
  }

  .mobile-nav-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: env(safe-area-inset-bottom, 60px);
    z-index: 2;
  }

  .mobile-nav-overlay {
    z-index: 1;
  }

  .mobile-lang-switcher {
    margin-bottom: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 0.75rem;
  }

  .mobile-lang-switcher select,
  .mobile-lang-switcher .wpml-ls {
    text-align: left;
  }

  .mobile-partner-section {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }

  .mobile-partner-label {
    display: block;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #f2f2f2;
    margin-bottom: 0.5rem;
  }

  .mobile-partner-logos {
    display: flex;
    justify-content: center;
  }

  .mobile-partner-logos-wrapper {
    background: #fff;
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
  }

  .mobile-partner-logos a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
  }

  .mobile-partner-logos-wrapper img {
    height: 24px;
    width: auto;
    object-fit: contain;
  }

  .mobile-contact {
    margin: 1rem 0;
  }

  .mobile-contact a {
    display: block;
    color: #ffffff;
    font-size: 0.85rem;
    margin: 0.25rem 0;
    text-decoration: none;
  }

  .mobile-contact a i {
    margin-right: 6px;
    color: #FF4FB2;
  }

  .mobile-partner-portal {
    display: inline-block;
    margin: 1rem 0;
    color: #FF9F40;
    font-weight: 600;
    text-decoration: none;
  }

  .mobile-partner-portal:hover {
    color: #FF4FB2;
  }

  body.header-sticky .header {
    position: relative !important;
    top: 0 !important;
    box-shadow: none !important;
  }
}

/* === FINAL COURSE CARD GRID DEFINITIONS — Phase XII-E === */
/* === COURSE CARD: FOUR-COLUMN GRID (REFINED) === */
/* === PHASE XII-G VISUAL ALIGNMENT PATCH === */
body .course-card {
    position: relative;
    display: grid;
    grid-template-columns: 150px 40% 35% 10%;
    align-items: start;
    align-content: start;
    background: #fff;
    border: 1px solid #dce1ec;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    column-gap: 1.5rem;
    row-gap: 0.75rem;
    box-shadow: 0 12px 24px rgba(0, 22, 85, 0.08);
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

body .course-card:hover,
body .course-card:focus-within {
    transform: translateY(-2px);
    border-color: rgba(34, 148, 210, 0.35);
    box-shadow: 0 18px 36px rgba(34, 148, 210, 0.2);
}

body .course-card .course-link-overlay {
    display: none;
}

body .course-card > * {
    position: relative;
    z-index: 3;
}

body .course-card .col-logo,
body .course-card .col-details,
body .course-card .col-calc,
body .course-card .col-actions {
    display: flex;
    align-items: center;
}

body .course-card .col-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    padding: 0.5rem 1rem 0.5rem 0.5rem;
    border-right: 1px solid #e6e9f2;
}

body .course-card .col-logo img {
    max-width: 150px;
    max-height: 55px;
    width: auto;
    height: auto;
}

body .course-card .col-details {
    flex-direction: column;
    gap: 0.4rem;
    align-self: start;
    align-items: flex-start;
    padding-right: 0.75rem;
}

body .course-card .course-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #000032;
    margin: 0;
    line-height: 1.3;
}

body .course-card .course-school {
    font-size: 1rem;
    font-weight: 600;
    color: #49536a;
    margin: 0;
}

body .course-card .course-taxonomies {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.35rem 0 0.25rem;
}

body .course-card .tax-chip {
    display: inline-block;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    margin-right: 0.25rem;
    margin-bottom: 0.15rem;
    color: #fff;
}

body .course-card .tax-type { background: #FF9F40; }
body .course-card .tax-schedule { background: #2294D2; }
body .course-card .tax-level { background: #E6007E; }
body .course-card .tax-extra { background: #9B51E0; }

body .course-card .course-meta {
    font-size: 0.9rem;
    color: #5b5e6f;
    line-height: 1.4;
    margin-top: 0.25rem;
}

body .course-card .course-price {
    display: block;
    font-size: 1rem;
    font-weight: 500;
    color: #E6007E;
    margin: 0.25rem 0 0;
}

body .course-card .course-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

body .course-card .col-calc {
    flex-direction: column;
    align-self: start;
    align-items: flex-start;
    gap: 0.75rem;
    padding-right: 0.75rem;
}

body .course-card .col-calc .calc-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    font-size: 0.85rem;
    gap: 0.25rem;
}

body .course-card .col-calc label {
    font-weight: 600;
    margin-bottom: 0.15rem;
}

body .course-card .col-calc .course-calculator {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    background: none;
    border: none;
    padding: 0;
}

body .course-card .col-calc .course-calculator__title,
body .course-card .col-calc .course-calculator__note,
body .course-card .col-calc .course-calculator__fees {
    display: none;
}

body .course-card .col-calc .course-calculator__label {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    font-weight: 600;
}

body .course-card .col-calc .course-calculator__weeks {
    margin: 0;
}

body .course-card .col-calc select,
body .course-card .col-calc .course-calculator__weeks {
    height: 28px;
    padding: 0 0.35rem;
    font-size: 0.85rem;
}

body .course-card .col-actions {
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    gap: 0.55rem;
    padding-right: 1rem;
    padding-left: 0;
    min-width: 150px;
}

body .course-card .col-actions .btn {
    width: 100%;
    min-width: 150px;
    text-align: center;
    border-radius: 6px;
    padding: 0.6rem 1rem;
    font-weight: 600;
    font-size: 0.9rem;
}

body .course-card .btn-view {
    background: #2294D2;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.55rem 0.9rem;
    font-weight: 600;
    font-size: 0.85rem;
    transition: background 0.2s ease;
}

body .course-card .btn-view:hover {
    background: #1b7cb3;
}

body .course-card .btn-compare {
    background: #FF9F40;
    border: none;
    color: #fff;
    transition: background 0.2s ease;
}

body .course-card .btn-compare:hover,
body .course-card .btn-compare:focus {
    background: #e8892d;
}

body .course-card .btn-quote {
    background: linear-gradient(90deg, #FF4FB2 0%, #E6007E 100%);
    border: none;
    color: #fff;
    box-shadow: 0 4px 10px rgba(230, 0, 126, 0.25);
}

body .course-card .btn-quote:hover,
body .course-card .btn-quote:focus {
    opacity: 0.9;
}

@media (max-width: 1024px) {
    body .course-card {
        grid-template-columns: 150px minmax(0, 1fr);
        column-gap: 1.25rem;
        row-gap: 1rem;
        padding: 1.25rem;
    }

    body .course-card .course-link-overlay {
        display: none;
    }

    body .course-card .col-logo {
        border-right: none;
        border-bottom: 1px solid #e6e9f2;
        padding-bottom: 1rem;
        margin-bottom: 1rem;
        justify-content: flex-start;
        grid-column: 1;
        grid-row: 1 / span 3;
    }

    body .course-card .col-details {
        padding-right: 0;
        grid-column: 2;
        grid-row: 1;
    }

    body .course-card .col-calc {
        padding-right: 0;
        grid-column: 2;
        grid-row: 2;
    }

    body .course-card .col-actions {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        min-width: 0;
        padding-right: 0;
        grid-column: 2;
        grid-row: 3;
    }

    body .course-card .col-actions .btn {
        width: 48%;
        min-width: auto;
    }
}

@media (max-width: 768px) {
    body .course-card {
        grid-template-columns: 1fr;
        row-gap: 1rem;
        padding: 1rem;
    }

    body .course-card .col-logo,
    body .course-card .col-details,
    body .course-card .col-calc,
    body .course-card .col-actions {
        grid-column: 1;
        grid-row: auto;
    }

    body .course-card .col-logo {
        border-bottom: none;
        margin-bottom: 0.5rem;
        padding: 0 0 0.5rem;
        justify-content: center;
    }

    body .course-card .col-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
        padding-right: 0;
    }

    body .course-card .col-actions .btn {
        width: 100%;
        min-width: 0;
    }
}

body .course-card:focus-within {
    outline: 3px solid var(--lse-tertiary-blue);
    outline-offset: 2px;
}
/* === END PATCH === */
/* === PHASE XII-K COMPACT HEIGHT === */

/* Inline price and total labels with values */
.col-calc .weekly,
.col-calc .total {
  display: inline-block !important;
  width: auto !important;
  margin: 0.1rem 0 !important;
}
.col-calc .weekly::after {
  content: " ";
}

/* Prevent label wrapping */
.col-calc label {
  display: inline-block !important;
  margin: 0 0.25rem 0 0 !important;
}

/* Fine-tune vertical rhythm */
.col-calc {
  gap: 0.15rem !important;
  line-height: 1.35 !important;
}

/* Ensure buttons stay contained */
.course-card .col-actions {
  align-self: flex-start !important;
  justify-content: flex-start !important;
}

.course-cards-grid .course-card {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border-radius: 8px;
}

/* === END COMPACT HEIGHT === */
/* === PHASE XII-K.1 INLINE CALCULATOR FIX === */

/* Make each calculator line compact and inline */
.course-calculator__line {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 0.25rem;
  margin: 0.25rem 0;
}

.course-calculator__label,
.course-calculator__weekly,
.course-calculator__line--total {
  display: inline-block;
  white-space: nowrap;
}

/* Tighten vertical rhythm */
.course-calculator__line strong,
.course-calculator__line span {
  font-weight: 500;
  line-height: 1.3;
}

/* Ensure Estimated total sits inline with amount */
.course-calculator__line--total {
  font-weight: 700;
  color: #000032;
}

/* === END INLINE CALCULATOR FIX === */
/* === PHASE XII-K.4 CALCULATOR + SCHOOL CPT PARITY FIX === */

/* Keep price range inline */
.course-calculator__line--price,
.course-calculator__line--total {
  display: flex !important;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 0.3rem;
  white-space: nowrap;
}

/* Remove unwanted extra text spacing from legacy meta lines */
.course-card .course-meta { display: none !important; }

/* Ensure School CPT uses same grid layout as Finder */
.course-cards-grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.course-cards-grid .course-card {
  width: 100%;
  margin: 0;
  padding: 0.75rem 1rem;
  border-radius: 8px;
}
/* === END PHASE XII-K.4 === */
/* === FINAL PHASE XII-G PATCH === */

body .course-card .col-calc {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

body .course-card .col-calc label:not(.course-calculator__label) {
    display: block;
    margin-bottom: 0.25rem;
    font-weight: 600;
}

body .course-card .col-calc select {
    width: 80px;
    margin-bottom: 0.35rem;
}

body .course-card .col-calc .weekly {
    margin-top: 0.25rem;
    margin-bottom: 0.15rem;
    font-weight: 500;
    color: #000032;
    display: block;
}

body .course-card .col-calc .total {
    font-weight: 700;
    color: #000032;
    display: block;
}

body .course-card .col-actions {
    align-self: flex-start;
    margin-left: auto;
}

body .course-card .course-link-overlay {
    display: none !important;
    pointer-events: none !important;
}

/* === END PATCH === */
/* === PHASE XII-H.1 FIX — RESTORE CHILD FLOWS === */
html body .course-card {
  display: grid !important;
  grid-template-columns: 150px 40% 35% 10% !important;
  align-items: start !important;
  column-gap: 0.75rem;
}

/* restore intended child layouts */
html body .course-card .col-logo { display: flex !important; align-items: center; justify-content: center; }
html body .course-card .col-details { display: block !important; }
html body .course-card .col-calc { display: flex !important; flex-direction: column; align-items: flex-start; }
html body .course-card .col-actions { display: flex !important; flex-direction: column; align-items: flex-end; }
/* === END FIX === */
/* === PHASE XII-H.3 VISIBILITY RESTORE === */
.course-card,
.course-card * {
  visibility: visible !important;
  opacity: 1 !important;
}

/* remove hiding/clip rules from legacy wrappers */
.ukse-course-card,
.ukse-course-card--horizontal,
.course-result-card {
  overflow: visible !important;
  height: auto !important;
  position: static !important;
  clip: auto !important;
  max-height: none !important;
  z-index: auto !important;
}

/* make sure grid children are allowed to expand */
.course-card > div {
  min-height: 1px;
}
/* === END RESTORE === */
/* === AUTO-FIX FROM PHASE XII-H.4 === */
.course-card::before,
.course-card::after,
.col.col-logo::before,
.col.col-logo::after,
.col.col-actions::before,
.col.col-actions::after {
  display: none !important;
  opacity: 0 !important;
}

.course-card,
.col.col-logo,
.col.col-actions {
  overflow: visible !important;
  z-index: auto !important;
}
/* === END AUTO-FIX === */
/* === PHASE XII-J GRID RATIO & BUTTON ALIGNMENT === */
.course-card {
  grid-template-columns: 150px 42% 28% 15%;
  column-gap: 1rem;
  align-items: flex-start;
}

html body .course-card {
  grid-template-columns: 150px 42% 28% 15% !important;
  column-gap: 1rem !important;
  align-items: flex-start !important;
}

.course-card .col-calc {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}
.col-calc label,
.col-calc .weekly,
.col-calc .total {
  display: block;
  width: 100%;
  margin: 0.15rem 0;
  line-height: 1.4;
}

.course-card .col-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 0.55rem;
  padding-top: 0.25rem;
  padding-right: 0.75rem;
}
.col-actions .btn {
  width: 100%;
  min-width: 140px;
  text-align: center;
}
/* === END PATCH === */

/* === PHASE XII-K.6 META + TAXONOMY PILL FIX === */

/* Inline price range inside calculator */
.course-calculator__line--price {
  display: flex !important;
  align-items: baseline;
  gap: 0.3rem;
  white-space: nowrap;
}

/* School name typography (Finder only) */
.course-school {
  font-size: 0.95rem;
  font-weight: 600;
  color: #222;
  margin: 0 0 0.35rem;
}

/* Canonical taxonomy pill colours */
.tax-type     { background:#FF9F40; }
.tax-schedule { background:#2294D2; }
.tax-city     { background:#9B51E0; }
.tax-hours    { background:#E6007E; }
.tax-level    { background:#000032; }

/* === END PHASE XII-K.6 === */
