:root {
  --blue-950: #071a34;
  --blue-900: #082b66;
  --blue-700: #075ca6;
  --blue-500: #18b7d7;
  --gray-900: #172033;
  --gray-700: #4d5c70;
  --gray-500: #748197;
  --gray-200: #dce5ef;
  --gray-100: #eef3f8;
  --white: #ffffff;
  --shadow: 0 22px 60px rgba(7, 26, 52, .13);
  --radius: 8px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--gray-900);
  background: var(--white);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.5;
}
a { color: inherit; text-decoration: none; transition: color .2s ease; }
a:not(.btn):not(.nav-cta):not(.product-card-link):hover { color: var(--blue-500); }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--blue-950);
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  backdrop-filter: blur(16px);
  transition: background .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.site-header.transparent:not(.scrolled) {
  background: var(--blue-950);
  border-bottom-color: rgba(255, 255, 255, .1);
}
.site-header.scrolled {
  background: rgba(7, 26, 52, .86);
  box-shadow: 0 14px 34px rgba(7, 26, 52, .2);
}
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  gap: 18px;
  background: var(--white);
  transition: opacity .35s ease, visibility .35s ease;
}
.page-loader img {
  width: min(280px, 72vw);
  border-radius: 8px;
}
.page-loader span {
  width: 180px;
  height: 3px;
  overflow: hidden;
  background: var(--gray-200);
  border-radius: 999px;
}
.page-loader span::before {
  content: "";
  display: block;
  width: 45%;
  height: 100%;
  background: var(--blue-500);
  border-radius: inherit;
  animation: loadingBar 1s ease-in-out infinite;
}
body.loaded .page-loader {
  opacity: 0;
  visibility: hidden;
}
.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
  padding: 0 6vw;
}
.brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  cursor: pointer;
  line-height: 0;
}
.brand img {
  width: auto;
  height: 58px;
  object-fit: contain;
  border-radius: 0;
}
.brand img, .site-footer img { filter: brightness(0) invert(1); transition: filter .25s ease, opacity .25s ease; }
.brand:hover img, .brand:focus-visible img, .footer-brand:hover img, .footer-brand:focus-visible img { filter: none; }
.nav-links { display: flex; align-items: center; gap: 30px; font-weight: 700; color: var(--white); }
.nav-links a:not(.nav-cta):hover { color: var(--blue-500); }
.nav-cta {
  --button-hover-color: var(--blue-500);
  --button-hover-bg: var(--white);
  --button-hover-border: var(--button-hover-color);
  padding: 12px 18px;
  border: 1px solid transparent;
  color: var(--white);
  background: var(--blue-500);
  border-radius: var(--radius);
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.nav-cta:hover {
  color: var(--button-hover-color);
  background: var(--button-hover-bg);
  border-color: var(--button-hover-border);
}
.menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, .24); background: transparent; border-radius: var(--radius); }
.menu-toggle span { display: block; width: 20px; height: 2px; margin: 5px auto; background: var(--white); }

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(320px, .98fr);
  gap: 6vw;
  align-items: center;
  min-height: 680px;
  padding: 70px 6vw 90px;
  background: linear-gradient(135deg, #f7fbff 0%, #ffffff 52%, #edf5fc 100%);
}
.hero h1, .page-title h1, .contact-hero h1 {
  margin: 12px 0 16px;
  color: var(--blue-950);
  font-size: clamp(32px, 4.8vw, 56px);
  line-height: 1.08;
}
.hero p, .page-title p, .contact-hero p { max-width: 670px; color: var(--gray-700); font-size: 18px; }
.eyebrow {
  color: var(--blue-700);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.btn {
  --button-hover-color: var(--blue-500);
  --button-hover-bg: var(--white);
  --button-hover-border: var(--button-hover-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 13px 20px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-weight: 800;
  cursor: pointer;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.btn.primary { color: var(--white); background: var(--blue-500); }
.btn.secondary {
  --button-hover-color: var(--white);
  --button-hover-bg: var(--blue-900);
  --button-hover-border: var(--blue-900);
  color: var(--blue-900);
  background: var(--white);
  border-color: var(--gray-200);
}
.hero-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px 0;
  overflow: visible;
}
.hero-visual img {
  width: min(100%, 620px);
  aspect-ratio: 1.18;
  object-fit: contain;
  transform-origin: center;
  transition: transform .35s ease;
  will-change: transform;
}
.hero-visual:hover img { transform: scale(1.06); }
.home-page main {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 9% 14%, rgba(24, 183, 215, .12), transparent 24%),
    radial-gradient(circle at 91% 28%, rgba(7, 26, 52, .08), transparent 22%),
    radial-gradient(circle at 72% 92%, rgba(24, 183, 215, .1), transparent 26%),
    var(--white);
  background-size: 94% 94%, 88% 88%, 100% 100%, auto;
  animation: quoteGradientFlow 18s ease-in-out infinite alternate;
}
.home-page main::before,
.home-page main::after {
  content: "";
  position: absolute;
  z-index: 0;
  width: min(34vw, 380px);
  aspect-ratio: 1;
  border-radius: 44% 56% 58% 42%;
  pointer-events: none;
  filter: blur(18px);
  opacity: .64;
  animation: quoteBlobMove 18s ease-in-out infinite alternate;
}
.home-page main > * {
  position: relative;
  z-index: 1;
}
.home-page main::before {
  left: -8%;
  top: 8%;
  background: radial-gradient(circle, rgba(24, 183, 215, .16), rgba(24, 183, 215, .04) 38%, rgba(24, 183, 215, 0) 68%);
}
.home-page main::after {
  right: -6%;
  bottom: 3%;
  background: radial-gradient(circle, rgba(7, 43, 102, .12), rgba(7, 43, 102, .03) 40%, rgba(7, 43, 102, 0) 70%);
  animation-duration: 20s;
  animation-delay: -7s;
}
.institutional-strip {
  width: 100%;
  padding: 20px 6vw;
  background: var(--blue-950);
}
.institutional-strip-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(26px, 6vw, 86px);
  width: 100%;
  max-width: 1180px;
  min-height: 54px;
  margin: 0 auto;
}
.institutional-contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 0;
  color: var(--white);
  cursor: pointer;
  font-size: 15px;
  font-weight: 800;
  white-space: nowrap;
  transition: color .3s ease;
}
.institutional-contact > span:not(.institutional-icon) {
  font-weight: 400;
}
.institutional-icon {
  position: relative;
  display: inline-block;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  margin-left: 0;
}
.institutional-icon img {
  position: absolute;
  inset: 0;
  width: 24px;
  height: 24px;
  object-fit: contain;
  transition: opacity .3s ease;
}
.institutional-icon .icon-white { opacity: 1; }
.institutional-icon .icon-color { opacity: 0; }
.institutional-contact:hover .icon-white { opacity: 0; }
.institutional-contact:hover .icon-color { opacity: 1; }
.institutional-contact:hover { color: var(--blue-500); }
.section, .page-title, .catalog-layout, .contact-hero { padding: 70px 6vw; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.section-heading h2 { max-width: 760px; margin: 6px 0 0; color: var(--blue-950); font-size: clamp(24px, 3vw, 34px); line-height: 1.15; }
.catalog-lines-heading {
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
}
.catalog-lines-heading h2,
.related-section .section-heading h2 {
  margin-top: 0;
}
.soft-band { background: var(--gray-100); }
.home-page .soft-band {
  background: var(--blue-950);
}
.home-page .soft-band .section-heading h2 {
  color: var(--white);
}

.category-grid, .benefit-grid, .contact-cards, .segment-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.category-card, .benefit-grid article, .contact-cards article, .segment-grid article {
  padding: 26px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.benefit-grid:not(.compact) article {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform-origin: center center;
  transition: transform .3s ease, border-color .3s ease;
}
.benefit-grid:not(.compact) article::before {
  content: "";
  position: absolute;
  inset: -55% -75%;
  z-index: 0;
  background: linear-gradient(120deg, transparent 40%, rgba(24, 183, 215, .08) 46%, rgba(255, 255, 255, .86) 50%, rgba(24, 183, 215, .08) 54%, transparent 60%);
  opacity: 0;
  transform: translateX(-60%) rotate(18deg);
  transition: opacity .25s ease;
  pointer-events: none;
}
.benefit-grid:not(.compact) article:hover {
  transform: scale(1.03);
  border-color: var(--blue-500);
}
.benefit-grid:not(.compact) article:hover::before {
  opacity: 1;
  animation: benefitShine .8s ease-in-out both;
}
.benefit-grid:not(.compact) article > * {
  position: relative;
  z-index: 1;
}
.category-card {
  display: flex;
  flex-direction: column;
  min-height: 360px;
  overflow: hidden;
  padding: 0;
}
.product-card:hover { transform: scale(1.03); border-color: var(--blue-500); }
.category-media {
  display: grid;
  place-items: center;
  min-height: 210px;
  padding: 24px;
  background: #f8fbfe;
}
.category-media img {
  width: 100%;
  height: 170px;
  object-fit: contain;
  transition: transform .28s ease;
}
.category-card:hover .category-media img {
  transform: scale(1.06);
}
.category-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 24px 26px 26px;
}
.category-card span, .icon {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 16px;
  color: var(--blue-500);
  background: #e8f4ff;
  border-radius: var(--radius);
  font-weight: 900;
}
.benefit-grid .icon[aria-hidden="true"] {
  font-size: 0;
}
.benefit-grid .icon[aria-hidden="true"]::before {
  content: "";
  width: 22px;
  height: 22px;
  background: currentColor;
  -webkit-mask: var(--icon-mask) center / contain no-repeat;
  mask: var(--icon-mask) center / contain no-repeat;
}
.icon-truck {
  --icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 17h4V5H2v12h3'/%3E%3Cpath d='M14 8h4l4 4v5h-3'/%3E%3Ccircle cx='7' cy='17' r='2'/%3E%3Ccircle cx='17' cy='17' r='2'/%3E%3C/svg%3E");
}
.icon-wrench {
  --icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z'/%3E%3C/svg%3E");
}
.icon-phone {
  --icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2A19.8 19.8 0 0 1 3 5.2 2 2 0 0 1 5 3h3a2 2 0 0 1 2 1.7c.1.9.3 1.8.6 2.6a2 2 0 0 1-.5 2.1L9 10.6a16 16 0 0 0 4.4 4.4l1.2-1.1a2 2 0 0 1 2.1-.5c.8.3 1.7.5 2.6.6a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
}
.icon-clipboard {
  --icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='8' height='4' x='8' y='2' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M9 12h6'/%3E%3Cpath d='M9 16h4'/%3E%3C/svg%3E");
}
.icon-printer {
  --icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V2h12v7'/%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M6 14h12v8H6z'/%3E%3Cpath d='M8 18h8'/%3E%3C/svg%3E");
}
.icon-building {
  --icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='16' height='20' x='4' y='2' rx='2' ry='2'/%3E%3Cpath d='M9 22v-4h6v4'/%3E%3Cpath d='M8 6h.01'/%3E%3Cpath d='M16 6h.01'/%3E%3Cpath d='M12 6h.01'/%3E%3Cpath d='M12 10h.01'/%3E%3Cpath d='M12 14h.01'/%3E%3Cpath d='M16 10h.01'/%3E%3Cpath d='M16 14h.01'/%3E%3Cpath d='M8 10h.01'/%3E%3Cpath d='M8 14h.01'/%3E%3C/svg%3E");
}
.icon-badge-check {
  --icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 2.4 3.1 3.9-.4.8 3.8 3.1 2.4-2 3.4.9 3.8-3.7 1.3-1.9 3.4-3.5-1.8-3.5 1.8-1.9-3.4-3.7-1.3.9-3.8-2-3.4 3.1-2.4.8-3.8 3.9.4z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
}
.category-card h3, .benefit-grid h3, .contact-cards h2 { margin: 0 0 8px; color: var(--blue-950); }
.category-card p, .benefit-grid p, .contact-cards p { margin: 0; color: var(--gray-700); }

.product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.product-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  overflow: hidden;
  transform-origin: center center;
  transition: transform .3s ease, border-color .3s ease;
}
.product-card-link {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
  cursor: pointer;
}
.product-card:focus-within {
  transform: scale(1.03);
  border-color: var(--blue-500);
}
.product-card-link:focus-visible { outline: 3px solid #d9edff; outline-offset: -3px; }
.product-card .media { display: grid; place-items: center; min-height: 178px; padding: 18px; background: #f8fbfe; }
.product-card .media img { width: 100%; height: 150px; object-fit: contain; }
.product-card .body { display: flex; flex: 1; flex-direction: column; justify-content: space-between; gap: 12px; padding: 16px 18px 18px; }
.product-card .meta { color: var(--blue-700); font-size: 13px; font-weight: 800; text-transform: uppercase; }
.product-card h3 { margin: 0; color: var(--blue-950); font-size: 16px; line-height: 1.28; overflow-wrap: anywhere; word-break: break-word; }
.product-card .code { color: var(--blue-700); font-size: 13px; font-weight: 800; text-transform: uppercase; }

.catalog-page { background: #fbfdff; }
.page-title { padding-bottom: 28px; }
.page-title h1 { overflow-wrap: break-word; word-break: break-word; }
.page-title .catalog-title {
  margin-bottom: 0;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.14;
}
.catalog-layout {
  display: block;
  padding-top: 0;
}
.filters-panel {
  min-width: 0;
  position: absolute;
  left: 0;
  top: calc(100% + 10px);
  z-index: 12;
  width: min(320px, calc(100vw - 32px));
  padding: 16px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  box-shadow: 0 18px 42px rgba(7, 26, 52, .14);
}
.filters-panel[hidden] { display: none; }
#filters { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 0; }
.catalog-results { min-width: 0; }
.filter-head, .result-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.result-toolbar { position: relative; justify-content: flex-start; flex-wrap: wrap; }
.filter-head h2 { margin: 0; font-size: 20px; color: var(--blue-950); }
.filter-head button { border: 0; color: var(--blue-700); background: transparent; cursor: pointer; font-weight: 800; }
.field, .select-label { display: grid; gap: 7px; color: var(--gray-700); font-size: 13px; font-weight: 800; }
.search-field {
  position: relative;
  flex: 0 1 440px;
  min-width: 280px;
}
.search-field input {
  min-height: 48px;
  padding: 13px 44px 13px 16px;
  border-color: transparent;
  background: var(--white);
  box-shadow: 0 12px 30px rgba(7, 26, 52, .08);
}
.search-field::after {
  content: "";
  position: absolute;
  right: 15px;
  top: 50%;
  width: 19px;
  height: 19px;
  color: var(--blue-700);
  background: currentColor;
  transform: translateY(-50%);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") center / contain no-repeat;
  pointer-events: none;
}
.filters-dropdown { position: relative; flex: 0 0 auto; }
.filters-button {
  min-height: 48px;
  padding: 12px 18px;
  border: 1px solid var(--gray-200);
  color: var(--blue-900);
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: 0 12px 30px rgba(7, 26, 52, .07);
  cursor: pointer;
  font-weight: 400;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.filters-button:hover, .filters-button[aria-expanded="true"] {
  color: var(--white);
  background: var(--blue-900);
  border-color: var(--blue-900);
}
input, select, textarea {
  width: 100%;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 12px 13px;
  color: var(--gray-900);
  background: var(--white);
}
input:focus, select:focus, textarea:focus { outline: 3px solid #d9edff; border-color: var(--blue-500); }
input::placeholder, textarea::placeholder { color: #9aa8b8; opacity: 1; }
.filters-panel .filter-head {
  position: absolute;
  top: 9px;
  right: 10px;
  z-index: 2;
  justify-content: flex-end;
  margin: 0;
}
.clear-filters-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  color: var(--gray-500);
  background: transparent;
  border-radius: 999px;
  cursor: pointer;
  transition: color .2s ease, background .2s ease, opacity .2s ease;
}
.clear-filters-icon::before {
  content: "";
  width: 17px;
  height: 17px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 11v5'/%3E%3Cpath d='M14 11v5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 11v5'/%3E%3Cpath d='M14 11v5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.clear-filters-icon:hover {
  color: var(--blue-700);
  background: #e8f4ff;
}
.filter-group { border-bottom: 0; }
.filter-toggle {
  position: relative;
  width: 100%;
  padding: 12px 44px 12px 0;
  border: 0;
  color: var(--blue-950);
  background: transparent;
  cursor: pointer;
  font-weight: 800;
  text-align: left;
}
.filter-toggle::before {
  content: "▼";
  display: inline-block;
  margin-right: 9px;
  color: var(--blue-700);
  font-size: 11px;
  transition: transform .25s ease;
}
.filter-group.open .filter-toggle::before { transform: rotate(180deg); }
.filter-options {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .28s ease, opacity .22s ease, padding-bottom .28s ease;
}
.filter-group.open .filter-options {
  max-height: 520px;
  padding-bottom: 10px;
  opacity: 1;
}
.check { display: flex; align-items: center; gap: 9px; margin: 9px 0; color: var(--gray-700); font-size: 14px; }
.check input { width: 16px; height: 16px; }
.check span { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
#result-count { margin: 0; color: var(--gray-700); font-weight: 800; }

.product-page { padding: 42px 6vw 70px; background: #fbfdff; }
.ecommerce-detail {
  display: grid;
  grid-template-columns: minmax(420px, 1.15fr) minmax(320px, .85fr);
  gap: 40px;
  align-items: start;
  padding: 34px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  box-shadow: 0 18px 48px rgba(7, 26, 52, .1);
}
.detail-gallery {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.gallery-main {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 500px;
  padding: 16px 24px;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: hidden;
}
.gallery-main img { width: 100%; max-height: 470px; object-fit: contain; transition: transform .18s ease; transform-origin: center; }
.thumbs {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  max-height: 500px;
  overflow-y: auto;
  scrollbar-width: thin;
}
.thumbs button {
  width: 72px;
  height: 72px;
  padding: 6px;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  background: var(--white);
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}
.thumbs button:hover, .thumbs button:focus-visible, .thumbs button.active {
  border-color: var(--blue-500);
  background: #f1f8ff;
  outline: 0;
}
.thumbs img { width: 100%; height: 100%; object-fit: contain; }
.buy-box {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 22px;
  padding: 4px 0 0;
}
.buy-box h1 {
  margin: 0;
  color: var(--blue-950);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.12;
  overflow-wrap: anywhere;
}
.buy-summary {
  margin: 0;
  color: var(--gray-700);
  font-size: 17px;
}
.detail-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; }
.btn.whatsapp {
  --button-hover-color: #1f9d55;
  --button-hover-bg: var(--white);
  gap: 8px;
  color: var(--white);
  background: #1f9d55;
}
.btn.whatsapp::after {
  content: "";
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='black' d='M16.02 3.2A12.74 12.74 0 0 0 5.3 22.8L4 29l6.34-1.66a12.72 12.72 0 0 0 5.68 1.35h.01A12.75 12.75 0 0 0 16.02 3.2Zm7.5 18.17c-.31.87-1.78 1.66-2.48 1.77-.64.1-1.45.15-2.34-.15-.54-.17-1.24-.4-2.13-.78-3.75-1.62-6.2-5.4-6.39-5.65-.18-.25-1.52-2.02-1.52-3.85s.96-2.73 1.3-3.1c.34-.38.75-.47 1-.47h.72c.23 0 .54-.09.84.64.31.75 1.07 2.6 1.16 2.79.09.19.15.41.03.66-.12.25-.18.41-.37.63-.19.22-.39.49-.56.66-.19.19-.38.39-.16.77.22.38.98 1.62 2.1 2.62 1.45 1.29 2.67 1.69 3.05 1.88.38.19.6.16.82-.09.22-.25.94-1.09 1.19-1.47.25-.38.5-.31.84-.19.34.13 2.17 1.03 2.54 1.22.38.19.63.28.72.44.09.16.09.91-.22 1.78Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='black' d='M16.02 3.2A12.74 12.74 0 0 0 5.3 22.8L4 29l6.34-1.66a12.72 12.72 0 0 0 5.68 1.35h.01A12.75 12.75 0 0 0 16.02 3.2Zm7.5 18.17c-.31.87-1.78 1.66-2.48 1.77-.64.1-1.45.15-2.34-.15-.54-.17-1.24-.4-2.13-.78-3.75-1.62-6.2-5.4-6.39-5.65-.18-.25-1.52-2.02-1.52-3.85s.96-2.73 1.3-3.1c.34-.38.75-.47 1-.47h.72c.23 0 .54-.09.84.64.31.75 1.07 2.6 1.16 2.79.09.19.15.41.03.66-.12.25-.18.41-.37.63-.19.22-.39.49-.56.66-.19.19-.38.39-.16.77.22.38.98 1.62 2.1 2.62 1.45 1.29 2.67 1.69 3.05 1.88.38.19.6.16.82-.09.22-.25.94-1.09 1.19-1.47.25-.38.5-.31.84-.19.34.13 2.17 1.03 2.54 1.22.38.19.63.28.72.44.09.16.09.91-.22 1.78Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.btn:hover {
  color: var(--button-hover-color);
  background: var(--button-hover-bg);
  border-color: var(--button-hover-border);
}
.commerce-card {
  min-width: 0;
  padding: 0;
  background: #fbfdff;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
}
.commerce-block { padding: 0 16px; }
.commerce-block + .commerce-block { border-top: 1px solid var(--gray-200); }
.commerce-block h3 {
  margin: 0;
  padding: 14px 0 8px;
  color: var(--blue-900);
  font-size: 15px;
}
.commerce-block:first-child h3 { padding-top: 14px; }
.commerce-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid var(--gray-200);
}
.commerce-row span { min-width: 0; color: var(--gray-700); font-size: 14px; }
.commerce-row strong {
  color: var(--blue-950);
  font-size: 14px;
  text-align: right;
  white-space: nowrap;
}
.warranty-block .commerce-row strong {
  padding: 6px 10px;
  color: var(--white);
  background: var(--blue-700);
  border-radius: 999px;
}
.commerce-card p {
  margin: 10px 0 0;
  padding: 14px 16px 16px;
  border-top: 1px solid var(--gray-200);
  color: var(--gray-500);
  font-size: 13px;
  line-height: 1.45;
}
.product-tabs {
  margin-top: 38px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  box-shadow: 0 16px 42px rgba(7, 26, 52, .07);
  overflow: hidden;
}
.tabs { margin-top: 52px; background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--radius); }
.tab-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 24px;
  border-bottom: 1px solid var(--gray-200);
}
.tab-buttons button {
  position: relative;
  min-height: 58px;
  padding: 18px 4px 16px;
  border: 0;
  color: var(--gray-700);
  background: transparent;
  cursor: pointer;
  font-weight: 800;
}
.tab-buttons button + button { margin-left: 28px; }
.tab-buttons button.active { color: var(--blue-700); }
.tab-buttons button.active::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 3px;
  background: var(--blue-500);
  border-radius: 999px 999px 0 0;
}
.tab-panel { display: none; padding: 28px; }
.tab-panel.active { display: block; }
.tab-panel p {
  max-width: 980px;
  margin: 0 0 14px;
  color: var(--gray-700);
  font-size: 17px;
}
.tab-panel p:last-child { margin-bottom: 0; }
.product-description-body {
  overflow: hidden;
  transition: max-height .38s ease;
}
.description-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-top: 10px;
}
.description-actions.has-divider::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: var(--gray-200);
}
.description-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  color: #000;
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-weight: 400;
  text-decoration: none;
  transition: color .2s ease;
}
.description-toggle:hover,
.description-toggle:focus-visible {
  color: var(--blue-500);
  text-decoration: none;
}
.description-toggle:focus-visible {
  outline: 2px solid #d9edff;
  outline-offset: 2px;
}
.spec-table { width: 100%; border-collapse: collapse; }
.spec-table th, .spec-table td { padding: 15px 16px; border-bottom: 1px solid var(--gray-200); text-align: left; vertical-align: top; }
.spec-table tr:last-child th, .spec-table tr:last-child td { border-bottom: 0; }
.spec-table th { width: 30%; color: var(--blue-950); background: #f8fbfe; font-weight: 800; }
.spec-table td { color: var(--gray-700); overflow-wrap: anywhere; }
.related-section { margin-top: 54px; overflow: visible; }
.related-carousel-shell {
  position: relative;
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  overflow: visible;
}
.related-carousel-shell:has(.featured-carousel) {
  max-width: min(1360px, calc(100vw - 72px));
}
.carousel-btn {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--gray-200);
  color: var(--blue-900);
  background: rgba(255, 255, 255, .94);
  border-radius: 999px;
  box-shadow: 0 12px 28px rgba(7, 26, 52, .16);
  cursor: pointer;
  font-size: 0;
  line-height: 0;
  transform: translateY(-50%);
  transition: color .2s ease, background .2s ease, border-color .2s ease, opacity .2s ease, visibility .2s ease;
}
.carousel-btn::before {
  content: "";
  width: 14px;
  height: 14px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.carousel-btn-next::before { transform: rotate(180deg); }
.carousel-btn:hover {
  color: var(--white);
  background: var(--blue-900);
  border-color: var(--blue-900);
}
.carousel-btn-prev { left: -12px; }
.carousel-btn-next { right: -12px; }
.related-carousel-shell:has(.featured-carousel) .carousel-btn-prev { left: -50px; }
.related-carousel-shell:has(.featured-carousel) .carousel-btn-next { right: -50px; }
.related-carousel {
  --related-gap: 18px;
  --related-card-width: calc((100% - 54px) / 4);
  overflow-x: hidden;
  overflow-y: hidden;
  padding: 14px 0;
  scrollbar-width: none;
}
.related-carousel::-webkit-scrollbar { display: none; }
.related-track {
  display: flex;
  gap: var(--related-gap);
  align-items: stretch;
  transform: translateX(0);
  transition: transform .46s cubic-bezier(.22, 1, .36, 1);
  will-change: transform;
}
.related-carousel .product-card {
  flex: 0 0 var(--related-card-width);
  width: var(--related-card-width);
  max-width: none;
}
.featured-carousel {
  --related-card-width: calc((100% - 72px) / 5);
}
.carousel-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin-top: 16px;
}
.carousel-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  background: #b8c7d8;
  border-radius: 999px;
  cursor: pointer;
  opacity: .8;
  transition: width .2s ease, background .2s ease, opacity .2s ease;
}
.carousel-dot.active {
  width: 34px;
  background: var(--blue-500);
  opacity: 1;
}
.carousel-dot:hover { opacity: 1; }
.list { margin: 0; padding-left: 20px; color: var(--gray-700); }

.contact-hero {
  display: grid;
  grid-template-columns: .9fr 1fr;
  gap: 50px;
  align-items: start;
  background: linear-gradient(135deg, #f7fbff, #ffffff);
}
.contact-logo { width: min(300px, 80vw); margin-bottom: 26px; }
.split-section {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 36px;
  align-items: center;
}
.split-section h2 { margin: 10px 0 16px; color: var(--blue-950); font-size: clamp(26px, 3vw, 38px); line-height: 1.12; }
.split-section p { color: var(--gray-700); font-size: 18px; }
.location-section {
  background: transparent;
}
.location-layout {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, 1fr);
  gap: 32px;
  align-items: center;
}
.location-info {
  display: grid;
  gap: 16px;
  color: var(--gray-700);
}
.location-info p {
  margin: 0;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--gray-200);
}
.location-info p:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.location-info strong {
  display: block;
  margin-bottom: 4px;
  color: var(--blue-950);
}
.location-info a {
  color: var(--blue-700);
  font-weight: 800;
}
.location-info a:hover {
  color: var(--blue-500);
}
.location-map {
  justify-self: center;
  width: 80%;
  height: clamp(300px, 36vw, 410px);
  overflow: hidden;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  background: #f8fbfe;
}
.location-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}
.benefit-grid.compact { grid-template-columns: 1fr; }
.benefit-grid.compact article {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  align-items: stretch;
  min-height: 168px;
  overflow: hidden;
  padding: 0;
}
.differential-content {
  min-width: 0;
  padding: 26px 20px 26px 26px;
}
.differential-visual {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  overflow: hidden;
  padding: 18px 24px;
  background: linear-gradient(135deg, #f8fbfe, #e8f4ff);
}
.differential-visual img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 116px;
  object-fit: contain;
  transition: transform .28s ease;
}
.differential-visual:hover img,
.benefit-grid.compact article:hover .differential-visual img {
  transform: scale(1.06);
}
.contact-info-list {
  display: grid;
  gap: 12px;
  margin-top: 24px;
  color: var(--gray-700);
}
.contact-info-list p { margin: 0; }
.contact-info-list strong { display: block; color: var(--blue-950); }
.quote-page {
  min-height: calc(100vh - 76px);
  background: var(--white);
}
.quote-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 740px);
  justify-content: center;
  min-height: calc(100vh - 76px);
  overflow: hidden;
  padding: 70px 6vw;
  background:
    radial-gradient(circle at 14% 18%, rgba(24, 183, 215, .16), transparent 32%),
    radial-gradient(circle at 86% 22%, rgba(7, 26, 52, .11), transparent 30%),
    radial-gradient(circle at 74% 84%, rgba(24, 183, 215, .13), transparent 34%),
    var(--white);
  background-size: 120% 120%, 118% 118%, 132% 132%, auto;
  animation: quoteGradientFlow 18s ease-in-out infinite alternate;
}
.quote-hero::before,
.quote-hero::after {
  content: "";
  position: absolute;
  width: min(46vw, 520px);
  aspect-ratio: 1;
  border-radius: 44% 56% 58% 42%;
  pointer-events: none;
  filter: blur(18px);
  opacity: .64;
  animation: quoteBlobMove 18s ease-in-out infinite alternate;
}
.quote-hero::before {
  left: -12%;
  top: 10%;
  background: radial-gradient(circle, rgba(24, 183, 215, .22), rgba(24, 183, 215, .06) 42%, rgba(24, 183, 215, 0) 70%);
}
.quote-hero::after {
  right: -10%;
  bottom: -16%;
  background: radial-gradient(circle, rgba(7, 43, 102, .17), rgba(7, 43, 102, .04) 44%, rgba(7, 43, 102, 0) 72%);
  animation-duration: 20s;
  animation-delay: -7s;
}
.contact-form.quote-form {
  position: relative;
  z-index: 1;
  width: min(100%, 740px);
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: 12px;
  padding: clamp(26px, 4vw, 42px);
}
.quote-form-head {
  display: grid;
  justify-items: center;
  grid-column: 1 / -1;
  gap: 0;
  margin-bottom: 0;
  text-align: center;
}
.quote-form-head .contact-logo {
  width: min(160px, 56vw);
  margin: 0;
}
.quote-separator {
  display: block;
  width: 100%;
  height: 1px;
  background: var(--gray-200);
}
.quote-fields {
  display: grid;
  grid-column: 1 / -1;
  width: min(100%, 680px);
  gap: 15px;
}
.contact-form {
  display: grid;
  gap: 14px;
  padding: 26px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.contact-form label { display: grid; gap: 7px; color: var(--gray-700); font-weight: 800; font-size: 14px; }
.quote-fields label,
.quote-fields .form-actions,
.quote-fields .form-status {
  grid-column: 1 / -1;
  width: 100%;
}
.required-mark {
  color: #b3261e;
  font-weight: 800;
  text-decoration: none;
}
.contact-form small { min-height: 17px; color: #b3261e; font-weight: 400; }
.contact-form .invalid input, .contact-form .invalid textarea { border-color: #b3261e; outline-color: #ffe2df; }
.form-actions { display: grid; gap: 12px; }
.form-submit-group { display: grid; gap: 8px; align-content: start; }
.clear-warning {
  width: fit-content;
  margin: 0;
  padding: 0;
  border: 0;
  color: #b3261e;
  background: transparent;
  font-size: 13px;
  font-weight: 400;
  text-align: center;
  cursor: pointer;
  transform-origin: center center;
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}
.clear-warning:hover {
  color: #8f1d17;
  transform: scale(1.03);
}
.quote-form .clear-warning {
  justify-self: center;
}
.form-status { margin: 0; color: var(--blue-700); font-weight: 400; }
.contact-link {
  display: flex;
  align-items: center;
  gap: 10px;
}
.contact-link::before {
  content: "";
  display: inline-block;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  background: currentColor;
}
.contact-link.email::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.contact-link.instagram::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='20' x='2' y='2' rx='5' ry='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' x2='17.51' y1='6.5' y2='6.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='20' x='2' y='2' rx='5' ry='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' x2='17.51' y1='6.5' y2='6.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.contact-link.tiktok::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 3c.36 2.2 1.61 3.74 3.75 4.63v3.22a7.54 7.54 0 0 1-3.67-1.02v5.64c0 3.29-2.54 5.53-5.58 5.53-3.18 0-5.25-2.36-5.25-5.03 0-3.05 2.38-5.17 5.67-5.17.34 0 .67.03 1 .09v3.35a3.2 3.2 0 0 0-1.02-.17c-1.34 0-2.25.79-2.25 1.92 0 1.05.83 1.82 1.88 1.82 1.23 0 2.07-.82 2.07-2.22V3h3.4z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 3c.36 2.2 1.61 3.74 3.75 4.63v3.22a7.54 7.54 0 0 1-3.67-1.02v5.64c0 3.29-2.54 5.53-5.58 5.53-3.18 0-5.25-2.36-5.25-5.03 0-3.05 2.38-5.17 5.67-5.17.34 0 .67.03 1 .09v3.35a3.2 3.2 0 0 0-1.02-.17c-1.34 0-2.25.79-2.25 1.92 0 1.05.83 1.82 1.88 1.82 1.23 0 2.07-.82 2.07-2.22V3h3.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.back-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 30;
  width: 46px;
  height: 46px;
  border: 0;
  color: var(--white);
  background: var(--blue-900);
  border-radius: 999px;
  box-shadow: var(--shadow);
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}
.back-to-top::before {
  content: "";
  width: 22px;
  height: 22px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3Cpath d='M12 21V9'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3Cpath d='M12 21V9'/%3E%3C/svg%3E") center / contain no-repeat;
}
.back-to-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }

.site-footer {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(130px, .7fr) minmax(180px, 1fr) minmax(190px, 1fr) minmax(210px, 1fr);
  gap: 36px;
  padding: 54px 6vw;
  color: #d8e3ef;
  background: var(--blue-950);
}
.site-footer img { width: auto; height: 72px; object-fit: contain; margin-bottom: 16px; border-radius: 0; }
.site-footer h3 { margin: 0 0 12px; color: var(--white); }
.site-footer a, .site-footer span, .site-footer small { display: block; margin: 8px 0; color: #d8e3ef; }
.site-footer .footer-brand { display: inline-flex; margin: 0; cursor: pointer; line-height: 0; }
.site-footer .contact-link { display: flex; }
.site-footer .institutional-contact {
  display: inline-flex;
  justify-content: flex-start;
  width: 100%;
  margin: 8px 0;
  color: var(--white);
}
.site-footer .institutional-contact > span:not(.institutional-icon) {
  display: inline;
  margin: 0;
  color: inherit;
}
.site-footer .institutional-icon {
  display: inline-block;
  margin: 0;
  color: inherit;
}
.site-footer .institutional-icon img {
  width: 24px;
  height: 24px;
  margin: 0;
  filter: none;
}
.site-footer p { max-width: 450px; margin: 0; color: #b9c7d7; }
