:root {
  --nj-family-ink:#173f49;
  --nj-family-deep:#0f444c;
  --nj-family-teal:#176f67;
  --nj-family-blue:#2d6f90;
  --nj-family-gold:#f3a637;
  --nj-family-cream:#efe6d7;
  --nj-family-paper:#fffdf8;
  --nj-family-muted:#66777b;
  --nj-family-line:rgba(23,63,73,.14);
  --nj-family-anchor:145px;
}

html { scroll-behavior:smooth; scroll-padding-top:var(--nj-family-anchor); }
body { margin:0; overflow-x:hidden; background:var(--nj-family-paper); color:var(--nj-family-ink); font-family:"DM Sans",Arial,sans-serif; }
.nj-family,.nj-family *,.nj-family-bookbar,.nj-family-bookbar * { box-sizing:border-box; }
.nj-family { padding-bottom:104px; background:var(--nj-family-paper); }
.nj-family-shell { width:min(1180px,calc(100% - 40px)); margin:0 auto; }
.nj-family-anchor { scroll-margin-top:var(--nj-family-anchor); }
.nj-family-eyebrow { margin:0 0 14px; color:var(--nj-family-blue); font-size:12px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.nj-family-display { margin:0; color:var(--nj-family-ink); font-family:"Playfair Display",Georgia,serif; font-size:clamp(42px,5.8vw,76px); font-weight:700; letter-spacing:-.05em; line-height:.98; }
.nj-family-lede { color:var(--nj-family-muted); font-size:clamp(17px,1.7vw,20px); line-height:1.7; }
.nj-family-section { padding:clamp(60px,7vw,92px) 0; }
.nj-family-section--cream { background:var(--nj-family-cream); }
.nj-family-section--deep { background:var(--nj-family-deep); color:#fff; }
.nj-family-section--deep .nj-family-display,.nj-family-section--deep h3 { color:#fff; }
.nj-family-section--deep p { color:rgba(255,255,255,.78); }
.nj-family-section-head { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,6vw,76px); align-items:end; margin-bottom:36px; }
.nj-family-actions { display:flex; flex-wrap:wrap; gap:12px; }
.nj-family-button { display:inline-flex; min-height:52px; align-items:center; justify-content:center; padding:13px 23px; border:2px solid var(--nj-family-deep); border-radius:999px; color:var(--nj-family-deep)!important; font-size:12px; font-weight:800; letter-spacing:.055em; text-align:center; text-decoration:none!important; text-transform:uppercase; transition:transform .2s ease,background-color .2s ease,color .2s ease; }
.nj-family-button:hover,.nj-family-button:focus-visible { background:var(--nj-family-deep); color:#fff!important; transform:translateY(-2px); }
.nj-family-button--gold { border-color:var(--nj-family-gold); background:var(--nj-family-gold); color:var(--nj-family-ink)!important; }
.nj-family-button--gold:hover,.nj-family-button--gold:focus-visible { border-color:#ffc363; background:#ffc363; color:var(--nj-family-ink)!important; }
.nj-family-button--light { border-color:rgba(255,255,255,.75); color:#fff!important; }

.nj-family-hero { position:relative; isolation:isolate; min-height:760px; height:min(91vh,920px); display:flex; align-items:flex-end; overflow:hidden; background:#143f49 url('/images/shutterstock_178957811.jpg') center 42%/cover no-repeat; }
.nj-family-hero::after { position:absolute; inset:0; z-index:1; content:""; background:linear-gradient(90deg,rgba(5,30,38,.92),rgba(5,30,38,.6) 55%,rgba(5,30,38,.2)),linear-gradient(0deg,rgba(5,30,38,.62),transparent 58%); }
.nj-family-hero__content { position:relative; z-index:2; width:100%; padding:0 0 clamp(72px,10vh,118px); }
.nj-family-hero__inner { max-width:900px; }
.nj-family-hero .nj-family-eyebrow { color:#f7c16d; }
.nj-family-hero h1 { max-width:880px; margin:0 0 16px; color:#fff; font-family:"Playfair Display",Georgia,serif; font-size:clamp(58px,8.2vw,112px); font-weight:700; letter-spacing:-.055em; line-height:.9; }
.nj-family-hero__subhead { max-width:760px; margin:0 0 14px; color:rgba(255,255,255,.94); font-size:clamp(20px,2vw,26px); line-height:1.44; }
.nj-family-hero__route { margin:0 0 22px; color:#f6d39d; font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.nj-family-trust { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 28px; padding:0; list-style:none; }
.nj-family-trust li { padding:8px 12px; border:1px solid rgba(255,255,255,.28); border-radius:999px; color:rgba(255,255,255,.93); font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.nj-family-hero__note { margin:12px 0 0; color:rgba(255,255,255,.78); font-size:12px; }

.nj-family-nav { position:sticky; top:70px; z-index:45; border-bottom:1px solid var(--nj-family-line); background:rgba(255,253,248,.95); box-shadow:0 8px 24px rgba(23,63,73,.05); backdrop-filter:blur(16px); }
.nj-family-nav__inner { display:flex; min-height:58px; align-items:center; justify-content:center; gap:4px; overflow-x:auto; scrollbar-width:none; white-space:nowrap; }
.nj-family-nav__inner::-webkit-scrollbar { display:none; }
.nj-family-nav a { flex:0 0 auto; padding:9px 12px; border-radius:999px; color:var(--nj-family-ink)!important; font-size:10px; font-weight:800; letter-spacing:.08em; text-decoration:none!important; text-transform:uppercase; }
.nj-family-nav a:hover,.nj-family-nav a:focus-visible,.nj-family-nav a.is-active { background:rgba(23,111,103,.1); color:var(--nj-family-teal)!important; }

.nj-family-glance { background:var(--nj-family-deep); color:#fff; }
.nj-family-glance__grid { display:grid; grid-template-columns:repeat(5,1fr); }
.nj-family-glance__item { padding:23px 18px; border-right:1px solid rgba(255,255,255,.14); text-align:center; }
.nj-family-glance__item:last-child { border-right:0; }
.nj-family-glance strong,.nj-family-glance span { display:block; }
.nj-family-glance strong { color:#fff; font-size:14px; }
.nj-family-glance span { margin-top:5px; color:rgba(255,255,255,.68); font-size:11px; letter-spacing:.05em; text-transform:uppercase; }

.nj-family-story { display:grid; grid-template-columns:1.04fr .96fr; gap:clamp(36px,7vw,92px); align-items:center; }
.nj-family-story__copy p { font-size:17px; line-height:1.75; }
.nj-family-story__map { margin:0; padding:24px; border:1px solid var(--nj-family-line); border-radius:30px; background:#fff; box-shadow:0 24px 60px rgba(23,63,73,.08); }
.nj-family-story__map img { display:block; width:100%; max-height:620px; object-fit:contain; }
.nj-family-story__map figcaption { margin-top:12px; color:var(--nj-family-muted); font-size:12px; text-align:center; }
.nj-family-highlights { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:32px; }
.nj-family-highlight { padding:24px; border:1px solid var(--nj-family-line); border-radius:24px; background:#fff; box-shadow:0 15px 42px rgba(23,63,73,.06); }
.nj-family-highlight h3 { margin:0 0 8px; color:var(--nj-family-ink); font-family:"Playfair Display",Georgia,serif; font-size:24px; }
.nj-family-highlight p { margin:0; color:var(--nj-family-muted); line-height:1.6; }
.nj-family-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:28px; }
.nj-family-gallery figure { position:relative; min-height:300px; margin:0; overflow:hidden; border-radius:24px; background:var(--nj-family-deep); box-shadow:0 18px 46px rgba(23,63,73,.1); }
.nj-family-gallery img { display:block; width:100%; height:100%; min-height:300px; object-fit:cover; transition:transform .35s ease; }
.nj-family-gallery figure:hover img { transform:scale(1.025); }
.nj-family-gallery figure::after { position:absolute; inset:38% 0 0; content:""; background:linear-gradient(0deg,rgba(7,34,42,.9),transparent); pointer-events:none; }
.nj-family-gallery figcaption { position:absolute; right:18px; bottom:18px; left:18px; z-index:1; color:#fff; }
.nj-family-gallery figcaption strong,.nj-family-gallery figcaption span { display:block; }
.nj-family-gallery figcaption strong { font-family:"Playfair Display",Georgia,serif; font-size:25px; }
.nj-family-gallery figcaption span { margin-top:5px; color:rgba(255,255,255,.78); font-size:11px; line-height:1.45; }

.nj-family-itinerary { display:grid; gap:16px; }
.nj-family-day { overflow:hidden; border:1px solid rgba(23,63,73,.14); border-radius:26px; background:#fff; box-shadow:0 16px 42px rgba(23,63,73,.06); }
.nj-family-day summary { display:grid; grid-template-columns:72px 1fr auto; gap:18px; align-items:center; padding:23px 26px; cursor:pointer; list-style:none; }
.nj-family-day summary::-webkit-details-marker { display:none; }
.nj-family-day__number { display:inline-flex; width:58px; height:58px; align-items:center; justify-content:center; border-radius:50%; background:var(--nj-family-deep); color:#fff; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.nj-family-day__heading strong { display:block; color:var(--nj-family-ink); font-family:"Playfair Display",Georgia,serif; font-size:clamp(24px,3vw,35px); letter-spacing:-.035em; line-height:1.08; }
.nj-family-day__heading span { display:block; margin-top:6px; color:var(--nj-family-blue); font-size:11px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.nj-family-day__toggle { color:var(--nj-family-blue); font-size:22px; transition:transform .2s ease; }
.nj-family-day[open] .nj-family-day__toggle { transform:rotate(45deg); }
.nj-family-day__content { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.42fr); gap:28px; padding:0 26px 28px 116px; }
.nj-family-day__content p,.nj-family-day__content li { color:#41595e; line-height:1.68; }
.nj-family-day__content ul { margin:0; padding-left:20px; }
.nj-family-day__included { padding:20px; border-radius:20px; background:#f3eee4; }
.nj-family-day__included strong { display:block; margin-bottom:8px; color:var(--nj-family-ink); font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.nj-family-day__included p { margin:0; font-size:14px; }

.nj-family-collections { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.nj-family-collection { position:relative; display:block; min-height:250px; padding:28px; border:2px solid transparent; border-radius:28px; background:#fff; box-shadow:0 18px 46px rgba(23,63,73,.08); cursor:pointer; }
.nj-family-collection:has(input:checked) { border-color:var(--nj-family-gold); background:linear-gradient(180deg,#fff8eb,#fff); }
.nj-family-collection input { position:absolute; width:1px; height:1px; opacity:0; }
.nj-family-collection__check { position:absolute; top:20px; right:20px; width:22px; height:22px; border:2px solid rgba(23,63,73,.35); border-radius:50%; }
.nj-family-collection input:checked + .nj-family-collection__check { border-color:var(--nj-family-gold); box-shadow:inset 0 0 0 5px #fff; background:var(--nj-family-gold); }
.nj-family-collection__label { display:inline-block; margin:0 0 18px; color:var(--nj-family-blue); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.nj-family-collection h3 { margin:0 0 10px; color:var(--nj-family-ink); font-family:"Playfair Display",Georgia,serif; font-size:30px; }
.nj-family-collection p { margin:0; color:var(--nj-family-muted); line-height:1.62; }
.nj-family-collection__price { display:flex; align-items:baseline; gap:7px; margin:0 0 14px; color:var(--nj-family-ink); }
.nj-family-collection__price strong { font-family:"Playfair Display",Georgia,serif; font-size:27px; }
.nj-family-collection__price span { color:var(--nj-family-muted); font-size:12px; }
.nj-family-hotel-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:30px; }
.nj-family-hotel { padding:22px; border:1px solid rgba(255,255,255,.18); border-radius:22px; background:rgba(255,255,255,.06); }
.nj-family-hotel h3 { margin:0 0 8px; font-family:"Playfair Display",Georgia,serif; font-size:25px; }
.nj-family-hotel p { margin:0; line-height:1.62; }
.nj-family-hotel-note { margin:24px 0 0; padding:18px 20px; border-left:3px solid var(--nj-family-gold); background:rgba(255,255,255,.07); color:rgba(255,255,255,.82)!important; line-height:1.65; }

.nj-family-years { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.nj-family-year { padding:30px; border:1px solid var(--nj-family-line); border-radius:28px; background:#fff; box-shadow:0 18px 48px rgba(23,63,73,.07); }
.nj-family-year__year { margin:0 0 8px; color:var(--nj-family-blue); font-size:12px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.nj-family-year h3 { margin:0 0 12px; color:var(--nj-family-ink); font-family:"Playfair Display",Georgia,serif; font-size:36px; }
.nj-family-year p { color:var(--nj-family-muted); line-height:1.65; }
.nj-family-year__prices { display:grid; gap:8px; margin:0 0 18px; padding:15px 16px; border-radius:18px; background:#f7f3ec; color:var(--nj-family-ink); }
.nj-family-year__prices span { display:flex; justify-content:space-between; gap:16px; font-size:13px; }
.nj-family-year__prices strong { white-space:nowrap; }
.nj-family-year__status { display:inline-flex; margin:0 0 20px; padding:7px 10px; border-radius:999px; background:#f3eee4; color:var(--nj-family-ink); font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.nj-family-price-note { margin-top:24px; padding:18px 20px; border:1px solid rgba(45,111,144,.24); border-radius:20px; background:#eef5f5; color:#37545a; line-height:1.65; }

.nj-family-inclusions { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.nj-family-inclusion { padding:25px; border:1px solid var(--nj-family-line); border-radius:24px; background:#fff; }
.nj-family-inclusion h3 { margin:0 0 9px; color:var(--nj-family-ink); font-family:"Playfair Display",Georgia,serif; font-size:25px; }
.nj-family-inclusion p { margin:0; color:var(--nj-family-muted); line-height:1.65; }
.nj-family-extension { padding:34px; border-radius:30px; background:linear-gradient(135deg,#174d55,#0f343c); color:#fff; box-shadow:0 22px 58px rgba(15,68,76,.2); }
.nj-family-extension h3 { margin:0 0 12px; color:#fff; font-family:"Playfair Display",Georgia,serif; font-size:clamp(32px,4vw,48px); }
.nj-family-extension p { color:rgba(255,255,255,.8); line-height:1.68; }

.nj-family-faq { display:grid; gap:12px; }
.nj-family-faq details { border:1px solid var(--nj-family-line); border-radius:18px; background:#fff; }
.nj-family-faq summary { padding:19px 22px; color:var(--nj-family-ink); cursor:pointer; font-weight:800; }
.nj-family-faq details p { margin:0; padding:0 22px 22px; color:var(--nj-family-muted); line-height:1.65; }
.nj-family-final { padding:clamp(68px,8vw,108px) 0; background:var(--nj-family-deep); color:#fff; text-align:center; }
.nj-family-final h2 { max-width:900px; margin:0 auto 18px; color:#fff; font-family:"Playfair Display",Georgia,serif; font-size:clamp(44px,6vw,78px); letter-spacing:-.05em; line-height:.98; }
.nj-family-final p { max-width:720px; margin:0 auto 26px; color:rgba(255,255,255,.78); font-size:18px; line-height:1.7; }
.nj-family-final .nj-family-actions { justify-content:center; }

.nj-family-bookbar { position:fixed; right:0; bottom:0; left:0; z-index:80; display:flex; min-height:76px; align-items:center; justify-content:space-between; gap:20px; padding:11px max(24px,calc((100vw - 1180px)/2)); border-top:1px solid rgba(255,255,255,.16); background:rgba(15,68,76,.97); box-shadow:0 -14px 36px rgba(0,0,0,.16); color:#fff; }
.nj-family-bookbar__facts { display:flex; align-items:center; gap:11px; font-size:12px; letter-spacing:.06em; text-transform:uppercase; }
.nj-family-bookbar .nj-family-actions { flex-wrap:nowrap; }
.nj-family-bookbar .nj-family-button { min-height:46px; padding:10px 18px; }
.nj-family-bookbar__mobile { display:none; }

@media (max-width:900px) {
  .nj-family-section-head,.nj-family-story { grid-template-columns:1fr; }
  .nj-family-highlights,.nj-family-collections { grid-template-columns:1fr; }
  .nj-family-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nj-family-glance__grid { grid-template-columns:repeat(2,1fr); }
  .nj-family-glance__item { border-bottom:1px solid rgba(255,255,255,.12); }
  .nj-family-glance__item:last-child { grid-column:1/-1; }
  .nj-family-day__content { grid-template-columns:1fr; padding-left:116px; }
  .nj-family-bookbar__facts { display:none; }
  .nj-family-bookbar { justify-content:center; }
}

@media (max-width:650px) {
  :root { --nj-family-anchor:124px; }
  .nj-family { padding-bottom:82px; }
  .nj-family-shell { width:min(100% - 28px,1180px); }
  .nj-family-hero { min-height:700px; height:88vh; background-position:49% center; }
  .nj-family-hero__content { padding-bottom:56px; }
  .nj-family-hero h1 { font-size:clamp(48px,15vw,72px); }
  .nj-family-hero__subhead { font-size:18px; }
  .nj-family-hero__route { font-size:11px; line-height:1.5; }
  .nj-family-hero .nj-family-button { width:100%; }
  .nj-family-nav { top:62px; }
  .nj-family-nav__inner { justify-content:flex-start; }
  .nj-family-glance__grid { grid-template-columns:1fr 1fr; }
  .nj-family-glance__item { padding:18px 10px; }
  .nj-family-story__map { padding:14px; }
  .nj-family-gallery { grid-template-columns:1fr; }
  .nj-family-gallery figure,.nj-family-gallery img { min-height:260px; }
  .nj-family-day summary { grid-template-columns:52px 1fr auto; gap:12px; padding:18px 16px; }
  .nj-family-day__number { width:48px; height:48px; font-size:10px; }
  .nj-family-day__heading strong { font-size:23px; }
  .nj-family-day__content { grid-template-columns:1fr; padding:0 16px 22px; }
  .nj-family-years,.nj-family-hotel-grid,.nj-family-inclusions { grid-template-columns:1fr; }
  .nj-family-section { padding:52px 0; }
  .nj-family-bookbar { min-height:68px; padding:8px 12px; }
  .nj-family-bookbar__desktop { display:none; }
  .nj-family-bookbar__mobile { display:flex; width:100%; }
  .nj-family-bookbar__mobile .nj-family-button { flex:1 1 50%; padding:9px 10px; font-size:10px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .nj-family-button,.nj-family-day__toggle,.nj-family-gallery img { transition:none; }
}
