/* BSL Education — main.css v1.0.2 */

/* ── 1. RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(--font-body); color: var(--bsl-text); background: var(--bsl-white); line-height: 1.7; overflow-x: hidden; }
body.bsl-nav-open { overflow: hidden; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--bsl-sky-deep); text-decoration: none; transition: color var(--trans-fast); }
a:hover { color: var(--bsl-coral); }
ul, ol { list-style: none; }

/* ── 2. TYPOGRAPHY ── */
h1,h2,h3,h4,h5,h6 { font-family: var(--font-heading); font-weight: 400; line-height: 1.2; color: var(--bsl-navy); }
h1 { font-size: clamp(2rem,   5vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 4vw, 2.8rem); }
h3 { font-size: clamp(1.3rem, 3vw, 2.1rem); }
h4 { font-size: clamp(1.1rem, 2vw, 1.6rem); }
p  { margin-bottom: var(--space-sm); }
p:last-child { margin-bottom: 0; }

/* ── 3. ACCESSIBILITY ── */
.screen-reader-text { clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
.screen-reader-text:focus { clip: auto !important; clip-path: none; height: auto; left: 1.5rem; padding: 1rem 1.5rem; top: 1.5rem; width: auto; z-index: 100000; }
.bsl-skip-link { background: var(--bsl-coral); color: var(--bsl-white); font-family: var(--font-body); font-size: 1rem; font-weight: 700; border-radius: var(--radius-sm); }
:focus-visible { outline: 3px solid var(--bsl-sun); outline-offset: 2px; }

/* ── 4. LAYOUT ── */
.bsl-container { width: 100%; max-width: var(--container-max); margin: 0 auto; padding: 0 1.5rem; }
.bsl-container--narrow { max-width: 860px; }
.bsl-main { min-height: 60vh; }

/* ── 5. HEADER ── */
/* overflow: visible so dropdowns are NOT clipped by the header */
.bsl-header {
    position: relative;
    background: linear-gradient(165deg, var(--bsl-sky-deep) 0%, #1976D2 30%, var(--bsl-sky) 70%, var(--bsl-sky-light) 100%);
    z-index: 1000;
    overflow: visible;
}

/* ── 5a. CLOUDS ── */
/* overflow: hidden lives here now, NOT on .bsl-header */
.bsl-clouds {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
    /* clip-path allows clouds to enter from off-screen sides while containing top/bottom */
    clip-path: inset(0 -200px 0 -200px);
}
.bsl-cloud { position: absolute; height: auto; opacity: var(--bsl-cloud-opacity, 0.75); }
.bsl-cloud--1 { width: var(--bsl-cloud-w-1,200px); top: var(--bsl-cloud-top-1,46px); animation: bslCloudDrift var(--bsl-cloud-dur-1,28s) linear infinite; opacity: calc(var(--bsl-cloud-opacity,0.75) * var(--bsl-cloud-vis-1,1)); }
.bsl-cloud--2 { width: var(--bsl-cloud-w-2,145px); top: var(--bsl-cloud-top-2,55px); animation: bslCloudDrift var(--bsl-cloud-dur-2,20s) linear infinite; opacity: calc(var(--bsl-cloud-opacity,0.75) * var(--bsl-cloud-vis-2,1)); }
.bsl-cloud--3 { width: var(--bsl-cloud-w-3,260px); top: var(--bsl-cloud-top-3,53px); animation: bslCloudDrift var(--bsl-cloud-dur-3,35s) linear infinite; opacity: calc(var(--bsl-cloud-opacity,0.75) * var(--bsl-cloud-vis-3,1)); }
.bsl-cloud--4 { width: var(--bsl-cloud-w-4,175px); top: var(--bsl-cloud-top-4,64px); animation: bslCloudDrift var(--bsl-cloud-dur-4,22s) linear infinite; opacity: calc(var(--bsl-cloud-opacity,0.75) * var(--bsl-cloud-vis-4,1)); }
.bsl-cloud--5 { width: var(--bsl-cloud-w-5,130px); top: var(--bsl-cloud-top-5,43px); animation: bslCloudDrift var(--bsl-cloud-dur-5,18s) linear infinite; opacity: calc(var(--bsl-cloud-opacity,0.75) * var(--bsl-cloud-vis-5,1)); }
.bsl-cloud--6 { width: var(--bsl-cloud-w-6,215px); top: var(--bsl-cloud-top-6,55px); animation: bslCloudDrift var(--bsl-cloud-dur-6,25s) linear infinite; opacity: calc(var(--bsl-cloud-opacity,0.75) * var(--bsl-cloud-vis-6,1)); }
@keyframes bslCloudDrift { 0% { transform: translateX(-350px); } 100% { transform: translateX(calc(100vw + 350px)); } }

/* ── 5b. STARS ── */
.bsl-stars { position: absolute; inset: 0; pointer-events: none; z-index: 2; }
.bsl-star { position: absolute; color: var(--bsl-sun); font-size: 1.2rem; animation: bslTwinkle 3s ease-in-out infinite; }
.bsl-star--1 { top: 15%; left: 8%;  animation-delay: 0s;   font-size: 1rem;  }
.bsl-star--2 { top: 30%; left: 22%; animation-delay: 0.8s; font-size: 1.4rem;}
.bsl-star--3 { top: 12%; left: 55%; animation-delay: 1.5s; font-size: 0.9rem;}
.bsl-star--4 { top: 40%; left: 72%; animation-delay: 0.3s; font-size: 1.2rem;}
.bsl-star--5 { top: 20%; left: 88%; animation-delay: 1.1s; font-size: 1rem;  }
@keyframes bslTwinkle { 0%,100% { opacity:0.3; transform:scale(0.9) rotate(0deg); } 50% { opacity:1; transform:scale(1.2) rotate(15deg); } }

/* ── 5c. TOP BAR ── */
.bsl-topbar { position: relative; z-index: 10; background: rgba(13,37,88,0.35); backdrop-filter: blur(4px); border-bottom: 1px solid rgba(255,255,255,0.15); padding: 0.5rem 0; }
.bsl-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); flex-wrap: wrap; }
.bsl-topbar__left { display: flex; align-items: center; gap: var(--space-sm); flex-wrap: wrap; }
.bsl-topbar__phone { display: flex; align-items: center; gap: 0.4rem; color: var(--bsl-white); font-weight: 700; font-size: 0.95rem; text-decoration: none; transition: color var(--trans-fast); }
.bsl-topbar__phone:hover { color: var(--bsl-sun); }
.bsl-topbar__divider { color: rgba(255,255,255,0.35); }
.bsl-topbar__tagline { color: rgba(255,255,255,0.85); font-size: 0.88rem; font-style: italic; }
.bsl-topbar__cta { background: var(--bsl-sun); color: var(--bsl-navy); padding: 0.3rem 1rem; border-radius: var(--radius-pill); font-weight: 800; font-size: 0.85rem; text-decoration: none; transition: background var(--trans-fast), transform var(--trans-fast); white-space: nowrap; }
.bsl-topbar__cta:hover { background: var(--bsl-white); color: var(--bsl-navy); transform: translateY(-1px); }

/* ── 5d. MAIN BAR ── */
.bsl-mainbar { position: relative; z-index: 10; padding: 1rem 0; }
.bsl-mainbar__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); }

/* ── 5e. LOGO ── */
.bsl-logo { flex-shrink: 0; position: relative; z-index: 10; }
.bsl-logo__link { display: inline-block; text-decoration: none; transition: transform var(--trans-normal), opacity var(--trans-fast); }
.bsl-logo__link:hover { transform: scale(1.03); opacity: 0.9; }
.bsl-logo__img { height: var(--bsl-logo-h-desktop, 80px); width: auto; max-width: 280px; object-fit: contain; }
.bsl-logo__link--text { display: flex; flex-direction: column; }
.bsl-logo__name { font-family: var(--font-heading); font-size: 1.8rem; color: var(--bsl-white); line-height: 1; text-shadow: 0 2px 8px rgba(0,0,0,0.2); }
.bsl-logo__tagline { font-size: 0.78rem; color: rgba(255,255,255,0.8); font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; margin-top: 0.2rem; }

/* ── 5f. DESKTOP NAV ── */
.bsl-nav { flex: 1; display: flex; justify-content: flex-end; }
.bsl-nav__list { display: flex; align-items: center; gap: 0.25rem; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; justify-content: flex-end; }
.bsl-nav__list > .menu-item > a { display: flex; align-items: center; gap: 0.3rem; padding: 0.5rem 0.9rem; font-family: var(--font-body); font-weight: 700; font-size: 0.9rem; color: var(--bsl-white); text-decoration: none; border-radius: var(--radius-pill); white-space: nowrap; transition: background var(--trans-fast), color var(--trans-fast), transform var(--trans-fast); }
.bsl-nav__list > .menu-item > a:hover,
.bsl-nav__list > .menu-item.current-menu-item > a,
.bsl-nav__list > .menu-item.current-menu-parent > a,
.bsl-nav__list > .menu-item.current-menu-ancestor > a { background: rgba(255,255,255,0.2); color: var(--bsl-sun); transform: translateY(-1px); }
.bsl-nav__arrow { font-size: 0.65em; opacity: 0.7; transition: transform var(--trans-fast); display: inline-block; }
.menu-item-has-children:hover .bsl-nav__arrow,
.menu-item-has-children:focus-within .bsl-nav__arrow { transform: rotate(180deg); }

/* ── 5g. DROPDOWNS ── */
/* z-index high enough to clear anything in page content */
/* visibility delay on hide gives the cursor time to travel to the submenu */
.bsl-nav__list .sub-menu { position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%) translateY(-8px); background: var(--bsl-white); border-radius: var(--radius-md); box-shadow: var(--shadow-lg); min-width: 220px; padding: 0.5rem; list-style: none; margin: 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity var(--trans-normal), transform var(--trans-normal), visibility 0s linear 0.3s; z-index: 99999; border: 2px solid var(--bsl-sky-light); }
.bsl-nav__list .menu-item-has-children { position: relative; }
.bsl-nav__list .menu-item-has-children:hover .sub-menu,
.bsl-nav__list .menu-item-has-children:focus-within .sub-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); transition: opacity var(--trans-normal), transform var(--trans-normal), visibility 0s linear 0s; }
/* Invisible bridge fills the gap between nav link and dropdown so the cursor doesn't "leave" the trigger */
.bsl-nav__list .menu-item-has-children::after { content: ''; position: absolute; top: 100%; left: -10px; right: -10px; height: 16px; }
.bsl-nav__list .sub-menu .menu-item > a { display: block; padding: 0.55rem 1rem; font-size: 0.88rem; font-weight: 600; color: var(--bsl-text); border-radius: var(--radius-sm); transition: background var(--trans-fast), color var(--trans-fast), padding-left var(--trans-fast); text-decoration: none; }
.bsl-nav__list .sub-menu .menu-item > a:hover { background: var(--bsl-cloud); color: var(--bsl-sky-deep); padding-left: 1.3rem; }
.bsl-nav__list .sub-menu .menu-item.current-menu-item > a { background: var(--bsl-sky); color: var(--bsl-white); }

/* ── Third level — flyout to the right ── */
/* Second level items must be position:relative so flyout anchors correctly */
.bsl-nav__list .sub-menu > .menu-item {
    position: relative;
}

.bsl-nav__list .sub-menu > .menu-item > .sub-menu {
    position: absolute;
    top: -0.5rem;
    left: 100%;
    transform: translateX(8px);
    background: var(--bsl-white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    min-width: 210px;
    padding: 0.5rem;
    list-style: none;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--trans-normal), transform var(--trans-normal), visibility 0s linear 0.3s;
    z-index: 99999;
    border: 2px solid var(--bsl-sky-light);
}

.bsl-nav__list .sub-menu > .menu-item-has-children:hover > .sub-menu,
.bsl-nav__list .sub-menu > .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0);
    transition: opacity var(--trans-normal), transform var(--trans-normal), visibility 0s linear 0s;
}

/* › arrow on second-level parent items */
.bsl-nav__list .sub-menu > .menu-item-has-children > a::after {
    content: ' ›';
    float: right;
    margin-left: 0.5rem;
    color: var(--bsl-sky);
    font-weight: 700;
}

/* Hide the Walker-generated arrow spans inside sub-menus — only keep them on top level */
.bsl-nav__list .sub-menu .bsl-nav__arrow {
    display: none;
}

/* ── 5h. HAMBURGER ── */
.bsl-hamburger { display: none; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 44px; height: 44px; background: rgba(255,255,255,0.2); border: 2px solid rgba(255,255,255,0.5); border-radius: var(--radius-sm); cursor: pointer; padding: 0.5rem; transition: background var(--trans-fast); position: relative; z-index: 10; }
.bsl-hamburger:hover { background: rgba(255,255,255,0.35); }
.bsl-hamburger__line { display: block; width: 22px; height: 2.5px; background: var(--bsl-white); border-radius: 2px; transition: transform var(--trans-normal), opacity var(--trans-normal); }
.bsl-hamburger.is-open .bsl-hamburger__line:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.bsl-hamburger.is-open .bsl-hamburger__line:nth-child(2) { opacity: 0; transform: scaleX(0); }
.bsl-hamburger.is-open .bsl-hamburger__line:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* ── 5i. WAVE ── */
.bsl-header__wave { position: relative; z-index: 5; margin-top: -2px; line-height: 0; }
.bsl-header__wave svg { width: 100%; display: block; height: 60px; }

/* ── 6. MOBILE NAV ── */
.bsl-mobile-nav { position: fixed; inset: 0; background: var(--bsl-navy); z-index: 9999; display: flex; flex-direction: column; transform: translateX(100%); transition: transform 0.35s cubic-bezier(0.4,0,0.2,1); overflow-y: auto; -webkit-overflow-scrolling: touch; }
.bsl-mobile-nav.is-open { transform: translateX(0); }
.bsl-mobile-nav__header { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem; border-bottom: 1px solid rgba(255,255,255,0.1); background: rgba(13,37,88,0.5); }
.bsl-mobile-nav__logo .bsl-logo__img { height: 60px; filter: brightness(0) invert(1); }
.bsl-mobile-nav__logo .bsl-logo__name { font-size: 1.5rem; color: var(--bsl-white); }
.bsl-mobile-nav__close { width: 44px; height: 44px; background: rgba(255,255,255,0.1); border: 2px solid rgba(255,255,255,0.3); border-radius: 50%; color: var(--bsl-white); font-size: 1.5rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background var(--trans-fast); flex-shrink: 0; }
.bsl-mobile-nav__close:hover { background: var(--bsl-coral); }
.bsl-mobile-nav__inner { flex: 1; padding: 1rem 0; }

/* Mobile nav list items */
.bsl-mobile-nav__list { list-style: none; margin: 0; padding: 0; }
.bsl-mobile-nav__list .menu-item > a { display: flex; align-items: center; justify-content: space-between; padding: 0.9rem 1.5rem; color: var(--bsl-white); font-weight: 600; font-size: 1.05rem; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.06); transition: background var(--trans-fast), color var(--trans-fast), padding-left var(--trans-fast); }
.bsl-mobile-nav__list .menu-item > a:hover { background: rgba(255,255,255,0.08); color: var(--bsl-sun); padding-left: 2rem; }
.bsl-mobile-nav__list .menu-item.current-menu-item > a { color: var(--bsl-sun); background: rgba(255,215,64,0.1); }

/* Mobile dropdown toggle arrow */
.bsl-mobile-nav__list .menu-item-has-children > a::after { content: '▸'; font-size: 0.8em; transition: transform var(--trans-normal); opacity: 0.6; flex-shrink: 0; }
.bsl-mobile-nav__list .menu-item-has-children.is-open > a::after { transform: rotate(90deg); opacity: 1; }

/* Mobile sub-menus */
.bsl-mobile-nav__list .sub-menu { list-style: none; margin: 0; padding: 0; background: rgba(0,0,0,0.2); display: none; }
.bsl-mobile-nav__list .menu-item-has-children.is-open > .sub-menu { display: block; }
.bsl-mobile-nav__list .sub-menu .menu-item > a { padding-left: 2.5rem; font-size: 0.95rem; font-weight: 500; color: rgba(255,255,255,0.8); justify-content: flex-start; }
.bsl-mobile-nav__list .sub-menu .menu-item > a:hover { color: var(--bsl-sky-light); padding-left: 3rem; }
.bsl-mobile-nav__list .sub-menu .menu-item > a::after { display: none; }

/* Third level mobile — deeper indent */
.bsl-mobile-nav__list .sub-menu .sub-menu { background: rgba(0,0,0,0.15); display: none; }
.bsl-mobile-nav__list .sub-menu .menu-item-has-children.is-open > .sub-menu { display: block; }
.bsl-mobile-nav__list .sub-menu .sub-menu .menu-item > a { padding-left: 3.5rem; font-size: 0.88rem; color: rgba(255,255,255,0.7); }
.bsl-mobile-nav__list .sub-menu .sub-menu .menu-item > a:hover { padding-left: 4rem; color: var(--bsl-sky-light); }
/* Show arrow again on second-level parents in mobile */
.bsl-mobile-nav__list .sub-menu .menu-item-has-children > a { display: flex; justify-content: space-between; }
.bsl-mobile-nav__list .sub-menu .menu-item-has-children > a::after { display: inline-block !important; content: '▸'; font-size: 0.8em; opacity: 0.6; transition: transform var(--trans-normal); }
.bsl-mobile-nav__list .sub-menu .menu-item-has-children.is-open > a::after { transform: rotate(90deg); opacity: 1; }

.bsl-mobile-nav__footer { padding: 0; border-top: 1px solid rgba(255,255,255,0.1); background: rgba(13,37,88,0.5); }
.bsl-mobile-nav__footer-inner { padding: 1.5rem; display: flex; align-items: center; justify-content: center; }
.bsl-mobile-nav__phone { display: flex; align-items: center; justify-content: center; gap: 0.5rem; color: var(--bsl-sun); font-weight: 800; font-size: 1.1rem; text-decoration: none; }

/* ── 7. OVERLAY ── */
.bsl-overlay { position: fixed; inset: 0; background: rgba(13,37,88,0.6); backdrop-filter: blur(3px); z-index: 9998; opacity: 0; visibility: hidden; transition: opacity var(--trans-normal), visibility var(--trans-normal); }
.bsl-overlay.is-active { opacity: 1; visibility: visible; }

/* ── 8. BUTTONS ── */
.bsl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.75rem 1.75rem; font-family: var(--font-body); font-weight: 800; font-size: 0.95rem; text-decoration: none; border: none; border-radius: var(--radius-pill); cursor: pointer; transition: background var(--trans-fast), transform var(--trans-fast), box-shadow var(--trans-fast); white-space: nowrap; line-height: 1; }
.bsl-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.bsl-btn--coral { background: var(--bsl-coral); color: var(--bsl-white); }
.bsl-btn--coral:hover { background: var(--bsl-coral-dark); color: var(--bsl-white); }
.bsl-btn--sky { background: var(--bsl-sky); color: var(--bsl-white); }
.bsl-btn--sky:hover { background: var(--bsl-sky-deep); color: var(--bsl-white); }
.bsl-btn--sun { background: var(--bsl-sun); color: var(--bsl-navy); }
.bsl-btn--sun:hover { background: #FFC107; color: var(--bsl-navy); }
.bsl-btn--green { background: var(--bsl-green); color: var(--bsl-white); }
.bsl-btn--sm  { padding: 0.5rem 1.2rem; font-size: 0.85rem; }
.bsl-btn--lg  { padding: 1rem 2.2rem; font-size: 1.05rem; }

/* ── 9. BADGES ── */
.bsl-badge { display: inline-flex; align-items: center; padding: 0.3rem 0.85rem; font-size: 0.8rem; font-weight: 700; border-radius: var(--radius-pill); text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; }
.bsl-badge--sky    { background: var(--bsl-sky-light); color: var(--bsl-sky-deep); }
.bsl-badge--green  { background: rgba(86,200,112,0.2); color: #2E7D32; }
.bsl-badge--coral  { background: rgba(255,107,107,0.15); color: #C62828; }

/* ── 10. FOOTER ── */
.bsl-footer { position: relative; background: var(--bsl-navy); color: rgba(255,255,255,0.85); }
.bsl-footer__wave { position: relative; line-height: 0; margin-bottom: -2px; }
.bsl-footer__wave svg { width: 100%; display: block; height: 80px; }

/* Footer stars */
.bsl-footer__stars { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 10; }
.bsl-fstar { position: absolute; font-size: 1.4rem; animation: bslTwinkle 4s ease-in-out infinite; }
.bsl-fstar--1 { color: var(--bsl-sun);    top: 15%; left: 5%;  animation-delay: 0.2s; font-size: 1.6rem; }
.bsl-fstar--2 { color: var(--bsl-purple); top: 35%; left: 15%; animation-delay: 1.4s; font-size: 1rem;  }
.bsl-fstar--3 { color: var(--bsl-sky);    top: 10%; left: 45%; animation-delay: 0.7s; font-size: 1.2rem; }
.bsl-fstar--4 { color: var(--bsl-sun);    top: 50%; left: 65%; animation-delay: 2.1s; font-size: 0.9rem; }
.bsl-fstar--5 { color: var(--bsl-green);  top: 20%; left: 80%; animation-delay: 0.9s; font-size: 1.4rem; }
.bsl-fstar--6 { color: var(--bsl-coral);  top: 60%; left: 90%; animation-delay: 1.8s; font-size: 1rem;  }

/* Footer brand strip — logo + tagline + badges centred above columns */
.bsl-footer__brand { padding: 2.5rem 0 0; position: relative; z-index: 5; }
.bsl-footer__brand-inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.75rem; }
.bsl-footer__logo { margin: 0; }
.bsl-footer__logo-img { height: var(--bsl-logo-h-footer, 80px); width: auto; object-fit: contain; filter: brightness(0) invert(1); opacity: 0.9; }
.bsl-footer__logo-text { font-family: var(--bsl-font-heading, var(--font-heading)); font-size: 2rem; color: var(--bsl-white); text-decoration: none; }
.bsl-footer__tagline { color: rgba(255,255,255,0.75); font-size: 0.95rem; line-height: 1.6; max-width: 560px; margin: 0; }
.bsl-footer__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; }
.bsl-footer__badges .bsl-badge { background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.85); border: 1px solid rgba(255,255,255,0.2); font-size: 0.72rem; }

.bsl-footer__divider { height: 1px; background: rgba(255,255,255,0.1); margin: 2rem 0 0; position: relative; z-index: 5; }

.bsl-footer__main { padding: 2rem 0 2.5rem; position: relative; z-index: 5; }
.bsl-footer__grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 2.5rem; align-items: start; }
.bsl-footer__heading { font-family: var(--bsl-font-subheading, var(--font-heading)); font-size: 1.3rem; color: var(--bsl-white); margin-bottom: 1.2rem; display: flex; align-items: center; gap: 0.5rem; font-weight: 600; }
.bsl-footer__heading-icon { font-size: 1.1rem; }

/* Branch column content */
.bsl-footer__branch-content { color: rgba(255,255,255,0.75); font-size: var(--bsl-size-footer, 1rem); line-height: 1.8; }
.bsl-footer__branch-content strong, .bsl-footer__branch-content b { color: rgba(255,255,255,0.95); font-weight: 600; }
.bsl-footer__branch-content a { color: rgba(255,255,255,0.85); text-decoration: none; transition: color var(--trans-fast); font-weight: 500; }
.bsl-footer__branch-content a:hover { color: var(--bsl-sun); }
.bsl-footer__branch-content p { margin-bottom: 0.6rem; }
.bsl-footer__branch-content ul { list-style: disc; padding-left: 1.2rem; }

.bsl-footer__nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.bsl-footer__nav li a { color: rgba(255,255,255,0.75); text-decoration: none; font-size: 0.92rem; font-weight: 500; transition: color var(--trans-fast), padding-left var(--trans-fast); display: flex; align-items: center; gap: 0.4rem; padding: 0.2rem 0; }
.bsl-footer__nav li a::before { content: '▸'; color: var(--bsl-sky); font-size: 0.75em; opacity: 0.7; transition: opacity var(--trans-fast), transform var(--trans-fast); }
.bsl-footer__nav li a:hover { color: var(--bsl-sun); padding-left: 0.4rem; }

.bsl-footer__contact-list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: flex; flex-direction: column; gap: 0.9rem; }
.bsl-footer__contact-item { display: flex; align-items: flex-start; gap: 0.75rem; }
.bsl-footer__contact-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 0.1rem; }
.bsl-footer__contact-item a { color: rgba(255,255,255,0.85); text-decoration: none; font-size: 0.95rem; font-weight: 600; transition: color var(--trans-fast); }
.bsl-footer__contact-item a:hover { color: var(--bsl-sun); }
.bsl-footer__address { font-style: normal; color: rgba(255,255,255,0.75); font-size: 0.92rem; line-height: 1.6; }
.bsl-footer__address-label { color: var(--bsl-sky-light); font-weight: 700; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.05em; }
.bsl-footer__contact-btn { width: 100%; justify-content: center; }

.bsl-footer__bottom { border-top: 1px solid rgba(255,255,255,0.1); padding: 1.2rem 0; position: relative; z-index: 5; }
.bsl-footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.bsl-footer__copyright, .bsl-footer__credit { font-size: 0.85rem; color: rgba(255,255,255,0.5); margin: 0; }
.bsl-footer__copyright a, .bsl-footer__credit a { color: rgba(255,255,255,0.7); transition: color var(--trans-fast); }
.bsl-footer__copyright a:hover, .bsl-footer__credit a:hover { color: var(--bsl-sky-light); }

/* ── 11. CONTENT ── */
.bsl-content { font-size: 1rem; line-height: 1.8; color: var(--bsl-text); }
.bsl-content h1,.bsl-content h2,.bsl-content h3,.bsl-content h4,.bsl-content h5,.bsl-content h6 { margin-top: 1.8em; margin-bottom: 0.6em; }
.bsl-content p { margin-bottom: 1.2em; }
.bsl-content a { color: var(--bsl-sky-deep); text-decoration: underline; text-decoration-color: var(--bsl-sky-light); text-underline-offset: 3px; font-weight: 600; }
.bsl-content ul { margin: 0 0 1.2em 1.5rem; list-style: disc; }
.bsl-content ol { margin: 0 0 1.2em 1.5rem; list-style: decimal; }
.bsl-content blockquote { border-left: 4px solid var(--bsl-sky); background: var(--bsl-cloud); padding: 1.2rem 1.5rem; margin: 1.5rem 0; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; font-style: italic; color: var(--bsl-text-soft); }
.bsl-content img { max-width: 100%; border-radius: var(--radius-md); margin: 1.5rem 0; }

/* ── 12. PAGE ── */
.bsl-page-wrap { padding: var(--space-xl) 0; }
.bsl-page__header { margin-bottom: var(--space-lg); padding-bottom: var(--space-md); border-bottom: 3px solid var(--bsl-sky-light); }
.bsl-page__title { font-size: clamp(2rem,5vw,3.2rem); color: var(--bsl-navy); }
.bsl-page__title::after { content: ''; display: block; width: 60px; height: 4px; background: linear-gradient(90deg, var(--bsl-coral), var(--bsl-sun)); border-radius: var(--radius-pill); margin-top: 0.5rem; }

/* ── 13. BLOG ── */
.bsl-archive-wrap { padding: var(--space-xl) 0; }
.bsl-posts-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(320px,1fr)); gap: 2rem; }
.bsl-post-card { background: var(--bsl-white); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); overflow: hidden; transition: transform var(--trans-normal), box-shadow var(--trans-normal); border: 2px solid transparent; }
.bsl-post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--bsl-sky-light); }
.bsl-post-card__thumb img { width: 100%; height: 220px; object-fit: cover; transition: transform var(--trans-slow); }
.bsl-post-card:hover .bsl-post-card__thumb img { transform: scale(1.05); }
.bsl-post-card__body { padding: 1.5rem; }
.bsl-post-card__title { font-size: 1.25rem; margin-bottom: 0.75rem; }
.bsl-post-card__title a { color: var(--bsl-navy); text-decoration: none; transition: color var(--trans-fast); }
.bsl-post-card__title a:hover { color: var(--bsl-sky); }
.bsl-post-card__excerpt { color: var(--bsl-text-soft); font-size: 0.92rem; margin-bottom: 1.25rem; }

/* ── 14. SINGLE ── */
.bsl-single-wrap { padding: var(--space-xl) 0; }
.bsl-single-post__title { font-size: clamp(1.8rem,5vw,3rem); color: var(--bsl-navy); margin-bottom: 1rem; }
.bsl-single-post__thumb { margin-bottom: 2.5rem; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); }
.bsl-single-post__thumb img { width: 100%; height: auto; }

/* ── 15. 404 ── */
.bsl-404-wrap { padding: var(--space-2xl) 0; text-align: center; }
.bsl-404__number { font-family: var(--font-heading); font-size: 8rem; color: var(--bsl-sky-light); line-height: 1; -webkit-text-stroke: 3px var(--bsl-sky); }
.bsl-404__title { font-size: clamp(1.4rem,4vw,2rem); color: var(--bsl-navy); margin-bottom: 1rem; }
.bsl-404__actions { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.5rem; }

/* ── 16. CLOUDS WELL FONT UTILITIES ── */
.bsl-font-clouds { font-family: 'Clouds Well', var(--font-heading); font-weight: 400; }
.bsl-clouds-well-wrap { position: relative; display: inline-block; line-height: 1; }
.bsl-clouds-well-shadow { font-family: 'Clouds Well Shadow', var(--font-heading); color: rgba(21,101,192,0.35); display: block; }
.bsl-clouds-well-base  { font-family: 'Clouds Well', var(--font-heading); color: var(--bsl-white); position: absolute; top: 0; left: 0; display: block; }
.bsl-clouds-well-inner { font-family: 'Clouds Well Inner', var(--font-heading); color: rgba(255,255,255,0.55); position: absolute; top: 0; left: 0; display: block; }

/* ── 17. SEARCH ── */
.search-form { display: flex; gap: 0.5rem; }
.search-form input[type="search"] { flex: 1; padding: 0.65rem 1rem; border: 2px solid var(--bsl-sky-light); border-radius: var(--radius-pill); font-family: var(--font-body); font-size: 0.95rem; color: var(--bsl-text); outline: none; transition: border-color var(--trans-fast), box-shadow var(--trans-fast); }
.search-form input[type="search"]:focus { border-color: var(--bsl-sky); box-shadow: 0 0 0 3px rgba(66,170,223,0.2); }
.search-form button, .search-form input[type="submit"] { padding: 0.65rem 1.25rem; background: var(--bsl-sky); color: var(--bsl-white); border: none; border-radius: var(--radius-pill); font-family: var(--font-body); font-weight: 700; cursor: pointer; transition: background var(--trans-fast); }
.search-form button:hover, .search-form input[type="submit"]:hover { background: var(--bsl-sky-deep); }

/* ── 18. ELEMENTOR ── */
.bsl-has-elementor .elementor-section.elementor-section-stretched { max-width: 100% !important; }
.elementor-popup-modal { z-index: 10100 !important; }

/* ── 19. REDUCED MOTION ── */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* ── 20. RESPONSIVE ── */
@media (max-width: 1100px) {
    .bsl-nav__list > .menu-item > a { padding: 0.45rem 0.7rem; font-size: 0.84rem; }
    .bsl-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .bsl-footer__col--branch:last-child { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
    .bsl-nav { display: none; }
    .bsl-hamburger { display: flex; }
    .bsl-topbar__tagline { display: none; }
    .bsl-mainbar { padding: 0.75rem 0; }
    .bsl-logo__img { height: var(--bsl-logo-h-mobile, 60px); }
    .bsl-header__wave svg { height: 40px; }
    .bsl-footer__grid { grid-template-columns: 1fr; gap: 2rem; }
    .bsl-footer__col--branch:last-child { grid-column: auto; }
    .bsl-posts-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .bsl-container { padding: 0 1rem; }
    .bsl-topbar__right { display: none; }
    .bsl-logo__img { height: var(--bsl-logo-h-mobile, 50px); }
    .bsl-footer__bottom-inner { flex-direction: column; text-align: center; }
    .bsl-404__actions { flex-direction: column; align-items: center; }
}
