.company-page .site-header {
  position: absolute;
  background: rgba(255, 255, 255, 0.77);
}

.company-page .site-header.is-scrolled {
  position: fixed;
  background: #fff;
}

.company-page-hero {
  position: relative;
  display: flex;
  min-height: 650px;
  align-items: center;
  overflow: hidden;
  contain: paint;
  isolation: isolate;
  background: #082033;
  color: #fff;
  animation: tirrenaCompanyPageFadeIn 1000ms ease both;
}

.company-page-hero__slides {
  position: absolute;
  inset: -3%;
  z-index: 0;
  overflow: hidden;
  background: #082033;
}

.company-page-hero__slide {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--company-hero-slide-position, center center);
  opacity: 0;
  transform: translate3d(0, 0, 0) scale(1.05);
  transition: opacity 1600ms ease;
  will-change: opacity, transform;
}

.company-page-hero__slide.is-active {
  z-index: 1;
  opacity: 1;
  animation: tirrenaHeroSlideDrift 7600ms ease-out both;
}

.company-page-hero__slides picture:nth-child(2) .company-page-hero__slide.is-active,
.company-page-hero__slides picture:nth-child(4) .company-page-hero__slide.is-active {
  animation-name: tirrenaHeroSlideDriftReverse;
}

.company-page-hero__slides picture:nth-child(3) .company-page-hero__slide.is-active {
  animation-name: tirrenaHeroSlideDriftLift;
}

.company-page-hero__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(2, 14, 29, 0.64) 0%, rgba(2, 14, 29, 0.36) 42%, rgba(2, 14, 29, 0.1) 74%, rgba(2, 14, 29, 0) 100%),
    linear-gradient(0deg, rgba(3, 11, 24, 0.38) 0%, rgba(3, 11, 24, 0.1) 58%, rgba(3, 11, 24, 0) 100%);
  pointer-events: none;
}

.company-page-hero__inner {
  position: relative;
  z-index: 2;
}

.company-page-hero__ghost {
  width: 790px;
  max-width: 100%;
  margin: 0 0 -44px;
  color: transparent;
  font-family: "Open Sans Tirrena", Inter, sans-serif;
  font-size: 120px;
  font-weight: 700;
  line-height: 102px;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.76);
  text-stroke: 1px rgba(255, 255, 255, 0.76);
}

.company-page-hero h1 {
  width: 790px;
  max-width: 100%;
  margin: 0;
  color: #fff;
  font-size: 60px;
  font-weight: 700;
  line-height: 82.5px;
}

.company-page-profile {
  padding-top: 100px;
  background: #fff;
}

.company-page-profile__grid {
  display: grid;
  min-height: 631px;
  grid-template-columns: 470px 145px 585px;
  align-items: start;
  gap: 0;
}

.company-page-media {
  position: relative;
  grid-column: 1;
  width: 470px;
}

.company-page-media__image {
  width: 470px;
  height: 588px;
  object-fit: cover;
}

.company-page-media__badge {
  position: absolute;
  top: 417px;
  left: 221px;
  display: grid;
  width: 298px;
  height: 214px;
  place-items: center;
  padding: 67px 15px;
  background: #00769a url("../img/simbolo.png") center center / contain no-repeat;
  color: #fff;
  text-align: center;
}

.company-page-media__badge p {
  width: 268px;
  margin: 0;
  color: #fff;
  font-size: 35px;
  font-weight: 700;
  line-height: 40px;
}

.company-page-copy {
  width: 585px;
}

.company-page-copy--intro {
  grid-column: 3;
  padding-top: 22.5px;
}

.company-page-ghost {
  width: 585px;
  margin: 0 0 -44px;
  color: transparent;
  font-family: "Open Sans Tirrena", Inter, sans-serif;
  font-size: 120px;
  font-weight: 700;
  line-height: 102px;
  -webkit-text-stroke: 1px #e5e5e5;
  text-stroke: 1px #e5e5e5;
}

.company-page-eyebrow {
  margin: 0;
  color: var(--tirrena-muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 27px;
  text-transform: uppercase;
}

.company-page-copy h2 {
  margin: 0;
  color: var(--tirrena-heading);
  font-size: 45px;
  font-weight: 700;
  line-height: 50px;
}

.company-page-text {
  margin-top: 40px;
  color: var(--tirrena-text);
  font-size: 16px;
  line-height: 27px;
}

.company-page-text p {
  margin: 0 0 20px;
}

.company-page-text p:last-child {
  margin-bottom: 0;
}

.company-page-door {
  margin-top: 100px;
  padding: 100px 0;
  background: #e0efee;
}

.company-page-door__grid {
  display: grid;
  min-height: 588px;
  grid-template-columns: 585px 132.5px 470px;
  align-items: center;
  gap: 0;
}

.company-page-copy--door {
  grid-column: 1;
}

.company-page-door__image {
  grid-column: 3;
  width: 470px;
  height: 588px;
  object-fit: cover;
}

.company-page-gallery {
  padding: 100px 0 80px;
  background: #fff;
}

@keyframes tirrenaCompanyPageFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .company-page-hero,
  .company-page-hero__slide.is-active {
    animation: none;
  }

  .company-page-hero__slide {
    transition: none;
    transform: scale(1.04);
    will-change: auto;
  }
}

.services-page .site-header {
  position: absolute;
  background: rgba(255, 255, 255, 0.77);
}

.services-page .site-header.is-scrolled {
  position: fixed;
  background: #fff;
}

.services-page-hero {
  position: relative;
  display: flex;
  min-height: 650px;
  align-items: center;
  overflow: hidden;
  contain: paint;
  background: #082033;
  color: #fff;
  animation: tirrenaCompanyPageFadeIn 1000ms ease both;
}

.services-page-hero__inner {
  position: relative;
  z-index: 1;
}

.services-page-hero__copy {
  width: 790px;
  max-width: 100%;
  min-width: 0;
}

.services-page-hero__ghost {
  width: 790px;
  max-width: 100%;
  margin: 0 0 -44px;
  color: transparent;
  font-family: "Open Sans Tirrena", Inter, sans-serif;
  font-size: 120px;
  font-weight: 700;
  line-height: 102px;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.76);
  text-stroke: 1px rgba(255, 255, 255, 0.76);
}

.services-page-hero h1 {
  width: 790px;
  max-width: 100%;
  margin: 0;
  color: #fff;
  font-size: 60px;
  font-weight: 700;
  line-height: 82.5px;
}

.services-page-hero__lead {
  width: 610px;
  max-width: 100%;
  margin: 22px 0 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 20px;
  line-height: 32px;
}

.services-page-shell {
  padding: 96px 0 105px;
  background:
    linear-gradient(180deg, #f7fbfc 0%, #fff 34%, #eef7f7 100%);
}

.services-page-overview {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  align-items: center;
  gap: 54px;
  margin-bottom: 58px;
}

.services-page-overview__copy {
  min-width: 0;
}

.services-page-overview__eyebrow {
  margin: 0 0 15px;
  color: var(--tirrena-teal);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 20px;
}

.services-page-overview h2 {
  margin: 0;
  color: #243460;
  font-size: 40px;
  font-weight: 700;
  line-height: 48px;
}

.services-page-overview__copy > p:not(.services-page-overview__eyebrow) {
  width: 520px;
  max-width: 100%;
  margin: 22px 0 0;
  color: #5d6872;
  font-size: 17px;
  line-height: 30px;
}

.services-page-overview__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 34px;
  border-top: 1px solid rgba(0, 118, 154, 0.18);
  border-bottom: 1px solid rgba(0, 118, 154, 0.18);
}

.services-page-overview__stat {
  padding: 20px 18px 18px 0;
}

.services-page-overview__stat + .services-page-overview__stat {
  padding-left: 18px;
  border-left: 1px solid rgba(0, 118, 154, 0.18);
}

.services-page-overview__stat strong,
.services-page-overview__stat span {
  display: block;
}

.services-page-overview__stat strong {
  color: #00769a;
  font-size: 34px;
  font-weight: 700;
  line-height: 38px;
}

.services-page-overview__stat span {
  margin-top: 6px;
  color: #5d6872;
  font-size: 13px;
  font-weight: 700;
  line-height: 18px;
}

.services-page-overview__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.services-overview-card {
  position: relative;
  display: flex;
  min-height: 245px;
  align-items: flex-end;
  overflow: hidden;
  padding: 22px;
  border: 1px solid rgba(0, 118, 154, 0.2);
  border-radius: 0;
  background: #0d2b4c;
  color: #fff;
  isolation: isolate;
  box-shadow: 0 18px 38px rgba(25, 52, 72, 0.14);
}

.services-overview-card img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 550ms ease;
}

.services-overview-card::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(8, 26, 48, 0.08), rgba(8, 26, 48, 0.78)),
    linear-gradient(110deg, rgba(0, 118, 154, 0.38), rgba(0, 118, 154, 0));
  content: "";
}

.services-overview-card::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: 3px;
  background: #00769a;
  content: "";
}

.services-overview-card:hover img,
.services-overview-card:focus-visible img {
  transform: scale(1.045);
}

.services-overview-card:hover,
.services-overview-card:focus-visible {
  outline: 0;
  box-shadow: 0 22px 48px rgba(0, 118, 154, 0.22);
}

.services-overview-card__number {
  position: absolute;
  top: 16px;
  left: 16px;
  min-width: 42px;
  padding: 7px 10px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 0;
  background: rgba(5, 23, 48, 0.62);
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}

.services-overview-card__body {
  display: block;
  min-width: 0;
}

.services-overview-card__body strong,
.services-overview-card__body span {
  display: block;
}

.services-overview-card__body strong {
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  line-height: 28px;
}

.services-overview-card__body span {
  margin-top: 8px;
  color: rgba(255, 255, 255, 0.84);
  font-size: 14px;
  line-height: 21px;
}

.services-page-process {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  align-items: center;
  gap: 34px;
  margin-bottom: 54px;
  padding: 28px 0;
  border-top: 1px solid rgba(0, 118, 154, 0.18);
  border-bottom: 1px solid rgba(0, 118, 154, 0.18);
}

.services-page-process__heading p {
  margin: 0 0 9px;
  color: var(--tirrena-teal);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 20px;
}

.services-page-process__heading h2 {
  margin: 0;
  color: #243460;
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
}

.services-page-process__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.services-page-process__list li {
  min-width: 0;
  padding: 19px 17px;
  border: 1px solid rgba(0, 118, 154, 0.16);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.76);
}

.services-page-process__list span,
.services-page-process__list strong {
  display: block;
}

.services-page-process__list span {
  color: #00769a;
  font-size: 13px;
  font-weight: 700;
  line-height: 18px;
}

.services-page-process__list strong {
  margin-top: 10px;
  color: #33415d;
  font-size: 15px;
  font-weight: 700;
  line-height: 22px;
}

.services-tabs {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr);
  align-items: start;
  gap: 24px;
}

.services-tabs__nav {
  display: grid;
  position: sticky;
  top: 98px;
  row-gap: 10px;
}

.services-tabs__tab {
  position: relative;
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  padding: 14px 18px;
  border: 1px solid rgba(0, 118, 154, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
  color: #344153;
  cursor: pointer;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 22px;
  text-align: left;
  box-shadow: 0 12px 28px rgba(45, 51, 99, 0.06);
  transition: background 200ms ease-in-out, border 200ms ease-in-out, box-shadow 200ms ease-in-out, color 200ms ease-in-out, transform 200ms ease-in-out;
}

.services-tabs__tab:hover,
.services-tabs__tab:focus-visible {
  border-color: rgba(0, 118, 154, 0.36);
  color: var(--tirrena-teal);
  outline: 0;
  box-shadow: 0 16px 34px rgba(0, 118, 154, 0.12);
}

.services-tabs__tab.is-active {
  width: auto;
  min-height: 68px;
  margin: 0;
  border-color: rgba(0, 118, 154, 0.62);
  background: linear-gradient(135deg, #23345f 0%, #00769a 100%);
  color: #fff;
  box-shadow: 0 20px 44px rgba(0, 118, 154, 0.22);
  transform: translate3d(8px, 0, 0);
}

.services-tabs__tab-number {
  display: inline-block;
  min-width: 38px;
  padding: 6px 8px;
  border: 1px solid rgba(0, 118, 154, 0.18);
  border-radius: 8px;
  background: rgba(0, 118, 154, 0.07);
  flex: 0 0 auto;
  color: #00769a;
  font-size: 13px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}

.services-tabs__tab.is-active .services-tabs__tab-number {
  border-color: rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.13);
  color: #fff;
}

.services-tabs__tab-label {
  min-width: 0;
}

.services-tabs__tab::after {
  margin-left: auto;
  color: currentColor;
  content: "+";
  flex: 0 0 auto;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
}

.services-tabs__tab.is-active::after {
  content: "-";
}

.services-tabs__panels {
  min-width: 0;
  padding: 34px;
  border: 1px solid rgba(0, 118, 154, 0.16);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 24px 54px rgba(45, 51, 99, 0.09);
}

.service-panel[hidden] {
  display: none;
}

.service-panel.is-panel-entering {
  animation: servicesPanelIn 420ms ease both;
}

.service-panel__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 30px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(0, 118, 154, 0.16);
}

.service-panel__header span {
  color: #00769a;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.service-panel__header h2 {
  max-width: 620px;
  margin: 0;
  color: #243460;
  font-size: 34px;
  font-weight: 700;
  line-height: 42px;
  text-align: right;
}

.service-panel__row {
  display: grid;
  align-items: start;
  gap: 28px;
}

.service-panel__row + .service-panel__row {
  margin-top: 34px;
}

.service-panel__row--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-panel__row--one {
  grid-template-columns: 1fr;
}

.service-panel__col {
  min-width: 0;
}

.service-panel__image-stack {
  display: grid;
  gap: 18px;
}

.service-panel__image {
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 8px;
  box-shadow: 0 16px 34px rgba(45, 51, 99, 0.12);
  object-fit: cover;
}

.service-panel__text {
  color: #58636f;
  font-size: 17px;
  line-height: 30px;
}

.service-panel__text p {
  margin: 0 0 20px;
}

.service-panel__cta {
  display: flex;
  justify-content: center;
  margin-top: 42px;
}

.service-panel__cta--center {
  margin-top: 32px;
}

.service-panel__cta .button {
  display: inline-block;
  width: auto;
  min-height: 0;
  padding: 12px 40px;
  color: var(--tirrena-text);
  font-size: 13px;
  font-weight: 500;
  line-height: 21.45px;
}

.service-panel__cta .button:hover,
.service-panel__cta .button:focus-visible {
  color: #fff;
}

@keyframes servicesPanelIn {
  from {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .services-page-hero {
    animation: none;
  }

  .service-panel.is-panel-entering {
    animation: none;
  }
}

.site-footer {
  padding: 30px 0 140px;
  background: var(--tirrena-dark);
  color: #fff;
}

.site-footer__top {
  display: grid;
  grid-template-columns: 4fr 4fr;
  justify-content: space-between;
  gap: 280px;
}

.footer-logo {
  width: 190px;
  margin-bottom: 20px;
}

.footer-contacts {
  display: block;
  width: 380px;
  color: #fff;
  font-size: 14px;
  line-height: 22px;
}

.footer-contacts a {
  display: flex;
  min-height: 22px;
  flex-wrap: nowrap;
  align-items: flex-start;
  margin: 0 0 5px;
  color: #fff;
}

.footer-contacts a + a {
  margin-top: 10px;
}

.footer-icon {
  display: block;
  flex: 0 0 auto;
  height: 14px;
  margin: 4px 10px 0 0;
  background: currentColor;
  color: #fff;
  -webkit-mask: var(--footer-icon-mask) center / contain no-repeat;
  mask: var(--footer-icon-mask) center / contain no-repeat;
}

.ticon-map-marker {
  --footer-icon-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20384%20512%22%3E%3Cpath%20d%3D%22M172.268%20501.67C26.97%20291.031%200%20269.413%200%20192%200%2085.961%2085.961%200%20192%200s192%2085.961%20192%20192c0%2077.413-26.97%2099.031-172.268%20309.67-9.535%2013.774-29.93%2013.773-39.464%200zM192%20272c44.183%200%2080-35.817%2080-80s-35.817-80-80-80-80%2035.817-80%2080%2035.817%2080%2080%2080z%22%2F%3E%3C%2Fsvg%3E");
  width: 8px;
}

.ticon-phone {
  --footer-icon-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M493.4%2024.6l-104-24c-11.3-2.6-22.9%203.3-27.5%2013.9l-48%20112c-4.2%209.8-1.4%2021.3%206.9%2028l60.6%2049.6c-36%2076.7-98.9%20140.5-177.2%20177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112%2048C3.9%20366.5-2%20378.1.6%20389.4l24%20104C27.1%20504.2%2036.7%20512%2048%20512c256.1%200%20464-207.5%20464-464%200-11.2-7.7-20.9-18.6-23.4z%22%2F%3E%3C%2Fsvg%3E");
  width: 11px;
}

.ticon-envelope,
.ticon-briefcase {
  width: 14px;
}

.ticon-envelope {
  --footer-icon-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M502.3%20190.8c3.9-3.1%209.7-.2%209.7%204.7V400c0%2026.5-21.5%2048-48%2048H48c-26.5%200-48-21.5-48-48V195.6c0-5%205.7-7.8%209.7-4.7%2022.4%2017.4%2052.1%2039.5%20154.1%20113.6%2021.1%2015.4%2056.7%2047.8%2092.2%2047.6%2035.7.3%2072-32.8%2092.3-47.6%20102-74.1%20131.6-96.3%20154-113.7zM256%20320c23.2.4%2056.6-29.2%2073.4-41.4%20132.7-96.3%20142.8-104.7%20173.4-128.7%205.8-4.5%209.2-11.5%209.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5%2064%200%2085.5%200%20112v19c0%207.4%203.4%2014.3%209.2%2018.9%2030.6%2023.9%2040.7%2032.4%20173.4%20128.7%2016.8%2012.2%2050.2%2041.8%2073.4%2041.4z%22%2F%3E%3C%2Fsvg%3E");
}

.ticon-briefcase {
  --footer-icon-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M320%20336c0%208.84-7.16%2016-16%2016h-96c-8.84%200-16-7.16-16-16v-48H0v144c0%2025.6%2022.4%2048%2048%2048h416c25.6%200%2048-22.4%2048-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6%200-48%2022.4-48%2048v48H48c-25.6%200-48%2022.4-48%2048v80h512v-80c0-25.6-22.4-48-48-48zm-144%200H192V96h128v32z%22%2F%3E%3C%2Fsvg%3E");
}

.ticon-handshake-o {
  --footer-icon-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20640%20512%22%3E%3Cpath%20d%3D%22M519.2%20127.9l-47.6-47.6A56.252%2056.252%200%200%200%20432%2064H205.2c-14.8%200-29.1%205.9-39.6%2016.3L118%20127.9H0v255.7h64c17.6%200%2031.8-14.2%2031.9-31.7h9.1l84.6%2076.4c30.9%2025.1%2073.8%2025.7%20105.6%203.8%2012.5%2010.8%2026%2015.9%2041.1%2015.9%2018.2%200%2035.3-7.4%2048.8-24%2022.1%208.7%2048.2%202.6%2064-16.8l26.2-32.3h68.8c.1%2017.5%2014.4%2031.7%2031.9%2031.7h64V127.9H519.2zM48%20351.6V159.9h48v191.7H48zm390.2-7.2l-26.2%2032.3c-2.8%203.4-7.8%204-11.3%201.2l-23.9-19.4-30%2036.5c-6%207.3-15.7%204.8-18.4%202.6l-36.5-29.4-30%2036.5c-2.8%203.4-7.8%204-11.3%201.2-84.5-68.2-76.1-62.1-90.2-73.4H96.1V159.9h41.8l61.7-61.6c2-.8%203.7-1.4%205.5-2.3H245l-50.9%2050.9c-31.9%2031.9-31.9%2083.7%200%20115.6s83.7%2031.9%20115.6%200l8.2-8.2%20119.6%2096.9c3.4%202.8%204%207.9%201.1%2011.3zm105.7-17.6h-56.7c-4.2-6.4-9.4-12.2-15.8-17.4L352%20212.4l25.4-25.4c6.2-6.2%206.2-16.4%200-22.6s-16.4-6.2-22.6%200l-68.5%2068.5c-13.2%2013.2-34.6%2013.2-47.8%200s-13.2-34.6%200-47.8l65.5-65.5c7.5-7.5%2017.7-11.7%2028.3-11.7H432c6.4%200%2012.5%202.5%2017%207l55%2055h39.9v191.9zM592%20351.6h-48V159.9h48v191.7z%22%2F%3E%3C%2Fsvg%3E");
  width: 18px;
}

.footer-links h2 {
  margin: 0 0 30px;
  color: #fff;
  font-size: 16px;
  line-height: 1.6;
}

.footer-links > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}

.footer-links p {
  display: grid;
  gap: 8px;
  margin: 0;
  color: #fff;
  font-size: 14px;
  line-height: 1.45;
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: #95c5cc;
}

.site-footer__bottom {
  margin-top: 52px;
  color: #95999e;
  font-size: 14px;
  line-height: 1.6;
  text-align: center;
}

.back-to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 35;
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border: 0;
  background: #95c5cc;
  color: #fff;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity 180ms ease, transform 180ms ease, background 180ms ease;
}

.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.back-to-top:hover,
.back-to-top:focus-visible {
  background: #0093bd;
}

.back-to-top span {
  width: 14px;
  height: 14px;
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
  transform: translateY(4px) rotate(45deg);
}

.site-footer__bottom p {
  margin: 0 0 16px;
}

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

.site-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 76px 0 86px;
  background:
    radial-gradient(circle at 82% 10%, rgba(0, 118, 154, 0.22), transparent 32%),
    linear-gradient(135deg, rgba(7, 16, 43, 0.97), rgba(8, 36, 72, 0.94) 48%, rgba(4, 18, 45, 0.98)),
    var(--tirrena-dark);
  color: #fff;
}

.site-footer::before,
.site-footer::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
}

.site-footer::before {
  z-index: -2;
  background: url("../img/tirrena/2026/06/tirrena-company-headquarters-aerial-01.jpg") center 42% / cover no-repeat;
  opacity: 0.3;
  transform: scale(1.04);
}

.site-footer::after {
  z-index: -1;
  background:
    radial-gradient(circle at 86% 14%, rgba(151, 232, 244, 0.2), transparent 30%),
    radial-gradient(circle at 20% 92%, rgba(0, 118, 154, 0.16), transparent 34%),
    linear-gradient(90deg, rgba(7, 14, 37, 0.93), rgba(8, 39, 76, 0.8) 56%, rgba(5, 15, 38, 0.96));
}

.site-footer__top {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: stretch;
  gap: 86px;
  padding: 40px;
  border: 1px solid rgba(154, 232, 242, 0.22);
  background: linear-gradient(135deg, rgba(18, 42, 82, 0.72), rgba(7, 22, 54, 0.45));
  box-shadow: 0 24px 70px rgba(1, 10, 30, 0.38);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.footer-logo {
  width: 204px;
  margin-bottom: 24px;
  filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.2));
}

.footer-contacts {
  display: grid;
  width: min(100%, 470px);
  align-content: start;
  gap: 10px;
  line-height: 1.55;
}

.footer-contacts a {
  min-height: 42px;
  align-items: center;
  margin: 0;
  padding: 8px 0;
}

.footer-contacts a + a {
  margin-top: 0;
}

.site-footer .footer-icon {
  position: relative;
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  margin: 0 12px 0 0;
  place-items: center;
  border: 1px solid rgba(154, 232, 242, 0.4);
  background: rgba(154, 232, 242, 0.12);
  color: #fff;
  -webkit-mask: none;
  mask: none;
}

.site-footer .footer-icon::before {
  display: block;
  height: 14px;
  background: currentColor;
  content: "";
  -webkit-mask: var(--footer-icon-mask) center / contain no-repeat;
  mask: var(--footer-icon-mask) center / contain no-repeat;
}

.site-footer .ticon-map-marker::before {
  width: 8px;
}

.site-footer .ticon-phone::before {
  width: 11px;
}

.site-footer .ticon-envelope::before,
.site-footer .ticon-briefcase::before {
  width: 14px;
}

.site-footer .ticon-handshake-o::before {
  width: 18px;
}

.footer-links h2 {
  margin-bottom: 22px;
  font-size: 18px;
  line-height: 1.3;
}

.footer-links > div {
  gap: 22px;
}

.footer-links p {
  gap: 10px;
}

.footer-links a {
  position: relative;
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  padding: 2px 0 2px 18px;
  color: rgba(255, 255, 255, 0.86);
}

.footer-links a::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 6px;
  height: 6px;
  border: 1px solid rgba(154, 232, 242, 0.9);
  content: "";
  transform: translateY(-50%) rotate(45deg);
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: #aef6ff;
}

.site-footer__bottom {
  margin-top: 0;
  padding: 26px 40px 30px;
  border-right: 1px solid rgba(154, 232, 242, 0.2);
  border-bottom: 1px solid rgba(154, 232, 242, 0.2);
  border-left: 1px solid rgba(154, 232, 242, 0.2);
  background: rgba(4, 14, 37, 0.48);
  color: rgba(226, 241, 246, 0.74);
  font-size: 13px;
  line-height: 1.65;
}

.footer-languages {
  display: flex;
  min-height: 44.625px;
  align-items: center;
  justify-content: center;
  gap: 0;
  background: #fff;
  color: var(--tirrena-text);
  font-size: 16px;
  line-height: 16px;
}

.footer-languages a {
  display: inline-flex;
  min-height: 28.625px;
  align-items: center;
  gap: 8px;
  padding: 0 9px;
}

.footer-languages img {
  width: 18px;
  height: 12px;
}

@media (max-width: 1180px) {
  .site-header__inner {
    align-items: flex-start;
  }

  .site-header__nav {
    padding-top: 4px;
  }

  .hero h1 {
    font-size: 52px;
  }

  .company__grid,
  .company-page-profile__grid,
  .company-page-door__grid,
  .services__intro {
    grid-template-columns: 1fr 1fr;
    gap: 48px;
  }

  .company__media,
  .company__copy,
  .company-page-media,
  .company-page-copy,
  .company-page-door__image {
    grid-column: auto;
  }

  .company-page-copy,
  .company-page-ghost {
    width: 100%;
  }

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

  .site-footer__top {
    gap: 72px;
  }
}

@media (max-width: 960px) {
  .container {
    width: min(100% - 44px, var(--tirrena-container));
  }

  .site-header__inner {
    min-height: 88px;
    padding: 24px 0;
  }

  .site-logo {
    width: 150px;
  }

  .hero {
    min-height: 720px;
  }

  .hero__content {
    padding-top: 330px;
  }

  .hero__ghost {
    top: 255px;
    font-size: 92px;
  }

  .hero__symbol {
    display: none;
  }

  .hero h1 {
    max-width: 520px;
    font-size: 34px;
  }

  .hero__text {
    font-size: 16px;
  }

  .company,
  .company-page-profile,
  .services-page-shell,
  .services,
  .solutions,
  .operations {
    padding: 70px 0;
  }

  .company-page-hero,
  .services-page-hero {
    min-height: 430px;
  }

  .company-page-hero__ghost,
  .services-page-hero__ghost {
    margin-bottom: -28px;
    font-size: 74px;
    line-height: 66px;
  }

  .company-page-hero h1,
  .services-page-hero h1 {
    font-size: 42px;
    line-height: 54px;
  }

  .services-page-hero__inner {
    padding-top: 118px;
    padding-bottom: 72px;
  }

  .services-page-hero__lead {
    width: 560px;
    margin-top: 18px;
    font-size: 17px;
    line-height: 28px;
  }

  .services-page-overview {
    grid-template-columns: 1fr;
    gap: 36px;
    margin-bottom: 42px;
  }

  .services-page-overview h2 {
    font-size: 34px;
    line-height: 42px;
  }

  .services-page-overview__cards {
    gap: 14px;
  }

  .services-overview-card {
    min-height: 220px;
  }

  .services-page-process {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 42px;
  }

  .services-page-process__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .company__grid,
  .company-page-profile__grid,
  .company-page-door__grid,
  .services-tabs,
  .services__intro,
  .site-footer__top {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .site-footer {
    padding: 64px 0 76px;
  }

  .site-footer__top {
    padding: 34px;
  }

  .footer-links > div {
    grid-template-columns: 1fr 1fr;
  }

  .services-tabs {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .services-tabs__nav,
  .services-tabs__panels {
    display: contents;
  }

  .services-tabs__tab,
  .service-panel {
    order: var(--services-mobile-order, 0);
  }

  .services-tabs__tab {
    width: 100%;
    min-height: 64px;
    transform: none;
  }

  .services-tabs__tab.is-active {
    width: 100%;
    min-height: 64px;
    margin: 0;
    transform: none;
  }

  .services-tabs:not(.is-services-tabs-ready) .services-tabs__tab.is-active {
    border: 1px solid rgba(0, 118, 154, 0.14);
    background: rgba(255, 255, 255, 0.82);
    color: #344153;
    box-shadow: 0 12px 28px rgba(45, 51, 99, 0.06);
  }

  .services-tabs:not(.is-services-tabs-ready) .services-tabs__tab.is-active .services-tabs__tab-number {
    border-color: rgba(0, 118, 154, 0.18);
    background: rgba(0, 118, 154, 0.07);
    color: #00769a;
  }

  .services-tabs:not(.is-services-tabs-ready) .services-tabs__tab.is-active::after {
    content: "+";
  }

  .services-tabs:not(.is-services-tabs-ready) .service-panel.is-active {
    display: none;
  }

  .services-tabs__panels {
    padding: 0;
    border: 0;
  }

  .services-tabs .service-panel {
    padding: 28px 24px 34px;
    border: 1px solid rgba(0, 118, 154, 0.14);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(45, 51, 99, 0.08);
  }

  .services-tabs .service-panel.is-active {
    border-bottom: 1px solid rgba(0, 118, 154, 0.16);
  }

  .service-panel__row--two {
    grid-template-columns: 1fr;
  }

  .service-panel__header {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 24px;
  }

  .service-panel__header h2 {
    max-width: 100%;
    font-size: 30px;
    line-height: 38px;
    text-align: left;
  }

  .service-panel__col + .service-panel__col {
    margin-top: 30px;
  }

  .company__photo,
  .company__anniversary,
  .company-page-media,
  .company-page-media__image,
  .company-page-door__image {
    width: min(470px, 100%);
  }

  .company__media {
    max-width: 560px;
    margin: 0 auto;
  }

  .company__photo {
    width: 100%;
    height: min(70vw, 520px);
  }

  .company__copy {
    padding-left: 0;
    border-left: 0;
  }

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

  .company-page-profile__grid,
  .company-page-door__grid {
    min-height: 0;
  }

  .company-page-media__image,
  .company-page-door__image {
    height: auto;
  }

  .company-page-media__badge {
    top: auto;
    right: 0;
    bottom: 0;
    left: auto;
  }

  .company-page-door {
    margin-top: 0;
    padding: 70px 0;
  }

  .company-page-gallery {
    padding: 70px 0 60px;
  }

  .milestone {
    right: 22px;
    bottom: 22px;
    width: min(298px, 64%);
  }

  .section-ghost {
    margin-bottom: -20px;
    font-size: 66px;
  }

  .company-page-ghost {
    margin-bottom: -20px;
    font-size: 66px;
    line-height: 66px;
  }

  h2 {
    font-size: 34px;
  }

  .company-page-copy h2 {
    font-size: 34px;
    line-height: 40px;
  }

  .services__intro .copy {
    padding-top: 0;
  }

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

  .solutions__inner p {
    font-size: clamp(24px, 6.2vw, 44px);
    white-space: normal;
  }

  .flag-carousel {
    --flag-carousel-side-gutter: 46px;
    --flag-carousel-card-width: calc((min(var(--tirrena-container), 90vw) - var(--flag-carousel-gap) - (var(--flag-carousel-side-gutter) * 2)) / 2);
    margin-top: 30px;
  }

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

  .footer-links > div {
    gap: 28px;
  }
}

@keyframes tirrenaServicesRevealOpacity {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes tirrenaServicesRevealTransform {
  from {
    transform: translate3d(var(--reveal-x), var(--reveal-y), 0) scale(var(--reveal-scale));
  }

  to {
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@media (max-width: 960px) and (prefers-reduced-motion: no-preference) {
  .reveal-ready .services-page .services-tabs__nav[data-reveal] > .services-tabs__tab,
  .reveal-ready .services-page .services-tabs__panels[data-reveal]:not(.is-visible) > .service-panel:not([hidden]) {
    opacity: 0;
    transform: translate3d(var(--reveal-x), var(--reveal-y), 0) scale(var(--reveal-scale));
    will-change: opacity, transform;
  }

  .reveal-ready .services-page .services-tabs__nav[data-reveal].is-visible > .services-tabs__tab {
    animation:
      tirrenaServicesRevealOpacity var(--reveal-opacity-duration) ease-out var(--reveal-delay-effective) both,
      tirrenaServicesRevealTransform var(--reveal-duration) cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay-effective) both;
  }

  .reveal-ready .services-page .services-tabs__panels[data-reveal].is-visible:not(.is-reveal-complete) > .service-panel:not([hidden]) {
    animation:
      tirrenaServicesRevealOpacity var(--reveal-opacity-duration) ease-out var(--reveal-delay-effective) both,
      tirrenaServicesRevealTransform var(--reveal-duration) cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay-effective) both;
  }

  .reveal-ready .services-page .services-tabs__nav[data-reveal].is-visible.is-reveal-complete > .services-tabs__tab {
    opacity: 1;
    transform: none;
    animation: none;
    will-change: auto;
  }
}

@media (max-width: 560px) {
  .button {
    width: 100%;
  }

  .hero h1 {
    font-size: 28px;
  }

  .services-page-hero {
    min-height: 470px;
  }

  .services-page-hero__inner {
    padding-top: 104px;
    padding-bottom: 56px;
  }

  .services-page-hero__ghost {
    margin-bottom: -18px;
    font-size: 54px;
    line-height: 50px;
  }

  .services-page-hero h1 {
    font-size: 34px;
    line-height: 42px;
  }

  .services-page-hero__lead {
    font-size: 16px;
    line-height: 26px;
  }

  .services-page-overview h2,
  .services-page-process__heading h2 {
    font-size: 28px;
    line-height: 36px;
  }

  .services-page-overview__stats,
  .services-page-overview__cards,
  .services-page-process__list {
    grid-template-columns: 1fr;
  }

  .services-page-overview__stat {
    padding: 16px 0;
  }

  .services-page-overview__stat + .services-page-overview__stat {
    padding-left: 0;
    border-top: 1px solid rgba(0, 118, 154, 0.18);
    border-left: 0;
  }

  .services-overview-card {
    min-height: 210px;
    padding: 20px;
  }

  .services-overview-card__body strong {
    font-size: 20px;
    line-height: 26px;
  }

  .services-tabs__tab {
    gap: 12px;
    padding: 13px 14px;
  }

  .services-tabs__tab-number {
    min-width: 34px;
    padding: 5px 7px;
  }

  .services-tabs .service-panel {
    padding: 24px 18px 30px;
  }

  .service-panel__header h2 {
    font-size: 26px;
    line-height: 34px;
  }

  .service-panel__text {
    font-size: 16px;
    line-height: 28px;
  }

  .service-cards {
    grid-template-columns: 1fr;
    row-gap: 26px;
  }

  .site-footer {
    padding: 48px 0 62px;
  }

  .site-footer__top {
    gap: 30px;
    padding: 24px;
  }

  .footer-logo {
    width: 168px;
    margin-bottom: 18px;
  }

  .footer-contacts {
    font-size: 13px;
    line-height: 1.45;
  }

  .footer-contacts a {
    min-height: 36px;
    margin-bottom: 0;
    padding: 4px 0;
  }

  .footer-contacts a + a {
    margin-top: 0;
  }

  .site-footer .footer-icon {
    flex-basis: 30px;
    width: 30px;
    height: 30px;
  }

  .footer-links h2 {
    margin-bottom: 14px;
    color: #fff;
    font-size: 15px;
    line-height: 1.3;
  }

  .footer-links > div {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .footer-links p {
    display: grid;
    gap: 8px;
  }

  .footer-links p + p {
    display: grid;
  }

  .footer-links a {
    display: inline-flex;
    color: rgba(255, 255, 255, 0.78);
    font-size: 13px;
    line-height: 1.25;
    white-space: normal;
  }

  .site-footer__bottom {
    margin-top: 0;
    padding: 22px 24px 70px;
    font-size: 12px;
    line-height: 1.45;
  }

  .company-page-media__badge {
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 16px;
    padding: 42px 15px;
  }

  .company-page-media__badge p {
    width: 100%;
    font-size: 30px;
    line-height: 36px;
  }

  .milestone {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    min-height: 236px;
    margin-top: 0;
    box-shadow: none;
  }

  .company__media {
    padding: 14px;
  }

  .company__photo {
    height: auto;
  }

  .company__associations {
    padding: 12px;
  }

  .operations {
    padding: 46px 0;
  }

  .operations__heading .section-ghost {
    margin-bottom: -14px;
    font-size: clamp(52px, 15.5vw, 60px);
  }

  .flag-carousel {
    --flag-carousel-side-gutter: 16px;
    --flag-carousel-panel-padding-y: 16px;
    --flag-carousel-card-width: calc(min(var(--tirrena-container), 90vw) - (var(--flag-carousel-side-gutter) * 2));
    margin-top: 22px;
    padding-bottom: 14px;
  }

  .flag-carousel__track {
    grid-template-columns: 1fr;
  }
}
