:root {
    --paper:#f4efe7;
    --paper2:#ebe4da;
    --ink:#1c1915;
    --gold:#aa8952;
    --gold-dark:#7d5620;
    --night:#191713;
    --white:#fffaf2;
    --line:rgba(28,25,21,.18)
}

html {
    scroll-behavior:smooth
}

body {
    font-family:'Onest',sans-serif;
    color:var(--ink);
    background:var(--paper);
    font-weight:400
}

h1,h2,h3 {
    font-family:'Montserrat',sans-serif;
    font-weight:300;
    text-transform:uppercase;
    letter-spacing:-.025em
}

h2 {
    font-size:clamp(1.9rem,3.4vw,3.45rem);
    line-height:1.02
}

.section-pad {
    padding:clamp(5rem,9vw,9rem) 0
}

.eyebrow {
    text-transform:uppercase;
    letter-spacing:.13em;
    font-size:.78rem;
    font-weight:600;
    color:var(--gold);
    margin-bottom:1rem
}

.eyebrow.dark {
    color:var(--gold-dark)
}

.btn {
    border-radius:0;
    text-transform:uppercase;
    letter-spacing:.06em;
    font-weight:600
}

.btn-primary {
    --bs-btn-bg:var(--gold);
    --bs-btn-border-color:var(--gold);
    --bs-btn-hover-bg:var(--gold-dark);
    --bs-btn-hover-border-color:var(--gold-dark);
    --bs-btn-color:var(--white)
}

.site-header {
	z-index: 1030;
    transition:.25s;
    background:rgba(244,239,231,.92);
    backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(28,25,21,.08)
}

.navbar {
    min-height:82px
}

.navbar-brand img,.footer-logo {
    width:180px;
    height:auto;
    object-fit:contain
}

.nav-link {
    text-transform:uppercase;
    font-size:.82rem;
    letter-spacing:.06em;
    color:var(--ink)
}

.hero {
    min-height:100svh;
    overflow:hidden
}

.hero-image,.hero-shade {
    position:absolute;
    inset:0;
    width:100%;
    height:100%
}

.hero-image {
    object-fit:cover
}

.hero-shade {
    display: none;
}

.hero-copy {
    color: var(--ink);
    padding-top: 80px;
    text-shadow: 0 1px 12px rgba(244, 239, 231, 0.25);
}

.hero h1 {
    font-size:clamp(4.4rem,10vw,9rem);
    line-height:.8;
    letter-spacing:-.06em;
    margin-bottom:1.3rem
}

.hero-kicker {
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:.95rem
}

.hero-manifesto {
    font-family:'Montserrat',sans-serif;
    text-transform:uppercase;
    font-size:clamp(1.4rem,2.4vw,2.35rem);
    line-height:1.15;
    margin-top:2rem
}

.hero-price {
    display:flex;
    flex-direction:column
}

.hero-price strong {
    font-size:1.55rem
}

.hero-price span {
    font-size:.82rem;
    opacity:.8
}

.scroll-cue {
    position:absolute;
    bottom:2rem;
    left:50%;
    transform:translateX(-50%);
    color:var(--ink);
    text-decoration:none;
    font-size:2rem
}

.editorial-image {
    width:100%;
    max-height:760px;
    object-fit:cover
}

.text-link {
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--ink);
    text-decoration:none;
    border-bottom:1px solid
}

.feature-dark {
    background:var(--night);
    color:var(--white)
}

.feature-image {
    width:100%;
    height:100%;
    min-height:650px;
    object-fit:cover
}

.feature-copy {
    padding:clamp(3rem,8vw,8rem);
    max-width:800px
}

.feature-copy p:not(.eyebrow) {
    font-size:1.12rem;
    max-width:640px
}

.safety-note {
    border-left:3px solid var(--gold);
    padding:1rem 1.25rem;
    background:var(--paper2);
    margin-top:2rem
}

.specs-section {
    background:#f8f5ef
}

.spec {
    border-top:2px solid var(--ink);
    padding-top:1.1rem;
    min-height:155px;
    display:flex;
    flex-direction:column
}

.spec b {
    font-family:'Montserrat',sans-serif;
    font-weight:300;
    font-size:clamp(2rem,4vw,3.7rem);
    line-height:1
}

.spec strong {
    font-size:.82rem;
    letter-spacing:.06em;
    margin-top:.65rem
}

.spec span {
    font-size:.86rem;
    opacity:.65;
    margin-top:.25rem
}

.kit-card {
    padding:clamp(2rem,4vw,4rem)
}

.kit-card h3 {
    font-size:2rem
}

.kit-card ul {
    list-style:none;
    padding:0;
    margin:0
}

.kit-card li {
    padding:.38rem 0
}

.kit-in {
    background:var(--night);
    color:var(--white)
}

.kit-in li:before {
    content:'✓';
    color:var(--gold);
    margin-right:.65rem
}

.kit-add {
    border:2px solid var(--ink)
}

.kit-add li:before {
    content:'→';
    margin-right:.65rem
}

.image-break {
    height:min(80vh,850px);
    position:relative;
    color:white
}

.image-break>img {
    width:100%;
    height:100%;
    object-fit:cover
}

.image-break:after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,rgba(0,0,0,.6),transparent 55%)
}

.image-break-copy {
    position:absolute;
    z-index:2;
    left:max(5vw,2rem);
    bottom:max(5vw,2rem);
    max-width:700px
}

.image-break-copy p {
    font-family:'Montserrat';
    text-transform:uppercase;
    font-size:clamp(2rem,5vw,5rem);
    line-height:.95;
    margin:0
}

.image-break-copy span {
    display:block;
    margin-top:1rem;
    font-size:1.05rem
}

.no-anchors {
    background:var(--paper2)
}

.no-anchors-layout {
    background:var(--night)
}

.no-anchors-image {
    display:block;
    width:100%;
    height:100%;
    min-height:560px;
    object-fit:cover
}

.no-anchors-card {
    background:var(--night);
    color:white;
    padding:clamp(2.5rem,5vw,5rem)
}

.accordion {
    --bs-accordion-bg:transparent;
    --bs-accordion-border-color:var(--line);
    --bs-accordion-btn-bg:transparent;
    --bs-accordion-active-bg:transparent;
    --bs-accordion-active-color:var(--ink)
}

.accordion-button {
    font-family:'Montserrat';
    text-transform:uppercase;
    font-size:1.1rem;
    padding:1.5rem 0
}

.accordion-button:focus {
    box-shadow:none
}

.accordion-body {
    padding:0 0 1.7rem;
    max-width:760px
}

.buy-section {
    background:var(--gold);
    padding:clamp(5rem,9vw,9rem) 0;
    color:var(--white)
}

.buy-section .eyebrow {
    color:var(--ink)
}

.price-block {
    display:flex;
    flex-direction:column;
    margin-top:2rem
}

.price-block span {
    text-transform:uppercase;
    letter-spacing:.08em
}

.price-block strong {
    font-family:'Montserrat';
    font-weight:300;
    font-size:clamp(3rem,6vw,6rem);
    line-height:1
}

.price-block small {
    opacity:.8
}

.buy-image {
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover
}

.site-footer {
    padding:4rem 0;
    background:var(--night);
    color:rgba(255,255,255,.75)
}

.site-footer a {
    color:white
}

.footer-logo {
    filter:brightness(0) invert(1);
    margin-bottom:1.5rem
}


/* Testimonial
   --------------------------------------------------------- */

.testimonial-section {
    background: var(--paper);
}

.testimonial-photo {
    display: block;
    width: min(180px, 100%);
    height: auto;
    aspect-ratio: 1 / 1;
    margin: 0 auto;
    object-fit: cover;
    border-radius: 50%;
}

.testimonial-quote p {
    margin: 0;
    font-family: "Montserrat", sans-serif;
    font-size: clamp(1.45rem, 2.6vw, 2.5rem);
    font-weight: 300;
    line-height: 1.25;
    letter-spacing: -0.025em;
}

.testimonial-quote footer {
    margin-top: 1.5rem;
    font-weight: 600;
}

.testimonial-quote footer span {
    font-weight: 400;
    opacity: 0.6;
}

@media (max-width: 575.98px) {
    .testimonial-section .row {
        --bs-gutter-x: 1.25rem;
    }

    .testimonial-quote p {
        font-size: 1.25rem;
    }

    .testimonial-quote footer {
        margin-top: 1rem;
        font-size: 0.9rem;
    }
}



@media(max-width:991.98px) {
    .site-header .navbar-collapse {
        background:var(--paper);
        padding:1.5rem;
        margin:0 -12px -8px
    }

    .feature-image {
        min-height:480px
    }

    .no-anchors-image {
        min-height:420px
    }

}

@media(max-width:575.98px) {
    .hero h1 {
        font-size:4.2rem
    }

    .hero-manifesto {
        font-size:1.45rem
    }

    .hero {
        min-height:900px
    }

    .hero-copy {
        align-self:flex-end;
        padding-bottom:7rem
    }

    .spec {
        min-height:140px
    }

    .spec b {
        font-size:2rem
    }

    .image-break {
        height:650px
    }

}

/* Final responsive refinements */
html,body {
    max-width:100%;
    overflow-x:hidden
}

.hero-image {
    object-position:center center
}

.menu-toggle {
    width:44px;
    height:44px;
    padding:0;
    border:0;
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px
}

.menu-toggle span {
    display:block;
    width:25px;
    height:1.5px;
    background:var(--ink);
    transition:transform .2s ease,opacity .2s ease
}

.menu-toggle[aria-expanded="true"] span:first-child {
    transform:translateY(4.25px) rotate(45deg)
}

.menu-toggle[aria-expanded="true"] span:last-child {
    transform:translateY(-4.25px) rotate(-45deg)
}

.no-anchors {
    padding:0;
    background:var(--night)
}

.no-anchors .feature-image {
    min-height:650px
}

@media(max-width:991.98px) {
    .site-header .navbar-collapse {
        margin-left:0;
        margin-right:0;
        width:100%
    }

    .no-anchors .feature-image {
        min-height:480px
    }

}

@media(max-width:575.98px) {
    .hero-image {
        object-position:84% center
    }

    .hero h1 {
        font-size:3.65rem
    }

    .hero-copy {
        padding-left:1rem;
        padding-right:1rem
    }

    .navbar-brand img {
        width:155px
    }

    .no-anchors .feature-image {
        min-height:420px
    }

}


/* =========================================================
   NAVIGATION — easy manual adjustments
   ========================================================= */

/* 0.30 = 30% opaque navbar background */
.site-header {
    background: rgba(244, 239, 231, 0.30);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* Header is absolute, not sticky/fixed, so it scrolls away with the page. */


/* =========================================================
   MOBILE NAVIGATION
   ========================================================= */

@media (max-width: 991.98px) {

    /* Full-screen menu */
    .site-header .navbar-collapse {
        position: fixed;
        z-index: 1001;
        inset: 0;
        width: 100vw;
        height: 100svh;
        margin: 0;
        padding: 8rem 2rem 3rem;
        background: var(--paper);
    }

    .site-header .navbar-collapse.collapsing {
        height: 100svh;
        transition: none;
    }

    .site-header .navbar-collapse.show {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Keep logo and close icon above the full-screen menu */
    .navbar-brand,
    .menu-toggle {
        position: relative;
        z-index: 1002;
    }

    .site-header .navbar-nav {
        width: 100%;
        max-width: 520px;
        margin: 0 auto;
        align-items: stretch !important;
        gap: 0 !important;
        text-align: center;
    }

    .site-header .nav-item {
        width: 100%;
    }

    .site-header .nav-link {
        display: block;
        padding: 1.15rem 1rem;
        font-family: "Montserrat", sans-serif;
        font-size: clamp(1.5rem, 6vw, 2.3rem);
        font-weight: 300;
        line-height: 1.1;
        letter-spacing: 0;
    }
}

@media (max-width: 575.98px) {
    .hero-shade {
        display: block;
        background: linear-gradient(
            90deg,
            rgba(244, 239, 231, 0.78) 0%,
            rgba(244, 239, 231, 0.55) 38%,
            rgba(244, 239, 231, 0.18) 68%,
            rgba(244, 239, 231, 0) 100%
        );
    }
}