:root {
  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-font-size: 1.0625rem;
  --bs-body-line-height: 1.65;
  --bs-primary: #245648;
  --bs-primary-rgb: 36, 86, 72;
  --bs-link-color: #245648;
  --bs-link-hover-color: #173b32;
  --np-green: #245648;
  --np-green-dark: #173b32;
  --np-green-soft: #e8f0ed;
  --np-gold: #b38b4d;
  --np-cream: #f7f4ee;
  --np-light: #f5f6f5;
  --np-text: #252b29;
  --np-muted: #69716e;
  --np-border: #dfe3e1;
}

html { scroll-behavior: smooth; scroll-padding-top: 150px; overflow-x: clip; }
body, button, input, textarea, select { font-family: var(--bs-font-sans-serif) !important; }
body { margin: 0; color: var(--np-text); background: #fff; font-size: 17px; line-height: 1.65; overflow-x: clip; }
h1, h2, h3, h4, h5, h6 { color: var(--np-green-dark); font-family: var(--bs-font-sans-serif) !important; font-weight: 700; line-height: 1.2; letter-spacing: -.015em; }
p { margin-bottom: 1.25rem; }
a { color: var(--np-green); text-decoration: none; }
a:hover { color: var(--np-green-dark); }
img { max-width: 100%; }
small, .small { font-size: .925rem !important; }
.icon { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; }
.skip-link { position: fixed; left: 1rem; top: -6rem; z-index: 2000; padding: .75rem 1rem; color: #fff; background: var(--np-green-dark); }
.skip-link:focus { top: 1rem; color: #fff; }
.container-wide { width: 100%; max-width: 1320px; margin-inline: auto; padding-inline: 1.5rem; }
.section { padding-block: 5rem; }

/* Header */
.np-header { z-index: 1030; background: #fff; box-shadow: 0 2px 12px rgba(25, 45, 39, .08); }
.np-header-main { min-height: 80px; display: flex; align-items: center; border-bottom: 1px solid var(--np-border); }
.np-header-main > .container-xxl { min-height: 80px; }
.np-header-meta { min-width: 210px; color: var(--np-muted); font-size: .95rem; }
.np-header-meta:last-child { justify-content: flex-end; }
.np-header-meta .icon { color: var(--np-gold); }
.np-brand { display: inline-flex; align-items: center; gap: .75rem; color: var(--np-green-dark); font-size: 1.35rem; font-weight: 750; letter-spacing: .08em; line-height: 1.05; }
.np-brand:hover { color: var(--np-green-dark); }
.np-brand .icon { width: 2.15rem; height: 2.15rem; color: var(--np-gold); }
.np-brand small { display: block; margin-top: .35rem; color: var(--np-muted); font-size: .72rem !important; font-weight: 600; letter-spacing: .12em; }
.np-header-main .np-brand { position: absolute; left: 50%; transform: translateX(-50%); white-space: nowrap; }
.np-navbar { min-height: 56px; padding: 0; background: #fff; }
.np-navbar .navbar-nav { gap: .25rem; }
.np-navbar .nav-link { padding: 1rem .85rem !important; color: #3e4744 !important; font-size: 1rem; font-weight: 600; }
.np-navbar .nav-link:hover, .np-navbar .nav-link.active { color: var(--np-green) !important; }
.np-navbar .nav-link.active { box-shadow: inset 0 -3px 0 var(--np-gold); }
.np-nav-actions { font-size: .95rem; }
.navbar-toggler { border: 1px solid var(--np-border); border-radius: .375rem; padding: .5rem .65rem; color: var(--np-green-dark); }
.navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(36, 86, 72, .15); }
.dropdown-menu { border-color: var(--np-border); border-radius: .5rem; box-shadow: 0 .75rem 2rem rgba(25, 45, 39, .12); padding: .5rem; }
.dropdown-item { border-radius: .35rem; padding: .65rem .85rem; font-size: 1rem; }
.dropdown-item:active, .dropdown-item:hover { color: var(--np-green-dark); background: var(--np-green-soft); }

/* Standard Bootstrap controls */
.btn { min-height: 46px; padding: .7rem 1.25rem; border-radius: .4rem; font-size: 1rem; font-weight: 650; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; letter-spacing: 0; text-transform: none; }
.btn-sm { min-height: 38px; padding: .45rem .85rem; font-size: .925rem; }
.btn-lg { min-height: 52px; padding: .85rem 1.5rem; font-size: 1.075rem; }
.btn-primary { --bs-btn-bg: var(--np-green); --bs-btn-border-color: var(--np-green); --bs-btn-hover-bg: var(--np-green-dark); --bs-btn-hover-border-color: var(--np-green-dark); --bs-btn-active-bg: var(--np-green-dark); --bs-btn-active-border-color: var(--np-green-dark); }
.btn-warning { --bs-btn-bg: #d3b06e; --bs-btn-border-color: #d3b06e; --bs-btn-color: #1f2f2a; --bs-btn-hover-bg: #c29a50; --bs-btn-hover-border-color: #c29a50; --bs-btn-hover-color: #14231f; }
.btn-outline-primary { --bs-btn-color: var(--np-green); --bs-btn-border-color: var(--np-green); --bs-btn-hover-bg: var(--np-green); --bs-btn-hover-border-color: var(--np-green); }
.btn-olive { color: #fff; background: var(--np-green); border: 1px solid var(--np-green); }
.btn-olive:hover { color: #fff; background: var(--np-green-dark); border-color: var(--np-green-dark); }
.btn-outline-olive { color: var(--np-green); background: transparent; border: 1px solid var(--np-green); }
.btn-outline-olive:hover { color: #fff; background: var(--np-green); }
.btn-text { min-height: auto; padding: .45rem 0; color: var(--np-green); background: transparent; border: 0; }
.text-link { display: inline-flex; align-items: center; gap: .45rem; color: var(--np-green); font-size: 1rem; font-weight: 650; text-decoration: underline; text-underline-offset: .3rem; }

/* Homepage */
.np-hero { position: relative; min-height: 650px; color: #fff; background: var(--np-green-dark); overflow: hidden; }
.np-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(12, 31, 26, .88) 0%, rgba(12, 31, 26, .65) 48%, rgba(12, 31, 26, .18) 100%); }
.np-hero-render { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.np-hero .container-xxl { position: relative; z-index: 2; min-height: 650px; display: flex; align-items: center; }
.np-hero-copy { min-width: 0; max-width: 760px; padding-block: 5rem; overflow-wrap: anywhere; }
.np-kicker, .np-section-label, .eyebrow { color: var(--np-gold); font-size: .95rem; font-weight: 700; letter-spacing: .04em; }
.np-kicker { display: flex; align-items: center; gap: .65rem; color: #f3d39a; }
.np-kicker::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: #e2bd78; }
.np-hero h1 { max-width: 760px; margin: 1.4rem 0 1.25rem; color: #fff; font-size: clamp(3rem, 5vw, 4.8rem); font-weight: 750; line-height: 1.06; }
.np-hero-lead { max-width: 630px; color: rgba(255, 255, 255, .9); font-size: 1.25rem; line-height: 1.65; }
.np-hero-price { max-width: 520px; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .35); display: grid; grid-template-columns: auto auto; justify-content: start; align-items: baseline; gap: .2rem .65rem; }
.np-hero-price strong { color: #fff; font-size: 2rem; }
.np-hero-price small { grid-column: 1 / -1; color: rgba(255, 255, 255, .78); }
.np-stats { background: var(--np-cream); border-bottom: 1px solid #e5ded2; }
.np-stat { min-height: 124px; padding: 1.5rem; border-left: 1px solid #ded7ca; display: flex; flex-direction: column; justify-content: center; }
.np-stat:last-child { border-right: 1px solid #ded7ca; }
.np-stat strong { display: block; color: var(--np-green-dark); font-size: 2rem; line-height: 1.15; }
.np-stat span { margin-top: .25rem; color: var(--np-muted); font-size: 1rem; }
.np-section { padding-block: 5.5rem; }
.np-section-sm { padding-block: 3.5rem; }
.np-section-label { margin-bottom: .8rem; }
.np-title { margin-bottom: 1.25rem; font-size: clamp(2.1rem, 3.4vw, 3.25rem); line-height: 1.15; }
.np-lead, .lead-copy { color: var(--np-muted); font-size: 1.15rem; line-height: 1.75; }
.np-bg-light { background: var(--np-light); }
.np-bg-sage { background: var(--np-green-soft); }
.np-bg-dark { color: #fff; background: var(--np-green-dark); }
.np-bg-dark h2, .np-bg-dark h3, .np-bg-dark h4 { color: #fff; }
.card { border-color: var(--np-border); border-radius: .55rem; box-shadow: 0 .2rem .75rem rgba(25, 45, 39, .05); }
.card-body { font-size: 1rem; }
.np-feature { height: 100%; padding: 1.5rem; background: #fff; border: 1px solid var(--np-border); border-radius: .5rem; }
.np-feature .icon { width: 2rem; height: 2rem; margin-bottom: 1rem; color: var(--np-green); }
.np-apartment-card { height: 100%; overflow: hidden; }
.np-plan { position: relative; height: 250px; display: grid; place-items: center; color: #315f53; background: #dfeae5; overflow: hidden; }
.np-plan.tone-1 { background: #eee3d2; }
.np-plan.tone-2 { background: #d8e7e6; }
.np-plan::before { content: ""; position: absolute; width: 160px; height: 160px; border: 1px solid rgba(36, 86, 72, .2); transform: rotate(45deg); }
.np-plan svg { width: 170px; position: relative; z-index: 1; }
.np-plan small { position: absolute; left: 1rem; bottom: 1rem; font-weight: 650; }
.np-plan.has-photo::before { display: none; }
.np-plan.has-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.np-apartment-card:hover .np-plan.has-photo img { transform: scale(1.035); }
.np-plan.has-photo::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(10, 28, 23, .72)); pointer-events: none; }
.np-plan.has-photo small { z-index: 2; padding: .38rem .65rem; color: #fff; background: rgba(16, 48, 39, .8); border-radius: .3rem; backdrop-filter: blur(5px); }
.np-apartment-card .card-body { padding: 1.5rem; }
.np-apartment-card h3 { font-size: 1.4rem; }
.np-price-card { height: 100%; padding: 1.75rem; color: #fff; border: 1px solid rgba(255, 255, 255, .25); border-radius: .5rem; background: rgba(255, 255, 255, .07); }
.np-price-card.active { color: var(--np-green-dark); background: #fff; }
.np-price-card strong { display: block; margin-top: .5rem; font-size: 2rem; }

/* Inner pages */
.np-page-hero { padding-block: 4rem; background: linear-gradient(135deg, #eef3f1, #f8f4eb); border-bottom: 1px solid var(--np-border); }
.np-page-hero .breadcrumb { margin-bottom: 1.5rem; }
.np-page-hero h1 { margin: 0 0 .9rem; font-size: clamp(2.5rem, 4vw, 3.75rem); }
.np-page-hero p { max-width: 760px; margin: 0; color: var(--np-muted); font-size: 1.2rem; }
.np-page-hero-photo { min-height: 370px; display: flex; align-items: center; color: #fff; background-color: var(--np-green-dark); background-image: linear-gradient(90deg, rgba(9, 29, 23, .9) 0%, rgba(9, 29, 23, .7) 48%, rgba(9, 29, 23, .28) 100%), var(--np-page-hero-image); background-position: center; background-size: cover; }
.np-page-hero-photo h1 { color: #fff; text-shadow: 0 2px 20px rgba(0, 0, 0, .22); }
.np-page-hero-photo p { color: rgba(255, 255, 255, .88); text-shadow: 0 1px 12px rgba(0, 0, 0, .24); }
.np-page-hero-photo .breadcrumb-item, .np-page-hero-photo .breadcrumb-item.active { color: rgba(255, 255, 255, .7); }
.np-page-hero-photo .breadcrumb-item + .breadcrumb-item::before { color: rgba(255, 255, 255, .58); }
.np-page-hero-photo .breadcrumb a { color: #fff; }
.np-page-hero-project { --np-page-hero-image: url('/assets/bar-waterfront-7.webp'); background-position: center 47%; }
.np-page-hero-apartments { --np-page-hero-image: url('/assets/bar-waterfront-6.webp'); background-position: center 46%; }
.np-apartment-overview { margin-bottom: 3rem; }
.np-apartment-fact { min-height: 155px; height: 100%; display: flex; flex-direction: column; padding: 1.25rem; background: #fff; border: 1px solid var(--np-border); border-radius: .5rem; }
.np-apartment-fact-price { color: #fff; background: var(--np-green-dark); border-color: var(--np-green-dark); }
.np-apartment-fact > span { margin-bottom: .45rem; color: var(--np-muted); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.np-apartment-fact-price > span, .np-apartment-fact-price small { color: rgba(255, 255, 255, .7); }
.np-apartment-fact strong { display: block; margin-bottom: .45rem; color: var(--np-green-dark); font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.15; }
.np-apartment-fact-price strong { color: #fff; }
.np-apartment-fact small { margin-top: auto; color: var(--np-muted); }
.np-apartment-fact-price small { color: rgba(255, 255, 255, .85); }
.np-apartment-fact a { display: inline-flex; align-items: center; gap: .35rem; margin-top: auto; font-size: .85rem; font-weight: 700; }
.np-apartment-fact a .icon { width: 17px; height: 17px; }
.np-apartment-plot { position: relative; height: 100%; min-height: 326px; display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; overflow: hidden; color: #fff; background: var(--np-green-dark); border-radius: .5rem; }
.np-apartment-plot::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgba(7, 24, 19, .9)); pointer-events: none; }
.np-apartment-plot img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.np-apartment-plot:hover img { transform: scale(1.025); }
.np-apartment-plot > span { position: absolute; left: 1.25rem; right: 1.25rem; bottom: 1.1rem; z-index: 2; display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.np-apartment-plot > span strong { font-size: 1.2rem; }
.np-apartment-plot > span small { display: flex; align-items: center; gap: .3rem; color: rgba(255,255,255,.85); }
.np-apartment-plot > span .icon { width: 17px; height: 17px; }
.np-project-plot-strip { height: 190px; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; overflow: hidden; }
.np-project-plot-strip img { width: 100%; height: 100%; object-fit: cover; border-radius: .5rem; transition: transform .45s ease, filter .45s ease; }
.np-project-plot-strip:hover img { transform: scale(1.025); filter: saturate(1.08); }
.np-page-hero-location { --np-page-hero-image: url('/assets/bar-waterfront-8.webp'); background-position: center 48%; }
.np-page-hero-purchase { --np-page-hero-image: url('/assets/bar-waterfront-2.webp'); background-position: center 52%; }
.np-page-hero-gallery { --np-page-hero-image: url('/assets/bar-waterfront-4.webp'); background-position: center 58%; }
.np-page-hero-developer { --np-page-hero-image: url('/assets/bar-waterfront-3.webp'); background-position: center 48%; }
.np-page-hero-faq { --np-page-hero-image: url('/assets/bar-waterfront-1.webp'); background-position: center 52%; }
.np-page-hero-brokers { --np-page-hero-image: url('/assets/bar-waterfront-9.webp'); background-position: center 52%; }
.np-page-hero-contact { --np-page-hero-image: url('/assets/bar-waterfront-5.webp'); background-position: center 46%; }
.breadcrumb { font-size: 1rem; }
.breadcrumb-item.active { color: var(--np-muted); }
.page-intro { padding-top: 4rem !important; }
.breadcrumbs { margin-bottom: 1.75rem; color: var(--np-muted); font-size: 1rem; }
.page-intro > h1, .privacy-copy > h1 { margin: .65rem 0 1rem; font-size: clamp(2.5rem, 4vw, 3.75rem); }
.empty-catalog { max-width: 850px; margin: 2rem 0; padding: 2.25rem; background: var(--np-green-soft); border-radius: .5rem; }
.empty-catalog .icon { width: 2.5rem; height: 2.5rem; margin-bottom: 1rem; }
.empty-catalog h2 { font-size: 2.2rem; }
.catalog-filters { margin: 2rem 0; padding: 1.5rem; background: var(--np-light); border: 1px solid var(--np-border); border-radius: .5rem; }
.catalog-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.25rem; }
.view-switch { display: flex; gap: .5rem; }
.view-switch button { padding: .55rem; background: #fff; border: 1px solid var(--np-border); border-radius: .35rem; }
.view-switch button.active { color: #fff; background: var(--np-green); border-color: var(--np-green); }
.apartment-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.apartment-card { padding: 1.25rem; background: #fff; border: 1px solid var(--np-border); border-radius: .5rem; }
.apartment-card .plan { height: 220px; display: grid; place-items: center; margin-bottom: 1.25rem; background: var(--np-green-soft); border-radius: .35rem; }
.apartment-card .plan img { width: 100%; height: 100%; object-fit: contain; }
.apartment-card .status { color: var(--np-green); font-size: .95rem; font-weight: 700; }
.apartment-card h3 { margin-top: .5rem; font-size: 1.2rem; }
.apartment-card dl { display: flex; gap: 2rem; font-size: .95rem; }
.apartment-card dd { margin: 0; font-weight: 700; }
.apartment-grid.chess { grid-template-columns: repeat(6, 1fr); gap: .65rem; }
.chess .apartment-card { padding: .8rem; }
.chess .plan, .chess .apartment-description, .chess dl { display: none; }
.unit-plan { min-height: 380px; display: grid; place-items: center; padding: 2rem; background: var(--np-green-soft); border-radius: .5rem; }
.unit-plan img { max-width: 100%; max-height: 700px; object-fit: contain; }
.unit-details { margin: 0; }
.unit-details > div, .technical-details dl > div { display: flex; justify-content: space-between; gap: 1.5rem; padding: .8rem 0; border-bottom: 1px solid var(--np-border); }
.unit-details dd, .technical-details dd { margin: 0; text-align: right; }
.technical-details { margin-top: 1.5rem; padding: 1.25rem; border: 1px solid var(--np-border); border-radius: .5rem; }
.technical-details summary { cursor: pointer; font-weight: 700; }
.fine-print { color: var(--np-muted); font-size: .925rem; }
.privacy-copy { max-width: 880px; }
.privacy-copy h2 { margin-top: 2.5rem; font-size: 1.7rem; }
.privacy-copy p { color: #4f5855; }

/* Location and gallery */
.list-group-item { padding: 1rem; border-color: var(--np-border); font-size: 1rem; }
.np-place-list .list-group-item { display: flex; justify-content: space-between; gap: 1rem; }
.np-place-list strong { color: var(--np-green); white-space: nowrap; }
.np-map { position: relative; min-height: 560px; overflow: hidden; background: linear-gradient(135deg, #acd0cc 0 28%, #dfe8d4 28% 100%); border: 1px solid var(--np-border); border-radius: .55rem; }
.np-map::before { content: ""; position: absolute; inset: 0; background: linear-gradient(73deg, transparent 0 47%, rgba(255, 255, 255, .85) 47% 48.5%, transparent 48.5%), linear-gradient(150deg, transparent 0 52%, rgba(255, 255, 255, .85) 52% 54%, transparent 54%); }
.np-map-pin { position: absolute; top: 45%; left: 51%; transform: translate(-50%, -50%); padding: .85rem 1.1rem; color: #fff; background: var(--np-green); border-radius: .4rem; box-shadow: 0 .6rem 1.5rem rgba(18, 53, 45, .2); font-weight: 700; }
.np-map-pin small { display: block; color: rgba(255, 255, 255, .78); font-size: .8rem !important; font-weight: 500; }
.np-map-footer { position: absolute; left: 1.25rem; right: 1.25rem; bottom: 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.np-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map-consent { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; text-align: center; background: rgba(255, 255, 255, .96); }
.map-consent p { max-width: 460px; }
.np-contact-map { position: relative; min-height: 560px; height: 100%; display: block; overflow: hidden; color: #fff; background: var(--np-green-dark); border-radius: .55rem; box-shadow: 0 .2rem .75rem rgba(25, 45, 39, .08); }
.np-contact-map::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(8, 25, 21, .82)); pointer-events: none; }
.np-contact-map img { width: 100%; height: 100%; min-height: 560px; object-fit: cover; transition: transform .35s ease; }
.np-contact-map:hover img { transform: scale(1.015); }
.np-contact-map-caption { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; color: #fff; }
.np-contact-map-caption strong { font-size: 1.35rem; }
.np-contact-map-caption small { margin-bottom: .65rem; color: rgba(255, 255, 255, .82); }
.np-gallery-tile { position: relative; min-height: 330px; overflow: hidden; color: #fff; background: linear-gradient(145deg, #78998c, #315d52); border-radius: .55rem; }
.np-gallery-tile.large { min-height: 520px; }
.np-gallery-tile.sand { color: var(--np-green-dark); background: linear-gradient(145deg, #ead8bd, #c79d6b); }
.np-gallery-tile.sea { background: linear-gradient(145deg, #b9d2cd, #5e938b); }
.np-gallery-tile::before { content: ""; position: absolute; inset: 15%; border: 1px solid rgba(255, 255, 255, .45); }
.np-gallery-caption { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.35rem; z-index: 2; }
.np-gallery-caption h2, .np-gallery-caption h3 { color: inherit; }
.np-gallery-caption p { margin: 0; font-size: 1rem; }
.gallery-open { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; background: none; border: 0; }
.gallery-open img { width: 100%; height: 100%; object-fit: cover; }
.np-gallery-tile.has-photo::before { display: none; }
.np-gallery-tile.has-photo::after { content: ""; position: absolute; inset: 45% 0 0; z-index: 1; pointer-events: none; background: linear-gradient(transparent, rgba(8, 25, 21, .78)); }
.np-area-gallery-tile { min-height: 360px; }
.np-location-photo { position: relative; overflow: hidden; min-height: 440px; border-radius: .55rem; background: var(--np-green-soft); }
.np-location-photo img { width: 100%; height: 100%; min-height: 440px; object-fit: cover; }
.np-location-photo figcaption { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; width: fit-content; max-width: calc(100% - 3rem); padding: .8rem 1rem; color: #fff; background: rgba(20, 55, 46, .9); border-radius: .4rem; }
.np-location-photo figcaption span { color: rgba(255, 255, 255, .8); font-size: .95rem; }
.np-location-photo-compact, .np-location-photo-compact img { min-height: 360px; }
.np-plot-photo, .np-plot-photo img { min-height: 360px; }
.np-plot-top, .np-plot-top img { min-height: 470px; }
.np-location-link { display: block; }
.np-location-link img { transition: transform .35s ease; }
.np-location-link:hover img { transform: scale(1.015); }
.np-location-video { position: relative; width: 100%; max-width: 100%; overflow: hidden; background: var(--np-green-dark); border-radius: .55rem; box-shadow: 0 .2rem .75rem rgba(25, 45, 39, .1); }
.np-location-video video { width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9; display: block; background: #0a1814; object-fit: contain; }
.np-video-source a { display: inline-flex; align-items: center; gap: .35rem; padding-block: .35rem; font-size: .875rem; text-decoration: underline; text-underline-offset: .2rem; }
.np-video-source .icon { width: 16px; height: 16px; }

/* Documents, FAQ and forms */
.np-document { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--np-border); }
.np-document .icon { color: var(--np-green); }
.np-document h3 { margin: 0 0 .25rem; font-size: 1.1rem; }
.np-document p { margin: 0; color: var(--np-muted); font-size: .95rem; }
.accordion { --bs-accordion-border-color: var(--np-border); --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem rgba(36, 86, 72, .15); --bs-accordion-active-bg: var(--np-green-soft); --bs-accordion-active-color: var(--np-green-dark); }
.accordion-item { border-radius: .4rem !important; overflow: hidden; margin-bottom: .75rem; }
.accordion-button { padding: 1.2rem 1.25rem; font-size: 1.05rem; font-weight: 700; }
.accordion-body { padding: 1.25rem; color: #4f5855; font-size: 1rem; }
.form-control, .form-select { min-height: 50px; padding: .75rem .9rem; border-color: #cfd6d3; border-radius: .4rem; background: #fff; font-size: 1rem; }
.form-control:focus, .form-select:focus { border-color: var(--np-green); box-shadow: 0 0 0 .2rem rgba(36, 86, 72, .15); }
.form-label { width: 100%; color: var(--np-text); font-size: 1rem; font-weight: 650; }
.optional { float: right; color: var(--np-muted); font-weight: 400; }
.consent { display: flex; align-items: flex-start; gap: .65rem; margin: 1rem 0; color: var(--np-muted); font-size: .9rem; }
.form-check-input:checked { background-color: var(--np-green); border-color: var(--np-green); }
.trap { position: absolute; left: -10000px; opacity: 0; pointer-events: none; }
.form-result { margin: .75rem 0 0; font-size: 1rem; }
.form-result:empty { display: none; }
.form-result.error { color: #a13228; }
.modal-content { border: 0; border-radius: .6rem; box-shadow: 0 1rem 4rem rgba(0, 0, 0, .24); }
.modal-header { padding: 1.5rem 1.5rem .75rem; border: 0; }
.modal-body { padding: 1rem 1.5rem 1.75rem; }

/* Footer */
.np-footer { padding: 4rem 0 2rem; color: rgba(255, 255, 255, .78); background: #202b27; }
.np-footer .np-brand, .np-footer h3 { color: #fff; }
.np-footer a { color: rgba(255, 255, 255, .84); }
.np-footer a:hover { color: #f1ce8d; }
.np-footer nav.small { font-size: 1rem !important; }
.np-footer a { overflow-wrap: anywhere; }
.np-footer-bottom { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .15); font-size: .95rem; }
.mobile-bottom { display: none; }

@media (max-width: 1199.98px) {
  .np-navbar .nav-link { padding-inline: .55rem !important; }
  .np-header-meta { min-width: 180px; }
  .np-header-main .np-brand { position: static; transform: none; }
  .np-navbar { min-height: 0; }
  .np-navbar > .container-xxl { padding-inline: 0 !important; }
  .np-navbar .navbar-collapse { padding: .75rem 1.5rem 1.25rem; border-top: 1px solid var(--np-border); }
  .np-navbar .nav-link { padding: .7rem .2rem !important; }
  .np-navbar .nav-link.active { box-shadow: none; color: var(--np-green) !important; }
  .np-navbar .navbar-nav { margin-bottom: 1rem !important; }
  .np-nav-actions { justify-content: space-between; }
  .np-header { --np-header-height: 80px; }
  .np-navbar .navbar-collapse.show { max-height: calc(100vh - var(--np-header-height) - 96px); max-height: calc(100dvh - var(--np-header-height) - 96px - env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior-y: contain; }
  .np-nav-actions { flex-wrap: wrap; }
  .np-language .dropdown-menu { position: static !important; transform: none !important; min-width: 0; width: 100%; margin-top: .5rem; }
  .np-language:has(.dropdown-menu.show) { flex-basis: 100%; }
  .np-language .dropdown-menu.show { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .apartment-grid { grid-template-columns: repeat(2, 1fr); }
  .apartment-grid.chess { grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .np-navbar .navbar-nav { gap: 0; }
  .np-navbar .nav-link { padding-inline: .6rem !important; font-size: .94rem; }
  .np-nav-actions { gap: .65rem !important; }
}

@media (max-width: 991.98px) {
  .np-header { --np-header-height: 76px; }
  html { scroll-padding-top: 80px; }
  .np-header-main, .np-header-main > .container-xxl { min-height: 76px; }
  .np-header-main .np-brand { position: static; transform: none; }
  .np-navbar { min-height: 0; }
  .np-navbar > .container-xxl { padding-inline: 0 !important; }
  .np-navbar .navbar-collapse { padding: .75rem 1.5rem 1.25rem; border-top: 1px solid var(--np-border); }
  .np-navbar .nav-link { padding: .7rem .2rem !important; }
  .np-navbar .nav-link.active { box-shadow: none; color: var(--np-green) !important; }
  .np-navbar .navbar-nav { margin-bottom: 1rem !important; }
  .np-nav-actions { justify-content: space-between; }
  .np-hero, .np-hero .container-xxl { min-height: 600px; }
  .np-hero::after { background: rgba(12, 31, 26, .72); }
  .np-gallery-tile.large { min-height: 420px; }
  .np-map { min-height: 500px; }
}

@media (max-width: 575.98px) {
  .np-header { --np-header-height: 70px; }
  body { font-size: 16px; }
  small, .small { font-size: .875rem !important; }
  .container-wide { padding-inline: 1rem; }
  .section { padding-block: 3.5rem; }
  .np-brand { font-size: 1.05rem; }
  .np-brand .icon { width: 1.75rem; height: 1.75rem; }
  .np-brand small { font-size: .62rem !important; }
  .np-header-main, .np-header-main > .container-xxl { min-height: 70px; }
  .np-hero, .np-hero .container-xxl { min-height: 620px; }
  .np-hero-copy { padding-block: 3.5rem; }
  .np-hero h1 { font-size: 2.65rem; }
  .np-hero-lead { font-size: 1.075rem; }
  .np-hero-price { grid-template-columns: auto 1fr; }
  .np-hero-price strong { font-size: 1.55rem; }
  .np-stat { min-height: 105px; padding: 1rem; border-bottom: 1px solid #ded7ca; }
  .np-stat strong { font-size: 1.55rem; }
  .np-stat span { font-size: .9rem; }
  .np-section { padding-block: 3.75rem; }
  .np-section-sm { padding-block: 2.75rem; }
  .np-title { font-size: 2.2rem; }
  .np-page-hero { padding-block: 2.75rem; }
  .np-page-hero-photo { min-height: 330px; background-image: linear-gradient(90deg, rgba(9, 29, 23, .88), rgba(9, 29, 23, .55)), var(--np-page-hero-image); }
  .np-page-hero h1, .page-intro > h1, .privacy-copy > h1 { font-size: 2.4rem; }
  .np-page-hero p { font-size: 1.05rem; }
  .np-plan { height: 220px; }
  .np-section h1, .np-section h2, .np-page-hero h1, .np-title { overflow-wrap: anywhere; }
  .np-section .btn, .np-section-sm .btn { max-width: 100%; overflow-wrap: anywhere; }
  .unit-details > div, .technical-details dl > div { flex-direction: column; gap: .25rem; }
  .unit-details dd, .technical-details dd { text-align: left; overflow-wrap: anywhere; }
  .np-document { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .65rem; }
  .np-document > .badge, .np-document > .btn { grid-column: 2; justify-self: start; }
  .np-document h3, .np-document p { overflow-wrap: anywhere; }
  .np-place-list .list-group-item { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: .75rem; padding-inline: 0; }
  .np-place-list strong { text-align: right; white-space: normal; }
  .empty-catalog { padding: 1.25rem; }
  .empty-catalog h2 { font-size: 1.85rem; }
  .np-location-photo figcaption { left: 1rem; right: 1rem; bottom: 1rem; max-width: calc(100% - 2rem); }
  .np-apartment-plot { height: auto; min-height: 0; padding-bottom: 5.5rem; align-items: start; }
  .np-apartment-plot img { height: auto; aspect-ratio: 4 / 3; object-fit: contain; }
  .np-project-plot-strip { height: 150px; gap: .55rem; }
  .np-apartment-fact { min-height: 140px; }
  .np-apartment-plot > span { align-items: flex-start; flex-direction: column; gap: .25rem; }
  .np-map { min-height: 430px; }
  .np-contact-map, .np-contact-map img { min-height: 430px; }
  .np-contact-map-caption { left: 1rem; right: 1rem; bottom: 1rem; }
  .np-map-footer { left: 1rem; right: 1rem; bottom: 1rem; align-items: stretch; flex-direction: column; }
  .np-map-footer .btn { width: 100%; }
  .np-gallery-tile, .np-gallery-tile.large { min-height: 300px; }
  .np-area-gallery-tile { min-height: 245px; }
  .np-location-photo, .np-location-photo img { min-height: 280px; }
  .np-location-photo-compact, .np-location-photo-compact img { min-height: 280px; }
  .np-plot-top, .np-plot-top img { min-height: 340px; }
  .apartment-grid, .apartment-grid.chess { grid-template-columns: 1fr; }
  .catalog-toolbar { align-items: flex-start; }
  .mobile-bottom { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1020; display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .65rem 1rem calc(.65rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--np-border); box-shadow: 0 -.5rem 1.5rem rgba(20, 45, 38, .1); }
  .mobile-bottom > span { color: var(--np-green-dark); font-weight: 800; }
  .mobile-bottom small { display: block; color: var(--np-muted); font-size: .75rem !important; font-weight: 500; }
  .mobile-bottom .btn { flex: 0 0 auto; min-height: 42px; padding: .6rem .75rem; gap: .4rem; font-size: .925rem; white-space: nowrap; }
  .np-footer { padding-bottom: 7rem; }
  .modal-header { padding: 1.25rem 1rem .75rem; }
  .modal-body { padding: 1rem; }
  .modal-header > div, .modal-title, #galleryTitle { min-width: 0; overflow-wrap: anywhere; }
  .modal-header .btn-close { flex-shrink: 0; }
  .mobile-bottom > span { min-width: 0; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
