*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Inter,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-x-4{left:1rem;right:1rem}.bottom-4{bottom:1rem}.left-4{left:1rem}.right-4{right:1rem}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.mx-auto{margin-left:auto;margin-right:auto}.\!mt-0{margin-top:0!important}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.aspect-\[16\/10\]{aspect-ratio:16/10}.aspect-\[16\/11\]{aspect-ratio:16/11}.aspect-\[16\/8\]{aspect-ratio:16/8}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-square{aspect-ratio:1/1}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.w-28{width:7rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-none{flex:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:1rem}.rounded-\[1\.25rem\]{border-radius:1.25rem}.rounded-\[1\.5rem\]{border-radius:1.5rem}.rounded-\[1\.75rem\]{border-radius:1.75rem}.rounded-\[2rem\]{border-radius:2rem}.rounded-full{border-radius:9999px}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-t{border-top-width:1px}.border-forest\/20{border-color:rgba(38,61,43,.2)}.border-forest\/30{border-color:rgba(38,61,43,.3)}.border-gold{--tw-border-opacity:1;border-color:rgb(215 183 120/var(--tw-border-opacity,1))}.border-gold\/25{border-color:hsla(40,54%,66%,.25)}.border-gold\/30{border-color:hsla(40,54%,66%,.3)}.border-gold\/35{border-color:hsla(40,54%,66%,.35)}.border-gold\/40{border-color:hsla(40,54%,66%,.4)}.border-ivory{--tw-border-opacity:1;border-color:rgb(246 240 229/var(--tw-border-opacity,1))}.border-ivory\/20{border-color:hsla(39,49%,93%,.2)}.border-terracotta\/40{border-color:rgba(129,61,40,.4)}.\!bg-transparent{background-color:transparent!important}.\!bg-white{--tw-bg-opacity:1!important;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-forest{--tw-bg-opacity:1;background-color:rgb(38 61 43/var(--tw-bg-opacity,1))}.bg-forest\/5{background-color:rgba(38,61,43,.05)}.bg-gold\/10{background-color:hsla(40,54%,66%,.1)}.bg-ivory{--tw-bg-opacity:1;background-color:rgb(246 240 229/var(--tw-bg-opacity,1))}.bg-ivory\/40{background-color:hsla(39,49%,93%,.4)}.bg-ivory\/50{background-color:hsla(39,49%,93%,.5)}.bg-ivory\/60{background-color:hsla(39,49%,93%,.6)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pl-5{padding-left:1.25rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-serif{font-family:Cormorant Garamond,Georgia,serif}.\!text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.98rem\]{font-size:.98rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-\[1\.02\]{line-height:1.02}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.13em\]{letter-spacing:.13em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.15em\]{letter-spacing:.15em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.text-charcoal{--tw-text-opacity:1;color:rgb(41 37 31/var(--tw-text-opacity,1))}.text-charcoal\/40{color:rgba(41,37,31,.4)}.text-charcoal\/45{color:rgba(41,37,31,.45)}.text-charcoal\/50{color:rgba(41,37,31,.5)}.text-charcoal\/55{color:rgba(41,37,31,.55)}.text-charcoal\/60{color:rgba(41,37,31,.6)}.text-charcoal\/65{color:rgba(41,37,31,.65)}.text-charcoal\/70{color:rgba(41,37,31,.7)}.text-charcoal\/75{color:rgba(41,37,31,.75)}.text-forest{--tw-text-opacity:1;color:rgb(38 61 43/var(--tw-text-opacity,1))}.text-gold{--tw-text-opacity:1;color:rgb(215 183 120/var(--tw-text-opacity,1))}.text-ivory{--tw-text-opacity:1;color:rgb(246 240 229/var(--tw-text-opacity,1))}.text-ivory\/45{color:hsla(39,49%,93%,.45)}.text-ivory\/65{color:hsla(39,49%,93%,.65)}.text-ivory\/70{color:hsla(39,49%,93%,.7)}.text-ivory\/80{color:hsla(39,49%,93%,.8)}.text-terracotta{--tw-text-opacity:1;color:rgb(129 61 40/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.decoration-gold\/60{text-decoration-color:hsla(40,54%,66%,.6)}.underline-offset-2{text-underline-offset:2px}.accent-\[\#813d28\]{accent-color:#813d28}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--forest:#263d2b;--forest-deep:#18271c;--terracotta:#813d28;--terracotta-bright:#b85c38;--gold:#d7b778;--gold-soft:#ead9b8;--ivory:#f6f0e5;--ivory-deep:#eee5d4;--charcoal:#29251f;--muted:#6f685d;--line:hsla(40,54%,66%,.34);--shadow-sm:0 1px 2px rgba(41,37,31,.05),0 10px 30px -18px rgba(41,37,31,.25);--shadow-lg:0 28px 70px -32px rgba(24,39,28,.55);--radius:1.5rem;--container:1280px;--ease:cubic-bezier(0.2,0.7,0.2,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--ivory);color:var(--charcoal);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;margin:0;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::-moz-selection{background:var(--gold);color:var(--forest-deep)}::selection{background:var(--gold);color:var(--forest-deep)}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.nb-serif,h1,h2,h3,h4{font-family:Cormorant Garamond,Georgia,serif}a{color:inherit}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}[hidden]{display:none!important}.nb-container{margin-inline:auto;max-width:var(--container);padding-inline:clamp(1rem,4vw,2.5rem);width:100%}.nb-skip{background:var(--forest);border-radius:.5rem;color:var(--ivory);left:1rem;padding:.75rem 1rem;position:fixed;top:-100px;transition:top .2s ease;z-index:100}.nb-skip:focus{top:1rem}.nb-progress{background:transparent;height:3px;inset:0 0 auto 0;pointer-events:none;position:fixed;z-index:70}.nb-progress span{background:linear-gradient(90deg,var(--terracotta-bright),var(--gold),#f0dfbd);box-shadow:0 0 12px hsla(40,54%,66%,.6);display:block;height:100%;transform:scaleX(0);transform-origin:0 50%}.nb-header{backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);background:hsla(39,49%,93%,.9);border-bottom:1px solid hsla(40,54%,66%,.32);position:sticky;top:0;transition:background .3s ease,box-shadow .3s ease;z-index:50}.nb-header.is-scrolled{background:hsla(39,49%,93%,.97);box-shadow:0 12px 35px -28px rgba(24,39,28,.7)}.nb-header-inner{align-items:center;display:flex;gap:1rem;justify-content:space-between;min-height:78px;transition:min-height .3s ease}.nb-header.is-scrolled .nb-header-inner{min-height:66px}.nb-brand{align-items:center;display:inline-flex;gap:.7rem;min-width:0;text-decoration:none}.nb-logo-mark{align-items:center;background:radial-gradient(circle at 30% 25%,#35523b,var(--forest) 62%);border:1px solid hsla(40,54%,66%,.7);border-radius:50%;box-shadow:inset 0 0 0 3px hsla(39,49%,93%,.08),0 6px 16px -8px rgba(24,39,28,.7);color:var(--ivory);display:grid;flex:0 0 46px;font-family:Cormorant Garamond,Georgia,serif;font-size:.94rem;font-weight:700;gap:.08em;grid-template-columns:auto auto auto;height:46px;justify-content:center;letter-spacing:-.03em;position:relative;width:46px}.nb-logo-mark i{color:var(--gold);font-size:.68em;font-style:normal;transform:translateY(-.04em)}.nb-logo-text{color:var(--forest);display:flex;flex-direction:column;font-family:Cormorant Garamond,Georgia,serif;font-size:1.2rem;font-weight:600;letter-spacing:-.01em;line-height:1;min-width:0;white-space:nowrap}.nb-logo-text em{color:var(--terracotta);font-style:italic}.nb-logo-text small{color:var(--muted);font-family:Inter,sans-serif;font-size:.47rem;font-weight:600;letter-spacing:.22em;margin-top:.3rem;text-transform:uppercase}.nb-nav{align-items:center;display:none;gap:1.9rem}.nb-nav-link{color:#4b554b;font-size:.83rem;font-weight:600;letter-spacing:.01em;padding:.35rem 0;position:relative;text-decoration:none;transition:color .2s ease}.nb-nav-link:after{background:var(--terracotta-bright);border-radius:2px;bottom:-.2rem;content:"";height:2px;left:0;position:absolute;right:0;transform:scaleX(0);transform-origin:0 50%;transition:transform .28s var(--ease)}.nb-nav-link.is-active,.nb-nav-link:hover{color:var(--forest)}.nb-nav-link.is-active:after,.nb-nav-link:hover:after{transform:scaleX(1)}.nb-header-actions{align-items:center;display:flex;gap:.6rem}.nb-header-wa{align-items:center;color:var(--forest);display:none;font-size:.76rem;font-weight:600;gap:.35rem;opacity:.78;text-decoration:none;transition:opacity .2s ease}.nb-header-wa:hover{opacity:1}.nb-nav-toggle{background:hsla(0,0%,100%,.5);border:1px solid rgba(38,61,43,.2);border-radius:50%;color:var(--forest);display:inline-flex;flex-direction:column;gap:4px;height:42px;justify-content:center;padding:0 10px;width:42px}.nb-nav-toggle span{background:currentColor;border-radius:2px;display:block;height:2px;transition:transform .25s ease,opacity .2s ease}.nb-nav-toggle[aria-expanded=true] span:first-child{transform:translateY(6px) rotate(45deg)}.nb-nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nb-nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.nb-mobile-nav{animation:nav-drop .25s var(--ease) both;background:var(--ivory);border-top:1px solid var(--line);box-shadow:0 22px 40px -30px rgba(24,39,28,.65)}.nb-mobile-nav .nb-container{display:flex;flex-direction:column;gap:.2rem;padding-block:1rem 1.25rem}.nb-mobile-link{align-items:center;border-radius:.75rem;color:var(--forest);display:flex;font-weight:600;justify-content:space-between;padding:.85rem .6rem;text-decoration:none}.nb-mobile-link:hover{background:#fff}.nb-mobile-link span{color:var(--terracotta)}.nb-mobile-cta{justify-content:center;margin-top:.5rem}.nb-mobile-wa{color:var(--muted);font-size:.8rem;padding:.7rem .6rem;text-align:center;text-decoration:none}.nb-btn{align-items:center;border:1px solid transparent;border-radius:999px;display:inline-flex;font-size:.86rem;font-weight:700;gap:.55rem;justify-content:center;letter-spacing:.01em;line-height:1.1;overflow:hidden;padding:.9rem 1.4rem;position:relative;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s ease,background .25s ease,color .25s ease,border-color .25s ease;z-index:0}.nb-btn:before{background:linear-gradient(100deg,transparent 30%,hsla(0,0%,100%,.22) 50%,transparent 70%);content:"";inset:-20% -40%;position:absolute;transform:translateX(-80%) skewX(-16deg);transition:transform .7s var(--ease);z-index:-1}.nb-btn:hover:before{transform:translateX(80%) skewX(-16deg)}.nb-btn:hover{transform:translateY(-2px)}.nb-btn:active{transform:translateY(0)}.nb-btn-sm{font-size:.77rem;padding:.68rem 1.05rem}.nb-btn-lg{font-size:.92rem;padding:1.05rem 1.8rem}.nb-btn-primary{background:var(--terracotta);box-shadow:0 16px 28px -20px rgba(129,61,40,.9);color:#fff}.nb-btn-primary:hover{background:#6f3322;box-shadow:0 22px 36px -20px rgba(129,61,40,.8)}.nb-btn-forest{background:var(--forest);box-shadow:0 16px 28px -20px rgba(24,39,28,.9);color:var(--ivory)}.nb-btn-forest:hover{background:var(--forest-deep)}.nb-btn-gold{background:var(--gold);color:var(--forest-deep)}.nb-btn-gold:hover{background:#e5ca96}.nb-btn-ghost{background:transparent;border-color:rgba(38,61,43,.32);color:var(--forest)}.nb-btn-ghost:hover{background:var(--forest);border-color:var(--forest);color:var(--ivory)}.nb-btn-ghost-light{background:hsla(39,49%,93%,.04);border-color:hsla(39,49%,93%,.48);color:var(--ivory)}.nb-btn-ghost-light:hover{background:var(--ivory);border-color:var(--ivory);color:var(--forest)}.nb-btn-link{align-items:center;color:var(--terracotta);display:inline-flex;font-size:.84rem;font-weight:700;gap:.5rem;text-decoration:none}.nb-btn-link svg{transition:transform .25s var(--ease)}.nb-btn-link:hover svg{transform:translateX(4px)}.nb-eyebrow{align-items:center;color:var(--terracotta);display:inline-flex;font-size:.68rem;font-weight:700;gap:.6rem;letter-spacing:.22em;text-transform:uppercase}.nb-eyebrow:before{background:currentColor;content:"";height:1px;opacity:.65;width:22px}.nb-eyebrow-light{color:var(--gold)}.nb-title{color:var(--forest);font-size:clamp(2.15rem,4.6vw,3.6rem);font-weight:600;letter-spacing:-.025em;line-height:1.02;margin:.7rem 0 0;text-wrap:balance}.nb-title-light{color:var(--ivory)}.nb-lead{color:#5e594f;font-size:1.02rem;line-height:1.75;margin-top:1rem;max-width:42rem}.nb-lead-light{color:hsla(39,49%,93%,.78)}.nb-section{padding-block:clamp(4.5rem,8vw,7.25rem)}.nb-section-tight{padding-block:clamp(3rem,5vw,4.5rem)}.nb-section-head{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between}.nb-section-dark{background:var(--forest)}.nb-section-dark,.nb-section-dark .nb-title{color:var(--ivory)}.nb-section-dark .nb-lead{color:hsla(39,49%,93%,.75)}.nb-rule{background:linear-gradient(90deg,transparent,var(--line),transparent);border:0;height:1px}.nb-hero{align-items:flex-end;background:var(--forest-deep);color:var(--ivory);display:flex;isolation:isolate;min-height:min(90vh,840px);overflow:hidden;padding-block:clamp(7rem,14vw,10rem) clamp(3rem,7vw,5.5rem);position:relative}.nb-hero-media{inset:0;position:absolute;z-index:-3}.nb-hero-slide{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:58% 50%;object-position:58% 50%;opacity:0;animation:nb-hero-cycle 10s var(--ease) infinite both}.nb-hero-slide:nth-child(1){animation-delay:0s}.nb-hero-slide:nth-child(2){animation-delay:2s}.nb-hero-slide:nth-child(3){animation-delay:4s}.nb-hero-slide:nth-child(4){animation-delay:6s}.nb-hero-slide:nth-child(5){animation-delay:8s}@keyframes nb-hero-cycle{0%{opacity:0;transform:scale(1.04)}5%{opacity:1}18%{opacity:1;transform:scale(1.085)}24%{opacity:0;transform:scale(1.1)}100%{opacity:0;transform:scale(1.04)}}.nb-hero-shade{background:linear-gradient(90deg,rgba(20,30,23,.96),rgba(20,30,23,.78) 38%,rgba(20,30,23,.25) 72%,rgba(20,30,23,.5)),linear-gradient(0deg,rgba(20,30,23,.96),rgba(20,30,23,.18) 48%,rgba(20,30,23,.38));inset:0;position:absolute;z-index:-2}.nb-hero-grain{background-image:radial-gradient(hsla(39,49%,93%,.5) .6px,transparent 0);background-size:5px 5px;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,transparent 70%);mask-image:linear-gradient(90deg,#000,transparent 70%);opacity:.18;pointer-events:none;position:absolute;z-index:-1}.nb-hero-inner{width:100%}.nb-hero-grid{align-items:end;display:grid;gap:2.5rem}.nb-hero-title{font-size:clamp(3.2rem,7vw,5.9rem);font-weight:600;letter-spacing:-.035em;line-height:.94;margin:1rem 0 0;max-width:13ch;text-wrap:balance}.nb-hero-title em{color:var(--gold);font-style:italic}.nb-hero-copy{color:hsla(39,49%,93%,.84);font-size:1.02rem;line-height:1.72;margin-top:1.4rem;max-width:34rem}.nb-hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}.nb-hero-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:2rem}.nb-hero-meta span{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:hsla(39,49%,93%,.07);border:1px solid hsla(39,49%,93%,.18);border-radius:999px;color:hsla(39,49%,93%,.82);display:inline-flex;font-size:.68rem;font-weight:600;gap:.4rem;letter-spacing:.07em;padding:.5rem .8rem;text-transform:uppercase}.nb-hero-meta span:before{background:var(--gold);border-radius:50%;content:"";height:5px;width:5px}.nb-hero-aside{display:none}.nb-glass{backdrop-filter:blur(20px) saturate(1.15);-webkit-backdrop-filter:blur(20px) saturate(1.15);background:hsla(39,49%,93%,.1);border:1px solid hsla(39,49%,93%,.22);border-radius:1.6rem;box-shadow:0 30px 80px -40px rgba(0,0,0,.8),inset 0 1px 0 hsla(0,0%,100%,.12);overflow:hidden;padding:1.4rem;position:relative}.nb-glass:after{background:radial-gradient(circle,hsla(40,54%,66%,.28),transparent 70%);border-radius:50%;content:"";height:180px;pointer-events:none;position:absolute;right:-60px;top:-70px;width:180px}.nb-route-preview-head{align-items:center;display:flex;gap:1rem;justify-content:space-between}.nb-route-preview-head span{color:var(--gold);font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.nb-route-preview-head strong{color:var(--ivory);font-family:Cormorant Garamond,Georgia,serif;font-size:1.25rem;font-weight:600}.nb-route-preview ol{list-style:none;margin:1.2rem 0 0;padding:0;position:relative}.nb-route-preview ol:before{background:linear-gradient(var(--gold),hsla(40,54%,66%,.2));bottom:12px;content:"";left:8px;position:absolute;top:12px;width:1px}.nb-route-preview li{align-items:baseline;color:hsla(39,49%,93%,.86);display:flex;font-size:.82rem;gap:1rem;justify-content:space-between;padding:.48rem 0 .48rem 1.7rem;position:relative}.nb-route-preview li:before{background:var(--forest-deep);border:2px solid var(--gold);border-radius:50%;content:"";height:9px;left:4px;position:absolute;top:.85rem;width:9px}.nb-route-preview li:last-child:before{background:var(--gold)}.nb-route-preview li>span{min-width:0}.nb-route-preview li small{color:hsla(39,49%,93%,.5);flex:0 0 auto;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase}.nb-route-preview-foot{align-items:center;border-top:1px solid hsla(39,49%,93%,.14);display:flex;gap:1rem;justify-content:space-between;margin-top:1.15rem;padding-top:1rem}.nb-route-preview-foot small{color:hsla(39,49%,93%,.58);font-size:.7rem}.nb-hero-scroll{align-items:center;color:hsla(39,49%,93%,.52);display:inline-flex;font-size:.63rem;font-weight:600;gap:.55rem;letter-spacing:.18em;margin-top:2.2rem;text-decoration:none;text-transform:uppercase}.nb-hero-scroll span{animation:scroll-pulse 2s ease-in-out infinite;background:linear-gradient(var(--gold),transparent);display:inline-block;height:28px;width:1px}.nb-trust-strip{background:#fbf7ef;border-bottom:1px solid var(--line)}.nb-trust-grid{background:var(--line);display:grid;gap:1px;grid-template-columns:repeat(2,minmax(0,1fr))}.nb-trust-item{background:#fbf7ef;padding:1.2rem 1rem;text-align:center}.nb-trust-item strong{color:var(--forest);display:block;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.7rem,3vw,2.2rem);font-weight:600;line-height:1}.nb-trust-item span{color:var(--muted);display:block;font-size:.62rem;font-weight:700;letter-spacing:.12em;margin-top:.4rem;text-transform:uppercase}.nb-journey-grid{display:grid;gap:1rem;margin-top:2.4rem}.nb-journey-card{background:#fff;border:1px solid hsla(40,54%,66%,.3);border-radius:1.65rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;min-width:0;overflow:hidden;position:relative;transition:transform .35s var(--ease),box-shadow .35s ease,border-color .35s ease}.nb-journey-card:hover{border-color:rgba(184,92,56,.45);box-shadow:var(--shadow-lg);transform:translateY(-5px)}.nb-journey-card-dark{background:var(--forest);border-color:hsla(39,49%,93%,.13);color:var(--ivory)}.nb-journey-card-dark:hover{border-color:hsla(40,54%,66%,.45)}.nb-journey-media{background:var(--forest);overflow:hidden;position:relative}.nb-journey-media .nb-media-fallback,.nb-journey-media img{transition:transform .9s var(--ease)}.nb-journey-card:hover .nb-journey-media .nb-media-fallback,.nb-journey-card:hover .nb-journey-media img{transform:scale(1.045)}.nb-journey-media:after{background:linear-gradient(180deg,rgba(20,30,23,.16),transparent 34%,rgba(20,30,23,.3));content:"";inset:0;pointer-events:none;position:absolute}.nb-journey-chip{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:hsla(39,49%,93%,.9);border:1px solid hsla(39,49%,93%,.4);border-radius:999px;color:var(--forest);display:inline-flex;font-size:.57rem;font-weight:700;gap:.35rem;left:.9rem;letter-spacing:.1em;padding:.4rem .65rem;position:absolute;text-transform:uppercase;top:.9rem;z-index:2}.nb-journey-chip:before{background:var(--terracotta-bright);border-radius:50%;content:"";height:5px;width:5px}.nb-journey-body{display:flex;flex:1;flex-direction:column;padding:1.2rem 1.35rem 1.35rem}.nb-journey-kicker{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.nb-journey-kicker span{color:var(--terracotta);font-size:.58rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase}.nb-journey-card-dark .nb-journey-kicker span{color:var(--gold)}.nb-journey-kicker small{border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.56rem;font-weight:700;letter-spacing:.06em;padding:.25rem .5rem}.nb-journey-card-dark .nb-journey-kicker small{border-color:hsla(39,49%,93%,.2);color:hsla(39,49%,93%,.65)}.nb-journey-title{color:var(--forest);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.65rem,2.7vw,2.2rem);font-weight:600;letter-spacing:-.02em;line-height:1.02;margin:.6rem 0 0}.nb-journey-card-dark .nb-journey-title{color:var(--ivory)}.nb-journey-text{color:#686155;font-size:.81rem;line-height:1.62;margin:.5rem 0 0}.nb-journey-card-dark .nb-journey-text{color:hsla(39,49%,93%,.68)}.nb-journey-cta{align-items:center;color:var(--terracotta);display:inline-flex;font-size:.68rem;font-weight:700;gap:.45rem;letter-spacing:.06em;margin-top:auto;padding-top:1rem;text-decoration:none;text-transform:uppercase}.nb-journey-card-dark .nb-journey-cta{color:var(--gold)}.nb-journey-cta svg{transition:transform .25s var(--ease)}.nb-journey-cta:hover svg{transform:translate(3px,-2px)}.nb-tour-card{background:#fff;border:1px solid hsla(40,54%,66%,.32);border-radius:1.55rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;transition:transform .35s var(--ease),box-shadow .35s ease,border-color .35s ease}.nb-tour-card:hover{border-color:rgba(184,92,56,.42);box-shadow:var(--shadow-lg);transform:translateY(-6px)}.nb-tour-media{aspect-ratio:16/11;background:var(--forest);display:block;overflow:hidden;position:relative}.nb-tour-media .nb-media-fallback,.nb-tour-media img{transition:transform .8s var(--ease)}.nb-tour-card:hover .nb-tour-media .nb-media-fallback,.nb-tour-card:hover .nb-tour-media img{transform:scale(1.055)}.nb-tour-media:after{background:linear-gradient(180deg,rgba(20,30,23,.12),transparent 40%,rgba(20,30,23,.34));content:"";inset:0;pointer-events:none;position:absolute}.nb-tour-category{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:hsla(39,49%,93%,.92);border:1px solid hsla(39,49%,93%,.4);border-radius:999px;color:var(--forest);font-size:.55rem;font-weight:700;left:.85rem;letter-spacing:.08em;max-width:calc(100% - 4.4rem);overflow:hidden;padding:.38rem .62rem;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.nb-tour-arrow,.nb-tour-category{position:absolute;top:.85rem;z-index:2}.nb-tour-arrow{background:var(--ivory);border-radius:50%;color:var(--forest);display:grid;height:34px;opacity:0;place-items:center;right:.85rem;transform:translateY(6px);transition:opacity .3s ease,transform .3s var(--ease);width:34px}.nb-tour-card:focus-within .nb-tour-arrow,.nb-tour-card:hover .nb-tour-arrow{opacity:1;transform:translateY(0)}.nb-tour-body{display:flex;flex:1;flex-direction:column;padding:1.35rem 1.45rem 1.45rem}.nb-tour-chips{display:flex;flex-wrap:wrap;gap:.4rem}.nb-chip{align-items:center;background:#faf6ed;border:1px solid rgba(38,61,43,.12);border-radius:999px;color:#5c655b;display:inline-flex;font-size:.58rem;font-weight:700;gap:.3rem;letter-spacing:.06em;padding:.32rem .55rem;text-transform:uppercase}.nb-chip-gold{background:hsla(40,54%,66%,.15);border-color:hsla(40,54%,66%,.45);color:#6d5426}.nb-tour-title{color:var(--forest);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.55rem,2.2vw,1.9rem);font-weight:600;letter-spacing:-.015em;line-height:1.04;margin:.85rem 0 0}.nb-tour-title a{text-decoration:none}.nb-tour-sub,.nb-tour-title a:hover{color:var(--terracotta)}.nb-tour-sub{font-family:Cormorant Garamond,Georgia,serif;font-size:1.02rem;font-style:italic;margin:.35rem 0 0}.nb-tour-text{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;color:#6a6459;font-size:.79rem;line-height:1.65;margin:.7rem 0 0}.nb-tour-foot{align-items:center;display:flex;flex-wrap:wrap;gap:.65rem;justify-content:space-between;margin-top:auto;padding-top:1.15rem}.nb-tour-price{color:var(--forest);font-size:.72rem;font-weight:700}.nb-tour-price small{color:var(--muted);display:block;font-size:.54rem;font-weight:700;letter-spacing:.1em;margin-bottom:.12rem;text-transform:uppercase}.nb-tour-links{align-items:center;display:flex;gap:.5rem}.nb-tour-view{align-items:center;color:var(--forest);display:inline-flex;font-size:.7rem;font-weight:700;gap:.35rem;text-decoration:none}.nb-tour-view:hover{color:var(--terracotta)}.nb-tour-book{background:var(--terracotta);border-radius:999px;color:#fff;font-size:.63rem;font-weight:700;padding:.55rem .8rem;text-decoration:none;transition:background .2s ease}.nb-tour-book:hover{background:#6f3322}.nb-media-fallback{animation:media-drift 26s ease-in-out infinite alternate;background-color:var(--forest);background-image:radial-gradient(120% 120% at 15% 18%,hsla(40,54%,66%,.38),transparent 46%),radial-gradient(95% 95% at 88% 82%,rgba(129,61,40,.72),transparent 58%),linear-gradient(135deg,#1c3022,#263d2b 52%,#5b4a34);overflow:hidden;position:relative}.nb-media-fallback:before{aspect-ratio:1;border:1px solid hsla(39,49%,93%,.2);border-radius:50%;box-shadow:0 0 0 18px hsla(39,49%,93%,.04),0 0 0 42px hsla(39,49%,93%,.025);content:"";inset:8% 8% auto auto;position:absolute;width:38%}.nb-media-fallback:after{background-image:radial-gradient(hsla(39,49%,93%,.32) .7px,transparent 0);background-size:14px 14px;content:"";inset:0;mix-blend-mode:soft-light;opacity:.28;position:absolute}.nb-map-shell{background:#dfe7dc;border:1px solid var(--line);border-radius:1.6rem;box-shadow:var(--shadow-sm);overflow:hidden;position:relative}.nb-map{min-height:300px;position:relative;width:100%;z-index:0}.nb-map-short{height:300px}.nb-map-tall{height:clamp(420px,58vh,620px)}.nb-map-status{background:linear-gradient(135deg,#23392a,#36503c);color:var(--ivory);display:grid;inset:0;padding:1.5rem;place-items:center;position:absolute;text-align:center;transition:opacity .35s ease,visibility .35s ease;z-index:400}.nb-map-status.is-hidden{opacity:0;visibility:hidden}.nb-map-status p{color:hsla(39,49%,93%,.72);font-size:.8rem;line-height:1.6;margin:.7rem 0 0;max-width:22rem}.nb-map-spinner{animation:spin .8s linear infinite;border:2px solid hsla(39,49%,93%,.25);border-radius:50%;border-top:2px solid var(--gold);height:32px;margin-inline:auto;width:32px}.nb-map-badge{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(24,39,28,.82);border:1px solid hsla(39,49%,93%,.3);border-radius:999px;color:var(--ivory);display:inline-flex;font-size:.57rem;font-weight:700;gap:.4rem;left:1rem;letter-spacing:.1em;padding:.45rem .7rem;pointer-events:none;position:absolute;text-transform:uppercase;top:1rem;z-index:450}.nb-map-badge:before{background:var(--gold);border-radius:50%;box-shadow:0 0 0 3px hsla(40,54%,66%,.2);content:"";height:5px;width:5px}.nb-map-legend{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(24,39,28,.82);border:1px solid hsla(39,49%,93%,.26);border-radius:.9rem;bottom:.8rem;color:hsla(39,49%,93%,.82);font-size:.58rem;line-height:1.6;max-width:calc(100% - 1.6rem);padding:.55rem .7rem;pointer-events:none;position:absolute;right:.8rem;z-index:450}.nb-map-legend span{align-items:center;display:inline-flex;gap:.3rem;margin-right:.7rem}.nb-map-legend i{background:var(--gold);border-radius:50%;height:6px;width:6px}.nb-map-actions{display:flex;flex-wrap:wrap;gap:.45rem}.nb-map-action{background:#fff;border:1px solid rgba(38,61,43,.18);border-radius:999px;color:var(--forest);font-size:.68rem;font-weight:700;padding:.55rem .75rem;transition:background .2s ease,color .2s ease,border-color .2s ease}.nb-map-action.is-active,.nb-map-action:hover{background:var(--forest);border-color:var(--forest);color:var(--ivory)}.nb-map-action:disabled{cursor:wait;opacity:.5}.nb-route-note{align-items:flex-start;color:var(--muted);display:flex;font-size:.68rem;gap:.5rem;line-height:1.5;margin-top:.6rem}.nb-route-note strong{color:var(--forest)}.nb-page-hero{background:var(--forest);color:var(--ivory);isolation:isolate;overflow:hidden;padding-block:clamp(4.5rem,9vw,7rem);position:relative}.nb-page-hero-media{inset:0;opacity:.58;position:absolute;z-index:-2}.nb-page-hero-media img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.nb-page-hero:after{background:linear-gradient(90deg,rgba(20,30,23,.95),rgba(20,30,23,.55) 55%,rgba(20,30,23,.72));content:"";inset:0;position:absolute;z-index:-1}.nb-breadcrumb{align-items:center;color:hsla(39,49%,93%,.62);display:flex;flex-wrap:wrap;font-size:.68rem;font-weight:600;gap:.4rem;letter-spacing:.04em}.nb-breadcrumb a{color:inherit;text-decoration:none}.nb-breadcrumb a:hover{color:var(--gold)}.nb-breadcrumb span[aria-hidden]{color:hsla(39,49%,93%,.3)}.nb-page-title{color:var(--ivory);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.6rem,6vw,4.8rem);font-weight:600;letter-spacing:-.03em;line-height:.98;margin:1rem 0 0;text-wrap:balance}.nb-page-sub{color:hsla(39,49%,93%,.78);font-size:1rem;line-height:1.7;margin:.8rem 0 0;max-width:44rem}.nb-detail-grid{display:grid;gap:2.5rem}.nb-detail-main>section+section{margin-top:3rem}.nb-detail-main h2{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.8rem,3vw,2.35rem);font-weight:600;line-height:1.05}.nb-detail-main h2,.nb-detail-main h3{color:var(--forest)}.nb-detail-main p{color:#5f594f;line-height:1.8}.nb-sticky{position:static}.nb-panel{background:#fff;border:1px solid var(--line);border-radius:1.35rem;box-shadow:var(--shadow-sm);padding:1.35rem}.nb-panel-dark{background:var(--forest);border-color:hsla(39,49%,93%,.14);color:var(--ivory)}.nb-panel h3{font-family:Cormorant Garamond,Georgia,serif;font-size:1.45rem;font-weight:600;margin:0}.nb-detail-facts{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.4rem}.nb-fact{background:#fcf8f1;border:1px solid hsla(40,54%,66%,.3);border-radius:.95rem;padding:.85rem}.nb-fact dt{color:var(--muted);font-size:.56rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.nb-fact dd{color:var(--forest);font-size:.8rem;font-weight:700;line-height:1.35;margin:.3rem 0 0}.nb-day-list{list-style:none;margin:1.4rem 0 0;padding:0;position:relative}.nb-day-list:before{background:linear-gradient(var(--gold),hsla(40,54%,66%,.18));bottom:16px;content:"";left:18px;position:absolute;top:16px;width:1px}.nb-day{display:grid;gap:.9rem;grid-template-columns:38px minmax(0,1fr);padding-bottom:1rem;position:relative}.nb-day-number{background:var(--ivory);border:1px solid hsla(40,54%,66%,.6);border-radius:50%;color:var(--forest);display:grid;font-family:Cormorant Garamond,Georgia,serif;font-size:1rem;font-weight:700;height:37px;place-items:center;width:37px;z-index:1}.nb-day-card{background:#fff;border:1px solid hsla(40,54%,66%,.28);border-radius:1rem;padding:1rem}.nb-day-card h3{color:var(--forest);font-family:Cormorant Garamond,Georgia,serif;font-size:1.25rem;font-weight:600;margin:0}.nb-day-card p{color:#686155;font-size:.8rem;line-height:1.65;margin:.35rem 0 0}.nb-detail-list{display:grid;gap:.5rem;list-style:none;margin:1rem 0 0;padding:0}.nb-detail-list li{color:#5f594f;display:flex;font-size:.82rem;gap:.55rem;line-height:1.6}.nb-detail-list li:before{background:var(--gold);border-radius:50%;content:"";flex:0 0 5px;height:5px;margin-top:.5rem;width:5px}.nb-price{color:var(--gold);display:block;font-family:Cormorant Garamond,Georgia,serif;font-size:1.8rem;font-weight:600;line-height:1}.nb-price small{color:hsla(39,49%,93%,.68);display:block;font-family:Inter,sans-serif;font-size:.55rem;font-weight:700;letter-spacing:.12em;margin-bottom:.3rem;text-transform:uppercase}.nb-share{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}.nb-share a{background:var(--ivory);border-radius:999px;color:var(--forest);font-size:.64rem;font-weight:700;padding:.45rem .65rem;text-decoration:none}.nb-share a:hover{background:var(--gold-soft)}.nb-filter-shell{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:hsla(39,49%,93%,.98);border:1px solid var(--line);border-radius:1.35rem;box-shadow:var(--shadow-lg);margin-top:-2rem;padding:1rem;position:relative;z-index:2}.nb-filter-grid{display:grid;gap:.7rem}.nb-field-label{color:var(--forest);display:block;font-size:.58rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.nb-input,.nb-select,.nb-textarea{background:#fff;border:1px solid hsla(40,54%,66%,.55);border-radius:.7rem;color:var(--charcoal);font-size:.82rem;margin-top:.35rem;padding:.72rem .8rem;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;width:100%}.nb-input::-moz-placeholder,.nb-textarea::-moz-placeholder{color:#9a9286}.nb-input::placeholder,.nb-textarea::placeholder{color:#9a9286}.nb-input:focus,.nb-select:focus,.nb-textarea:focus{border-color:var(--terracotta-bright);box-shadow:0 0 0 3px rgba(184,92,56,.12);outline:none}.nb-category-pills{display:flex;gap:.45rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:thin}.nb-pill{align-items:center;background:transparent;border:1px solid hsla(40,54%,66%,.5);border-radius:999px;color:var(--forest);display:inline-flex;flex:0 0 auto;font-size:.66rem;font-weight:700;gap:.4rem;padding:.5rem .8rem;text-decoration:none;transition:background .2s ease,border-color .2s ease,color .2s ease}.nb-pill span{background:rgba(38,61,43,.08);border-radius:999px;font-size:.55rem;padding:.05rem .35rem}.nb-pill:hover{background:hsla(40,54%,66%,.18);border-color:var(--gold)}.nb-pill.is-active{background:var(--forest);border-color:var(--forest);color:var(--ivory)}.nb-pill.is-active span{background:hsla(39,49%,93%,.15)}.nb-results-bar{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-bottom:1.2rem}.nb-results-count{color:var(--muted);font-family:Inter,sans-serif;font-size:.78rem;font-weight:400}.nb-results-count strong{color:var(--forest)}.nb-empty{border:1px dashed hsla(40,54%,66%,.8);border-radius:1.4rem;padding:3.5rem 1.5rem;text-align:center}.nb-explore-grid{display:grid;gap:1.25rem}.nb-explore-map-card{background:#fff;border:1px solid var(--line);border-radius:1.6rem;box-shadow:var(--shadow-sm);overflow:hidden}.nb-explore-map-head{align-items:center;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;padding:1rem 1.1rem}.nb-explore-map-head h2{color:var(--forest);font-family:Cormorant Garamond,Georgia,serif;font-size:1.45rem;font-weight:600;margin:0}.nb-explore-map-head p{color:var(--muted);font-size:.7rem;margin:.2rem 0 0}.nb-explore-side{align-content:start;display:grid;gap:1rem}.nb-destination-list{display:grid;gap:.35rem;max-height:520px;overflow:auto;padding-right:.2rem;scrollbar-width:thin}.nb-destination-item{align-items:center;border:1px solid transparent;border-radius:.9rem;display:flex;gap:.65rem;padding:.55rem;text-decoration:none;transition:background .2s ease,border-color .2s ease}.nb-destination-item.is-active,.nb-destination-item:hover{background:#fcf8f1;border-color:hsla(40,54%,66%,.5)}.nb-destination-dot{border-radius:50%;box-shadow:0 0 0 4px hsla(40,54%,66%,.13);flex:0 0 9px;height:9px;width:9px}.nb-destination-item strong{color:var(--forest);display:block;font-size:.78rem}.nb-destination-item small{color:var(--muted);display:block;font-size:.6rem;margin-top:.15rem}.nb-destination-item span:last-child{color:#9a9286;font-size:.6rem;margin-left:auto}.nb-route-list{display:grid;gap:.5rem}.nb-route-card{background:#fff;border:1px solid var(--line);border-radius:.95rem;padding:.8rem;text-align:left;transition:border-color .2s ease,background .2s ease,transform .2s ease}.nb-route-card:hover{border-color:var(--gold);transform:translateY(-1px)}.nb-route-card.is-active{background:#f7fbef;border-color:var(--forest)}.nb-route-card strong{align-items:center;color:var(--forest);display:flex;font-size:.75rem;gap:.4rem}.nb-route-card strong i{border-radius:50%;height:8px;width:8px}.nb-route-card small{color:var(--muted);display:block;font-size:.6rem;line-height:1.45;margin-top:.25rem}.nb-map-focus{background:#fff;border:1px solid var(--line);border-radius:1.35rem;padding:1.15rem}.nb-map-focus img{border-radius:.9rem}.nb-map-focus h3{color:var(--forest);font-family:Cormorant Garamond,Georgia,serif;font-size:1.35rem;font-weight:600;margin:.7rem 0 0}.nb-map-focus p{color:var(--muted);font-size:.74rem;line-height:1.55;margin:.3rem 0 0}.nb-map-focus .nb-map-action{margin-top:.7rem}.nb-gallery-toolbar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;margin-bottom:1.5rem}.nb-title-sm{font-size:clamp(1.9rem,3.2vw,2.7rem)}.nb-gallery-intro{color:var(--muted);font-size:.92rem;line-height:1.7;margin-top:.7rem;max-width:35rem}.nb-gallery-filters{display:flex;flex-wrap:wrap;gap:.4rem}.nb-gallery-filters .nb-pill{font-size:.62rem;padding:.45rem .7rem}.nb-masonry{-moz-columns:2;column-count:2;-moz-column-gap:1rem;column-gap:1rem;list-style:none;margin:0;padding:0}.nb-masonry-item{-moz-column-break-inside:avoid;break-inside:avoid;margin:0 0 1rem}.nb-masonry figure{background:#fff;border:1px solid var(--line);border-radius:1rem;box-shadow:0 12px 35px -30px rgba(24,39,28,.55);margin:0;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}.nb-masonry figure:hover{box-shadow:0 18px 40px -28px rgba(24,39,28,.55);transform:translateY(-3px)}.nb-masonry-link{position:relative}.nb-masonry-link,.nb-masonry-media{background:#e8e0d1;display:block;overflow:hidden}.nb-masonry-media.is-wide{aspect-ratio:4/3}.nb-masonry-media.is-landscape{aspect-ratio:3/2}.nb-masonry-media.is-square{aspect-ratio:1/1}.nb-masonry-media.is-portrait{aspect-ratio:3/4}.nb-masonry-media img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .8s var(--ease);width:100%}.nb-masonry-link:focus-visible img,.nb-masonry-link:hover img{transform:scale(1.045)}.nb-masonry-zoom{background:rgba(24,39,28,.8);border-radius:50%;bottom:.55rem;color:var(--ivory);display:grid;height:30px;opacity:0;place-items:center;position:absolute;right:.55rem;transform:translateY(4px);transition:opacity .25s ease,transform .25s ease;width:30px}.nb-masonry-link:focus-visible .nb-masonry-zoom,.nb-masonry-link:hover .nb-masonry-zoom{opacity:1;transform:none}.nb-masonry figcaption{padding:.65rem .75rem .8rem}.nb-masonry-caption{color:var(--forest);display:block;font-family:Cormorant Garamond,Georgia,serif;font-size:1.05rem;font-weight:600;line-height:1.16}.nb-masonry-place{color:var(--terracotta);display:block;font-size:.54rem;font-weight:700;letter-spacing:.16em;margin-top:.15rem;text-transform:uppercase}.nb-masonry-credit{color:var(--muted);display:block;font-size:.53rem;line-height:1.45;margin-top:.28rem}.nb-masonry-credit a{color:inherit;text-underline-offset:2px}.nb-gallery-note{color:var(--muted);font-size:.7rem;line-height:1.6;margin:1.4rem 0 0}.nb-gallery-note a{color:var(--terracotta);text-decoration:underline;text-underline-offset:2px}.nb-lightbox-open{overflow:hidden}.nb-lightbox{background:#142017;border:1px solid hsla(40,54%,66%,.32);border-radius:1.25rem;box-shadow:0 40px 100px -30px rgba(0,0,0,.8);color:var(--ivory);max-height:calc(100dvh - 1.5rem);max-width:none;overflow:auto;padding:0;width:min(1080px,calc(100vw - 1.5rem))}.nb-lightbox::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:rgba(10,16,12,.86)}.nb-lightbox-shell{padding:.85rem}.nb-lightbox-bar{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:.1rem .15rem .6rem}.nb-lightbox-count{color:hsla(39,49%,93%,.62);font-size:.66rem;font-weight:700;letter-spacing:.16em;margin:0;text-transform:uppercase}.nb-lightbox-close,.nb-lightbox-nav{background:hsla(39,49%,93%,.08);border:1px solid hsla(39,49%,93%,.25);border-radius:50%;color:var(--ivory);display:grid;flex:0 0 auto;height:38px;place-items:center;transition:background .2s ease,border-color .2s ease;width:38px}.nb-lightbox-close:hover,.nb-lightbox-nav:hover{background:hsla(40,54%,66%,.2);border-color:var(--gold)}.nb-lightbox-stage{align-items:center;display:grid;gap:.55rem;grid-template-columns:auto minmax(0,1fr) auto;position:relative}.nb-lightbox-figure{margin:0;min-width:0;text-align:center}.nb-lightbox-figure img{border-radius:.75rem;display:block;margin:0 auto;max-height:68vh;max-width:100%;-o-object-fit:contain;object-fit:contain}.nb-lightbox-figure figcaption{padding:.7rem .4rem .2rem;text-align:left}#lightbox-caption{color:var(--ivory);font-family:Cormorant Garamond,Georgia,serif;font-size:1.35rem;font-weight:600;line-height:1.2;margin:0}.nb-lightbox-meta{color:hsla(39,49%,93%,.55);font-size:.65rem;line-height:1.5;margin:.22rem 0 0}.nb-lightbox-meta a{color:var(--gold)}.nb-lightbox-nav[hidden]{display:none}.nb-why-grid{display:grid;gap:1rem;margin-top:2rem}.nb-why-card{background:#fff;border:1px solid var(--line);border-radius:1.25rem;box-shadow:var(--shadow-sm);overflow:hidden;padding:1.35rem;position:relative;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s ease}.nb-why-card:hover{border-color:hsla(40,54%,66%,.8);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.nb-why-number{color:hsla(40,54%,66%,.7);display:block;font-size:2.6rem;line-height:.9}.nb-why-card h3,.nb-why-number{font-family:Cormorant Garamond,Georgia,serif;font-weight:600}.nb-why-card h3{color:var(--forest);font-size:1.45rem;line-height:1.08;margin:.65rem 0 0}.nb-why-card p{color:var(--muted);font-size:.8rem;line-height:1.7;margin:.55rem 0 0}.nb-why-list{display:grid;gap:.75rem;list-style:none;margin:1.35rem 0 0;padding:0}.nb-why-list li{border-left:2px solid var(--gold);color:var(--muted);font-size:.82rem;line-height:1.65;padding-left:1rem}.nb-why-list strong{color:var(--forest);display:block;font-size:.86rem;margin-bottom:.1rem}.nb-legal-hero{background:linear-gradient(135deg,#18271c,#263d2b 62%,#344a37);color:var(--ivory);isolation:isolate;overflow:hidden;padding-block:clamp(4rem,8vw,6.5rem);position:relative}.nb-legal-hero:after{border:1px solid hsla(39,49%,93%,.1);border-radius:50%;box-shadow:0 0 0 42px hsla(39,49%,93%,.025),0 0 0 84px hsla(39,49%,93%,.018);content:"";height:320px;position:absolute;right:-6rem;top:-8rem;width:320px;z-index:-1}.nb-legal-updated{color:hsla(39,49%,93%,.5);font-size:.64rem;font-weight:700;letter-spacing:.14em;margin:1rem 0 0;text-transform:uppercase}.nb-legal{display:grid;gap:2rem}.nb-legal-toc{align-self:start;background:#fcf8f1;border:1px solid var(--line);border-radius:1.25rem;padding:1.15rem}.nb-legal-toc ol{counter-reset:legal;display:grid;gap:.25rem;list-style:none;margin:.85rem 0 0;padding:0}.nb-legal-toc li{counter-increment:legal}.nb-legal-toc a{color:var(--forest);display:flex;font-size:.73rem;gap:.55rem;line-height:1.4;padding:.22rem 0;text-decoration:none}.nb-legal-toc a:before{content:counter(legal,decimal-leading-zero);font-size:.55rem;font-weight:700;letter-spacing:.05em}.nb-legal-toc a:before,.nb-legal-toc a:hover{color:var(--terracotta)}.nb-legal-body{max-width:780px}.nb-prose{color:#514b43;font-size:.92rem;line-height:1.8}.nb-prose h2{color:var(--forest);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.6rem,2.6vw,2rem);font-weight:600;line-height:1.1;margin:2.1rem 0 .55rem}.nb-prose section:first-child h2{margin-top:0}.nb-prose p{margin:.65rem 0}.nb-prose ul{display:grid;gap:.35rem;list-style:disc;margin:.8rem 0;padding-left:1.35rem}.nb-prose li::marker{color:var(--terracotta)}.nb-prose a{color:var(--terracotta);text-decoration:underline;text-underline-offset:2px}.nb-prose strong{color:var(--forest)}.nb-legal-contact{display:grid;gap:.45rem;list-style:none;margin:.8rem 0 0;padding:0}.nb-credits-intro{max-width:780px}.nb-credits-grid{display:grid;gap:.75rem;margin-top:2rem}.nb-credit-card{background:#fff;border:1px solid var(--line);border-radius:1rem;display:flex;gap:.8rem;min-width:0;padding:.6rem}.nb-credit-thumb{background:#e8e0d1;border-radius:.65rem;flex:0 0 92px;height:76px;overflow:hidden;width:92px}.nb-credit-thumb img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.nb-credit-body{min-width:0}.nb-credit-body h2{color:var(--forest);display:-webkit-box;font-family:Cormorant Garamond,Georgia,serif;font-size:1.05rem;font-weight:600;line-height:1.15;margin:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.nb-credit-artist{color:var(--terracotta);font-size:.68rem;font-weight:700;margin:.18rem 0 0}.nb-credit-meta{color:var(--muted);font-size:.58rem;line-height:1.45;margin:.2rem 0 0}.nb-credit-meta a{color:inherit}.nb-credits-tools{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1.5rem}.nb-credits-tools h2{color:var(--forest);font-family:Cormorant Garamond,Georgia,serif;font-size:1.8rem;font-weight:600;margin:0}.nb-credits-tools ul{color:var(--muted);display:grid;font-size:.75rem;gap:.6rem;line-height:1.65;list-style:none;margin:1rem 0 0;padding:0}.nb-credits-tools strong{color:var(--forest)}.nb-credits-tools a{color:var(--terracotta);text-decoration:underline;text-underline-offset:2px}.nb-cta{background:radial-gradient(120% 150% at 100% 0,hsla(40,54%,66%,.25),transparent 46%),linear-gradient(135deg,#1d3023,#263d2b 58%,#344a37);border-radius:1.75rem;color:var(--ivory);isolation:isolate;overflow:hidden;padding:clamp(2rem,5vw,3.5rem);position:relative}.nb-cta:after{border:1px solid hsla(39,49%,93%,.14);border-radius:50%;bottom:-140px;box-shadow:0 0 0 40px hsla(39,49%,93%,.03),0 0 0 80px hsla(39,49%,93%,.02);content:"";height:260px;position:absolute;right:-60px;width:260px;z-index:-1}.nb-form-card{background:#fff;border:1px solid var(--line);border-radius:1.5rem;box-shadow:var(--shadow-sm);padding:clamp(1.2rem,3vw,2.4rem)}.nb-form-card fieldset[data-step-panel]{border:0;margin:0;padding:0}.nb-form-card legend{color:var(--forest);font-family:Cormorant Garamond,Georgia,serif;font-size:1.65rem;font-weight:600;margin-bottom:1rem}.nb-form-card label{color:var(--forest);font-size:.76rem;font-weight:600}.nb-form-card .nb-input,.nb-form-card .nb-select,.nb-form-card .nb-textarea{margin-top:.4rem}.nb-wizard{display:grid;gap:.4rem;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0 0 2rem;padding:0}.nb-wizard li{border-bottom:3px solid hsla(40,54%,66%,.24);color:#6b6459;font-size:.64rem;font-weight:700;letter-spacing:.02em;padding:0 0 .55rem}.nb-wizard li.is-current,.nb-wizard li[aria-current=step]{border-color:var(--terracotta-bright);color:var(--forest)}.nb-review{background:#fbf7ef;border:1px solid hsla(40,54%,66%,.4);border-radius:1rem;padding:1rem}.nb-review>div{border-bottom:1px solid hsla(40,54%,66%,.25);display:grid;gap:.2rem;padding:.65rem 0}.nb-review>div:last-child{border-bottom:0}.nb-review dt{color:var(--forest);font-size:.68rem;font-weight:700}.nb-review dd{color:#5f594f;font-size:.76rem;margin:0}.nb-footer{background:var(--forest-deep);color:var(--ivory);margin-top:5rem}.nb-footer-grid{display:grid;gap:2rem;padding-block:3.5rem}.nb-brand-footer .nb-logo-mark{background:hsla(39,49%,93%,.06);border-color:hsla(40,54%,66%,.48)}.nb-brand-footer .nb-logo-text{color:var(--ivory)}.nb-brand-footer .nb-logo-text em{color:var(--gold)}.nb-brand-footer .nb-logo-text small,.nb-footer-tagline{color:hsla(39,49%,93%,.62)}.nb-footer-tagline{font-size:.78rem;line-height:1.7;margin:1rem 0 0;max-width:20rem}.nb-footer-wa{color:var(--gold);display:inline-block;font-size:.72rem;font-weight:700;margin-top:1rem;text-decoration:none}.nb-footer-wa:hover{text-decoration:underline}.nb-footer-heading{color:var(--gold);font-size:.62rem;font-weight:700;letter-spacing:.18em;margin:0;text-transform:uppercase}.nb-footer-links{color:hsla(39,49%,93%,.72);display:grid;font-size:.76rem;gap:.6rem;list-style:none;margin:1rem 0 0;padding:0}.nb-footer-links a{text-decoration:none}.nb-footer-links a:hover{color:var(--gold)}.nb-footer-bottom,.nb-footer-note{color:hsla(39,49%,93%,.62)}.nb-footer-bottom{align-items:center;border-top:1px solid hsla(39,49%,93%,.12);display:flex;flex-wrap:wrap;font-size:.64rem;gap:.5rem;justify-content:space-between;padding-block:1.1rem}.nb-footer-bottom p{margin:0}.nb-footer-legal{display:flex;flex-wrap:wrap;gap:.35rem .6rem;list-style:none;margin:0;padding:0}.nb-footer-legal a{align-items:center;display:inline-flex;min-height:24px;padding-block:.25rem}.nb-backtop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(24,39,28,.92);border:1px solid hsla(40,54%,66%,.5);border-radius:50%;bottom:1rem;color:var(--ivory);display:grid;height:42px;left:auto;opacity:0;place-items:center;position:fixed;right:1rem;transform:translateY(8px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background .2s ease;visibility:hidden;width:42px;z-index:45}.nb-backtop.is-visible{opacity:1;transform:translateY(0);visibility:visible}.nb-backtop:hover{background:var(--terracotta)}.will-reveal{opacity:0;transform:translateY(26px)}.will-reveal.is-revealed{animation:reveal-up .8s var(--ease) both}.nb-anim{animation:rise-in .9s var(--ease) backwards}.nb-anim-d1{animation-delay:.08s}.nb-anim-d2{animation-delay:.16s}.nb-anim-d3{animation-delay:.24s}.nb-anim-d4{animation-delay:.32s}.nb-anim-d5{animation-delay:.4s}@keyframes rise-in{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-up{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-drift{0%{transform:scale(1.01) translateZ(0)}to{transform:scale(1.07) translate3d(-1.5%,-1%,0)}}@keyframes media-drift{0%{background-position:0 0,100% 100%,0 50%}to{background-position:8% 10%,92% 90%,100% 50%}}@keyframes scroll-pulse{0%,to{opacity:.4;transform:scaleY(.7);transform-origin:top}50%{opacity:1;transform:scaleY(1);transform-origin:top}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes nav-drop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media (max-width:767px){.nb-backtop{height:38px;width:38px}}@media (max-width:639px){.nb-lightbox{max-height:calc(100dvh - .75rem);width:calc(100vw - .75rem)}.nb-lightbox-shell{padding:.55rem}.nb-lightbox-stage{display:block}.nb-lightbox-figure img{max-height:62vh}.nb-lightbox-nav{background:rgba(24,39,28,.72);height:34px;position:absolute;top:42%;width:34px;z-index:2}.nb-lightbox-nav--prev{left:.25rem}.nb-lightbox-nav--next{right:.25rem}}@media (min-width:640px){.nb-trust-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.nb-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nb-detail-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.nb-masonry{-moz-columns:3;column-count:3}}@media (min-width:768px){.nb-journey-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nb-footer-grid{grid-template-columns:1.4fr repeat(3,1fr)}.nb-explore-grid{grid-template-columns:minmax(0,1fr)}.nb-credits-grid,.nb-why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.nb-nav{display:flex}.nb-header-wa{display:inline-flex}.nb-nav-toggle{display:none}.nb-mobile-nav{display:none!important}.nb-hero-grid{gap:3.5rem;grid-template-columns:minmax(0,1fr) 370px}.nb-hero-aside{display:block}.nb-journey-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.nb-detail-grid{gap:3rem;grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr)}.nb-sticky{align-self:start;position:sticky;top:6.2rem}.nb-explore-grid{align-items:start;grid-template-columns:minmax(0,1fr) 355px}.nb-filter-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.nb-form-card{padding:2.5rem}.nb-masonry{-moz-columns:4;column-count:4}.nb-why-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nb-legal{gap:3rem;grid-template-columns:250px minmax(0,1fr)}.nb-legal-toc{position:sticky;top:6.2rem}}@media (min-width:1200px){.nb-credits-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1280px){.nb-hero-title{font-size:5.6rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.will-reveal,[data-reveal]{opacity:1!important;transform:none!important}.nb-hero-slide{animation:none!important;opacity:0;transform:none!important}.nb-hero-slide:first-child{opacity:1!important}}.text-charcoal\/40,.text-charcoal\/45,.text-charcoal\/50,.text-charcoal\/55{color:rgba(41,37,31,.68)}.text-charcoal\/60{color:rgba(41,37,31,.72)}.text-ivory\/45{color:hsla(39,49%,93%,.68)}.hover\:text-terracotta:hover{--tw-text-opacity:1;color:rgb(129 61 40/var(--tw-text-opacity,1))}.has-\[\:checked\]\:border-terracotta:has(:checked){--tw-border-opacity:1;border-color:rgb(129 61 40/var(--tw-border-opacity,1))}.has-\[\:checked\]\:bg-white:has(:checked){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.has-\[\:checked\]\:ring-2:has(:checked){--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.has-\[\:checked\]\:ring-terracotta\/20:has(:checked){--tw-ring-color:rgba(129,61,40,.2)}@media (min-width:640px){.sm\:right-auto{right:auto}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:hidden{display:none}.sm\:max-w-xs{max-width:20rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:p-9{padding:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:max-w-xs{max-width:20rem}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[0\.8fr_1\.2fr\]{grid-template-columns:.8fr 1.2fr}.lg\:grid-cols-\[0\.9fr_1\.1fr\]{grid-template-columns:.9fr 1.1fr}.lg\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.lg\:grid-cols-\[1\.4fr_1fr\]{grid-template-columns:1.4fr 1fr}.lg\:grid-cols-\[1\.5fr_1fr\]{grid-template-columns:1.5fr 1fr}.lg\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:py-20{padding-bottom:5rem;padding-top:5rem}}@media (min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.hidden{display:none!important}
@tailwind base;
@tailwind components;
@tailwind utilities;

/* ------------------------------------------------------------------ *
 * Nyika & Beyond — experience layer
 * A warm, editorial travel system: cinematic photography, deep forest,
 * terracotta accents and quiet gold details.
 * ------------------------------------------------------------------ */

:root {
  --forest: #263d2b;
  --forest-deep: #18271c;
  --terracotta: #813d28;
  --terracotta-bright: #b85c38;
  --gold: #d7b778;
  --gold-soft: #ead9b8;
  --ivory: #f6f0e5;
  --ivory-deep: #eee5d4;
  --charcoal: #29251f;
  --muted: #6f685d;
  --line: rgba(215, 183, 120, 0.34);
  --shadow-sm: 0 1px 2px rgba(41, 37, 31, 0.05), 0 10px 30px -18px rgba(41, 37, 31, 0.25);
  --shadow-lg: 0 28px 70px -32px rgba(24, 39, 28, 0.55);
  --radius: 1.5rem;
  --container: 1280px;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

* { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: 96px;
  scrollbar-gutter: stable;
  scrollbar-color: rgba(198, 106, 69, 0.55) rgba(233, 217, 189, 0.35);
  scrollbar-width: thin;
}
:root { accent-color: var(--terracotta-bright); }
input, select, textarea { caret-color: var(--terracotta-bright); }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--ivory);
  color: var(--charcoal);
  font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--gold); color: var(--forest-deep); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
h1, h2, h3, h4, .nb-serif { font-family: "Cormorant Garamond", Georgia, serif; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }

.nb-container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}
.nb-skip {
  position: fixed;
  left: 1rem;
  top: -100px;
  z-index: 100;
  border-radius: 0.5rem;
  background: var(--forest);
  color: var(--ivory);
  padding: 0.75rem 1rem;
  transition: top 0.2s ease;
}
.nb-skip:focus { top: 1rem; }

/* ---------- progress + header ---------- */
.nb-progress {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 70;
  height: 3px;
  pointer-events: none;
  background: transparent;
}
.nb-progress span {
  display: block;
  height: 100%;
  transform: scaleX(0);
  transform-origin: 0 50%;
  background: linear-gradient(90deg, var(--terracotta-bright), var(--gold), #f0dfbd);
  box-shadow: 0 0 12px rgba(215, 183, 120, 0.6);
}

.nb-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(215, 183, 120, 0.32);
  background: rgba(246, 240, 229, 0.9);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
.nb-header.is-scrolled {
  background: rgba(246, 240, 229, 0.97);
  box-shadow: 0 12px 35px -28px rgba(24, 39, 28, 0.7);
}
.nb-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 78px;
  transition: min-height 0.3s ease;
}
.nb-header.is-scrolled .nb-header-inner { min-height: 66px; }
.nb-brand { display: inline-flex; align-items: center; gap: 0.7rem; text-decoration: none; min-width: 0; }
/* Brand badge logo (round artwork with a ring shadow so it pops on any background). */
.nb-logo-img {
  display: block;
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(215, 183, 120, 0.55), 0 6px 16px -7px rgba(24, 39, 28, 0.7);
}
.nb-brand-footer .nb-logo-img { width: 62px; height: 62px; flex: 0 0 62px; box-shadow: 0 0 0 1px rgba(215, 183, 120, 0.45), 0 10px 24px -10px rgba(0, 0, 0, 0.55); }
@media (max-width: 640px) {
  .nb-logo-img { width: 44px; height: 44px; flex: 0 0 44px; }
  .nb-brand-footer .nb-logo-img { width: 50px; height: 50px; flex: 0 0 50px; }
}
.nb-logo-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--forest);
  white-space: nowrap;
}
.nb-logo-text em { color: var(--terracotta); font-style: italic; }
.nb-logo-text small {
  margin-top: 0.3rem;
  font-family: Inter, sans-serif;
  font-size: 0.47rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}
.nb-nav { display: none; align-items: center; gap: 1.9rem; }
.nb-nav-link {
  position: relative;
  padding: 0.35rem 0;
  color: #4b554b;
  font-size: 0.83rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none;
  transition: color 0.2s ease;
}
.nb-nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.2rem;
  height: 2px;
  border-radius: 2px;
  background: var(--terracotta-bright);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 0.28s var(--ease);
}
.nb-nav-link:hover, .nb-nav-link.is-active { color: var(--forest); }
.nb-nav-link:hover::after, .nb-nav-link.is-active::after { transform: scaleX(1); }
.nb-header-actions { display: flex; align-items: center; gap: 0.6rem; }
/* Keep the header CTA on a single line when the viewport is narrow. */
.nb-header-actions .nb-btn { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 430px) {
  .nb-logo-text { font-size: 1.05rem; }
  .nb-logo-text small { font-size: 0.42rem; letter-spacing: 0.16em; }
  .nb-header-actions .nb-btn { padding: 0.6rem 0.8rem; font-size: 0.71rem; }
}
/* On the narrowest phones the wordmark cannot share the row with the CTA and
   menu button without colliding; keep the enlarged badge and expose the full
   name through the link's accessible label instead. */
@media (max-width: 379.98px) {
  .nb-header .nb-logo-text { display: none; }
  .nb-header .nb-brand { gap: 0; }
}
.nb-header-wa {
  display: none;
  align-items: center;
  gap: 0.35rem;
  color: var(--forest);
  font-size: 0.76rem;
  font-weight: 600;
  text-decoration: none;
  opacity: 0.78;
  transition: opacity 0.2s ease;
}
.nb-header-wa:hover { opacity: 1; }
.nb-nav-toggle {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 42px;
  height: 42px;
  padding: 0 10px;
  border: 1px solid rgba(38, 61, 43, 0.2);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  color: var(--forest);
}
.nb-nav-toggle span { display: block; height: 2px; border-radius: 2px; background: currentColor; transition: transform 0.25s ease, opacity 0.2s ease; }
.nb-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nb-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nb-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.nb-mobile-nav {
  border-top: 1px solid var(--line);
  background: var(--ivory);
  box-shadow: 0 22px 40px -30px rgba(24, 39, 28, 0.65);
  animation: nav-drop 0.25s var(--ease) both;
}
.nb-mobile-nav .nb-container { display: flex; flex-direction: column; gap: 0.2rem; padding-block: 1rem 1.25rem; }
.nb-mobile-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 0.6rem;
  border-radius: 0.75rem;
  color: var(--forest);
  font-weight: 600;
  text-decoration: none;
}
.nb-mobile-link:hover { background: #fff; }
.nb-mobile-link span { color: var(--terracotta); }
.nb-mobile-cta { margin-top: 0.5rem; justify-content: center; }
.nb-mobile-wa { padding: 0.7rem 0.6rem; color: var(--muted); font-size: 0.8rem; text-align: center; text-decoration: none; }

/* ---------- buttons ---------- */
.nb-btn {
  position: relative;
  z-index: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 0.9rem 1.4rem;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.1;
  text-decoration: none;
  transition: transform 0.25s var(--ease), box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.nb-btn::before {
  content: "";
  position: absolute;
  inset: -20% -40%;
  z-index: -1;
  background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, 0.22) 50%, transparent 70%);
  transform: translateX(-80%) skewX(-16deg);
  transition: transform 0.7s var(--ease);
}
.nb-btn:hover::before { transform: translateX(80%) skewX(-16deg); }
.nb-btn:hover { transform: translateY(-2px); }
.nb-btn:active { transform: translateY(0); }
.nb-btn-sm { padding: 0.68rem 1.05rem; font-size: 0.77rem; }
.nb-btn-lg { padding: 1.05rem 1.8rem; font-size: 0.92rem; }
.nb-btn-primary { background: var(--terracotta); color: #fff; box-shadow: 0 16px 28px -20px rgba(129, 61, 40, 0.9); }
.nb-btn-primary:hover { background: #6f3322; box-shadow: 0 22px 36px -20px rgba(129, 61, 40, 0.8); }
.nb-btn-forest { background: var(--forest); color: var(--ivory); box-shadow: 0 16px 28px -20px rgba(24, 39, 28, 0.9); }
.nb-btn-forest:hover { background: var(--forest-deep); }
.nb-btn-gold { background: var(--gold); color: var(--forest-deep); }
.nb-btn-gold:hover { background: #e5ca96; }
.nb-btn-ghost { border-color: rgba(38, 61, 43, 0.32); color: var(--forest); background: transparent; }
.nb-btn-ghost:hover { background: var(--forest); border-color: var(--forest); color: var(--ivory); }
.nb-btn-ghost-light { border-color: rgba(246, 240, 229, 0.48); color: var(--ivory); background: rgba(246, 240, 229, 0.04); }
.nb-btn-ghost-light:hover { background: var(--ivory); border-color: var(--ivory); color: var(--forest); }
.nb-btn-link { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--terracotta); font-size: 0.84rem; font-weight: 700; text-decoration: none; }
.nb-btn-link svg { transition: transform 0.25s var(--ease); }
.nb-btn-link:hover svg { transform: translateX(4px); }

/* ---------- type / section furniture ---------- */
.nb-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--terracotta);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.nb-eyebrow::before { content: ""; width: 22px; height: 1px; background: currentColor; opacity: 0.65; }
.nb-eyebrow-light { color: var(--gold); }
.nb-title { margin: 0.7rem 0 0; color: var(--forest); font-size: clamp(2.15rem, 4.6vw, 3.6rem); font-weight: 600; line-height: 1.02; letter-spacing: -0.025em; text-wrap: balance; }
.nb-title-light { color: var(--ivory); }
.nb-lead { margin-top: 1rem; max-width: 42rem; color: #5e594f; font-size: 1.02rem; line-height: 1.75; }
.nb-lead-light { color: rgba(246, 240, 229, 0.78); }
.nb-section { padding-block: clamp(4.5rem, 8vw, 7.25rem); }
.nb-section-tight { padding-block: clamp(3rem, 5vw, 4.5rem); }
.nb-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.nb-section-dark { background: var(--forest); color: var(--ivory); }
.nb-section-dark .nb-title { color: var(--ivory); }
.nb-section-dark .nb-lead { color: rgba(246, 240, 229, 0.75); }
.nb-rule { height: 1px; border: 0; background: linear-gradient(90deg, transparent, var(--line), transparent); }

/* ---------- hero ---------- */
.nb-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: min(92vh, 880px);
  overflow: hidden;
  background: var(--forest-deep);
  color: var(--ivory);
  padding-block: clamp(6.5rem, 12vw, 9rem) clamp(2.5rem, 5vw, 4rem);
}
.nb-hero-media { position: absolute; inset: 0; z-index: -3; }
/* Hero background slider: five slides, each on screen for 3 seconds, crossfading
   over 0.5s of every 3s (15s cycle). Pure CSS, so it also works without JavaScript. */
.nb-hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 58% 50%;
  opacity: 0;
  animation: nb-hero-cycle 15s var(--ease) infinite both;
}
.nb-hero-slide:nth-child(1) { animation-delay: 0s; }
.nb-hero-slide:nth-child(2) { animation-delay: 3s; }
.nb-hero-slide:nth-child(3) { animation-delay: 6s; }
.nb-hero-slide:nth-child(4) { animation-delay: 9s; }
.nb-hero-slide:nth-child(5) { animation-delay: 12s; }
@keyframes nb-hero-cycle {
  0%   { opacity: 0; transform: scale(1.04); }
  5%   { opacity: 1; }
  18%  { opacity: 1; transform: scale(1.085); }
  24%  { opacity: 0; transform: scale(1.1); }
  100% { opacity: 0; transform: scale(1.04); }
}
.nb-hero-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(75% 68% at 50% 44%, rgba(15, 24, 19, 0.8) 0%, rgba(15, 24, 19, 0.45) 58%, rgba(15, 24, 19, 0.18) 100%),
    linear-gradient(180deg, rgba(20, 30, 23, 0.6) 0%, rgba(20, 30, 23, 0.25) 30%, rgba(20, 30, 23, 0.82) 100%);
}
.nb-hero-grain {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0.16;
  pointer-events: none;
  background-image: radial-gradient(rgba(246, 240, 229, 0.5) 0.6px, transparent 0.6px);
  background-size: 5px 5px;
  mask-image: radial-gradient(80% 70% at 50% 45%, #000, transparent 78%);
}
.nb-hero-inner { width: 100%; }
/* Centred hero stack: every child sits on the horizontal midline. */
.nb-hero-grid {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  text-align: center;
}
.nb-hero-tagline {
  margin: 0.9rem 0 0;
  color: var(--gold);
  font-size: clamp(0.72rem, 1.2vw, 0.86rem);
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  background: linear-gradient(100deg, #d7b778 0%, #f4e7c8 28%, #d7b778 52%, #f4e7c8 76%, #d7b778 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: nb-tagline-shine 9s linear infinite;
}
@keyframes nb-tagline-shine {
  0% { background-position: 0% 50%; }
  100% { background-position: -220% 50%; }
}
.nb-hero-title {
  margin: 1rem auto 0;
  max-width: 20ch;
  font-size: clamp(3.2rem, 7vw, 5.9rem);
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
.nb-hero-title em { color: var(--gold); font-style: italic; }
.nb-hero-copy { margin: 1.4rem auto 0; max-width: 46rem; color: rgba(246, 240, 229, 0.86); font-size: 1.02rem; line-height: 1.72; }
.nb-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.7rem; margin-top: 1.8rem; }
.nb-hero-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.45rem; margin-top: 2rem; }
.nb-hero-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 0.8rem;
  border: 1px solid rgba(246, 240, 229, 0.18);
  border-radius: 999px;
  background: rgba(246, 240, 229, 0.07);
  color: rgba(246, 240, 229, 0.82);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
.nb-hero-meta span::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }
/* Signature-route glass strip: centred under the hero stack on every size. */
.nb-hero-aside { display: flex; justify-content: center; width: 100%; margin-top: 1.9rem; text-align: left; }
.nb-route-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.4rem 0.9rem;
  width: fit-content;
  max-width: 100%;
  padding: 0.72rem 1.15rem;
  border-radius: 999px;
}
.nb-route-bar-head { display: flex; flex-direction: column; line-height: 1.25; }
.nb-route-bar-head span { color: var(--gold); font-size: 0.55rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; }
.nb-route-bar-head strong { color: var(--ivory); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.02rem; font-weight: 600; white-space: nowrap; }
.nb-route-bar-stops { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; margin: 0; padding: 0; list-style: none; color: rgba(246, 240, 229, 0.84); font-size: 0.72rem; }
.nb-route-bar-stops li { display: inline-flex; align-items: center; gap: 0.4rem; white-space: nowrap; }
.nb-route-bar-stops li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }
.nb-route-bar-foot { display: flex; align-items: center; gap: 0.6rem; }
.nb-route-bar-foot small { color: rgba(246, 240, 229, 0.55); font-size: 0.64rem; white-space: nowrap; }
/* Stack the route stops as a timeline on narrow screens. */
@media (max-width: 720px) {
  .nb-route-bar { width: 100%; border-radius: 1.3rem; }
  .nb-route-bar-head { align-items: center; text-align: center; }
  .nb-route-bar-stops { flex-direction: column; align-items: flex-start; gap: 0.3rem; }
}
.nb-glass {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(246, 240, 229, 0.22);
  border-radius: 1.6rem;
  background: rgba(246, 240, 229, 0.1);
  box-shadow: 0 30px 80px -40px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(20px) saturate(1.15);
  -webkit-backdrop-filter: blur(20px) saturate(1.15);
  padding: 1.4rem;
}
.nb-glass::after {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  right: -60px;
  top: -70px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(215, 183, 120, 0.28), transparent 70%);
  pointer-events: none;
}
.nb-hero-scroll {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 2.1rem auto 0;
  color: rgba(246, 240, 229, 0.55);
  font-size: 0.63rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.25s var(--ease);
}
.nb-hero-scroll:hover, .nb-hero-scroll:focus-visible { color: var(--gold); }
.nb-hero-scroll span {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  background: none;
  transform: rotate(45deg);
  animation: scroll-bounce 1.8s var(--ease) infinite;
}
@keyframes scroll-bounce {
  0%, 100% { transform: translateY(-2px) rotate(45deg); opacity: 0.55; }
  50% { transform: translateY(3px) rotate(45deg); opacity: 1; }
}

/* ---------- stats / trust strip ---------- */
.nb-trust-strip { border-bottom: 1px solid var(--line); background: #fbf7ef; }
.nb-trust-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.nb-trust-item { background: #fbf7ef; padding: 1.2rem 1rem; text-align: center; }
.nb-trust-item strong { display: block; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(1.7rem, 3vw, 2.2rem); font-weight: 600; line-height: 1; }
.nb-trust-item span { display: block; margin-top: 0.4rem; color: var(--muted); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }

/* ---------- journey bento ---------- */
.nb-journey-grid { display: grid; gap: 1rem; margin-top: 2.4rem; }
.nb-journey-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(215, 183, 120, 0.3);
  border-radius: 1.65rem;
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform 0.35s var(--ease), box-shadow 0.35s ease, border-color 0.35s ease;
}
.nb-journey-card:hover { transform: translateY(-5px); border-color: rgba(184, 92, 56, 0.45); box-shadow: var(--shadow-lg); }
.nb-journey-card-dark { border-color: rgba(246, 240, 229, 0.13); background: var(--forest); color: var(--ivory); }
.nb-journey-card-dark:hover { border-color: rgba(215, 183, 120, 0.45); }
.nb-journey-media { position: relative; overflow: hidden; background: var(--forest); }
.nb-journey-media img, .nb-journey-media .nb-media-fallback { transition: transform 0.9s var(--ease); }
.nb-journey-card:hover .nb-journey-media img, .nb-journey-card:hover .nb-journey-media .nb-media-fallback { transform: scale(1.045); }
.nb-journey-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 30, 23, 0.16), transparent 34%, rgba(20, 30, 23, 0.3)); pointer-events: none; }
.nb-journey-chip {
  position: absolute;
  z-index: 2;
  left: 0.9rem;
  top: 0.9rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 1px solid rgba(246, 240, 229, 0.4);
  border-radius: 999px;
  background: rgba(246, 240, 229, 0.9);
  color: var(--forest);
  padding: 0.4rem 0.65rem;
  font-size: 0.57rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
.nb-journey-chip::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--terracotta-bright); }
.nb-journey-body { display: flex; flex: 1; flex-direction: column; padding: 1.2rem 1.35rem 1.35rem; }
.nb-journey-kicker { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.nb-journey-kicker span { color: var(--terracotta); font-size: 0.58rem; font-weight: 700; letter-spacing: 0.17em; text-transform: uppercase; }
.nb-journey-card-dark .nb-journey-kicker span { color: var(--gold); }
.nb-journey-kicker small { border: 1px solid var(--line); border-radius: 999px; padding: 0.25rem 0.5rem; color: var(--muted); font-size: 0.56rem; font-weight: 700; letter-spacing: 0.06em; }
.nb-journey-card-dark .nb-journey-kicker small { border-color: rgba(246, 240, 229, 0.2); color: rgba(246, 240, 229, 0.65); }
.nb-journey-title { margin: 0.6rem 0 0; font-family: "Cormorant Garamond", Georgia, serif; color: var(--forest); font-size: clamp(1.65rem, 2.7vw, 2.2rem); font-weight: 600; line-height: 1.02; letter-spacing: -0.02em; }
.nb-journey-card-dark .nb-journey-title { color: var(--ivory); }
.nb-journey-text { margin: 0.5rem 0 0; color: #686155; font-size: 0.81rem; line-height: 1.62; }
.nb-journey-card-dark .nb-journey-text { color: rgba(246, 240, 229, 0.68); }
.nb-journey-cta { display: inline-flex; align-items: center; gap: 0.45rem; margin-top: auto; padding-top: 1rem; color: var(--terracotta); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-decoration: none; text-transform: uppercase; }
.nb-journey-card-dark .nb-journey-cta { color: var(--gold); }
.nb-journey-cta svg { transition: transform 0.25s var(--ease); }
.nb-journey-cta:hover svg { transform: translate(3px, -2px); }

/* ---------- cards / tours ---------- */
.nb-tour-card {
  position: relative;
  display: flex;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(215, 183, 120, 0.32);
  border-radius: 1.55rem;
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform 0.35s var(--ease), box-shadow 0.35s ease, border-color 0.35s ease;
}
.nb-tour-card:hover { transform: translateY(-6px); border-color: rgba(184, 92, 56, 0.42); box-shadow: var(--shadow-lg); }
.nb-tour-media { position: relative; display: block; aspect-ratio: 16 / 11; overflow: hidden; background: var(--forest); }
.nb-tour-media img, .nb-tour-media .nb-media-fallback { transition: transform 0.8s var(--ease); }
.nb-tour-card:hover .nb-tour-media img, .nb-tour-card:hover .nb-tour-media .nb-media-fallback { transform: scale(1.055); }
.nb-tour-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 30, 23, 0.12), transparent 40%, rgba(20, 30, 23, 0.34)); pointer-events: none; }
.nb-tour-category {
  position: absolute;
  z-index: 2;
  left: 0.85rem;
  top: 0.85rem;
  max-width: calc(100% - 4.4rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  border: 1px solid rgba(246, 240, 229, 0.4);
  border-radius: 999px;
  background: rgba(246, 240, 229, 0.92);
  color: var(--forest);
  padding: 0.38rem 0.62rem;
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
.nb-tour-arrow {
  position: absolute;
  z-index: 2;
  right: 0.85rem;
  top: 0.85rem;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ivory);
  color: var(--forest);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.3s ease, transform 0.3s var(--ease);
}
.nb-tour-card:hover .nb-tour-arrow, .nb-tour-card:focus-within .nb-tour-arrow { opacity: 1; transform: translateY(0); }
.nb-tour-body { display: flex; flex: 1; flex-direction: column; padding: 1.35rem 1.45rem 1.45rem; }
.nb-tour-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.nb-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  border: 1px solid rgba(38, 61, 43, 0.12);
  border-radius: 999px;
  background: #faf6ed;
  color: #5c655b;
  padding: 0.32rem 0.55rem;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.nb-chip-gold { border-color: rgba(215, 183, 120, 0.45); background: rgba(215, 183, 120, 0.15); color: #6d5426; }
.nb-tour-title { margin: 0.85rem 0 0; font-family: "Cormorant Garamond", Georgia, serif; color: var(--forest); font-size: clamp(1.55rem, 2.2vw, 1.9rem); font-weight: 600; line-height: 1.04; letter-spacing: -0.015em; }
.nb-tour-title a { text-decoration: none; }
.nb-tour-title a:hover { color: var(--terracotta); }
.nb-tour-sub { margin: 0.35rem 0 0; color: var(--terracotta); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.02rem; font-style: italic; }
.nb-tour-text { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; margin: 0.7rem 0 0; color: #6a6459; font-size: 0.79rem; line-height: 1.65; }
.nb-tour-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.65rem; margin-top: auto; padding-top: 1.15rem; }
.nb-tour-price { color: var(--forest); font-size: 0.72rem; font-weight: 700; }
.nb-tour-price small { display: block; margin-bottom: 0.12rem; color: var(--muted); font-size: 0.54rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.nb-tour-links { display: flex; align-items: center; gap: 0.5rem; }
.nb-tour-view { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--forest); font-size: 0.7rem; font-weight: 700; text-decoration: none; }
.nb-tour-view:hover { color: var(--terracotta); }
.nb-tour-book { border-radius: 999px; background: var(--terracotta); color: #fff; padding: 0.55rem 0.8rem; font-size: 0.63rem; font-weight: 700; text-decoration: none; transition: background 0.2s ease; }
.nb-tour-book:hover { background: #6f3322; }

/* ---------- media fallback ---------- */
.nb-media-fallback {
  position: relative;
  overflow: hidden;
  background-color: var(--forest);
  background-image:
    radial-gradient(120% 120% at 15% 18%, rgba(215, 183, 120, 0.38), transparent 46%),
    radial-gradient(95% 95% at 88% 82%, rgba(129, 61, 40, 0.72), transparent 58%),
    linear-gradient(135deg, #1c3022, #263d2b 52%, #5b4a34);
  animation: media-drift 26s ease-in-out infinite alternate;
}
.nb-media-fallback::before {
  content: "";
  position: absolute;
  inset: 8% 8% auto auto;
  width: 38%;
  aspect-ratio: 1;
  border: 1px solid rgba(246, 240, 229, 0.2);
  border-radius: 50%;
  box-shadow: 0 0 0 18px rgba(246, 240, 229, 0.04), 0 0 0 42px rgba(246, 240, 229, 0.025);
}
.nb-media-fallback::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.28;
  background-image: radial-gradient(rgba(246, 240, 229, 0.32) 0.7px, transparent 0.7px);
  background-size: 14px 14px;
  mix-blend-mode: soft-light;
}

/* ---------- map shell (layout; visual map skin in map.css) ---------- */
.nb-map-shell { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 1.6rem; background: #dfe7dc; box-shadow: var(--shadow-sm); }
.nb-map { position: relative; z-index: 0; width: 100%; min-height: 300px; }
.nb-map-short { height: 300px; }
.nb-map-tall { height: clamp(420px, 58vh, 620px); }
.nb-map-status { position: absolute; inset: 0; z-index: 400; display: grid; place-items: center; padding: 1.5rem; background: linear-gradient(135deg, #23392a, #36503c); color: var(--ivory); text-align: center; transition: opacity 0.35s ease, visibility 0.35s ease; }
.nb-map-status.is-hidden { opacity: 0; visibility: hidden; }
.nb-map-status p { margin: 0.7rem 0 0; max-width: 22rem; color: rgba(246, 240, 229, 0.72); font-size: 0.8rem; line-height: 1.6; }
.nb-map-spinner { width: 32px; height: 32px; margin-inline: auto; border: 2px solid rgba(246, 240, 229, 0.25); border-top-color: var(--gold); border-radius: 50%; animation: spin 0.8s linear infinite; }
.nb-map-badge { position: absolute; z-index: 450; left: 1rem; top: 1rem; display: inline-flex; align-items: center; gap: 0.4rem; border: 1px solid rgba(246, 240, 229, 0.3); border-radius: 999px; background: rgba(24, 39, 28, 0.82); color: var(--ivory); padding: 0.45rem 0.7rem; font-size: 0.57rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; backdrop-filter: blur(8px); pointer-events: none; }
.nb-map-badge::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 3px rgba(215, 183, 120, 0.2); }
.nb-map-legend { position: absolute; z-index: 450; right: 0.8rem; bottom: 0.8rem; max-width: calc(100% - 1.6rem); border: 1px solid rgba(246, 240, 229, 0.26); border-radius: 0.9rem; background: rgba(24, 39, 28, 0.82); color: rgba(246, 240, 229, 0.82); padding: 0.55rem 0.7rem; font-size: 0.58rem; line-height: 1.6; backdrop-filter: blur(8px); pointer-events: none; }
.nb-map-legend span { display: inline-flex; align-items: center; gap: 0.3rem; margin-right: 0.7rem; }
.nb-map-legend i { width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.nb-map-actions { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.nb-map-action { border: 1px solid rgba(38, 61, 43, 0.18); border-radius: 999px; background: #fff; color: var(--forest); padding: 0.55rem 0.75rem; font-size: 0.68rem; font-weight: 700; transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
.nb-map-action:hover, .nb-map-action.is-active { border-color: var(--forest); background: var(--forest); color: var(--ivory); }
.nb-map-action:disabled { opacity: 0.5; cursor: wait; }
.nb-route-note { display: flex; align-items: flex-start; gap: 0.5rem; margin-top: 0.6rem; color: var(--muted); font-size: 0.68rem; line-height: 1.5; }
.nb-route-note strong { color: var(--forest); }

/* ---------- detail pages ---------- */
.nb-page-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--forest); color: var(--ivory); padding-block: clamp(4.5rem, 9vw, 7rem); }
.nb-page-hero-media { position: absolute; inset: 0; z-index: -2; opacity: 0.58; }
.nb-page-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.nb-page-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(20, 30, 23, 0.95), rgba(20, 30, 23, 0.55) 55%, rgba(20, 30, 23, 0.72)); }
.nb-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; color: rgba(246, 240, 229, 0.62); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.04em; }
.nb-breadcrumb a { color: inherit; text-decoration: none; }
.nb-breadcrumb a:hover { color: var(--gold); }
.nb-breadcrumb span[aria-hidden] { color: rgba(246, 240, 229, 0.3); }
.nb-page-title { margin: 1rem 0 0; font-family: "Cormorant Garamond", Georgia, serif; color: var(--ivory); font-size: clamp(2.6rem, 6vw, 4.8rem); font-weight: 600; line-height: 0.98; letter-spacing: -0.03em; text-wrap: balance; }
.nb-page-sub { margin: 0.8rem 0 0; max-width: 44rem; color: rgba(246, 240, 229, 0.78); font-size: 1rem; line-height: 1.7; }
.nb-detail-grid { display: grid; gap: 2.5rem; }
.nb-detail-main > section + section { margin-top: 3rem; }
.nb-detail-main h2 { color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(1.8rem, 3vw, 2.35rem); font-weight: 600; line-height: 1.05; }
.nb-detail-main h3 { color: var(--forest); }
.nb-detail-main p { color: #5f594f; line-height: 1.8; }
.nb-sticky { position: static; }
.nb-panel { border: 1px solid var(--line); border-radius: 1.35rem; background: #fff; padding: 1.35rem; box-shadow: var(--shadow-sm); }
.nb-panel-dark { border-color: rgba(246, 240, 229, 0.14); background: var(--forest); color: var(--ivory); }
.nb-panel h3 { margin: 0; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.45rem; font-weight: 600; }
.nb-detail-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; margin-top: 1.4rem; }
.nb-fact { border: 1px solid rgba(215, 183, 120, 0.3); border-radius: 0.95rem; background: #fcf8f1; padding: 0.85rem; }
.nb-fact dt { color: var(--muted); font-size: 0.56rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.nb-fact dd { margin: 0.3rem 0 0; color: var(--forest); font-size: 0.8rem; font-weight: 700; line-height: 1.35; }
.nb-day-list { position: relative; margin: 1.4rem 0 0; padding: 0; list-style: none; }
.nb-day-list::before { content: ""; position: absolute; left: 18px; top: 16px; bottom: 16px; width: 1px; background: linear-gradient(var(--gold), rgba(215, 183, 120, 0.18)); }
.nb-day { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 0.9rem; padding-bottom: 1rem; }
.nb-day-number { display: grid; place-items: center; z-index: 1; width: 37px; height: 37px; border: 1px solid rgba(215, 183, 120, 0.6); border-radius: 50%; background: var(--ivory); color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1rem; font-weight: 700; }
.nb-day-card { border: 1px solid rgba(215, 183, 120, 0.28); border-radius: 1rem; background: #fff; padding: 1rem; }
.nb-day-card h3 { margin: 0; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.25rem; font-weight: 600; }
.nb-day-card p { margin: 0.35rem 0 0; color: #686155; font-size: 0.8rem; line-height: 1.65; }
.nb-detail-list { display: grid; gap: 0.5rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.nb-detail-list li { display: flex; gap: 0.55rem; color: #5f594f; font-size: 0.82rem; line-height: 1.6; }
.nb-detail-list li::before { content: ""; flex: 0 0 5px; width: 5px; height: 5px; margin-top: 0.5rem; border-radius: 50%; background: var(--gold); }
.nb-price { display: block; color: var(--gold); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.8rem; font-weight: 600; line-height: 1; }
.nb-price small { display: block; margin-bottom: 0.3rem; color: rgba(246, 240, 229, 0.68); font-family: Inter, sans-serif; font-size: 0.55rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.nb-share { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.75rem; }
.nb-share a { border-radius: 999px; background: var(--ivory); padding: 0.45rem 0.65rem; color: var(--forest); font-size: 0.64rem; font-weight: 700; text-decoration: none; }
.nb-share a:hover { background: var(--gold-soft); }

/* ---------- filters / tour listing ---------- */
.nb-filter-shell { margin-top: -2rem; position: relative; z-index: 2; border: 1px solid var(--line); border-radius: 1.35rem; background: rgba(246, 240, 229, 0.98); padding: 1rem; box-shadow: var(--shadow-lg); backdrop-filter: blur(10px); }
.nb-filter-grid { display: grid; gap: 0.7rem; }
.nb-field-label { display: block; color: var(--forest); font-size: 0.58rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.nb-input, .nb-select, .nb-textarea {
  width: 100%;
  margin-top: 0.35rem;
  border: 1px solid rgba(215, 183, 120, 0.55);
  border-radius: 0.7rem;
  background: #fff;
  color: var(--charcoal);
  padding: 0.72rem 0.8rem;
  font-size: 0.82rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.nb-input::placeholder, .nb-textarea::placeholder { color: #9a9286; }
.nb-input:focus, .nb-select:focus, .nb-textarea:focus { outline: none; border-color: var(--terracotta-bright); box-shadow: 0 0 0 3px rgba(184, 92, 56, 0.12); }
.nb-category-pills { display: flex; gap: 0.45rem; overflow-x: auto; padding-bottom: 0.2rem; scrollbar-width: thin; }
.nb-pill { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 0.4rem; border: 1px solid rgba(215, 183, 120, 0.5); border-radius: 999px; background: transparent; color: var(--forest); padding: 0.5rem 0.8rem; font-size: 0.66rem; font-weight: 700; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.nb-pill span { border-radius: 999px; background: rgba(38, 61, 43, 0.08); padding: 0.05rem 0.35rem; font-size: 0.55rem; }
.nb-pill:hover { background: rgba(215, 183, 120, 0.18); border-color: var(--gold); }
.nb-pill.is-active { border-color: var(--forest); background: var(--forest); color: var(--ivory); }
.nb-pill.is-active span { background: rgba(246, 240, 229, 0.15); }
.nb-results-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 1.2rem; }
.nb-results-count { color: var(--muted); font-size: 0.78rem; font-family: Inter, sans-serif; font-weight: 400; }
.nb-results-count strong { color: var(--forest); }
.nb-empty { border: 1px dashed rgba(215, 183, 120, 0.8); border-radius: 1.4rem; padding: 3.5rem 1.5rem; text-align: center; }

/* ---------- explore page ---------- */
.nb-explore-grid { display: grid; gap: 1.25rem; }
.nb-explore-map-card { overflow: hidden; border: 1px solid var(--line); border-radius: 1.6rem; background: #fff; box-shadow: var(--shadow-sm); }
.nb-explore-map-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 1rem 1.1rem; border-bottom: 1px solid var(--line); }
.nb-explore-map-head h2 { margin: 0; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.45rem; font-weight: 600; }
.nb-explore-map-head p { margin: 0.2rem 0 0; color: var(--muted); font-size: 0.7rem; }
.nb-explore-side { display: grid; gap: 1rem; align-content: start; }
.nb-destination-list { display: grid; gap: 0.35rem; max-height: 520px; overflow: auto; padding-right: 0.2rem; scrollbar-width: thin; }
.nb-destination-item { display: flex; align-items: center; gap: 0.65rem; border: 1px solid transparent; border-radius: 0.9rem; padding: 0.55rem; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease; }
.nb-destination-item:hover, .nb-destination-item.is-active { border-color: rgba(215, 183, 120, 0.5); background: #fcf8f1; }
.nb-destination-dot { flex: 0 0 9px; width: 9px; height: 9px; border-radius: 50%; box-shadow: 0 0 0 4px rgba(215, 183, 120, 0.13); }
.nb-destination-item strong { display: block; color: var(--forest); font-size: 0.78rem; }
.nb-destination-item small { display: block; margin-top: 0.15rem; color: var(--muted); font-size: 0.6rem; }
.nb-destination-item span:last-child { margin-left: auto; color: #9a9286; font-size: 0.6rem; }
.nb-route-list { display: grid; gap: 0.5rem; }
.nb-route-card { border: 1px solid var(--line); border-radius: 0.95rem; background: #fff; padding: 0.8rem; text-align: left; transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease; }
.nb-route-card:hover { border-color: var(--gold); transform: translateY(-1px); }
.nb-route-card.is-active { border-color: var(--forest); background: #f7fbeF; }
.nb-route-card strong { display: flex; align-items: center; gap: 0.4rem; color: var(--forest); font-size: 0.75rem; }
.nb-route-card strong i { width: 8px; height: 8px; border-radius: 50%; }
.nb-route-card small { display: block; margin-top: 0.25rem; color: var(--muted); font-size: 0.6rem; line-height: 1.45; }
.nb-map-focus { border: 1px solid var(--line); border-radius: 1.35rem; background: #fff; padding: 1.15rem; }
.nb-map-focus img { border-radius: 0.9rem; }
.nb-map-focus h3 { margin: 0.7rem 0 0; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.35rem; font-weight: 600; }
.nb-map-focus p { margin: 0.3rem 0 0; color: var(--muted); font-size: 0.74rem; line-height: 1.55; }
.nb-map-focus .nb-map-action { margin-top: 0.7rem; }

/* ---------- gallery ---------- */
.nb-gallery-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.nb-title-sm { font-size: clamp(1.9rem, 3.2vw, 2.7rem); }
.nb-gallery-intro { max-width: 35rem; margin-top: 0.7rem; color: var(--muted); font-size: 0.92rem; line-height: 1.7; }
.nb-gallery-filters { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.nb-gallery-filters .nb-pill { padding: 0.45rem 0.7rem; font-size: 0.62rem; }
.nb-masonry { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 1rem; }
.nb-masonry-item { break-inside: avoid; margin: 0 0 1rem; }
.nb-masonry figure { margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: #fff; box-shadow: 0 12px 35px -30px rgba(24, 39, 28, 0.55); transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease); }
.nb-masonry figure:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -28px rgba(24, 39, 28, 0.55); }
.nb-masonry-link { position: relative; display: block; overflow: hidden; background: #e8e0d1; }
.nb-masonry-media { display: block; overflow: hidden; background: #e8e0d1; }
.nb-masonry-media.is-wide { aspect-ratio: 4 / 3; }
.nb-masonry-media.is-landscape { aspect-ratio: 3 / 2; }
.nb-masonry-media.is-square { aspect-ratio: 1 / 1; }
.nb-masonry-media.is-portrait { aspect-ratio: 3 / 4; }
.nb-masonry-media img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 0.8s var(--ease); }
.nb-masonry-link:hover img, .nb-masonry-link:focus-visible img { transform: scale(1.045); }
.nb-masonry-zoom { position: absolute; right: 0.55rem; bottom: 0.55rem; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(24, 39, 28, 0.8); color: var(--ivory); opacity: 0; transform: translateY(4px); transition: opacity 0.25s ease, transform 0.25s ease; }
.nb-masonry-link:hover .nb-masonry-zoom, .nb-masonry-link:focus-visible .nb-masonry-zoom { opacity: 1; transform: none; }
.nb-masonry figcaption { padding: 0.65rem 0.75rem 0.8rem; }
.nb-masonry-caption { display: block; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.05rem; font-weight: 600; line-height: 1.16; }
.nb-masonry-place { display: block; margin-top: 0.15rem; color: var(--terracotta); font-size: 0.54rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.nb-masonry-credit { display: block; margin-top: 0.28rem; color: var(--muted); font-size: 0.53rem; line-height: 1.45; }
.nb-masonry-credit a { color: inherit; text-underline-offset: 2px; }
.nb-gallery-note { margin: 1.4rem 0 0; color: var(--muted); font-size: 0.7rem; line-height: 1.6; }
.nb-gallery-note a { color: var(--terracotta); text-decoration: underline; text-underline-offset: 2px; }

/* gallery lightbox */
.nb-lightbox-open { overflow: hidden; }
.nb-lightbox { width: min(1080px, calc(100vw - 1.5rem)); max-width: none; max-height: calc(100dvh - 1.5rem); overflow: auto; border: 1px solid rgba(215, 183, 120, 0.32); border-radius: 1.25rem; padding: 0; background: #142017; color: var(--ivory); box-shadow: 0 40px 100px -30px rgba(0, 0, 0, 0.8); }
.nb-lightbox::backdrop { background: rgba(10, 16, 12, 0.86); backdrop-filter: blur(12px); }
.nb-lightbox-shell { padding: 0.85rem; }
.nb-lightbox-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.1rem 0.15rem 0.6rem; }
.nb-lightbox-count { margin: 0; color: rgba(246, 240, 229, 0.62); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.nb-lightbox-close, .nb-lightbox-nav { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border: 1px solid rgba(246, 240, 229, 0.25); border-radius: 50%; background: rgba(246, 240, 229, 0.08); color: var(--ivory); transition: background 0.2s ease, border-color 0.2s ease; }
.nb-lightbox-close:hover, .nb-lightbox-nav:hover { border-color: var(--gold); background: rgba(215, 183, 120, 0.2); }
.nb-lightbox-stage { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.55rem; }
.nb-lightbox-figure { min-width: 0; margin: 0; text-align: center; }
.nb-lightbox-figure img { display: block; max-width: 100%; max-height: 68vh; margin: 0 auto; border-radius: 0.75rem; object-fit: contain; }
.nb-lightbox-figure figcaption { padding: 0.7rem 0.4rem 0.2rem; text-align: left; }
#lightbox-caption { margin: 0; color: var(--ivory); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.35rem; font-weight: 600; line-height: 1.2; }
.nb-lightbox-meta { margin: 0.22rem 0 0; color: rgba(246, 240, 229, 0.55); font-size: 0.65rem; line-height: 1.5; }
.nb-lightbox-meta a { color: var(--gold); }
.nb-lightbox-nav[hidden] { display: none; }

/* ---------- why choose us ---------- */
.nb-why-grid { display: grid; gap: 1rem; margin-top: 2rem; }
.nb-why-card { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 1.25rem; background: #fff; padding: 1.35rem; box-shadow: var(--shadow-sm); transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s ease; }
.nb-why-card:hover { transform: translateY(-3px); border-color: rgba(215, 183, 120, 0.8); box-shadow: var(--shadow-lg); }
.nb-why-number { display: block; color: rgba(215, 183, 120, 0.7); font-family: "Cormorant Garamond", Georgia, serif; font-size: 2.6rem; font-weight: 600; line-height: 0.9; }
.nb-why-card h3 { margin: 0.65rem 0 0; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.45rem; font-weight: 600; line-height: 1.08; }
.nb-why-card p { margin: 0.55rem 0 0; color: var(--muted); font-size: 0.8rem; line-height: 1.7; }
.nb-why-list { display: grid; gap: 0.75rem; margin: 1.35rem 0 0; padding: 0; list-style: none; }
.nb-why-list li { border-left: 2px solid var(--gold); padding-left: 1rem; color: var(--muted); font-size: 0.82rem; line-height: 1.65; }
.nb-why-list strong { display: block; margin-bottom: 0.1rem; color: var(--forest); font-size: 0.86rem; }

/* ---------- legal pages ---------- */
.nb-legal-hero { position: relative; isolation: isolate; overflow: hidden; padding-block: clamp(4rem, 8vw, 6.5rem); background: linear-gradient(135deg, #18271c, #263d2b 62%, #344a37); color: var(--ivory); }
.nb-legal-hero::after { content: ""; position: absolute; z-index: -1; right: -6rem; top: -8rem; width: 320px; height: 320px; border: 1px solid rgba(246, 240, 229, 0.1); border-radius: 50%; box-shadow: 0 0 0 42px rgba(246, 240, 229, 0.025), 0 0 0 84px rgba(246, 240, 229, 0.018); }
.nb-legal-updated { margin: 1rem 0 0; color: rgba(246, 240, 229, 0.5); font-size: 0.64rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.nb-legal { display: grid; gap: 2rem; }
.nb-legal-toc { align-self: start; border: 1px solid var(--line); border-radius: 1.25rem; background: #fcf8f1; padding: 1.15rem; }
.nb-legal-toc ol { display: grid; gap: 0.25rem; margin: 0.85rem 0 0; padding: 0; list-style: none; counter-reset: legal; }
.nb-legal-toc li { counter-increment: legal; }
.nb-legal-toc a { display: flex; gap: 0.55rem; padding: 0.22rem 0; color: var(--forest); font-size: 0.73rem; line-height: 1.4; text-decoration: none; }
.nb-legal-toc a::before { content: counter(legal, decimal-leading-zero); color: var(--terracotta); font-size: 0.55rem; font-weight: 700; letter-spacing: 0.05em; }
.nb-legal-toc a:hover { color: var(--terracotta); }
.nb-legal-body { max-width: 780px; }
.nb-prose { color: #514b43; font-size: 0.92rem; line-height: 1.8; }
.nb-prose h2 { margin: 2.1rem 0 0.55rem; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(1.6rem, 2.6vw, 2rem); font-weight: 600; line-height: 1.1; }
.nb-prose section:first-child h2 { margin-top: 0; }
.nb-prose p { margin: 0.65rem 0; }
.nb-prose ul { display: grid; gap: 0.35rem; margin: 0.8rem 0; padding-left: 1.35rem; list-style: disc; }
.nb-prose li::marker { color: var(--terracotta); }
.nb-prose a { color: var(--terracotta); text-decoration: underline; text-underline-offset: 2px; }
.nb-prose strong { color: var(--forest); }
.nb-legal-contact { display: grid; gap: 0.45rem; margin: 0.8rem 0 0; padding: 0; list-style: none; }

/* ---------- photo credits ---------- */
.nb-credits-intro { max-width: 780px; }
.nb-credits-grid { display: grid; gap: 0.75rem; margin-top: 2rem; }
.nb-credit-card { display: flex; gap: 0.8rem; min-width: 0; border: 1px solid var(--line); border-radius: 1rem; background: #fff; padding: 0.6rem; }
.nb-credit-thumb { flex: 0 0 92px; width: 92px; height: 76px; overflow: hidden; border-radius: 0.65rem; background: #e8e0d1; }
.nb-credit-thumb img { width: 100%; height: 100%; object-fit: cover; }
.nb-credit-body { min-width: 0; }
.nb-credit-body h2 { display: -webkit-box; overflow: hidden; margin: 0; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.05rem; font-weight: 600; line-height: 1.15; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.nb-credit-artist { margin: 0.18rem 0 0; color: var(--terracotta); font-size: 0.68rem; font-weight: 700; }
.nb-credit-meta { margin: 0.2rem 0 0; color: var(--muted); font-size: 0.58rem; line-height: 1.45; }
.nb-credit-meta a { color: inherit; }
.nb-credits-tools { margin-top: 2.5rem; border-top: 1px solid var(--line); padding-top: 1.5rem; }
.nb-credits-tools h2 { margin: 0; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.8rem; font-weight: 600; }
.nb-credits-tools ul { display: grid; gap: 0.6rem; margin: 1rem 0 0; padding: 0; list-style: none; color: var(--muted); font-size: 0.75rem; line-height: 1.65; }
.nb-credits-tools strong { color: var(--forest); }
.nb-credits-tools a { color: var(--terracotta); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- CTA / forms / footer ---------- */
.nb-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 1.75rem;
  background:
    radial-gradient(120% 150% at 100% 0%, rgba(215, 183, 120, 0.25), transparent 46%),
    linear-gradient(135deg, #1d3023, #263d2b 58%, #344a37);
  color: var(--ivory);
  padding: clamp(2rem, 5vw, 3.5rem);
}
.nb-cta::after { content: ""; position: absolute; z-index: -1; width: 260px; height: 260px; right: -60px; bottom: -140px; border: 1px solid rgba(246, 240, 229, 0.14); border-radius: 50%; box-shadow: 0 0 0 40px rgba(246, 240, 229, 0.03), 0 0 0 80px rgba(246, 240, 229, 0.02); }
.nb-form-card { border: 1px solid var(--line); border-radius: 1.5rem; background: #fff; padding: clamp(1.2rem, 3vw, 2.4rem); box-shadow: var(--shadow-sm); }
.nb-form-card fieldset[data-step-panel] { border: 0; margin: 0; padding: 0; }
.nb-form-card legend { margin-bottom: 1rem; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.65rem; font-weight: 600; }
.nb-form-card label { color: var(--forest); font-size: 0.76rem; font-weight: 600; }
.nb-form-card .nb-input, .nb-form-card .nb-select, .nb-form-card .nb-textarea { margin-top: 0.4rem; }
.nb-wizard { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.4rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.nb-wizard li { border-bottom: 3px solid rgba(215, 183, 120, 0.24); padding: 0 0 0.55rem; color: #6b6459; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.02em; }
.nb-wizard li[aria-current="step"], .nb-wizard li.is-current { border-color: var(--terracotta-bright); color: var(--forest); }
.nb-review { border: 1px solid rgba(215, 183, 120, 0.4); border-radius: 1rem; background: #fbf7ef; padding: 1rem; }
.nb-review > div { display: grid; gap: 0.2rem; border-bottom: 1px solid rgba(215, 183, 120, 0.25); padding: 0.65rem 0; }
.nb-review > div:last-child { border-bottom: 0; }
.nb-review dt { color: var(--forest); font-size: 0.68rem; font-weight: 700; }
.nb-review dd { margin: 0; color: #5f594f; font-size: 0.76rem; }

.nb-footer { margin-top: 5rem; background: var(--forest-deep); color: var(--ivory); }
.nb-footer-grid { display: grid; gap: 2rem; padding-block: 3.5rem; }
.nb-brand-footer .nb-logo-text { color: var(--ivory); }
.nb-brand-footer .nb-logo-text em { color: var(--gold); }
.nb-brand-footer .nb-logo-text small { color: rgba(246, 240, 229, 0.62); }
.nb-footer-tagline { max-width: 20rem; margin: 1rem 0 0; color: rgba(246, 240, 229, 0.62); font-size: 0.78rem; line-height: 1.7; }
.nb-footer-wa { display: inline-block; margin-top: 1rem; color: var(--gold); font-size: 0.72rem; font-weight: 700; text-decoration: none; }
.nb-footer-wa:hover { text-decoration: underline; }
.nb-footer-heading { margin: 0; color: var(--gold); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.nb-footer-links { display: grid; gap: 0.6rem; margin: 1rem 0 0; padding: 0; list-style: none; color: rgba(246, 240, 229, 0.72); font-size: 0.76rem; }
.nb-footer-links a { text-decoration: none; }
.nb-footer-links a:hover { color: var(--gold); }
.nb-footer-note { color: rgba(246, 240, 229, 0.62); }
.nb-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; border-top: 1px solid rgba(246, 240, 229, 0.12); padding-block: 1.1rem; color: rgba(246, 240, 229, 0.62); font-size: 0.64rem; }
.nb-footer-bottom p { margin: 0; }
.nb-footer-legal { display: flex; flex-wrap: wrap; gap: 0.35rem 0.6rem; margin: 0; padding: 0; list-style: none; }
.nb-footer-legal a { display: inline-flex; align-items: center; min-height: 24px; padding-block: 0.25rem; }

.nb-backtop {
  position: fixed;
  z-index: 45;
  right: 1rem;
  bottom: 1rem;
  left: auto;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(215, 183, 120, 0.5);
  border-radius: 50%;
  background: rgba(24, 39, 28, 0.92);
  color: var(--ivory);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease, background 0.2s ease;
  backdrop-filter: blur(8px);
}
.nb-backtop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.nb-backtop:hover { background: var(--terracotta); }
/* Reading-progress ring around the back-to-top button (JS sets --scroll-pct). */
.nb-backtop::before {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  background: conic-gradient(var(--gold) calc(var(--scroll-pct, 0) * 1%), rgba(246, 240, 229, 0.16) 0);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.nb-backtop.is-visible::before { opacity: 1; }

/* ---------- reveal / motion ---------- */
.will-reveal { opacity: 0; transform: translateY(26px); }
.will-reveal.is-revealed { animation: reveal-up 0.8s var(--ease) both; }
.nb-anim { animation: rise-in 0.9s var(--ease) backwards; }
.nb-anim-d1 { animation-delay: 0.08s; }
.nb-anim-d2 { animation-delay: 0.16s; }
.nb-anim-d3 { animation-delay: 0.24s; }
.nb-anim-d4 { animation-delay: 0.32s; }
.nb-anim-d5 { animation-delay: 0.4s; }

@keyframes rise-in { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes reveal-up { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: translateY(0); } }
/* Hero drift keyframes retired — the hero is a crossfade slider now. */
@keyframes media-drift { from { background-position: 0% 0%, 100% 100%, 0% 50%; } to { background-position: 8% 10%, 92% 90%, 100% 50%; } }
@keyframes scroll-pulse { 0%, 100% { opacity: 0.4; transform: scaleY(0.7); transform-origin: top; } 50% { opacity: 1; transform: scaleY(1); transform-origin: top; } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes nav-drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes shimmer { from { background-position: -200% 0; } to { background-position: 200% 0; } }

/* ---------- responsive ---------- */
@media (max-width: 767px) {
  .nb-backtop { width: 38px; height: 38px; }
}
@media (max-width: 639px) {
  .nb-lightbox { width: calc(100vw - 0.75rem); max-height: calc(100dvh - 0.75rem); }
  .nb-lightbox-shell { padding: 0.55rem; }
  .nb-lightbox-stage { display: block; }
  .nb-lightbox-figure img { max-height: 62vh; }
  .nb-lightbox-nav { position: absolute; top: 42%; z-index: 2; width: 34px; height: 34px; background: rgba(24, 39, 28, 0.72); }
  .nb-lightbox-nav--prev { left: 0.25rem; }
  .nb-lightbox-nav--next { right: 0.25rem; }
}
@media (min-width: 640px) {
  .nb-trust-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nb-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nb-detail-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nb-masonry { columns: 3; }
}
@media (min-width: 768px) {
  .nb-journey-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nb-footer-grid { grid-template-columns: 1.4fr repeat(3, 1fr); }
  .nb-explore-grid { grid-template-columns: minmax(0, 1fr); }
  .nb-why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nb-credits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .nb-nav { display: flex; }
  .nb-header-wa { display: inline-flex; }
  .nb-nav-toggle { display: none; }
  .nb-mobile-nav { display: none !important; }
  .nb-journey-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .nb-detail-grid { grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.8fr); gap: 3rem; }
  .nb-sticky { position: sticky; top: 6.2rem; align-self: start; }
  .nb-explore-grid { grid-template-columns: minmax(0, 1fr) 355px; align-items: start; }
  .nb-filter-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .nb-form-card { padding: 2.5rem; }
  .nb-masonry { columns: 4; }
  .nb-why-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nb-legal { grid-template-columns: 250px minmax(0, 1fr); gap: 3rem; }
  .nb-legal-toc { position: sticky; top: 6.2rem; }
}
@media (min-width: 1200px) {
  .nb-credits-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1280px) {
  .nb-hero-title { font-size: 5.6rem; }
}

/* ============================================================
   Modern interaction layer
   ============================================================ */

/* Screen-reader-only helper (local copy so the palette never depends on utilities). */
.nb-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ---- Command palette trigger ---- */
.nb-search-trigger {
  display: none;
  visibility: hidden; /* JS adds .is-ready; space stays reserved so the header does not jump. */
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  height: 38px;
  padding: 0 0.55rem;
  border: 1px solid rgba(38, 61, 43, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  color: #4b554b;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.nb-search-trigger:hover {
  border-color: rgba(184, 92, 56, 0.35);
  background: #fff;
  color: var(--forest);
}
@media (min-width: 1024px) { .nb-search-trigger { display: inline-flex; } }
.nb-search-trigger.is-ready { visibility: visible; }
.nb-search-trigger-label,
.nb-search-trigger-kbd { display: none; }
@media (scripting: none) {
  .nb-search-trigger,
  .nb-mobile-search { display: none; }
}
@media (min-width: 1280px) {
  .nb-search-trigger { padding: 0 0.75rem; }
  .nb-search-trigger-label { display: inline; }
  .nb-search-trigger-kbd { display: inline-flex; }
}
.nb-search-trigger-kbd,
.nb-search-foot kbd {
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 0.3rem;
  border: 1px solid rgba(38, 61, 43, 0.16);
  border-bottom-width: 2px;
  border-radius: 5px;
  background: #fff;
  color: #6f685d;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.56rem;
  font-weight: 700;
  line-height: 1;
}

/* ---- Command palette dialog ---- */
.nb-search {
  width: min(680px, calc(100vw - 1.5rem));
  max-height: min(76vh, 660px);
  margin: 9vh auto auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(215, 183, 120, 0.6);
  border-radius: 1.35rem;
  background: #fbf7ef;
  color: var(--charcoal);
  box-shadow: 0 42px 90px -34px rgba(10, 16, 12, 0.7), 0 0 0 1px rgba(24, 39, 28, 0.05);
}
.nb-search[open] {
  display: flex;
  flex-direction: column;
  animation: nb-search-in 0.22s var(--ease) both;
}
.nb-search::backdrop {
  background: rgba(12, 18, 14, 0.55);
  -webkit-backdrop-filter: blur(9px) saturate(1.1);
  backdrop-filter: blur(9px) saturate(1.1);
  animation: nb-fade-in 0.2s ease both;
}
html.nb-search-open,
html.nb-search-open body { overflow: hidden; }
.nb-search-head {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.95rem 1.05rem;
  border-bottom: 1px solid rgba(215, 183, 120, 0.35);
  color: var(--terracotta);
  transition: background 0.2s ease;
}
.nb-search-head:focus-within { background: #fff; }
.nb-search-input {
  flex: 1;
  min-width: 0;
  padding: 0.25rem 0;
  border: 0;
  background: transparent;
  color: var(--forest);
  font-size: 1rem;
  font-weight: 500;
  outline: none;
}
.nb-search-input::placeholder { color: #8d867a; }
.nb-search-input::-webkit-search-cancel-button,
.nb-search-input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
.nb-search-close {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(38, 61, 43, 0.16);
  border-radius: 50%;
  background: #fff;
  color: var(--forest);
  transition: background 0.2s ease, color 0.2s ease;
}
.nb-search-close:hover { background: var(--forest); color: var(--ivory); }
.nb-search-body { padding: 0.75rem 0.6rem 0.85rem; overflow-y: auto; overscroll-behavior: contain; }
.nb-search-label {
  margin: 0.15rem 0.6rem 0.5rem;
  color: #8d867a;
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.nb-search-results { display: grid; gap: 0.12rem; }
.nb-search-item {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.58rem 0.65rem;
  border: 1px solid transparent;
  border-radius: 0.85rem;
  color: var(--forest);
  text-decoration: none;
  transition: background 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}
.nb-search-item:hover,
.nb-search-item.is-active {
  border-color: rgba(215, 183, 120, 0.6);
  background: #fff;
  transform: translateX(2px);
}
.nb-search-item:focus-visible { outline: 2px solid var(--terracotta-bright); outline-offset: 1px; }
.nb-search-item-main { display: grid; flex: 1; gap: 0.1rem; min-width: 0; }
.nb-search-item-type {
  color: var(--terracotta);
  font-size: 0.52rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.nb-search-item strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.14rem;
  font-weight: 600;
  line-height: 1.15;
}
.nb-search-item strong mark {
  padding: 0 0.04em;
  background: linear-gradient(180deg, transparent 56%, rgba(215, 183, 120, 0.55) 56%);
  color: inherit;
}
.nb-search-item-text {
  overflow: hidden;
  color: #6f685d;
  font-size: 0.73rem;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nb-search-item-meta { flex: 0 0 auto; color: #8d867a; font-size: 0.6rem; font-weight: 600; }
.nb-search-item-arrow {
  flex: 0 0 auto;
  color: rgba(38, 61, 43, 0.3);
  opacity: 0;
  transform: translateX(-3px);
  transition: opacity 0.16s ease, transform 0.16s ease;
}
.nb-search-item:hover .nb-search-item-arrow,
.nb-search-item.is-active .nb-search-item-arrow { opacity: 1; transform: none; }
.nb-search-empty { padding: 1.5rem 1rem 1.7rem; text-align: center; }
.nb-search-empty strong {
  display: block;
  color: var(--forest);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.35rem;
  font-weight: 600;
}
.nb-search-empty p { margin: 0.35rem auto 0; max-width: 24rem; color: #6f685d; font-size: 0.79rem; line-height: 1.6; }
.nb-search-empty a { color: var(--terracotta); text-underline-offset: 2px; }
.nb-search-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 1rem;
  padding: 0.55rem 1.05rem;
  border-top: 1px solid rgba(215, 183, 120, 0.35);
  background: rgba(255, 255, 255, 0.45);
  color: #8d867a;
  font-size: 0.61rem;
}
.nb-search-foot span { display: inline-flex; align-items: center; gap: 0.3rem; }
.nb-search-foot kbd { background: rgba(255, 255, 255, 0.8); border-color: rgba(38, 61, 43, 0.14); }
.nb-search-foot-brand {
  margin-left: auto;
  font-size: 0.53rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
@media (max-width: 639px) {
  .nb-search { width: calc(100vw - 1rem); max-height: 82vh; margin-top: 5vh; border-radius: 1.1rem; }
  .nb-search-item-meta { display: none; }
  .nb-search-foot .nb-search-foot-brand { display: none; }
}

/* ---- Mobile menu search row ---- */
.nb-mobile-search {
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.nb-mobile-search > span:last-child {
  color: var(--terracotta);
  font-size: 1rem;
}

/* ---- Infinite destination marquee ---- */
.nb-marquee {
  position: relative;
  overflow: hidden;
  border-block: 1px solid rgba(215, 183, 120, 0.22);
  background: var(--forest-deep);
  color: var(--gold-soft);
}
.nb-marquee::before,
.nb-marquee::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  width: clamp(40px, 7vw, 110px);
  pointer-events: none;
}
.nb-marquee::before { left: 0; background: linear-gradient(90deg, var(--forest-deep), transparent); }
.nb-marquee::after { right: 0; background: linear-gradient(270deg, var(--forest-deep), transparent); }
.nb-marquee-track {
  display: flex;
  width: max-content;
  animation: nb-marquee 46s linear infinite;
}
.nb-marquee:hover .nb-marquee-track,
.nb-marquee:focus-within .nb-marquee-track { animation-play-state: paused; }
.nb-marquee-list {
  display: flex;
  align-items: center;
  gap: 1.9rem;
  margin: 0;
  padding: 0.95rem 1rem;
  list-style: none;
}
.nb-marquee-list li {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  white-space: nowrap;
}
.nb-marquee-list li::after {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
  opacity: 0.75;
}

/* ---- Pointer spotlight in the hero ---- */
.nb-hero-spot {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s ease;
  background: radial-gradient(440px circle at var(--spot-x, 50%) var(--spot-y, 40%), rgba(215, 183, 120, 0.22), transparent 68%);
  mix-blend-mode: screen;
}
@media (hover: hover) and (pointer: fine) {
  .nb-hero:hover .nb-hero-spot { opacity: 1; }
}

/* ---- Pause control for the auto-playing hero and marquee ---- */
.nb-hero-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 2.1rem;
}
.nb-hero-foot .nb-hero-scroll { margin: 0; }
.nb-motion-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid rgba(246, 240, 229, 0.28);
  border-radius: 50%;
  background: rgba(24, 39, 28, 0.35);
  color: rgba(246, 240, 229, 0.82);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.nb-motion-toggle:hover {
  border-color: rgba(215, 183, 120, 0.7);
  background: rgba(24, 39, 28, 0.55);
  color: var(--gold);
}
.nb-motion-toggle svg { display: block; width: 11px; height: 11px; }
.nb-motion-icon--play { display: none; }
.nb-motion-toggle[aria-pressed="true"] .nb-motion-icon--pause { display: none; }
.nb-motion-toggle[aria-pressed="true"] .nb-motion-icon--play { display: block; }
html.nb-motion-paused .nb-hero-slide,
html.nb-motion-paused .nb-hero-tagline,
html.nb-motion-paused .nb-hero-scroll span,
html.nb-motion-paused .nb-marquee-track { animation-play-state: paused !important; }

/* ---- Cursor glow on cards (data-glow) ---- */
.nb-glow { position: relative; }
.nb-glow::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  background: radial-gradient(250px circle at var(--mx, 50%) var(--my, 50%), rgba(215, 183, 120, 0.18), transparent 72%);
}
.nb-glow:hover::after { opacity: 1; }

/* ---- Subtle 3D tilt on cards (enabled by JS on fine pointers) ---- */
.nb-tour-card.nb-tilt,
.nb-journey-card.nb-tilt {
  transform: perspective(1100px) translateY(var(--lift, 0px)) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition: transform 0.18s ease-out, box-shadow 0.35s ease, border-color 0.35s ease;
}
.nb-tour-card.nb-tilt:hover,
.nb-journey-card.nb-tilt:hover { --lift: -5px; }

/* ---- Native cross-document view transitions ---- */
@view-transition { navigation: auto; }
.nb-header { view-transition-name: nb-header; }
.nb-header .nb-logo-img { view-transition-name: nb-logo; }
::view-transition-old(root) { animation: nb-vt-out 0.18s ease both; }
::view-transition-new(root) { animation: nb-vt-in 0.28s var(--ease) both; }

/* ---- Scroll-driven parallax on interior page heroes ---- */
@supports (animation-timeline: view()) {
  @media (min-width: 768px) and (prefers-reduced-motion: no-preference) {
    .nb-page-hero-media img {
      animation: nb-hero-parallax linear both;
      animation-timeline: view();
      animation-range: entry 0% exit 100%;
    }
  }
}

/* ---- Scroll-linked hero depth (native scroll timelines) ---- */
@supports (animation-timeline: scroll()) {
  @media (min-width: 768px) and (prefers-reduced-motion: no-preference) {
    .nb-hero-media {
      animation: nb-hero-zoom linear both;
      animation-timeline: scroll(root);
      animation-range: 0 90vh;
    }
    .nb-hero-inner {
      animation: nb-hero-exit linear both;
      animation-timeline: scroll(root);
      animation-range: 0 100vh;
    }
  }
}

@keyframes nb-search-in {
  from { opacity: 0; transform: translateY(-8px) scale(0.985); }
  to { opacity: 1; transform: none; }
}
@keyframes nb-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes nb-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@keyframes nb-hero-parallax {
  from { transform: translateY(-3%) scale(1.08); }
  to { transform: translateY(3%) scale(1.08); }
}
@keyframes nb-hero-zoom {
  from { transform: scale(1); }
  to { transform: scale(1.06); }
}
@keyframes nb-hero-exit {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0.08; transform: translateY(-34px); }
}
@keyframes nb-vt-out { to { opacity: 0; } }
@keyframes nb-vt-in { from { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .will-reveal, [data-reveal] { opacity: 1 !important; transform: none !important; }
  /* Reduced motion: hold the first hero photograph statically. */
  .nb-hero-slide { animation: none !important; opacity: 0; transform: none !important; }
  .nb-hero-slide:first-child { opacity: 1 !important; }
  /* Reduced motion: stop the marquee, the spotlight, tilt and page transitions. */
  .nb-marquee-track { animation: none !important; width: auto; justify-content: center; flex-wrap: wrap; }
  .nb-marquee-list[aria-hidden="true"] { display: none; }
  .nb-marquee-list { flex-wrap: wrap; justify-content: center; }
  .nb-hero-spot { display: none; }
  .nb-motion-toggle { display: none; }
  .nb-tour-card.nb-tilt,
  .nb-journey-card.nb-tilt { transform: none !important; }
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*) { animation: none !important; }
}

/* Contrast-safe overrides for small secondary text (WCAG 2.1 AA). */
.text-charcoal\/40,
.text-charcoal\/45,
.text-charcoal\/50,
.text-charcoal\/55 { color: rgba(41, 37, 31, 0.68); }
.text-charcoal\/60 { color: rgba(41, 37, 31, 0.72); }
.text-ivory\/45 { color: rgba(246, 240, 229, 0.68); }

/* Utility display must win over component display declarations (JS toggles .hidden). */
.hidden { display: none !important; }

.nb-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.nb-btn:disabled:hover { transform: none; }

/* ===== Floating side rail: socials + call + email, right edge, all widths ===== */
.nb-rail {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  z-index: 46;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  padding: 0.65rem 0;
}
.nb-rail--actions { right: 0.55rem; }
@media (min-width: 1360px) {
  .nb-rail--actions { right: 1rem; }
  .nb-rail-btn { width: 52px; height: 52px; border-radius: 18px; }
  .nb-rail > * { animation: nb-rise 0.5s var(--ease) backwards; }
  .nb-rail > *:nth-child(1) { animation-delay: 0.05s; }
  .nb-rail > *:nth-child(2) { animation-delay: 0.12s; }
  .nb-rail > *:nth-child(3) { animation-delay: 0.19s; }
  .nb-rail > *:nth-child(4) { animation-delay: 0.26s; }
  .nb-rail > *:nth-child(5) { animation-delay: 0.33s; }
  .nb-rail > *:nth-child(6) { animation-delay: 0.4s; }
  .nb-rail > *:nth-child(7) { animation-delay: 0.47s; }
}
/* Give page containers hanging room beside the rail on compact screens. */
@media (max-width: 1359.98px) {
  .nb-container { padding-right: 4.6rem; }
}
@keyframes nb-rise { from { opacity: 0; transform: translateY(16px); } }

.nb-rail-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  border: 1px solid rgba(215, 183, 120, 0.5);
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(10px) saturate(1.4);
  -webkit-backdrop-filter: blur(10px) saturate(1.4);
  color: var(--forest);
  box-shadow: 0 8px 22px -12px rgba(24, 39, 28, 0.55);
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.25s var(--ease), background 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.nb-rail-btn:hover,
.nb-rail-btn:focus-visible {
  background: var(--forest);
  color: var(--ivory);
  border-color: rgba(215, 183, 120, 0.85);
  transform: translateY(-3px);
  box-shadow: 0 18px 36px -16px rgba(24, 39, 28, 0.65);
}
.nb-rail-btn:active { transform: translateY(-1px) scale(0.94); }
.nb-rail-btn:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--ivory), 0 0 0 4px var(--terracotta-bright); }
.nb-rail-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 28%, rgba(255, 255, 255, 0.45) 50%, transparent 64%);
  transform: translateX(-130%);
  transition: transform 0.7s var(--ease);
  pointer-events: none;
}
.nb-rail-btn:hover::after,
.nb-rail-btn:focus-visible::after { transform: translateX(130%); }

/* Network-brand hover colours for the social buttons (later rules win). */
.nb-rail-sep {
  width: 2.2rem;
  height: 1px;
  margin: 0.1rem 0;
  background: linear-gradient(90deg, transparent, rgba(215, 183, 120, 0.75), transparent);
}
/* Brand hover colours now live in the "Social icon design system" block at the end of this file. */

/* Slide-out labels open to the left of the rail (everything lives on the right
   edge now). Tips live beside the button (not inside it) so overflow-clipping
   on the button can never hide them. */
.nb-rail-tip {
  position: absolute;
  top: 50%;
  white-space: nowrap;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 0.42rem 0.7rem;
  border-radius: 999px;
  background: var(--ivory);
  color: var(--forest-deep);
  border: 1px solid rgba(215, 183, 120, 0.55);
  box-shadow: 0 8px 22px -12px rgba(24, 39, 28, 0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s var(--ease), transform 0.22s var(--ease);
}
.nb-rail--actions .nb-rail-tip { right: calc(100% + 0.55rem); transform: translateY(-50%) translateX(-8px); }
.nb-rail-item:hover .nb-rail-tip,
.nb-rail-item:focus-within .nb-rail-tip { opacity: 1; transform: translateY(-50%) translateX(0); }

/* Press ripple (added by app.js). */
.nb-ripple {
  position: absolute;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, rgba(215, 183, 120, 0.8) 0%, rgba(215, 183, 120, 0.25) 55%, transparent 75%);
  transform: scale(0);
  animation: nb-ripple 0.55s var(--ease) forwards;
  pointer-events: none;
  z-index: -1;
}
@keyframes nb-ripple { to { transform: scale(9); opacity: 0; } }

/* Email popover */
.nb-rail-item { position: relative; }
.nb-rail-pop {
  position: absolute;
  top: 50%;
  right: calc(100% + 0.75rem);
  width: 258px;
  background: rgba(24, 39, 28, 0.96);
  border: 1px solid rgba(215, 183, 120, 0.4);
  border-radius: 16px;
  padding: 0.9rem;
  color: var(--ivory);
  box-shadow: var(--shadow-lg);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-50%) translateX(10px) scale(0.97);
  transform-origin: right center;
  transition: opacity 0.25s var(--ease), transform 0.25s var(--ease), visibility 0s linear 0.25s;
  z-index: 47;
}
.nb-rail-pop.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0) scale(1);
  transition-delay: 0s;
}
.nb-rail-pop::after {
  content: "";
  position: absolute;
  right: -5px;
  top: 50%;
  margin-top: -5px;
  width: 10px;
  height: 10px;
  background: rgba(24, 39, 28, 0.96);
  transform: rotate(45deg);
  border-right: 1px solid rgba(215, 183, 120, 0.4);
  border-top: 1px solid rgba(215, 183, 120, 0.4);
}
.nb-rail-pop-title { margin: 0; padding: 0 0.25rem; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(246, 240, 229, 0.62); }
.nb-rail-pop-addr { margin: 0 0 0.55rem; padding: 0 0.25rem; font-size: 0.82rem; font-weight: 600; color: rgba(246, 240, 229, 0.88); overflow-wrap: anywhere; }
.nb-rail-pop-link {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.6rem 0.55rem;
  border-radius: 12px;
  color: var(--ivory);
  transition: background 0.2s var(--ease), border-color 0.2s var(--ease);
  border: 1px solid transparent;
}
.nb-rail-pop-link strong { display: block; font-size: 0.86rem; }
.nb-rail-pop-link small { display: block; margin-top: 0.15rem; font-size: 0.7rem; line-height: 1.45; color: rgba(246, 240, 229, 0.66); }
.nb-rail-pop-ico {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin-top: 0.1rem;
  border-radius: 10px;
  background: rgba(215, 183, 120, 0.16);
  color: var(--gold-soft);
}
.nb-ico-gmail {
  background: #fdfcf8;
  color: #d93025;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.nb-rail-pop-link:hover, .nb-rail-pop-link:focus-visible {
  background: rgba(215, 183, 120, 0.15);
  border-color: rgba(215, 183, 120, 0.4);
  color: var(--ivory);
  outline: none;
}

/* ===== Social icon design system =====
   One set of brand tokens (--brand-bg / --glow) drives the side rail, footer,
   mobile menu, contact page and share buttons. Authentic logos (Simple Icons)
   sit in rounded glass tiles and fill with the official brand colour on
   hover / keyboard focus (300ms). */
.nb-net-facebook  { --brand-bg: #0866FF; --brand-line: #5b9bff; --glow: rgba(8, 102, 255, 0.5); }
.nb-net-instagram { --brand-bg: radial-gradient(130% 130% at 15% 110%, #FFD600 0%, #FF0169 48%, #7638FA 100%); --brand-line: rgba(255, 255, 255, 0.55); --glow: rgba(228, 64, 95, 0.5); }
.nb-net-tiktok    { --brand-bg: #010101; --brand-line: #25F4EE; --glow: rgba(37, 244, 238, 0.4); }
.nb-net-x         { --brand-bg: #000000; --brand-line: rgba(255, 255, 255, 0.45); --glow: rgba(0, 0, 0, 0.5); }
.nb-net-linkedin  { --brand-bg: #0A66C2; --brand-line: #4f9be0; --glow: rgba(10, 102, 194, 0.5); }
.nb-net-youtube   { --brand-bg: #FF0000; --brand-line: #ff7a7a; --glow: rgba(255, 0, 0, 0.45); }
.nb-net-whatsapp  { --brand-bg: #25D366; --brand-line: #6fe79a; --glow: rgba(37, 211, 102, 0.5); }
.nb-net-telegram  { --brand-bg: #26A5E4; --brand-line: #7cd0f5; --glow: rgba(38, 165, 228, 0.5); }
.nb-net-github    { --brand-bg: #181717; --brand-line: rgba(255, 255, 255, 0.5); --glow: rgba(24, 23, 23, 0.55); }

.nb-rail-btn[class*="nb-net-"]:hover,
.nb-rail-btn[class*="nb-net-"]:focus-visible,
.nb-soc-link:hover,
.nb-soc-link:focus-visible {
  background: var(--brand-bg);
  border-color: var(--brand-line);
  color: #fff;
  box-shadow: 0 14px 30px -12px var(--glow), 0 0 22px -6px var(--glow);
}
.nb-rail-btn[class*="nb-net-"]:focus-visible,
.nb-soc-link:focus-visible {
  box-shadow: 0 0 0 2px var(--ivory), 0 0 0 4px var(--terracotta-bright), 0 14px 30px -12px var(--glow);
}

.nb-soc-svg { display: block; flex: none; transition: transform 0.3s var(--ease); }
.nb-rail-btn:hover .nb-soc-svg,
.nb-rail-btn:focus-visible .nb-soc-svg,
.nb-soc-link:hover .nb-soc-svg,
.nb-soc-link:focus-visible .nb-soc-svg { transform: scale(1.1) rotate(-6deg); }

.nb-soc { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.nb-panel .nb-soc { margin-top: 0; }
.nb-soc-item { position: relative; }
.nb-soc--dark  { --soc-bg: rgba(246, 240, 229, 0.07); --soc-line: rgba(246, 240, 229, 0.18); --soc-fg: var(--ivory); }
.nb-soc--light { --soc-bg: #fff; --soc-line: rgba(215, 183, 120, 0.55); --soc-fg: var(--forest); }
.nb-soc-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--soc-line);
  border-radius: 14px;
  background: var(--soc-bg);
  backdrop-filter: blur(10px) saturate(1.4);
  -webkit-backdrop-filter: blur(10px) saturate(1.4);
  color: var(--soc-fg);
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: transform 0.3s var(--ease), background 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.nb-soc-link:hover, .nb-soc-link:focus-visible { transform: translateY(-3px) scale(1.05); }
.nb-soc-link:active { transform: translateY(-1px) scale(0.94); }
.nb-soc-link:focus-visible { outline: none; }
.nb-soc-link::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.4) 50%, transparent 66%);
  transform: translateX(-130%);
  transition: transform 0.7s var(--ease);
  pointer-events: none;
}
.nb-soc-link:hover::after, .nb-soc-link:focus-visible::after { transform: translateX(130%); }

.nb-soc-tip {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 0.55rem);
  z-index: 5;
  padding: 0.38rem 0.65rem;
  border: 1px solid rgba(215, 183, 120, 0.55);
  border-radius: 999px;
  background: var(--ivory);
  color: var(--forest-deep);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
  box-shadow: 0 8px 22px -12px rgba(24, 39, 28, 0.5);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 6px);
  transition: opacity 0.25s var(--ease), transform 0.25s var(--ease);
}
.nb-soc-item:hover .nb-soc-tip, .nb-soc-item:focus-within .nb-soc-tip { opacity: 1; transform: translate(-50%, 0); }
@media (hover: none) { .nb-soc-tip { display: none; } }

/* Mobile menu: centred, thumb-sized targets. */
.nb-mobile-nav .nb-soc { justify-content: center; margin-top: 0.4rem; }
.nb-mobile-nav .nb-soc-tip { display: none; }
@media (max-width: 767.98px) { .nb-soc-link { width: 44px; height: 44px; } }

/* Share buttons on journey pages: logo + label, brand fill on hover. */
.nb-share a { display: inline-flex; align-items: center; gap: 0.4rem; transition: background 0.3s var(--ease), color 0.3s var(--ease), transform 0.3s var(--ease); }
.nb-share a svg { flex: none; }
.nb-share a:hover, .nb-share a:focus-visible { color: #fff; transform: translateY(-1px); }
.nb-share a:nth-child(1):hover, .nb-share a:nth-child(1):focus-visible { background: #25D366; }
.nb-share a:nth-child(2):hover, .nb-share a:nth-child(2):focus-visible { background: #0866FF; }
.nb-share a:nth-child(3):hover, .nb-share a:nth-child(3):focus-visible { background: var(--forest); }
.nb-share a:focus-visible { outline: 2px solid var(--terracotta-bright); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  .nb-soc-link:hover, .nb-soc-link:focus-visible, .nb-soc-link:active,
  .nb-soc-link:hover .nb-soc-svg, .nb-soc-link:focus-visible .nb-soc-svg,
  .nb-rail-btn:hover .nb-soc-svg, .nb-rail-btn:focus-visible .nb-soc-svg { transform: none; }
  .nb-soc-link::after { display: none; }
}

/* === Nyika 2026 refinement: editorial cards, floating footer and responsive image rhythm === */
.nb-journey-card,.nb-panel,.nb-cta,.nb-footer-grid>div,.nb-footer-bottom{transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s ease,border-color .35s ease,background-color .35s ease}
.nb-journey-card{border:1px solid rgba(38,61,43,.10);border-radius:1.45rem;overflow:hidden;background:#fff;box-shadow:0 12px 34px -25px rgba(24,39,28,.5)}
.nb-journey-card:hover,.nb-journey-card:focus-within{transform:translateY(-7px);box-shadow:0 24px 55px -28px rgba(24,39,28,.42);border-color:rgba(215,183,120,.8)}
.nb-journey-media{display:block;position:relative;overflow:hidden;aspect-ratio:16/10;isolation:isolate}
.nb-journey-media img{width:100%;height:100%;object-fit:cover;transition:transform .75s cubic-bezier(.2,.75,.25,1),filter .45s ease}
.nb-journey-card:hover .nb-journey-media img{transform:scale(1.055);filter:saturate(1.08)}
.nb-journey-media:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(12,25,17,.4));pointer-events:none}
.nb-journey-chip{z-index:1;box-shadow:0 6px 18px #0002;backdrop-filter:blur(10px)}
.nb-journey-body{padding:1.35rem 1.45rem 1.5rem}
.nb-journey-title a{transition:color .25s ease}.nb-journey-card:hover .nb-journey-title a{color:#9b713b}
.nb-journey-cta{display:inline-flex;align-items:center;gap:.55rem;font-weight:700}.nb-journey-cta svg{transition:transform .25s ease}.nb-journey-card:hover .nb-journey-cta svg{transform:translate(3px,-3px)}
.nb-explore-side .nb-panel{border:1px solid rgba(215,183,120,.35);border-radius:1.5rem;background:linear-gradient(145deg,#fff 0%,#f7f3e9 100%);box-shadow:0 16px 45px -35px rgba(24,39,28,.5);padding:clamp(1.2rem,2.4vw,1.8rem)}
.nb-explore-side .nb-panel:hover{transform:translateY(-3px);box-shadow:0 22px 42px -30px rgba(24,39,28,.42)}
.nb-detail-list li{padding:.7rem .8rem;border:1px solid rgba(38,61,43,.08);border-radius:.9rem;background:rgba(255,255,255,.72);transition:background .25s ease,border-color .25s ease,transform .25s ease}
.nb-detail-list li:hover{background:#fff;border-color:rgba(215,183,120,.7);transform:translateX(4px)}
.nb-cta{border:1px solid rgba(215,183,120,.35);box-shadow:0 20px 50px -35px rgba(0,0,0,.55)}.nb-cta:hover{box-shadow:0 28px 60px -35px rgba(0,0,0,.65)}
.nb-footer{position:relative;isolation:isolate;padding-top:4.5rem}.nb-footer:before{content:"";position:absolute;z-index:-1;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(215,183,120,.7),transparent)}
.nb-footer-grid{gap:clamp(1.8rem,4vw,4rem)}.nb-footer-links a{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem 0;transition:color .2s ease,transform .2s ease}.nb-footer-links a:hover{color:var(--gold-soft);transform:translateX(3px)}
.nb-footer-bottom{margin-top:2.7rem;padding:1rem 1.2rem;border:1px solid rgba(246,240,229,.12);border-radius:1.15rem;background:rgba(255,255,255,.045);backdrop-filter:blur(12px)}.nb-footer-bottom a{transition:color .2s ease}.nb-footer-bottom a:hover{color:var(--gold-soft)}
.nb-soc-link{border-radius:15px}.nb-soc-link:hover,.nb-soc-link:focus-visible{transform:translateY(-4px) rotate(-2deg) scale(1.06)}
.nb-search-trigger{border-radius:999px;transition:background .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease}.nb-search-trigger:hover,.nb-search-trigger:focus-visible{transform:translateY(-2px);box-shadow:0 9px 22px -14px rgba(24,39,28,.65)}
.nb-search-item{border-radius:13px;transition:background .2s ease,transform .2s ease}.nb-search-item:hover,.nb-search-item.is-active{transform:translateX(3px)}
.nb-footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
.nb-rail{padding:.48rem;border:1px solid rgba(215,183,120,.45);border-radius:1.35rem;background:rgba(246,240,229,.82);box-shadow:0 18px 48px -24px rgba(14,25,17,.55);backdrop-filter:blur(18px) saturate(1.35)}
.nb-rail-btn{border-radius:13px}.nb-backtop{border-radius:15px}
.nb-floating-quote{position:fixed;right:1.15rem;bottom:1.1rem;z-index:45;display:inline-flex;align-items:center;gap:.55rem;padding:.8rem 1.1rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:var(--gold);color:var(--forest-deep);font-size:.82rem;font-weight:800;letter-spacing:.01em;box-shadow:0 14px 34px -15px rgba(0,0,0,.5);transition:transform .25s ease,box-shadow .25s ease}
.nb-floating-quote:hover{transform:translateY(-4px);box-shadow:0 19px 40px -16px rgba(0,0,0,.55)}.nb-floating-quote svg{transition:transform .25s ease}.nb-floating-quote:hover svg{transform:translateX(3px)}
@media(max-width:767.98px){.nb-footer{padding-top:3rem}.nb-footer-bottom{display:grid;gap:.8rem}.nb-floating-quote{right:.75rem;bottom:.75rem;padding:.72rem .9rem}.nb-journey-media{aspect-ratio:16/10}}
@media(prefers-reduced-motion:reduce){.nb-journey-card,.nb-journey-media img,.nb-detail-list li,.nb-floating-quote,.nb-soc-link{transition:none!important}.nb-journey-card:hover{transform:none}}
.nb-direction-link{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .45rem;color:inherit;text-decoration:none}.nb-direction-link i{margin-left:auto;color:var(--terracotta);font-style:normal;opacity:.45;transition:opacity .2s ease,transform .2s ease}.nb-direction-link:hover i{opacity:1;transform:translate(3px,-3px)}.nb-detail-list li:has(.nb-direction-link){padding:.2rem .65rem}.nb-why-feature{min-height:100%;padding:1rem;border:1px solid rgba(215,183,120,.22);border-radius:1.15rem;background:linear-gradient(145deg,#fff,#faf8f1);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.nb-why-feature:hover{transform:translateY(-4px);border-color:rgba(215,183,120,.75);box-shadow:0 16px 32px -24px rgba(24,39,28,.55)}.nb-tour-card{border-radius:1.45rem;overflow:hidden;box-shadow:0 12px 34px -25px rgba(24,39,28,.5)}.nb-tour-media{aspect-ratio:16/10}.nb-tour-media img{width:100%;height:100%;object-fit:cover}.nb-tour-card:hover{transform:translateY(-7px);border-color:rgba(215,183,120,.8);box-shadow:0 24px 55px -28px rgba(24,39,28,.42)}

/* Appended modernisation layer (kept in sync with resources/css/app.css). */
/* ============================================================
   Modernisation layer 2026 — brand preloader, accents, video
   library, footer pills, typewriter, refreshed search palette.
   ============================================================ */

/* ---- Shared accent system: every card picks one of five ---- */
.nb-accent-1 { --acc: #d7b778; --acc-deep: #a98a44; }
.nb-accent-2 { --acc: #c2703d; --acc-deep: #813d28; }
.nb-accent-3 { --acc: #6f9a63; --acc-deep: #47653c; }
.nb-accent-4 { --acc: #4f8fae; --acc-deep: #2e6580; }
.nb-accent-5 { --acc: #b0779d; --acc-deep: #7d4d6e; }

/* ---- Brand preloader (logo orb + visible wording) ---- */
.nb-preloader {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 0.85rem;
  padding: 1.5rem;
  background: linear-gradient(160deg, #14201586, #142017 52%, #1d3124);
  background-color: #142017;
  color: var(--ivory);
  text-align: center;
  animation: nb-preloader-out 0.45s ease 2.6s forwards;
}
.nb-preloader.is-done { animation-duration: 0.4s; animation-delay: 0s; }
.nb-preloader-orb { position: relative; display: grid; place-items: center; width: 96px; height: 96px; }
.nb-preloader-orb::before,
.nb-preloader-orb::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  pointer-events: none;
}
.nb-preloader-orb::before {
  background: conic-gradient(from 0deg, transparent 8%, var(--acc, #d7b778) 48%, transparent 60%);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  animation: nb-preloader-orbit 1.15s linear infinite;
}
.nb-preloader-orb::after {
  inset: 5px;
  border: 1px solid rgba(215, 183, 120, 0.22);
  box-shadow: 0 0 0 8px rgba(215, 183, 120, 0.05), 0 0 0 20px rgba(215, 183, 120, 0.02);
  animation: nb-preloader-pulse 1.15s ease-in-out infinite;
}
.nb-preloader-logo { width: 68px; height: 68px; border-radius: 50%; box-shadow: 0 14px 30px -12px rgba(0, 0, 0, 0.55); }
.nb-preloader-word {
  margin: 0.4rem 0 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}
.nb-preloader-word em { color: var(--gold); font-weight: 600; }
.nb-preloader-note {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  margin: 0;
  color: rgba(246, 240, 229, 0.72);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.nb-preloader-dots { display: inline-flex; gap: 0.3rem; margin-left: 0.45rem; align-items: center; }
.nb-preloader-dots i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold);
  animation: nb-preloader-dot 1.05s ease-in-out infinite;
}
.nb-preloader-dots i:nth-child(2) { animation-delay: 0.14s; }
.nb-preloader-dots i:nth-child(3) { animation-delay: 0.28s; }
@keyframes nb-preloader-orbit { to { transform: rotate(360deg); } }
@keyframes nb-preloader-pulse { 0%, 100% { opacity: 0.55; transform: scale(0.97); } 50% { opacity: 1; transform: scale(1.03); } }
@keyframes nb-preloader-dot { 0%, 100% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }
@keyframes nb-preloader-out { to { opacity: 0; visibility: hidden; pointer-events: none; } }
.nb-preloader[hidden], .nb-preloader.is-done[hidden] { display: none; }

/* ---- Search palette: type icons + skeleton + empty-state button ---- */
.nb-search-item-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(215, 183, 120, 0.45);
  border-radius: 12px;
  background: linear-gradient(150deg, rgba(215, 183, 120, 0.16), rgba(38, 61, 43, 0.05));
  color: var(--forest);
}
.nb-search-item.is-active .nb-search-item-icon,
.nb-search-item:hover .nb-search-item-icon {
  background: var(--forest);
  color: var(--gold);
  border-color: rgba(215, 183, 120, 0.8);
}
.nb-search-skel {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.58rem 0.65rem;
  border: 1px solid transparent;
  border-radius: 0.85rem;
}
.nb-search-skel-ico {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: linear-gradient(100deg, #ede5d4 32%, #f8f2e6 50%, #ede5d4 68%);
  background-size: 220% 100%;
  animation: nb-skel 1.15s ease infinite;
}
.nb-search-skel-main { display: grid; flex: 1; gap: 0.4rem; }
.nb-search-skel-line {
  display: block;
  height: 0.72rem;
  width: 68%;
  border-radius: 999px;
  background: linear-gradient(100deg, #ede5d4 32%, #f8f2e6 50%, #ede5d4 68%);
  background-size: 220% 100%;
  animation: nb-skel 1.15s ease infinite;
}
.nb-search-skel-line--short { width: 42%; height: 0.55rem; }
@keyframes nb-skel { from { background-position: 120% 0; } to { background-position: -120% 0; } }
.nb-search-empty-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.9rem;
  border: 1px solid rgba(38, 61, 43, 0.22);
  border-radius: 999px;
  background: var(--forest);
  color: var(--ivory);
  padding: 0.5rem 0.95rem;
  font-size: 0.68rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s var(--ease);
}
.nb-search-empty-btn:hover { background: var(--terracotta); transform: translateY(-1px); }
/* The desktop trigger no longer shows a keyboard chip. */
.nb-search-trigger-kbd { display: none; }

/* ---- Journey bento: one ratio, contained copy, per-card hover colour ---- */
.nb-journey-card .nb-journey-media {
  aspect-ratio: 16 / 11;
  flex: 0 0 auto;
}
.nb-journey-media .nb-journey-icon {
  position: absolute;
  z-index: 3;
  right: 0.95rem;
  bottom: 0.85rem;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(246, 240, 229, 0.35);
  border-radius: 12px;
  background: rgba(20, 30, 23, 0.55);
  color: var(--ivory);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  opacity: 0;
  transform: translateY(6px) scale(0.94);
  transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), background 0.3s ease, color 0.3s ease;
}
.nb-journey-card:hover .nb-journey-media .nb-journey-icon,
.nb-journey-card:focus-within .nb-journey-media .nb-journey-icon {
  opacity: 1;
  transform: none;
  background: var(--acc, var(--forest));
  color: var(--ivory);
}
.nb-journey-chip { transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease; }
.nb-journey-card:hover .nb-journey-chip { border-color: rgba(215, 183, 120, 0.8); background: var(--acc, var(--ivory)); color: var(--forest); }
.nb-journey-card:hover .nb-journey-chip::before { background: var(--acc-deep, var(--terracotta-bright)); }
.nb-journey-body { min-width: 0; }
.nb-journey-title { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.nb-journey-title a { transition: color 0.25s ease; }
.nb-journey-title a:hover { color: var(--acc-deep, var(--terracotta)); }
.nb-journey-text {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.nb-journey-card:hover { border-color: color-mix(in srgb, var(--acc, #d7b778) 62%, rgba(215, 183, 120, 0.3)); }
.nb-journey-card-dark:hover { border-color: color-mix(in srgb, var(--acc, #d7b778) 70%, rgba(215, 183, 120, 0.45)); }
.nb-journey-title a { -webkit-line-clamp: inherit; }
.nb-journey-card .nb-journey-cta-ring {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  margin-right: 0.28rem;
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 0.28s var(--ease), transform 0.28s var(--ease), background 0.28s ease;
}
.nb-journey-card:hover .nb-journey-cta-ring,
.nb-journey-card:focus-within .nb-journey-cta-ring { opacity: 0.9; transform: scale(1); background: rgba(215, 183, 120, 0.12); }
.nb-journey-card .nb-journey-cta { position: relative; transition: color 0.28s ease; }
.nb-journey-card .nb-journey-cta svg { transition: transform 0.3s var(--ease); }
.nb-journey-card .nb-journey-cta:hover { color: var(--acc-deep, var(--terracotta)); }
.nb-journey-card .nb-journey-cta:hover svg { transform: translateX(4px); }
.nb-journey-card-dark .nb-journey-cta:hover { color: var(--acc, var(--gold)); }

/* ---- Why go beyond: icon cards with accent hover ---- */
.nb-why-features { display: grid; gap: 0.8rem; grid-template-columns: repeat(1, minmax(0, 1fr)); }
.nb-why-card {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(215, 183, 120, 0.35);
  border-radius: 1.15rem;
  background: linear-gradient(150deg, #fff, #fdf9f0);
  padding: 1rem 1.05rem;
  box-shadow: var(--shadow-sm);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s ease;
}
.nb-why-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--acc, var(--gold));
  opacity: 0;
  transition: opacity 0.3s ease;
}
.nb-why-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--acc, #d7b778) 65%, rgba(215, 183, 120, 0.35)); box-shadow: var(--shadow-lg); }
.nb-why-card:hover::before { opacity: 1; }
.nb-why-ico {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(215, 183, 120, 0.5);
  border-radius: 13px;
  background: var(--ivory);
  color: var(--forest);
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s var(--ease);
}
.nb-why-card:hover .nb-why-ico { background: var(--acc, var(--gold)); color: #fff; transform: rotate(-6deg) scale(1.06); }
.nb-why-copy { min-width: 0; }
.nb-why-copy strong { display: block; color: var(--forest); font-size: 0.9rem; line-height: 1.3; }
.nb-why-copy span { display: block; margin-top: 0.3rem; color: #686155; font-size: 0.78rem; line-height: 1.6; }
@media (min-width: 640px) { .nb-why-features { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---- How it works: accent steps ---- */
.nb-step-grid { display: grid; gap: 1rem; grid-template-columns: repeat(1, minmax(0, 1fr)); counter-reset: step; }
.nb-step-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(215, 183, 120, 0.38);
  border-radius: 1.35rem;
  background: linear-gradient(160deg, #fdfaf2, #fff);
  padding: 1.35rem 1.35rem 1.45rem;
  box-shadow: var(--shadow-sm);
  transition: transform 0.32s var(--ease), box-shadow 0.32s var(--ease), border-color 0.32s ease, background 0.32s ease;
}
.nb-step-card:hover {
  transform: translateY(-6px);
  border-color: color-mix(in srgb, var(--acc, #d7b778) 68%, rgba(215, 183, 120, 0.35));
  box-shadow: 0 26px 55px -30px rgba(24, 39, 28, 0.45);
}
.nb-step-bar {
  position: absolute;
  inset: auto 0 0 0;
  height: 4px;
  border-radius: 999px 999px 0 0;
  background: linear-gradient(90deg, var(--acc, var(--gold)), color-mix(in srgb, var(--acc, #d7b778) 35%, transparent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.45s var(--ease);
}
.nb-step-card:hover .nb-step-bar { transform: scaleX(1); }
.nb-step-top { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; }
.nb-step-number {
  color: var(--forest);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 2.55rem;
  font-weight: 600;
  line-height: 0.9;
  transition: color 0.3s ease;
}
.nb-step-card:hover .nb-step-number { color: var(--acc-deep, var(--gold)); }
.nb-step-ico {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(215, 183, 120, 0.5);
  border-radius: 13px;
  background: var(--ivory);
  color: var(--forest);
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s var(--ease);
}
.nb-step-card:hover .nb-step-ico { background: var(--acc, var(--gold)); color: #fff; transform: rotate(-6deg) scale(1.05); }
.nb-step-title { margin: 0.7rem 0 0; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.6rem; font-weight: 600; line-height: 1.12; }
.nb-step-text { margin: 0.5rem 0 0; color: #686155; font-size: 0.82rem; line-height: 1.68; }
@media (min-width: 768px) { .nb-step-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---- Typewriter ---- */
.nb-typed { display: inline-block; min-width: 2ch; color: var(--terracotta); font-style: italic; }
.nb-typed.is-armed { min-width: 0; }
.nb-typed-caret {
  display: inline-block;
  width: 2px;
  height: 1.05em;
  margin-left: 0.12rem;
  background: var(--terracotta-bright);
  vertical-align: -0.16em;
  animation: nb-caret 0.85s steps(1) infinite;
}
@keyframes nb-caret { 0%, 55% { opacity: 1; } 56%, 100% { opacity: 0.12; } }

/* ---- Video library (public grid + home showcase; one shape for every film) ---- */
.nb-video-grid { display: grid; gap: 1.15rem; margin: 2rem 0 0; padding: 0; list-style: none; grid-template-columns: repeat(1, minmax(0, 1fr)); }
.nb-video-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1.45rem;
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s ease;
}
.nb-video-card:hover { transform: translateY(-5px); border-color: rgba(184, 92, 56, 0.4); box-shadow: var(--shadow-lg); }
.nb-video-card figure { margin: 0; }
.nb-video-stage { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; background: #142017; }
.nb-video { width: 100%; height: 100%; display: block; object-fit: cover; background: #142017; transition: transform 0.9s var(--ease); }
.nb-video-card:hover .nb-video { transform: scale(1.03); }
.nb-video-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 30, 23, 0.05), transparent 32%, rgba(20, 30, 23, 0.35));
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.nb-video-stage.is-playing::after, .nb-video-card.is-playing .nb-video-stage::after { opacity: 0; }
.nb-video-play {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  cursor: pointer;
  color: var(--ivory);
  pointer-events: auto;
  background: radial-gradient(56% 56% at 50% 44%, rgba(14, 24, 17, 0.35), transparent 76%);
  transition: opacity 0.3s ease, transform 0.3s var(--ease);
}
.nb-video-play svg {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  padding: 16px;
  border: 1px solid rgba(246, 240, 229, 0.55);
  border-radius: 50%;
  background: rgba(14, 24, 17, 0.62);
  box-shadow: 0 12px 28px -12px rgba(0, 0, 0, 0.6);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  transition: transform 0.3s var(--ease), background 0.3s ease;
}
.nb-video-play:hover svg { transform: scale(1.08); background: rgba(215, 183, 120, 0.85); color: #142017; }
.nb-video-card.is-playing .nb-video-play { opacity: 0; pointer-events: none; transform: scale(1.25); }
.nb-video-duration {
  position: absolute;
  z-index: 3;
  right: 0.8rem;
  bottom: 0.8rem;
  padding: 0.28rem 0.55rem;
  border: 1px solid rgba(246, 240, 229, 0.35);
  border-radius: 999px;
  background: rgba(14, 24, 17, 0.72);
  color: var(--ivory);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.nb-video-caption { padding: 1.05rem 1.2rem 1.2rem; text-align: left; }
.nb-video-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.6rem;
  border: 1px solid rgba(215, 183, 120, 0.5);
  border-radius: 999px;
  background: rgba(215, 183, 120, 0.16);
  color: #6d5426;
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.nb-video-tag::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #c2703d; }
.nb-video-title { margin: 0.6rem 0 0; color: var(--forest); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.55rem; font-weight: 600; line-height: 1.1; transition: color 0.25s ease; }
.nb-video-card:hover .nb-video-title { color: var(--terracotta); }
.nb-video-desc { margin: 0.4rem 0 0; color: #686155; font-size: 0.8rem; line-height: 1.62; }
.nb-video-credit { margin: 0.45rem 0 0; color: #8d867a; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
@media (min-width: 640px) { .nb-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .nb-video-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.nb-video-card.is-broken .nb-video-stage::before {
  content: "This film could not load. Refresh to try again.";
  position: absolute;
  inset: 0;
  z-index: 4;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: #142017;
  color: rgba(246, 240, 229, 0.8);
  font-size: 0.72rem;
  text-align: center;
}

/* ---- Footer: aurora edge, glow logo, hover-coloured pills ---- */
.nb-footer { position: relative; overflow: hidden; }
.nb-footer-aurora {
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, #d7b778, #c2703d 22%, #6f9a63 44%, #4f8fae 66%, #b0779d 84%, #d7b778);
  background-size: 220% 100%;
  opacity: 0.85;
  animation: nb-aurora 14s linear infinite;
}
@keyframes nb-aurora { from { background-position: 0% 0; } to { background-position: 220% 0; } }
.nb-footer-logo-ring {
  position: relative;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
}
.nb-footer-logo-ring::before {
  content: "";
  position: absolute;
  inset: -6px auto auto -6px;
  width: calc(100% + 12px);
  height: calc(100% + 12px);
  border-radius: 50%;
  border: 1px solid transparent;
  border-top-color: var(--gold);
  border-right-color: rgba(215, 183, 120, 0.45);
  animation: nb-preloader-orbit 7s linear infinite;
}
.nb-logo-img-glow { z-index: 1; filter: drop-shadow(0 10px 24px rgba(215, 183, 120, 0.28)); }
.nb-footer-wa {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1rem;
  padding: 0.5rem 0.85rem 0.5rem 0.7rem;
  border: 1px solid rgba(215, 183, 120, 0.45);
  border-radius: 999px;
  background: rgba(215, 183, 120, 0.08);
  color: var(--gold);
  font-size: 0.72rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.25s var(--ease), border-color 0.25s ease, color 0.25s ease, transform 0.25s var(--ease);
}
.nb-footer-wa:hover, .nb-footer-wa:focus-visible {
  background: #25d366;
  border-color: #25d366;
  color: #fff;
  transform: translateY(-2px);
  text-decoration: none;
}
.nb-footer-links { display: grid; gap: 0.45rem; margin: 1rem 0 0; padding: 0; list-style: none; color: rgba(246, 240, 229, 0.72); font-size: 0.76rem; }
.nb-footer-links a { text-decoration: none; }
.nb-footer-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  width: 100%;
  min-height: 38px;
  padding: 0.5rem 0.8rem;
  border: 1px solid rgba(246, 240, 229, 0.14);
  border-radius: 0.85rem;
  background: rgba(246, 240, 229, 0.04);
  color: rgba(246, 240, 229, 0.78);
  font-size: 0.74rem;
  font-weight: 600;
  line-height: 1.25;
  word-break: break-word;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  transition: translate 0.3s var(--ease), background 0.3s var(--ease), color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s var(--ease);
}
.nb-footer-pill::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.28) 50%, transparent 66%);
  transform: translateX(-130%);
  transition: transform 0.7s var(--ease);
  pointer-events: none;
}
.nb-footer-pill:hover::before, .nb-footer-pill:focus-visible::before { transform: translateX(130%); }
.nb-footer-pill-arrow {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(246, 240, 229, 0.1);
  color: inherit;
  font-size: 0.72rem;
  line-height: 1;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.28s var(--ease), transform 0.28s var(--ease), background 0.28s ease;
}
.nb-footer-pill:hover, .nb-footer-pill:focus-visible {
  translate: 2px 0;
  color: #fff;
  box-shadow: 0 12px 26px -14px rgba(0, 0, 0, 0.55);
}
.nb-footer-pill:hover .nb-footer-pill-arrow,
.nb-footer-pill:focus-visible .nb-footer-pill-arrow { opacity: 1; transform: none; background: rgba(255, 255, 255, 0.22); }
/* Every pill answers a different brand colour on hover. */
.nb-footer-pill:nth-child(5n + 1):hover, .nb-footer-pill:nth-child(5n + 1):focus-visible,
.nb-footer-links li:nth-child(5n + 1) .nb-footer-pill:hover, .nb-footer-links li:nth-child(5n + 1) .nb-footer-pill:focus-visible { background: #b98c36; border-color: #d7b778; }
.nb-footer-links li:nth-child(5n + 2) .nb-footer-pill:hover, .nb-footer-links li:nth-child(5n + 2) .nb-footer-pill:focus-visible { background: #813d28; border-color: #c2703d; }
.nb-footer-links li:nth-child(5n + 3) .nb-footer-pill:hover, .nb-footer-links li:nth-child(5n + 3) .nb-footer-pill:focus-visible { background: #47653c; border-color: #6f9a63; }
.nb-footer-links li:nth-child(5n + 4) .nb-footer-pill:hover, .nb-footer-links li:nth-child(5n + 4) .nb-footer-pill:focus-visible { background: #2e6580; border-color: #4f8fae; }
.nb-footer-links li:nth-child(5n + 5) .nb-footer-pill:hover, .nb-footer-links li:nth-child(5n + 5) .nb-footer-pill:focus-visible { background: #7d4d6e; border-color: #b0779d; }
.nb-footer-bottom { position: relative; }
.nb-footer-legal { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.nb-footer-pill-legal { width: auto; min-height: 30px; padding: 0.3rem 0.7rem; border-radius: 999px; font-size: 0.62rem; }
.nb-footer-pill-legal:hover, .nb-footer-pill-legal:focus-visible {
  background: var(--gold);
  border-color: var(--gold);
  color: #2b2317;
  box-shadow: 0 10px 22px -12px rgba(215, 183, 120, 0.6);
}

/* ---- Reduced motion: everything still works, nothing spins ---- */
@media (prefers-reduced-motion: reduce) {
  .nb-preloader { display: none; }
  .nb-preloader-orb::before, .nb-preloader-orb::after, .nb-preloader-dots i,
  .nb-footer-aurora, .nb-footer-logo-ring::before, .nb-typed-caret,
  .nb-search-skel-ico, .nb-search-skel-line { animation: none !important; }
  .nb-search-skel { display: none; }
  .nb-footer-aurora { height: 2px; background: linear-gradient(90deg, #d7b778, #c2703d, #6f9a63, #4f8fae, #b0779d); animation: none; }
}


/* ---- Journey types: identical cards and image size (3 + 2 centred) ---- */
.nb-journey-grid { gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: minmax(0, 1fr); }
.nb-journey-grid > .nb-journey-card { grid-column: auto !important; height: 100%; }
.nb-journey-grid .nb-journey-media { aspect-ratio: 4 / 3 !important; width: 100%; }
.nb-journey-grid .nb-journey-media img,
.nb-journey-grid .nb-journey-media .nb-media-fallback { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.nb-journey-grid .nb-journey-body { flex: 1; }
.nb-journey-grid .nb-journey-text {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
  min-height: calc(1.62em * 3);
}
@media (min-width: 768px) {
  .nb-journey-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nb-journey-grid > .nb-journey-card:nth-child(5):last-child { grid-column: 1 / -1 !important; width: calc(50% - 0.75rem); justify-self: center; }
}
@media (min-width: 1024px) {
  .nb-journey-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .nb-journey-grid > .nb-journey-card { grid-column: span 2 !important; width: auto; }
  .nb-journey-grid > .nb-journey-card:nth-child(4) { grid-column: 2 / span 2 !important; }
  .nb-journey-grid > .nb-journey-card:nth-child(5):last-child { grid-column: 4 / span 2 !important; width: auto; justify-self: stretch; }
}


/* ==========================================================================
   Hero typewriter (2026 refresh)
   "Discover" stays fixed; the phrase types itself in a gold gradient with a
   soft glowing caret. Heights are reserved so the hero never jumps.
   ========================================================================== */
.nb-hero-title { min-height: 1.9em; }
.nb-hero-title-visible { display: block; }
.nb-hero-title-fixed { display: block; }

.nb-hero-type {
  display: block;
  min-height: 1.02em;
  margin-top: 0.04em;
  font-style: italic;
}

.nb-typed-hero {
  display: inline;
  font-style: italic;
  color: #e9c98d;
  background-image: linear-gradient(100deg, #f7e8c4 0%, #d9b25f 28%, #fff6e2 50%, #d9b25f 72%, #edd49b 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: nb-hero-type-sheen 8s linear infinite;
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  .nb-typed-hero { -webkit-text-fill-color: currentColor; }
}
@keyframes nb-hero-type-sheen {
  0% { background-position: 0% 50%; }
  100% { background-position: 220% 50%; }
}

.nb-hero-type .nb-typed-caret {
  width: 0.09em;
  height: 0.8em;
  margin-left: 0.07em;
  border-radius: 999px;
  background: linear-gradient(180deg, #fff8e8 0%, #d9b25f 100%);
  box-shadow: 0 0 10px rgba(217, 178, 95, 0.85), 0 0 26px rgba(217, 178, 95, 0.4);
  vertical-align: -0.02em;
  animation: nb-hero-caret 1.05s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}
@keyframes nb-hero-caret {
  0%, 42% { opacity: 1; transform: scaleY(1); }
  50%, 92% { opacity: 0.12; transform: scaleY(0.82); }
  100% { opacity: 1; transform: scaleY(1); }
}

.nb-hero-type-fallback { font-style: italic; color: #e9c98d; }

@media (max-width: 639px) {
  .nb-hero-title { min-height: 2.82em; }
  .nb-hero-title-fixed { display: inline; }
  .nb-hero-type { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  .nb-typed-hero,
  .nb-hero-type .nb-typed-caret { animation: none; }
  .nb-hero-type .nb-typed-caret { opacity: 1; }
  .nb-typed-hero { background-position: 0 0; }
}

/* ==========================================================================
   Trust strip refresh (2026) — logo-coloured, interactive stat tiles.
   Palette: forest, gold and ivory from the brand mark, plus terracotta.
   ========================================================================== */
.nb-trust-strip {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(1.35rem, 3vw, 2.35rem) 0;
  border-bottom: 1px solid rgba(215, 183, 120, 0.26);
  background:
    radial-gradient(120% 190% at 2% 0%, rgba(215, 183, 120, 0.17), transparent 54%),
    radial-gradient(110% 170% at 100% 110%, rgba(184, 92, 56, 0.22), transparent 58%),
    linear-gradient(150deg, #16281c 0%, #22392a 54%, #182b1f 100%);
  color: var(--ivory);
}
.nb-trust-strip::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  z-index: 3;
  height: 2px;
  background: linear-gradient(90deg, transparent, #d7b778, #f7e9c8, #b85c38, #d7b778, transparent);
  background-size: 280% 100%;
  animation: nb-trust-flow 12s linear infinite;
  opacity: 0.85;
}
.nb-trust-strip::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -55% -12% auto;
  height: 170%;
  background: radial-gradient(48% 58% at 50% 0%, rgba(215, 183, 120, 0.20), transparent 72%);
  animation: nb-trust-breathe 10s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes nb-trust-flow { to { background-position: 280% 0; } }
@keyframes nb-trust-breathe {
  from { opacity: 0.5; transform: translateY(-1.4%); }
  to   { opacity: 1;   transform: translateY(1.4%); }
}

.nb-trust-orb {
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  filter: blur(46px);
  opacity: 0.5;
  pointer-events: none;
  animation: nb-trust-drift 16s ease-in-out infinite alternate;
}
.nb-trust-orb--gold {
  width: 15rem; height: 15rem; left: -4rem; top: -7rem;
  background: radial-gradient(circle, rgba(215, 183, 120, 0.55), transparent 68%);
}
.nb-trust-orb--clay {
  width: 17rem; height: 17rem; right: -5rem; bottom: -8rem;
  background: radial-gradient(circle, rgba(184, 92, 56, 0.55), transparent 68%);
  animation-delay: -6s;
}
@keyframes nb-trust-drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(1.6rem, 1rem, 0) scale(1.12); }
}

.nb-trust-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  background: none;
}
@media (min-width: 640px) { .nb-trust-grid { gap: 0.85rem; } }
@media (min-width: 1024px) { .nb-trust-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.nb-trust-item {
  --acc: #d7b778;
  --acc-soft: rgba(215, 183, 120, 0.42);
  --acc-glow: rgba(215, 183, 120, 0.20);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 1rem;
  border: 1px solid rgba(246, 240, 229, 0.14);
  border-radius: 1.1rem;
  background: linear-gradient(152deg, rgba(246, 240, 229, 0.11), rgba(246, 240, 229, 0.035));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09);
  text-align: left;
  transition:
    translate 0.5s var(--ease),
    border-color 0.45s var(--ease),
    background 0.45s var(--ease),
    box-shadow 0.5s var(--ease);
}
@media (min-width: 640px) {
  .nb-trust-item {
    flex-direction: row;
    align-items: center;
    gap: 0.8rem;
    padding: 1rem 1.05rem;
  }
}

/* Accent per tile — gold, terracotta, sage and warm ivory from the logo. */
.nb-trust-1 { --acc: #d7b778; --acc-soft: rgba(215, 183, 120, 0.45); --acc-glow: rgba(215, 183, 120, 0.22); }
.nb-trust-2 { --acc: #d97757; --acc-soft: rgba(217, 119, 87, 0.50); --acc-glow: rgba(217, 119, 87, 0.24); }
.nb-trust-3 { --acc: #9dbe92; --acc-soft: rgba(157, 190, 146, 0.48); --acc-glow: rgba(157, 190, 146, 0.22); }
.nb-trust-4 { --acc: #ead9b8; --acc-soft: rgba(234, 217, 184, 0.50); --acc-glow: rgba(234, 217, 184, 0.22); }

/* Cursor-following glow (--mx / --my are set by experience.js). */
.nb-trust-item::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
  background: radial-gradient(170px circle at var(--mx, 50%) var(--my, 50%), var(--acc-soft), transparent 70%);
}
/* Diagonal sheen that sweeps once on hover. */
.nb-trust-item::after {
  content: "";
  position: absolute;
  top: -70%;
  bottom: -70%;
  left: -55%;
  width: 34%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.18), transparent);
  transform: rotate(12deg) translateX(-140%);
  transition: transform 0.85s var(--ease);
}
.nb-trust-item:hover,
.nb-trust-item:focus-within {
  translate: 0 -4px;
  border-color: var(--acc-soft);
  background: linear-gradient(152deg, rgba(246, 240, 229, 0.16), rgba(246, 240, 229, 0.05));
  box-shadow:
    0 20px 38px -24px rgba(0, 0, 0, 0.75),
    0 0 26px -12px var(--acc-glow),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
}
.nb-trust-item:hover::before,
.nb-trust-item:focus-within::before { opacity: 1; }
.nb-trust-item:hover::after { transform: rotate(12deg) translateX(460%); }

.nb-trust-ico {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.85rem;
  font-style: normal;
  color: #13251a;
  background: linear-gradient(150deg, #fffaf0 0%, var(--acc) 58%, var(--acc) 100%);
  box-shadow:
    0 12px 22px -14px rgba(0, 0, 0, 0.8),
    0 0 18px -10px var(--acc-soft),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
  transition: transform 0.55s var(--ease), box-shadow 0.45s var(--ease);
}
.nb-trust-ico::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid var(--acc);
  opacity: 0;
  pointer-events: none;
}
.nb-trust-item:hover .nb-trust-ico,
.nb-trust-item:focus-within .nb-trust-ico {
  transform: rotate(-8deg) scale(1.08);
  box-shadow:
    0 14px 26px -14px rgba(0, 0, 0, 0.85),
    0 0 24px -8px var(--acc-soft),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.nb-trust-item:hover .nb-trust-ico::after { animation: nb-trust-ping 1.1s var(--ease) 2; }
@keyframes nb-trust-ping {
  0%   { opacity: 0.75; transform: scale(1); }
  100% { opacity: 0;    transform: scale(1.55); }
}

.nb-trust-copy { position: relative; z-index: 2; min-width: 0; }
.nb-trust-item strong {
  display: block;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.85rem, 3.4vw, 2.4rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.01em;
  color: #fffdf6;
  background-image: linear-gradient(105deg, #fffdf6 0%, var(--acc) 46%, #fffdf6 92%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  .nb-trust-item strong { -webkit-text-fill-color: currentColor; }
}
.nb-trust-item:hover strong {
  animation: nb-trust-num-sheen 2.4s linear infinite;
}
@keyframes nb-trust-num-sheen {
  0%   { background-position: 0% 50%; }
  100% { background-position: 220% 50%; }
}
.nb-trust-copy span {
  display: block;
  margin-top: 0.32rem;
  color: rgba(246, 240, 229, 0.64);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (min-width: 640px) {
  .nb-trust-copy span { font-size: 0.62rem; letter-spacing: 0.13em; }
}

.nb-trust-spark {
  position: absolute;
  left: 14%;
  right: 14%;
  bottom: 0;
  z-index: 2;
  display: block;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, var(--acc), transparent);
  opacity: 0.4;
  transform: scaleX(0.45);
  transition: opacity 0.45s var(--ease), transform 0.45s var(--ease);
}
.nb-trust-item:hover .nb-trust-spark,
.nb-trust-item:focus-within .nb-trust-spark {
  opacity: 1;
  transform: scaleX(1);
}

/* Staggered entrance (the shared reveal system adds .will-reveal). */
.nb-trust-item.will-reveal.is-revealed { animation: nb-trust-in 0.75s var(--ease) both; }
.nb-trust-item:nth-child(2).will-reveal.is-revealed { animation-delay: 0.08s; }
.nb-trust-item:nth-child(3).will-reveal.is-revealed { animation-delay: 0.16s; }
.nb-trust-item:nth-child(4).will-reveal.is-revealed { animation-delay: 0.24s; }
@keyframes nb-trust-in {
  from { opacity: 0; transform: translateY(18px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .nb-trust-strip::before,
  .nb-trust-strip::after,
  .nb-trust-orb { animation: none; }
  .nb-trust-item,
  .nb-trust-item::before,
  .nb-trust-item::after,
  .nb-trust-ico,
  .nb-trust-spark { transition: none; }
  .nb-trust-item:hover,
  .nb-trust-item:focus-within { translate: none; }
  .nb-trust-item:hover strong { animation: none; }
  .nb-trust-item:hover .nb-trust-ico::after { animation: none; }
}


/* ==========================================================================
   Destination marquee links (2026) — pill links that pause the strip on hover
   and fill with the brand accent of the destination.
   ========================================================================== */
.nb-marquee-link {
  --acc: #d7b778;
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.42rem 0.8rem;
  margin: -0.35rem 0;
  border: 1px solid rgba(215, 183, 120, 0.20);
  border-radius: 999px;
  background: linear-gradient(140deg, rgba(215, 183, 120, 0.10), rgba(215, 183, 120, 0.02));
  color: var(--gold-soft);
  text-decoration: none;
  transition:
    color 0.35s var(--ease),
    translate 0.35s var(--ease),
    border-color 0.35s var(--ease),
    box-shadow 0.4s var(--ease);
}
.nb-marquee-link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  opacity: 0;
  background: linear-gradient(120deg, #f8ecca 0%, var(--acc) 58%, #d7b778 100%);
  transition: opacity 0.35s var(--ease);
}
.nb-marquee-link > * { position: relative; z-index: 1; }
.nb-marquee-name { display: inline-block; }
.nb-marquee-arrow {
  opacity: 0;
  transform: translateX(-3px);
  transition: opacity 0.3s var(--ease), transform 0.35s var(--ease);
}
.nb-marquee-link:hover,
.nb-marquee-link:focus-visible {
  color: #14261a;
  border-color: transparent;
  translate: 0 -2px;
  box-shadow: 0 12px 24px -16px rgba(0, 0, 0, 0.85), 0 0 18px -10px var(--acc);
}
.nb-marquee-link:hover::before,
.nb-marquee-link:focus-visible::before { opacity: 1; }
.nb-marquee-link:hover .nb-marquee-arrow,
.nb-marquee-link:focus-visible .nb-marquee-arrow { opacity: 1; transform: none; }
.nb-marquee-link:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* Four accent rotations from the logo palette. */
.nb-marquee-accent-1 { --acc: #d7b778; }
.nb-marquee-accent-2 { --acc: #e0956f; }
.nb-marquee-accent-3 { --acc: #a9c79e; }
.nb-marquee-accent-4 { --acc: #ead9b8; }

/* Keep the little gold separator dot, cycling the same accents. */
.nb-marquee-list li:nth-child(4n + 1)::after { background: #d7b778; }
.nb-marquee-list li:nth-child(4n + 2)::after { background: #e0956f; }
.nb-marquee-list li:nth-child(4n + 3)::after { background: #a9c79e; }
.nb-marquee-list li:nth-child(4n + 4)::after { background: #ead9b8; }

.nb-marquee-link--kenya {
  --acc: #e0956f;
  border-color: rgba(224, 149, 111, 0.34);
  background: linear-gradient(140deg, rgba(184, 92, 56, 0.22), rgba(184, 92, 56, 0.06));
  color: #f2cfba;
}

/* ==========================================================================
   "Rooted in the wild" CTA — Lake Nakuru flamingos as a cinematic backdrop
   ========================================================================== */
.nb-cta-wild {
  background: linear-gradient(135deg, #16281c, #22392a 55%, #2b4532);
}
.nb-cta-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  border-radius: inherit;
}
.nb-cta-media .nb-cta-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
  transform: scale(1.06);
  filter: saturate(1.12) contrast(1.04);
  animation: nb-cta-drift 26s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes nb-cta-drift {
  from { transform: scale(1.06) translate3d(-0.6%, 0.4%, 0); }
  to   { transform: scale(1.14) translate3d(0.8%, -1%, 0); }
}
.nb-cta-veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  pointer-events: none;
  background:
    linear-gradient(96deg, rgba(13, 24, 17, 0.97) 0%, rgba(14, 26, 19, 0.95) 42%, rgba(15, 28, 20, 0.84) 64%, rgba(15, 28, 20, 0.48) 84%, rgba(15, 28, 20, 0.24) 100%),
    radial-gradient(90% 140% at 100% 0%, rgba(215, 183, 120, 0.20), transparent 55%);
}
.nb-cta-wild .nb-cta-body p { text-shadow: 0 1px 18px rgba(10, 20, 14, 0.6); }
.nb-cta-body { position: relative; z-index: 2; }
.nb-cta-wild::after {
  z-index: 1;
  pointer-events: none;
  opacity: 0.75;
}
.nb-cta-caption {
  position: absolute;
  z-index: 2;
  top: clamp(1rem, 2.6vw, 1.7rem);
  right: clamp(1rem, 2.6vw, 1.7rem);
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 0.75rem;
  border: 1px solid rgba(246, 240, 229, 0.22);
  border-radius: 999px;
  background: rgba(15, 28, 20, 0.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: rgba(246, 240, 229, 0.86);
  font-size: 0.58rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  pointer-events: none;
}
.nb-cta-caption-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #e0956f;
  box-shadow: 0 0 0 4px rgba(224, 149, 111, 0.18);
  animation: nb-cta-pulse 2.6s ease-in-out infinite;
}
@keyframes nb-cta-pulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(224, 149, 111, 0.16); }
  50%      { box-shadow: 0 0 0 8px rgba(224, 149, 111, 0.05); }
}
@media (max-width: 639px) {
  .nb-cta-veil {
    background:
      linear-gradient(180deg, rgba(13, 24, 17, 0.86) 0%, rgba(13, 24, 17, 0.94) 100%),
      radial-gradient(120% 80% at 100% 0%, rgba(215, 183, 120, 0.18), transparent 60%);
  }
  .nb-cta-caption { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .nb-cta-media .nb-cta-img,
  .nb-cta-caption-dot { animation: none; }
  .nb-marquee-link { transition: none; }
}


/* ==========================================================================
   "We travel like it." typewriter — logo gold, terracotta and ivory gradient
   with a glowing caret and a drawn gold rule.
   ========================================================================== */
.nb-cta-type {
  display: block;
  position: relative;
  min-height: 1.06em;
}
.nb-cta-type::before {
  content: "";
  position: absolute;
  left: -2%;
  top: 6%;
  width: 68%;
  height: 92%;
  z-index: -1;
  background: radial-gradient(60% 80% at 32% 60%, rgba(215, 183, 120, 0.20), transparent 72%);
  filter: blur(16px);
  pointer-events: none;
}
.nb-typed-cta,
.nb-cta-type-static {
  display: inline-block;
  position: relative;
  padding-bottom: 0.04em;
  font-style: italic;
  color: #e9c98d;
  background-image: linear-gradient(100deg, #fff5de 0%, #d7b778 26%, #fdf0d2 46%, #e0956f 70%, #d7b778 88%, #fff5de 100%);
  background-size: 240% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 3px 18px rgba(215, 183, 120, 0.30));
  animation: nb-cta-type-sheen 9s linear infinite;
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  .nb-typed-cta,
  .nb-cta-type-static { -webkit-text-fill-color: currentColor; }
}
@keyframes nb-cta-type-sheen {
  0%   { background-position: 0% 50%; }
  100% { background-position: 240% 50%; }
}
.nb-cta-wild:hover .nb-typed-cta { animation-duration: 2.6s; }

.nb-typed-cta::after,
.nb-cta-type-static::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.01em;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, rgba(215, 183, 120, 0), #d7b778 18%, #e0956f 55%, #d7b778 82%, rgba(215, 183, 120, 0));
  opacity: 0.9;
  transform-origin: 0 50%;
  animation: nb-cta-rule-in 0.7s var(--ease) both;
}
@keyframes nb-cta-rule-in {
  from { transform: scaleX(0); opacity: 0; }
  to   { transform: scaleX(1); opacity: 0.9; }
}

.nb-typed-cta .nb-typed-caret {
  display: inline-block;
  width: 0.085em;
  height: 0.78em;
  margin-left: 0.06em;
  border-radius: 999px;
  background: linear-gradient(180deg, #fff8e8 0%, #d7b778 48%, #e0956f 100%);
  box-shadow: 0 0 10px rgba(215, 183, 120, 0.9), 0 0 26px rgba(224, 149, 111, 0.45);
  vertical-align: -0.04em;
  animation: nb-cta-caret 1s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}
@keyframes nb-cta-caret {
  0%, 40%   { opacity: 1; transform: scaleY(1); }
  52%, 88%  { opacity: 0.12; transform: scaleY(0.8); }
  100%      { opacity: 1; transform: scaleY(1); }
}

@media (prefers-reduced-motion: reduce) {
  .nb-typed-cta,
  .nb-cta-type-static,
  .nb-typed-cta::after,
  .nb-typed-cta .nb-typed-caret { animation: none; }
  .nb-cta-type::before { display: none; }
}


/* ==========================================================================
   How it works — "Rift Valley dawn" immersive band (2026)
   Topographic contours, warm dust, glass cards and accent light.
   ========================================================================== */
.nb-process {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--ivory);
  border-block: 1px solid rgba(215, 183, 120, 0.24);
  background:
    radial-gradient(95% 72% at 8% -12%, rgba(215, 183, 120, 0.24), transparent 62%),
    radial-gradient(85% 76% at 104% 26%, rgba(184, 92, 56, 0.28), transparent 64%),
    radial-gradient(90% 60% at 50% 118%, rgba(215, 183, 120, 0.16), transparent 66%),
    linear-gradient(158deg, #15281c 0%, #1f3627 46%, #122019 100%);
}
.nb-process::before {
  content: "";
  position: absolute;
  inset: -12% -6%;
  z-index: -1;
  pointer-events: none;
  opacity: 0.9;
  background-image:
    repeating-radial-gradient(ellipse 42% 30% at 84% 10%, transparent 0 32px, rgba(215, 183, 120, 0.13) 32px 33px),
    repeating-radial-gradient(ellipse 56% 40% at 4% 94%, transparent 0 44px, rgba(246, 240, 229, 0.075) 44px 45px),
    repeating-radial-gradient(ellipse 30% 24% at 58% 58%, transparent 0 24px, rgba(224, 149, 111, 0.075) 24px 25px);
  -webkit-mask-image: radial-gradient(130% 110% at 50% 0%, #000 24%, transparent 84%);
  mask-image: radial-gradient(130% 110% at 50% 0%, #000 24%, transparent 84%);
}
.nb-process::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.5;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(247, 233, 200, 0.9) 0 1.5px, transparent 2px),
    radial-gradient(circle at 26% 72%, rgba(247, 233, 200, 0.6) 0 1px, transparent 1.8px),
    radial-gradient(circle at 47% 12%, rgba(247, 233, 200, 0.75) 0 1.5px, transparent 2px),
    radial-gradient(circle at 63% 82%, rgba(247, 233, 200, 0.5) 0 1px, transparent 1.8px),
    radial-gradient(circle at 78% 26%, rgba(247, 233, 200, 0.8) 0 1.5px, transparent 2px),
    radial-gradient(circle at 90% 62%, rgba(247, 233, 200, 0.55) 0 1px, transparent 1.8px),
    radial-gradient(circle at 35% 46%, rgba(247, 233, 200, 0.45) 0 1px, transparent 1.8px),
    radial-gradient(circle at 71% 55%, rgba(247, 233, 200, 0.6) 0 1.2px, transparent 1.9px);
  animation: nb-process-twinkle 7s ease-in-out infinite alternate;
}
@keyframes nb-process-twinkle {
  0%   { opacity: 0.32; transform: translateY(0); }
  100% { opacity: 0.7;  transform: translateY(-8px); }
}

.nb-process .nb-eyebrow { color: #e6bd8d; }
.nb-process .nb-eyebrow::before { opacity: 0.85; }
.nb-process .nb-title {
  color: var(--ivory);
  text-shadow: 0 14px 44px rgba(0, 0, 0, 0.38);
}
.nb-process .nb-lead { color: rgba(246, 240, 229, 0.78); min-height: 5.25em; }
@media (min-width: 640px) { .nb-process .nb-lead { min-height: 3.5em; } }

/* Warm typewriter accent so it reads on the dark band. */
.nb-process .nb-typed {
  color: #f2c9a2;
  text-shadow: 0 0 22px rgba(224, 149, 111, 0.35);
}
.nb-process .nb-typed-caret {
  width: 2px;
  background: linear-gradient(180deg, #fff3da, #e0956f);
  box-shadow: 0 0 10px rgba(224, 149, 111, 0.8);
}

/* Glass cards with a coloured aura and an editorial outlined numeral. */
.nb-process .nb-step-card {
  border: 1px solid rgba(246, 240, 229, 0.22);
  background: linear-gradient(158deg, rgba(252, 248, 239, 0.99), rgba(244, 235, 218, 0.96));
  box-shadow:
    0 30px 60px -44px rgba(0, 0, 0, 0.9),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition:
    translate 0.38s var(--ease),
    box-shadow 0.38s var(--ease),
    border-color 0.38s ease,
    background 0.38s ease;
}
.nb-process .nb-step-card::before {
  content: "";
  position: absolute;
  top: -32%;
  right: -22%;
  width: 72%;
  height: 82%;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, var(--acc, #d7b778), transparent 70%);
  opacity: 0.16;
  filter: blur(8px);
  transition: opacity 0.45s var(--ease), transform 0.6s var(--ease);
}
.nb-process .nb-step-card > * { position: relative; z-index: 1; }
.nb-process .nb-step-card:hover {
  transform: none;
  translate: 0 -8px;
  border-color: var(--acc, #d7b778);
  box-shadow:
    0 42px 72px -40px rgba(0, 0, 0, 0.88),
    0 22px 54px -30px var(--acc, #d7b778),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.nb-process .nb-step-card:hover::before {
  opacity: 0.32;
  transform: scale(1.12);
}

.nb-process .nb-step-number {
  color: var(--acc-deep, #a98a44);
  opacity: 0.55;
  font-size: 2.9rem;
  transition: color 0.35s ease, opacity 0.35s ease;
}
@supports (-webkit-text-stroke: 1px #000) {
  .nb-process .nb-step-number {
    color: transparent;
    opacity: 1;
    -webkit-text-stroke: 1.2px var(--acc, #d7b778);
    transition: color 0.35s ease, -webkit-text-stroke-color 0.35s ease;
  }
  .nb-process .nb-step-card:hover .nb-step-number {
    color: var(--acc, #d7b778);
    -webkit-text-stroke-color: transparent;
  }
}

.nb-process .nb-step-ico {
  border-color: rgba(215, 183, 120, 0.55);
  background: #fffdf8;
  color: var(--acc-deep, var(--forest));
  box-shadow: 0 12px 22px -16px var(--acc, #d7b778);
}
.nb-process .nb-step-card:hover .nb-step-ico {
  background: var(--acc, #d7b778);
  color: #fff;
  box-shadow: 0 16px 28px -14px var(--acc, #d7b778);
}
.nb-process .nb-step-bar {
  position: absolute;
  height: 3px;
  box-shadow: 0 0 18px var(--acc, #d7b778);
}

/* Staggered entrance from the shared reveal system. */
.nb-process .nb-step-card.will-reveal.is-revealed { animation: nb-process-in 0.8s var(--ease) both; }
.nb-process .nb-step-card:nth-child(2).will-reveal.is-revealed { animation-delay: 0.12s; }
.nb-process .nb-step-card:nth-child(3).will-reveal.is-revealed { animation-delay: 0.24s; }
@keyframes nb-process-in {
  from { opacity: 0; transform: translateY(26px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .nb-process::after { animation: none; }
  .nb-process .nb-step-card,
  .nb-process .nb-step-card::before { transition: none; }
  .nb-process .nb-step-card:hover { translate: none; }
}


/* ==========================================================================
   "Find your kind of journey" — six colour-coded editorial cards (2026)
   Every accent is drawn from the Nyika logo. Hovering or focusing a card
   floods it with that accent and flips the type to ivory.
   ========================================================================== */
.nb-journey-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(82% 62% at 100% 0%, rgba(215, 183, 120, 0.20), transparent 62%),
    radial-gradient(72% 56% at 0% 100%, rgba(184, 92, 56, 0.10), transparent 64%),
    linear-gradient(180deg, #fcf8f0 0%, #f7f1e5 100%);
}
.nb-journey-section::before {
  content: "";
  position: absolute;
  top: -22%;
  right: -12%;
  width: min(680px, 72vw);
  aspect-ratio: 1;
  z-index: -1;
  pointer-events: none;
  opacity: 0.55;
  border-radius: 50%;
  background: repeating-radial-gradient(circle at 50% 50%, transparent 0 26px, rgba(215, 183, 120, 0.22) 26px 27px);
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 10%, transparent 70%);
  mask-image: radial-gradient(circle at 50% 50%, #000 10%, transparent 70%);
}
.nb-journey-section .nb-eyebrow { color: #8a6a2a; }
.nb-journey-section .nb-title { color: #22382a; }

/* Six accents, all from the logo palette. */
.nb-journey-a1 { --acc: #b85c38; --acc-deep: #7f3a26; --acc-soft: #f8e7dd; --acc-line: rgba(184, 92, 56, 0.38); }
.nb-journey-a2 { --acc: #6f9a63; --acc-deep: #43603a; --acc-soft: #eaf1e5; --acc-line: rgba(111, 154, 99, 0.44); }
.nb-journey-a3 { --acc: #d7b778; --acc-deep: #7d5f22; --acc-soft: #fbf0d8; --acc-line: rgba(215, 183, 120, 0.64); }
.nb-journey-a4 { --acc: #33573d; --acc-deep: #22382a; --acc-soft: #e6eee4; --acc-line: rgba(51, 87, 61, 0.36); }
.nb-journey-a5 { --acc: #b08a4a; --acc-deep: #6f5420; --acc-soft: #f7ecd6; --acc-line: rgba(176, 138, 74, 0.48); }
.nb-journey-a6 { --acc: #c98052; --acc-deep: #7a4527; --acc-soft: #faeadf; --acc-line: rgba(201, 128, 82, 0.44); }

.nb-journey-card {
  overflow: hidden;
  border: 1px solid var(--acc-line, rgba(215, 183, 120, 0.4));
  border-radius: 1.7rem;
  background: linear-gradient(168deg, #fffdf9 0%, var(--acc-soft, #fbf6ec) 155%);
  box-shadow:
    0 22px 46px -38px rgba(34, 56, 42, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  transition:
    translate 0.42s var(--ease),
    transform 0.18s ease-out,
    box-shadow 0.42s var(--ease),
    border-color 0.42s ease;
}
/* The flood layer sits above the card background but below the content. */
.nb-journey-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  background:
    radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--acc, #d7b778) 62%, var(--acc-deep, #7d5f22)) 0%, transparent 58%),
    linear-gradient(162deg, var(--acc-deep, #7d5f22) 0%, color-mix(in srgb, var(--acc-deep, #7d5f22) 76%, #101a13) 100%);
  transition: opacity 0.45s var(--ease);
}
.nb-journey-card:hover::before,
.nb-journey-card:focus-within::before { opacity: 1; }

.nb-journey-card .nb-journey-media,
.nb-journey-card .nb-journey-body { position: relative; z-index: 1; }

.nb-journey-card:hover {
  border-color: var(--acc, #d7b778);
  box-shadow:
    0 44px 76px -46px rgba(34, 56, 42, 0.82),
    0 26px 56px -34px var(--acc, #d7b778);
}
.nb-journey-card:not(.nb-tilt):hover { transform: none; translate: 0 -8px; }
.nb-journey-card.nb-tilt:hover { --lift: -8px; }
.nb-journey-card:active { translate: 0 -2px; }
.nb-journey-card:focus-within { outline: 2px solid var(--acc, #d7b778); outline-offset: 3px; }

.nb-journey-card .nb-journey-media img {
  transition: transform 0.9s var(--ease), filter 0.6s ease;
}
.nb-journey-card:hover .nb-journey-media img { filter: saturate(1.1) contrast(1.03); }

.nb-journey-card .nb-journey-chip {
  max-width: calc(100% - 4.6rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  border-color: rgba(255, 255, 255, 0.55);
  background: var(--acc-soft, #fbf6ec);
  color: var(--acc-deep, #7d5f22);
  box-shadow: 0 10px 20px -14px rgba(20, 30, 23, 0.6);
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, transform 0.35s var(--ease);
}
.nb-journey-card .nb-journey-chip::before { background: var(--acc, #d7b778); }
.nb-journey-card:hover .nb-journey-chip,
.nb-journey-card:focus-within .nb-journey-chip {
  background: #fffdf8;
  border-color: #fffdf8;
  color: var(--acc-deep, #7d5f22);
  transform: translateY(-1px);
}
.nb-journey-card:hover .nb-journey-chip::before,
.nb-journey-card:focus-within .nb-journey-chip::before { background: var(--acc, #d7b778); }

.nb-journey-index {
  position: absolute;
  z-index: 2;
  left: 1rem;
  bottom: 0.72rem;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  color: rgba(255, 253, 248, 0.92);
  text-shadow: 0 2px 20px rgba(15, 27, 19, 0.7);
  pointer-events: none;
  transition: transform 0.4s var(--ease), color 0.35s ease;
}
.nb-journey-card:hover .nb-journey-index { transform: translateY(-2px); color: #fffdf8; }

.nb-journey-card .nb-journey-icon {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  border-color: rgba(255, 253, 248, 0.5);
  background: rgba(20, 30, 23, 0.5);
}
.nb-journey-card:hover .nb-journey-media .nb-journey-icon,
.nb-journey-card:focus-within .nb-journey-media .nb-journey-icon {
  background: #fffdf8;
  color: var(--acc-deep, #7d5f22);
}

.nb-journey-card .nb-journey-body { padding: 1.25rem 1.4rem 1.4rem; }

.nb-journey-card .nb-journey-kicker span {
  color: var(--acc-deep, #7d5f22);
  transition: color 0.35s ease;
}
.nb-journey-card .nb-journey-kicker small {
  border-color: var(--acc-line, rgba(215, 183, 120, 0.5));
  background: var(--acc-soft, #fbf6ec);
  color: var(--acc-deep, #7d5f22);
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease;
}
.nb-journey-card:hover .nb-journey-kicker span,
.nb-journey-card:focus-within .nb-journey-kicker span { color: rgba(255, 250, 240, 0.8); }
.nb-journey-card:hover .nb-journey-kicker small,
.nb-journey-card:focus-within .nb-journey-kicker small {
  background: transparent;
  border-color: rgba(255, 250, 240, 0.42);
  color: #fffaf0;
}

.nb-journey-card .nb-journey-title { color: var(--acc-deep, #7d5f22); transition: color 0.35s ease; }
.nb-journey-card .nb-journey-title a { color: inherit; transition: color 0.35s ease; }
.nb-journey-card:hover .nb-journey-title,
.nb-journey-card:hover .nb-journey-title a,
.nb-journey-card:focus-within .nb-journey-title,
.nb-journey-card:focus-within .nb-journey-title a { color: #fffdf8; }

.nb-journey-card .nb-journey-text {
  margin: 0.6rem 0 1.05rem;
  color: #5f5a50;
  transition: color 0.35s ease;
}
.nb-journey-card:hover .nb-journey-text,
.nb-journey-card:focus-within .nb-journey-text { color: rgba(255, 250, 240, 0.82); }

/* CTA becomes a real pill so the interaction reads instantly. */
.nb-journey-card .nb-journey-cta {
  align-self: flex-start;
  gap: 0.45rem;
  margin-top: auto;
  padding: 0.52rem 0.82rem 0.52rem 0.78rem;
  border: 1px solid var(--acc-line, rgba(215, 183, 120, 0.5));
  border-radius: 999px;
  background: var(--acc-soft, #fbf6ec);
  color: var(--acc-deep, #7d5f22);
  font-size: 0.6rem;
  letter-spacing: 0.075em;
  transition:
    background 0.32s ease,
    color 0.32s ease,
    border-color 0.32s ease,
    box-shadow 0.32s ease,
    transform 0.32s var(--ease);
}
.nb-journey-card .nb-journey-cta-ring { display: none; }
.nb-journey-card .nb-journey-cta:hover,
.nb-journey-card:hover .nb-journey-cta,
.nb-journey-card:focus-within .nb-journey-cta {
  background: #fffdf8;
  border-color: #fffdf8;
  color: var(--acc-deep, #7d5f22);
  box-shadow: 0 14px 26px -16px rgba(0, 0, 0, 0.55);
  transform: translateY(-1px);
}
.nb-journey-card:hover .nb-journey-cta svg { transform: translateX(3px); }

/* Gentle stagger on the shared reveal system. */
.nb-journey-card:nth-child(2).will-reveal.is-revealed { animation-delay: 0.08s; }
.nb-journey-card:nth-child(3).will-reveal.is-revealed { animation-delay: 0.16s; }
.nb-journey-card:nth-child(4).will-reveal.is-revealed { animation-delay: 0.24s; }
.nb-journey-card:nth-child(5).will-reveal.is-revealed { animation-delay: 0.32s; }
.nb-journey-card:nth-child(6).will-reveal.is-revealed { animation-delay: 0.4s; }

/* Let the reveal animation settle back to normal styles so the hover tilt
   and lift are not frozen by animation-fill-mode: both. */
.nb-journey-card.will-reveal.is-revealed {
  animation-fill-mode: backwards;
  opacity: 1;
  transform: none;
}
/* Once the reveal has settled the tilt can lift the card again. */
.nb-journey-card.nb-tilt:hover {
  --lift: -8px;
  transform: perspective(1100px) translateY(var(--lift)) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
}

@media (prefers-reduced-motion: reduce) {
  .nb-journey-card,
  .nb-journey-card::before,
  .nb-journey-card .nb-journey-media img,
  .nb-journey-card .nb-journey-chip,
  .nb-journey-card .nb-journey-cta,
  .nb-journey-index { transition: none; }
  .nb-journey-card:hover,
  .nb-journey-card:active { translate: none; }
}
