/* Noctura — nocturnal editorial, plum-black, copper light and precise lines. */
:root {
    --paper:#101115;
    --panel:#19191f;
    --ink:#f0eae3;
    --muted:#aaa5a3;
    --accent:#c9a78b;
    --on-accent:#171417;
    --soft:#1e1c23;
    --line:#3a3437;
    --input:#17171c;
    --header:#111216f5;
    --radius:0px;
    --shadow:none;
    --focus:#c9a78b24;
    --toggle-filter:none;
    color-scheme:dark
}

.brand-noctura .header-inner {
    min-height:93px
}

.brand-noctura .brand-word {
    font-family:'Jost',sans-serif;
    font-size:25px;
    font-weight:300;
    letter-spacing:.2em
}

.brand-noctura .brand-caption {
    font-size:7px;
    letter-spacing:.35em
}

.brand-noctura .brand-symbol {
    width:31px;
    height:44px
}

.brand-noctura .site-nav {
    gap:29px
}

.brand-noctura .site-nav .nav-entry {
    background:#6f4547;
    border-color:#795456;
    color:#f5eae3;
    padding:13px 24px
}

.n-hero {
    min-height:770px;
    height:calc(100svh - 93px);
    max-height:990px;
    background:#101115;
    border-bottom:1px solid var(--line)
}

.n-hero .hero-image {
    inset:30px 30px 100px auto;
    left:30%;
    width:calc(70% - 30px);
    height:calc(100% - 130px);
    object-position:66% 50%;
    opacity:.86
}

.n-hero::before {
    background:linear-gradient(90deg,#101115 4%,#101115f5 23%,#101115a3 39%,#1011150a 65%);
    inset:0
}

.n-hero::after {
    border:1px solid #c9a78b2e;
    inset:48px 48px 118px 48%;
    z-index:-1
}

.n-hero .hero-content {
    height:100%;
    min-height:inherit;
    display:flex;
    justify-content:center;
    flex-direction:column;
    padding-bottom:140px
}

.n-hero .eyebrow {
    font-size:10px;
    letter-spacing:.27em;
    margin-bottom:28px;
    display:flex;
    align-items:center;
    gap:15px
}

.n-hero .eyebrow::before {
    content:'N° 01';
    border:1px solid #695143;
    padding:5px 8px;
    font-size:9px;
    letter-spacing:.05em
}

.n-hero h1 {
    font-size:clamp(32px,3.4vw,48px);
    line-height:1.95;
    letter-spacing:.13em;
    color:#f6eee6
}

.n-hero h1 span {
    display:block
}

.n-hero h1 em {
    font-style:normal;
    color:var(--accent)
}

.n-hero .hero-description {
    max-width:350px;
    color:#c6b9b0;
    font-size:12px;
    line-height:2.4;
    margin:27px 0 30px
}

.n-hero .button {
    background:#be987b;
    border-color:#be987b;
    min-width:186px
}

.n-hero .button.secondary {
    background:#131318a1;
    color:#ede5dd;
    border-color:#746259
}

.n-hero .hero-bottom {
    bottom:26px;
    color:var(--muted);
    left:50px;
    right:50px;
    z-index:2;
    font-size:9px
}

.n-hero .hero-label {
    position:absolute;
    right:69px;
    top:60px;
    color:#d3b69e;
    font-size:9px;
    letter-spacing:.2em
}

.n-hero-word {
    position:absolute;
    right:55px;
    bottom:52px;
    pointer-events:none;
    font:clamp(110px,12.8vw,194px)/1 'Cormorant Garamond',serif;
    letter-spacing:.03em;
    color:transparent;
    -webkit-text-stroke:1px #c9a78b4d;
    z-index:0
}

.n-hero-word i {
    font-style:italic;
    color:#e6cfb340;
    -webkit-text-stroke:0
}

.n-hero-side {
    position:absolute;
    right:68px;
    bottom:150px;
    font:italic 24px 'Cormorant Garamond',serif;
    color:#deccbb;
    letter-spacing:.025em;
    z-index:2
}

.n-private-strip {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border-bottom:1px solid var(--line)
}

.n-private-strip>div {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    padding:25px 20px;
    border-right:1px solid var(--line)
}

.n-private-strip>div:last-child {
    border-right:0
}

.n-private-strip span {
    font:10px 'Jost',sans-serif;
    letter-spacing:.2em;
    color:var(--accent)
}

.n-private-strip p {
    font-size:10px;
    margin:0;
    color:var(--muted);
    letter-spacing:.06em
}

.n-story-grid {
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:100px;
    align-items:center
}

.n-story .chapter-intro {
    max-width:540px
}

.n-story .body-copy {
    font-size:13px
}

.n-story .story-figure {
    height:580px;
    margin:0 28px 0 0
}

.n-story .story-figure::before {
    content:'';
    position:absolute;
    inset:23px -23px -23px 23px;
    border:1px solid #766053;
    z-index:-1
}

.n-story .story-figure::after {
    content:'THE ART OF A PRIVATE EVENING';
    position:absolute;
    bottom:-56px;
    right:0;
    font:9px 'Jost',sans-serif;
    color:var(--accent);
    letter-spacing:.19em
}

.n-story .text-link {
    margin-top:23px
}

.n-story .section-heading {
    font-size:36px;
    line-height:1.9
}

.n-story-quote {
    font:italic 36px/1.2 'Cormorant Garamond',serif;
    color:#7b6863;
    margin-bottom:35px
}

.n-values {
    background:#1b171d;
    border-block:1px solid #352b33;
    padding-block:90px
}

.n-values-layout {
    display:grid;
    grid-template-columns:290px 1fr;
    gap:100px
}

.n-values .section-heading {
    font-size:32px;
    line-height:1.9
}

.n-principles .principle {
    padding:28px 0;
    border-bottom:1px solid #46373d;
    display:grid;
    grid-template-columns:55px 1fr;
    gap:28px
}

.n-principles .principle:first-child {
    padding-top:0
}

.n-principles .principle:last-child {
    border:0;
    padding-bottom:0
}

.n-principles h3 {
    margin:0 0 13px;
    font-size:20px
}

.n-principles .principle-number {
    font-size:28px;
    color:#846959
}

.n-principles p {
    font-size:12px
}

.n-journey-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:30px;
    margin-bottom:50px
}

.n-journey-head .section-heading {
    margin-bottom:0
}

.n-journey-head>.text-link {
    margin-bottom:10px
}

.n-journey .journey-list {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border:1px solid var(--line)
}

.n-journey .journey-list li {
    padding:38px 27px 34px;
    border-right:1px solid var(--line);
    background:linear-gradient(145deg,#26202640,transparent)
}

.n-journey .journey-list li:last-child {
    border:0
}

.n-journey .step-label {
    color:#a58470
}

.n-journey .journey-list h3 {
    font-size:17px
}

.n-journey .journey-list p {
    font-size:11px
}

.n-fees {
    padding-top:10px
}

.n-fee-layout {
    display:grid;
    grid-template-columns:300px 1fr;
    gap:90px
}

.n-fee-layout .section-heading {
    font-size:31px
}

.n-fee-content .fee-summary {
    margin-bottom:25px
}

.n-fee-content .fee-summary>div {
    border-top:1px solid #806552
}

.n-fee-content .fee-summary strong {
    font-size:43px;
    color:#e2c5ab
}

.n-fee-bottom {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    border-block:1px solid var(--line);
    padding:23px 0
}

.n-fee-bottom p {
    margin:0;
    font-size:11px
}

.n-fee-bottom .text-link {
    padding:0;
    border:0
}

.n-privacy {
    padding-top:0
}

.n-privacy .privacy-statement {
    position:relative;
    padding:38px 45px;
    background:linear-gradient(90deg,#2b2028,#18181e);
    gap:30px
}

.n-privacy .privacy-statement h3 {
    font-size:20px;
    color:#dec1ab
}

.n-privacy .privacy-statement p {
    max-width:820px
}

.n-faq {
    padding-top:0
}

.n-faq-layout {
    display:grid;
    grid-template-columns:300px 1fr;
    gap:90px
}

.n-faq .section-heading {
    font-size:31px
}

.n-join {
    position:relative;
    background:#211a20;
    border-block:1px solid #48353f;
    isolation:isolate
}

.n-join::before {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#211a20f5,#211a20d9),url('../img/hero.webp') center/cover;
    z-index:-1
}

.n-join::after {
    content:'';
    position:absolute;
    inset:24px;
    border:1px solid #9f7b6726;
    z-index:-1;
    pointer-events:none
}

.n-join-heading {
    text-align:center;
    margin-bottom:48px
}

.n-join-heading .section-heading {
    font-size:35px;
    letter-spacing:.1em
}

.n-join-heading .serif {
    font-style:italic;
    color:#b3947f;
    font-size:25px;
    margin-bottom:15px
}

.n-join .join-grid {
    max-width:920px;
    margin:auto;
    gap:0;
    border:1px solid #766254
}

.n-join .join-panel {
    border:0;
    background:#17171ccb;
    padding:40px
}

.n-join .join-panel:first-child {
    border-right:1px solid #766254
}

.n-join .join-panel h3 {
    font-size:23px
}

.n-join .join-panel .eyebrow {
    color:#aa8a76
}

.n-join .join-panel .button {
    background:#c7a084;
    border-color:#c7a084
}

.n-join .join-panel:last-child .button {
    background:transparent;
    border-color:#796256;
    color:var(--ink)
}

.brand-noctura .site-footer {
    background:#0c0d10
}

.brand-noctura .brand-symbol {
    color:#b69980
}

.brand-noctura .page-banner {
    background:#1b181d
}

.brand-noctura .page-banner::after {
    background:linear-gradient(90deg,#1b181d,transparent),url('../img/hero.webp') center/cover;
    opacity:.65
}

.brand-noctura .luxury-form-container {
    border-top:2px solid #8d6c5b
}

.brand-noctura .btn-close {
    filter:invert(1) grayscale(1)
}

.brand-noctura .alert-warning .btn-close,.brand-noctura .alert-success .btn-close,.brand-noctura .alert-danger .btn-close {
    filter:none
}

.brand-noctura .text-dark {
    color:var(--ink)!important
}

.brand-noctura .form-control::-webkit-calendar-picker-indicator {
    filter:brightness(1.3)
}

.brand-noctura .bg-white {
    background:var(--panel)!important
}

.brand-noctura .bg-danger {
    background:#884954!important
}

.brand-noctura .text-danger {
    color:#e7a1a8!important
}

.brand-noctura .text-success {
    color:#a4ceb1!important
}

.brand-noctura .text-warning {
    color:#e2c5a2!important
}

.brand-noctura .alert-warning .text-danger {
    color:#852e36!important
}

.brand-noctura .table-dark {
    --bs-table-bg:#2b242b;
    --bs-table-color:#f0eae3
}

.brand-noctura .bg-primary {
    background:#7b5d4f!important
}

.brand-noctura .bg-success {
    background:#446958!important
}

.brand-noctura .bg-info {
    background:#486675!important
}

.brand-noctura .card .display-4,.brand-noctura .card .display-5 {
    color:var(--ink)
}

@media(max-width:1100px) {
    .brand-noctura .site-nav {
        gap:20px
    }
    .n-hero h1 {
        font-size:39px
    }
    .n-hero .hero-image {
        left:24%;
        width:calc(76% - 24px)
    }
    .n-story-grid {
        gap:65px
    }
    .n-story .story-figure {
        height:510px
    }
    .n-values-layout {
        gap:60px;
        grid-template-columns:260px 1fr
    }
    .n-fee-layout,.n-faq-layout {
        gap:55px;
        grid-template-columns:240px 1fr
    }
    .n-fee-content .fee-summary strong {
        font-size:36px
    }
    .n-journey .journey-list li {
        padding:30px 20px
    }
    .n-private-strip>div {
        gap:12px
    }
}

@media(max-width:991px) {
    .brand-noctura .header-inner {
        min-height:80px
    }
    .brand-noctura .site-nav {
        gap:0
    }
    .brand-noctura .site-nav .nav-entry {
        margin-top:15px
    }
    .n-hero {
        min-height:710px;
        height:calc(100svh - 80px)
    }
    .n-hero h1 {
        font-size:35px
    }
    .n-hero .hero-content {
        padding-bottom:125px
    }
    .n-hero .hero-image {
        left:22%;
        width:calc(78% - 20px);
        right:20px
    }
    .n-hero::after {
        right:36px
    }
    .n-hero-word {
        font-size:125px;
        right:35px;
        bottom:67px
    }
    .n-hero .hero-label {
        right:50px;
        top:55px;
        font-size:8px
    }
    .n-hero-side {
        right:50px;
        font-size:20px
    }
    .n-private-strip>div {
        flex-direction:column;
        gap:7px;
        padding:23px 10px
    }
    .n-private-strip span {
        font-size:9px
    }
    .n-private-strip p {
        font-size:9px
    }
    .n-story-grid {
        gap:55px;
        grid-template-columns:1fr .9fr
    }
    .n-story .story-figure {
        height:470px
    }
    .n-story .section-heading {
        font-size:29px
    }
    .n-story .body-copy {
        font-size:12px
    }
    .n-story-quote {
        font-size:30px
    }
    .n-values-layout {
        gap:40px;
        grid-template-columns:220px 1fr
    }
    .n-values .section-heading {
        font-size:27px
    }
    .n-fee-layout {
        display:block
    }
    .n-fee-layout .chapter-intro {
        margin-bottom:25px
    }
    .n-fee-content .fee-summary strong {
        font-size:42px
    }
    .n-faq-layout {
        grid-template-columns:200px 1fr;
        gap:40px
    }
    .n-journey .journey-list {
        grid-template-columns:1fr 1fr
    }
    .n-journey .journey-list li:nth-child(2) {
        border-right:0
    }
    .n-journey .journey-list li:nth-child(-n+2) {
        border-bottom:1px solid var(--line)
    }
    .n-join .join-panel {
        padding:30px
    }
}

@media(max-width:600px) {
    .brand-noctura .header-inner {
        min-height:74px
    }
    .brand-noctura .brand-word {
        font-size:23px;
        letter-spacing:.16em
    }
    .brand-noctura .brand-caption {
        font-size:6px;
        letter-spacing:.28em
    }
    .brand-noctura .brand-symbol {
        width:26px;
        height:36px
    }
    .n-hero {
        height:auto;
        min-height:805px
    }
    .n-hero .hero-image {
        inset:auto 12px 95px 12px;
        width:calc(100% - 24px);
        height:51%;
        object-position:70% center;
        opacity:.93
    }
    .n-hero::before {
        background:linear-gradient(180deg,#101115 0%,#101115 27%,#101115e0 38%,#10111515 62%,#10111500 80%)
    }
    .n-hero::after {
        inset:auto 25px 109px 25px;
        height:345px;
        border-color:#c9a78b35;
        z-index:-2
    }
    .n-hero .hero-content {
        min-height:unset;
        padding-top:47px;
        padding-bottom:0;
        justify-content:flex-start
    }
    .n-hero .eyebrow {
        font-size:8px;
        letter-spacing:.2em;
        gap:10px;
        margin-bottom:24px
    }
    .n-hero .eyebrow::before {
        font-size:8px;
        padding:4px 6px
    }
    .n-hero h1 {
        font-size:27px;
        letter-spacing:.08em;
        line-height:1.95
    }
    .n-hero .hero-description {
        font-size:11px;
        line-height:2.25;
        max-width:285px;
        margin:22px 0 25px
    }
    .n-hero .button {
        min-width:0;
        padding:13px 16px;
        min-height:49px;
        font-size:10px;
        gap:14px
    }
    .n-hero .hero-label {
        display:none
    }
    .n-hero .hero-bottom {
        left:20px;
        right:20px;
        bottom:23px;
        font-size:8px
    }
    .n-hero-word {
        font-size:76px;
        right:15px;
        bottom:48px;
        letter-spacing:.02em
    }
    .n-hero-side {
        right:30px;
        bottom:127px;
        font-size:19px
    }
    .n-private-strip span {
        font-size:8px;
        letter-spacing:.12em
    }
    .n-private-strip p {
        font-size:8px;
        letter-spacing:0
    }
    .n-private-strip>div {
        padding:20px 7px
    }
    .n-story-grid {
        grid-template-columns:1fr;
        gap:43px
    }
    .n-story .section-heading {
        font-size:28px
    }
    .n-story .story-figure {
        height:425px;
        margin:0 30px 50px 18px
    }
    .n-story .story-figure::before {
        inset:17px -17px -17px 17px
    }
    .n-story .story-figure::after {
        bottom:-42px;
        font-size:8px
    }
    .n-story-quote {
        font-size:29px;
        margin-bottom:22px
    }
    .n-values {
        padding-block:65px
    }
    .n-values-layout {
        display:block
    }
    .n-values .chapter-intro {
        margin-bottom:32px
    }
    .n-principles .principle {
        grid-template-columns:32px 1fr;
        gap:20px;
        padding-block:26px
    }
    .n-principles h3 {
        font-size:17px;
        margin-bottom:10px
    }
    .n-principles p {
        font-size:11px
    }
    .n-principles .principle-number {
        font-size:25px
    }
    .n-journey-head {
        align-items:flex-start;
        flex-direction:column;
        gap:15px;
        margin-bottom:30px
    }
    .n-journey-head>.text-link {
        margin:0
    }
    .n-journey .journey-list li {
        padding:28px 18px
    }
    .n-journey .journey-list h3 {
        font-size:16px
    }
    .n-journey .journey-list p {
        font-size:10px
    }
    .n-journey .step-label {
        font-size:9px;
        margin-bottom:18px
    }
    .n-fees {
        padding-top:0
    }
    .n-fee-layout .section-heading {
        font-size:27px
    }
    .n-fee-content .fee-summary {
        gap:15px;
        margin-bottom:15px
    }
    .n-fee-content .fee-summary strong {
        font-size:30px
    }
    .n-fee-bottom {
        flex-direction:column;
        align-items:flex-start;
        gap:18px;
        padding-block:22px
    }
    .n-privacy .privacy-statement {
        padding:28px 22px;
        gap:18px
    }
    .n-privacy .privacy-statement h3 {
        font-size:17px
    }
    .n-faq-layout {
        grid-template-columns:1fr;
        gap:5px
    }
    .n-faq .section-heading {
        font-size:27px
    }
    .n-join::after {
        inset:12px
    }
    .n-join-heading {
        text-align:left;
        margin-bottom:35px
    }
    .n-join-heading .section-heading {
        font-size:27px
    }
    .n-join-heading .serif {
        font-size:23px
    }
    .n-join .join-grid {
        gap:0
    }
    .n-join .join-panel {
        padding:27px
    }
    .n-join .join-panel:first-child {
        border-right:0;
        border-bottom:1px solid #766254
    }
    .n-join .join-panel h3 {
        font-size:21px
    }
}
