/* Norvia Premium V3 — approved editorial travel language across product tabs. */
:root{--nv-ink:#17372b;--nv-ink-2:#244d38;--nv-cream:#f7f3ec;--nv-paper:#fbf9f4;--nv-sand:#c79669;--nv-muted:#7d857e;--nv-line:rgba(28,67,49,.11);--nv-shadow:0 18px 50px rgba(16,40,29,.12);--nv-trip-cover:url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?w=1800&h=900&fit=crop&auto=format')}

/* Global navigation — quieter, editorial, less app-like. */
@media(min-width:1024px){#nv-primary-nav{background:rgba(250,248,243,.94)!important;border:1px solid rgba(23,55,43,.08)!important;box-shadow:0 8px 30px rgba(18,43,32,.08)!important;backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important}#nv-primary-nav button{font-family:Inter,sans-serif!important;font-size:11px!important;font-weight:620!important;letter-spacing:-.01em!important}#nv-primary-nav button[aria-current=page]{background:var(--nv-ink)!important;color:#fff!important}}

/* ── TRIP: same brand, more emotional. Existing actions/data stay canonical. ── */
@media(min-width:1024px){body.nv-trip-workspace-open #nv-trip-workspace{background:#f8f5ef!important;padding:0 0 128px!important}body.nv-trip-workspace-open .nv-tw-shell{width:min(1510px,calc(100vw - 34px))!important}.nv-tw-hero{position:relative!important;min-height:286px!important;margin:0 0 0!important;padding:48px 44px 37px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;overflow:hidden!important;color:#fff!important;background-image:linear-gradient(90deg,rgba(7,26,19,.76),rgba(7,26,19,.34) 58%,rgba(7,26,19,.12)),linear-gradient(0deg,rgba(7,26,19,.3),transparent 55%),var(--nv-trip-cover)!important;background-size:cover!important;background-position:center!important;border-radius:0 0 22px 22px!important;box-shadow:var(--nv-shadow)!important}.nv-tw-hero:after{content:'Mejores viajes, historias que se quedan.';position:absolute;right:34px;top:36px;width:190px;color:rgba(255,255,255,.8);font:italic 19px/1.25 'Fraunces',Georgia,serif;text-align:right;transform:rotate(-3deg);pointer-events:none}.nv-tw-kicker{color:rgba(255,255,255,.68)!important;letter-spacing:.22em!important}.nv-tw-kicker:before{background:#d6ad83!important;box-shadow:none!important}.nv-tw-title{color:#fff!important;font-size:clamp(38px,4vw,58px)!important;font-weight:430!important;max-width:850px!important;text-shadow:0 2px 20px rgba(0,0,0,.17)!important}.nv-tw-meta{gap:8px!important}.nv-tw-pill{min-height:38px!important;padding:0 14px!important;border:1px solid rgba(255,255,255,.4)!important;background:rgba(250,248,243,.93)!important;color:#274636!important;font-size:10.5px!important;box-shadow:0 6px 18px rgba(0,0,0,.08)!important}.nv-tw-actions{position:relative;z-index:3;margin-bottom:2px}.nv-tw-actions .nv-tw-btn{background:rgba(255,255,255,.92)!important;border-color:rgba(255,255,255,.3)!important}.nv-tw-actions .nv-tw-btn.nv-primary{background:var(--nv-ink)!important;color:#fff!important;border-color:var(--nv-ink)!important}.nv-tw-tabs{position:sticky!important;top:0!important;width:100%!important;margin:0!important;padding:8px 42px!important;border:0!important;border-radius:0!important;background:rgba(250,248,243,.96)!important;box-shadow:0 4px 18px rgba(18,43,32,.06)!important;z-index:9!important;justify-content:flex-start!important}.nv-tw-tabs button{font-size:10.5px!important;min-height:36px!important;padding:0 15px!important}.nv-tw-tabs button[aria-selected=true]{background:rgba(29,75,53,.09)!important;color:var(--nv-ink)!important;box-shadow:inset 0 -2px 0 var(--nv-ink)!important;border-radius:8px!important}.nv-tw-grid,.nv-tw-section-full{margin:18px 42px 0!important}.nv-tw-grid{grid-template-columns:minmax(0,1.45fr) minmax(310px,.72fr)!important;gap:14px!important}.nv-tw-card{border:1px solid var(--nv-line)!important;border-radius:18px!important;background:rgba(255,255,255,.89)!important;box-shadow:0 7px 25px rgba(20,44,32,.055)!important}.nv-tw-card-pad{padding:18px!important}.nv-tw-card-title{font-family:'Fraunces',Georgia,serif!important;font-size:16px!important;font-weight:520!important}.nv-tw-stat{background:#f5f4ef!important}.nv-tw-row{background:#fbfaf6!important;border-color:#eceae3!important}.nv-tw-btn{border-radius:999px!important;font-size:10.5px!important}.nv-tw-disclosure{margin:22px 42px 0!important;color:#959a95!important;font-size:9px!important}}

/* Make reservation/itinerary command-center layers feel like the same product. */
@media(min-width:1024px){#nv-trip-workspace .nv-tw-reservation-gallery,#nv-trip-workspace .nv-rv2-grid,#nv-trip-workspace .nv-itinerary-v2,#nv-trip-workspace .nv-budget-v2,#nv-trip-workspace .nv-packing-v2{border-radius:18px!important}#nv-trip-workspace img{background:linear-gradient(135deg,#17372b,#5d7363);object-fit:cover}}

/* ── MAP: keep real Leaflet canvas; add premium route/control layer. ── */
#nv-map-premium-panel{display:none;pointer-events:none}#nv-map-premium-panel.nv-visible{display:block;position:fixed;z-index:825;pointer-events:none}.nv-map-premium-top,.nv-map-premium-route{pointer-events:auto}.nv-map-premium-top{display:flex;align-items:center;gap:7px}.nv-map-chip,.nv-map-opt{border:1px solid rgba(24,59,43,.12);background:rgba(251,249,244,.95);color:#284937;border-radius:999px;min-height:38px;padding:0 14px;font:650 10.5px/1 Inter,sans-serif;cursor:pointer;box-shadow:0 5px 16px rgba(15,38,28,.08);backdrop-filter:blur(15px)}.nv-map-chip.nv-on,.nv-map-opt{background:#17372b;color:#fff;border-color:#17372b}.nv-map-opt{margin-left:8px;padding:0 18px}.nv-map-premium-route{background:rgba(251,249,244,.94);border:1px solid rgba(24,59,43,.1);box-shadow:0 15px 45px rgba(15,38,28,.14);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:18px;padding:18px}.nv-map-premium-route>small{font-size:8px;letter-spacing:.18em;font-weight:800;color:#899087}.nv-map-premium-route h3{font:520 24px/1 'Fraunces',Georgia,serif;margin:6px 0 13px;color:#17372b}.nv-map-premium-route>div{display:grid;gap:8px}.nv-map-premium-route span{display:flex;align-items:center;gap:9px;font:600 11px/1.2 Inter,sans-serif;color:#345342}.nv-map-premium-route span b{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#17372b;color:#fff;font-size:9px}.nv-map-premium-route>button{margin-top:14px;width:100%;border:0;border-top:1px solid rgba(24,59,43,.1);padding:12px 0 0;background:transparent;text-align:left;color:#315a43;font-weight:700;font-size:10px;cursor:pointer}@media(min-width:1024px){#nv-map-premium-panel.nv-visible{top:72px;left:28px;right:28px;bottom:22px}.nv-map-premium-top{position:absolute;top:0;left:0;right:0}.nv-map-premium-route{position:absolute;top:56px;left:0;width:285px;max-height:calc(100% - 72px);overflow:auto}body.nv-map-v2-active .leaflet-control-zoom{margin-top:80px!important}}
@media(max-width:1023px){#nv-map-premium-panel.nv-visible{top:68px;left:10px;right:10px;bottom:78px}.nv-map-premium-top{overflow-x:auto;white-space:nowrap;padding-bottom:5px;scrollbar-width:none}.nv-map-premium-top::-webkit-scrollbar{display:none}.nv-map-chip,.nv-map-opt{flex:0 0 auto;min-height:34px;padding:0 11px;font-size:9.5px}.nv-map-opt{margin-left:0}.nv-map-premium-route{position:absolute;left:0;right:0;bottom:4px;padding:13px 14px;border-radius:16px}.nv-map-premium-route>small,.nv-map-premium-route>div{display:none}.nv-map-premium-route h3{font-size:18px;margin:0 0 7px}.nv-map-premium-route>button{margin-top:0;padding-top:8px}}

/* ── PROFILE: one premium identity home, not a skinny utility drawer. ── */
.nv-profile-premium-overlay{background:rgba(17,35,27,.42)!important;backdrop-filter:blur(9px)!important;-webkit-backdrop-filter:blur(9px)!important}.nv-profile-premium-root{background:#f8f5ef!important}.nv-profile-premium-root>div:first-child{position:relative;overflow:hidden;background-image:linear-gradient(90deg,rgba(10,30,22,.84),rgba(10,30,22,.42)),var(--nv-trip-cover)!important;background-size:cover!important;background-position:center!important}.nv-profile-premium-root>div:first-child:after{content:'Tu forma de viajar, cada vez más tuya.';position:absolute;right:24px;bottom:20px;color:rgba(255,255,255,.75);font:italic 16px/1.25 'Fraunces',Georgia,serif;max-width:190px;text-align:right}.nv-profile-premium-root h2{font-family:'Fraunces',Georgia,serif!important;font-weight:520!important}.nv-profile-premium-root button{border-radius:999px!important}.nv-profile-premium-root img{object-fit:cover}@media(min-width:1024px){.nv-profile-premium-overlay{align-items:center!important;justify-content:center!important;padding:86px 24px 24px!important}.nv-profile-premium-overlay>div{width:min(820px,88vw)!important;max-width:820px!important;height:min(760px,calc(100vh - 116px))!important;border-radius:22px!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-gutter:stable!important;box-shadow:0 30px 90px rgba(8,26,18,.28)!important}.nv-profile-premium-root{display:flex!important;flex-direction:column!important;width:100%!important;min-height:100%!important;padding-bottom:35px!important}.nv-profile-premium-root>div:first-child{width:100%!important;padding:34px 38px!important;min-height:180px!important;flex:0 0 auto!important}.nv-profile-premium-root>div:nth-child(2){width:100%!important;padding:14px 28px!important;flex:0 0 auto!important}.nv-profile-premium-root>div:nth-child(n+3){width:auto!important;margin:18px 28px 0!important;padding:0!important;flex:0 0 auto!important}.nv-profile-premium-root>div:first-child:after{font-size:20px;right:38px;bottom:32px;max-width:260px}}
/* Under 1024 px Profile is the full-screen sheet (App.tsx): its children are
   the sticky back header and Profile itself, so no full-height sizing here —
   a 100dvh rule meant for the desktop modal made each of them a screen tall. */
@media(max-width:1023px){.nv-profile-premium-root>div:first-child{min-height:185px!important;padding-top:54px!important}.nv-profile-premium-root>div:first-child:after{font-size:13px;right:16px;bottom:15px;max-width:150px}}

/* ── MOBILE TRIP existing React panel: same visual DNA, not desktop squeezed. ── */
@media(max-width:1023px){.nv-mobile-trip-premium{background:#f8f5ef!important;padding-top:154px!important}.nv-mobile-trip-premium:before{content:'';position:fixed;top:56px;left:0;right:0;height:98px;background-image:linear-gradient(90deg,rgba(9,29,21,.71),rgba(9,29,21,.22)),var(--nv-trip-cover);background-size:cover;background-position:center;z-index:1;pointer-events:none}.nv-mobile-trip-premium:after{content:'Tu viaje';position:fixed;top:82px;left:18px;z-index:2;color:#fff;font:500 26px/1 'Fraunces',Georgia,serif;text-shadow:0 2px 12px rgba(0,0,0,.2);pointer-events:none}.nv-mobile-trip-premium>div{position:relative;z-index:2}.nv-mobile-trip-premium .rounded-2xl,.nv-mobile-trip-premium .rounded-3xl{border-radius:16px!important}.nv-mobile-trip-premium h2,.nv-mobile-trip-premium h3{font-family:'Fraunces',Georgia,serif!important;font-weight:520!important}.nv-mobile-trip-premium button{border-radius:999px!important}}

/* Broken images must never show browser chrome. JS swaps a verified category
   image and finally a branded SVG. This hides the broken icon in the interval. */
img[data-nv-resilience="1"]{background:linear-gradient(135deg,#17372b,#647b6a);color:transparent}

/* Hero tagline follows the product language (ES source above). */
@media(min-width:1024px){html[lang="en"] .nv-tw-hero:after{content:'Better trips, stories that stay.'}html[lang="pt"] .nv-tw-hero:after{content:'Melhores viagens, histórias que ficam.'}}

/* Profile tagline and mobile Trip label follow the product language too
   (ES sources above stay unchanged). */
html[lang="en"] .nv-profile-premium-root>div:first-child:after{content:'Your way of traveling, more yours every trip.'}html[lang="pt"] .nv-profile-premium-root>div:first-child:after{content:'A tua forma de viajar, cada vez mais tua.'}
@media(max-width:1023px){html[lang="en"] .nv-mobile-trip-premium:after{content:'Your trip'}html[lang="pt"] .nv-mobile-trip-premium:after{content:'A tua viagem'}}
/* Header buttons are white; the warm (now green) variant keeps dark text there. */
.nv-tw-actions .nv-tw-btn.nv-warm{color:var(--nv-ink)!important}
