/* ================================================================
   NINTH PEAK — MICROSITE
   Inherits Everrow brand tokens
   ================================================================ */

:root {
    /* Brand tokens (lifted from cozystay-child/style.css) */
    --everrow-ink: #1f2a21;
    --everrow-charcoal: #172018;
    --everrow-cream-light: #faf9f6;
    --everrow-cream: #f4f0e8;
    --everrow-line: rgba(31, 42, 33, 0.12);
    --everrow-sage-50: #f3f6f1;
    --everrow-sage-100: #e8efe5;
    --everrow-sage-muted: #d9e1d2;
    --everrow-sage: #7d8f73;
    --everrow-green: #5a6b52;
    --everrow-green-dark: #2f4b3b;
    --everrow-gold: #b8956a;
    --everrow-gold-dark: #a88353;
    --everrow-text: #2c2c2c;
    --everrow-text-light: #666;
    --everrow-white: #ffffff;
    --everrow-heading-font: 'Playfair Display', Georgia, serif;
    --everrow-body-font: 'DM Sans', system-ui, sans-serif;
    --everrow-container: 1240px;
    --np-accent: var(--everrow-gold);
    --np-accent-soft: rgba(184, 149, 106, 0.12);
}

/* Sage-emphasis variant */
[data-accent="sage"] {
    --np-accent: var(--everrow-green);
    --np-accent-soft: rgba(90, 107, 82, 0.12);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
    font-family: var(--everrow-body-font);
    color: var(--everrow-text);
    background: #fff;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

/* ─── Containers ─── */
.np-container {
    width: min(calc(100% - 60px), var(--everrow-container));
    margin: 0 auto;
}
.np-container--wide {
    width: min(calc(100% - 60px), 1480px);
    margin: 0 auto;
}

/* ─── Type ─── */
.np-kicker {
    margin: 0 0 14px;
    color: var(--np-accent);
    font-family: var(--everrow-body-font);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}
.np-kicker--light { color: rgba(255,255,255,0.85); }

.np-h1, .np-h2, .np-h3 {
    font-family: var(--everrow-heading-font);
    color: var(--everrow-ink);
    margin: 0;
    line-height: 1.08;
    font-weight: 600;
    letter-spacing: -0.01em;
    text-wrap: balance;
}
.np-h1 { font-size: clamp(40px, 5.6vw, 80px); }
.np-h2 { font-size: clamp(32px, 3.8vw, 52px); }
.np-h3 { font-size: clamp(22px, 2vw, 28px); }
.np-lede {
    font-size: clamp(17px, 1.3vw, 19px);
    line-height: 1.7;
    color: var(--everrow-text);
    max-width: 62ch;
    text-wrap: pretty;
}

/* ─── Buttons ─── */
.np-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 28px;
    border: 1px solid currentColor;
    background: transparent;
    color: var(--everrow-ink);
    font-family: var(--everrow-body-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s ease;
    border-radius: 0;
    text-decoration: none;
    white-space: nowrap;
}
.np-btn:hover { transform: translateY(-1px); }
.np-btn--primary {
    background: var(--np-accent);
    border-color: var(--np-accent);
    color: #fff;
}
.np-btn--primary:hover {
    background: var(--everrow-ink);
    border-color: var(--everrow-ink);
    color: #fff;
}
.np-btn--ink {
    background: var(--everrow-ink);
    border-color: var(--everrow-ink);
    color: #fff;
}
.np-btn--ink:hover {
    background: var(--np-accent);
    border-color: var(--np-accent);
}
.np-btn--ghost-light {
    border-color: rgba(255,255,255,0.6);
    color: #fff;
    background: transparent;
}
.np-btn--ghost-light:hover {
    background: rgba(255,255,255,0.12);
    border-color: #fff;
}
.np-btn--solid-light {
    background: #fff;
    border-color: #fff;
    color: var(--everrow-ink);
}
.np-btn--solid-light:hover {
    background: var(--np-accent);
    border-color: var(--np-accent);
    color: #fff;
}
.np-btn .np-arrow,
.np-link .np-arrow { width: 14px; height: 14px; font-size: 14px; transition: transform 0.25s ease; }
.np-btn { font-size: 12px; }
.np-hero__location svg { width: 14px; height: 14px; font-size: 14px; }
.np-stat__icon svg { width: 22px; height: 22px; font-size: 22px; }
.np-amenity__icon svg { width: 36px; height: 36px; font-size: 36px; }
.np-faq__q svg { width: 22px; height: 22px; font-size: 22px; }
.np-btn:hover .np-arrow { transform: translateX(4px); }

.np-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--np-accent);
    font-family: var(--everrow-body-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--np-accent);
    padding-bottom: 4px;
    cursor: pointer;
}
.np-link:hover { color: var(--everrow-ink); border-color: var(--everrow-ink); }

/* ================================================================
   NAV
   ================================================================ */
.np-nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 50;
    transition: background 0.3s ease, border-color 0.3s ease;
    background: transparent;
    border-bottom: 1px solid transparent;
}
.np-nav.is-scrolled {
    background: rgba(250, 249, 246, 0.96);
    backdrop-filter: blur(8px);
    border-bottom-color: var(--everrow-line);
}
.np-nav__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 0;
}
.np-nav__brand {
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: #fff;
    transition: color 0.3s ease;
}
.np-nav.is-scrolled .np-nav__brand { color: var(--everrow-ink); }
.np-nav__property {
    font-family: var(--everrow-heading-font);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1;
}
.np-nav__by {
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    opacity: 0.75;
}
.np-nav__menu {
    display: flex;
    gap: 32px;
    align-items: center;
}
.np-nav__link {
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: color 0.2s ease;
    cursor: pointer;
}
.np-nav.is-scrolled .np-nav__link { color: var(--everrow-ink); }
.np-nav__link:hover { color: var(--np-accent); }
.np-nav__cta {
    padding: 10px 18px;
    border: 1px solid currentColor;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    color: #fff;
    transition: all 0.2s ease;
    cursor: pointer;
}
.np-nav.is-scrolled .np-nav__cta {
    background: var(--np-accent);
    border-color: var(--np-accent);
    color: #fff;
}
.np-nav__cta:hover {
    background: #fff;
    border-color: #fff;
    color: var(--everrow-ink);
}
.np-nav.is-scrolled .np-nav__cta:hover {
    background: var(--everrow-ink);
    border-color: var(--everrow-ink);
}

/* ================================================================
   HERO
   ================================================================ */
.np-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    color: #fff;
    background: var(--everrow-ink);
}
.np-hero__media {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.np-hero__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.4s ease;
}
.np-hero__slide.is-active { opacity: 1; }
.np-hero__slide.is-active .np-hero__img {
    animation: npHeroKenBurns 12s ease forwards;
}
.np-hero__img {
    width: 100%; height: 100%;
    object-fit: cover;
    transform: scale(1.06);
}
@keyframes npHeroKenBurns {
    from { transform: scale(1.06); }
    to { transform: scale(1.16); }
}
.np-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(8,12,10,0.55) 0%,
        rgba(8,12,10,0.15) 30%,
        rgba(8,12,10,0.25) 60%,
        rgba(8,12,10,0.85) 100%);
}
.np-hero__shell {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 140px 0 64px;
}
.np-hero__breadcrumb {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255,255,255,0.75);
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 28px;
}
.np-hero__breadcrumb-sep { opacity: 0.5; }
.np-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 64px;
    align-items: end;
}
.np-hero__title {
    font-family: var(--everrow-heading-font);
    font-size: clamp(48px, 7vw, 104px);
    line-height: 0.98;
    margin: 0 0 24px;
    color: #fff;
    font-weight: 500;
    letter-spacing: -0.015em;
    text-wrap: balance;
}
.np-hero__title em {
    font-style: italic;
    font-weight: 400;
    color: rgba(255,255,255,0.92);
}
.np-hero__tagline {
    font-size: 17px;
    line-height: 1.6;
    color: rgba(255,255,255,0.88);
    max-width: 56ch;
    margin: 0 0 32px;
    text-wrap: pretty;
}
.np-hero__location {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.85);
    margin-bottom: 18px;
}
.np-hero__cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}
.np-hero__meta {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 28px 32px;
    background: rgba(255,255,255,0.08);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(255,255,255,0.16);
    color: #fff;
}
.np-hero__meta-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}
.np-hero__meta-row:last-child { border-bottom: 0; padding-bottom: 0; }
.np-hero__meta-label {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
}
.np-hero__meta-value {
    font-family: var(--everrow-heading-font);
    font-size: 22px;
    font-weight: 500;
    color: #fff;
}
.np-hero__meta-value small {
    font-family: var(--everrow-body-font);
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.7);
    margin-left: 4px;
}

/* Hero slide indicators */
.np-hero__dots {
    position: absolute;
    bottom: 32px;
    right: 40px;
    display: flex;
    gap: 8px;
    z-index: 3;
}
.np-hero__dot {
    width: 28px;
    height: 2px;
    background: rgba(255,255,255,0.35);
    border: 0;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s ease;
}
.np-hero__dot.is-active { background: #fff; }

/* Hero variant: split */
.np-hero--split {
    align-items: stretch;
    min-height: 100vh;
}
.np-hero--split .np-hero__media {
    position: absolute;
    inset: 0 0 0 42%;
}
.np-hero--split .np-hero__overlay { display: none; }
.np-hero--split::before {
    content: '';
    position: absolute;
    inset: 0 58% 0 0;
    background: var(--everrow-cream-light);
    z-index: 1;
}
.np-hero--split .np-hero__shell {
    display: grid;
    grid-template-columns: minmax(0, 42%) minmax(0, 58%);
    align-items: center;
    padding: 0;
}
.np-hero--split .np-hero__inner {
    display: block;
    padding: 140px 56px 64px 0;
    color: var(--everrow-ink);
}
.np-hero--split .np-hero__breadcrumb { color: var(--everrow-text-light); }
.np-hero--split .np-hero__title { color: var(--everrow-ink); }
.np-hero--split .np-hero__tagline { color: var(--everrow-text); }
.np-hero--split .np-hero__location { color: var(--everrow-green); }
.np-hero--split .np-hero__meta { display: none; }

/* Hero variant: editorial (quiet, smaller hero, big photo below) */
.np-hero--editorial {
    min-height: auto;
    background: var(--everrow-cream-light);
    color: var(--everrow-ink);
    align-items: stretch;
    flex-direction: column;
    padding-top: 0;
}
.np-hero--editorial .np-hero__media,
.np-hero--editorial .np-hero__overlay { display: none; }
.np-hero--editorial .np-hero__shell {
    padding: 160px 0 56px;
}
.np-hero--editorial .np-hero__inner {
    grid-template-columns: 1fr;
    gap: 0;
    text-align: center;
    max-width: 920px;
    margin: 0 auto;
}
.np-hero--editorial .np-hero__breadcrumb { color: var(--everrow-text-light); justify-content: center; }
.np-hero--editorial .np-hero__title { color: var(--everrow-ink); margin-bottom: 24px; }
.np-hero--editorial .np-hero__tagline { color: var(--everrow-text); margin: 0 auto 32px; }
.np-hero--editorial .np-hero__location { color: var(--everrow-green); justify-content: center; }
.np-hero--editorial .np-hero__cta-row { justify-content: center; }
.np-hero--editorial .np-hero__meta { display: none; }
.np-hero--editorial .np-hero-feature {
    display: block;
    width: min(calc(100% - 60px), 1480px);
    margin: 0 auto;
    aspect-ratio: 21/9;
    background: var(--everrow-sage-50);
    overflow: hidden;
}
.np-hero--editorial .np-hero-feature img {
    width: 100%; height: 100%; object-fit: cover;
}
.np-hero:not(.np-hero--editorial) .np-hero-feature { display: none; }

/* ================================================================
   PLACEHOLDER IMAGE (when real photos aren't loaded)
   ================================================================ */
.np-ph {
    position: relative;
    width: 100%; height: 100%;
    background: linear-gradient(135deg, #2a3a30 0%, #4a5a44 50%, #6b7b62 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.np-ph::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(45deg, rgba(255,255,255,0.04) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(255,255,255,0.04) 25%, transparent 25%);
    background-size: 32px 32px;
    background-position: 0 0, 16px 16px;
}
.np-ph__label {
    position: relative;
    z-index: 1;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
    text-align: center;
    padding: 12px 18px;
    border: 1px solid rgba(255,255,255,0.25);
    background: rgba(0,0,0,0.18);
    backdrop-filter: blur(2px);
}
/* Themed placeholder variants */
.np-ph--mountain { background: linear-gradient(170deg, #3d5468 0%, #5a7388 40%, #87a4b3 70%, #b8c8d0 100%); }
.np-ph--interior { background: linear-gradient(135deg, #3a3530 0%, #5c5249 50%, #8a7f73 100%); }
.np-ph--snow { background: linear-gradient(180deg, #95a8b8 0%, #c4d2dc 60%, #e8eef2 100%); }
.np-ph--evening { background: linear-gradient(180deg, #2a2a3a 0%, #4a3848 50%, #b8956a 100%); }
.np-ph--forest { background: linear-gradient(135deg, #2a3a2c 0%, #4a5a3c 60%, #7d8f73 100%); }
.np-ph--wedding { background: linear-gradient(135deg, #5a4a3a 0%, #b8956a 70%, #e8d7b8 100%); }

/* ================================================================
   QUICK STATS BAR
   ================================================================ */
.np-stats {
    background: var(--everrow-cream);
    border-bottom: 1px solid var(--everrow-line);
}
.np-stats__inner {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    align-items: center;
}
.np-stat {
    padding: 28px 24px;
    text-align: center;
    border-right: 1px solid var(--everrow-line);
}
.np-stat:last-child { border-right: 0; }
.np-stat__value {
    font-family: var(--everrow-heading-font);
    font-size: 32px;
    font-weight: 500;
    color: var(--everrow-ink);
    line-height: 1;
    margin-bottom: 8px;
}
.np-stat__label {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--everrow-text-light);
}
.np-stat__icon {
    display: flex;
    justify-content: center;
    margin-bottom: 10px;
    color: var(--np-accent);
}

/* ================================================================
   SECTION SHELL
   ================================================================ */
.np-section { padding: 120px 0; }
.np-section--cream { background: var(--everrow-cream-light); }
.np-section--ink { background: var(--everrow-ink); color: #fff; }
.np-section--ink .np-h2 { color: #fff; }
.np-section--tight { padding: 80px 0; }
.np-section__head {
    margin-bottom: 56px;
    max-width: 760px;
}
.np-section__head--center {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

/* ================================================================
   INTRO / EDITORIAL
   ================================================================ */
.np-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 80px;
    align-items: start;
}
.np-intro__copy h2 { margin-bottom: 28px; }
.np-intro__body p {
    font-size: 18px;
    line-height: 1.75;
    color: var(--everrow-text);
    margin: 0 0 22px;
    text-wrap: pretty;
}
.np-intro__body p:first-child::first-letter {
    font-family: var(--everrow-heading-font);
    font-size: 4.2em;
    line-height: 0.85;
    float: left;
    padding: 6px 14px 0 0;
    color: var(--np-accent);
    font-weight: 500;
}
.np-intro__signature {
    margin-top: 40px;
    padding-top: 28px;
    border-top: 1px solid var(--everrow-line);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}
.np-intro__signature-item {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--everrow-text-light);
}
.np-intro__signature-item strong {
    display: block;
    margin-top: 4px;
    color: var(--everrow-ink);
    font-family: var(--everrow-heading-font);
    font-size: 17px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}
.np-intro__media {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 280px 200px;
    gap: 16px;
}
.np-intro__media-main {
    grid-column: 1 / -1;
}
.np-intro__media > div {
    overflow: hidden;
}

/* ================================================================
   GALLERY
   ================================================================ */
.np-gallery { padding: 0; }
.np-gallery__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
    padding: 80px 0 48px;
}
.np-gallery__count {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--everrow-text-light);
}

/* Mosaic */
.np-gallery--mosaic .np-gallery__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 220px;
    gap: 8px;
    width: min(calc(100% - 60px), 1480px);
    margin: 0 auto;
}
.np-gallery--mosaic .np-gallery__cell {
    overflow: hidden;
    background: var(--everrow-sage-50);
    cursor: pointer;
    position: relative;
}
.np-gallery--mosaic .np-gallery__cell--xl { grid-column: span 2; grid-row: span 2; }
.np-gallery--mosaic .np-gallery__cell--lg { grid-column: span 2; }
.np-gallery--mosaic .np-gallery__cell--tall { grid-row: span 2; }
.np-gallery__img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.np-gallery__cell:hover .np-gallery__img { transform: scale(1.04); }

/* Horizontal scroll */
.np-gallery--scroll .np-gallery__strip {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: 0 30px 32px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.np-gallery--scroll .np-gallery__strip::-webkit-scrollbar { height: 4px; }
.np-gallery--scroll .np-gallery__strip::-webkit-scrollbar-thumb { background: var(--everrow-line); }
.np-gallery--scroll .np-gallery__cell {
    flex: 0 0 64vw;
    max-width: 880px;
    aspect-ratio: 4/3;
    scroll-snap-align: start;
    background: var(--everrow-sage-50);
    overflow: hidden;
}

/* Stacked */
.np-gallery--stacked .np-gallery__grid {
    width: min(calc(100% - 60px), 1240px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.np-gallery--stacked .np-gallery__cell {
    aspect-ratio: 4/3;
    background: var(--everrow-sage-50);
    overflow: hidden;
}
.np-gallery--stacked .np-gallery__cell:nth-child(1),
.np-gallery--stacked .np-gallery__cell:nth-child(6) {
    grid-column: 1 / -1;
    aspect-ratio: 21/9;
}

.np-gallery__footer {
    display: flex;
    justify-content: center;
    padding: 48px 0 96px;
}

/* ================================================================
   AMENITIES
   ================================================================ */
.np-amenities__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--everrow-line);
    border: 1px solid var(--everrow-line);
}
.np-amenity {
    padding: 32px 28px;
    background: var(--everrow-cream-light);
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: background 0.2s ease;
}
.np-amenity:hover { background: #fff; }
.np-amenity__icon {
    width: 36px; height: 36px;
    color: var(--np-accent);
}
.np-amenity__icon svg { width: 100%; height: 100%; }
.np-amenity__label {
    font-family: var(--everrow-heading-font);
    font-size: 17px;
    font-weight: 500;
    color: var(--everrow-ink);
}
.np-amenity__sub {
    font-size: 13px;
    color: var(--everrow-text-light);
    line-height: 1.5;
}

.np-amenities__feature-list {
    margin-top: 56px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 48px;
    padding-top: 48px;
    border-top: 1px solid var(--everrow-line);
}
.np-amenities__feature-list h4 {
    font-family: var(--everrow-heading-font);
    font-size: 17px;
    font-weight: 500;
    color: var(--everrow-ink);
    margin: 0 0 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--np-accent);
    display: inline-block;
}
.np-amenities__feature-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.np-amenities__feature-list li {
    font-size: 14px;
    color: var(--everrow-text);
    line-height: 1.5;
}

/* ================================================================
   FLOOR PLAN
   ================================================================ */
.np-plan {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 80px;
    align-items: center;
}
.np-plan__diagram {
    position: relative;
    background: var(--everrow-cream-light);
    border: 1px solid var(--everrow-line);
    aspect-ratio: 5/4;
    overflow: hidden;
}
.np-plan__levels {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.np-plan__level {
    border-left: 1px solid var(--everrow-line);
    padding: 4px 0 4px 28px;
}
.np-plan__level-tag {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--np-accent);
    margin-bottom: 8px;
}
.np-plan__level h4 {
    font-family: var(--everrow-heading-font);
    font-size: 22px;
    font-weight: 500;
    color: var(--everrow-ink);
    margin: 0 0 8px;
}
.np-plan__level p {
    font-size: 14px;
    color: var(--everrow-text);
    margin: 0;
    line-height: 1.6;
}

/* Floor plan SVG layout */
.np-plan-svg { width: 100%; height: 100%; display: block; }
.np-plan-svg .pl-room {
    fill: rgba(184, 149, 106, 0.06);
    stroke: var(--everrow-ink);
    stroke-width: 1.2;
}
.np-plan-svg .pl-room--prim { fill: rgba(184, 149, 106, 0.18); }
.np-plan-svg .pl-wall { stroke: var(--everrow-ink); stroke-width: 2.4; fill: none; }
.np-plan-svg .pl-label {
    font-family: var(--everrow-body-font);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    fill: var(--everrow-ink);
}
.np-plan-svg .pl-sub {
    font-family: var(--everrow-body-font);
    font-size: 7.5px;
    fill: var(--everrow-text-light);
}

.np-plan__tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 16px;
}
.np-plan__tab {
    padding: 8px 14px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    background: transparent;
    border: 1px solid var(--everrow-line);
    color: var(--everrow-text-light);
    cursor: pointer;
    transition: all 0.15s ease;
}
.np-plan__tab.is-active {
    background: var(--everrow-ink);
    color: #fff;
    border-color: var(--everrow-ink);
}

/* ================================================================
   LOCATION / MAP
   ================================================================ */
.np-location {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    gap: 0;
    background: var(--everrow-ink);
    color: #fff;
    min-height: 600px;
}
.np-location__copy {
    padding: 88px 64px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.np-location__copy .np-h2 { color: #fff; margin-bottom: 24px; }
.np-location__lede {
    font-size: 17px;
    line-height: 1.7;
    color: rgba(255,255,255,0.82);
    margin: 0 0 36px;
    text-wrap: pretty;
}
.np-location__distances {
    display: flex;
    flex-direction: column;
}
.np-distance {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    gap: 24px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}
.np-distance:last-child { border-bottom: 0; }
.np-distance__name {
    font-family: var(--everrow-heading-font);
    font-size: 19px;
    font-weight: 500;
    color: #fff;
}
.np-distance__sub {
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    margin-top: 2px;
    letter-spacing: 0.04em;
}
.np-distance__time {
    font-family: var(--everrow-heading-font);
    font-size: 22px;
    font-weight: 500;
    color: var(--np-accent);
    text-align: right;
}
.np-distance__unit {
    font-family: var(--everrow-body-font);
    font-size: 10.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.6);
    display: block;
    margin-top: 2px;
}
.np-location__map {
    position: relative;
    background: var(--everrow-charcoal);
    overflow: hidden;
    min-height: 600px;
}

/* Stylized animated map */
.np-map-svg {
    width: 100%; height: 100%;
    display: block;
    background: #1a2520;
    position: absolute;
    inset: 0;
}
.np-map-controls {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
    display: flex;
    gap: 4px;
    background: rgba(8, 12, 10, 0.7);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.16);
    padding: 4px;
}
.np-map-zoom-btn {
    padding: 8px 14px;
    background: transparent;
    border: 0;
    color: rgba(255, 255, 255, 0.6);
    font-family: var(--everrow-body-font);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s ease;
}
.np-map-zoom-btn:hover { color: #fff; }
.np-map-zoom-btn.is-active {
    background: var(--np-accent);
    color: #fff;
}
.np-map-scale {
    position: absolute;
    bottom: 80px;
    right: 24px;
    z-index: 3;
    color: rgba(255, 255, 255, 0.55);
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-family: var(--everrow-body-font);
    font-weight: 500;
    text-align: right;
    line-height: 1.4;
}
.np-map-scale__bar {
    display: block;
    width: 80px;
    height: 1px;
    background: rgba(255, 255, 255, 0.5);
    margin-left: auto;
    margin-bottom: 4px;
    position: relative;
}
.np-map-scale__bar::before,
.np-map-scale__bar::after {
    content: '';
    position: absolute;
    width: 1px;
    height: 5px;
    background: rgba(255, 255, 255, 0.5);
    top: -2px;
}
.np-map-scale__bar::before { left: 0; }
.np-map-scale__bar::after { right: 0; }

/* ================================================================
   EVENTS — WEDDING + GROUP
   ================================================================ */
.np-events {
    background: var(--everrow-cream);
    padding: 0;
}
.np-events__head {
    padding: 120px 0 72px;
    text-align: center;
}
.np-events__title {
    font-family: var(--everrow-heading-font);
    font-size: clamp(40px, 5vw, 68px);
    line-height: 1.05;
    font-weight: 500;
    color: var(--everrow-ink);
    margin: 0 0 20px;
    text-wrap: balance;
}
.np-events__title em { font-style: italic; font-weight: 400; }
.np-events__lede {
    max-width: 680px;
    margin: 0 auto;
    font-size: 18px;
    line-height: 1.7;
    color: var(--everrow-text);
}

/* Layout: split (default) — wedding card + group card side by side */
.np-events__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: min(calc(100% - 60px), 1480px);
    margin: 0 auto;
    padding-bottom: 96px;
}
.np-event-card {
    position: relative;
    aspect-ratio: 4/5;
    overflow: hidden;
    color: #fff;
    cursor: pointer;
}
.np-event-card__img {
    position: absolute; inset: 0;
}
.np-event-card__img .np-ph,
.np-event-card__img img {
    transition: transform 0.7s ease;
}
.np-event-card:hover .np-ph,
.np-event-card:hover img { transform: scale(1.04); }
.np-event-card::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(8,12,10,0.1) 30%, rgba(8,12,10,0.85) 100%);
}
.np-event-card__content {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    z-index: 2;
    padding: 56px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.np-event-card__kicker {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--np-accent);
}
.np-event-card__title {
    font-family: var(--everrow-heading-font);
    font-size: clamp(30px, 3.6vw, 48px);
    font-weight: 500;
    line-height: 1.05;
    color: #fff;
    margin: 0;
    text-wrap: balance;
}
.np-event-card__copy {
    font-size: 15px;
    line-height: 1.65;
    color: rgba(255,255,255,0.88);
    max-width: 42ch;
    margin: 0;
}
.np-event-card__capacity {
    display: flex;
    gap: 28px;
    margin-top: 4px;
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,0.18);
}
.np-event-card__cap-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.np-event-card__cap-num {
    font-family: var(--everrow-heading-font);
    font-size: 24px;
    font-weight: 500;
    color: #fff;
    line-height: 1;
}
.np-event-card__cap-label {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
}
.np-event-card__cta {
    margin-top: 12px;
    align-self: flex-start;
}

/* Layout: inline (single, full-bleed wedding section) */
.np-events--inline .np-events__cards {
    grid-template-columns: 1fr;
}
.np-events--inline .np-event-card {
    aspect-ratio: 21/9;
}
.np-events--inline .np-event-card__content { max-width: 720px; padding: 64px; }

/* Layout: panel — copy left, image right */
.np-events--panel .np-events__cards {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 0;
    background: #fff;
}
.np-events--panel .np-event-card:nth-child(odd) {
    aspect-ratio: auto;
    background: var(--everrow-ink);
    color: #fff;
    display: flex;
    align-items: center;
    padding: 80px 64px;
}
.np-events--panel .np-event-card:nth-child(odd)::after { display: none; }
.np-events--panel .np-event-card:nth-child(odd) .np-event-card__img { display: none; }
.np-events--panel .np-event-card:nth-child(odd) .np-event-card__content {
    position: relative;
    inset: auto;
    padding: 0;
}
.np-events--panel .np-event-card:nth-child(even) {
    aspect-ratio: 4/5;
}
.np-events--panel .np-event-card:nth-child(odd) .np-event-card__capacity {
    border-top-color: rgba(255,255,255,0.2);
}

/* ================================================================
   INQUIRY FORM
   ================================================================ */
.np-inquire {
    padding: 120px 0;
    background: var(--everrow-cream-light);
}
.np-inquire__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 80px;
    align-items: start;
}
.np-inquire__pic {
    aspect-ratio: 4/5;
    overflow: hidden;
    position: sticky;
    top: 90px;
}
.np-inquire__form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.np-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.np-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.np-field--full { grid-column: 1 / -1; }
.np-field__label {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--everrow-ink);
}
.np-input,
.np-select,
.np-textarea {
    padding: 14px 16px;
    font-family: var(--everrow-body-font);
    font-size: 15px;
    color: var(--everrow-ink);
    background: #fff;
    border: 1px solid var(--everrow-line);
    border-radius: 0;
    width: 100%;
    transition: border-color 0.15s ease;
}
.np-input:focus,
.np-select:focus,
.np-textarea:focus {
    outline: 0;
    border-color: var(--np-accent);
}
.np-textarea { min-height: 140px; resize: vertical; line-height: 1.6; }
.np-select {
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%231f2a21' stroke-width='1.5'><polyline points='1,1 6,7 11,1' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 42px;
}
.np-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.np-radio {
    flex: 1;
    min-width: 130px;
    position: relative;
}
.np-radio input { position: absolute; opacity: 0; pointer-events: none; }
.np-radio label {
    display: block;
    padding: 13px 14px;
    text-align: center;
    border: 1px solid var(--everrow-line);
    background: #fff;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--everrow-text);
    cursor: pointer;
    transition: all 0.15s ease;
    letter-spacing: 0.04em;
}
.np-radio input:checked + label {
    background: var(--everrow-ink);
    color: #fff;
    border-color: var(--everrow-ink);
}
.np-form-submit {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding-top: 16px;
}
.np-form-note {
    font-size: 12px;
    color: var(--everrow-text-light);
    max-width: 28ch;
    line-height: 1.5;
}

/* ================================================================
   FAQ
   ================================================================ */
.np-faq__list {
    max-width: 880px;
    margin: 0 auto;
    border-top: 1px solid var(--everrow-line);
}
.np-faq__item {
    border-bottom: 1px solid var(--everrow-line);
}
.np-faq__q {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding: 28px 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
    font-family: var(--everrow-heading-font);
    font-size: clamp(18px, 1.5vw, 22px);
    font-weight: 500;
    color: var(--everrow-ink);
}
.np-faq__icon {
    flex-shrink: 0;
    width: 22px; height: 22px;
    border: 1px solid var(--everrow-line);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    position: relative;
}
.np-faq__icon::before,
.np-faq__icon::after {
    content: '';
    position: absolute;
    background: var(--everrow-ink);
}
.np-faq__icon::before { width: 10px; height: 1px; }
.np-faq__icon::after { width: 1px; height: 10px; transition: transform 0.2s ease; }
.np-faq__item.is-open .np-faq__icon { background: var(--np-accent); border-color: var(--np-accent); }
.np-faq__item.is-open .np-faq__icon::before,
.np-faq__item.is-open .np-faq__icon::after { background: #fff; }
.np-faq__item.is-open .np-faq__icon::after { transform: rotate(90deg); }
.np-faq__a {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    color: var(--everrow-text);
    font-size: 15.5px;
    line-height: 1.7;
    padding: 0;
}
.np-faq__item.is-open .np-faq__a {
    max-height: 320px;
    padding: 0 0 28px;
}
.np-faq__a p { margin: 0 0 12px; max-width: 70ch; }

/* ================================================================
   BOOKING WIDGET — variants
   ================================================================ */
.np-booking {
    background: #fff;
    border: 1px solid var(--everrow-line);
    padding: 28px;
}
.np-booking__head {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--everrow-line);
}
.np-booking__price {
    font-family: var(--everrow-heading-font);
    font-size: 28px;
    color: var(--everrow-ink);
    font-weight: 500;
}
.np-booking__price small {
    font-family: var(--everrow-body-font);
    font-size: 13px;
    color: var(--everrow-text-light);
    font-weight: 400;
    margin-left: 4px;
}
.np-booking__rating {
    margin-top: 6px;
    font-size: 13px;
    color: var(--everrow-text-light);
}
.np-booking__rating strong { color: var(--everrow-ink); }
.np-booking__date-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--everrow-line);
    margin-bottom: 12px;
}
.np-booking__date {
    padding: 12px 14px;
    border-right: 1px solid var(--everrow-line);
    cursor: pointer;
}
.np-booking__date:last-child { border-right: 0; }
.np-booking__date-label {
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--everrow-text-light);
    margin-bottom: 4px;
}
.np-booking__date-value {
    font-family: var(--everrow-heading-font);
    font-size: 15px;
    color: var(--everrow-ink);
}
.np-booking__guests {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    border: 1px solid var(--everrow-line);
    padding: 12px 14px;
    margin-bottom: 16px;
}
.np-booking__guests-counter {
    display: flex;
    align-items: center;
    gap: 12px;
}
.np-booking__guests-btn {
    width: 26px; height: 26px;
    border: 1px solid var(--everrow-line);
    background: #fff;
    cursor: pointer;
    font-size: 14px;
    color: var(--everrow-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.np-booking__guests-btn:hover { border-color: var(--everrow-ink); }
.np-booking__guests-num {
    font-family: var(--everrow-heading-font);
    font-size: 15px;
    color: var(--everrow-ink);
    min-width: 16px;
    text-align: center;
}
.np-booking__cta {
    width: 100%;
}
.np-booking__sub {
    margin-top: 14px;
    font-size: 12px;
    text-align: center;
    color: var(--everrow-text-light);
    line-height: 1.5;
}
.np-booking__platforms {
    display: flex;
    justify-content: center;
    gap: 18px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--everrow-line);
}
.np-booking__platforms span {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--everrow-text-light);
}

/* Floating booking */
.np-booking--float {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 40;
    width: 360px;
    box-shadow: 0 24px 64px rgba(31, 42, 33, 0.18);
}

/* Sticky bottom bar */
.np-booking--sticky {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 40;
    background: #fff;
    border-top: 1px solid var(--everrow-line);
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    padding: 16px 30px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 24px;
    align-items: center;
    box-shadow: 0 -8px 32px rgba(31, 42, 33, 0.08);
}
.np-booking--sticky .np-booking__head { padding: 0; margin: 0; border: 0; }
.np-booking--sticky .np-booking__price { font-size: 20px; }
.np-booking--sticky .np-booking__date-row { display: none; }
.np-booking--sticky .np-booking__guests { display: none; }
.np-booking--sticky .np-booking__cta { width: auto; padding: 14px 32px; }
.np-booking--sticky .np-booking__sub,
.np-booking--sticky .np-booking__platforms { display: none; }
.np-booking--sticky .np-booking__rating { margin: 0; }

/* ================================================================
   FOOTER
   ================================================================ */
.np-footer {
    background: var(--everrow-charcoal);
    color: rgba(255,255,255,0.78);
    padding: 88px 0 32px;
}
.np-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 56px;
    padding-bottom: 56px;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}
.np-footer__brand-name {
    font-family: var(--everrow-heading-font);
    font-size: 32px;
    color: #fff;
    margin: 0 0 8px;
    font-weight: 500;
    line-height: 1;
}
.np-footer__brand-by {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--np-accent);
    margin: 0 0 24px;
}
.np-footer__brand-copy {
    font-size: 14px;
    line-height: 1.6;
    max-width: 38ch;
    color: rgba(255,255,255,0.7);
}
.np-footer__col h5 {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #fff;
    margin: 0 0 18px;
}
.np-footer__col ul {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 10px;
}
.np-footer__col a {
    font-size: 14px;
    color: rgba(255,255,255,0.7);
    transition: color 0.15s ease;
}
.np-footer__col a:hover { color: var(--np-accent); }
.np-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 24px;
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    flex-wrap: wrap;
    gap: 16px;
}

/* ================================================================
   UTILITIES
   ================================================================ */
.np-divider {
    height: 1px;
    background: var(--everrow-line);
    width: 100%;
    margin: 0;
}

@media (max-width: 980px) {
    .np-hero__inner { grid-template-columns: 1fr; gap: 32px; }
    .np-stats__inner { grid-template-columns: repeat(3, 1fr); }
    .np-stat:nth-child(3) { border-right: 0; }
    .np-stat:nth-child(n+4) { border-top: 1px solid var(--everrow-line); }
    .np-intro,
    .np-plan,
    .np-inquire__inner { grid-template-columns: 1fr; gap: 48px; }
    .np-events__cards,
    .np-events--panel .np-events__cards { grid-template-columns: 1fr; }
    .np-location { grid-template-columns: 1fr; }
    .np-amenities__grid { grid-template-columns: repeat(2, 1fr); }
    .np-amenities__feature-list { grid-template-columns: 1fr; gap: 32px; }
    .np-footer__top { grid-template-columns: 1fr 1fr; gap: 32px; }
    .np-gallery--mosaic .np-gallery__grid { grid-template-columns: repeat(2, 1fr); }
    .np-booking--float { display: none; }
}
