/*
  Rafin CSS ownership model (Phase 3):
  - bootstrap.css: vendor framework baseline.
  - style.css: template/theme baseline and third-party plugin skins.
  - fonts.css: icon/font-face packs.
  - redesign.css: project-owned overrides, components, and route states.
*/

:root {
  --rafin-ink: #1b2733;
  --rafin-muted: #5a6773;
  --rafin-dark: #111a24;
  --rafin-dark-soft: #182433;
  --rafin-surface-white: #ffffff;
  --rafin-surface-warm: #f7f5ef;
  --rafin-surface-cool: #eef2f5;
  --rafin-surface-concrete: #e5e5e5;
  --rafin-surface-ink: #14213d;
  --rafin-surface-charcoal: #0b0f14;
  --rafin-border: rgba(255, 255, 255, 0.14);
  --rafin-accent: #dca205;
  --rafin-focus: 0 0 0 3px rgba(220, 162, 5, 0.38);
  --rafin-ink-wash-soft: rgba(20, 33, 61, 0.04);
  --rafin-ink-wash-strong: rgba(20, 33, 61, 0.1);
  --projects-filter-top: 76px;
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--rafin-ink);
  top: 0 !important;
}

.home-section-tint {
  position: relative;
  background-color: var(--rafin-surface-white);
}

.home-section-tint--plain {
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(229, 229, 229, 0.78) 100%);
}

.home-section-tint--topo {
  background-image:
    radial-gradient(circle at top left, rgba(220, 162, 5, 0.08), transparent 24%),
    linear-gradient(180deg, rgba(247, 245, 239, 0.98) 0%, rgba(229, 229, 229, 0.72) 100%);
}

/* Homepage section background rhythm */
#about.home-section-tint--topo {
  background-color: var(--rafin-surface-warm);
  background-image:
    radial-gradient(circle at 12% 16%, rgba(220, 162, 5, 0.12), transparent 24%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.82) 0%, rgba(247, 245, 239, 0.98) 52%, rgba(239, 235, 227, 0.98) 100%);
}

#about + .section.bg-gray-dark.parallax-container {
  background-color: var(--rafin-surface-charcoal);
}

#about + .section.bg-gray-dark.parallax-container .parallax-content {
  position: relative;
  isolation: isolate;
}

#about + .section.bg-gray-dark.parallax-container .parallax-content::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 0%, rgba(220, 162, 5, 0.16), transparent 34%),
    linear-gradient(180deg, rgba(11, 15, 20, 0.76) 0%, rgba(20, 33, 61, 0.88) 100%);
  pointer-events: none;
  z-index: 0;
}

#about + .section.bg-gray-dark.parallax-container .section-lg {
  position: relative;
  z-index: 1;
}

#services.home-section-tint--plain {
  background-color: var(--rafin-surface-cool);
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.74) 0%, rgba(229, 229, 229, 0.9) 100%);
}

#services + .section-md.bg-accent.text-center {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #14213d 0%, #101825 56%, #0b0f14 100%);
  color: rgba(255, 255, 255, 0.88);
}

#services + .section-md.bg-accent.text-center::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 22%, rgba(220, 162, 5, 0.16), transparent 30%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 100%);
  pointer-events: none;
}

#services + .section-md.bg-accent.text-center > .container {
  position: relative;
  z-index: 1;
}

#services + .section-md.bg-accent.text-center .heading-decorated,
#services + .section-md.bg-accent.text-center .heading-decorated::before {
  color: #fff;
}

#materials.redesign-materials-section {
  background-color: var(--rafin-surface-warm);
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.45) 0%, rgba(247, 245, 239, 1) 100%);
}

#projects.home-projects-section {
  background:
    radial-gradient(circle at top left, rgba(220, 162, 5, 0.07), transparent 30%),
    linear-gradient(180deg, #ffffff 0%, #f3f4f6 100%);
}

#projects + .section-lg.home-section-tint.home-section-tint--topo.text-center {
  background-color: var(--rafin-surface-cool);
  background-image:
    radial-gradient(circle at 84% 18%, rgba(20, 33, 61, 0.07), transparent 22%),
    linear-gradient(180deg, rgba(247, 245, 239, 0.94) 0%, rgba(229, 229, 229, 0.68) 100%);
}

#jobs.homepage-careers-cta {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 16% 24%, rgba(220, 162, 5, 0.08), transparent 22%),
    radial-gradient(circle at 84% 30%, rgba(20, 33, 61, 0.05), transparent 24%),
    linear-gradient(180deg, #f2efe7 0%, #ebe8df 48%, #e7ecef 100%);
}

#jobs.homepage-careers-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.08) 38%, rgba(20, 33, 61, 0.03) 100%);
  pointer-events: none;
}

#jobs.homepage-careers-cta > .container {
  position: relative;
  z-index: 1;
}

#jobs.homepage-careers-cta .homepage-careers-cta__panel {
  border-color: rgba(20, 33, 61, 0.1);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.96) 0%, rgba(245, 242, 234, 0.96) 100%);
  box-shadow: 0 14px 30px rgba(20, 33, 61, 0.08);
}

#news.homepage-news {
  background-color: var(--rafin-surface-warm);
}

#news.homepage-news::before {
  background:
    radial-gradient(circle at top left, rgba(220, 162, 5, 0.12), transparent 28%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(229, 229, 229, 0.62) 100%);
}

#contacts.redesign-contacts-section {
  border-top: 1px solid rgba(20, 33, 61, 0.08);
  background-color: var(--rafin-surface-cool);
  background-image: linear-gradient(180deg, rgba(247, 245, 239, 0.9) 0%, rgba(229, 229, 229, 0.74) 100%);
}

/* Phase 3 shared utilities: inline-style replacements and form anti-spam field styling */
.legacy-browser-warning {
  background: #212121;
  padding: 10px 0;
  box-shadow: 3px 3px 5px 0 rgba(0, 0, 0, 0.3);
  clear: both;
  text-align: center;
  position: relative;
  z-index: 1;
}

.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.ui-to-top,
.ui-to-top.active {
  z-index: 240;
  -webkit-transform: translateY(0);
  transform: translateY(0);
}

.mobile .ui-to-top,
.tablet .ui-to-top {
  display: inline-block !important;
}

a,
button,
input,
textarea,
select {
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: none;
  box-shadow: var(--rafin-focus);
}

@supports not selector(:focus-visible) {

  a:focus,
  button:focus,
  input:focus,
  textarea:focus,
  select:focus {
    outline: none;
    box-shadow: var(--rafin-focus);
  }
}

@media (prefers-reduced-motion: reduce) {

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

.page-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background: transparent;
}

.page-header .rd-navbar-top-panel {
  display: none !important;
}

.page-header .rd-navbar-inner {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
}

.page-header .rd-navbar-brand img {
  width: auto;
  max-height: 50px;
}

.page-header .brand-name {
  display: inline-grid;
  align-items: center;
}

.page-header .brand-name .brand-logo {
  grid-area: 1 / 1;
  transition: opacity 0.3s ease;
}

.page-header .brand-name .brand-logo--default {
  opacity: 1;
}

.page-header .brand-name .brand-logo--blue {
  opacity: 0;
}

.page-header .rd-navbar-fixed .brand-logo--default,
.page-header .rd-navbar-static.rd-navbar--is-stuck .brand-logo--default,
.page-header .rd-navbar-static.rd-navbar--is-clone .brand-logo--default {
  opacity: 0;
}

.page-header .rd-navbar-fixed .brand-logo--blue,
.page-header .rd-navbar-static.rd-navbar--is-stuck .brand-logo--blue,
.page-header .rd-navbar-static.rd-navbar--is-clone .brand-logo--blue {
  opacity: 1;
}

.page-header .rd-navbar-nav>li>a {
  font-size: 14px;
  letter-spacing: 0.09em;
}

.page-header .rd-navbar-nav>li.active>a,
.page-header .rd-navbar-nav>li>a:hover {
  color: var(--rafin-accent);
}

.page-header .rd-navbar-nav>li>.rd-navbar-dropdown {
  min-width: 240px;
  margin-top: 24px;
  padding: 18px 22px;
  border-color: #1f2b38;
  background: #101a24;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.24);
}

.page-header .rd-navbar-dropdown>li+li {
  margin-top: 8px;
}

.page-header .rd-navbar-dropdown>li>a {
  color: rgba(255, 255, 255, 0.9);
  white-space: nowrap;
}

.page-header .rd-navbar-dropdown>li>a:hover {
  color: var(--rafin-accent);
}

.page-header .rd-navbar-aside-right {
  display: flex;
  align-items: center;
  margin-left: auto;
  padding-left: 18px;
}

.page-header .modern-lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.09);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.page-header .modern-lang-switch .lang-toggle-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  padding: 6px 10px;
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  text-decoration: none;
}

.page-header .modern-lang-switch .lang-toggle-item.active {
  color: #111;
  background: var(--rafin-accent);
  box-shadow: 0 6px 14px rgba(211, 154, 41, 0.34);
}

.page-header .modern-lang-switch .lang-toggle-item:hover:not(.active) {
  color: #fff;
  background: rgba(255, 255, 255, 0.16);
}

.rd-navbar-static .rd-navbar-inner {
  min-height: 92px;
  padding-top: 16px;
  padding-bottom: 16px;
}

/* Force navbar and its background to extend edge-to-edge on ultra-wide screens */
.rd-navbar-static.rd-navbar_boxed {
  max-width: 100% !important;
  width: 100% !important;
}

.page-header .rd-navbar-static {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: transparent !important;
  transition: background 0.4s ease;
}

.page-header .rd-navbar-static.rd-navbar_transparent {
  background: transparent !important;
}

/* Phase 12 Header Edge-Alignment for Large Desktop Screens */
@media (min-width: 1200px) {
  .page-header .rd-navbar-static.rd-navbar_boxed .rd-navbar-inner {
    max-width: 100%;
    padding-left: 4vw;
    padding-right: 4vw;
    transition: padding 0.3s ease, min-height 0.3s ease;
  }
}

@media (min-width: 1600px) {
  .page-header .rd-navbar-static.rd-navbar_boxed .rd-navbar-inner {
    padding-left: 6vw;
    padding-right: 6vw;
  }
}

@media (min-width: 1920px) {
  .page-header .rd-navbar-static.rd-navbar_boxed .rd-navbar-inner {
    padding-left: 8vw;
    padding-right: 8vw;
  }
}

.page-header .rd-navbar-static.rd-navbar--is-stuck,
.page-header .rd-navbar-static.rd-navbar--is-clone,
.rd-navbar-static.rd-navbar--is-stuck,
.rd-navbar-static.rd-navbar--is-clone {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: rgba(17, 26, 36, 0.95) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1000;
}

.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner,
.rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner {
  min-height: 74px;
  background: transparent;


}

.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav>li>.rd-navbar-dropdown,
.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav>li>.rd-navbar-dropdown {
  margin-top: 20px;
}

@media (max-width: 1199px) {

  /* Keep mobile fixed navbar in the same project blue used on desktop states */
  .page-header .rd-navbar-fixed .rd-navbar-panel,
  .page-header .rd-navbar-fixed .rd-navbar-nav-wrap,
  .page-header .rd-navbar-fixed .rd-navbar-top-panel__content {
    background: var(--rafin-dark);
  }

  .page-header .rd-navbar-fixed .rd-navbar-nav-wrap,
  .page-header .rd-navbar-fixed .rd-navbar-top-panel__content {
    border-color: rgba(255, 255, 255, 0.14);
  }

  .page-header .rd-navbar-aside-right {
    position: fixed;
    top: 0;
    right: 52px;
    z-index: 1001;
    height: 56px;
    max-width: calc(100vw - 64px);
    margin-left: 0;
    padding-left: 0;
  }

  .page-header .modern-lang-switch {
    padding: 2px;
    border-color: rgba(255, 255, 255, 0.15);
    background: rgba(0, 0, 0, 0.22);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .page-header .modern-lang-switch .lang-toggle-item {
    min-width: 30px;
    padding: 5px 8px;
    font-size: 9px;
  }
}

@media (max-width: 575px) {
  .page-header .rd-navbar-aside-right {
    right: 44px;
    max-width: calc(100vw - 56px);
  }
}

/* Moved from page-level style blocks (Phase 1 centralization) */
.filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-bottom: 30px;
}

.filter-btn {
  margin: 0;
  transition: all 0.3s ease;
}

.filter-btn.active {
  background-color: #212121;
  color: #ffffff;
  border-color: #212121;
}

.empty-state {
  text-align: center;
  padding: 50px 0;
  width: 100%;
  color: #888;
}

.thumb-creative {
  margin-bottom: 30px;
}

.thumb-creative,
.thumb-creative__front,
.thumb-creative__back {
  min-height: 260px;
}

/* Video Hero (Eberhard-inspired) */
.video-hero-section {
  position: relative;
  min-height: max(620px, 88vh);
  display: flex;
  align-items: flex-end;
  background-color: #111a24;
  overflow: hidden;
}

.video-hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.video-hero-bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.video-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(104deg, rgba(8, 13, 18, 0.58) 14%, rgba(8, 13, 18, 0.34) 52%, rgba(8, 13, 18, 0.5) 100%);
  z-index: 2;
}

.video-hero-content {
  position: relative;
  z-index: 3;
  width: 100%;
  padding-top: clamp(150px, 18vh, 220px);
  padding-bottom: clamp(70px, 10vh, 110px);
}

.video-hero-title {
  color: #fff;
  font-size: clamp(2.1rem, 4.6vw, 4.6rem);
  font-weight: 700;
  line-height: 1.08;
  margin-bottom: 20px;
  text-transform: none;
  letter-spacing: -0.01em;
  max-width: 14ch;
}

.video-hero-text {
  color: rgba(255, 255, 255, 0.85);
  font-size: clamp(1rem, 1.55vw, 1.42rem);
  font-weight: 400;
  line-height: 1.55;
  margin-bottom: 30px;
  max-width: 720px;
}

.video-hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

.video-hero-actions .video-hero-button {
  margin-top: 0 !important;
}

.video-hero-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 164px;
  width: 164px;
  min-height: 48px !important;
  height: 48px !important;
  padding: 0 22px !important;
  border-width: 1px;
  font-size: 12px;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.video-hero-button--secondary {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(12, 18, 26, 0.34);
}

.video-hero-button--secondary:hover,
.video-hero-button--secondary:focus-visible {
  color: #dca205;
  border-color: #dca205;
  background: rgba(220, 162, 5, 0.14);
}

@media (max-width: 991px) {
  .video-hero-section {
    min-height: 560px;
  }

  .video-hero-content {
    padding-top: 140px;
    padding-bottom: 54px;
  }
}

@media (max-width: 575px) {
  .video-hero-title,
  .video-hero-text {
    max-width: 100%;
  }

  .video-hero-text {
    margin-bottom: 24px;
  }

  .video-hero-button {
    width: 100%;
    text-align: center;
  }
}

.category-hero {
  --category-hero-image: none;
  background-image: var(--category-hero-image);
  background-color: #212121;
  background-size: cover;
  background-position: center;
  background-attachment: scroll;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.category-hero.category-hero--has-media {
  background-color: transparent;
}

.category-hero.category-hero--fallback {
  background-image: none;
  background-color: #212121;
}

.category-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
}

.category-hero .container {
  position: relative;
  z-index: 2;
}

.project-hero {
  background-color: #101a24;
  min-height: clamp(460px, 74vh, 760px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.project-hero.project-hero--has-image {
  background-color: #0f1721;
}

.project-hero.project-hero--has-video {
  background-color: #0f1721;
}

.project-hero.project-hero--has-color {
  background-color: #14213d;
}

.project-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.project-hero__image-layer {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.02);
  transition: opacity 0.55s ease, transform 0.55s ease;
}

.project-hero__image-layer.project-hero__image-layer--active {
  z-index: 1;
  opacity: 1;
  transform: scale(1);
}

.project-hero__video {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.45s ease;
}

.project-hero__video.project-hero__video--active {
  opacity: 1;
}

.project-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(6, 13, 22, 0.18) 0%, rgba(20, 33, 61, 0.56) 56%, rgba(20, 33, 61, 0.82) 100%);
}

.project-hero .container {
  position: relative;
  z-index: 2;
}

.project-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  max-width: 960px;
  margin: 0 auto;
}

.project-hero__eyebrow {
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.project-hero__selectors {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.project-hero__selectors.project-hero__selectors--active {
  display: flex;
}

.project-hero__selector {
  position: relative;
  width: 84px;
  height: 60px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 16px;
  background: rgba(10, 18, 31, 0.28);
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 16px 28px rgba(6, 12, 20, 0.22);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.project-hero__selector-thumb {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  transition: transform 0.4s ease, opacity 0.4s ease;
}

.project-hero__selector::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 17, 27, 0.02) 0%, rgba(10, 17, 27, 0.58) 100%);
}

.project-hero__selector-index {
  position: absolute;
  right: 10px;
  bottom: 9px;
  z-index: 1;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.project-hero__selector-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 1;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(6, 12, 20, 0.7);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.project-hero__selector.project-hero__selector--active {
  border-color: rgba(252, 163, 17, 0.95);
  box-shadow: 0 0 0 1px rgba(252, 163, 17, 0.45), 0 18px 32px rgba(6, 12, 20, 0.24);
}

.project-hero__selector.project-hero__selector--active .project-hero__selector-thumb,
.project-hero__selector:hover .project-hero__selector-thumb,
.project-hero__selector:focus-visible .project-hero__selector-thumb {
  transform: scale(1.06);
}

.project-info-box {
  background: #f9f9f9;
  padding: 30px;
  border-radius: 5px;
}

.project-info-box h5 {
  margin-bottom: 20px;
}

/* Legacy responsive safeguards migrated from phase9-fixes.css */
#projects {
  padding-top: 0;
  padding-bottom: 0;
}

#projects .container-fluid.container-flex {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

#projects .row.no-gutters {
  flex-wrap: wrap;
  justify-content: flex-start;
}

#projects .col-sm-6 {
  padding: 0;
}

#projects .thumb-creative {
  margin-bottom: 0;
}

#projects .thumb-creative:hover .thumb-creative__image {
  -webkit-transform: translate(-50%, -50%) scale(1.05) !important;
  transform: translate(-50%, -50%) scale(1.05) !important;
}

#projects .thumb-creative__back .thumb-creative__content p {
  background: transparent !important;
  padding: 0 !important;
}

#projects .thumb-creative__back .thumb-creative__content .button-link {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  color: #dca205 !important;
  text-decoration: underline;
  padding: 0 !important;
}

#projects .thumb-creative__back .thumb-creative__content .button-link:hover,
#projects .thumb-creative__back .thumb-creative__content .button-link:focus-visible {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  color: #dca205 !important;
  text-decoration: none;
}

#jobs-container {
  display: flex;
  flex-wrap: wrap;
}

#footer-company-container section {
  padding-top: 50px;
  padding-bottom: 50px;
}

.footer-corporate {
  padding: 15px 0;
}

@media (max-width: 767px) {

  .thumb-creative,
  .thumb-creative__front,
  .thumb-creative__back {
    min-height: 200px;
  }

  .project-hero {
    min-height: 320px;
  }

  .project-info-box {
    margin-top: 30px;
  }
}

@media (max-width: 575px) {
  #projects .col-sm-6 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .filter-btn {
    font-size: 12px;
    padding: 6px 12px;
  }

  #category-title,
  #project-title {
    font-size: 1.5rem !important;
  }

  .project-page .project-hero__selectors {
    gap: 8px;
  }

  #jobs-container .col-md-6 {
    padding-left: 10px;
    padding-right: 10px;
  }
}

/*
  Rafin redesign - Phase 3
  Homepage materials, careers, contacts, certifications, and footer redesign.
*/

.redesign-materials-section {
  position: relative;
  overflow: hidden;
}

.redesign-materials-section::before {
  display: none;
}

.materials-layout {
  display: grid;
  grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
  gap: 34px;
  align-items: start;
  contain: layout paint;
}

.materials-copy {
  position: relative;
  top: 0;
}

.materials-eyebrow {
  margin: 0 0 10px;
  color: var(--rafin-accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.materials-title {
  margin-bottom: 18px;
}

.materials-intro {
  margin-bottom: 16px;
  color: #425264;
  line-height: 1.75;
}

.materials-note {
  margin-bottom: 24px;
  padding: 14px 16px;
  border-left: 3px solid var(--rafin-accent);
  background: #f3f5f8;
  color: #344354;
  font-size: 14px;
  line-height: 1.65;
}

.materials-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.materials-card {
  border: 1px solid #e2e7ef;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 12px 30px rgba(25, 36, 50, 0.08);
  contain: content;
}

.materials-card__media {
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.materials-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.materials-card__body {
  padding: 18px 18px 20px;
}

.materials-card__body h6 {
  margin: 0 0 8px;
  color: #172533;
  font-size: 17px;
}

.materials-card__body p {
  margin: 0;
  color: #4f6072;
  font-size: 14px;
  line-height: 1.65;
}

.materials-card:hover .materials-card__media img,
.materials-card:focus-within .materials-card__media img {
  transform: scale(1.05);
}

.homepage-careers-cta {
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

.homepage-careers-cta__panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 34px 38px;
  border: 1px solid rgba(20, 33, 61, 0.08);
  border-radius: 0;
  background: #fff;
  box-shadow: 0 18px 40px rgba(20, 33, 61, 0.09);
  text-align: left;
}

.homepage-careers-cta__copy {
  max-width: 680px;
}

.homepage-careers-cta__copy .heading-decorated,
.homepage-careers-cta__copy .heading-decorated::before {
  color: #14213d;
}

.homepage-careers-cta__copy p {
  margin-bottom: 0;
  color: #4b5b70;
  line-height: 1.7;
}

.homepage-careers-cta__button {
  flex: 0 0 auto;
  min-width: 240px;
}

.homepage-careers-cta__button:hover,
.homepage-careers-cta__button:focus-visible {
  background-color: #e6950f !important;
  border-color: #e6950f !important;
  color: #000 !important;
}

.homepage-news {
  position: relative;
  overflow: hidden;
}

.homepage-news::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top left, rgba(220, 162, 5, 0.18), transparent 32%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(228, 234, 241, 0.82) 100%);
  pointer-events: none;
}

.homepage-news .container {
  position: relative;
  z-index: 1;
}

.homepage-news__shell {
  padding: 34px;
  border: 1px solid rgba(20, 33, 61, 0.08);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.97) 0%, rgba(245, 248, 252, 0.96) 100%);
  box-shadow: 0 24px 60px rgba(20, 33, 61, 0.1);
}

.homepage-news__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 28px;
}

.homepage-news__heading .heading-decorated,
.homepage-news__heading .heading-decorated::before {
  color: #14213d;
}

.homepage-news__heading .heading-decorated {
  margin-bottom: 0;
}

.homepage-news__archive {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid rgba(20, 33, 61, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  color: #14213d;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-decoration: none;
  text-transform: uppercase;
}

.homepage-news__archive:hover,
.homepage-news__archive:focus-visible {
  color: #111;
  background: var(--rafin-accent);
  border-color: var(--rafin-accent);
  box-shadow: 0 16px 24px rgba(220, 162, 5, 0.2);
}

.homepage-news__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: 22px;
}

.homepage-news-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  border: 1px solid rgba(20, 33, 61, 0.08);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 18px 40px rgba(20, 33, 61, 0.08);
  overflow: hidden;
}

.homepage-news-card__media {
  display: block;
  margin: 0;
  overflow: hidden;
  background: #101a24;
}

.homepage-news-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease, opacity 0.35s ease;
}

.homepage-news-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 12px;
  padding: 22px 22px 24px;
}

.homepage-news-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.homepage-news-card__meta::after {
  content: "";
  width: 44px;
  height: 1px;
  background: rgba(20, 33, 61, 0.16);
}

.homepage-news-card__meta time {
  color: var(--rafin-accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.homepage-news-card__title {
  margin: 0;
  color: #14213d;
  font-size: 24px;
  line-height: 1.2;
}

.homepage-news-card__title a {
  color: inherit;
  text-decoration: none;
}

.homepage-news-card__title a:hover,
.homepage-news-card__title a:focus-visible {
  color: #0f5f8c;
}

.homepage-news-card__body p {
  margin: 0;
  color: #526275;
  line-height: 1.7;
}

.homepage-news-card--featured {
  position: relative;
  min-height: 520px;
  justify-content: flex-end;
  background: #0f1923;
  grid-row: span 2;
}

.homepage-news-card--featured .homepage-news-card__media {
  position: absolute;
  inset: 0;
}

.homepage-news-card--featured .homepage-news-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(15, 25, 35, 0.08) 0%, rgba(15, 25, 35, 0.82) 72%, rgba(15, 25, 35, 0.94) 100%);
}

.homepage-news-card--featured .homepage-news-card__body {
  position: relative;
  z-index: 1;
  justify-content: flex-end;
  min-height: 100%;
  padding: 30px 30px 32px;
}

.homepage-news-card--featured .homepage-news-card__meta::after {
  background: rgba(255, 255, 255, 0.3);
}

.homepage-news-card--featured .homepage-news-card__title,
.homepage-news-card--featured .homepage-news-card__title a,
.homepage-news-card--featured .homepage-news-card__body p {
  color: #fff;
}

.homepage-news-card--featured .homepage-news-card__body p {
  max-width: 38ch;
  color: rgba(255, 255, 255, 0.8);
}

.homepage-news-card--compact {
  display: grid;
  grid-template-columns: minmax(180px, 0.9fr) minmax(0, 1.1fr);
  align-items: stretch;
}

.homepage-news-card--compact .homepage-news-card__media {
  min-height: 100%;
}

.homepage-news-card--compact .homepage-news-card__title {
  font-size: 20px;
}

.homepage-news-card:hover,
.homepage-news-card:focus-within {
  box-shadow: 0 24px 52px rgba(20, 33, 61, 0.14);
}

.homepage-news-card:hover .homepage-news-card__media img,
.homepage-news-card:focus-within .homepage-news-card__media img {
  transform: scale(1.05);
}

.homepage-news-card--featured:hover .homepage-news-card__media img,
.homepage-news-card--featured:focus-within .homepage-news-card__media img {
  opacity: 0.94;
}

@media (max-width: 1199px) {
  .homepage-news__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .homepage-news-card--featured {
    grid-column: 1 / -1;
    grid-row: auto;
    min-height: 460px;
  }

  .homepage-news-card--compact {
    grid-template-columns: minmax(0, 1fr);
  }

  .homepage-news-card--compact .homepage-news-card__media {
    min-height: 220px;
  }
}

@media (max-width: 767px) {
  .homepage-news__shell {
    padding: 24px 18px;
  }

  .homepage-news__header {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 22px;
  }

  .homepage-news__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .homepage-news-card--featured {
    min-height: 420px;
  }

  .homepage-news-card__body,
  .homepage-news-card--featured .homepage-news-card__body {
    padding: 20px;
  }

  .homepage-news-card__title {
    font-size: 22px;
  }

  .homepage-news-card--compact .homepage-news-card__media {
    min-height: 200px;
  }
}

.careers-hero {
  background: var(--rafin-ink);
}

.careers-hero--plain {
  background-image: none;
}

.careers-hero__text {
  max-width: 760px;
  margin: 18px auto 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 16px;
  line-height: 1.75;
}

.careers-hero .heading-decorated,
.careers-hero .heading-decorated::before {
  color: #fff;
}

.careers-hero__button {
  margin-top: 28px;
  min-width: 240px;
}

.careers-hero__button:hover,
.careers-hero__button:focus-visible {
  background-color: #e6950f !important;
  border-color: #e6950f !important;
  color: #000 !important;
}

.careers-listing-section {
  background: linear-gradient(165deg, #111a24 0%, #182433 52%, #1f2f42 100%);
}

.careers-listing-section .heading-decorated,
.careers-listing-section .heading-decorated::before {
  color: #fff;
}

.careers-listing-section__intro {
  max-width: 720px;
  margin: 0 auto 34px;
}

.careers-listing-section__intro p {
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.75;
}

.jobs-filters-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  gap: 16px;
  align-items: end;
  margin-bottom: 28px;
  padding: 18px 20px;
  border: 1px solid var(--rafin-border);
  border-radius: 14px;
  background: rgba(12, 20, 31, 0.52);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.jobs-filter-field label {
  display: block;
  margin-bottom: 7px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.jobs-filter-control {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  background: rgba(9, 16, 24, 0.75);
  color: #fff;
  font-size: 14px;
}

.jobs-filter-control:focus,
.jobs-filter-control:active {
  background: #fff;
  border-color: #fff;
  color: #111a24;
}

.jobs-filter-control option {
  background: #fff;
  color: #111a24;
}

.jobs-filter-control optgroup {
  background: #fff;
  color: #111a24;
}

.jobs-role-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  margin: 0;
  padding: 0 18px;
  border-radius: 10px;
  background: rgba(211, 154, 41, 0.17);
  color: #f3e6c8;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.jobs-role-count strong {
  color: #fff;
  font-size: 20px;
  line-height: 1;
}

.jobs-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(18, 29, 43, 0.78);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.jobs-card__trigger {
  display: flex;
  flex: 1;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.jobs-card__trigger:hover,
.jobs-card__trigger:focus-visible {
  background: transparent !important;
  color: inherit !important;
  border-color: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}

.jobs-card__media {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(37, 52, 69, 0.92), rgba(18, 29, 43, 0.72));
}

.jobs-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--jobs-card-image-position, center);
  transform: scale(var(--jobs-card-image-scale, 1));
  transform-origin: center;
  transition: transform 0.45s ease, object-position 0.45s ease;
}

.jobs-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 18px;
}

.jobs-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}

.jobs-chip {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(211, 154, 41, 0.2);
  color: #ffeac0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.jobs-chip--ghost {
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: transparent;
  color: #d9e1ea;
}

.jobs-card h6 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 20px;
  line-height: 1.35;
}

.jobs-card p {
  margin: 0 0 18px;
  color: rgba(233, 240, 247, 0.82);
  font-size: 14px;
  line-height: 1.65;
}

.jobs-apply-link {
  margin-top: auto;
  color: #f6d484;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.jobs-apply-link:hover,
.jobs-apply-link:focus-visible {
  color: #fff;
}

.jobs-card:hover,
.jobs-card:focus-within {
  transform: translateY(-6px);
  border-color: rgba(211, 154, 41, 0.45);
  box-shadow: 0 22px 42px rgba(0, 0, 0, 0.34);
}

.jobs-card:hover .jobs-card__media img,
.jobs-card:focus-within .jobs-card__media img {
  transform: scale(var(--jobs-card-image-hover-scale, 1.06));
}

.jobs-empty-state {
  max-width: 620px;
  margin: 8px auto 0;
  padding: 28px;
  border: 1px dashed rgba(255, 255, 255, 0.3);
  border-radius: 12px;
  text-align: center;
}

.jobs-empty-state h6 {
  margin-bottom: 10px;
  color: #fff;
}

.jobs-empty-state p {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
}

.careers-page-section {
  padding-top: 96px;
  background: #fff;
}

.career-application-section {
  border-top: 1px solid #e2e8f0;
}

.career-application-section .contacts-layout.career-application-layout {
  grid-template-columns: minmax(0, 1fr);
}

.career-application-form-card {
  width: 100%;
  max-width: none;
}

.careers-page-section .heading-decorated,
.careers-page-section .heading-decorated::before {
  color: #14213d;
}

.careers-page-section__lead {
  margin-bottom: 36px;
  color: #5a6773;
}

.careers-page .jobs-filters-panel {
  border-color: #e1e7ef;
  background: #fff;
  box-shadow: 0 12px 28px rgba(20, 33, 61, 0.08);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.careers-page .jobs-filter-field label {
  color: #5a6773;
}

.careers-page .jobs-filter-control {
  border-color: #d7dfe8;
  background: #fff;
  color: #14213d;
}

.careers-page .jobs-filter-control:focus,
.careers-page .jobs-filter-control:active {
  border-color: #14213d;
  color: #14213d;
}

.careers-page .jobs-role-count {
  background: #f6f8fb;
  color: #5a6773;
}

.careers-page .jobs-role-count strong {
  color: #14213d;
}

.careers-page .jobs-card {
  border-color: #e1e7ef;
  background: #fff;
  box-shadow: 0 12px 30px rgba(20, 33, 61, 0.08);
}

.careers-page .jobs-chip {
  background: rgba(252, 163, 17, 0.16);
  color: #8a5a00;
}

.careers-page .jobs-chip--ghost {
  border-color: #d6dde7;
  color: #415264;
}

.careers-page .jobs-card h6 {
  color: #14213d;
}

.careers-page .jobs-card p {
  color: #5a6773;
}

.careers-page .jobs-apply-link {
  color: #14213d;
}

.careers-page .jobs-card:hover,
.careers-page .jobs-card:focus-within {
  border-color: rgba(20, 33, 61, 0.22);
  box-shadow: 0 18px 34px rgba(20, 33, 61, 0.14);
}

.careers-page .jobs-empty-state {
  border-color: #d7dfe8;
}

.careers-page .jobs-empty-state h6 {
  color: #14213d;
}

.careers-page .jobs-empty-state p {
  color: #5a6773;
}

.jobs-pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
}

.jobs-pagination__button {
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  border: 1px solid #d7dfe8;
  border-radius: 10px;
  background: #fff;
  color: #14213d;
  font-size: 14px;
  font-weight: 700;
  box-shadow: none !important;
}

.jobs-pagination__button:hover,
.jobs-pagination__button:focus-visible,
.jobs-pagination__button.is-active {
  border-color: #14213d !important;
  background: #14213d !important;
  color: #fff !important;
}

@media (max-width: 991px) {
  .homepage-careers-cta__panel {
    flex-direction: column;
    align-items: flex-start;
  }

  .homepage-careers-cta__button {
    min-width: 0;
  }
}

@media (max-width: 767px) {
  .careers-page-section {
    padding-top: 72px;
  }

  .homepage-careers-cta__panel {
    padding: 28px 24px;
  }

  .homepage-careers-cta__button {
    width: 100%;
  }
}

.jobs-modal-open {
  overflow: hidden;
  padding-right: var(--jobs-modal-scrollbar-offset, 0px);
}

.jobs-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 18px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
}

.jobs-modal[hidden] {
  display: none;
}

.jobs-modal.is-active {
  opacity: 1;
  pointer-events: auto;
}

.jobs-modal__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(10, 18, 34, 0.72), rgba(10, 18, 34, 0.86));
  backdrop-filter: blur(6px);
}

.jobs-modal__dialog {
  --jobs-modal-dialog-width: min(1440px, 96vw);
  --jobs-modal-dialog-height: min(64vh, 560px);
  --jobs-modal-media-width: 760px;
  --jobs-modal-content-width: 460px;
  position: relative;
  display: flex;
  width: min(var(--jobs-modal-dialog-width), 96vw);
  height: var(--jobs-modal-dialog-height);
  max-height: calc(100vh - 48px);
  overflow: hidden;
  background: #fff;
  color: #14213d;
  box-shadow: 0 30px 60px rgba(8, 16, 31, 0.28);
  transform: translateY(24px) scale(0.98);
  opacity: 0;
  transition: transform 0.22s ease, opacity 0.22s ease;
}

.jobs-modal.is-active .jobs-modal__dialog {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.jobs-modal__layout {
  display: grid;
  align-items: stretch;
  flex: 1 1 auto;
  grid-template-columns: minmax(0, var(--jobs-modal-media-width)) minmax(360px, var(--jobs-modal-content-width));
  height: 100%;
  min-height: 100%;
}

.jobs-modal__media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  margin: 0;
  height: var(--jobs-modal-dialog-height);
  overflow: hidden;
  background: #fff;
}

.jobs-modal__media::after {
  display: none;
}

.jobs-modal__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: contain;
  object-position: var(--jobs-modal-image-position, center);
  transform: scale(var(--jobs-modal-image-scale, 1));
  transform-origin: center;
}

.jobs-modal__content {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
  min-height: 0;
  height: 100%;
  max-height: var(--jobs-modal-dialog-height);
  padding: 38px 42px 34px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.jobs-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(20, 33, 61, 0.14);
  background: rgba(255, 255, 255, 0.94);
  color: #14213d;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.jobs-modal__close:hover,
.jobs-modal__close:focus-visible {
  background: #fca311;
  border-color: #fca311;
  color: #14213d;
}

.jobs-modal__header h5 {
  margin: 0;
  color: #14213d;
  font-size: 34px;
  line-height: 1.12;
}

.jobs-modal__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

.jobs-modal__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.jobs-modal__fact {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 18px;
  border: 1px solid rgba(20, 33, 61, 0.12);
  background: #f7f8fb;
}

.jobs-modal__fact--wide {
  grid-column: 1 / -1;
}

.jobs-modal__fact span {
  color: #6a7588;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.jobs-modal__fact strong {
  color: #14213d;
  font-size: 16px;
  line-height: 1.5;
}

.jobs-modal__section h6 {
  margin: 0 0 10px;
  color: #14213d;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.jobs-modal__section p {
  margin: 0;
  color: #45546b;
  font-size: 15px;
  line-height: 1.8;
}

.jobs-modal__list {
  margin: 0;
  padding-left: 18px;
  color: #45546b;
}

.jobs-modal__list li {
  margin-bottom: 10px;
  font-size: 15px;
  line-height: 1.7;
}

.jobs-modal__list li:last-child {
  margin-bottom: 0;
}

.jobs-modal__actions {
  display: flex;
  justify-content: flex-start;
  margin-top: auto;
  padding-top: 8px;
}

.jobs-modal__apply {
  min-width: 190px;
  padding: 16px 28px;
  border: 1px solid #fca311;
  background: #fca311;
  color: #14213d;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.jobs-modal__apply:hover,
.jobs-modal__apply:focus-visible {
  background: #14213d;
  border-color: #14213d;
  color: #fff;
}

.certificate-badge {
  width: 146px;
  height: 146px;
  margin: 0 auto;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 10px 25px rgba(20, 34, 47, 0.12);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.certificate-badge__ring {
  fill: #233446;
  font-family: "Montserrat", sans-serif;
  text-transform: lowercase;
}

.certificate-badge__name {
  fill: #0f1720;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
}

.certificate-badge:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 32px rgba(20, 34, 47, 0.18);
}

.redesign-contacts-section {
  border-top: 1px solid #e2e8f0;
}

.contacts-section-header {
  max-width: 760px;
  margin: 0 auto 34px;
}

.contacts-eyebrow {
  margin: 0 0 10px;
  color: var(--rafin-accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.contacts-title {
  margin-bottom: 14px;
}

.contacts-intro {
  margin: 0;
  color: #4e5e70;
  line-height: 1.75;
}

.contacts-layout {
  display: grid;
  grid-template-columns: minmax(0, 390px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.contacts-form-card {
  padding: 24px;
  border: 1px solid #dbe3ee;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(20, 33, 46, 0.09);
}

.contacts-form-card h5 {
  margin-bottom: 18px;
}

.contacts-form-card .form-wrap+.form-wrap {
  margin-top: 14px;
}

.contacts-form-card .form-label,
.contacts-form-card .form-label-outside {
  color: #3f4e5d;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.contacts-form-card .form-input {
  border: 1px solid #cfdae7;
  border-radius: 10px;
  background: #f9fbfd;
}

.contacts-form-card textarea.form-input {
  min-height: 140px;
}

.contacts-form-actions {
  margin-top: 18px;
}

.contacts-form-actions .button {
  width: 100%;
}

.contacts-maps-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.contacts-map-card {
  border: 1px solid #dce4ef;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(21, 34, 48, 0.1);
}

.contacts-map-frame {
  min-height: 250px;
}

.contacts-map-frame iframe {
  width: 100%;
  height: 100%;
  min-height: 250px;
  border: 0;
  pointer-events: none;
}

.contacts-map-copy {
  padding: 14px 16px 16px;
}

.contacts-map-copy h6 {
  margin: 0 0 6px;
  color: #182534;
}

.contacts-map-copy p {
  margin: 0;
  color: #4f6072;
  font-size: 14px;
  line-height: 1.55;
}

.contacts-map-actions {
  margin-top: 14px;
}

.contacts-map-button {
  min-width: 168px;
}

.home-stat-card {
  padding: 6px 0;
}

.redesign-footer-main {
  background: #101924;
  color: rgba(255, 255, 255, 0.86);
}

.footer-brand-wrap p {
  margin: 16px 0 0;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.7;
}

.footer-address-card {
  margin-top: 24px;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
}

.footer-address-card h6 {
  margin-bottom: 8px;
  color: #fff;
}

.footer-address-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 14px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

.footer-social-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.footer-social-list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  color: #fff;
  font-size: 20px;
  text-decoration: none;
  background: rgba(255, 255, 255, 0.06);
}

.footer-social-list a:hover,
.footer-social-list a:focus-visible {
  border-color: var(--rafin-accent);
  background: rgba(211, 154, 41, 0.2);
  color: #fff;
}

.footer-section-head h5 {
  margin-bottom: 16px;
  color: #fff;
}

.footer-departments-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.footer-department-card {
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
}

.footer-department-card h6 {
  margin-bottom: 10px;
  color: #fff;
  font-size: 15px;
  line-height: 1.4;
}

.footer-department-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-department-card li+li {
  margin-top: 7px;
}

.footer-department-card a {
  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
}

.footer-department-card a:hover,
.footer-department-card a:focus-visible {
  color: #fff;
}

.footer-newsletter {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-newsletter h6 {
  margin-bottom: 10px;
  color: #fff;
}

.footer-inline-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.footer-inline-form .form-wrap {
  margin: 0;
}

.footer-inline-form .form-label {
  color: rgba(255, 255, 255, 0.75);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.footer-inline-form .form-input {
  min-height: 48px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.footer-inline-form .button {
  min-height: 48px;
  padding: 0 24px;
  border-radius: 10px;
}

.footer-inline-form .form-input:focus {
  border-color: rgba(211, 154, 41, 0.8);
}

.redesign-footer-bottom {
  background: #0b141d;
}

.redesign-footer-bottom .footer-corporate__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
}

.redesign-footer-bottom .rights {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

@media (max-width: 1199px) {
  .materials-copy {
    position: static;
  }

  .materials-layout,
  .contacts-layout {
    grid-template-columns: 1fr;
  }

  .footer-departments-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991px) {

  .materials-grid,
  .contacts-maps-grid {
    grid-template-columns: 1fr;
  }

  .jobs-filters-panel {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .jobs-role-count {
    width: 100%;
    justify-content: flex-start;
  }

  .jobs-modal {
    align-items: flex-start;
    padding: 18px 14px;
  }

  .jobs-modal__layout {
    grid-template-columns: 1fr;
    height: auto;
    min-height: auto;
  }

  .jobs-modal__media {
    position: relative;
    top: auto;
    align-self: stretch;
    height: auto;
    min-height: 320px;
  }

  .jobs-modal__content {
    height: auto;
    max-height: none;
    padding: 30px 28px 28px;
  }

  .footer-inline-form {
    grid-template-columns: 1fr;
  }

  .footer-inline-form .button {
    width: 100%;
  }
}

@media (max-width: 767px) {

  .materials-card__body,
  .contacts-form-card,
  .contacts-map-copy,
  .footer-department-card {
    padding-left: 14px;
    padding-right: 14px;
  }

  .footer-departments-grid {
    grid-template-columns: 1fr;
  }

  .contacts-map-frame,
  .contacts-map-frame iframe {
    min-height: 220px;
  }

  .jobs-modal__header h5 {
    font-size: 28px;
  }

  .jobs-modal__facts {
    grid-template-columns: 1fr;
  }

  .jobs-modal__fact--wide {
    grid-column: auto;
  }
}

@media (max-width: 575px) {
  .contacts-form-card {
    padding: 18px 16px;
  }

  .jobs-modal {
    padding: 0;
  }

  .jobs-modal__dialog {
    display: block;
    width: 100%;
    height: auto;
    max-height: 100vh;
    overflow-y: auto;
  }

  .jobs-modal__media {
    height: auto;
    min-height: 240px;
  }

  .jobs-modal__content {
    height: auto;
    max-height: none;
    padding: 22px 18px 20px;
  }

  .jobs-modal__header h5 {
    font-size: 24px;
  }

  .jobs-modal__section p,
  .jobs-modal__list li {
    font-size: 14px;
  }

  .redesign-footer-bottom .rights {
    text-align: center;
    line-height: 1.5;
    overflow-wrap: anywhere;
  }
}

@media (prefers-reduced-motion: reduce) {
  .jobs-modal,
  .jobs-modal__dialog,
  .jobs-card,
  .jobs-card__media img {
    transition: none !important;
  }
}

/* Google Translate UI suppression (migrated from phase9-fixes.css). */
.goog-te-banner-frame.skiptranslate,
.goog-te-banner-frame,
#google_translate_element,
.goog-te-balloon-frame,
#goog-gt-tt,
.goog-tooltip,
.goog-tooltip:hover {
  display: none !important;
  visibility: hidden !important;
}

font {
  background-color: transparent !important;
  box-shadow: none !important;
}

/*
  Rafin redesign - Phase 11
  Architectural UI: Sharp edges everywhere (except certificates).
*/

/* Buttons & Controls */
.button,
.btn,
button,
.filter-btn,
.modern-lang-switch,
.lang-toggle-item,
.jobs-filter-control,
.form-input,
.form-control,
input,
select,
textarea,
.jobs-role-count,
.jobs-chip,
.badge,
.tag,
.label,
.footer-social-list a {
  border-radius: 0 !important;
}

/* Cards & Layout Blocks */
.card,
.card-custom,
.materials-card,
.jobs-card,
.project-info-box,
.footer-address-card,
.contacts-form-card,
.contacts-map-card,
.footer-department-card,
.jobs-empty-state,
.jobs-filters-panel,
.rd-navbar-dropdown,
.dropdown-menu,
.modal-content,
.nav-pills>li>a,
.nav-tabs>li>a,
.section-box,
.filter-bar {
  border-radius: 0 !important;
}

/* Make box shadows subtle, clean and architectural instead of soft and fluffy */
.materials-card,
.jobs-card,
.contacts-form-card,
.contacts-map-card,
.rd-navbar-dropdown,
.card-custom,
.project-info-box {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
}

.materials-card:hover,
.jobs-card:hover,
.jobs-card:focus-within {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08) !important;
}

/* Images & Overlays (excluding circular ones explicitly) */
img:not(.certificate-badge):not(.certificate-circle):not(.img-circle):not(.cssload-speeding-wheel),
.overlay,
.category-hero-overlay,
.project-hero-overlay,
.materials-card__media,
.jobs-card__media,
.thumb-creative,
.project-image {
  border-radius: 0 !important;
}

/* Special Overrides - Keep Loaders Working */
.cssload-speeding-wheel {
  border-radius: 50% !important;
}

/*
  Rafin redesign - Phase 4
  Projects overview sticky filter bar and card system.
*/

.projects-page .projects-overview-section {
  position: relative;
  padding-top: 48px;
}

.projects-page .projects-filter-shell {
  position: sticky;
  top: var(--projects-filter-top);
  z-index: 70;
  margin-bottom: 34px;
}

.projects-page .projects-filter-bar {
  border: 1px solid #cfd8e4;
  background: #fff;
  box-shadow: 0 6px 18px rgba(16, 31, 48, 0.08);
}

.projects-page .projects-filter-bar__inner {
  display: grid;
  grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  padding: 16px 18px;
}

.projects-page .projects-filter-bar__meta {
  padding-right: 18px;
  border-right: 1px solid #dbe3ee;
}

.projects-page .projects-filter-bar__label {
  margin: 0 0 4px;
  color: #6b7b8d;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.projects-page .projects-filter-bar__count {
  margin: 0;
  color: #1a2a3a;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.projects-page .projects-filter-bar__count strong {
  margin-right: 6px;
  color: #101b26;
  font-size: 18px;
}

.projects-page .projects-filter-bar__actions {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.projects-page .projects-filter-btn {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid #d5dde8;
  background: #fff;
  color: #273645;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: all 0.3s ease !important;
}

.projects-page .projects-filter-btn:hover,
.projects-page .projects-filter-btn:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
  border-color: #111a24;
  background-color: #111a24;
  color: #fff;
}

.projects-page .projects-filter-btn.active {
  border-color: #0f1e2d;
  background: #0f1e2d;
  color: #fff;
}

.projects-page .projects-grid {
  margin-top: 0;
}

.projects-page .project-card-item {
  display: flex;
}

.projects-page .project-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  border: 1px solid #d5dde8;
  background: #fff;
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.projects-page .project-card__media {
  display: block;
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-bottom: 1px solid #dbe3ee;
}

.projects-page .project-card__media--empty {
  background:
    linear-gradient(160deg, rgba(20, 33, 61, 0.1) 0%, rgba(20, 33, 61, 0.02) 100%),
    #f4f6f9;
}

.projects-page .project-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.projects-page .project-card__media-placeholder {
  display: block;
  width: 100%;
  height: 100%;
}

.projects-page .project-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  padding: 16px 16px 18px;
}

.projects-page .project-card__category {
  margin: 0;
  color: #6f7e8f;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.projects-page .project-card__title {
  margin: 0;
  color: #101c28;
  font-size: 20px;
  line-height: 1.35;
}

.projects-page .project-card__title a {
  color: inherit;
  text-decoration: none;
}

.projects-page .project-card__title a:hover,
.projects-page .project-card__title a:focus-visible {
  color: #0a4978;
}

.projects-page .project-card__excerpt {
  margin: 0;
  color: #415264;
  line-height: 1.65;
}

.projects-page .project-card__link {
  margin-top: auto;
  color: #0f2841;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
}

.projects-page .project-card__link:hover,
.projects-page .project-card__link:focus-visible {
  color: #d39a29;
}

.projects-page .project-card:hover,
.projects-page .project-card:focus-within {
  border-color: #0f2335;
  box-shadow: 0 12px 26px rgba(14, 28, 41, 0.12);
  transform: translateY(-4px);
}

.projects-page .project-card:hover .project-card__media img,
.projects-page .project-card:focus-within .project-card__media img {
  transform: scale(1.05);
}

.projects-page .projects-empty-state {
  padding: 26px 20px;
  border: 1px dashed #bcc8d6;
  color: #5a6b7d;
  text-align: center;
}

.projects-page .projects-pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
}

.projects-page .projects-pagination__button {
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  border: 1px solid #d7dfe8;
  border-radius: 10px;
  background: #fff;
  color: #14213d;
  font-size: 14px;
  font-weight: 700;
  box-shadow: none !important;
}

.projects-page .projects-pagination__button:hover,
.projects-page .projects-pagination__button:focus-visible,
.projects-page .projects-pagination__button.is-active {
  border-color: #14213d !important;
  background: #14213d !important;
  color: #fff !important;
}

@media (max-width: 1199px) {
  .projects-page .projects-filter-shell {
    top: var(--projects-filter-top);
  }

  .projects-page .projects-filter-bar__inner {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .projects-page .projects-filter-bar__meta {
    padding-right: 0;
    padding-bottom: 10px;
    border-right: 0;
    border-bottom: 1px solid #dbe3ee;
  }
}

@media (max-width: 767px) {
  .projects-page .projects-overview-section {
    padding-top: 32px;
  }

  .projects-page .projects-filter-shell {
    margin-bottom: 26px;
  }

  .projects-page .projects-filter-bar__inner {
    padding: 14px;
  }

  .projects-page .project-card__content {
    padding: 14px;
  }

  .projects-page .project-card__title {
    font-size: 18px;
  }
}

/*
  Rafin redesign - Phase 5
  Category page alignment to Projects card system.
*/

.category-page .category-hero {
  width: 100%;
  min-height: 430px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-position: center;
  background-size: cover;
}

.category-page .category-hero-overlay {
  background: linear-gradient(180deg, rgba(7, 14, 22, 0.36) 0%, rgba(7, 14, 22, 0.62) 100%);
}

.category-page .category-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
}

.category-page .category-hero__eyebrow {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.84);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.category-page .category-hero .heading-decorated {
  margin-bottom: 0;
  color: #fff;
}

.category-page .category-description-section {
  padding-top: 44px;
  padding-bottom: 34px;
  border-bottom: 1px solid #dbe3ee;
}

.category-page .category-description-section--hidden {
  display: none;
}

.category-page .category-description {
  margin: 0;
  color: #415264;
  font-size: 17px;
  line-height: 1.78;
}

.category-page .category-projects-section {
  padding-top: 34px;
}

.category-page .projects-grid {
  margin-top: 0;
}

@media (max-width: 767px) {
  .category-page .category-hero {
    min-height: 350px;
  }

  .category-page .category-description {
    font-size: 15px;
  }

  .category-page .category-projects-section {
    padding-top: 26px;
  }
}

/*
  Rafin redesign - Phase 6
  Project detail alignment and same-category previous/next blocks.
*/

.project-page .project-hero__content {
  width: 100%;
  position: relative;
  z-index: 2;
  padding-top: clamp(170px, 22vh, 250px);
  padding-bottom: clamp(42px, 9vh, 92px);
  text-align: left;
}

.project-page .project-hero .container {
  width: 100%;
}

.project-page .project-hero__title {
  margin-bottom: 0;
  color: #fff;
  text-transform: none;
  font-size: clamp(2rem, 4.8vw, 5rem);
  line-height: 1.02;
  letter-spacing: -0.025em;
  max-width: 18ch;
}

.project-page .project-hero__eyebrow[hidden] {
  display: none;
}

.project-page .project-hero__inner {
  align-items: flex-start;
  width: min(100%, 1180px);
  margin: 0;
  text-align: left;
}

.project-page .project-hero__eyebrow {
  font-size: clamp(0.68rem, 0.62rem + 0.25vw, 0.9rem);
  letter-spacing: 0.2em;
}

.project-page .project-hero__title.heading-decorated::before {
  margin-left: 0;
  margin-right: 0;
}

.project-page .project-hero__selectors {
  margin-top: 8px;
  justify-content: flex-start;
  width: min(100%, 960px);
}

.project-page .project-hero__selector {
  width: clamp(82px, 8vw, 118px);
  height: clamp(62px, 6vw, 84px);
}

.project-page .project-excerpt {
  display: none;
}

.project-page .project-excerpt.project-excerpt--visible {
  display: block;
}

.project-page .project-description {
  margin-top: 20px;
  color: #415264;
  font-size: 17px;
  line-height: 1.78;
}

.project-page .project-info-list {
  margin-top: 15px;
}

.project-page .project-info-box.project-info-box--hidden {
  display: none;
}

.project-page .project-info-item {
  display: none;
  margin-bottom: 10px;
  color: #3c4e5f;
  font-size: 14px;
  letter-spacing: 0.02em;
}

.project-page .project-info-item.project-info-item--visible {
  display: list-item;
}

.project-page .project-detail-nav-section {
  padding-top: 0;
}

.project-page .project-detail-nav {
  display: none;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  padding-top: 30px;
  border-top: 1px solid #dbe3ee;
}

.project-page .project-detail-nav.project-detail-nav--active {
  display: grid;
}

.project-page .project-detail-nav-card {
  display: none;
  flex-direction: column;
  justify-content: center;
  min-height: 146px;
  padding: 24px 26px;
  border: 1px solid #d5dde8;
  background: #fff;
  text-decoration: none;
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.project-page .project-detail-nav-card.project-detail-nav-card--active {
  display: flex;
}

.project-page .project-detail-nav-card:hover,
.project-page .project-detail-nav-card:focus-visible {
  border-color: #b9c8da;
  box-shadow: 0 6px 18px rgba(16, 31, 48, 0.1);
  transform: translateY(-2px);
}

.project-page .project-detail-nav-card__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  color: #6b7b8d;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.project-page .project-detail-nav-card__title {
  margin: 0 0 8px;
  color: #122235;
  font-size: 21px;
  line-height: 1.3;
}

.project-page .project-detail-nav-card__meta {
  margin: 0;
  color: #6b7b8d;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.project-page .nav-category {
  display: none;
}

.project-page .nav-category.nav-category--visible {
  display: block;
}

.project-page .project-detail-nav-card--next {
  text-align: right;
}

.project-page .project-detail-nav-card--next .project-detail-nav-card__eyebrow {
  justify-content: flex-end;
}

.project-page .project-detail-nav-all {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  padding: 14px 16px;
  border: 1px solid #d5dde8;
  background: #fff;
  color: #273645;
  text-decoration: none;
  gap: 8px;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease;
}

.project-page .project-detail-nav-all .icon {
  font-size: 18px;
}

.project-page .all-projects-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  text-align: center;
}

.project-page .project-detail-nav-all:hover,
.project-page .project-detail-nav-all:focus-visible {
  border-color: #b9c8da;
  box-shadow: 0 6px 18px rgba(16, 31, 48, 0.1);
  color: #101b26;
}

@media (max-width: 991px) {
  .project-page .project-detail-nav {
    grid-template-columns: 1fr;
  }

  .project-page .project-detail-nav-all {
    order: -1;
    min-height: 74px;
    flex-direction: row;
    justify-content: center;
  }

  .project-page .project-detail-nav-card--next {
    text-align: left;
  }

  .project-page .project-detail-nav-card--next .project-detail-nav-card__eyebrow {
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .project-page .project-description {
    font-size: 15px;
  }

  .project-page .project-hero__content {
    padding-top: 150px;
    padding-bottom: 34px;
  }

  .project-page .project-hero__inner {
    gap: 14px;
    width: 100%;
  }

  .project-page .project-hero__selector {
    width: 76px;
    height: 58px;
    border-radius: 14px;
  }

  .project-page .project-hero__title {
    max-width: 100%;
    font-size: clamp(1.75rem, 8.5vw, 2.8rem);
    line-height: 1.08;
  }

  .project-page .project-hero__selectors {
    width: 100%;
    gap: 10px;
  }

  .project-page .project-detail-nav-card {
    min-height: 130px;
    padding: 20px 18px;
  }

  .project-page .project-detail-nav-card__title {
    font-size: 18px;
  }
}

/* Recovered Changes: Button Hover & Smooth Image Scrolling */
.btn,
.button:not(.button-link):not(.video-hero-button),
button,
.filter-btn {
  transition: all 0.3s ease !important;
}

.btn:hover,
.button:not(.button-link):not(.video-hero-button):hover,
button:hover,
.filter-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
  background-color: #111a24 !important;
  border-color: #111a24 !important;
  color: #fff !important;
}

.project-page .project-hero__selector:hover,
.project-page .project-hero__selector:focus-visible,
.project-page .project-hero__selector.project-hero__selector--active {
  background: rgba(10, 18, 31, 0.28) !important;
  color: #fff !important;
}

.project-page .project-hero__selector:hover,
.project-page .project-hero__selector:focus-visible {
  border-color: rgba(252, 163, 17, 0.75) !important;
  box-shadow: 0 18px 32px rgba(6, 12, 20, 0.24) !important;
}

.project-page .project-hero__selector.project-hero__selector--active {
  border-color: rgba(252, 163, 17, 0.95) !important;
  box-shadow: 0 0 0 1px rgba(252, 163, 17, 0.45), 0 18px 32px rgba(6, 12, 20, 0.24) !important;
}

.footer-inline-form .button:hover {
  background-color: #fff !important;
  border-color: #fff !important;
  color: #111a24 !important;
}

/* Services icons hover follows the same blue as button hover */
.desktop #services .blurb-circle .blurb-circle__icon .icon::after {
  background: #111a24;
}

/* Smooth Image Scrolling/Scaling */
img:not(.certificate-badge):not(.certificate-circle):not(.img-circle):not(.cssload-speeding-wheel) {
  transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
}

.card:hover img,
.materials-card:hover img,
.jobs-card:hover img,
.project-card:hover img,
.thumb-creative:hover img {
  transform: scale(1.05) !important;
}

/*
  Laptop/Desktop header sizing.
  Covers the common 14-inch browser width range where the default header was reading too small.
*/
@media (min-width: 1200px) and (max-width: 1599px) {
  .page-header .rd-navbar-brand img {
    width: 144px;
    max-height: none;
  }

  .page-header .rd-navbar-nav>li>a {
    font-size: 15px;
    letter-spacing: 0.09em;
  }

  .page-header .modern-lang-switch .lang-toggle-item {
    min-width: 36px;
    padding: 7px 11px;
    font-size: 11px;
  }

  .rd-navbar-static .rd-navbar-inner {
    min-height: 98px;
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner,
  .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner {
    min-height: 78px;
  }
}

/*
  Large desktop scaling overrides.
  Declared late so they win against baseline navbar/theme rules.
*/
@media (min-width: 1600px) {
  .container {
    max-width: min(92vw, 1560px);
    padding-left: 30px;
    padding-right: 30px;
  }

  .page-header .rd-navbar-brand img {
    width: 146px;
    max-height: none;
  }

  .page-header .rd-navbar-nav>li>a {
    font-size: 14px;
    letter-spacing: 0.09em;
  }

  .page-header .modern-lang-switch .lang-toggle-item {
    min-width: 38px;
    padding: 7px 12px;
    font-size: 11px;
  }

  .rd-navbar-static .rd-navbar-inner {
    min-height: 98px;
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner,
  .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner {
    min-height: 76px;
  }

  .projects-page .projects-filter-bar__inner {
    grid-template-columns: minmax(0, 250px) minmax(0, 1fr);
    gap: 22px;
    padding: 18px 22px;
  }

  .projects-page .projects-filter-bar__meta {
    padding-right: 22px;
  }

  .project-page .project-detail-nav {
    gap: 20px;
  }
}

@media (min-width: 1920px) {
  .container {
    max-width: min(90vw, 1760px);
    padding-left: 34px;
    padding-right: 34px;
  }

  .page-header .rd-navbar-brand img {
    width: 168px;
    max-height: none;
  }

  .page-header .rd-navbar-nav>li>a {
    font-size: 15px;
  }

  .page-header .modern-lang-switch .lang-toggle-item {
    min-width: 40px;
    padding: 8px 13px;
    font-size: 12px;
  }

  .rd-navbar-static .rd-navbar-inner {
    min-height: 108px;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner,
  .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner {
    min-height: 82px;
  }

  .materials-layout {
    grid-template-columns: minmax(0, 400px) minmax(0, 1fr);
    gap: 40px;
  }

  .footer-departments-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 2560px) {
  .container {
    max-width: min(92vw, 4200px);
    padding-left: 56px;
    padding-right: 56px;
  }

  body {
    font-size: 18px;
    line-height: 1.7;
  }

  .page-header .rd-navbar-nav>li>a {
    font-size: 22px;
  }

  .page-header .rd-navbar-nav>li>.rd-navbar-dropdown {
    min-width: 320px;
    padding: 22px 26px;
  }

  .page-header .rd-navbar-dropdown>li>a {
    font-size: 18px;
    line-height: 1.45;
    padding-top: 8px;
    padding-bottom: 8px;
  }

  .page-header .modern-lang-switch .lang-toggle-item {
    min-width: 52px;
    padding: 10px 16px;
    font-size: 14px;
  }

  /* About section: keep copy left and image right on extreme zoom-out */
  #about .row.justify-content-md-center {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 48px;
    align-items: center;
  }

  #about .row.justify-content-md-center>div:first-child {
    order: 1;
    width: 100%;
    max-width: none;
  }

  #about .row.justify-content-md-center>div:last-child {
    order: 2;
    width: 100%;
    max-width: none;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    justify-self: end;
    align-self: center;
  }

  #about .row.justify-content-md-center>div:last-child img {
    display: block;
    width: 100%;
    max-width: 980px;
    height: auto;
  }

  /* Stats section: larger, taller and easier to read at 33% zoom-out */
  #home-stats-container {
    padding-top: 30px;
    padding-bottom: 30px;
  }

  #home-stats-container .home-stat-card {
    min-height: 250px;
    padding: 22px 0;
  }

  #home-stats-container .counter {
    font-size: clamp(68px, 3.4vw, 120px);
    line-height: 1.04;
    font-weight: 700;
  }

  #home-stats-container .box-counter__title {
    font-size: 22px;
    line-height: 1.5;
    margin-top: 16px;
    letter-spacing: 0.04em;
  }

  .rd-navbar-static .rd-navbar-inner {
    min-height: 124px;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner,
  .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner {
    min-height: 96px;
  }

  .video-hero-section {
    min-height: max(900px, 86vh);
    align-items: center;
  }

  .video-hero-content {
    padding-top: 150px;
    padding-bottom: 120px;
  }

  .video-hero-title {
    font-size: clamp(3.35rem, 3.5vw, 6.2rem);
    max-width: 16ch;
  }

  .video-hero-text {
    font-size: clamp(1.45rem, 1.35vw, 2.35rem);
    max-width: 980px;
    margin-bottom: 42px;
  }

  .video-hero-actions {
    gap: 18px;
  }

  .video-hero-button {
    min-width: 228px;
    width: 228px;
    min-height: 62px !important;
    height: 62px !important;
    font-size: 16px;
  }

  .heading-decorated {
    font-size: clamp(2.1rem, 1.65vw, 3.4rem);
  }

  .materials-eyebrow,
  .contacts-eyebrow,
  .jobs-filter-field label,
  .projects-page .projects-filter-bar__label,
  .projects-page .project-card__category,
  .jobs-chip,
  .jobs-apply-link {
    font-size: 14px;
  }

  .materials-intro,
  .materials-note,
  #about p:not(.heading-6),
  #services .blurb p,
  #testimonials .quote-default__cite,
  #news p,
  .materials-card__body p,
  .jobs-card p,
  .contacts-intro,
  .contacts-form-card p,
  .contacts-map-copy p,
  .footer-address-card p,
  .footer-brand-wrap p,
  .footer-newsletter p,
  .redesign-footer-bottom .rights,
  .footer-department-card a,
  .project-page .project-detail-nav-card__meta,
  .project-page .project-description,
  .project-page .project-excerpt,
  .project-page .project-info-item {
    font-size: 24px;
    line-height: 1.85;
  }

  .materials-card__body h6,
  .jobs-card h6,
  #services .blurb .heading-6 a,
  .projects-page .project-card__title,
  .project-page .project-detail-nav-card__title,
  .project-page .project-info-box h5,
  .footer-department-card h6,
  .footer-newsletter h6,
  .contacts-map-copy h6,
  .contacts-form-card h5,
  .footer-section-head h5 {
    font-size: 32px;
    line-height: 1.35;
  }

  .contacts-form-card .form-label,
  .contacts-form-card .form-label-outside,
  .contacts-form-card .form-input,
  .footer-inline-form .form-label,
  .footer-inline-form .form-input,
  .jobs-filter-control,
  .projects-page .projects-filter-btn,
  .projects-page .projects-filter-bar__count {
    font-size: 21px;
  }

  .projects-page .projects-filter-bar__count strong {
    font-size: 32px;
  }

  .contacts-layout {
    grid-template-columns: minmax(0, 600px) minmax(0, 1fr);
    gap: 36px;
  }

  .contacts-form-card .form-input,
  .footer-inline-form .form-input {
    min-height: 64px;
  }

  .contacts-form-card textarea.form-input {
    min-height: 220px;
  }

  .contacts-form-actions .button,
  .footer-inline-form .button {
    min-height: 64px;
    font-size: 21px !important;
  }

  .contacts-map-frame,
  .contacts-map-frame iframe {
    min-height: 360px;
  }

  .footer-department-card {
    padding: 20px;
  }

  .footer-social-list a {
    width: 58px;
    height: 58px;
    font-size: 24px;
  }

  .project-page .project-info-item {
    margin-bottom: 14px;
  }

  .project-page .project-description {
    margin-top: 28px;
  }

  .certificate-badge {
    width: 220px;
    height: 220px;
  }

  #certificates-container .col-lg-2 {
    flex: 0 0 20%;
    max-width: 20%;
  }
}

@media (min-width: 3200px) {
  .container {
    max-width: min(94vw, 5200px);
    padding-left: 72px;
    padding-right: 72px;
  }

  body {
    font-size: 20px;
  }

  .page-header .rd-navbar-nav>li>a {
    font-size: 24px;
  }

  .page-header .rd-navbar-nav>li>.rd-navbar-dropdown {
    min-width: 340px;
    padding: 24px 28px;
  }

  .page-header .rd-navbar-dropdown>li>a {
    font-size: 19px;
    line-height: 1.45;
    padding-top: 9px;
    padding-bottom: 9px;
  }

  .video-hero-title {
    font-size: clamp(4rem, 3.35vw, 7.1rem);
  }

  .video-hero-text {
    font-size: clamp(1.7rem, 1.25vw, 2.8rem);
  }

  #about .row.justify-content-md-center {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: 56px;
  }

  #about .row.justify-content-md-center>div:last-child img {
    max-width: 1120px;
  }

  #home-stats-container {
    padding-top: 38px;
    padding-bottom: 38px;
  }

  #home-stats-container .home-stat-card {
    min-height: 290px;
    padding: 30px 0;
  }

  #home-stats-container .counter {
    font-size: clamp(84px, 3.6vw, 148px);
  }

  #home-stats-container .box-counter__title {
    font-size: 26px;
    margin-top: 18px;
  }

  .video-hero-button {
    min-width: 250px;
    width: 250px;
    min-height: 68px !important;
    height: 68px !important;
    font-size: 18px;
  }

  .materials-card__body h6,
  .jobs-card h6,
  #services .blurb .heading-6 a,
  .projects-page .project-card__title,
  .project-page .project-detail-nav-card__title,
  .project-page .project-info-box h5,
  .footer-department-card h6,
  .footer-newsletter h6,
  .contacts-map-copy h6,
  .contacts-form-card h5,
  .footer-section-head h5 {
    font-size: 36px;
    line-height: 1.35;
  }

  .materials-intro,
  .materials-note,
  #about p:not(.heading-6),
  #services .blurb p,
  #testimonials .quote-default__cite,
  #news p,
  .materials-card__body p,
  .jobs-card p,
  .contacts-intro,
  .contacts-form-card p,
  .contacts-map-copy p,
  .footer-address-card p,
  .footer-brand-wrap p,
  .footer-newsletter p,
  .redesign-footer-bottom .rights,
  .footer-department-card a,
  .project-page .project-detail-nav-card__meta,
  .project-page .project-description,
  .project-page .project-excerpt,
  .project-page .project-info-item {
    font-size: 27px;
    line-height: 1.9;
  }

  .contacts-form-card .form-label,
  .contacts-form-card .form-label-outside,
  .contacts-form-card .form-input,
  .footer-inline-form .form-label,
  .footer-inline-form .form-input,
  .jobs-filter-control,
  .projects-page .projects-filter-btn,
  .projects-page .projects-filter-bar__count {
    font-size: 24px;
  }

  .projects-page .projects-filter-bar__count strong {
    font-size: 38px;
  }

  .contacts-layout {
    grid-template-columns: minmax(0, 700px) minmax(0, 1fr);
  }

  .contacts-form-card .form-input,
  .footer-inline-form .form-input {
    min-height: 72px;
  }

  .contacts-form-card textarea.form-input {
    min-height: 260px;
  }

  .contacts-form-actions .button,
  .footer-inline-form .button {
    min-height: 72px;
    font-size: 24px !important;
  }

  .contacts-map-frame,
  .contacts-map-frame iframe {
    min-height: 430px;
  }

  .footer-social-list a {
    width: 64px;
    height: 64px;
    font-size: 28px;
  }

  .certificate-badge {
    width: 250px;
    height: 250px;
  }

  #certificates-container .col-lg-2 {
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
  }
}

@media (min-width: 3840px) {
  .page-header .rd-navbar-nav>li>a {
    font-size: 25px;
  }

  .page-header .rd-navbar-nav>li>.rd-navbar-dropdown {
    min-width: 360px;
    padding: 26px 30px;
  }

  .page-header .rd-navbar-dropdown>li>a {
    font-size: 20px;
    line-height: 1.5;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  #about .row.justify-content-md-center>div:last-child img {
    max-width: 1260px;
  }

  #home-stats-container .home-stat-card {
    min-height: 320px;
  }

  #home-stats-container .counter {
    font-size: clamp(98px, 3.7vw, 168px);
  }

  #home-stats-container .box-counter__title {
    font-size: 30px;
  }
}

@media (min-width: 3840px) {
  .materials-intro,
  .materials-note,
  #about p:not(.heading-6),
  #services .blurb p,
  #testimonials .quote-default__cite,
  #news p,
  .materials-card__body p,
  .jobs-card p,
  .contacts-intro,
  .contacts-form-card p,
  .contacts-map-copy p,
  .footer-address-card p,
  .footer-brand-wrap p,
  .footer-newsletter p,
  .redesign-footer-bottom .rights,
  .footer-department-card a,
  .project-page .project-detail-nav-card__meta,
  .project-page .project-description,
  .project-page .project-excerpt,
  .project-page .project-info-item {
    font-size: 31px;
    line-height: 1.95;
  }

  .materials-card__body h6,
  .jobs-card h6,
  #services .blurb .heading-6 a,
  .projects-page .project-card__title,
  .project-page .project-detail-nav-card__title,
  .project-page .project-info-box h5,
  .footer-department-card h6,
  .footer-newsletter h6,
  .contacts-map-copy h6,
  .contacts-form-card h5,
  .footer-section-head h5 {
    font-size: 42px;
  }

  .contacts-form-card .form-label,
  .contacts-form-card .form-label-outside,
  .contacts-form-card .form-input,
  .footer-inline-form .form-label,
  .footer-inline-form .form-input {
    font-size: 27px;
  }
}

/*
  Homepage projects showcase
  Inspired by the approved tabbed reference while preserving the static HTML/CSS/JS architecture.
*/

.home-projects-section {
  position: relative;
  padding: 112px 0 120px;
  background:
    radial-gradient(circle at top left, rgba(252, 163, 17, 0.08), transparent 34%),
    linear-gradient(180deg, #f4f7fb 0%, #eef3f8 100%);
}

.home-projects-showcase {
  max-width: 1240px;
  margin: 0 auto;
}

.home-projects-showcase__intro {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

.home-projects-showcase__eyebrow,
.home-projects-showcase__content-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 8px 16px;
  border: 1px solid rgba(20, 33, 61, 0.14);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.82);
  color: #14213D;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.home-projects-showcase__title {
  margin: 18px 0 14px;
  color: #14213D;
  font-size: clamp(2rem, 2.4vw, 3.35rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-transform: none;
}

.home-projects-showcase__description {
  margin: 0;
  color: #536273;
  font-size: 16px;
  line-height: 1.8;
}

.home-projects-showcase__tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 34px;
}

.home-projects-showcase__tab {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 12px 18px;
  border: 1px solid rgba(20, 33, 61, 0.12);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.88);
  color: #14213D;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  box-shadow: 0 14px 28px rgba(20, 33, 61, 0.05);
}

#projects .home-projects-showcase__tab:hover,
#projects .home-projects-showcase__tab:focus-visible {
  background: rgba(20, 33, 61, 0.08) !important;
  border-color: rgba(20, 33, 61, 0.2) !important;
  color: #14213D !important;
}

#projects .home-projects-showcase__tab.is-active,
#projects .home-projects-showcase__tab.is-active:hover,
#projects .home-projects-showcase__tab.is-active:focus-visible {
  background: #14213D !important;
  border-color: #14213D !important;
  color: #FFFFFF !important;
  box-shadow: 0 18px 36px rgba(20, 33, 61, 0.18);
}

.home-projects-showcase__tab-label {
  display: block;
}

.home-projects-showcase__panel {
  margin-top: 28px;
}

.home-projects-showcase__panel.is-switching .home-projects-showcase__panel-card {
  opacity: 0;
  transform: translateY(14px) scale(0.985);
}

.home-projects-showcase__panel-card {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 34px;
  align-items: center;
  padding: 34px;
  border: 1px solid rgba(20, 33, 61, 0.08);
  border-radius: 0;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 246, 251, 0.98) 100%);
  box-shadow: 0 28px 60px rgba(20, 33, 61, 0.1);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.home-projects-showcase__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.home-projects-showcase__content-title {
  margin: 18px 0 16px;
  color: #14213D;
  font-size: clamp(1.95rem, 2.6vw, 3.6rem);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -0.02em;
  text-transform: none;
}

.home-projects-showcase__content-text {
  margin: 0;
  color: #4f6072;
  font-size: 16px;
  line-height: 1.85;
}

.home-projects-showcase__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
}

.home-projects-showcase__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 14px 22px;
  border-radius: 0;
  border: 1px solid transparent;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.home-projects-showcase__cta--primary {
  background: #DCA205;
  border-color: #DCA205;
  color: #000000;
  box-shadow: 0 18px 34px rgba(220, 162, 5, 0.24);
}

.home-projects-showcase__cta--secondary {
  background: transparent;
  border-color: rgba(20, 33, 61, 0.16);
  color: #14213D;
}

.home-projects-showcase__cta:hover,
.home-projects-showcase__cta:focus-visible {
  transform: translateY(-2px);
  text-decoration: none;
}

.home-projects-showcase__cta--primary:hover,
.home-projects-showcase__cta--primary:focus-visible {
  background: #E6950F;
  border-color: #E6950F;
  color: #000000;
  box-shadow: 0 20px 38px rgba(230, 149, 15, 0.3);
}

.home-projects-showcase__cta--secondary:hover,
.home-projects-showcase__cta--secondary:focus-visible {
  background: rgba(20, 33, 61, 0.06);
  border-color: rgba(20, 33, 61, 0.22);
  color: #14213D;
  box-shadow: 0 16px 30px rgba(20, 33, 61, 0.08);
}

.home-projects-showcase__cta:hover .home-projects-showcase__cta-arrow,
.home-projects-showcase__cta:focus-visible .home-projects-showcase__cta-arrow {
  transform: translateX(4px);
}

.home-projects-showcase__cta-arrow {
  font-size: 16px;
  line-height: 1;
  transition: transform 0.25s ease;
}

.home-projects-showcase__media {
  min-width: 0;
}

.home-projects-showcase__image-frame {
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  background: #dfe5ec;
  box-shadow: 0 26px 46px rgba(15, 23, 38, 0.16);
}

.home-projects-showcase__image-frame img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

.home-projects-showcase__panel-card:hover .home-projects-showcase__image-frame img,
.home-projects-showcase__panel-card:focus-within .home-projects-showcase__image-frame img {
  transform: scale(1.04);
}

@media (min-width: 768px) {
  #about .row.justify-content-md-center {
    align-items: center;
  }

  #about .row.justify-content-md-center > div:last-child {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    align-self: center;
  }

  #about .row.justify-content-md-center > div:last-child img {
    display: block;
    margin-left: auto;
    margin-right: 0;
  }
}

@media (max-width: 991px) {
  .home-projects-section {
    padding: 88px 0 96px;
  }

  .home-projects-showcase__panel-card {
    grid-template-columns: 1fr;
    padding: 28px;
  }

  .home-projects-showcase__media {
    order: 2;
  }

  .home-projects-showcase__content {
    order: 1;
  }
}

@media (max-width: 767px) {
  .home-projects-showcase__tabs {
    justify-content: flex-start;
  }

  .home-projects-showcase__tab {
    width: 100%;
  }

  .home-projects-showcase__panel-card {
    gap: 24px;
    padding: 24px 20px;
    border-radius: 0;
  }

  .home-projects-showcase__actions {
    flex-direction: column;
    width: 100%;
  }

  .home-projects-showcase__cta {
    width: 100%;
  }
}

@media (min-width: 1920px) {
  .home-projects-section {
    padding: 138px 0 148px;
  }

  .home-projects-showcase {
    max-width: 1520px;
  }

  .home-projects-showcase__intro {
    max-width: 980px;
  }

  .home-projects-showcase__title {
    font-size: clamp(3rem, 2.5vw, 4.3rem);
  }

  .home-projects-showcase__description {
    font-size: 18px;
    line-height: 1.95;
  }

  .home-projects-showcase__tabs {
    gap: 16px;
    margin-top: 42px;
  }

  .home-projects-showcase__tab {
    min-height: 60px;
    padding: 14px 22px;
    font-size: 15px;
  }

  .home-projects-showcase__panel {
    margin-top: 36px;
  }

  .home-projects-showcase__panel-card {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
    gap: 46px;
    padding: 44px;
  }

  .home-projects-showcase__content-title {
    font-size: clamp(2.5rem, 2.2vw, 4.2rem);
  }

  .home-projects-showcase__content-text {
    font-size: 18px;
    line-height: 1.95;
  }

  .home-projects-showcase__actions {
    gap: 18px;
    margin-top: 34px;
  }

  .home-projects-showcase__cta {
    min-height: 58px;
    padding: 16px 26px;
    font-size: 14px;
  }
}

@media (min-width: 2560px) {
  .home-projects-section {
    padding: 156px 0 168px;
  }

  .home-projects-showcase {
    max-width: 1760px;
  }

  .home-projects-showcase__intro {
    max-width: 1120px;
  }

  .home-projects-showcase__eyebrow,
  .home-projects-showcase__content-badge {
    min-height: 40px;
    padding: 10px 18px;
    font-size: 13px;
  }

  .home-projects-showcase__title {
    font-size: clamp(3.6rem, 2.4vw, 5.1rem);
  }

  .home-projects-showcase__description {
    font-size: 21px;
    line-height: 2;
  }

  .home-projects-showcase__tabs {
    gap: 18px;
    margin-top: 48px;
  }

  .home-projects-showcase__tab {
    min-height: 66px;
    padding: 16px 24px;
    font-size: 16px;
  }

  .home-projects-showcase__panel {
    margin-top: 42px;
  }

  .home-projects-showcase__panel-card {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    gap: 56px;
    padding: 52px;
  }

  .home-projects-showcase__content-title {
    font-size: clamp(3rem, 2.15vw, 4.8rem);
  }

  .home-projects-showcase__content-text {
    font-size: 21px;
    line-height: 2;
  }

  .home-projects-showcase__actions {
    gap: 20px;
    margin-top: 38px;
  }

  .home-projects-showcase__cta {
    min-height: 64px;
    padding: 18px 30px;
    font-size: 15px;
  }
}

/*
  Final desktop logo scaling override.
  Declared last so it beats earlier laptop/desktop width-based logo rules.
*/
@media (min-width: 1200px) {
  .page-header .rd-navbar-brand img {
    width: auto !important;
    height: clamp(65px, calc(5vw + 5px), 85px) !important;
    max-height: none !important;
  }

  .rd-navbar-static .rd-navbar-inner {
    min-height: clamp(108px, calc(6vw + 36px), 132px) !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner,
  .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner {
    min-height: clamp(84px, calc(5vw + 24px), 104px) !important;
  }
}

@media (min-width: 1600px) {
  .page-header .rd-navbar-brand img {
    height: clamp(85px, calc(4vw + 21px), 100px) !important;
  }

  .rd-navbar-static .rd-navbar-inner {
    min-height: clamp(132px, calc(5vw + 52px), 148px) !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner,
  .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner {
    min-height: clamp(104px, calc(3.75vw + 44px), 116px) !important;
  }
}

@media (min-width: 1920px) {
  .page-header .rd-navbar-brand img {
    height: clamp(100px, calc(2.5vw + 52px), 116px) !important;
  }

  .rd-navbar-static .rd-navbar-inner {
    min-height: clamp(148px, calc(3.4375vw + 82px), 170px) !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner,
  .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner {
    min-height: clamp(116px, calc(2.5vw + 68px), 132px) !important;
  }
}

@media (min-width: 2560px) {
  .page-header .rd-navbar-brand img {
    height: clamp(116px, calc(2vw + 65px), 142px) !important;
  }

  .rd-navbar-static .rd-navbar-inner {
    min-height: clamp(170px, calc(2.5vw + 106px), 202px) !important;
  }

  .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner,
  .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner {
    min-height: clamp(132px, calc(2vw + 81px), 158px) !important;
  }
}

/*
  Keep the header logo footprint stable regardless of the source image canvas.
  This preserves the previous on-screen logo size while still allowing image swaps.
*/
.page-header .brand-name {
  width: 67px;
  height: 50px;
}

.page-header .brand-name .brand-logo {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: 100% !important;
  object-fit: contain;
  object-position: left center;
}

@media (min-width: 1200px) {
  .page-header .brand-name {
    width: clamp(86px, calc(6.65vw + 7px), 113px);
    height: clamp(65px, calc(5vw + 5px), 85px);
  }
}

@media (min-width: 1600px) {
  .page-header .brand-name {
    width: clamp(113px, calc(5.32vw + 28px), 133px);
    height: clamp(85px, calc(4vw + 21px), 100px);
  }
}

@media (min-width: 1920px) {
  .page-header .brand-name {
    width: clamp(133px, calc(3.325vw + 69px), 154px);
    height: clamp(100px, calc(2.5vw + 52px), 116px);
  }
}

@media (min-width: 2560px) {
  .page-header .brand-name {
    width: clamp(154px, calc(2.66vw + 86px), 189px);
    height: clamp(116px, calc(2vw + 65px), 142px);
  }
}
