/* Alma's shared type scale. rem units respect the reader's text settings.
   Intentional !important typography declarations supersede legacy page-family
   sizes and WordPress presets. Context rules preserve readable contrast and reflow. */
:root {
  --alma-type-h1: 2.5rem;
  --alma-type-h2: 2rem;
  --alma-type-h3: 1.5rem;
  --alma-type-h4: 1.375rem;
  --alma-type-body: 1.125rem;
  --alma-type-lead: 1.25rem;
  --alma-type-small: 1rem;
  --alma-type-action: 1.125rem;
  --alma-type-button: 1.3rem;
  --alma-reading-width: 65ch;
}

@media (min-width: 48em) {
  :root {
    --alma-type-h1: 3.5rem;
    --alma-type-h2: 2.5rem;
    --alma-type-h3: 1.625rem;
  }
}

@media (min-width: 64em) {
  :root {
    --alma-type-h1: 4rem;
    --alma-type-h2: 2.75rem;
    --alma-type-h3: 1.75rem;
    --alma-type-h4: 1.5rem;
    --alma-type-body: 1.25rem;
    --alma-type-lead: 1.375rem;
  }
}

.wp-site-blocks {
  font-family: "Nunito", Helvetica, Arial, sans-serif;
  font-size: var(--alma-type-body);
  font-weight: 400;
  line-height: 1.6;
}

.wp-site-blocks :is(h1, h2, h3, h4, h5, h6) {
  font-family: inherit !important;
  font-weight: 800 !important;
  font-variation-settings: normal;
  letter-spacing: -0.01em !important;
  text-wrap: balance;
  overflow-wrap: anywhere;
  hyphens: manual;
  height: auto;
}

.wp-site-blocks h1 { font-size: var(--alma-type-h1) !important; line-height: 1.12 !important; }
.wp-site-blocks h2 { font-size: var(--alma-type-h2) !important; line-height: 1.2 !important; }
.wp-site-blocks h3 { font-size: var(--alma-type-h3) !important; line-height: 1.25 !important; }
.wp-site-blocks h4 { font-size: var(--alma-type-h4) !important; line-height: 1.3 !important; }
.wp-site-blocks h5 { font-size: 1.25rem !important; line-height: 1.35 !important; }
.wp-site-blocks h6 { font-size: 1.125rem !important; line-height: 1.4 !important; }

.wp-site-blocks main :is(p, li, dt, dd, address, blockquote, th, td) {
  font-size: var(--alma-type-body) !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: normal;
  overflow-wrap: anywhere;
}

.wp-site-blocks main p {
  max-width: var(--alma-reading-width);
  margin-block: 0 1.25em;
}

.wp-site-blocks main p.has-large-font-size {
  font-size: var(--alma-type-body) !important;
  line-height: 1.6 !important;
}

.wp-site-blocks main :is(h1, h2, h3, h4, h5, h6) + :is(p, ul, ol) {
  margin-top: 1rem;
}

.wp-site-blocks main :is(li, dd) + :is(li, dd) { margin-top: 0.5em; }
.wp-site-blocks main :is(p, li, dd) > :is(a, span, strong, b, em) { font-size: inherit !important; }

/* Inline markup does not introduce another type scale. */
.wp-site-blocks :is(span, strong, b, em) {
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.wp-site-blocks span { font-weight: inherit; }

.wp-site-blocks :is(strong, b) { font-weight: 700; }
.wp-site-blocks main a:not(:is(.wp-element-button, .wp-block-button__link, .alma-home-v2-button-outline, .alma-text-action)) { font-size: inherit; }

/* All page introductions use the same larger body style. */
.wp-site-blocks :is(.alma-home-v2-hero-copy, .alma-offer-hero-copy, .alma-institutions-hero-copy, .alma-about-hero-copy, .alma-contact-hero-copy, .alma-booking-hero-grid > div, .alma-legal-hero > div) > p:not(.alma-kicker) {
  font-size: var(--alma-type-lead) !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  margin-block: 0 1.5rem;
}

/* Supporting labels, addresses and captions remain readable on small screens. */
.wp-site-blocks :is(small, figcaption, label, .alma-kicker, .alma-offer-number, .alma-offer-sector-related-kicker, .alma-institutions-hero-badge, .alma-contact-hero-tag),
.wp-site-blocks .alma-contact-locations > p,
.wp-site-blocks :is(.alma-contact-methods, .alma-contact-hero-details) a > span,
.wp-site-blocks .alma-about-map-card > span,
.wp-site-blocks :is(.alma-offer-detail-grid, .alma-offer-sector-planning-grid, .alma-about-known-grid) article > span,
.wp-site-blocks .alma-offer-sector-process ol > li > strong {
  font-size: var(--alma-type-small) !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  overflow-wrap: anywhere;
}

.wp-site-blocks :is(.alma-kicker, .alma-offer-number, .alma-offer-sector-related-kicker, .alma-institutions-hero-badge, .alma-contact-hero-tag),
.wp-site-blocks .alma-contact-locations > p,
.wp-site-blocks :is(.alma-offer-detail-grid, .alma-offer-sector-planning-grid, .alma-about-known-grid) article > span,
.wp-site-blocks :is(.alma-contact-methods, .alma-contact-hero-details) a > span {
  font-weight: 700 !important;
  margin-bottom: 0.75rem;
}

.wp-site-blocks main .alma-kicker { color: #b63c22; }
.wp-site-blocks :is(.alma-offer-institutions, .alma-institutions-process, .alma-contact-request, .alma-legal-card-primary, .alma-terms-aside) .alma-kicker { color: #ffe2b2; }

.wp-site-blocks main summary {
  font-size: var(--alma-type-body) !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  overflow-wrap: anywhere;
}

.wp-site-blocks main :is(input, select, textarea, button) {
  font-family: inherit;
  font-size: var(--alma-type-small);
  line-height: 1.5;
}

.wp-site-blocks main a.alma-text-action,
.wp-site-blocks main a.alma-text-action .alma-text-action-label {
  font-size: var(--alma-type-action) !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
}

.wp-site-blocks main .alma-offer-sector-related-grid > a > strong {
  font-size: var(--alma-type-h3);
  font-weight: 800;
  line-height: 1.25;
}

.wp-site-blocks .alma-about-speech > span {
  font-size: var(--alma-type-h2);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

/* Menus and footer use the same UI scale, including submenu links. */
.wp-site-blocks .wp-block-navigation :is(a:not(.alma-mobile-menu-action), .wp-block-navigation-item__label) {
  font-size: var(--alma-type-action) !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

.wp-site-blocks .wp-block-navigation li { font-size: var(--alma-type-action); }

.wp-site-blocks .alma-lang-switcher button,
.wp-site-blocks .alma-lang-switcher button span {
  font-size: var(--alma-type-small) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}

.wp-site-blocks .alma-footer :is(p, li, a, address, small, strong) {
  font-size: var(--alma-type-small) !important;
  line-height: 1.6 !important;
  overflow-wrap: anywhere;
}

.wp-site-blocks .alma-footer p {
  font-weight: 400 !important;
  margin-bottom: 1em;
}
.wp-site-blocks .alma-footer h3 { margin-bottom: 1rem; }

.wp-site-blocks .alma-footer a.alma-footer-cta {
  font-size: var(--alma-type-button) !important;
}

/* Text containers grow with enlarged type instead of clipping their content. */
.wp-site-blocks :is(.alma-home-v2-section-head, .alma-offer-section-head, .alma-about-section-head, .alma-institutions-section-head) {
  height: auto;
}

.wp-site-blocks .alma-institutions-hero-badge {
  max-width: calc(100% - 2rem);
  white-space: normal;
}

.wp-site-blocks .alma-contact-locations address,
.wp-site-blocks .alma-about-map-card { max-width: 100%; }

/* Keep supporting text and numbered steps legible against their surfaces. */
.wp-site-blocks main :is(.alma-offer-number, .alma-offer-sector-related-kicker),
.wp-site-blocks .alma-contact-locations > p,
.wp-site-blocks :is(.alma-contact-methods, .alma-contact-hero-details) a > span,
.wp-site-blocks .alma-offer-detail-grid article > span,
.wp-site-blocks .alma-about-known-grid article > span {
  color: #a83620;
}

.wp-site-blocks .alma-offer-sector-planning-grid article > span {
  color: #062f40;
}

.wp-site-blocks :is(.alma-offer-sector-considerations, .alma-offer-sector-process, .alma-contact-portal-hint) .alma-kicker {
  color: #ffe2b2;
}

.wp-site-blocks .alma-contact-request-card .alma-kicker { color: #a83620; }
.wp-site-blocks .alma-about-portal-copy .alma-kicker { color: #a83620; }

.wp-site-blocks :is(.alma-offer-cta-grid, .alma-offer-detail-cta > .wp-block-group, .alma-institutions-cta) :is(h2, p) {
  color: #062f40 !important;
}

.wp-site-blocks :is(.alma-institutions-sector-contact, .alma-institutions-process, .alma-offer-sector-considerations, .alma-offer-sector-process) {
  background: linear-gradient(125deg, #073d52, #006e60);
}

.wp-site-blocks :is(.alma-institutions-sector-contact, .alma-institutions-process, .alma-offer-sector-considerations) p {
  color: #fff;
}

.wp-site-blocks .alma-offer-sector-process ol > li > strong { color: #fff; }

/* The two service-card links are primary actions too. */
.wp-site-blocks main .alma-home-v2-service-copy > a {
  font-size: var(--alma-type-button);
  font-weight: 800;
  line-height: 1.4;
  color: #062f40;
  overflow-wrap: anywhere;
}

.wp-site-blocks .alma-lang-switcher__option {
  font-size: var(--alma-type-small);
  font-weight: 700;
}

/* Text enlargement can wrap the desktop header rather than hide its controls.
   Intrinsic hero columns also stack when rem-based text needs more room. */
@media (min-width: 981px) {
  .wp-site-blocks .alma-site-header-v2 .alma-header-inner {
    flex-wrap: wrap !important;
  }

  .wp-site-blocks .alma-header-inner > .wp-block-navigation {
    min-width: 0;
    flex: 1 1 auto;
  }

  .wp-site-blocks .wp-block-navigation__container {
    flex-wrap: wrap;
  }

  .wp-site-blocks :is(.alma-home-v2-hero, .alma-offer-hero, .alma-institutions-hero, .alma-about-hero, .alma-contact-hero, .alma-booking-hero) :is(.alma-home-v2-hero-grid, .alma-offer-hero-grid, .alma-institutions-hero-grid, .alma-about-hero-grid, .alma-contact-hero-grid, .alma-booking-hero-grid) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 26rem), 1fr));
  }
}

.wp-site-blocks .alma-institutions-steps > li > span {
  color: #fff;
  font-weight: 700;
}

.wp-site-blocks .alma-offer-sector-process ol > li > span { font-weight: 700; }
.wp-site-blocks .alma-offer-sector-related-copy { font-weight: 400; }

.wp-site-blocks .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
  font-size: var(--alma-type-small) !important;
  line-height: 1.5 !important;
}

@media (min-width: 1101px) {
  .wp-site-blocks .wp-block-navigation__container > .wp-block-navigation-submenu:is(.alma-menu-services, .alma-menu-institutions) > .wp-block-navigation__submenu-container > .wp-block-navigation-item:last-child .wp-block-navigation-item__content {
    background: linear-gradient(110deg, #06475d, #006e60) !important;
  }

  .wp-site-blocks .wp-block-navigation__container > .wp-block-navigation-submenu:is(.alma-menu-services, .alma-menu-institutions) > .wp-block-navigation__submenu-container > .wp-block-navigation-item:last-child .wp-block-navigation-item__content::after {
    color: #fff;
  }
}

/* Keep the brand visible when the reader has disabled decorative animation. */
@media (prefers-reduced-motion: reduce) {
  .wp-site-blocks .alma-footer-logo-script .alma-footer-logo {
    clip-path: none !important;
    opacity: 1 !important;
  }

  .wp-site-blocks .alma-footer-logo-draw { display: none !important; }
}
