@charset "utf-8";

/* BASE.CSS — JAPANESE + ENGLISH */

/* =========================
   VARIABLES
   ========================= */
:root{
  --bg:#0e0e0e;
  --bg-soft:#141414;
  --bg-deep:#000000;
  --card:#212121;
  --text:#f7f1e6;
  --text-pure:#ffffff;
  --warm-white:#f7f1e6;
  --muted:#a8b0bf;
  --line:rgba(255,255,255,.12);

  --gold:#f0c56f;
  --gold-rgb:240,197,111;
  --gold2:#e2b866;
  --gold3:#d7ac57;
  --gold-strong:rgba(var(--gold-rgb),1);
  --gold-structural:rgba(var(--gold-rgb),.54);
  --gold-soft:rgba(var(--gold-rgb),.30);
  --gold-faint:rgba(var(--gold-rgb),.16);

  --stone-texture:url("../images/stone.jpg");
  --stone-size:800px 800px;

  --text-small:clamp(15.5px, 1.05vw, 17px);
  --text-small-compact:clamp(13.5px, .92vw, 15px);
  --text-small-line:1.82;

  --shadow:0 18px 55px rgba(0,0,0,.65);
  --shadow-soft:0 14px 38px rgba(0,0,0,.50);
  --shadow-panel:0 16px 40px rgba(0,0,0,.58);
  --shadow-light:0 10px 24px rgba(0,0,0,.40);

  --ring:0 0 0 3px rgba(240,197,111,.22);
  --ring-strong:0 0 0 4px rgba(240,197,111,.28);

  --gold-gradient-icons:linear-gradient(
    180deg,
    #fff4d6 0%,
    #ffe8b0 32%,
    var(--gold) 68%,
    #e2b866 100%
  );

  --gold-gradient-text-light:linear-gradient(
    180deg,
    #fff9ea 0%,
    #fff1c8 40%,
    var(--gold) 75%,
    #e9c980 100%
  );

  --gold-gradient-main:linear-gradient(
    180deg,
    #fff4d6 0%,
    #f8d98e 30%,
    var(--gold) 68%,
    #e2b866 100%
  );

  --gold-gradient-text:linear-gradient(
    180deg,
    #fff4d6 0%,
    #ffe8b0 32%,
    var(--gold) 68%,
    #e2b866 100%
  );

  --gold-gradient-border:linear-gradient(
    180deg,
    #fff4d6 0%,
    #ffe8b0 32%,
    var(--gold) 68%,
    #e2b866 100%
  );

  --gold-rule:linear-gradient(
    90deg,
    rgba(var(--gold-rgb),.42) 0%,
    rgba(var(--gold-rgb),.78) 22%,
    #fff4d6 50%,
    rgba(var(--gold-rgb),.78) 78%,
    rgba(var(--gold-rgb),.42) 100%
  );

  --transition-fast:.25s cubic-bezier(.22,.61,.36,1);
  --transition-med:.35s cubic-bezier(.22,.61,.36,1);
  --transition-slow:.55s cubic-bezier(.22,.61,.36,1);

  --z-topbar:1000;
  --z-lang:3000;
  --z-drawer:4000;
  --z-datepicker:5000;

  --page-max:1180px;
  --page-pad:clamp(12px, 2.8vw, 34px);

  /* Shared fluid rhythm. These are layout ratios, not per-screen nudges. */
  --space-1:clamp(8px, .55vw, 12px);
  --space-2:clamp(12px, .90vw, 18px);
  --space-3:clamp(18px, 1.35vw, 26px);
  --space-4:clamp(26px, 2vw, 38px);
  --space-5:clamp(38px, 3vw, 58px);
  --space-6:clamp(56px, 4.5vw, 86px);
  --space-7:clamp(82px, 6.5vw, 124px);
  --space-8:clamp(118px, 9vw, 172px);

  --topbar-h:clamp(60px, 15vw, 68px);
  --ns-section-title-gap:28px;
  --ns-scroll-stage-buffer:60px;

  --radius-pill:999px;
  --radius-soft:6px;
  --radius-zero:0;

  /* Language-aware fallbacks */
  --font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display:Georgia, "Times New Roman", serif;
  --font-display-primary:Georgia, "Times New Roman", serif;
  --font-brand:"Open Sans", sans-serif;
  --font-footer-contact:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --people-label-width:46px;
  --people-select-width:90px;
}

/* =========================
   LANGUAGE VARIABLES
   ========================= */
html:lang(ja){
  --font-body:"Zen Kaku Gothic New", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display:"Shippori Mincho", "Zen Kaku Gothic New", serif;
  --font-display-primary:"Shippori Mincho", serif;
  --font-brand:"Open Sans", sans-serif;
  --font-footer-contact:"Open Sans", "Zen Kaku Gothic New", sans-serif;
  --people-label-width:46px;
  --people-select-width:90px;
}

html:lang(en){
  --font-body:"Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display:"Cormorant Garamond", "Source Sans 3", serif;
  --font-display-primary:"Cormorant Garamond", serif;
  --cg-track-160:.08em;
  --cg-track-140:.07em;
  --cg-track-130:.065em;
  --cg-track-120:.055em;
  --cg-track-110:.055em;
  --cg-track-100:.05em;
  --cg-track-090:.045em;
  --cg-track-080:.04em;
  --cg-track-075:.04em;
  --cg-track-070:.035em;
  --cg-track-065:.035em;
  --cg-track-060:.03em;
  --cg-track-055:.03em;
  --cg-track-050:.025em;
  --cg-track-045:.025em;
  --cg-track-040:.02em;
  --cg-track-038:.02em;
  --cg-track-035:.02em;
  --cg-track-030:.018em;
  --cg-track-028:.016em;
  --cg-track-025:.015em;
  --cg-track-020:.01em;
  --cg-track-005:0em;
  --cg-track-city-hero-title:clamp(.015em, .09vw, .02em);
  --cg-track-city-hero-sub:clamp(.015em, .08vw, .025em);
  --cg-track-city-card-title:clamp(.02em, .08vw, .03em);
  --cg-track-city-section-tablet:clamp(.04em, .09vw, .05em);
  --cg-track-city-anchor-desktop:clamp(.02em, .09vw, .04em);
  --cg-track-city-section-desktop:clamp(.04em, .12vw, .07em);
  --font-brand:"Source Sans 3", sans-serif;
  --font-footer-contact:"Source Sans 3", sans-serif;
  --people-label-width:70px;
  --people-select-width:120px;
}

/* =========================
   RESPONSIVE COPY
   ========================= */
.ns-copy--wide{
  display:inline;
}

.ns-copy--mobile{
  display:none;
}

/* =========================
   GOLD GRADIENT PER LINE
   ========================= */

:where(
  .ns-rcta__ttl,
  .ns-form__heading-title,
  .ns-footer__brand-name,

  .ns-hero__title,
  .ns-hero__lead,
  .ns-two .ns-band__title,
  .ns-card__title,
  .ns-benefits__intro .ns-band__title,
  .ns-benefits__headline,
  .ns-benefits__subtitle,
  .ns-benefit__ttl,
  .ns-benefits__statement-title,

  .ns-region-hero__title,
  .ns-region-story__headline,
  .ns-region-story__experiences-title,
  .ns-region-story__card-title,
  .ns-rhero__kicker,
  .ns-band > .ns-benefits > .ns-benefit .ns-benefit__ttl,
  .ns-rsec__title,
  .ns-benefit--hero .ns-benefit__ttl,
  .ns-rexp__ttl,
  .ns-chip__txt,
  .ns-two__head-title,
  .ns-two__note,
  .ns-modelcard__head-title,
  .ns-basque-journeys__title,
  .ns-galicia-journeys__title,
  .ns-camino-journeys__title,
  .ns-basque-journey__title,
  .ns-galicia-journey__title,
  .ns-camino-journey__title,
  .ns-mcard__ttl,

  .ns-rmap__headline,
  .c-itinerary__captxt,
  .c-amen__ttl,
  .c-price__ttl,
  body.ns-circuit .ns-reviews .c-gal__ttl,
  .c-res__captxt,
  .c-bar__k,
  .c-day__ttl,
  .c-price__sub,
  .c-price__tbl thead th,
  .c-price__info-ttl
){
  background-size:
    100%
    1lh !important;
  background-position:
    0
    0 !important;
  background-repeat:
    repeat-y !important;
}

/* =========================
   RESET / BASE
   ========================= */
*,
*::before,
*::after{
  box-sizing:border-box;
}

*{
  margin:0;
  padding:0;
}

html,
body{
  min-height:100%;
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  overflow-x:clip;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:var(--font-body);
  font-optical-sizing:auto;
  font-weight:300;
  font-style:normal;
  font-variation-settings:"wdth" 100;
  font-size:clamp(16px, 1.12vw, 17.5px);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  background:var(--bg);
  color:var(--text);
  scrollbar-width:thin;
  scrollbar-color:#212121 var(--bg);
  padding-top:var(--topbar-h);
}

body::-webkit-scrollbar{
  width:18px;
}

body::-webkit-scrollbar-track{
  background:var(--bg);
}

body::-webkit-scrollbar-thumb{
  background:#212121;
}

img,
picture,
video,
canvas,
svg{
  display:block;
  max-width:100%;
}

input,
button,
textarea,
select{
  font:inherit;
}

button{
  color:inherit;
  border:0;
  background:none;
  cursor:pointer;
}

ul{
  list-style:none;
}

a{
  color:inherit;
  text-decoration:none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid rgba(240,197,111,.95);
  outline-offset:3px;
  box-shadow:var(--ring);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline-offset:2px;
}

::selection{
  background:rgba(240,197,111,.25);
  color:#fff;
}

.ns-sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.ns-skip-link{
  position:fixed;
  top:12px;
  left:12px;
  z-index:calc(var(--z-drawer) + 1);
  padding:10px 16px;
  border:1px solid rgba(240,197,111,.86);
  border-radius:4px;
  background:#0b0b0b;
  color:#fff;
  font-weight:600;
  transform:translateY(calc(-100% - 24px));
  transition:transform var(--transition-fast);
}

.ns-skip-link:focus-visible{
  transform:translateY(0);
}

/* =========================
   NORTHSPAIN SEAL
   ========================= */

.ns-seal{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  flex:0 0 32px;
  line-height:0;
  vertical-align:middle;
  pointer-events:none;
  user-select:none;
}

.ns-seal img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.ns-seal-anchor{
  position:relative;
  width:max-content;
  max-width:100%;
}

.ns-seal-anchor--senses{
  margin-left:auto;
  margin-right:auto;
}

.ns-seal--hero{
  position:absolute;
  left:calc(100% + 24px);
  top:50%;
  width:48px;
  height:48px;
  transform:translateY(-44%) rotate(1.5deg);
}

.ns-seal--inline-signature{
  position:relative;
  top:5px;
  margin-left:14px;
}

.ns-seal--inline-signature-reverse{
  margin-left:0;
  margin-right:14px;
}

.ns-seal-inline-copy{
  display:inline-block;
}

.ns-seal--senses{
  position:absolute;
  left:calc(100% + 20px);
  top:61%;
  width:26px;
  height:26px;
  transform:translateY(-50%) rotate(2deg);
}

.ns-seal--journeys{
  position:relative;
  top:7px;
  width:29px;
  height:29px;
  margin-left:15px;
  transform:rotate(.85deg);
}

.ns-seal--cta{
  position:absolute;
  left:calc(100% + 16px);
  top:50%;
  width:31px;
  height:31px;
  transform:translateY(-46%) rotate(-1.35deg);
}

.ns-seal--tilt-left{
  transform:rotate(-2deg);
}

.ns-seal--tilt-right{
  transform:rotate(1.5deg);
}

/* HERO TITLES - CENTER ON TABLET ONLY. */
@media (min-width:768px) and (max-width:1439.98px){
  body.ns-region .ns-region-hero__copy .ns-seal-anchor--hero{
    margin-left:auto;
    margin-right:auto;
  }
}

@media (min-width:768px) and (max-width:1023.98px){
  .ns-seal-anchor--cta{
    margin-left:auto;
    margin-right:auto;
  }
}

@media (max-width:767.98px){
  .ns-seal{
    width:24px;
    height:24px;
    flex-basis:24px;
  }

  .ns-seal-anchor--hero,
  .ns-seal-anchor--cta{
    margin-left:auto;
    margin-right:auto;
  }

  .ns-seal--hero{
    left:calc(100% + 12px);
    width:34px;
    height:34px;
  }

  body:not(.ns-region) .ns-seal--inline-signature{
    top:4px;
    margin-left:9px;
  }

  body:not(.ns-region) .ns-seal--inline-signature-reverse{
    margin-left:0;
    margin-right:9px;
  }

  body.ns-region .ns-region-story__text p{
    display:flex;
    flex-direction:column;
    align-items:center;
  }

  body.ns-region .ns-region-story__text .ns-copy--mobile{
    order:1;
  }

  body.ns-region .ns-seal--inline-signature,
  body.ns-region .ns-seal--inline-signature-reverse{
    order:2;
    display:flex;
    top:0;
    margin:14px auto 0;
  }

  .ns-seal--senses{
    left:calc(100% + 16px);
    width:20px;
    height:20px;
  }

  .ns-seal--journeys{
    top:5px;
    width:22px;
    height:22px;
    margin-left:10px;
  }

  .ns-seal--cta{
    left:calc(100% + 12px);
    width:24px;
    height:24px;
  }
}

/* =========================
   SHARED STONE BACKGROUND SYSTEM
   ========================= */
body.ns-region,
body.ns-circuit{
  background-color:var(--bg);
  background-image:var(--stone-texture);
  background-size:var(--stone-size);
  background-position:center top;
  background-repeat:repeat;
  background-attachment:scroll;
}

[data-stone-strength]{
  --stone-veil:.10;
  position:relative;
  background:
    linear-gradient(
      180deg,
      rgba(14,14,14,calc(var(--stone-veil) * .42)) 0%,
      rgba(14,14,14,var(--stone-veil)) 14%,
      rgba(14,14,14,var(--stone-veil)) 86%,
      rgba(14,14,14,calc(var(--stone-veil) * .42)) 100%
    );
  box-shadow:
    0 -54px 84px rgba(14,14,14,calc(var(--stone-veil) * .34)),
    0 54px 84px rgba(14,14,14,calc(var(--stone-veil) * .34));
}

[data-stone-strength="100"]{ --stone-veil:0; }
[data-stone-strength="90"]{ --stone-veil:.08; }
[data-stone-strength="85"]{ --stone-veil:.13; }
[data-stone-strength="75"]{ --stone-veil:.21; }
[data-stone-strength="70"]{ --stone-veil:.25; }
[data-stone-strength="65"]{ --stone-veil:.30; }
[data-stone-strength="60"]{ --stone-veil:.35; }
[data-stone-strength="55"]{ --stone-veil:.40; }

/* =========================
   GENERIC HELPERS
   ========================= */
.ns-wrap{
  width:min(100%, var(--page-max));
  margin:0 auto;
  padding:0 var(--page-pad);
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}

.flag{
  position:relative;
}

.flag::before{
  content:"";
  display:block;
  width:28px;
  height:21px;
  border-radius:5px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:0 8px 18px rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.20);
}

.flag--esp::before{
  background-image:url("../images/icons/flag-esp.svg");
}

.flag--eng::before{
  background-image:url("../images/icons/flag-en.svg");
}

.flag--jap::before{
  background-image:url("../images/icons/flag-jp.svg");
}

.social-icon{
  display:inline-block;
  width:20px;
  height:20px;
  text-indent:-500px;
  overflow:hidden;
  background:var(--gold-gradient-main);
  transition:
    transform var(--transition-fast),
    filter var(--transition-fast),
    opacity var(--transition-fast);
}

.social--fb{
  -webkit-mask:url("../images/icons/icon-facebook.svg") no-repeat center/contain;
  mask:url("../images/icons/icon-facebook.svg") no-repeat center/contain;
}

.social--x{
  -webkit-mask:url("../images/icons/icon-twitter.svg") no-repeat center/contain;
  mask:url("../images/icons/icon-twitter.svg") no-repeat center/contain;
}

.social--in{
  -webkit-mask:url("../images/icons/icon-instagram.svg") no-repeat center/contain;
  mask:url("../images/icons/icon-instagram.svg") no-repeat center/contain;
}


.social--mail{
  -webkit-mask:url("../images/icons/icon-mail.svg") no-repeat center/contain;
  mask:url("../images/icons/icon-mail.svg") no-repeat center/contain;
}

.ns-topbar__instagram-ico{
  display:block;
  width:24px;
  height:24px;
  background:url("../images/icons/instagram.svg") no-repeat center/contain;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.42));
}

.ns-topbar__whatsapp-ico{
  display:block;
  width:24px;
  height:24px;
  background:url("../images/icons/icon-whatsapp.svg") no-repeat center/contain;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.42));
}

.ns-drawer__tour-dot,
html:lang(en) .ns-footer__tour-dot,
.ns-rcta__txt::before,
.ns-rcta__txt::after{
  width:8px;
  height:8px;
  min-width:8px;
  min-height:8px;
  border-radius:50%;
  background:linear-gradient(
    180deg,
    #fff4d6 0%,
    #ffe8b0 40%,
    var(--gold) 75%,
    #d0a24a 100%
  );
  box-shadow:
    0 0 4px rgba(240,197,111,.28),
    0 2px 5px rgba(0,0,0,.45),
    inset 0 1px 1px rgba(255,255,255,.55);
  flex:0 0 auto;
}

.ns-btn,
.ns-mini-btn,
.ns-hero__cta-btn,
.ns-basque-journey__btn,
.ns-galicia-journey__btn,
.ns-camino-journey__btn,
.ns-drawer__cta{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  height:auto;
  padding:8px 24px;
  border-radius:var(--radius-pill);
  font-family:var(--font-body);
  font-weight:600;
  line-height:1.2;
  text-align:center;
  transition:
    color var(--transition-med),
    box-shadow var(--transition-med),
    transform var(--transition-med),
    border-color var(--transition-med),
    background-color var(--transition-med),
    filter var(--transition-med);
}


.ns-btn--dark,
.ns-mini-btn,
.ns-hero__cta-btn,
.ns-basque-journey__btn,
.ns-galicia-journey__btn,
.ns-camino-journey__btn,
.ns-drawer__cta{
  background:#000;
  color:#fff;
  border:1.5px solid transparent;
  box-shadow:0 12px 26px rgba(0,0,0,.50);
  background-image:
    linear-gradient(#000, #000),
    var(--gold-gradient-border);
  background-origin:border-box;
  background-clip:padding-box, border-box;
}

.ns-btn--dark::after,
.ns-mini-btn::after,
.ns-hero__cta-btn::after,
.ns-basque-journey__btn::after,
.ns-galicia-journey__btn::after,
.ns-camino-journey__btn::after,
.ns-drawer__cta::after{
  content:"";
  position:absolute;
  top:-55%;
  left:-55%;
  width:36%;
  height:220%;
  pointer-events:none;
  opacity:0;
  z-index:1;
  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-btn--gold{
  background:var(--gold-gradient-main);
  color:#0e0e0e;
  text-shadow:none;
  box-shadow:0 10px 22px rgba(0,0,0,.44);
}

.ns-btn{
  min-width:min(240px, 100%);
  margin-top:10px;
  font-size:clamp(15px, 4vw, 16px);
  letter-spacing:.08em;
  box-shadow:0 12px 26px rgba(0,0,0,.50);
}

.ns-mini-btn,
.ns-hero__cta-btn,
.ns-basque-journey__btn,
.ns-galicia-journey__btn,
.ns-camino-journey__btn{
  min-width:min(180px, 100%);
  font-size:clamp(14px, 3.8vw, 15px);
  letter-spacing:.08em;
}

.ns-mini-btn{
  gap:2px;
  margin-top:56px;
}

.ns-hero__cta-btn{
  top:0;
}

.ns-band{
  position:relative;
  isolation:isolate;
  width:100%;
  max-width:960px;
  margin:0 auto;
  padding:18px 0 14px;
  scroll-margin-top:calc(
    var(--topbar-h) +
    var(--ns-section-title-gap)
  );
}

.ns-band::after{
  content:none;
}

.ns-band > *{
  position:relative;
  z-index:1;
}

.ns-band__rule{
  height:2px;
  background:var(--gold-rule);
  opacity:.95;
}

.ns-band__rule--top{
  display:none;
}

.ns-band__rule--mid{
  margin:16px 0 12px;
}

.ns-band__rule--bot{
  margin-top:14px;
}

.ns-band__head{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  width:100%;
  padding:6px 0 12px;
  margin:2px 0 16px;
}

.ns-band__title{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px clamp(14px, 3vw, 22px);
  border-radius:var(--radius-pill);
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:var(--cg-track-120, .12em);
  font-size:clamp(16px, 4.4vw, 20px);
  color:#0e0e0e;
  background:var(--gold-gradient-main);
  box-shadow:
    0 12px 26px rgba(0,0,0,.50),
    inset 0 1px 0 rgba(255,255,255,.25);
  margin:25px 0;
}

.ns-band__line{
  flex:1 1 auto;
  max-width:415px;
  height:1px;
  background:linear-gradient(
    90deg,
    var(--gold2) 0%,
    var(--gold) 30%,
    #fff4d6 50%,
    var(--gold) 70%,
    var(--gold2) 100%
  );
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
}

.ns-band__head > .ns-band__line:first-of-type{
  -webkit-mask-image:linear-gradient(
    90deg,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,1) 22%,
    rgba(0,0,0,1) 100%
  );
  mask-image:linear-gradient(
    90deg,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,1) 22%,
    rgba(0,0,0,1) 100%
  );
}

.ns-band__head > .ns-band__line:last-of-type{
  -webkit-mask-image:linear-gradient(
    90deg,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) 78%,
    rgba(0,0,0,0) 100%
  );
  mask-image:linear-gradient(
    90deg,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) 78%,
    rgba(0,0,0,0) 100%
  );
}

/* =========================
   TOPBAR
   ========================= */
.ns-topbar{
  position:fixed;
  inset:0 0 auto 0;
  z-index:var(--z-topbar);
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(4px, 1.5vw, 12px);
  min-height:var(--topbar-h);
  padding-inline:clamp(8px, 3vw, 14px);
  background:#000;
  overflow:visible;
}

.ns-topbar::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:var(--gold2);
  opacity:1;
  pointer-events:none;
}

.ns-topbar__logo{
  position:relative;
  display:flex;
  align-items:center;
  gap:0;
  flex:1 1 auto;
  min-width:0;
  min-height:var(--topbar-h);
  height:100%;
  padding-left:clamp(35px, 9.45vw, 41px);
  opacity:.94;
}

.ns-topbar__logo::before{
  content:"";
  position:absolute;
  inset:0;
  background:transparent;
  z-index:-1;
}

.ns-topbar__mark{
  position:absolute;
  left:8px;
  top:50%;
  width:clamp(39px, 10.5vw, 46px);
  height:clamp(39px, 10.5vw, 46px);
  display:flex;
  align-items:center;
  justify-content:center;
  transform:translateY(-50%);
  opacity:.95;
}

.ns-topbar__mark img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:
    brightness(0) invert(1)
    drop-shadow(0 6px 12px rgba(0,0,0,.45));
}

.ns-topbar__word-wr{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:1px;
  min-width:0;
  margin-left:6px;
  height:clamp(44px, 12vw, 52px);
  width:max-content;
}

.ns-topbar__word{
  display:block;
  width:max-content;
  font:300 clamp(13px, 4.2vw, 18px) var(--font-brand);
  text-transform:uppercase;
  line-height:1;
  color:var(--text);
  white-space:nowrap;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.38));
}

.ns-topbar__word span{
  font-weight:700;
}

.ns-topbar__tagline{
  display:block;
  width:max-content;
  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;
  font-weight:400;
  font-size:clamp(10px, 2.8vw, 11px);
  letter-spacing:.02em;
  line-height:1.2;
  color:var(--text);
  text-shadow:0 1px 0 rgba(0,0,0,.30);
  transform-origin:left center;
  will-change:transform;
}

.ns-topbar__nav{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(6px, 2vw, 10px);
  flex:0 0 auto;
  height:var(--topbar-h);
  opacity:.94;
}

.ns-topbar__nav > *{
  position:relative;
}

.ns-topbar__nav > *:not(:last-child)::after{
  content:"";
  position:absolute;
  right:calc(clamp(6px, 2vw, 10px) * -0.5);
  top:50%;
  width:1px;
  height:18px;
  transform:translateY(-50%);
  background:rgba(255,255,255,.28);
}

.ns-topbar__nav a{
  transition:color var(--transition-fast), opacity var(--transition-fast);
}

.ns-topbar__line,
.ns-topbar__instagram,
.ns-topbar__whatsapp,
.ns-topbar__lang,
.ns-topbar__bur{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:clamp(32px, 8.5vw, 36px);
  height:clamp(32px, 8.5vw, 36px);
  padding:0 2px;
}

.ns-topbar__line,
.ns-topbar__instagram,
.ns-topbar__whatsapp{
  opacity:.96;
}

.ns-topbar__lang{
  margin-right:0;
}

.ns-topbar__bur .nav-icon{
  display:flex;
  position:relative;
  width:22px;
  height:3px;
  border-radius:2px;
  background:#fff;
}

.ns-topbar__bur .nav-icon::before,
.ns-topbar__bur .nav-icon::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:3px;
  border-radius:2px;
  background:#fff;
}

.ns-topbar__bur .nav-icon::before{
  top:-8px;
}

.ns-topbar__bur .nav-icon::after{
  bottom:-8px;
}

.ns-topbar__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.icon-reservation{
  position:relative;
  display:inline-block;
  transform:translateX(-4px) translateY(-7px);
  width:34px;
  height:28px;
  margin-right:-4px;
}

.ns-topbar__cta .icon-reservation::before,
.ns-topbar__cta .icon-reservation::after{
  content:"";
  position:absolute;
  top:6px;
  left:2px;
  width:28px;
  height:28px;
  -webkit-mask:url("../images/icons/icon-bubble.svg") no-repeat center/contain;
  mask:url("../images/icons/icon-bubble.svg") no-repeat center/contain;
  transition:opacity .75s cubic-bezier(.22,.61,.36,1);
}

.ns-topbar__cta .icon-reservation::after{
  background-color:#ffffff;
  opacity:1;
}

.ns-topbar__cta .icon-reservation::before{
  background:var(--gold-gradient-text);
  opacity:0;
}

/* =========================
   DRAWER MENU
   ========================= */

.ns-drawer{
  position:fixed;
  inset:0;
  z-index:var(--z-drawer);

  pointer-events:none;
  opacity:0;
  visibility:hidden;

  transition:
    opacity var(--transition-fast),
    visibility 0s linear .25s;
}

/* Fondo exterior */

.ns-drawer__overlay{
  position:absolute;
  inset:0;
  z-index:1;

  background:rgba(0,0,0,.74);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  pointer-events:none;
}

/* Panel principal */

.ns-drawer__panel{
  position:absolute;
  top:0;
  right:0;
  z-index:2;

  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;

  width:min(94vw, 420px);
  height:100dvh;

  overflow:hidden;
  outline:none;
  pointer-events:none;
	
  background:
    radial-gradient(
      620px 430px at 20% 4%,
      rgba(240,197,111,.11) 0%,
      rgba(240,197,111,0) 62%
    ),
    linear-gradient(
      180deg,
      #151515 0%,
      #0c0c0c 58%,
      #080808 100%
    );

  border-left:1px solid rgba(240,197,111,.30);
  border-radius:22px 0 0 22px;

  box-shadow:
    -22px 0 60px rgba(0,0,0,.68),
    inset 1px 0 0 rgba(255,255,255,.035);

  transform:translateX(102%);

  transition:
    transform .42s cubic-bezier(.22,.61,.36,1);
}

/* Estado abierto */

body._nav-open .ns-footer{
  isolation:auto;
}

body._nav-open{
  overflow:hidden;
}

body._nav-open .ns-drawer{
  pointer-events:auto;
  opacity:1;
  visibility:visible;
  transition:
    opacity var(--transition-fast),
    visibility 0s linear 0s;
}

body._nav-open .ns-drawer__overlay{
  pointer-events:auto;
}

body._nav-open .ns-drawer__panel{
  transform:translateX(0);
  pointer-events:auto;
}

/* =========================
   CABECERA
   ========================= */

.ns-drawer__head{
  position:relative;

  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:16px;

  min-height:66px;
  padding:
    max(10px, env(safe-area-inset-top))
    16px
    10px;

  border-bottom:1px solid rgba(240,197,111,.22);
}

.ns-drawer__title{
  font-family:var(--font-display);

  font-size:clamp(17px, 4.6vw, 19px);
  font-weight:700;
  line-height:1;
  letter-spacing:var(--cg-track-140, .14em);

  color:var(--gold);

  filter:
    drop-shadow(0 4px 8px rgba(0,0,0,.52));
}

/* Botón cerrar */

.ns-drawer__close{
  position:relative;

  display:grid;
  place-items:center;
  flex:0 0 44px;

  width:44px;
  height:44px;

  border:1px solid rgba(240,197,111,.30);
  border-radius:50%;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.035),
      rgba(255,255,255,0)
    ),
    rgba(0,0,0,.28);

  box-shadow:
    0 10px 22px rgba(0,0,0,.36),
    inset 0 1px 0 rgba(255,255,255,.06);

  transition:
    transform var(--transition-fast),
    border-color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.ns-drawer__close-x{
  position:relative;

  display:block;

  width:18px;
  height:18px;
}

.ns-drawer__close-x::before,
.ns-drawer__close-x::after{
  content:"";

  position:absolute;
  left:50%;
  top:50%;

  width:20px;
  height:2px;

  border-radius:999px;
  background:var(--gold-gradient-text);

  transform-origin:center;
}

.ns-drawer__close-x::before{
  transform:
    translate(-50%, -50%)
    rotate(45deg);
}

.ns-drawer__close-x::after{
  transform:
    translate(-50%, -50%)
    rotate(-45deg);
}

/* =========================
   ÁREA DESPLAZABLE
   ========================= */

.ns-drawer__scroll{
  min-height:0;

  overflow-x:hidden;
  overflow-y:auto;

  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;

  scrollbar-width:thin;
  scrollbar-color:
    rgba(240,197,111,.35)
    transparent;
}

.ns-drawer__scroll::-webkit-scrollbar{
  width:5px;
}

.ns-drawer__scroll::-webkit-scrollbar-track{
  background:transparent;
}

.ns-drawer__scroll::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:rgba(240,197,111,.30);
}

.ns-drawer__nav{
  display:flex;
  flex-direction:column;
  gap:7px;

  min-height:100%;
  padding:12px 12px 16px;
}

/* Los separadores antiguos dejan de mostrarse */

.ns-drawer__divider{
  display:none;
}

/* =========================
   SECCIONES
   ========================= */

.ns-drawer__section{
  display:flex;
  flex-direction:column;

  min-width:0;
}

/* Cabecera de una región */

.ns-drawer__section-head{
  position:relative;

  display:grid;
  grid-template-columns:minmax(0, 1fr) 48px;
  align-items:center;

  width:100%;
  min-height:58px;

  overflow:hidden;

  border:1px solid rgba(240,197,111,.22);
  border-radius:12px;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.045),
      rgba(255,255,255,.015)
    ),
    rgba(24,24,24,.78);

  box-shadow:
    0 10px 22px rgba(0,0,0,.25),
    inset 0 1px 0 rgba(255,255,255,.04);

  transition:
    border-color var(--transition-fast),
    background var(--transition-fast),
    box-shadow var(--transition-fast);
}

/* Cabecera de la sección abierta */

.ns-drawer__section._open > .ns-drawer__section-head{
  border-color:rgba(240,197,111,.38);

  background:
    radial-gradient(
      220px 90px at 10% 50%,
      rgba(240,197,111,.09),
      rgba(240,197,111,0)
    ),
    rgba(17,17,17,.82);

  box-shadow:
    0 12px 28px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.055);
}

/* Enlace del título */

.ns-drawer__section-link{
  display:flex;
  align-items:center;
  gap:12px;

  min-width:0;
  min-height:56px;

  padding:8px 4px 8px 10px;

  font-family:var(--font-display);

  font-size:clamp(18px, 5vw, 21px);
  font-weight:700;
  line-height:1.25;
  letter-spacing:var(--cg-track-060, .06em);

  color:var(--gold);

  filter:
    drop-shadow(0 4px 8px rgba(0,0,0,.48));
}

.ns-drawer__section-name{
  min-width:0;

  font-size:clamp(17px, 4.5vw, 19px);
  line-height:1.3;

  white-space:nowrap;
  word-break:keep-all;
}

.ns-drawer__section > .ns-drawer__link .ns-drawer__section-name{
  font-family:var(--font-body);
  font-size:clamp(14px, 3.8vw, 16px);
  font-weight:500;
  letter-spacing:.015em;
  color:#fff;
}

/* Iconos circulares de las secciones */

.ns-drawer__section-icon{
  position:relative;

  display:grid;
  place-items:center;
  flex:0 0 38px;

  width:38px;
  height:38px;

  border:1px solid rgba(240,197,111,.38);
  border-radius:50%;

  color:var(--gold);

  background:
    radial-gradient(
      circle at 35% 30%,
      rgba(255,255,255,.09),
      rgba(255,255,255,0) 62%
    ),
    rgba(0,0,0,.24);

  box-shadow:
    0 8px 16px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.06);
}

.ns-drawer__section-icon::before{
  display:block;

  font-family:var(--font-display-primary);

  font-size:18px;
  line-height:1;

  color:var(--gold);
}

.ns-drawer__section-icon--basque::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask: url("../images/icons/icon-acorn.svg") no-repeat center / contain;
		  mask: url("../images/icons/icon-acorn.svg") no-repeat center / contain;
}

.ns-drawer__section-icon--galicia::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask: url("../images/icons/icon-tentacle.svg") no-repeat center / contain;
		  mask: url("../images/icons/icon-tentacle.svg") no-repeat center / contain;
}

.ns-drawer__section-icon--camino::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask: url("../images/icons/logo-m.svg") no-repeat center / contain;
		  mask: url("../images/icons/logo-m.svg") no-repeat center / contain;
}

.ns-drawer__tour-icon--frances::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask: url("../images/icons/icon-lis.svg") no-repeat center / contain;
		  mask: url("../images/icons/icon-lis.svg") no-repeat center / contain;
}

.ns-drawer__tour-icon--portugues::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask: url("../images/icons/icon-portugal.svg") no-repeat center / contain;
		  mask: url("../images/icons/icon-portugal.svg") no-repeat center / contain;
}

.ns-drawer__tour-icon--ingles::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask: url("../images/icons/icon-lions.svg") no-repeat center / contain;
		  mask: url("../images/icons/icon-lions.svg") no-repeat center / contain;
}

.ns-drawer__section-icon--terms::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask: url("../images/icons/icon-terms.svg") no-repeat center / contain;
		  mask: url("../images/icons/icon-terms.svg") no-repeat center / contain;
}

/* Botón del acordeón */

.ns-drawer__acc-btn{
  position:relative;

  display:grid;
  place-items:center;

  width:48px;
  height:56px;

  border:0;
  border-radius:0;

  background:transparent;

  transition:
    background-color var(--transition-fast);
}

.ns-drawer__acc-btn::after{
  content:"";

  width:10px;
  height:10px;

  border-right:2px solid var(--gold);
  border-bottom:2px solid var(--gold);

  transform:
    translateY(-2px)
    rotate(45deg);

  transition:
    transform var(--transition-med);
}

/* Flecha hacia arriba cuando está abierto */

.ns-drawer__section._open .ns-drawer__acc-btn::after{
  transform:
    translateY(3px)
    rotate(225deg);
}

/* =========================
   SUBMENÚS
   ========================= */

.ns-drawer__submenu{
  display:grid;
  gap:10px;

  max-height:0;

  overflow:hidden;
  opacity:0;
  visibility:hidden;

  padding:0 4px;

  transform:translateY(-5px);

  transition:
    max-height .48s cubic-bezier(.22,.61,.36,1),
    opacity .24s ease,
    transform .40s cubic-bezier(.22,.61,.36,1),
    padding .40s cubic-bezier(.22,.61,.36,1),
    visibility 0s linear .48s;
}

.ns-drawer__section._open .ns-drawer__submenu{
  max-height:1400px;

  opacity:1;
  visibility:visible;

  padding:10px 4px 4px;

  transform:translateY(0);

  transition:
    max-height .48s cubic-bezier(.22,.61,.36,1),
    opacity .24s ease,
    transform .40s cubic-bezier(.22,.61,.36,1),
    padding .40s cubic-bezier(.22,.61,.36,1),
    visibility 0s linear 0s;
}

/* =========================
   TARJETAS DE CURSOS
   ========================= */

.ns-drawer__tour-links{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;

  padding:0;
}

.ns-drawer__tour-link{
  position:relative;

  display:grid;
  grid-template-columns:42px minmax(0, 1fr) 18px;
  align-items:center;
  gap:11px;

  min-height:58px;
  padding:8px 12px 8px 9px;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.11);
  border-radius:11px;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.045),
      rgba(255,255,255,.012)
    ),
    rgba(30,30,30,.82);

  box-shadow:
    0 10px 22px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.035);

  transition:
    transform var(--transition-fast),
    border-color var(--transition-fast),
    background-color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.ns-drawer__tour-link--essential,
.ns-drawer__tour-link--highlight{
  border-color:rgba(240,197,111,.33);
}

.ns-drawer__tour-label{
  min-width:0;

  font-family:var(--font-body);

  font-size:clamp(13px, 3.7vw, 15px);
  font-weight:600;
  line-height:1.35;
  letter-spacing:.045em;

  color:rgba(255,255,255,.96);
}

.ns-drawer__tour-icon{
  display:grid;
  place-items:center;

  width:40px;
  height:40px;

  border:1px solid rgba(240,197,111,.32);
  border-radius:50%;

  background:
    radial-gradient(
      circle at 35% 28%,
      rgba(255,255,255,.10),
      rgba(255,255,255,0) 65%
    ),
    rgba(0,0,0,.28);
}

.ns-drawer__tour-icon::before{
  color:var(--gold);

  font-family:serif;
  font-size:19px;
  line-height:1;
}

.ns-drawer__tour-icon--essential::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask:url("../images/icons/icon-star.svg") no-repeat center / contain;
		  mask:url("../images/icons/icon-star.svg") no-repeat center / contain;
}

.ns-drawer__tour-icon--highlight::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask:url("../images/icons/icon-compass.svg") no-repeat center / contain;
		  mask:url("../images/icons/icon-compass.svg") no-repeat center / contain;
}

.ns-drawer__tour-icon--premium::before{
  content:"";
  display:block;

  width:22px;
  height:22px;

  background:var(--gold-gradient-icons);

  -webkit-mask:url("../images/icons/icon-crown.svg") no-repeat center / contain;
		  mask:url("../images/icons/icon-crown.svg") no-repeat center / contain;
}

.ns-drawer__tour-link::after{
  content:"";

  justify-self:end;

  width:8px;
  height:8px;

  border-right:2px solid var(--gold);
  border-top:2px solid var(--gold);

  transform:rotate(45deg);
}

/* El punto antiguo ya no se usa */

.ns-drawer__tour-dot{
  display:none;
}

/* =========================
   GRUPOS DE CIUDADES
   ========================= */

.ns-drawer__places{
  overflow:hidden;

  border:1px solid rgba(255,255,255,.105);
  border-radius:13px;

  background:
    radial-gradient(
      300px 220px at 100% 0%,
      rgba(240,197,111,.045),
      rgba(240,197,111,0)
    ),
    rgba(28,28,28,.75);

  box-shadow:
    0 12px 26px rgba(0,0,0,.27),
    inset 0 1px 0 rgba(255,255,255,.035);
}

.ns-drawer__group{
  position:relative;

  display:flex;
  flex-direction:column;

  margin:0;
  padding:12px 12px 13px;
}

.ns-drawer__group + .ns-drawer__group{
  margin:0;

  border-top:1px solid rgba(255,255,255,.09);
}

/* Nombre de la ciudad */

.ns-drawer__sublink{
  display:flex;
  align-items:center;
  gap:11px;

  min-height:42px;
  padding:0;

  font-family:var(--font-body);

  font-size:clamp(15px, 4.2vw, 17px);
  font-weight:700;
  line-height:1.35;
  letter-spacing:.045em;

  color:rgba(255,255,255,.96);

  transition:
    color var(--transition-fast),
    transform var(--transition-fast);
}

/* Icono de localización */

.ns-drawer__city-icon{
  position:relative;

  display:block;
  flex:0 0 38px;

  width:38px;
  height:38px;

  border:1px solid rgba(240,197,111,.30);
  border-radius:50%;

  background:rgba(0,0,0,.22);
}

.ns-drawer__city-icon::before{
  content:"";

  position:absolute;
  left:50%;
  top:50%;

  width:20px;
  height:20px;

  background:var(--gold-gradient-icons);

  -webkit-mask: url("../images/icons/icon-pin.svg") no-repeat center / contain;
		  mask: url("../images/icons/icon-pin.svg") no-repeat center / contain;

  transform:translate(-50%, -50%);
}

.ns-drawer__city-icon::after{
  content:none;
}

/* Hijos de la ciudad */

.ns-drawer__subchildren{
  position:relative;

  display:flex;
  flex-direction:column;
  gap:7px;

  margin:4px 0 0 47px;
  padding:2px 0 1px 17px;
}

.ns-drawer__subchildren::before{
  content:none;
}

.ns-drawer__subchild{
  position:relative;

  display:block;

  min-height:30px;
  padding:3px 0 3px 15px;

  font-family:var(--font-body);

  font-size:clamp(13px, 3.6vw, 15px);
  font-weight:400;
  line-height:1.5;
  letter-spacing:.055em;

  color:rgba(255,255,255,.78);

  transition:
    color var(--transition-fast),
    transform var(--transition-fast);
}

/* Sustituye las antiguas ramas en forma de L */

.ns-drawer__subchild::before{
  content:"";

  position:absolute;
  z-index:2;

  left:-17px;
  top:50%;

  width:7px;
  height:7px;

  border:0;
  border-radius:50%;

  background:var(--gold-gradient-icons);

  box-shadow:
    0 0 7px rgba(240,197,111,.25);

  transform:translateY(-50%);
}

.ns-drawer__subchild:not(:last-child)::after{
  content:"";

  position:absolute;
  z-index:1;

  left:-14px;
  top:50%;

  width:1px;
  height:calc(100% + 7px);

  background:
    linear-gradient(
      180deg,
      rgba(240,197,111,.55),
      rgba(240,197,111,.16)
    );
}

/* =========================
   ENLACE DE TÉRMINOS
   ========================= */

.ns-drawer__link{
  position:relative;

  display:grid;
  grid-template-columns:38px minmax(0, 1fr) 18px;
  align-items:center;
  gap:12px;

  width:100%;
  min-height:58px;
  padding:8px 14px 8px 10px;

  border:1px solid rgba(240,197,111,.22);
  border-radius:12px;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.045),
      rgba(255,255,255,.012)
    ),
    rgba(24,24,24,.78);

  box-shadow:
    0 10px 22px rgba(0,0,0,.24);

  font-family:var(--font-display);

  font-size:clamp(18px, 5vw, 21px);
  font-weight:700;
  line-height:1.25;
  letter-spacing:var(--cg-track-060, .06em);

  color:var(--gold);

  filter:
    drop-shadow(0 4px 8px rgba(0,0,0,.48));

  transition:
    border-color var(--transition-fast),
    background-color var(--transition-fast);
}

.ns-drawer__link--plain{
  margin-top:auto;
  padding-left:10px;
}

.ns-drawer__link-arrow{
  justify-self:end;

  width:8px;
  height:8px;

  border-right:2px solid var(--gold);
  border-top:2px solid var(--gold);

  transform:rotate(45deg);
}

/* =========================
   PIE FIJO
   ========================= */

.ns-drawer__foot{
  position:relative;
  z-index:2;

  display:grid;
  justify-items:stretch;
  gap:12px;

  margin:0;
  padding:
    13px
    14px
    max(14px, env(safe-area-inset-bottom));

  border-top:1px solid rgba(240,197,111,.23);

  background:
    linear-gradient(
      180deg,
      rgba(13,13,13,.93),
      #080808 36%
    );

  box-shadow:
    0 -18px 36px rgba(0,0,0,.36);
}

/* CTA dorado */

.ns-drawer .ns-drawer__cta{
  position:relative;

  display:flex;
  align-items:center;
  justify-content:center;

  gap:0;

  width:min(100%, 320px);
  max-width:320px;
  min-height:56px;

  justify-self:center;

  margin:0;
  padding:10px 18px;

  border:1px solid rgba(255,248,220,.72);
  border-radius:999px;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.38) 0%,
      rgba(255,255,255,.08) 31%,
      rgba(255,255,255,0) 46%
    ),
    linear-gradient(
      180deg,
      #f8d987 0%,
      #ecc15e 49%,
      #c98d2e 100%
    );

  background-origin:border-box;
  background-clip:padding-box;

  color:#111;

  box-shadow:
    0 14px 28px rgba(0,0,0,.48),
    0 0 22px rgba(240,197,111,.17),
    inset 0 1px 0 rgba(255,255,255,.52),
    inset 0 -7px 13px rgba(105,57,6,.17);

  font-family:var(--font-body);

  font-size:15px;
  font-weight:700;
  line-height:1.25;
  letter-spacing:.035em;

  text-align:center;

  transition:
    transform var(--transition-fast),
    filter var(--transition-fast),
    box-shadow var(--transition-fast);
}

.ns-drawer__cta-text{
  min-width:0;
  padding-inline:0;
  white-space:nowrap;
}

/* Anulamos el brillo antiguo del botón */

.ns-drawer .ns-drawer__cta::after{
  content:none;
  animation:none;
}

.ns-drawer__cta-arrow{
  position:absolute;
  right:22px;
  top:50%;

  width:9px;
  height:9px;

  border-right:2px solid #171717;
  border-top:2px solid #171717;

  transform:
    translateY(-50%)
    rotate(45deg);
}

/* Redes y correo */

.ns-drawer__foot-bottom{
  display:grid;
  justify-items:center;
  gap:7px;
}

.ns-drawer__social{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;

  margin:0;
  opacity:1;
}

.ns-drawer__social .social-icon{
  width:22px;
  height:22px;
}

.ns-drawer__mail{
  text-align:center;
}

.ns-drawer__mail .mailto{
  display:inline-block;

  padding:1px 4px;

  font-family:var(--font-footer-contact);

  font-size:12px;
  font-weight:300;
  line-height:1.4;
  letter-spacing:.065em;

  color:rgba(255,255,255,.72);

  text-decoration:none;
}

/* =========================
   HOVER
   ========================= */

@media (hover:hover){

  .ns-drawer__close:hover{
    transform:rotate(4deg);

    border-color:rgba(240,197,111,.70);

    box-shadow:
      0 10px 24px rgba(0,0,0,.40),
      0 0 0 3px rgba(240,197,111,.10);
  }

  .ns-drawer__section-head:hover,
  .ns-drawer__link:hover{
    border-color:rgba(240,197,111,.48);
  }

  .ns-drawer__acc-btn:hover{
    background:rgba(240,197,111,.055);
  }

  .ns-drawer__tour-link:hover{
    transform:translateY(-1px);

    border-color:rgba(240,197,111,.48);

    box-shadow:
      0 13px 26px rgba(0,0,0,.33),
      inset 0 1px 0 rgba(255,255,255,.045);
  }

  .ns-drawer__sublink:hover,
  .ns-drawer__subchild:hover{
    color:var(--gold);
  }

  .ns-drawer__subchild:hover{
    transform:translateX(3px);
  }

  .ns-drawer .ns-drawer__cta:hover{
    transform:translateY(-1px);

    color:#111;

    filter:brightness(1.04);

    box-shadow:
      0 17px 32px rgba(0,0,0,.54),
      0 0 28px rgba(240,197,111,.24),
      inset 0 1px 0 rgba(255,255,255,.58),
      inset 0 -7px 13px rgba(105,57,6,.17);
  }

}

/* =========================
   PANTALLAS MUY PEQUEÑAS
   ========================= */

@media (max-width:420px){

  .ns-drawer__panel{
    width:100vw;

    border-left:0;
    border-radius:0;
  }

  .ns-drawer__nav{
    padding-inline:10px;
  }

  .ns-drawer__foot{
    padding-inline:12px;
  }

}

@media (max-width:360px){

  .ns-drawer__head{
    min-height:58px;
    padding-inline:12px;
  }

  .ns-drawer__close{
    width:40px;
    height:40px;
    flex-basis:40px;
  }

  .ns-drawer__section-head{
    grid-template-columns:minmax(0, 1fr) 42px;
  }

  .ns-drawer__section-link{
    gap:9px;

    padding-left:8px;

    font-size:17px;
  }

  .ns-drawer__section-icon{
    width:34px;
    height:34px;
    flex-basis:34px;
  }

  .ns-drawer__tour-link{
    grid-template-columns:38px minmax(0, 1fr) 15px;
    gap:8px;

    min-height:54px;
    padding-inline:8px;
  }

  .ns-drawer__tour-icon{
    width:36px;
    height:36px;
  }

  .ns-drawer__group{
    padding-inline:10px;
  }

  .ns-drawer__city-icon{
    width:34px;
    height:34px;
    flex-basis:34px;
  }

  .ns-drawer__subchildren{
    margin-left:42px;
  }

  .ns-drawer .ns-drawer__cta{
    padding-inline:14px;
    font-size:13px;
  }
}

/* =========================
   REDUCIR MOVIMIENTO
   ========================= */

@media (prefers-reduced-motion:reduce){

  .ns-drawer,
  .ns-drawer__panel,
  .ns-drawer__submenu,
  .ns-drawer__acc-btn::after{
    transition:none !important;
  }

}

/* =========================
   SCROLL MOUSE — GLOBAL
   ========================= */

/* =========================
   MOUSE CORE
   ========================= */
.mouse{
  position:relative;
  display:inline-block;
  width:32px;
  height:50px;
}

.mouse::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:20px;
  border:2px solid transparent;
  background:var(--gold-gradient-text) border-box;
  -webkit-mask:
    linear-gradient(#000 0 0) padding-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}

.mouse-wheel{
  position:absolute;
  top:6px;
  left:50%;
  width:5px;
  height:12px;
  border-radius:4px;
  background:var(--gold-gradient-text);
  box-shadow:
    0 1px 0 rgba(0,0,0,.30),
    0 4px 8px rgba(0,0,0,.20);
  animation:moveWheel 1.5s linear infinite;
}


/* =========================
   LARGE MOUSE — COMMON
   ========================= */
.ns-home-scroll-bridge{
  z-index:3;
  width:min(620px, 78vw);
  height:50px;
  pointer-events:none;
}

.ns-home-scroll-line--left{
  background:linear-gradient(
    90deg,
    rgba(240,197,111,0) 0%,
    rgba(240,197,111,.68) 44%,
    rgba(255,244,214,.96) 100%
  );
}

.ns-home-scroll-line--right{
  background:linear-gradient(
    90deg,
    rgba(255,244,214,.96) 0%,
    rgba(240,197,111,.68) 56%,
    rgba(240,197,111,0) 100%
  );
}

.ns-home-scroll-indicator{
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:50px;
  margin:0;
  overflow:visible;
  opacity:1;
  pointer-events:auto;
  cursor:pointer;
}

.ns-home-scroll-label{
  position:absolute;
  top:6px;
  left:50%;
  display:block;
  width:96px;
  max-width:none;
  height:104px;
  overflow:visible;
  pointer-events:none;
  transform:translateX(-50%);
}

.ns-home-scroll-label__text{
  font-family:var(--font-brand);
  font-size:9px;
  font-weight:600;
  letter-spacing:.12em;
  filter:
    drop-shadow(0 1px 0 rgba(0,0,0,.48))
    drop-shadow(0 4px 6px rgba(0,0,0,.34));
}

.ns-home-scroll-indicator .mouse{
  width:30px;
  height:50px;
}

.ns-home-scroll-indicator .mouse-wheel{
  display:block;
}


/* =========================
   LARGE MOUSE — HOME
   ========================= */
body.ns-home .ns-home-scroll-bridge{
  position:absolute;
  left:50%;
  top:calc(100% + 125px);
  bottom:auto;
  display:grid;
  grid-template-columns:minmax(0, 1fr) 32px minmax(0, 1fr);
  align-items:center;
  column-gap:clamp(16px, 2.5vw, 24px);
  margin:0;
  transform:translateX(-50%);
}

body.ns-home .ns-home-scroll-line{
  display:block;
  align-self:start;
  width:100%;
  height:1px;
  transform:translateY(25px);
}

body.ns-home .ns-home-scroll-line--left{
  grid-column:1;
}

body.ns-home .ns-home-scroll-line--right{
  grid-column:3;
}

body.ns-home .ns-home-scroll-indicator{
  position:relative;
  left:auto;
  right:auto;
  top:auto;
  bottom:auto;
  grid-column:2;
  flex:0 0 32px;
  transform:none;
}


/* =========================
   LARGE MOUSE — REGION
   ========================= */
body.ns-region .ns-home-scroll-bridge{
  position:relative;
  left:0;
  top:auto;
  bottom:auto;
  display:block;
  width:min(440px, 100%);
  margin:
    clamp(26px, 4vw, 36px)
    0
    0;
  filter:
    drop-shadow(0 2px 2px rgba(0,0,0,.82))
    drop-shadow(0 6px 9px rgba(0,0,0,.58));
  transform:none;
}

body.ns-region .ns-home-scroll-line{
  position:absolute;
  top:25px;
  display:block;
  height:1px;
  transform:none;
}

body.ns-region .ns-home-scroll-line--left{
  left:0;
  width:calc(50% - 48px);
}

body.ns-region .ns-home-scroll-line--right{
  right:0;
  width:calc(50% - 48px);
}

body.ns-region .ns-home-scroll-indicator{
  position:absolute;
  left:50%;
  top:0;
  bottom:auto;
  transform:translateX(-50%);
}


/* =========================
   FLOATING SECTION NAV — GLOBAL
   ========================= */
.ns-scroll-nav{
  --ns-scroll-nav-footer-offset:0px;

  position:fixed;
  left:50%;
  bottom:calc(
    18px +
    var(--ns-scroll-nav-footer-offset) +
    env(safe-area-inset-bottom)
  );
  z-index:920;

  display:grid;
  grid-template-columns:auto auto;
  align-items:center;
  justify-content:center;
  gap:16px;

  width:max-content;
  min-width:238px;
  max-width:calc(100vw - 28px);
  min-height:48px;
  padding:9px 48px;

  overflow:hidden;

  border:1px solid var(--gold-structural);
  border-radius:999px;

  background:
    radial-gradient(
      180px 70px at 50% 0%,
      rgba(var(--gold-rgb),.075),
      rgba(var(--gold-rgb),0) 68%
    ),
    linear-gradient(
      180deg,
      rgba(18,18,18,.96),
      rgba(5,5,5,.95)
    );

  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.065),
    0 12px 32px rgba(0,0,0,.48),
    0 0 18px rgba(var(--gold-rgb),.10);

  color:var(--warm-white);
  opacity:0;
  transform:translate(-50%, 10px) scale(.98);
  pointer-events:none;
  cursor:pointer;

  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);

  transition:
    bottom var(--transition-med),
    opacity var(--transition-med),
    transform var(--transition-med),
    border-color var(--transition-med),
    box-shadow var(--transition-med),
    filter var(--transition-med);
}

.ns-scroll-nav::before{
  content:"";
  position:absolute;
  inset:3px;
  border:1px solid rgba(var(--gold-rgb),.12);
  border-radius:inherit;
  pointer-events:none;
}

.ns-scroll-nav._is-visible{
  opacity:1;
  transform:translate(-50%, 0) scale(1);
  pointer-events:auto;
}

.ns-scroll-nav._is-open{
  border-color:rgba(var(--gold-rgb),.82);
  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.08),
    0 14px 34px rgba(0,0,0,.52),
    0 0 24px rgba(var(--gold-rgb),.16);
}

.ns-scroll-nav__count{
  font-family:var(--font-brand);
  font-size:11px;
  font-weight:600;
  line-height:1;
  letter-spacing:.13em;
  color:rgba(var(--gold-rgb),.92);
  white-space:nowrap;
}

.ns-scroll-nav__current{
  min-width:0;
  padding-right:20px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:var(--font-display);
  font-size:17px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:var(--cg-track-080, .08em);
  color:var(--warm-white);
  text-align:center;
}

.ns-scroll-nav__chevron{
  position:absolute;
  right:20px;
  top:50%;
  display:block;
  width:10px;
  height:10px;
  transform:translateY(-65%) rotate(45deg);
  border-right:1.5px solid rgba(var(--gold-rgb),.92);
  border-bottom:1.5px solid rgba(var(--gold-rgb),.92);
  transition:transform var(--transition-med);
}

.ns-scroll-nav._is-open .ns-scroll-nav__chevron{
  transform:translateY(-35%) rotate(225deg);
}

.ns-scroll-nav-menu{
  --ns-scroll-nav-footer-offset:0px;

  position:fixed;
  left:50%;
  bottom:calc(
    78px +
    var(--ns-scroll-nav-footer-offset) +
    env(safe-area-inset-bottom)
  );
  z-index:919;

  width:min(calc(100vw - 32px), 380px);
  padding:10px;

  border:1px solid rgba(var(--gold-rgb),.34);
  border-radius:18px;

  background:
    radial-gradient(
      300px 150px at 50% 0%,
      rgba(var(--gold-rgb),.085),
      rgba(var(--gold-rgb),0) 70%
    ),
    linear-gradient(
      180deg,
      rgba(18,18,18,.985),
      rgba(5,5,5,.98)
    );

  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.055),
    0 20px 58px rgba(0,0,0,.62);

  opacity:0;
  transform:translate(-50%, 10px) scale(.985);
  pointer-events:none;

  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);

  transition:
    bottom var(--transition-med),
    opacity var(--transition-med),
    transform var(--transition-med);
}

.ns-scroll-nav-menu._is-open{
  opacity:1;
  transform:translate(-50%, 0) scale(1);
  pointer-events:auto;
}

.ns-scroll-nav-menu__list{
  display:grid;
  gap:3px;
  padding:1px 0;
}

.ns-scroll-nav-menu__item{
  position:relative;
  display:grid;
  grid-template-columns:42px minmax(0, 1fr);
  align-items:center;
  gap:12px;
  width:100%;
  min-height:46px;
  padding:8px 12px;
  border-radius:10px;
  color:rgba(255,255,255,.74);
  text-align:left;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    transform var(--transition-fast);
}

.ns-scroll-nav-menu__item-index{
  font-family:var(--font-brand);
  font-size:11px;
  font-weight:600;
  line-height:1;
  letter-spacing:.14em;
  color:rgba(var(--gold-rgb),.62);
}

.ns-scroll-nav-menu__item-label{
  min-width:0;
  font-family:var(--font-display);
  font-size:15px;
  font-weight:700;
  line-height:1.35;
  letter-spacing:var(--cg-track-065, .065em);
}

.ns-scroll-nav-menu__item._is-active{
  color:var(--warm-white);
  background:linear-gradient(90deg, rgba(var(--gold-rgb),.12), rgba(var(--gold-rgb),.035));
}

.ns-scroll-nav-menu__item._is-active::before{
  content:"";
  position:absolute;
  left:0;
  top:18%;
  bottom:18%;
  width:1px;
  background:rgba(var(--gold-rgb),.92);
}

.ns-scroll-nav-menu__item._is-active .ns-scroll-nav-menu__item-index{
  color:rgba(var(--gold-rgb),.96);
}

body._nav-open .ns-scroll-nav,
body._nav-open .ns-scroll-nav-menu{
  opacity:0;
  pointer-events:none;
}

@media (hover:hover){

  .ns-scroll-nav._is-visible:hover{
    transform:translate(-50%, -2px) scale(1.01);
    border-color:rgba(var(--gold-rgb),.76);
    box-shadow:
      inset 0 1px 0 rgba(255,244,214,.07),
      0 15px 36px rgba(0,0,0,.52),
      0 0 20px rgba(var(--gold-rgb),.14);
  }

  .ns-scroll-nav-menu__item:hover{
    color:var(--warm-white);
    background:rgba(var(--gold-rgb),.07);
    transform:translateX(2px);
  }

}

@media (max-width:767.98px){

  .ns-scroll-nav{
    bottom:calc(
      12px +
      var(--ns-scroll-nav-footer-offset) +
      env(safe-area-inset-bottom)
    );
    min-width:210px;
    max-width:calc(100vw - 28px);
    min-height:44px;
    padding:8px 15px;
    gap:10px;
  }

  .ns-scroll-nav__current{
    font-size:14px;
  }

  .ns-scroll-nav-menu{
    bottom:calc(
      68px +
      var(--ns-scroll-nav-footer-offset) +
      env(safe-area-inset-bottom)
    );
    width:min(calc(100vw - 24px), 420px);
    border-radius:16px;
  }

}

@media (min-width:1024px){

  .ns-scroll-nav{
    min-width:250px;
    min-height:50px;
    padding-inline:19px;
  }

  .ns-scroll-nav-menu{
    width:390px;
  }

}

@media (prefers-reduced-motion:reduce){

  .ns-scroll-nav,
  .ns-scroll-nav__chevron,
  .ns-scroll-nav-menu,
  .ns-scroll-nav-menu__item{
    transition:none !important;
  }

}

/* =========================
   SCROLL MOUSE — RESPONSIVE
   ========================= */
@media (max-width:767.98px){

  .ns-copy--wide{
    display:none;
  }

  .ns-copy--mobile{
    display:inline;
  }

  body.ns-region .ns-region-hero__copy > *:not(.ns-home-scroll-bridge){
    transform:none;
  }

  body.ns-region .ns-region-hero__copy .ns-home-scroll-bridge{
    height:var(--space-5);
  }

}

@media (min-width:1024px){

  body.ns-region .ns-region-hero .ns-home-scroll-bridge{
    left:0;
    width:min(460px, 100%);
    transform:none;
    transform-origin:left top;
  }

}

/* =========================
   FINAL CTA
   ========================= */
.ns-rcta{
  position:relative;
  isolation:isolate;
  overflow:hidden;

  width:100vw;
  max-width:100vw;

  margin-top:clamp(58px, 8vw, 88px);
  margin-bottom:clamp(160px, 9vw, 190px);
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);

  padding:0;
}

.ns-rcta::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;

  background:
    linear-gradient(
      90deg,
      rgba(4,4,4,0) 0%,
      rgba(8,8,8,.58) 7%,
      rgba(5,5,5,.96) 18%,
      rgba(5,5,5,.98) 50%,
      rgba(5,5,5,.96) 82%,
      rgba(8,8,8,.58) 93%,
      rgba(4,4,4,0) 100%
    );
}

.ns-rcta::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;

  border-top:1px solid rgba(240,197,111,.58);
  border-bottom:1px solid rgba(240,197,111,.58);

  -webkit-mask-image:linear-gradient(
    90deg,
    transparent 0%,
    #000 14%,
    #000 86%,
    transparent 100%
  );
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;

  mask-image:linear-gradient(
    90deg,
    transparent 0%,
    #000 14%,
    #000 86%,
    transparent 100%
  );
  mask-repeat:no-repeat;
  mask-size:100% 100%;
}

.ns-rcta__panel{
  position:relative;
  z-index:1;

  display:grid;
  grid-template-columns:minmax(0, 720px) minmax(380px, 440px);
  grid-template-areas:"copy button";
  
  justify-content:center;
  align-items:center;
  column-gap:clamp(28px, 2.5vw, 44px);
  row-gap:0;
  
  width:min(
    1450px,
    calc(100% - clamp(48px, 8vw, 180px))
  );

  min-height:clamp(230px, 18vw, 290px);

  margin:0 auto;

  padding:
    clamp(34px, 4vw, 52px)
    clamp(18px, 2vw, 34px);

  text-align:left;

  background:transparent;
  border:0;
  box-shadow:none;
  overflow:visible;
}

.ns-rcta__panel::before{
  content:"";
  position:absolute;
  right:4%;
  top:50%;
  z-index:-1;

  width:500px;
  height:210px;

  transform:translateY(-50%);
  border-radius:50%;

  background:rgba(240,197,111,0);
  filter:blur(64px);
  pointer-events:none;
}

.ns-rcta__panel::after{
  content:none;
  display:none;
}

.ns-rcta__eyebrow{
  grid-area:eyebrow;

  display:block;
  margin:0 0 10px;

  font-family:var(--font-body);
  font-size:clamp(12px, .95vw, 16px);
  font-style:normal;
  font-weight:700;
  line-height:1.4;
  letter-spacing:.20em;
  text-transform:uppercase;

  background:linear-gradient(
    180deg,
    #fff4d6 0%,
    #ffe7a8 34%,
    #f0c56f 70%,
    #d9a94d 100%
  );

  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;

  text-shadow:
    0 2px 8px rgba(0,0,0,.78),
    0 0 18px rgba(240,197,111,.14);
}

.ns-rcta__ttl{
  grid-area:title;

  width:max-content;
  max-width:none;
  margin:0 0 14px;
  padding-bottom:.10em;

  font-family:var(--font-display-primary);
  font-size:clamp(32px, 2.35vw, 46px);
  font-style:normal;
  font-weight:700;
  line-height:1.20;
  letter-spacing:var(--cg-track-005, .005em);

  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;

  background:linear-gradient(
    180deg,
    #fff4d6 0%,
    #ffe7a8 34%,
    #f0c56f 70%,
    #d9a94d 100%
  );

  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;

  filter:
    drop-shadow(0 4px 8px rgba(0,0,0,.70))
    drop-shadow(0 10px 22px rgba(0,0,0,.50));
}

.ns-rcta__txt{
  grid-area:text;

  position:relative;
  display:block;

  width:min(100%, 760px);
  margin:0;

  font-family:var(--font-body);
  font-size:clamp(15px, 1.15vw, 19px);
  font-style:normal;
  font-weight:300;
  line-height:1.75;
  letter-spacing:.015em;
  text-align:left;

  color:rgba(255,255,255,.88);
  opacity:1;

  text-shadow:
    0 2px 6px rgba(0,0,0,.72);
}

.ns-rcta__txt::before,
.ns-rcta__txt::after{
  content:none;
  display:none;
}

.ns-rcta__ctas{
  grid-area:button;

  position:relative;
  isolation:isolate;

  display:flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  justify-self:center;

  width:min(100%, 360px);
  min-height:100%;
  padding:0;
}

/* Halo luminoso colocado detrás del botón */
.ns-rcta__ctas::before{
  content:"";
  position:absolute;
  z-index:0;
  left:50%;
  top:50%;

  width:145%;
  height:94%;

  transform:translate(-50%, -50%) scale(.62);
  transform-origin:center center;
  border-radius:999px;

  background:
    radial-gradient(
      ellipse at center,
      rgba(255,246,210,.74) 0%,
      rgba(255,225,145,.49) 24%,
      rgba(240,197,111,.29) 48%,
      rgba(240,197,111,.11) 68%,
      rgba(240,197,111,0) 82%
    );

  filter:blur(28px);
  opacity:0;
  pointer-events:none;

  will-change:opacity, transform;
  animation:nsRctaHaloPulse 4s ease-in-out infinite;
}

.ns-rcta__panel .ns-rcta__btn{
  position:relative;
  z-index:1;
  overflow:hidden;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  width:min(100%, 440px);
  min-width:0;
  min-height:70px;
  
  margin:0;
  padding:15px 30px;
  
  font-family:var(--font-brand);
  font-size:clamp(15px, 1.1vw, 19px);
  font-style:normal;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.04em;
  text-align:center;
  white-space:nowrap;

  color:#101010;
  text-shadow:none;

  border:1px solid transparent;
  border-radius:999px;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.52) 0%,
      rgba(255,255,255,.19) 24%,
      rgba(255,255,255,0) 48%
    ) padding-box,
    linear-gradient(
      180deg,
      #f9e8aa 0%,
      #f1cd74 30%,
      #dcaa4a 64%,
      #ad7224 100%
    ) padding-box,
    linear-gradient(
      180deg,
      #fff8df 0%,
      #f0c56f 52%,
      #9b641c 100%
    ) border-box;

  box-shadow:
    0 18px 34px rgba(0,0,0,.56),
    inset 0 1px 0 rgba(255,255,255,.48),
    inset 0 -10px 18px rgba(91,50,8,.20),
    inset 0 0 0 rgba(255,239,194,0);

  transition:
    transform var(--transition-med),
    box-shadow var(--transition-med),
    filter var(--transition-med);

  will-change:box-shadow;
  animation:nsRctaButtonPulse 4s ease-in-out infinite;
}

@keyframes nsRctaHaloPulse{
  0%,
  6%{
    opacity:0;
    transform:translate(-50%, -50%) scale(.62);
  }

  24%{
    opacity:.42;
    transform:translate(-50%, -50%) scale(.78);
  }

  46%{
    opacity:.95;
    transform:translate(-50%, -50%) scale(1);
  }

  72%{
    opacity:.26;
    transform:translate(-50%, -50%) scale(.88);
  }

  100%{
    opacity:0;
    transform:translate(-50%, -50%) scale(.68);
  }
}

@keyframes nsRctaButtonPulse{
  0%,
  6%,
  100%{
    box-shadow:
      0 18px 34px rgba(0,0,0,.56),
      inset 0 1px 0 rgba(255,255,255,.48),
      inset 0 -10px 18px rgba(91,50,8,.20),
      inset 0 0 0 rgba(255,239,194,0),
      0 0 0 rgba(240,197,111,0);
  }

  24%{
    box-shadow:
      0 18px 34px rgba(0,0,0,.56),
      inset 0 1px 0 rgba(255,255,255,.52),
      inset 0 -10px 18px rgba(91,50,8,.20),
      inset 0 0 16px rgba(255,239,194,.11),
      0 0 12px rgba(240,197,111,.10);
  }

  46%{
    box-shadow:
      0 18px 34px rgba(0,0,0,.56),
      inset 0 1px 0 rgba(255,255,255,.58),
      inset 0 -10px 18px rgba(91,50,8,.20),
      inset 0 0 28px rgba(255,239,194,.20),
      0 0 22px rgba(240,197,111,.16),
      0 0 40px rgba(240,197,111,.11);
  }

  72%{
    box-shadow:
      0 18px 34px rgba(0,0,0,.56),
      inset 0 1px 0 rgba(255,255,255,.52),
      inset 0 -10px 18px rgba(91,50,8,.20),
      inset 0 0 10px rgba(255,239,194,.07),
      0 0 10px rgba(240,197,111,.07);
  }
}

.ns-rcta__panel .ns-rcta__btn:hover,
.ns-rcta__panel .ns-rcta__btn:focus-visible{
  transform:translateY(-2px);
  filter:brightness(1.025);

  box-shadow:
    0 0 0 1px rgba(255,244,214,.18),
    0 0 22px rgba(240,197,111,.30),
    0 0 46px rgba(240,197,111,.36),
    0 0 78px rgba(240,197,111,.20),
    0 20px 38px rgba(0,0,0,.60),
    inset 0 1px 0 rgba(255,255,255,.56),
    inset 0 -10px 18px rgba(91,50,8,.22);
}

.ns-rcta__panel .ns-rcta__btn:active{
  transform:translateY(0);
}

/* Ajuste para escritorios medianos */
@media (max-width:1100px){

  .ns-rcta__panel{
    grid-template-columns:minmax(0, 1fr) minmax(320px, 390px);
    column-gap:clamp(28px, 4vw, 48px);

    width:calc(100% - 48px);
  }

  .ns-rcta__ttl{
    font-size:clamp(29px, 2.85vw, 36px);
  }

  .ns-rcta__txt{
    font-size:15px;
  }

  .ns-rcta__panel .ns-rcta__btn{
    min-height:64px;
    padding-inline:22px;
    font-size:15px;
  }
}

/* Mobile */
@media (max-width:767.98px){

  .ns-rcta{
    margin-top:54px;
    margin-bottom:30px;
  }

  body.ns-region .ns-rcta{
    margin-top:var(--ns-region-section-space);
    margin-bottom:var(--ns-region-section-space);
  }

  .ns-rcta__panel{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    width:calc(100% - 32px);
    min-height:auto;

    padding:
      34px
      clamp(18px, 5vw, 30px)
      32px;

    text-align:center;
  }

  .ns-rcta__panel::before{
    right:50%;
    top:70%;

    width:380px;
    height:180px;

    transform:translate(50%, -50%);
  }

  .ns-rcta__copy{
    width:100%;
  }

  .ns-rcta__eyebrow{
    display:block;
    width:100%;
    margin:0 auto 10px;
    text-align:center;
  }

  .ns-rcta__ttl{
    width:auto;
    margin-bottom:12px;

    font-size:clamp(25px, 4.4vw, 33px);
    text-align:center;
    white-space:nowrap;
  }

  .ns-rcta__txt{
    width:min(100%, 600px);
    margin:0 auto 24px;

    font-size:14.5px;
    line-height:1.7;
    text-align:center;
  }

  .ns-rcta__ctas{
    width:min(100%, 280px);
    min-height:auto;
  }

  .ns-rcta__panel .ns-rcta__btn{
    width:100%;
    min-height:54px;

    padding:12px 18px;
    font-size:14.5px;
  }

  body.ns-circuit .ns-rcta{
    margin-top:var(--space-6);
    margin-bottom:var(--space-5);
  }

  body.ns-circuit .ns-rcta__panel{
    width:calc(100% - (2 * var(--ns-edge)));
    padding:
      var(--space-5)
      var(--space-3)
      var(--space-4);
  }

  body.ns-circuit .ns-rcta__ttl{
    width:100%;
    max-width:100%;
    margin-bottom:var(--space-2);
    font-size:clamp(24px, 7vw, 30px);
    white-space:normal;
    text-wrap:balance;
  }

  body.ns-circuit .ns-rcta__txt{
    margin-bottom:var(--space-4);
  }

  body.ns-circuit .ns-rcta__ctas{
    width:min(100%, 280px);
  }
}

/* Tablet */
@media (min-width:768px) and (max-width:1023.98px){

  .ns-rcta{
    margin-top:clamp(58px, 7vw, 72px);
    margin-bottom:clamp(130px, 16vw, 160px);
  }

  body:not(.ns-circuit) .ns-rcta__panel{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    width:calc(100% - 40px);
    max-width:920px;
    min-height:auto;

    padding:
      clamp(38px, 5vw, 48px)
      clamp(28px, 6vw, 54px)
      clamp(36px, 5vw, 46px);

    text-align:center;
  }

  body.ns-circuit .ns-rcta__panel{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(260px, 34%);
    grid-template-areas:"copy button";
    align-items:center;
    column-gap:clamp(28px, calc(7.031vw - 24px), 48px);
    width:calc(100% - (2 * var(--ns-edge, 40px)));
    max-width:920px;
    min-height:clamp(210px, 27vw, 250px);
    padding:
      clamp(32px, 4.5vw, 44px)
      clamp(24px, 4vw, 40px);
    text-align:left;
  }

  .ns-rcta__panel::before{
    right:50%;
    top:72%;

    width:440px;
    height:190px;

    transform:translate(50%, -50%);
  }

  .ns-rcta__copy{
    width:100%;
  }

  body:not(.ns-circuit) .ns-rcta__eyebrow{
    display:block;
    width:100%;
    margin:0 auto 11px;
    text-align:center;
  }

  body:not(.ns-circuit) .ns-rcta__ttl{
    width:auto;
    margin-bottom:8px;
    font-size:clamp(29px, 4.2vw, 36px);
    text-align:center;
    white-space:nowrap;
  }

  body:not(.ns-circuit) .ns-rcta__txt{
    width:min(100%, 620px);
    margin:0 auto 28px;
    font-size:15px;
    line-height:1.8;
    text-align:center;
  }

  body:not(.ns-circuit) .ns-rcta__ctas{
    width:min(100%, 320px);
    min-height:auto;
  }

  body.ns-circuit .ns-rcta__eyebrow{
    margin-bottom:var(--space-1);
    text-align:left;
  }

  body.ns-circuit .ns-rcta__ttl{
    width:max-content;
    max-width:100%;
    margin-bottom:var(--space-2);
    font-size:clamp(28px, 3.6vw, 36px);
    text-align:left;
    white-space:nowrap;
  }

  body.ns-circuit .ns-rcta__txt{
    width:100%;
    margin:0;
    font-size:clamp(14px, 1.7vw, 16px);
    line-height:1.75;
    text-align:left;
  }

  body.ns-circuit .ns-rcta__ctas{
    width:100%;
    min-height:100%;
  }

  .ns-rcta__panel .ns-rcta__btn{
    width:100%;
    min-height:62px;
    padding-inline:22px;
    font-size:15px;
  }
}

@media (max-width:680px){

  .ns-rcta__panel{
    width:calc(100% - 20px);

    padding:
      30px
      16px
      28px;
  }

  .ns-rcta__eyebrow{
    display:block;
    width:100%;
    max-width:none;
    margin-left:auto;
    margin-right:auto;
    font-size:11px;
    letter-spacing:.14em;
    text-align:center;
  }

  .ns-rcta__ttl{
    width:100%;
    margin-bottom:12px;

    font-size:clamp(22px, 6.3vw, 29px);
    line-height:1.18;

    white-space:normal;
    text-wrap:balance;
  }

  .ns-rcta__txt{
    width:min(100%, 340px);
    margin:0 auto 22px;

    font-size:13.5px;
    line-height:1.62;
  }

  .ns-rcta__ctas{
    width:min(100%, 255px);
    min-height:auto;
  }

  .ns-rcta__panel .ns-rcta__btn{
    width:100%;
    min-height:50px;
    padding:11px 16px;
    font-size:13.5px;
    white-space:normal;
  }
}

/* =========================
   INDEX BRAND LOCKUPS
   ========================= */
body.ns-home .ns-index-divider{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(14px, 2.2vw, 28px);

  width:min(100%, 1280px);
  margin:
    clamp(52px, 6vw, 78px)
    auto
    0;
  padding-inline:var(--ns-edge, 40px);
}

body.ns-home .ns-index-divider__line{
  flex:1 1 140px;
  max-width:280px;
  height:1px;
  background:var(--gold-rule);
  opacity:.9;
}

body.ns-home .ns-index-divider__inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;

  min-width:min(100%, 270px);
  text-align:center;
}

body.ns-home .ns-index-divider__title,
body.ns-home .ns-index-brand-tag__name,
body.ns-home .ns-index-brand-tag__tagline,
.ns-brand-signature__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;
  -webkit-text-fill-color:transparent;
  color:transparent;
}

body.ns-home .ns-index-divider__brand{
  background:none;
  -webkit-background-clip:border-box;
  background-clip:border-box;
  -webkit-text-fill-color:#fff;
  color:#fff;
}

body.ns-home .ns-index-divider__title{
  margin:0;

  font-family:var(--font-display);
  font-size:clamp(22px, 2.55vw, 32px);
  font-weight:700;
  letter-spacing:.14em;
  line-height:1.15;
  white-space:nowrap;

  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.62))
    drop-shadow(0 8px 18px rgba(0,0,0,.48));
}

body.ns-home .ns-index-divider__mark{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
}

body.ns-home .ns-index-divider__seal,
body.ns-home .ns-index-brand-tag__seal,
.ns-brand-signature__seal{
  display:block;
  flex:0 0 auto;
  line-height:0;
}

body.ns-home .ns-index-divider__seal img,
body.ns-home .ns-index-brand-tag__seal img,
.ns-brand-signature__seal img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

body.ns-home .ns-index-divider__seal{
  width:52px;
  height:52px;
  transform:rotate(-2deg);
}

body.ns-home .ns-index-divider__brand{
  font-family:var(--font-brand);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.34em;
  line-height:1;
}

body.ns-home .ns-index-brand-tag{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:14px;

  margin-top:18px;
}

body.ns-home .ns-index-brand-tag--bridge{
  display:flex;
  width:max-content;
  max-width:calc(100% - 40px);
  margin:
    0
    auto
    clamp(52px, 4vw, 64px);
  gap:16px;
}

body.ns-home .ns-index-brand-tag--bridge .ns-index-brand-tag__seal{
  width:52px;
  height:52px;
  transform:rotate(-2deg);
}

body.ns-home .ns-index-brand-tag--bridge .ns-index-brand-tag__text{
  gap:5px;
}

body.ns-home .ns-index-brand-tag--bridge .ns-index-brand-tag__name{
  font-size:14px;
  letter-spacing:.30em;
}

body.ns-home .ns-index-brand-tag--bridge .ns-index-brand-tag__tagline{
  background:none;
  -webkit-background-clip:border-box;
  background-clip:border-box;
  -webkit-text-fill-color:rgba(255,255,255,.88);
  color:rgba(255,255,255,.88);
  font-size:12px;
  letter-spacing:.13em;
  line-height:1.35;
}

body.ns-home .ns-index-brand-tag__seal{
  width:42px;
  height:42px;
  transform:rotate(-4deg);
}

body.ns-home .ns-index-brand-tag__text{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:4px;
}

body.ns-home .ns-index-brand-tag__name{
  font-family:var(--font-brand);
  font-size:12px;
  font-weight:700;
  letter-spacing:.30em;
  line-height:1;
}

body.ns-home .ns-index-brand-tag__tagline{
  font-family:var(--font-display);
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.14em;
  line-height:1.25;
}

.ns-brand-signature{
  position:relative;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;

  width:min(100%, 560px);
  margin:
    clamp(40px, 6vw, 64px)
    auto
    clamp(24px, 4vw, 36px);
  padding-inline:var(--ns-edge, 40px);

  text-align:center;
}

.ns-brand-signature__seal{
  width:60px;
  height:60px;
  transform:rotate(3deg);
}

.ns-brand-signature__name{
  font-family:var(--font-brand);
  font-size:clamp(18px, 2vw, 24px);
  font-weight:700;
  letter-spacing:.20em;
  line-height:1;
}

.ns-brand-signature__tagline{
  font-family:var(--font-brand);
  font-size:clamp(10px, 1.05vw, 12px);
  font-weight:700;
  letter-spacing:.20em;
  line-height:1.25;
  background:none;
  -webkit-background-clip:border-box;
  background-clip:border-box;
  -webkit-text-fill-color:#fff;
  color:#fff;
}

@media (max-width:767.98px){

  body.ns-home .ns-index-divider{
    gap:12px;
    margin:
      42px
      auto
      0;
    padding-inline:20px;
  }

  body.ns-home .ns-index-divider__line{
    flex:1 1 36px;
    max-width:none;
  }

  body.ns-home .ns-index-divider__inner{
    min-width:min(100%, 220px);
  }

  body.ns-home .ns-index-divider__title{
    font-size:clamp(20px, 5.8vw, 27px);
    letter-spacing:.14em;
  }

  body.ns-home .ns-index-divider__seal{
    width:46px;
    height:46px;
  }

  body.ns-home .ns-index-divider__brand{
    font-size:10.5px;
    letter-spacing:.28em;
  }

  body.ns-home .ns-index-brand-tag{
    width:100%;
    justify-content:center;
    gap:12px;
    text-align:center;
  }

  body.ns-home .ns-index-brand-tag__seal{
    width:38px;
    height:38px;
  }

  body.ns-home .ns-index-brand-tag__text{
    align-items:center;
  }

  body.ns-home .ns-index-brand-tag__name{
    font-size:11.5px;
    letter-spacing:.26em;
  }

  body.ns-home .ns-index-brand-tag__tagline{
    font-size:10px;
    letter-spacing:.10em;
  }

  body.ns-home .ns-index-brand-tag--bridge .ns-index-brand-tag__text{
    gap:9px;
  }

  body.ns-home .ns-index-brand-tag--bridge .ns-index-brand-tag__name{
    font-size:16px;
    letter-spacing:.24em;
  }

  body.ns-home .ns-index-brand-tag--bridge .ns-index-brand-tag__tagline{
    font-size:12px;
    letter-spacing:.08em;
    line-height:1.38;
  }

  .ns-brand-signature{
    margin:
      38px
      auto
      22px;
    padding-inline:20px;
  }

  .ns-brand-signature__seal{
    width:54px;
    height:54px;
  }

  .ns-brand-signature__tagline{
    font-size:10px;
    letter-spacing:.16em;
  }
}

/* =========================
   FORM
   ========================= */
.ct-pill{
  position:relative;
  width:100%;
  margin-top:clamp(58px, 9vw, 88px);
  padding:0;
}

.ct-pill._has-text._has-form{
  position:relative;
  padding-bottom:clamp(68px, 9vw, 108px);
}

body.ns-home .ct-pill._has-text._has-form{
  padding-bottom:clamp(160px, 9vw, 190px);
}

.ct-pill__content{
  width:100%;
  max-width:1160px;
  margin-right:auto;
  margin-left:auto;
  padding:0;
  background:none;
  border:0;
  box-shadow:none;
}

.ct-pill__info{
  width:100%;
}

.ns-form__panel{
  position:relative;
  width:100%;
  padding:
    clamp(32px, 7vw, 44px)
    clamp(18px, 5vw, 32px)
    clamp(26px, 6vw, 36px);
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(
      760px 320px at 50% 0%,
      rgba(240,197,111,.075) 0%,
      rgba(240,197,111,.018) 42%,
      rgba(240,197,111,0) 72%
    ),
    linear-gradient(
      180deg,
      rgba(16,16,16,.90) 0%,
      rgba(5,5,5,.95) 100%
    );
  border:1px solid rgba(240,197,111,.50);
  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.035),
    inset 0 -28px 60px rgba(0,0,0,.13),
    0 22px 50px rgba(0,0,0,.52);
}

.ns-form__panel::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:url("../images/stone.jpg");
  background-size:800px 800px;
  background-position:center;
  background-repeat:repeat;
  opacity:.17;
}

.ns-form__panel::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(
      90deg,
      rgba(0,0,0,.42) 0%,
      rgba(0,0,0,.06) 22%,
      rgba(0,0,0,.06) 78%,
      rgba(0,0,0,.42) 100%
    ),
    linear-gradient(
      180deg,
      rgba(255,255,255,.02) 0%,
      rgba(0,0,0,.20) 100%
    );
}

.ns-form__heading{
  width:min(760px, 100%);
  margin:
    0
    auto
    clamp(28px, 5vw, 38px);
  text-align:center;
}

.ns-form__heading-title{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(29px, 7vw, 40px);
  font-weight:700;
  line-height:1.32;
  letter-spacing:var(--cg-track-075, .075em);
  background:var(--gold-gradient-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.62))
    drop-shadow(0 10px 20px rgba(0,0,0,.52));
}

.ns-form__heading-title::after{
  content:"";
  display:block;
  width:min(390px, 76%);
  height:1px;
  margin:
    clamp(11px, 2.5vw, 15px)
    auto
    0;
  background:linear-gradient(
    90deg,
    rgba(240,197,111,0) 0%,
    rgba(240,197,111,.68) 24%,
    rgba(255,244,214,.94) 50%,
    rgba(240,197,111,.68) 76%,
    rgba(240,197,111,0) 100%
  );
}

.ns-form__heading-text{
  margin:
    clamp(13px, 3vw, 18px)
    auto
    0;
  font-family:var(--font-body);
  font-size:clamp(14px, 3.55vw, 16px);
  font-weight:400;
  line-height:1.80;
  letter-spacing:.035em;
  color:rgba(255,255,255,.82);
  text-shadow:
    0 1px 0 rgba(0,0,0,.38),
    0 8px 17px rgba(0,0,0,.44);
}

.ns-form{
  width:100%;
  margin:0;
}

.ns-form__grid{
  display:grid;
  grid-template-columns:1fr;
  grid-template-areas:
    "name"
    "email"
    "destination"
    "participants"
    "date"
    "message"
    "submit";
  gap:14px;
  width:100%;
}

.ns-form__field{
  min-width:0;
}

.ns-form__field--name{
  grid-area:name;
}

.ns-form__field--email{
  grid-area:email;
}

.ns-form__field--destination{
  grid-area:destination;
}

.ns-form__field--date{
  grid-area:date;
}

.ns-form__field--participants{
  grid-area:participants;
}

.ns-form__field--message{
  grid-area:message;
}

.ns-form__field--submit{
  grid-area:submit;
}

.ns-form__control{
  position:relative;
  display:flex;
  flex-direction:column;
  width:100%;
  min-width:0;
  overflow:hidden;
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.02) 0%,
      rgba(255,255,255,0) 100%
    ),
    rgba(3,3,3,.84);
  border:1px solid rgba(240,197,111,.25);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 9px 20px rgba(0,0,0,.27);
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast),
    background-color var(--transition-fast);
}

.ns-form__control--inline{
  display:grid;
  grid-template-columns:
    18px
    minmax(0, 1fr)
    auto;
  align-items:center;
  gap:12px;
  height:54px;
  padding:
    0
    14px;
}

.ns-form__control--inline .ns-form__input,
.ns-form__control--inline .ns-form__select{
  height:46px;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}

.ns-form__control--inline .ns-form__textarea{
  height:46px;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  line-height:46px;
}

.ns-form__control--inline .ns-form__select-wrap{
  width:100%;
  height:46px;
  min-width:0;
}

.ns-form__control--inline .ns-form__select{
  padding-right:26px;
}

.ns-form__control--inline .ns-form__select-arrow{
  right:4px;
}

.ns-form__control--inline .ns-badge-req{
  margin-left:0;
}

.ns-form__control-head{
  display:flex;
  align-items:center;
  gap:7px;
  width:100%;
  min-height:35px;
  padding:7px 10px 5px;
  font-family:var(--font-body);
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  letter-spacing:.045em;
  color:rgba(255,255,255,.82);
}

.ns-form__label-icon{
  position:relative;
  display:block;
  flex:0 0 18px;
  width:18px;
  height:18px;
  background:var(--gold-gradient-icons);
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.44))
    drop-shadow(0 5px 9px rgba(0,0,0,.42));
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:contain;
  mask-size:contain;
}

.ns-form__label-icon--name{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M4 21c0-5 3-8 8-8s8 3 8 8' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='4' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M4 21c0-5 3-8 8-8s8 3 8 8' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.ns-form__label-icon--email{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='14' rx='2' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='m4 7 8 6 8-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='14' rx='2' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='m4 7 8 6 8-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ns-form__label-icon--destination{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22s7-7 7-13a7 7 0 1 0-14 0c0 6 7 13 7 13Z' fill='none' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='12' cy='9' r='2.5' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22s7-7 7-13a7 7 0 1 0-14 0c0 6 7 13 7 13Z' fill='none' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='12' cy='9' r='2.5' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
}

.ns-form__label-icon--date{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='2' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='2' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.ns-form__label-icon--participants{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='3' fill='none' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='17' cy='9' r='2.5' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M3 20c0-4 2-7 6-7s6 3 6 7M14 14c4 0 7 2 7 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='3' fill='none' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='17' cy='9' r='2.5' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M3 20c0-4 2-7 6-7s6 3 6 7M14 14c4 0 7 2 7 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.ns-form__label-icon--message{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16v13H8l-4 4V4Z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M8 8h8M8 12h6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16v13H8l-4 4V4Z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M8 8h8M8 12h6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.ns-form__label-text{
  min-width:0;
  white-space:nowrap;
}

.ns-badge-req{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:50px;
  height:18px;
  margin-left:auto;
  padding:
    0
    7px;
  border:0;
  border-radius:0;
  background:transparent;
  font-size:11px;
  font-weight:500;
  line-height:1;
  letter-spacing:.045em;
  color:rgba(240,197,111,.88);
  box-shadow:none;
}

.ns-form__input,
.ns-form__select,
.ns-form__textarea{
  display:block;
  width:100%;
  min-width:0;
  border:0;
  border-radius:0;
  outline:none;
  background:rgba(0,0,0,.26);
  color:rgba(255,255,255,.93);
  font-family:var(--font-body);
  font-size:16px;
  font-weight:400;
  line-height:1.4;
  letter-spacing:.02em;
  box-shadow:none;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.ns-form__input,
.ns-form__select{
  height:39px;
  padding:0 10px;
}

.ns-form__textarea{
  min-height:74px;
  padding:10px;
  resize:vertical;
}

.ns-form__input::placeholder,
.ns-form__textarea::placeholder{
  color:rgba(168,176,191,.65);
  font-size:14px;
  letter-spacing:.015em;
}

.ns-form__select-wrap{
  position:relative;
  display:block;
  width:100%;
}

.ns-form__select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding-right:34px;
  cursor:pointer;
}

.ns-form__select::-ms-expand{
  display:none;
}

.ns-form__select option{
  background:#0e0e0e;
  color:#fff;
}

.ns-form__select-arrow{
  position:absolute;
  right:13px;
  top:50%;
  width:7px;
  height:7px;
  pointer-events:none;
  border-right:1px solid var(--gold);
  border-bottom:1px solid var(--gold);
  transform:
    translateY(-70%)
    rotate(45deg);
}

.ns-form__control:focus-within{
  border-color:rgba(255,226,158,.82);
  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.04),
    0 0 0 3px rgba(240,197,111,.11),
    0 12px 26px rgba(0,0,0,.36),
    0 0 18px rgba(240,197,111,.07);
}

.ns-form__input:focus,
.ns-form__select:focus,
.ns-form__textarea:focus{
  background-color:rgba(0,0,0,.42);
  box-shadow:
    inset 0 1px 0 rgba(0,0,0,.46);
}

.ns-form__input:-webkit-autofill,
.ns-form__input:-webkit-autofill:hover,
.ns-form__input:-webkit-autofill:focus,
.ns-form__input:-webkit-autofill:active,
.ns-form__textarea:-webkit-autofill,
.ns-form__textarea:-webkit-autofill:hover,
.ns-form__textarea:-webkit-autofill:focus,
.ns-form__textarea:-webkit-autofill:active{
  -webkit-text-fill-color:var(--text) !important;
  caret-color:var(--text);
  transition:background-color 9999s ease-out 0s;
  -webkit-box-shadow:
    0 0 0 1000px #080808 inset !important;
  box-shadow:
    0 0 0 1000px #080808 inset !important;
}

.ns-form__field--submit{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:11px;
  min-width:0;
}

.ns-form__submit{
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  width:100%;
  min-width:0;
  min-height:54px;
  margin:0;
  padding:
    11px
    26px;
  overflow:hidden;
  border:1px solid transparent;
  border-radius:0;
  background-image:
    linear-gradient(
      #050505,
      #050505
    ),
    var(--gold-gradient-border);
  background-origin:border-box;
  background-clip:
    padding-box,
    border-box;
  color:#f5d38d;
  font-family:var(--font-body);
  font-size:16px;
  font-weight:700;
  line-height:1.25;
  letter-spacing:.09em;
  text-align:center;
  text-shadow:
    0 1px 0 rgba(0,0,0,.54),
    0 7px 14px rgba(0,0,0,.42);
  box-shadow:
    0 14px 28px rgba(0,0,0,.48),
    inset 0 1px 0 rgba(255,244,214,.035),
    0 0 16px rgba(240,197,111,.055);
  cursor:pointer;
  transition:
    transform var(--transition-fast),
    color var(--transition-fast),
    filter var(--transition-fast),
    box-shadow var(--transition-fast),
    background-color var(--transition-fast);
}

.ns-form__submit > span{
  background:var(--gold-gradient-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
  text-shadow:none;
  filter:
    drop-shadow(0 1px 0 rgba(0,0,0,.42))
    drop-shadow(0 6px 12px rgba(0,0,0,.32));
}

.ns-form__submit::after{
  content:"";
  position:absolute;
  top:-55%;
  left:-55%;
  width:36%;
  height:220%;
  pointer-events:none;
  opacity:0;
  z-index:1;
  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-form__agree{
  position:relative;
  display:inline-flex;
  align-items:center;
  align-self:flex-end;
  gap:10px;
  width:fit-content;
  max-width:100%;
  min-height:22px;
  padding:
    2px
    0;
  border:1px solid transparent;
  cursor:pointer;
  user-select:none;
}

.ns-form__agree input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.ns-form__agree-box{
  position:relative;
  display:block;
  flex:0 0 17px;
  width:17px;
  height:17px;
  border:1px solid rgba(240,197,111,.48);
  border-radius:0;
  background:rgba(0,0,0,.38);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast),
    background-color var(--transition-fast);
}

.ns-form__agree input:checked ~ .ns-form__agree-box{
  border-color:rgba(240,197,111,.82);
  background:rgba(240,197,111,.10);
}

.ns-form__agree input:checked ~ .ns-form__agree-box::after{
  content:"";
  position:absolute;
  left:50%;
  top:44%;
  width:7px;
  height:4px;
  border-left:1.5px solid var(--gold);
  border-bottom:1.5px solid var(--gold);
  transform:
    translate(-50%, -50%)
    rotate(-45deg);
}

.ns-form__agree input:focus-visible ~ .ns-form__agree-box{
  border-color:rgba(240,197,111,.88);
  box-shadow:0 0 0 3px rgba(240,197,111,.14);
}

.ns-form__agree-text{
  min-width:0;
  font-size:13px;
  font-weight:400;
  line-height:1.5;
  letter-spacing:.025em;
  color:rgba(255,255,255,.72);
}

.ns-terms-link{
  color:rgba(240,197,111,.88);
  font-weight:600;
  text-decoration:underline;
  text-decoration-color:rgba(240,197,111,.34);
  text-underline-offset:2px;
  transition:
    color var(--transition-fast),
    opacity var(--transition-fast);
}

.ns-form__input.error,
.ns-form__select.error,
.ns-form__textarea.error{
  background-color:rgba(60,0,0,.24);
  box-shadow:
    inset 0 0 0 1px rgba(255,120,120,.74);
}

.ns-form__control:has(
  .ns-form__input.error,
  .ns-form__select.error,
  .ns-form__textarea.error
){
  border-color:rgba(255,120,120,.74);
  box-shadow:
    0 0 0 2px rgba(255,120,120,.10);
}

.ns-form__agree.error{
  padding:3px 6px;
  border-color:rgba(255,120,120,.44);
  background:rgba(60,0,0,.12);
  box-shadow:0 0 0 2px rgba(255,120,120,.08);
}

.ns-form__agree.error .ns-form__agree-text{
  color:#ffd6d6;
}

.form-info-error{
  margin:12px 0 0;
  letter-spacing:.04em;
  line-height:1.6;
}

.form-info-error__wr{
  position:relative;
  padding:14px 16px 13px;
  color:#ffe5e5;
  background:
    radial-gradient(
      700px 300px at 30% 10%,
      rgba(255,120,120,.16) 0%,
      rgba(255,120,120,0) 60%
    ),
    linear-gradient(
      180deg,
      rgba(60,0,0,.90) 0%,
      rgba(32,0,0,.90) 100%
    );
  border:1px solid rgba(255,120,120,.50);
  box-shadow:0 14px 36px rgba(0,0,0,.58);
}

.form-info-error__wr::before{
  content:"";
  position:absolute;
  left:14px;
  top:14px;
  width:26px;
  height:26px;
  border-radius:50%;
  background:linear-gradient(
    180deg,
    rgba(255,170,170,1) 0%,
    rgba(255,90,90,1) 100%
  );
  box-shadow:0 7px 15px rgba(0,0,0,.32);
}

.form-info-error__wr::after{
  content:"!";
  position:absolute;
  left:27px;
  top:27px;
  transform:translate(-50%, -50%);
  font-size:16px;
  font-weight:900;
  line-height:1;
  color:#300;
}

.form-info-error__wr p{
  margin:0;
  padding-left:36px;
}

.form-info-error__wr .title{
  margin-bottom:3px;
  font-size:14px;
  font-weight:500;
  letter-spacing:.04em;
}

#tourForm_results{
  display:block;
  max-height:0;
  margin:0;
  overflow:hidden;
  opacity:0;
  transform:translateY(-5px);
  transition:
    max-height .55s cubic-bezier(.22,.61,.36,1),
    margin .35s ease,
    opacity .35s ease,
    transform .35s ease;
}

#tourForm_results._is-open{
  max-height:300px;
  margin-top:12px;
  opacity:1;
  transform:translateY(0);
}

#tourForm_results .error,
#tourForm_results .success,
#tourForm_results .form-info-success__wr{
  border-radius:0;
  text-shadow:0 1px 0 rgba(0,0,0,.35);
}

#tourForm_results .error{
  padding:11px;
  border:1px solid rgba(255,120,120,.35);
  background:rgba(33,33,33,.45);
  color:#ffd6d6;
  font-size:12px;
  line-height:1.6;
  letter-spacing:.04em;
  box-shadow:0 12px 28px rgba(0,0,0,.36);
}

#tourForm_results .success{
  padding:11px;
  border:1px solid rgba(120,255,180,.28);
  background:rgba(18,18,18,.55);
  color:#dfffe9;
  font-size:12px;
  line-height:1.6;
  letter-spacing:.04em;
  box-shadow:0 12px 28px rgba(0,0,0,.36);
}

#tourForm_results .form-info-success__wr{
  position:relative;
  padding:14px 18px 16px;
  border:1px solid rgba(120,255,180,.42);
  background:
    radial-gradient(
      700px 300px at 30% 10%,
      rgba(120,255,180,.16) 0%,
      rgba(120,255,180,0) 60%
    ),
    linear-gradient(
      180deg,
      rgba(20,60,45,.90) 0%,
      rgba(12,32,26,.90) 100%
    );
  color:#eafff1;
  line-height:1.65;
  letter-spacing:.02em;
  box-shadow:0 14px 36px rgba(0,0,0,.58);
}

#tourForm_results .form-info-success__wr::before{
  content:"";
  position:absolute;
  left:14px;
  top:14px;
  width:26px;
  height:26px;
  border-radius:50%;
  background:linear-gradient(
    180deg,
    rgba(160,255,210,1) 0%,
    rgba(90,220,150,1) 100%
  );
  box-shadow:0 7px 15px rgba(0,0,0,.32);
}

#tourForm_results .form-info-success__wr::after{
  content:"";
  position:absolute;
  left:27px;
  top:27px;
  width:10px;
  height:5px;
  border-left:2px solid rgba(0,0,0,.55);
  border-bottom:2px solid rgba(0,0,0,.55);
  transform:
    translate(-50%, -50%)
    rotate(-45deg);
}

#tourForm_results .form-info-success__wr p{
  display:block;
  margin:0 0 8px;
  padding-left:36px;
  font-size:13px;
  font-weight:400;
  line-height:1.55;
  white-space:normal;
}

#tourForm_results .form-info-success__wr p.title{
  margin-bottom:9px;
  font-size:14px;
  font-weight:500;
  letter-spacing:.04em;
}

#tourForm_results .form-info-success__wr p.note{
  margin-top:11px;
  padding-left:calc(36px + 1.4em);
  font-size:11px;
  text-indent:-1.4em;
  opacity:.90;
}

#tourForm_results .form-info-success__wr p.note .note-mark{
  display:inline-block;
  width:1.4em;
  vertical-align:top;
}

#tourForm_results .form-info-success__wr p.note .note-text{
  display:inline-block;
  width:calc(100% - 1.4em);
  vertical-align:top;
}

#tourForm_results .form-info-success__wr p.note .note-indent{
  display:inline-block;
  margin-left:12px;
}

#tourForm._is-submitted .ns-form__submit{
  opacity:.76;
  cursor:wait;
  pointer-events:none;
  transform:none;
  filter:saturate(.94);
}

#tourForm_body{
  max-height:3000px;
  overflow:hidden;
  opacity:1;
  transform:translateY(0);
  transition:
    max-height .55s cubic-bezier(.22,.61,.36,1),
    opacity .35s ease,
    transform .35s ease;
}

#tourForm._is-success #tourForm_body{
  max-height:0;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
  transform:translateY(-5px);
}

/* =========================
   DATEPICKER
   ========================= */
.ui-datepicker{
  width:min(300px, calc(100vw - 24px));
  padding:8px 8px 6px;
  border:1px solid rgba(240,197,111,.35);
  border-radius:0;
  background:rgba(18,18,18,.97);
  color:var(--text);
  box-shadow:0 18px 55px rgba(0,0,0,.70);
  z-index:var(--z-datepicker) !important;
}

.ui-datepicker .ui-datepicker-header{
  position:relative;
  padding:8px 8px 6px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:0;
  background:rgba(0,0,0,.35);
}

.ui-datepicker .ui-datepicker-title{
  color:var(--gold);
  font-family:var(--font-display);
  font-size:13px;
  font-weight:700;
  letter-spacing:var(--cg-track-100, .10em);
  text-shadow:0 8px 18px rgba(0,0,0,.40);
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next{
  top:50%;
  width:30px;
  height:30px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:0;
  background:rgba(0,0,0,.35);
  cursor:pointer;
  transform:translateY(-50%);
}

.ui-datepicker .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-next span{
  background-image:none !important;
}

.ui-datepicker .ui-datepicker-prev::after,
.ui-datepicker .ui-datepicker-next::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:10px;
  height:10px;
  border-top:2px solid var(--gold);
  border-right:2px solid var(--gold);
  opacity:.95;
}

.ui-datepicker .ui-datepicker-prev::after{
  transform:
    translate(-50%, -50%)
    rotate(-135deg);
}

.ui-datepicker .ui-datepicker-next::after{
  transform:
    translate(-50%, -50%)
    rotate(45deg);
}

.ui-datepicker table{
  width:100%;
  margin:8px 0 0;
  border-collapse:collapse;
  font-size:12px;
}

.ui-datepicker th{
  padding:6px 0 4px;
  border-bottom:1px solid rgba(255,255,255,.10);
  color:rgba(255,255,255,.80);
  font-weight:800;
  letter-spacing:.08em;
}

.ui-datepicker td{
  padding:2px;
}

.ui-datepicker td a,
.ui-datepicker td span,
.ui-datepicker .ui-state-default{
  display:block;
  padding:7px 0;
  border:1px solid rgba(255,255,255,.10);
  border-radius:0;
  background:rgba(18,18,18,.85);
  color:rgba(255,255,255,.92);
  text-align:center;
  text-decoration:none;
  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background-color .2s ease,
    color .2s ease;
}

.ui-datepicker td a:hover{
  border-color:rgba(240,197,111,.45);
  background:rgba(0,0,0,.40);
  box-shadow:0 0 0 3px rgba(240,197,111,.14);
}

.ui-datepicker .ui-state-active{
  border-color:transparent !important;
  background:linear-gradient(
    180deg,
    #ffe0a8 0%,
    var(--gold) 28%,
    var(--gold2) 58%,
    var(--gold3) 100%
  ) !important;
  color:#0e0e0e !important;
  font-weight:900;
}

.ui-datepicker .ui-state-disabled span{
  background:rgba(0,0,0,.18);
  opacity:.25;
}

.ui-datepicker .ui-datepicker-today a{
  border-color:rgba(240,197,111,.35);
}

@media (min-width: 768px){
  .ns-form__panel{
    padding:
      40px
      28px
      30px;
  }

  .ns-form__heading{
    margin-bottom:30px;
  }

  .ns-form__grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "name email"
      "destination participants"
      "date date"
      "message message"
      "submit submit";
    gap:14px;
  }

  .ns-form__submit{
    min-height:54px;
  }

  #tourForm_results .form-info-success__wr{
    padding:15px 22px 18px;
  }
}

@media (min-width: 1024px){
  .ct-pill{
    margin-top:72px;
  }

  .ct-pill__content{
    max-width:1160px;
  }

  .ns-form__panel{
    padding:
      40px
      34px
      32px;
  }

  .ns-form__heading{
    margin-bottom:30px;
  }

  .ns-form__heading-title{
    font-size:36px;
    line-height:1.3;
  }

  .ns-form__heading-title::after{
    width:360px;
    margin-top:12px;
  }

  .ns-form__heading-text{
    margin-top:14px;
    font-size:14px;
    line-height:1.65;
  }

  .ns-form__grid{
    grid-template-columns:
      minmax(0, 1.08fr)
      minmax(0, 1.18fr)
      minmax(0, .94fr)
      minmax(0, .94fr);
    grid-template-areas:
      "name email destination participants"
      "date message message submit";
    gap:14px;
    align-items:start;
  }

  .ns-form__control{
    height:54px;
  }

  .ns-form__control--inline{
    height:54px;
  }

  .ns-form__control--message{
    height:54px;
  }

  .ns-form__control-head{
    min-height:36px;
    padding:
      7px
      12px
      5px;
    font-size:12px;
  }

  .ns-form__label-icon{
    width:18px;
    height:18px;
    flex-basis:18px;
  }

  .ns-badge-req{
    min-width:50px;
    height:18px;
    padding-inline:7px;
    font-size:10px;
  }

  .ns-form__input,
  .ns-form__select{
    flex:1 1 auto;
    height:auto;
    min-height:44px;
    padding:
      0
      10px;
    font-size:14px;
  }

  .ns-form__textarea{
    flex:1 1 auto;
    height:52px;
    min-height:0;
    padding:0;
    resize:none;
    overflow:hidden;
    font-size:14px;
    line-height:52px;
  }

  .ns-form__input::placeholder,
  .ns-form__textarea::placeholder{
    font-size:13px;
  }

  .ns-form__field--submit{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    justify-self:stretch;
    gap:10px;
    width:100%;
    min-width:0;
    height:auto;
    padding:0;
  }

  .ns-form__submit{
    display:flex;
    align-items:center;
    justify-content:center;
    justify-self:stretch;
    width:100%;
    max-width:none;
    min-width:0;
    height:54px;
    min-height:54px;
    margin:0;
    padding:
      0
      22px;
    font-size:15px;
    font-weight:700;
    line-height:1;
    text-align:center;
  }

  .ns-form__agree{
    align-self:flex-end;
    justify-self:end;
    height:auto;
    min-height:22px;
    padding:
      2px
      0;
  }

  .ns-form__agree-box{
    width:16px;
    height:16px;
    flex-basis:16px;
  }

  .ns-form__agree-text{
    font-size:11.5px;
  }
}

@media (min-width: 1440px){
  .ct-pill__content{
    max-width:1180px;
  }

  .ns-form__panel{
    padding:
      42px
      38px
      34px;
  }

  .ns-form__heading{
    margin-bottom:32px;
  }

  .ns-form__heading-title{
    font-size:38px;
  }

  .ns-form__heading-text{
    font-size:14.5px;
  }

  .ns-form__grid{
    gap:16px;
  }

  .ns-form__control,
  .ns-form__control--inline,
  .ns-form__control--message{
    height:56px;
  }

  .ns-form__control--inline .ns-form__input,
  .ns-form__control--inline .ns-form__select,
  .ns-form__control--inline .ns-form__select-wrap{
    height:54px;
  }

  .ns-form__control--inline .ns-form__textarea{
    height:54px;
    line-height:54px;
  }

  .ns-form__submit{
    height:56px;
    min-height:56px;
    font-size:16px;
  }
}

/* =========================
   FOOTER
   ========================= */

.ns-footer{
  position:relative;
  isolation:isolate;
  width:100%;
  margin-top:18px;
  padding:0;

  background:transparent;

  border-top:0;
}

.ns-footer::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:100vw;
  z-index:-1;
  pointer-events:none;
  transform:translateX(-50%);

  background:
    radial-gradient(
      circle at 18% 8%,
      rgba(240,197,111,.04),
      transparent 32%
    ),
    #0c0c0c;
}

.ns-footer::before{
  content:"";
  position:relative;
  left:50%;
  display:block;
  width:100vw;
  height:1px;
  background:var(--gold-rule);
  opacity:.72;
  transform:translateX(-50%);
}

/* =========================
   MAIN CONTENT
   ========================= */

.ns-footer__main{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;

  width:min(100%, 1180px);
  margin:0 auto;
  padding:30px 18px 26px;
}

/* =========================
   BRAND
   ========================= */

.ns-footer__brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;

  min-width:0;
  text-align:center;

  transform:none;
}

.ns-footer__brand-mark{
  display:block;

  width:48px;
  height:48px;
  margin:0 0 -2px;

  background:var(--gold-gradient-text);

  -webkit-mask:
    url("../images/icons/logo-madogaido.svg")
    no-repeat
    center / contain;

  mask:
    url("../images/icons/logo-madogaido.svg")
    no-repeat
    center / contain;

  filter:
    drop-shadow(0 4px 8px rgba(0,0,0,.52))
    drop-shadow(0 0 9px rgba(240,197,111,.14));

  transform:translateY(-5px);
}

.ns-footer__brand-name{
  display:block;
  width:max-content;
  margin:0;

  font-family:var(--font-brand);
  font-size:18px;
  font-weight:300;
  text-transform:uppercase;
  line-height:1;
  letter-spacing:0;
  white-space:nowrap;

  background:var(--gold-gradient-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;

  filter:
    drop-shadow(0 4px 8px rgba(0,0,0,.46));

  transform:translateY(-5px);
}

.ns-footer__brand-name span{
  font-weight:700;
}

.ns-footer__brand-tagline{
  display:block;
  width:max-content;
  margin-top:9px;

  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;

  font-family:var(--font-body);
  font-size:10px;
  font-weight:400;
  line-height:1.25;
  letter-spacing:.025em;

  color:rgba(255,255,255,.74);

  transform:none;
  transform-origin:center center;
  will-change:auto;
}

/* =========================
   MOBILE NAVIGATION
   ========================= */

.ns-footer__nav{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;

  width:max-content;
  max-width:100%;
  min-width:0;
  margin:0 auto;
}

.ns-footer__nav-links{
  display:contents;
}

.ns-footer__group{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;

  min-width:0;
  padding:0 22px;

  border-left:
    1px solid rgba(240,197,111,.38);
}

.ns-footer__group:first-child{
  border-left:0;
}

.ns-footer__contact{
  display:flex;
  flex:0 0 100%;
  flex-direction:column;
  align-items:center;

  min-width:0;
  margin-top:18px;

  text-align:center;
}


/* =========================
   HEADINGS
   ========================= */

.ns-footer__heading{
  display:block;
  margin:0;
  padding:0;

  font-family:var(--font-display);

  font-size:clamp(16px, 4.6vw, 18px);
  font-weight:700;
  line-height:1.4;
  letter-spacing:var(--cg-track-035, .035em);
  white-space:nowrap;

  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;

  filter:
    drop-shadow(0 4px 8px rgba(0,0,0,.44));

  transition:
    color var(--transition-fast),
    opacity var(--transition-fast);
}

.ns-footer__heading-full{
  display:none;
  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;
}

.ns-footer__heading-short{
  display:inline;
  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;
}


/* =========================
   LINKS
   ========================= */

.ns-footer__links{
  display:none;
}


/* =========================
   CONTACT
   ========================= */

.ns-footer__contact .ns-footer__heading{
  position:absolute;

  width:1px;
  height:1px;
  margin:-1px;
  padding:0;

  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;

  border:0;
}

.ns-footer__social{
  display:flex;
  align-items:center;
  justify-content:center;

  gap:20px;
  min-height:22px;
  opacity:.98;
}

.ns-footer__social .social-icon{
  width:20px;
  height:20px;
  background:var(--gold-gradient-text);
}

.ns-footer__mail{
  display:inline-block;
  margin-top:7px;

  font-family:var(--font-footer-contact);
  font-size:13px;
  font-weight:300;
  line-height:1.4;
  letter-spacing:.02em;

  color:rgba(255,255,255,.82);

  transition:
    color var(--transition-fast),
    opacity var(--transition-fast);
}

/* =========================
   LEGAL
   ========================= */

.ns-footer__legal{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  gap:3px;
  padding:15px 16px 17px;

  border-top:0;

  font-family:var(--font-body);
  font-size:clamp(11px, 2.8vw, 12px);
  font-weight:300;
  line-height:1.5;
  letter-spacing:.025em;
  text-align:center;

  color:rgba(255,255,255,.60);
}

.ns-footer__legal::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  width:100vw;
  height:1px;
  pointer-events:none;
  background:rgba(240,197,111,.32);
  transform:translateX(-50%);
}

.ns-footer__legal a{
  font-weight:500;

  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;

  transition:
    opacity var(--transition-fast),
    filter var(--transition-fast);
}

.ns-footer__legal-separator{
  display:none;
}

/* =========================
   TABLET
   ========================= */

@media (min-width:768px) and (max-width:1023.98px){

  .ns-footer__main{
    display:grid;
    grid-template-columns:170px minmax(0, 1fr);
    align-items:stretch;
    gap:0;
    padding:34px 24px 30px;
  }

  .ns-footer__brand{
    align-self:stretch;
    padding:4px 24px 4px 0;

    background-image:linear-gradient(
      180deg,
      rgba(240,197,111,0) 0%,
      rgba(240,197,111,.24) 18%,
      rgba(240,197,111,.24) 82%,
      rgba(240,197,111,0) 100%
    );
    background-repeat:no-repeat;
    background-position:right center;
    background-size:1px calc(100% - 18px);
  }

  .ns-footer__brand-mark{
    width:50px;
    height:50px;
  }

  .ns-footer__brand-name{
    font-size:18px;
  }

  .ns-footer__brand-tagline{
    font-size:10px;
  }

  .ns-footer__nav{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    align-items:start;
    width:100%;
    max-width:none;
    margin:0;
  }

  .ns-footer__group{
    display:flex;
    flex:none;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    min-width:0;
    min-height:142px;
    padding:6px 18px;
    text-align:center;
    border-left:0;

    background-image:linear-gradient(
      180deg,
      rgba(240,197,111,0) 0%,
      rgba(240,197,111,.22) 18%,
      rgba(240,197,111,.22) 82%,
      rgba(240,197,111,0) 100%
    );
    background-repeat:no-repeat;
    background-position:right center;
    background-size:1px calc(100% - 18px);
  }

  .ns-footer__group--camino{
    background-image:none;
  }

  .ns-footer__heading{
    width:100%;
    margin-bottom:12px;
    font-size:14.5px;
    line-height:1.4;
    letter-spacing:var(--cg-track-045, .045em);
    text-align:center;
  }

  .ns-footer__heading-full{
    display:inline;
  }

  .ns-footer__heading-short{
    display:none;
  }

  .ns-footer__links{
    display:flex;
    flex-direction:column;
    align-items:center;
    width:100%;
    gap:8px;
    text-align:center;
  }

  .ns-footer__links a{
    display:inline-block;
    font-family:var(--font-body);
    font-size:12.5px;
    font-weight:300;
    line-height:1.55;
    letter-spacing:.01em;
    text-align:center;
    color:rgba(255,255,255,.82);
  }

  .ns-footer__contact{
    grid-column:1 / -1;
    display:flex;
    flex:none;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    gap:22px;
    min-width:0;
    min-height:0;
    margin:20px 0 0;
    padding:24px 12px 8px;
    text-align:center;
    border-top:1px solid rgba(240,197,111,.22);
  }

  .ns-footer__contact .ns-footer__heading{
    position:static;
    width:auto;
    height:auto;
    margin:0;
    padding:0;
    overflow:visible;
    clip:auto;
    white-space:nowrap;
    border:0;
  }

  .ns-footer__social{
    gap:18px;
    min-height:22px;
  }

  .ns-footer__social .social-icon{
    width:22px;
    height:22px;
  }

  .ns-footer__mail{
    margin-top:0;
    font-size:13px;
    white-space:nowrap;
  }

  .ns-footer__legal{
    flex-direction:row;
    flex-wrap:wrap;
    gap:12px;
    min-height:56px;
    padding:14px 18px;
  }

  .ns-footer__legal-separator{
    display:block;
    width:1px;
    height:14px;
    background:rgba(240,197,111,.34);
  }
}

/* =========================
   DESKTOP
   ========================= */

@media (min-width:1024px){

  .ns-footer__main{
    display:grid;

    grid-template-columns:
      195px
      minmax(0, 1fr);

    align-items:stretch;
    gap:0;

    padding:38px 18px 34px;
  }

  .ns-footer__brand{
    align-self:stretch;
    padding:4px 24px;

    border-right:0;

    background-image:linear-gradient(
      180deg,
      rgba(240,197,111,0) 0%,
      rgba(240,197,111,.24) 18%,
      rgba(240,197,111,.24) 82%,
      rgba(240,197,111,0) 100%
    );
    background-repeat:no-repeat;
    background-position:right center;
    background-size:1px calc(100% - 18px);

    transform:none;
  }

  .ns-footer__brand-mark{
    display:none;
  }

  .ns-footer__brand-name{
    margin:0;
    font-size:18px;
    transform:none;
  }

  .ns-footer__brand-tagline{
    margin-top:14px;
    font-size:10px;
    line-height:1.25;
    color:rgba(255,255,255,.74);
    transform:none;
  }


  .ns-footer__nav{
    display:grid;
    grid-template-columns:
      repeat(3, minmax(0, 1fr))
      minmax(240px, 1.35fr);
    align-items:stretch;
    width:100%;
    max-width:none;
  }
  
  .ns-footer__group,
  .ns-footer__contact{
    display:flex;
    flex-direction:column;
  
    min-width:0;
    min-height:132px;
  
    margin:0;
    padding:7px 24px;
  
    border-left:0;
  }

  .ns-footer__group{
    align-items:center;
    padding-inline:30px;
    text-align:center;

    border-right:0;

    background-image:linear-gradient(
      180deg,
      rgba(240,197,111,0) 0%,
      rgba(240,197,111,.24) 18%,
      rgba(240,197,111,.24) 82%,
      rgba(240,197,111,0) 100%
    );
    background-repeat:no-repeat;
    background-position:right center;
    background-size:1px calc(100% - 18px);
  }

  /* Desktop headings */

  .ns-footer__heading{
    width:100%;
    margin-bottom:14px;

    font-size:15px;
    line-height:1.4;
    letter-spacing:var(--cg-track-055, .055em);
    white-space:nowrap;
    text-align:center;
  }

  .ns-footer__heading-full{
    display:inline;
  }

  .ns-footer__heading-short{
    display:none;
  }


  /* Desktop links */

  .ns-footer__links{
    display:flex;
    flex-direction:column;
    align-items:center;
    width:100%;
    gap:9px;
    text-align:center;
  }

  .ns-footer__links a{
    display:inline-block;

    font-family:var(--font-body);
    font-size:13.5px;
    font-weight:300;
    line-height:1.55;
    letter-spacing:.015em;
    text-align:center;

    color:rgba(255,255,255,.84);

    transition:
      color var(--transition-fast),
      transform var(--transition-fast),
      opacity var(--transition-fast);
  }


  /* Desktop contact */

  .ns-footer__contact{
    align-items:center;
    justify-content:flex-start;
    padding-inline:26px;
    text-align:center;
  }

  .ns-footer__contact .ns-footer__heading{
    position:static;

    width:auto;
    height:auto;
    margin:0 0 14px;
    padding:0;

    overflow:visible;
    clip:auto;
    white-space:nowrap;

    text-align:center;
  }

  .ns-footer__social{
    justify-content:center;
    gap:21px;
    margin-top:5px;
  }

  .ns-footer__social .social-icon{
    width:23px;
    height:23px;
  }

  .ns-footer__mail{
    margin-top:13px;
    font-size:13px;
    line-height:1.5;
    white-space:nowrap;
    text-align:center;
    color:rgba(255,255,255,.86);
  }


  /* Desktop legal */

  .ns-footer__legal{
    flex-direction:row;
    flex-wrap:wrap;

    gap:14px;
    min-height:58px;
    padding:14px 18px;

    border-top:0;
  }

  .ns-footer__legal-separator{
    display:block;

    width:1px;
    height:14px;

    background:
      rgba(240,197,111,.34);
  }
}

/* =========================
   HOVER
   ========================= */

@media (hover:hover){

  .ns-footer__heading:hover,
  .ns-footer__links a:hover,
  .ns-footer__mail:hover{
    color:var(--gold);
    opacity:1;
  }

  .ns-footer__links a:hover{
    transform:translateY(-2px);
  }

  .ns-footer__legal a:hover{
    opacity:1;
    filter:brightness(1.08);
  }

  .ns-footer__social .social-icon:hover{
    transform:translateY(-2px) scale(1.06);
    filter:
      brightness(1.08)
      drop-shadow(0 7px 12px rgba(0,0,0,.52));
  }

}

/* =========================
   NARROW MOBILE
   ========================= */
@media (max-width:390px){

  .ns-footer__group{
    padding-inline:10px;
  }

  .ns-footer__heading{
    font-size:11.5px;
  }

}

/* =========================
   FLOATING BUTTONS
   ========================= */
.line-float,
.whatsapp-float{
  position:fixed;
  right:16px;
  z-index:500;
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  background:transparent;
  border-radius:50%;
  box-shadow:0 14px 34px rgba(0,0,0,.42);
  transition:transform .2s ease-in-out;
}

.line-float{
  bottom:16px;
}

.whatsapp-float{
  bottom:80px;
}

.line-float__ico{
  width:54px;
  height:54px;
  background:url("../images/icons/icon-line.svg") no-repeat center/contain;
}

.whatsapp-float__ico{
  width:54px;
  height:54px;
  display:inline-flex;
  background:url("../images/icons/icon-whatsapp.svg") no-repeat center/contain;
}

.whatsapp-float__ico svg{
  width:100%;
  height:100%;
}

/* =========================
   ANIMATIONS
   ========================= */
@keyframes moveWheel{
  0%{
    opacity:1;
    transform:translateX(-50%) translateY(0);
  }

  80%{
    opacity:1;
    transform:translateX(-50%) translateY(16px);
  }

  100%{
    opacity:0;
    transform:translateX(-50%) translateY(16px);
  }
}

@keyframes moveWheelUp{
  0%{
    opacity:0;
    transform:translateX(-50%) translateY(16px);
  }

  20%{
    opacity:1;
    transform:translateX(-50%) translateY(16px);
  }

  80%{
    opacity:1;
    transform:translateX(-50%) translateY(0);
  }

  100%{
    opacity:0;
    transform:translateX(-50%) translateY(0);
  }
}

@keyframes nsBtnDarkShine{
  0%{
    opacity:0;
    transform:translateX(0) rotate(16deg);
  }

  3%{
    opacity:1;
    transform:translateX(18%) rotate(16deg);
  }

  18%{
    opacity:1;
    transform:translateX(430%) rotate(16deg);
  }

  19%{
    opacity:0;
    transform:translateX(430%) rotate(16deg);
  }

  100%{
    opacity:0;
    transform:translateX(430%) rotate(16deg);
  }
}

/* =========================
   MEDIA QUERIES
   ========================= */
@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior:auto;
  }

  .mouse-wheel,
  .ns-btn--dark::after,
  .ns-mini-btn::after,
  .ns-hero__cta-btn::after,
  .ns-basque-journey__btn::after,
  .ns-galicia-journey__btn::after,
  .ns-camino-journey__btn::after,
  .ns-drawer__cta::after,
  .ns-form__submit::after{
    animation:none !important;
    transition:none !important;
  }

  .ns-form__submit{
    transition:none !important;
  }

  .mouse-wheel{
    transform:translateX(-50%) translateY(0) !important;
    opacity:1 !important;
  }
}

@media (hover:hover){
  .social-icon:hover,
  .social-icon:focus-visible{
    transform:scale(1.12);
    filter:
      drop-shadow(0 0 4px rgba(240,197,111,.32))
      drop-shadow(0 8px 14px rgba(0,0,0,.42));
  }

  .ns-topbar__nav a:hover:not(.ns-topbar__cta),
  .ns-topbar__nav a:focus-visible:not(.ns-topbar__cta),
  html:lang(en) .ns-footer__city-main:hover,
  html:lang(en) .ns-footer__city-sublist a:hover,
  .ns-terms-link:hover,
  .ns-topbar__line:hover,
  .ns-topbar__whatsapp:hover,
  html:lang(en) .ns-footer__ttl:hover,
  .ns-drawer__section-link:hover,
  .ns-drawer__link:hover,
  .ns-drawer__sublink:hover,
  .ns-drawer__subchild:hover,
  .ns-drawer__tour-link:hover,
  html:lang(en) .ns-footer__tour-link:hover{
    color:var(--gold);
    opacity:1;
  }

  .ns-topbar__line:hover .ns-topbar__line-ico,
  .ns-topbar__whatsapp:hover .ns-topbar__whatsapp-ico{
    filter:
      drop-shadow(0 0 4px rgba(240,197,111,.28))
      drop-shadow(0 8px 14px rgba(0,0,0,.42));
  }

  .ns-topbar__bur:hover .nav-icon,
  .ns-topbar__bur:hover .nav-icon::before,
  .ns-topbar__bur:hover .nav-icon::after,
  .ns-topbar__bur:focus-visible .nav-icon,
  .ns-topbar__bur:focus-visible .nav-icon::before,
  .ns-topbar__bur:focus-visible .nav-icon::after{
    background:var(--gold-gradient-text);
  }

  .ns-topbar__cta:hover{
    color:var(--gold);
    filter:none;
  }

  .ns-topbar__cta:hover .icon-reservation::after{
    opacity:0;
  }

  .ns-topbar__cta:hover .icon-reservation::before{
    opacity:1;
  }

  .ns-drawer__close:hover,
  .ui-datepicker .ui-datepicker-prev:hover,
  .ui-datepicker .ui-datepicker-next:hover{
    border-color:rgba(240,197,111,.45);
    box-shadow:0 0 0 3px rgba(240,197,111,.14);
  }

  .ns-btn--dark:hover,
  .ns-mini-btn:hover,
  .ns-hero__cta-btn:hover,
  .ns-basque-journey:hover .ns-basque-journey__btn,
  .ns-galicia-journey:hover .ns-galicia-journey__btn,
  .ns-camino-journey:hover .ns-camino-journey__btn,
  .ns-drawer__cta:hover{
    color:#0e0e0e;
    box-shadow:
      0 16px 34px rgba(0,0,0,.56),
      0 0 0 3px rgba(240,197,111,.12);
    border:1.5px solid transparent;
    background-image:var(--gold-gradient-main);
    background-origin:border-box;
    background-clip:border-box;
    transform:none;
  }

  .ns-btn--dark:hover::after,
  .ns-mini-btn:hover::after,
  .ns-hero__cta-btn:hover::after,
  .ns-basque-journey:hover .ns-basque-journey__btn::after,
  .ns-galicia-journey:hover .ns-galicia-journey__btn::after,
  .ns-camino-journey:hover .ns-camino-journey__btn::after,
  .ns-drawer__cta:hover::after{
    opacity:0;
  }

  .ns-form__submit:hover{
    transform:translateY(-2px);
    color:#0e0e0e;
    background-image:var(--gold-gradient-main);
    background-origin:border-box;
    background-clip:border-box;
    filter:none;
    text-shadow:none;
    box-shadow:
      0 17px 34px rgba(0,0,0,.56),
      0 0 22px rgba(240,197,111,.18),
      inset 0 1px 0 rgba(255,255,255,.32);
  }

  .ns-form__submit:hover > span{
    background:none;
    color:#0e0e0e;
    -webkit-text-fill-color:#0e0e0e;
  }

  .ns-form__submit:hover::after{
    opacity:0;
  }

  .ns-terms-link:hover{
    color:#ffe3a1;
    opacity:1;
  }

  .ns-check__txt a:hover,
  html:lang(en) .main-foo__legal a:hover{
    opacity:1;
  }

  .line-float:hover{
    transform:translateY(-2px);
  }
}

@media (min-width: 768px){
  body{
    padding-top:clamp(60px, 6.5vw, 68px);
  }

  .ns-topbar{
    gap:clamp(8px, 1.8vw, 18px);
    min-height:clamp(60px, 6.5vw, 68px);
    padding-left:max(12px, calc((100vw - var(--page-max)) / 2 + var(--page-pad)));
    padding-right:max(12px, calc((100vw - var(--page-max)) / 2 + var(--page-pad)));
  }

  .ns-topbar__logo{
    padding-left:calc(clamp(34px, 4.4vw, 52px) + 6px);
    min-height:clamp(60px, 6.5vw, 68px);
  }

  .ns-topbar__mark{
    width:clamp(31px, 3.96vw, 47px);
    height:clamp(31px, 3.96vw, 47px);
  }

  .ns-topbar__word{
    font-size:clamp(16px, 2.2vw, 24px);
  }

  .ns-topbar__tagline{
    font-size:clamp(10px, 1.1vw, 11px);
    letter-spacing:.06em;
  }

  .ns-topbar__nav{
    gap:clamp(12px, 1.6vw, 18px);
    height:clamp(60px, 6.5vw, 68px);
  }

  .ns-topbar__nav > *:not(:last-child)::after{
    content:"";
    position:absolute;
    right:-9px;
    top:50%;
    width:1px;
    height:20px;
    transform:translateY(-50%);
    background:rgba(255,255,255,.28);
  }

  .ns-topbar__line,
  .ns-topbar__instagram,
  .ns-topbar__whatsapp{
    width:44px;
    height:44px;
  }

  .ns-topbar__line-ico,
  .ns-topbar__instagram-ico,
  .ns-topbar__whatsapp-ico{
    width:30px;
    height:30px;
  }

  .ns-topbar__lang{
    width:44px;
    height:44px;
    padding:0 2px;
  }

  .ns-topbar__bur{
    width:44px;
    height:44px;
  }

  .ns-topbar__cta{
    display:inline-flex;
    align-items:center;
    color:#fff;
    font-size:18px;
    letter-spacing:.06em;
    padding-right:0;
    margin-left:-6px;
  }

  .icon-reservation{
    margin-right:2px;
  }

  html:lang(en) .ns-footer{
    margin-top:18px;
  }

  html:lang(en) .ns-footer__cols{
    gap:30px;
    padding-inline:20px;
  }

  html:lang(en) .ns-footer__grid{
    gap:34px;
  }

  html:lang(en) .ns-footer__cities{
    grid-template-columns:repeat(3, minmax(0, max-content));
    gap:72px;
  }

  html:lang(en) .ns-footer__city-main,
  html:lang(en) .ns-footer__city-sublist li{
    font-size:clamp(13px, 1vw, 14px);
  }

  html:lang(en) .ns-footer__tour-link{
    font-size:clamp(16px, 1.4vw, 18px);
  }

  html:lang(en) .ns-footer__city-sublist li{
    padding-left:20px;
  }

  html:lang(en) .ns-footer__city-sublist li::before{
    width:13px;
    height:13px;
  }

  html:lang(en) .ns-footer__bottom-row{
    grid-template-columns:1fr;
    gap:14px;
    padding-top:8px;
  }

  html:lang(en) .ns-footer__bottom-right{
    flex-direction:row;
  }

  html:lang(en) .main-foo__legal{
    margin-top:36px;
    padding:18px 0 28px;
  }

  html:lang(en) .main-foo__legal > ul{
    flex-direction:row;
    justify-content:center;
    gap:60px;
  }
}

@media (min-width: 1024px){
  .ns-topbar__nav > *:not(:last-child)::after{
    content:"";
  }

  .ns-drawer__panel{
    width:min(360px, 90vw);
    padding:16px 14px 14px;
  }

  .form-info-error__wr{
    padding:18px 20px 16px;
  }

  .line-float{
    right:22px;
    bottom:20px;
    width:64px;
    height:64px;
  }

  .line-float__ico{
    width:64px;
    height:64px;
  }
}

@media (min-width: 1440px){
  body{
    font-size:16px;
  }

  .ns-topbar{
    padding-left:max(18px, calc((100vw - var(--page-max)) / 2 + var(--page-pad)));
    padding-right:max(18px, calc((100vw - var(--page-max)) / 2 + var(--page-pad)));
  }

  html:lang(en) .ns-footer__cols{
    padding-inline:28px;
  }

  html:lang(en) .ns-footer__tour-links{
    gap:clamp(24px, 6vw, 70px);
  }

  .ns-rcta__panel{
    width:min(1600px,calc(100% - clamp(48px, 8vw, 180px)));
  }
}

/* ===============================================================
   MADOGAIDO FOOTER: TWO SERVICE AREAS (NORTHSPAIN-STYLE REFERENCE)
   Scoped to .ns-footer--areas to protect other page layouts.
   =============================================================== */

.ns-footer--areas .ns-footer__nav{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  width:100%;
  max-width:none;
}

.ns-footer--areas .ns-footer__group{
  flex:none;
  flex-direction:column;
  justify-content:flex-start;
  align-items:center;
  min-width:0;
  padding:6px 8px;
  border:0;
  text-align:center;
}

/* One subtle vertical divider between city and surroundings on mobile. */
.ns-footer--areas .ns-footer__group:first-child{
  background-image:linear-gradient(
    180deg,
    rgba(240,197,111,0) 0%,
    rgba(240,197,111,.24) 18%,
    rgba(240,197,111,.24) 82%,
    rgba(240,197,111,0) 100%
  );
  background-repeat:no-repeat;
  background-position:right center;
  background-size:1px calc(100% - 18px);
}

.ns-footer--areas .ns-footer__links{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  width:100%;
  text-align:center;
}

.ns-footer--areas .ns-footer__links a{
  display:block;
  font-family:var(--font-body);
  font-size:clamp(11px,3vw,13px);
  font-weight:300;
  line-height:1.6;
  letter-spacing:.015em;
  white-space:nowrap;
  color:#fff;
  transition:color var(--transition-fast), transform var(--transition-fast);
}

.ns-footer--areas .ns-footer__contact{
  grid-column:1 / -1;
}

@media (max-width:767.98px){
  .ns-footer--areas .ns-footer__group .ns-footer__heading{
    margin:0 0 12px;
    font-size:clamp(12px,3.4vw,16px);
  }

  .ns-footer--areas .ns-footer__contact{
    margin-top:20px;
  }
}

@media (min-width:768px) and (max-width:1023.98px){
  .ns-footer--areas .ns-footer__group{
    min-height:0;
    padding:7px 14px;
  }

  .ns-footer--areas .ns-footer__links{
    gap:17px;
  }

  .ns-footer--areas .ns-footer__links a{
    font-size:12.5px;
  }

  /* No trailing separator when contact wraps below. */
  .ns-footer--areas .ns-footer__group:nth-child(2){
    background-image:none;
  }
}

@media (min-width:1024px){
  .ns-footer--areas .ns-footer__nav{
    grid-template-columns:repeat(2,minmax(0,1fr)) minmax(240px,1.35fr);
  }

  .ns-footer--areas .ns-footer__group{
    padding:7px 20px;
  }

  .ns-footer--areas .ns-footer__group .ns-footer__heading{
    margin-bottom:20px;
  }

  .ns-footer--areas .ns-footer__links{
    gap:clamp(18px,2vw,28px);
  }

  .ns-footer--areas .ns-footer__links a{
    font-size:13.5px;
  }

  .ns-footer--areas .ns-footer__contact{
    grid-column:auto;
  }

  .ns-footer--areas .ns-footer__social{
    gap:26px;
  }

  .ns-footer--areas .ns-footer__social .social-icon{
    width:25px;
    height:25px;
  }
}

@media (hover:hover){
  .ns-footer--areas .ns-footer__links a:hover{
    color:var(--gold);
    transform:translateY(-2px);
  }
}
