/* DBIM 3.0 foundation rules: primary/functional palette and §§4.1–4.4 type scale.
   Loaded after legacy and page styles. Explicit reading preferences remain user controlled. */
@font-face {
    font-family: 'Noto Sans';
    src: url('../fonts/noto/NotoSans-Variable.woff2') format('woff2');
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}
@font-face {
    font-family: 'Noto Sans Devanagari';
    src: url('../fonts/noto/NotoSansDevanagari-Variable.woff2') format('woff2');
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}
:root {
    --bs-secondary-color: var(--ftii-text);
    --bs-tertiary-color: var(--ftii-text);
    --bs-border-color: var(--ftii-linen);
    --bs-tertiary-bg: var(--ftii-linen);
    --bs-secondary-bg: var(--ftii-linen);
    --bs-light-rgb: 235, 234, 234;
    --bs-dark-rgb: 21, 2, 2;
}
html { font-size: 16px; }
.content-table-scroll { max-width: 100%; overflow-x: auto; }
#site-display .video-area { width: 100%; min-width: 0; }
#site-display .content-table-scroll:focus-visible { outline: 2px solid var(--ftii-blue-key); outline-offset: 2px; }
#site-display :is(.album-card,.gallery-item,.gallery-thumbnail):focus-within :is(.album-overlay,.image-overlay,.gallery-overlay) { opacity: 1 !important; }
body { font-family: var(--ftii-font); color: var(--ftii-text); background: var(--ftii-white); font-size: var(--ftii-p1); line-height: 1.5; }
:lang(hi), :lang(mr) { --ftii-font: 'Noto Sans Devanagari', 'Noto Sans', sans-serif; }
/* Override font names embedded by older CMS content, while retaining icon fonts. */
#site-display :where(h1,h2,h3,h4,h5,h6,p,a,li,td,th,label,input,select,textarea,button,span:not(.bi)) {
    font-family: var(--ftii-font) !important;
}
#site-display main { color: var(--ftii-text); }
#site-display main :is(h1,h2,h3,h4,h5,h6) { font-weight: 600; line-height: 1.3; }
#site-display main h1 { font-size: var(--ftii-h1) !important; }
#site-display main h2 { font-size: var(--ftii-h2) !important; }
#site-display main :is(h3,h4,h5,h6) { font-size: var(--ftii-h3) !important; }
#site-display main :is(p,li,td,th,label,input,select,textarea) { font-size: var(--ftii-p1) !important; line-height: 1.5; }
#site-display main :is(small,.small,.text-muted) { font-size: var(--ftii-p2) !important; color: var(--ftii-text) !important; }
#site-display main :is(input,select,textarea) { color: var(--ftii-text); background-color: var(--ftii-white); }
#site-display main :is(input,textarea)::placeholder { color: var(--ftii-text); opacity: 1; }
/* All shared icon artwork uses the key color on light surfaces. */
#site-display .bi, .accessibility-panel .bi, .accessibility-control-icon { color: var(--ftii-blue-key); }
#site-display .secondary-menu :is(.bi,svg),
#site-display .site-footer :is(.bi,svg),
#site-display .back-to-top .bi,
#site-display .third-party-common-button .bi,
#site-display .btn-primary .bi { color: var(--ftii-white); }
#site-display .secondary-menu .dropdown-menu .bi { color: var(--ftii-blue-key); }
#site-display .secondary-menu .dropdown-item.active .bi { color: var(--ftii-white); }
/* The site's social icons are monochrome controls; logo images retain their artwork. */
#site-display .secondary-menu .social-links .bi { background: none; -webkit-text-fill-color: currentColor; }
#site-display .site-footer { background: var(--ftii-blue-key); border-top-color: var(--ftii-blue-key); }
.site-footer :is(a,p,span,h2,h3,strong,.footer-eyebrow,.footer-manager,.footer-review-note,.footer-credit-label) { color: var(--ftii-white); }
.site-footer .footer-partners { background: var(--ftii-linen); }
.site-footer .footer-partners .footer-eyebrow { color: var(--ftii-text); }
.site-footer :is(.footer-feedback,.footer-social-links a) { border-color: var(--ftii-white); }
.site-footer .footer-social-links a:hover { background: var(--ftii-blue-strong); border-color: var(--ftii-white); }
.site-footer .footer-logo-tile { background: var(--ftii-white); }
.accessibility-panel { color: var(--ftii-text); font-family: var(--ftii-font); }
.accessibility-heading h2 { font-size: var(--ftii-h2); }
.accessibility-panel h3 { font-size: var(--ftii-h3); }
.accessibility-grid button { border-color: var(--ftii-blue-key); color: var(--ftii-blue-key); }
.accessibility-grid button[aria-pressed='true'] { border-color: var(--ftii-blue-key); background: var(--ftii-linen); }
.accessibility-reset { background: var(--ftii-blue-key); }
/* Uniform functional surfaces, including Bootstrap variables scoped by components. */
.dropdown-menu { --bs-dropdown-color: var(--ftii-text); --bs-dropdown-bg: var(--ftii-white); --bs-dropdown-link-color: var(--ftii-text); --bs-dropdown-link-hover-color: var(--ftii-text); --bs-dropdown-link-hover-bg: var(--ftii-linen); }
.accordion { --bs-accordion-bg: var(--ftii-white); --bs-accordion-color: var(--ftii-text); --bs-accordion-btn-bg: var(--ftii-linen); --bs-accordion-btn-color: var(--ftii-text); --bs-accordion-active-bg: var(--ftii-linen); --bs-accordion-active-color: var(--ftii-text); }
.table { --bs-table-color: var(--ftii-text); --bs-table-bg: var(--ftii-white); --bs-table-striped-bg: var(--ftii-linen); --bs-table-striped-color: var(--ftii-text); --bs-table-hover-bg: var(--ftii-linen); --bs-table-hover-color: var(--ftii-text); }
.btn-secondary { --bs-btn-bg: var(--ftii-blue-key); --bs-btn-border-color: var(--ftii-blue-key); --bs-btn-hover-bg: var(--ftii-blue-strong); --bs-btn-hover-border-color: var(--ftii-blue-strong); }
#site-display .btn-success { --bs-btn-bg: var(--ftii-success); --bs-btn-border-color: var(--ftii-success); --bs-btn-hover-bg: var(--ftii-success); --bs-btn-hover-border-color: var(--ftii-success); }
#site-display .btn-warning { --bs-btn-color: var(--ftii-text); --bs-btn-bg: var(--ftii-warning); --bs-btn-border-color: var(--ftii-warning); }
#site-display :is(.bg-light,.bg-body-tertiary) { background-color: var(--ftii-linen) !important; }
#site-display .text-muted { color: var(--ftii-text) !important; }
#site-display :is(.accordion-button:not(.collapsed),.ui-accordion .ui-accordion-header) { background: var(--ftii-linen); color: var(--ftii-text); }
#site-display :is(.accordion-button,.ui-accordion-header) .bi { color: var(--ftii-blue-key); }
/* Keep focus visible on both white and dark primary surfaces. */
#site-display :is(a,button,input,select,textarea):focus-visible,
.accessibility-panel button:focus-visible { outline: 2px solid var(--ftii-blue-key); outline-offset: 3px; box-shadow: 0 0 0 5px var(--ftii-white); }
#site-display :is(.secondary-menu,.site-footer) :is(a,button):focus-visible { outline-color: var(--ftii-white); box-shadow: 0 0 0 5px var(--ftii-blue-key); }
/* Image-backed title text remains white on a dark overlay. */
#site-display .inside-banner :is(h1,h2,h3,a,p,span,.bi) { color: var(--ftii-white); }
@media (max-width: 767.98px) {
    :root { --ftii-h1: 1.5rem; --ftii-h2: 1.25rem; --ftii-h3: 1rem; --ftii-p1: .875rem; --ftii-p2: .75rem; --ftii-small: .625rem; }
}
/* Reading preferences override the default palette and spacing by design. */
body.a11y-contrast #site-display, body.a11y-contrast #site-display * { background-color: var(--ftii-black) !important; color: var(--ftii-white) !important; border-color: var(--ftii-white) !important; }
body.a11y-contrast #site-display a { color: var(--ftii-warning) !important; }

/* White banner type needs a predictable contrast floor regardless of the photo. */
#site-display .inside-banner::before { background-color: rgba(0,0,0,.8); }
#site-display .inside-banner :is(li,.breadcrumb-item,.breadcrumb-item::before) { color: var(--ftii-white); }
#site-display :is(.btn-search-icon,.btn-go) .bi { color: var(--ftii-blue-key); }
#site-display .search-input .btn-go .bi { color: var(--ftii-white); }

#site-display .site-footer .footer-service-links button { color: var(--ftii-white); }
#site-display .site-footer .footer-logo-controls .bi { color: inherit; }
#site-display .nav-menus-wrapper-close-button { color: var(--ftii-white); }
#site-display .btn-warning.text-white { color: var(--ftii-text) !important; }
#site-display .btn-warning .bi { color: var(--ftii-blue-key); }
#site-display .pagination .active .page-link { color: var(--ftii-white); }
#site-display .reachus .inforamtion-box a { color: var(--ftii-white); }
@media (min-width: 1200px) {
    .home-header .secondary-menu { height: 37px; line-height: 1.4; }
    .home-header .secondary-menu > .container { height: 100%; }
}

/* Match nested CMS text and secondary/small text to its scale role. */
#site-display main :is(h1,h2,h3,h4,h5,h6,p) :where(span,font,strong,em,b) { font-size: inherit !important; }
#site-display main :is(button,.btn) { font-size: var(--ftii-p1); }
.home-header .secondary-menu { font-size: var(--ftii-p1); }
/* Utility and Admission menus must clear the sticky navigation (z-index 1001)
   and the fixed mobile logo row (1002). An open drawer stays above both. */
#site-display .home-header .dropdown-menu { z-index: 1003; }
#site-display .home-header .navigation-section:has(.nav-menus-wrapper-open) { z-index: 1004; }
.site-footer h2 { font-size: var(--ftii-h2); }
.site-footer :is(p,a,button,.footer-manager,.footer-review-note) { font-size: var(--ftii-p2); }
.site-footer :is(.footer-eyebrow,.footer-credit-label,.footer-stats,.footer-copyright) { font-size: var(--ftii-small); }
#site-display main :is(.badge,.search-result-meta) { font-size: var(--ftii-p2); }

#site-display .youtube-video a::before { color: var(--ftii-white); background: rgba(0,0,0,.8); border-radius: 50%; }
#leftSidecssmenu :is(a,a:hover,a:focus) { color: var(--ftii-text); }
#leftSidecssmenu :is(.active,.open) > a,
#leftSidecssmenu > ul > li > a:hover { background: var(--ftii-linen); color: var(--ftii-text); }
#site-display .third-party-common-button,
#site-display .third-party-common-button:hover { color: var(--ftii-white); }

#site-display .btn-outline-primary { --bs-btn-color: var(--ftii-blue-key); --bs-btn-border-color: var(--ftii-blue-key); --bs-btn-hover-color: var(--ftii-white); --bs-btn-hover-bg: var(--ftii-blue-key); --bs-btn-hover-border-color: var(--ftii-blue-key); --bs-btn-active-color: var(--ftii-white); --bs-btn-active-bg: var(--ftii-blue-key); --bs-btn-active-border-color: var(--ftii-blue-key); }
#site-display .btn-warning { --bs-btn-hover-color: var(--ftii-text); --bs-btn-hover-bg: var(--ftii-warning); --bs-btn-hover-border-color: var(--ftii-warning); }
#site-display :is(.alert-info,.alert-danger,.alert-success) { color: var(--ftii-text); background: var(--ftii-linen); border-color: var(--ftii-blue-key); }
#site-display .alert-warning { color: var(--ftii-text); background: var(--ftii-warning); border-color: var(--ftii-text); }
#site-display .alert-danger { font-weight: 600; }
#site-display .text-warning { color: var(--ftii-text) !important; }
.home-header .secondary-menu .item-other .dropdown-menu a:not(.active):not(:active) { color: var(--ftii-text); }
#site-display .btn-info { --bs-btn-color: var(--ftii-white); --bs-btn-bg: var(--ftii-blue-key); --bs-btn-border-color: var(--ftii-blue-key); --bs-btn-hover-color: var(--ftii-white); --bs-btn-hover-bg: var(--ftii-blue-strong); --bs-btn-hover-border-color: var(--ftii-blue-strong); }
#site-display .btn-danger { --bs-btn-bg: var(--ftii-text); --bs-btn-border-color: var(--ftii-text); --bs-btn-hover-bg: var(--ftii-text); --bs-btn-hover-border-color: var(--ftii-text); }
#site-display :is(.btn-success,.btn-info,.btn-danger,.bg-primary,.bg-secondary,.bg-success,.text-bg-primary,.text-bg-secondary,.text-bg-success) .bi { color: var(--ftii-white); }
/* DBIM P2 media framing: preserve logo ratios and never stretch/crop faces. */
.home-header .logo-box img { width: auto; height: auto; object-fit: contain; }
.footer-logo-tile img { aspect-ratio: auto; object-fit: contain; }
#site-display img[data-headshot] { aspect-ratio: 1 / 1; object-fit: contain !important; height: auto !important; max-width: 100%; border-radius: 0 !important; background: var(--ftii-white); }
#site-display .faculty-items > img[data-headshot] { width: 100%; }
#site-display .gallery-overlay { background: rgba(0,0,0,.8) !important; }
#site-display .gallery-overlay :is(.bi,a,span,p,h2,h3) { color: var(--ftii-white) !important; }

/* Privacy controls use the approved site palette. */
#main .contact-card { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 360px) { #main .contact-grid { grid-template-columns: minmax(0, 1fr); } }
.search-results-section .pagination { flex-wrap: wrap; row-gap: .5rem; }
.feedbackform #refresh-captcha { min-height: 44px; }
.privacy-banner { position: fixed; bottom: 0; inset-inline: 0; z-index: 1050; padding: 1rem max(1rem, calc((100vw - 1140px) / 2)); background: #fff; color: var(--ftii-text, #172b36); border-top: 3px solid var(--ftii-brand); box-shadow: 0 -3px 15px #0002; max-height: 55vh; overflow-y: auto; }
.privacy-banner[hidden], [data-media-notice][hidden] { display: none; }
.privacy-banner h2, .privacy-dialog h2 { font-size: 1.3rem; }
.privacy-banner p { margin-bottom: .6rem; }
.privacy-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.privacy-actions button, [data-media-notice] { min-height: 44px; padding: .5rem .8rem; border: 2px solid var(--ftii-brand-action, #0878b5); border-radius: .25rem; background: #fff; color: var(--ftii-text, #172b36); }
.privacy-actions button:focus-visible, [data-media-notice]:focus-visible { outline: 3px solid var(--ftii-brand-action, #0878b5); outline-offset: 3px; }
.privacy-dialog { width: min(600px, calc(100% - 2rem)); max-height: 85vh; overflow-y: auto; padding: 1.5rem; border: 2px solid var(--ftii-brand); border-radius: .4rem; color: var(--ftii-text, #172b36); }
.privacy-dialog::backdrop { background: #0008; }
.privacy-dialog label { display: flex; align-items: center; gap: .6rem; min-height: 44px; margin-bottom: .8rem; }
.privacy-dialog input { flex-shrink: 0; width: 20px; height: 20px; }
.owl-carousel .owl-dots { display: flex; flex-wrap: wrap; justify-content: center; }
.owl-carousel .owl-dot, .owl-carousel .owl-nav button { min-width: 44px; min-height: 44px; }
@media (max-width: 1279.98px) { .memory-lane-slider .owl-nav .owl-next { right: 0 !important; } .memory-lane-slider .owl-nav .owl-prev { left: 0 !important; } }
.gallery-fallback { width: min(1100px, calc(100% - 2rem)); max-height: 95vh; overflow: auto; padding: 1rem; color: #fff; background: rgba(0,0,0,.95); border: 0; }
.gallery-fallback::backdrop { background: rgba(0,0,0,.85); }
.gallery-fallback img { display: block; max-width: 100%; max-height: 70vh; object-fit: contain; margin: 1rem auto; }
.gallery-fallback-controls { display: flex; flex-wrap: wrap; gap: .5rem; }
.gallery-fallback button { min-width: 44px; min-height: 44px; padding: .5rem; }
.gallery-fallback button:focus-visible { outline: 3px solid var(--ftii-brand); outline-offset: 2px; }
.feedbackform .captcha-image-container { flex-wrap: wrap; gap: .5rem; }
.feedbackform audio { display: block; width: 100%; max-width: 400px; margin-bottom: .75rem; }

/* Keep every notice available without moving or replacing focused links. */
.itemScoller { height: 100%; max-height: 32rem; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; }
.itemScoller::-webkit-scrollbar { display: none; }
#site-display main :is(.updates-section, .press-release) .card-header { position: relative; }
#site-display main :is(.updates-section, .press-release) .notice-view-all { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 44px; text-decoration: none; }
.notice-view-all svg { flex-shrink: 0; color: currentColor; }
/* Five official social channels and CMS press releases share one responsive grid. */
.social-engangement-section .social-content.social-feed-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: stretch; }
.social-feed-grid > *, .social-feed-card { min-width: 0; }
.social-feed-card { display: flex; flex-direction: column; border: 1px solid #d8e2e7; background: #fff; border-radius: 6px; overflow: hidden; }
#site-display main .social-feed-card .card-header { background: var(--ftii-action); color: #fff; padding: 12px 16px; }
#site-display main .social-feed-card h3 { margin: 0; color: #fff; display: flex; align-items: center; gap: 10px; }
#site-display .social-feed-card .card-header .bi { color: #fff; }
.social-feed-body { min-height: 430px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 16px; text-align: center; }
.social-feed-body iframe { width: 100%; height: 430px; border: 0; }
.social-feed-body:has(iframe) { padding: 0; }
.social-feed-body:has(iframe:not([src])) { padding: 16px; }
.social-feed-body iframe:not([src]), .social-feed-body:has(iframe[src]) .social-feed-explanation { display: none; }
.social-feed-profile-icon { font-size: 48px; }
.social-feed-body p { max-width: 30ch; margin: 0; }
.social-feed-card .card-footer { margin-top: auto; padding: 8px 16px; background: #f2f5f7; }
#site-display main .social-feed-grid .notice-view-all { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; text-decoration: none; }
.social-feed-grid .press-release, .social-feed-grid .press-release > .card { height: 100%; }
.social-feed-grid .press-release > .card { display: flex; flex-direction: column; }
.social-feed-grid .press-release .card-body { flex: 1; min-height: 430px; }
.social-feed-grid .press-release .card-body .list { height: 430px; }
@media (min-width: 768px) { .social-engangement-section .social-content.social-feed-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .social-engangement-section .social-content.social-feed-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Supporting dates and fixed marker columns keep notice cards compact and aligned. */
#site-display main :is(.updates-section, .press-release) .card-header h6 {
    font-size: var(--ftii-p2) !important;
    font-weight: 400;
    line-height: 1.4;
    margin: 0;
}
#site-display main :is(.updates-section, .press-release) .itemScoller > li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    column-gap: 6px;
    align-items: start;
    padding: 6px 0;
    margin: 0;
}
#site-display main :is(.updates-section, .press-release) .itemScoller > li::before {
    content: "";
    display: block;
    width: 16px;
    height: 20px;
    font-size: inherit;
    margin: calc(.75em - 10px) 0 0;
    position: static;
    background-color: var(--ftii-text);
    border-radius: 0;
    -webkit-mask: url('../icons/dbim/chevron-right.svg') center / 16px 16px no-repeat;
    mask: url('../icons/dbim/chevron-right.svg') center / 16px 16px no-repeat;
}
#site-display main :is(.updates-section, .press-release) .itemScoller > li > a {
    min-width: 0;
    text-align: start;
}
/* On wide screens the photo fills the adjacent content height; stacked mobile
   photos keep their original aspect ratio. */
.about-section .about-row .item-pic { min-width: 0; overflow: hidden; }
.about-section .about-row .item-pic img { display: block; width: 100%; height: auto; }
@media (min-width: 1200px) {
    .about-section .about-row .item-pic { position: relative; }
    .about-section .about-row .item-pic img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
}
#homeslider { position: relative; }
@media (prefers-reduced-motion: reduce) {
  .scroll-down .box span { animation: none !important; }
  html { scroll-behavior: auto !important; }
}
.sitemap-content { overflow-wrap: anywhere; }
.sitemap-content nav { margin-block: 2rem; }
.sitemap-content ul { padding-inline-start: 1.5rem; }
.sitemap-content li { margin-block: .5rem; }
.sitemap-content a { display: inline-block; padding-block: .25rem; }
/* Local publication-table controls remain contained at small sizes. */
.dataTables_wrapper { min-width: 0; max-width: 100%; }
.dataTables_wrapper :is(.dataTables_filter, .dataTables_length) { float: none; text-align: start; margin-block: .75rem; }
.dataTables_wrapper label { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.dataTables_wrapper input { max-width: 100%; min-width: 0; }
/* Authored media in generic detail pages follows the same containment as CMS pages. */
#main :is(.content-body, .cms-content) :is(img, video, iframe) { max-width: 100% !important; }
#main :is(.content-body, .cms-content) :is(img, video) { height: auto !important; }
/* DBIM content-table alignment keeps headings and numeric values distinct. */
#main :is(.cms-content, .content-body) p { text-align: start; text-transform: none; }
#main table td { text-align: start; }
#main table th, #main table thead td { text-align: center !important; }
#main table td.content-numeric-cell { text-align: end !important; }
#main p.content-reading-paragraph { text-align: start !important; text-transform: none !important; }

/* Selected Facebook post: keep its native header visible and scroll the full post. */
.social-feed-body.social-feed-post { height: 430px; min-height: 430px; display: block; overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: contain; }
.social-feed-body.social-feed-post iframe { display: block; height: 900px; }
.social-feed-body.social-feed-post iframe:not([src]) { display: none; }
.social-feed-body.social-feed-post:has(iframe:not([src])) { display: flex; }
#site-display .social-feed-post:focus-visible { outline: 2px solid var(--ftii-blue-key); outline-offset: -2px; }

/* Outline-button icons follow selected/hover/focus text colours, including view toggles. */
#site-display .btn-outline-primary .bi { color: inherit; }

/* Video gallery: lightweight thumbnail cards; create a player only on request. */
.video-tile { border: 1px solid #e2e5e9; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 3px 12px rgb(0 0 0 / 4%); }
.video-tile-link { display: block; height: 100%; color: #172c45; text-decoration: none; }
.video-tile-link:hover { color: #172c45; text-decoration: none; }
.video-tile-link:focus-visible { outline: 3px solid #a84418; outline-offset: -3px; }
.video-tile-image { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #182b42; }
.video-tile-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.video-tile-link:hover img { transform: scale(1.035); }
.video-tile-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 56px; height: 56px; padding-left: 3px; border: 2px solid #fff; border-radius: 50%; background: rgb(10 20 35 / 75%); color: #fff; font-size: 22px; box-shadow: 0 3px 16px #0005; }
.video-tile-link:hover .video-tile-play, .student-film-watch:hover .video-tile-play { background: #a84418; }
.video-tile-badge { position: absolute; bottom: 12px; left: 12px; background: #10223be6; color: #fff; padding: 3px 10px; border-radius: 4px; font-size: .75rem; }
.video-tile-body { display: grid; gap: 14px; padding: 18px 20px; }
.video-tile-title { font-size: 1.05rem; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.video-tile-action { color: #974016; font-size: .875rem; font-weight: 600; }
.video-popup { width: min(1000px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); padding: 0; border: 0; border-radius: 12px; background: #fff; color: #172c45; overflow: auto; }
.video-popup::backdrop { background: rgb(5 12 24 / 85%); }
.video-popup-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; }
.video-popup-heading h2 { margin: 0; font-size: 1.1rem; line-height: 1.5; }
.video-popup-close { flex-shrink: 0; border: 0; background: #edf0f4; color: #172c45; border-radius: 50%; width: 44px; height: 44px; font-size: 28px; }
.video-popup-stage { position: relative; aspect-ratio: 16 / 9; background: #080d15; }
.video-popup-stage iframe { width: 100%; height: 100%; display: block; border: 0; }
.video-popup-consent { position: absolute; inset: 0; margin: auto; width: fit-content; max-width: 85%; height: fit-content; padding: 14px 20px; border: 1px solid #fff; border-radius: 6px; background: #fff; color: #172c45; }
.video-popup-parts { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.video-popup-parts:not(:empty) { padding: 16px; }
.video-popup-parts button { min-width: 44px; min-height: 44px; border: 1px solid #ccd2db; border-radius: 6px; background: #fff; color: #172c45; }
.video-popup-parts button[aria-pressed="true"] { background: #172c45; color: #fff; }
html.video-popup-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .video-tile-image img { transition: none; } .video-tile-link:hover img { transform: none; } }

/* Photo albums share a restrained card layout and preserve the original in the viewer. */
.photo-album-card { border: 1px solid #e1e6ec; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 3px 12px #172c4508; }
.photo-album-link { display: flex; flex-direction: column; height: 100%; color: #172c45; text-decoration: none; }
.photo-album-link:hover { color: #172c45; text-decoration: none; }
.photo-album-cover { display: block; position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: #edf0f3; }
.photo-album-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.photo-album-link:hover img { transform: scale(1.035); }
.photo-album-count { position: absolute; left: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: 5px; background: #12263ce8; color: #fff; font-size: .8rem; font-weight: 600; }
.photo-album-body { display: grid; gap: 18px; padding: 20px; flex: 1; align-content: space-between; }
.photo-album-title { font-size: 1.15rem; line-height: 1.5; font-weight: 600; }
.photo-album-action { display: flex; justify-content: space-between; color: #086e9f; font-size: .9rem; font-weight: 600; }
.photo-album-placeholder { display: grid; place-items: center; height: 100%; font-size: 3rem; color: #6d8294; }
.photo-album-link:focus-visible, .album-photo-open:focus-visible { outline: 3px solid #087dae; outline-offset: -3px; }
.photo-album-back { display: inline-flex; gap: 10px; align-items: center; margin-bottom: 28px; font-weight: 600; text-decoration: none; }
.photo-album-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; padding-bottom: 24px; border-bottom: 1px solid #e1e6ec; }
.photo-album-eyebrow { margin: 0 0 6px; text-transform: uppercase; letter-spacing: .1em; color: #557086; font-size: .75rem; font-weight: 600; }
.photo-album-header h1 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.4rem); color: #172c45; }
.photo-album-total { flex-shrink: 0; display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; background: #edf5fa; border-radius: 30px; color: #175577; font-weight: 600; }
.photo-album-description { margin-bottom: 24px; }
.photo-album-hint { margin-bottom: 20px; color: #576775; font-size: .9rem; }
.album-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.album-photo { margin: 0; min-width: 0; }
.album-photo-open { display: block; position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; background: #edf0f3; text-decoration: none; }
.album-photo-open img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.album-photo-open:hover img { transform: scale(1.025); }
.album-photo-number { position: absolute; top: 12px; left: 12px; min-width: 30px; padding: 4px 9px; border-radius: 5px; background: #14273ddb; color: #fff; text-align: center; font-size: .8rem; }
.album-photo-expand { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #14273ddb; color: #fff; }
.album-photo figcaption { padding: 12px 0 0; line-height: 1.5; }
.album-photo-title { display: block; font-size: .95rem; font-weight: 600; color: #172c45; }
.album-photo-description { display: block; margin-top: 4px; font-size: .875rem; color: #576775; }
.photo-album-empty { padding: 48px 24px; text-align: center; background: #f2f4f6; border-radius: 10px; }
.photo-album-metadata { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 24px; }
.photo-album-metadata dd { margin: 0; }
/* Fullscreen photo viewer. Controls remain outside the image. */
.gallery-fallback { box-sizing: border-box; width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; border-radius: 0; background: #0c121b; color: #fff; overflow: hidden; }
.gallery-fallback[open] { display: flex; flex-direction: column; }
.gallery-fallback::backdrop { background: #0c121bf2; }
.photo-viewer-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 24px; flex: 0 0 auto; border-bottom: 1px solid #ffffff1a; }
.photo-viewer-counter { font-size: .9rem; font-variant-numeric: tabular-nums; color: #e0e8f1; }
.photo-viewer-tools { display: flex; gap: 8px; }
.gallery-fallback :is(button, .photo-viewer-tools a) { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0; border: 1px solid #ffffff30; border-radius: 8px; background: #ffffff0d; color: #fff; font-size: 26px; text-decoration: none; cursor: pointer; }
.gallery-fallback :is(button, .photo-viewer-tools a):hover { background: #ffffff26; }
.gallery-fallback :is(button, a):focus-visible { outline: 3px solid #56caff; outline-offset: 2px; }
.photo-viewer-stage { flex: 1 1 auto; position: relative; min-height: 0; display: flex; }
.photo-viewer-canvas { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 0; overflow: auto; padding: 20px 76px; }
.gallery-fallback .photo-viewer-canvas > img { display: block; max-width: 100%; max-height: 100%; width: 100%; height: 100%; object-fit: contain; margin: 0; cursor: zoom-in; }
.gallery-fallback .photo-viewer-canvas > img[hidden] { display: none; }
.photo-viewer-canvas.is-zoomed { display: block; }
.gallery-fallback .is-zoomed > img { max-width: none; max-height: none; width: 200%; height: auto; cursor: zoom-out; }
.photo-viewer-stage > button { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; font-size: 36px; background: #172131df; }
.photo-viewer-previous { left: 16px; }
.photo-viewer-next { right: 16px; }
.gallery-fallback [hidden] { display: none !important; }
.photo-viewer-status { position: absolute; inset: 0; display: grid; place-content: center; padding: 24px 76px; text-align: center; pointer-events: none; }
.gallery-fallback .photo-viewer-footer { background: transparent; color: #fff; border: 0; flex: 0 0 auto; padding: 12px 24px 16px; text-align: center; max-height: 20vh; overflow: auto; }
.photo-viewer-caption { margin: 0; color: #fff; font-size: .95rem; font-weight: 600; }
.photo-viewer-description { margin: 6px 0 0; color: #becad7; font-size: .875rem; }
.photo-viewer-thumbnails { display: flex; flex: 0 0 auto; gap: 8px; padding: 10px 24px 16px; overflow-x: auto; border-top: 1px solid #ffffff1a; }
.gallery-fallback .photo-viewer-thumbnails button { flex: 0 0 64px; width: 64px; height: 48px; padding: 2px; border: 2px solid transparent; background: transparent; }
.gallery-fallback .photo-viewer-thumbnails button[aria-current="true"] { border-color: #56caff; }
.gallery-fallback .photo-viewer-thumbnails img { width: 100%; height: 100%; max-height: none; margin: 0; object-fit: cover; border-radius: 3px; }
html.photo-viewer-open { overflow: hidden; }
@media (max-width: 991px) { .album-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) {
    .photo-album-header { align-items: flex-start; flex-direction: column; gap: 16px; }
    .album-photo-grid { gap: 16px; }
    .album-photo-open { aspect-ratio: 1; }
    .photo-album-body { padding: 16px; }
    .photo-viewer-toolbar { padding: 10px 12px; }
    .photo-viewer-canvas { padding: 12px 8px; }
    .photo-viewer-stage > button { top: auto; bottom: 10px; transform: none; }
    .photo-viewer-previous { left: 10px; } .photo-viewer-next { right: 10px; }
    .photo-viewer-footer { padding: 10px 16px; }
    .photo-viewer-thumbnails { padding: 10px 12px; }
}
@media (prefers-reduced-motion: reduce) { .photo-album-cover img, .album-photo-open img { transition: none; } .photo-album-link:hover img, .album-photo-open:hover img { transform: none; } }

/* Students' films: dedicated YouTube feature alongside the two academic wings. */
.student-films-showcase { padding: 64px 0; background: #101f30 url('../images/optimized/student-flimsbg.webp') center / cover; background-blend-mode: multiply; color: #fff; }
.student-films-heading { margin-bottom: 32px; }
.student-films-heading > p { margin: 0 0 8px; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: #b9d8e9; }
#site-display .student-films-heading h2 { margin: 0; color: #fff; text-align: left; font-size: clamp(1.8rem, 3vw, 2.5rem); }
.student-films-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.3fr); align-items: center; gap: 48px; }
.student-films-pathways { display: grid; gap: 16px; }
.student-films-intro { margin: 0 0 8px; line-height: 1.8; color: #dce6ef; max-width: 48ch; }
.student-wing-card { display: flex; align-items: center; gap: 16px; padding: 22px; border: 1px solid #ffffff40; border-radius: 12px; background: #ffffff0c; text-decoration: none; color: #fff; }
.student-wing-card:hover { color: #fff; background: #ffffff1f; text-decoration: none; }
#site-display .student-wing-card h3 { color: #fff; font-size: 1.15rem; margin: 0 0 6px; }
.student-wing-card > span:nth-child(2) > span { color: #c9d8e5; font-size: .9rem; line-height: 1.6; }
.student-wing-icon { flex-shrink: 0; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 10px; background: #ffffff16; font-size: 24px; }
#site-display .student-wing-icon .bi { color: #c5e9ff; }
.student-wing-arrow { margin-left: auto; font-size: 24px; }
.student-film-feature { min-width: 0; border: 1px solid #ffffff38; border-radius: 14px; overflow: hidden; background: #122336; box-shadow: 0 14px 40px #0004; }
.student-film-watch { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #07111c; }
.student-film-watch::after { content: ''; position: absolute; inset: 0; background: linear-gradient(#0002, transparent 45%, #000b); pointer-events: none; }
.student-film-watch img { width: 100%; height: 100%; object-fit: cover; }
.student-film-provider { position: absolute; top: 16px; left: 16px; z-index: 1; display: flex; align-items: center; gap: 8px; padding: 5px 10px; border-radius: 5px; background: #0c1424d9; color: #fff; font-size: .8rem; }
#site-display .student-film-provider .bi { color: #ff5555; }
.student-film-watch-label { position: absolute; left: 20px; bottom: 18px; z-index: 1; color: #fff; font-size: 1.1rem; font-weight: 600; }
.student-film-feature-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 18px 20px; color: #bdccdb; font-size: .85rem; }
.student-film-feature-footer a { display: inline-flex; align-items: center; gap: 12px; padding: 10px 14px; border: 1px solid #ffffff50; border-radius: 6px; color: #fff; font-weight: 600; text-decoration: none; }
.student-film-feature-footer a:hover { background: #ffffff15; }
.student-films-showcase a:focus-visible { outline: 3px solid #7bd5ff; outline-offset: -3px; }
/* Curated WhatsApp updates require no external requests or media consent. */
#site-display main .whatsapp-card .card-header { background: #126b50; }
.whatsapp-feed-body { height: 430px; overflow-y: auto; background: #eef5f0; padding: 20px 16px; }
.whatsapp-channel-intro { display: flex; align-items: flex-start; gap: 12px; padding-bottom: 20px; }
.whatsapp-channel-avatar { flex-shrink: 0; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #d4eadf; color: #126b50; font-size: 24px; }
#site-display .whatsapp-channel-intro h4 { margin: 0 0 6px; font-size: 1rem; color: #183c30; }
.whatsapp-channel-intro p { margin: 0; font-size: .85rem; line-height: 1.6; color: #456456; }
.whatsapp-updates { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.whatsapp-updates li { padding: 16px; border: 1px solid #d8e4dd; border-radius: 0 12px 12px; background: #fff; box-shadow: 0 2px 6px #14332708; overflow-wrap: anywhere; }
#site-display .whatsapp-updates h4 { font-size: .95rem; line-height: 1.6; color: #1d3c30; margin: 0 0 8px; }
.whatsapp-updates p { color: #526259; font-size: .875rem; line-height: 1.6; margin: 0 0 12px; white-space: pre-line; }
.whatsapp-updates a { font-size: .8rem; font-weight: 600; color: #126b50; text-decoration: none; display: inline-block; padding: 8px 0; }
.whatsapp-empty { display: grid; justify-items: center; gap: 16px; margin: 45px auto 0; max-width: 26ch; text-align: center; color: #456456; }
.whatsapp-empty .bi { font-size: 40px; }
.whatsapp-empty p { margin: 0; }
.whatsapp-pending { display: flex; min-height: 44px; align-items: center; color: #526259; font-size: .875rem; }
@media (max-width: 991px) { .student-films-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; } .student-films-intro { max-width: none; } }
@media (max-width: 575px) { .student-films-showcase { padding: 40px 0; } .student-wing-card { padding: 16px; gap: 12px; } .student-wing-icon { width: 40px; height: 40px; } .student-film-feature-footer { padding: 14px; } .student-film-feature-footer a { width: 100%; justify-content: center; } }

.whatsapp-demo-badge { display: inline-block; margin-bottom: 16px; padding: 4px 8px; border: 1px solid #bdcfc3; border-radius: 4px; color: #456456; background: #fff; font-size: .75rem; }

.student-film-watch .video-tile-play { z-index: 1; }

/* Awards controls mirror the government-logo carousel. */
.awards-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
#site-display .awards-section-heading h2 { margin: 0; text-align: left; }
.awards-controls { display: flex; gap: 8px; flex-shrink: 0; }
.awards-controls[hidden], .awards-dialog [hidden] { display: none !important; }
#site-display .awards-controls button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--ftii-secondary); border-radius: 8px; background: #fff; color: var(--ftii-secondary); }
#site-display .awards-controls button:hover { background: var(--ftii-secondary); color: #fff; }
#site-display .awards-controls button .bi { color: inherit; }
.awards-controls button svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.awards-controls button:focus-visible, .award-link:focus-visible { outline: 3px solid #087dae; outline-offset: 3px; }
.award-accolades-slider:not(.owl-loaded) { display: flex; gap: 24px; overflow-x: auto; }
.award-accolades-slider:not(.owl-loaded) > .item { flex: 0 0 220px; }
.award-accolades-slider .award-link { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; }
.awards-dialog { width: min(1180px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 48px); padding: 0; border: 0; border-radius: 14px; background: #f4f7fa; color: #172c45; overflow: hidden; }
.awards-dialog[open] { display: flex; flex-direction: column; }
.awards-dialog::backdrop { background: #071525cf; }
.awards-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; background: #fff; border-bottom: 1px solid #dce4ec; }
.awards-dialog-header p { margin: 0 0 4px; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: #59738a; }
.awards-dialog-header h2 { margin: 0; font-size: 1.5rem; color: #172c45; }
.awards-dialog-header button { width: 44px; height: 44px; flex-shrink: 0; border: 0; border-radius: 50%; background: #edf2f7; color: #172c45; font-size: 28px; }
.awards-dialog-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 16px 24px; border-bottom: 1px solid #dce4ec; background: #fff; }
.awards-dialog-toolbar input { width: min(100%, 440px); min-height: 44px; padding: 10px 14px; border: 1px solid #b8c8d6; border-radius: 6px; background: #fff; color: #172c45; }
.awards-dialog-toolbar [data-awards-count] { color: #59738a; font-size: .875rem; }
.awards-dialog-scroll { padding: 24px; overflow-y: auto; min-height: 0; overscroll-behavior: contain; }
.award-results { display: grid; gap: 16px; }
.award-result { border: 1px solid #dce4ec; border-radius: 10px; background: #fff; padding: 20px; }
.award-result > header { display: flex; align-items: flex-start; gap: 14px; }
.award-year { padding: 6px 10px; background: #eaf3f9; border-radius: 5px; font-size: .875rem; color: #185b80; font-weight: 600; }
.award-result h3 { margin: 0 0 5px; font-size: 1.1rem; line-height: 1.5; color: #172c45; }
.award-result header p { margin: 0; color: #576d7e; font-size: .875rem; }
.award-distinctions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin: 20px 0 0; padding-top: 16px; border-top: 1px solid #e6ecf1; }
.award-distinctions dt { color: #155b83; font-size: .8rem; margin-bottom: 6px; }
.award-distinctions dd { margin: 0; font-size: .9rem; line-height: 1.7; }
.award-distinctions ul { margin: 0; padding-left: 18px; }
.award-result { overflow-wrap: anywhere; }
.award-no-details, .awards-status, .awards-empty { color: #576d7e; margin: 16px 0; }
.awards-retry { min-height: 44px; padding: 8px 18px; border: 1px solid #087dae; border-radius: 6px; color: #087dae; background: #fff; }
html.awards-popup-open { overflow: hidden; }
@media (max-width: 575px) { .awards-section-heading { align-items: flex-start; flex-direction: column; gap: 16px; } .awards-dialog { max-height: calc(100dvh - 24px); width: calc(100% - 16px); } .awards-dialog-header, .awards-dialog-toolbar, .awards-dialog-scroll { padding: 16px; } .award-result { padding: 16px; } .award-distinctions { grid-template-columns: minmax(0, 1fr); } }

/* Shared CMS document actions: keep the authored file name, size and PDF mark. */
#main a.content-document-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  max-width: 100%;
  padding: 7px 12px;
  margin-block: 2px;
  border: 1px solid #c5dfea;
  border-radius: 6px;
  background: #f0f8fc;
  color: #075f89;
  font-weight: 600;
  font-size: .9375rem;
  line-height: 1.5;
  text-decoration: none;
  overflow-wrap: anywhere;
  vertical-align: middle;
}
#main a.content-document-link:hover {
  border-color: #087dae;
  background: #e0f0f8;
  color: #064967;
  text-decoration: underline;
  text-underline-offset: 3px;
}
#main a.content-document-link:focus-visible {
  outline: 3px solid #087dae;
  outline-offset: 3px;
}
.content-download-icon { flex: 0 0 auto; --ftii-icon-size: 22px; }
#main .content-document-table { min-width: 640px; }
#main .content-document-table td { vertical-align: middle; }

/* Human-readable sitemap and a live CMS content directory. */
.sitemap-content { padding-top: 48px; padding-bottom: 64px; }
.sitemap-heading { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-bottom: 32px; }
.sitemap-eyebrow { text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; font-weight: 600; color: #56758c; margin: 0 0 8px; }
.sitemap-heading h1 { margin: 0 0 12px; color: #172c45; font-size: clamp(2rem, 3vw, 2.6rem); }
.sitemap-intro { color: #566c7c; margin: 0; max-width: 65ch; line-height: 1.7; }
.sitemap-xml-link { display: flex; align-items: center; gap: 14px; flex-shrink: 0; padding: 18px 22px; border: 1px solid #d4e3ed; border-radius: 10px; background: #f0f7fb; color: #145d85; text-decoration: none; font-weight: 600; }
.sitemap-xml-link > span:first-child { font-size: 1.3rem; }
.sitemap-xml-link small { display: block; margin-top: 4px; font-size: .75rem; color: #566c7c; font-weight: 400; }
.sitemap-tools { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; background: #f5f8fb; border: 1px solid #dce5ee; border-radius: 12px; }
.sitemap-search { width: min(100%, 580px); }
.sitemap-search label { display: block; margin-bottom: 8px; color: #172c45; font-size: .875rem; font-weight: 600; }
.sitemap-search input { width: 100%; min-height: 48px; padding: 10px 16px; border: 1px solid #b6cad9; border-radius: 6px; background: #fff; color: #172c45; }
.sitemap-total { margin: 0; color: #566c7c; font-size: .875rem; }
.sitemap-total strong { display: block; color: #155b83; font-size: 1.6rem; }
.sitemap-jumps { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; }
.sitemap-jumps a { display: inline-flex; align-items: center; min-height: 40px; padding: 7px 12px; border: 1px solid #dce5ee; border-radius: 20px; color: #31546d; text-decoration: none; font-size: .8rem; }
.sitemap-jumps a:hover { border-color: #087dae; background: #eef7fc; }
.sitemap-filter-status { min-height: 20px; margin: 16px 0; color: #566c7c; font-size: .875rem; }
.sitemap-sections { columns: 3; column-gap: 24px; }
.sitemap-section { display: inline-block; vertical-align: top; width: 100%; break-inside: avoid; margin-bottom: 24px; border: 1px solid #dce5ee; border-radius: 12px; padding: 24px; min-width: 0; scroll-margin-top: 100px; }
.sitemap-section > header { position: relative; border-bottom: 1px solid #e1e8ef; padding-bottom: 18px; margin-bottom: 12px; }
.sitemap-section header p { margin: 0 0 6px; color: #59758a; text-transform: uppercase; font-size: .65rem; letter-spacing: .08em; }
.sitemap-section h2 { color: #173d59; font-size: 1.15rem; margin: 0 0 8px; }
.sitemap-section-count { color: #6a8091; font-size: .75rem; }
.sitemap-section > ul, .sitemap-directory-group > ul { list-style: none; margin: 0; padding: 0; }
.sitemap-section ul ul { list-style: none; border-left: 2px solid #e1eaf1; margin: 4px 0 8px 3px; padding-left: 16px; }
.sitemap-section li > a, .sitemap-directory-group li > a { display: block; padding: 8px 0; color: #255f83; text-decoration: none; font-size: .9rem; line-height: 1.6; overflow-wrap: anywhere; }
.sitemap-section li > span { display: block; padding: 8px 0; color: #263e51; font-size: .9rem; font-weight: 600; }
.sitemap-content li > a:hover { color: #0b709f; text-decoration: underline; }
.sitemap-content :is(a, input, summary):focus-visible { outline: 3px solid #087dae; outline-offset: 3px; }
.sitemap-content [hidden] { display: none !important; }
.sitemap-directory { margin-top: 48px; padding-top: 32px; border-top: 1px solid #dce5ee; scroll-margin-top: 100px; }
.sitemap-directory > h2 { color: #173d59; font-size: 1.5rem; }
.sitemap-directory > p { color: #566c7c; line-height: 1.7; }
.sitemap-directory-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; margin-top: 24px; }
.sitemap-directory-group { border: 1px solid #dce5ee; border-radius: 8px; overflow: hidden; }
.sitemap-directory-group summary { padding: 16px 20px; color: #173d59; background: #f5f8fb; cursor: pointer; font-weight: 600; }
.sitemap-directory-group summary span { float: right; color: #56758c; font-size: .8rem; }
.sitemap-directory-group > ul { padding: 8px 20px 16px; max-height: 440px; overflow-y: auto; }
@media (max-width: 991px) { .sitemap-sections { columns: 2; } }
@media (max-width: 575px) { .sitemap-heading, .sitemap-tools { align-items: flex-start; flex-direction: column; gap: 20px; } .sitemap-heading { margin-bottom: 24px; } .sitemap-content { padding-top: 32px; } .sitemap-xml-link { width: 100%; } .sitemap-total strong { display: inline; margin-right: 8px; } .sitemap-sections { columns: 1; } .sitemap-directory-grid { grid-template-columns: minmax(0, 1fr); } .sitemap-section { padding: 20px; } }

/* Member cards need readable columns and aligned icons at narrow widths. */
#main .ftii-society-container { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#main .ftii-society-container .society-box { gap: 12px; min-width: 0; }
#main .ftii-society-container .society-box > .icon { flex: 0 0 28px; line-height: 1.4; }
#main .ftii-society-container .society-box > .icon br { display: none; }
#main .ftii-society-container .society-box > .icon i { margin: 0 !important; }
#main .ftii-society-container .society-box > .info { min-width: 0; overflow-wrap: anywhere; }
#main .ftii-society-container .society-box h5 { line-height: 1.5; margin-bottom: 6px; }
@media (max-width: 767.98px) {
  #main .ftii-society-container { grid-template-columns: minmax(0, 1fr); padding-block: 24px; }
  #main .ftii-society-container .society-box { padding: 18px; }
}

/* A top-level CMS row has no Bootstrap container to absorb negative gutters. */
#main .cms-content > .pageBuilder > section > .row { margin-inline: 0; }

/* Shared CMS accordions: clear disclosure controls and readable panel content. */
#main .cms-content .ui-accordion { font-family: inherit; }
#main .cms-content .ui-accordion .ui-accordion-header {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 60px;
  margin: 12px 0 0;
  padding: 16px 56px 16px 20px !important;
  border: 1px solid #c9dce6;
  border-radius: 8px;
  background: #f4f8fb;
  color: #173d59;
  font: inherit;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  cursor: pointer;
  overflow-wrap: anywhere;
}
#main .cms-content .ui-accordion .ui-accordion-header:first-child { margin-top: 0; }
#main .cms-content .ui-accordion .ui-accordion-header:hover { background: #e8f3f9; border-color: #087dae; }
#main .cms-content .ui-accordion .ui-accordion-header-active {
  border-color: #8fbcd2;
  border-bottom-color: #dce7ee;
  border-radius: 8px 8px 0 0;
  background: #e8f3f9;
  color: #075f89;
}
#main .cms-content .ui-accordion .ui-accordion-header-icon { display: none; }
#main .cms-content .ui-accordion .ui-accordion-header::after {
  content: '';
  position: absolute;
  right: 22px;
  top: calc(50% - 7px);
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}
#main .cms-content .ui-accordion .ui-accordion-header-active::after { top: calc(50% - 2px); transform: rotate(225deg); }
#main .cms-content .ui-accordion .ui-accordion-header:focus-visible { outline: 3px solid #087dae; outline-offset: 3px; z-index: 1; }
#main .cms-content .ui-accordion .ui-accordion-content {
  height: auto !important;
  padding: 24px;
  border: 1px solid #8fbcd2;
  border-top: 0;
  border-radius: 0 0 8px 8px;
  background: #fff;
  color: var(--ftii-text);
  font: inherit;
  line-height: 1.7;
  overflow: visible;
  overflow-wrap: anywhere;
}
#main .cms-content .ui-accordion .ui-accordion-content > :last-child { margin-bottom: 0; }
#main .cms-content .ui-accordion .content-wide-table { min-width: 560px; }
#main .cms-content .ui-accordion table { margin-bottom: 0; font-size: .9375rem; }
#main .cms-content .ui-accordion :is(th, td) { padding: 12px 14px; vertical-align: top; line-height: 1.65; }
#main .cms-content .ui-accordion thead th { overflow-wrap: normal; word-break: normal; background: #e8f3f9; color: #173d59; border-bottom: 2px solid #b4d2e3; }
@media (max-width: 767.98px) {
  #main .cms-content .ui-accordion .ui-accordion-header { padding: 14px 44px 14px 16px !important; font-size: 1rem; }
  #main .cms-content .ui-accordion .ui-accordion-header::after { right: 18px; }
  #main .cms-content .ui-accordion .ui-accordion-content { padding: 16px; }
  #main .cms-content .ui-accordion :is(th, td) { padding: 10px; }
}
