:root { --bg:#07111a; --bg-strong:#03080d; --panel:rgba(9,22,34,.91); --panel-soft:rgba(255,255,255,.05); --text:#f4f7fb; --muted:#bfccd7; --line:rgba(255,255,255,.14); --orange:#ec6d2f; --blue:#4bb4ff; --green:#39c68a; --gold:#d7a928; --red:#e05b5b; --cyan:#35d1d1; --neutral:#9aa9b5; --shadow:0 24px 70px rgba(0,0,0,.35); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } *{box-sizing:border-box} body{margin:0;color:var(--text);background:var(--bg)} a{color:inherit}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;height:92px;padding:0 70px;display:grid;grid-template-columns:250px 1fr auto;align-items:center;gap:32px;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,.56),rgba(0,0,0,0))}.brand{display:flex;align-items:center;min-width:0;text-decoration:none;gap:12px}.brand img{display:block;object-fit:contain}.brand-logo-icon{height:54px;width:54px;flex:0 0 auto}.brand-logo-text{height:40px;width:188px;max-width:188px;flex:0 0 auto;object-fit:contain}.main-nav{display:flex;justify-content:center;gap:42px;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.main-nav a,.header-actions a{text-decoration:none}.header-actions{display:flex;align-items:center;gap:22px;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.login{padding:10px 16px;border:1px solid rgba(255,255,255,.38);border-radius:999px}.langs{display:flex;gap:12px;padding-left:20px;border-left:1px solid rgba(255,255,255,.35)}.langs a{opacity:.66}.langs a.active{opacity:1;color:var(--orange)}.hero{position:relative;overflow:hidden;min-height:620px;display:flex;align-items:center;padding:132px 72px 72px;background-image:none!important}.hero::before{content:"";position:absolute;inset:0;z-index:0;background:var(--hero-image) center center/cover no-repeat;transform:scale(1.012);will-change:transform,background-position}.hero-motion-dark::before,.hero-panorama-dark::before,.hero-stones-light::before{animation:heroDrift 24s ease-in-out infinite alternate}.hero-panorama-dark::before{background-position:center center;transform:scale(1.012)}.hero-stones-light::before{background-position:center center;transform:scale(1.012)}.hero-backdrop{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(4,12,18,.94) 0%,rgba(4,12,18,.76) 42%,rgba(4,12,18,.24) 100%)}.hero-stones-light .hero-backdrop{background:linear-gradient(90deg,rgba(248,246,240,.95) 0%,rgba(248,246,240,.82) 45%,rgba(248,246,240,.34) 100%)}.hero-stones-light .section-title{color:#b64d21}.hero-content{position:relative;z-index:2;max-width:920px}.eyebrow{margin:0 0 18px;color:var(--orange);font-weight:900;letter-spacing:.18em;text-transform:uppercase}h1{margin:0;font-size:clamp(36px,4.8vw,68px);line-height:.96;letter-spacing:-.045em;max-width:820px}.lead{max-width:700px;margin:26px 0 0;color:var(--muted);font-size:clamp(16px,1.28vw,22px);line-height:1.38;font-weight:500}.cta{display:inline-flex;align-items:center;gap:14px;margin-top:38px;padding:16px 24px;color:#fff;background:var(--orange);border-radius:7px;text-decoration:none;font-weight:900}.hero-stones-light h1,.hero-stones-light .lead{color:#13202c}.hero-stones-light .eyebrow{color:#b64d21}.section{padding:58px 72px}.section-title{margin:0 0 22px;color:var(--orange);font-size:14px;line-height:1.2;font-weight:900;letter-spacing:.32em;text-transform:uppercase}.products{display:grid;grid-template-columns:repeat(var(--cols,4),1fr);gap:12px}.product-card{min-height:230px;padding:28px 30px;border:1px solid rgba(255,255,255,.12);border-top:4px solid var(--accent, var(--blue));background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));box-shadow:var(--shadow)}.product-index{display:none}.product-card h3{margin:0 0 14px;font-size:21px;line-height:1.12;letter-spacing:-.025em}.product-card p{margin:0;color:var(--muted);line-height:1.55}.news-section{padding-top:16px}.news{display:grid;grid-template-columns:repeat(var(--cols,2),1fr);gap:14px}.news-card{min-height:310px;display:grid;grid-template-columns:1.05fr 1fr;overflow:hidden;border:1px solid rgba(255,255,255,.13);border-top:4px solid var(--accent, var(--blue));background:var(--panel);box-shadow:var(--shadow)}.news-card img{width:100%;height:100%;object-fit:cover}.news-card div{padding:32px}.news-card span{color:var(--accent, var(--blue));text-transform:uppercase;letter-spacing:.15em;font-weight:900;font-size:12px}.news-card h3{margin:18px 0 10px;font-size:23px;line-height:1.08}.news-card p{margin:0;color:var(--muted);line-height:1.55}.site-footer{margin-top:28px;padding:28px 72px 42px;display:flex;justify-content:space-between;gap:24px;background:var(--bg-strong);border-top:3px solid var(--orange)}.site-footer div{display:flex;flex-wrap:wrap;gap:24px}.site-footer a{color:var(--muted);text-decoration:none}.page-hero{min-height:380px;display:flex;align-items:end;padding:130px 72px 58px;background:linear-gradient(90deg,rgba(4,12,18,.94),rgba(4,12,18,.45)),var(--hero-image) center/cover no-repeat}.page-body{max-width:1180px;margin:0 auto;padding:48px 72px;display:grid;grid-template-columns:1fr;gap:18px}.page-card{padding:30px;background:var(--panel-soft);border:1px solid var(--line)}.load-error{max-width:920px;margin:12vh auto;padding:32px;font-family:system-ui,sans-serif}.load-error pre{white-space:pre-wrap;background:#101820;color:#f4f4f4;padding:16px;overflow:auto}@keyframes heroDrift{from{transform:scale(1.012) translate3d(-.45%,-.35%,0);background-position:center 48%}to{transform:scale(1.035) translate3d(.55%,.45%,0);background-position:center 52%}}@media(max-width:980px){.site-header{position:absolute;grid-template-columns:1fr;height:auto;padding:22px;gap:16px;background:rgba(0,0,0,.5)}.brand-logo-icon{height:54px;width:54px;flex:0 0 auto}.brand-logo-text{height:40px;width:188px;max-width:188px;flex:0 0 auto;object-fit:contain}.main-nav,.header-actions{justify-content:flex-start;flex-wrap:wrap}.hero{min-height:650px;padding:220px 24px 62px}.section{padding:42px 24px}.products,.news,.page-body{grid-template-columns:1fr}.news-card{grid-template-columns:1fr}.site-footer{display:block;padding:28px 24px}}


/* v7.2: iconos elegantes de acceso a detalle en servicios y actualidad */
.product-card-has-link,
.news-card-has-link {
  position: relative;
}

.card-detail-link {
  position: absolute;
  right: 18px;
  bottom: 18px;
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  color: var(--text);
  background: rgba(255, 255, 255, 0.075);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}

.card-detail-link svg {
  width: 18px;
  height: 18px;
}

.card-detail-link:hover,
.card-detail-link:focus-visible {
  transform: translateY(-2px);
  color: #fff;
  background: var(--orange);
  border-color: rgba(255, 255, 255, 0.28);
  outline: none;
}

.product-card-has-link {
  padding-bottom: 72px;
}

.news-card-has-link {
  padding-bottom: 28px;
}

.news-card-has-link .card-detail-link {
  right: 22px;
  bottom: 22px;
}

@media (max-width: 720px) {
  .card-detail-link {
    right: 14px;
    bottom: 14px;
  }
}


/* v7.3: imagen hero panorámica con paneo y tipografías solicitadas */
.hero {
  overflow: hidden;
}

.hero-backdrop {
  background-size: cover;
  background-position: center center;
  animation: nvtkHeroPan 34s ease-in-out infinite alternate;
  will-change: transform, background-position;
}

@keyframes nvtkHeroPan {
  0% {
    transform: scale(1.035) translate3d(-1.8%, 0, 0);
    background-position: 42% center;
  }
  50% {
    transform: scale(1.055) translate3d(0.4%, -0.35%, 0);
    background-position: 50% center;
  }
  100% {
    transform: scale(1.075) translate3d(1.8%, 0.2%, 0);
    background-position: 58% center;
  }
}

h1 {
  margin: 0;
  font-size: clamp(36px, 4.8vw, 54px);
  line-height: .96;
  letter-spacing: -.045em;
  max-width: 820px;
}

.product-card h3 {
  margin: 0 0 14px;
  font-size: 19px;
  line-height: 1.12;
  letter-spacing: -.025em;
}


/* v7.4: barco completo visible + movimiento sutil sin recorte */
.hero-backdrop {
  background-size: contain;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-color: #0b0c0d;
  transform: none;
  animation: nvtkHeroShipFullPan 28s ease-in-out infinite alternate;
  will-change: background-position, filter;
}

@keyframes nvtkHeroShipFullPan {
  0% {
    background-position: 47% 50%;
    filter: saturate(1.02) brightness(.96);
  }
  50% {
    background-position: 50% 49%;
    filter: saturate(1.06) brightness(1);
  }
  100% {
    background-position: 53% 50%;
    filter: saturate(1.03) brightness(.98);
  }
}

@media (max-width: 900px) {
  .hero-backdrop {
    background-size: contain;
    background-position: 50% 50%;
  }
}


/* v7.5: corrección visibilidad del hero ship */
.hero {
  background: #0b0c0d;
}

.hero-backdrop {
  background-image: var(--hero-image);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-color: #0b0c0d;
  opacity: 1;
  transform: none;
  animation: nvtkHeroShipFullPan 28s ease-in-out infinite alternate;
  will-change: background-position, filter;
}

@keyframes nvtkHeroShipFullPan {
  0% {
    background-position: 46% 50%;
    filter: saturate(1.03) brightness(.96);
  }
  50% {
    background-position: 50% 49%;
    filter: saturate(1.07) brightness(1);
  }
  100% {
    background-position: 54% 50%;
    filter: saturate(1.03) brightness(.98);
  }
}


/* v7.6: nueva imagen panorámica del barco */
.hero {
  background: #0b0c0d;
}

.hero-backdrop {
  background-image: var(--hero-image);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  opacity: 1;
  transform: none;
  animation: nvtkHeroShipPanV2 32s ease-in-out infinite alternate;
  will-change: background-position, filter;
}

@keyframes nvtkHeroShipPanV2 {
  0% {
    background-position: 45% 50%;
    filter: saturate(1.02) brightness(.96);
  }
  50% {
    background-position: 50% 49%;
    filter: saturate(1.06) brightness(1);
  }
  100% {
    background-position: 55% 50%;
    filter: saturate(1.03) brightness(.98);
  }
}


/* v7.7: restaura oscurecimiento lateral izquierdo del hero */
.hero {
  position: relative;
  isolation: isolate;
  background: #05090d;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg,
      rgba(2, 7, 12, 0.92) 0%,
      rgba(2, 7, 12, 0.78) 22%,
      rgba(2, 7, 12, 0.44) 43%,
      rgba(2, 7, 12, 0.16) 66%,
      rgba(2, 7, 12, 0.05) 100%),
    linear-gradient(180deg,
      rgba(2, 7, 12, 0.26) 0%,
      rgba(2, 7, 12, 0.06) 42%,
      rgba(2, 7, 12, 0.42) 100%);
}

.hero-backdrop {
  z-index: 0;
}

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


/* v7.8: padding de secciones y corrección de animación visible del hero */
.section {
  padding: 26px 72px 0px 72px;
}

.hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.hero-backdrop {
  position: absolute;
  inset: -3%;
  z-index: 0;
  background-image: var(--hero-image);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  opacity: 1;
  transform-origin: center center;
  animation: nvtkHeroShipVisibleMotion 30s ease-in-out infinite alternate;
  will-change: transform, background-position, filter;
}

@keyframes nvtkHeroShipVisibleMotion {
  0% {
    transform: scale(1.025) translate3d(-1.2%, -0.35%, 0);
    background-position: 47% 50%;
    filter: saturate(1.02) brightness(.96);
  }
  50% {
    transform: scale(1.045) translate3d(0.2%, 0.1%, 0);
    background-position: 50% 49%;
    filter: saturate(1.06) brightness(1);
  }
  100% {
    transform: scale(1.065) translate3d(1.2%, 0.35%, 0);
    background-position: 53% 50%;
    filter: saturate(1.03) brightness(.98);
  }
}

.hero::after {
  z-index: 1;
}

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

/* v7.9: H1 consistente en home y páginas internas */
h1,
.hero h1,
.page-hero h1,
.detail-hero h1 {
  margin: 0;
  font-size: clamp(36px, 4.8vw, 54px);
  line-height: .96;
  letter-spacing: -.045em;
  max-width: 820px;
}

/* V5.362: carrusel de textos sobre imagen del hero */
.hero-carousel {
  position: absolute;
  z-index: 2;
  right: clamp(32px, 7vw, 96px);
  top: 50%;
  transform: translateY(-50%) translateX(10px);
  width: min(34vw, 460px);
  min-height: 3.2em;
  color: rgba(255, 255, 255, .86);
  font-size: clamp(16px, 1.55vw, 22px);
  line-height: 1.45;
  letter-spacing: -.015em;
  font-style: italic;
  font-weight: 400;
  text-align: left;
  text-shadow: 0 18px 42px rgba(0, 0, 0, .68);
  opacity: 0;
  transition: opacity .55s ease, transform .55s ease;
  pointer-events: none;
}

.hero-carousel.is-visible {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

@media (max-width: 980px) {
  .hero-carousel {
    position: relative;
    right: auto;
    top: auto;
    transform: none;
    width: auto;
    margin: 26px 24px 0;
  }

  .hero-carousel.is-visible {
    transform: none;
  }
}

/* V5.363: carrusel centrado en la segunda mitad horizontal del hero */
.hero-carousel {
  left: 50%;
  right: 0;
  width: 50%;
  max-width: none;
  box-sizing: border-box;
  padding: 0 clamp(32px, 5vw, 72px);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  transform: translateY(-50%) translateX(0);
}

.hero-carousel.is-visible {
  transform: translateY(-50%) translateX(0);
}

@media (max-width: 980px) {
  .hero-carousel {
    left: auto;
    right: auto;
    width: auto;
    max-width: none;
    padding: 0;
    display: block;
    text-align: left;
  }
}

/* V5.364: altura fija del cuadro principal hero */
.hero {
  height: 580px;
  min-height: 580px;
}



/* v8.2: news-card stacks image vertically when 3+ per row */
@media (min-width:981px) {
  .news[style*="--cols:3"] .news-card,
  .news[style*="--cols:4"] .news-card {
    grid-template-columns: 1fr;
    grid-template-rows: 180px auto;
    min-height: 340px;
  }
  .news[style*="--cols:3"] .news-card img,
  .news[style*="--cols:4"] .news-card img {
    width: 100%; height: 100%; object-fit: cover;
  }
}

/* V5.499: persisted landing image presentation. */
.hero::before {
  background-position: var(--hero-position-x, 50%) var(--hero-position-y, 50%);
  background-size: var(--hero-size, 100%);
}
.hero.nvtk-image-adjusted::before,
.hero[style*="--hero-size"]::before {
  animation: none;
}
.news-card img,
.blog-related a img {
  will-change: transform, object-position;
}

/* V5.500: image presentation scale supports 50% through 200%; values below 100% intentionally reveal the container background. */


/* V5.501: landing image presentation is clipped to the original design frame. */
.nvtk-image-clip-frame {
  position: relative;
  overflow: hidden !important;
  contain: paint;
}
.nvtk-image-clip-frame > img.nvtk-preview-editable-image,
.news-card > img,
.blog-related a > img {
  max-width: none;
  will-change: transform, object-position;
}
.hero,
.detail-hero,
.news-card,
.blog-related a {
  overflow: hidden;
  contain: paint;
}
