/* =========================================================
   LAUSET site enhancements (landing page + shared helpers)
   Built on the theme variables defined in style.css
   ========================================================= */

/* ---------- Shared ---------- */
/* Warm neutrals derived from the theme maroon. Sections fade between white and
   these tones; deep maroon is reserved for the hero, the stats panel and the footer. */
:root {
    --lau-sand: #faf6f4;
    --lau-blush: #f5ece9;
    --lau-wine-deep: #2e0a07;
}
img.is-placeholder { object-fit: cover; background: #eceef1; }

/* The template's navy testimonial overlay clashes with the LAUSET palette (all pages). */
.ts-bg::before { background: linear-gradient(135deg, rgba(46, 10, 7, .9) 0%, rgba(84, 18, 13, .86) 100%); }

.lau-btn-ghost,
.lau-btn-outline {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 13px 26px; border-radius: 50px; font-weight: 500;
    transition: var(--transition2); text-decoration: none; line-height: 1.2;
}
.lau-btn-ghost { color: #fff; border: 1.5px solid rgba(255, 255, 255, .7); background: rgba(255, 255, 255, .06); backdrop-filter: blur(4px); }
.lau-btn-ghost:hover { background: #fff; color: var(--theme-color); border-color: #fff; }
.lau-btn-outline { color: var(--theme-color); border: 1.5px solid var(--theme-color); background: transparent; }
.lau-btn-outline:hover { background: var(--theme-color); color: #fff; }

.lau-empty { padding: 40px 20px; text-align: center; color: var(--body-text-color); background: var(--theme-bg-light); border-radius: 14px; }
.lau-empty i { display: block; font-size: 30px; margin-bottom: 10px; color: var(--theme-color); opacity: .45; }
.lau-empty.sm { padding: 24px 16px; font-size: 14px; }
.lau-empty.sm i { font-size: 22px; }

.lau-home .site-title-tagline.text-white,
.lau-home .site-title.text-white span { color: #fff; }
.lau-home .site-title.text-white span { color: #f3c4bf; }
/* Section spacing used by the LAUSET pages (the theme only ships py-120 / pt-100 / pb-100). */
.py-100 { padding-top: 100px; padding-bottom: 100px; }
.pt-80 { padding-top: 80px; } .pb-80 { padding-bottom: 80px; }
@media (max-width: 991px) { .py-100 { padding-top: 80px; padding-bottom: 80px; } }
@media (max-width: 575px) { .py-100 { padding-top: 60px; padding-bottom: 60px; } }

/* ---------- Hero ---------- */
.lau-hero { position: relative; background: var(--color-dark); overflow: hidden; }
.lau-hero-slide { position: relative; min-height: clamp(520px, 82vh, 760px); display: flex; align-items: center; overflow: hidden; }
.lau-hero-bg {
    position: absolute; inset: 0; background-size: cover; background-position: center;
    transform: scale(1.08); transition: transform 7.5s ease-out;
}
.owl-item.is-current .lau-hero-bg { transform: scale(1); }
.lau-hero-slide::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(40, 6, 4, .88) 0%, rgba(84, 18, 13, .62) 45%, rgba(25, 35, 43, .15) 100%);
}
.lau-hero .container { position: relative; z-index: 2; }
.lau-hero-content { max-width: 720px; color: #fff; padding: 90px 0 140px; }
.lau-hero-content > * { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.owl-item.is-current .lau-hero-content > * { opacity: 1; transform: none; }
.owl-item.is-current .lau-hero-content > :nth-child(2) { transition-delay: .15s; }
.owl-item.is-current .lau-hero-content > :nth-child(3) { transition-delay: .3s; }
.owl-item.is-current .lau-hero-content > :nth-child(4) { transition-delay: .45s; }
.lau-chip {
    display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px; border-radius: 50px;
    background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .25);
    font-size: 13px; letter-spacing: .6px; text-transform: uppercase; margin-bottom: 20px; backdrop-filter: blur(4px);
}
.lau-hero h1, .lau-hero .lau-hero-title {
    color: #fff; font-size: clamp(32px, 4.6vw, 58px); font-weight: 800; line-height: 1.1; margin-bottom: 20px;
    text-shadow: 0 2px 20px rgba(0, 0, 0, .25);
}
.lau-hero p { color: rgba(255, 255, 255, .88); font-size: 18px; line-height: 1.7; max-width: 600px; margin-bottom: 32px; }
.lau-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.lau-hero .owl-nav { position: absolute; right: 40px; bottom: 120px; z-index: 3; display: flex; gap: 10px; }
.lau-hero .owl-nav button.owl-prev, .lau-hero .owl-nav button.owl-next {
    width: 50px; height: 50px; border-radius: 50%; color: #fff !important; font-size: 18px !important;
    border: 1.5px solid rgba(255, 255, 255, .5) !important; background: rgba(255, 255, 255, .08) !important; transition: var(--transition2);
}
.lau-hero .owl-nav button:hover { background: #fff !important; color: var(--theme-color) !important; }
.lau-hero .owl-dots { position: absolute; left: 50%; transform: translateX(-50%); bottom: 112px; z-index: 3; display: flex; gap: 8px; }
.lau-hero .owl-dots .owl-dot span { display: block; width: 10px; height: 10px; border-radius: 10px; background: rgba(255, 255, 255, .45); transition: var(--transition2); }
.lau-hero .owl-dots .owl-dot.active span { width: 30px; background: #fff; }
.lau-hero-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: rgba(255, 255, 255, .15); z-index: 3; }
.lau-hero-progress span { display: block; height: 100%; width: 0; background: var(--theme-color2); }
.lau-scroll-cue {
    position: absolute; left: 50%; bottom: 60px; transform: translateX(-50%); z-index: 3; color: #fff;
    width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .4);
    animation: lau-bob 2s ease-in-out infinite; display: none;
}
@keyframes lau-bob { 50% { transform: translate(-50%, 6px); } }

/* ---------- Quick links ---------- */
.lau-quick { position: relative; z-index: 5; margin-top: -80px; }
.lau-quick-grid {
    display: grid; grid-template-columns: repeat(6, 1fr); background: #fff; border-radius: 18px;
    box-shadow: 0 20px 50px rgba(25, 35, 43, .12); overflow: hidden;
}
.lau-quick-item {
    display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 26px 14px;
    color: var(--color-dark); border-right: 1px solid var(--border-info-color2); transition: var(--transition2); position: relative;
}
.lau-quick-item:last-child { border-right: 0; }
.lau-quick-item::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--theme-color); transform: scaleX(0); transition: var(--transition2); }
.lau-quick-item:hover { background: #fdf6f5; color: var(--theme-color); }
.lau-quick-item:hover::after { transform: scaleX(1); }
.lau-quick-icon {
    width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; font-size: 22px;
    background: rgba(84, 18, 13, .08); color: var(--theme-color); transition: var(--transition2);
}
.lau-quick-item:hover .lau-quick-icon { background: var(--theme-color); color: #fff; transform: translateY(-3px); }
.lau-quick-text strong { display: block; font-family: var(--heading-font); font-size: 16px; }
.lau-quick-text small { color: var(--body-text-color); font-size: 13px; }

/* ---------- Welcome ---------- */
.lau-collage { position: relative; padding: 0 70px 70px 0; }
.lau-collage-main { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 22px; box-shadow: var(--box-shadow); }
.lau-collage-sub {
    position: absolute; right: 0; bottom: 0; width: 52%; aspect-ratio: 3 / 2; object-fit: cover;
    border-radius: 18px; border: 8px solid #fff; box-shadow: 0 18px 40px rgba(25, 35, 43, .18);
}
.lau-collage-badge {
    position: absolute; left: 24px; bottom: 24px; display: flex; align-items: center; gap: 12px; color: #fff;
    background: var(--theme-color); padding: 14px 20px; border-radius: 14px; box-shadow: 0 12px 30px rgba(84, 18, 13, .35);
}
.lau-collage-badge strong { font-size: 34px; font-family: var(--heading-font); line-height: 1; }
.lau-collage-badge span { font-size: 13px; line-height: 1.3; opacity: .9; }
.lau-lead { font-size: 17px; line-height: 1.8; }
.lau-tabs { gap: 6px; margin: 26px 0 0; border-bottom: 2px solid var(--border-info-color); }
.lau-tabs button {
    background: none; border: 0; padding: 10px 18px; font-weight: 600; color: var(--body-text-color);
    position: relative; margin-bottom: -2px; border-bottom: 2px solid transparent; transition: var(--transition2);
}
.lau-tabs button.active, .lau-tabs button:hover { color: var(--theme-color); border-bottom-color: var(--theme-color); }
.lau-tab-content { padding-top: 18px; min-height: 120px; }
.lau-values { display: flex; flex-wrap: wrap; gap: 10px; }
.lau-values span { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 50px; background: var(--theme-bg-light); font-weight: 500; color: var(--color-dark); }
.lau-values i { color: var(--theme-color2); }

/* ---------- Programme finder ---------- */
.lau-finder {
    padding: 100px 0; position: relative;
    background: linear-gradient(180deg, #fff 0%, var(--lau-blush) 100%);
}
.lau-finder::before {
    content: ""; position: absolute; inset: 0; opacity: .5; pointer-events: none;
    background-image: radial-gradient(rgba(84, 18, 13, .12) 1px, transparent 1px); background-size: 24px 24px;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 40%); mask-image: linear-gradient(180deg, transparent, #000 40%);
}
.lau-finder .container { position: relative; }
.lau-finder-panel { background: #fff; border-radius: 20px; padding: 28px; border: 1px solid rgba(84, 18, 13, .06); box-shadow: 0 24px 60px rgba(84, 18, 13, .1); }
.lau-finder-controls { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 12px; }
.lau-finder-search { position: relative; }
.lau-finder-search i { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--body-text-color); }
.lau-finder-search input, .lau-finder select {
    width: 100%; height: 54px; border: 1.5px solid var(--border-info-color); border-radius: 14px; padding: 0 18px; background: #fff;
    color: var(--color-dark); transition: var(--transition2);
}
.lau-finder-search input { padding-left: 46px; }
.lau-finder-search input:focus, .lau-finder select:focus { outline: none; border-color: var(--theme-color2); box-shadow: 0 0 0 4px rgba(39, 151, 194, .12); }
.lau-finder-levels { display: flex; background: var(--theme-bg-light); border-radius: 14px; padding: 5px; }
.lau-finder-levels button { border: 0; background: none; padding: 0 16px; border-radius: 10px; font-weight: 500; color: var(--body-text-color); white-space: nowrap; transition: var(--transition2); }
.lau-finder-levels button.active { background: #fff; color: var(--theme-color); box-shadow: 0 2px 8px rgba(0, 0, 0, .08); }
.lau-finder-count { margin: 18px 0 12px; font-size: 14px; color: var(--body-text-color); }
.lau-finder-results { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.lau-programme {
    position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px 44px 18px 18px; border-radius: 14px;
    border: 1px solid var(--border-info-color); color: var(--color-dark); transition: var(--transition2); animation: lau-fade .35s ease both;
}
.lau-programme:hover { border-color: var(--theme-color); box-shadow: 0 10px 24px rgba(84, 18, 13, .1); transform: translateY(-2px); color: var(--color-dark); }
.lau-programme strong { font-family: var(--heading-font); font-size: 16px; line-height: 1.35; }
.lau-programme mark { background: rgba(39, 151, 194, .18); color: inherit; padding: 0 2px; border-radius: 3px; }
.lau-programme small { color: var(--body-text-color); font-size: 13px; }
.lau-programme small i { width: 16px; color: var(--theme-color2); }
.lau-programme-level { align-self: flex-start; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; font-weight: 600; padding: 3px 10px; border-radius: 20px; background: rgba(84, 18, 13, .08); color: var(--theme-color); }
.lau-programme-level.postgraduate { background: rgba(39, 151, 194, .12); color: #1b6f8f; }
.lau-programme-level.diploma { background: rgba(25, 135, 84, .1); color: #157347; }
.lau-programme-go { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); color: var(--theme-color); opacity: .35; transition: var(--transition2); }
.lau-programme:hover .lau-programme-go { opacity: 1; right: 14px; }
.lau-finder-empty { grid-column: 1 / -1; text-align: center; padding: 30px; color: var(--body-text-color); }
@keyframes lau-fade { from { opacity: 0; transform: translateY(6px); } }

/* ---------- Faculties ---------- */
.lau-faculties { background: linear-gradient(180deg, var(--lau-blush) 0%, #fff 70%); }
.lau-faculty {
    width: 100%; height: 100%; text-align: left; border: 1px solid var(--border-info-color); background: #fff; border-radius: 18px;
    padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; transition: var(--transition); position: relative; overflow: hidden;
}
.lau-faculty::before {
    content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, var(--theme-color), #2b0907);
    opacity: 0; transition: var(--transition); z-index: 0;
}
.lau-faculty > * { position: relative; z-index: 1; }
.lau-faculty:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(84, 18, 13, .2); border-color: transparent; }
.lau-faculty:hover::before { opacity: 1; }
.lau-faculty-icon { width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center; font-size: 24px; background: rgba(84, 18, 13, .08); color: var(--theme-color); transition: var(--transition); }
.lau-faculty h4 { font-size: 19px; line-height: 1.35; margin: 0; color: var(--color-dark); transition: var(--transition); }
.lau-faculty-stats { display: flex; gap: 18px; font-size: 13px; color: var(--body-text-color); transition: var(--transition); }
.lau-faculty-stats strong { display: block; font-size: 22px; font-family: var(--heading-font); color: var(--theme-color); transition: var(--transition); }
.lau-faculty-link { margin-top: auto; font-weight: 600; font-size: 14px; color: var(--theme-color); transition: var(--transition); }
.lau-faculty:hover .lau-faculty-icon { background: rgba(255, 255, 255, .15); color: #fff; }
.lau-faculty:hover h4, .lau-faculty:hover .lau-faculty-link, .lau-faculty:hover .lau-faculty-stats strong { color: #fff; }
.lau-faculty:hover .lau-faculty-stats { color: rgba(255, 255, 255, .75); }
.lau-faculty:hover .lau-faculty-link i { transform: translateX(4px); }
.lau-faculty-link i { transition: var(--transition2); }

/* ---------- At a glance ---------- */
/* A floating panel on the white page rather than a full-width dark block. */
.lau-glance-wrap { background: #fff; padding: 10px 0 100px; }
.lau-glance {
    position: relative; isolation: isolate; overflow: hidden; border-radius: 28px; padding: 64px 48px;
    background-size: cover; background-position: center; background-attachment: fixed;
    box-shadow: 0 30px 60px rgba(84, 18, 13, .18);
}
.lau-glance::before {
    content: ""; position: absolute; inset: 0; z-index: -1; opacity: 1;
    background: linear-gradient(135deg, rgba(46, 10, 7, .93) 0%, rgba(84, 18, 13, .86) 100%);
}
.lau-glance .site-title-tagline { font-size: 22px; }
@media (hover: none) { .lau-glance { background-attachment: scroll; } }

/* ---------- News, events & notices ---------- */
.lau-updates { background: linear-gradient(180deg, #fff 0%, var(--lau-sand) 35%, var(--lau-sand) 100%); }
.lau-news-img { display: block; overflow: hidden; border-radius: 16px; background: #eceef1; }
.lau-news-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; display: block; }
.lau-news-lead:hover .lau-news-img img, .lau-news-card:hover .lau-news-img img { transform: scale(1.05); }
.lau-news-lead { display: grid; grid-template-columns: 1.15fr 1fr; gap: 0; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: var(--box-shadow); }
.lau-news-lead .lau-news-img { border-radius: 0; aspect-ratio: 16 / 10; }
.lau-news-body { padding: 30px; display: flex; flex-direction: column; justify-content: center; }
.lau-news-body h3 { font-size: 24px; line-height: 1.3; margin: 10px 0 12px; }
.lau-news-body h3 a, .lau-news-card h5 a { color: var(--color-dark); }
.lau-news-body h3 a:hover, .lau-news-card h5 a:hover { color: var(--theme-color); }
.lau-news-card { background: #fff; border-radius: 16px; padding: 12px 12px 18px; height: 100%; box-shadow: var(--box-shadow); transition: var(--transition2); }
.lau-news-card:hover { transform: translateY(-4px); }
.lau-news-card .lau-news-img { aspect-ratio: 16 / 10; margin-bottom: 14px; border-radius: 12px; }
.lau-news-card h5 { font-size: 16px; line-height: 1.4; margin: 8px 6px 0; }
.lau-news-card .lau-date { margin: 0 6px; }
.lau-date { font-size: 13px; color: var(--theme-color2); font-weight: 500; }
.lau-date i { margin-right: 4px; }

.lau-board { background: #fff; border-radius: 18px; padding: 10px 22px 22px; box-shadow: var(--box-shadow); height: 100%; }
.lau-board-tabs { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 2px solid var(--border-info-color); margin-bottom: 8px; }
.lau-board-tabs button { background: none; border: 0; padding: 14px 6px; font-weight: 600; color: var(--body-text-color); border-bottom: 2px solid transparent; margin-bottom: -2px; transition: var(--transition2); }
.lau-board-tabs button.active { color: var(--theme-color); border-bottom-color: var(--theme-color); }
.lau-event { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px dashed var(--border-info-color); }
.lau-event-date { flex: 0 0 58px; height: 62px; border-radius: 12px; background: var(--theme-color); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.lau-event-date strong { font-size: 22px; font-family: var(--heading-font); }
.lau-event-date span { font-size: 12px; text-transform: uppercase; margin-top: 4px; opacity: .85; }
.lau-event h6 { font-size: 15px; margin: 2px 0 6px; line-height: 1.35; }
.lau-event small { color: var(--body-text-color); }
.lau-notice { border-bottom: 1px dashed var(--border-info-color); }
.lau-notice summary { list-style: none; cursor: pointer; padding: 14px 24px 14px 0; position: relative; display: flex; flex-direction: column; gap: 3px; font-weight: 600; color: var(--color-dark); }
.lau-notice summary::-webkit-details-marker { display: none; }
.lau-notice summary::after { content: "\f067"; font-family: "Font Awesome 5 Pro"; font-weight: 300; position: absolute; right: 2px; top: 16px; color: var(--theme-color); transition: var(--transition2); }
.lau-notice[open] summary::after { transform: rotate(45deg); }
.lau-notice summary small { font-weight: 400; color: var(--theme-color2); }
.lau-notice > div { padding: 0 0 14px; font-size: 14px; color: var(--body-text-color); }
.lau-board-more { display: inline-block; margin-top: 16px; font-weight: 600; color: var(--theme-color); }
.lau-board-more i { transition: var(--transition2); }
.lau-board-more:hover i { transform: translateX(4px); }

/* ---------- Vice Chancellor message ---------- */
.lau-message { padding: 100px 0; background: linear-gradient(180deg, var(--lau-sand) 0%, #fff 100%); }
.lau-message-photo { position: relative; padding: 0 0 20px 20px; }
.lau-message-photo::before { content: ""; position: absolute; left: 0; bottom: 0; width: 80%; height: 80%; border-radius: 22px; background: var(--theme-color); opacity: .12; }
.lau-message-photo img { position: relative; width: 100%; aspect-ratio: 6 / 7; object-fit: cover; border-radius: 22px; box-shadow: var(--box-shadow); }
.lau-message blockquote {
    font-family: var(--heading-font); font-size: clamp(19px, 2vw, 24px); line-height: 1.6; color: var(--color-dark);
    margin: 18px 0 28px; padding-left: 24px; border-left: 4px solid var(--theme-color);
}

/* ---------- Campus life ---------- */
.lau-life-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 14px; }
.lau-life-item { position: relative; overflow: hidden; border-radius: 16px; background: #eceef1; }
.lau-life-0 { grid-column: span 2; grid-row: span 2; }
.lau-life-3 { grid-row: span 2; }
.lau-life-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.lau-life-item span {
    position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 16px 14px; color: #fff; font-weight: 500;
    background: linear-gradient(to top, rgba(25, 35, 43, .8), transparent); transform: translateY(100%); transition: var(--transition2);
}
.lau-life-item:hover img { transform: scale(1.08); }
.lau-life-item:hover span { transform: none; }
.lau-life-item:nth-child(n+8) { display: none; }

/* ---------- Testimonials (light, warm) ---------- */
.lau-voices { background: linear-gradient(180deg, #fff 0%, var(--lau-blush) 100%); }
.lau-voices .testimonial-item { box-shadow: 0 14px 40px rgba(84, 18, 13, .08); }

/* ---------- Call to action ---------- */
/* Straddles the page and the footer so the page flows into the footer colour. */
.lau-cta { --cta-top: #fff; padding: 20px 0 0; background: linear-gradient(180deg, var(--cta-top) 0 50%, var(--footer-bg) 50% 100%); }
.lau-voices + .lau-cta { --cta-top: var(--lau-blush); }
.lau-cta-box {
    display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; padding: 50px 56px; border-radius: 24px; color: #fff;
    background: linear-gradient(120deg, #7a1d15 0%, var(--theme-color) 45%, var(--lau-wine-deep) 100%); position: relative; overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 30px 60px rgba(46, 10, 7, .35);
}
.lau-cta-box::after { content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px; border-radius: 50%; border: 40px solid rgba(255, 255, 255, .06); }
.lau-cta-box h2 { color: #fff; font-size: clamp(26px, 3vw, 36px); margin-bottom: 8px; }
.lau-cta-box p { color: rgba(255, 255, 255, .85); margin: 0; }
.lau-cta-actions { display: flex; gap: 14px; flex-wrap: wrap; position: relative; z-index: 1; }
.lau-cta .theme-btn { background: #fff; color: var(--theme-color); }
.lau-cta .theme-btn::before { background: var(--color-dark); }
.lau-cta .theme-btn:hover { color: #fff; }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
    .lau-quick-grid { grid-template-columns: repeat(3, 1fr); }
    .lau-quick-item:nth-child(3) { border-right: 0; }
    .lau-quick-item:nth-child(-n+3) { border-bottom: 1px solid var(--border-info-color2); }
    .lau-finder-controls { grid-template-columns: 1fr 1fr; }
    .lau-finder-levels { grid-column: 1 / -1; }
    .lau-finder-levels button { flex: 1; height: 44px; }
    .lau-finder-results { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 991px) {
    .lau-hero .owl-nav { display: none; }
    .lau-hero-content { padding: 70px 0 130px; }
    .lau-news-lead { grid-template-columns: 1fr; }
    .lau-collage { padding: 0 40px 50px 0; }
    .lau-life-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; }
    .lau-life-0 { grid-column: span 2; }
    .lau-life-3 { grid-row: span 1; }
    .lau-life-item:nth-child(n+6) { display: none; }
    .lau-cta-box { padding: 40px 30px; }
}
@media (max-width: 767px) {
    .lau-hero-slide { min-height: 560px; }
    .lau-hero p { font-size: 16px; }
    .lau-hero-slide::after { background: linear-gradient(180deg, rgba(40, 6, 4, .55) 0%, rgba(40, 6, 4, .9) 100%); }
    .lau-quick { margin-top: -60px; }
    .lau-quick-grid { grid-template-columns: repeat(2, 1fr); }
    .lau-quick-item { padding: 20px 10px; border-right: 1px solid var(--border-info-color2) !important; border-bottom: 1px solid var(--border-info-color2); }
    .lau-quick-item:nth-child(2n) { border-right: 0 !important; }
    .lau-quick-item:nth-last-child(-n+2) { border-bottom: 0; }
    .lau-finder { padding: 70px 0; }
    .lau-finder-panel { padding: 18px; }
    .lau-finder-controls, .lau-finder-results { grid-template-columns: 1fr; }
    .lau-finder-levels button { padding: 0 8px; font-size: 14px; }
    .lau-collage-badge strong { font-size: 26px; }
    .lau-message { padding: 70px 0; }
    .lau-glance { padding: 44px 18px; border-radius: 20px; }
    .lau-glance-wrap { padding-bottom: 70px; }
    .lau-cta-box { padding: 34px 22px; }
    .lau-message-photo { max-width: 320px; }
}
@media (prefers-reduced-motion: reduce) {
    .lau-hero-bg, .lau-hero-content > *, .lau-programme, .lau-scroll-cue { transition: none !important; animation: none !important; transform: none !important; }
    .lau-hero-content > * { opacity: 1; }
}

/* ---------- Document listing pages (admission lists, circulars, bids, calendar, graduation) ---------- */
.lau-docs { background: linear-gradient(180deg, #fff 0%, var(--lau-sand) 100%); }
.lau-docs-head { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 30px; }
.lau-docs-head h3 { margin-bottom: 6px; }
.lau-docs-head p { margin: 0; }
.lau-docs-icon, .lau-doc-type {
    flex: 0 0 auto; display: grid; place-items: center; border-radius: 16px;
    background: rgba(84, 18, 13, .08); color: var(--theme-color);
}
.lau-docs-icon { width: 64px; height: 64px; font-size: 26px; }
.lau-docs-search { position: relative; margin-bottom: 18px; }
.lau-docs-search i { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--body-text-color); }
.lau-docs-search input { width: 100%; height: 52px; padding: 0 18px 0 46px; border: 1.5px solid var(--border-info-color); border-radius: 14px; }
.lau-docs-search input:focus { outline: none; border-color: var(--theme-color2); box-shadow: 0 0 0 4px rgba(39, 151, 194, .12); }
.lau-docs-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.lau-doc {
    display: flex; align-items: center; gap: 18px; padding: 18px 20px; background: #fff; border-radius: 16px;
    border: 1px solid var(--border-info-color2); box-shadow: 0 6px 20px rgba(84, 18, 13, .05); transition: var(--transition2);
}
.lau-doc:hover { border-color: rgba(84, 18, 13, .2); box-shadow: 0 12px 30px rgba(84, 18, 13, .1); }
.lau-doc-type { width: 56px; height: 62px; font-size: 22px; gap: 2px; align-content: center; }
.lau-doc-type small { font-size: 10px; font-weight: 700; letter-spacing: .5px; }
.lau-doc-info { flex: 1 1 auto; min-width: 0; }
.lau-doc-info h5 { font-size: 17px; margin: 0 0 4px; line-height: 1.35; }
.lau-doc-info p { margin: 0 0 4px; font-size: 14px; }
.lau-doc-info small { color: var(--body-text-color); }
.lau-doc-actions { display: flex; gap: 10px; flex: 0 0 auto; }
.lau-doc-actions .lau-btn-outline, .lau-doc-actions .theme-btn { padding: 10px 18px; font-size: 14px; }
.lau-doc-missing { font-size: 13px; color: var(--body-text-color); background: var(--theme-bg-light); padding: 8px 14px; border-radius: 50px; }
@media (max-width: 767px) {
    .lau-doc { flex-wrap: wrap; }
    .lau-doc-actions { width: 100%; }
    .lau-doc-actions a { flex: 1; justify-content: center; }
}
.lau-unit-programmes { grid-template-columns: repeat(2, 1fr); }
a.lau-faculty { text-decoration: none; }
@media (max-width: 767px) { .lau-unit-programmes { grid-template-columns: 1fr; } }

/* ---------- Document pages: two-column layout ---------- */
.lau-docs-intro { margin-bottom: 32px; padding-bottom: 28px; border-bottom: 1px solid var(--border-info-color); }
.lau-docs-intro .site-title-tagline { margin-bottom: 12px; }
.lau-docs-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.lau-docs-toolbar strong { color: var(--color-dark); }
.lau-docs-toolbar .lau-docs-search { margin: 0; flex: 0 1 300px; }
.lau-docs-empty {
    text-align: center; background: #fff; border: 1.5px dashed rgba(84, 18, 13, .18); border-radius: 22px; padding: 56px 32px;
}
.lau-docs-empty-icon {
    width: 84px; height: 84px; margin: 0 auto 20px; border-radius: 50%; display: grid; place-items: center; font-size: 34px;
    color: var(--theme-color); background: radial-gradient(circle, rgba(84, 18, 13, .12) 0%, rgba(84, 18, 13, .05) 70%);
}
.lau-docs-empty h4 { margin-bottom: 10px; }
.lau-docs-empty p { max-width: 440px; margin: 0 auto 26px; }

.lau-side-sticky { position: sticky; top: 110px; display: grid; gap: 24px; }
.lau-help-card {
    position: relative; overflow: hidden; color: #fff; border-radius: 22px; padding: 30px 28px;
    background: linear-gradient(140deg, #7a1d15 0%, var(--theme-color) 55%, var(--lau-wine-deep) 100%);
    box-shadow: 0 20px 45px rgba(46, 10, 7, .22);
}
.lau-help-card::after { content: ""; position: absolute; right: -50px; top: -50px; width: 160px; height: 160px; border-radius: 50%; border: 26px solid rgba(255, 255, 255, .06); }
.lau-help-icon { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; font-size: 20px; background: rgba(255, 255, 255, .14); margin-bottom: 16px; }
.lau-help-card h5 { color: #fff; margin-bottom: 8px; }
.lau-help-card p { color: rgba(255, 255, 255, .8); font-size: 14px; }
.lau-help-card ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; font-size: 14px; }
.lau-help-card li { display: flex; gap: 10px; align-items: baseline; word-break: break-word; }
.lau-help-card li i { color: #f3c4bf; width: 16px; }
.lau-help-card ul a { color: #fff; text-decoration: underline; }
.lau-help-card .theme-btn, .lau-help-card .lau-btn-ghost { text-decoration: none; }
.lau-related-card { background: #fff; border-radius: 22px; padding: 24px; border: 1px solid var(--border-info-color2); box-shadow: 0 10px 30px rgba(84, 18, 13, .06); }
.lau-related-card h5 { margin-bottom: 12px; }
.lau-related-card a { display: flex; align-items: center; gap: 12px; padding: 12px 4px; color: var(--color-dark); border-bottom: 1px dashed var(--border-info-color); transition: var(--transition2); }
.lau-related-card a:last-child { border-bottom: 0; }
.lau-related-card a i:first-child { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: rgba(84, 18, 13, .07); color: var(--theme-color); }
.lau-related-card a span { flex: 1; font-weight: 500; }
.lau-related-card a i:last-child { color: var(--theme-color); opacity: .35; transition: var(--transition2); }
.lau-related-card a:hover { color: var(--theme-color); }
.lau-related-card a:hover i:last-child { opacity: 1; transform: translateX(3px); }

/* Faculty page sidebar: size to its content and stay in view while scrolling. */
.lau-docs aside .lau-board { height: auto; position: sticky; top: 110px; }

@media (max-width: 991px) {
    .lau-side-sticky, .lau-docs aside .lau-board { position: static; }
}
@media (max-width: 575px) {
    .lau-docs-toolbar { flex-direction: column; align-items: stretch; }
    .lau-docs-toolbar .lau-docs-search { flex-basis: auto; }
    .lau-docs-empty { padding: 40px 20px; }
}

/* ---------- Page scrollbar: hidden, scrolling still works (wheel, touch, keys, scroll-to-top button) ---------- */
html { scrollbar-width: none; -ms-overflow-style: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar { width: 0; height: 0; background: transparent; }

/* ---------- Students' Guild ---------- */
.lau-guild-roles { background: linear-gradient(180deg, #fff 0%, var(--lau-blush) 100%); }
.lau-role-card { height: 100%; background: #fff; border-radius: 20px; padding: 32px 28px; border: 1px solid var(--border-info-color2); box-shadow: 0 12px 34px rgba(84, 18, 13, .07); transition: var(--transition); }
.lau-role-card:hover { transform: translateY(-6px); box-shadow: 0 22px 46px rgba(84, 18, 13, .14); }
.lau-role-card .lau-faculty-icon { margin-bottom: 18px; }
.lau-role-card h4 { font-size: 20px; margin-bottom: 10px; }

/* ---------- News listing ---------- */
.lau-newsroom { background: linear-gradient(180deg, #fff 0%, var(--lau-sand) 100%); }
.lau-newsroom-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 32px; padding-bottom: 24px; border-bottom: 1px solid var(--border-info-color); }
.lau-newsroom-head .site-title-tagline { margin-bottom: 8px; }
.lau-news-search { position: relative; flex: 0 1 320px; }
.lau-news-search i { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--body-text-color); }
.lau-news-search input { width: 100%; height: 50px; padding: 0 18px 0 46px; border: 1.5px solid var(--border-info-color); border-radius: 50px; background: #fff; }
.lau-news-search input:focus { outline: none; border-color: var(--theme-color2); box-shadow: 0 0 0 4px rgba(39, 151, 194, .12); }
.lau-news-result { margin: -12px 0 24px; }
.lau-news-result a { color: var(--theme-color); font-weight: 500; }

.lau-news-feature { margin-bottom: 8px; }
.lau-news-feature .lau-news-img { position: relative; aspect-ratio: auto; min-height: 340px; }
.lau-news-feature .lau-news-img img { position: absolute; inset: 0; }
.lau-news-flag { position: absolute; top: 18px; left: 18px; background: var(--theme-color); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .6px; text-transform: uppercase; padding: 6px 14px; border-radius: 50px; }
.lau-news-feature .lau-news-body { padding: 40px; }
.lau-news-feature h3 { font-size: 28px; }

.lau-story {
    height: 100%; display: flex; flex-direction: column; background: #fff; border-radius: 18px; overflow: hidden;
    border: 1px solid var(--border-info-color2); box-shadow: 0 10px 30px rgba(84, 18, 13, .06); transition: var(--transition2);
}
.lau-story:hover { transform: translateY(-6px); box-shadow: 0 22px 46px rgba(84, 18, 13, .13); }
.lau-story-img { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #eceef1; }
.lau-story-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.lau-story:hover .lau-story-img img { transform: scale(1.06); }
.lau-story-date {
    position: absolute; left: 16px; bottom: 16px; display: flex; flex-direction: column; align-items: center; line-height: 1.1;
    min-width: 62px; padding: 8px 10px; border-radius: 12px; background: #fff; color: var(--color-dark); font-size: 11px;
    text-transform: uppercase; letter-spacing: .4px; box-shadow: 0 6px 18px rgba(0, 0, 0, .15);
}
.lau-story-date strong { font-size: 22px; font-family: var(--heading-font); color: var(--theme-color); letter-spacing: 0; }
.lau-story-body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 20px; }
.lau-story-body h4 { font-size: 19px; line-height: 1.4; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.lau-story-body h4 a, .lau-news-feature h3 a { color: var(--color-dark); }
.lau-story-body h4 a:hover, .lau-news-feature h3 a:hover { color: var(--theme-color); }
.lau-story-body p { font-size: 14.5px; margin-bottom: 18px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.lau-news-foot { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--border-info-color2); display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--body-text-color); }
.lau-news-foot i { color: var(--theme-color2); margin-right: 4px; }
.lau-news-more { font-weight: 600; color: var(--theme-color); white-space: nowrap; }
.lau-news-more i { color: inherit; margin: 0 0 0 4px; transition: var(--transition2); }
.lau-news-more:hover i { transform: translateX(4px); }
.lau-newsroom .pagination-area { margin-top: 50px; }
.lau-newsroom .page-item.disabled .page-link { opacity: .4; pointer-events: none; }

@media (max-width: 991px) {
    .lau-news-feature .lau-news-img { min-height: 0; aspect-ratio: 16 / 9; }
    .lau-news-feature .lau-news-img img { position: static; }
    .lau-news-feature .lau-news-body { padding: 28px; }
    .lau-news-feature h3 { font-size: 23px; }
}
@media (max-width: 767px) {
    .lau-newsroom-head { flex-direction: column; align-items: stretch; }
    .lau-news-search { flex-basis: auto; }
}

/* ---------- Article (news story) ---------- */
.lau-article-area { background: linear-gradient(180deg, #fff 0%, var(--lau-sand) 100%); }
.lau-article { background: #fff; border-radius: 22px; padding: 40px; border: 1px solid var(--border-info-color2); box-shadow: 0 14px 40px rgba(84, 18, 13, .06); }
.lau-article-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; color: var(--body-text-color); margin-bottom: 14px; }
.lau-article-meta i { color: var(--theme-color2); margin-right: 4px; }
.lau-article-meta a { color: var(--theme-color); font-weight: 500; }
.lau-article-title { font-size: clamp(26px, 3vw, 38px); line-height: 1.25; margin-bottom: 26px; color: var(--color-dark); }
.lau-article-figure { margin: 0 0 30px; border-radius: 18px; overflow: hidden; aspect-ratio: 16 / 9; background: #eceef1; }
.lau-article-figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lau-article-body { font-size: 17px; line-height: 1.85; color: #4a5260; }
.lau-article-body p { margin-bottom: 1.2em; }
.lau-article-body img { max-width: 100%; height: auto; border-radius: 12px; }
.lau-share { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-top: 34px; padding: 22px 0; border-top: 1px solid var(--border-info-color); border-bottom: 1px solid var(--border-info-color); }
.lau-share div { display: flex; gap: 10px; }
.lau-share a, .lau-share button {
    width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--border-info-color);
    background: #fff; color: var(--theme-color); transition: var(--transition2);
}
.lau-share a:hover, .lau-share button:hover, .lau-share button.copied { background: var(--theme-color); color: #fff; border-color: var(--theme-color); }
.lau-article-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 26px; }
.lau-article-nav a { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border-radius: 16px; background: var(--lau-sand); color: var(--color-dark); transition: var(--transition2); }
.lau-article-nav a.next { text-align: right; grid-column: 2; }
.lau-article-nav a:hover { background: var(--lau-blush); color: var(--theme-color); }
.lau-article-nav small { color: var(--theme-color2); font-weight: 600; text-transform: uppercase; letter-spacing: .5px; font-size: 12px; }
.lau-article-nav span { font-weight: 600; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.lau-side-search { flex: none; }
.lau-recent { display: flex !important; gap: 14px; align-items: center; }
.lau-recent img { flex: 0 0 80px; width: 80px; height: 60px; border-radius: 10px; object-fit: cover; background: #eceef1; }
.lau-recent span { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lau-recent strong { font-size: 14px; line-height: 1.35; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lau-recent small { color: var(--body-text-color); font-size: 12px; }
.lau-help-card .lau-btn-ghost { padding: 12px 20px; }

/* ---------- Comments ---------- */
.lau-comments { margin-top: 40px; background: #fff; border-radius: 22px; padding: 36px 40px; border: 1px solid var(--border-info-color2); box-shadow: 0 14px 40px rgba(84, 18, 13, .06); }
.lau-comments h3 { font-size: 24px; margin-bottom: 22px; }
.lau-comments-none { color: var(--body-text-color); }
.lau-comment-thread { padding: 20px 0; border-bottom: 1px solid var(--border-info-color2); }
.lau-comment { display: flex; gap: 16px; }
.lau-comment.is-reply { margin: 18px 0 0 62px; padding: 16px; border-radius: 16px; background: var(--lau-sand); }
.lau-comment.is-official { background: #fdf4f2; border-left: 3px solid var(--theme-color); }
.lau-comment-avatar { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--theme-color2), #1b6f8f); }
.lau-comment.is-official .lau-comment-avatar { background: var(--theme-color); }
.lau-comment-main { flex: 1; min-width: 0; }
.lau-comment-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-bottom: 6px; }
.lau-comment-head strong { color: var(--color-dark); }
.lau-comment-head time { font-size: 12.5px; color: var(--body-text-color); }
.lau-comment-badge { font-size: 11px; font-weight: 700; letter-spacing: .5px; padding: 2px 8px; border-radius: 20px; background: var(--theme-color); color: #fff; }
.lau-comment-main p { margin-bottom: 6px; color: #4a5260; word-wrap: break-word; }
.lau-comment-reply { border: 0; background: none; padding: 0; font-size: 13px; font-weight: 600; color: var(--theme-color); }
.lau-comment-reply:hover { text-decoration: underline; }
.lau-comment-form-wrap { margin-top: 30px; }
.lau-comment-form { background: var(--lau-sand); border-radius: 18px; padding: 26px; margin-top: 14px; }
.lau-comment-form h4 { font-size: 20px; margin-bottom: 14px; }
.lau-comment-form .form-control { border-radius: 12px; border: 1.5px solid var(--border-info-color); padding: 12px 16px; background: #fff; }
.lau-comment-form .form-control:focus { border-color: var(--theme-color2); box-shadow: 0 0 0 4px rgba(39, 151, 194, .12); }
.lau-comment-replying { font-size: 14px; background: #fff; padding: 8px 14px; border-radius: 10px; display: flex; gap: 8px; align-items: center; }
.lau-comment-replying button { margin-left: auto; border: 0; background: none; color: var(--theme-color); font-weight: 600; }
.lau-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.lau-comment-status { margin-top: 14px; padding: 12px 16px; border-radius: 12px; font-size: 14px; }
.lau-comment-status.ok { background: #e9f7ef; color: #146c43; }
.lau-comment-status.error { background: #fdecea; color: #8a2a1f; }

@media (max-width: 767px) {
    .lau-article, .lau-comments { padding: 24px 20px; }
    .lau-comment.is-reply { margin-left: 20px; }
    .lau-article-nav { grid-template-columns: 1fr; }
    .lau-article-nav a.next { grid-column: 1; }
}

/* ---------- Programme details ---------- */
.lau-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 0 0 28px; }
.lau-facts div { display: flex; flex-direction: column; gap: 2px; padding: 16px; border-radius: 16px; background: var(--lau-sand); border: 1px solid var(--border-info-color2); }
.lau-facts i { color: var(--theme-color); font-size: 18px; margin-bottom: 6px; }
.lau-facts small { color: var(--body-text-color); font-size: 12px; text-transform: uppercase; letter-spacing: .4px; }
.lau-facts strong { color: var(--color-dark); font-size: 15px; line-height: 1.35; }
.lau-programme-figure { aspect-ratio: 2 / 1; }
.lau-section-title { font-size: 22px; margin: 34px 0 14px; padding-top: 26px; border-top: 1px solid var(--border-info-color2); }
.lau-programme-figure + .lau-section-title { border-top: 0; padding-top: 0; }
.lau-table-wrap { border-radius: 14px; border: 1px solid var(--border-info-color); }
.lau-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.lau-table th { background: var(--lau-sand); color: var(--color-dark); font-weight: 600; text-align: left; padding: 12px 16px; }
.lau-table td { padding: 12px 16px; border-top: 1px solid var(--border-info-color2); }
.lau-steps { counter-reset: step; list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.lau-steps li { counter-increment: step; position: relative; padding: 14px 16px 14px 62px; border-radius: 14px; background: var(--lau-sand); }
.lau-steps li::before { content: counter(step); position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--theme-color); color: #fff; font-weight: 700; }
@media (max-width: 767px) { .lau-facts { grid-template-columns: repeat(2, 1fr); } }
