@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Manrope:wght@400;500;600;700&display=swap');

/*
 * Multibrand presentation layer.
 * It intentionally changes presentation only: no element is hidden, reordered,
 * removed or generated here, so the catalogue and profile structure stay intact.
 */
body.lk-brand {
    --brand-body: "Manrope", sans-serif;
    --brand-display: "Fraunces", Georgia, serif;
    --brand-canvas: #f5f6f8;
    --brand-surface: #ffffff;
    --brand-surface-soft: #eef2f5;
    --brand-ink: #10243c;
    --brand-muted: #647184;
    --brand-accent: var(--gold, #c6982f);
    --brand-accent-strong: var(--navy, #0b2545);
    --brand-action-bg: var(--brand-accent-strong);
    --brand-action-text: #ffffff;
    --brand-on-strong: #ffffff;
    --brand-on-strong-muted: rgba(255, 255, 255, 0.76);
    --brand-on-strong-accent: #e8cf87;
    --brand-line: rgba(16, 36, 60, 0.12);
    --brand-radius-card: 20px;
    --brand-radius-field: 999px;
    --brand-radius-textarea: 14px;
    --brand-shadow: 0 18px 50px rgba(16, 36, 60, 0.11);
    background-color: var(--brand-canvas);
    color: var(--brand-ink);
    font-family: var(--brand-body);
}

body:is(.lk-brand-lk-spain, .lk-brand-lk-italy, .lk-brand-lk-poland) {
    --brand-body: "Manrope", sans-serif;
    --brand-display: "Fraunces", Georgia, serif;
    --brand-canvas: #f7f3ea;
    --brand-surface: #fffdf8;
    --brand-surface-soft: #efe7d7;
    --brand-ink: #10253f;
    --brand-muted: #6e6b66;
    --brand-accent: #c6982f;
    --brand-accent-strong: #bd242e;
    --brand-action-bg: #bd242e;
    --brand-action-text: #ffffff;
    --brand-line: rgba(189, 36, 46, 0.15);
    --brand-radius-card: 10px;
    --brand-radius-field: 8px;
    --brand-radius-textarea: 8px;
    --brand-shadow: 0 18px 48px rgba(33, 25, 18, 0.1);
}

body.lk-brand.lk-login-body {
    background-color: var(--brand-accent-strong);
    color: #ffffff;
}

body:is(.lk-brand-lk-spain, .lk-brand-lk-italy, .lk-brand-lk-poland).lk-login-body {
    background:
        radial-gradient(circle at 18% 18%, rgba(232, 196, 104, 0.2), transparent 24rem),
        linear-gradient(145deg, #8f151d, #bd242e 58%, #86121a);
}

body.lk-brand-travel-tuition.lk-login-body {
    background:
        radial-gradient(circle at 82% 12%, rgba(35, 169, 197, 0.42), transparent 30rem),
        linear-gradient(145deg, #0c2b40, #12324a 62%, #17627a);
}

body.lk-brand-ad-astra.lk-login-body {
    background:
        linear-gradient(115deg, transparent 0 68%, rgba(202, 93, 80, 0.2) 68% 69%, transparent 69%),
        linear-gradient(145deg, #292b32, #363942 66%, #24262c);
}

body.lk-brand.lk-login-body .lk-login-brand p {
    color: rgba(255, 255, 255, 0.72);
}

body.lk-brand.lk-login-body .lk-login-footer,
body.lk-brand.lk-login-body .lk-login-footer a {
    color: rgba(255, 255, 255, 0.62);
}

body.lk-brand.lk-login-body .lk-login-card {
    color: var(--brand-ink);
}

body.lk-brand.lk-login-body.lk-oauth-error .lk-login-card {
    background: var(--brand-surface);
    border-radius: var(--brand-radius-card);
    box-shadow: var(--brand-shadow);
}

body.lk-brand.lk-login-body.lk-oauth-error .lk-login-card .brand {
    color: var(--brand-ink);
}

body.lk-brand.lk-login-body.lk-oauth-error .lk-login-card .cta {
    background: var(--brand-action-bg);
    color: var(--brand-action-text);
    border-radius: var(--brand-radius-field);
}

body.lk-brand.lk-login-body .lk-submit-btn {
    background: var(--brand-action-bg);
    color: var(--brand-action-text);
    border-radius: var(--brand-radius-field);
}

body:is(.lk-brand-lk-spain, .lk-brand-lk-italy, .lk-brand-lk-poland).lk-login-body .lk-submit-btn {
    background: var(--brand-action-bg);
}

body.lk-brand.lk-login-body .lk-submit-btn:hover:not(:disabled) {
    background: var(--brand-accent-strong);
    color: #ffffff;
}

body.lk-brand-ad-astra.lk-login-body .lk-login-card {
    border: 1px solid rgba(255, 255, 255, 0.45);
}

body.lk-brand-travel-tuition {
    --brand-body: "Manrope", sans-serif;
    --brand-display: "Fraunces", Georgia, serif;
    --brand-canvas: #edf8fa;
    --brand-surface: #ffffff;
    --brand-surface-soft: #dff3f7;
    --brand-ink: #12324a;
    --brand-muted: #577386;
    --brand-accent: #f37978;
    --brand-accent-strong: #23a9c5;
    --brand-action-bg: #f37978;
    --brand-action-text: #12324a;
    --brand-on-strong-accent: #f8b8b5;
    --brand-line: rgba(35, 169, 197, 0.18);
    --brand-radius-card: 28px;
    --brand-radius-field: 999px;
    --brand-radius-textarea: 16px;
    --brand-shadow: 0 22px 55px rgba(18, 87, 110, 0.13);
}

body.lk-brand-ad-astra {
    --brand-body: Verdana, Geneva, sans-serif;
    --brand-display: Verdana, Geneva, sans-serif;
    --brand-canvas: #f1eee9;
    --brand-surface: #fffdfa;
    --brand-surface-soft: #e8e2db;
    --brand-ink: #363942;
    --brand-muted: #71727a;
    --brand-accent: #ca5d50;
    --brand-accent-strong: #363942;
    --brand-action-bg: #b44d43;
    --brand-action-text: #ffffff;
    --brand-on-strong-accent: #f1b2aa;
    --brand-line: rgba(54, 57, 66, 0.16);
    --brand-radius-card: 2px;
    --brand-radius-field: 2px;
    --brand-radius-textarea: 2px;
    --brand-shadow: 8px 8px 0 rgba(54, 57, 66, 0.12);
}

body.lk-brand :is(h1, h2, h3, .card-name, .school-name, .profile-title, .page-title) {
    color: var(--brand-ink);
    font-family: var(--brand-display);
}

/*
 * Contrast-safe text for coloured surfaces. These contextual rules must come
 * after the generic heading theme so brand colours never paint dark text over
 * a dark panel (or light text over a light fallback).
 */
body.lk-brand :is(.topbar, .top-bar, .admin-header, .editor-toolbar, .footer, footer:not(.drawer-actions)) {
    color: var(--brand-on-strong);
}

body.lk-brand :is(.topbar, .top-bar, .admin-header, .editor-toolbar, .footer, footer:not(.drawer-actions))
    :is(h1, h2, h3, h4, .page-title, .profile-title, .school-name) {
    color: var(--brand-on-strong);
}

body.lk-brand :is(.topbar, .top-bar, .admin-header, .editor-toolbar, .footer, footer:not(.drawer-actions))
    :is(p, small, .subtitle, .muted) {
    color: var(--brand-on-strong-muted);
}

/* Legacy profiles keep their original SVG node; the active logo is painted over it. */
body.lk-brand svg.logo-lk {
    background: var(--brand-logo-header) center / contain no-repeat;
}

body.lk-brand svg.logo-lk text {
    fill: transparent !important;
}

body.lk-brand :is(.topbar, .top-bar) {
    background: var(--brand-accent-strong);
    border-color: transparent;
}

body:is(.lk-brand-lk-spain, .lk-brand-lk-italy, .lk-brand-lk-poland) :is(.topbar, .top-bar) {
    border-bottom: 3px solid var(--brand-accent);
}

body.lk-brand-travel-tuition :is(.topbar, .top-bar) {
    background: linear-gradient(110deg, #12324a 0 58%, #17627a 100%);
}

body.lk-brand-ad-astra :is(.topbar, .top-bar) {
    border-bottom: 5px solid var(--brand-accent);
}

body.lk-brand-travel-tuition.lk-country-us :is(.topbar, .top-bar) h1,
body.lk-brand-ad-astra.lk-country-us :is(.topbar, .top-bar) h1 {
    color: #ffffff;
}

body.lk-brand :is(.school-card, .profile-card, .section, .panel, .lk-login-card, .hero-media-card) {
    background: var(--brand-surface);
    border-color: var(--brand-line);
    border-radius: var(--brand-radius-card);
    box-shadow: var(--brand-shadow);
}

body.lk-brand :is(.kpi, .country-card, .info-box, .mini-kpi) {
    background: var(--brand-surface);
    border: 1px solid var(--brand-line);
    border-radius: var(--brand-radius-card);
}

body.lk-brand :is(input, select, textarea, button, .country-pill, .filter-pill, .tag, .badge) {
    font-family: var(--brand-body);
}

body.lk-brand :is(input, select, .country-pill, .filter-pill) {
    border-color: var(--brand-line);
    border-radius: var(--brand-radius-field);
}

/* Multiline controls must never inherit the pill radius used by TT filters. */
body.lk-brand textarea {
    border-color: var(--brand-line);
    border-radius: var(--brand-radius-textarea);
}

body.lk-brand :is(button, .btn, .lk-google-btn, .country-pill.active, .filter-pill.active) {
    border-radius: var(--brand-radius-field);
}

body.lk-brand :is(.btn-primary, .filters button, .sm-copy-btn, .btn-share) {
    background: var(--brand-action-bg);
    border-color: var(--brand-action-bg);
    color: var(--brand-action-text);
}

body.lk-brand :is(.btn-primary, .filters button, .sm-copy-btn, .btn-share):hover {
    background: var(--brand-accent-strong);
    border-color: var(--brand-accent-strong);
    color: #ffffff;
}

body:is(.lk-brand-lk-spain, .lk-brand-lk-italy, .lk-brand-lk-poland) :is(.btn-primary, .filters button, .sm-copy-btn, .btn-share) {
    background: var(--brand-action-bg);
    border-color: var(--brand-action-bg);
}

body.lk-brand :is(.school-card, .profile-card, .section, .panel) a {
    color: var(--brand-accent-strong);
}

body.lk-brand :is(.card-price strong, .price strong, .price-value, .eyebrow, .kicker) {
    color: var(--brand-accent);
}

body.lk-brand .country-pill.active.favorites,
body.lk-brand .fav-star.active {
    background: var(--brand-action-bg);
    border-color: var(--brand-action-bg);
    color: var(--brand-action-text);
}

body.lk-brand .country-pill.favorites {
    border-color: var(--brand-accent) !important;
    color: var(--brand-accent-strong) !important;
}

body.lk-brand .country-pill.favorites:hover,
body.lk-brand .fav-star:hover {
    background: color-mix(in srgb, var(--brand-accent) 12%, var(--brand-surface));
    border-color: var(--brand-accent);
    color: var(--brand-accent-strong);
}

body.lk-brand .admin-fab-btn.primary,
body.lk-brand .user-badge,
body.lk-brand .admin-header {
    background: var(--brand-accent-strong);
}

body.lk-brand .admin-header {
    border-bottom-color: var(--brand-accent);
}

body.lk-brand .admin-fab-btn.logout {
    color: var(--brand-accent-strong) !important;
}

body.lk-brand .admin-fab-btn.logout:hover {
    background: var(--brand-surface-soft);
    border-color: var(--brand-accent);
    color: var(--brand-accent-strong) !important;
}

body.lk-brand .user-badge .role-tag,
body.lk-brand .admin-toolbar .btn-create {
    background: var(--brand-action-bg);
    color: var(--brand-action-text);
}

body.lk-brand .admin-overlay {
    background: color-mix(in srgb, var(--brand-accent-strong) 66%, transparent);
}

body.lk-brand .admin-panel {
    border-radius: var(--brand-radius-card);
}

body.lk-brand-ad-astra .admin-panel {
    border: 1px solid var(--brand-accent-strong);
    box-shadow: 8px 8px 0 rgba(54, 57, 66, 0.24);
}

body.lk-brand .card-img,
body.lk-brand .hero,
body.lk-brand .hero-media-card,
body.lk-brand .gallery-img,
body.lk-brand .photo-card {
    overflow: hidden;
}

body:is(.lk-brand-lk-spain, .lk-brand-lk-italy, .lk-brand-lk-poland) :is(.school-card, .profile-card, .section) {
    border-top: 2px solid rgba(198, 152, 47, 0.55);
}

body.lk-brand-travel-tuition :is(.school-card, .profile-card, .section) {
    border: 1px solid rgba(35, 169, 197, 0.2);
}

body.lk-brand-travel-tuition :is(.kpi, .country-card, .info-box, .mini-kpi) {
    border-color: rgba(35, 169, 197, 0.2);
    box-shadow: 0 12px 30px rgba(18, 87, 110, 0.08);
}

body.lk-brand-travel-tuition :is(.school-card, .profile-card) {
    transform: translateZ(0);
}

body.lk-brand-ad-astra :is(.school-card, .profile-card, .section) {
    border: 1px solid #363942;
}

body.lk-brand-ad-astra :is(.kpi, .country-card, .info-box, .mini-kpi) {
    border-color: #363942;
    box-shadow: 4px 4px 0 rgba(54, 57, 66, 0.11);
}

body.lk-brand-ad-astra :is(.btn-primary, .filters button, .sm-copy-btn, .btn-share) {
    border: 1px solid var(--brand-accent-strong);
    box-shadow: 3px 3px 0 rgba(54, 57, 66, 0.18);
}

/* The search filters contain primary actions and lightweight utility controls.
   Keep the latter out of the generic branded-button treatment. */
body.lk-search-page .filters .search-clear-btn {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 50%;
    box-shadow: none;
    color: var(--brand-ink);
}

body.lk-search-page .filters .search-clear-btn:hover {
    background: var(--brand-surface-soft);
    border: 0;
    box-shadow: none;
    color: var(--brand-accent-strong);
}

body.lk-search-page .filters .search-helper button {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: var(--brand-accent-strong);
}

body.lk-search-page .filters .search-helper button:hover {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--brand-accent);
}

body.lk-search-page .filters :is(.search-mini-btn, .clear-btn) {
    background: var(--brand-surface);
    border: 1px solid var(--brand-line);
    border-radius: var(--brand-radius-field);
    box-shadow: none;
    color: var(--brand-ink);
}

body.lk-search-page .filters :is(.search-mini-btn, .clear-btn):hover {
    background: var(--brand-surface-soft);
    border-color: var(--brand-accent);
    box-shadow: none;
    color: var(--brand-accent-strong);
}

body.lk-search-page .filters .smart-search-chip button {
    display: inline-flex;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 50%;
    box-shadow: none;
    color: var(--brand-ink-muted);
}

body.lk-search-page .filters .smart-search-chip button:hover {
    background: color-mix(in srgb, var(--brand-accent) 14%, transparent);
    border: 0;
    box-shadow: none;
    color: var(--brand-accent-strong);
}

body.lk-search-page .filters .smart-search-actions button {
    background: var(--brand-surface);
    border: 1px solid var(--brand-accent);
    border-radius: var(--brand-radius-field);
    box-shadow: none;
    color: var(--brand-accent-strong);
}

body.lk-search-page .filters .smart-search-actions button:hover {
    background: var(--brand-surface-soft);
    border-color: var(--brand-accent-strong);
    box-shadow: none;
    color: var(--brand-accent-strong);
}

body.lk-brand-ad-astra :is(.school-card, .profile-card) .card-img {
    border-bottom: 5px solid var(--brand-accent);
}

body.lk-brand.lk-country-uk {
    --country-detail: #c6982f;
}

body.lk-brand.lk-country-ie {
    --country-detail: #16835d;
}

body.lk-brand.lk-country-us {
    --country-detail: #315fa6;
}

body.lk-brand.lk-country-ca {
    --country-detail: #d44a4a;
}

body.lk-brand[class*="lk-country-"] :is(.profile-header, .school-header-section, .hero-media-card) {
    border-top: 4px solid var(--country-detail);
}

body:is(.lk-brand-lk-spain, .lk-brand-lk-italy, .lk-brand-lk-poland).lk-country-uk {
    --brand-accent-strong: #0b2545;
    --brand-ink: #10253f;
}

body.lk-brand :is(.presup-fab, .presup-pdf-btn) {
    background: var(--brand-accent-strong);
    color: #ffffff;
    box-shadow: 0 10px 28px color-mix(in srgb, var(--brand-accent-strong) 28%, transparent);
}

body.lk-brand .presup-header h3 {
    color: #ffffff;
}

body.lk-brand-travel-tuition .presup-fab {
    background: linear-gradient(135deg, var(--brand-accent-strong), #17627a);
}

body.lk-brand-ad-astra .presup-fab {
    background: var(--brand-action-bg);
    border: 1px solid var(--brand-accent-strong);
    box-shadow: 5px 5px 0 rgba(54, 57, 66, 0.18);
}

/* Canada historically hardcoded LK red throughout the template. */
body.lk-brand.lk-country-ca .profile-header {
    border-bottom-color: var(--brand-line);
    color: var(--brand-ink);
}

body.lk-brand.lk-country-ca :is(.header-flag, .logo-icon, .header-text .subtitle i, .badge, .stat-number, .school-meta i, .loc-item i, .price-val, .price-edit-link, .doc-link i, .tag-spec) {
    color: var(--brand-accent-strong) !important;
}

body.lk-brand.lk-country-ca :is(.header-text h1, .hero-media-note) {
    color: var(--brand-ink) !important;
}

body.lk-brand.lk-country-ca :is(.header-text .subtitle, .section-title, .pricing-table th) {
    color: var(--brand-accent-strong) !important;
    border-bottom-color: var(--brand-accent) !important;
}

body.lk-brand.lk-country-ca :is(.stat-card, .detail-item, .school-card) {
    border-color: var(--brand-accent) !important;
}

body.lk-brand.lk-country-ca :is(.badge, .tag-spec) {
    border-color: color-mix(in srgb, var(--brand-accent) 35%, transparent);
    background: color-mix(in srgb, var(--brand-accent) 10%, var(--brand-surface));
}

body.lk-brand.lk-country-ca .badge-status-active {
    background: #e8f5e9;
    border-color: #a5d6a7;
    color: #2e7d32;
}

body.lk-brand.lk-country-ca .badge-status-inactive {
    background: #f5f5f5;
    border-color: #e0e0e0;
    color: #777777;
}

body.lk-brand.lk-country-ca .lk-strip {
    background: linear-gradient(
        135deg,
        color-mix(in srgb, var(--brand-accent-strong) 55%, var(--brand-ink)),
        var(--brand-ink)
    );
    border-color: color-mix(in srgb, var(--brand-accent) 38%, transparent);
}

body.lk-brand.lk-country-ca .lk-strip .section-title {
    border-bottom-color: color-mix(in srgb, var(--brand-accent) 52%, transparent);
}

body.lk-brand.lk-country-ca .lk-item i {
    color: color-mix(in srgb, var(--brand-accent) 72%, #ffffff);
}

body.lk-brand.lk-country-ca .province-info {
    background: linear-gradient(
        135deg,
        color-mix(in srgb, var(--brand-accent-strong) 55%, var(--brand-ink)),
        var(--brand-ink)
    );
}

body.lk-brand.lk-country-ca :is(.doc-btn-primary) {
    background: var(--brand-accent-strong) !important;
    border-color: var(--brand-accent-strong) !important;
    color: var(--brand-action-text) !important;
}

body.lk-brand.lk-country-ca :is(.doc-btn-secondary, .doc-link:hover, .school-link:hover) {
    border-color: var(--brand-accent-strong) !important;
    color: var(--brand-accent-strong) !important;
}

body.lk-brand.lk-country-ca :is(.doc-link:hover, .school-link:hover, .pricing-table tr:hover) {
    background: var(--brand-surface-soft);
}

body.lk-brand.lk-country-ca :is(footer, .editor-toolbar) {
    background: var(--brand-accent-strong) !important;
    border-color: var(--brand-accent) !important;
}

body.lk-brand.lk-country-ca .editor-toolbar .badge {
    background: var(--brand-action-bg);
    color: var(--brand-action-text);
}

body.lk-brand.lk-country-ca i[style*="#bd242e" i] {
    color: var(--brand-accent-strong) !important;
}

body.lk-brand.lk-country-ie :is(.ie-proposal-strip strong, .ie-proposal-btn.primary) {
    color: #ffffff;
}

body.lk-brand.lk-country-ie .ie-proposal-btn.primary {
    background: var(--brand-accent-strong);
    border-color: var(--brand-accent-strong);
}

/* Country profile contrast must win over the generic multibrand heading rule. */
body.lk-brand.lk-country-us .hero:has(> img) .hero-overlay,
body.lk-brand.lk-country-us .hero:has(> img) .hero-overlay :is(h1, h2, h3, .location) {
    color: #ffffff;
}

body.lk-brand.lk-country-us .hero:not(:has(> img)) .hero-overlay,
body.lk-brand.lk-country-us .hero:not(:has(> img)) .hero-overlay :is(h1, h2, h3, .location),
body.lk-brand.lk-country-us .hero-overlay[style*="background:none" i],
body.lk-brand.lk-country-us .hero-overlay[style*="background:none" i] :is(h1, h2, h3, .location) {
    color: var(--brand-ink);
}

body.lk-brand.lk-country-ie .hero :is(h1, h2, h3, .location, .subtitle) {
    color: var(--brand-on-strong);
}

body.lk-brand.lk-country-uk .boarding {
    color: var(--brand-on-strong);
}

body.lk-brand.lk-country-uk .boarding h2 {
    color: var(--brand-on-strong);
}

body.lk-brand.lk-country-uk .boarding :is(h3, h4, .section-label, .budget-title) {
    color: var(--brand-on-strong-accent);
}

body.lk-brand.lk-country-uk .boarding :is(.boarding-intro, .boarding-desc, .residencias-text) {
    color: var(--brand-on-strong-muted);
}

body.lk-brand.lk-country-ca :is(.lk-strip, .province-info) {
    color: var(--brand-on-strong);
}

body.lk-brand.lk-country-ca :is(.lk-strip, .province-info)
    :is(h1, h2, h3, h4, .section-title, .detail-value) {
    color: var(--brand-on-strong);
}

body.lk-brand.lk-country-ca :is(.lk-strip, .province-info)
    :is(p, small, .detail-label, .muted) {
    color: var(--brand-on-strong-muted);
}

@media (max-width: 720px) {
    body.lk-brand {
        --brand-radius-card: 16px;
        --brand-shadow: 0 12px 30px rgba(16, 36, 60, 0.1);
    }

    body:is(.lk-brand-lk-spain, .lk-brand-lk-italy, .lk-brand-lk-poland) {
        --brand-radius-card: 10px;
    }

    body.lk-brand-travel-tuition {
        --brand-radius-card: 24px;
    }

    body.lk-brand-ad-astra {
        --brand-radius-card: 2px;
        --brand-shadow: 5px 5px 0 rgba(54, 57, 66, 0.12);
    }
}
