/*
 * FF UNSA readability layer 1.0
 * Loaded after style.css. This file owns the final public type scale,
 * content measure, touch targets and responsive card/list layouts.
 */

:root {
  --ff-r-body: 18px;
  --ff-r-body-mobile: 17px;
  --ff-r-small: 14px;
  --ff-r-card: 16px;
  --ff-r-line: 1.65;
  --ff-r-reading: 76ch;
  --ff-r-touch: 46px;
}

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-size: var(--ff-r-body) !important;
  line-height: var(--ff-r-line) !important;
}

body img,
body video,
body iframe {
  max-width: 100%;
}

body p,
body li,
body dd,
body td,
body th,
body label,
body input,
body select,
body textarea,
body button {
  line-height: 1.55;
}

/* Prevent long prose from becoming a difficult full-screen line. */
body .ff-prose,
body .ff-about-copy,
body .ff-single-content,
body .ff-news-article-text,
body .ff-pedagogy-lead {
  max-width: var(--ff-r-reading);
}

body .ff-prose p,
body .ff-about-copy,
body .ff-single-content,
body .ff-news-article-text,
body .ff-pedagogy-lead,
body .ff-section-intro {
  font-size: 18px !important;
  line-height: 1.72 !important;
}

body .ff-breadcrumbs,
body .ff-breadcrumbs a {
  font-size: 14px !important;
  line-height: 1.45 !important;
}

body .ff-section-eyebrow,
body .ff-dept-kicker,
body .ff-search-eyebrow,
body .ff-current-label {
  font-size: 13px !important;
  line-height: 1.4 !important;
  letter-spacing: .11em;
}

body .ff-hero-signature {
  font-size: 18px !important;
  line-height: 1.5 !important;
}

body .ff-development-bar {
  font-size: 14px !important;
  line-height: 1.5 !important;
}

body .ff-dept-section > h2,
body .ff-public-hub-content h2,
body .ff-services-index-content h2,
body .ff-students-page-content h2 {
  font-size: clamp(31px, 2.5vw, 44px) !important;
  line-height: 1.14 !important;
  letter-spacing: -.02em;
}

/* Header and global navigation. */
body .ff-topbar,
body .ff-topbar a,
body .ff-utilities {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

body .ff-nav-link {
  font-size: 15px !important;
  line-height: 1.3 !important;
  padding-inline: 10px !important;
}

body .ff-dropdown a,
body .ff-submenu a {
  font-size: 15px !important;
  line-height: 1.45 !important;
  min-height: 44px;
}

body .ff-dropdown-title {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

body .ff-service-mini-nav a {
  min-height: var(--ff-r-touch);
  padding-block: 14px !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
}

/* Hero subtitles should explain the page without looking like fine print. */
body .ff-page-hero p,
body .page-hero p,
body .inner-hero p,
body .ff-section-hero p,
body .ff-page-header p,
body .ff-students-hero p,
body .ff-archive-page-hero p,
body .ff-service-hero p,
body .ff-services-index-hero p,
body .ff-dept-hero p,
body .ff-news-single-hero p {
  max-width: 74ch;
  font-size: 18px !important;
  line-height: 1.65 !important;
}

/* Reusable cards. */
body .ff-student-year-card p,
body .ff-student-dashboard-card p,
body .ff-student-link-grid p,
body .ff-dashboard-card p,
body .ff-service-index-card p,
body .ff-public-feature-card p,
body .ff-it-status-row p,
body .ff-projection-row p,
body .ff-dept-card p,
body .ff-staff-card p,
body .ff-dekanat-card p,
body .ff-person-card p,
body .ff-library-row p,
body .ff-portal-login-card > p {
  font-size: var(--ff-r-card) !important;
  line-height: 1.62 !important;
}

body .ff-student-link-grid h3,
body .ff-service-index-card h3,
body .ff-public-feature-card h3,
body .ff-dept-card h3,
body .ff-dashboard-card h3,
body .ff-dekanat-card h3,
body .ff-person-card h3 {
  font-size: 20px !important;
  line-height: 1.35 !important;
}

body .ff-student-dashboard-card a,
body .ff-student-link-grid b,
body .ff-dashboard-list strong,
body .ff-request-row strong,
body .ff-student-notice-actions > a,
body .ff-service-list strong,
body .ff-service-index-card b,
body .ff-public-feature-card a,
body .ff-public-open,
body .ff-projection-row > a,
body .ff-public-filter-pills a,
body .ff-dept-card b,
body .ff-staff-card a,
body .ff-contact-panel strong,
body .ff-contact-panel a,
body .ff-dept-sidebox a,
body .ff-dekanat-card a,
body .ff-person-card > a,
body .ff-library-row > a {
  font-size: 15px !important;
  line-height: 1.45 !important;
}

body .ff-student-year-card > span,
body .ff-student-dashboard-card > span,
body .ff-student-link-grid > a > span,
body .ff-student-notice-main > span,
body .ff-dashboard-card > span,
body .ff-dashboard-head > div > span,
body .ff-service-index-card > span,
body .ff-public-feature-card > span,
body .ff-it-status-row span,
body .ff-projection-row > div > span,
body .ff-dept-quick > span,
body .ff-dept-sidebox > span,
body .ff-dept-card > span,
body .ff-contact-panel span,
body .ff-role-notice span,
body .ff-dept-notices span,
body .ff-dekanat-card > span {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

/* Homepage headline, news and quick access. */
body.home .ff-hero-subtitle {
  font-size: 18px !important;
  line-height: 1.5 !important;
}

body.home .ff-quick-card strong {
  font-size: 18px !important;
  line-height: 1.35 !important;
}

body .ff263-head h2 {
  font-size: 30px !important;
  line-height: 1.18 !important;
}

body .ff263-head > a,
body .ff-inline-cta,
body .ff-inline-link,
body .ff-current-items a,
body .ff-section-listing-head > a,
body .ff-cycle-title-row > a {
  font-size: 15px !important;
  line-height: 1.45 !important;
}

body .ff268-body h3 {
  font-size: 19px !important;
  line-height: 1.4 !important;
}

body .ff268-small .ff268-body h3 {
  font-size: 17px !important;
  line-height: 1.4 !important;
}

body .ff268-body p {
  font-size: 16px !important;
  line-height: 1.6 !important;
}

body .ff268-body time,
body .ff268-feature-copy time {
  font-size: 13px !important;
}

/* Notice boards, archives and document lists. */
body .ff263-row {
  min-height: 72px !important;
  padding: 14px 12px !important;
}

body .ff263-row time,
body .ff-section-listing-row time,
body .ff-section-listing-row span,
body .ff-archive-row time,
body .ff-role-notice time,
body .ff-dept-notices time {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

body .ff263-row-title,
body .ff-section-listing-row strong,
body .ff-student-notice-row h3 a,
body .ff-role-notice strong,
body .ff-dept-notices strong {
  font-size: 17px !important;
  line-height: 1.48 !important;
}

body .ff263-row-source,
body .ff-board-listing-row em,
body .ff-student-notice-badge {
  font-size: 12px !important;
  line-height: 1.3 !important;
}

body .ff-archive-row h2 {
  font-size: 22px !important;
  line-height: 1.42 !important;
}

body .ff-document-row strong,
body .ff-cycle-doc strong,
body .ff-study-archive-row strong {
  font-size: 16px !important;
  line-height: 1.48 !important;
}

body .ff-document-meta,
body .ff-document-row span,
body .ff-document-row em,
body .ff-cycle-doc span,
body .ff-study-archive-row span,
body .ff-document-row b,
body .ff-cycle-doc b,
body .ff-study-archive-row b {
  font-size: 14px !important;
  line-height: 1.45 !important;
}

/* Forms and filters: 16px also prevents mobile browser auto-zoom. */
body .ff-board-filters label > span,
body .ff-archive-filters label span,
body .ff-library-question-form label > span,
body .ff-student-register label span,
body .ff-new-request label span,
body .ff-portal-login-form label > span {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

body .ff-board-filters select,
body .ff-board-filters input,
body .ff-archive-search,
body .ff-library-question-form input,
body .ff-library-question-form select,
body .ff-library-question-form textarea,
body .ff-student-register input,
body .ff-student-register select,
body .ff-new-request input,
body .ff-new-request select,
body .ff-new-request textarea,
body .ff-portal-login-form input[type="text"],
body .ff-portal-login-form input[type="password"],
body .ff-footer-directory-search input,
body .ff-search-form input {
  min-height: 48px !important;
  font-size: 16px !important;
}

body .ff-board-filters button,
body .ff-archive-open,
body .ff-library-question-form button,
body .ff-student-register button,
body .ff-new-request button,
body .ff-portal-login-form button,
body .ff-portal-primary,
body .ff-footer-directory-search button,
body .ff-search-form button {
  min-height: var(--ff-r-touch) !important;
  font-size: 15px !important;
}

/* Footer. */
body .ff-footer-brand p {
  font-size: 16px !important;
  line-height: 1.65 !important;
}

body .ff-footer-modern h3 {
  font-size: 16px !important;
}

body .ff-footer-links a,
body .ff-footer-btn,
body .ff-footer-contact {
  font-size: 15px !important;
  line-height: 1.5 !important;
}

body .ff-footer-bottom,
body .ff-footer-bottom a {
  font-size: 14px !important;
  line-height: 1.5 !important;
}

/* Complete coverage for index, hub, status and account components. */
body .ff-department-index-card span,
body .ff-student-hub-card > span,
body .ff-students-year span,
body .ff-public-work-subfilters > span,
body .ff-public-row span,
body .ff-dashboard-head > div > span,
body .ff-dashboard-card > span,
body .ff-it-status-row span,
body .ff-projection-row > div > span {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

body .ff-department-index-card h2,
body .ff-student-hub-card h2,
body .ff-service-index-card h2,
body .ff-public-feature-card h2,
body .ff-it-status-row h3,
body .ff-projection-row h3 a,
body .ff-public-row h3 a,
body .ff-library-row h3,
body .ff-person-card h3 a {
  font-size: 19px !important;
  line-height: 1.4 !important;
}

body .ff-department-index-card b,
body .ff-student-hub-card b,
body .ff-students-services a,
body .ff-public-work-filters a,
body .ff-public-filter-pills a,
body .ff-new-request summary,
body .ff-secure-downloads > a,
body .ff-choice-grid button {
  font-size: 15px !important;
  line-height: 1.45 !important;
}

body .ff-student-hub-card p,
body .ff-archive-heading p,
body .ff-public-row p,
body .ff-it-status-row p,
body .ff-projection-row p,
body .ff-dashboard-card p,
body .ff-portal-message,
body .ff-portal-login-card > p {
  font-size: 16px !important;
  line-height: 1.62 !important;
}

body .ff-students-year strong,
body .ff-student-year-card strong,
body .ff-student-dashboard-card strong {
  font-size: 23px !important;
  line-height: 1.3 !important;
}

body .ff-dashboard-list strong,
body .ff-request-row strong,
body .ff-dashboard-profile b,
body .ff-dashboard-profile span,
body .ff-dashboard-list span,
body .ff-request-row span,
body .ff-portal-remember,
body .ff-student-notice-actions > a {
  font-size: 14px !important;
  line-height: 1.45 !important;
}

body .ff-search-shell h2 {
  font-size: clamp(32px, 4vw, 48px) !important;
  line-height: 1.15 !important;
}

body .ff-search-shortcuts a,
body .ff-search-hint {
  font-size: 15px !important;
  line-height: 1.5 !important;
}

body .ff-pagination .page-numbers,
body .ff-section-pagination a,
body .ff-section-pagination span {
  min-width: 46px !important;
  min-height: 46px !important;
  font-size: 15px !important;
}

body .ff-single-content h2,
body .ff-news-article-text h2,
body .ff-prose h2 {
  font-size: clamp(28px, 3vw, 38px) !important;
  line-height: 1.25 !important;
}

body .ff-single-content h3,
body .ff-news-article-text h3,
body .ff-prose h3 {
  font-size: clamp(23px, 2.2vw, 30px) !important;
  line-height: 1.3 !important;
}

body .ff-single-content a,
body .ff-news-article-text a,
body .ff-prose a {
  text-underline-offset: 3px;
}

body table {
  font-size: 16px;
}

body :focus-visible {
  outline: 3px solid #e2ad22;
  outline-offset: 3px;
}

/* Legacy modules still used on archives and older content pages. */
body .ff-stream-item strong,
body .ff-news-secondary strong,
body .ff-news-related-item strong,
body .ff-dept-list-row strong {
  font-size: 16px !important;
  line-height: 1.45 !important;
}

body .ff-stream-item time,
body .ff-stream-item .open-label,
body .ff-news-body time,
body .ff-news-secondary time,
body .ff-news-related-item time,
body .ff-dept-list-row span,
body .ff-news-gallery-count,
body .ff-news-single-meta,
body .ff-data-note {
  font-size: 13px !important;
  line-height: 1.4 !important;
}

body .ff-stream-more,
body .ff-news-more,
body .ff-dept-nav a,
body .ff-portal-button,
body .ff-contact-line,
body .ff-map-box,
body .ff-academic-category[open] > summary b::after {
  font-size: 15px !important;
  line-height: 1.45 !important;
}

body .ff-news-body p,
body .ff-dept-sidebox-archive p,
body .ff-dept-sidebox-gold p,
body .ff-study-archive-head p,
body .ff-study-archive-link p,
body .ff-cycle-head p,
body .ff-empty-notices,
body .ff-portal-error,
body .ff-web-development-strip {
  font-size: 15px !important;
  line-height: 1.6 !important;
}

body .ff-study-filters label span,
body .ff-portal-types span,
body .ff-cycle-head > span,
body .ff-pedagogy-cycle span,
body .ff-dept-contact-card span {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

body .ff-dept-contact-card strong,
body .ff-dept-contact-card strong a {
  font-size: 16px !important;
  line-height: 1.45 !important;
}

body .ff-dept-contact-card small,
body .ff-quote-inner cite {
  font-size: 14px !important;
  line-height: 1.5 !important;
}

body .ff-contact-search input {
  min-height: 46px;
  font-size: 16px !important;
}

@media (min-width: 981px) and (max-width: 1280px) {
  body .ff-nav-link {
    font-size: 14px !important;
    padding-inline: 7px !important;
  }
}

@media (max-width: 980px) {
  body .ff-nav-link {
    min-height: 50px !important;
    font-size: 17px !important;
    line-height: 1.4 !important;
  }

  body .ff-dropdown a,
  body .ff-submenu a {
    min-height: 46px !important;
    font-size: 16px !important;
  }

  body .ff-services-grid,
  body .ff-departments-grid,
  body .ff-dekanat-grid,
  body .ff-people-directory,
  body .ff-student-link-grid,
  body .ff-students-hub-grid,
  body .ff-staff-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  body {
    font-size: var(--ff-r-body-mobile) !important;
    line-height: 1.62 !important;
    overflow-wrap: anywhere;
  }

  body .ff-container {
    width: calc(100% - 24px) !important;
  }

  body .ff-services-grid,
  body .ff-departments-grid,
  body .ff-dekanat-grid,
  body .ff-people-directory,
  body .ff-student-link-grid,
  body .ff-student-link-grid-4,
  body .ff-students-hub-grid,
  body .ff-staff-grid,
  body .ff-dashboard-grid,
  body .ff-public-feature-grid,
  body .ff-cycle-grid,
  body .ff-cycle-grid-3,
  body .ff-cycle-grid-4,
  body .ff-works-cycle-grid,
  body .ff-dept-cards,
  body .ff-dept-cards-2,
  body .ff-dept-cards-3,
  body .ff-form-grid,
  body .ff-choice-grid,
  body .ff-footer-main {
    grid-template-columns: 1fr !important;
  }

  body .ff-service-layout,
  body .ff-dept-content,
  body .ff-news-single-shell {
    grid-template-columns: 1fr !important;
  }

  body .ff-service-side {
    grid-template-columns: 1fr !important;
  }

  body .ff-public-row,
  body .ff-projection-row,
  body .ff-library-row,
  body .ff-student-notice-row,
  body .ff-dashboard-head {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  body .ff-service-index-card,
  body .ff-department-index-card,
  body .ff-student-hub-card,
  body .ff-public-feature-card,
  body .ff-dept-card,
  body .ff-dekanat-card,
  body .ff-person-card,
  body .ff-dashboard-card {
    min-height: 0 !important;
    padding: 20px !important;
  }

  body .ff-table-wrap,
  body .wp-block-table {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  body .ff-table-wrap table,
  body .wp-block-table table {
    min-width: 600px;
  }

  body .ff-topbar,
  body .ff-topbar a,
  body.home .ff-topbar {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  body .ff-topbar .ff-container {
    align-items: center !important;
    gap: 12px !important;
  }

  body .ff-utilities {
    max-width: 100%;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  body .ff-utilities > * {
    flex: 0 0 auto;
  }

  body .ff-dept-section > h2,
  body .ff-public-hub-content h2,
  body .ff-services-index-content h2,
  body .ff-students-page-content h2 {
    font-size: clamp(29px, 9vw, 38px) !important;
  }

  body .ff-section-intro,
  body .ff-prose p,
  body .ff-about-copy,
  body .ff-single-content,
  body .ff-news-article-text,
  body .ff-pedagogy-lead,
  body .ff-page-hero p,
  body .page-hero p,
  body .inner-hero p,
  body .ff-section-hero p,
  body .ff-page-header p,
  body .ff-students-hero p,
  body .ff-archive-page-hero p,
  body .ff-service-hero p,
  body .ff-services-index-hero p,
  body .ff-dept-hero p,
  body .ff-news-single-hero p {
    font-size: 17px !important;
    line-height: 1.66 !important;
  }

  /* Mobile homepage: one readable item per row. */
  body.home .ff-hero-copy h1 {
    font-size: clamp(31px, 9.5vw, 39px) !important;
    line-height: 1.08 !important;
  }

  body.home .ff-hero-subtitle {
    font-size: 17px !important;
    line-height: 1.48 !important;
    white-space: normal !important;
  }

  body.home .ff-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body.home .ff-quick-card {
    height: auto !important;
    min-height: 92px !important;
    padding: 14px 16px !important;
  }

  body.home .ff-quick-card strong {
    font-size: 16px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  body.home .ff-quick-icon {
    flex: 0 0 46px !important;
    width: 46px !important;
    height: 46px !important;
  }

  body.home .ff-quick-icon svg,
  body.home .ff-quick-icon img {
    width: 26px !important;
    height: 26px !important;
    max-width: 26px !important;
    max-height: 26px !important;
  }

  body .ff263-wrap {
    width: calc(100% - 20px) !important;
  }

  body .ff263-panel {
    padding: 16px !important;
  }

  body .ff263-head h2 {
    font-size: 27px !important;
  }

  body .ff268-news-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  body .ff268-featured,
  body .ff268-left,
  body .ff268-right,
  body .ff268-small-4,
  body .ff268-small-5,
  body .ff268-small-6,
  body .ff268-small-7 {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  body .ff268-featured .ff268-media {
    height: 255px !important;
    min-height: 255px !important;
  }

  body .ff268-left .ff268-media,
  body .ff268-right .ff268-media,
  body .ff268-small .ff268-media {
    height: 210px !important;
  }

  body .ff268-body,
  body .ff268-small .ff268-body {
    min-height: 0 !important;
    padding: 16px !important;
  }

  body .ff268-body h3,
  body .ff268-small .ff268-body h3 {
    font-size: 18px !important;
    line-height: 1.42 !important;
  }

  body .ff268-body p {
    display: block !important;
    font-size: 16px !important;
    line-height: 1.58 !important;
  }

  body .ff268-feature-copy h3 {
    font-size: 23px !important;
    line-height: 1.28 !important;
  }

  /* Lists stack metadata instead of squeezing it into narrow columns. */
  body .ff263-row {
    grid-template-columns: minmax(0, 1fr) 18px !important;
    grid-template-rows: auto auto auto !important;
    gap: 7px 10px !important;
    min-height: 0 !important;
    padding: 16px 6px !important;
  }

  body .ff263-row time {
    grid-column: 1 !important;
    grid-row: 1 !important;
    font-size: 13px !important;
  }

  body .ff263-row-title {
    grid-column: 1 !important;
    grid-row: 2 !important;
    font-size: 17px !important;
  }

  body .ff263-row-source {
    grid-column: 1 !important;
    grid-row: 3 !important;
    max-width: 100% !important;
    font-size: 12px !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  body .ff263-row .ff263-chevron {
    grid-column: 2 !important;
    grid-row: 1 / span 3 !important;
    align-self: center !important;
  }

  body .ff263-row.ff263-row-call {
    grid-template-columns: minmax(0, 1fr) 18px !important;
    grid-template-rows: auto auto !important;
  }

  body .ff263-row.ff263-row-call .ff263-row-title {
    grid-row: 1 !important;
  }

  body .ff263-row.ff263-row-call time {
    grid-row: 2 !important;
    font-size: 13px !important;
  }

  body .ff-student-link-grid h3,
  body .ff-service-index-card h3,
  body .ff-public-feature-card h3,
  body .ff-dept-card h3,
  body .ff-dashboard-card h3 {
    font-size: 21px !important;
  }

  body .ff-footer-links a,
  body .ff-footer-btn,
  body .ff-footer-contact {
    font-size: 16px !important;
  }

  body .ff-footer-links {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  body .ff-footer-buttons {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 390px) {
  body .ff268-featured .ff268-media {
    height: 225px !important;
    min-height: 225px !important;
  }
}

/* Student board archive follows the compact visual language of the
   homepage board: one panel, separators, and whole-row links. */
body .ff-students-central-hub.ff-board-archive .ff-section-listing-list {
  display: grid !important;
  gap: 0 !important;
  padding: 0 16px !important;
  border: 1px solid #dce5ec !important;
  border-radius: 12px !important;
  background: #fff !important;
  overflow: hidden !important;
}

body .ff-students-central-hub.ff-board-archive .ff-board-listing-row {
  border: 0 !important;
  border-bottom: 1px solid #e1e7ec !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
}

body .ff-students-central-hub.ff-board-archive .ff-board-listing-row:last-child {
  border-bottom: 0 !important;
}

body .ff-students-central-hub.ff-board-archive .ff-board-listing-row:hover {
  background: #f8fafc !important;
  box-shadow: none !important;
}

/* The archive now renders the exact ff263 panel/row structure used on the
   homepage. Only spacing around the reusable panel is archive-specific. */
body .ff-students-central-hub.ff-board-archive .ff-student-board-results-panel {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

body .ff-students-central-hub.ff-board-archive .ff-student-board-results-panel .ff263-row-title {
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

/* The embedded board on /studenti/ uses the homepage panel and row markup too. */
body .ff-student-hub-notices.ff263-panel {
  width: 100% !important;
  max-width: 1120px !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

body .ff-student-hub-notices.ff263-panel .ff263-row-title {
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

@media (max-width: 760px) {
  body .ff-student-hub-notices.ff263-panel {
    width: calc(100% - 24px) !important;
    max-width: calc(100% - 24px) !important;
    padding: 14px !important;
    margin-bottom: 42px !important;
    overflow: hidden !important;
  }

  body .ff-student-hub-notices.ff263-panel .ff263-head {
    width: 100% !important;
    min-width: 0 !important;
  }

  body .ff-student-hub-notices.ff263-panel .ff263-head h2 {
    min-width: 0 !important;
    font-size: 27px !important;
  }

  body .ff-student-hub-notices.ff263-panel .ff-section-intro {
    max-width: 100% !important;
    margin: 16px 0 !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
  }

  body .ff-student-hub-notices.ff263-panel .ff263-row {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
}

@media (max-width: 760px) {
  body .ff-students-central-hub.ff-board-archive .ff-student-board-results-panel {
    padding: 14px !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-student-board-results-panel .ff263-row {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
}

@media (max-width: 760px) {
  body .ff-students-central-hub.ff-board-archive .ff-section-listing-list {
    padding: 0 12px !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 20px !important;
    grid-template-rows: auto auto auto !important;
    column-gap: 10px !important;
    row-gap: 8px !important;
    padding: 18px 0 !important;
    overflow: hidden !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row time {
    grid-column: 1 !important;
    grid-row: 1 !important;
    color: #0866bf !important;
    font-size: 13px !important;
    font-weight: 700 !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row strong {
    grid-column: 1 !important;
    grid-row: 2 !important;
    font-size: 17px !important;
    line-height: 1.42 !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row em {
    grid-column: 1 !important;
    grid-row: 3 !important;
    justify-self: start !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row > span {
    grid-column: 2 !important;
    grid-row: 1 / span 3 !important;
    align-self: center !important;
    justify-self: end !important;
    width: 20px !important;
    overflow: visible !important;
    color: transparent !important;
    font-size: 0 !important;
    white-space: nowrap !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row > span::after {
    content: "›";
    color: #0b4a81;
    font-size: 27px;
    font-weight: 700;
    line-height: 1;
  }
}

/* =========================================================
   FF UNSA 1.0.41 — controlled responsive correction
   ========================================================= */

/* Laptop widths need a readable, complete navigation without pushing the
   final items outside the viewport. */
@media (min-width: 981px) and (max-width: 1500px) {
  body .ff-navrow {
    gap: 18px !important;
  }

  body .ff-nav {
    gap: 7px !important;
    min-width: 0 !important;
  }

  body .ff-nav-link {
    padding-inline: 3px !important;
    font-size: 13.5px !important;
    letter-spacing: 0 !important;
  }

  body .ff-logo {
    flex-basis: 92px !important;
  }

  body .ff-logo img {
    width: 92px !important;
    height: 92px !important;
  }
}

@media (max-width: 760px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip !important;
  }

  body,
  body a,
  body strong,
  body h1,
  body h2,
  body h3 {
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
  }

  /* Utility navigation must fit the viewport instead of becoming a
     partly-scrolled horizontal strip. */
  body .ff-topbar {
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
  }

  body .ff-topbar .ff-container {
    width: calc(100% - 20px) !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    gap: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
  }

  body .ff-utilities {
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    gap: 6px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    scrollbar-width: none !important;
  }

  body .ff-utilities > *,
  body .ff-topbar a,
  body.home .ff-topbar {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
  }

  body .ff-eunsa {
    padding: 4px 6px !important;
  }

  body .ff-search-trigger {
    flex: 0 0 auto !important;
  }

  /* The hero starts directly below the utility bar. */
  body.home .ff-header {
    top: 0 !important;
  }

  body.home .ff-header .ff-navrow,
  body .ff-header-inner .ff-navrow {
    min-height: 92px !important;
    height: 92px !important;
    padding: 0 18px !important;
    align-items: center !important;
  }

  body .ff-header .ff-logo,
  body .ff-header-inner .ff-logo {
    flex: 0 0 72px !important;
  }

  body .ff-header .ff-logo img,
  body .ff-header-inner .ff-logo img,
  body.home .ff-header .ff-logo img {
    width: 72px !important;
    height: 72px !important;
    max-width: 72px !important;
    max-height: 72px !important;
    border-radius: 50% !important;
    object-fit: contain !important;
  }

  body .ff-mobile-toggle {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    line-height: 46px !important;
    font-size: 24px !important;
  }

  /* Restore the compact two-column quick access design. */
  body.home .ff-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body.home .ff-quick-card {
    min-width: 0 !important;
    height: 86px !important;
    min-height: 86px !important;
    padding: 11px !important;
    gap: 8px !important;
    overflow: hidden !important;
  }

  body.home .ff-quick-icon {
    flex: 0 0 38px !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
  }

  body.home .ff-quick-card strong {
    min-width: 0 !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  /* All archive/department boards use the same safe stacked pattern as
     the homepage board. */
  body .ff-section-listing-wrap,
  body .ff-section-listing-list,
  body .ff-board-filters,
  body .ff-board-search-only,
  body .ff-role-notices,
  body .ff-dept-notices {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body .ff-section-listing-row,
  body .ff-board-listing-row,
  body .ff-role-notice,
  body .ff-dept-notices > a {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    gap: 9px !important;
    align-items: start !important;
    padding: 16px !important;
    overflow: hidden !important;
  }

  body .ff-section-listing-row > *,
  body .ff-board-listing-row > *,
  body .ff-role-notice > *,
  body .ff-dept-notices > a > * {
    grid-column: 1 !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    justify-self: start !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  body .ff-section-listing-row time,
  body .ff-board-listing-row time,
  body .ff-role-notice time,
  body .ff-dept-notices time {
    font-size: 14px !important;
    color: #607b91 !important;
  }

  body .ff-section-listing-row strong,
  body .ff-board-listing-row strong,
  body .ff-role-notice strong,
  body .ff-dept-notices strong {
    font-size: 17px !important;
    line-height: 1.42 !important;
  }

  body .ff-board-listing-row em,
  body .ff-role-notice span,
  body .ff-dept-notices span {
    display: inline-block !important;
    width: fit-content !important;
    max-width: 100% !important;
    white-space: normal !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
  }

  body .ff-section-listing-head {
    width: 100% !important;
    max-width: 100% !important;
    gap: 10px !important;
  }

  body .ff-section-listing-head h2 {
    min-width: 0 !important;
    font-size: clamp(30px, 9vw, 38px) !important;
    overflow-wrap: normal !important;
  }

  body .ff-board-filters label,
  body .ff-board-filters input,
  body .ff-board-filters select,
  body .ff-board-search-only label,
  body .ff-board-search-only input {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 390px) {
  body.home .ff-quick-card {
    height: 82px !important;
    min-height: 82px !important;
    padding: 9px !important;
    gap: 7px !important;
  }

  body.home .ff-quick-icon {
    flex-basis: 34px !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
  }

  body.home .ff-quick-card strong {
    font-size: 12px !important;
  }
}

/* 1.0.43 final cascade guard: keep the Studenti archive identical to the
   compact homepage board after every shared mobile rule has been applied. */
@media (max-width: 760px) {
  body .ff-students-central-hub.ff-board-archive,
  body .ff-students-central-hub.ff-board-archive .ff-dept-section,
  body .ff-students-central-hub.ff-board-archive .ff-section-listing-list {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-section-listing-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    padding: 0 12px !important;
    border: 1px solid #dce5ec !important;
    border-radius: 12px !important;
    background: #fff !important;
    overflow: hidden !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-section-listing-list > .ff-board-listing-row {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 20px !important;
    grid-template-rows: auto auto auto !important;
    column-gap: 10px !important;
    row-gap: 8px !important;
    padding: 18px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e1e7ec !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-section-listing-list > .ff-board-listing-row:last-child {
    border-bottom: 0 !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row time,
  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row strong,
  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row em {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    justify-self: stretch !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row time {
    grid-row: 1 !important;
    color: #0866bf !important;
    font-size: 13px !important;
    font-weight: 700 !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row strong {
    grid-row: 2 !important;
    font-size: 17px !important;
    line-height: 1.42 !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row em {
    grid-row: 3 !important;
    width: fit-content !important;
    justify-self: start !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row > span {
    grid-column: 2 !important;
    grid-row: 1 / span 3 !important;
    align-self: center !important;
    justify-self: end !important;
    width: 20px !important;
    min-width: 20px !important;
    padding: 0 !important;
    overflow: visible !important;
    color: transparent !important;
    font-size: 0 !important;
    white-space: nowrap !important;
  }

  body .ff-students-central-hub.ff-board-archive .ff-board-listing-row > span::after {
    content: "›";
    display: block;
    color: #0b4a81;
    font-size: 27px;
    font-weight: 700;
    line-height: 1;
  }
}
