@charset "utf-8";

/* HERO-MAP.CSS — SHARED LVL2 + LVL3 */

/* =========================
   LVL3 CIRCUIT HERO GEOMETRY VARIABLES
   ========================= */

:root:has(body.ns-circuit){
  --ns-region-edge:clamp(18px, calc(3.431vw + 5.647px), 32px);
  --ns-region-editorial-edge:var(--ns-region-edge);
  --ns-region-grid-gap:clamp(20px, calc(2.941vw + 9.412px), 32px);
  --ns-region-section-space:clamp(96px, calc(7.843vw + 67.765px), 128px);
  --ns-region-overlap:clamp(32px, calc(4.902vw + 14.353px), 52px);
  --ns-rhero-map-copy-gap:clamp(24px, calc(2.941vw + 13.412px), 36px);
  --ns-rhero-map-center-shift:0px;
  --ns-rhero-mask-tail:clamp(230px, 60vw, 320px);
  --ns-rhero-mask-solid:clamp(150px, 42vw, 210px);
}

@media (768px <= width < 1024px){
  :root:has(body.ns-circuit){
    --ns-region-edge:clamp(32px, calc(6.25vw - 16px), 48px);
    --ns-region-editorial-edge:var(--ns-region-edge);
    --ns-region-grid-gap:clamp(32px, calc(6.25vw - 16px), 48px);
    --ns-region-section-space:clamp(128px, calc(7.813vw + 68px), 148px);
    --ns-region-overlap:clamp(52px, calc(9.375vw - 20px), 76px);
    --ns-rhero-map-copy-gap:clamp(36px, 4.688vw, 48px);
    --ns-rhero-mask-tail:clamp(280px, 35vw, 360px);
    --ns-rhero-mask-solid:clamp(170px, 21vw, 220px);
  }
}

@media (width >= 1024px){
  :root:has(body.ns-circuit){
    --ns-region-edge:clamp(48px, calc(5.357vw - 6.857px), 96px);
    --ns-region-editorial-edge:var(--ns-region-edge);
    --ns-region-grid-gap:clamp(48px, calc(5.357vw - 6.857px), 96px);
    --ns-region-section-space:clamp(148px, calc(5.357vw + 93.143px), 196px);
    --ns-region-overlap:clamp(76px, calc(7.143vw + 2.857px), 140px);
    --ns-rhero-map-copy-gap:clamp(48px, calc(3.571vw + 11.429px), 80px);
    --ns-rhero-map-center-shift:clamp(64px, calc(8.482vw - 22.857px), 140px);
    --ns-rhero-mask-tail:clamp(300px, calc(8.929vw + 208.571px), 380px);
    --ns-rhero-mask-solid:clamp(180px, calc(4.464vw + 134.286px), 220px);
  }
}

@media (width > 1024px) and (max-aspect-ratio:3 / 2){
  :root:has(body.ns-circuit){
    --ns-rhero-map-center-shift:clamp(120px, 12vw, 170px);
  }
}

/* =========================
   BASQUE / GALICIA / CAMINO: HERO MAPS
   ========================= */

.ns-region-hero{
  --ns-rhero-edge:clamp(18px, 4.6vw, 48px);
  --ns-region-overlap:clamp(34px, 6vw, 76px);
  --ns-rhero-stable-viewport-height:100svh;

  --ns-rhero-stack-terrain-width:90vw;
  --ns-rhero-stack-terrain-min-width:90vw;
  --ns-rhero-stack-terrain-top-gap:clamp(58px, 8vw, 88px);
  --ns-rhero-stack-terrain-viewport-bottom-safe:clamp(14px, 2vw, 24px);
  --ns-rhero-stack-copy-gap-ratio:.035;
  --ns-rhero-stack-copy-gap-min:clamp(20px, 2.6vw, 26px);
  --ns-rhero-stack-copy-gap-max:clamp(34px, 4vw, 42px);
  --ns-rhero-stack-copy-top:calc(var(--topbar-h) + 94vw);
  --ns-rhero-stack-bottom-gap:clamp(84px, 10vw, 112px);

  --ns-rhero-desktop-terrain-width:clamp(760px, 62vw, 1120px);
  --ns-rhero-desktop-terrain-min-width:clamp(720px, 46vw, 980px);
  --ns-rhero-desktop-terrain-top:clamp(72px, 8vh, 92px);
  --ns-rhero-desktop-right-bias:.08;
  --ns-rhero-desktop-right-edge:clamp(14px, 1.8vw, 36px);
  --ns-rhero-desktop-left-edge:clamp(48px, 4.8vw, 92px);
  --ns-rhero-desktop-copy-land-gap:clamp(14px, 1.35vw, 26px);
  --ns-rhero-desktop-copy-left:var(--ns-rhero-desktop-left-edge);
  --ns-rhero-desktop-bottom-gap:clamp(14px, 2vh, 24px);
  --ns-rhero-desktop-terrain-max-height:0px;

  position:relative;
  isolation:isolate;
  width:100vw;
  min-height:0;
  margin-left:calc(50% - 50vw);
  overflow:hidden;
  background:transparent;
  -webkit-mask-image:none;
  mask-image:none;
}

.ns-region-hero__inner{
  position:relative;
  z-index:1;
  width:100%;
  min-height:0;
  margin:0;
  padding:
    var(--ns-rhero-stack-copy-top)
    var(--ns-rhero-edge)
    var(--ns-rhero-stack-bottom-gap);
}

.ns-region-hero__copy{
  position:relative;
  z-index:6;
  width:min(100%, 680px);
  margin:0 auto;
  padding:0;
  text-align:center;
  transform:none;
}

.ns-region-hero__copy .ns-home-scroll-bridge{
  margin-left:auto;
  margin-right:auto;
}

.ns-region-hero__visual{
  position:absolute;
  left:0;
  right:0;
  top:var(--topbar-h);
  bottom:0;
  z-index:1;
  width:100vw;
  max-width:none;
  height:auto;
  margin:0;
  isolation:isolate;
  overflow:visible;
  transform:none;
}

.ns-region-hero__visual::before{
  content:"";
  position:absolute;
  inset:8%;
  z-index:-1;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(
    circle,
    rgba(240,197,111,.11) 0%,
    rgba(240,197,111,.04) 42%,
    rgba(240,197,111,0) 74%
  );
  filter:blur(24px);
}

.ns-region-hero__image-mask{
  position:absolute;
  inset:0;
  z-index:1;
  overflow:visible;
  pointer-events:none;
  -webkit-mask-image:none;
  mask-image:none;
}

.ns-region-hero__image{
  display:block;
  margin:0;
  pointer-events:none;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.38));
}

@media (width < 1440px){

  body:is(
    .ns-region--galicia,
    .ns-region--camino,
    .ns-circuit--galicia,
    .ns-circuit--camino
  ) .ns-rmap__mapimg{
    -webkit-mask-image:linear-gradient(
      to bottom,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,1) 82%,
      rgba(0,0,0,.96) 84.4%,
      rgba(0,0,0,.84) 86.7%,
      rgba(0,0,0,.64) 89.6%,
      rgba(0,0,0,.38) 92.4%,
      rgba(0,0,0,.18) 95.3%,
      rgba(0,0,0,.06) 97.6%,
      rgba(0,0,0,0) 100%
    );
    -webkit-mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;

    mask-image:linear-gradient(
      to bottom,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,1) 82%,
      rgba(0,0,0,.96) 84.4%,
      rgba(0,0,0,.84) 86.7%,
      rgba(0,0,0,.64) 89.6%,
      rgba(0,0,0,.38) 92.4%,
      rgba(0,0,0,.18) 95.3%,
      rgba(0,0,0,.06) 97.6%,
      rgba(0,0,0,0) 100%
    );
    mask-repeat:no-repeat;
    mask-size:100% 100%;
  }
}

@media (width >= 1440px){

  body:is(
    .ns-region--galicia,
    .ns-region--camino,
    .ns-circuit--galicia,
    .ns-circuit--camino
  ) .ns-region-hero__image-mask{
    -webkit-mask-image:linear-gradient(
      to bottom,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,1) 82%,
      rgba(0,0,0,.96) 84.4%,
      rgba(0,0,0,.84) 86.7%,
      rgba(0,0,0,.64) 89.6%,
      rgba(0,0,0,.38) 92.4%,
      rgba(0,0,0,.18) 95.3%,
      rgba(0,0,0,.06) 97.6%,
      rgba(0,0,0,0) 100%
    );
    -webkit-mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;

    mask-image:linear-gradient(
      to bottom,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,1) 82%,
      rgba(0,0,0,.96) 84.4%,
      rgba(0,0,0,.84) 86.7%,
      rgba(0,0,0,.64) 89.6%,
      rgba(0,0,0,.38) 92.4%,
      rgba(0,0,0,.18) 95.3%,
      rgba(0,0,0,.06) 97.6%,
      rgba(0,0,0,0) 100%
    );
    mask-repeat:no-repeat;
    mask-size:100% 100%;
  }
}

.ns-rmap__svg-use{
  --ns-map-outline-width:clamp(.7px, .08vw, 2px);
  --ns-map-province-width:clamp(.525px, .06vw, 1.5px);
}

.ns-region-hero__pins{
  position:absolute;
  inset:0;
  z-index:5;
  width:100%;
  height:100%;
  pointer-events:none;
}

@keyframes nsMobileMapMarkerPulse{
  0%,
  100%{
    box-shadow:
      0 10px 18px rgba(0,0,0,.78),
      0 0 26px rgba(255,226,158,.78),
      0 0 48px rgba(240,197,111,.34),
      0 0 72px rgba(240,197,111,.12),
      inset 0 1px 0 rgba(255,255,255,.14);
  }

  50%{
    box-shadow:
      0 10px 18px rgba(0,0,0,.78),
      0 0 38px rgba(255,226,158,.98),
      0 0 72px rgba(240,197,111,.60),
      0 0 108px rgba(240,197,111,.24),
      inset 0 1px 0 rgba(255,255,255,.14);
  }
}

@keyframes nsMobileMapMarkerFloat{
  0%,
  100%{
    top:0;
  }

  50%{
    top:-3px;
  }
}

@keyframes nsCaminoMapIconBreathe{
  0%,
  100%{
    transform:translate(-50%, -50%) scale(1);
  }

  50%{
    transform:translate(-50%, -50%) scale(1.08);
  }
}

@keyframes nsMobileMapRingPulseOuter{
  0%,
  100%{
    opacity:.88;
    transform:translate(-50%, -50%) scale(1);
  }

  50%{
    opacity:.54;
    transform:translate(-50%, -50%) scaleX(.50) scaleY(.62);
  }
}

@keyframes nsMobileMapRingPulseInner{
  0%,
  100%{
    opacity:.96;
    transform:translate(-50%, -50%) scale(1);
  }

  50%{
    opacity:.64;
    transform:translate(-50%, -50%) scaleX(.56) scaleY(.68);
  }
}

@keyframes nsMobileMapIconPulse{
  0%,
  100%{
    filter:
      drop-shadow(0 5px 8px rgba(0,0,0,.84))
      drop-shadow(0 0 18px rgba(255,226,158,.64))
      drop-shadow(0 0 30px rgba(240,197,111,.24));
  }

  50%{
    filter:
      drop-shadow(0 5px 8px rgba(0,0,0,.84))
      drop-shadow(0 0 24px rgba(255,226,158,.82))
      drop-shadow(0 0 42px rgba(240,197,111,.34));
  }
}

@keyframes nsCaminoPinMetalShine{
  0%{
    opacity:0;
    background-position:145% 0;
  }

  3%{
    opacity:1;
    background-position:125% 0;
  }

  18%{
    opacity:1;
    background-position:-45% 0;
  }

  19%{
    opacity:0;
    background-position:-45% 0;
  }

  100%{
    opacity:0;
    background-position:-45% 0;
  }
}

/* RESPONSIVE MAP DESTINATION CARD */

.ns-region-hero__mobile-card{
  position:relative;
  z-index:7;
  display:grid;
  grid-template-columns:35% minmax(0, 1fr);
  align-items:stretch;
  gap:clamp(12px, 3.2vw, 16px);
  width:min(78vw, 360px);
  min-height:66px;
  margin:
    clamp(18px, 3vw, 28px)
    auto
    0;
  padding:0 clamp(14px, 3.6vw, 18px) 0 0;
  color:inherit;
  text-decoration:none;
  border:0;
  border-radius:8px;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,.94) 0%,
    rgba(6,6,6,.94) 100%
  );
  box-shadow:
    0 10px 22px rgba(0,0,0,.28);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  overflow:hidden;
  isolation:isolate;
  transform:none;
}

.ns-region-hero__mobile-card::before{
  content:"";
  position:absolute;
  top:-55%;
  left:-55%;
  z-index:2;
  width:36%;
  height:220%;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0) 38%,
    rgba(255,255,255,.9) 47%,
    rgba(255,255,255,1) 50%,
    rgba(255,255,255,.9) 53%,
    rgba(255,255,255,0) 62%,
    rgba(255,255,255,0) 100%
  );
  filter:blur(12px);
  transform:translateX(0) rotate(16deg);
  transform-origin:center center;
  animation:nsBtnDarkShine 6s cubic-bezier(.22,.61,.36,1) infinite;
}

.ns-region-hero__mobile-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  padding:.40px;
  border-radius:8px;
  background:linear-gradient(
    135deg,
    rgba(150,109,29,.78) 0%,
    rgba(255,232,176,.90) 22%,
    rgba(240,197,111,.86) 50%,
    rgba(255,244,214,.90) 66%,
    rgba(188,141,53,.78) 100%
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite:exclude;
  pointer-events:none;
}

.ns-region-hero__mobile-card > *{
  position:relative;
  z-index:1;
}

.ns-region-hero__mobile-card-media,
.ns-region-hero__mobile-card-copy{
  will-change:opacity;
}

.ns-region-hero__mobile-card-media{
  position:relative;
  display:block;
  align-self:stretch;
  width:100%;
  height:calc(100% - 2px);
  min-height:calc(100% - 2px);
  margin:1px 0 1px 1px;
  overflow:hidden;
  border-radius:7px 0 0 7px;
  background:#080808;
  border-right:1px solid rgba(240,197,111,.12);
  box-shadow:none;
}

.ns-region-hero__mobile-card-media img{
  display:block;
  width:100%;
  height:100%;
  min-height:100%;
  object-fit:cover;
  object-position:center;
  box-shadow:none;
}

.ns-region-hero__mobile-card-copy{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:0;
  gap:2px;
  padding:6px 0;
  text-align:center;
}

html:lang(en) .ns-region-hero__mobile-card-copy,
html:lang(en-GB) .ns-region-hero__mobile-card-copy{
  transform:translateY(-1px);
}

html:lang(ja) .ns-region-hero__mobile-card-copy{
  gap:4px;
  padding:0;
}

.ns-region-hero__mobile-card-jp{
  display:block;
  max-width:100%;
  margin-bottom:4px;
  overflow:hidden;
  font-family:"Shippori Mincho", var(--font-display), serif;
  font-size:clamp(8.5px, 2.3vw, 10.5px);
  font-weight:400;
  line-height:1.24;
  letter-spacing:.055em;
  white-space:nowrap;
  text-overflow:ellipsis;
  text-align:center;
  background:var(--gold-gradient-text);
  background-size:100% 1lh;
  background-position:0 0;
  background-repeat:repeat-y;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  transform:translateY(-4px);
}

html:lang(en) .ns-region-hero__mobile-card-jp,
html:lang(en-GB) .ns-region-hero__mobile-card-jp{
  display:none;
}

html:lang(ja) .ns-region-hero__mobile-card-jp{
  display:none;
}

.ns-region-hero__mobile-card-name{
  display:block;
  max-width:100%;
  overflow:hidden;
  font-family:"Cormorant Garamond", var(--font-display-primary), serif;
  font-size:clamp(14px, 3.85vw, 16.5px);
  font-weight:700;
  line-height:1.03;
  letter-spacing:.035em;
  white-space:nowrap;
  text-overflow:ellipsis;
  text-align:center;
  color:var(--gold);
  transform:translateY(-4px);
}

html:lang(ja) .ns-region-hero__mobile-card-name{
  background:var(--gold-gradient-text);
  background-size:100% 1lh;
  background-position:0 0;
  background-repeat:repeat-y;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  transform:none;
}

html:lang(en) .ns-region-hero__mobile-card-name,
html:lang(en-GB) .ns-region-hero__mobile-card-name{
  transform:none;
}

.ns-region-hero__mobile-card-subline{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(6px, 1.8vw, 10px);
  width:100%;
  margin-top:2px;
}

html:lang(ja) .ns-region-hero__mobile-card-subline{
  margin-top:0;
}

.ns-region-hero__mobile-card-subline::before,
.ns-region-hero__mobile-card-subline::after{
  content:"";
  flex:1 1 auto;
  min-width:18px;
  height:1px;
  background:linear-gradient(
    90deg,
    rgba(240,197,111,0) 0%,
    rgba(240,197,111,.74) 100%
  );
  opacity:.9;
}

.ns-region-hero__mobile-card-subline::after{
  background:linear-gradient(
    90deg,
    rgba(240,197,111,.74) 0%,
    rgba(240,197,111,0) 100%
  );
}

.ns-region-hero__mobile-card-subtitle{
  display:block;
  max-width:100%;
  overflow:hidden;
  font-family:"Cormorant Garamond", var(--font-display-primary), serif;
  font-size:clamp(11px, 3vw, 13px);
  font-weight:600;
  line-height:1.1;
  letter-spacing:.02em;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:rgba(255,224,158,.92);
}

.ns-region-hero__mobile-card-subtitle-number{
  font-family:"Shippori Mincho", serif;
  font-weight:700;
}

.ns-region-hero__mobile-card-subtitle:empty,
.ns-region-hero__mobile-card-subtitle:empty + *{
  display:none;
}

.ns-region-hero__mobile-card-subtitle:empty,
.ns-region-hero__mobile-card-subtitle:empty + *{
  display:none;
}

@keyframes ns-mobile-card-crossfade-in{
  0%,
  12%{
    opacity:0;
  }

  28%{
    opacity:.10;
  }

  46%{
    opacity:.30;
  }

  64%{
    opacity:.58;
  }

  82%{
    opacity:.84;
  }

  100%{
    opacity:1;
  }
}

@keyframes ns-mobile-card-crossfade-out{
  0%,
  18%{
    opacity:1;
  }

  36%{
    opacity:.94;
  }

  54%{
    opacity:.78;
  }

  70%{
    opacity:.52;
  }

  86%{
    opacity:.22;
  }

  100%{
    opacity:0;
  }
}

.ns-region-hero__mobile-card-media,
.ns-region-hero__mobile-card-copy{
  position:relative;
}

.ns-region-hero__mobile-card.is-crossfade-preparing
> .ns-region-hero__mobile-card-media
> img:not(.ns-region-hero__mobile-card-outgoing-image){
  opacity:0;
}

.ns-region-hero__mobile-card.is-crossfade-preparing
> .ns-region-hero__mobile-card-copy
> :not(.ns-region-hero__mobile-card-outgoing-copy){
  opacity:0;
}

.ns-region-hero__mobile-card.is-crossfading-in
> .ns-region-hero__mobile-card-media
> img:not(.ns-region-hero__mobile-card-outgoing-image){
  animation:
    ns-mobile-card-crossfade-in
    1.4s
    linear
    both;
}

.ns-region-hero__mobile-card.is-crossfading-in
> .ns-region-hero__mobile-card-copy
> :not(.ns-region-hero__mobile-card-outgoing-copy){
  animation:
    ns-mobile-card-crossfade-in
    1.4s
    linear
    both;
}

.ns-region-hero__mobile-card-outgoing-image{
  position:absolute !important;
  inset:0 !important;
  z-index:2;
  display:block;
  width:100% !important;
  height:100% !important;
  min-height:100% !important;
  margin:0 !important;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
  opacity:1;
  will-change:opacity;
}

.ns-region-hero__mobile-card-outgoing-copy{
  position:absolute !important;
  inset:0 !important;
  z-index:2;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  transform:none !important;
  pointer-events:none;
  opacity:1;
  will-change:opacity;
}

.ns-region-hero__mobile-card-outgoing-image.is-leaving,
.ns-region-hero__mobile-card-outgoing-copy.is-leaving{
  animation:
    ns-mobile-card-crossfade-out
    1.4s
    linear
    both;
}

@media (width < 768px){
  .ns-region-hero{
    --ns-rhero-stack-terrain-min-width:95vw;
    min-height:100svh;
  }

  .ns-region-hero__inner{
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    box-sizing:border-box;
    min-height:100svh;
    padding:
      var(--ns-rhero-stack-copy-top)
      var(--ns-rhero-edge)
      max(var(--space-5), env(safe-area-inset-bottom));
  }

  .ns-region-hero__copy{
    width:min(100%, 680px);
    margin:0 auto;
  }

  body:is(
    .ns-region--basque,
    .ns-circuit--basque
  ) .ns-region-hero{
    --ns-rhero-stack-terrain-width:95vw;
    --ns-rhero-stack-terrain-top-gap:calc(
      clamp(58px, 8vw, 88px) + var(--space-5)
    );
  }

  body:is(
    .ns-region--galicia,
    .ns-region--camino,
    .ns-circuit--galicia,
    .ns-circuit--camino
  ) .ns-region-hero{
    --ns-rhero-stack-terrain-width:95vw;
    --ns-rhero-stack-terrain-top-gap:clamp(26px, 3.5vw, 34px);
  }
}

@media (768px <= width < 1440px){
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin{
    --ns-region-pin-size:clamp(22px, 2.3vw, 26px);
    --ns-region-pin-dot-size:clamp(5px, .55vw, 7px);
  }

  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin--main{
    --ns-region-pin-size:clamp(28px, 3vw, 34px);
    --ns-region-pin-dot-size:clamp(7px, .7vw, 9px);
  }

  .ns-region-hero__mobile-card{
    grid-template-columns:36% minmax(0, 1fr);
    grid-template-rows:minmax(0, 1fr);
    gap:12px;
    width:min(44vw, 360px);
    height:61px;
    min-height:0;
    max-height:61px;
    margin:
      clamp(18px, 2.2vw, 24px)
      auto
      0;
    padding-right:14px;
    transform:none;
  }

  .ns-region-hero__mobile-card-copy{
    gap:1px;
    padding:5px 0;
  }

  .ns-region-hero__mobile-card-jp{
    margin-bottom:3px;
    font-size:clamp(9px, 1.15vw, 10.5px);
  }

  .ns-region-hero__mobile-card-name{
    font-size:clamp(14px, 1.9vw, 17px);
  }

  .ns-region-hero__mobile-card-subtitle{
    font-size:clamp(10.5px, 1.45vw, 12.5px);
  }
}

@media (width >= 1440px){
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin{
    --ns-region-pin-size:clamp(26px, 1.75vw, 30px);
    --ns-region-pin-dot-size:clamp(6px, .46vw, 8px);
  }

  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin--main{
    --ns-region-pin-size:clamp(34px, 2.15vw, 38px);
    --ns-region-pin-dot-size:clamp(8px, .58vw, 10px);
  }

  .ns-region-hero__mobile-card{
    position:relative;
    left:auto;
    top:auto;
    grid-template-columns:39% minmax(0, 1fr);
    grid-template-rows:minmax(0, 1fr);
    gap:clamp(12px, .9vw, 16px);
    width:clamp(365px, 21.5vw, 440px);
    height:clamp(67px, 4vw, 78px);
    min-height:0;
    max-height:clamp(67px, 4vw, 78px);
    margin:clamp(18px, 1.8vw, 26px) 0 0;
    padding-right:clamp(14px, 1vw, 18px);
    transform:none;
  }

  .ns-region-hero__mobile-card-copy{
    gap:1px;
    padding:5px 0;
  }

  .ns-region-hero__mobile-card-jp{
    margin-bottom:4px;
    font-size:clamp(9.5px, .66vw, 11px);
  }

  .ns-region-hero__mobile-card-name{
    font-size:clamp(17px, 1.18vw, 21px);
  }

  .ns-region-hero__mobile-card-subtitle{
    font-size:clamp(11px, .78vw, 13.5px);
  }
}

@media (width < 1440px){
  .ns-region-hero__copy .ns-home-scroll-bridge{
    position:relative;
    left:auto;
    right:auto;
    width:min(440px, 100%);
    margin:
      clamp(26px, 4vw, 36px)
      auto
      0;
    transform:none;
  }
}

@media (width >= 1440px){
  .ns-region-hero{
    --ns-rhero-edge:clamp(48px, calc(5.357vw - 6.857px), 96px);
    --ns-region-overlap:clamp(76px, calc(7.143vw + 2.857px), 140px);
    min-height:max(100svh, var(--ns-rhero-desktop-required-height, 0px));
    height:auto;
  }

  body:is(
    .ns-region--galicia,
    .ns-region--camino,
    .ns-circuit--galicia,
    .ns-circuit--camino
  ) .ns-region-hero{
    --ns-rhero-desktop-terrain-width:clamp(700px, 52vw, 940px);
    --ns-rhero-desktop-terrain-min-width:clamp(680px, 40vw, 820px);
    --ns-rhero-desktop-terrain-max-height:calc(
      var(--ns-rhero-stable-viewport-height) -
      var(--topbar-h) -
      var(--ns-rhero-desktop-terrain-top) -
      var(--ns-rhero-desktop-bottom-gap) -
      clamp(90px, 10svh, 120px)
    );
    --ns-rhero-desktop-copy-land-gap:clamp(58px, 3.4vw, 70px);
    --ns-rhero-desktop-right-edge:clamp(4px, .6vw, 12px);
  }

  .ns-region-hero__inner{
    min-height:max(100svh, var(--ns-rhero-desktop-required-height, 0px));
    height:auto;
    padding:0;
  }

  .ns-region-hero__copy{
    position:absolute;
    left:max(
      var(--ns-rhero-desktop-left-edge),
      calc(
        25vw -
        clamp(160px, 15.5vw, 290px) +
        clamp(22px, 1.4vw, 34px)
      )
    );
    top:calc(
      var(--topbar-h) +
      ((100% - var(--topbar-h)) / 2)
    );
    width:clamp(320px, 31vw, 580px);
    margin:0;
    text-align:left;
    transform:translateY(-50%);
  }

	.ns-region-hero__copy .ns-home-scroll-bridge{
    margin-left:0;
    margin-right:0;
  }
}

/* =========================
   REGION: MAP
   ========================= */
.ns-region-hero .ns-rmap__maplayer{
  position:absolute;
  left:0;
  right:0;
  top:var(--topbar-h);
  bottom:0;
  width:100vw;
  max-width:none;
  height:auto;
  margin:0;
  overflow:visible;
  transform:none;
}

.ns-rmap__mapimg{
  position:absolute;
  left:var(--ns-rmap-layout-left, 0px);
  top:var(--ns-rmap-layout-top, 0px);
  display:block;
  width:var(--ns-rmap-layout-width, 100vw);
  max-width:none;
  height:var(--ns-rmap-layout-height, calc(100vw * 0.5007906));
  margin:0;
  object-fit:fill;
  object-position:center;
  filter:drop-shadow(0 0 28px rgba(0,0,0,.45));
  opacity:1;
  transform:none;
  will-change:left, top, width, height;
  pointer-events:none;
}

/* =========================
   LVL2 DESTINATION PINS — BASQUE / GALICIA
   Permanent labels/callouts were retired in favour of the responsive card.
   ========================= */

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin{
  --ns-region-pin-size:clamp(18px, 1.55vw, 22px);
  --ns-region-pin-dot-size:clamp(4px, .42vw, 6px);
  --ns-active-ring-top:8px;
  --ns-active-ring-outer-w:36px;
  --ns-active-ring-outer-h:16px;
  --ns-active-ring-inner-w:24px;
  --ns-active-ring-inner-h:11px;

  position:absolute;
  z-index:1;
  width:0;
  height:0;
  color:rgba(255,255,255,.94);
  text-decoration:none;
  pointer-events:auto;
  transform-origin:center bottom;
  transition:
    transform var(--transition-med),
    filter var(--transition-med);
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin-marker{
  position:absolute;
  left:0;
  top:0;
  z-index:2;
  display:block;
  width:var(--ns-region-pin-size);
  height:var(--ns-region-pin-size);
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(
      135deg,
      rgba(28,25,19,.98) 0%,
      rgba(2,2,2,.98) 100%
    );
  border:1.5px solid rgba(240,197,111,.92);
  border-radius:50% 50% 50% 0;
  box-shadow:
    0 6px 12px rgba(0,0,0,.72),
    0 0 10px rgba(240,197,111,.16),
    inset 0 1px 0 rgba(255,255,255,.10);
  transform:translate(-50%, -100%) rotate(-45deg);
  transition:
    border-color var(--transition-slow),
    box-shadow var(--transition-slow),
    background-color var(--transition-slow);
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin-marker::before{
  content:"";
  position:absolute;
  top:-55%;
  left:-55%;
  z-index:1;
  width:36%;
  height:220%;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0) 38%,
    rgba(255,255,255,.9) 47%,
    rgba(255,255,255,1) 50%,
    rgba(255,255,255,.9) 53%,
    rgba(255,255,255,0) 62%,
    rgba(255,255,255,0) 100%
  );
  filter:blur(3px);
  transform:translateX(0) rotate(16deg);
  transform-origin:center center;
  animation:nsBtnDarkShine 6s cubic-bezier(.22,.61,.36,1) infinite;
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin-marker::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  z-index:2;
  width:var(--ns-region-pin-dot-size);
  height:var(--ns-region-pin-dot-size);
  border-radius:50%;
  background:rgba(255,226,158,.96);
  box-shadow:
    0 0 5px rgba(240,197,111,.72),
    0 0 10px rgba(240,197,111,.30);
  transform:translate(-50%, -50%);
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin--main{
  --ns-region-pin-size:clamp(23px, 1.9vw, 29px);
  --ns-region-pin-dot-size:clamp(6px, .52vw, 8px);
  z-index:2;
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin--main .ns-region-hero__pin-marker{
  width:var(--ns-region-pin-size);
  height:var(--ns-region-pin-size);
  border-color:rgba(255,226,158,.98);
  box-shadow:
    0 8px 16px rgba(0,0,0,.78),
    0 0 14px rgba(240,197,111,.28),
    inset 0 1px 0 rgba(255,255,255,.12);
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin--main .ns-region-hero__pin-marker::after{
  width:var(--ns-region-pin-dot-size);
  height:var(--ns-region-pin-dot-size);
}

@media (width < 768px){
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin{
    --ns-active-ring-top:7px;
    --ns-active-ring-outer-w:26px;
    --ns-active-ring-outer-h:11px;
    --ns-active-ring-inner-w:17px;
    --ns-active-ring-inner-h:7px;
  }

  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin--main{
    --ns-active-ring-top:8px;
    --ns-active-ring-outer-w:30px;
    --ns-active-ring-outer-h:12px;
    --ns-active-ring-inner-w:20px;
    --ns-active-ring-inner-h:8px;
  }
}

@media (768px <= width < 1440px){
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin{
    --ns-region-pin-size:clamp(22px, 2.3vw, 26px);
    --ns-region-pin-dot-size:clamp(5px, .55vw, 7px);

    --ns-active-ring-top:10px;
    --ns-active-ring-outer-w:36px;
    --ns-active-ring-outer-h:15px;
    --ns-active-ring-inner-w:24px;
    --ns-active-ring-inner-h:10px;
  }

  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin--main{
    --ns-region-pin-size:clamp(28px, 3vw, 34px);
    --ns-region-pin-dot-size:clamp(7px, .7vw, 9px);

    --ns-active-ring-top:11px;
    --ns-active-ring-outer-w:42px;
    --ns-active-ring-outer-h:17px;
    --ns-active-ring-inner-w:28px;
    --ns-active-ring-inner-h:11px;
  }
}

@media (width >= 1440px){
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin{
    --ns-region-pin-size:clamp(26px, 1.75vw, 30px);
    --ns-region-pin-dot-size:clamp(6px, .46vw, 8px);

    --ns-active-ring-top:10px;
    --ns-active-ring-outer-w:40px;
    --ns-active-ring-outer-h:16px;
    --ns-active-ring-inner-w:27px;
    --ns-active-ring-inner-h:11px;
  }

  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin--main{
    --ns-region-pin-size:clamp(34px, 2.15vw, 38px);
    --ns-region-pin-dot-size:clamp(8px, .58vw, 10px);

    --ns-active-ring-top:12px;
    --ns-active-ring-outer-w:46px;
    --ns-active-ring-outer-h:18px;
    --ns-active-ring-inner-w:31px;
    --ns-active-ring-inner-h:12px;
  }
}

body.ns-region--galicia .ns-region-hero__pin--combarro{
  margin-left:calc(var(--ns-region-overlap) * -.06);
  margin-top:calc(var(--ns-region-overlap) * -.05);
}

body.ns-region--galicia .ns-region-hero__pin--pontevedra{
  margin-left:calc(var(--ns-region-overlap) * .06);
  margin-top:calc(var(--ns-region-overlap) * .05);
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin::before,
body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin::after{
  content:"";
  position:absolute;
  left:0;
  top:var(--ns-active-ring-top);
  z-index:0;
  display:block;
  pointer-events:none;
  border-style:solid;
  border-color:rgba(255,226,158,.96);
  border-radius:50%;
  box-shadow:0 0 14px rgba(240,197,111,.32);
  opacity:0;
  filter:none;
  transform:translate(-50%, -50%) scale(.72);
  transition:
    opacity .46s cubic-bezier(.22,.61,.36,1),
    transform .58s cubic-bezier(.22,.61,.36,1),
    box-shadow .58s cubic-bezier(.22,.61,.36,1);
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin::before{
  width:var(--ns-active-ring-outer-w);
  height:var(--ns-active-ring-outer-h);
  border-width:1.5px;
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin::after{
  width:var(--ns-active-ring-inner-w);
  height:var(--ns-active-ring-inner-h);
  border-width:1.3px;
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin-label{
  display:none;
}

@media (hover:hover){
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin:hover{
    z-index:5;
    transform:scale(1.12);
    filter:brightness(1.08);
  }

  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin:hover .ns-region-hero__pin-marker{
    border-color:rgba(255,244,214,1);
    box-shadow:
      0 9px 18px rgba(0,0,0,.80),
      0 0 18px rgba(240,197,111,.52),
      inset 0 1px 0 rgba(255,255,255,.16);
  }
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin.is-active{
  z-index:12;
  filter:
    brightness(1.16)
    saturate(1.06)
    drop-shadow(0 0 10px rgba(255,226,158,.42))
    drop-shadow(0 0 22px rgba(240,197,111,.22));
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin.is-active::before{
  opacity:.88;
  transform:translate(-50%, -50%) scale(1);
  box-shadow:
    0 0 16px rgba(255,226,158,.38),
    0 0 30px rgba(240,197,111,.16);
  animation:nsMobileMapRingPulseOuter 2.2s ease-in-out .50s infinite;
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin.is-active::after{
  opacity:.96;
  transform:translate(-50%, -50%) scale(1);
  box-shadow:
    0 0 12px rgba(255,226,158,.42),
    0 0 22px rgba(240,197,111,.18);
  animation:nsMobileMapRingPulseInner 2.2s ease-in-out .50s infinite;
}

body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin.is-active .ns-region-hero__pin-marker{
  transform:translate(-50%, -100%) rotate(-45deg);
  border-color:rgba(255,244,214,1);
  box-shadow:
    0 10px 18px rgba(0,0,0,.78),
    0 0 26px rgba(255,226,158,.78),
    0 0 48px rgba(240,197,111,.34),
    0 0 72px rgba(240,197,111,.12),
    inset 0 1px 0 rgba(255,255,255,.14);
  animation:
    nsMobileMapMarkerPulse 2.7s ease-in-out .58s infinite,
    nsMobileMapMarkerFloat 2.1s ease-in-out 0s infinite;
}

/* =========================
   LVL2 CAMINO MAP OVERLAY
   ========================= */

body.ns-region--camino .ns-region-hero__mobile-card-name{
  font-size:clamp(13px, 3.55vw, 16.5px);
  letter-spacing:.025em;
}

body.ns-region--camino .ns-region-hero__mobile-card-subtitle{
  font-size:clamp(10.5px, 2.7vw, 12px);
}

body.ns-region--camino .ns-rmap__route{
  position:absolute;
  inset:0;
  z-index:4;
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}

body.ns-region--camino .ns-rmap__route-curve{
  fill:none;
  stroke:rgba(240,197,111,.96);
  stroke-width:4.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  shape-rendering:geometricPrecision;
  filter:
    drop-shadow(0 0 2px rgba(255,232,176,.58))
    drop-shadow(0 1px 2px rgba(0,0,0,.72));
}

body.ns-region--camino .ns-route-dot{
  r:clamp(4px, .45vw, 6px);
  fill:#0b0b0b;
  stroke:rgba(255,232,176,.98);
  stroke-width:clamp(1.4px, .13vw, 1.6px);
  vector-effect:non-scaling-stroke;
  shape-rendering:geometricPrecision;
  filter:
    drop-shadow(0 0 1px rgba(240,197,111,.55))
    drop-shadow(0 1px 3px rgba(0,0,0,.58));
  pointer-events:none;
}

body.ns-region--camino .ns-rmap__pins{
  position:absolute;
  left:0;
  top:0;
  z-index:5;
  width:100%;
  height:100%;
  pointer-events:none;
}

body.ns-region--camino .ns-pin{
  --ns-camino-pin-size:clamp(40px, 4.2vw, 48px);

  position:absolute;
  width:0;
  height:0;
  color:rgba(255,255,255,.94);
  text-decoration:none;
  pointer-events:auto;
  transition:transform .25s ease;
}

body.ns-region--camino .ns-pin::before,
body.ns-region--camino .ns-pin::after,
body.ns-region--camino .ns-pin__label{
  content:none;
  display:none;
}

body.ns-region--camino .ns-pin:hover,
body.ns-region--camino .ns-pin:focus-visible{
  transform:scale(1.15);
}

body.ns-region--camino .ns-pin:focus-visible{
  outline:2px solid rgba(240,197,111,.90);
  outline-offset:4px;
}

body.ns-region--camino .ns-pin__icon{
  position:absolute;
  left:0;
  top:0;
  z-index:7;
  display:block;
  width:var(--ns-camino-pin-size);
  height:var(--ns-camino-pin-size);
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  filter:drop-shadow(0 3px 5px rgba(0,0,0,.72));
  pointer-events:auto;
  cursor:pointer;
  user-select:none;
  transform:translate(-50%, -50%);
  transform-origin:center;
  transition:filter .55s cubic-bezier(.22,.61,.36,1);
}

body.ns-region--camino .ns-pin__icon::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(
    110deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0) 40%,
    rgba(255,255,255,.88) 47%,
    rgba(255,255,255,1) 50%,
    rgba(255,255,255,.88) 53%,
    rgba(255,255,255,0) 60%,
    rgba(255,255,255,0) 100%
  );
  background-size:280% 100%;
  background-position:145% 0;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  -webkit-mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
  mask-size:contain;
  animation:nsCaminoPinMetalShine 6s cubic-bezier(.22,.61,.36,1) infinite;
}

body.ns-region--camino .ns-pin__icon--sarria{
  --ns-camino-pin-mask:url("../images/icons/icon-lis_map.png");
  background-image:var(--ns-camino-pin-mask);
}

body.ns-region--camino .ns-pin__icon--sarria::before{
  -webkit-mask-image:var(--ns-camino-pin-mask);
  mask-image:var(--ns-camino-pin-mask);
}

body.ns-region--camino .ns-pin__icon--tuy{
  --ns-camino-pin-mask:url("../images/icons/icon-portugal_map.png");
  background-image:var(--ns-camino-pin-mask);
}

body.ns-region--camino .ns-pin__icon--tuy::before{
  -webkit-mask-image:var(--ns-camino-pin-mask);
  mask-image:var(--ns-camino-pin-mask);
}

body.ns-region--camino .ns-pin__icon--ferrol{
  --ns-camino-pin-mask:url("../images/icons/icon-lions_map.png");
  background-image:var(--ns-camino-pin-mask);
}

body.ns-region--camino .ns-pin__icon--ferrol::before{
  -webkit-mask-image:var(--ns-camino-pin-mask);
  mask-image:var(--ns-camino-pin-mask);
}

body.ns-region--camino .ns-pin--santiago{
  --ns-camino-pin-size:clamp(50px, 5vw, 58px);
}

body.ns-region--camino .ns-pin__icon--santiago{
  --ns-camino-pin-mask:url("../images/icons/icon-cathedral_map.png");
  width:var(--ns-camino-pin-size);
  height:var(--ns-camino-pin-size);
  background-image:var(--ns-camino-pin-mask);
}

body.ns-region--camino .ns-pin__icon--santiago::before{
  -webkit-mask-image:var(--ns-camino-pin-mask);
  mask-image:var(--ns-camino-pin-mask);
}

body.ns-region--camino .ns-pin:hover .ns-pin__icon,
body.ns-region--camino .ns-pin:focus-visible .ns-pin__icon{
  filter:
    drop-shadow(0 4px 7px rgba(0,0,0,.80))
    brightness(1.08);
}

body.ns-region--camino .ns-pin.is-active{
  z-index:12;
}

body.ns-region--camino .ns-pin.is-active .ns-pin__icon{
  transform:translate(-50%, -50%);
  filter:
    drop-shadow(0 5px 8px rgba(0,0,0,.84))
    drop-shadow(0 0 18px rgba(255,226,158,.64))
    drop-shadow(0 0 30px rgba(240,197,111,.24));
  animation:
    nsMobileMapIconPulse 2.7s ease-in-out .55s infinite,
    nsCaminoMapIconBreathe 2.4s ease-in-out 0s infinite;
}
/* =========================
   LVL3 CIRCUIT HERO STOPS — MINI DAY MEDALLIONS
   ========================= */

@keyframes nsCircuitHeroMedallionShine{
  0%{
    opacity:0;
    background-position:100% 0;
  }

  3%{
    opacity:1;
    background-position:92% 0;
  }

  18%{
    opacity:1;
    background-position:0 0;
  }

  19%{
    opacity:0;
    background-position:0 0;
  }

  100%{
    opacity:0;
    background-position:0 0;
  }
}

@keyframes nsCircuitHeroActivePulse{
  0%,
  100%{
    box-shadow:
      0 0 0 5px rgba(14,14,14,.94),
      0 0 22px rgba(255,226,158,.72),
      0 0 42px rgba(240,197,111,.30),
      0 8px 18px rgba(0,0,0,.58);
  }

  50%{
    box-shadow:
      0 0 0 5px rgba(14,14,14,.94),
      0 0 34px rgba(255,226,158,.96),
      0 0 64px rgba(240,197,111,.48),
      0 8px 18px rgba(0,0,0,.58);
  }
}

body.ns-circuit .ns-region-hero__pin-marker{
  display:none;
}

body.ns-circuit .ns-region-hero__pin{
  position:absolute;
  z-index:1;
  width:0;
  height:0;
  color:rgba(255,255,255,.96);
  text-decoration:none;
  pointer-events:auto;
  transform-origin:center center;
  transition:
    filter var(--transition-med),
    z-index 0s;
}

body.ns-circuit .ns-circuit-map__node{
  position:absolute;
  left:0;
  top:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  width:47px;
  height:47px;
  border:1px solid var(--gold);
  border-radius:50%;
  background:
    radial-gradient(circle at 35% 28%, rgba(255,232,176,.16), transparent 48%),
    #090806;
  box-shadow:
    0 0 0 5px rgba(14,14,14,.94),
    0 0 9px rgba(240,197,111,.26),
    0 0 18px rgba(240,197,111,.12),
    0 8px 18px rgba(0,0,0,.58);
  transform:translate(-50%, -50%);
  transition:
    box-shadow .55s cubic-bezier(.22,.61,.36,1),
    filter .55s cubic-bezier(.22,.61,.36,1),
    transform .55s cubic-bezier(.22,.61,.36,1);
}

body.ns-circuit .ns-circuit-map__node::before{
  content:"";
  position:absolute;
  inset:-7px;
  border:1.5px solid var(--gold);
  border-radius:50%;
  box-shadow:
    0 0 0 1px rgba(255,244,214,.14),
    0 0 7px rgba(240,197,111,.28),
    0 0 14px rgba(240,197,111,.10);
  pointer-events:none;
  transition:
    border-color .55s cubic-bezier(.22,.61,.36,1),
    box-shadow .55s cubic-bezier(.22,.61,.36,1);
}

body.ns-circuit .ns-circuit-map__node::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:50%;
  opacity:0;
  background-image:linear-gradient(
    106deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0) 44%,
    rgba(255,255,255,.9) 48%,
    rgba(255,255,255,1) 50%,
    rgba(255,255,255,.9) 52%,
    rgba(255,255,255,0) 56%,
    rgba(255,255,255,0) 100%
  );
  background-size:300% 100%;
  background-position:100% 0;
  background-repeat:no-repeat;
  filter:blur(2px);
  animation:nsCircuitHeroMedallionShine 6s cubic-bezier(.22,.61,.36,1) infinite;
}

body.ns-circuit .ns-circuit-map__node-day{
  position:relative;
  z-index:1;
  font-family:"Shippori Mincho", serif;
  font-size:6px;
  font-weight:600;
  line-height:1;
  letter-spacing:.17em;
  background:var(--gold-gradient-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

body.ns-circuit .ns-circuit-map__node-number{
  position:relative;
  z-index:1;
  font-family:"Shippori Mincho", serif;
  font-size:14.5px;
  font-weight:700;
  line-height:1;
  letter-spacing:.02em;
  background:var(--gold-gradient-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

body.ns-circuit .ns-region-hero__pin--main{
  z-index:2;
}

body.ns-circuit .ns-region-hero__pin--main .ns-circuit-map__node{
  width:54px;
  height:54px;
}

body.ns-circuit .ns-region-hero__pin--main .ns-circuit-map__node::before{
  inset:-8px;
}

body.ns-circuit .ns-region-hero__pin--main .ns-circuit-map__node-day{
  font-size:7px;
}

body.ns-circuit .ns-region-hero__pin--main .ns-circuit-map__node-number{
  font-size:16.5px;
}

body.ns-circuit .ns-region-hero__pin-label{
  --ns-circuit-pin-label-scale:1;

  position:absolute;
  left:0;
  top:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:9px 15px;
  white-space:nowrap;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.055em;
  color:rgba(255,244,214,.96);
  background:
    linear-gradient(180deg, rgba(255,255,255,.028), rgba(255,255,255,0)),
    rgba(5,5,5,.82);
  border:1px solid rgba(240,197,111,.42);
  box-shadow:
    0 8px 18px rgba(0,0,0,.54),
    inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  pointer-events:auto;
  cursor:pointer;
  transform:translate(34px, -50%) scale(var(--ns-circuit-pin-label-scale));
  transition:
    color var(--transition-med),
    border-color var(--transition-med),
    background-color var(--transition-med),
    box-shadow var(--transition-med),
    transform var(--transition-med);
}

body.ns-circuit .ns-region-hero__pin--label-right .ns-region-hero__pin-label{
  transform:translate(34px, -50%) scale(var(--ns-circuit-pin-label-scale));
}

body.ns-circuit .ns-region-hero__pin--label-left .ns-region-hero__pin-label{
  transform:translate(calc(-100% - 34px), -50%) scale(var(--ns-circuit-pin-label-scale));
}

body.ns-circuit .ns-region-hero__pin--label-up .ns-region-hero__pin-label{
  transform:translate(-50%, calc(-100% - 30px)) scale(var(--ns-circuit-pin-label-scale));
}

body.ns-circuit .ns-region-hero__pin--label-down .ns-region-hero__pin-label{
  transform:translate(-50%, 30px) scale(var(--ns-circuit-pin-label-scale));
}

body.ns-circuit .ns-circuit-map__pin-label-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
}

body.ns-circuit .ns-circuit-map__pin-name{
  display:block;
  font:inherit;
  line-height:1.15;
  color:inherit;
}

@media (hover:hover){
  body.ns-circuit .ns-region-hero__pin:hover{
    z-index:6;
    filter:brightness(1.07);
  }

  body.ns-circuit .ns-region-hero__pin:hover .ns-circuit-map__node{
    filter:brightness(1.045);
    transform:translate(-50%, -50%) scale(1.10);
  }

  body.ns-circuit .ns-region-hero__pin:hover .ns-region-hero__pin-label{
    --ns-circuit-pin-label-scale:1.08;

    color:#fff4d6;
    border-color:rgba(255,226,158,.78);
    background-color:rgba(8,8,8,.92);
    box-shadow:
      0 10px 22px rgba(0,0,0,.62),
      0 0 12px rgba(240,197,111,.14),
      inset 0 1px 0 rgba(255,255,255,.05);
  }
}

@media (width < 768px){
  body.ns-circuit .ns-region-hero__pin-label{
    display:inline-flex;
    min-height:22px;
    padding:3px 6px;
    font-size:clamp(8.5px, 2.35vw, 10px);
    line-height:1.15;
    letter-spacing:.035em;
  }

  body.ns-circuit .ns-region-hero__pin--label-right .ns-region-hero__pin-label{
    transform:translate(28px, -50%) scale(var(--ns-circuit-pin-label-scale));
  }

  body.ns-circuit .ns-region-hero__pin--label-up .ns-region-hero__pin-label{
    transform:translate(-50%, calc(-100% - 25px)) scale(var(--ns-circuit-pin-label-scale));
  }

  body.ns-circuit .ns-region-hero__pin--label-down .ns-region-hero__pin-label{
    transform:translate(-50%, 25px) scale(var(--ns-circuit-pin-label-scale));
  }

  body.ns-circuit .ns-circuit-map__node{
    width:38px;
    height:38px;
  }

  body.ns-circuit .ns-circuit-map__node::before{
    inset:-6px;
    border-width:1.5px;
  }

  body.ns-circuit .ns-circuit-map__node-day{
    font-size:5px;
  }

  body.ns-circuit .ns-circuit-map__node-number{
    font-size:13.5px;
  }

  body.ns-circuit .ns-region-hero__pin--main .ns-circuit-map__node{
    width:44px;
    height:44px;
  }

  body.ns-circuit .ns-region-hero__pin--main .ns-circuit-map__node::before{
    inset:-7px;
  }

  body.ns-circuit .ns-region-hero__pin--main .ns-circuit-map__node-day{
    font-size:5.8px;
  }

  body.ns-circuit .ns-region-hero__pin--main .ns-circuit-map__node-number{
    font-size:15px;
  }
}

@media (width >= 768px){
  body.ns-circuit .ns-region-hero__pin-label{
    min-height:27px;
    padding:5px 10px;
    font-size:11.5px;
  }

  body.ns-circuit .ns-region-hero__pin--main .ns-region-hero__pin-label{
    min-height:30px;
    padding:6px 12px;
    font-size:13px;
  }
}

@media (768px <= width < 1024px){
  body.ns-circuit--basque-essence .ns-circuit-map__node{
    width:43px;
    height:43px;
  }

  body.ns-circuit--basque-essence .ns-circuit-map__node::before{
    inset:-6px;
  }

  body.ns-circuit--basque-essence .ns-circuit-map__node-day{
    font-size:5.5px;
  }

  body.ns-circuit--basque-essence .ns-circuit-map__node-number{
    font-size:13.5px;
  }

  body.ns-circuit--basque-essence .ns-region-hero__pin--main .ns-circuit-map__node{
    width:50px;
    height:50px;
  }

  body.ns-circuit--basque-essence .ns-region-hero__pin--main .ns-circuit-map__node::before{
    inset:-7px;
  }

  body.ns-circuit--basque-essence .ns-region-hero__pin--main .ns-circuit-map__node-day{
    font-size:6.5px;
  }

  body.ns-circuit--basque-essence .ns-region-hero__pin--main .ns-circuit-map__node-number{
    font-size:15.5px;
  }
}

body.ns-circuit--basque-essence .ns-region-hero__pin-label{
  display:none;
}

body.ns-circuit--basque-essence .ns-region-hero__pin.is-active{
  z-index:12;
  filter:
    brightness(1.10)
    saturate(1.04);
}

body.ns-circuit--basque-essence .ns-region-hero__pin.is-active::before,
body.ns-circuit--basque-essence .ns-region-hero__pin.is-active::after{
  content:none;
  display:none;
}

body.ns-circuit--basque-essence .ns-region-hero__pin.is-active .ns-circuit-map__node{
  transform:translate(-50%, -50%) scale(1.035);
  box-shadow:
    0 0 0 5px rgba(14,14,14,.94),
    0 0 22px rgba(255,226,158,.72),
    0 0 42px rgba(240,197,111,.30),
    0 8px 18px rgba(0,0,0,.58);
  animation:nsCircuitHeroActivePulse 2.7s ease-in-out .55s infinite;
}

body.ns-circuit--basque-essence .ns-region-hero__pin.is-active .ns-circuit-map__node::before{
  border-color:rgba(255,244,214,1);
  box-shadow:
    0 0 0 1px rgba(255,244,214,.18),
    0 0 14px rgba(240,197,111,.42),
    0 0 26px rgba(240,197,111,.16);
}

@media (hover:hover){
  body.ns-circuit--basque-essence .ns-region-hero__pin.is-active:hover .ns-circuit-map__node{
    transform:translate(-50%, -50%) scale(1.035);
  }
}
/* =========================
   LVL3 CIRCUIT HERO SCROLL BRIDGE
   ========================= */

body.ns-circuit .ns-region-hero .ns-home-scroll-bridge{
  left:50%;
  margin:
    clamp(26px, 6vw, 36px)
    0
    0;
  transform:translateX(-50%);
}

@media (width >= 1024px){
  body.ns-circuit .ns-region-hero .ns-home-scroll-bridge{
    left:calc(50% + 75px);
    transform:translateX(-50%);
    transform-origin:center top;
  }
}

@media (width > 1024px) and (max-aspect-ratio:3 / 2){
  body.ns-circuit .ns-region-hero .ns-home-scroll-bridge{
    left:50%;
    width:min(36vw, 520px);
    transform:translateX(-50%);
  }
}

@media (1024px <= width < 1440px){
  body.ns-circuit--basque-essence .ns-region-hero .ns-home-scroll-bridge{
    left:50%;
    width:min(460px, 100%);
    transform:translateX(-50%);
    transform-origin:center top;
  }
}

@media (width >= 1440px){
  body.ns-circuit--basque-essence .ns-region-hero .ns-home-scroll-bridge{
    left:0;
    width:min(460px, 100%);
    transform:none;
    transform-origin:left top;
  }
}

/* =========================
   HERO MAP — REDUCED MOTION
   ========================= */

@media (prefers-reduced-motion:reduce){
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin-marker::before,
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin.is-active::before,
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin.is-active::after,
  body:is(.ns-region--basque, .ns-region--galicia) .ns-region-hero__pin.is-active .ns-region-hero__pin-marker,
  body.ns-region--camino .ns-pin.is-active .ns-pin__icon,
  body.ns-region--camino .ns-pin__icon::before,
  body.ns-circuit .ns-circuit-map__node::after,
  body.ns-circuit--basque-essence .ns-region-hero__pin.is-active .ns-circuit-map__node{
    animation:none !important;
  }
}

/* =========================
   HERO SCROLL BRIDGE — SHARED
   ========================= */

.ns-region-hero .ns-region-hero__copy .ns-home-scroll-bridge{
  position:relative;
  left:0;
  right:auto;
  top:auto;
  bottom:auto;
  display:block;
  width:min(440px, 100%);
  margin:
    clamp(26px, 4vw, 36px)
    auto
    0;
  filter:
    drop-shadow(0 2px 2px rgba(0,0,0,.82))
    drop-shadow(0 6px 9px rgba(0,0,0,.58));
  transform:none;
}

.ns-region-hero .ns-home-scroll-line{
  position:absolute;
  top:25px;
  display:block;
  height:1px;
  transform:none;
}

.ns-region-hero .ns-home-scroll-line--left{
  left:0;
  width:calc(50% - 48px);
}

.ns-region-hero .ns-home-scroll-line--right{
  right:0;
  width:calc(50% - 48px);
}

.ns-region-hero .ns-home-scroll-indicator{
  position:absolute;
  left:50%;
  top:0;
  bottom:auto;
  transform:translateX(-50%);
}

@media (width >= 1440px){
  .ns-region-hero .ns-region-hero__copy .ns-home-scroll-bridge{
    left:0;
    width:min(460px, 100%);
    margin-left:0;
    margin-right:0;
    transform:none;
  }
}