
.nc-page { --nc-vino: #5C2E2E; --nc-hondo: #3A1C1C; --nc-oro: #D6AE75; --nc-crema: #FBF4EA; }
.nc-page main { overflow-x: clip; }

.nc-hero {
  position: relative; display: grid; gap: var(--s4); align-items: center;
  min-height: calc(100svh - 150px); padding: var(--s5) var(--s3) var(--s6);
  background: radial-gradient(120% 90% at 70% 30%, #7A433E 0%, var(--nc-vino) 45%, var(--nc-hondo) 100%);
  color: var(--nc-crema); overflow: hidden; isolation: isolate;
}
.nc-hero-fondo { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.nc-aro { position: absolute; width: min(150vw, 980px); left: 50%; top: 58%; translate: -50% -50%; opacity: .55; }
.nc-aro circle { fill: none; stroke: var(--nc-oro); stroke-width: .7; stroke-dasharray: 1131; stroke-dashoffset: 0; }
.nc-aro circle + circle { stroke-width: .4; stroke-dasharray: 3 9; opacity: .7; }
.nc-polvo { position: absolute; inset: 0; }
.nc-polvo i { position: absolute; border-radius: 50%; background: #F1D6A6; opacity: 0; }

.nc-hero-texto { position: relative; max-width: 560px; }
.nc-sello {
  display: inline-block; font: 400 12px/1 var(--sans); letter-spacing: .32em; text-transform: uppercase;
  color: var(--nc-oro); padding: 10px 16px; border: 1px solid rgba(214,174,117,.55); border-radius: 999px;
}
.nc-titulo {
  margin: var(--s3) 0 0; font: 300 clamp(54px, 13vw, 104px)/.98 var(--serif); letter-spacing: -.01em;
}
.nc-titulo em { color: var(--nc-oro); font-style: italic; }
.nc-lede { margin: var(--s3) 0 0; font-size: 17px; line-height: 1.65; color: rgba(251,244,234,.86); max-width: 46ch; }
.nc-page .nc-hero .nc-rango { margin: var(--s2) 0 0; font: 400 13px/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase;
  color: var(--nc-oro); }
.nc-acciones { display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--s4); }
.nc-btn-oro { background: var(--nc-oro); border-color: var(--nc-oro); color: var(--nc-hondo); }
.nc-btn-oro:hover { background: var(--nc-crema); border-color: var(--nc-crema); color: var(--nc-hondo); }

.nc-hero-fotos { position: relative; height: clamp(360px, 92vw, 560px); }
.nc-hero-foto { position: absolute; width: 52%; aspect-ratio: 4 / 5; translate: 0 var(--py, 0px); }
.nc-hero-foto-in { width: 100%; height: 100%; border-radius: 18px; overflow: hidden;
  box-shadow: 0 30px 60px rgba(20,6,6,.45), 0 0 0 1px rgba(214,174,117,.25); }
.nc-hero-foto picture, .nc-hero-foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nc-hero-foto--1 { left: 24%; top: 4%; z-index: 2; rotate: -2deg; }
.nc-hero-foto--2 { left: 0; top: 22%; rotate: -9deg; width: 44%; }
.nc-hero-foto--3 { right: 0; top: 26%; rotate: 8deg; width: 44%; }

.nc-bajar { position: absolute; left: 50%; bottom: 22px; translate: -50% 0; width: 26px; height: 42px;
  border: 1.5px solid rgba(251,244,234,.5); border-radius: 14px; }
.nc-bajar span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--nc-oro); }

@media (min-width: 900px) {
  .nc-hero { grid-template-columns: 1.05fr 1fr; padding: var(--s6) max(var(--s5), calc((100vw - 1200px) / 2)); }
  .nc-hero-fotos { height: 600px; }
}

.nc-cinta { background: var(--nc-hondo); color: var(--nc-oro); overflow: hidden; border-top: 1px solid rgba(214,174,117,.25); }
.nc-cinta div { display: inline-block; white-space: nowrap; padding: 16px 0;
  font: 400 13px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; }

.nc-oro { display: grid; gap: var(--s4); padding-top: var(--s6); padding-bottom: var(--s5); align-items: center; }
.nc-kicker { font: 400 12px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--gold-text); }
.nc-oro h2 { margin: 14px 0 0; font: 300 clamp(40px, 9vw, 64px)/1.02 var(--serif); color: var(--ink); }
.nc-oro h2 em { color: var(--gold); }
.nc-oro p { margin-top: var(--s2); font-size: 16.5px; line-height: 1.7; color: var(--ink-soft); max-width: 46ch; }
.nc-oro-circulos { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.nc-circulo { position: relative; display: block; aspect-ratio: 1; border-radius: 50%; overflow: hidden;
  box-shadow: 0 0 0 1px var(--fillet), 0 0 0 7px var(--bg), 0 0 0 8px var(--fillet), 0 24px 40px rgba(74,34,34,.18); }
.nc-circulo picture, .nc-circulo img { display: block; width: 100%; height: 100%; object-fit: cover;
  object-position: 64% 68%; transform-origin: 64% 68%; scale: var(--z, 1.9); }
.nc-circulo span { position: absolute; left: 50%; bottom: 12%; translate: -50% 0; padding: 7px 14px; border-radius: 999px;
  background: rgba(251,244,234,.92); color: var(--ink-deep); font: 400 12px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; }
@media (min-width: 900px) { .nc-oro { grid-template-columns: 1fr 1.2fr; } }

.nc-grupo { padding-top: var(--s5); }
.nc-grupo-cab { display: grid; grid-template-columns: auto 1fr; column-gap: var(--s2); align-items: baseline;
  border-top: 1px solid var(--border); padding-top: var(--s3); }
.nc-grupo-num { font: 300 44px/1 var(--serif); color: var(--gold-light); }
.nc-grupo-h2 { margin: 0; font: 300 clamp(32px, 7vw, 44px)/1.1 var(--serif); color: var(--ink); }
.nc-grupo-h2 i { font: 400 13px/1 var(--sans); color: var(--ink-soft); vertical-align: super; margin-left: 4px; }
.nc-grupo-cab p { grid-column: 2; margin: 8px 0 0; color: var(--ink-soft); font-size: 15.5px; line-height: 1.6; max-width: 52ch; }
.nc-rejilla { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s3) var(--s2); margin-top: var(--s4); }
.nc-rejilla--1 { grid-template-columns: minmax(0, 1fr); max-width: 420px; }
@media (min-width: 900px) {
  .nc-rejilla { grid-template-columns: repeat(4, 1fr); }
  .nc-rejilla--2 { grid-template-columns: repeat(2, minmax(0, 300px)); }
  .nc-rejilla--1 { grid-template-columns: minmax(0, 380px); }
  .nc-titulo { font-size: clamp(64px, 6.4vw, 96px); }
}

.nc-card { display: block; color: var(--ink); text-decoration: none; }
.nc-card-foto { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: 14px; overflow: hidden; background: #A8805F; }
.nc-card-foto picture, .nc-card-foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nc-card-foto picture { position: absolute; inset: 0; transition: opacity .6s ease, scale 1.2s cubic-bezier(.2,.7,.2,1); }
.nc-card-b { opacity: 0; }
.nc-card-ver { position: absolute; left: 12px; bottom: 12px; padding: 8px 13px; border-radius: 999px; background: rgba(251,244,234,.94);
  font: 400 11px/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-deep);
  opacity: 0; translate: 0 8px; transition: opacity .35s, translate .35s; }
.nc-card:hover .nc-card-a, .nc-card:focus-visible .nc-card-a { scale: 1.05; }
.nc-card:hover .nc-card-b, .nc-card:focus-visible .nc-card-b, .nc-card.nc-alterna .nc-card-b { opacity: 1; }
.nc-card:hover .nc-card-ver, .nc-card:focus-visible .nc-card-ver { opacity: 1; translate: 0 0; }
.nc-card-texto { display: block; padding-top: 12px; }
.nc-card-nombre { display: block; font: 400 19px/1.25 var(--serif); }
.nc-card-precio { display: block; margin-top: 6px; font: 400 15px/1 var(--sans); color: var(--gold-text); }

.nc-taller { margin-top: var(--s6); padding: var(--s6) 0; background: var(--nc-hondo); color: var(--nc-crema); }
.nc-taller h2 { margin: 0; font: 300 clamp(38px, 8vw, 58px)/1.05 var(--serif); }
.nc-taller h2 em { color: var(--nc-oro); }
.nc-pasos { list-style: none; margin: var(--s4) 0 0; padding: 0; display: grid; gap: var(--s3); }
.nc-pasos li { display: grid; grid-template-columns: 64px 1fr; align-items: baseline; padding-top: var(--s2);
  border-top: 1px solid rgba(214,174,117,.3); }
.nc-pasos b { font: 300 34px/1 var(--serif); color: var(--nc-oro); }
.nc-pasos span { font-size: 16.5px; line-height: 1.6; color: rgba(251,244,234,.88); }
@media (min-width: 900px) { .nc-pasos { grid-template-columns: repeat(4, 1fr); } .nc-pasos li { grid-template-columns: 1fr; gap: 12px; } }

.nc-cierre { margin-top: 0; }

@media (prefers-reduced-motion: no-preference) {
  .nc-js [data-nc-revela] { opacity: 0; translate: 0 28px;
    transition: opacity .9s ease calc(var(--i, 0) * 110ms), translate 1s cubic-bezier(.2,.7,.2,1) calc(var(--i, 0) * 110ms); }
  .nc-js [data-nc-revela].nc-visto { opacity: 1; translate: 0 0; }

  .nc-js .nc-letra { display: inline-block; opacity: 0; translate: 0 .55em; filter: blur(6px);
    transition: opacity .8s ease, translate .9s cubic-bezier(.2,.7,.2,1), filter .8s ease;
    transition-delay: calc(var(--l) * 32ms + 150ms); }
  .nc-listo .nc-letra { opacity: 1; translate: 0 0; filter: blur(0); }

  .nc-js .nc-hero-foto-in { opacity: 0; transform: translateY(120px) rotate(10deg) scale(.9);
    transition: opacity 1s ease, transform 1.3s cubic-bezier(.2,.8,.2,1); }
  .nc-js .nc-hero-foto--1 .nc-hero-foto-in { transition-delay: .55s; }
  .nc-js .nc-hero-foto--2 .nc-hero-foto-in { transition-delay: .75s; }
  .nc-js .nc-hero-foto--3 .nc-hero-foto-in { transition-delay: .95s; }
  .nc-listo .nc-hero-foto-in { opacity: 1; transform: none; animation: nc-flota 7s ease-in-out 2.4s infinite alternate; }
  .nc-listo .nc-hero-foto--2 .nc-hero-foto-in { animation-duration: 8s; animation-delay: 2.8s; }
  .nc-listo .nc-hero-foto--3 .nc-hero-foto-in { animation-duration: 9s; animation-delay: 3.1s; }

  .nc-js .nc-aro circle:first-child { stroke-dashoffset: 1131; transition: stroke-dashoffset 3.2s cubic-bezier(.4,0,.2,1) .2s; }
  .nc-listo .nc-aro circle:first-child { stroke-dashoffset: 0; }
  .nc-aro { animation: nc-gira 80s linear infinite; }
  .nc-polvo i { animation: nc-sube var(--d) linear var(--r) infinite; }
  .nc-cinta div { animation: nc-cinta 38s linear infinite; }
  .nc-bajar span { animation: nc-bajar 1.8s ease-in-out infinite; }
}

@keyframes nc-flota { from { translate: 0 0; } to { translate: 0 -14px; } }
@keyframes nc-gira { to { rotate: 360deg; } }
@keyframes nc-cinta { to { transform: translateX(-50%); } }
@keyframes nc-bajar { 0% { translate: 0 0; opacity: 1; } 70% { translate: 0 14px; opacity: 0; } 100% { translate: 0 0; opacity: 0; } }
@keyframes nc-sube {
  0% { opacity: 0; transform: translateY(0); }
  15% { opacity: var(--a); }
  85% { opacity: var(--a); }
  100% { opacity: 0; transform: translateY(-46vh); }
}
