/* Education Master's sidebar and image-card layout, shared by the two catalogues. */
.catalogue-page .ed-mob-menu { position: relative; }
.catalogue-page .search-top { margin-top: 0; }
.catalogue-shell { background: #f6f7f9; padding: 44px max(24px, calc((100% - 1200px)/2)) 64px; }
/* Detail pages read as an article, so they sit on white like the source's inner pages.
   Listings keep the grey, which is what separates the cards. */
.catalogue-detail .catalogue-shell { background: #fff; }
.catalogue-layout { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 30px; margin-top: 12px; }
.catalogue-filters { align-self: start; background: white; border: 1px solid #dce2e7; padding: 22px; }
.catalogue-filters label { display: block; font-size: 14px; font-weight: 600; color: #233b50; }
.catalogue-search { display: flex; margin: 8px 0 24px; border: 1px solid #bdc8d1; border-radius: 2px; overflow: hidden; }
.catalogue-search--wide { max-width: 760px; margin-left: auto; margin-right: auto; }
.catalogue-search input { width: 100%; min-width: 0; border: 0; padding: 11px 10px; font-size: 14px; background: white; }
.catalogue-search button { border: 0; background: #fff; color: #17344b; padding: 0 12px; }
.catalogue-filter-options summary { color: #17344b; font-weight: 700; font-size: 15px; cursor: pointer; padding-bottom: 16px; }
.catalogue-filters .catalogue-choice { display: flex; align-items: flex-start; gap: 9px; font-weight: 400; line-height: 1.5; margin-bottom: 13px; cursor: pointer; }
.catalogue-choice input { appearance: auto; position: static; opacity: 1; width: 16px; height: 16px; margin: 3px 0 0; flex: 0 0 16px; accent-color: #0b2748; }
.catalogue-button { display: block; width: 100%; padding: 11px; background: #0b2748; border: 1px solid #0b2748; color: #fff; font-weight: 600; font-size: 14px; border-radius: 2px; margin-top: 20px; }
/* Pages with several filter groups need separators and a cap on long lists. */
.catalogue-filter-options + .catalogue-filter-options { border-top: 1px solid #e7ebee; padding-top: 17px; }
.catalogue-filter-options[open] { padding-bottom: 4px; }
.catalogue-choice-scroll { max-height: 208px; overflow-y: auto; padding-right: 4px; }
.catalogue-choice-scroll::-webkit-scrollbar { width: 8px; }
.catalogue-choice-scroll::-webkit-scrollbar-track { background: #f0f3f5; border-radius: 4px; }
.catalogue-choice-scroll::-webkit-scrollbar-thumb { background: #b7c2cc; border-radius: 4px; }
.catalogue-reset { display: inline-block; font-size: 13px; margin-top: 15px; text-decoration: underline; }
.catalogue-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 46px; margin-bottom: 20px; }
.catalogue-toolbar p { margin: 0; color: #526473; font-size: 14px; }
.catalogue-toolbar form, .catalogue-toolbar .catalogue-sort { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.catalogue-toolbar label { margin: 0; font-size: 13px; }
.catalogue-toolbar select { width: auto; padding: 10px 26px 10px 10px; border: 1px solid #ccd5dd; border-radius: 2px; font-size: 13px; background-color: #fff; }
.catalogue-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.catalogue-card { display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid #dce2e7; border-radius: 4px; overflow: hidden; transition: border-color .15s; }
.catalogue-card:hover { border-color: #8b9eac; }
.catalogue-image { display: block; margin: 14px 14px 0; position: relative; overflow: hidden; }
.catalogue-image > img { width: 100%; height: 155px; object-fit: cover; border-radius: 2px; }
/* Schools with no campus photo get a logo panel, not the theme's stock campus.
   The logo is positioned against the frame so a tall crest cannot grow the card. */
.catalogue-image--empty { display: flex; align-items: center; justify-content: center; height: 155px; background: #f3f6f8; border: 1px solid #e4eaee; border-radius: 2px; }
.catalogue-image--empty > img { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: auto; height: auto; max-width: 148px; max-height: 108px; object-fit: contain; }
.catalogue-image__mark { color: #17344b; font-size: 42px; font-weight: 700; line-height: 1; }
/* Logo badge over a real cover. Direct-child selectors keep cover sizing off this image. */
.catalogue-logo { position: absolute; left: 12px; bottom: 12px; box-sizing: border-box; width: 66px; height: 66px; border-radius: 4px; background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.22); overflow: hidden; }
.catalogue-logo img { position: absolute; left: 6px; top: 6px; width: calc(100% - 12px); height: calc(100% - 12px); max-width: none; object-fit: contain; border-radius: 0; }
.catalogue-card-body { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 18px; }
.catalogue-kicker { color: #92512f; font-size: 12px; margin: 0 0 8px; overflow-wrap: anywhere; }
.catalogue-flags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.catalogue-flag { display: inline-block; padding: 1px 7px; border-radius: 999px; background: #17344b; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; vertical-align: middle; }
.catalogue-flag--top { background: #92512f; }
.catalogue-card h2, .catalogue-card h3 { font-size: 18px; font-weight: 700; line-height: 1.35; margin: 0 0 10px; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.catalogue-card h2 a, .catalogue-card h3 a { font-size: inherit; color: #17344b; }
.catalogue-card h2 a:hover, .catalogue-card h3 a:hover { text-decoration: underline; }
.catalogue-description { font-size: 13px; line-height: 1.5; color: #61717e; margin: 0 0 15px; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.catalogue-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: auto 0 16px; font-size: 12px; color: #526473; }
.catalogue-meta span { background: #f3f5f7; padding: 4px 7px; }
.catalogue-card-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 14px; border-top: 1px solid #e7ebee; color: #17344b; }
.catalogue-card-footer strong { font-size: 19px; }
.catalogue-card-footer a { color: #17344b; font-size: 13px; font-weight: 700; }
.catalogue-empty { grid-column: 1 / -1; padding: 44px 24px; background: white; border: 1px solid #dce2e7; }
.catalogue-empty h2 { font-size: 23px; }
.catalogue-pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 20px; margin: 32px 0 0; font-size: 14px; }
.catalogue-pagination a { border: 1px solid #ccd5dd; padding: 10px 16px; background: white; font-size: 14px; }

/* Filtering swaps the results region rather than reloading the page, which
   removes the page-load progress bar students used as feedback. Dim the stale
   results for the duration of the request so a slow filter still reads as
   working. htmx adds .htmx-request to whatever hx-indicator names. */
#catalogue-results.htmx-request { opacity: .45; pointer-events: none; transition: opacity .12s; }

/* Shared detail-page layout (events, subjects): main column + sticky fact card. */
.detail-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 40px; align-items: start; }
.detail-main { min-width: 0; }
.detail-hero { position: relative; margin-bottom: 26px; border-radius: 4px; overflow: hidden; }
.detail-hero--mark { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; height: 240px; background: #f3f6f8; border: 1px solid #e4eaee; }
.detail-hero--mark .catalogue-image__mark { font-size: 84px; }
.detail-hero.detail-hero--mark > img { width: auto; height: auto; max-width: 260px; max-height: 140px; object-fit: contain; }
.catalogue-image__name { color: #17344b; font-size: 15px; font-weight: 600; text-align: center; padding: 0 16px; }
.detail-hero .catalogue-logo { left: 18px; bottom: 18px; width: 84px; height: 84px; }
.detail-hero .catalogue-logo img { position: static; width: 72px; height: 72px; max-width: none; margin: 6px; object-fit: contain; display: block; }
.catalogue-logo.catalogue-logo--auto { display: flex; align-items: center; justify-content: center; width: auto; height: auto; min-width: 66px; min-height: 66px; max-width: 170px; padding: 6px; }
.catalogue-logo.catalogue-logo--auto img { position: static; width: auto; height: auto; max-width: 158px; max-height: 54px; margin: 0; object-fit: contain; display: block; }
.detail-hero .catalogue-logo.catalogue-logo--auto { width: auto; height: auto; min-width: 84px; min-height: 84px; max-width: 230px; padding: 8px; }
.detail-hero .catalogue-logo.catalogue-logo--auto img { width: auto; height: auto; max-width: 214px; max-height: 68px; margin: 0; }
.detail-hero img { width: 100%; height: 340px; object-fit: cover; display: block; }
.detail-title { font-size: clamp(27px,3vw,38px); line-height: 1.2; color: #17344b; margin: 0 0 14px; }
.detail-lead { font-size: 17px; line-height: 1.65; color: #5d6e7b; margin: 0 0 24px; }
.detail-block { padding-top: 28px; margin-top: 28px; border-top: 1px solid #e1e6eb; }
.detail-block:first-of-type { padding-top: 0; margin-top: 0; border-top: 0; }
.detail-block h2 { font-size: 22px; color: #17344b; margin: 0 0 14px; }
.detail-prose, .detail-list { font-size: 16px; line-height: 1.78; color: #4f6271; }
/* In-post links must read as links, not bare text. */
.detail-prose a,
.catalogue-detail .cor-p5 .tab-content a,
.detail-note a,
.detail-helpline a,
.detail-more-all a {
    color: #a4411d;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    overflow-wrap: anywhere;
}
.detail-prose a:hover,
.catalogue-detail .cor-p5 .tab-content a:hover,
.detail-note a:hover,
.detail-helpline a:hover,
.detail-more-all a:hover {
    color: #7e3214;
    text-decoration-thickness: 2px;
}
.detail-prose a:focus-visible,
.catalogue-detail .cor-p5 .tab-content a:focus-visible,
.detail-note a:focus-visible {
    outline: 2px solid #0b2748;
    outline-offset: 2px;
    border-radius: 2px;
}
/* External links get a small ↗ so readers know they leave Studylifter. */
.detail-prose a[target="_blank"]::after,
.catalogue-detail .cor-p5 .tab-content a[target="_blank"]::after {
    content: "↗";
    display: inline-block;
    margin-left: 3px;
    font-size: 0.85em;
    text-decoration: none;
}
.detail-prose :is(p,li) { font-size: inherit; line-height: inherit; }
.detail-prose h2 { margin: 28px 0 12px; color: #17344b; font-size: clamp(22px,2.4vw,28px); }
.detail-prose h3 { margin: 22px 0 10px; color: #17344b; font-size: 20px; }
.detail-prose h4 { margin: 18px 0 8px; color: #17344b; font-size: 16px; }
.detail-prose :is(h2,h3,h4):first-child { margin-top: 0; }
.detail-prose :is(ul,ol) { margin: 0 0 17px; padding-left: 22px; }
.university-related-copy { padding: 10px 0 36px; }
.detail-list { margin: 0; padding-left: 20px; }
.detail-list li { margin-bottom: 8px; }
.detail-note { margin: 18px 0 0; font-size: 14px; color: #61717e; }
.detail-aside { position: sticky; top: 24px; min-width: 0; }
.detail-card { background: #fff; border: 1px solid #dce2e7; border-radius: 4px; overflow: hidden; }
.detail-card-head { background: #0b2748; padding: 20px 22px; }
.detail-card-head h2 { font-size: 20px; color: #fff; margin: 0 0 5px; }
.detail-card-head p { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.78); margin: 0; }
.detail-facts { margin: 0; padding: 6px 22px; }
.detail-facts > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; padding: 13px 0; border-bottom: 1px solid #eef1f4; }
.detail-facts > div:last-child { border-bottom: 0; }
.detail-facts dt { flex: 0 0 auto; font-size: 14px; font-weight: 400; color: #647684; margin: 0; }
.detail-facts dd { min-width: 0; margin: 0; font-size: 15px; font-weight: 600; color: #17344b; text-align: right; overflow-wrap: anywhere; }
.detail-card-foot { padding: 18px 22px 22px; border-top: 1px solid #eef1f4; }
.detail-admission-status { margin: 18px 0 0; padding: 13px 14px; border: 1px solid #dce2e7; border-radius: 8px; background: #f8fafb; }
.detail-admission-status__label { display: block; margin-bottom: 4px; color: #71808d; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.detail-admission-status strong { display: block; color: #17344b; font-size: 15px; }
.detail-admission-status small { display: block; margin-top: 4px; color: #61717e; font-size: 12px; }
.detail-admission-status a { display: inline-block; margin-top: 8px; color: #e86d3a; font-size: 12px; font-weight: 700; }
.detail-admission-status.is-open { border-color: #b8e5d2; background: #f1fbf6; }
.detail-admission-status.is-open strong { color: #18764f; }
.detail-admission-status.is-upcoming { border-color: #f1dfae; background: #fffaf0; }
.detail-admission-status.is-upcoming strong { color: #9b6a00; }
.detail-admission-status.is-closed { border-color: #f0caca; background: #fff7f7; }
.detail-admission-status.is-closed strong { color: #a33b3b; }
.detail-primary { display: block; background: #0b2748; border: 1px solid #0b2748; border-radius: 2px; padding: 13px; color: #fff; font-size: 15px; font-weight: 600; text-align: center; }
.detail-primary:hover { background: #163a63; color: #fff; }
.detail-helpline { margin: 14px 0 0; font-size: 13px; color: #71808d; text-align: center; }
.detail-helpline strong { color: #17344b; }
.detail-more { margin-top: 48px; padding-top: 34px; border-top: 1px solid #e1e6eb; }
.detail-more > h2 { font-size: 24px; color: #17344b; margin: 0 0 20px; }
.detail-more-all { margin: 26px 0 0; text-align: center; }
.detail-more-all a { font-size: 14px; font-weight: 700; color: #17344b; }
.detail-facts-inline { background: #fff; border: 1px solid #dce2e7; border-radius: 4px; padding: 6px 20px; }
/* Sidebar upcoming-events list. */
.detail-card-events { margin-top: 22px; }
.detail-events { margin: 0; padding: 6px 22px; list-style: none; }
.detail-events li { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; border-bottom: 1px solid #eef1f4; }
.detail-events li:last-child { border-bottom: 0; }
.detail-events a { font-size: 14px; font-weight: 600; line-height: 1.45; color: #17344b; }
.detail-events a:hover { text-decoration: underline; }
.detail-events span { font-size: 12px; color: #8794a3; }

.cor-p5 .nav-link span { white-space: nowrap; }
.catalogue-detail .cor-p5 > h3 { font-size: 23px; color: #17344b; }
.catalogue-detail .cor-p5 .tab-content { font-size: 16px; line-height: 1.72; color: #4f6271; }
.catalogue-detail .cor-p5 .tab-content :is(p,li,a) { font-size: inherit; line-height: inherit; }
.catalogue-detail .cor-p5 .tab-content h4 { font-size: 20px; color: #17344b; margin-bottom: 13px; }

@media(max-width:991px) {
    .detail-layout { grid-template-columns: minmax(0,1fr); gap: 30px; }
    .detail-aside { position: static; }
    .detail-hero img { height: 250px; }
}

/* Event listings read better as rows than cards. */
.event-rows { display: flex; flex-direction: column; gap: 14px; }
.event-row { display: flex; align-items: center; gap: 22px; background: #fff; border: 1px solid #dce2e7; border-radius: 4px; padding: 18px 22px; transition: border-color .15s; }
.event-row:hover { border-color: #8b9eac; }
.event-row-date { flex: 0 0 66px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; background: #0b2748; border-radius: 3px; padding: 10px 6px; color: #fff; }
.event-row-date span:first-child { font-size: 22px; font-weight: 700; line-height: 1; }
.event-row-date span:last-child { font-size: 10px; letter-spacing: .8px; text-transform: uppercase; opacity: .85; }
.event-row-body { flex: 1; min-width: 0; }
.event-row-body h2 { font-size: 18px; line-height: 1.4; margin: 0 0 6px; }
.event-row-body h2 a { font-size: inherit; color: #17344b; }
.event-row-body h2 a:hover { text-decoration: underline; }
.event-row-meta { margin: 0; font-size: 13px; color: #61717e; }
.event-row-actions { flex: 0 0 auto; display: flex; flex-wrap: nowrap; gap: 10px; }
.event-row-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 9px 20px; border-radius: 2px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.event-row-primary { background: #0b2748; border: 1px solid #0b2748; color: #fff; }
.event-row-primary:hover { background: #163a63; color: #fff; }
.event-row-secondary { background: #fff; border: 1px solid #ccd5dd; color: #17344b; }
.event-row-secondary:hover { border-color: #8b9eac; }
@media(max-width:640px) {
    .event-row { flex-wrap: wrap; gap: 14px; }
    .event-row-body { flex: 1 1 100%; order: 2; }
    .event-row-actions { flex: 1 1 100%; order: 3; }
    .event-row-actions a { flex: 1; }
}

.university-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.university-grid .catalogue-image > img { height: 180px; }
.university-grid .catalogue-image--empty { height: 180px; }
.university-grid .catalogue-image--empty > img { width: auto; height: auto; max-width: 160px; max-height: 124px; object-fit: contain; }
.catalogue-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border-top: 1px solid #e7ebee; padding-top: 15px; margin: auto 0 18px; }
.catalogue-facts dt { color: #61717e; font-size: 11px; font-weight: 400; margin-bottom: 4px; }
.catalogue-facts dd { font-weight: 600; font-size: 15px; color: #17344b; margin: 0; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.catalogue-facts dd.is-empty { font-weight: 400; color: #9aa7b3; }
.programme-school { margin: 0 0 18px; background: #fff; border: 1px solid #dce2e7; border-radius: 4px; }
.programme-school a { display: flex; align-items: center; gap: 14px; padding: 14px 16px; color: #17344b; }
.programme-school img, .programme-school__mark { width: 48px; height: 48px; flex: 0 0 48px; object-fit: contain; }
.programme-school__mark { display: flex; align-items: center; justify-content: center; background: #f3f6f8; border-radius: 4px; font-size: 20px; font-weight: 700; }
.programme-school strong { display: block; font-size: 16px; line-height: 1.35; }
.programme-school span span { display: block; margin-top: 2px; font-size: 13px; color: #61717e; }
.programme-card-logo { display: block; width: 52px; height: 52px; margin: 0 0 12px; object-fit: contain; }
.programme-card-logo--mark { display: flex; align-items: center; justify-content: center; background: #f3f6f8; border-radius: 4px; color: #17344b; font-size: 22px; font-weight: 700; }
.public-ui .cours img.programme-card-logo { width: 52px; height: 52px; max-width: 52px; object-fit: contain; margin: 0 0 12px; border-radius: 0; }
.catalogue-detail .onli-co-ban h1 { font-size: clamp(28px,3vw,40px); line-height: 1.2; }
.catalogue-detail .onli-co-ban h4 { font-size: 17px; line-height: 1.6; color: #61717e; }
.catalogue-detail .onli-cor-buy { position: static; margin-top: 0; margin-left: 16px; border: 1px solid #dce2e7; border-radius: 4px; box-shadow: none; }
.catalogue-detail .onli-cor-vid img { width: 100%; height: 230px; object-fit: cover; }
.catalogue-detail .onli-cor-bio { padding: 24px; }
.catalogue-detail .onli-cor-bio .cta-btn { width: 100%; }
.catalogue-detail .cor-mid-img img { width: 100%; max-height: 380px; object-fit: cover; }
.catalogue-detail .cor-p1 h1 { font-size: clamp(28px,3vw,38px); line-height: 1.25; color: #17344b; }
.catalogue-detail .cor-side-com { border: 1px solid #dce2e7; box-shadow: none; }
.catalogue-detail .ho-ev-link li { border-bottom: 1px solid #e7ebee; padding: 14px 0; font-size: 14px; }
.catalogue-detail .ho-st-login { padding: 22px; }
.catalogue-detail .ho-st-login { background: #fff; }
.catalogue-detail .ho-ev-latest-bg-3 { background: #17344b; }
.catalogue-detail .pg-inn { box-shadow: none; }
.catalogue-detail .cta-dark { background: #0b2748; box-shadow: none; border-radius: 2px; }
.catalogue-detail .cta-light { background: #fff; border: 1px solid #ccd5dd; box-shadow: none; border-radius: 2px; }
.catalogue-breadcrumb { font-size: 13px; margin-bottom: 24px; color: #61717e; }
.catalogue-breadcrumb a { font-size: inherit; }
.catalogue-detail .card-header { cursor: pointer; }
.catalogue-detail .onli-cou-deta-pg { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 24px 32px; padding-top: 12px; }
.catalogue-detail .onli-cou-deta-pg > .col-md-8 { display: contents; }
.catalogue-detail .onli-cou-deta-pg > .col-md-8 > div { grid-column: 1; margin: 0; }
.catalogue-detail .onli-cou-deta-pg > .col-md-4 { grid-column: 2; grid-row: 1 / span 20; width: auto; align-self: start; padding: 0; }
.catalogue-detail .onli-co-ban { padding-bottom: 12px; }
.catalogue-detail .cre-profi .profile { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 12px 0; }
.catalogue-detail .cre-profi .profile img { width: 48px; height: 48px; flex: 0 0 48px; object-fit: cover; margin: 0; border-radius: 50%; }
.catalogue-detail .cre-profi .profile h5 { margin: 0; font-size: 16px; }
.catalogue-detail .cre-profi .profile h5 p { font-size: 13px; margin: 4px 0 0; }
.catalogue-detail .onli-cor-buy .profile { text-align: left; }
.catalogue-detail .onli-cor-buy .profile a { position: static; display: block; margin-top: 8px; }
.catalogue-detail .onli-cor-bio .cta-btn { background: #0b2748; box-shadow: none; }
/* The theme centres the buy-box, which strands bullets away from wrapped text. */
.catalogue-detail .onli-co-con-bio { text-align: left; }
.catalogue-detail .onli-co-con-bio ul { margin: 0; padding: 0; list-style: none; }
.catalogue-detail .onli-co-con-bio li { display: block; width: auto; position: relative; margin: 0; padding: 8px 0 8px 18px; border: 0; font-size: 14px; line-height: 1.6; color: #4c5d6b; }
.catalogue-detail .onli-co-con-bio li:before { content: ""; position: absolute; left: 0; top: 15px; width: 5px; height: 5px; border-radius: 50%; background: #b34d28; }
.catalogue-detail .onli-cor-bio .or { margin: 26px 0 12px; font-size: 12px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #17344b; }
.university-detail .pg-inn > .row { padding-top: 0; }
.uni-gallery .ed-course-in { margin-bottom: 24px; border-radius: 4px; overflow: hidden; }
.uni-gallery .ed-course-in img { width: 100%; height: 175px; object-fit: cover; }
.university-shell { padding-top: 34px; }
.university-cover { position: relative; min-height: 390px; margin: 10px 0 38px; overflow: hidden; border-radius: 5px; background: #17344b; }
.university-cover > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.university-cover__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,30,53,.94) 0%, rgba(5,30,53,.70) 45%, rgba(5,30,53,.18) 100%); }
.university-cover__content { position: absolute; left: 48px; right: 48px; bottom: 42px; display: flex; align-items: center; gap: 22px; color: #fff; }
.university-cover__logo { position: relative; box-sizing: border-box; width: 118px; height: 118px; flex: 0 0 118px; border-radius: 4px; background: #fff; box-shadow: 0 8px 25px rgba(0,0,0,.18); overflow: hidden; }
.university-cover__logo img { position: absolute; left: 8px; top: 8px; width: calc(100% - 16px); height: calc(100% - 16px); object-fit: contain; }
.university-cover__content .catalogue-kicker { color: #ffc3a8; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.university-cover__content h1 { max-width: 760px; margin: 0 0 8px; color: #fff; font-size: clamp(34px,5vw,54px); line-height: 1.08; }
.university-cover__content p:last-child { margin: 0; color: rgba(255,255,255,.86); font-size: 17px; }
.university-detail-layout { grid-template-columns: minmax(0,1fr) 320px; }
.university-about { padding: 0 0 30px; }
.university-about > h2 { margin: 0 0 17px; color: #17344b; font-size: clamp(27px,3vw,34px); }
.university-about__copy p { margin-bottom: 17px; }
.university-about__copy :is(h2,h3,h4) { color: #17344b; }
.university-information { margin-top: 8px; }
.university-information .nav-tabs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.university-information .nav-item { min-width: 0; }
.university-information .nav-link { width: 100%; }
.university-information .nav-link span { white-space: normal; line-height: 1.25; }
.university-info-pane { padding: 26px 28px !important; }
.university-admissions-summary { display: grid; grid-template-columns: minmax(0,1fr) 245px; gap: 34px; align-items: start; }
.university-status-pill { display: inline-block; margin: 0 0 13px; padding: 6px 10px; border-radius: 999px; background: #edf1f4; color: #536574; font-size: 13px; font-weight: 700; }
.university-status-pill.is-open { background: #e3f7ed; color: #157149; }
.university-status-pill.is-upcoming { background: #fff2ce; color: #866000; }
.university-status-pill.is-closed { background: #f9e8e8; color: #983a3a; }
.university-deadline { display: flex; justify-content: space-between; gap: 18px; margin: 22px 0 0; padding-top: 17px; border-top: 1px solid #e5e9ed; }
.university-deadline span { color: #687987; }
.university-deadline strong { color: #17344b; text-align: right; }
.university-info-actions { padding: 18px; background: #f4f6f8; border-radius: 4px; }
.university-info-actions p { margin: 12px 0 0; color: #687987; font-size: 13px !important; line-height: 1.55 !important; }
.university-link-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 22px; }
.university-link-grid a { display: flex; justify-content: space-between; gap: 16px; padding: 15px 16px; border: 1px solid #dce2e7; border-radius: 3px; color: #17344b; font-weight: 600; }
.university-link-grid b { color: #e86d3a; }
.university-campus-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 22px; }
.university-campus-grid figure { margin: 0; overflow: hidden; border: 1px solid #dce2e7; border-radius: 4px; background: #fff; }
.university-campus-grid img { width: 100%; height: 145px; object-fit: cover; }
.university-campus-grid figcaption { padding: 11px 12px; color: #17344b; font-size: 14px; font-weight: 700; overflow-wrap: anywhere; }
.university-research-image { width: 100%; max-height: 280px; margin: 0 0 22px; object-fit: cover; border-radius: 4px; }
.university-info-pane h5 { margin: 24px 0 10px; color: #17344b; font-size: 17px; }
@media(max-width:991px) { .university-detail-layout { grid-template-columns: minmax(0,1fr); } .university-cover { min-height: 340px; } }
@media(max-width:700px) { .university-cover { min-height: 330px; margin-bottom: 28px; } .university-cover__content { left: 24px; right: 24px; bottom: 26px; align-items: flex-start; } .university-cover__logo { width: 72px; height: 72px; flex-basis: 72px; } .university-information .nav-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); } .university-admissions-summary, .university-link-grid { grid-template-columns: 1fr; } .university-campus-grid { grid-template-columns: 1fr; } .university-campus-grid img { height: 210px; } }
@media(max-width:480px) { .university-cover__content { display: block; } .university-cover__logo { margin-bottom: 16px; } .university-cover__content h1 { font-size: 31px; } .university-info-pane { padding: 21px 18px !important; } }
@media(max-width:1100px) { .catalogue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .catalogue-layout { grid-template-columns: 220px minmax(0,1fr); gap: 22px; } }
@media(max-width:800px) { .catalogue-shell { padding: 30px 20px 44px; } .catalogue-layout { grid-template-columns: minmax(0,1fr); gap: 22px; } .catalogue-filters { padding: 18px; } .catalogue-search { margin-bottom: 14px; } .catalogue-filter-options[open] { display: grid; grid-template-columns: 1fr 1fr; column-gap: 18px; } .catalogue-filter-options summary, .catalogue-filter-options .catalogue-button { grid-column: 1/-1; } .catalogue-detail .onli-cou-deta-pg { grid-template-columns: minmax(0,1fr); margin: 0; } .catalogue-detail .onli-cou-deta-pg > .col-md-4 { grid-column: 1; grid-row: 2; } .catalogue-detail .onli-cou-deta-pg .onli-co-ban { grid-row: 1; } .catalogue-detail .onli-cor-buy { margin: 0; } }
@media(max-width:540px) { .catalogue-grid { grid-template-columns: minmax(0,1fr); } .catalogue-toolbar { align-items: flex-start; flex-direction: column; gap: 12px; } .catalogue-toolbar form, .catalogue-toolbar .catalogue-sort { width: 100%; } .catalogue-toolbar select { flex: 1; min-width: 0; } .catalogue-image > img, .university-grid .catalogue-image > img, .catalogue-image--empty, .university-grid .catalogue-image--empty { height: 185px; }
.catalogue-image--empty > img, .university-grid .catalogue-image--empty > img { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: auto; height: auto; max-width: 160px; max-height: 124px; object-fit: contain; } .catalogue-filter-options[open] { display: block; } }

/* ==========================================================================
   Consultants (public consultation pages)
   Round avatars for people, plus the booking / free-consultation forms.
   Palette and borders follow the catalogue components above.
   ========================================================================== */
/* Consultant cards keep the big round portrait, orange rate and full-width
   booking button of the previous design, with the source theme's tag chips. */
.consultant-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.consultant-card { display: flex; flex-direction: column; min-width: 0; background: #fff; border-radius: 10px; box-shadow: 1px 3px 10px 1px rgba(51, 51, 51, 0.06); transition: box-shadow .25s ease, transform .25s ease; }
.consultant-card:hover { box-shadow: 0 14px 30px -18px rgba(0, 0, 0, 0.45); transform: translateY(-3px); }
.consultant-card-head { flex: 1; padding: 32px 24px 24px; text-align: center; border-bottom: 1px solid #eef1f4; }
.consultant-avatar { display: block; width: 148px; height: 148px; margin: 0 auto 18px; border-radius: 50%; overflow: hidden; background: #f3f6f8; }
.consultant-avatar img { width: 100%; height: 100%; object-fit: cover; }
.consultant-card h2 { font-size: 20px; line-height: 1.35; margin: 0 0 6px; }
.consultant-card h2 a { font-size: inherit; font-weight: 600; color: #17344b; }
.consultant-card h2 a:hover { color: #f26838; }
.consultant-role { font-size: 14px; color: #6a7885; margin: 0 0 14px; }
.consultant-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.consultant-tags span { margin: 0; }

.consultant-card-foot { padding: 20px 24px 24px; text-align: center; }
.consultant-price { font-size: 22px; font-weight: 700; color: #f26838; margin: 0 0 16px; }
.consultant-price span { font-size: 14px; font-weight: 500; color: #6a7885; }
.consultant-price strong { font-size: 22px; font-weight: 700; color: #1c8a5e; }
.consultant-cta { display: block; padding: 12px; background: #f26838; border-radius: 6px; color: #fff; font-size: 15px; font-weight: 600; }
.consultant-cta:hover { background: #0b2748; color: #fff; }
.consultant-secondary { display: inline-block; margin-top: 12px; font-size: 13px; font-weight: 600; color: #17344b; }
.consultant-secondary:hover { color: #f26838; text-decoration: underline; }

.consultant-lede { display: flex; align-items: center; gap: 26px; margin-bottom: 20px; }
.consultant-lede-avatar { flex: 0 0 auto; width: 158px; height: 158px; border-radius: 50%; overflow: hidden; background: #f3f6f8; }
.consultant-lede-avatar img { width: 100%; height: 100%; object-fit: cover; }
.consultant-lede-text { min-width: 0; }
.consultant-lede .detail-title { margin-bottom: 6px; }
.consultant-lede .consultant-role { font-size: 15px; margin-bottom: 12px; }
.consultant-lede .consultant-tags { justify-content: flex-start; }

/* ---- Bookable time slots ----
   One row per slot rather than wrapping chips: the times are a similar length,
   so rows line up into a scannable column and each gets a full-width hit area.
   "Book" stays hidden until hover to keep the resting state quiet. */
.slot-list { margin: 0; padding: 0; list-style: none; }
.slot-list li + li { margin-top: 6px; }
.slot-list a { display: flex; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid #e2e8ed; border-radius: 6px; background: #fff; font-size: 13.5px; font-weight: 600; color: #17344b; transition: border-color .15s, background .15s, color .15s; }
.slot-list a:hover { border-color: #f26838; background: #fff6f2; color: #17344b; }
.slot-list .fa { flex: 0 0 auto; font-size: 14px; color: #92a1ae; transition: color .15s; }
.slot-list a:hover .fa { color: #f26838; }
.slot-time { flex: 1 1 auto; }
.slot-go { flex: 0 0 auto; font-size: 15px; font-weight: 700; color: #f26838; opacity: 0; transition: opacity .15s; }
.slot-list a:hover .slot-go, .slot-list a:focus-visible .slot-go { opacity: 1; }
.slot-note { margin: 10px 0 0; font-size: 12px; line-height: 1.5; color: #8794a3; }

/* Quieter counterpart to .detail-primary, for a secondary card action. */
.detail-outline { display: block; border: 1px solid #c6d0d9; border-radius: 2px; padding: 11px; background: #fff; font-size: 14px; font-weight: 600; text-align: center; color: #17344b; }
.detail-outline:hover { border-color: #0b2748; background: #f7f9fb; color: #0b2748; }

/* Rows the booking form fills in as the student picks. */
.detail-facts dd.is-empty { font-weight: 400; color: #9aa7b3; }

/* Extra sidebar sections, styled to sit inside the shared .detail-card used by
   the university, subject and scholarship pages. */
.detail-card-slots { padding: 16px 22px; border-top: 1px solid #eef1f4; }
.detail-card-slots h3 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #71808d; margin: 0 0 12px; }
.detail-card-empty { font-size: 13px; line-height: 1.6; color: #71808d; margin: 0; }
.detail-prep { margin: 0; padding: 0; list-style: none; }
.detail-prep li { position: relative; padding: 0 0 8px 16px; font-size: 13.5px; line-height: 1.5; color: #5d6e7b; }
.detail-prep li:last-child { padding-bottom: 0; }
.detail-prep li::before { content: ""; position: absolute; left: 0; top: 7px; width: 5px; height: 5px; border-radius: 50%; background: #f26838; }

/* ---- Enquiry panel ----
   Lifted from the Contact Us form (.overlay-contact + .map-head +
   .footer-part-form) so the site's public forms share one treatment. */
.enquiry-panel { background: #fff; border: 5px dashed #1f4363; border-radius: 5px; box-shadow: 0 0 25px rgba(0, 0, 0, .29); overflow: hidden; }
.enquiry-head { text-align: center; text-transform: uppercase; padding: 32px 20px 14px; }
.enquiry-head p { font-size: 18px; font-weight: 700; color: #13293d; margin: 0; }
.enquiry-head h1 { font-size: 48px; font-weight: 700; line-height: 42px; color: #f26838; text-transform: uppercase; margin: 0; padding: 8px 0; }
.enquiry-head-tag { display: block; font-size: 15px; color: #636363; }
.enquiry-body { padding: 12px 25px 25px; }
.enquiry-submit { display: block; width: 100%; margin-top: 24px; padding: 12px 10px; border: 0; background: #f26838; color: #fff; font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; }
.enquiry-submit:hover { background: #d9542a; }
.enquiry-body .consultant-form-note { margin: 12px 0 0; text-align: center; }

.booking-optional { font-weight: 400; font-size: 12px; color: #8794a3; }
/* Meeting type as selectable chips. The native radio is taken out of the
   layout rather than hidden outright, so it still takes focus and the chip can
   show that focus itself. The chip's own border and tint carry the state. */
.booking-choices { display: flex; flex-wrap: wrap; gap: 12px; }
.booking-choice { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 130px; margin: 0; padding: 12px 20px; border: 1px solid #dce2e7; border-radius: 8px; background: #fff; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s; }
.booking-choice input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.booking-choice:hover { border-color: #b6c2cd; }
.booking-choice:has(input:focus-visible) { outline: 2px solid #0b2748; outline-offset: 2px; }
.booking-choice:has(input:checked) { border-color: #f26838; background: #fff6f2; box-shadow: inset 0 0 0 1px #f26838; }
.booking-choice-label { font-size: 14.5px; font-weight: 600; color: #17344b; }
.booking-choice:has(input:checked) .booking-choice-label { color: #c94f22; }

.consultant-aside-person { display: flex; align-items: center; gap: 13px; padding: 0 0 16px; }
.consultant-aside-person img { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; border: 2px solid #e6ebef; }
.consultant-aside-person h3 { font-size: 16px; color: #17344b; margin: 0 0 2px; }
.consultant-aside-person p { font-size: 13px; color: #61717e; margin: 0; }

/* Single-column container for prose and standalone forms. */
.detail-narrow { max-width: 760px; margin: 0 auto; }
.consultant-form { background: #fff; border: 1px solid #dce2e7; border-radius: 4px; padding: 26px; }
.consultant-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.consultant-field-wide { grid-column: 1 / -1; }
.consultant-field label { display: block; font-size: 14px; font-weight: 600; color: #233b50; margin-bottom: 7px; }
/* Scoped to the required marker so other label spans keep their own colour. */
.consultant-field label span[aria-hidden] { color: #b4442d; }
.consultant-field input,
.consultant-field select,
.consultant-field textarea { width: 100%; border: 1px solid #bdc8d1; border-radius: 2px; padding: 11px 12px; font-size: 15px; color: #17344b; background: #fff; }
.consultant-field input:focus,
.consultant-field select:focus,
.consultant-field textarea:focus { outline: 0; border-color: #0b2748; }
.consultant-field textarea { min-height: 116px; resize: vertical; }
/* Tick boxes must not stretch to the full field width, and the app's form
   control classes land on the inputs themselves, so reset those too. */
.consultant-field input[type="checkbox"],
.consultant-field input[type="radio"] { display: inline-block; width: 15px; height: 15px; flex: 0 0 auto; padding: 0; }
/* CheckboxSelectMultiple renders nested divs; lay them out in readable columns. */
/* The form applies a `display: grid` utility to this wrapper, so lay the
   choices out as grid columns rather than trying to override the display. */
.consultant-field > div:has(input[type="checkbox"]) { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 22px; row-gap: 2px; }
.consultant-field > div:has(input[type="checkbox"]) label { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 14px; font-weight: 500; color: #3c4c5a; }
.consultant-field-error { font-size: 13px; color: #b4442d; margin: 6px 0 0; }
.consultant-field-note { font-size: 13px; color: #61717e; margin: 6px 0 0; }
.consultant-radios { display: flex; flex-wrap: wrap; gap: 18px; }
.consultant-radio { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 500; }
.consultant-radio input { width: auto; }
.consultant-form .detail-primary { width: auto; display: inline-block; padding: 13px 30px; margin-top: 24px; }
.consultant-form-errors { border: 1px solid #e4b8ae; background: #fdf3f1; color: #8c3521; font-size: 14px; padding: 12px 14px; border-radius: 2px; margin-bottom: 20px; }
.consultant-form-note { font-size: 14px; color: #5d6e7b; margin: 18px 0 0; }

.consultant-confirm { background: #fff; border: 1px solid #dce2e7; border-radius: 4px; padding: 40px; text-align: center; }
.consultant-confirm h1 { font-size: clamp(26px, 3vw, 34px); color: #17344b; margin: 0 0 14px; }
.consultant-confirm p { font-size: 16px; line-height: 1.65; color: #5d6e7b; margin: 0 0 12px; }
.consultant-confirm .detail-primary { display: inline-block; width: auto; padding: 13px 30px; margin-top: 16px; }

@media (max-width: 1100px) {
    .consultant-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
    .consultant-grid { grid-template-columns: minmax(0, 1fr); }
    .consultant-lede { flex-direction: column; text-align: center; gap: 14px; }
    .consultant-form-grid { grid-template-columns: minmax(0, 1fr); }
    .consultant-form { padding: 20px; }
    .enquiry-panel { border-width: 4px; }
    .enquiry-head { padding: 24px 16px 10px; }
    .enquiry-head h1 { font-size: 34px; line-height: 32px; }
    .enquiry-head p { font-size: 16px; }
    .enquiry-body { padding: 10px 18px 20px; }
    .booking-choices { flex-direction: column; }
    .booking-choice { width: 100%; }
    .consultant-field > div:has(input[type="checkbox"]) { grid-template-columns: minmax(0, 1fr); }
}

/* University practical information follows the existing course-detail tabs. */
.university-practical .nav-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }
.university-practical h5 { font-size: 18px; color: #17344b; margin: 24px 0 10px; }
.uni-funding-note { border-left: 3px solid #f26838; padding: 4px 20px 16px; margin: 22px 0; background: #f7f9fa; }
.uni-text-link, .uni-funding-note a { color: #a4411d; font-weight: 600; text-decoration: underline; }
.uni-requirements { margin: 20px 0; }
.uni-requirements > div { padding: 18px 0; border-bottom: 1px solid #e1e6eb; }
.uni-requirements dt { color: #17344b; margin-bottom: 6px; font-size: 16px; }
.uni-requirements dd { margin: 0; font-size: 15px; line-height: 1.7; }
.uni-section-heading { margin-bottom: 26px; }
.uni-section-heading h2 { font-size: 30px; color: #17344b; margin: 0 0 10px; }
.uni-section-heading h2 span { color: #f26838; }
.uni-section-heading p { font-size: 16px; color: #61717e; }
.uni-programmes.catalogue-shell, .uni-reviews.catalogue-shell { padding-top: 16px; }
.uni-programme-rows { border-top: 1px solid #dce2e7; }
.uni-programme-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 23px 20px; border-bottom: 1px solid #dce2e7; background: #fff; }
.uni-programme-row:hover, .uni-programme-row:focus-visible { background: #f4f7f9; }
.uni-programme-row h3 { color: #17344b; font-size: 19px; line-height: 1.4; margin: 0 0 7px; }
.uni-programme-row p { color: #61717e; font-size: 14px; margin: 0; }
.uni-programme-facts { display: flex; align-items: center; gap: 24px; flex-shrink: 0; font-size: 14px; color: #17344b; }
.uni-programme-facts small { display: block; color: #61717e; font-size: 12px; }
.uni-programme-view { color: #a4411d; font-weight: 600; }
.uni-browse-link { display: inline-block; color: #17344b; border: 1px solid #17344b; padding: 12px 20px; margin-top: 24px; font-size: 14px; font-weight: 600; border-radius: 3px; }
.uni-browse-link:hover { background: #17344b; color: white; }
.uni-review-empty { display: flex; gap: 22px; padding: 28px; background: #f5f7f9; border-top: 1px solid #dce2e7; border-bottom: 1px solid #dce2e7; }
.uni-review-empty > i { font-size: 32px; color: #61717e; }
.uni-review-empty h3, .uni-review h3 { font-size: 19px; color: #17344b; margin: 0 0 8px; }
.uni-review-empty p, .uni-review p { font-size: 15px; line-height: 1.7; margin: 0; }
.uni-review { padding: 24px 0; border-bottom: 1px solid #dce2e7; overflow-wrap: anywhere; }
.uni-review-meta { display: flex; justify-content: space-between; gap: 16px; font-size: 14px; color: #61717e; margin-bottom: 12px; }
.uni-review-score { font-size: 17px; }
.uni-review-score strong { font-size: 26px; color: #17344b; }
.uni-review-compose { margin-top: 24px; max-width: 720px; }
.uni-review-compose summary { cursor: pointer; font-weight: 600; color: #17344b; font-size: 16px; }
.uni-review-field { margin: 18px 0; }
.uni-review-field label { display: block; font-size: 14px; margin-bottom: 8px; }
.uni-review-field input:not([type=checkbox]), .uni-review-field select, .uni-review-field textarea { width: 100%; padding: 12px; border: 1px solid #b8c5ce; border-radius: 3px; background: white; font: inherit; }
.uni-review-field input[type=checkbox] { position: static; opacity: 1; width: 20px; height: 20px; }
.uni-review-field .errorlist { color: #a12c2c; }
.uni-review-confirmation { margin-top: 20px; padding: 16px; background: #edf7f0; color: #24603a; }
@media(max-width:700px) {
 .university-practical .nav-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .university-practical .nav-link { padding: 12px 5px; }
 .university-practical .nav-link span { font-size: 12px; }
 .uni-programme-row { align-items: flex-start; flex-direction: column; gap: 12px; padding: 20px 12px; }
 .uni-programme-facts { flex-wrap: wrap; flex-shrink: 1; }
 .uni-review-empty { padding: 22px 18px; }
 .uni-review-meta { flex-wrap: wrap; }
}
.uni-section-heading h2 span { font-size: inherit; font-weight: inherit; line-height: inherit; }
@media(max-width:700px) {
 .university-practical .nav-link span { display: block; margin-top: 7px; font-size: 12px; line-height: 1.35; }
 .university-practical .nav-link { display: flex; flex-direction: column; align-items: center; min-height: 87px; height: auto; }
 .university-practical .nav-link img { margin: 0; }
}
.uni-scholarship-browse { margin-top: 28px; padding-top: 20px; border-top: 1px solid #dce2e7; }
.uni-scholarship-browse h5 { margin-top: 0; }
.uni-scholarship-browse .uni-browse-link { margin-top: 0; }
.uni-all-scholarships { display: block; margin-top: 16px; }
.uni-reviews .cor-p6-revi { display: flex; gap: 20px; }
.uni-reviews .cor-p6-revi-left { flex: 0 0 60px; width: 60px; }
.uni-reviews .cor-p6-revi-left img { width: 60px; height: 60px; object-fit: cover; border-radius: 50%; }
.uni-reviews .cor-p6-revi-right { float: none; width: auto; flex: 1; min-width: 0; overflow-wrap: anywhere; }
.uni-review-avatar { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: #edf2f6; color: #17344b; font-size: 24px; font-weight: 600; }

/* Landing pages: degree-level switch and subject-area links above the results. */
.landing-links { display: flex; flex-wrap: wrap; gap: 8px; margin: -8px 0 22px; }
.landing-links a { padding: 7px 14px; border: 1px solid #dce2e7; border-radius: 999px; background: #fff; color: #17344b; font-size: 14px; }
.landing-links a.is-active { background: #0b2748; border-color: #0b2748; color: #fff; }
.landing-areas { margin: 0 0 28px; }
.landing-areas h2 { font-size: 18px; margin: 0 0 12px; color: #0b2748; }
.landing-areas ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.landing-areas a { display: flex; justify-content: space-between; gap: 10px; padding: 10px 14px; border: 1px solid #dce2e7; border-radius: 8px; background: #fff; color: #17344b; font-size: 14px; }
.landing-areas a:hover, .landing-links a:hover { border-color: #f26838; }
.landing-areas a span { color: #61717e; }
.country-degree-links { display: grid; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.country-degree-links a { display: flex; justify-content: space-between; gap: 10px; }

/* Not-found page */
.error-page__body { padding: 24px 0 40px; }
.error-page__search { display: flex; gap: 8px; margin: 24px 0; max-width: 560px; }
.error-page__search input { flex: 1; min-width: 0; padding: 12px 14px; border: 1px solid #dce2e7; border-radius: 8px; font-size: 15px; }
.error-page__search button { padding: 12px 18px; border: 0; border-radius: 8px; background: #f26838; color: #fff; font-weight: 600; }
.error-page__links { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.error-page__links a { font-size: 15px; }

/* Destination hub (/study-in/<country>/): fees, subjects, intakes, cities, scholarships, FAQ */
.country-table-wrap { overflow-x: auto; margin: 12px 0 8px; }
.country-table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 440px; }
.country-table th, .country-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #e3e8ef; }
.country-table thead th { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: #4a5568; background: #f5f7fa; }
.country-table tbody th { color: #0b2748; font-weight: 700; }
.country-table td:nth-child(2) { font-weight: 700; color: #0b2748; }
.country-areas { list-style: none; padding: 0; margin: 14px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.country-areas li { display: flex; flex-direction: column; padding: 16px; border: 1px solid #e3e8ef; border-top: 3px solid #0b2748; border-radius: 8px; background: #fff; transition: box-shadow .15s, border-color .15s; }
.country-areas li:hover { border-top-color: #f26838; box-shadow: 0 6px 18px rgba(11, 39, 72, .08); }
.country-areas h3 { margin: 0; font-size: 16px; line-height: 1.3; font-weight: 700; color: #0b2748; }
.country-areas p { margin: 4px 0 14px; font-size: 13px; color: #5a6578; }
.country-area-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
.country-area-links a { display: inline-flex; align-items: baseline; gap: 6px; font-size: 13px; padding: 5px 11px; border-radius: 999px; border: 1px solid #dfe5ee; background: #f5f7fa; color: #0b2748; font-weight: 600; text-decoration: none; transition: background .15s, color .15s, border-color .15s; }
.country-area-links a span { color: #a4411d; font-weight: 700; font-size: 12px; transition: color .15s; }
.country-area-links a:hover, .country-area-links a:focus-visible { background: #0b2748; border-color: #0b2748; color: #fff; }
.country-area-links a:hover span, .country-area-links a:focus-visible span { color: #ffc9b3; }
.country-intakes { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 10px; }
.country-intakes li { display: grid; grid-template-columns: 110px 1fr 160px; align-items: center; gap: 12px; }
.country-bar { height: 10px; background: #edf1f6; border-radius: 999px; overflow: hidden; }
.country-bar span { display: block; height: 100%; background: #f26838; border-radius: 999px; }
.country-cities li { padding: 6px 12px; border: 1px solid #e3e8ef; border-radius: 999px; font-weight: 600; color: #0b2748; }
.country-cities li span { font-weight: 400; color: #5a6578; margin-left: 4px; font-size: 13px; }
.country-other li a { color: #0b2748; text-decoration: none; }
.country-other li a:hover { color: #a4411d; text-decoration: underline; }
.country-scholarships { list-style: none; padding: 0; margin: 12px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.country-scholarships li { padding: 14px 16px; border: 1px solid #e3e8ef; border-radius: 8px; display: flex; flex-direction: column; gap: 4px; }
.country-scholarships a { font-weight: 700; color: #0b2748; text-decoration: none; }
.country-scholarships a:hover { color: #a4411d; text-decoration: underline; }
.country-scholarships span { font-size: 13px; color: #5a6578; }
.country-faq details { border: 1px solid #e3e8ef; border-radius: 8px; margin: 0 0 8px; background: #fff; }
.country-faq summary { cursor: pointer; padding: 14px 16px; font-weight: 700; color: #0b2748; list-style-position: inside; }
.country-faq summary:focus-visible { outline: 2px solid #f26838; outline-offset: 2px; }
.country-faq details p { margin: 0; padding: 0 16px 14px; line-height: 1.6; }
@media (max-width: 575px) {
    .country-intakes li { grid-template-columns: 80px 1fr; }
    .country-intakes li > span:last-child { grid-column: 2; font-size: 13px; color: #5a6578; }
}

/* Researched country guides inside .detail-prose */
.country-detail .detail-prose ul, .country-detail .detail-prose ol { margin: 0 0 16px; padding-left: 22px; }
.country-detail .detail-prose ul, .country-detail .detail-prose ul li { list-style: disc outside; }
.country-detail .detail-prose ol, .country-detail .detail-prose ol li { list-style: decimal outside; }
.country-detail .detail-prose li { margin: 0 0 6px; display: list-item; }
.country-detail .detail-prose p { margin: 0 0 14px; }
.country-detail .detail-prose strong { color: #17344b; }
.country-sources { font-size: 12.5px; line-height: 1.6; color: #6b7686; border-top: 1px solid #e3e8ef; padding-top: 16px; margin-top: 40px; }
.country-sources p { margin: 0; }
.country-sources a { color: #5a6578; text-decoration: underline; }
.country-other { list-style: none; padding: 0; margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
