/* RAON shared type scale. Page-specific layouts keep their own spacing and color. */
:root {
  --raon-nav-size: 1rem;
  --raon-label-size: .78rem;
  --raon-body-size: 1rem;
  --raon-lead-size: 1.125rem;
  --raon-section-size: clamp(2rem, 3.7vw, 3.65rem);
  --raon-card-title-size: clamp(1.12rem, 1.55vw, 1.35rem);
  --raon-orange-ui: #a85800;
  --raon-red-ui: #ad2f1b;
}

body {
  font-size: 16px;
  text-rendering: optimizeLegibility;
}

.main-menu__link,
.index-main-menu__link {
  font-size: var(--raon-nav-size) !important;
}

.main-menu__submenu a,
.index-main-menu__submenu a {
  font-size: .92rem !important;
}

.mobile-menu a,
.index-mobile-menu a {
  font-size: .95rem !important;
}

/* The final desktop item opens inward, and mobile utility links keep the same
   two-column rhythm before the final company-information group. */
@media (min-width: 981px) {
  .main-menu__item:last-child .main-menu__submenu,
  .index-main-menu__item:last-child .index-main-menu__submenu {
    right: 0 !important;
    left: auto !important;
    transform: translateY(8px) !important;
  }

  .main-menu__item:last-child:hover .main-menu__submenu,
  .main-menu__item:last-child:focus-within .main-menu__submenu,
  .index-main-menu__item:last-child:hover .index-main-menu__submenu,
  .index-main-menu__item:last-child:focus-within .index-main-menu__submenu {
    transform: translateY(0) !important;
  }
}

@media (max-width: 980px) {
  .mobile-menu__utility,
  .index-mobile-menu__utility {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid rgba(5, 5, 5, .1);
  }

  .mobile-menu__group:last-child,
  .index-mobile-menu__group:last-child {
    padding-bottom: 4px;
    border-bottom: 0;
  }
}

/* Keep the global desktop navigation geometry consistent across page families. */
.main-menu,
.index-main-menu {
  border-radius: 8px !important;
}

.main-menu__link,
.index-main-menu__link {
  border-radius: 4px !important;
}

.footer__copyright {
  display: block;
  margin-top: 10px;
}

.footer__copyright > a,
.site-footer__copy .footer__copyright > a {
  color: inherit !important;
  border-bottom: 0 !important;
  text-decoration: none !important;
}

.footer__copyright > a:hover,
.footer__copyright > a:focus-visible,
.site-footer__copy .footer__copyright > a:hover,
.site-footer__copy .footer__copyright > a:focus-visible {
  color: #fff !important;
  border-bottom: 0 !important;
  text-decoration: none !important;
}

/* Keep hover neutral while the selected menu retains the brand gradient. */
.main-menu__item:hover .main-menu__link:not(.is-active),
.main-menu__item:focus-within .main-menu__link:not(.is-active),
.index-main-menu__item:hover .index-main-menu__link:not(.is-active),
.index-main-menu__item:focus-within .index-main-menu__link:not(.is-active) {
  background: linear-gradient(135deg, #6d767d, #050505) !important;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(5, 5, 5, .16);
}

.main-menu__link.is-active,
.index-main-menu__link.is-active,
.main-menu__item:hover .main-menu__link.is-active,
.index-main-menu__item:hover .index-main-menu__link.is-active,
.main-menu__item:focus-within .main-menu__link.is-active,
.index-main-menu__item:focus-within .index-main-menu__link.is-active {
  background: linear-gradient(135deg, var(--raon-orange-ui), var(--raon-red-ui)) !important;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(225, 74, 42, .18);
}

.section-no,
.section__no,
.field-summary,
.final-consult__eyebrow {
  font-size: var(--raon-label-size) !important;
}

/* Internal page heroes share one display scale across business, fields, about,
   support, and performance pages. */
@media (min-width: 981px) {
  .hero {
    height: clamp(440px, 55vh, 520px) !important;
    min-height: 440px !important;
    padding-top: 112px !important;
    padding-bottom: 54px !important;
  }

  .hero h1,
  .hero #page-title {
    font-size: clamp(2.75rem, 3.8vw, 4.25rem) !important;
    line-height: 1.04 !important;
    white-space: nowrap !important;
    text-wrap: nowrap !important;
  }

  .hero__lead,
  .hero p:last-child {
    font-size: var(--raon-lead-size) !important;
    line-height: 1.75 !important;
    text-wrap: pretty;
  }
}

.section__head h2,
.section-head h2,
.field-summary h2,
.field-map__content h2,
.field-check h2,
.final-consult h2 {
  font-size: var(--raon-section-size) !important;
  line-height: 1.1 !important;
  text-wrap: balance;
}

.cta h2 {
  font-size: clamp(1.65rem, 2.5vw, 2.35rem) !important;
  line-height: 1.2 !important;
  text-wrap: balance;
}

.section__title--compact,
.section__head .section__title--single {
  font-size: clamp(2rem, 3.4vw, 3.35rem) !important;
  line-height: 1.12 !important;
  text-wrap: balance;
}

.section__head p,
.section-head p,
.cta p,
.final-consult__body {
  font-size: var(--raon-body-size) !important;
  line-height: 1.75 !important;
  text-wrap: pretty;
}

.statement__lead {
  font-size: clamp(2rem, 3.9vw, 3.8rem) !important;
  line-height: 1.12 !important;
  text-wrap: balance;
}

.challenge h3,
.flow__item h3,
.feature h3,
.process__step h3,
.history-card h3,
.cert-card h3,
.location-card h3,
.contact-card h3 {
  font-size: var(--raon-card-title-size) !important;
  line-height: 1.35 !important;
  text-wrap: balance;
}

.challenge p,
.flow__item p,
.feature p,
.process__step p,
.history-card li,
.cert-card p,
.location-card dd,
.contact-card p {
  font-size: var(--raon-body-size) !important;
  line-height: 1.7 !important;
  text-wrap: pretty;
}

.project-name {
  font-size: 1rem !important;
}

@media (max-width: 980px) {
  .hero,
  .hero--subpage {
    height: auto !important;
    min-height: clamp(400px, 56svh, 500px) !important;
    padding-top: 104px !important;
    padding-bottom: 44px !important;
  }

  .hero__inner {
    width: min(1180px, calc(100vw - 44px)) !important;
    max-width: calc(100vw - 44px) !important;
    min-width: 0 !important;
  }

  .hero h1,
  .hero #page-title {
    font-size: clamp(1.2rem, 5.5vw, 2.6rem) !important;
    line-height: 1.08 !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-wrap: balance !important;
    overflow-wrap: anywhere;
  }

  .hero__lead,
  .hero p:last-child {
    width: min(680px, 100%) !important;
    max-width: 100% !important;
    font-size: 1rem !important;
    line-height: 1.72 !important;
    text-wrap: pretty;
    overflow-wrap: anywhere;
  }

  .section__head h2,
  .section-head h2,
  .field-summary h2,
  .field-map__content h2,
  .field-check h2,
  .final-consult h2 {
    font-size: clamp(2rem, 8vw, 2.65rem) !important;
  }

  .cta h2 {
    font-size: clamp(1.65rem, 7.2vw, 2.15rem) !important;
  }

  .section__title--compact,
  .section__head .section__title--single {
    font-size: clamp(1.9rem, 7.2vw, 2.55rem) !important;
    white-space: normal !important;
  }

  .statement__lead {
    font-size: clamp(2rem, 8vw, 2.75rem) !important;
  }

  .section__head p,
  .section-head p,
  .cta p,
  .final-consult__body,
  .challenge p,
  .flow__item p,
  .feature p,
  .process__step p,
  .history-card li,
  .cert-card p,
  .location-card dd,
  .contact-card p {
    font-size: .98rem !important;
    line-height: 1.72 !important;
    text-wrap: pretty;
  }

  .footer__copyright {
    margin-top: 12px;
  }
}

/* Shared interaction and accessibility rules. */
.skip-link {
  position: fixed;
  top: 10px;
  left: 12px;
  z-index: 10000;
  padding: 11px 15px;
  border-radius: 4px;
  background: #050505;
  color: #fff;
  font-size: .88rem;
  font-weight: 800;
  text-decoration: none;
  transform: translateY(-180%);
  transition: transform .16s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

main:focus {
  outline: none;
}

:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid #b8321e !important;
  outline-offset: 3px;
}

.mobile-menu-toggle,
.index-mobile-toggle {
  min-width: 44px !important;
  min-height: 44px !important;
}

.footer__info a,
.site-footer__info a,
.error-footer a {
  color: inherit;
  text-decoration: none;
}

.footer__info a:hover,
.footer__info a:focus-visible,
.site-footer__info a:hover,
.site-footer__info a:focus-visible,
.error-footer a:hover,
.error-footer a:focus-visible {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.section-no,
.section__no,
.contact-card__label,
.cert-viewer__eyebrow,
.partnership-modal__label,
.sw-copy__eyebrow {
  color: #b8321e !important;
}

.project-location {
  color: #667078 !important;
}

.cta a:hover,
.cta a:focus-visible,
.final-consult__button:hover,
.final-consult__button:focus-visible,
.contact-action:hover,
.contact-action:focus-visible,
.map-link:hover,
.map-link:focus-visible,
.cert-card__trigger:hover .cert-card__action,
.cert-card__trigger:focus-visible .cert-card__action,
.cert-viewer__footer a:hover,
.cert-viewer__footer a:focus-visible,
.cert-viewer__footer button:hover,
.cert-viewer__footer button:focus-visible,
.cert-viewer__close:hover,
.cert-viewer__close:focus-visible,
.load-more:hover,
.load-more:focus-visible,
.filter[aria-pressed="true"],
.region-reset[aria-pressed="true"],
.partnership-modal__cta,
.raon-org__box--ceo,
.error-actions a:first-child {
  border-color: transparent !important;
  background: linear-gradient(135deg, var(--raon-orange-ui), var(--raon-red-ui)) !important;
  color: #fff !important;
}

.filter,
.region-reset {
  min-height: 44px !important;
}

.map-pin {
  width: 44px !important;
  height: 44px !important;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }

  .reveal,
  .project-group {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Shared entrance motion for every content page except the scroll-world landing. */
.page-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .72s ease, transform .72s ease;
  will-change: opacity, transform;
}

.page-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .page-reveal {
    opacity: 0 !important;
    transform: none !important;
    transition: opacity .48s ease !important;
  }

  .page-reveal.is-visible {
    opacity: 1 !important;
  }
}

/* Compact corporate footer: logo and company details above, legal links below. */
.site-footer {
  padding: 0 clamp(22px, 5vw, 72px) !important;
  border-top: 0;
  background: #0b0d0e !important;
  color: #f4f4f2 !important;
}

.site-footer .footer__inner {
  display: block !important;
  width: min(1180px, 100%);
  margin: 0 auto;
}

.footer__logo {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  color: inherit;
  text-decoration: none;
}

.footer__logo img {
  display: block;
  width: 142px;
  height: auto;
}

.site-footer .footer__legal-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px 10px;
  color: #d5d8da;
  font-size: .7rem;
  font-weight: 650;
  line-height: 1.55;
}

.site-footer .footer__legal-links a {
  color: inherit;
  text-decoration: none;
}

.site-footer .footer__legal-links a:hover,
.site-footer .footer__legal-links a:focus-visible {
  color: var(--raon-orange) !important;
  text-decoration: none;
}

.site-footer .footer__legal-links span {
  color: #5e6366;
}

.footer__business {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 40px;
  align-items: center;
  padding: 24px 0 18px;
}

.footer__company {
  display: grid;
  grid-template-columns: max-content max-content minmax(0, 1fr);
  min-width: 0;
  align-items: baseline;
  gap: 5px 18px;
}

.site-footer .footer__brand {
  grid-area: 1 / 1 / 2 / 2 !important;
  align-self: auto !important;
  margin: 0 !important;
  color: #f4f4f2;
  font-size: .76rem;
  font-weight: 850;
  line-height: 1.55;
}

.site-footer .footer__info {
  display: contents !important;
  grid-area: auto !important;
  margin: 0;
}

.site-footer .footer__info div {
  display: inline-flex;
  min-width: 0;
  align-items: baseline;
  color: #c9cdcf;
  font-size: .7rem;
  line-height: 1.5;
}

.site-footer .footer__info div:not(:last-child)::after {
  display: none !important;
}

.site-footer .footer__info div:nth-child(1) {
  grid-column: 2;
  grid-row: 1;
}

.site-footer .footer__info div:nth-child(2) {
  grid-column: 3;
  grid-row: 1;
}

.site-footer .footer__info div:nth-child(3) {
  grid-column: 1 / -1;
  grid-row: 2;
}

.site-footer .footer__info div:nth-child(4) {
  grid-column: 1;
  grid-row: 3;
}

.site-footer .footer__info div:nth-child(5) {
  grid-column: 2;
  grid-row: 3;
}

.site-footer .footer__info div:nth-child(6) {
  grid-column: 3;
  grid-row: 3;
}

.site-footer .footer__info dt {
  flex: 0 0 auto;
  color: #8f969a;
  font-weight: 750;
}

.site-footer .footer__info dd {
  min-width: 0;
  margin: 0 0 0 6px;
  color: #d8dbdd;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.site-footer .footer__info a {
  color: inherit;
  text-decoration: none;
}

.site-footer .footer__info a:hover,
.site-footer .footer__info a:focus-visible {
  color: var(--raon-orange) !important;
  text-decoration: none;
}

.footer__bottom {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 7px;
  padding: 11px 0 14px;
  border-top: 1px solid #303437;
}

.site-footer .footer__copy {
  flex: 0 1 auto;
  grid-area: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border-top: 0 !important;
  order: 2;
  color: #757c80 !important;
  font-size: .62rem;
  line-height: 1.55;
}

.site-footer .footer__copyright {
  display: block;
  margin: 0;
}

.site-footer .footer__copyright > a,
.site-footer .site-footer__copy .footer__copyright > a {
  color: inherit !important;
  text-decoration: none !important;
}

.site-footer .footer__copyright > a:hover,
.site-footer .footer__copyright > a:focus-visible,
.site-footer .site-footer__copy .footer__copyright > a:hover,
.site-footer .site-footer__copy .footer__copyright > a:focus-visible {
  color: #f4f4f2 !important;
  text-decoration: none !important;
}

@media (max-width: 720px) {
  .footer__logo img {
    width: 122px;
  }

  .site-footer .footer__legal-links {
    justify-content: flex-start;
    gap: 7px 9px;
    font-size: .7rem;
  }

  .footer__business {
    display: block;
    padding: 25px 0 20px;
  }

  .footer__logo {
    margin-bottom: 20px;
  }

  .footer__company {
    display: block;
  }

  .site-footer .footer__brand {
    margin-bottom: 14px !important;
  }

  .site-footer .footer__info {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }

  .site-footer .footer__info div {
    grid-column: auto !important;
    grid-row: auto !important;
    font-size: .72rem;
  }

  .site-footer .footer__info div:not(:last-child)::after {
    display: none !important;
  }

  .footer__bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 11px;
    padding: 15px 0 24px;
  }

  .site-footer .footer__legal-links {
    order: 1;
  }

  .site-footer .footer__copy {
    order: 2;
  }
}
