/* HOME.CSS — JAPANESE + ENGLISH */

@charset "utf-8";

body.ns-home{
  position:relative;
  background-color:#0e0e0e;
  background-image:url("../images/stone.jpg");
  background-size:800px 800px;
  background-position:center;
  background-repeat:repeat;
  background-attachment:scroll;

  /* LVL1 geometry: continuous relationships, not per-screen nudges. */
  --home-edge:clamp(14px, calc(4px + 2.6vw), 56px);
  --home-edge-wide:clamp(24px, calc(7px + 3.2vw), 72px);
  --home-section-gap:clamp(108px, calc(96px + 3vw), 136px);
  --home-card-gap:clamp(20px, 2vw, 30px);
  --home-band-space:clamp(42px, 4.5vw, 66px);
  --home-bottom-space:clamp(46px, 5vw, 74px);
  --home-review-bleed:clamp(20px, 2.1vw, 30px);
  --home-review-gap:clamp(16px, 1.4vw, 20px);
  --home-hero-copy-shift:clamp(30px, calc(20.15px + .96vw), 34px);
}

body.ns-home .ns-wrap{
  position:relative;
  z-index:0;
}

/* =========================
   HERO
   ========================= */
.ns-hero{
  position:relative;
  isolation:isolate;
  width:100vw;
  min-height:clamp(
    650px,
    calc(100svh - var(--topbar-h)),
    820px
  );
  height:auto;
  margin-top:0;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding-bottom:100px;
  box-sizing:content-box;
  overflow:visible;
  border-bottom:0;
  background:transparent;
}

.ns-hero__bg{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(
    180deg,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) 70%,
    rgba(0,0,0,.98) 76%,
    rgba(0,0,0,.88) 82%,
    rgba(0,0,0,.66) 88%,
    rgba(0,0,0,.40) 93%,
    rgba(0,0,0,.16) 97%,
    rgba(0,0,0,0) 100%
  );
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  mask-image:linear-gradient(
    180deg,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) 70%,
    rgba(0,0,0,.98) 76%,
    rgba(0,0,0,.88) 82%,
    rgba(0,0,0,.66) 88%,
    rgba(0,0,0,.40) 93%,
    rgba(0,0,0,.16) 97%,
    rgba(0,0,0,0) 100%
  );
  mask-repeat:no-repeat;
  mask-size:100% 100%;
}

.ns-hero__picture{
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
}

.ns-hero__picture img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}

.ns-hero__bg::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,.02) 0%,
      rgba(0,0,0,.01) 50%,
      rgba(0,0,0,.03) 68%,
      rgba(0,0,0,.10) 84%,
      rgba(0,0,0,.24) 94%,
      rgba(0,0,0,.34) 100%
    );
}

.ns-hero__bg::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(
      760px 480px at 50% 43%,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.06) 44%,
      rgba(0,0,0,.24) 100%
    ),
    linear-gradient(
      90deg,
      rgba(0,0,0,.32) 0%,
      rgba(0,0,0,.10) 20%,
      rgba(0,0,0,0) 50%,
      rgba(0,0,0,.10) 80%,
      rgba(0,0,0,.32) 100%
    );
}

.ns-hero__frame{
  position:relative;
  z-index:1;
  min-height:inherit;
  padding:0;
  background:transparent;
}

.ns-hero__ui{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  min-height:inherit;
  padding:
    clamp(44px, 8vw, 78px)
    16px
    clamp(110px, 16vw, 138px);
  text-align:center;
}

.ns-hero__copy{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  align-items:center;
  width:min(100%, 760px);
  padding:
    clamp(18px, 4vw, 34px)
    clamp(18px, 5vw, 44px)
    clamp(22px, 4.5vw, 38px);
  text-align:center;
}

.ns-hero__logo{
  order:1;
  position:relative;
  display:block;
  width:clamp(118px, 26vw, 168px);
  height:clamp(118px, 26vw, 168px);
  margin:
    0
    auto
    clamp(10px, 2.2vw, 16px);
}

.ns-hero__logo::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("../images/logo.svg") no-repeat center/contain;
  filter:
    brightness(0)
    drop-shadow(0 2px 0 rgba(0,0,0,.48))
    drop-shadow(0 8px 15px rgba(0,0,0,.34))
    drop-shadow(0 18px 30px rgba(0,0,0,.18));
}

.ns-hero__logo::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--gold-gradient-text);
  -webkit-mask:url("../images/logo.svg") no-repeat center/contain;
  mask:url("../images/logo.svg") no-repeat center/contain;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.38))
    drop-shadow(0 10px 20px rgba(0,0,0,.36));
}

.ns-hero__title{
  order:2;
  position:relative;
  margin:0 0 -.14em;
  font-family:var(--font-display);
  font-size:clamp(44px, 12vw, 82px);
  font-weight:700;
  line-height:1.22;
  letter-spacing:var(--cg-track-045, .045em);
  text-align:center;
  background:var(--gold-gradient-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.66))
    drop-shadow(0 12px 24px rgba(0,0,0,.58));
}

.ns-hero__lead{
  order:4;
  position:relative;
  margin:
    clamp(16px, 2vw, 22px)
    0
    clamp(8px, 2vw, 14px);
  font-family:var(--font-display);
  font-size:clamp(22px, 6vw, 32px);
  font-weight:700;
  line-height:1.42;
  letter-spacing:var(--cg-track-060, .06em);
  background:linear-gradient(
    180deg,
    #fff4d6 0%,
    #ffe8b0 38%,
    var(--gold) 72%,
    #d9b56c 100%
  );
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.62))
    drop-shadow(0 10px 19px rgba(0,0,0,.56));
}

.ns-hero__sub{
  order:5;
  position:relative;
  top:18px;
  max-width:520px;
  margin:0;
  font-family:var(--font-body);
  font-size:clamp(14px, 3.8vw, 17px);
  font-weight:400;
  line-height:1.75;
  letter-spacing:.055em;
  color:rgba(255,255,255,.92);
  text-shadow:
    0 2px 0 rgba(0,0,0,.58),
    0 12px 26px rgba(0,0,0,.72);
}

.ns-hero__ctas{
  order:6;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  width:100%;
  max-width:min(320px, 100%);
  margin:
    clamp(36px, calc(3.8vw + 20px), 44px)
    auto
    0;
  padding:0;
}

.ns-hero__cta-btn{
  top:30px;
  min-width:min(230px, 100%);
  min-height:46px;
  padding:10px 28px;
  font-size:clamp(14px, 3.6vw, 16px);
  font-weight:700;
  letter-spacing:.09em;
  box-shadow:
    0 15px 30px rgba(0,0,0,.58),
    0 0 18px rgba(240,197,111,.08);
}

/* =========================
   REGIONS
   ========================= */
.ns-two{
  position:relative;
  isolation:isolate;
  width:100vw;
  margin-top:var(--home-section-gap);
  margin-left:calc(50% - 50vw);
  padding:
    clamp(34px, 7vw, 72px)
    var(--home-edge-wide)
    clamp(78px, 10vw, 132px);
  box-sizing:border-box;
  overflow:hidden;
}

.ns-two__scroll-target{
  position:absolute;
  top:50px;
  left:0;
  width:1px;
  height:1px;
  pointer-events:none;
}

.ns-two__rule{
  display:none;
}

.ns-two__grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:var(--home-card-gap);
  width:min(100%, 1420px);
  margin:0 auto;
}

.ns-band__head{
  gap:clamp(16px, 3vw, 36px);
  width:min(100%, 1120px);
  margin:
    0
    auto
    clamp(16px, 2.8vw, 24px);
  padding:0;
}

.ns-band__title{
  position:relative;
  flex:0 0 auto;
  min-width:0;
  margin:0;
  padding:0 clamp(12px, 2vw, 24px);
  border:0;
  border-radius:0;
  font-family:var(--font-display);
  font-size:clamp(24px, 5vw, 38px);
  font-weight:700;
  line-height:1.35;
  letter-spacing:var(--cg-track-100, .10em);
  background:var(--gold-gradient-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  box-shadow:none;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.62))
    drop-shadow(0 10px 22px rgba(0,0,0,.54));
}

.ns-band__line{
  max-width:420px;
  opacity:.74;
}

.ns-two__grid > .ns-card:first-of-type{
  margin-top:0;
}

.ns-card{
  position:relative;
  isolation:isolate;
  display:block;
  width:100%;
  min-height:360px;
  aspect-ratio:16 / 6;
  overflow:hidden;
  box-sizing:border-box;
  color:inherit;
  text-decoration:none;
  background:#070707;
  border:1px solid rgba(240,197,111,.72);
  border-radius:0;
  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.04),
    0 24px 58px rgba(0,0,0,.54);
  transform:translateZ(0);
  transition:
    transform .65s cubic-bezier(.22,.61,.36,1),
    border-color .65s cubic-bezier(.22,.61,.36,1),
    box-shadow .65s cubic-bezier(.22,.61,.36,1);
}

.ns-card::after{
  content:"";
  position:absolute;
  inset:7px;
  z-index:3;
  pointer-events:none;
  border:1px solid rgba(255,226,158,.24);
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.48),
    inset 0 0 36px rgba(0,0,0,.18);
  transition:
    border-color .65s cubic-bezier(.22,.61,.36,1),
    box-shadow .65s cubic-bezier(.22,.61,.36,1);
}

.ns-card__bg{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  background:#070707;
}

.ns-card__bg img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.015);
  filter:
    brightness(.90)
    contrast(1.04)
    saturate(.98);
  transition:
    transform 1.15s cubic-bezier(.22,.61,.36,1),
    filter 1.15s cubic-bezier(.22,.61,.36,1);
}

.ns-card--madrid .ns-card__bg img{
  object-position:center 52%;
}

.ns-card--prado .ns-card__bg img{
  object-position:center 48%;
}

.ns-card--palace .ns-card__bg img{
  object-position:center 58%;
}

.ns-card--tapas .ns-card__bg img{
  object-position:center 58%;
}

.ns-card--toledo .ns-card__bg img{
  object-position:center 58%;
}

.ns-card--segovia .ns-card__bg img{
  object-position:center 58%;
}

.ns-card--escorial .ns-card__bg img{
  object-position:center 58%;
}

.ns-card__ui{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(12px, 1.2vw, 18px);
  min-width:0;
  padding:
    clamp(30px, 5vw, 58px)
    clamp(20px, 6vw, 72px);
  box-sizing:border-box;
  text-align:center;
}

.ns-card__ui::before{
  content:"";
  display:block;
  flex:0 0 auto;
  width:clamp(74px, 8vw, 94px);
  height:clamp(74px, 8vw, 94px);
  box-sizing:border-box;
  border:1px solid rgba(255,226,158,.72);
  border-radius:13px;
  background:
    radial-gradient(
      circle at 50% 22%,
      rgba(255,232,176,.14) 0%,
      rgba(255,232,176,0) 58%
    ),
    rgba(5,5,5,.68);
  box-shadow:
    0 14px 30px rgba(0,0,0,.52),
    0 0 20px rgba(240,197,111,.09),
    inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  transition:
    transform .65s cubic-bezier(.22,.61,.36,1),
    border-color .65s cubic-bezier(.22,.61,.36,1),
    box-shadow .65s cubic-bezier(.22,.61,.36,1);
}

.ns-card__title{
  position:relative;
  isolation:isolate;
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(32px, 6.2vw, 56px);
  font-weight:700;
  line-height:1.18;
  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,.68))
    drop-shadow(0 12px 26px rgba(0,0,0,.64));
}

.ns-card__title::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:calc(100% + clamp(23px, 2.2vw, 29px));
  z-index:2;
  width:clamp(54px, 5.8vw, 68px);
  height:clamp(54px, 5.8vw, 68px);
  pointer-events:none;
  background:var(--gold-gradient-text);
  transform:translateX(-50%);
  transform-origin:center;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:contain;
  mask-size:contain;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.55))
    drop-shadow(0 9px 16px rgba(0,0,0,.58));
}

.ns-card--madrid .ns-card__title::before{
  -webkit-mask-image:url("../images/icons/icon-oso_madrono.svg");
  mask-image:url("../images/icons/icon-oso_madrono.svg");
}

.ns-card--prado .ns-card__title::before{
  -webkit-mask-image:url("../images/icons/icon-estatua.svg");
  mask-image:url("../images/icons/icon-estatua.svg");
}

.ns-card--palace .ns-card__title::before{
  -webkit-mask-image:url("../images/icons/icon-corona.svg");
  mask-image:url("../images/icons/icon-corona.svg");
}

.ns-card--tapas .ns-card__title::before{
  -webkit-mask-image:url("../images/icons/icon-gourmet.svg");
  mask-image:url("../images/icons/icon-gourmet.svg");
}

.ns-card--toledo .ns-card__title::before{
  -webkit-mask-image:url("../images/icons/icon-aguila.svg");
  mask-image:url("../images/icons/icon-aguila.svg");
}

.ns-card--segovia .ns-card__title::before{
  -webkit-mask-image:url("../images/icons/icon-torre.svg");
  mask-image:url("../images/icons/icon-torre.svg");
}

.ns-card--escorial .ns-card__title::before{
  -webkit-mask-image:url("../images/icons/icon-globe.svg");
  mask-image:url("../images/icons/icon-globe.svg");
}

.ns-card__title::selection{
  background:rgba(240,197,111,.22);
}

.ns-card__title::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:clamp(-14px, -1vw, -9px);
  width:min(360px, 118%);
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(
    90deg,
    rgba(240,197,111,0) 0%,
    rgba(240,197,111,.82) 18%,
    rgba(255,244,214,.98) 50%,
    rgba(240,197,111,.82) 82%,
    rgba(240,197,111,0) 100%
  );
  opacity:.94;
}

.ns-card__kicker{
  position:relative;
  margin:
    clamp(8px, 1vw, 14px)
    0
    0;
  font-family:var(--font-body);
  font-size:clamp(14px, 2.4vw, 18px);
  font-weight:500;
  line-height:1.6;
  letter-spacing:.11em;
  color:rgba(255,255,255,.92);
  text-shadow:
    0 2px 0 rgba(0,0,0,.60),
    0 12px 26px rgba(0,0,0,.72);
}

.ns-two .ns-mini-btn{
  min-width:clamp(188px, 18vw, 230px);
  min-height:46px;
  margin-top:clamp(16px, 2vw, 26px);
  padding:9px 26px;
  font-size:clamp(14px, 1.4vw, 16px);
  font-weight:700;
  letter-spacing:.10em;
  color:rgba(255,244,214,.96);
  box-shadow:
    0 13px 28px rgba(0,0,0,.54),
    0 0 16px rgba(240,197,111,.06);
}

.ns-two .ns-mini-btn__arrow{
  display:block;
  flex:0 0 auto;
  width:8px;
  height:8px;
  margin-left:12px;
  border-top:1px solid currentColor;
  border-right:1px solid currentColor;
  transform:rotate(45deg);
  transition:transform var(--transition-med);
}

.ns-card:focus-visible{
  outline:none;
  border-color:rgba(255,244,214,.98);
  box-shadow:
    0 0 0 3px rgba(240,197,111,.20),
    0 26px 62px rgba(0,0,0,.60);
}

/* =========================
   ICONS (GLOBAL)
   ========================= */
.ns-ico{
  position:relative;
  display:block;
  width:clamp(46px, 6.5vw, 80px);
  height:clamp(46px, 6.5vw, 80px);
  transform:none;
}

.ns-ico::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--gold-gradient-text);
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:contain;
  mask-size:contain;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.60))
    drop-shadow(0 8px 14px rgba(0,0,0,.56));
}

.ns-ico--japanese::after{
  -webkit-mask-image:url("../images/icons/icon-jap.svg");
  mask-image:url("../images/icons/icon-jap.svg");
}

.ns-ico--english::after{
  -webkit-mask-image:url("../images/icons/icon-eng.svg");
  mask-image:url("../images/icons/icon-eng.svg");
}

.ns-ico--licensed::after{
  -webkit-mask-image:url("../images/icons/icon-licensed.svg");
  mask-image:url("../images/icons/icon-licensed.svg");
}

.ns-ico--astrolabe::after{
  -webkit-mask-image:url("../images/icons/icon-astrolabe.svg");
  mask-image:url("../images/icons/icon-astrolabe.svg");
}

.ns-ico--customise::after{
  -webkit-mask-image:url("../images/icons/icon-ideas.svg");
  mask-image:url("../images/icons/icon-ideas.svg");
}

.ns-ico--key::after{
  -webkit-mask-image:url("../images/icons/icon-key.svg");
  mask-image:url("../images/icons/icon-key.svg");
}

.ns-ico--pray::after{
  -webkit-mask-image:url("../images/icons/icon-pray.svg");
  mask-image:url("../images/icons/icon-pray.svg");
}

.ns-ico--private::after{
  -webkit-mask-image:url("../images/icons/icon-friends.svg");
  mask-image:url("../images/icons/icon-friends.svg");
}

.ns-ico--flex::after{
  -webkit-mask-image:url("../images/icons/icon-flex.svg");
  mask-image:url("../images/icons/icon-flex.svg");
}

.ns-ico--gourmet::after{
  -webkit-mask-image:url("../images/icons/icon-gourmet.svg");
  mask-image:url("../images/icons/icon-gourmet.svg");
}

.ns-ico--ticket::after{
  -webkit-mask-image:url("../images/icons/icon-ticket.svg");
  mask-image:url("../images/icons/icon-ticket.svg");
}

/* =========================
   BOTTOMSCAPE
   ========================= */
.ns-bottomscape{
  position:relative;
  margin-top:calc(0px - clamp(4px, .55vw, 8px));
  padding-top:0;
  padding-bottom:var(--home-bottom-space);
  overflow:hidden;
  isolation:isolate;
}

.ns-bottomscape > *{
  position:relative;
  z-index:2;
}

/* =========================
   BAND (BENEFITS + REVIEWS)
   ========================= */
.icon-star-filled{
  position:relative;
}

.icon-star-filled::after{
  content:"";
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  background:var(--gold-gradient-text);
  -webkit-mask:url("../images/icons/icon-star-filled.svg") no-repeat center/contain;
  mask:url("../images/icons/icon-star-filled.svg") no-repeat center/contain;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.60))
    drop-shadow(0 7px 12px rgba(0,0,0,.52));
}

.ns-bottomscape > .ns-band,
.ns-index-brand-tag--bridge + #ns-guide{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  padding-top:var(--home-band-space);
}

/* MOBILE — hasta 767px */

html:lang(ja) body.ns-home .ns-bottomscape{
  padding-bottom:var(--home-bottom-space);
}

html:lang(ja) body.ns-home .ns-bottomscape > #ns-benefits,
html:lang(ja) body.ns-home .ns-index-brand-tag--bridge + #ns-guide{
  padding-top:var(--home-band-space);
}

/* TABLET — 768px a 1023px */

@media (min-width:768px) and (max-width:1023px){

  html:lang(ja) body.ns-home .ns-bottomscape{
    padding-bottom:var(--home-bottom-space);
  }

  html:lang(ja) body.ns-home .ns-bottomscape > #ns-benefits,
  html:lang(ja) body.ns-home .ns-index-brand-tag--bridge + #ns-guide{
    padding-top:var(--home-band-space);
  }

  .ns-benefits__lead .ns-copy-break--desktop{
    display:none;
  }

}

/* DESKTOP — desde 1024px */

@media (min-width:1024px){

  html:lang(ja) body.ns-home .ns-bottomscape{
    padding-bottom:var(--home-bottom-space);
  }

  html:lang(ja) body.ns-home .ns-bottomscape > #ns-benefits,
  html:lang(ja) body.ns-home .ns-index-brand-tag--bridge + #ns-guide{
    padding-top:var(--home-band-space);
  }
}

/* DESKTOP GRANDE — desde 1440px */

.ns-benefits__intro{
  width:min(1040px, calc(100% - 28px));
  margin:
    0
    auto
    clamp(48px, 7vw, 76px);
  text-align:center;
}

.ns-benefits__headline{
  margin:
    clamp(58px, 6.5vw, 76px)
    0
    0;
  font-family:var(--font-display);
  font-size:clamp(30px, 7vw, 48px);
  font-weight:700;
  line-height:1.35;
  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,.64))
    drop-shadow(0 11px 22px rgba(0,0,0,.54));
}

.ns-benefits__lead{
  max-width:920px;
  margin:
    clamp(70px, 7vw, 90px)
    auto
    0;
  font-family:var(--font-body);
  font-size:clamp(14px, 3.6vw, 17px);
  font-weight:400;
  line-height:2;
  letter-spacing:.045em;
  color:rgba(255,255,255,.90);
  text-shadow:
    0 1px 0 rgba(0,0,0,.38),
    0 10px 22px rgba(0,0,0,.48);
}

.ns-benefits__lead-break--mobile{
  display:none;
}

.ns-benefits__intro-rule{
  display:block;
  width:min(620px, 78%);
  height:1px;
  margin:
    clamp(28px, 5vw, 40px)
    auto
    0;
  background:linear-gradient(
    90deg,
    rgba(240,197,111,0) 0%,
    rgba(240,197,111,.68) 22%,
    rgba(255,244,214,.96) 50%,
    rgba(240,197,111,.68) 78%,
    rgba(240,197,111,0) 100%
  );
}

.ns-benefits{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(16px, 3vw, 22px);
  width:calc(100% - 24px);
  max-width:1240px;
  margin:0 auto;
}

.ns-benefit{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  min-width:0;
  min-height:300px;
  padding:
    clamp(32px, 7vw, 42px)
    clamp(22px, 6vw, 34px)
    clamp(28px, 6vw, 36px);
  overflow:hidden;
  text-align:center;
  background:
    radial-gradient(
      420px 230px at 50% -2%,
      rgba(255,225,158,.11) 0%,
      rgba(240,197,111,.035) 42%,
      rgba(240,197,111,0) 72%
    ),
    linear-gradient(
      135deg,
      rgba(255,255,255,.02) 0%,
      rgba(255,255,255,0) 42%
    ),
    linear-gradient(
      180deg,
      rgba(19,19,19,.94) 0%,
      rgba(6,6,6,.94) 100%
    );
  border:1px solid rgba(240,197,111,.42);
  border-radius:0;
  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.03),
    inset 0 -26px 52px rgba(0,0,0,.12),
    0 18px 40px rgba(0,0,0,.43);
  transform:translateZ(0);
  transition:
    transform .55s cubic-bezier(.22,.61,.36,1),
    border-color .55s cubic-bezier(.22,.61,.36,1),
    box-shadow .55s cubic-bezier(.22,.61,.36,1);
}

.ns-benefit::before{
  content:"";
  position:absolute;
  inset:7px;
  z-index:1;
  pointer-events:none;
  border:1px solid rgba(255,226,158,.11);
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.38),
    inset 0 0 30px rgba(0,0,0,.14);
  transition:
    border-color .55s cubic-bezier(.22,.61,.36,1),
    box-shadow .55s cubic-bezier(.22,.61,.36,1);
}

.ns-benefit::after{
  content:"";
  position:absolute;
  top:0;
  left:12%;
  right:12%;
  z-index:1;
  height:1px;
  pointer-events:none;
  background:linear-gradient(
    90deg,
    rgba(240,197,111,0) 0%,
    rgba(255,232,176,.68) 50%,
    rgba(240,197,111,0) 100%
  );
  opacity:.46;
}

.ns-benefit > *{
  position:relative;
  z-index:2;
}

.ns-benefit__icon{
  position:relative;
  isolation:isolate;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:68px;
  height:68px;
  margin:
    0
    auto
    clamp(14px, 3vw, 20px);
  opacity:1;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.58))
    drop-shadow(0 10px 18px rgba(0,0,0,.62));
  transition:
    transform .55s cubic-bezier(.22,.61,.36,1),
    filter .55s cubic-bezier(.22,.61,.36,1);
}

.ns-benefit__icon::before{
  content:"";
  position:absolute;
  inset:-22px;
  z-index:0;
  pointer-events:none;
  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(240,197,111,.18) 0%,
    rgba(240,197,111,.07) 38%,
    rgba(240,197,111,0) 72%
  );
  filter:blur(5px);
  opacity:.88;
  transition:
    opacity .55s cubic-bezier(.22,.61,.36,1),
    transform .55s cubic-bezier(.22,.61,.36,1);
}

.ns-benefits .ns-benefit__icon .ns-ico{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
}

.ns-benefit__ttl{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  max-width:100%;
  margin:0;
  padding:0 0 15px;
  overflow:visible;
  font-family:var(--font-display);
  font-size:clamp(19px, 4.8vw, 22px);
  font-weight:700;
  line-height:1.42;
  letter-spacing:var(--cg-track-040, .04em);
  white-space:normal;
  text-align:center;
  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 8px 15px rgba(0,0,0,.56));
  transition:
    transform .55s cubic-bezier(.22,.61,.36,1),
    filter .55s cubic-bezier(.22,.61,.36,1);
}

.ns-benefit__ttl::after{
  content:"";
  position:absolute;
  bottom:0;
  left:50%;
  width:min(280px, 88%);
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(
    90deg,
    rgba(240,197,111,0) 0%,
    rgba(240,197,111,.82) 18%,
    rgba(255,244,214,.96) 50%,
    rgba(240,197,111,.82) 82%,
    rgba(240,197,111,0) 100%
  );
}

.ns-benefit__txt{
  max-width:36em;
  margin:
    clamp(16px, 3.2vw, 21px)
    auto
    0;
  font-family:var(--font-body);
  font-size:clamp(13px, 3.5vw, 14px);
  font-weight:400;
  line-height:1.85;
  letter-spacing:.03em;
  color:rgba(255,255,255,.86);
  text-align:center;
  word-break:normal;
  overflow-wrap:anywhere;
  line-break:strict;
  text-shadow:
    0 1px 0 rgba(0,0,0,.32),
    0 9px 20px rgba(0,0,0,.44);
}

.ns-benefits__statement{
  position:relative;
  display:flex;
  align-items:flex-end;
  width:calc(100% - 20px);
  max-width:1100px;
  min-height:470px;
  margin:36px auto 0;
  overflow:hidden;
  isolation:isolate;
  background:#090909;
  border:1px solid rgba(240,197,111,.52);
  border-radius:10px;
  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.025),
    0 16px 34px rgba(0,0,0,.46);
}

.ns-benefits__reviews{
  position:relative;
  margin-top:36px;
}

.ns-benefits__statement-media{
  position:absolute;
  inset:0;
  z-index:0;
}

.ns-benefits__statement-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:65% center;
  filter:
    brightness(1)
    contrast(1.02)
    saturate(1);
  transform:none;
  transition:
    transform .9s ease,
    filter .9s ease;
}

.ns-benefits__statement::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,0) 54%,
    rgba(0,0,0,.08) 74%,
    rgba(0,0,0,.24) 88%,
    rgba(0,0,0,.42) 100%
  );
}

.ns-benefits__statement-site{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:clamp(12px, 2vw, 22px);
  margin-bottom:clamp(12px, 2vw, 20px);
}

.ns-benefits__statement-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:5px 14px;
  border:1px solid rgba(240,197,111,.85);
  border-radius:3px;
  background:rgba(0,0,0,.65);
  color:var(--gold);
  font-family:Georgia, "Times New Roman", serif;
  font-size:clamp(14px, 1.4vw, 17px);
  font-weight:400;
  line-height:1.2;
  letter-spacing:.08em;
  white-space:nowrap;
}

.ns-benefits__statement-title{
  margin:0;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(27px, 7vw, 39px);
  line-height:1.45;
  letter-spacing:var(--cg-track-080, .08em);
  background:var(--gold-gradient-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.68))
    drop-shadow(0 10px 20px rgba(0,0,0,.60));
}

.ns-benefits__statement-title::after{
  content:"";
  display:block;
  width:min(546px, 100%);
  height:1px;
  margin:clamp(10px, 2.5vw, 15px) 0 0;
  background:linear-gradient(
    90deg,
    rgba(240,197,111,.90) 0%,
    rgba(240,197,111,0) 100%
  );
}

.ns-benefits__statement-text{
  margin:clamp(17px, 4vw, 24px) 0 0;
  font-family:var(--font-body);
  font-weight:400;
  font-size:clamp(13px, 3.4vw, 16px);
  line-height:2;
  letter-spacing:.04em;
  color:rgba(255,255,255,.90);
  text-shadow:
    0 1px 0 rgba(0,0,0,.40),
    0 9px 20px rgba(0,0,0,.60);
}

.ns-benefits__statement-btn{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  width:100%;
  min-height:48px;
  margin-top:clamp(20px, 5vw, 28px);
  padding:0 24px;
  box-sizing:border-box;
  border:1.5px solid transparent;
  border-radius:4px;
  background:#000;
  background-image:
    linear-gradient(#000, #000),
    var(--gold-gradient-border);
  background-origin:border-box;
  background-clip:padding-box, border-box;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(14px, 3.8vw, 17px);
  line-height:1.4;
  letter-spacing:var(--cg-track-090, .09em);
  color:#fff;
  text-decoration:none;
  box-shadow:0 12px 26px rgba(0,0,0,.50);
  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-guide__btn > span:first-child{
  background:none;
  color:inherit;
  -webkit-text-fill-color:currentColor;
}

.ns-benefits__statement-btn::after,
.ns-guide__btn::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-benefits__statement-arrow{
  display:block;
  width:8px;
  height:8px;
  flex:0 0 auto;
  border-top:1px solid currentColor;
  border-right:1px solid currentColor;
  transform:rotate(45deg);
}

/* =========================
   WHO I AM
   ======================= */
.ns-guide{
  width:calc(100% - 20px);
  max-width:1100px;
  margin-top:36px;
  margin-right:auto;
  margin-bottom:clamp(42px, 8vw, 68px);
  margin-left:auto;
}

.ns-guide__card{
  position:relative;
  display:flex;
  align-items:flex-end;
  width:100%;
  min-height:470px;
  overflow:hidden;
  isolation:isolate;
  background:#090909;
  border:1px solid rgba(240,197,111,.52);
  border-radius:10px;
  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.025),
    0 16px 34px rgba(0,0,0,.46);
}

.ns-guide__card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,0) 52%,
    rgba(0,0,0,.08) 72%,
    rgba(0,0,0,.24) 88%,
    rgba(0,0,0,.42) 100%
  );
}

.ns-guide__media{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  overflow:hidden;
  background:#080808;
}

.ns-guide__media::after{
  content:none;
}

.ns-guide__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 48%;
  filter:
    contrast(1.02)
    saturate(.96)
    brightness(1);
  transform:scale(1.01);
  transition:
    transform .75s cubic-bezier(.22,.61,.36,1),
    filter .75s cubic-bezier(.22,.61,.36,1);
}

.ns-guide__ui{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  width:100%;
  min-width:0;
  padding:
    clamp(28px, 7vw, 40px)
    clamp(22px, 6vw, 36px)
    clamp(30px, 7vw, 42px);
  box-sizing:border-box;
  text-align:right;
}

.ns-guide__eyebrow{
  margin:
    0
    0
    clamp(12px, 3vw, 17px);
  font-family:var(--font-display);
  font-size:clamp(15px, 3.6vw, 17px);
  font-weight:700;
  line-height:1.4;
  letter-spacing:var(--cg-track-130, .13em);
  background:var(--gold-gradient-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.68))
    drop-shadow(0 10px 20px rgba(0,0,0,.60));
}

.ns-guide__ttl{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(25px, 6vw, 34px);
  font-weight:700;
  line-height:1.42;
  letter-spacing:var(--cg-track-045, .045em);
  color:rgba(255,255,255,.96);
  text-shadow:
    0 2px 0 rgba(0,0,0,.58),
    0 11px 24px rgba(0,0,0,.52);
}

.ns-guide__ttl::after{
  content:"";
  display:block;
  width:min(410px, 82%);
  height:1px;
  margin:
    clamp(14px, 3.2vw, 19px)
    0
    0
    auto;
  background:linear-gradient(
    90deg,
    rgba(240,197,111,0) 0%,
    rgba(240,197,111,.58) 52%,
    rgba(255,232,176,.92) 100%
  );
}

.ns-guide__txt{
  width:100%;
  max-width:44em;
  margin:
    clamp(19px, 4.2vw, 25px)
    0
    0
    auto;
  font-family:var(--font-body);
  font-size:clamp(14px, 3.4vw, 15px);
  font-weight:400;
  line-height:1.9;
  letter-spacing:.032em;
  color:rgba(255,255,255,.88);
  text-align:right;
  text-shadow:
    0 1px 0 rgba(0,0,0,.34),
    0 9px 20px rgba(0,0,0,.44);
}

.ns-guide__btn{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  align-self:flex-end;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  width:auto;
  min-width:min(270px, 100%);
  min-height:50px;
  margin:
    clamp(25px, 5vw, 32px)
    0
    0
    auto;
  padding:10px 30px;
  border:1.5px solid transparent;
  border-radius:3px;
  background:#000;
  background-image:
    linear-gradient(#000, #000),
    var(--gold-gradient-border);
  background-origin:border-box;
  background-clip:padding-box, border-box;
  font-family:var(--font-display);
  font-size:clamp(15px, 3.8vw, 17px);
  font-weight:700;
  line-height:1.4;
  letter-spacing:var(--cg-track-100, .10em);
  color:#fff;
  text-decoration:none;
  box-shadow:0 12px 26px rgba(0,0,0,.50);
  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-guide__btn-arrow{
  display:block;
  flex:0 0 auto;
  width:9px;
  height:9px;
  border-top:1px solid currentColor;
  border-right:1px solid currentColor;
  transform:rotate(45deg);
}

/* =========================
   FLOURISH
   ========================= */
.ns-band__orn,
.ns-band__orn_inv{
  width:min(1200px, 96%);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  position:absolute;
  left:50%;
  z-index:50;
  pointer-events:none;
}

.ns-band__orn{
  height:0;
  transform:translate(-50%, 12px);
}

.ns-band__orn_inv{
  height:26px;
  transform:translate(-50%, -30px);
}

.ns-band__orn::before,
.ns-band__orn::after,
.ns-band__orn_inv::before,
.ns-band__orn_inv::after{
  content:"";
  flex:1 1 calc(50% - 120px);
  height:1px;
  opacity:.95;
}

.ns-band__orn::before,
.ns-band__orn_inv::before{
  background:linear-gradient(
    90deg,
    rgba(199,161,90,0) 0%,
    rgba(199,161,90,.65) 25%,
    rgba(230,200,143,.95) 70%,
    rgba(230,200,143,.95) 100%
  );
}

.ns-band__orn::after,
.ns-band__orn_inv::after{
  background:linear-gradient(
    90deg,
    rgba(230,200,143,.95) 0%,
    rgba(230,200,143,.95) 30%,
    rgba(199,161,90,.65) 75%,
    rgba(199,161,90,0) 100%
  );
}

.ns-band__flourish,
.ns-band__flourish_inv{
  width:180px;
  height:39px;
  flex:0 0 auto;
  position:relative;
  z-index:2;
  margin:0 -60px;
  background:var(--gold-gradient-icons);
  filter:
    drop-shadow(0 2px 0 rgba(0,0,0,.56))
    drop-shadow(0 7px 12px rgba(0,0,0,.48));
  opacity:.84;
}

.ns-band__flourish{
  -webkit-mask:url("../images/icons/flourish.svg") no-repeat center/contain;
  mask:url("../images/icons/flourish.svg") no-repeat center/contain;
}

.ns-band__flourish_inv{
  -webkit-mask:url("../images/icons/flourish_inv.svg") no-repeat center/contain;
  mask:url("../images/icons/flourish_inv.svg") no-repeat center/contain;
}

/* =========================
   REVIEWS (CAROUSEL)
   ========================= */
.ns-reviews{
  position:relative;
  isolation:isolate;
  display:block;
  width:100%;
  max-width:1380px;
  margin-left:auto;
  margin-right:auto;
  margin-bottom:28px;
  padding:
    clamp(42px, 5vw, 58px)
    0
    clamp(16px, 2.5vw, 24px);
}

.ns-reviews::before{
  content:"";
  position:absolute;
  top:-18px;
  right:calc(0px - var(--home-review-bleed));
  bottom:calc(0px - clamp(34px, 3.5vw, 50px));
  left:calc(0px - var(--home-review-bleed));
  z-index:0;
  background-image:
    linear-gradient(
      180deg,
      rgba(14,14,14,.92) 0%,
      rgba(8,8,8,.58) 16%,
      rgba(5,5,5,.18) 50%,
      rgba(8,8,8,.58) 84%,
      rgba(14,14,14,.92) 100%
    ),
    linear-gradient(
      90deg,
      rgba(0,0,0,.44) 0%,
      rgba(0,0,0,.24) 22%,
      rgba(0,0,0,.14) 50%,
      rgba(0,0,0,.24) 78%,
      rgba(0,0,0,.44) 100%
    ),
    url("../images/stormy_coast.jpg");
  background-size:
    100% 100%,
    100% 100%,
    cover;
  background-position:
    center,
    center,
    center;
  background-repeat:
    no-repeat,
    no-repeat,
    no-repeat;
  opacity:1;
  -webkit-mask-image:
    linear-gradient(
      180deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,1) 9%,
      rgba(0,0,0,1) 91%,
      rgba(0,0,0,0) 100%
    ),
    linear-gradient(
      90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.04) 4%,
      rgba(0,0,0,.10) 8%,
      rgba(0,0,0,.20) 12%,
      rgba(0,0,0,.34) 16%,
      rgba(0,0,0,.52) 20%,
      rgba(0,0,0,.72) 24%,
      rgba(0,0,0,.88) 28%,
      rgba(0,0,0,1) 32%,
      rgba(0,0,0,1) 68%,
      rgba(0,0,0,.88) 72%,
      rgba(0,0,0,.72) 76%,
      rgba(0,0,0,.52) 80%,
      rgba(0,0,0,.34) 84%,
      rgba(0,0,0,.20) 88%,
      rgba(0,0,0,.10) 92%,
      rgba(0,0,0,.04) 96%,
      rgba(0,0,0,0) 100%
    );
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  -webkit-mask-composite:intersect;
  mask-image:
    linear-gradient(
      180deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,1) 9%,
      rgba(0,0,0,1) 91%,
      rgba(0,0,0,0) 100%
    ),
    linear-gradient(
      90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.04) 4%,
      rgba(0,0,0,.10) 8%,
      rgba(0,0,0,.20) 12%,
      rgba(0,0,0,.34) 16%,
      rgba(0,0,0,.52) 20%,
      rgba(0,0,0,.72) 24%,
      rgba(0,0,0,.88) 28%,
      rgba(0,0,0,1) 32%,
      rgba(0,0,0,1) 68%,
      rgba(0,0,0,.88) 72%,
      rgba(0,0,0,.72) 76%,
      rgba(0,0,0,.52) 80%,
      rgba(0,0,0,.34) 84%,
      rgba(0,0,0,.20) 88%,
      rgba(0,0,0,.10) 92%,
      rgba(0,0,0,.04) 96%,
      rgba(0,0,0,0) 100%
    );
  mask-repeat:no-repeat;
  mask-size:100% 100%;
  mask-composite:intersect;
  pointer-events:none;
}

.ns-reviews > *{
  position:relative;
  z-index:2;
}

.ns-reviews__nav{
  display:none !important;
}

.ns-reviews__viewport{
  position:relative;
  display:block;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scroll-padding-left:0;
  scroll-padding-right:0;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  outline:none;
}

.ns-reviews__viewport::-webkit-scrollbar{
  display:none;
}

.ns-reviews__track{
  display:flex;
  align-items:stretch;
  justify-content:flex-start;
  gap:20px;
  min-width:100%;
  padding:0;
}

.ns-review{
  position:relative;
  isolation:isolate;
  flex:0 0 100%;
  min-width:0;
  min-height:190px;
  overflow:hidden;
  padding:
    22px
    20px
    20px;
  text-align:center;
  scroll-snap-align:start;
  background:
    radial-gradient(
      420px 190px at 50% -12%,
      rgba(240,197,111,.10) 0%,
      rgba(240,197,111,.025) 48%,
      rgba(240,197,111,0) 72%
    ),
    linear-gradient(
      180deg,
      rgba(16,16,16,.92) 0%,
      rgba(5,5,5,.94) 100%
    );
  border:1px solid rgba(240,197,111,.48);
  box-shadow:
    inset 0 1px 0 rgba(255,244,214,.035),
    0 18px 40px rgba(0,0,0,.48);
}

.ns-review::before{
  content:"";
  position:absolute;
  inset:7px;
  z-index:0;
  pointer-events:none;
  border:1px solid rgba(255,226,158,.14);
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.42),
    inset 0 0 28px rgba(0,0,0,.15);
}

.ns-review > *{
  position:relative;
  z-index:1;
}

.ns-review__stars{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:
    0
    0
    13px;
  color:var(--gold);
  transform:none;
}

.ns-review__stars::before,
.ns-review__stars::after{
  content:none;
  display:none;
}

.ns-review__stars i{
  position:relative;
  display:inline-block;
  width:17px;
  height:17px;
}

.ns-review__stars i::after{
  position:absolute;
  inset:0;
}

.ns-review__body{
  position:static;
  display:block;
  min-width:0;
  min-height:clamp(76px, 20vw, 94px);
  margin-bottom:0;
  padding-left:calc(
    clamp(66px, 18vw, 80px) +
    clamp(30px, 5vw, 42px)
  );
}

.ns-review__avatar{
  position:absolute;
  left:clamp(28px, 4vw, 40px);
  top:50%;
  z-index:2;
  flex:0 0 clamp(76px, 20vw, 92px);
  width:clamp(76px, 20vw, 92px);
  height:clamp(76px, 20vw, 92px);
  margin:0;
  overflow:hidden;
  background:rgba(0,0,0,.60);
  border-radius:50%;
  box-shadow:
    0 16px 32px rgba(0,0,0,.62),
    0 0 18px rgba(240,197,111,.09);
  transform:translateY(-50%);
}

.ns-review__avatar::after{
  content:"";
  position:absolute;
  inset:0;
  padding:1px;
  border-radius:50%;
  background:var(--gold-gradient-text);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}

.ns-review__avatar img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border-radius:50%;
  filter:
    contrast(1.03)
    saturate(.96)
    brightness(.96);
}

.ns-review__text{
  flex:1 1 auto;
  min-width:0;
  max-width:44em;
}

.ns-review__txt{
  margin:0;
  font-family:var(--font-body);
  font-size:clamp(13px, 3.5vw, 14.5px);
  font-weight:400;
  line-height:1.72;
  letter-spacing:.025em;
  color:rgba(255,255,255,.90);
  text-shadow:
    0 1px 0 rgba(0,0,0,.34),
    0 9px 20px rgba(0,0,0,.46);
}

.ns-review__sig{
  margin-top:9px;
  font-family:var(--font-body);
  font-size:clamp(11.5px, 3vw, 12.5px);
  font-weight:400;
  line-height:1.4;
  letter-spacing:.10em;
  color:rgba(255,239,205,.76);
  text-shadow:
    0 1px 0 rgba(0,0,0,.28),
    0 8px 16px rgba(0,0,0,.38);
}

/* =========================
   INTERACTION
   ========================= */
@media (hover:hover){
  .ns-card:hover{
    border-color:rgba(255,232,176,.96);
    box-shadow:
      inset 0 1px 0 rgba(255,244,214,.06),
      0 30px 68px rgba(0,0,0,.62),
      0 0 28px rgba(240,197,111,.13);
    transform:
      translateY(-7px)
      translateZ(0);
  }

  .ns-card:hover::before{
    opacity:.84;
  }

  .ns-card:hover::after{
    border-color:rgba(255,232,176,.48);
    box-shadow:
      inset 0 0 0 1px rgba(0,0,0,.46),
      inset 0 0 42px rgba(0,0,0,.16),
      0 0 18px rgba(240,197,111,.08);
  }

  .ns-card:hover .ns-card__bg img{
    transform:scale(1.065);
    filter:
      brightness(.90)
      contrast(1.07)
      saturate(1);
  }

  .ns-card:hover .ns-card__ui::before{
    border-color:rgba(255,244,214,.96);
    box-shadow:
      0 17px 34px rgba(0,0,0,.58),
      0 0 26px rgba(240,197,111,.24),
      inset 0 1px 0 rgba(255,255,255,.12);
    transform:translateY(-3px);
  }

  .ns-card:hover .ns-card__title::before{
    transform:
      translateX(-50%)
      scale(1.07);
    filter:
      drop-shadow(0 2px 0 rgba(0,0,0,.55))
      drop-shadow(0 11px 19px rgba(0,0,0,.62))
      drop-shadow(0 0 12px rgba(240,197,111,.24));
  }

  .ns-card:hover .ns-mini-btn{
    color:#0e0e0e;
    border:1.5px solid transparent;
    background-image:var(--gold-gradient-main);
    background-origin:border-box;
    background-clip:border-box;
    box-shadow:
      0 16px 34px rgba(0,0,0,.58),
      0 0 0 3px rgba(240,197,111,.12);
  }

  .ns-card:hover .ns-mini-btn::after{
    opacity:0;
  }

  .ns-card:hover .ns-mini-btn__arrow{
    transform:
      translateX(4px)
      rotate(45deg);
  }

  .ns-benefit:hover{
    transform:translateY(-5px);
    border-color:rgba(255,232,176,.88);
    box-shadow:
      inset 0 1px 0 rgba(255,244,214,.07),
      inset 0 -30px 60px rgba(0,0,0,.12),
      0 30px 62px rgba(0,0,0,.58),
      0 0 24px rgba(240,197,111,.10);
  }

  .ns-benefit:hover::before{
    border-color:rgba(255,226,158,.38);
    box-shadow:
      inset 0 0 0 1px rgba(0,0,0,.42),
      inset 0 0 38px rgba(0,0,0,.14),
      0 0 16px rgba(240,197,111,.04);
  }

  .ns-benefit:hover .ns-benefit__icon{
    transform:
      translateY(-2px)
      scale(1.08);
    filter:
      drop-shadow(0 3px 0 rgba(0,0,0,.58))
      drop-shadow(0 13px 22px rgba(0,0,0,.68))
      drop-shadow(0 0 12px rgba(240,197,111,.18));
  }

  .ns-benefit:hover .ns-benefit__icon::before{
    opacity:1;
    transform:scale(1.14);
  }

  .ns-benefit:hover .ns-benefit__ttl{
    transform:translateY(-2px);
    filter:
      drop-shadow(0 2px 0 rgba(0,0,0,.62))
      drop-shadow(0 10px 18px rgba(0,0,0,.60));
  }
  .ns-benefits__statement:hover .ns-benefits__statement-media img{
    transform:scale(1.04);
    filter:
      brightness(.98)
      contrast(1.04)
      saturate(1.02);
  }

  .ns-benefits__statement-btn:hover{
    color:#0e0e0e;
    border:1.5px solid transparent;
    background-image:var(--gold-gradient-main);
    background-origin:border-box;
    background-clip:border-box;
    box-shadow:
      0 16px 34px rgba(0,0,0,.56),
      0 0 0 3px rgba(240,197,111,.12);
    transform:none;
  }

  .ns-benefits__statement-btn:hover > span:first-child{
    background:none;
    color:#0e0e0e;
    -webkit-text-fill-color:#0e0e0e;
  }

  .ns-benefits__statement-btn:hover::after{
    opacity:0;
  }

  .ns-guide__card:hover .ns-guide__media img{
    transform:scale(1.045);
    filter:
      contrast(1.04)
      saturate(1)
      brightness(.98);
  }

  .ns-guide__btn: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-guide__btn:hover > span:first-child{
    background:none;
    color:#0e0e0e;
    -webkit-text-fill-color:#0e0e0e;
  }

  .ns-guide__btn:hover::after{
    opacity:0;
  }
	
  .ns-reviews__nav:hover{
    border-color:rgba(240,197,111,.45);
    box-shadow:
      0 14px 28px rgba(0,0,0,.56),
      0 0 0 3px rgba(240,197,111,.14);
    transform:translateY(-1px);
  }
}

/* =========================
   MEDIA QUERIES
   ========================= */
@media (max-width:767px){

  .ns-hero{
    min-height:calc(100svh - var(--topbar-h));
  }

  .ns-hero__frame{
    min-height:inherit;
  }

  .ns-hero__ui{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    min-height:inherit;
    padding:
      clamp(44px, 8vw, 78px)
      16px
      max(var(--space-5), env(safe-area-inset-bottom));
  }

  .ns-hero__copy{
    flex:1 1 auto;
    min-height:0;
    padding:
      clamp(18px, 4vw, 34px)
      clamp(18px, 5vw, 44px)
      0;
  }

  .ns-hero__ctas{
    flex:1 1 auto;
    flex-direction:column;
    flex-wrap:nowrap;
    justify-content:flex-start;
  }

  .ns-hero__cta-btn{
    top:50px;
  }

  body.ns-home .ns-home-scroll-bridge{
    position:relative;
    left:auto;
    top:auto;
    bottom:auto;
    margin-top:auto;
    transform:none;
  }

  .ns-band__head{
    margin:
      0
      auto
      clamp(12px, 3.5vw, 16px);
  }

  .ns-two__grid{
    gap:var(--home-card-gap);
  }

  .ns-card{
    min-height:clamp(285px, 72vw, 310px);
  }

  .ns-card__ui{
    gap:clamp(8px, 2vw, 10px);
    padding:
      clamp(20px, 5vw, 24px)
      clamp(16px, 4vw, 22px);
  }

  .ns-card__ui::before{
    width:clamp(64px, 16vw, 70px);
    height:clamp(64px, 16vw, 70px);
    border-radius:11px;
  }

  .ns-card__title{
    font-size:clamp(28px, 7vw, 31px);
    line-height:1.16;
    letter-spacing:var(--cg-track-065, .065em);
  }

  .ns-card__title::before{
    bottom:calc(100% + clamp(18px, 4.5vw, 21px));
    width:clamp(46px, 11.5vw, 52px);
    height:clamp(46px, 11.5vw, 52px);
  }

  .ns-card__title::after{
    bottom:-9px;
    width:min(300px, 112%);
  }

  .ns-card__kicker{
    margin:
      clamp(6px, 1.5vw, 8px)
      0
      0;
    font-size:clamp(13px, 3.4vw, 14px);
    line-height:1.5;
    letter-spacing:.09em;
  }

  .ns-two .ns-mini-btn{
    min-width:clamp(174px, 46vw, 195px);
    min-height:42px;
    margin-top:clamp(10px, 2.8vw, 14px);
    padding:8px 20px;
    font-size:clamp(13px, 3.4vw, 14px);
    letter-spacing:.09em;
  }

  .ns-two .ns-mini-btn__arrow{
    width:7px;
    height:7px;
    margin-left:10px;
  }

  .ns-bottomscape > .ns-band{
    padding-top:clamp(28px, 6vw, 36px);
  }

  .ns-benefits__intro{
    width:min(1040px, calc(100% - 28px));
    margin:
      0
      auto
      clamp(36px, 8vw, 44px);
  }

  .ns-benefits__lead{
    max-width:680px;
    margin:
      clamp(48px, 11vw, 60px)
      auto
      0;
    font-size:clamp(14px, 3.55vw, 16px);
    line-height:1.82;
    letter-spacing:.035em;
    word-break:normal;
    overflow-wrap:normal;
    line-break:strict;
  }

  .ns-benefits__lead-break--mobile{
    display:initial;
  }

  .ns-benefits__intro-rule{
    width:min(560px, 72%);
    margin:
      clamp(22px, 5.5vw, 28px)
      auto
      0;
  }

  .ns-benefits{
    gap:clamp(26px, 7.5vw, 30px);
    width:calc(100% - 28px);
  }

  .ns-benefit{
    min-height:clamp(270px, 67vw, 286px);
    padding:
      clamp(25px, 6.2vw, 29px)
      clamp(18px, 4.8vw, 24px)
      clamp(21px, 5.2vw, 25px);
  }

  .ns-benefit__icon{
    width:62px;
    height:62px;
    margin:
      0
      auto
      clamp(11px, 2.8vw, 14px);
  }

  .ns-benefit__icon::before{
    inset:-19px;
  }

  .ns-benefit__ttl{
    padding-bottom:12px;
    font-size:clamp(18px, 4.5vw, 21px);
    line-height:1.36;
    letter-spacing:var(--cg-track-035, .035em);
  }

  .ns-benefit__ttl::after{
    width:min(250px, 84%);
  }

  .ns-benefit__txt{
    margin:
      clamp(13px, 3.2vw, 16px)
      auto
      0;
    font-size:clamp(14px, 3.55vw, 15px);
    line-height:1.80;
    letter-spacing:.025em;
  }

  .ns-benefits__statement{
    flex-direction:row;
    align-items:flex-end;
    min-height:clamp(675px, 169vw, 700px);
    aspect-ratio:auto;
    margin:
      clamp(30px, 7.5vw, 36px)
      auto
      0;
  }

  .ns-benefits__statement-media{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    aspect-ratio:auto;
    flex:none;
  }
	
  .ns-benefits__reviews{
    margin-top:clamp(30px, 7.5vw, 36px);
  }

  .ns-benefits__statement::after{
    display:block;
    background:linear-gradient(
      0deg,
      rgba(0,0,0,.90) 0%,
      rgba(0,0,0,.80) 36%,
      rgba(0,0,0,.48) 64%,
      rgba(0,0,0,.12) 83%,
      rgba(0,0,0,0) 100%
    );
  }

  .ns-benefits__statement-ui{
    position:relative;
    z-index:2;
    width:100%;
    padding:
      clamp(25px, 6.2vw, 32px)
      clamp(18px, 4.8vw, 24px)
      clamp(24px, 6vw, 31px);
  }

  .ns-benefits__statement-title{
    width:100%;
    font-size:clamp(21px, 5.9vw, 26px);
    line-height:1.45;
    letter-spacing:.035em;
    text-wrap:normal;
    word-break:keep-all;
  }

  .ns-benefits__statement-title::after{
    width:min(490px, 100%);
    margin:
      clamp(9px, 2.2vw, 12px)
      0
      0;
  }

  .ns-benefits__statement-text{
    margin:
      clamp(14px, 3.5vw, 18px)
      0
      0;
    font-size:clamp(14px, 3.55vw, 15.5px);
    line-height:1.82;
    letter-spacing:.035em;
    word-break:normal;
    line-break:strict;
    text-wrap:pretty;
  }

  .ns-benefits__statement-btn{
    display:flex;
    width:min(100%, 330px);
    min-height:44px;
    margin:
      clamp(18px, 4.5vw, 22px)
      auto
      0;
    gap:14px;
    padding:0 18px;
    font-size:clamp(13.5px, 3.45vw, 15.5px);
    letter-spacing:var(--cg-track-080, .08em);
  }

  .ns-benefits__statement-arrow{
    width:7px;
    height:7px;
  }

  .ns-guide{
    width:calc(100% - 32px);
    margin-top:clamp(28px, 7vw, 36px);
    margin-bottom:clamp(36px, 9vw, 48px);
  }

  .ns-guide__card{
    min-height:clamp(680px, 170vw, 710px);
  }

  .ns-guide__card::after{
    background:linear-gradient(
      0deg,
      rgba(0,0,0,.86) 0%,
      rgba(0,0,0,.72) 34%,
      rgba(0,0,0,.44) 55%,
      rgba(0,0,0,.18) 70%,
      rgba(0,0,0,0) 82%,
      rgba(0,0,0,0) 100%
    );
  }

  .ns-guide__media{
    width:100%;
    aspect-ratio:16 / 8;
  }

  .ns-guide__media::after{
    background:
      linear-gradient(
        180deg,
        rgba(0,0,0,.01) 0%,
        rgba(0,0,0,.03) 46%,
        rgba(8,8,8,.16) 62%,
        rgba(10,10,10,.54) 80%,
        rgba(10,10,10,.88) 94%,
        rgba(10,10,10,.99) 100%
      ),
      linear-gradient(
        90deg,
        rgba(0,0,0,.08) 0%,
        rgba(0,0,0,0) 54%,
        rgba(0,0,0,.14) 100%
      );
  }

  .ns-guide__media img{
    object-position:center 45%;
  }

  .ns-guide__ui{
    padding:
      clamp(22px, 5.5vw, 28px)
      clamp(18px, 4.8vw, 24px)
      clamp(24px, 6vw, 30px);
  }

  .ns-guide__eyebrow{
    margin:
      0
      0
      clamp(9px, 2.4vw, 12px);
    font-size:clamp(14px, 3.3vw, 16px);
  }

  .ns-guide__ttl{
    width:min(100%, 12em);
    font-size:clamp(23px, 5.4vw, 31px);
    line-height:1.34;
    letter-spacing:var(--cg-track-040, .04em);
    white-space:normal;
    text-wrap:balance;
  }

  .ns-guide__ttl::after{
    width:min(370px, 80%);
    margin:
      clamp(10px, 2.5vw, 13px)
      0
      0
      auto;
  }

  .ns-guide__txt{
    max-width:42em;
    margin:
      clamp(14px, 3.5vw, 18px)
      0
      0
      auto;
    font-size:clamp(14px, 3.55vw, 15px);
    line-height:1.82;
    letter-spacing:.028em;
  }

  .ns-guide__btn{
    min-width:min(240px, 100%);
    min-height:46px;
    margin:
      clamp(19px, 4.8vw, 23px)
      auto
      0;
    padding:
      9px
      24px;
    gap:16px;
    font-size:clamp(14px, 3.5vw, 15px);
    letter-spacing:var(--cg-track-090, .09em);
  }

  .ns-guide__btn-arrow{
    width:8px;
    height:8px;
  }

  .ns-band__orn{
    transform:translate(-50%, 6px);
  }

  .ns-band__orn_inv{
    height:22px;
    transform:translate(-50%, -18px);
  }

  .ns-band__flourish,
  .ns-band__flourish_inv{
    width:150px;
    height:33px;
    margin:0 -48px;
  }

  .ns-reviews{
    margin-bottom:16px;
    padding:
      clamp(30px, 7.5vw, 36px)
      0
      clamp(10px, 2.5vw, 14px);
  }

  .ns-reviews::before{
    top:-12px;
    right:calc(0px - var(--home-review-bleed));
    bottom:-36px;
    left:calc(0px - var(--home-review-bleed));
  }

  .ns-reviews__track{
    gap:14px;
  }

  .ns-review{
    flex:0 0 100%;
    min-height:auto;
    padding:
      clamp(22px, 5.5vw, 26px)
      clamp(18px, 4.8vw, 22px)
      clamp(22px, 5.5vw, 26px);
  }

  .ns-review__stars{
    gap:6px;
    margin:
      0
      0
      clamp(12px, 3vw, 15px);
  }

  .ns-review__stars i{
    width:16px;
    height:16px;
  }

  .ns-review__body{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:clamp(13px, 3.3vw, 16px);
    min-width:0;
    min-height:0;
    margin:0;
    padding-left:0;
  }

  .ns-review__avatar{
    position:relative;
    left:auto;
    top:auto;
    z-index:2;
    flex:0 0 clamp(82px, 21vw, 90px);
    width:clamp(82px, 21vw, 90px);
    height:clamp(82px, 21vw, 90px);
    margin:0;
    transform:none;
  }

  .ns-review__text{
    flex:0 1 auto;
    width:100%;
    max-width:none;
    margin:0;
    text-align:center;
  }

  .ns-review__txt{
    width:100%;
    margin:0;
    font-size:clamp(14px, 3.55vw, 15px);
    line-height:1.82;
    letter-spacing:.022em;
    text-align:center;
    word-break:normal;
    line-break:strict;
  }

  .ns-review__sig{
    margin-top:8px;
    font-size:clamp(12.5px, 3.05vw, 13px);
    letter-spacing:.09em;
    text-align:center;
  }

  .ns-reviews button:not(.ns-reviews__nav){
    width:7px;
    height:7px;
    min-width:0;
    min-height:0;
    margin-inline:3px;
    padding:0;
    border-radius:50%;
  }
}

@media (min-width: 768px){
  .ns-hero{
    min-height:clamp(
      680px,
      calc(100svh - var(--topbar-h)),
      800px
    );
  }

  .ns-hero__frame{
    min-height:inherit;
  }

  .ns-hero__bg{
    top:0;
    height:calc(100% + 180px);
  }
	
  .ns-hero__ui{
    min-height:inherit;
    padding:
      60px
      24px
      120px;
  }

  .ns-hero__copy{
    width:min(100%, 720px);
    padding:
      28px
      46px
      34px;
  }

  .ns-hero__copy::after{
    width:min(70vw, 500px);
    margin:
      10px
      auto
      18px;
  }

  .ns-hero__logo{
    width:clamp(138px, 16vw, 176px);
    height:clamp(138px, 16vw, 176px);
  }

  .ns-hero__title{
    font-size:clamp(58px, 8vw, 80px);
  }

  .ns-hero__lead{
    font-size:clamp(26px, 3.4vw, 32px);
  }

  .ns-hero__sub{
    font-size:16px;
  }

  .ns-hero__cta-btn{
    min-width:240px;
    min-height:47px;
    padding:11px 32px;
    font-size:16px;
  }

  .ns-two{
    margin-top:var(--home-section-gap);
    padding:
      clamp(46px, 6vw, 64px)
      var(--home-edge-wide)
      clamp(94px, 10vw, 128px);
  }

  .ns-band__head{
    margin:
      0
      auto
      clamp(18px, 2.8vw, 26px);
    padding:0;
  }

  .ns-card{
    min-height:clamp(360px, 39vw, 375px);
  }

  .ns-card__title{
    font-size:clamp(45px, 5.6vw, 53px);
    white-space:nowrap;
  }

  html:lang(en) .ns-bottomscape{
    margin-top:26px;
  }

  .ns-benefits__intro{
    width:min(1040px, calc(100% - 48px));
    margin-bottom:clamp(58px, 7vw, 78px);
  }

  .ns-benefits__headline{
    font-size:clamp(38px, 4.8vw, 50px);
  }

  .ns-benefits__lead{
    font-size:clamp(15px, 1.8vw, 17px);
  }
	
  .ns-benefits{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:clamp(14px, 2vw, 22px);
    width:calc(100% - var(--home-edge-wide) - var(--home-edge-wide));
    max-width:1240px;
  }

  .ns-benefit{
    min-height:clamp(300px, 36vw, 318px);
    padding:
      clamp(26px, 3.3vw, 31px)
      clamp(18px, 2.8vw, 28px)
      clamp(23px, 3vw, 27px);
  }

  .ns-benefit__icon{
    width:clamp(66px, 8vw, 76px);
    height:clamp(66px, 8vw, 76px);
    margin:
      0
      auto
      clamp(12px, 1.8vw, 16px);
  }

  .ns-benefit__ttl{
    min-height:2.8em;
    padding-bottom:clamp(11px, 1.5vw, 14px);
    font-size:clamp(18px, 2.25vw, 21px);
    line-height:1.4;
  }

  .ns-benefit__txt{
    margin-top:clamp(11px, 1.6vw, 15px);
    font-size:clamp(13.5px, 1.6vw, 15px);
    line-height:1.8;
    letter-spacing:.025em;
  }

  .ns-benefits__statement{
    align-items:center;
    width:100%;
    min-height:390px;
    aspect-ratio:8 / 3;
    margin-top:56px;
  }

  .ns-benefits__reviews{
    margin-top:56px;
  }

  .ns-benefits__statement-media img{
    object-position:center;
  }

  .ns-benefits__statement::after{
    background:linear-gradient(
      90deg,
      rgba(0,0,0,.86) 0%,
      rgba(0,0,0,.72) 34%,
      rgba(0,0,0,.44) 55%,
      rgba(0,0,0,.18) 70%,
      rgba(0,0,0,0) 82%,
      rgba(0,0,0,0) 100%
    );
  }

  .ns-benefits__statement-ui{
    position:relative;
    z-index:2;
    width:79%;
    padding:
      clamp(24px, 2.7vw, 30px)
      clamp(28px, 4vw, 46px);
  }

  .ns-benefits__statement-title{
    width:min(100%, 650px);
    font-size:clamp(34px, 3.5vw, 36px);
    line-height:1.38;
    letter-spacing:var(--cg-track-070, .07em);
    text-wrap:balance;
  }

  .ns-benefits__statement-btn{
    width:auto;
    min-width:280px;
  }
	
  .ns-guide{
    width:calc(100% - 32px);
    max-width:1100px;
    margin-top:56px;
    margin-bottom:68px;
  }

  .ns-guide__card{
    align-items:center;
    min-height:410px;
  }

  .ns-guide__card::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(
      270deg,
      rgba(0,0,0,.86) 0%,
      rgba(0,0,0,.72) 34%,
      rgba(0,0,0,.44) 55%,
      rgba(0,0,0,.18) 70%,
      rgba(0,0,0,0) 82%,
      rgba(0,0,0,0) 100%
    );
  }

  .ns-guide__media{
    position:absolute;
    inset:0;
    z-index:0;
    width:100%;
    height:100%;
    min-height:0;
    aspect-ratio:auto;
    overflow:hidden;
  }

  .ns-guide__media::after{
    content:none;
  }

  .ns-guide__media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:left center;
  }

  .ns-guide__ui{
    position:relative;
    z-index:2;
    width:68%;
    min-height:410px;
    margin-left:auto;
    padding:
      30px
      34px
      30px
      28px;
  }

  .ns-guide__eyebrow{
    margin-bottom:12px;
    font-size:15px;
  }

  .ns-guide__ttl{
    font-size:clamp(25px, 2.9vw, 29px);
    line-height:1.30;
    white-space:normal;
    text-wrap:balance;
  }

  .ns-guide__ttl::after{
    margin-top:12px;
  }

  .ns-guide__txt{
    max-width:560px;
    margin-top:15px;
    font-size:15px;
    line-height:1.82;
  }

  .ns-guide__btn{
    width:auto;
    min-width:250px;
    min-height:49px;
    margin-top:21px;
    padding:
      10px
      32px;
    font-size:15px;
  }

}

@media (min-width:768px) and (max-width:1023px){
  .ns-reviews{
    display:grid;
    grid-template-columns:
      42px
      minmax(0, 1fr)
      42px;
    align-items:center;
    gap:8px;
    max-width:1280px;
  }

  .ns-reviews__nav{
    position:relative;
    align-self:center;
    justify-self:center;
    display:grid !important;
    place-items:center;
    width:42px;
    height:42px;
    flex:0 0 42px;
    border:1px solid rgba(240,197,111,.48);
    border-radius:0;
    background:
      radial-gradient(
        58px 58px at 50% 28%,
        rgba(240,197,111,.14) 0%,
        rgba(240,197,111,0) 62%
      ),
      rgba(0,0,0,.62);
    box-shadow:
      0 12px 26px rgba(0,0,0,.62),
      inset 0 1px 0 rgba(255,255,255,.10);
    transition:
      border-color .25s ease,
      box-shadow .25s ease,
      transform .25s ease,
      opacity .25s ease;
  }

  .ns-reviews__nav::after{
    content:"";
    display:block;
    width:12px;
    height:12px;
    box-sizing:border-box;
    border-right:3px solid #f5d38d;
    border-bottom:3px solid #f5d38d;
    filter:
      drop-shadow(0 2px 0 rgba(0,0,0,.50))
      drop-shadow(0 5px 10px rgba(0,0,0,.56));
  }

  .ns-reviews__nav--prev::after{
    transform:rotate(135deg);
  }

  .ns-reviews__nav--next::after{
    transform:rotate(-45deg);
  }

  .ns-reviews__nav--prev{
    grid-column:1;
    grid-row:1;
  }

  .ns-reviews__viewport{
    grid-column:2;
    grid-row:1;
    width:100%;
  }

  .ns-reviews__nav--next{
    grid-column:3;
    grid-row:1;
  }

  .ns-reviews__track{
    align-items:stretch;
    gap:var(--home-review-gap);
    padding:0;
  }

  .ns-review{
    flex:0 0 calc((100% - 20px) / 2);
    min-height:400px;
    padding:
      24px
      28px
      24px;
  }

  .ns-review__stars{
    margin:
      0
      0
      16px;
  }

  .ns-review__body{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:16px;
    min-width:0;
    min-height:0;
    margin:0;
    padding-left:0;
  }

  .ns-review__avatar{
    position:relative;
    left:auto;
    top:auto;
    z-index:2;
    flex:0 0 92px;
    width:92px;
    height:92px;
    margin:0;
    transform:none;
  }

  .ns-review__text{
    flex:0 1 auto;
    width:100%;
    max-width:none;
    margin:0;
    text-align:center;
  }

  .ns-review__txt{
    width:100%;
    margin:0;
    font-size:14.5px;
    line-height:1.80;
    text-align:center;
  }

  .ns-review__sig{
    margin-top:10px;
    font-size:13px;
    letter-spacing:.11em;
    text-align:center;
  }
}

@media (min-width: 1024px){
  .ns-hero{
    min-height:clamp(
      680px,
      calc(100svh - var(--topbar-h)),
      780px
    );
  }

  .ns-hero__frame{
    min-height:inherit;
  }

  .ns-hero__ui{
    min-height:inherit;
    padding:
      clamp(62px, 5vw, 72px)
      var(--home-edge)
      clamp(122px, 8.75vw, 126px);
  }

  .ns-hero__copy{
    width:min(100%, clamp(760px, 54vw, 780px));
    padding:
      clamp(30px, 2.2vw, 32px)
      clamp(52px, 3.9vw, 56px)
      clamp(38px, 2.8vw, 40px);
    transform:translateY(var(--home-hero-copy-shift));
  }

  .ns-hero__copy::after{
    width:min(68vw, 520px);
    margin:
      clamp(10px, .8vw, 11px)
      auto
      clamp(18px, 1.4vw, 20px);
  }

  .ns-hero__logo{
    width:clamp(150px, 12vw, 172px);
    height:clamp(150px, 12vw, 172px);
  }

  .ns-hero__title{
    font-size:clamp(72px, 6.25vw, 90px);
  }

  .ns-hero__lead{
    font-size:clamp(30px, 2.36vw, 34px);
    line-height:1.4;
  }

  .ns-hero__sub{
    font-size:clamp(17px, 1.32vw, 19px);
    font-weight:500;
    line-height:1.8;
  }

  .ns-hero__cta-btn{
    min-width:clamp(280px, 19.7vw, 284px);
    min-height:50px;
    padding:12px clamp(36px, 2.65vw, 38px);
    font-size:16px;
  }

  .ns-home-scroll-bridge{
    height:clamp(46px, 3.5vw, 50px);
  }

  .ns-two{
    margin-top:var(--home-section-gap);
    padding:
      clamp(58px, 5vw, 76px)
      var(--home-edge-wide)
      clamp(108px, 8vw, 142px);
  }

  .ns-two__grid{
    gap:var(--home-card-gap);
  }

  .ns-card{
    min-height:clamp(460px, 36vw, 520px);
  }

  html:lang(ja) .ns-bottomscape{
    margin-top:clamp(22px, 1.8vw, 26px);
  }

  .ns-benefits{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:clamp(22px, 1.67vw, 24px);
    width:calc(100% - clamp(40px, 3vw, 80px));
    max-width:clamp(1240px, 95vw, 1400px);
  }

  .ns-benefit{
    min-height:clamp(292px, 20.8vw, 300px);
    padding:
      clamp(28px, 2.08vw, 30px)
      clamp(26px, 2.08vw, 30px)
      clamp(25px, 1.88vw, 27px);
  }

  .ns-benefit__icon{
    width:clamp(72px, 5.42vw, 78px);
    height:clamp(72px, 5.42vw, 78px);
    margin:
      0
      auto
      clamp(14px, 1.11vw, 16px);
  }

  .ns-benefit__ttl{
    min-height:2.8em;
    padding-bottom:14px;
    font-size:clamp(20px, 1.46vw, 21px);
    line-height:1.38;
    letter-spacing:var(--cg-track-030, .03em);
    white-space:normal;
    background:var(--gold-gradient-text);
    background-size:
      100%
      1lh !important;
    background-position:
      0
      calc(50% - 7px) !important;
    background-repeat:
      no-repeat !important;
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    filter:
      drop-shadow(0 2px 0 rgba(0,0,0,.64))
      drop-shadow(0 11px 22px rgba(0,0,0,.54));
  }

  .ns-benefit__txt{
    margin-top:clamp(14px, 1.05vw, 15px);
    font-size:15px;
    line-height:1.8;
    letter-spacing:.02em;
  }

  .ns-guide{
    width:calc(100% - 32px);
    max-width:1100px;
    margin-top:clamp(56px, 4vw, 58px);
    margin-bottom:clamp(70px, 5vw, 72px);
  }

  .ns-guide__card{
    width:100%;
    height:auto;
    min-height:390px;
  }

  .ns-guide__media{
    width:100%;
    height:100%;
    min-height:0;
  }

  .ns-guide__media img{
    object-position:center 50%;
  }

  .ns-guide__ui{
    height:auto;
    min-height:390px;
    padding:
      clamp(30px, 2.36vw, 34px)
      clamp(40px, 3.2vw, 46px)
      clamp(30px, 2.36vw, 34px)
      clamp(30px, 2.22vw, 32px);
    overflow:visible;
  }

  .ns-guide__eyebrow{
    margin-bottom:clamp(12px, .9vw, 13px);
    font-size:clamp(15px, 1.11vw, 16px);
  }

  .ns-guide__ttl{
    font-size:clamp(29px, 2.15vw, 31px);
    line-height:1.38;
    white-space:normal;
  }

  .ns-guide__ttl::after{
    margin-top:14px;
  }

  .ns-guide__txt{
    align-self:flex-end;
    width:min(100%, clamp(480px, 36vw, 520px));
    max-width:100%;
    margin:
      clamp(19px, 1.4vw, 20px)
      0
      0
      auto;
    font-size:clamp(14px, 1vw, 14.5px);
    line-height:1.88;
    text-align:right;
  }

  .ns-guide__btn{
    min-width:clamp(260px, 18.75vw, 270px);
    min-height:clamp(50px, 3.55vw, 51px);
    margin-top:clamp(25px, 1.88vw, 27px);
    padding:
      clamp(10px, .76vw, 11px)
      clamp(34px, 2.5vw, 36px);
    font-size:clamp(15px, 1.11vw, 16px);
  }

  .ns-reviews{
    display:grid;
    grid-template-columns:
      44px
      minmax(0, 1fr)
      44px;
    align-items:center;
    gap:8px;
    max-width:1320px;
    margin-bottom:30px;
  }

  .ns-reviews__nav{
    position:relative;
    align-self:center;
    justify-self:center;
    display:grid !important;
    place-items:center;
    width:44px;
    height:44px;
    flex:0 0 44px;
    border:1px solid rgba(240,197,111,.50);
    border-radius:0;
    background:
      radial-gradient(
        60px 60px at 50% 30%,
        rgba(240,197,111,.15) 0%,
        rgba(240,197,111,0) 62%
      ),
      rgba(0,0,0,.62);
    box-shadow:
      0 12px 26px rgba(0,0,0,.64),
      inset 0 1px 0 rgba(255,255,255,.11);
    transition:
      border-color .25s ease,
      box-shadow .25s ease,
      transform .25s ease,
      opacity .25s ease;
  }

  .ns-reviews__nav--prev{
    grid-column:1;
    grid-row:1;
  }

  .ns-reviews__viewport{
    grid-column:2;
    grid-row:1;
    width:100%;
  }

  .ns-reviews__nav--next{
    grid-column:3;
    grid-row:1;
  }

  .ns-reviews__nav::after{
    content:"";
    width:17px;
    height:17px;
    background:var(--gold-gradient-text);
    -webkit-mask:no-repeat center/contain;
    mask:no-repeat center/contain;
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M15%2018l-6-6%206-6%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M15%2018l-6-6%206-6%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E");
    filter:
      drop-shadow(0 2px 0 rgba(0,0,0,.50))
      drop-shadow(0 5px 10px rgba(0,0,0,.56));
  }

  .ns-reviews__nav--next::after{
    transform:rotate(180deg);
  }

  .ns-reviews__nav[disabled]{
    opacity:.35;
    cursor:not-allowed;
    transform:none;
    box-shadow:
      0 10px 20px rgba(0,0,0,.38),
      inset 0 1px 0 rgba(255,255,255,.08);
  }

  .ns-review{
    position:relative;
    flex:0 0 calc((100% - var(--home-review-gap)) / 2);
    min-height:clamp(200px, 14.2vw, 204px);
    padding:
      clamp(24px, 1.74vw, 25px)
      clamp(26px, 1.95vw, 28px)
      clamp(22px, 1.6vw, 23px);
  }

  .ns-review__body{
    align-items:center;
    justify-content:center;
    gap:16px;
  }

  .ns-review__avatar{
    flex:0 0 94px;
    width:94px;
    height:94px;
  }

  .ns-review__txt{
    font-size:clamp(14.5px, 1.05vw, 15px);
    line-height:1.72;
  }

  .ns-review__sig{
    font-size:12.5px;
  }
}


/* =========================
   GUIDE — JP + GB / six chapters
   Scoped to .ns-guide-page; existing HOME rules remain unchanged.
   ========================= */
body.ns-guide-page{
  background:#0e0e0e var(--stone-texture) center / var(--stone-size) repeat;
  --guide-width:1400px;
  --guide-space:clamp(72px, 8vw, 128px);
}
.ns-guide-page .gp-section{
  position:relative;
  isolation:isolate;
  width:100vw;
  margin-left:calc(50% - 50vw);
  padding:var(--guide-space) max(24px, calc((100vw - var(--guide-width)) / 2));
  scroll-margin-top:calc(var(--topbar-h) + 20px);
}
.ns-guide-page .gp-section + .gp-section{ margin-top:clamp(120px, 12vw, 220px); }

.ns-guide-page .ns-index-brand-tag--bridge{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:max-content;
  max-width:calc(100% - 40px);
  margin:
    clamp(34px, calc(6vw - 26px), 84px)
    auto
    0;
  gap:16px;
}

.ns-guide-page .ns-index-brand-tag--bridge + .gp-section{
  margin-top:clamp(34px, calc(6vw - 26px), 84px);
}

.ns-guide-page .ns-index-brand-tag--bridge .ns-index-brand-tag__seal{
  display:block;
  flex:0 0 auto;
  width:52px;
  height:52px;
  line-height:0;
  transform:rotate(-2deg);
}

.ns-guide-page .ns-index-brand-tag--bridge .ns-index-brand-tag__seal img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.ns-guide-page .ns-index-brand-tag--bridge .ns-index-brand-tag__text{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:5px;
}

.ns-guide-page .ns-index-brand-tag--bridge .ns-index-brand-tag__name{
  font-family:var(--font-brand);
  font-size:14px;
  font-weight:700;
  line-height:1;
  letter-spacing:.30em;
  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;
}

.ns-guide-page .ns-index-brand-tag--bridge .ns-index-brand-tag__tagline{
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  line-height:1.35;
  letter-spacing:.13em;
  color:rgba(255,255,255,.88);
}

.ns-guide-page .gp-inner{ position:relative; z-index:2; }
.ns-guide-page .gp-title{ font-family:var(--font-display); font-weight:400; line-height:1.38; font-size:clamp(32px, 3.7vw, 54px); margin:0 0 30px; color:var(--gold); }
.ns-guide-page .gp-title-line{ background:var(--gold-gradient-text); background-clip:text; -webkit-background-clip:text; color:transparent; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.ns-guide-page .gp-copy{ max-width:800px; font-size:clamp(16px, 1.25vw, 18px); line-height:2; color:#fff; }
.ns-guide-page .gp-copy p{ margin:0 0 22px; }
.ns-guide-page .gp-photo{ position:absolute; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.ns-guide-page .gp-photo img{ width:100%; height:100%; object-fit:cover; }
.ns-guide-page .gp-number{ position:absolute; right:3%; top:-60px; font-family:"Shippori Mincho", serif; font-size:clamp(100px, 16vw, 230px); line-height:1; color:rgba(240,197,111,.32); pointer-events:none; z-index:0; }
.ns-guide-page :is(.gp-profession,.gp-north,.gp-contact) > .gp-number{ left:3%; right:auto; }
.ns-guide-page .gp-hero{ min-height:760px; min-height:max(710px, calc(100svh - var(--topbar-h))); display:flex; align-items:center; padding-top:100px; padding-bottom:130px; }
.ns-guide-page .gp-hero .gp-photo{ left:36%; mask-image:linear-gradient(90deg, transparent, #000 25%), linear-gradient(#000 76%, transparent); mask-composite:intersect; }
.ns-guide-page .gp-hero .gp-photo img{ object-position:center 24%; }
.ns-guide-page .gp-hero .gp-inner{ width:68%; }
.ns-guide-page .gp-hero h1{ font-size:clamp(42px, 4.8vw, 72px); letter-spacing:.01em; overflow-wrap:anywhere; margin-bottom:22px; }
.ns-guide-page .gp-seal{ width:42px; height:42px; object-fit:contain; display:inline-block; vertical-align:middle; margin-left:16px; }
.ns-guide-page .gp-lead{ font-family:var(--font-display); font-size:clamp(21px, 2vw, 28px); line-height:1.8; margin-bottom:24px; }
.ns-guide-page .gp-hero .ns-guide-audio{ justify-content:flex-start; }
/* Reuse the HOME mouse artwork, dimensions and moveWheel animation from BASE. */
.ns-guide-page .ns-home-scroll-bridge{ position:relative; display:grid; grid-template-columns:minmax(0, 1fr) 32px minmax(0, 1fr); align-items:center; column-gap:clamp(16px, 2.5vw, 24px); margin:40px 0 35px; width:min(620px, 78vw); }
.ns-guide-page .ns-home-scroll-line{ display:block; align-self:start; width:100%; height:1px; transform:translateY(25px); }
.ns-guide-page .ns-home-scroll-line--left{ grid-column:1; }
.ns-guide-page .ns-home-scroll-line--right{ grid-column:3; }
.ns-guide-page .ns-home-scroll-indicator{ position:relative; grid-column:2; text-decoration:none; }
.ns-guide-page .gp-story{ min-height:710px; display:grid; grid-template-columns:.65fr 1.35fr; gap:5%; align-items:center; }
.ns-guide-page .gp-story .gp-photo{ right:60%; mask-image:linear-gradient(90deg,#000 70%,transparent),linear-gradient(transparent,#000 16%,#000 79%,transparent); mask-composite:intersect; }
.ns-guide-page .gp-story .gp-photo img{ width:100%; height:130%; object-fit:cover; object-position:72% center; transform:translateY(-18%); }
.ns-guide-page .gp-story .gp-inner{ grid-column:2; }
.ns-guide-page .gp-path{ display:flex; list-style:none; padding:0; margin:35px 0 0; gap:20px; font-size:13px; color:var(--gold); }
.ns-guide-page .gp-path li{ flex:1; border-top:1px solid var(--gold-soft); padding-top:15px; }
.ns-guide-page .gp-profession{ padding-top:90px; padding-bottom:100px; }
.ns-guide-page .gp-profession .gp-copy{ max-width:1100px; }
.ns-guide-page .gp-facts{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) max-content; gap:24px; margin:48px 0 0; }
.ns-guide-page .gp-facts > div{ min-width:0; border-left:1px solid var(--gold-soft); padding-left:20px; }
.ns-guide-page .gp-facts dt{ display:flex; align-items:center; gap:12px; font-family:var(--font-display); color:var(--gold); font-size:28px; font-weight:400; margin-bottom:12px; }
.ns-guide-page .gp-facts dd{ margin:0; color:#fff; font-size:16px; line-height:1.9; }
.ns-guide-page .gp-facts > div:nth-child(-n+2) dd{ padding-left:42px; font-family:var(--font-display); font-size:28px; font-weight:400; line-height:1.5; }
.ns-guide-page .gp-fact-label{ background:var(--gold-gradient-text); background-clip:text; -webkit-background-clip:text; color:transparent; }
.ns-guide-page .flag--fra::before{ background-image:url("../images/icons/flag-fr.svg"); }
.ns-guide-page .flag--ita::before{ background-image:url("../images/icons/flag-it.svg"); }
.ns-guide-page .gp-fact-icon{ display:inline-block; width:30px; height:30px; flex:none; background:var(--gold-gradient-text); -webkit-mask:var(--gp-icon) center / contain no-repeat; mask:var(--gp-icon) center / contain no-repeat; }
.ns-guide-page .gp-fact-icon--education{ --gp-icon:url("../images/icons/icon-education.svg"); }
.ns-guide-page .gp-fact-icon--profession{ --gp-icon:url("../images/icons/icon-licensed.svg"); }
.ns-guide-page .gp-languages{ display:flex; flex-wrap:wrap; gap:12px 20px; }
.ns-guide-page .gp-languages > span{ white-space:nowrap; display:inline-flex; align-items:center; gap:9px; }
.ns-guide-page .gp-note{ font-size:13px; color:#c2b9a7; line-height:1.7; margin-top:25px; }
.ns-guide-page .gp-approach{ min-height:760px; display:grid; grid-template-columns:.65fr 1.35fr; gap:5%; align-items:center; }
.ns-guide-page .gp-approach .gp-photo{ mask-image:linear-gradient(transparent,#000 15%,#000 82%,transparent); }
.ns-guide-page .gp-approach .gp-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 10%,rgba(0,0,0,.65) 37%,rgba(0,0,0,.9) 62%); }
.ns-guide-page .gp-approach .gp-photo img{ object-position:30% center; }
.ns-guide-page .gp-approach .gp-inner{ grid-column:2; }
/* The North: a quiet editorial chapter on the existing stone background. */
.ns-guide-page .gp-north .gp-inner{ max-width:1400px; margin:auto; display:grid; grid-template-columns:1fr 1.5fr; column-gap:5%; }
.ns-guide-page .gp-north .gp-title{ grid-column:1; }
.ns-guide-page .gp-north .gp-copy{ grid-column:2; grid-row:1 / 3; }
.ns-guide-page .gp-north .gp-camino-mark{ grid-column:1; align-self:end; margin-bottom:22px; }
.ns-guide-page .gp-camino-icon{ display:block; width:84px; height:84px; margin-bottom:24px; background:var(--gold-gradient-text); -webkit-mask:url("../images/icons/icon-scallop.svg") center / contain no-repeat; mask:url("../images/icons/icon-scallop.svg") center / contain no-repeat; }
.ns-guide-page .gp-north .gp-path{ margin-top:0; flex-wrap:wrap; gap:20px 28px; }
.ns-guide-page .gp-north .gp-path li{ flex:0 1 auto; font-family:var(--font-display); font-size:clamp(28px, 2.8vw, 42px); line-height:1.4; background:var(--gold-gradient-text); background-clip:text; -webkit-background-clip:text; color:transparent; }
.ns-guide-page .gp-reviews{ text-align:center; min-height:430px; }
.ns-guide-page .gp-reviews .gp-inner{ max-width:1100px; margin:auto; }
.ns-guide-page .gp-reviews .gp-copy{ max-width:1000px; margin:auto; }
.ns-guide-page .gp-contact{ min-height:720px; display:flex; align-items:center; margin-bottom:0; }
.ns-guide-page .gp-contact .gp-inner{ width:64%; }
.ns-guide-page .gp-contact .gp-photo{ left:43%; mask-image:linear-gradient(90deg,transparent,#000 34%),linear-gradient(180deg,transparent,#000 18%); mask-composite:intersect; }
.ns-guide-page .gp-contact .gp-photo img{ object-position:66% center; }
.ns-guide-page :is(.ns-hero__cta-btn,.ns-home-scroll-indicator):focus-visible{ outline:2px solid var(--gold); outline-offset:5px; }
@media(min-width:901px){
  .ns-guide-page .gp-languages{ flex-wrap:nowrap; gap:12px; }
}

@media(min-width:1024px){
  .ns-guide-page .gp-story{ --story-shift:clamp(48px, 6vw, 120px); }
  .ns-guide-page .gp-story .gp-inner{ transform:translateX(var(--story-shift)); width:calc(100% - var(--story-shift)); }
  .ns-guide-page .gp-story .gp-photo{ left:0; right:calc(60% - var(--story-shift)); }
  .ns-guide-page .gp-hero .gp-title-line{ white-space:nowrap; }
  .ns-guide-page .gp-north .gp-title{ font-size:clamp(30px, 2.65vw, 44px); }
  .ns-guide-page .gp-north .gp-title-line{ white-space:nowrap; }
  .ns-guide-page .gp-north .gp-path{ flex-wrap:nowrap; gap:18px; }
  .ns-guide-page .gp-north .gp-path li{ white-space:nowrap; font-size:clamp(24px, 2.4vw, 36px); }
}
@media(max-width:900px){
  .ns-guide-page .gp-section{ padding-left:32px; padding-right:32px; }
  /* Allow the full text column so the Japanese name fits on tablets. */
  .ns-guide-page .gp-hero .gp-inner{ width:100%; }
  .ns-guide-page .gp-hero h1{
    font-size:clamp(28px, calc((100vw - 130px) / 11), 56px);
    letter-spacing:0;
    overflow-wrap:normal;
    white-space:nowrap;
  }
  .ns-guide-page .gp-hero .gp-title-line{ white-space:nowrap; }
  .ns-guide-page .gp-hero .gp-seal{ margin-left:12px; }
  /* Avoid the inherited HOME button offset on GUIDE at narrow widths. */
  .ns-guide-page .gp-contact .ns-hero__cta-btn{ top:0; }
  /* Equal-length lines and centered mouse, independent of the text. */
  .ns-guide-page .ns-home-scroll-bridge{
    width:min(620px, 100%);
    margin-left:auto;
    margin-right:auto;
  }
  .ns-guide-page .gp-title{ font-size:36px; }
  .ns-guide-page .gp-facts{ grid-template-columns:1fr; gap:28px; }
}
@media(min-width:601px) and (max-width:900px){
  .ns-guide-page .gp-contact .gp-title{
    font-size:clamp(22px, calc((64vw - 80px) / 14), 36px);
    letter-spacing:0;
    white-space:nowrap;
  }
}
@media(max-width:600px){
  .ns-guide-page .gp-section{ padding:65px 24px; }
  .ns-guide-page .gp-hero{ min-height:880px; align-items:flex-end; padding-top:400px; }
  .ns-guide-page .gp-hero .gp-photo{ left:0; bottom:auto; height:530px; mask-image:linear-gradient(#000 52%,transparent); }
  .ns-guide-page .gp-hero .gp-photo img{ object-position:center 16%; }
  .ns-guide-page .gp-hero .gp-inner,.ns-guide-page .gp-contact .gp-inner{ width:100%; }
  /* Fit eleven Japanese characters and the stamp on one line. */
  .ns-guide-page .gp-hero h1{
    font-size:clamp(21px, calc((100vw - 92px) / 11), 42px);
    letter-spacing:0;
    white-space:nowrap;
    overflow-wrap:normal;
  }
  .ns-guide-page .gp-hero .gp-seal{
    width:24px;
    height:24px;
    margin-left:6px;
  }
  .ns-guide-page .gp-title{ font-size:32px; }
  .ns-guide-page .gp-seal{ width:32px; height:32px; }
  .ns-guide-page .gp-copy{ font-size:16px; line-height:1.95; }
  .ns-guide-page .gp-north .gp-inner{ display:block; }
  .ns-guide-page .gp-story,.ns-guide-page .gp-approach{ display:block; padding-top:360px; }
  .ns-guide-page .gp-story .gp-photo{ right:0; height:370px; mask-image:linear-gradient(transparent,#000 10%,#000 65%,transparent); }
  .ns-guide-page .gp-story .gp-photo img{ width:100%; height:125%; object-fit:cover; object-position:75% center; transform:translateY(-16%); }
  .ns-guide-page .gp-approach .gp-photo{ height:360px; mask-image:linear-gradient(transparent,#000 15%,#000 62%,transparent); }
  .ns-guide-page .gp-approach .gp-photo::after{ background:none; }
  .ns-guide-page .gp-approach .gp-photo img{ object-position:17% center; }
  .ns-guide-page .gp-number{ font-size:130px; top:-46px; }
  .ns-guide-page .gp-facts{ grid-template-columns:1fr; gap:28px; }
  .ns-guide-page .gp-path{ gap:12px; font-size:12px; }
  .ns-guide-page .gp-contact{
    padding:380px 16px 65px;
  }
  /* Keep the entire Japanese closing title on one line on phones. */
  .ns-guide-page .gp-contact .gp-title{
    font-size:clamp(17.5px, calc((100vw - 76px) / 14), 32px);
    letter-spacing:0;
    white-space:nowrap;
  }
  .ns-guide-page .gp-contact .gp-title-line{ white-space:nowrap; }
  .ns-guide-page .gp-contact .gp-photo{ left:0; height:auto; bottom:0; mask-image:linear-gradient(transparent,#000 14%); }
  .ns-guide-page .gp-contact .gp-inner{
    background:rgba(14,14,14,.86);
    padding:28px 16px 36px;
    box-sizing:border-box;
  }
  /* Fully inside the panel; the HOME offset must not move it downward. */
  .ns-guide-page .gp-contact .ns-hero__cta-btn{
    top:0;
    display:flex;
    width:fit-content;
    max-width:100%;
    min-width:min(300px, 100%);
    margin:36px auto 0;
    padding:14px clamp(16px, 5vw, 28px);
    white-space:nowrap;
  }
  .ns-guide-page .gp-contact .gp-photo img{ object-position:64% center; }
}
@media(prefers-reduced-motion:reduce){
  html:has(.ns-guide-page){ scroll-behavior:auto; }
}

/* GUIDE — Japanese hero subtitle: keep all 18 glyphs on one line
   without horizontal overflow on narrow mobile screens. */
@media (max-width:600px){
  html:lang(ja) .ns-guide-page .gp-hero .gp-lead{
    font-size:clamp(14px, calc((100vw - 64px) / 18), 21px);
    letter-spacing:0;
    white-space:nowrap;
  }
}

/* GUIDE — English-specific responsive typography. Keep the Japanese
   one-line treatment without squeezing the English wording. */
@media (max-width:600px){
  html:lang(en) .ns-guide-page .gp-hero h1{
    font-size:clamp(34px, 11vw, 54px);
  }
  html:lang(en) .ns-guide-page .gp-contact .gp-title{
    font-size:clamp(29px, 8vw, 40px);
    line-height:1.3;
    white-space:normal;
  }
  html:lang(en) .ns-guide-page .gp-contact .gp-title-line{
    display:block;
    white-space:nowrap;
  }
}
@media (min-width:601px) and (max-width:900px){
  html:lang(en) .ns-guide-page .gp-contact .gp-title{
    font-size:clamp(30px, 4.1vw, 38px);
    white-space:normal;
  }
}


/* GUIDE — Japanese-only mobile/tablet fixes for remaining wrapped lines. */
@media (max-width:900px){
  html:lang(ja) .ns-guide-page .gp-facts > div:nth-child(2) dd{
    font-size:clamp(19px, calc((100vw - 110px) / 11), 28px);
    line-height:1.45;
    white-space:nowrap;
    padding-left:34px;
  }
}
@media (max-width:600px){
  html:lang(ja) .ns-guide-page .gp-approach .gp-title{
    font-size:clamp(18px, calc((100vw - 72px) / 13), 32px);
    letter-spacing:0;
    white-space:nowrap;
  }
  html:lang(ja) .ns-guide-page .gp-approach .gp-title-line{
    white-space:nowrap;
  }
}

/* =========================
   HOME — PEDRO AUDIO / compact player
   ========================= */
.ns-guide-audio{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end;
  gap:14px 16px; width:100%; margin-top:26px;
}
.ns-guide-audio__playback{
  display:flex; align-items:center; justify-content:flex-end;
  gap:12px; min-width:0;
}
.ns-guide-audio__languages{
  display:flex; align-items:center; justify-content:center;
  gap:8px; flex:none;
}
.ns-guide-audio__lang{
  display:grid; place-items:center; width:34px; height:27px; padding:2px;
  border:1px solid rgba(240,197,111,.20); border-radius:6px;
  background:rgba(0,0,0,.34); opacity:.58; cursor:pointer;
  transition:border-color .2s,box-shadow .2s,background .2s,opacity .2s;
}
.ns-guide-audio__lang .flag::before{
  width:28px; height:21px; border-radius:4px;
  box-shadow:none; border:1px solid rgba(255,255,255,.18);
}
.ns-guide-audio__lang[aria-pressed="true"]{
  border-color:rgba(240,197,111,.92); background:rgba(240,197,111,.08);
  box-shadow:0 0 0 2px rgba(240,197,111,.10),0 0 14px rgba(240,197,111,.18);
  opacity:1;
}
.ns-guide-audio__lang:hover{
  border-color:rgba(240,197,111,.62); opacity:1;
}
.ns-guide-audio__control{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:46px; padding:6px 0; border:0; background:transparent;
  color:var(--gold); font-family:var(--font-body); font-size:14px;
  line-height:1.5; cursor:pointer; min-width:0;
}
.ns-guide-audio__symbol{
  display:grid; place-items:center; width:32px; height:32px; flex:none;
  border:1px solid var(--gold); border-radius:50%;
}
.ns-guide-audio__symbol svg{ width:13px; height:13px; fill:currentColor; }
.ns-guide-audio__pause{ display:none; }
.ns-guide-audio[data-playing="true"] .ns-guide-audio__play{ display:none; }
.ns-guide-audio[data-playing="true"] .ns-guide-audio__pause{ display:block; }
.ns-guide-audio__control:hover{ color:#fff4d6; }
.ns-guide-audio__lang:focus-visible,.ns-guide-audio__control:focus-visible,.ns-guide-audio__more:focus-visible,.ns-guide-audio__seek:focus-visible{ outline:2px solid var(--gold); outline-offset:5px; }
.ns-guide-audio__more{
  display:inline-flex; align-items:center; justify-content:center; gap:16px;
  min-height:46px; padding:10px 20px; border:1px solid var(--gold);
  border-radius:3px; background:#000; color:#fff; text-decoration:none;
  font-family:var(--font-display); font-weight:700; font-size:15px; line-height:1.5;
  letter-spacing:.07em; transition:color .2s,background .2s;
}
.ns-guide-audio__more:hover{ color:var(--gold); background:#13110b; }
.ns-guide-audio__player{ display:grid; grid-template-columns:90px 132px; align-items:center; gap:10px; max-width:100%; min-width:0; }
.ns-guide-audio--player .ns-guide-audio__player{ width:260px; flex:none; padding:7px 13px; border:1px solid var(--gold-soft); border-radius:999px; background:rgba(0,0,0,.6); }
.ns-guide-audio--player .ns-guide-audio__control{ width:90px; min-width:90px; min-height:32px; justify-content:flex-start; font-size:13px; padding:0; }
.ns-guide-audio--player .ns-guide-audio__control [data-audio-label]{ display:block; width:50px; min-width:50px; white-space:nowrap; text-align:left; }
.ns-guide-audio__timeline{ display:grid; grid-template-columns:52px 72px; align-items:center; gap:8px; width:132px; }
.ns-guide-audio__seek{ width:52px; accent-color:var(--gold); cursor:pointer; }
.ns-guide-audio__time{ width:72px; color:#e7dcc6; font-size:11px; font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right; }
.ns-guide-audio__status{ flex-basis:100%; margin:0; color:#efdbab; font-size:12px; line-height:1.5; }
.ns-guide-audio__status:empty{ display:none; }
@media(max-width:767px){
  .ns-guide-audio{ flex-direction:column; flex-wrap:nowrap; justify-content:center; gap:13px; }
  .ns-guide-audio__playback{ flex-direction:column; justify-content:center; gap:10px; }
  .ns-guide-audio__languages{ order:1; }
  .ns-guide-audio__player{ order:2; }
  .ns-guide-audio__more{ min-width:220px; }
  .ns-guide-audio__status{ flex-basis:auto; width:100%; text-align:center; }
}
@media(prefers-reduced-motion:reduce){
  .ns-guide-audio__lang,.ns-guide-audio__more{ transition:none; }
}
/* =========================
   HOME: TABLET / PORTRAIT HERO FLOW
   =========================
*/
@media (min-width: 768px) and (max-width: 1023.98px),
       (min-width: 768px) and (orientation: portrait) {
  body.ns-home .ns-hero[data-scroll-hero] {
    margin-bottom: 0 !important;
  }

  body.ns-home .ns-two {
    margin-top: calc(var(--home-section-gap) + var(--space-8));
  }
}
