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

html { scroll-behavior:smooth; scroll-padding-top:var(--nj-anchor-clearance); }
body { margin:0; background:var(--nj-paper); color:var(--nj-ink); font-family:"DM Sans",Arial,sans-serif; }
.nj-tour,.nj-tour * { box-sizing:border-box; }
.nj-tour { padding-bottom:104px; }
.nj-shell { width:min(1180px,calc(100% - 40px)); margin:0 auto; }
.nj-page-anchor { scroll-margin-top:var(--nj-anchor-clearance); }
.nj-eyebrow { margin:0 0 14px; color:var(--nj-blue); font-size:12px; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.nj-display { margin:0; color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:clamp(45px,6.6vw,88px); font-weight:700; letter-spacing:-.05em; line-height:.96; }
.nj-lede { color:var(--nj-muted); font-size:clamp(17px,1.7vw,20px); line-height:1.72; }
.nj-button { display:inline-flex; min-height:54px; align-items:center; justify-content:center; padding:14px 24px; border:2px solid var(--nj-deep); border-radius:999px; background:transparent; color:var(--nj-deep)!important; font-size:13px; font-weight:700; 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-button--gold { border-color:var(--nj-gold); background:var(--nj-gold); color:#173f49!important; }
.nj-button--light { border-color:rgba(255,255,255,.78); color:#fff!important; }
.nj-button:hover,.nj-button:focus { background:var(--nj-deep); color:#fff!important; transform:translateY(-2px); }
.nj-button--gold:hover,.nj-button--gold:focus { border-color:#ffc363; background:#ffc363; color:#173f49!important; }
.nj-button:focus-visible,.nj-small-link:focus-visible { outline:3px solid #ffbf47; outline-offset:3px; }
.nj-actions { display:flex; flex-wrap:wrap; gap:13px; }
.nj-small-link { display:inline-flex; min-height:44px; align-items:center; color:var(--nj-blue)!important; font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:4px; }

/* Current IGC12 hero architecture, adapted for the private 7-day Journey. */
.nj-hero { position:relative; isolation:isolate; display:flex; min-height:800px; height:min(94vh,960px); align-items:flex-end; overflow:hidden; background:#143f49 url('/images/igc12-hero-florence-warm-desktop.jpg') center/cover no-repeat; }
.nj-hero::after { position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(5,30,38,.92),rgba(5,30,38,.62) 54%,rgba(5,30,38,.2)),linear-gradient(0deg,rgba(5,30,38,.62),transparent 58%); content:""; }
.nj-hero__content { position:relative; z-index:2; width:100%; padding:0 0 clamp(58px,8vh,96px); }
.nj-hero__inner { max-width:920px; }
.nj-hero .nj-eyebrow { margin-top:44px; color:#f7c16d; }
.nj-hero h1 { margin:0 0 15px; color:#fff; font-family:"Playfair Display",Georgia,serif; font-size:clamp(62px,8.2vw,116px); font-weight:700; letter-spacing:-.055em; line-height:.9; }
.nj-hero__subhead { max-width:720px; margin:0 0 10px; color:rgba(255,255,255,.92); font-size:clamp(19px,2.1vw,25px); line-height:1.5; }
.nj-hero__route { margin:0 0 20px; color:rgba(255,255,255,.9); font-size:16px; font-weight:600; line-height:1.55; }
.nj-hero__actions { margin-top:24px; }
.nj-hero__proof { display:inline-flex; max-width:820px; gap:10px; margin-top:26px; padding-top:18px; border-top:1px solid rgba(255,255,255,.25); color:rgba(255,255,255,.84)!important; font-family:"Playfair Display",Georgia,serif; font-size:16px; line-height:1.5; text-decoration:none!important; }
.nj-hero__proof-star { color:#f7c16d; font-family:Arial,sans-serif; }

.nj-anchorbar { position:sticky; top:var(--nj-page-nav-top); z-index:40; background:rgba(255,253,248,.97); border-bottom:1px solid var(--nj-line); backdrop-filter:blur(16px); }
.nj-anchorbar__inner { display:flex; min-height:var(--nj-page-nav-height); align-items:center; justify-content:center; gap:24px; overflow-x:auto; overflow-y:hidden; overscroll-behavior-inline:contain; scrollbar-width:none; white-space:nowrap; -webkit-overflow-scrolling:touch; }
.nj-anchorbar__inner::-webkit-scrollbar { display:none; }
.nj-anchorbar__link { position:relative; display:inline-flex; min-width:44px; min-height:44px; flex:0 0 auto; align-items:center; justify-content:center; color:var(--nj-deep)!important; font-size:12px; font-weight:700; letter-spacing:.08em; text-decoration:none!important; text-transform:uppercase; }
.nj-anchorbar__link::after { position:absolute; right:0; bottom:5px; left:0; height:2px; background:var(--nj-gold); content:""; opacity:0; transform:scaleX(.25); transition:opacity .2s ease,transform .2s ease; }
.nj-anchorbar__link:hover::after,.nj-anchorbar__link:focus::after,.nj-anchorbar__link.is-current::after { opacity:1; transform:scaleX(1); }

.nj-section { padding:clamp(76px,9vw,118px) 0; }
.nj-section--paper { background:var(--nj-paper); }
.nj-section--cream { background:var(--nj-cream); }
.nj-section--deep { background:var(--nj-deep); color:#fff; }
.nj-section--deep .nj-display,.nj-section--deep h2,.nj-section--deep h3 { color:#fff; }
.nj-section--deep .nj-lede,.nj-section--deep p { color:rgba(255,255,255,.82); }
.nj-section-head { display:grid; grid-template-columns:minmax(0,.95fr) minmax(320px,.75fr); gap:clamp(36px,6vw,88px); align-items:end; margin-bottom:clamp(38px,6vw,72px); }
.nj-section-head .nj-lede { margin:0; }
.nj-editorial { max-width:900px; }
.nj-editorial .nj-lede { max-width:72ch; margin:20px 0 0; }
.nj-signature-statement { margin:34px 0 0; color:var(--nj-deep); font-size:16px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }

.nj-personal-benefits,.nj-difference-grid,.nj-review-grid,.nj-practical-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.nj-personal-benefits article,.nj-difference-grid article,.nj-review-card,.nj-practical-card { padding:clamp(25px,3.5vw,36px); border:1px solid rgba(23,63,73,.1); border-radius:26px; background:#fff; box-shadow:0 18px 45px rgba(23,63,73,.07); }
.nj-personal-benefits h3,.nj-difference-grid h3,.nj-practical-card h3 { margin:0 0 10px; color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:clamp(26px,2.6vw,36px); letter-spacing:-.04em; line-height:1.05; }
.nj-personal-benefits p,.nj-difference-grid p,.nj-review-card p,.nj-practical-card p { margin:0; color:var(--nj-muted); line-height:1.7; }
.nj-review-card cite { display:block; margin-top:16px; color:var(--nj-ink); font-style:normal; font-weight:700; }
.nj-trust-proof { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:24px; }
.nj-trust-proof > div { padding:clamp(30px,4vw,48px); border-radius:28px; }
.nj-trust-proof__quote { background:var(--nj-deep); color:#fff; }
.nj-trust-proof__quote blockquote { margin:0; color:#fff; font-family:"Playfair Display",Georgia,serif; font-size:clamp(28px,3vw,42px); line-height:1.22; }
.nj-trust-proof__quote cite { display:block; margin-top:18px; color:rgba(255,255,255,.75); font-style:normal; }
.nj-trust-proof__copy { background:#fff; }
.nj-trust-proof__copy h2 { margin:0 0 14px; font-family:"Playfair Display",Georgia,serif; font-size:clamp(34px,4vw,52px); letter-spacing:-.045em; line-height:1; }

/* Now Journey Atlas */
.nj-journey-map { overflow:hidden; background:#f2ece1; color:var(--nj-ink); }
.nj-journey-map__inner { width:min(1180px,calc(100% - 40px)); margin:0 auto; padding:clamp(70px,8vw,104px) 0; }
.nj-journey-map__header { max-width:880px; margin:0 auto 22px; text-align:center; }
.nj-journey-map__eyebrow { margin:0 0 8px; color:var(--nj-blue); font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.nj-journey-map__title { margin:0; color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:clamp(42px,5vw,68px); font-weight:700; letter-spacing:-.05em; line-height:.98; }
.nj-journey-map__lede { margin:12px 0 0; color:var(--nj-muted); font-size:16px; line-height:1.55; }
.nj-journey-map__price-preview { width:max-content; max-width:100%; margin:18px auto 26px; padding:12px 18px; border:1px solid rgba(23,63,73,.12); border-radius:16px; background:rgba(255,253,248,.72); text-align:center; }
.nj-journey-map__price-preview p { margin:0; color:var(--nj-ink); font-size:13px; line-height:1.55; }
.nj-journey-map__price-preview a { color:var(--nj-blue); font-weight:700; }
.nj-journey-map__stage { position:relative; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr); min-height:640px; overflow:hidden; border:1px solid rgba(23,63,73,.13); border-radius:30px; background:radial-gradient(circle at 45% 30%,rgba(236,242,239,.94),rgba(207,222,221,.9) 48%,rgba(185,206,207,.95)); box-shadow:0 28px 70px rgba(23,63,73,.14); }
.nj-journey-map__atlas-art { position:relative; min-height:640px; overflow:hidden; }
.nj-journey-map__atlas-plate,.nj-journey-map__atlas-overlay { position:absolute; inset:0; display:block; width:100%; height:100%; }
.nj-journey-map__atlas-plate { object-fit:cover; object-position:center; opacity:.9; filter:saturate(.86) contrast(.94); }
.nj-journey-map__atlas-overlay { z-index:2; }
.nj-atlas-plate__place { fill:#173f49; font-family:"Playfair Display",Georgia,serif; font-size:26px; font-weight:700; }
.nj-atlas-plate__region { fill:#5b7478; font-family:"DM Sans",Arial,sans-serif; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.nj-atlas-plate__route-shadow { fill:none; stroke:#173f49; stroke-width:13; stroke-linecap:round; opacity:.15; }
.nj-atlas-plate__route { fill:none; stroke:#9f7338; stroke-width:6; stroke-linecap:round; stroke-linejoin:round; }
.nj-atlas-plate__marker { transition:opacity .25s ease,transform .25s ease; transform-box:fill-box; transform-origin:center; }
.nj-atlas-plate__marker-ring { fill:rgba(255,253,248,.75); stroke:#9f7338; stroke-width:3; }
.nj-atlas-plate__marker-halo { fill:#efe6d7; stroke:#9f7338; stroke-width:2; }
.nj-atlas-plate__marker-core { fill:#9f7338; }
.nj-atlas-plate__marker.is-active { transform:scale(1.25); }
.nj-atlas-plate__marker.is-active .nj-atlas-plate__marker-ring { fill:#f3a637; stroke:#173f49; }
.nj-atlas-plate__traveler { transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.nj-atlas-plate__traveler-ring { fill:#173f49; stroke:#f1dfbd; stroke-width:4; }
.nj-atlas-plate__traveler-core { fill:#f1dfbd; }
.nj-journey-map__rail { display:flex; min-width:0; flex-direction:column; justify-content:center; padding:36px 30px; border-left:1px solid rgba(23,63,73,.12); background:rgba(255,253,248,.83); backdrop-filter:blur(7px); }
.nj-journey-map__scroll-cue { margin:0 0 14px; color:var(--nj-muted); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.nj-journey-map__stops { display:grid; max-height:520px; gap:14px; margin:0; padding:0 6px 0 0; overflow-y:auto; scroll-snap-type:y mandatory; list-style:none; }
.nj-journey-map__stop { scroll-snap-align:start; }
.nj-journey-map__label { display:grid; grid-template-columns:42px minmax(0,1fr); gap:14px; padding:21px; border:1px solid rgba(23,63,73,.12); border-radius:22px; background:rgba(255,255,255,.82); opacity:.7; transition:opacity .2s ease,transform .2s ease,border-color .2s ease; }
.nj-journey-map__stop.is-active .nj-journey-map__label { border-color:rgba(159,115,56,.48); opacity:1; transform:translateX(-4px); box-shadow:0 14px 32px rgba(23,63,73,.09); }
.nj-journey-map__number { display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center; border:1px solid #9f7338; border-radius:50%; color:#765027; font-size:11px; font-weight:800; }
.nj-journey-map__name { display:block; color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:26px; line-height:1; }
.nj-journey-map__meta { display:block; margin-top:6px; color:var(--nj-blue); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.nj-journey-map__story-title { display:block; margin-top:12px; color:var(--nj-ink); font-size:14px; font-weight:800; }
.nj-journey-map__sentence { display:block; margin-top:5px; color:var(--nj-muted); font-size:13px; line-height:1.55; }
.nj-journey-map__mobile-route { display:none; }
.nj-journey-map__footer { display:flex; align-items:center; justify-content:center; gap:22px; margin-top:20px; text-align:center; }
.nj-journey-map__summary { margin:0; color:var(--nj-ink); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }

/* Complete itinerary */
.nj-complete-transition { padding:clamp(58px,7vw,88px) 0; border-top:1px solid var(--nj-line); border-bottom:1px solid var(--nj-line); background:linear-gradient(135deg,#fffdf8,#f5ecdf); }
.nj-complete-transition__inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:38px; align-items:center; }
.nj-complete-transition .nj-display { font-size:clamp(42px,5.4vw,72px); }
.nj-complete-transition .nj-lede { max-width:760px; margin:18px 0 0; }
.nj-itinerary-tools { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; }
.nj-itinerary-tool { display:inline-flex; min-height:48px; align-items:center; gap:10px; padding:4px 9px 4px 4px; border:0; border-radius:999px; background:transparent; color:var(--nj-deep); font:700 12px/1 "DM Sans",Arial,sans-serif; letter-spacing:.07em; text-transform:uppercase; cursor:pointer; }
.nj-itinerary-tool__circle { display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center; border-radius:50%; background:var(--nj-gold); color:var(--nj-ink); font-size:23px; font-weight:400; line-height:1; box-shadow:0 7px 18px rgba(214,139,42,.24); }
.nj-itinerary-tool:hover .nj-itinerary-tool__circle,.nj-itinerary-tool:focus .nj-itinerary-tool__circle { background:#ffc363; }
.nj-itinerary-tool[aria-pressed="true"] { background:rgba(243,166,55,.13); }
.nj-itinerary-tool:disabled { opacity:.58; cursor:default; }
.nj-itinerary-tools__status { flex-basis:100%; margin:0; color:var(--nj-muted); font-size:11px; font-weight:700; letter-spacing:.06em; line-height:1.4; text-align:right; text-transform:uppercase; }
.nj-itinerary-chapter { background:var(--nj-paper); }
.nj-itinerary-cover { position:relative; isolation:isolate; display:flex; min-height:clamp(560px,60vw,760px); align-items:flex-end; overflow:hidden; background:var(--nj-deep); }
.nj-itinerary-cover::after { position:absolute; inset:0; z-index:1; background:linear-gradient(0deg,rgba(5,30,38,.92),rgba(5,30,38,.18) 64%); content:""; }
.nj-itinerary-cover__image { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; }
.nj-itinerary-cover__inner { position:relative; z-index:2; padding:clamp(70px,10vw,112px) 0; color:#fff; }
.nj-itinerary-cover .nj-eyebrow { margin-bottom:7px; color:#f7c16d; }
.nj-itinerary-cover__days { margin:0 0 22px; color:rgba(255,255,255,.8); font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.nj-itinerary-cover h2 { max-width:980px; margin:0 0 20px; color:#fff; font-family:"Playfair Display",Georgia,serif; font-size:clamp(60px,8vw,110px); letter-spacing:-.06em; line-height:.9; }
.nj-itinerary-cover__lede { max-width:720px; margin:0; color:rgba(255,255,255,.92); font-size:clamp(19px,2vw,25px); line-height:1.62; }
.nj-itinerary-chapter__toggle { position:absolute; right:max(20px,calc((100% - 1180px)/2)); bottom:24px; z-index:3; display:inline-flex; min-height:48px; align-items:center; gap:11px; padding:4px 6px 4px 16px; border:1px solid rgba(255,255,255,.5); border-radius:999px; background:rgba(5,30,38,.78); color:#fff; font:700 11px/1.2 "DM Sans",Arial,sans-serif; letter-spacing:.07em; text-transform:uppercase; cursor:pointer; backdrop-filter:blur(8px); }
.nj-itinerary-chapter__toggle-icon { display:inline-flex; width:38px; height:38px; align-items:center; justify-content:center; border-radius:50%; background:var(--nj-gold); color:var(--nj-ink); font-size:22px; line-height:1; }
.nj-itinerary-chapter__toggle-icon::before { content:"−"; }
.nj-itinerary-chapter.is-collapsed .nj-itinerary-chapter__toggle-icon::before { content:"+"; }
.nj-itinerary-chapter.is-collapsed .nj-itinerary-cover { min-height:240px; }
.nj-itinerary-chapter.is-collapsed .nj-itinerary-cover__inner { padding:42px 0 76px; }
.nj-itinerary-chapter.is-collapsed .nj-itinerary-cover h2 { margin-bottom:0; font-size:clamp(48px,6vw,74px); }
.nj-itinerary-chapter.is-collapsed .nj-itinerary-cover__lede { display:none; }
.nj-itinerary-chapter.is-collapsed .nj-itinerary-body { display:none; }
.nj-itinerary-body { padding:clamp(80px,10vw,130px) 0; }
.nj-itinerary-chapter--cream .nj-itinerary-body { background:var(--nj-cream); }
.nj-itinerary-layout { display:grid; grid-template-columns:minmax(260px,.76fr) minmax(0,1.24fr); gap:clamp(42px,6vw,72px); align-items:start; }
.nj-itinerary-intro h3 { margin:0 0 20px; color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:clamp(38px,4.2vw,60px); letter-spacing:-.05em; line-height:.98; }
.nj-itinerary-intro p { margin:0; color:var(--nj-muted); font-size:18px; line-height:1.75; }
.nj-itinerary-days { display:grid; gap:22px; }
.nj-itinerary-day { overflow:hidden; border:1px solid rgba(23,63,73,.11); border-radius:30px; background:rgba(255,255,255,.94); box-shadow:0 18px 45px rgba(23,63,73,.07); }
.nj-itinerary-day__heading { display:flex; width:100%; align-items:center; padding:clamp(24px,3.5vw,36px); color:var(--nj-ink); }
.nj-itinerary-day__kicker { display:block; margin:0 0 8px; color:var(--nj-blue); font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.nj-itinerary-day__title { display:block; color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:clamp(30px,3.2vw,44px); font-weight:700; letter-spacing:-.045em; line-height:1; }
.nj-itinerary-day__content { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.72fr); gap:28px; padding:0 clamp(24px,3.5vw,36px) clamp(26px,4vw,38px); }
.nj-itinerary-day__main > p { margin:0 0 16px; color:var(--nj-muted); font-size:17px; line-height:1.72; }
.nj-itinerary-day__main > p:last-child { margin-bottom:0; }
.nj-itinerary-aside { display:grid; align-content:start; gap:14px; }
.nj-itinerary-included { padding:22px 24px; border:1px solid rgba(23,63,73,.12); border-radius:22px; background:rgba(15,68,76,.07); }
.nj-itinerary-included--optional { border-color:rgba(214,139,42,.32); background:rgba(214,139,42,.08); }
.nj-itinerary-included__label { margin:0 0 13px; color:var(--nj-ink); font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.nj-itinerary-included ul { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.nj-itinerary-included li { display:grid; grid-template-columns:8px minmax(0,1fr); gap:10px; color:var(--nj-ink); font-size:15px; line-height:1.5; }
.nj-itinerary-included li::before { width:7px; height:7px; margin-top:.55em; border-radius:50%; background:var(--nj-gold); content:""; }
.nj-itinerary-hotel-panel { margin-top:18px; }
.nj-itinerary-hotel-panel__feature { display:grid; grid-template-columns:120px minmax(0,1fr); overflow:hidden; border:1px solid rgba(23,63,73,.13); border-radius:18px; background:#fffdf9; }
.nj-itinerary-hotel-panel__image { display:block; width:100%; height:100%; min-height:138px; object-fit:cover; }
.nj-itinerary-hotel-panel__content { padding:18px; }
.nj-itinerary-hotel-panel__nights { margin:0 0 7px; color:var(--nj-blue); font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.nj-itinerary-hotel-panel__title { margin:0 0 8px; color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:23px; line-height:1.05; }
.nj-itinerary-hotel-panel__description { margin:0; color:var(--nj-muted); font-size:13px; line-height:1.55; }
.nj-itinerary-signature { margin:24px 0 0; padding:25px; border-radius:22px; background:var(--nj-deep); color:#fff; }
.nj-itinerary-signature .nj-eyebrow { color:#f7c16d; }
.nj-itinerary-signature h3 { margin:0 0 10px; color:#fff; font-family:"Playfair Display",Georgia,serif; font-size:30px; }
.nj-itinerary-signature p { margin:0; color:rgba(255,255,255,.85); line-height:1.65; }
.nj-guide-trigger { display:inline-flex; width:auto; max-width:100%; min-height:44px; align-items:center; justify-content:flex-start; margin-top:12px; padding:0; border:0; border-bottom:1px solid currentColor; background:transparent; color:var(--nj-blue); font-weight:700; line-height:1.45; overflow-wrap:anywhere; text-align:left; white-space:normal; cursor:pointer; }
.nj-itinerary-next { padding:34px 20px; border-top:1px solid var(--nj-line); border-bottom:1px solid var(--nj-line); background:#fffdf8; color:var(--nj-muted); text-align:center; }
.nj-itinerary-next p { margin:0; line-height:1.65; }
.nj-itinerary-next .nj-eyebrow { margin-bottom:6px; }

/* Hotel Collections */
.nj-classic-collection { margin-bottom:20px; padding:30px; border:1px solid rgba(23,63,73,.13); border-radius:24px; background:rgba(255,255,255,.58); }
.nj-classic-collection h3 { margin:0 0 8px; font-family:"Playfair Display",Georgia,serif; font-size:34px; }
.nj-classic-collection p { max-width:75ch; margin:0; color:var(--nj-muted); line-height:1.7; }
.nj-collection-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.nj-collection-card { overflow:hidden; border:1px solid rgba(23,63,73,.13); border-radius:28px; background:#fff; box-shadow:0 20px 50px rgba(23,63,73,.09); }
.nj-collection-card figure { aspect-ratio:16/9; margin:0; overflow:hidden; }
.nj-collection-card img { display:block; width:100%; height:100%; object-fit:cover; }
.nj-collection-card__copy { padding:30px; }
.nj-collection-card h3 { margin:0 0 10px; font-family:"Playfair Display",Georgia,serif; font-size:38px; letter-spacing:-.045em; }
.nj-collection-card p { margin:0 0 15px; color:var(--nj-muted); line-height:1.68; }
.nj-collection-card ul { margin:0; padding-left:20px; color:var(--nj-ink); line-height:1.7; }
.nj-hotel-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:40px; }
.nj-hotel { overflow:hidden; border:1px solid rgba(23,63,73,.12); border-radius:24px; background:#fff; }
.nj-hotel img { display:block; width:100%; aspect-ratio:5/3; object-fit:cover; }
.nj-hotel__copy { padding:24px; }
.nj-hotel h3 { margin:0 0 8px; font-family:"Playfair Display",Georgia,serif; font-size:31px; }
.nj-hotel p { margin:0; color:var(--nj-muted); font-size:15px; line-height:1.6; }

/* Current IGC12 date-card system */
.nj-pricing-note { margin:0 0 26px; padding:22px 24px; border-left:4px solid var(--nj-gold); background:rgba(255,255,255,.65); color:var(--nj-muted); line-height:1.7; }
.nj-featured-dates--empty { margin-bottom:22px; padding:25px; border:1px solid rgba(23,63,73,.12); border-radius:22px; background:rgba(255,255,255,.52); }
.nj-featured-dates--empty h3 { margin:0 0 7px; font-family:"Playfair Display",Georgia,serif; font-size:31px; }
.nj-featured-dates--empty p { margin:0; color:var(--nj-muted); line-height:1.6; }
.nj-year-details { margin-top:18px; border:1px solid rgba(23,63,73,.12); border-radius:26px; background:rgba(255,255,255,.55); }
.nj-year-details > summary { display:flex; min-height:72px; align-items:center; justify-content:space-between; gap:20px; padding:20px 26px; color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:28px; font-weight:700; cursor:pointer; list-style:none; }
.nj-year-details > summary::-webkit-details-marker { display:none; }
.nj-year-details > summary::after { display:inline-flex; width:38px; height:38px; flex:0 0 38px; align-items:center; justify-content:center; border-radius:50%; background:var(--nj-gold); content:"+"; font-family:"DM Sans",Arial,sans-serif; font-size:22px; font-weight:400; }
.nj-year-details[open] > summary::after { content:"−"; }
.nj-year-details__content { padding:0 24px 28px; }
.nj-season { padding-top:32px; border-top:1px solid rgba(23,63,73,.12); }
.nj-season + .nj-season { margin-top:34px; }
.nj-season h3 { margin:0 0 5px; color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:38px; }
.nj-season__note { margin:0 0 20px; color:var(--nj-muted); line-height:1.6; }
.nj-date-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.nj-date-card { display:flex; min-width:0; flex-direction:column; padding:22px; border:1px solid rgba(23,63,73,.12); border-radius:22px; background:#fff; box-shadow:0 16px 38px rgba(23,63,73,.07); }
.nj-date-card__header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.nj-date-card__date { color:var(--nj-ink); font-family:"Playfair Display",Georgia,serif; font-size:24px; font-weight:700; letter-spacing:-.035em; line-height:1.12; }
.nj-status { display:inline-flex; min-height:27px; align-items:center; padding:5px 8px; border-radius:999px; background:rgba(45,111,144,.1); color:var(--nj-blue); font-size:9px; font-weight:800; letter-spacing:.07em; text-align:center; text-transform:uppercase; }
.nj-date-card__choice-head { margin:18px 0 10px; }
.nj-date-card__choice-head h4,.nj-date-card__proposal-title { margin:0; color:var(--nj-ink); font-size:12px; font-weight:800; letter-spacing:.08em; line-height:1.4; text-transform:uppercase; }
.nj-date-card__choice-head p { margin:3px 0 0; color:var(--nj-muted); font-size:12px; }
.nj-date-card__choices { display:grid; gap:7px; margin:0; padding:0; border:0; }
.nj-card-choice { display:grid; grid-template-columns:18px minmax(0,1fr) auto; gap:9px; align-items:center; min-height:48px; padding:9px 10px; border:1px solid rgba(23,63,73,.12); border-radius:13px; cursor:pointer; }
.nj-card-choice.is-selected { border-color:#d68b2a; background:rgba(243,166,55,.08); box-shadow:0 0 0 1px rgba(214,139,42,.18); }
.nj-card-choice input { position:absolute; opacity:0; pointer-events:none; }
.nj-card-choice__radio { width:16px; height:16px; border:2px solid #8fa0a3; border-radius:50%; }
.nj-card-choice.is-selected .nj-card-choice__radio { border:5px solid var(--nj-gold); }
.nj-card-choice__copy { min-width:0; }
.nj-card-choice__title { display:block; color:var(--nj-ink); font-size:11px; font-weight:800; letter-spacing:.07em; }
.nj-card-choice__description { display:block; margin-top:2px; color:var(--nj-muted); font-size:9.5px; line-height:1.35; }
.nj-card-choice__price { color:var(--nj-ink); font-size:14px; white-space:nowrap; }
.nj-date-card__basis { display:block; margin:10px 0 16px; color:var(--nj-muted); font-size:10px; line-height:1.45; }
.nj-date-card__proposal-title { margin-top:auto; }
.nj-date-card__proposal { width:100%; min-height:48px; margin-top:8px; padding:10px 13px; font-size:11px; }
.nj-date-card__reassurance { margin:9px 0 0; color:var(--nj-muted); font-size:9.5px; line-height:1.4; text-align:center; }
.nj-visually-hidden { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; padding:0!important; border:0!important; margin:-1px!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; }

.nj-guidance { margin-top:34px; padding:clamp(28px,4vw,42px); border-radius:28px; background:var(--nj-deep); color:#fff; }
.nj-guidance h3 { margin:0 0 10px; color:#fff; font-family:"Playfair Display",Georgia,serif; font-size:clamp(32px,4vw,50px); }
.nj-guidance p { max-width:72ch; margin:0 0 20px; color:rgba(255,255,255,.82); line-height:1.7; }

.nj-refined-faq { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:34px; }
.nj-refined-faq details { border:1px solid rgba(23,63,73,.12); border-radius:20px; background:#fff; }
.nj-refined-faq summary { display:flex; min-height:64px; align-items:center; justify-content:space-between; gap:16px; padding:19px 22px; color:var(--nj-ink); font-weight:800; cursor:pointer; list-style:none; }
.nj-refined-faq summary::-webkit-details-marker { display:none; }
.nj-refined-faq summary::after { color:var(--nj-gold); content:"+"; font-size:26px; }
.nj-refined-faq details[open] summary::after { content:"−"; }
.nj-refined-faq details > div { padding:0 22px 22px; }
.nj-refined-faq p { margin:0; color:var(--nj-muted); line-height:1.65; }

.nj-option-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.nj-option-card { padding:28px; border:1px solid rgba(23,63,73,.12); border-radius:24px; background:#fff; }
.nj-option-card h3 { margin:0 0 8px; font-family:"Playfair Display",Georgia,serif; font-size:31px; }
.nj-option-card p { margin:0 0 13px; color:var(--nj-muted); line-height:1.65; }
.nj-option-card details summary { color:var(--nj-blue); font-weight:800; cursor:pointer; }
.nj-option-card details p { margin-top:12px; }

.nj-final { padding:clamp(78px,10vw,128px) 0; background:linear-gradient(135deg,#0f444c,#173f49); color:#fff; text-align:center; }
.nj-final .nj-eyebrow { color:#f7c16d; }
.nj-final-title { max-width:850px; margin:0 auto; color:#fff; font-family:"Playfair Display",Georgia,serif; font-size:clamp(52px,7vw,92px); letter-spacing:-.055em; line-height:.95; }
.nj-final .nj-lede { max-width:720px; margin:22px auto 28px; color:rgba(255,255,255,.82); }
.nj-final .nj-actions { justify-content:center; }
.nj-final__trust { margin:19px 0 0; color:rgba(255,255,255,.65); font-size:13px; }

.nj-bookbar { position:fixed; right:50%; bottom:14px; z-index:70; display:flex; width:min(1070px,calc(100% - 36px)); min-height:72px; align-items:center; justify-content:space-between; gap:18px; padding:10px 14px 10px 24px; border:1px solid rgba(255,255,255,.24); border-radius:999px; background:rgba(15,68,76,.97); box-shadow:0 18px 50px rgba(5,30,38,.28); color:#fff; transform:translateX(50%); transition:opacity .2s ease,transform .2s ease; }
.nj-bookbar.is-yielding { opacity:0; pointer-events:none; transform:translate(50%,18px); }
.nj-bookbar__facts { display:flex; align-items:center; gap:10px; font-size:12px; }
.nj-bookbar__facts strong { letter-spacing:.04em; }
.nj-bookbar__facts span { color:rgba(255,255,255,.75); }
.nj-bookbar .nj-actions { flex-wrap:nowrap; }
.nj-bookbar .nj-button { min-height:48px; padding:10px 18px; font-size:11px; }

/* Journey Guide drawer */
body.nj-guide-is-open { position:fixed; right:0; left:0; overflow:hidden; }
.nj-guide-layer[hidden] { display:none; }
.nj-guide-layer { position:fixed; inset:0; z-index:100; }
.nj-guide-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(5,30,38,.66); opacity:0; transition:opacity .25s ease; }
.nj-guide-drawer { position:absolute; top:0; right:0; display:flex; width:min(560px,100%); height:100%; flex-direction:column; background:var(--nj-paper); box-shadow:-20px 0 70px rgba(5,30,38,.25); transform:translateX(100%); transition:transform .28s ease; }
.nj-guide-layer.is-open .nj-guide-backdrop { opacity:1; }
.nj-guide-layer.is-open .nj-guide-drawer { transform:translateX(0); }
.nj-guide-drawer__top { display:flex; align-items:center; justify-content:space-between; padding:23px 25px; border-bottom:1px solid var(--nj-line); }
.nj-guide-drawer__eyebrow { margin:0; color:var(--nj-blue); font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.nj-guide-drawer__close { display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; border:1px solid var(--nj-line); border-radius:50%; background:#fff; color:var(--nj-ink); font-size:28px; cursor:pointer; }
.nj-guide-drawer__scroll { overflow:auto; padding:clamp(28px,6vw,54px); }
.nj-guide-drawer__title { margin:0 0 22px; font-family:"Playfair Display",Georgia,serif; font-size:clamp(40px,6vw,64px); letter-spacing:-.05em; line-height:.98; }
.nj-guide-drawer__body p { color:var(--nj-muted); font-size:17px; line-height:1.75; }

@media (max-width:1024px) {
  :root { --nj-page-nav-top:64px; --nj-anchor-clearance:136px; }
  .nj-section-head { grid-template-columns:1fr; gap:20px; }
  .nj-date-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nj-itinerary-layout { grid-template-columns:1fr; }
  .nj-itinerary-intro { max-width:760px; }
  .nj-journey-map__stage { grid-template-columns:1fr; }
  .nj-journey-map__rail { border-top:1px solid rgba(23,63,73,.12); border-left:0; }
  .nj-journey-map__stops { display:flex; max-height:none; padding:0 0 10px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; }
  .nj-journey-map__stop { width:min(78vw,430px); flex:0 0 auto; }
  .nj-journey-map__stop.is-active .nj-journey-map__label { transform:translateY(-3px); }
  .nj-hotel-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:767px) {
  :root { --nj-page-nav-top:64px; --nj-page-nav-height:50px; --nj-anchor-clearance:124px; }
  .nj-tour { padding-bottom:76px; }
  .nj-shell { width:min(100% - 30px,1180px); }
  .nj-display { font-size:clamp(39px,12vw,56px); }
  .nj-hero { min-height:0; height:auto; background-position:63% center; }
  .nj-hero::after { background:linear-gradient(90deg,rgba(5,30,38,.85),rgba(5,30,38,.38)),linear-gradient(0deg,rgba(5,30,38,.85),rgba(5,30,38,.12) 70%); }
  .nj-hero__content { padding:32px 0 36px; }
  .nj-hero .nj-eyebrow { margin-top:0; margin-bottom:10px; }
  .nj-hero h1 { max-width:340px; font-size:clamp(52px,15vw,72px); line-height:.91; }
  .nj-hero__subhead { max-width:330px; margin-bottom:7px; font-size:19px; }
  .nj-hero__route { max-width:340px; margin-bottom:14px; font-size:13px; }
  .nj-hero__actions { display:grid; grid-template-columns:1fr; margin-top:14px; }
  .nj-hero__actions .nj-button { width:100%; min-height:48px; }
  .nj-hero__proof { margin-top:17px; padding-top:13px; font-size:14px; }
  .nj-anchorbar__inner { justify-content:flex-start; gap:18px; }
  .nj-anchorbar__link { min-height:50px; font-size:10px; }
  .nj-section { padding:62px 0; }
  .nj-personal-benefits,.nj-difference-grid,.nj-review-grid,.nj-practical-grid,.nj-trust-proof,.nj-collection-grid,.nj-refined-faq,.nj-option-grid { grid-template-columns:1fr; }
  .nj-personal-benefits article,.nj-difference-grid article,.nj-review-card,.nj-practical-card { padding:23px 20px; border-radius:20px; }
  .nj-journey-map__inner { width:100%; padding:58px 15px; }
  .nj-journey-map__header { text-align:left; }
  .nj-journey-map__title { font-size:42px; }
  .nj-journey-map__price-preview { width:100%; text-align:left; }
  .nj-journey-map__stage { display:block; min-height:0; border-radius:22px; }
  .nj-journey-map__atlas-art { min-height:0; aspect-ratio:1.06; }
  .nj-journey-map__rail { padding:22px 18px; }
  .nj-journey-map__stop { width:88%; }
  .nj-journey-map__label { padding:18px 16px; }
  .nj-journey-map__name { font-size:23px; }
  .nj-journey-map__sentence { font-size:12px; }
  .nj-journey-map__footer { align-items:flex-start; flex-direction:column; gap:8px; text-align:left; }
  .nj-complete-transition__inner { grid-template-columns:1fr; }
  .nj-itinerary-tools { justify-content:flex-start; }
  .nj-itinerary-tools__status { text-align:left; }
  .nj-itinerary-cover { min-height:560px; }
  .nj-itinerary-cover__inner { padding:60px 0; }
  .nj-itinerary-cover h2 { font-size:clamp(52px,16vw,70px); }
  .nj-itinerary-body { padding:70px 0; }
  .nj-itinerary-day { border-radius:21px; }
  .nj-itinerary-day__heading { padding:22px 18px; }
  .nj-itinerary-day__title { font-size:30px; }
  .nj-itinerary-day__content { grid-template-columns:1fr; gap:20px; padding:0 18px 22px; }
  .nj-itinerary-day__main > p { font-size:16px; line-height:1.66; }
  .nj-itinerary-hotel-panel__feature { grid-template-columns:100px minmax(0,1fr); }
  .nj-itinerary-hotel-panel__image { min-height:130px; }
  .nj-classic-collection { padding:24px 20px; }
  .nj-collection-card { border-radius:22px; }
  .nj-collection-card__copy { padding:24px 20px; }
  .nj-hotel-grid,.nj-date-grid { grid-template-columns:1fr; }
  .nj-year-details > summary { min-height:64px; padding:16px 18px; font-size:24px; }
  .nj-year-details__content { padding:0 14px 18px; }
  .nj-date-card { padding:18px; border-radius:17px; }
  .nj-date-card__date { font-size:22px; }
  .nj-final { text-align:left; }
  .nj-final-title { margin-left:0; }
  .nj-final .nj-lede { margin-left:0; }
  .nj-final .nj-actions { display:grid; grid-template-columns:1fr; justify-content:stretch; }
  .nj-bookbar { bottom:8px; width:calc(100% - 20px); min-height:62px; padding:7px; border-radius:18px; }
  .nj-bookbar__facts { display:none; }
  .nj-bookbar .nj-actions { display:grid; width:100%; grid-template-columns:.78fr 1.22fr; gap:7px; }
  .nj-bookbar .nj-button { min-height:46px; padding:8px 9px; font-size:9.5px; }
}

@media (max-width:390px) {
  .nj-shell { width:calc(100% - 24px); }
  .nj-hero h1 { font-size:50px; }
  .nj-hero__subhead { font-size:18px; }
  .nj-itinerary-tool { padding-right:4px; font-size:10px; }
  .nj-itinerary-tool__circle { width:36px; height:36px; }
  .nj-card-choice { grid-template-columns:17px minmax(0,1fr) auto; padding:8px; }
  .nj-card-choice__price { font-size:13px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .nj-button,.nj-anchorbar__link::after,.nj-journey-map__label,.nj-atlas-plate__marker,.nj-atlas-plate__traveler,.nj-bookbar,.nj-guide-backdrop,.nj-guide-drawer { transition:none; }
}
