/* Buttons */
.button,
input[type="submit"],
button.form-submit,
.btn {
  display: inline-block;
  font-family: inherit;
  font-weight: 600;
  font-size: 1rem;
  padding: 0.65em 1.4em;
  border-radius: var(--radius-sm);
  border: 2px solid var(--color-primary);
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.button--primary,
input[type="submit"],
button.form-submit {
  background: var(--color-primary);
  color: #fff;
}

.button--primary:hover,
input[type="submit"]:hover,
button.form-submit:hover {
  background: var(--color-secondary);
  color: #fff;
}

.button--secondary {
  background: var(--color-surface);
  color: var(--color-primary);
}

.button--secondary:hover {
  background: var(--color-surface-muted);
}

/* Cards */
.card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-3);
  background: var(--color-surface);
  box-shadow: 0 1px 3px rgba(21, 21, 24, 0.08);
}

.card h3 {
  margin-top: 0;
}

.card__link {
  font-weight: 600;
  text-decoration: none;
}

.card__link:hover {
  text-decoration: underline;
  color: var(--color-accent);
}

/* News cards (Noutăți / Comunicate teasers) — SEOC "Our Latest Blog & News"
   card: borderless white card, image with hover zoom, uppercase meta row,
   semibold title and an uppercase "read more" link. */
.card--news {
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: none;
  border-radius: var(--radius-sm);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  position: relative;
}

.card__media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--color-surface-muted);
}

.card--news .card__media {
  aspect-ratio: 5 / 4;
}

/* Cards without an image keep the slot and show the SIS emblem instead of a
   blank grey box. */
.card__media:empty {
  background-color: var(--color-surface-muted);
  background-image: url(../images/sis-emblem-navy.webp);
  background-size: 100% auto;
  background-repeat: no-repeat;
  background-position: center;
}

.card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.card--news .card__media img {
  transition: transform 0.6s;
}

.card--news:hover .card__media img {
  transform: scale(1.1);
}

.card--news .card__body {
  padding: 28px;
  display: flex;
  flex-direction: column;
  flex: 1;
  text-align: justify;
}

/* Generic card body bits used by non-news cards (e.g. Document teasers). */
.card__date {
  color: var(--color-secondary);
  margin: 0 0 var(--space-2);
}

.card__summary {
  margin-bottom: var(--space-2);
  flex: 1;
}

.card__summary p:last-child {
  margin-bottom: 0;
}

.card__readmore {
  font-weight: 600;
  color: var(--color-accent);
  align-self: flex-start;
  text-decoration: none;
}

.card--news .card__date {
  margin: 0 0 var(--space-1);
  display: flex;
  align-items: center;
  gap: var(--space-1);
  font-size: 16px;
  line-height: 16px;
  font-weight: 500;
  color: #464D58;
}

.card--news .card__date .card__date-icon {
  width: 16px;
  height: 16px;
  flex: none;
  margin-top: -1px;
  color: #464D58;
}

.card--news .card__date .card__date-value > div,
.card--news .card__date .card__date-value .field {
  display: inline;
}

.card--news .card__date .card__date-value time {
  display: inline;
}

.card--news h3 {
  margin: 0 0 var(--space-2);
  font-size: 20px;
  line-height: 28px;
  font-weight: 600;
  text-align: left;
  /* Fixed two-line block so card summaries always start at the same
     vertical position, regardless of whether the title wraps or not. */
  height: 56px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card--news h3 .card__link {
  color: inherit;
}

.card--news h3 .card__link:hover {
  color: var(--color-accent);
}

.card--news .card__summary {
  margin-bottom: var(--space-2);
  flex: 1;
  text-align: justify;
  color: #464D58;
  /* Max five lines with an automatic ellipsis when truncated. */
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card--news .card__summary p:last-child {
  margin-bottom: 0;
}

.card--news .card__readmore {
  font-size: 16px;
  line-height: 16px;
  font-weight: 700;
  text-transform: uppercase;
  color: #081120;
  align-self: flex-start;
  margin-top: auto;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--space-05);
  transition: color 0.4s;
}

.card--news .card__readmore .card__readmore-arrow {
  width: 16px;
  height: 16px;
  margin-left: var(--space-05);
  transform: rotate(-45deg);
  color: #081120;
  transition: color 0.4s;
}

.card--news .card__readmore:hover,
.card--news .card__readmore:hover .card__readmore-arrow {
  color: var(--color-accent);
}

/* "Evidențiat" / "Alertă" / "Anunț" tags: small rounded pills in the
   top-left corner of the card (SEOC-style), instead of a full-width accent
   bar. When several are present they stack in a column. */
.card--news .card__badges {
  position: absolute;
  top: var(--space-2);
  left: var(--space-2);
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-05);
  align-items: flex-start;
}

.card__badges .card__badge {
  margin: 0;
  padding: var(--space-05) var(--space-1);
  background: var(--color-accent);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-radius: var(--radius-sm);
}

.card__badges .card__badge--alerta {
  background: #b5121b;
}

.card__badges .card__badge--anunt {
  background: #e87800;
}


/* Uniform grid for news/press listing pages: cards in the same row get equal
   height, matching gov.md. The grid itself lives in layout.css. */
.layout-content .views-element-container .views-row .card {
  min-height: 100%;
}

/* Node full view, News+ Premium style: a left column with the author
   (picture + name), social share buttons and the published/modified dates. */
.node-side {
  float: left;
  width: 110px;
  text-align: center;
  font-size: 12px;
  padding: 0 20px 0 0;
}

.node-side + .node-content {
  margin-left: 110px;
}

.node-side .user-picture {
  margin: 0 auto;
  width: 78px;
  height: 78px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.node-side .user-picture img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

.node-side .user-name {
  margin-top: 8px;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.3;
  text-align:center;
}

.node-side .share-buttons {
  margin-top: 12px;
  border-top: 1px solid var(--color-border);
  padding-top: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.node-side .share-title {
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 8px;
}

.node-side .share-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin: 3px 0;
  border-radius: 50%;
  color: #fff;
  vertical-align: middle;
}

.node-side .share-button:hover {
  opacity: 0.85;
}

.node-side .share-button svg {
  width: 16px;
  height: 16px;
}

.node-side .share-facebook { background-color: #3b5998; }
.node-side .share-telegram { background-color: #229ed9; }
.node-side .share-linkedin { background-color: #0077b5; }
.node-side .share-instagram { background-color: #e4405f; }
.node-side .share-whatsapp { background-color: #25d366; }

.node-side .submitted-info {
  margin-top: 14px;
  border-top: 1px solid var(--color-border);
  padding-top: 10px;
}

.node-side .submitted-info-item {
  margin-top: 10px;
  line-height: 1.4;
}

.node-side .submitted-info-item + .submitted-info-item {
  border-top: 1px solid var(--color-border);
  padding-top: 10px;
}

.node-side .submitted-info-label {
  display: block;
  font-weight: 600;
  color: var(--color-text);
}

.node-side .submitted-info time {
  color: var(--color-text);
}

@media (max-width: 767px) {
  .node-side {
    float: none;
    width: 100%;
    text-align: left;
    padding: 0 0 var(--space-3);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
  }

  .node-side + .node-content {
    margin-left: 0;
  }

  .node-side .user-info,
  .node-side .share-buttons {
    margin-top: 0;
  }

  .node-side .share-buttons {
    border-top: 0;
    padding-top: 0;
  }

  .node-side .share-buttons {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }

  .node-side .share-title {
    flex-basis: 100%;
    text-align: center;
    margin-bottom: 4px;
  }

  .node-side .share-button {
    margin: 0 3px;
  }

  .node-side .submitted-info {
    margin-top: 0;
    margin-left: auto;
    border-top: 0;
    padding-top: 0;
  }

  .node-side .submitted-info-item {
    display: inline-block;
    margin: 0 12px 0 0;
  }

  .node-side .submitted-info-item + .submitted-info-item {
    border-top: 0;
    padding-top: 0;
  }

  .node-side .submitted-info-label {
    display: inline;
    margin-right: 4px;
  }
}



.card--highlighted {
  border-color: var(--color-accent);
}

.card__badge {
  margin: 0;
  padding: var(--space-05) var(--space-2);
  background: var(--color-accent);
  color: #fff;
  font-size: var(--text-small);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Alerts / status banner */
.alert {
  border-radius: var(--radius-sm);
  padding: var(--space-2) var(--space-3);
  border-left: 4px solid var(--color-primary);
  background: var(--color-surface);
  margin-bottom: var(--space-3);
}

.alert--info { border-left-color: var(--color-primary); }
.alert--warning { border-left-color: #8a6d00; background: #fff8e6; }
.alert--critical { border-left-color: #7a1f1f; background: #fdecec; }

/* Tables
   Design modelled after seoc.symphonythemes.net/service-3 ("Website Analysis"):
   white rounded card with a soft shadow, a solid navy header row, and body
   rows separated by a thin bottom border (no zebra striping). */
table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin-bottom: var(--space-3);
  background: var(--color-surface);
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

th, td {
  text-align: left;
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
}

thead th {
  background: var(--color-secondary);
  color: #fff;
  font-size: 16px;
  line-height: 16px;
  border-bottom: none;
}

thead th a {
  color: #fff;
}

thead th a:hover {
  color: #fff;
}

tbody tr:last-child td {
  border-bottom: none;
}

@media (max-width: 767px) {
  table {
    font-size: 0.875rem;
  }
}

/* Accordion (FAQ) */
.accordion-item {
  border-bottom: 1px solid var(--color-border);
}

.accordion-item summary {
  cursor: pointer;
  font-weight: 600;
  padding: var(--space-2) 0;
  color: var(--color-primary);
  list-style: none;
}

.accordion-item summary::-webkit-details-marker { display: none; }

.accordion-item summary::before {
  content: '+';
  display: inline-block;
  width: 1.2em;
  font-weight: 700;
}

.accordion-item[open] summary::before {
  content: '\2212';
}

.accordion-item p {
  padding-bottom: var(--space-2);
}

/* Forms */
label {
  display: block;
  font-weight: 600;
  margin-bottom: var(--space-1);
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
textarea,
select {
  width: 100%;
  padding: 0.55em 0.75em;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-family: inherit;
  font-size: 1rem;
  margin-bottom: var(--space-2);
}

.form-item--error input,
.form-item--error textarea {
  border-color: #7a1f1f;
}

.form-item__error-message,
.messages--error {
  color: #7a1f1f;
}

.messages {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  margin-bottom: var(--space-3);
}

.messages--status {
  background: #e8f3ec;
  border-left: 4px solid #1e6b3c;
}

.messages--error {
  background: #fdecec;
  border-left: 4px solid #7a1f1f;
}

.messages--warning {
  background: #fff8e6;
  border-left: 4px solid #8a6d00;
}

/* Document listing (documente_categorie view): show a document icon in front
   of the file name and the file size in parentheses after it (e.g.
   "(302 octeți)"), matching the Gin admin look. The generic file formatter
   renders the size as a bare <span> following the <a>. */
.views-field-field-document-file > span:not(.file) {
  display: inline;
  font-size: var(--text-small);
  color: var(--color-text);
  opacity: 0.75;
  white-space: nowrap;
}

.file::before {
  content: '';
  display: inline-block;
  width: 1.6em;
  height: 1.6em;
  margin-right: 0.5em;
  vertical-align: middle;
  background: var(--icon-file-generic) no-repeat center / contain;
}

.file--application-pdf::before,
.file--mime-application-pdf::before {
  background-image: var(--icon-file-pdf);
}

.file--x-office-document::before,
.file--mime-application-msword::before {
  background-image: var(--icon-file-word);
}

.file--mime-application-vnd-openxmlformats-officedocument-wordprocessingml-document::before {
  background-image: var(--icon-file-docx);
}

.file--x-office-spreadsheet::before,
.file--mime-application-vnd-ms-excel::before {
  background-image: var(--icon-file-excel);
}

.file--mime-application-vnd-openxmlformats-officedocument-spreadsheetml-sheet::before {
  background-image: var(--icon-file-excel);
}

.file--x-office-presentation::before,
.file--mime-application-vnd-ms-powerpoint::before {
  background-image: var(--icon-file-ppt);
}

.file--text::before,
.file--mime-text-plain::before {
  background-image: var(--icon-file-txt);
}

.file--image::before {
  background-image: var(--icon-file-image);
}

.file--mime-image-png::before {
  background-image: var(--icon-file-png);
}

.file--mime-image-jpeg::before {
  background-image: var(--icon-file-jpg);
}

.file--package-x-generic::before,
.file--mime-application-zip::before {
  background-image: var(--icon-file-archive);
}

.file--mime-application-vnd-rar::before,
.file--mime-application-x-rar-compressed::before {
  background-image: var(--icon-file-rar);
}

.file--video::before,
.file--mime-video-mp4::before {
  background-image: var(--icon-file-mp4);
}

/* Images embedded in article/post body text (CKEditor media embeds carry
   data-entity-type="file"): respect the size set in the editor (width/height
   attributes), stay clickable for full-size view via js/image-lightbox.js. */
img[data-entity-type='file'] {
  display: inline-block;
  max-width: 100%;
  height: auto;
  margin: 0 var(--space-2) var(--space-2) 0;
  border-radius: var(--radius-sm);
  cursor: zoom-in;
  transition: opacity 0.15s ease;
}

img[data-entity-type='file']:hover {
  opacity: 0.85;
}

.image-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2000;
  align-items: center;
  justify-content: center;
  background: rgba(11, 31, 58, 0.9);
  padding: var(--space-4);
  cursor: zoom-out;
}

.image-lightbox.is-open {
  display: flex;
}

.image-lightbox img {
  max-width: 90vw;
  max-height: 90vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: var(--radius-sm);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
}

.image-lightbox__close {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.image-lightbox__close:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* Breadcrumb (News+ Lite style) */
nav.breadcrumb {
  font-size: 10px;
  text-transform: uppercase;
  margin: 7px 0 35px;
  padding: 0;
  background-color: transparent;
  border-radius: 0;
}

nav.breadcrumb ol {
  margin: 0;
  padding: 0;
  list-style: outside none none;
}

nav.breadcrumb li {
  display: inline;
  margin: 0;
  padding: 0;
  list-style: outside none none;
}

nav.breadcrumb li::before {
  content: "";
}

nav.breadcrumb a {
  color: var(--color-text);
  text-decoration: underline;
}

nav.breadcrumb a:hover {
  color: var(--color-accent);
  text-decoration: underline;
}

.breadcrumb-separator {
  padding: 0 4px 0 3px;
}

/* DataTables (documente_categorie view) — undo the generic form rules above so
   the length menu ("Arată X înregistrări") and search box stay on one line,
   matching the Gin admin preview instead of stacking the label text, the
   select and the trailing word into three separate rows. */
.dt-container .dt-length label,
.dt-container .dt-search label {
  display: inline;
  font-weight: normal;
  margin-bottom: 0;
}

.dt-container .dt-length,
.dt-container .dt-search {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
}

.dt-container select,
.dt-container input[type='search'],
.dt-container input[type='text'] {
  width: auto;
  margin-bottom: 0;
}

.dt-container .dt-paging {
  margin-top: var(--space-2);
}

/* Same card + navy-header table design for DataTables tables. The DT theme
   stylesheet sets its own borders/padding, so these rules are scoped to
   .dt-container with equal-or-higher specificity to win. */
.dt-container {
  margin-bottom: var(--space-3);
}

.dt-container table.dataTable {
  width: 100%;
  margin-bottom: 0;
  background: var(--color-surface);
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

@media (max-width: 767px) {
  .dt-container {
    overflow-x: auto;
  }
}

.dt-container table.dataTable thead th {
  background: var(--color-secondary);
  color: #fff;
  font-size: 16px;
  line-height: 16px;
  border-bottom: none;
  padding: var(--space-2) var(--space-3);
}

.dt-container table.dataTable thead th a {
  color: #fff;
}

.dt-container table.dataTable thead th.dt-orderable-asc,
.dt-container table.dataTable thead th.dt-orderable-desc,
.dt-container table.dataTable thead th.dt-ordering-asc,
.dt-container table.dataTable thead th.dt-ordering-desc {
  background: var(--color-secondary);
}

.dt-container table.dataTable tbody td {
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--color-border);
}

.dt-container table.dataTable tbody tr {
  border-bottom: 1px solid var(--color-border);
}

.dt-container table.dataTable tbody tr,
.dt-container table.dataTable.display > tbody > tr > * {
  border-top: none;
}

.dt-container table.dataTable tbody tr:last-child td {
  border-bottom: none;
}

.dt-container table.dataTable tbody tr:last-child {
  border-bottom: none;
}


/* --- Pager (News+ style) ------------------------------------------------ */
.pager .pager__items {
  margin: 80px 0 20px;
  padding: 0;
  text-align: left;
  list-style: none;
}

li.pager__item {
  display: inline-block;
  padding: 0;
  margin: 0 15px 0 0;
  border-bottom: none;
  font-size: 12px;
  vertical-align: middle;
}

li.pager__item > a {
  padding: 9px 17px;
  border: none;
  border-radius: 0;
  line-height: 1;
  background-color: #dddddd;
  color: var(--color-text);
  display: inline-block;
}

li.pager__item > a:hover {
  background-color: var(--color-accent);
  color: #ffffff;
  text-decoration: none;
}

li.pager__item > a:focus {
  background-color: #dddddd;
  outline: none;
}

li.pager__item.is-active > a {
  background-color: var(--color-accent);
  color: #ffffff;
  line-height: 1;
}

/* Arhiva view - exposed filters horizontal, results below */
.arhiva-filters {
  margin-bottom: var(--space-4);
}

.arhiva-filters .views-exposed-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--space-2);
}

.arhiva-filters .views-exposed-widget {
  flex: 1;
  min-width: 180px;
  margin-bottom: 0;
}

.arhiva-filters .views-exposed-widget label {
  display: block;
  font-weight: 600;
  font-size: var(--text-small);
  margin-bottom: var(--space-05);
  color: var(--color-text);
}

.arhiva-filters .form-select,
.arhiva-filters .form-text,
.arhiva-filters input[type="text"] {
  width: 100%;
  padding: 0.5em 0.75em;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-family: inherit;
  font-size: var(--text-body);
}

.arhiva-filters .form-actions {
  display: flex;
  gap: var(--space-1);
  align-items: flex-end;
}

.arhiva-filters .form-submit {
  padding: 0.65em 1.2em;
}

.arhiva-results {
  margin-top: var(--space-4);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  display:grid;
  gap: var(--space-3);
}

@media (max-width: 767px) {
  .arhiva-filters .views-exposed-form {
    flex-direction: column;
    align-items: stretch;
  }

  .arhiva-filters .views-exposed-widget {
    min-width: 100%;
  }

  .arhiva-filters .form-actions {
    justify-content: flex-start;
  }
}

/* Arhiva results as card grid */
.arhiva-results .view-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}

@media (min-width: 600px) {
  .arhiva-results .view-content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .arhiva-results .view-content {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.arhiva-results .views-row {
  display: flex;
  min-width: 0;
}

.arhiva-results .views-row .card {
  flex: 1;
  width: 100%;
  min-width: 0;
}

/* Taxonomy term pages (/taxonomy/term/*) read like an ordinary article:
   the term name as the page heading, description in the content area, and
   the related nodes stacked as a single-column list. */
.taxonomy-term-view {
  width: 100%;
}

.taxonomy-term__header {
  margin-bottom: var(--space-4);
}

.taxonomy-term__name {
  font-size: 2rem;
  line-height: 1.2;
  color: var(--color-primary);
  margin: 0 0 var(--space-3);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--color-border);
}

.taxonomy-term-view .taxonomy-term__listing {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  width: 100%;
}

.taxonomy-term__listing .views-row {
  display: block;
  min-width: 0;
}

.taxonomy-term__listing .views-row .card {
  width: 100%;
  min-width: 0;
}

.taxonomy-term-view nav.pager {
  grid-column: 1 / -1;
}

.taxonomy-term-view .feed-icon {
  display: none;
}
/* ------------------------------------------------------------------ */
/* Custom AJAX loader for views listings (infinite scroll): brand-colored
   spinning ring shown BELOW the last card row while the next page loads.
   Views uses the "fullscreen" progress type; js/infinite-scroll-loader.js
   relocates that element into the view container, right after the content
   wrapper. Drupal removes it automatically once the new cards are inserted,
   so the loader disappears together with the arrival of the new content. */

/* Any fullscreen loader NOT relocated (non-views operations) stays hidden:
   no floating spinner in the middle of the page. */
body > .ajax-progress-fullscreen {
  display: none !important;
}

/* Relocated loader: full-width strip centered under the listing. */
.views-element-container .ajax-progress-fullscreen {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: auto;
  margin: 0;
  padding: var(--space-3) 0;
  opacity: 1;
  background: transparent;
  border: none;
  border-radius: 0;
}

.views-element-container .ajax-progress-fullscreen::before {
  content: "";
  width: 28px;
  height: 28px;
  border: 3px solid rgba(11, 31, 58, 0.15);
  border-top-color: #002d61;
  border-radius: 50%;
  animation: institutional-spinner 0.8s linear infinite;
}

@keyframes institutional-spinner {
  to {
    transform: rotate(360deg);
  }
}