:root {
    --black: #070b08;
    --black-2: #0d130f;
    --green: #66863a;
    --green-light: #8ba956;
    --cream: #e8e0d2;
    --paper: #e9e1d3;
    --white: #f5f3ed;
    --muted: #c7c9c3;
    --line: rgba(255,255,255,.14);
    --max-width: 1360px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--black);
    color: var(--white);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.45;
}

body.menu-open { overflow: hidden; }

img { max-width: 100%; display: block; }

a { color: inherit; }

button, input { font: inherit; }

.skip-link {
    position: fixed;
    left: 1rem;
    top: -5rem;
    z-index: 1000;
    padding: .75rem 1rem;
    background: white;
    color: black;
}
.skip-link:focus { top: 1rem; }

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 100;
    background: linear-gradient(180deg, rgba(3,5,4,.96), rgba(3,5,4,.76));
    border-bottom: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(6px);
}

.nav-shell {
    width: min(100% - 2rem, var(--max-width));
    min-height: 58px;
    margin: auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 2rem;
}

.brand,
.footer-brand {
    width: max-content;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    text-decoration: none;
    font-weight: 900;
    letter-spacing: .08em;
}

.pine-icon {
    color: var(--green);
    transform: scaleX(.7);
    font-size: 1.4rem;
}

.primary-nav {
    display: flex;
    min-height: 58px;
    gap: 2.8rem;
}

.primary-nav a {
    position: relative;
    display: grid;
    place-items: center;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: .07em;
    font-size: .72rem;
}

.primary-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 9px;
    height: 2px;
    background: var(--green-light);
    transform: scaleX(0);
    transition: transform .2s ease;
}

.primary-nav a:hover::after,
.primary-nav a.active::after {
    transform: scaleX(1);
}

.social-nav {
    justify-self: end;
    display: flex;
    gap: 1.3rem;
}

.social-nav a {
    text-decoration: none;
    font-weight: 900;
}

.social-nav a:hover { color: var(--green-light); }

.menu-toggle {
    display: none;
    justify-self: end;
    width: 44px;
    height: 42px;
    padding: 9px;
    background: transparent;
    border: 1px solid var(--line);
}

.menu-toggle span:not(.sr-only) {
    display: block;
    height: 2px;
    margin: 5px 0;
    background: white;
}

.hero {
    position: relative;
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    align-items: center;
    overflow: hidden;
    background-color: #050806;
    background-image:
        linear-gradient(90deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.66) 31%, rgba(0,0,0,.05) 72%),
        url("../images/hero.jpg");
    background-position: center, 54% center;
    background-size: cover, cover;
    background-repeat: no-repeat;
}

.hero-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0,0,0,.1), transparent 38%, rgba(0,0,0,.35)),
        radial-gradient(circle at 55% 50%, transparent 0 30%, rgba(0,0,0,.18) 80%);
}

.hero-copy {
    position: relative;
    z-index: 2;
    width: min(470px, calc(100% - 3rem));
    margin-left: max(3.7rem, calc((100vw - var(--max-width)) / 2 + 1rem));
    padding-top: 5.4rem;
}

.hero-logo {
    margin: 0;
    color: #f0efe9;
    font-size: clamp(4.6rem, 7vw, 7.2rem);
    line-height: .82;
    font-weight: 1000;
    letter-spacing: .025em;
    text-shadow: 0 3px 20px rgba(0,0,0,.5);
}

.tagline {
    margin: .85rem 0 .4rem;
    color: var(--green-light);
    font-weight: 900;
    font-size: clamp(.95rem, 1.6vw, 1.35rem);
    letter-spacing: .19em;
}

.tree-divider,
.small-divider {
    display: flex;
    align-items: center;
    gap: .8rem;
    color: var(--green);
    margin: .5rem 0 1rem;
}

.tree-divider::before,
.tree-divider::after,
.small-divider::before,
.small-divider::after {
    content: "";
    height: 2px;
    flex: 1;
    background: currentColor;
    opacity: .7;
}

.tree-divider span,
.small-divider span {
    font-size: .72rem;
    letter-spacing: -.18rem;
}

.hero h1 {
    margin: 0 0 .7rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3vw, 2.75rem);
    line-height: 1;
}

.hero-copy > p:not(.hero-logo):not(.tagline) {
    margin: .58rem 0;
    max-width: 445px;
    font-size: .92rem;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.3rem;
}

.button {
    min-height: 43px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    padding: .72rem 1.2rem;
    border: 1px solid currentColor;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: 900;
    font-size: .72rem;
    letter-spacing: .06em;
    transition: transform .2s ease, background .2s ease;
}

.button:hover { transform: translateY(-2px); }

.button-green {
    background: var(--green);
    border-color: var(--green);
}

.button-green:hover { background: var(--green-light); }

.button-outline { background: rgba(0,0,0,.28); }

.button-light {
    color: #141914;
    border-color: rgba(20,25,20,.5);
}

.button-dark {
    color: white;
    background: rgba(0,0,0,.2);
}

.scroll-prompt {
    position: absolute;
    z-index: 3;
    left: 50%;
    bottom: 1.25rem;
    transform: translateX(-50%);
    display: grid;
    justify-items: center;
    gap: .3rem;
    text-decoration: none;
    text-transform: uppercase;
    font-size: .62rem;
    font-weight: 800;
}

.mouse-icon {
    width: 18px;
    height: 30px;
    border: 2px solid white;
    border-radius: 10px;
}

.mobile-intro {
    display: none;
}

.paper-section {
    background:
        radial-gradient(circle at 20% 10%, rgba(255,255,255,.22), transparent 35%),
        repeating-linear-gradient(0deg, rgba(0,0,0,.015) 0 1px, transparent 1px 4px),
        var(--paper);
    color: #151914;
}


.home-shop-showcase {
    display: grid;
    grid-template-columns: minmax(240px, .72fr) minmax(0, 2fr);
    gap: 2.5rem;
    align-items: center;
    padding: 3rem max(3.7rem, calc((100vw - var(--max-width)) / 2 + 1rem));
}

.home-shop-heading h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 3.8vw, 4rem);
    line-height: .98;
}

.home-shop-heading > p:not(.section-kicker) {
    max-width: 31rem;
    margin: 1rem 0 1.4rem;
    line-height: 1.55;
}

.home-shop-heading .button {
    width: max-content;
}

.home-shop-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.home-shop-card {
    min-width: 0;
    background: #f8f4eb;
    border: 1px solid rgba(21,25,20,.18);
    box-shadow: 0 7px 18px rgba(21,25,20,.08);
}

.home-shop-card__image {
    display: block;
    overflow: hidden;
    background: #e3ddcf;
}

.home-shop-card__image img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    transition: transform .25s ease;
}

.home-shop-card__image:hover img,
.home-shop-card__image:focus-visible img {
    transform: scale(1.035);
}

.home-shop-card__body {
    padding: .9rem;
}

.home-shop-card__body p {
    margin: 0 0 .35rem;
    color: var(--green);
    font-size: .64rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.home-shop-card__body h3 {
    margin: 0;
    font-size: .86rem;
    line-height: 1.25;
}

.home-shop-card__body h3 a {
    color: #151914;
    text-decoration: none;
}

.home-shop-card__body strong {
    display: block;
    margin-top: .5rem;
    font-size: .78rem;
}

.home-shop-empty {
    padding: 2rem;
    border: 1px solid rgba(21,25,20,.18);
}

.why-section {
    display: grid;
    grid-template-columns: 1.08fr .9fr 1.65fr;
    gap: 2.5rem;
    align-items: center;
    padding: 2.2rem max(3.7rem, calc((100vw - var(--max-width)) / 2 + 1rem));
}

.why-image-wrap {
    position: relative;
    padding: .55rem;
    background: #f7f1e6;
    box-shadow: 0 5px 13px rgba(0,0,0,.25);
    transform: rotate(-2deg);
}

.why-image-wrap img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.section-kicker {
    margin: 0 0 .45rem;
    color: var(--green);
    text-transform: uppercase;
    font-weight: 900;
    letter-spacing: .09em;
    font-size: .72rem;
}

.why-copy h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1;
}

.why-copy p {
    margin: .65rem 0;
    font-size: .85rem;
}

.small-divider {
    width: 76%;
    margin: .8rem 0;
}

.feature-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.feature-grid article {
    min-height: 165px;
    display: grid;
    place-items: center;
    align-content: center;
    text-align: center;
    padding: 1.2rem;
    border-left: 1px solid rgba(0,0,0,.18);
}

.feature-grid article:nth-child(n+3) {
    border-top: 1px solid rgba(0,0,0,.18);
}

.feature-icon {
    color: var(--green);
    font-size: 2rem;
    line-height: 1;
}

.feature-grid h3 {
    margin: .55rem 0 .25rem;
    text-transform: uppercase;
    font-size: .72rem;
}

.feature-grid p {
    margin: 0;
    max-width: 180px;
    font-size: .74rem;
}

.content-deck {
    display: grid;
    grid-template-columns: minmax(310px, .8fr) minmax(0, 2fr);
    grid-template-areas: "journal gallery";
    gap: 1px;
    padding: 1.1rem max(3.7rem, calc((100vw - var(--max-width)) / 2 + 1rem));
    background:
        linear-gradient(rgba(7,11,8,.96), rgba(7,11,8,.97)),
        url("../images/hero.jpg") center/cover fixed;
}

.journal-card { grid-area: journal; }
.outdoors-block { grid-area: gallery; }

.journal-card,
.outdoors-block {
    min-width: 0;
    padding: .65rem 1rem;
    border-bottom: 1px solid var(--line);
}

.journal-card {
    border-right: 1px solid var(--line);
    padding-left: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 145px;
    grid-template-rows: auto auto auto auto 1fr;
    column-gap: 1rem;
    align-content: start;
}

.journal-card .section-kicker,
.journal-card .entry-date,
.journal-card h2,
.journal-card p,
.journal-card .text-link {
    grid-column: 1;
}

.journal-card h2 {
    margin: .25rem 0;
    font-size: 1.25rem;
}

.entry-date {
    margin: .2rem 0;
    color: var(--green-light);
    font-size: .68rem;
    text-transform: uppercase;
}

.journal-card p {
    margin: .35rem 0;
    font-size: .8rem;
}

.journal-card img {
    grid-column: 2;
    grid-row: 2 / span 4;
    width: 145px;
    height: 72px;
    align-self: end;
    object-fit: cover;
    border: 1px solid rgba(255,255,255,.14);
}

.text-link {
    color: var(--green-light);
    text-decoration: none;
    font-weight: 800;
    font-size: .76rem;
}

.gallery-strip {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .55rem;
}

.gallery-strip img {
    width: 100%;
    height: 103px;
    object-fit: cover;
    border: 1px solid rgba(255,255,255,.2);
}

.gallery-button {
    width: max-content;
    display: block;
    margin: .55rem auto 0;
    padding: .22rem 1.3rem;
    border: 1px solid rgba(255,255,255,.25);
    text-decoration: none;
    text-transform: uppercase;
    font-size: .62rem;
}

.progress-row {
    display: grid;
    grid-template-columns: 68px 1fr 36px;
    gap: .55rem;
    align-items: center;
    margin: .28rem 0;
    font-size: .64rem;
    text-transform: uppercase;
}

.progress-track {
    height: 5px;
    background: rgba(255,255,255,.13);
}

.progress-track span {
    display: block;
    height: 100%;
    background: var(--green);
}

.roadmap-link {
    float: right;
    margin-top: .35rem;
    padding: .2rem 1rem;
    border: 1px solid var(--line);
    text-decoration: none;
    text-transform: uppercase;
    font-size: .58rem;
}

.newsletter-section {
    min-height: 92px;
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    align-items: center;
    gap: 2rem;
    padding: .7rem max(5rem, calc((100vw - 1200px) / 2 + 1rem));
    background:
        linear-gradient(rgba(34,42,33,.9), rgba(16,22,17,.97)),
        url("../images/hero.jpg") center 65%/cover;
}

.newsletter-section h2 {
    margin: 0;
    text-transform: uppercase;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.5rem;
}

.newsletter-section p {
    margin: .2rem 0;
    max-width: 420px;
    font-size: .68rem;
}

.newsletter-section form {
    display: grid;
    grid-template-columns: 1fr 90px;
}

.newsletter-section input,
.newsletter-section button {
    min-height: 36px;
    border: 0;
    padding: 0 .9rem;
}

.newsletter-section button {
    background: var(--green);
    color: white;
    text-transform: uppercase;
    font-weight: 800;
}

.newsletter-section small,
.form-message {
    grid-column: 1 / -1;
    margin-top: .2rem;
    font-size: .6rem;
}

.form-message.success { color: #b7d88a; }
.form-message.error { color: #ffb4a6; }

.site-footer {
    border-top: 1px solid var(--line);
    background: #050806;
}

.footer-shell {
    width: min(100% - 2rem, 1220px);
    min-height: 52px;
    margin: auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
    font-size: .62rem;
    color: #9d9f9c;
}

.footer-shell nav {
    justify-self: end;
    display: flex;
    gap: .8rem;
    text-transform: uppercase;
}

.footer-shell nav a { text-decoration: none; }

.inner-page {
    min-height: calc(100vh - 52px);
    padding-top: 58px;
    background: #0b100c;
}

.page-hero,
.project-hero {
    min-height: 420px;
    display: grid;
    align-content: center;
    padding: 4rem max(4rem, calc((100vw - 1200px) / 2 + 1rem));
    background:
        linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.32)),
        url("../images/hero.jpg") center/cover;
}

.page-hero h1,
.project-hero h1,
.single-post h1 {
    margin: 0;
    max-width: 850px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 7vw, 6rem);
    line-height: .96;
}

.page-hero p,
.project-hero p {
    max-width: 650px;
}

.page-content {
    width: min(100% - 2rem, 1180px);
    margin: auto;
    padding: 4rem 0;
}

.journal-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

.post-card {
    overflow: hidden;
    background: #121914;
    border: 1px solid var(--line);
}

.post-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.post-card > div { padding: 1.4rem; }

.post-card h2 { margin: .2rem 0; }

.full-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.full-gallery a {
    position: relative;
    overflow: hidden;
    min-height: 260px;
    border: 1px solid var(--line);
}

.full-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.full-gallery a:hover img { transform: scale(1.04); }

.full-gallery span {
    position: absolute;
    inset: auto 0 0;
    padding: 1rem;
    background: linear-gradient(transparent, rgba(0,0,0,.9));
    font-weight: 800;
}

.two-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 3rem;
}

.two-column img {
    width: 100%;
    max-height: 480px;
    object-fit: cover;
}

.single-post {
    max-width: 900px;
}

.post-hero-image {
    width: 100%;
    max-height: 480px;
    margin: 2rem 0;
    object-fit: cover;
}

@media (max-width: 1050px) {
    .nav-shell { grid-template-columns: 1fr auto; }
    .social-nav { display: none; }
    .menu-toggle { display: block; }
    .primary-nav {
        position: fixed;
        inset: 58px 0 auto;
        display: none;
        min-height: 0;
        padding: 1rem;
        background: rgba(5,8,6,.98);
        flex-direction: column;
        gap: 0;
    }
    .primary-nav.open { display: flex; }
    .primary-nav a { min-height: 48px; justify-content: start; }
    .primary-nav a::after { bottom: 4px; transform-origin: left; }

    .home-shop-showcase {
        grid-template-columns: 1fr;
        padding-inline: 2rem;
    }

    .home-shop-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .why-section {
        grid-template-columns: 1fr 1fr;
        padding-inline: 2rem;
    }
    .feature-grid { grid-column: 1 / -1; }

    .content-deck {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "journal journal"
            "gallery gallery"
            "rivercopy riverart"
            "progress progress";
        padding-inline: 2rem;
    }

    .journal-card {
        grid-template-columns: minmax(0, 1fr) 180px;
    }

    .journal-card img {
        width: 180px;
        height: 82px;
        margin-top: 1rem;
    }

}

@media (max-width: 700px) {
    .hero {
        min-height: 100vh;
        min-height: 100svh;
        align-items: end;
        background-position: center, 68% center;
        background-size: cover, cover;
    }

    .hero-shade {
        background:
            linear-gradient(180deg, rgba(0,0,0,.04) 0%, rgba(0,0,0,.08) 42%, rgba(0,0,0,.88) 82%, rgba(0,0,0,.98) 100%);
    }

    .hero-copy {
        width: 100%;
        margin: 0;
        padding: 0 1.5rem 6.8rem;
        background: none;
    }

    .hero-logo {
        font-size: clamp(3.15rem, 16vw, 4.8rem);
        line-height: .9;
    }

    .hero .tagline {
        max-width: 22rem;
        font-size: clamp(.82rem, 4vw, 1.05rem);
        line-height: 1.55;
    }

    .hero-copy h1,
    .hero-copy > p:not(.hero-logo):not(.tagline),
    .hero-copy .hero-actions {
        display: none;
    }

    .hero-actions { flex-direction: column; }
    .button { width: 100%; }

    .mobile-intro {
        display: block;
        background: #050806;
        color: var(--white);
        padding: 3.5rem 1.5rem 4rem;
    }

    .mobile-intro-inner {
        max-width: 34rem;
        margin: 0 auto;
    }

    .mobile-intro h1 {
        margin: 0 0 1.25rem;
        font-family: Georgia, "Times New Roman", serif;
        font-size: clamp(2.25rem, 10vw, 3.35rem);
        line-height: 1.02;
    }

    .mobile-intro p {
        margin: 0 0 1.15rem;
        font-size: 1.05rem;
        line-height: 1.65;
    }

    .mobile-intro .hero-actions {
        margin-top: 2rem;
    }

    .home-shop-showcase {
        grid-template-columns: 1fr;
        gap: 1.75rem;
        padding: 2.5rem 1.25rem;
    }

    .home-shop-heading .button {
        width: 100%;
    }

    .home-shop-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
    }

    .home-shop-card__body {
        padding: .75rem;
    }

    .home-shop-card__body h3 {
        font-size: .8rem;
    }

    .why-section {
        grid-template-columns: 1fr;
        gap: 1.7rem;
        padding: 2rem 1.25rem;
    }

    .feature-grid {
        grid-template-columns: 1fr;
    }

    .feature-grid article {
        border-left: 0;
        border-top: 1px solid rgba(0,0,0,.18);
    }

    .content-deck {
        display: block;
        padding: 1rem 1.25rem;
    }

    .journal-card,
    .outdoors-block {
        padding: 1rem 0;
        border-right: 0;
    }

    .journal-card {
        display: block;
    }

    .journal-card img {
        width: 100%;
        height: 110px;
        margin-top: 1rem;
    }

    .gallery-strip {
        grid-template-columns: 1fr 1fr;
    }

    .gallery-strip a:last-child {
        grid-column: 1 / -1;
    }

    .gallery-strip img { height: 140px; }

    .newsletter-section {
        grid-template-columns: 1fr;
        padding: 1.4rem 1.25rem;
    }

    .footer-shell {
        grid-template-columns: 1fr;
        justify-items: center;
        padding: 1rem;
        text-align: center;
    }

    .footer-shell nav { justify-self: center; }

    .page-hero,
    .project-hero {
        min-height: 360px;
        padding-inline: 1.25rem;
    }

    .journal-grid,
    .full-gallery,
    .two-column {
        grid-template-columns: 1fr;
    }
}

/* Build fix5: conceal text and scroll prompt baked into the hero artwork.
   The hero image, size, and position are intentionally unchanged. */
.hero::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0 auto 0 0;
    width: min(46rem, 55vw);
    pointer-events: none;
    background: linear-gradient(
        90deg,
        rgba(0, 0, 0, .97) 0%,
        rgba(0, 0, 0, .94) 53%,
        rgba(0, 0, 0, .72) 72%,
        rgba(0, 0, 0, 0) 100%
    );
}

.hero::after {
    content: "";
    position: absolute;
    z-index: 2;
    left: 50%;
    bottom: .35rem;
    width: 15rem;
    height: 5.7rem;
    transform: translateX(-50%);
    pointer-events: none;
    background: radial-gradient(
        ellipse at center,
        rgba(0, 0, 0, .98) 0%,
        rgba(0, 0, 0, .94) 48%,
        rgba(0, 0, 0, 0) 76%
    );
}

.hero-copy,
.scroll-prompt {
    z-index: 4;
}

@media (max-width: 700px) {
    /* Mobile gets a clean photo-first hero. The crop keeps the artwork's
       baked-in duplicate desktop text outside the narrow viewport. */
    .hero::before {
        width: 100%;
        background: linear-gradient(
            180deg,
            rgba(0, 0, 0, .02) 0%,
            rgba(0, 0, 0, .02) 48%,
            rgba(0, 0, 0, .30) 66%,
            rgba(0, 0, 0, .92) 100%
        );
    }

    .hero::after {
        bottom: 0;
        width: 13rem;
        height: 4.8rem;
    }

    .scroll-prompt {
        bottom: 1rem;
    }
}

/* Build mobile-goal: dedicated full-screen portrait hero on phones. */
@media (max-width: 700px) {
    .site-header {
        background: linear-gradient(180deg, rgba(2, 4, 3, .86) 0%, rgba(2, 4, 3, .46) 68%, rgba(2, 4, 3, 0) 100%);
        border-bottom: 0;
        backdrop-filter: none;
    }

    .nav-shell {
        width: calc(100% - 2rem);
        min-height: 58px;
    }

    .hero {
        height: 100svh;
        min-height: 100svh;
        display: block;
        background-color: #030504;
        background-image: url("../images/mobile-hero-pinewake-v11.png?v=11");
        background-repeat: no-repeat;
        background-position: center center;
        background-size: 100% 100%;
        isolation: isolate;
    }

    .hero-shade {
        z-index: 1;
        background:
            linear-gradient(180deg, rgba(0,0,0,.02) 0%, rgba(0,0,0,.02) 48%, rgba(0,0,0,.22) 68%, rgba(0,0,0,.92) 100%),
            linear-gradient(90deg, rgba(0,0,0,.08), transparent 24%, transparent 76%, rgba(0,0,0,.08));
    }

    .hero::before {
        content: "";
        position: absolute;
        z-index: 2;
        inset: auto 0 0;
        width: 100%;
        height: 46%;
        background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.12) 24%, rgba(0,0,0,.82) 100%);
        pointer-events: none;
    }

    .hero::after {
        display: none;
    }

    .hero-copy {
        position: absolute;
        z-index: 4;
        left: 0;
        right: 0;
        bottom: 8.4rem;
        width: auto;
        margin: 0;
        padding: 0 1.45rem;
        text-align: left;
    }

    .hero-logo {
        margin: 0;
        font-size: clamp(3rem, 15.7vw, 4.45rem);
        line-height: .86;
        letter-spacing: .005em;
        white-space: nowrap;
        text-shadow: 0 3px 18px rgba(0,0,0,.78);
    }

    .hero .tagline {
        margin: .72rem 0 .35rem;
        max-width: none;
        font-size: clamp(.72rem, 3.65vw, 1rem);
        line-height: 1.2;
        letter-spacing: .14em;
        white-space: nowrap;
        text-shadow: 0 2px 10px rgba(0,0,0,.9);
    }

    .hero .tree-divider {
        margin: .55rem 0 0;
    }

    .hero .tree-divider::before,
    .hero .tree-divider::after {
        height: 2px;
    }

    .scroll-prompt {
        z-index: 5;
        bottom: 1.2rem;
        gap: .48rem;
        font-size: .63rem;
        letter-spacing: .055em;
    }

    .mouse-icon {
        width: 17px;
        height: 29px;
        border-width: 2px;
    }

    .mobile-intro {
        padding-top: 3.5rem;
    }
}


/* Build portrait2: generated portrait artwork already contains the mobile title, tagline, divider and scroll cue. */
@media (max-width: 700px) {
    .hero {
        background-image: url("../images/mobile-hero-pinewake-v11.png?v=11") !important;
        background-position: center center !important;
        background-size: 100% 100% !important;
        background-repeat: no-repeat !important;
    }

    .hero-shade,
    .hero::before {
        display: none !important;
    }

    .hero-copy,
    .scroll-prompt {
        display: none !important;
    }
}

/* Build mobile-polish1: mobile hero finishing pass. Desktop is intentionally unchanged. */
.mobile-title-reveal,
.mobile-tagline-reveal {
    display: none;
}

@media (max-width: 700px) {
    .hero {
        /* Lift the baked title/tagline slightly without changing the desktop artwork. */
        background-position: center 47.5% !important;
    }

    /* Restore only the live scroll cue, positioned lower than the artwork version. */
    .scroll-prompt {
        display: grid !important;
        bottom: .5rem !important;
        opacity: .94;
        animation: mobileScrollPromptIn .9s ease-out 1.1s both;
    }

    /* A soft lower veil conceals the baked scroll cue and makes the handoff
       into the next section feel deliberate rather than like a hard cut. */
    .hero::after {
        content: "";
        display: block !important;
        position: absolute;
        z-index: 3;
        inset: auto 0 0;
        height: 15.5%;
        pointer-events: none;
        background: linear-gradient(
            180deg,
            rgba(3,5,4,0) 0%,
            rgba(3,5,4,.18) 32%,
            rgba(3,5,4,.72) 76%,
            #050806 100%
        );
    }

    .mobile-title-reveal,
    .mobile-tagline-reveal {
        display: block;
        position: absolute;
        z-index: 4;
        left: 7%;
        right: 7%;
        pointer-events: none;
        border-radius: 1.25rem;
        background: rgba(4,7,5,.38);
        filter: blur(10px);
        animation: mobileTextReveal 1.05s cubic-bezier(.2,.7,.2,1) both;
    }

    .mobile-title-reveal {
        top: 61.2%;
        height: 8.2%;
        animation-delay: .12s;
    }

    .mobile-tagline-reveal {
        top: 70.3%;
        height: 4.7%;
        animation-delay: .34s;
    }

    .mobile-intro {
        position: relative;
        margin-top: -1px;
        padding-top: 4.35rem;
        background:
            linear-gradient(180deg, #050806 0%, #050806 72%, #050806 100%);
    }

    .mobile-intro::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -3.25rem;
        height: 3.3rem;
        pointer-events: none;
        background: linear-gradient(180deg, rgba(5,8,6,0), #050806 92%);
    }
}

@keyframes mobileTextReveal {
    from { opacity: 1; transform: translateY(5px); }
    to { opacity: 0; transform: translateY(0); }
}

@keyframes mobileScrollPromptIn {
    from { opacity: 0; transform: translate(-50%, 7px); }
    to { opacity: .94; transform: translate(-50%, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .mobile-title-reveal,
    .mobile-tagline-reveal,
    .scroll-prompt {
        animation: none !important;
    }

    .mobile-title-reveal,
    .mobile-tagline-reveal {
        opacity: 0;
    }
}

/* Build mobile-scroll-lowered: approved full-screen mobile artwork.
   Desktop remains untouched. The title, tagline, divider and lower scroll cue
   are baked into the dedicated portrait image, so no duplicate overlays show. */
@media (max-width: 700px) {
    .hero {
        height: 100svh !important;
        min-height: 100svh !important;
        background-image: url("../images/mobile-hero-pinewake-v11.png?v=11") !important;
        background-position: center center !important;
        background-size: 100% 100% !important;
        background-repeat: no-repeat !important;
    }

    .hero-shade,
    .hero::before,
    .hero::after,
    .hero-copy,
    .scroll-prompt,
    .mobile-title-reveal,
    .mobile-tagline-reveal {
        display: none !important;
    }
}

/* Build mobile-header-cleanup: conceal the logo and hamburger baked into the
   portrait artwork while preserving the real clickable site header above it.
   Desktop remains unchanged. */
@media (max-width: 700px) {
    .site-header {
        background: #030504 !important;
        border-bottom: 1px solid rgba(255,255,255,.06);
        backdrop-filter: none;
        overflow: visible;
    }

    .site-header::after {
        content: "";
        position: absolute;
        z-index: -1;
        left: 0;
        right: 0;
        top: 100%;
        height: 2.25rem;
        pointer-events: none;
        background: linear-gradient(180deg, #030504 0%, rgba(3,5,4,.92) 32%, rgba(3,5,4,0) 100%);
    }

    .nav-shell {
        position: relative;
        z-index: 1;
    }
}

/* Build desktop-approved-dark-v1: approved desktop hero composition only.
   Mobile is locked and remains governed exclusively by the existing max-width rules. */
@media (min-width: 701px) {
    .hero {
        background-color: #050806;
        background-image: url("../images/desktop-hero-pinewake-v11.jpg?v=11") !important;
        background-position: center center !important;
        background-size: 100% 100% !important;
        background-repeat: no-repeat !important;
    }

    /* The approved desktop artwork contains the visible hero typography and controls.
       Keep the original live elements in place and clickable so all existing links,
       hover states, keyboard access, and scripted behavior remain functional. */
    .hero-shade,
    .hero::before,
    .hero::after {
        display: none !important;
    }

    .hero-copy,
    .scroll-prompt {
        opacity: 0 !important;
    }

    .hero-copy {
        pointer-events: auto;
    }

    .scroll-prompt {
        display: grid !important;
        pointer-events: auto;
    }
}

/* Build desktop-button-fix-v2: restore click targets over the approved baked-in
   desktop hero buttons. Mobile remains locked and unchanged. */
@media (min-width: 701px) {
    .hero-copy {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        z-index: 10 !important;
        pointer-events: none !important;
    }

    .hero-copy .hero-actions {
        position: absolute !important;
        left: 3.25% !important;
        top: 72.3% !important;
        width: 36.2% !important;
        height: 6.7% !important;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: 46.5% 53.5% !important;
        gap: 3.2% !important;
        pointer-events: none !important;
    }

    .hero-copy .hero-actions .button {
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        color: transparent !important;
        opacity: 0 !important;
        pointer-events: auto !important;
        cursor: pointer !important;
        transform: none !important;
    }

    .hero-copy .hero-actions .button:focus-visible {
        opacity: 1 !important;
        color: transparent !important;
        outline: 3px solid #9acb55 !important;
        outline-offset: 3px !important;
    }
}

/* Build desktop-newsletter-clean-v3: keep the newsletter at the bottom while
   preventing hero artwork/text from showing through it. Mobile is locked. */
@media (min-width: 701px) {
    .newsletter-section {
        position: relative;
        isolation: isolate;
        background: linear-gradient(135deg, #1c261d 0%, #111712 52%, #0a0e0b 100%) !important;
        box-shadow: inset 0 1px 0 rgba(151, 191, 91, .18), inset 0 -1px 0 rgba(151, 191, 91, .12);
    }

    .newsletter-section::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        pointer-events: none;
        background:
            radial-gradient(circle at 18% 45%, rgba(116, 153, 72, .10), transparent 34%),
            linear-gradient(90deg, rgba(255,255,255,.015), transparent 42%);
    }
}

/* Publishing system public content */
.single-post .post-content{max-width:820px;margin:34px auto 0;font-size:1.08rem;line-height:1.85}.single-post .post-content h2,.single-post .post-content h3{font-family:Georgia,serif;margin-top:2em}.single-post .post-content blockquote{border-left:4px solid #819b4b;margin:2em 0;padding:.5em 0 .5em 1.25em;font-style:italic}.single-post .post-content a{color:#52702c}.post-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:55px auto 0;max-width:650px;align-items:start}.post-photo-grid figure{margin:0;align-self:start}.post-photo-grid img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}.post-photo-grid figcaption{padding:10px 2px;color:#5e665e;font-size:.9rem}@media(max-width:700px){.post-photo-grid{grid-template-columns:1fr;gap:16px}.single-post .post-content{font-size:1rem}}

/* Gallery and lightbox — isolated component */
.pw-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    align-items: start;
}

.pw-gallery__item {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    min-width: 0;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 0;
    color: #fff;
    background: #121914;
    cursor: zoom-in;
    text-align: left;
    font: inherit;
    appearance: none;
    -webkit-appearance: none;
}

.pw-gallery__item img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .28s ease;
}

.pw-gallery__item:hover img,
.pw-gallery__item:focus-visible img { transform: scale(1.035); }

.pw-gallery__item:focus-visible {
    outline: 3px solid var(--green-light);
    outline-offset: 3px;
}

.pw-gallery__caption {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    padding: 2.5rem 1rem 1rem;
    color: #fff;
    background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, .9));
    font-weight: 800;
    line-height: 1.25;
    pointer-events: none;
}

.pw-lightbox[hidden] { display: none !important; }

.pw-lightbox {
    position: fixed !important;
    z-index: 2147483000 !important;
    inset: 0 !important;
    display: grid;
    place-items: center;
    width: 100vw;
    height: 100dvh;
    margin: 0;
    padding: 1rem;
    overflow: hidden;
    isolation: isolate;
}

.pw-lightbox__backdrop {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(0, 0, 0, .94);
    cursor: zoom-out;
    appearance: none;
}

.pw-lightbox__panel {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr) 3.25rem;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: center;
    width: min(96vw, 1320px);
    height: min(94dvh, 920px);
    padding: 3.1rem 1rem 1rem;
    overflow: hidden;
    background: #080d09;
    border: 1px solid rgba(255,255,255,.18);
    box-shadow: 0 24px 80px rgba(0,0,0,.7);
}

.pw-lightbox__image {
    grid-column: 2;
    grid-row: 1;
    display: block;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}

.pw-lightbox__details {
    grid-column: 1 / -1;
    grid-row: 2;
    padding: .85rem .75rem 0;
    text-align: center;
}

.pw-lightbox__caption {
    margin: 0 0 .45rem;
    color: #fff;
    font-weight: 700;
}

.pw-lightbox__story {
    display: inline-block;
    color: var(--green-light);
    font-weight: 800;
    text-decoration: none;
}

.pw-lightbox__story:hover,
.pw-lightbox__story:focus-visible { text-decoration: underline; }

.pw-lightbox__close {
    position: absolute;
    z-index: 3;
    top: .45rem;
    right: .7rem;
    width: 2.4rem;
    height: 2.4rem;
    padding: 0;
    border: 0;
    color: #fff;
    background: transparent;
    font-size: 2.35rem;
    line-height: 1;
    cursor: pointer;
}

.pw-lightbox__nav {
    z-index: 2;
    width: 3rem;
    height: 4.2rem;
    padding: 0;
    border: 1px solid rgba(255,255,255,.25);
    color: #fff;
    background: rgba(0,0,0,.45);
    font-size: 2rem;
    cursor: pointer;
}

.pw-lightbox__nav:hover,
.pw-lightbox__nav:focus-visible { background: rgba(116,153,72,.72); }
.pw-lightbox__nav--previous { grid-column: 1; grid-row: 1; }
.pw-lightbox__nav--next { grid-column: 3; grid-row: 1; }

body.pw-lightbox-open { overflow: hidden !important; }

@media (max-width: 900px) {
    .pw-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .pw-gallery { grid-template-columns: 1fr; }
    .pw-lightbox { padding: .35rem; }
    .pw-lightbox__panel {
        grid-template-columns: 2.5rem minmax(0, 1fr) 2.5rem;
        width: 100%;
        height: 96dvh;
        padding: 3rem .3rem .8rem;
    }
    .pw-lightbox__nav {
        width: 2.25rem;
        height: 3.4rem;
        font-size: 1.5rem;
    }
    .pw-lightbox__details { padding: .75rem .45rem 0; }
}


/* Version 294: PineWake tree-and-wordmark header logo. */
.brand-logo {
    display: block;
    width: 190px;
    max-height: 44px;
    height: auto;
    object-fit: contain;
    object-position: left center;
}
@media (max-width: 700px) {
    .brand-logo {
        width: 156px;
        max-height: 38px;
    }
}


/* Build v13: corrected baked hero artwork. The visible desktop/tablet and mobile
   hero typography remains part of the approved artwork, while the real links stay
   available as transparent click targets. */
@media (min-width: 701px) {
    .hero {
        background-color: #050806;
        background-image: url("../images/desktop-hero-pinewake-v13.jpg?v=13") !important;
        background-position: center center !important;
        background-size: 100% 100% !important;
        background-repeat: no-repeat !important;
    }

    .hero-shade,
    .hero::before,
    .hero::after {
        display: none !important;
    }

    .hero-copy,
    .scroll-prompt {
        opacity: 0 !important;
    }

    .hero-copy {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        z-index: 10 !important;
        pointer-events: none !important;
    }

    .hero-copy .hero-actions {
        position: absolute !important;
        left: 3.25% !important;
        top: 72.3% !important;
        width: 36.2% !important;
        height: 6.7% !important;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: 46.5% 53.5% !important;
        gap: 3.2% !important;
        pointer-events: none !important;
    }

    .hero-copy .hero-actions .button {
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        color: transparent !important;
        opacity: 0 !important;
        pointer-events: auto !important;
        cursor: pointer !important;
        transform: none !important;
    }

    .scroll-prompt {
        display: grid !important;
        pointer-events: auto !important;
    }
}

@media (max-width: 700px) {
    .hero {
        height: 100svh !important;
        min-height: 100svh !important;
        background-image: url("../images/mobile-hero-pinewake-v13.png?v=13") !important;
        background-position: center center !important;
        background-size: 100% 100% !important;
        background-repeat: no-repeat !important;
    }

    .hero-shade,
    .hero::before,
    .hero::after,
    .hero-copy,
    .scroll-prompt,
    .mobile-title-reveal,
    .mobile-tagline-reveal {
        display: none !important;
    }
}

/* Build v14: restore the approved baked button artwork and use separate,
   truly invisible click hotspots. This prevents hidden live buttons from
   dimming or duplicating the baked hero controls. */
@media (min-width: 701px) {
    .hero {
        background-image: url("../images/desktop-hero-pinewake-v16.jpg?v=16") !important;
    }

    .hero-copy {
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    .hero-copy .hero-actions,
    .hero-copy .hero-actions .button {
        display: none !important;
        pointer-events: none !important;
    }

    .hero-link-hotspots {
        position: absolute;
        inset: 0;
        z-index: 12;
        pointer-events: none;
    }

    .hero-hotspot {
        position: absolute;
        display: block;
        background: transparent;
        opacity: 0;
        pointer-events: auto;
    }

    .hero-hotspot-journal {
        left: 3.2%;
        top: 72.2%;
        width: 17.1%;
        height: 6.9%;
    }

    .hero-hotspot-about {
        left: 21.0%;
        top: 72.2%;
        width: 18.2%;
        height: 6.9%;
    }
}

@media (max-width: 700px) {
    .hero {
        background-image: url("../images/mobile-hero-pinewake-v14.png?v=14") !important;
    }

    .hero-link-hotspots {
        display: none !important;
    }
}

/* Build v15: restore the real desktop hero buttons above the baked artwork.
   The v14 background contains dim button artwork, so the live buttons now cover
   those exact areas with fully opaque controls. All other hero content remains hidden. */
@media (min-width: 701px) {
    .hero-copy {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        z-index: 15 !important;
        pointer-events: none !important;
    }

    .hero-copy > :not(.hero-actions) {
        display: none !important;
    }

    .hero-copy .hero-actions {
        position: absolute !important;
        left: 3.25% !important;
        top: 72.25% !important;
        width: 35.7% !important;
        height: 6.65% !important;
        margin: 0 !important;
        display: grid !important;
        grid-template-columns: 46.2% 53.8% !important;
        gap: 3.1% !important;
        pointer-events: none !important;
    }

    .hero-copy .hero-actions .button {
        display: inline-flex !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 .9rem !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        color: #f5f3ed !important;
        font-size: clamp(.62rem, .78vw, .78rem) !important;
        line-height: 1 !important;
        letter-spacing: .06em !important;
        white-space: nowrap !important;
        transform: none !important;
        box-shadow: none !important;
    }

    .hero-copy .hero-actions .button-green {
        background: #66863a !important;
        border: 1px solid #66863a !important;
    }

    .hero-copy .hero-actions .button-outline {
        background: rgba(3, 5, 4, .96) !important;
        border: 1px solid rgba(245, 243, 237, .72) !important;
    }

    .hero-copy .hero-actions .button:hover,
    .hero-copy .hero-actions .button:focus-visible {
        transform: translateY(-2px) !important;
    }

    .hero-copy .hero-actions .button-green:hover,
    .hero-copy .hero-actions .button-green:focus-visible {
        background: #8ba956 !important;
    }

    .hero-copy .hero-actions .button-outline:hover,
    .hero-copy .hero-actions .button-outline:focus-visible {
        background: rgba(28, 38, 29, .98) !important;
    }

    .hero-link-hotspots {
        display: none !important;
    }
}

/* Build v20: clean mobile tagline reconstruction without burned/ghost artwork. */
@media (max-width: 700px) {
    .hero {
        background-image: url("../images/mobile-hero-pinewake-v21.png?v=21") !important;
    }
}


/* Build v22: force the verified mobile hero asset and bypass stale Hostinger/browser caches. */
@media (max-width: 700px) {
    .hero {
        background-image: url("../images/mobile-hero-pinewake-v23.png?v=23") !important;
    }
}


/* Build v24: responsive PineWake Shop working-area page. */

/* Shop */
.shop-page {
    background: #efe8dc;
    color: #20281f;
}

.shop-hero {
    position: relative;
    min-height: 470px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: url('../images/desktop-hero-approved-dark-20260720.jpg') center 53% / cover no-repeat;
    isolation: isolate;
}

.shop-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(5, 10, 7, .22), rgba(5, 10, 7, .58));
}

.shop-hero__content {
    width: min(100% - 32px, 900px);
    margin: 0 auto;
    padding: 70px 20px 62px;
    color: #f4efe4;
    text-align: center;
    text-shadow: 0 3px 16px rgba(0, 0, 0, .55);
}

.shop-tree-mark {
    display: block;
    margin-bottom: 4px;
    color: #eee7da;
    font-size: 52px;
    line-height: 1;
    transform: scaleX(.7);
}

.shop-hero h1 {
    margin: 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(4rem, 10vw, 8.6rem);
    font-weight: 800;
    line-height: .9;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.shop-hero__outfitters {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin: 16px auto 18px;
    color: #c2a369;
    font-family: Impact, 'Arial Narrow', sans-serif;
    font-size: clamp(1.8rem, 4vw, 3rem);
    letter-spacing: .13em;
    line-height: 1;
    text-transform: uppercase;
}

.shop-hero__outfitters span {
    width: min(110px, 16vw);
    height: 2px;
    background: currentColor;
}

.shop-hero__lead {
    margin: 0;
    font-size: clamp(1rem, 2vw, 1.35rem);
    line-height: 1.45;
}

.shop-collection,
.shop-product-area {
    padding: clamp(52px, 7vw, 92px) max(24px, calc((100vw - 1280px) / 2));
    background:
        radial-gradient(circle at 20% 30%, rgba(116, 91, 53, .045) 0 1px, transparent 1.5px) 0 0 / 10px 10px,
        #efe8dc;
}

.shop-section-heading {
    max-width: 820px;
    margin: 0 auto 34px;
    text-align: center;
}

.shop-section-heading h2 {
    margin: 0;
    color: #344034;
    font-family: Impact, 'Arial Narrow', sans-serif;
    font-size: clamp(2.1rem, 4vw, 3.4rem);
    font-weight: 500;
    letter-spacing: .055em;
    line-height: 1;
    text-transform: uppercase;
}

.shop-section-heading p {
    margin: 17px 0 0;
    font-size: clamp(.98rem, 1.7vw, 1.18rem);
    line-height: 1.5;
}

.shop-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 18px auto 0;
    color: #9d7e43;
}

.shop-divider span {
    width: 120px;
    max-width: 25vw;
    height: 1px;
    background: currentColor;
}

.shop-divider b {
    font-size: 16px;
    transform: scaleX(.7);
}

.shop-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.shop-category-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(32, 40, 31, .18);
    border-radius: 7px;
    background: #172219;
    color: #f3ede0;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(21, 28, 21, .12);
    transition: transform .2s ease, box-shadow .2s ease;
}

.shop-category-card:hover,
.shop-category-card:focus-visible {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(21, 28, 21, .18);
}

.shop-category-card__image {
    min-height: 225px;
    background-position: center;
    background-size: cover;
}

.shop-category-card--apparel .shop-category-card__image {
    background-image: linear-gradient(rgba(8, 13, 9, .12), rgba(8, 13, 9, .2)), url('../images/about-card.jpg');
}

.shop-category-card--drinkware .shop-category-card__image {
    background-image: linear-gradient(rgba(8, 13, 9, .2), rgba(8, 13, 9, .32)), url('../images/gallery-campfire.jpg');
}

.shop-category-card--accessories .shop-category-card__image {
    background-image: linear-gradient(rgba(8, 13, 9, .15), rgba(8, 13, 9, .28)), url('../images/gallery-tent.jpg');
}

.shop-category-card--more .shop-category-card__image {
    background-image: linear-gradient(rgba(8, 13, 9, .12), rgba(8, 13, 9, .25)), url('../images/gallery-mountains.jpg');
}

.shop-category-card__body {
    position: relative;
    min-height: 146px;
    padding: 34px 18px 20px;
    background: linear-gradient(180deg, #1d2a20, #172219);
}

.shop-category-card__icon {
    position: absolute;
    top: -28px;
    left: 50%;
    display: grid;
    width: 56px;
    height: 56px;
    place-items: center;
    border: 2px solid #b69558;
    border-radius: 50%;
    background: #172219;
    color: #e7dcc8;
    font-size: 25px;
    transform: translateX(-50%);
}

.shop-category-card__icon--tree {
    color: #b69558;
    transform: translateX(-50%) scaleX(.72);
}

.shop-category-card h3 {
    margin: 0 0 7px;
    color: #f2eadb;
    font-family: Impact, 'Arial Narrow', sans-serif;
    font-size: 1.42rem;
    font-weight: 500;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.shop-category-card p {
    margin: 0;
    color: #eee6d8;
    font-size: .98rem;
    line-height: 1.35;
}

.shop-product-area {
    padding-top: 24px;
    border-top: 1px solid rgba(61, 70, 58, .16);
}

.shop-section-heading--compact {
    margin-bottom: 26px;
}

.shop-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.shop-product-placeholder {
    display: grid;
    min-height: 210px;
    place-items: center;
    border: 1px dashed rgba(54, 65, 53, .35);
    border-radius: 7px;
    background: rgba(255, 255, 255, .22);
    color: #566054;
    text-align: center;
}

.shop-product-placeholder span {
    padding: 16px;
    font-family: Impact, 'Arial Narrow', sans-serif;
    font-size: 1.2rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}

@media (max-width: 980px) {
    .shop-hero { min-height: 410px; }
    .shop-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shop-category-card__image { min-height: 245px; }
}

@media (max-width: 640px) {
    .shop-hero {
        min-height: 330px;
        background-position: 56% center;
    }

    .shop-hero__content {
        padding: 52px 10px 46px;
    }

    .shop-tree-mark { font-size: 34px; }

    .shop-hero h1 {
        font-size: clamp(3rem, 16vw, 4.6rem);
        letter-spacing: .02em;
    }

    .shop-hero__outfitters {
        gap: 10px;
        margin: 11px auto 14px;
        font-size: 1.55rem;
    }

    .shop-hero__outfitters span { width: 52px; }

    .shop-hero__lead {
        max-width: 315px;
        margin-inline: auto;
        font-size: .98rem;
    }

    .shop-hero__lead br,
    .shop-section-heading p br { display: none; }

    .shop-collection,
    .shop-product-area {
        padding-inline: 16px;
    }

    .shop-section-heading { margin-bottom: 25px; }

    .shop-section-heading h2 {
        font-size: 2rem;
        line-height: 1.06;
    }

    .shop-section-heading p {
        margin-top: 13px;
        font-size: .97rem;
    }

    .shop-divider { margin-top: 14px; }
    .shop-divider span { width: 65px; }

    .shop-category-grid,
    .shop-product-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .shop-category-card {
        display: grid;
        grid-template-columns: 42% 58%;
        min-height: 112px;
        text-align: left;
    }

    .shop-category-card__image {
        min-height: 112px;
    }

    .shop-category-card__body {
        display: flex;
        min-height: 112px;
        flex-direction: column;
        justify-content: center;
        padding: 15px 14px 15px 58px;
    }

    .shop-category-card__icon {
        top: 50%;
        left: 29px;
        width: 42px;
        height: 42px;
        font-size: 19px;
        transform: translate(-50%, -50%);
    }

    .shop-category-card__icon--tree {
        transform: translate(-50%, -50%) scaleX(.72);
    }

    .shop-category-card h3 {
        margin-bottom: 4px;
        font-size: 1.12rem;
    }

    .shop-category-card p {
        font-size: .82rem;
        line-height: 1.25;
    }

    .shop-product-placeholder { min-height: 135px; }
}

/* Build v26: compact Shop landing view so merchandise categories are visible immediately. */
.shop-hero {
    min-height: 255px;
}

.shop-hero__content {
    padding: 34px 20px 30px;
}

.shop-tree-mark {
    font-size: 34px;
}

.shop-hero h1 {
    font-size: clamp(3.25rem, 7vw, 6rem);
}

.shop-hero__outfitters {
    margin: 10px auto 12px;
    font-size: clamp(1.45rem, 3vw, 2.25rem);
}

.shop-hero__lead {
    font-size: clamp(.96rem, 1.5vw, 1.12rem);
}

.shop-collection {
    padding-top: 28px;
    padding-bottom: 42px;
}

.shop-section-heading {
    margin-bottom: 22px;
}

.shop-section-heading h2 {
    font-size: clamp(1.8rem, 3vw, 2.65rem);
}

.shop-section-heading p {
    margin-top: 11px;
    font-size: clamp(.92rem, 1.35vw, 1.04rem);
}

.shop-divider {
    margin-top: 11px;
}

.shop-category-card__image {
    min-height: 155px;
}

.shop-category-card__body {
    min-height: 116px;
    padding: 31px 14px 15px;
}

@media (max-width: 980px) {
    .shop-hero {
        min-height: 225px;
    }

    .shop-category-card__image {
        min-height: 165px;
    }
}

@media (max-width: 640px) {
    .shop-hero {
        min-height: 185px;
        background-position: 56% center;
    }

    .shop-hero__content {
        padding: 22px 10px 20px;
    }

    .shop-tree-mark {
        margin-bottom: 2px;
        font-size: 24px;
    }

    .shop-hero h1 {
        font-size: clamp(2.55rem, 13vw, 3.55rem);
    }

    .shop-hero__outfitters {
        margin: 7px auto 9px;
        font-size: 1.2rem;
    }

    .shop-hero__lead {
        max-width: 300px;
        font-size: .88rem;
        line-height: 1.35;
    }

    .shop-collection {
        padding: 18px 14px 28px;
    }

    .shop-section-heading {
        margin-bottom: 14px;
    }

    .shop-section-heading h2 {
        font-size: 1.55rem;
    }

    .shop-section-heading p {
        margin-top: 7px;
        font-size: .86rem;
        line-height: 1.35;
    }

    .shop-divider {
        gap: 9px;
        margin-top: 8px;
    }

    .shop-divider span {
        width: 72px;
    }

    .shop-category-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .shop-category-card {
        position: relative;
        display: grid;
        min-height: 72px;
        grid-template-columns: 1fr;
        text-align: left;
    }

    .shop-category-card__image {
        position: absolute;
        inset: 0;
        min-height: 0;
        background-position: center;
    }

    .shop-category-card__image::after {
        position: absolute;
        inset: 0;
        content: '';
        background: linear-gradient(90deg, rgba(13, 23, 16, .92) 0%, rgba(13, 23, 16, .78) 58%, rgba(13, 23, 16, .48) 100%);
    }

    .shop-category-card__body {
        position: relative;
        z-index: 1;
        display: grid;
        min-height: 72px;
        grid-template-columns: 46px 1fr;
        grid-template-rows: auto auto;
        align-content: center;
        padding: 10px 13px;
        background: transparent;
    }

    .shop-category-card__icon {
        position: static;
        grid-row: 1 / 3;
        align-self: center;
        width: 38px;
        height: 38px;
        font-size: 18px;
        transform: none;
    }

    .shop-category-card__icon--tree {
        transform: scaleX(.72);
    }

    .shop-category-card h3 {
        margin: 0;
        font-size: 1.08rem;
        line-height: 1.05;
    }

    .shop-category-card p {
        margin-top: 3px;
        font-size: .78rem;
        line-height: 1.15;
    }

    .shop-category-card p br {
        display: none;
    }
}

/* Build v27: above-the-fold Shop storefront matched to approved mockup. */
.shop-hero {
    min-height: 205px;
    background-image: url('../images/shop/shop-hero-clean-v29.jpg?v=29');
    background-position: center 52%;
}

.shop-hero__overlay {
    background: linear-gradient(180deg, rgba(5, 10, 7, .18), rgba(5, 10, 7, .52));
}

.shop-hero__content {
    padding: 20px 20px 18px;
}

.shop-tree-mark {
    margin-bottom: 0;
    font-size: 25px;
}

.shop-hero h1 {
    font-size: clamp(3rem, 5.4vw, 5.1rem);
    line-height: .86;
}

.shop-hero__outfitters {
    gap: 13px;
    margin: 8px auto 9px;
    font-size: clamp(1.3rem, 2.4vw, 2rem);
}

.shop-hero__outfitters span {
    width: min(85px, 12vw);
}

.shop-hero__lead {
    font-size: clamp(.9rem, 1.25vw, 1.02rem);
    line-height: 1.3;
}

.shop-collection {
    padding-top: 18px;
    padding-bottom: 32px;
}

.shop-section-heading {
    margin-bottom: 15px;
}

.shop-section-heading h2 {
    font-size: clamp(1.7rem, 2.6vw, 2.35rem);
}

.shop-divider {
    margin-top: 8px;
}

.shop-section-heading p {
    margin-top: 8px;
    font-size: clamp(.86rem, 1.15vw, .98rem);
    line-height: 1.35;
}

.shop-category-grid {
    gap: 13px;
}

.shop-category-card__image {
    min-height: 142px;
}

.shop-category-card--apparel .shop-category-card__image {
    background-image: linear-gradient(rgba(8, 13, 9, .04), rgba(8, 13, 9, .10)), url('../images/shop/shop-apparel.jpg');
}

.shop-category-card--drinkware .shop-category-card__image {
    background-image: linear-gradient(rgba(8, 13, 9, .04), rgba(8, 13, 9, .10)), url('../images/shop/shop-drinkware.jpg');
}

.shop-category-card--accessories .shop-category-card__image {
    background-image: linear-gradient(rgba(8, 13, 9, .04), rgba(8, 13, 9, .10)), url('../images/shop/shop-accessories.jpg');
}

.shop-category-card--more .shop-category-card__image {
    background-image: linear-gradient(rgba(8, 13, 9, .04), rgba(8, 13, 9, .12)), url('../images/shop/shop-more.jpg');
}

.shop-category-card__body {
    min-height: 102px;
    padding: 28px 12px 12px;
}

.shop-category-card__icon {
    top: -24px;
    width: 48px;
    height: 48px;
    font-size: 21px;
}

.shop-category-card h3 {
    margin-bottom: 4px;
    font-size: 1.2rem;
}

.shop-category-card p {
    font-size: .84rem;
    line-height: 1.25;
}

@media (max-width: 980px) {
    .shop-hero {
        min-height: 190px;
    }

    .shop-category-card__image {
        min-height: 150px;
    }
}

@media (max-width: 640px) {
    .shop-hero {
        min-height: 165px;
        background-position: center 50%;
    }

    .shop-hero__content {
        padding: 17px 10px 15px;
    }

    .shop-tree-mark {
        font-size: 20px;
    }

    .shop-hero h1 {
        font-size: clamp(2.35rem, 11vw, 3.15rem);
    }

    .shop-hero__outfitters {
        margin: 5px auto 7px;
        font-size: 1.05rem;
    }

    .shop-hero__lead {
        max-width: 285px;
        font-size: .78rem;
        line-height: 1.25;
    }

    .shop-collection {
        padding: 14px 12px 24px;
    }

    .shop-section-heading {
        margin-bottom: 11px;
    }

    .shop-section-heading h2 {
        font-size: 1.38rem;
    }

    .shop-section-heading p {
        margin-top: 5px;
        font-size: .78rem;
        line-height: 1.28;
    }

    .shop-divider {
        margin-top: 6px;
    }

    .shop-category-grid {
        gap: 7px;
    }

    .shop-category-card {
        min-height: 66px;
    }

    .shop-category-card__body {
        min-height: 66px;
        grid-template-columns: 42px 1fr;
        padding: 8px 11px;
    }

    .shop-category-card__icon {
        width: 34px;
        height: 34px;
        font-size: 16px;
    }

    .shop-category-card h3 {
        font-size: 1rem;
    }

    .shop-category-card p {
        font-size: .73rem;
    }
}

/* Build v30: keep Shop wordmark fully visible below fixed header. */
.shop-hero {
    min-height: 220px;
}

.shop-hero__content {
    padding: 34px 20px 18px;
}

.shop-hero h1 {
    font-size: clamp(2.8rem, 4.4vw, 4.25rem);
    line-height: .92;
}

@media (max-width: 980px) {
    .shop-hero {
        min-height: 205px;
    }

    .shop-hero__content {
        padding-top: 30px;
    }
}

@media (max-width: 640px) {
    .shop-hero {
        min-height: 175px;
    }

    .shop-hero__content {
        padding: 24px 10px 15px;
    }

    .shop-hero h1 {
        font-size: clamp(2.15rem, 10vw, 2.85rem);
        line-height: .94;
    }
}

/* Build v31: mobile-only Shop viewport alignment.
   Keep the full Shop wordmark below the fixed header and position the divider
   after More Gear at the bottom edge of the initial phone viewport. */
@media (max-width: 640px) {
    .shop-page {
        padding-top: 58px;
    }

    .shop-hero {
        min-height: 148px;
        background-position: center 50%;
    }

    .shop-hero__content {
        padding: 12px 10px 10px;
    }

    .shop-tree-mark {
        font-size: 18px;
        line-height: 1;
    }

    .shop-hero h1 {
        font-size: clamp(2.05rem, 9.5vw, 2.7rem);
        line-height: .94;
    }

    .shop-hero__outfitters {
        margin: 3px auto 5px;
    }

    .shop-hero__lead {
        line-height: 1.2;
    }

    .shop-collection {
        padding: 10px 12px 12px;
    }

    .shop-section-heading {
        margin-bottom: 8px;
    }

    .shop-section-heading h2 {
        font-size: 1.32rem;
    }

    .shop-divider {
        margin-top: 4px;
    }

    .shop-section-heading p {
        margin-top: 4px;
        line-height: 1.22;
    }

    .shop-category-grid {
        gap: 6px;
    }

    .shop-category-card,
    .shop-category-card__body {
        min-height: 62px;
    }

    .shop-category-card__body {
        padding-block: 6px;
    }
}

/* Build v32: responsive Shop category listing pages. Desktop Shop landing remains unchanged. */
.shop-category-page {
    min-height: 100vh;
    background: #efe8dc;
    color: #20281f;
}

.shop-category-hero {
    --category-hero: none;
    position: relative;
    min-height: 300px;
    display: grid;
    align-items: end;
    overflow: hidden;
    background-image: var(--category-hero);
    background-position: center;
    background-size: cover;
    isolation: isolate;
}

.shop-category-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(4, 8, 5, .28), rgba(4, 8, 5, .82));
}

.shop-category-hero__content {
    width: min(100% - 40px, 1240px);
    margin: 0 auto;
    padding: 72px 0 42px;
    color: #f3ede0;
}

.shop-back-link {
    display: inline-block;
    margin-bottom: 18px;
    color: #d4b875;
    font-weight: 700;
    text-decoration: none;
}

.shop-back-link:hover,
.shop-back-link:focus-visible {
    text-decoration: underline;
}

.shop-category-hero h1,
.shop-listing-header h2 {
    margin: 0;
    color: inherit;
    font-family: Impact, 'Arial Narrow', sans-serif;
    font-weight: 500;
    letter-spacing: .055em;
    line-height: 1;
    text-transform: uppercase;
}

.shop-category-hero h1 {
    font-size: clamp(3rem, 7vw, 6rem);
}

.shop-category-hero__content > p:last-child {
    max-width: 700px;
    margin: 14px 0 0;
    font-size: 1.08rem;
    line-height: 1.5;
}

.shop-listing-section {
    padding: 46px max(24px, calc((100vw - 1280px) / 2)) 72px;
    background:
        radial-gradient(circle at 20% 30%, rgba(116, 91, 53, .045) 0 1px, transparent 1.5px) 0 0 / 10px 10px,
        #efe8dc;
}

.shop-listing-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 26px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(52, 64, 52, .22);
}

.shop-listing-header h2 {
    color: #344034;
    font-size: clamp(2rem, 4vw, 3.25rem);
}

.shop-listing-count {
    margin: 0 0 4px;
    color: #687066;
    font-weight: 700;
    text-transform: uppercase;
}

.shop-listing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.shop-product-card {
    overflow: hidden;
    border: 1px solid rgba(32, 40, 31, .16);
    border-radius: 8px;
    background: rgba(255, 255, 255, .5);
    box-shadow: 0 8px 22px rgba(21, 28, 21, .1);
}

.shop-product-card__image-wrap {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #1a241c;
}

.shop-product-card__image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}

.shop-product-card:hover .shop-product-card__image-wrap img {
    transform: scale(1.035);
}

.shop-product-card__content {
    padding: 20px;
}

.shop-product-card__type {
    margin: 0 0 7px;
    color: #7a6a46;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.shop-product-card h3 {
    margin: 0;
    color: #263329;
    font-size: 1.3rem;
    line-height: 1.2;
}

.shop-product-card__status {
    min-height: 48px;
    margin: 10px 0 16px;
    color: #626a60;
    font-size: .92rem;
    line-height: 1.4;
}

.shop-product-card__button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 9px 16px;
    border: 1px solid #344034;
    border-radius: 4px;
    color: #344034;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

@media (max-width: 900px) {
    .shop-listing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .shop-category-hero {
        min-height: 235px;
    }

    .shop-category-hero__content {
        width: min(100% - 32px, 1240px);
        padding: 74px 0 28px;
    }

    .shop-back-link {
        margin-bottom: 12px;
        font-size: .92rem;
    }

    .shop-category-hero h1 {
        font-size: 2.75rem;
    }

    .shop-category-hero__content > p:last-child {
        margin-top: 10px;
        font-size: .95rem;
    }

    .shop-listing-section {
        padding: 30px 16px 48px;
    }

    .shop-listing-header {
        align-items: flex-start;
        margin-bottom: 18px;
    }

    .shop-listing-header h2 {
        font-size: 2rem;
    }

    .shop-listing-count {
        margin-top: 4px;
        font-size: .78rem;
        white-space: nowrap;
    }

    .shop-listing-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .shop-product-card {
        display: grid;
        grid-template-columns: 42% 58%;
        min-height: 152px;
    }

    .shop-product-card__image-wrap {
        aspect-ratio: auto;
        min-height: 152px;
    }

    .shop-product-card__content {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 15px;
    }

    .shop-product-card__type {
        margin-bottom: 5px;
        font-size: .66rem;
    }

    .shop-product-card h3 {
        font-size: 1.05rem;
    }

    .shop-product-card__status {
        min-height: 0;
        margin: 7px 0 11px;
        font-size: .78rem;
    }

    .shop-product-card__button {
        min-height: 34px;
        align-self: flex-start;
        padding: 6px 10px;
        font-size: .72rem;
    }
}

/* v34: dynamic featured products and product detail page */
.shop-product-empty {
    padding: 42px 20px;
    border: 1px dashed rgba(54, 65, 53, .35);
    border-radius: 7px;
    background: rgba(255, 255, 255, .22);
    color: #566054;
    text-align: center;
    font-weight: 700;
}
.shop-product-card__price {
    margin: 9px 0 0;
    color: #263329;
    font-size: 1.05rem;
    font-weight: 800;
}
.product-detail-page {
    min-height: 70vh;
    padding: 150px 5vw 80px;
    background: #f3eee3;
}
.product-detail-shell {
    width: min(1120px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    gap: 52px;
    align-items: center;
}
.product-detail-image {
    overflow: hidden;
    border-radius: 10px;
    background: #1a241c;
    box-shadow: 0 14px 34px rgba(21, 28, 21, .16);
}
.product-detail-image img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.product-detail-content h1 {
    margin: 8px 0 12px;
    color: #263329;
    font-family: Impact, 'Arial Narrow', sans-serif;
    font-size: clamp(2.3rem, 5vw, 4.6rem);
    line-height: .98;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.product-back-link { color: #4f5d4d; }
.product-detail-price {
    margin: 0 0 18px;
    color: #7a6a46;
    font-size: 1.45rem;
    font-weight: 800;
}
.product-detail-description {
    max-width: 620px;
    color: #515b50;
    font-size: 1.05rem;
    line-height: 1.7;
}
.product-buy-button {
    display: inline-flex;
    min-height: 48px;
    margin-top: 14px;
    align-items: center;
    justify-content: center;
    padding: 12px 22px;
    border-radius: 4px;
    background: #344034;
    color: #fff;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.product-link-pending {
    margin-top: 20px;
    padding: 16px 18px;
    border-left: 4px solid #9c844e;
    background: rgba(255,255,255,.48);
    color: #566054;
    line-height: 1.5;
}
.product-not-found {
    width: min(760px, 100%);
    margin: 0 auto;
    text-align: center;
}
@media (max-width: 760px) {
    .product-detail-page { padding: 115px 18px 54px; }
    .product-detail-shell { grid-template-columns: 1fr; gap: 28px; }
    .product-detail-content h1 { font-size: 2.45rem; }
}

/* v38 PineWake storefront cart and checkout */
.cart-link{display:inline-flex;align-items:center;gap:.45rem;color:#f3efe4;text-decoration:none;font-weight:800;white-space:nowrap}.cart-link span{display:grid;place-items:center;min-width:1.6rem;height:1.6rem;padding:0 .35rem;border-radius:999px;background:#9fbd62;color:#071008;font-size:.78rem}.add-to-cart-form{display:grid;gap:1rem;margin-top:1.5rem}.add-to-cart-form label,.checkout-form label{display:grid;gap:.45rem;font-weight:800;color:#2f443a}.add-to-cart-form select,.add-to-cart-form input,.checkout-form input{width:100%;padding:.9rem;border:1px solid rgba(41,61,50,.25);background:#fffdf7;font:inherit}.quantity-control{display:flex;max-width:11rem}.quantity-control button{width:3rem;border:1px solid rgba(41,61,50,.25);background:#e8e1d1;font-size:1.25rem}.quantity-control input{text-align:center;border-left:0;border-right:0}.cart-feedback{min-height:1.4rem;color:#55743d;font-weight:800}.cart-feedback a{color:inherit;text-decoration:underline;text-underline-offset:.18em}.cart-feedback a:hover,.cart-feedback a:focus-visible{text-decoration-thickness:2px}.product-feature-list{display:grid;gap:.5rem;padding-left:1.25rem;color:#42574d}.cart-page,.checkout-page{min-height:75vh;background:#eee7d8;padding:8rem 1.5rem 5rem}.cart-shell,.checkout-shell{max-width:1180px;margin:auto}.cart-return-link{display:inline-flex;align-items:center;margin:.35rem 0 .55rem;color:#2f443a;font-weight:800;text-decoration:underline;text-underline-offset:.2em}.cart-return-link:hover,.cart-return-link:focus-visible{color:#55743d;text-decoration-thickness:2px}.cart-items{display:grid;gap:1rem;margin:2rem 0}.cart-item{display:grid;grid-template-columns:110px 1fr 90px auto;gap:1.25rem;align-items:center;padding:1rem;background:#faf7ef;border:1px solid rgba(41,61,50,.17)}.cart-item-image{height:95px;background:#e4ddcd}.cart-item-image img{width:100%;height:100%;object-fit:cover}.cart-item h2{margin:0 0 .35rem;font-size:1.25rem}.cart-item p{margin:.2rem 0;color:#607067}.cart-item label{display:grid;gap:.25rem;font-weight:700}.cart-item input{width:70px;padding:.6rem}.cart-item button{border:0;background:none;text-decoration:underline;cursor:pointer}.cart-summary{max-width:480px;margin-left:auto;padding:1.5rem;background:#15251c;color:#fff}.cart-summary>div,.checkout-order-summary>div{display:flex;justify-content:space-between;font-size:1.25rem}.cart-summary .product-buy-button{display:block;text-align:center;margin-top:1rem}.cart-empty{text-align:center;padding:4rem 1rem}.checkout-shell{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:2rem}.checkout-form{display:grid;gap:1rem;margin-top:1.5rem}.checkout-columns{display:grid;grid-template-columns:1fr 100px 130px;gap:1rem}.checkout-order-summary{align-self:start;padding:1.5rem;background:#faf7ef;border:1px solid rgba(41,61,50,.17)}.checkout-order-summary p{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid rgba(41,61,50,.12);padding:.75rem 0}.checkout-warning{padding:1rem;border-left:5px solid #b49550;background:#faf7ef}.checkout-success{max-width:750px;margin:auto;text-align:center;padding:4rem 2rem;background:#faf7ef}.notice.error{padding:1rem;background:#f8dddd;color:#722}.product-detail-image img{max-height:650px;object-fit:contain}
@media(max-width:800px){.cart-link{margin-left:auto}.cart-page,.checkout-page{padding:7rem 1rem 3rem}.cart-item{grid-template-columns:85px 1fr}.cart-item label,.cart-item button{grid-column:2}.checkout-shell{grid-template-columns:1fr}.checkout-columns{grid-template-columns:1fr}.checkout-order-summary{grid-row:1}.product-detail-shell{gap:1.5rem}}

/* v40 cart and checkout readability */
.cart-page,
.checkout-page{
  color:#2f443a;
}
.cart-page h1,
.cart-page h2,
.cart-page p,
.cart-page label,
.checkout-page h1,
.checkout-page h2,
.checkout-page p,
.checkout-page label,
.checkout-order-summary,
.checkout-order-summary span,
.checkout-order-summary strong{
  color:#2f443a;
}
.cart-page .section-kicker,
.checkout-page .section-kicker{
  color:#55743d;
}
.cart-summary,
.cart-summary p,
.cart-summary span,
.cart-summary strong{
  color:#fff;
}
.cart-summary .product-buy-button{
  color:#fff;
}
.cart-item button{
  color:#15251c;
}
.checkout-warning,
.checkout-warning strong{
  color:#2f443a;
}
.checkout-page .notice.error{
  color:#722;
}


/* v41 force readable storefront text after cache refresh */
.cart-page .cart-shell > div:first-child h1,
.cart-page .cart-shell > div:first-child > p:not(.section-kicker),
.cart-page .cart-item h2,
.cart-page .cart-item p,
.cart-page .cart-item strong,
.cart-page .cart-item label,
.cart-page .cart-item button,
.checkout-page .checkout-shell h1,
.checkout-page .checkout-shell h2,
.checkout-page .checkout-form label,
.checkout-page .checkout-warning,
.checkout-page .checkout-warning strong,
.checkout-page .checkout-order-summary,
.checkout-page .checkout-order-summary p,
.checkout-page .checkout-order-summary span,
.checkout-page .checkout-order-summary strong {
    color: #243b31 !important;
    opacity: 1 !important;
}
.cart-page .section-kicker,
.checkout-page .section-kicker {
    color: #55743d !important;
    opacity: 1 !important;
}
.cart-page .cart-summary,
.cart-page .cart-summary p,
.cart-page .cart-summary span,
.cart-page .cart-summary strong,
.cart-page .cart-summary .product-buy-button {
    color: #ffffff !important;
    opacity: 1 !important;
}


/* v45 settings-driven social links and mobile social menu */
.mobile-social-toggle,
.mobile-social-links { display: none; }
@media (max-width: 1050px) {
    .mobile-social-toggle {
        position: relative;
        display: flex;
        min-height: 48px;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 0;
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.06);
        background: transparent;
        color: inherit;
        font: inherit;
        font-size: .72rem;
        font-weight: 800;
        letter-spacing: .07em;
        text-align: left;
        text-transform: uppercase;
        cursor: pointer;
    }
    .mobile-social-toggle::before {
        content: "+";
        position: absolute;
        right: .2rem;
        font-size: 1.15rem;
        font-weight: 400;
    }
    .mobile-social-toggle[aria-expanded="true"]::before { content: "−"; }
    .mobile-social-links {
        display: grid;
        padding: .15rem 0 .6rem 1rem;
        border-bottom: 1px solid rgba(255,255,255,.08);
    }
    .mobile-social-links[hidden] { display: none; }
    .primary-nav .mobile-social-links a {
        min-height: 40px;
        color: #cbd6ca;
        font-size: .68rem;
    }
    .mobile-social-empty {
        display: block;
        padding: .8rem 0;
        color: #9ba79c;
        font-size: .72rem;
    }
}

.site-announcement{position:relative;z-index:1001;display:block;width:100%;background:#9fbd62;color:#10170f;text-align:center;padding:9px 16px;font-size:13px;font-weight:900;line-height:1.4;letter-spacing:.04em}.site-announcement a,.site-announcement span{display:inline-block;color:inherit}.site-announcement a{text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* v47 completed customer storefront */
.shop-hero__cta{display:inline-flex;margin-top:1.25rem;padding:.8rem 1.2rem;border:1px solid rgba(255,255,255,.72);color:#fff;text-decoration:none;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.shop-category-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}.shop-category-card.is-coming-soon{cursor:default;opacity:.88}.coming-soon-badge{display:inline-block;margin-bottom:.55rem;padding:.22rem .55rem;border-radius:999px;background:#9fbd62;color:#142017;font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.storefront-tools{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,240px);gap:1rem;margin:0 0 1.25rem}.storefront-tools label{display:grid;gap:.4rem;color:#344034;font-weight:800}.storefront-tools input,.storefront-tools select{width:100%;padding:.85rem 1rem;border:1px solid rgba(41,61,50,.25);background:#fffdf7;font:inherit}.apparel-filter-nav{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 1.5rem}.apparel-filter-nav button,.storefront-empty button{padding:.65rem .9rem;border:1px solid rgba(41,61,50,.25);background:#f8f4ea;color:#344034;font-weight:800;cursor:pointer}.apparel-filter-nav button.is-active{background:#344034;color:#fff}.storefront-empty{grid-column:1/-1;padding:3.5rem 1.25rem;border:1px dashed rgba(54,65,53,.35);background:rgba(255,255,255,.25);text-align:center}.storefront-empty h3{margin:0 0 .5rem;color:#263329;font-size:1.4rem}.storefront-empty p{margin:0 0 1rem;color:#566054}.shop-product-card[hidden]{display:none!important}.related-products{width:min(1180px,90vw);margin:5rem auto 0}.product-buy-button:disabled{opacity:.58;cursor:not-allowed}.shop-product-card__image-wrap{display:block}.shop-product-card__image-wrap img{transition:transform .35s ease}.shop-product-card__image-wrap:hover img{transform:scale(1.025)}
@media(max-width:1100px){.shop-category-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.shop-category-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}.storefront-tools{grid-template-columns:1fr}.related-products{width:calc(100% - 36px);margin-top:3.25rem}.apparel-filter-nav{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.35rem}.apparel-filter-nav button{white-space:nowrap}}
@media(max-width:480px){.shop-category-grid--four{grid-template-columns:1fr}}

/* v48 refined category controls and reliable server-side apparel filtering */
.shop-category-page--v48{background:#f3eee3;color:#202b24;min-height:100vh;background-image:radial-gradient(rgba(65,83,67,.055) 1px,transparent 1px);background-size:18px 18px}
.shop-category-intro{border-bottom:1px solid rgba(45,61,50,.16);background:linear-gradient(115deg,rgba(255,253,247,.9),rgba(244,239,228,.72));padding:4.2rem 0 2.4rem}
.shop-category-intro__inner{width:min(1420px,94vw);margin:0 auto}
.shop-back-link--dark{display:inline-block;margin-bottom:1.5rem;color:#526b43;text-decoration:none;font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.shop-category-intro .section-kicker{margin:0 0 .45rem;color:#557b37;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.shop-category-intro h1{margin:0;color:#29362e;font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(4rem,8vw,7.2rem);font-weight:900;letter-spacing:.015em;line-height:.88;text-transform:uppercase}
.shop-category-intro__description{max-width:680px;margin:1rem 0 0;color:#465249;font-size:1.05rem;line-height:1.6}
.shop-listing-section--refined{width:min(1420px,94vw);margin:0 auto;padding:3rem 0 5rem}
.storefront-control-panel{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,330px) auto;gap:1rem;align-items:end;padding:1.1rem 1.2rem;border:1px solid rgba(48,64,52,.15);border-radius:8px 8px 0 0;background:rgba(255,255,255,.48);box-shadow:0 12px 35px rgba(34,47,38,.04)}
.storefront-search--refined{position:relative;display:block}
.storefront-search__icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#536459;font-size:1.5rem;line-height:1;pointer-events:none}
.storefront-search--refined input{width:100%;height:48px;padding:0 1rem 0 3rem;border:1px solid rgba(43,59,48,.2);border-radius:6px;background:#fbfaf6;color:#243029;font:inherit}
.storefront-sort{display:flex;align-items:center;gap:.8rem;color:#5c655f;white-space:nowrap}
.storefront-sort span{font-weight:700}
.storefront-sort select{width:100%;height:48px;padding:0 2.5rem 0 1rem;border:1px solid rgba(43,59,48,.2);border-radius:6px;background:#fbfaf6;color:#243029;font:inherit;cursor:pointer}
.storefront-search-submit{height:48px;padding:0 1.25rem;border:0;border-radius:6px;background:#334b37;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.storefront-search-submit:hover{background:#263c2b}
.apparel-filter-nav--refined{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:.8rem;margin:0;padding:1rem 1.2rem 1.2rem;border:1px solid rgba(48,64,52,.15);border-top:0;border-radius:0 0 8px 8px;background:rgba(255,255,255,.48)}
.apparel-filter-nav--refined a{display:flex;min-height:48px;align-items:center;justify-content:center;gap:.65rem;padding:.65rem .8rem;border:1px solid rgba(43,59,48,.3);border-radius:6px;background:#f8f5ed;color:#26332b;text-decoration:none;font-weight:750;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.apparel-filter-nav--refined a:hover{border-color:#49664b;background:#fff;transform:translateY(-1px)}
.apparel-filter-nav--refined a.is-active{border-color:#324b37;background:#324b37;color:#fff;box-shadow:0 6px 18px rgba(35,55,41,.18)}
.apparel-filter-nav__icon{display:grid;width:25px;height:25px;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.72rem;font-weight:900}
.shop-results-bar{display:flex;align-items:center;justify-content:space-between;margin:1.5rem 0 1rem;color:#59645d}
.shop-results-bar p{margin:0}.shop-results-bar strong{color:#26332b}.shop-results-bar a{color:#3e623e;font-weight:800;text-underline-offset:3px}
.shop-listing-grid--refined{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.shop-product-card--refined{overflow:hidden;border:1px solid rgba(46,62,50,.14);border-radius:9px;background:#fbfaf5;box-shadow:0 10px 25px rgba(34,47,38,.055);transition:transform .22s ease,box-shadow .22s ease}
.shop-product-card--refined:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(34,47,38,.1)}
.shop-product-card--refined .shop-product-card__image-wrap{position:relative;aspect-ratio:1/1;overflow:hidden;background:#ddd7ca}
.shop-product-card--refined .shop-product-card__image-wrap img{width:100%;height:100%;object-fit:cover}
.shop-product-badge{position:absolute;z-index:2;top:.9rem;left:.9rem;padding:.32rem .55rem;border-radius:3px;background:#486b3c;color:#fff;font-size:.68rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.shop-product-card--refined .shop-product-card__content{padding:1.05rem 1rem 1.15rem}
.shop-product-card--refined h2{margin:0 0 .35rem;color:#222b25;font-size:1.04rem;line-height:1.3}
.shop-product-card--refined .shop-product-card__type{margin:0 0 .55rem;color:#69726c;font-size:.86rem;text-transform:none;letter-spacing:0}
.shop-product-card--refined .shop-product-card__price{margin:.2rem 0 .8rem;color:#202a23;font-size:1.12rem;font-weight:900}
.shop-product-card--refined .shop-product-card__status{display:-webkit-box;overflow:hidden;margin:.45rem 0 .85rem;color:#69726c;font-size:.86rem;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.shop-product-card--refined .shop-product-card__button{display:inline-flex;padding:.62rem .85rem;border:1px solid #354e39;border-radius:4px;background:transparent;color:#2d4932;text-decoration:none;font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.shop-product-card--refined .shop-product-card__button:hover{background:#354e39;color:#fff}
.storefront-empty--refined{padding:4rem 1.5rem;border:1px dashed rgba(46,62,50,.28);border-radius:8px;background:rgba(255,255,255,.48);text-align:center}
.storefront-empty--refined h2{margin:0 0 .6rem;color:#28372d}.storefront-empty--refined p{margin:0 0 1.1rem;color:#657068}.storefront-empty--refined a{display:inline-flex;padding:.72rem 1rem;border-radius:5px;background:#334b37;color:#fff;text-decoration:none;font-weight:800}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1150px){.apparel-filter-nav--refined{grid-template-columns:repeat(4,minmax(140px,1fr))}.shop-listing-grid--refined{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){.shop-category-intro{padding:3rem 0 1.8rem}.shop-listing-section--refined{width:calc(100% - 28px);padding-top:1.5rem}.storefront-control-panel{grid-template-columns:1fr}.storefront-sort{justify-content:space-between}.storefront-search-submit{width:100%}.apparel-filter-nav--refined{display:flex;overflow-x:auto;justify-content:flex-start;padding-bottom:1rem}.apparel-filter-nav--refined a{min-width:150px;white-space:nowrap}.shop-listing-grid--refined{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.shop-category-intro h1{font-size:3.8rem}.shop-listing-grid--refined{grid-template-columns:1fr}.shop-results-bar{align-items:flex-start;gap:.75rem;flex-direction:column}.storefront-sort{align-items:flex-start;flex-direction:column}.storefront-sort select{width:100%}}

/* Build v49: mobile-only Shop landing category text layout fix. */
@media (max-width: 640px) {
    .shop-page .shop-category-card {
        position: relative;
        display: block;
        min-height: 118px;
        overflow: hidden;
        text-align: left;
    }

    .shop-page .shop-category-card__image {
        position: absolute;
        inset: 0;
        width: 100%;
        min-height: 0;
        height: 100%;
        background-position: center;
        background-size: cover;
    }

    .shop-page .shop-category-card__image::after {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, rgba(15, 29, 20, .93) 0%, rgba(15, 29, 20, .76) 58%, rgba(15, 29, 20, .42) 100%);
    }

    .shop-page .shop-category-card__body {
        position: relative;
        z-index: 1;
        display: flex;
        min-height: 118px;
        padding: 18px 20px;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        background: transparent;
    }

    .shop-page .shop-category-card h3 {
        display: block;
        width: 100%;
        margin: 0 0 8px;
        font-size: 1.42rem;
        line-height: 1.05;
        white-space: normal;
    }

    .shop-page .shop-category-card p {
        display: block;
        width: min(100%, 310px);
        margin: 0;
        font-size: .9rem;
        line-height: 1.35;
        white-space: normal;
    }

    .shop-page .shop-category-card .coming-soon-badge {
        position: static;
        display: inline-flex;
        margin: 0 0 9px;
        padding: .35rem .65rem;
        align-items: center;
        line-height: 1;
    }
}

/* v57: featured products carousel with dedicated arrow columns */
.home-shop-carousel {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem;
    align-items: center;
    column-gap: .75rem;
    width: 100%;
    min-width: 0;
}

.home-shop-carousel__viewport {
    grid-column: 2;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.home-shop-carousel__viewport::-webkit-scrollbar {
    display: none;
}

.home-shop-carousel .home-shop-grid {
    display: flex;
    flex-wrap: nowrap;
    gap: .85rem;
    width: 100%;
}

.home-shop-carousel .home-shop-card {
    flex: 0 0 calc((100% - 3.4rem) / 5);
    min-width: 0;
    scroll-snap-align: start;
}

.home-shop-carousel .home-shop-card__image img {
    aspect-ratio: 1 / 1;
}

.home-shop-carousel__arrow {
    position: static;
    z-index: 1;
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    margin: 0;
    padding: 0;
    place-items: center;
    align-self: center;
    justify-self: center;
    border: 1px solid rgba(255,255,255,.62);
    border-radius: 999px;
    background: rgba(20,29,22,.94);
    color: #fff;
    font-size: 1.9rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 5px 14px rgba(10,15,11,.22);
    transform: none;
}

.home-shop-carousel__arrow--previous {
    grid-column: 1;
}

.home-shop-carousel__arrow--next {
    grid-column: 3;
}

.home-shop-carousel__arrow:hover,
.home-shop-carousel__arrow:focus-visible {
    background: #50653d;
}

.home-shop-carousel__arrow[hidden] {
    display: none;
}

.home-shop-carousel--static {
    grid-template-columns: minmax(0, 1fr);
}

.home-shop-carousel--static .home-shop-carousel__viewport {
    grid-column: 1;
    overflow: visible;
}

@media (max-width: 1050px) {
    .home-shop-carousel .home-shop-card {
        flex-basis: calc((100% - 1.7rem) / 3);
    }
}

@media (max-width: 700px) {
    .home-shop-carousel {
        grid-template-columns: 2.35rem minmax(0, 1fr) 2.35rem;
        column-gap: .45rem;
    }

    .home-shop-carousel .home-shop-card {
        flex-basis: calc((100% - .75rem) / 2);
    }

    .home-shop-carousel__arrow {
        width: 2.35rem;
        height: 2.35rem;
        font-size: 1.65rem;
    }
}

@media (max-width: 520px) {
    .home-shop-carousel {
        grid-template-columns: 2.25rem minmax(0, 1fr) 2.25rem;
        column-gap: .35rem;
    }

    .home-shop-carousel .home-shop-card {
        flex-basis: 100%;
    }

    .home-shop-carousel__arrow {
        width: 2.25rem;
        height: 2.25rem;
        font-size: 1.55rem;
    }
}


/* v58: keep carousel arrows visible in their dedicated columns */
.home-shop-carousel__arrow:disabled,
.home-shop-carousel__arrow[aria-disabled="true"] {
    opacity: .38;
    cursor: default;
    box-shadow: none;
}

.home-shop-carousel__arrow:disabled:hover,
.home-shop-carousel__arrow:disabled:focus-visible,
.home-shop-carousel__arrow[aria-disabled="true"]:hover,
.home-shop-carousel__arrow[aria-disabled="true"]:focus-visible {
    background: rgba(20,29,22,.94);
}

/* v60: desktop storefront card proportions and compact apparel hot links */
@media (min-width: 901px) {
    /* Use one consistent, landscape retail-card proportion across desktop shop areas. */
    .shop-product-grid,
    .shop-listing-grid,
    .shop-listing-grid--refined {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 1rem;
        align-items: stretch;
    }

    .shop-product-card,
    .shop-product-card--refined,
    .home-shop-card {
        display: flex;
        min-width: 0;
        height: 100%;
        flex-direction: column;
    }

    .shop-product-card__image-wrap,
    .shop-product-card--refined .shop-product-card__image-wrap,
    .home-shop-carousel .home-shop-card__image img,
    .home-shop-card__image img {
        aspect-ratio: 16 / 10;
    }

    .shop-product-card__content,
    .shop-product-card--refined .shop-product-card__content,
    .home-shop-card__body {
        display: flex;
        min-height: 132px;
        padding: .8rem .85rem .9rem;
        flex: 1 1 auto;
        flex-direction: column;
        align-items: flex-start;
    }

    .shop-product-card h3,
    .shop-product-card--refined h2,
    .home-shop-card__body h3 {
        font-size: .96rem;
        line-height: 1.22;
    }

    .shop-product-card__type,
    .shop-product-card--refined .shop-product-card__type,
    .home-shop-card__body p {
        margin-bottom: .3rem;
        font-size: .64rem;
        line-height: 1.2;
    }

    .shop-product-card__price,
    .shop-product-card--refined .shop-product-card__price,
    .home-shop-card__body strong {
        margin-top: auto;
        font-size: .92rem;
    }

    .shop-product-card__status,
    .shop-product-card--refined .shop-product-card__status {
        min-height: 0;
        margin: .35rem 0 .65rem;
        font-size: .75rem;
        line-height: 1.35;
        -webkit-line-clamp: 2;
    }

    /* Smaller product hot links so the image remains the visual focus. */
    .shop-product-card__button,
    .shop-product-card--refined .shop-product-card__button {
        min-height: 32px;
        margin-top: auto;
        padding: .42rem .62rem;
        font-size: .64rem;
        letter-spacing: .035em;
    }

    .shop-product-badge {
        top: .55rem;
        left: .55rem;
        padding: .24rem .42rem;
        font-size: .58rem;
    }

    /* Apparel category hot links: small icon above a compact label. */
    .apparel-filter-nav--refined {
        grid-template-columns: repeat(7, minmax(88px, 1fr));
        gap: .6rem;
        padding: .8rem 1rem 1rem;
    }

    .apparel-filter-nav--refined a {
        min-height: 66px;
        padding: .45rem .35rem;
        flex-direction: column;
        gap: .28rem;
        font-size: .7rem;
        line-height: 1.05;
        text-align: center;
    }

    .apparel-filter-nav__icon {
        width: 22px;
        height: 22px;
        flex: 0 0 22px;
        font-size: .62rem;
    }
}

@media (min-width: 901px) and (max-width: 1150px) {
    .shop-product-grid,
    .shop-listing-grid,
    .shop-listing-grid--refined {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* v61: desktop-only Shop landing card typography refinement */
@media (min-width: 901px) {
    .shop-page .shop-category-card h3 {
        margin-bottom: .32rem;
        font-size: .9rem;
        line-height: 1.08;
        letter-spacing: .025em;
    }

    .shop-page .shop-category-card p {
        max-width: 92%;
        margin-inline: auto;
        font-size: .68rem;
        line-height: 1.28;
    }

    .shop-page .shop-category-card .coming-soon-badge {
        margin-bottom: .42rem;
        padding: .2rem .48rem;
        font-size: .54rem;
        line-height: 1;
        letter-spacing: .075em;
    }
}

/* v62: desktop Shop landing card composition to match approved mockup */
@media (min-width: 901px) {
    .shop-page .shop-category-card {
        overflow: visible;
    }

    .shop-page .shop-category-card__image {
        min-height: 142px;
    }

    .shop-page .shop-category-card__body {
        position: relative;
        display: flex;
        min-height: 124px;
        padding: 42px 12px 14px;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
    }

    .shop-page .shop-category-card__icon {
        position: absolute;
        top: -25px;
        left: 50%;
        z-index: 2;
        display: inline-flex;
        width: 50px;
        height: 50px;
        margin: 0;
        border: 2px solid rgba(226, 201, 147, .78);
        border-radius: 50%;
        background: #193426;
        color: #e2c993;
        font-size: 19px;
        transform: translateX(-50%);
        align-items: center;
        justify-content: center;
    }

    .shop-page .shop-category-card h3 {
        margin-top: 0;
    }
}


/* v63: final desktop Shop collection composition — code-only icons, larger text, compact green panel */
@media (min-width: 901px) {
    .shop-page .shop-category-card {
        overflow: hidden;
        border-radius: 8px;
    }

    .shop-page .shop-category-card__image {
        min-height: 178px;
    }

    .shop-page .shop-category-card__body {
        position: relative;
        display: flex;
        min-height: 108px;
        padding: 34px 10px 12px;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
    }

    .shop-page .shop-category-card__icon {
        position: absolute;
        top: -27px;
        left: 50%;
        z-index: 3;
        display: grid;
        width: 54px;
        height: 54px;
        margin: 0;
        padding: 12px;
        place-items: center;
        border: 2px solid #c4a55e;
        border-radius: 50%;
        background: #183426;
        color: #f1ead9;
        transform: translateX(-50%);
        box-shadow: 0 2px 8px rgba(0,0,0,.14);
    }

    .shop-page .shop-category-card__icon svg {
        display: block;
        width: 100%;
        height: 100%;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.7;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .shop-page .shop-category-card__icon--tree svg {
        fill: currentColor;
        stroke: none;
    }

    .shop-page .shop-category-card h3 {
        margin: 0 0 .42rem;
        font-size: 1.12rem;
        line-height: 1.05;
        letter-spacing: .02em;
    }

    .shop-page .shop-category-card p {
        max-width: 96%;
        margin: 0 auto;
        font-size: .8rem;
        line-height: 1.25;
    }

    .shop-page .shop-category-card .coming-soon-badge {
        margin-bottom: .42rem;
        padding: .24rem .58rem;
        font-size: .58rem;
    }
}

/* v64: desktop-only Shop category image crop and compact retail card layout. */
@media (min-width: 901px) {
    .shop-page .shop-category-card__image {
        min-height: 188px;
        background-position: center, center top;
        background-size: 100% 100%, 112% auto;
        background-repeat: no-repeat;
    }

    .shop-page .shop-category-card__body {
        min-height: 92px;
        padding: 31px 10px 10px;
    }

    .shop-page .shop-category-card__icon {
        top: -27px;
        left: 50%;
        transform: translateX(-50%);
    }

    .shop-page .shop-category-card h3 {
        margin-bottom: .34rem;
        font-size: 1.2rem;
        line-height: 1.04;
    }

    .shop-page .shop-category-card p {
        max-width: 94%;
        font-size: .78rem;
        line-height: 1.22;
    }
}

/* Build v65: standardized Shop category heroes, breadcrumbs, counts, and coming-soon state. */
.shop-category-intro--hero {
    --category-hero: none;
    position: relative;
    isolation: isolate;
    min-height: 340px;
    display: grid;
    align-items: end;
    overflow: hidden;
    border-bottom: 0;
    background-image: var(--category-hero);
    background-position: center;
    background-size: cover;
    padding: 0;
}
.shop-category-intro__shade {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, rgba(8,16,11,.9) 0%, rgba(8,16,11,.7) 48%, rgba(8,16,11,.28) 100%), linear-gradient(0deg, rgba(8,16,11,.5), transparent 65%);
}
.shop-category-intro--hero .shop-category-intro__inner {
    width: min(1420px,94vw);
    padding: 5.5rem 0 3.1rem;
    color: #fff;
}
.shop-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
    margin: 0 0 1.45rem;
    color: rgba(255,255,255,.78);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.shop-breadcrumbs a { color: #d7e6c1; text-decoration: none; }
.shop-breadcrumbs a:hover, .shop-breadcrumbs a:focus-visible { text-decoration: underline; }
.shop-category-intro--hero .section-kicker { color: #b9d681; }
.shop-category-intro--hero h1 { color: #fff; text-shadow: 0 3px 18px rgba(0,0,0,.28); }
.shop-category-intro--hero .shop-category-intro__description { color: rgba(255,255,255,.88); }
.shop-category-intro__count {
    display: inline-flex;
    margin: 1.2rem 0 0;
    padding: .42rem .72rem;
    border: 1px solid rgba(255,255,255,.38);
    border-radius: 999px;
    background: rgba(10,20,13,.34);
    color: #fff;
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.storefront-empty--coming-soon {
    max-width: 820px;
    margin: 1rem auto 0;
    padding: 5rem 2rem;
    border-style: solid;
}
.storefront-empty--coming-soon .section-kicker { margin: 0 0 .6rem; color: #557b37; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.storefront-empty--coming-soon h2 { font-size: clamp(2rem,4vw,3.25rem); }
.storefront-empty--coming-soon p:not(.section-kicker) { max-width: 620px; margin-left: auto; margin-right: auto; line-height: 1.65; }
@media (max-width: 780px) {
    .shop-category-intro--hero { min-height: 300px; }
    .shop-category-intro--hero .shop-category-intro__inner { padding: 4.5rem 0 2.3rem; }
    .shop-breadcrumbs { margin-bottom: 1rem; }
}

/* Build v66: compact Shop category hero sections on desktop and mobile. */
.shop-category-intro--hero {
    min-height: 0;
}

.shop-category-intro--hero .shop-category-intro__inner {
    padding: 2.75rem 0 2rem;
}

.shop-category-intro--hero .shop-breadcrumbs {
    margin-bottom: .75rem;
}

.shop-category-intro--hero .section-kicker {
    margin-bottom: .3rem;
}

.shop-category-intro--hero h1 {
    font-size: clamp(3.6rem, 6vw, 5.8rem);
    line-height: .9;
}

.shop-category-intro--hero .shop-category-intro__description {
    margin-top: .65rem;
    line-height: 1.45;
}

.shop-category-intro--hero .shop-category-intro__count {
    margin-top: .85rem;
}

@media (max-width: 780px) {
    .shop-category-intro--hero {
        min-height: 0;
    }

    .shop-category-intro--hero .shop-category-intro__inner {
        padding: 1.8rem 0 1.45rem;
    }

    .shop-category-intro--hero .shop-breadcrumbs {
        margin-bottom: .45rem;
    }

    .shop-category-intro--hero h1 {
        font-size: clamp(2.8rem, 15vw, 3.7rem);
    }

    .shop-category-intro--hero .shop-category-intro__description {
        margin-top: .5rem;
        font-size: .98rem;
        line-height: 1.4;
    }

    .shop-category-intro--hero .shop-category-intro__count {
        margin-top: .7rem;
    }
}


/* Build v67: product merchandising badges. */
.shop-product-card__image-wrap { position: relative; }
.shop-product-badge {
    position: absolute;
    top: .85rem;
    left: .85rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: .38rem .68rem;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 999px;
    background: #193323;
    color: #fff;
    box-shadow: 0 5px 16px rgba(0,0,0,.18);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1;
    text-transform: uppercase;
}
.shop-product-badge--new { background: #a7ca59; color: #132015; border-color: #cde58e; }
.shop-product-badge--best-seller { background: #d7aa4b; color: #1b160b; border-color: #f0cf87; }
.shop-product-badge--limited-drop { background: #8a4f2d; border-color: #c98961; }
.shop-product-badge--leaving-soon { background: #76512c; border-color: #c79a63; }
.shop-product-badge--coming-soon { background: #5b625d; border-color: #929b95; }
.shop-product-badge--sold-out { background: #6b2525; border-color: #ba6b6b; }
.product-detail-badge {
    position: static;
    width: fit-content;
    margin: .15rem 0 .8rem;
}
.product-buy-button:disabled {
    cursor: not-allowed;
    opacity: .62;
}
@media (max-width: 780px) {
    .shop-product-badge { top: .65rem; left: .65rem; min-height: 25px; padding: .32rem .56rem; font-size: .61rem; }
}

/* Build v68: Leaving Soon product badge option. */


.contact-details {
    margin-top: 1.5rem;
}
.contact-details p {
    margin: 0.45rem 0;
}
.contact-details a {
    overflow-wrap: anywhere;
}

/* Build v74: compact announcement banner treatment for phones. */
@media (max-width: 780px) {
    .site-announcement {
        min-height: 0;
        padding: 5px 12px;
        font-size: 11px;
        line-height: 1.25;
        letter-spacing: .025em;
    }

    .site-announcement a,
    .site-announcement span {
        display: block;
        width: 100%;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 420px) {
    .site-announcement {
        padding: 4px 10px;
        font-size: 10px;
        line-height: 1.2;
    }
}


/* V75 shipping foundation */
.cart-summary>div{margin-bottom:.7rem}.cart-summary .cart-total-row{padding-top:.85rem;border-top:1px solid rgba(255,255,255,.25);font-size:1.35rem}.cart-summary #cart-free-shipping-note{font-weight:800;color:#dce9ba}.checkout-form select{width:100%;padding:.9rem;border:1px solid rgba(41,61,50,.25);background:#fffdf7;font:inherit}.checkout-order-summary .checkout-summary-row{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0}.checkout-order-summary .checkout-total-row{margin-top:.35rem;padding-top:1rem;border-top:2px solid rgba(41,61,50,.2);font-size:1.25rem}.checkout-order-summary #checkout-shipping-note{display:block;border:0;padding:.9rem 0 0;color:#607067;font-size:.92rem}.admin-panel hr{border:0;border-top:1px solid rgba(41,61,50,.18);margin:1.5rem 0}

/* v76 checkout discount code controls */
.checkout-discount-box{margin:1rem 0;padding:1rem 0;border-top:1px solid rgba(41,61,50,.16);border-bottom:1px solid rgba(41,61,50,.16)}
.checkout-discount-box label{display:block;margin-bottom:.45rem;font-weight:800;color:#2f443a}
.checkout-discount-controls{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;font-size:1rem!important}
.checkout-discount-controls input{min-width:0;width:100%;padding:.8rem;border:1px solid rgba(41,61,50,.25);background:#fffdf7;font:inherit;text-transform:uppercase}
.checkout-discount-controls button{white-space:nowrap;padding:.75rem 1rem}
.checkout-discount-box #checkout-discount-message{display:block;margin:.55rem 0 0;padding:0;border:0;font-size:.88rem;font-weight:800}
.checkout-discount-box #checkout-discount-message.is-success{color:#55743d}
.checkout-discount-box #checkout-discount-message.is-error{color:#8b2f2f}
.checkout-order-summary .checkout-discount-row strong{color:#55743d!important}
@media(max-width:420px){.checkout-discount-controls{grid-template-columns:1fr}.checkout-discount-controls button{width:100%}}

/* V77 checkout discount repair and layout cleanup */
.checkout-order-summary{
  display:block;
  padding:1.75rem;
  border-radius:2px;
  box-shadow:0 12px 28px rgba(25,39,31,.08);
}
.checkout-order-summary>div{font-size:1rem}
.checkout-order-summary h2{margin:0 0 1.15rem;font-size:1.45rem}
.checkout-order-items{display:block!important;margin:0}
.checkout-order-line{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 0;border-bottom:1px solid rgba(41,61,50,.12)}
.checkout-order-line span{min-width:0;line-height:1.35}
.checkout-order-line small{font-size:.85em;color:#607067}
.checkout-order-line strong{white-space:nowrap}
.checkout-summary-divider{display:block!important;height:0;margin:.35rem 0 .3rem;border-top:1px solid rgba(41,61,50,.16)}
.checkout-order-summary .checkout-summary-row{font-size:1rem;padding:.55rem 0}
.checkout-order-summary .checkout-total-row{margin-top:.35rem;padding-top:.9rem;font-size:1.18rem}
.checkout-discount-box{display:block!important;margin:1.2rem 0 0;padding:1.15rem;background:#f1ecdf;border:1px solid rgba(41,61,50,.15)}
.checkout-discount-box label{margin:0 0 .6rem;font-size:.96rem}
.checkout-discount-controls{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.65rem}
.checkout-discount-controls input{height:46px;padding:.72rem .85rem;text-transform:uppercase}
.checkout-discount-controls button{min-height:46px;padding:.72rem 1.05rem;border:1px solid #2f443a;background:#2f443a;color:#fff;font-weight:800;cursor:pointer}
.checkout-discount-controls button:hover{background:#1d3027}
.checkout-discount-box #checkout-discount-message{min-height:1.25rem;margin:.55rem 0 0;line-height:1.35}
.checkout-order-summary .checkout-discount-row strong{color:#55743d!important}
.checkout-shipping-note{display:block!important;margin:.9rem 0 0!important;padding:.9rem 0 0!important;border:0!important;border-top:1px solid rgba(41,61,50,.12)!important;font-size:.88rem!important;line-height:1.45!important;color:#607067!important}
@media(max-width:800px){
  .checkout-order-summary{grid-row:auto;padding:1.25rem;margin-top:.5rem}
  .checkout-shell{display:flex;flex-direction:column}
  .checkout-shell>div{order:1}
  .checkout-order-summary{order:2}
}
@media(max-width:480px){
  .checkout-discount-controls{grid-template-columns:1fr}
  .checkout-discount-controls button{width:100%}
  .checkout-order-summary{padding:1rem}
}


/* V78 checkout promo repair — visible form placement and cache-safe layout */
.checkout-promo-panel{display:block;margin:1.15rem 0 .25rem;padding:1.15rem;border:1px solid rgba(41,61,50,.2);background:#f8f4e9}
.checkout-promo-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.7rem;color:#2f443a}
.checkout-promo-heading strong{font-size:1rem}
.checkout-promo-heading span{font-size:.82rem;font-weight:600;color:#69766f}
.checkout-promo-panel .checkout-discount-controls{display:grid!important;grid-template-columns:minmax(0,1fr) 112px;gap:.65rem;align-items:stretch}
.checkout-promo-panel .checkout-discount-controls input{width:100%;min-width:0;height:48px;padding:.75rem .85rem;border:1px solid rgba(41,61,50,.28);background:#fff;color:#18251e;font:inherit;text-transform:uppercase}
.checkout-promo-panel .checkout-discount-controls button{height:48px;border:0;background:#2f4937;color:#fff;font:inherit;font-weight:900;cursor:pointer}
.checkout-promo-panel .checkout-discount-controls button:hover{background:#1e3427}
.checkout-promo-panel #checkout-discount-message{min-height:1.25rem;margin:.55rem 0 0;font-size:.88rem;font-weight:800;line-height:1.35}
.checkout-promo-panel #checkout-discount-message.is-success{color:#486b35}
.checkout-promo-panel #checkout-discount-message.is-error{color:#932f2f}
.checkout-order-summary .checkout-summary-row{display:flex;justify-content:space-between;gap:1rem;align-items:center}
.checkout-order-summary .checkout-discount-row strong{color:#486b35!important}
.checkout-submit-button{margin-top:.35rem}
@media(max-width:720px){
  .checkout-promo-heading{display:block}
  .checkout-promo-heading span{display:block;margin-top:.25rem}
  .checkout-promo-panel .checkout-discount-controls{grid-template-columns:1fr}
  .checkout-promo-panel .checkout-discount-controls button{width:100%}
}


/* V80: checkout discount input is rendered inside the visible order summary. */
.checkout-order-summary [hidden]{display:none!important}
.checkout-order-summary .checkout-promo-panel{
  display:block!important;
  width:100%;
  margin:1rem 0 .8rem;
  padding:1rem;
  border:1px solid rgba(41,61,50,.2);
  background:#f3eddf;
}
.checkout-order-summary .checkout-promo-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin:0 0 .65rem;
}
.checkout-order-summary .checkout-promo-heading strong{font-size:1rem;color:#2f443a}
.checkout-order-summary .checkout-promo-heading span{font-size:.8rem;color:#69766f}
.checkout-order-summary .checkout-discount-controls{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 92px;
  gap:.55rem;
  width:100%;
}
.checkout-order-summary .checkout-discount-controls input{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  min-width:0;
  width:100%;
  height:46px;
  margin:0;
  padding:.7rem .8rem;
  border:1px solid rgba(41,61,50,.32);
  border-radius:0;
  background:#fffdf7;
  color:#18251e;
  font:inherit;
  text-transform:uppercase;
  pointer-events:auto!important;
  user-select:text;
}
.checkout-order-summary .checkout-discount-controls button{
  display:block!important;
  visibility:visible!important;
  height:46px;
  margin:0;
  padding:.65rem .75rem;
  border:0;
  background:#2f4937;
  color:#fff;
  font:inherit;
  font-weight:900;
  cursor:pointer;
  pointer-events:auto!important;
}
.checkout-order-summary #checkout-discount-message{
  display:block;
  min-height:1.2rem;
  margin:.5rem 0 0;
  padding:0;
  border:0;
  font-size:.84rem;
  font-weight:800;
  line-height:1.35;
}
.checkout-order-summary #checkout-discount-message.is-success{color:#486b35}
.checkout-order-summary #checkout-discount-message.is-error{color:#932f2f}
@media(max-width:800px){
  .checkout-order-summary{grid-row:auto!important;order:1!important}
  .checkout-shell>div{order:2!important}
}
@media(max-width:420px){
  .checkout-order-summary .checkout-discount-controls{grid-template-columns:1fr}
  .checkout-order-summary .checkout-discount-controls button{width:100%}
}


/* V81 verification corrections: cart and standard page presentation */
.primary-nav .cart-link::after,.primary-nav .cart-link:hover::after,.primary-nav .cart-link:focus::after,.primary-nav .cart-link.active::after{display:none!important;content:none!important;transform:none!important}
.primary-nav .cart-link,.primary-nav .cart-link:hover,.primary-nav .cart-link:focus,.primary-nav .cart-link span,.primary-nav .cart-link:hover span,.primary-nav .cart-link:focus span{text-decoration:none!important}
.inner-page{background:#efe8dc;color:#20281f}
.page-hero,.project-hero{position:relative;min-height:470px;display:grid;place-items:center;align-content:center;padding:70px max(24px,calc((100vw - 1200px)/2 + 1rem));background-image:linear-gradient(180deg,rgba(5,10,7,.22),rgba(5,10,7,.58)),url('../images/shop/shop-hero-clean-v29.jpg?v=81.1')!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;color:#f4efe4;text-align:center;text-shadow:0 3px 16px rgba(0,0,0,.55)}
.page-hero>*,.project-hero>*{position:relative;z-index:1}
.page-hero h1,.project-hero h1{margin-left:auto;margin-right:auto;text-transform:none}
.page-hero p,.project-hero p{margin-left:auto;margin-right:auto}
.page-content{color:#20281f}
.journal-grid .post-card{background:#f8f4ea;border-color:rgba(41,61,50,.18);color:#20281f}
.journal-grid .post-card p{color:#526057}
@media(max-width:700px){.page-hero,.project-hero{min-height:410px;padding:58px 24px;background-position:center!important}}


/* V83: keep standard page heroes at the same visual scale as the Shop hero. */
.page-hero,
.project-hero {
    box-sizing: border-box;
    min-height: 470px;
    padding: 70px 20px 62px;
}
.page-hero h1,
.project-hero h1 {
    width: min(100% - 32px, 900px);
    max-width: 900px;
    margin: 0 auto;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(4rem, 10vw, 8.6rem);
    font-weight: 800;
    line-height: .9;
    letter-spacing: .035em;
}
.page-hero .section-kicker,
.project-hero .section-kicker {
    margin: 0 auto 16px;
}
.page-hero > p:last-child,
.project-hero > p:last-child {
    width: min(100% - 32px, 900px);
    max-width: 900px;
    margin: 24px auto 0;
    font-size: clamp(1rem, 2vw, 1.35rem);
    line-height: 1.45;
}
@media (max-width: 700px) {
    .page-hero,
    .project-hero {
        min-height: 410px;
        padding: 58px 20px 50px;
    }
    .page-hero h1,
    .project-hero h1 {
        font-size: clamp(3.4rem, 18vw, 5.6rem);
    }
}


/* V84: force standard page heroes to use the Shop hero's actual visual footprint. */
.inner-page {
    padding-top: 58px;
}
.inner-page > .page-hero,
.inner-page > .project-hero {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 470px !important;
    min-height: 470px !important;
    max-height: 470px !important;
    padding: 54px 20px 46px !important;
    display: grid !important;
    place-content: center !important;
    justify-items: center !important;
    row-gap: 0 !important;
    overflow: hidden !important;
}
.inner-page > .page-hero h1,
.inner-page > .project-hero h1 {
    width: min(100% - 32px, 900px) !important;
    max-width: 900px !important;
    margin: 0 auto !important;
    font-size: clamp(4rem, 8vw, 7rem) !important;
    line-height: .9 !important;
    letter-spacing: .025em !important;
}
.inner-page > .page-hero .section-kicker,
.inner-page > .project-hero .section-kicker {
    margin: 0 auto 14px !important;
}
.inner-page > .page-hero > p:last-child,
.inner-page > .project-hero > p:last-child {
    width: min(100% - 32px, 760px) !important;
    max-width: 760px !important;
    margin: 22px auto 0 !important;
    font-size: clamp(1rem, 1.65vw, 1.25rem) !important;
    line-height: 1.45 !important;
}
@media (max-width: 700px) {
    .inner-page {
        padding-top: 58px;
    }
    .inner-page > .page-hero,
    .inner-page > .project-hero {
        height: 410px !important;
        min-height: 410px !important;
        max-height: 410px !important;
        padding: 46px 20px 40px !important;
    }
    .inner-page > .page-hero h1,
    .inner-page > .project-hero h1 {
        font-size: clamp(3.4rem, 16vw, 5.2rem) !important;
    }
}

/* V85: make all standard public-page heroes match the compact Shop hero footprint. */
.inner-page > .page-hero,
.inner-page > .project-hero {
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
    padding: 34px 20px 18px !important;
    background-position: center 52% !important;
}

.inner-page > .page-hero h1,
.inner-page > .project-hero h1 {
    width: min(100% - 32px, 900px) !important;
    max-width: 900px !important;
    font-size: clamp(2.8rem, 4.4vw, 4.25rem) !important;
    line-height: .92 !important;
    letter-spacing: .015em !important;
}

.inner-page > .page-hero .section-kicker,
.inner-page > .project-hero .section-kicker {
    margin: 0 auto 8px !important;
    font-size: .82rem !important;
    line-height: 1.1 !important;
}

.inner-page > .page-hero > p:last-child,
.inner-page > .project-hero > p:last-child {
    width: min(100% - 32px, 760px) !important;
    max-width: 760px !important;
    margin: 12px auto 0 !important;
    font-size: clamp(.9rem, 1.25vw, 1.02rem) !important;
    line-height: 1.3 !important;
}

@media (max-width: 980px) {
    .inner-page > .page-hero,
    .inner-page > .project-hero {
        height: 205px !important;
        min-height: 205px !important;
        max-height: 205px !important;
        padding: 30px 20px 18px !important;
    }
}

@media (max-width: 640px) {
    .inner-page > .page-hero,
    .inner-page > .project-hero {
        height: 148px !important;
        min-height: 148px !important;
        max-height: 148px !important;
        padding: 12px 10px 10px !important;
    }

    .inner-page > .page-hero h1,
    .inner-page > .project-hero h1 {
        font-size: clamp(2.05rem, 9.5vw, 2.7rem) !important;
        line-height: .94 !important;
    }

    .inner-page > .page-hero .section-kicker,
    .inner-page > .project-hero .section-kicker {
        margin-bottom: 4px !important;
        font-size: .7rem !important;
    }

    .inner-page > .page-hero > p:last-child,
    .inner-page > .project-hero > p:last-child {
        margin-top: 6px !important;
        font-size: .78rem !important;
        line-height: 1.2 !important;
    }
}

/* V86: apply the Shop hero typography system across every standard public page. */
.inner-page > .page-hero,
.inner-page > .project-hero {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.page-hero__content {
    position: relative;
    z-index: 1;
    width: min(100% - 32px, 980px);
    margin: 0 auto;
    text-align: center;
}

.inner-page > .page-hero .page-hero__content h1,
.inner-page > .project-hero .page-hero__content h1 {
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto 8px !important;
    color: #f6f0e3 !important;
    font-family: Georgia, 'Times New Roman', serif !important;
    font-size: clamp(3.2rem, 5.2vw, 5.2rem) !important;
    font-weight: 800 !important;
    line-height: .88 !important;
    letter-spacing: .025em !important;
    text-transform: uppercase !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.45) !important;
}

.inner-page > .page-hero .page-hero__label,
.inner-page > .project-hero .page-hero__label {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 18px !important;
    width: min(100%, 620px) !important;
    margin: 0 auto 8px !important;
    color: #d2aa61 !important;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif !important;
    font-size: clamp(1.05rem, 2vw, 1.65rem) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: .13em !important;
    text-transform: uppercase !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.35) !important;
}

.page-hero__label span {
    display: block;
    width: clamp(42px, 8vw, 112px);
    height: 2px;
    flex: 0 1 112px;
    background: #d2aa61;
    opacity: .9;
}

.inner-page > .page-hero .page-hero__lead,
.inner-page > .project-hero .page-hero__lead {
    width: min(100% - 20px, 760px) !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    color: #fff !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: clamp(.95rem, 1.35vw, 1.12rem) !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.5) !important;
}

.policy-page-content {
    width: min(100% - 40px, 980px);
    margin: 0 auto;
}

@media (max-width: 640px) {
    .page-hero__content {
        width: min(100% - 20px, 580px);
    }

    .inner-page > .page-hero .page-hero__content h1,
    .inner-page > .project-hero .page-hero__content h1 {
        margin-bottom: 5px !important;
        font-size: clamp(2rem, 10vw, 2.8rem) !important;
        line-height: .92 !important;
    }

    .inner-page > .page-hero .page-hero__label,
    .inner-page > .project-hero .page-hero__label {
        gap: 9px !important;
        margin-bottom: 5px !important;
        font-size: clamp(.72rem, 4vw, .95rem) !important;
        letter-spacing: .1em !important;
    }

    .page-hero__label span {
        width: 30px;
        flex-basis: 50px;
        height: 1px;
    }

    .inner-page > .page-hero .page-hero__lead,
    .inner-page > .project-hero .page-hero__lead {
        font-size: clamp(.7rem, 3.3vw, .82rem) !important;
        line-height: 1.25 !important;
    }
}

/* V88: make the Shop hero use the exact same fixed footprint as Gallery. */
.shop-page .shop-hero {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
    overflow: hidden !important;
    background-position: center 52% !important;
}

.shop-page .shop-hero__content {
    box-sizing: border-box !important;
    width: min(100% - 32px, 980px) !important;
    height: 100% !important;
    margin: 0 auto !important;
    padding: 34px 20px 18px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
}

@media (max-width: 980px) {
    .shop-page .shop-hero {
        height: 205px !important;
        min-height: 205px !important;
        max-height: 205px !important;
    }

    .shop-page .shop-hero__content {
        padding: 30px 20px 18px !important;
    }
}

@media (max-width: 640px) {
    .shop-page .shop-hero {
        height: 148px !important;
        min-height: 148px !important;
        max-height: 148px !important;
    }

    .shop-page .shop-hero__content {
        padding: 12px 10px 10px !important;
    }
}

/* V89: actual Shop-to-Gallery hero match.
   V88 repeated the existing 220px Shop height, so it produced no visible change.
   These rules match the Shop hero's typography and internal spacing to the
   standard Gallery hero system introduced in V86. */
.shop-page > .shop-hero {
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
    padding: 0 !important;
}

.shop-page > .shop-hero .shop-hero__content {
    width: min(100% - 32px, 980px) !important;
    height: 100% !important;
    margin: 0 auto !important;
    padding: 34px 20px 18px !important;
    justify-content: center !important;
}

.shop-page > .shop-hero .shop-tree-mark {
    display: none !important;
}

.shop-page > .shop-hero h1 {
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto 8px !important;
    color: #f6f0e3 !important;
    font-family: Georgia, 'Times New Roman', serif !important;
    font-size: clamp(3.2rem, 5.2vw, 5.2rem) !important;
    font-weight: 800 !important;
    line-height: .88 !important;
    letter-spacing: .025em !important;
    text-transform: uppercase !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.45) !important;
}

.shop-page > .shop-hero .shop-hero__outfitters {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 18px !important;
    width: min(100%, 620px) !important;
    margin: 0 auto 8px !important;
    color: #d2aa61 !important;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif !important;
    font-size: clamp(1.05rem, 2vw, 1.65rem) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: .13em !important;
    text-transform: uppercase !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.35) !important;
}

.shop-page > .shop-hero .shop-hero__outfitters span {
    display: block !important;
    width: clamp(42px, 8vw, 112px) !important;
    height: 2px !important;
    flex: 0 1 112px !important;
    background: #d2aa61 !important;
    opacity: .9 !important;
}

.shop-page > .shop-hero .shop-hero__lead {
    width: min(100% - 20px, 760px) !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    color: #fff !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: clamp(.95rem, 1.35vw, 1.12rem) !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.5) !important;
}

@media (max-width: 980px) {
    .shop-page > .shop-hero {
        height: 205px !important;
        min-height: 205px !important;
        max-height: 205px !important;
    }

    .shop-page > .shop-hero .shop-hero__content {
        padding: 30px 20px 18px !important;
    }
}

@media (max-width: 640px) {
    .shop-page > .shop-hero {
        height: 148px !important;
        min-height: 148px !important;
        max-height: 148px !important;
    }

    .shop-page > .shop-hero .shop-hero__content {
        width: min(100% - 20px, 580px) !important;
        padding: 12px 10px 10px !important;
    }

    .shop-page > .shop-hero h1 {
        margin-bottom: 5px !important;
        font-size: clamp(2rem, 10vw, 2.8rem) !important;
        line-height: .92 !important;
    }

    .shop-page > .shop-hero .shop-hero__outfitters {
        gap: 9px !important;
        margin-bottom: 5px !important;
        font-size: clamp(.72rem, 4vw, .95rem) !important;
        letter-spacing: .1em !important;
    }

    .shop-page > .shop-hero .shop-hero__outfitters span {
        width: 30px !important;
        flex-basis: 50px !important;
        height: 1px !important;
    }

    .shop-page > .shop-hero .shop-hero__lead {
        font-size: clamp(.7rem, 3.3vw, .82rem) !important;
        line-height: 1.25 !important;
    }
}

/* V90: keep the compact Shop hero below the fixed desktop navigation.
   Standard inner pages already receive this 58px offset; Shop did not,
   causing its title to render underneath and be clipped by the header. */
.shop-page {
    padding-top: 58px;
}

@media (max-width: 700px) {
    .shop-page {
        padding-top: 58px;
    }
}

/* V93: Journal embedded social videos */
.post-video {
    width: min(100%, 900px);
    margin: 2.5rem auto 0;
}

.journal-video {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #080d09;
    border: 1px solid var(--line);
}

.journal-video--tiktok {
    width: min(100%, 430px);
    aspect-ratio: 9 / 16;
    margin-inline: auto;
}

.journal-video iframe,
.pw-lightbox__video iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.pw-gallery__item--video { cursor: pointer; }

.pw-gallery__video-placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    color: rgba(255,255,255,.72);
    background: radial-gradient(circle at center, #26382b 0, #111914 72%);
    font-size: clamp(1.1rem, 3vw, 2rem);
    font-weight: 900;
    letter-spacing: .14em;
}

.pw-gallery__play {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    display: grid;
    place-items: center;
    width: 4.25rem;
    height: 4.25rem;
    padding-left: .25rem;
    border: 2px solid rgba(255,255,255,.9);
    border-radius: 50%;
    color: #fff;
    background: rgba(0,0,0,.68);
    box-shadow: 0 8px 30px rgba(0,0,0,.45);
    font-size: 1.45rem;
    transform: translate(-50%, -50%);
    transition: transform .2s ease, background .2s ease;
    pointer-events: none;
}

.pw-gallery__item--video:hover .pw-gallery__play,
.pw-gallery__item--video:focus-visible .pw-gallery__play {
    background: rgba(82,112,44,.92);
    transform: translate(-50%, -50%) scale(1.08);
}

.pw-lightbox__video {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    background: #000;
}

.pw-lightbox__video[hidden] { display: none !important; }

@media (max-width: 600px) {
    .pw-gallery__play { width: 3.6rem; height: 3.6rem; }
}

/* V94 — Sale pricing */
.product-price--sale {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .4rem .65rem;
}
.product-price__regular {
    color: #777d78;
    font-size: .88em;
    font-weight: 700;
    text-decoration: line-through;
}
.product-price__current {
    color: #7b2d23;
    font-weight: 900;
}
.product-price__savings {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: .2rem .45rem;
    border-radius: 3px;
    background: #efe0cf;
    color: #6f2b22;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.shop-product-badge--sale {
    left: auto;
    right: .9rem;
    background: #8d3026;
    border-color: #d98577;
}
.shop-product-badge--clearance {
    left: auto;
    right: .9rem;
    top: 3.15rem;
    background: #4c3222;
    border-color: #bd936d;
}
.product-detail-price.product-price--sale {
    margin-top: .5rem;
}
.product-detail-price .product-price__current {
    font-size: 1.2em;
}
.product-detail-badge--sale {
    position: static;
    display: inline-flex;
    margin: 0 .35rem .4rem 0;
}
.home-product-price.is-sale del {
    margin-right: .35rem;
    color: #747a75;
    font-weight: 600;
}
@media (max-width: 700px) {
    .shop-product-badge--sale { right: .65rem; }
    .shop-product-badge--clearance { right: .65rem; top: 2.95rem; }
}

/* V94 — Sale pricing presentation correction */
.shop-product-card__price.product-price--sale,
.product-detail-price.product-price--sale {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    column-gap: .7rem;
    row-gap: .4rem;
}
.shop-product-card__price.product-price--sale .product-price__regular,
.product-detail-price.product-price--sale .product-price__regular {
    display: inline-block;
    text-decoration: line-through !important;
    opacity: .72;
}
.shop-product-card__price.product-price--sale .product-price__current,
.product-detail-price.product-price--sale .product-price__current {
    display: inline-block;
    font-weight: 900;
}
.shop-product-card__price.product-price--sale .product-price__savings,
.product-detail-price.product-price--sale .product-price__savings {
    display: inline-flex;
    white-space: nowrap;
}
.shop-product-card__image-wrap > .shop-product-badge--sale {
    left: auto !important;
    right: .9rem !important;
    top: .9rem !important;
}
.shop-product-card__image-wrap > .shop-product-badge--clearance {
    left: auto !important;
    right: .9rem !important;
    top: 3.15rem !important;
}
@media (max-width: 700px) {
    .shop-product-card__image-wrap > .shop-product-badge--sale {
        right: .65rem !important;
        top: .65rem !important;
    }
    .shop-product-card__image-wrap > .shop-product-badge--clearance {
        right: .65rem !important;
        top: 2.95rem !important;
    }
}

/* V113: Gallery large/compact display toggle. */
.pw-gallery-section {
    display: block;
}

.pw-gallery-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}

.pw-gallery-toolbar__eyebrow {
    margin: 0 0 .25rem;
    color: var(--green);
    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.pw-gallery-toolbar__title {
    margin: 0;
    font-size: clamp(1.15rem, 2vw, 1.55rem);
}

.pw-gallery-view-toggle {
    display: inline-flex;
    gap: .35rem;
    padding: .3rem;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.45);
}

.pw-gallery-view-toggle__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 2.55rem;
    padding: .58rem .85rem;
    border: 0;
    color: var(--ink);
    background: transparent;
    font: inherit;
    font-size: .88rem;
    font-weight: 800;
    cursor: pointer;
}

.pw-gallery-view-toggle__button:hover,
.pw-gallery-view-toggle__button:focus-visible {
    background: rgba(116,153,72,.14);
}

.pw-gallery-view-toggle__button:focus-visible {
    outline: 3px solid var(--green-light);
    outline-offset: 2px;
}

.pw-gallery-view-toggle__button.is-active {
    color: #fff;
    background: var(--green-dark);
}

.pw-gallery[data-gallery-view="compact"] {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .65rem;
}

.pw-gallery[data-gallery-view="compact"] .pw-gallery__item {
    aspect-ratio: 1 / 1;
}

.pw-gallery[data-gallery-view="compact"] .pw-gallery__caption {
    padding: 2rem .7rem .65rem;
    font-size: .78rem;
}

.pw-gallery[data-gallery-view="compact"] .pw-gallery__play {
    transform: scale(.78);
}

@media (max-width: 1050px) {
    .pw-gallery[data-gallery-view="compact"] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .pw-gallery-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .pw-gallery-view-toggle {
        align-self: flex-start;
    }

    .pw-gallery[data-gallery-view="compact"] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .pw-gallery-view-toggle {
        width: 100%;
    }

    .pw-gallery-view-toggle__button {
        flex: 1 1 0;
    }

    .pw-gallery[data-gallery-view="compact"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
    }

    .pw-gallery[data-gallery-view="compact"] .pw-gallery__caption {
        padding: 1.75rem .55rem .5rem;
        font-size: .72rem;
    }
}


/* V118 About Page Builder */
.about-builder-content{display:grid}.about-block{width:100%}.about-block__body{line-height:1.75}.about-block__body br+br{display:block;content:"";margin-top:1rem}.about-block--image-right img{order:2}.about-block--quote{max-width:900px;margin:70px auto;padding:50px 34px;text-align:center;border-top:1px solid rgba(31,48,35,.25);border-bottom:1px solid rgba(31,48,35,.25)}.about-block--quote blockquote{margin:0;font-family:Georgia,serif;font-size:clamp(1.65rem,3vw,2.6rem);line-height:1.35;color:#1d2b20}.about-block--quote cite{display:block;margin-top:18px;font-style:normal;font-weight:800;color:#5f6d62}.about-block--cta{margin:60px auto;max-width:1100px;padding:60px 34px;text-align:center;background:#15231a;color:#f5f1e7}.about-block--cta h2{color:#fff}.about-block--cta .about-block__body{max-width:720px;margin:0 auto 24px;color:#cbd6cd}@media(max-width:700px){.about-block--image-right img{order:initial}.about-block--quote,.about-block--cta{margin:36px 20px;padding:38px 24px}}

/* V129 Customer Account Foundation */
.account-page{min-height:75vh;padding:8rem 1.5rem 5rem;background:#eee7d8}.account-shell{max-width:960px;margin:0 auto}.account-shell--narrow{max-width:680px}.account-card{padding:clamp(1.5rem,4vw,3rem);border:1px solid rgba(41,61,50,.17);background:#faf7ef;box-shadow:0 18px 55px rgba(20,35,26,.08)}.account-card--center{text-align:center}.account-card h1{margin-top:.25rem}.account-card>p{color:#52645a;line-height:1.7}.account-form{display:grid;gap:1rem;margin-top:1.5rem}.account-form label{display:grid;gap:.45rem;color:#2f443a;font-weight:800}.account-form input{width:100%;padding:.9rem;border:1px solid rgba(41,61,50,.25);background:#fffdf7;font:inherit}.account-form small{color:#64736b;font-weight:600}.account-switch{margin:1.35rem 0 0}.account-switch a{color:#3f6533;font-weight:800}.account-actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;margin-top:1.5rem}.account-actions form{margin:0}.account-secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.2rem;border:1px solid #2f443a;background:transparent;color:#20382a;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.account-details{display:grid;gap:.75rem;margin:1.75rem 0}.account-details>div{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding:1rem;border-bottom:1px solid rgba(41,61,50,.15)}.account-details span{color:#64736b;font-weight:700}.account-foundation-note{padding:1rem;border-left:5px solid #9fbd62;background:#f1eddf}.account-page .notice.error{margin:1rem 0;padding:1rem;background:#f8dddd;color:#722}@media(max-width:700px){.account-page{padding:7rem 1rem 3rem}.account-details>div{grid-template-columns:1fr;gap:.25rem}.account-actions,.account-actions form,.account-actions a,.account-actions button{width:100%}}

/* V130 Account Text Contrast Fix */
.account-page .account-card h1,
.account-page .account-card h2,
.account-page .account-card h3 {
    color: #20382a !important;
    text-shadow: none !important;
}

.account-page .account-details strong,
.account-page .account-details div > strong {
    color: #20382a !important;
    opacity: 1 !important;
}

.account-page .account-card--center > p,
.account-page .account-foundation-note {
    color: #40584c !important;
}


/* V131 Account contrast cache-bust and definitive readable text colors */
.account-page,
.account-page .account-shell,
.account-page .account-card {
    color: #18251e !important;
}

.account-page .account-card h1,
.account-page .account-card .section-kicker,
.account-page .account-card > p,
.account-page .account-details span,
.account-page .account-details strong,
.account-page .account-foundation-note {
    opacity: 1 !important;
    filter: none !important;
    text-shadow: none !important;
    -webkit-text-fill-color: currentColor !important;
}

.account-page .account-card h1 {
    color: #20382a !important;
}

.account-page .account-card .section-kicker {
    color: #40584c !important;
}

.account-page .account-card > p,
.account-page .account-foundation-note {
    color: #40584c !important;
}

.account-page .account-details span {
    color: #40584c !important;
}

.account-page .account-details strong {
    color: #18251e !important;
}

/* V135 Customer Order History UI Polish */
.account-orders {
    margin-top: 1.5rem;
}

.account-order-list {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.account-order-card {
    padding: 1.35rem;
    border: 1px solid rgba(41, 61, 50, .16);
    border-radius: 10px;
    background: #fffdf7;
    box-shadow: 0 8px 24px rgba(20, 35, 26, .06);
}

.account-order-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(41, 61, 50, .14);
}

.account-order-heading > div {
    display: flex;
    align-items: baseline;
    gap: .45rem;
}

.account-order-heading span {
    color: #64736b;
    font-size: .86rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.account-order-heading strong {
    color: #20382a;
    font-size: 1.2rem;
}

.account-order-heading a,
.customer-order-back,
.customer-tracking-link {
    color: #315f38;
    font-weight: 800;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.account-order-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 1rem 0 0;
}

.account-order-summary > div {
    min-width: 0;
    padding: .9rem 1rem;
    border-radius: 8px;
    background: #f3efe4;
}

.account-order-summary dt {
    margin: 0 0 .35rem;
    color: #64736b;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.account-order-summary dd {
    margin: 0;
    color: #18251e;
    font-size: 1rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.account-orders-empty {
    margin-top: 1.1rem;
    padding: 1rem 1.1rem;
    border-left: 4px solid #9fbd62;
    background: #f1eddf;
}

.customer-order-back {
    display: inline-flex;
    margin-bottom: 1rem;
}

.customer-order-meta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 1.5rem;
}

.customer-order-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, .8fr);
    gap: 1.25rem;
    margin-top: 1.5rem;
}

.customer-order-panel {
    padding: 1.35rem;
    border: 1px solid rgba(41, 61, 50, .15);
    border-radius: 10px;
    background: #fffdf7;
}

.customer-order-panel h2 {
    margin: 0 0 1rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(41, 61, 50, .14);
}

.customer-order-items {
    display: grid;
    gap: .75rem;
}

.customer-order-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .25rem 1rem;
    align-items: center;
    padding: 1rem;
    border-radius: 8px;
    background: #f3efe4;
}

.customer-order-item strong {
    color: #20382a;
    line-height: 1.35;
}

.customer-order-item small {
    grid-column: 1;
    color: #64736b;
    font-size: .9rem;
    font-weight: 700;
}

.customer-order-item span {
    grid-column: 2;
    grid-row: 1 / span 2;
    color: #18251e;
    font-weight: 900;
    white-space: nowrap;
}

.customer-order-totals {
    display: grid;
    gap: .75rem;
    margin: 0;
}

.customer-order-totals > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(41, 61, 50, .12);
}

.customer-order-totals dt,
.customer-order-totals dd {
    margin: 0;
}

.customer-order-totals dd {
    color: #18251e;
    font-weight: 800;
}

.customer-order-totals .customer-order-total {
    margin-top: .2rem;
    padding: .9rem 1rem;
    border: 0;
    border-radius: 8px;
    background: #20382a;
    color: #fff;
}

.customer-order-totals .customer-order-total dt,
.customer-order-totals .customer-order-total dd {
    color: #fff;
    font-size: 1.05rem;
    font-weight: 900;
}

@media (max-width: 850px) {
    .account-order-summary,
    .customer-order-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .customer-order-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .account-order-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .account-order-summary,
    .customer-order-meta {
        grid-template-columns: 1fr;
    }

    .customer-order-item {
        grid-template-columns: 1fr;
    }

    .customer-order-item small,
    .customer-order-item span {
        grid-column: 1;
        grid-row: auto;
    }

    .customer-order-item span {
        margin-top: .35rem;
    }
}

/* V136 customer saved addresses */
.account-tools {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
}

.account-tool-card {
    display: grid;
    gap: .35rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid rgba(41, 61, 50, .2);
    border-radius: 10px;
    background: #f3efe4;
    color: #20382a;
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.account-tool-card:hover,
.account-tool-card:focus-visible {
    transform: translateY(-2px);
    border-color: #78994a;
    box-shadow: 0 10px 24px rgba(32, 56, 42, .1);
}

.account-tool-card span {
    font-size: .8rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.account-tool-card strong {
    color: #18251e;
    font-size: 1rem;
}

.address-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.address-card {
    padding: 1.5rem;
    border: 1px solid rgba(41, 61, 50, .16);
    border-radius: 12px;
    background: #fffdf7;
    box-shadow: 0 12px 30px rgba(32, 56, 42, .07);
}

.address-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.address-card-heading h2 {
    margin: .25rem 0 0;
}

.address-saved-badge {
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #e5edd4;
    color: #355027;
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.address-form {
    display: grid;
    gap: 1rem;
}

.address-form-columns {
    display: grid;
    grid-template-columns: 1.2fr 1fr .8fr;
    gap: .8rem;
}

.address-form-actions {
    margin-top: .25rem;
}

.address-delete-form {
    margin-top: .9rem;
}

.account-text-button {
    padding: 0;
    border: 0;
    background: transparent;
    color: #7a352d;
    font: inherit;
    font-weight: 800;
    text-decoration: underline;
    cursor: pointer;
}

.notice.success {
    border-left: 4px solid #78994a;
    background: #edf3df;
    color: #294022;
}

@media (max-width: 850px) {
    .address-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .address-card {
        padding: 1.1rem;
    }

    .address-form-columns {
        grid-template-columns: 1fr;
    }
}


/* V140 — streamlined account, cart, and Connect header actions */
.nav-shell {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: clamp(1.25rem, 2.2vw, 2.75rem);
}
.primary-nav {
    justify-self: center;
    gap: clamp(1.5rem, 2.25vw, 2.8rem);
}
.header-actions {
    position: relative;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: clamp(.9rem, 1.5vw, 1.5rem);
    min-height: 58px;
    white-space: nowrap;
}
.header-action-link,
.connect-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 58px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--white);
    text-decoration: none;
    text-transform: uppercase;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .07em;
    cursor: pointer;
}
.header-action-link:hover,
.header-action-link:focus-visible,
.header-action-link.active,
.connect-toggle:hover,
.connect-toggle:focus-visible,
.connect-toggle[aria-expanded="true"] { color: var(--green-light); }
.connect-toggle span {
    display: inline-block;
    margin-left: .35rem;
    font-size: .9rem;
    transition: transform .18s ease;
}
.connect-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.header-actions .cart-link { margin: 0; gap: .42rem; }
.header-actions .cart-link span,
.mobile-header-actions .cart-link span {
    min-width: 1.45rem;
    height: 1.45rem;
    padding: 0 .32rem;
    font-size: .72rem;
}
.connect-dropdown { position: relative; }
.connect-menu {
    position: absolute;
    top: calc(100% - 2px);
    right: 0;
    z-index: 120;
    width: 190px;
    padding: .45rem;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(5,8,6,.98);
    box-shadow: 0 16px 36px rgba(0,0,0,.42);
}
.connect-menu[hidden] { display: none; }
.connect-menu a,
.connect-empty {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: .55rem .7rem;
    color: #eef1e9;
    text-decoration: none;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
}
.connect-menu a:hover,
.connect-menu a:focus-visible { background: rgba(139,169,86,.16); color: var(--green-light); }
.connect-empty { color: #9ba79c; }
.mobile-header-actions { display: none; }

@media (max-width: 1180px) and (min-width: 1051px) {
    .nav-shell { gap: 1rem; }
    .primary-nav { gap: 1.2rem; }
    .header-actions { gap: .75rem; }
    .primary-nav a,
    .header-action-link,
    .connect-toggle { font-size: .66rem; letter-spacing: .045em; }
}

@media (max-width: 1050px) {
    .nav-shell { grid-template-columns: 1fr auto; }
    .header-actions { display: none; }
    .mobile-header-actions {
        display: grid;
        width: 100%;
        border-top: 1px solid rgba(255,255,255,.08);
        margin-top: .35rem;
    }
    .mobile-header-actions > a,
    .mobile-header-actions > .connect-toggle {
        width: 100%;
        min-height: 48px;
        justify-content: flex-start;
        border-bottom: 1px solid rgba(255,255,255,.06);
    }
    .mobile-header-actions .cart-link { margin: 0; }
    .mobile-connect-toggle { justify-content: space-between !important; }
    .mobile-connect-menu {
        position: static;
        width: 100%;
        padding: .2rem 0 .55rem 1rem;
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.08);
        box-shadow: none;
    }
    .mobile-connect-menu a { min-height: 40px; }
    .mobile-social-toggle,
    .mobile-social-links { display: none !important; }
}


/* V141 — keep Account, Cart, and Connect on one mobile utility row */
@media (max-width: 1050px) {
    .mobile-header-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: stretch;
        width: 100%;
        margin-top: .35rem;
        border-top: 1px solid rgba(255,255,255,.08);
    }

    .mobile-header-actions > a,
    .mobile-header-actions > .connect-toggle {
        width: 100%;
        min-width: 0;
        min-height: 52px;
        padding: 0 .3rem;
        justify-content: center;
        gap: .3rem;
        border-right: 1px solid rgba(255,255,255,.06);
        border-bottom: 1px solid rgba(255,255,255,.08);
        font-size: clamp(.58rem, 2.8vw, .7rem);
        letter-spacing: .045em;
        text-align: center;
        white-space: nowrap;
    }

    .mobile-header-actions > .connect-toggle {
        justify-content: center !important;
        border-right: 0;
    }

    .mobile-header-actions .cart-link {
        display: inline-flex;
        flex-direction: row;
        align-items: center;
        margin: 0;
    }

    .mobile-header-actions .cart-link span {
        flex: 0 0 auto;
        min-width: 1.35rem;
        height: 1.35rem;
        padding: 0 .28rem;
        font-size: .66rem;
    }

    .mobile-connect-menu {
        grid-column: 1 / -1;
        position: static;
        width: 100%;
        padding: .3rem .4rem .55rem;
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.08);
        box-shadow: none;
    }

    .mobile-connect-menu a,
    .mobile-connect-menu .connect-empty {
        justify-content: flex-start;
        min-height: 40px;
        padding: .5rem .65rem;
        font-size: .7rem;
    }
}

/* V143 — phone menu refinement: narrower panel aligned to the viewport's right edge. */
@media (max-width: 700px) {
    .primary-nav {
        left: auto;
        right: -1rem;
        width: min(72vw, 340px);
        box-sizing: border-box;
        border-left: 1px solid rgba(255,255,255,.10);
        border-bottom: 1px solid rgba(255,255,255,.10);
        box-shadow: -12px 16px 32px rgba(0,0,0,.42);
    }
}

/* V144 page-builder content shared across public pages. */
.home-builder-lead{max-width:720px}
.home-builder-lead br+br{display:block;content:"";margin-top:.85rem}
.page-builder-content{position:relative;z-index:1}

/* V147: make the desktop Home hero title and introduction truly editable.
   The approved hero artwork contains legacy title/body/button pixels. This
   live panel masks only that lower-left area while preserving the baked
   PineWake wordmark, tagline, divider, and the scenic right side. */
@media (min-width: 701px) {
    .hero-copy > .home-hero-live-panel {
        position: absolute !important;
        left: 0 !important;
        top: 31.5% !important;
        width: 43.5% !important;
        min-height: 53.5% !important;
        margin: 0 !important;
        padding: 3.1% 3.4% 2.4% 3.25% !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important;
        background: linear-gradient(90deg,
            rgba(2, 4, 3, .99) 0%,
            rgba(2, 4, 3, .98) 73%,
            rgba(2, 4, 3, .90) 86%,
            rgba(2, 4, 3, 0) 100%) !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: none !important;
        box-sizing: border-box !important;
        z-index: 2 !important;
    }

    .hero-copy .home-hero-live-panel h1 {
        display: block !important;
        margin: 0 0 1.05rem !important;
        max-width: 36rem !important;
        color: #f5f3ed !important;
        font-family: Georgia, "Times New Roman", serif !important;
        font-size: clamp(2rem, 2.75vw, 3.1rem) !important;
        line-height: 1.02 !important;
        text-shadow: 0 3px 18px rgba(0, 0, 0, .58) !important;
    }

    .hero-copy .home-hero-live-panel .home-builder-lead {
        display: block !important;
        max-width: 35rem !important;
        color: rgba(245, 243, 237, .92) !important;
        font-size: clamp(.78rem, .92vw, 1.02rem) !important;
        line-height: 1.5 !important;
    }

    .hero-copy .home-hero-live-panel .home-builder-lead p {
        margin: 0 0 .78rem !important;
    }

    .hero-copy .home-hero-live-panel .hero-actions {
        position: static !important;
        left: auto !important;
        top: auto !important;
        width: 100% !important;
        height: auto !important;
        margin: .75rem 0 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr) !important;
        gap: 1rem !important;
        pointer-events: none !important;
    }

    .hero-copy .home-hero-live-panel .hero-actions .button {
        min-height: 52px !important;
        height: auto !important;
        padding: .8rem 1rem !important;
        font-size: clamp(.62rem, .78vw, .8rem) !important;
        pointer-events: auto !important;
    }
}

/* V148 — rebuild the desktop Home hero as a genuinely layered component.
   The clean scene is artwork only; all branding, editable copy, buttons, and
   the scroll prompt are live HTML. Mobile keeps its existing approved hero. */
@media (min-width: 701px) {
    .home-layered-hero {
        min-height: 100vh !important;
        min-height: 100svh !important;
        display: grid !important;
        align-items: center !important;
        isolation: isolate !important;
        background: #030504 !important;
        background-image: none !important;
        background-position: initial !important;
        background-size: initial !important;
        overflow: hidden !important;
    }

    .home-layered-hero::before {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: -3 !important;
        background-image: var(--home-hero-image) !important;
        background-position: var(--home-hero-position, center center) !important;
        background-size: cover !important;
        background-repeat: no-repeat !important;
        opacity: 1 !important;
        pointer-events: none !important;
    }

    /* The bundled clean scene has its open dark space on the right. Flipping
       only the default artwork places that space beneath the left-side copy.
       Administrator-uploaded artwork remains in its original orientation. */
    .home-layered-hero--default-art::before {
        transform: scaleX(-1) !important;
    }

    .home-layered-hero::after {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: -2 !important;
        background:
            linear-gradient(90deg,
                rgba(2, 4, 3, .98) 0%,
                rgba(2, 4, 3, .91) 27%,
                rgba(2, 4, 3, .57) 47%,
                rgba(2, 4, 3, .10) 72%,
                rgba(2, 4, 3, .18) 100%),
            linear-gradient(180deg,
                rgba(0, 0, 0, .18) 0%,
                transparent 30%,
                transparent 69%,
                rgba(0, 0, 0, .54) 100%) !important;
        pointer-events: none !important;
    }

    .home-layered-hero .hero-shade {
        display: block !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: -1 !important;
        background: radial-gradient(circle at 69% 48%, transparent 0 27%, rgba(0, 0, 0, .20) 82%) !important;
        pointer-events: none !important;
    }

    .home-layered-hero .hero-copy {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        inset: auto !important;
        z-index: 4 !important;
        width: min(650px, 45vw) !important;
        min-height: 100vh !important;
        min-height: 100svh !important;
        margin: 0 0 0 max(3.5rem, calc((100vw - var(--max-width)) / 2 + 1rem)) !important;
        padding: clamp(7rem, 11vh, 9rem) 0 clamp(5.5rem, 8vh, 7rem) !important;
        box-sizing: border-box !important;
        pointer-events: auto !important;
    }

    .home-layered-hero .hero-copy > * {
        visibility: visible !important;
        opacity: 1 !important;
    }

    .home-layered-hero .hero-logo {
        display: block !important;
        margin: 0 !important;
        color: #f3f1eb !important;
        font-size: clamp(4.25rem, 6.8vw, 7rem) !important;
        line-height: .84 !important;
        font-weight: 1000 !important;
        letter-spacing: .025em !important;
        text-shadow: 0 4px 24px rgba(0, 0, 0, .58) !important;
    }

    .home-layered-hero .tagline {
        display: block !important;
        margin: 1.15rem 0 .55rem !important;
        color: #8baa57 !important;
        font-size: clamp(.88rem, 1.25vw, 1.22rem) !important;
        font-weight: 900 !important;
        letter-spacing: .20em !important;
        text-transform: uppercase !important;
        text-shadow: 0 3px 16px rgba(0, 0, 0, .66) !important;
    }

    .home-layered-hero .tree-divider {
        display: flex !important;
        width: min(100%, 590px) !important;
        margin: .65rem 0 1.65rem !important;
        color: #89a951 !important;
    }

    .home-layered-hero .home-hero-live-panel {
        position: static !important;
        inset: auto !important;
        width: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
        background: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        box-sizing: border-box !important;
    }

    .home-layered-hero .home-hero-live-panel h1 {
        display: block !important;
        margin: 0 0 1rem !important;
        max-width: 610px !important;
        color: #f5f3ed !important;
        font-family: Georgia, "Times New Roman", serif !important;
        font-size: clamp(2.2rem, 3.25vw, 3.8rem) !important;
        line-height: .98 !important;
        text-shadow: 0 4px 20px rgba(0, 0, 0, .68) !important;
    }

    .home-layered-hero .home-builder-lead {
        display: block !important;
        max-width: 590px !important;
        color: rgba(245, 243, 237, .94) !important;
        font-size: clamp(.86rem, 1vw, 1.05rem) !important;
        line-height: 1.55 !important;
        text-shadow: 0 2px 12px rgba(0, 0, 0, .72) !important;
    }

    .home-layered-hero .home-builder-lead p {
        margin: 0 0 .82rem !important;
    }

    .home-layered-hero .home-hero-live-panel .hero-actions {
        position: static !important;
        inset: auto !important;
        width: min(100%, 590px) !important;
        height: auto !important;
        margin: 1.15rem 0 0 !important;
        display: grid !important;
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr) !important;
        gap: 1rem !important;
        pointer-events: auto !important;
    }

    .home-layered-hero .home-hero-live-panel .hero-actions .button {
        display: inline-flex !important;
        width: 100% !important;
        min-height: 54px !important;
        height: auto !important;
        margin: 0 !important;
        padding: .9rem 1.1rem !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        color: #f5f3ed !important;
        font-size: clamp(.66rem, .78vw, .82rem) !important;
        line-height: 1.15 !important;
        letter-spacing: .065em !important;
        white-space: nowrap !important;
        box-shadow: 0 10px 30px rgba(0, 0, 0, .18) !important;
    }

    .home-layered-hero .hero-actions .button-green {
        background: #6d8e3e !important;
        border-color: #6d8e3e !important;
    }

    .home-layered-hero .hero-actions .button-outline {
        background: rgba(3, 5, 4, .70) !important;
        border-color: rgba(245, 243, 237, .62) !important;
        backdrop-filter: blur(2px);
    }

    .home-layered-hero .hero-actions .button:hover,
    .home-layered-hero .hero-actions .button:focus-visible {
        transform: translateY(-2px) !important;
    }

    .home-layered-hero .scroll-prompt {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        z-index: 5 !important;
        pointer-events: auto !important;
    }

    .home-layered-hero .hero-link-hotspots {
        display: none !important;
    }
}

@media (min-width: 701px) and (max-width: 1050px) {
    .home-layered-hero .hero-copy {
        width: min(600px, 56vw) !important;
        margin-left: 2.4rem !important;
    }

    .home-layered-hero .hero-logo {
        font-size: clamp(3.8rem, 7vw, 5.8rem) !important;
    }
}

/* V152 — ensure administrator-uploaded desktop Home hero artwork and its
   readability overlays span the complete hero viewport. Earlier legacy
   .hero pseudo-element dimensions were still limiting these layers to 55vw. */
@media (min-width: 701px) {
    .home-layered-hero::before {
        inset: 0 !important;
        left: 0 !important;
        right: 0 !important;
        top: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        height: 100% !important;
        transform-origin: center center !important;
        background-position: center center !important;
        background-size: cover !important;
        background-repeat: no-repeat !important;
    }

    .home-layered-hero::after {
        inset: 0 !important;
        left: 0 !important;
        right: 0 !important;
        top: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        height: 100% !important;
        transform: none !important;
        border-radius: 0 !important;
        background:
            linear-gradient(90deg,
                rgba(2, 4, 3, .94) 0%,
                rgba(2, 4, 3, .78) 27%,
                rgba(2, 4, 3, .46) 48%,
                rgba(2, 4, 3, .12) 72%,
                rgba(2, 4, 3, .10) 100%),
            linear-gradient(180deg,
                rgba(0, 0, 0, .14) 0%,
                transparent 30%,
                transparent 68%,
                rgba(0, 0, 0, .48) 100%) !important;
    }
}

/* V154 — raise the desktop Home hero scroll prompt so it remains fully
   visible above the viewport edge and desktop taskbar/browser chrome. */
@media (min-width: 701px) {
    .home-layered-hero .scroll-prompt {
        bottom: 3.75rem !important;
    }
}


/* V158 — desktop Home hero text-only scroll prompt. */
@media (min-width: 701px) {
    .home-layered-hero .scroll-prompt {
        left: 50% !important;
        right: auto !important;
        bottom: 1.35rem !important;
        width: auto !important;
        display: block !important;
        transform: translateX(-50%) !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: center !important;
        white-space: nowrap !important;
        font-size: .72rem !important;
        letter-spacing: .08em !important;
        line-height: 1.2 !important;
    }

    .home-layered-hero .scroll-prompt .mouse-icon {
        display: none !important;
    }
}

/* V161 — mobile-only minimal Home hero.
   Desktop remains unchanged. Remove all mobile hero artwork and present the
   editable Home content as a deliberate dark mobile landing screen. */
@media (max-width: 700px) {
    .home-layered-hero {
        position: relative !important;
        display: flex !important;
        align-items: stretch !important;
        justify-content: center !important;
        min-height: calc(100svh - 92px) !important;
        height: auto !important;
        overflow: hidden !important;
        isolation: isolate !important;
        background: #030504 !important;
        background-color: #030504 !important;
        background-image: none !important;
    }

    .home-layered-hero::before,
    .home-layered-hero::after,
    .home-layered-hero .hero-shade,
    .home-layered-hero .mobile-title-reveal,
    .home-layered-hero .mobile-tagline-reveal,
    .home-layered-hero .hero-link-hotspots {
        display: none !important;
        content: none !important;
        background-image: none !important;
    }

    .home-layered-hero .hero-copy {
        position: relative !important;
        inset: auto !important;
        z-index: 2 !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: stretch !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        min-height: calc(100svh - 92px) !important;
        margin: 0 !important;
        padding: clamp(3.5rem, 9vh, 5.5rem) 1.35rem 6.25rem !important;
        box-sizing: border-box !important;
        background: linear-gradient(180deg, #030504 0%, #050907 52%, #020403 100%) !important;
        pointer-events: auto !important;
        text-align: center !important;
    }

    .home-layered-hero .hero-copy > *,
    .home-layered-hero .home-hero-live-panel,
    .home-layered-hero .home-hero-live-panel > * {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .home-layered-hero .hero-logo {
        margin: 0 !important;
        color: #f3f1eb !important;
        font-size: clamp(3.15rem, 15vw, 4.8rem) !important;
        line-height: .9 !important;
        font-weight: 1000 !important;
        letter-spacing: .035em !important;
        text-shadow: none !important;
    }

    .home-layered-hero .tagline {
        margin: 1rem 0 .55rem !important;
        max-width: none !important;
        color: #8baa57 !important;
        font-size: clamp(.72rem, 3.4vw, .92rem) !important;
        line-height: 1.45 !important;
        font-weight: 900 !important;
        letter-spacing: .16em !important;
        text-transform: uppercase !important;
    }

    .home-layered-hero .tree-divider {
        display: flex !important;
        width: 100% !important;
        margin: .7rem 0 2.2rem !important;
        color: #89a951 !important;
    }

    .home-layered-hero .home-hero-live-panel {
        position: static !important;
        inset: auto !important;
        width: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: none !important;
        pointer-events: auto !important;
    }

    .home-layered-hero .home-hero-live-panel h1 {
        display: block !important;
        margin: 0 auto 1.25rem !important;
        max-width: 20rem !important;
        color: #f5f3ed !important;
        font-family: Georgia, "Times New Roman", serif !important;
        font-size: clamp(2.15rem, 9.5vw, 3.15rem) !important;
        line-height: 1.04 !important;
        text-shadow: none !important;
    }

    .home-layered-hero .home-builder-lead {
        display: block !important;
        max-width: 31rem !important;
        margin: 0 auto !important;
        color: rgba(245,243,237,.82) !important;
        font-size: clamp(.95rem, 4vw, 1.08rem) !important;
        line-height: 1.6 !important;
        text-shadow: none !important;
    }

    .home-layered-hero .home-builder-lead p {
        display: block !important;
        margin: 0 0 .85rem !important;
    }

    .home-layered-hero .home-hero-live-panel .hero-actions {
        position: static !important;
        inset: auto !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: .85rem !important;
        width: min(100%, 31rem) !important;
        height: auto !important;
        margin: 1.55rem auto 0 !important;
        pointer-events: auto !important;
    }

    .home-layered-hero .home-hero-live-panel .hero-actions .button {
        display: inline-flex !important;
        width: 100% !important;
        min-height: 56px !important;
        height: auto !important;
        margin: 0 !important;
        padding: .95rem 1rem !important;
        border-width: 1px !important;
        color: #f5f3ed !important;
        font-size: .78rem !important;
        line-height: 1.2 !important;
        letter-spacing: .08em !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
    }

    .home-layered-hero .hero-actions .button-green {
        background: #739842 !important;
        border-color: #739842 !important;
    }

    .home-layered-hero .hero-actions .button-outline {
        background: transparent !important;
        border-color: #739842 !important;
        color: #8fb85a !important;
    }

    .home-layered-hero .scroll-prompt {
        position: absolute !important;
        left: 50% !important;
        right: auto !important;
        bottom: 1.2rem !important;
        z-index: 5 !important;
        display: block !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: translateX(-50%) !important;
        color: rgba(245,243,237,.82) !important;
        font-size: .68rem !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        letter-spacing: .13em !important;
        text-align: center !important;
        text-transform: uppercase !important;
        white-space: nowrap !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    /* The live Home content now lives inside the mobile hero. Avoid rendering
       the legacy duplicate introduction immediately below it. */
    .mobile-intro {
        display: none !important;
    }
}

/* V162 — separate mobile-only Home hero copy. Desktop keeps the existing
   Home title and introduction; phones display the optional mobile fields. */
.home-hero-mobile-content {
    display: none;
}

@media (max-width: 700px) {
    .home-layered-hero .home-hero-desktop-content {
        display: none !important;
    }

    .home-layered-hero .home-hero-mobile-content {
        display: block !important;
    }
}

/* V164 — mobile-only Home hero shop CTA.
   Desktop remains unchanged: the extra button and mobile wording are hidden. */
.home-mobile-shop-button,
.home-cta-mobile-label {
    display: none !important;
}

@media (max-width: 700px) {
    .home-layered-hero .home-mobile-shop-button {
        display: inline-flex !important;
    }

    .home-layered-hero .home-cta-desktop-label {
        display: none !important;
    }

    .home-layered-hero .home-cta-mobile-label {
        display: inline !important;
    }
}

/* V166 — scroll the actual phone navigation drawer, rather than creating a
   nested scroll area inside Connect. This keeps every expanded social link
   reachable while the fixed 58px mobile header remains visible. */
@media (max-width: 700px) {
    .primary-nav.open {
        height: calc(100vh - 58px);
        height: calc(100dvh - 58px);
        max-height: calc(100vh - 58px);
        max-height: calc(100dvh - 58px);
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
    }

    .mobile-connect-menu:not([hidden]) {
        display: block;
        max-height: none;
        overflow: visible;
    }

    .mobile-connect-menu a,
    .mobile-connect-menu .connect-empty {
        flex: 0 0 auto;
    }
}

/* V171 — Home hero Shop CTA is mobile-only.
   Keep the link available on phones while guaranteeing it is absent from
   desktop and tablet layouts wider than the established 700px breakpoint. */
@media screen and (min-width: 701px) {
    .home-layered-hero .hero-actions .home-mobile-shop-button,
    .mobile-intro .hero-actions .home-mobile-shop-button {
        display: none !important;
    }
}

@media screen and (max-width: 700px) {
    .home-layered-hero .hero-actions .home-mobile-shop-button,
    .mobile-intro .hero-actions .home-mobile-shop-button {
        display: inline-flex !important;
    }
}


/* V180 — journal archive, navigation, related entries, and album connection. */
.journal-index__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2rem;
}

.journal-index__header h2,
.journal-related h2 {
    margin: .2rem 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.journal-archive {
    display: grid;
    gap: .45rem;
    min-width: 210px;
}

.journal-archive label {
    color: #526057;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.journal-archive select {
    width: 100%;
    min-height: 46px;
    padding: .7rem 2.5rem .7rem .9rem;
    border: 1px solid rgba(41,61,50,.28);
    border-radius: 6px;
    background: #fff;
    color: #20281f;
    font: inherit;
}

.journal-gallery-link {
    display: flex;
    justify-content: center;
    margin: 3rem 0 0;
}

.journal-entry-navigation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 1rem;
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(41,61,50,.2);
}

.journal-entry-navigation__slot--next {
    text-align: right;
}

.journal-entry-navigation__link {
    display: inline-grid;
    gap: .35rem;
    color: #20281f;
    text-decoration: none;
}

.journal-entry-navigation__link span {
    color: #5f7131;
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.journal-entry-navigation__link strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2rem;
}

.journal-entry-navigation__link:hover strong,
.journal-entry-navigation__link:focus-visible strong {
    text-decoration: underline;
}

.journal-related {
    padding-top: 0;
}

.journal-related__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 1.25rem;
    margin-top: 1.5rem;
}

.journal-related__card {
    overflow: hidden;
    border: 1px solid rgba(41,61,50,.18);
    background: #f8f4ea;
}

.journal-related__card a {
    display: block;
    color: #20281f;
    text-decoration: none;
}

.journal-related__card img {
    display: block;
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
}

.journal-related__card div {
    padding: 1rem;
}

.journal-related__card h3 {
    margin: .2rem 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
}

.journal-related__card a:hover h3,
.journal-related__card a:focus-visible h3 {
    text-decoration: underline;
}

@media (max-width: 700px) {
    .journal-index__header {
        align-items: stretch;
        flex-direction: column;
        gap: 1.25rem;
    }

    .journal-archive {
        min-width: 0;
    }

    .journal-grid--latest [data-journal-desktop-extra] {
        display: none;
    }

    .journal-entry-navigation,
    .journal-related__grid {
        grid-template-columns: 1fr;
    }

    .journal-entry-navigation__slot--next {
        text-align: left;
    }
}

/* V189 scheduled, styled, and dismissible site announcements */
.site-announcement{position:relative;z-index:1001;width:100%;padding:0;text-align:center;font-size:13px;font-weight:800;line-height:1.4;letter-spacing:.02em}
.site-announcement__inner{position:relative;display:flex;min-height:40px;align-items:center;justify-content:center;gap:12px;width:min(1400px,calc(100% - 32px));margin:0 auto;padding:8px 44px}
.site-announcement__text{display:inline;color:inherit}
.site-announcement__cta{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 11px;border:1px solid currentColor;border-radius:999px;color:inherit;text-decoration:none;font-weight:900;white-space:nowrap}
.site-announcement__cta:hover{background:rgba(255,255,255,.16)}
.site-announcement__dismiss{position:absolute;right:8px;top:50%;width:30px;height:30px;transform:translateY(-50%);border:0;border-radius:50%;background:transparent;color:inherit;font:inherit;font-size:22px;line-height:1;cursor:pointer;opacity:.82}
.site-announcement__dismiss:hover,.site-announcement__dismiss:focus-visible{background:rgba(255,255,255,.15);opacity:1}
.site-announcement--pine{background:#294333;color:#fff}
.site-announcement--light{background:#f4efe5;color:#16251c;border-bottom:1px solid rgba(22,37,28,.18)}
.site-announcement--gold{background:#c39b48;color:#171c14}
.site-announcement--urgent{background:#8f2f2a;color:#fff}
.site-announcement--priority-low{font-weight:700}
.site-announcement--priority-urgent{font-weight:900;letter-spacing:.035em}
.site-announcement[hidden]{display:none!important}
@media(max-width:780px){
  .site-announcement{font-size:11px;line-height:1.3}
  .site-announcement__inner{min-height:0;flex-wrap:wrap;gap:5px 9px;width:100%;padding:6px 42px 6px 12px}
  .site-announcement__text{flex:1 1 100%;overflow-wrap:anywhere}
  .site-announcement__cta{min-height:25px;padding:3px 9px}
  .site-announcement__dismiss{right:6px}
}

/* V199 — Consistent product image presentation */
.product-detail-image,
.shop-product-card__image-wrap,
.shop-product-card--refined .shop-product-card__image-wrap,
.cart-item-image {
    background: #fff;
}

.product-detail-image img,
.shop-product-card__image-wrap img,
.shop-product-card--refined .shop-product-card__image-wrap img,
.cart-item-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.product-detail-image img {
    aspect-ratio: 4 / 3;
}


/* V201 — Printful product gallery and color-aware mockup switching */
.product-detail-gallery { min-width: 0; }
.product-detail-gallery .product-detail-image { position: relative; background: #fff; }
.product-detail-gallery .product-detail-image img { background: #fff; object-fit: contain; }
.product-gallery-thumbnails {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.product-gallery-thumbnail {
    min-width: 0;
    aspect-ratio: 1 / 1;
    padding: 4px;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 7px;
    background: #fff;
    cursor: pointer;
}
.product-gallery-thumbnail img { width: 100%; height: 100%; object-fit: contain; }
.product-gallery-thumbnail.is-active,
.product-gallery-thumbnail:focus-visible { border-color: #55743d; outline: none; }
.product-gallery-arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 44px;
    height: 56px;
    transform: translateY(-50%);
    border: 0;
    border-radius: 6px;
    background: rgba(21, 37, 28, .82);
    color: #fff;
    font-size: 2.1rem;
    line-height: 1;
    cursor: pointer;
}
.product-gallery-arrow--previous { left: 12px; }
.product-gallery-arrow--next { right: 12px; }
.product-gallery-arrow:hover,
.product-gallery-arrow:focus-visible { background: #15251c; outline: 2px solid #9fbd62; }
@media (max-width: 760px) {
    .product-gallery-thumbnails { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .product-gallery-arrow { width: 38px; height: 48px; }
}


/* V202 — show only mockups for the selected product color */
.product-gallery-thumbnail[hidden] { display: none !important; }
.product-gallery-arrow[hidden] { display: none !important; }
.product-gallery-thumbnails {
    grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
}


/* V215 — Stripe checkout summary and variant-aware checkout polish */
.checkout-order-summary .checkout-order-totals{
  display:block!important;
  margin-top:1rem;
  padding-top:.35rem;
  font-size:1rem!important;
}
.checkout-order-summary .checkout-order-totals>div{
  display:flex!important;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.25rem;
  padding:.58rem 0;
  border-bottom:1px solid rgba(41,61,50,.12);
  font-size:1rem!important;
}
.checkout-order-summary .checkout-order-totals>div span{
  flex:1 1 auto;
  min-width:0;
}
.checkout-order-summary .checkout-order-totals>div strong{
  flex:0 0 auto;
  white-space:nowrap;
  text-align:right;
}
.checkout-order-summary .checkout-order-totals .cart-total-row{
  margin-top:.25rem;
  padding-top:.9rem;
  border-top:2px solid rgba(41,61,50,.2);
  border-bottom:0;
  font-size:1.16rem!important;
}
.checkout-order-summary [data-checkout-shipping-note]{
  display:block!important;
  margin:.9rem 0 0!important;
  padding:.9rem 0 0!important;
  border:0!important;
  border-top:1px solid rgba(41,61,50,.12)!important;
  color:#607067;
  font-size:.9rem;
  line-height:1.45;
}

/* V216 — order confirmation details */
.checkout-confirmation-summary{display:grid;gap:.8rem;margin:1.5rem auto 2rem;max-width:620px;text-align:left}
.checkout-confirmation-summary>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:1rem;padding:.85rem 0;border-bottom:1px solid rgba(41,61,50,.15);align-items:start}
.checkout-confirmation-summary span{color:#607067;font-weight:700}
.checkout-confirmation-summary strong{text-align:right;overflow-wrap:anywhere}
@media (max-width:640px){.checkout-confirmation-summary>div{grid-template-columns:1fr;gap:.25rem}.checkout-confirmation-summary strong{text-align:left}}

/* v231 cart layout and interface refinement */
@media (min-width: 901px) {
  .cart-page .cart-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    column-gap: 2rem;
    row-gap: 1.5rem;
    align-items: start;
    max-width: 1320px;
  }
  .cart-page .cart-shell > div:first-child {
    grid-column: 1 / -1;
  }
  .cart-page .cart-items {
    grid-column: 1;
    margin: 0;
  }
  .cart-page .cart-summary {
    grid-column: 2;
    grid-row: 2;
    position: sticky;
    top: 7.5rem;
    width: 100%;
    max-width: none;
    margin: 0;
  }
  .cart-page .cart-empty {
    grid-column: 1 / -1;
  }
}

.cart-page .cart-item {
  border-radius: 4px;
  box-shadow: 0 8px 24px rgba(32, 49, 40, .06);
}
.cart-page .cart-item-image {
  overflow: hidden;
  border-radius: 3px;
  background: #fff;
}
.cart-page .cart-item input {
  border: 1px solid rgba(41, 61, 50, .28);
  border-radius: 3px;
  background: #fff;
  color: #243b31;
  font: inherit;
  font-weight: 700;
}
.cart-page .cart-item button {
  padding: .55rem .25rem;
  font: inherit;
  font-weight: 700;
  text-underline-offset: .2em;
}
.cart-page .cart-summary {
  border-radius: 4px;
  box-shadow: 0 14px 34px rgba(18, 35, 26, .16);
}
.cart-page .cart-summary > div {
  gap: 1rem;
  padding: .55rem 0;
}
.cart-page .cart-summary .cart-total-row {
  margin-top: .35rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, .18);
  font-size: 1.35rem;
}
.cart-page .cart-summary > p {
  margin: .8rem 0 0;
  line-height: 1.5;
}
.cart-page .cart-summary #cart-free-shipping-note {
  font-weight: 800;
}
.cart-page .cart-summary .product-buy-button {
  width: 100%;
  margin-top: 1.25rem;
}

@media (max-width: 900px) {
  .cart-page .cart-summary {
    width: 100%;
    max-width: none;
    margin: 1.5rem 0 0;
  }
}

@media (max-width: 600px) {
  .cart-page .cart-item {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: .9rem 1rem;
    padding: .9rem;
  }
  .cart-page .cart-item-image {
    height: 78px;
  }
  .cart-page .cart-item h2 {
    font-size: 1.05rem;
  }
  .cart-page .cart-item label,
  .cart-page .cart-item button {
    grid-column: 2;
  }
  .cart-page .cart-summary {
    padding: 1.2rem;
  }
  .cart-page .cart-summary > div {
    font-size: 1.05rem;
  }
}


/* V232 — checkout shipping method selector */
.checkout-shipping-options{margin:1.35rem 0;padding:0;border:0}.checkout-shipping-options legend{margin-bottom:.75rem;font-weight:900;color:#243b31}.checkout-shipping-option{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;margin:.65rem 0;padding:1rem;border:1px solid rgba(41,61,50,.22);border-radius:4px;background:#fffdf7;cursor:pointer}.checkout-shipping-option:has(input:checked){border-color:#86a84f;box-shadow:0 0 0 2px rgba(134,168,79,.18)}.checkout-shipping-option input{width:1.15rem;height:1.15rem;margin:0;accent-color:#86a84f}.checkout-shipping-option span{display:grid;gap:.2rem}.checkout-shipping-option strong{font-size:1rem}.checkout-shipping-option small{color:#607067;line-height:1.35}.checkout-shipping-option b{white-space:nowrap;font-size:1.05rem}@media(max-width:520px){.checkout-shipping-option{grid-template-columns:auto 1fr}.checkout-shipping-option b{grid-column:2}}


/* V233 live Printful shipping quote controls */
.checkout-destination{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.25rem 0}.checkout-destination label{display:block;font-weight:800;margin-bottom:.4rem}.checkout-destination select,.checkout-destination input{width:100%;min-height:48px;padding:.7rem .8rem;border:1px solid rgba(14,49,37,.28);background:#fff;color:#102f25}.checkout-rate-status{grid-column:1/-1;margin:.15rem 0 .75rem;color:rgba(255,255,255,.78)}.checkout-shipping-option[hidden]{display:none!important}@media(max-width:680px){.checkout-destination{grid-template-columns:1fr}}

/* V234 — customer-facing shipping selector polish */
.checkout-summary-shipping{
  margin:1.15rem 0;
  padding:1rem;
  border:1px solid rgba(41,61,50,.16);
  background:#f7f1e5;
}
.checkout-summary-shipping legend{
  padding:0 .35rem;
  font-size:1.05rem;
  font-weight:900;
  color:#243b31;
}
.checkout-summary-shipping .checkout-rate-status{
  margin:.15rem 0 .8rem;
  color:#52645b;
  font-size:.9rem;
  line-height:1.45;
}
.checkout-summary-shipping .checkout-shipping-option{
  margin:.6rem 0 0;
  border:1px solid rgba(41,61,50,.2);
  border-radius:8px;
  background:#fffdf7;
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.checkout-summary-shipping .checkout-shipping-option:hover{
  border-color:#86a84f;
  transform:translateY(-1px);
}
.checkout-summary-shipping .checkout-shipping-option:has(input:checked){
  border-color:#789b42;
  box-shadow:0 0 0 3px rgba(134,168,79,.18);
}
.checkout-summary-shipping .checkout-shipping-option strong{
  font-size:1.02rem;
  color:#243b31;
}
.checkout-summary-shipping .checkout-shipping-option small{
  color:#607067;
}
.checkout-summary-shipping .checkout-shipping-option b{
  color:#243b31;
  font-size:1.08rem;
}
@media(max-width:900px){
  .checkout-summary-shipping{margin-top:1rem}
}

/* V235 — familiar two-column checkout UX */
.checkout-page{padding-top:7rem}
.checkout-shell-v235{max-width:1320px;grid-template-columns:minmax(0,1fr) minmax(360px,440px);gap:4rem;align-items:start}
.checkout-main-column{min-width:0;padding:1.25rem 0 2rem}
.checkout-main-column h1{margin:.2rem 0 .65rem;font-size:clamp(2.25rem,4vw,3.4rem)}
.checkout-intro{max-width:760px;margin:0 0 2rem;color:#50645a;line-height:1.6}
.checkout-form-v235{gap:0;margin-top:0}
.checkout-step{padding:1.55rem 0;border-top:1px solid rgba(41,61,50,.14)}
.checkout-step:first-of-type{border-top:0}
.checkout-step h2{display:flex;align-items:baseline;gap:.65rem;margin:0 0 1rem;font-size:1.35rem}
.checkout-step h2>span{display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:999px;background:#233c30;color:#fff;font-size:.9rem}
.checkout-step h2 small{margin-left:auto;color:#68786f;font-family:inherit;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.checkout-destination{margin:0;gap:1rem}
.checkout-destination label{font-size:.92rem}
.checkout-destination select,.checkout-destination input{min-height:54px;border-radius:7px;border-color:rgba(32,58,45,.22);box-shadow:0 1px 0 rgba(20,37,28,.04)}
.checkout-shipping-main{margin:0}
.checkout-shipping-main .checkout-rate-status{margin:0 0 .85rem;color:#586b61}
.checkout-shipping-main .checkout-shipping-option{min-height:92px;margin:.7rem 0 0;padding:1.05rem 1.15rem;border-radius:10px;background:#fff;border-color:rgba(41,61,50,.18);box-shadow:0 4px 18px rgba(27,47,37,.04)}
.checkout-shipping-main .checkout-shipping-option:hover{border-color:#789b42}
.checkout-shipping-main .checkout-shipping-option:has(input:checked){border-color:#789b42;background:#fbfdf6;box-shadow:0 0 0 2px rgba(120,155,66,.16),0 7px 22px rgba(27,47,37,.06)}
.checkout-shipping-main .checkout-shipping-option input{width:1.25rem;height:1.25rem}
.checkout-shipping-main .checkout-shipping-option span{gap:.28rem}
.checkout-shipping-main .checkout-shipping-option strong{font-size:1.08rem}
.checkout-shipping-main .checkout-shipping-option small{font-size:.92rem}
.checkout-shipping-main .checkout-shipping-option b{font-size:1.1rem}
.checkout-promo-panel{margin:0;padding:0;border:0;background:transparent}
.checkout-promo-panel .checkout-discount-controls{grid-template-columns:minmax(0,1fr) 112px}
.checkout-promo-panel .checkout-discount-controls input,.checkout-promo-panel .checkout-discount-controls button{height:52px;border-radius:7px}
.checkout-region-note{margin:.25rem 0 0;padding:1rem 1.1rem;border-radius:8px;background:#f6f0e2;color:#58675f;font-size:.9rem;line-height:1.5}
.checkout-order-summary-v235{position:sticky;top:7.25rem;padding:1.75rem;border:1px solid rgba(41,61,50,.13);border-radius:12px;background:#faf9f5;box-shadow:0 18px 48px rgba(24,42,33,.10)}
.checkout-order-summary-v235 h2{margin:0 0 1rem;font-size:1.55rem}
.checkout-order-summary-v235 .checkout-order-items{margin-bottom:.7rem}
.checkout-order-summary-v235 .checkout-order-line{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:.9rem;padding:1rem 0}
.checkout-order-thumb{position:relative;width:64px;height:64px;border:1px solid rgba(41,61,50,.13);border-radius:9px;background:#fff;overflow:visible}
.checkout-order-thumb img{width:100%;height:100%;object-fit:contain;border-radius:8px}
.checkout-order-thumb>span{position:absolute;top:-8px;right:-8px;display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#233c30;color:#fff;font-size:.72rem;font-weight:800}
.checkout-order-copy{display:grid;gap:.2rem;min-width:0}
.checkout-order-copy>strong{font-size:.98rem;line-height:1.3}
.checkout-order-copy small{color:#6b7771;font-size:.84rem}
.checkout-order-price{white-space:nowrap;font-size:.98rem}
.checkout-order-summary-v235 .checkout-order-totals{margin-top:.45rem;padding-top:.9rem;border-top:1px solid rgba(41,61,50,.14)}
.checkout-order-summary-v235 .checkout-order-totals>div{padding:.55rem 0;border:0}
.checkout-order-summary-v235 .checkout-order-totals .cart-total-row{margin-top:.55rem;padding-top:1rem;border-top:1px solid rgba(41,61,50,.18);font-size:1.35rem!important}
.checkout-order-summary-v235 .checkout-order-totals .cart-total-row strong{color:#18392a;font-size:1.45rem}
.checkout-order-summary-v235 [data-checkout-shipping-note]{margin:.7rem 0 0!important;padding:.8rem 0 0!important;font-size:.84rem!important}
.checkout-order-summary-v235 .checkout-submit-button{width:100%;min-height:58px;margin:1.25rem 0 0;border-radius:8px;font-size:1rem;letter-spacing:.02em}
.checkout-secure-note{display:block!important;margin:.7rem 0 0!important;padding:0!important;border:0!important;text-align:center;color:#68766f;font-size:.82rem;line-height:1.4}
@media(max-width:900px){
 .checkout-shell-v235{display:flex;flex-direction:column;gap:1.5rem}
 .checkout-main-column{order:1;width:100%}
 .checkout-order-summary-v235{order:2;position:static;width:100%;max-width:none;margin:0}
}
@media(max-width:600px){
 .checkout-page{padding-left:.85rem;padding-right:.85rem}
 .checkout-main-column{padding-top:.4rem}
 .checkout-step{padding:1.25rem 0}
 .checkout-step h2{font-size:1.15rem}
 .checkout-shipping-main .checkout-shipping-option{grid-template-columns:auto minmax(0,1fr);min-height:0;padding:.95rem}
 .checkout-shipping-main .checkout-shipping-option b{grid-column:2;margin-top:.2rem}
 .checkout-order-summary-v235{padding:1.15rem}
 .checkout-order-summary-v235 .checkout-order-line{grid-template-columns:56px minmax(0,1fr) auto;gap:.7rem}
 .checkout-order-thumb{width:56px;height:56px}
}

/* V236 Embedded Stripe Checkout */
.embedded-checkout-page{background:#f3ecdc;min-height:70vh;padding:clamp(2rem,4vw,4.5rem) 0 5rem}.embedded-checkout-root{width:min(1380px,calc(100% - 40px));margin:0 auto}.embedded-checkout-intro{max-width:850px;margin-bottom:2rem}.embedded-checkout-intro h1{margin:.15rem 0 .75rem;font-size:clamp(2.4rem,5vw,4rem);line-height:1}.embedded-checkout-intro>p:last-child{max-width:780px;font-size:1.08rem;line-height:1.65;color:#42584d}.embedded-checkout-preflight{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,470px);gap:clamp(2rem,5vw,5rem);align-items:start}.embedded-checkout-preflight-main{display:grid;gap:1.25rem}.checkout-preflight-card{background:rgba(255,255,255,.58);border:1px solid rgba(20,57,43,.13);border-radius:16px;padding:clamp(1.25rem,3vw,2rem);box-shadow:0 12px 34px rgba(20,47,37,.06)}.checkout-preflight-card h2{margin:0 0 1rem;font-size:1.35rem}.checkout-preflight-card h2 small{font-family:inherit;font-size:.72rem;font-weight:600;color:#65766d;margin-left:.35rem}.checkout-preflight-explainer ol{margin:0;padding-left:1.3rem;display:grid;gap:.85rem;color:#42584d;line-height:1.55}.embedded-order-summary{position:sticky;top:110px;background:#fff;border:1px solid rgba(20,57,43,.12);border-radius:18px;padding:clamp(1.25rem,3vw,2rem);box-shadow:0 18px 48px rgba(19,49,37,.1)}.embedded-order-summary .checkout-submit-button{width:100%;margin-top:1.4rem}.embedded-order-summary .checkout-secure-note{text-align:center;margin:.75rem 0 0;font-size:.88rem;color:#607066}.embedded-checkout-stage{max-width:1180px;margin:0 auto;background:#fff;border:1px solid rgba(20,57,43,.12);border-radius:20px;padding:clamp(1rem,3vw,2rem);box-shadow:0 22px 60px rgba(19,49,37,.11)}.embedded-checkout-stage-header{display:flex;justify-content:space-between;gap:1rem;align-items:end;padding:.25rem .5rem 1.25rem;border-bottom:1px solid rgba(20,57,43,.1);margin-bottom:1rem}.embedded-checkout-stage-header h2{margin:.15rem 0 0;font-size:clamp(1.7rem,3vw,2.4rem)}.embedded-checkout-loading{padding:3rem 1rem;text-align:center;color:#50645a;font-weight:700}.text-button{border:0;background:transparent;color:#173f31;text-decoration:underline;text-underline-offset:4px;font:inherit;font-weight:700;cursor:pointer}.text-button:hover{color:#769b3b}#stripe-embedded-checkout{min-height:620px}.embedded-checkout-root .checkout-discount-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem}.embedded-checkout-root .checkout-discount-controls input{min-width:0}.embedded-checkout-root #embedded-discount-message{min-height:1.4rem;margin:.65rem 0 0;font-weight:700}.embedded-checkout-root #embedded-discount-message.is-success{color:#2f6b3c}.embedded-checkout-root #embedded-discount-message.is-error{color:#9d352d}
@media(max-width:900px){.embedded-checkout-root{width:min(100% - 24px,700px)}.embedded-checkout-preflight{grid-template-columns:1fr}.embedded-order-summary{position:static}.embedded-checkout-stage-header{align-items:flex-start;flex-direction:column}.embedded-checkout-stage{padding:1rem}.embedded-checkout-page{padding-top:1.5rem}}
@media(max-width:560px){.embedded-checkout-root .checkout-discount-controls{grid-template-columns:1fr}.embedded-checkout-root .checkout-discount-controls button{width:100%}.embedded-checkout-intro h1{font-size:2.5rem}.checkout-preflight-card,.embedded-order-summary{border-radius:12px}}

/* V239: automatic two-column Embedded Checkout */
.embedded-checkout-page-v239{padding-top:clamp(1.5rem,3vw,3rem)}
.embedded-checkout-root-v239{width:min(1480px,calc(100% - 40px))}
.embedded-checkout-intro-v239{max-width:none;margin:0 0 1.5rem}
.embedded-checkout-intro-v239 h1{font-size:clamp(2.4rem,4vw,3.6rem)}
.embedded-checkout-intro-v239>p:last-child{max-width:760px;margin-bottom:0}
.embedded-checkout-layout-v239{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(360px,.72fr);gap:clamp(1.5rem,3.5vw,3.5rem);align-items:start}
.embedded-checkout-stage-v239{max-width:none;margin:0;min-width:0;padding:clamp(.75rem,1.7vw,1.35rem);border-radius:16px;background:#fff}
.embedded-checkout-stage-v239 #stripe-embedded-checkout{min-height:720px}
.embedded-order-summary-v239{position:sticky;top:100px;min-width:0;border-radius:16px;padding:clamp(1.2rem,2.4vw,1.75rem)}
.embedded-order-summary-v239 h2{margin:0 0 .75rem;font-size:1.6rem}
.embedded-order-summary-v239 .checkout-order-line{grid-template-columns:62px minmax(0,1fr) auto;gap:.8rem;padding:1rem 0}
.checkout-discount-card-v239{margin:1rem 0;padding:1rem;border-radius:10px;background:#f7f3e9;box-shadow:none}
.checkout-discount-title-v239{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.7rem}
.checkout-discount-title-v239 strong{font-size:1rem}
.checkout-discount-title-v239 span{font-size:.8rem;color:#68776f}
.embedded-order-summary-v239 .checkout-discount-controls{grid-template-columns:minmax(0,1fr) auto;gap:.55rem}
.embedded-order-summary-v239 .checkout-discount-controls input{min-width:0;padding:.8rem .9rem}
.embedded-order-summary-v239 .checkout-discount-controls button{padding:.8rem 1rem}
.embedded-order-summary-v239 #embedded-discount-message{min-height:0;margin:.55rem 0 0;font-size:.82rem}
.embedded-order-summary-v239 .checkout-secure-note{margin:1rem 0 0;text-align:center;font-size:.84rem;color:#607066}
@media(max-width:980px){
 .embedded-checkout-root-v239{width:min(100% - 24px,760px)}
 .embedded-checkout-layout-v239{grid-template-columns:1fr}
 .embedded-order-summary-v239{position:static;grid-row:1}
 .embedded-checkout-stage-v239{grid-row:2}
}
@media(max-width:560px){
 .embedded-checkout-root-v239{width:min(100% - 16px,760px)}
 .embedded-checkout-intro-v239{margin-bottom:1rem}
 .embedded-checkout-stage-v239,.embedded-order-summary-v239{border-radius:12px}
 .embedded-order-summary-v239 .checkout-order-line{grid-template-columns:54px minmax(0,1fr) auto}
 .embedded-order-summary-v239 .checkout-discount-controls{grid-template-columns:1fr}
 .embedded-order-summary-v239 .checkout-discount-controls button{width:100%}
}

/* V240 — Stripe is the single checkout interface */
.embedded-checkout-page-v240{
  padding-top:clamp(1.25rem,3vw,2.75rem);
}
.embedded-checkout-root-v240{
  width:min(1480px,calc(100% - 40px));
  margin:0 auto;
}
.embedded-checkout-intro-v240{
  max-width:820px;
  margin:0 0 1.35rem;
}
.embedded-checkout-intro-v240 h1{
  margin:.15rem 0 .5rem;
  font-size:clamp(2.5rem,5vw,4.2rem);
}
.embedded-checkout-intro-v240>p:last-child{
  margin:0;
  color:#50645a;
  line-height:1.6;
}
.checkout-discount-bar-v240{
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr);
  gap:.7rem 1.25rem;
  align-items:center;
  margin:0 0 1.1rem;
  padding:1rem 1.15rem;
  border:1px solid rgba(41,61,50,.13);
  border-radius:12px;
  background:#fffdf8;
  box-shadow:0 8px 26px rgba(25,45,34,.06);
}
.checkout-discount-bar-v240>div:first-child{
  display:grid;
  gap:.15rem;
}
.checkout-discount-bar-v240>div:first-child strong{
  color:#243b31;
  font-size:1rem;
}
.checkout-discount-bar-v240>div:first-child span{
  color:#607067;
  font-size:.88rem;
}
.checkout-discount-bar-v240 .checkout-discount-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.6rem;
}
.checkout-discount-bar-v240 input{
  min-width:0;
  min-height:46px;
  padding:.75rem .9rem;
  border:1px solid rgba(41,61,50,.22);
  background:#fff;
  color:#243b31;
  font:inherit;
}
.checkout-discount-bar-v240 button{
  min-height:46px;
  padding:.75rem 1.15rem;
  border:0;
  background:#294b3a;
  color:#fff;
  font:inherit;
  font-weight:900;
  cursor:pointer;
}
.checkout-discount-bar-v240 button:hover,
.checkout-discount-bar-v240 button:focus-visible{
  background:#1f3d2f;
}
.checkout-discount-bar-v240>p{
  grid-column:1/-1;
  min-height:0;
  margin:0;
  font-size:.86rem;
}
.checkout-discount-bar-v240>p.is-success{color:#356b32}
.checkout-discount-bar-v240>p.is-error{color:#9a342f}
.embedded-checkout-stage-v240{
  width:100%;
  min-width:0;
  padding:clamp(.65rem,1.5vw,1.1rem);
  border-radius:18px;
  background:#fff;
  box-shadow:0 16px 44px rgba(24,42,33,.11);
}
.embedded-checkout-stage-v240 #stripe-embedded-checkout{
  min-height:760px;
}
.checkout-trust-panel-v240{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  margin:1.25rem 0 0;
  padding:1.15rem;
  border:1px solid rgba(41,61,50,.13);
  border-radius:14px;
  background:#f7f1e5;
}
.checkout-trust-item-v240{
  display:grid;
  gap:.25rem;
  padding:.15rem .35rem;
}
.checkout-trust-item-v240 strong{
  color:#243b31;
}
.checkout-trust-item-v240 span{
  color:#5c6d64;
  line-height:1.45;
  font-size:.9rem;
}
.checkout-trust-item-v240 a{
  color:#294b3a;
  font-weight:800;
  text-underline-offset:.18em;
}
@media(max-width:800px){
  .embedded-checkout-root-v240{width:min(100% - 24px,900px)}
  .checkout-discount-bar-v240{grid-template-columns:1fr}
  .checkout-trust-panel-v240{grid-template-columns:1fr}
}
@media(max-width:560px){
  .embedded-checkout-root-v240{width:min(100% - 16px,900px)}
  .checkout-discount-bar-v240 .checkout-discount-controls{grid-template-columns:1fr}
  .checkout-discount-bar-v240 button{width:100%}
  .embedded-checkout-stage-v240{padding:.35rem;border-radius:12px}
  .checkout-trust-panel-v240{padding:.95rem;border-radius:12px}
}

/* V241 — compact single-screen checkout presentation */
.embedded-checkout-page-v241{
  padding-top:.75rem;
}
.embedded-checkout-root-v241{
  width:min(1380px,calc(100% - 32px));
  margin:0 auto;
}
.embedded-checkout-intro-v241{
  margin:0 0 .65rem;
}
.checkout-heading-v241{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1rem;
}
.checkout-heading-v241 .section-kicker{
  margin:0 0 .05rem;
  font-size:.72rem;
  letter-spacing:.16em;
}
.checkout-heading-v241 h1{
  margin:0;
  font-size:clamp(2rem,3.3vw,3rem);
  line-height:1;
}
.checkout-heading-v241>p{
  margin:0 0 .15rem;
  color:#607067;
  font-size:.9rem;
}
.checkout-discount-bar-v241{
  display:grid;
  grid-template-columns:auto minmax(280px,520px);
  justify-content:space-between;
  align-items:center;
  gap:.75rem 1rem;
  margin:0 0 .7rem;
  padding:.65rem .8rem;
  border:1px solid rgba(41,61,50,.13);
  border-radius:9px;
  background:#fffdf8;
  box-shadow:0 4px 16px rgba(25,45,34,.045);
}
.checkout-discount-bar-v241>div:first-child{
  display:flex;
  align-items:baseline;
  gap:.5rem;
  white-space:nowrap;
}
.checkout-discount-bar-v241>div:first-child strong{
  color:#243b31;
  font-size:.92rem;
}
.checkout-discount-bar-v241>div:first-child span{
  color:#6b786f;
  font-size:.76rem;
}
.checkout-discount-bar-v241 .checkout-discount-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.45rem;
}
.checkout-discount-bar-v241 input,
.checkout-discount-bar-v241 button{
  min-height:40px;
}
.checkout-discount-bar-v241 input{
  min-width:0;
  padding:.55rem .75rem;
  border:1px solid rgba(41,61,50,.2);
  background:#fff;
  color:#243b31;
  font:inherit;
}
.checkout-discount-bar-v241 button{
  padding:.55rem .95rem;
  border:0;
  background:#294b3a;
  color:#fff;
  font:inherit;
  font-weight:900;
  cursor:pointer;
}
.checkout-discount-bar-v241>p{
  grid-column:1/-1;
  min-height:0;
  margin:0;
  font-size:.8rem;
}
.checkout-discount-bar-v241>p:empty{display:none}
.embedded-checkout-stage-v241{
  width:100%;
  min-width:0;
  padding:.35rem;
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 30px rgba(24,42,33,.09);
}
.embedded-checkout-stage-v241 #stripe-embedded-checkout{
  min-height:0;
}
.checkout-trust-panel-v241{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:.45rem 1.4rem;
  margin:.65rem 0 0;
  padding:.55rem .75rem;
  border:1px solid rgba(41,61,50,.11);
  border-radius:9px;
  background:#f7f1e5;
  color:#5c6d64;
  font-size:.8rem;
}
.checkout-trust-panel-v241 span+span::before{
  content:'•';
  margin-right:1.4rem;
  color:#8c9a92;
}
.checkout-trust-panel-v241 strong,
.checkout-trust-panel-v241 a{
  color:#294b3a;
  font-weight:800;
}
.checkout-trust-panel-v241 a{text-underline-offset:.16em}
@media(max-width:800px){
  .embedded-checkout-root-v241{width:min(100% - 20px,900px)}
  .checkout-heading-v241{align-items:flex-start;flex-direction:column;gap:.25rem}
  .checkout-heading-v241>p{margin:0}
  .checkout-discount-bar-v241{grid-template-columns:1fr}
  .checkout-discount-bar-v241>div:first-child{justify-content:space-between}
  .checkout-trust-panel-v241{justify-content:flex-start}
  .checkout-trust-panel-v241 span+span::before{display:none}
}
@media(max-width:560px){
  .embedded-checkout-page-v241{padding-top:.45rem}
  .embedded-checkout-root-v241{width:min(100% - 12px,900px)}
  .checkout-heading-v241 h1{font-size:2rem}
  .checkout-discount-bar-v241 .checkout-discount-controls{grid-template-columns:1fr auto}
  .checkout-discount-bar-v241 input,
  .checkout-discount-bar-v241 button{min-height:42px}
  .embedded-checkout-stage-v241{padding:0;border-radius:10px;box-shadow:none}
  .checkout-trust-panel-v241{gap:.35rem .9rem}
}

/* V242 — final compact checkout UI and fixed-header clearance */
.embedded-checkout-page-v242{
  min-height:100vh;
  padding:calc(58px + .9rem) 0 2.25rem;
  background:#f3ecdc;
}
.embedded-checkout-root-v242{
  width:min(1440px,calc(100% - 28px));
  margin:0 auto;
}
.embedded-checkout-intro-v242{
  margin:0 0 .45rem;
}
.checkout-heading-v242{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  padding:0 .1rem;
}
.checkout-heading-v242 .section-kicker{
  margin:0 0 .05rem;
  font-size:.68rem;
  letter-spacing:.16em;
}
.checkout-heading-v242 h1{
  margin:0;
  font-size:clamp(1.8rem,2.5vw,2.55rem);
  line-height:1;
}
.checkout-heading-v242>p{
  margin:0 0 .12rem;
  color:#607067;
  font-size:.84rem;
  white-space:nowrap;
}
.checkout-discount-bar-v242{
  display:flex;
  align-items:center;
  gap:.7rem;
  margin:0 0 .55rem;
  padding:.55rem .65rem;
  border:1px solid rgba(41,61,50,.13);
  border-radius:8px;
  background:#fffdf8;
  box-shadow:0 3px 12px rgba(25,45,34,.04);
}
.checkout-discount-bar-v242>div:first-child{
  display:flex;
  align-items:baseline;
  gap:.4rem;
  flex:0 0 auto;
  white-space:nowrap;
}
.checkout-discount-bar-v242>div:first-child strong{
  color:#243b31;
  font-size:.86rem;
}
.checkout-discount-bar-v242>div:first-child span{
  color:#6b786f;
  font-size:.72rem;
}
.checkout-discount-bar-v242 .checkout-discount-controls{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto;
  gap:.4rem;
  flex:1 1 auto;
  min-width:0;
}
.checkout-discount-bar-v242 input,
.checkout-discount-bar-v242 button{
  min-height:38px;
}
.checkout-discount-bar-v242 input{
  min-width:0;
  padding:.5rem .7rem;
  border:1px solid rgba(41,61,50,.2);
  background:#fff;
  color:#243b31;
  font:inherit;
}
.checkout-discount-bar-v242 button{
  padding:.5rem .9rem;
  border:0;
  background:#294b3a;
  color:#fff;
  font:inherit;
  font-weight:900;
  cursor:pointer;
}
.checkout-discount-bar-v242 button:hover,
.checkout-discount-bar-v242 button:focus-visible{background:#1f3d2f}
.checkout-discount-bar-v242>p{
  flex:0 0 100%;
  margin:0;
  font-size:.78rem;
}
.checkout-discount-bar-v242>p:empty{display:none}
.embedded-checkout-stage-v242{
  width:100%;
  min-width:0;
  padding:.2rem;
  border-radius:13px;
  background:#fff;
  box-shadow:0 8px 24px rgba(24,42,33,.075);
  overflow:hidden;
}
.embedded-checkout-stage-v242 #stripe-embedded-checkout{min-height:0}
.checkout-trust-panel-v242{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:.3rem 1rem;
  margin:.45rem 0 0;
  padding:.38rem .65rem;
  border:1px solid rgba(41,61,50,.1);
  border-radius:8px;
  background:#f7f1e5;
  color:#5c6d64;
  font-size:.74rem;
  line-height:1.35;
}
.checkout-trust-panel-v242 span+span::before{
  content:'•';
  margin-right:1rem;
  color:#8c9a92;
}
.checkout-trust-panel-v242 strong,
.checkout-trust-panel-v242 a{
  color:#294b3a;
  font-weight:800;
}
.checkout-trust-panel-v242 a{text-underline-offset:.14em}
@media(max-width:800px){
  .embedded-checkout-page-v242{padding-top:calc(58px + .65rem)}
  .embedded-checkout-root-v242{width:min(100% - 18px,900px)}
  .checkout-heading-v242{align-items:flex-start;flex-direction:column;gap:.12rem}
  .checkout-heading-v242>p{white-space:normal}
  .checkout-discount-bar-v242{align-items:stretch;flex-wrap:wrap}
  .checkout-discount-bar-v242>div:first-child{width:100%;justify-content:space-between}
  .checkout-discount-bar-v242 .checkout-discount-controls{width:100%}
  .checkout-trust-panel-v242{justify-content:flex-start}
  .checkout-trust-panel-v242 span+span::before{display:none}
}
@media(max-width:560px){
  .embedded-checkout-page-v242{padding-top:calc(58px + .45rem);padding-bottom:1.5rem}
  .embedded-checkout-root-v242{width:min(100% - 10px,900px)}
  .checkout-heading-v242 h1{font-size:1.8rem}
  .checkout-discount-bar-v242 .checkout-discount-controls{grid-template-columns:1fr auto}
  .checkout-discount-bar-v242 input,
  .checkout-discount-bar-v242 button{min-height:40px}
  .embedded-checkout-stage-v242{padding:0;border-radius:9px;box-shadow:none}
  .checkout-trust-panel-v242{gap:.25rem .75rem}
}


/* V244: prevent browser scroll anchoring while Embedded Checkout expands. */
html:has(.embedded-checkout-page-v244),
body:has(.embedded-checkout-page-v244),
.embedded-checkout-page-v244,
.embedded-checkout-page-v244 #stripe-embedded-checkout,
.embedded-checkout-page-v244 .embedded-checkout-stage {
  overflow-anchor: none;
}


/* V245 — correct checkout clearance beneath the fixed PineWake header. */
.embedded-checkout-page-v245 {
  min-height: 100vh;
  padding: 92px 0 2.25rem;
  background: #f3ecdc;
  overflow-anchor: none;
}
.embedded-checkout-page-v245 .embedded-checkout-root-v242 {
  width: min(1440px, calc(100% - 28px));
  margin: 0 auto;
}
.embedded-checkout-page-v245 #stripe-embedded-checkout,
.embedded-checkout-page-v245 .embedded-checkout-stage-v242 {
  overflow-anchor: none;
}
@media (max-width: 800px) {
  .embedded-checkout-page-v245 {
    padding-top: 74px;
  }
  .embedded-checkout-page-v245 .embedded-checkout-root-v242 {
    width: min(100% - 18px, 900px);
  }
}
@media (max-width: 560px) {
  .embedded-checkout-page-v245 {
    padding-top: 70px;
    padding-bottom: 1.5rem;
  }
  .embedded-checkout-page-v245 .embedded-checkout-root-v242 {
    width: min(100% - 10px, 900px);
  }
}


/* V249 — reserve Embedded Checkout space before Stripe mounts.
   This prevents the iframe's delayed expansion from shifting the document
   and pulling the viewport toward the footer. No scroll interception is used. */
html:has(.embedded-checkout-page-v249),
body:has(.embedded-checkout-page-v249),
.embedded-checkout-page-v249,
.embedded-checkout-page-v249 .embedded-checkout-stage-v242,
.embedded-checkout-page-v249 #stripe-embedded-checkout {
  overflow-anchor: none;
}
.embedded-checkout-page-v249 {
  min-height: 100vh;
  padding: 92px 0 2.25rem;
  background: #f3ecdc;
}
.embedded-checkout-page-v249 .embedded-checkout-root-v242 {
  width: min(1440px, calc(100% - 28px));
  margin: 0 auto;
}
.embedded-checkout-page-v249 .embedded-checkout-stage-v242 {
  position: relative;
}
.embedded-checkout-page-v249 #stripe-embedded-checkout {
  min-height: 1080px;
}
.embedded-checkout-page-v249 .embedded-checkout-loading {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 1;
  padding: 3rem 1rem;
  pointer-events: none;
}
@media (max-width: 800px) {
  .embedded-checkout-page-v249 {
    padding-top: 74px;
  }
  .embedded-checkout-page-v249 .embedded-checkout-root-v242 {
    width: min(100% - 18px, 900px);
  }
  .embedded-checkout-page-v249 #stripe-embedded-checkout {
    min-height: 1500px;
  }
}
@media (max-width: 560px) {
  .embedded-checkout-page-v249 {
    padding-top: 70px;
    padding-bottom: 1.5rem;
  }
  .embedded-checkout-page-v249 .embedded-checkout-root-v242 {
    width: min(100% - 10px, 900px);
  }
  .embedded-checkout-page-v249 #stripe-embedded-checkout {
    min-height: 1650px;
  }
}


/* V251 — restore the standard PineWake shell and isolate scrolling inside checkout.
   The document no longer grows while Stripe renders, so iframe autofocus cannot
   pull the browser to the footer. No forced scrollTo or scroll interception. */
html.checkout-shell-v251,
html.checkout-shell-v251 body {
  height: 100%;
  overflow: hidden;
}
html.checkout-shell-v251 .newsletter-section,
html.checkout-shell-v251 .site-footer {
  display: none !important;
}
html.checkout-shell-v251 .embedded-checkout-page-v251 {
  box-sizing: border-box;
  height: 100dvh;
  min-height: 0;
  padding: 92px 0 0;
  overflow: hidden;
  background: #f3ecdc;
}
html.checkout-shell-v251 .embedded-checkout-root-v242 {
  display: flex;
  flex-direction: column;
  width: min(1440px, calc(100% - 28px));
  height: 100%;
  min-height: 0;
  margin: 0 auto;
}
html.checkout-shell-v251 .embedded-checkout-intro-v242,
html.checkout-shell-v251 .checkout-discount-bar-v242,
html.checkout-shell-v251 .checkout-trust-panel-v242 {
  flex: 0 0 auto;
}
html.checkout-shell-v251 .embedded-checkout-stage-v242 {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
}
html.checkout-shell-v251 .embedded-checkout-stage-v242 #stripe-embedded-checkout {
  min-height: 0;
  overflow-anchor: none;
}
html.checkout-shell-v251 .checkout-trust-panel-v242 {
  margin-bottom: .35rem;
}
@media (max-width: 800px) {
  html.checkout-shell-v251 .embedded-checkout-page-v251 {
    padding-top: 74px;
  }
  html.checkout-shell-v251 .embedded-checkout-root-v242 {
    width: min(100% - 18px, 900px);
  }
}
@media (max-width: 560px) {
  html.checkout-shell-v251 .embedded-checkout-page-v251 {
    padding-top: 70px;
  }
  html.checkout-shell-v251 .embedded-checkout-root-v242 {
    width: min(100% - 10px, 900px);
  }
  html.checkout-shell-v251 .checkout-heading-v242 > p,
  html.checkout-shell-v251 .checkout-trust-panel-v242 {
    display: none;
  }
}


/* V258 — compact category navigation on shop category pages. */
.shop-category-hotbar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .4rem;
  margin: 0 0 .75rem;
  padding: .4rem;
  border: 1px solid rgba(39, 59, 47, .12);
  border-radius: 12px;
  background: rgba(255, 253, 247, .82);
  box-shadow: 0 6px 18px rgba(32, 43, 36, .045);
}
.shop-category-hotbar__link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: .5rem .7rem;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #263a2f;
  font-size: .82rem;
  font-weight: 850;
  letter-spacing: .045em;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}
.shop-category-hotbar__link:hover,
.shop-category-hotbar__link:focus-visible {
  border-color: rgba(73, 104, 61, .22);
  background: #f1f3e9;
}
.shop-category-hotbar__link.is-active {
  border-color: #294a38;
  background: #294a38;
  color: #fff;
  box-shadow: none;
}
@media (max-width: 760px) {
  .shop-category-hotbar {
    display: flex;
    gap: .35rem;
    margin-inline: 0;
    padding: .35rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }
  .shop-category-hotbar__link {
    flex: 0 0 auto;
    min-width: 112px;
    min-height: 36px;
    padding: .48rem .65rem;
    font-size: .76rem;
    white-space: nowrap;
  }
}

/* V259 — pull the category hot bar closer to the category hero. */
.shop-category-page--v48 .shop-listing-section--refined {
  padding-top: .9rem;
}
@media (max-width: 780px) {
  .shop-category-page--v48 .shop-listing-section--refined {
    padding-top: .65rem;
  }
}

/* V260 — compact mobile shop search and filters; desktop remains unchanged. */
@media (max-width: 780px) {
  .shop-category-page--v48 .shop-listing-section--refined {
    width: calc(100% - 20px);
    padding-top: .45rem;
  }

  .storefront-control-panel {
    grid-template-columns: minmax(0, 1fr) 98px;
    grid-template-areas:
      "search search"
      "sort submit";
    gap: .55rem;
    padding: .7rem;
    border-radius: 8px 8px 0 0;
  }

  .storefront-search--refined {
    grid-area: search;
  }

  .storefront-search__icon {
    left: .8rem;
    font-size: 1.2rem;
  }

  .storefront-search--refined input {
    height: 42px;
    padding-right: .8rem;
    padding-left: 2.55rem;
    font-size: .95rem;
  }

  .storefront-sort {
    grid-area: sort;
    min-width: 0;
    gap: .45rem;
    justify-content: stretch;
  }

  .storefront-sort span {
    flex: 0 0 auto;
    font-size: .82rem;
  }

  .storefront-sort select {
    min-width: 0;
    height: 42px;
    padding-right: 2rem;
    padding-left: .75rem;
    font-size: .92rem;
  }

  .storefront-search-submit {
    grid-area: submit;
    width: 98px;
    height: 42px;
    padding: 0 .75rem;
    font-size: .9rem;
  }

  .apparel-filter-nav--refined {
    gap: .5rem;
    padding: .65rem .7rem .7rem;
  }

  .apparel-filter-nav--refined a {
    min-width: 128px;
    min-height: 42px;
    padding: .5rem .65rem;
    font-size: .88rem;
  }

  .apparel-filter-nav__icon {
    width: 23px;
    height: 23px;
  }

  .shop-results-bar {
    margin: .85rem 0 .75rem;
  }
}

@media (max-width: 520px) {
  .storefront-control-panel {
    grid-template-columns: minmax(0, 1fr) 92px;
    gap: .5rem;
    padding: .6rem;
  }

  .storefront-sort {
    align-items: center;
    flex-direction: row;
  }

  .storefront-sort span {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .storefront-sort select {
    width: 100%;
  }

  .storefront-search-submit {
    width: 92px;
  }

  .apparel-filter-nav--refined {
    padding-bottom: .6rem;
  }

  .shop-results-bar {
    gap: .35rem;
    margin-top: .7rem;
  }
}

/* V263 — mobile checkout total visibility */
.mobile-checkout-total {
  display: none;
}
@media (max-width: 560px) {
  html.checkout-shell-v251 .embedded-checkout-stage-v242 {
    padding-bottom: 78px;
  }
  html.checkout-shell-v251 .mobile-checkout-total {
    position: fixed;
    z-index: 1200;
    left: 10px;
    right: 10px;
    bottom: max(8px, env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 58px;
    padding: .65rem .85rem;
    border: 1px solid rgba(24, 61, 47, .22);
    border-radius: 14px;
    background: rgba(255, 253, 248, .97);
    box-shadow: 0 10px 30px rgba(7, 25, 18, .22);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
  html.checkout-shell-v251 .mobile-checkout-total[hidden] {
    display: none !important;
  }
  html.checkout-shell-v251 .mobile-checkout-total > div {
    display: flex;
    align-items: baseline;
    gap: .55rem;
    white-space: nowrap;
  }
  html.checkout-shell-v251 .mobile-checkout-total span {
    color: #53645c;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
  }
  html.checkout-shell-v251 .mobile-checkout-total strong {
    color: #173d2f;
    font-size: 1.28rem;
    line-height: 1;
  }
  html.checkout-shell-v251 .mobile-checkout-total small {
    max-width: 44%;
    color: #5f6b65;
    font-size: .7rem;
    line-height: 1.2;
    text-align: right;
  }
}
\n\n/* V264 — cart shipping and tax clarity */\n.cart-page .cart-summary .cart-calculated-row {\n  align-items: flex-start;\n}\n.cart-page .cart-summary .cart-calculated-row strong {\n  max-width: 13rem;\n  color: #f6f2e7;\n  font-size: .98rem;\n  line-height: 1.35;\n  text-align: right;\n}\n@media (max-width: 600px) {\n  .cart-page .cart-summary .cart-calculated-row strong {\n    max-width: 10.5rem;\n    font-size: .9rem;\n  }\n  .cart-page .cart-summary .cart-total-row {\n    font-size: 1.15rem;\n  }\n}\n
/* V267 — Journal archive adopts the compact Shop landing-page layout rhythm. */
.journal-index.page-content {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 18px max(24px, calc((100vw - 1280px) / 2)) 32px;
    background:
        radial-gradient(circle at 20% 30%, rgba(116, 91, 53, .045) 0 1px, transparent 1.5px) 0 0 / 10px 10px,
        #efe8dc;
}

.journal-index__header {
    position: relative;
    display: block;
    margin-bottom: 15px;
    min-height: 72px;
}

.journal-section-heading {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
}

.journal-section-heading .section-kicker {
    margin: 0 0 5px;
}

.journal-index__header .journal-section-heading h2 {
    margin: 0;
    color: #344034;
    font-family: Impact, 'Arial Narrow', sans-serif;
    font-size: clamp(1.7rem, 2.6vw, 2.35rem);
    font-weight: 500;
    letter-spacing: .055em;
    line-height: 1;
    text-transform: uppercase;
}

.journal-section-heading .shop-divider {
    margin-top: 8px;
}

.journal-archive {
    position: absolute;
    top: 0;
    right: 0;
    width: 170px;
    min-width: 0;
    gap: .28rem;
}

.journal-archive label {
    font-size: .7rem;
    letter-spacing: .075em;
}

.journal-archive select {
    min-height: 36px;
    padding: .45rem 2rem .45rem .7rem;
    border-radius: 5px;
    font-size: .82rem;
}

.journal-index .journal-grid {
    gap: 13px;
}

@media (max-width: 700px) {
    .journal-index.page-content {
        padding: 14px 12px 24px;
    }

    .journal-index__header {
        display: flex;
        min-height: 0;
        margin-bottom: 11px;
        gap: 10px;
    }

    .journal-section-heading {
        width: 100%;
    }

    .journal-index__header .journal-section-heading h2 {
        font-size: 1.38rem;
    }

    .journal-archive {
        position: static;
        align-self: flex-end;
        width: min(170px, 100%);
    }
}


.journal-index__header{min-height:120px;}
.journal-subtitle{max-width:700px;margin:16px auto 0;text-align:center;font-size:1.1rem;}
.journal-archive{top:78px;right:20px;width:220px;}


.journal-toolbar{
display:grid;
grid-template-columns:220px 1fr 240px;
align-items:center;
margin-top:16px;
position:relative;
}
.journal-toolbar .journal-subtitle{
grid-column:2;
margin:0;
text-align:center;
max-width:none;
}
.journal-toolbar .journal-archive{
grid-column:3;
justify-self:end;
width:220px;
display:grid;
gap:.35rem;
}

/* V284: Shop landing category cards match the Gallery compact card footprint. */
@media (min-width: 901px) {
    .shop-page .shop-category-grid.shop-category-grid--four {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .65rem;
        align-items: stretch;
    }

    .shop-page .shop-category-card {
        min-width: 0;
        height: 100%;
    }

    .shop-page .shop-category-card__image {
        min-height: 0;
        height: auto;
        aspect-ratio: 1 / 1;
        background-position: center;
        background-size: cover;
    }

    .shop-page .shop-category-card__body {
        min-height: 88px;
        padding: 30px 9px 10px;
    }

    .shop-page .shop-category-card__icon {
        top: -25px;
        width: 50px;
        height: 50px;
        padding: 11px;
    }

    .shop-page .shop-category-card h3 {
        margin-bottom: .28rem;
        font-size: 1rem;
    }

    .shop-page .shop-category-card p {
        font-size: .72rem;
        line-height: 1.2;
    }
}

@media (min-width: 901px) and (max-width: 1150px) {
    .shop-page .shop-category-grid.shop-category-grid--four {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}


/* V288 — restore the compact desktop Shop card footprint after admin-managed images. */
@media (min-width: 901px) {
    .shop-page .shop-category-grid.shop-category-grid--four {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .65rem;
        align-items: stretch;
    }

    .shop-page .shop-category-card {
        min-width: 0;
        height: 100%;
    }

    .shop-page .shop-category-card__image {
        min-height: 0;
        height: auto;
        aspect-ratio: 4 / 3;
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
    }

    .shop-page .shop-category-card__body {
        min-height: 88px;
        padding: 30px 9px 10px;
    }

    .shop-page .shop-category-card__icon {
        top: -25px;
        width: 50px;
        height: 50px;
        padding: 11px;
    }

    .shop-page .shop-category-card h3 {
        margin-bottom: .28rem;
        font-size: 1rem;
    }

    .shop-page .shop-category-card p {
        font-size: .72rem;
        line-height: 1.2;
    }

    .shop-page .shop-category-card--why {
        display: flex;
        min-height: 100%;
        border-color: rgba(157, 126, 67, .42);
        background:
            radial-gradient(circle at 85% 12%, rgba(157, 126, 67, .13), transparent 34%),
            linear-gradient(155deg, #202d22 0%, #111b14 100%);
        color: #f3ede0;
    }

    .shop-page .shop-category-card--why:hover,
    .shop-page .shop-category-card--why:focus-visible {
        border-color: rgba(183, 151, 91, .72);
    }

    .shop-page .shop-category-card__why-inner {
        display: flex;
        width: 100%;
        min-height: 100%;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 16px 14px;
        text-align: center;
    }

    .shop-page .shop-category-card__why-mark {
        display: grid;
        width: 42px;
        height: 42px;
        margin-bottom: 10px;
        place-items: center;
        border: 1px solid rgba(183, 151, 91, .58);
        border-radius: 50%;
        color: #b7975b;
    }

    .shop-page .shop-category-card__why-mark svg {
        width: 21px;
        height: 21px;
        fill: currentColor;
    }

    .shop-page .shop-category-card__why-kicker {
        margin: 0;
        color: #f3ede0;
        font-family: Impact, 'Arial Narrow', sans-serif;
        font-size: 1.02rem;
        font-weight: 500;
        letter-spacing: .075em;
        line-height: 1;
        text-transform: uppercase;
    }

    .shop-page .shop-category-card__why-divider {
        width: 52px;
        height: 1px;
        margin: 10px 0 11px;
        background: #9d7e43;
    }

    .shop-page .shop-category-card__why-origin,
    .shop-page .shop-category-card__why-copy {
        margin: 0;
        color: #e7dfd0;
        font-size: .72rem;
        line-height: 1.35;
    }

    .shop-page .shop-category-card__why-origin {
        font-weight: 700;
    }

    .shop-page .shop-category-card__why-copy {
        margin-top: 9px;
        color: #cfc7b9;
    }

    .shop-page .shop-category-card__why-link {
        margin-top: 12px;
        color: #c2a266;
        font-size: .7rem;
        font-weight: 800;
        letter-spacing: .065em;
        text-transform: uppercase;
    }
}

@media (min-width: 901px) and (max-width: 1150px) {
    .shop-page .shop-category-grid.shop-category-grid--four {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Preserve the existing mobile Shop layout. */
@media (max-width: 900px) {
    .shop-page .shop-category-card--why {
        display: none;
    }
}


/* V292 — desktop cart checkout polish. Mobile layout intentionally unchanged. */
@media (min-width: 901px) {
  .cart-page {
    padding: 5.25rem 1.5rem 4rem;
  }

  .cart-page .cart-shell {
    grid-template-columns: minmax(0, 1fr) 390px;
    column-gap: 2rem;
    row-gap: 1rem;
  }

  .cart-page .cart-shell > div:first-child {
    margin-bottom: .25rem;
  }

  .cart-page .cart-shell > div:first-child h1 {
    margin-bottom: .7rem;
  }

  .cart-page .cart-shell > div:first-child > p:not(.section-kicker) {
    margin: .65rem 0 0;
  }

  .cart-page .cart-items {
    gap: .85rem;
  }

  .cart-page .cart-item {
    grid-template-columns: 92px minmax(0, 1fr) 82px auto;
    gap: 1rem;
    min-height: 118px;
    padding: .8rem 1rem;
  }

  .cart-page .cart-item-image {
    width: 92px;
    height: 92px;
    border-radius: 6px;
  }

  .cart-page .cart-item h2 {
    margin-bottom: .25rem;
    font-size: 1.18rem;
  }

  .cart-page .cart-item p {
    margin: .12rem 0;
  }

  .cart-page .cart-item label,
  .cart-page .cart-item button {
    align-self: center;
  }

  .cart-page .cart-item input {
    width: 64px;
    min-height: 46px;
    padding: .5rem .6rem;
  }

  .cart-page .cart-summary {
    padding: 1.25rem 1.4rem;
  }

  .cart-page .cart-summary > div {
    padding: .42rem 0;
    font-size: 1.15rem;
  }

  .cart-page .cart-summary .cart-total-row {
    margin-top: .2rem;
    padding-top: .8rem;
    font-size: 1.22rem;
  }

  .cart-page .cart-summary > p {
    margin: .65rem 0 0;
    font-size: .92rem;
    line-height: 1.45;
  }

  .cart-page .cart-summary .product-buy-button {
    min-height: 52px;
    margin-top: 1rem;
    display: grid;
    place-items: center;
  }
}


/* V296 header logo refinement */
.site-header .brand img,.header-logo img{height:36px!important;width:auto;display:block;}
.site-header .brand,.header-logo{display:flex;align-items:center;margin-left:8px;}
.site-header{min-height:72px;}


/* V297: verified desktop header logo sizing and cache refresh. */
@media (min-width: 701px) {
  .site-header .nav-shell {
    min-height: 58px;
  }

  .site-header .brand {
    display: inline-flex;
    align-items: center;
    align-self: center;
    margin-left: 0;
    line-height: 0;
  }

  .site-header .brand .brand-logo {
    display: block;
    width: auto !important;
    height: 32px !important;
    max-width: 170px;
    max-height: 32px !important;
    object-fit: contain;
    object-position: left center;
  }
}

/* V300: separate tree artwork and live-text wordmark.
   This changes only the branding inside the existing header container. */
.site-header .brand {
    display: inline-flex;
    align-items: center;
    gap: .58rem;
    width: max-content;
    line-height: 1;
    text-decoration: none;
}

.site-header .brand-tree {
    display: block;
    width: auto;
    height: 38px;
    max-width: none;
    flex: 0 0 auto;
    object-fit: contain;
}

.site-header .brand-wordmark {
    display: block;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.28rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .18em;
    white-space: nowrap;
}

@media (max-width: 700px) {
    .site-header .brand {
        gap: .45rem;
    }

    .site-header .brand-tree {
        height: 32px;
    }

    .site-header .brand-wordmark {
        font-size: 1rem;
        letter-spacing: .14em;
    }
}

/* V301: desktop public-header icon actions and PineWake social button.
   Mobile navigation/actions remain unchanged. */
@media (min-width: 981px) {
    .site-header .header-actions--icons {
        gap: clamp(.72rem, 1.1vw, 1.05rem);
    }

    .site-header .header-icon-link {
        position: relative;
        display: inline-grid;
        place-items: center;
        width: 38px;
        height: 58px;
        padding: 0;
        color: var(--white);
        text-decoration: none;
    }

    .site-header .header-icon-link svg {
        display: block;
        width: 27px;
        height: 27px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.65;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .site-header .header-icon-link:hover,
    .site-header .header-icon-link:focus-visible,
    .site-header .header-icon-link.active {
        color: var(--green-light);
    }

    .site-header .header-cart-icon {
        margin-right: .1rem;
    }

    .site-header .header-cart-count {
        position: absolute;
        top: 7px;
        right: -4px;
        display: grid;
        place-items: center;
        min-width: 1.35rem;
        height: 1.35rem;
        padding: 0 .28rem;
        border-radius: 999px;
        background: var(--green-light);
        color: #071008;
        font-family: Arial, sans-serif;
        font-size: .68rem;
        font-weight: 900;
        line-height: 1;
    }

    .site-header .social-media-dropdown {
        display: flex;
        align-items: center;
    }

    .site-header .social-media-button {
        min-height: 34px;
        padding: 0 .78rem;
        border-radius: 8px;
        background: #78994a;
        color: #fff;
        font-size: .59rem;
        font-weight: 900;
        letter-spacing: .05em;
        line-height: 1;
        box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
    }

    .site-header .social-media-button::after {
        content: "";
        position: absolute;
        left: 14px;
        bottom: -6px;
        width: 0;
        height: 0;
        border-top: 7px solid #78994a;
        border-right: 8px solid transparent;
    }

    .site-header .social-media-button:hover,
    .site-header .social-media-button:focus-visible,
    .site-header .social-media-button[aria-expanded="true"] {
        background: #9fbd62;
        color: #071008;
    }

    .site-header .social-media-button:hover::after,
    .site-header .social-media-button:focus-visible::after,
    .site-header .social-media-button[aria-expanded="true"]::after {
        border-top-color: #9fbd62;
    }

    .site-header .social-media-dropdown .connect-menu {
        top: calc(100% + 7px);
    }
}

/* V304: slightly taller public header bar to close the gap above page heroes.
   Keeps logo, navigation text, account/cart icons, social button, and behavior unchanged. */
.site-header {
    min-height: 0 !important;
}

.site-header .nav-shell,
.site-header .primary-nav,
.site-header .header-actions,
.site-header .header-action-link,
.site-header .connect-toggle {
    min-height: 56px !important;
}

@media (min-width: 981px) {
    .site-header .header-icon-link {
        height: 56px !important;
    }
}

@media (max-width: 700px) {
    .site-header .nav-shell {
        min-height: 56px !important;
    }
}

/* V305: remove the thin seam between the fixed public header and page heroes.
   Header dimensions and all header content remain unchanged. */
.site-header {
    border-bottom-color: transparent !important;
}

.inner-page,
.shop-page {
    padding-top: 56px !important;
}

@media (max-width: 700px) {
    .inner-page,
    .shop-page {
        padding-top: 56px !important;
    }
}


/* V306 — Home hero brand wordmark uses the approved PineWake artwork.
   This replaces only the live PINEWAKE/tagline typography; all hero copy,
   controls, positioning, and responsive behavior remain unchanged. */
.home-layered-hero .home-hero-brand-wordmark {
    display: block;
    width: min(100%, 650px);
    height: auto;
    margin: 0 0 .65rem;
    object-fit: contain;
    object-position: left center;
    filter: drop-shadow(0 4px 20px rgba(0, 0, 0, .58));
}

@media (min-width: 701px) and (max-width: 1050px) {
    .home-layered-hero .home-hero-brand-wordmark {
        width: min(100%, 570px);
    }
}

@media (max-width: 700px) {
    .home-layered-hero .home-hero-brand-wordmark {
        width: min(100%, 430px);
        margin-bottom: .45rem;
        filter: drop-shadow(0 3px 16px rgba(0, 0, 0, .72));
    }
}

/* V307 — Desktop-only restoration for the approved Home hero wordmark.
   A legacy desktop rule hides every direct hero-copy child except the action
   buttons. This higher-specificity override restores only the new wordmark,
   leaving the already-working mobile presentation unchanged. */
@media (min-width: 701px) {
    .home-layered-hero .hero-copy > .home-hero-brand-wordmark {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: min(100%, 650px) !important;
        height: auto !important;
        margin: 0 0 .65rem !important;
        object-fit: contain !important;
        object-position: left center !important;
        filter: drop-shadow(0 4px 20px rgba(0, 0, 0, .58)) !important;
    }
}

@media (min-width: 701px) and (max-width: 1050px) {
    .home-layered-hero .hero-copy > .home-hero-brand-wordmark {
        width: min(100%, 570px) !important;
    }
}

/* V309 — Mobile-only Home hero final vertical fit.
   Moves the hero content slightly upward from V308, keeps Scroll to Explore
   pinned to the bottom, and extends the hero to the bottom of the mobile
   viewport so the next section's light background does not show.
   Desktop remains unchanged. */
@media (max-width: 700px) {
    .home-layered-hero,
    .home-layered-hero .hero-copy {
        min-height: calc(100svh - 56px) !important;
    }

    .home-layered-hero .hero-copy > .home-hero-brand-wordmark,
    .home-layered-hero .hero-copy > .tree-divider,
    .home-layered-hero .hero-copy > .home-hero-live-panel {
        position: relative !important;
        top: 24px !important;
    }

    .home-layered-hero .scroll-prompt {
        bottom: 1rem !important;
    }
}

/* V315 — Product gallery vertical alignment
   Keep the product image/gallery aligned with the top of the product details
   instead of vertically centering the gallery beside taller product content. */
@media (min-width: 761px) {
    .product-detail-shell {
        align-items: start;
    }

    .product-detail-gallery,
    .product-detail-content {
        align-self: start;
    }
}


/* V316 — Product gallery top alignment + cache-safe delivery
   Desktop product galleries must start level with the product details. */
@media (min-width: 761px) {
    .product-detail-page .product-detail-shell {
        align-items: start !important;
    }

    .product-detail-page .product-detail-gallery,
    .product-detail-page .product-detail-content {
        align-self: start !important;
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* V318 — Mobile Home hero final bottom fit.
   V317 made the black hero a full dynamic viewport tall, which created too
   much empty black space below the buttons. This keeps every upper hero
   element at its approved V309/V316 position and extends only the hero
   background by about half of V317's increase. Because Scroll to Explore is
   already anchored to the hero bottom, it moves down with the bottom edge
   without shifting the logo, wordmark, headline, lead, or buttons. */
@media (max-width: 700px) {
    .home-layered-hero {
        min-height: calc(100svh - 28px) !important;
        min-height: calc(100dvh - 28px) !important;
    }

    .home-layered-hero .scroll-prompt {
        bottom: 1rem !important;
    }
}

/* V335 — Verified-purchase product reviews. */
.product-reviews{max-width:1180px;margin:3rem auto 0;padding:0 1.25rem 4rem}.product-reviews__heading{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;border-bottom:1px solid rgba(255,255,255,.14);padding-bottom:1rem}.product-reviews__heading h2{margin:.15rem 0 0}.product-reviews__summary{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.product-reviews__summary span,.product-review__meta span{letter-spacing:.08em}.product-review-list{display:grid;gap:1rem;margin-top:1.5rem}.product-review{padding:1.25rem;border:1px solid rgba(255,255,255,.12);border-radius:14px}.product-review p{margin:.75rem 0 0;line-height:1.65}.product-review__meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.product-review__meta small{opacity:.72}.product-reviews__empty{margin:1.5rem 0}.product-review-submit{margin-top:2rem;padding:1.5rem;border:1px solid rgba(255,255,255,.12);border-radius:14px}.product-review-submit h3{margin-top:0}.product-review-submit form{display:grid;gap:1rem;max-width:680px}.product-review-submit label{display:grid;gap:.45rem}.product-review-submit select,.product-review-submit textarea{width:100%;box-sizing:border-box}.product-review-submit .product-buy-button{justify-self:start}@media(max-width:700px){.product-reviews__heading{align-items:flex-start;flex-direction:column}.product-reviews{padding-left:1rem;padding-right:1rem}.product-review-submit{padding:1.1rem}}

/* V337 — Force readable light-theme product review colors. */
.product-detail-page .product-reviews,
.product-detail-page .product-reviews h2,
.product-detail-page .product-review-submit,
.product-detail-page .product-review-submit h3,
.product-detail-page .product-review-submit p,
.product-detail-page .product-review-submit label,
.product-detail-page .product-reviews__empty,
.product-detail-page .product-review,
.product-detail-page .product-review p,
.product-detail-page .product-review strong,
.product-detail-page .product-review__meta small {
    color: #263329 !important;
}
.product-detail-page .product-reviews .section-kicker,
.product-detail-page .product-reviews__summary span,
.product-detail-page .product-review__meta span {
    color: #5f7f35 !important;
}
.product-detail-page .product-reviews__heading {
    border-bottom-color: rgba(38, 51, 41, .18) !important;
}
.product-detail-page .product-review,
.product-detail-page .product-review-submit {
    background: #f8f4e9 !important;
    border-color: rgba(38, 51, 41, .18) !important;
}
.product-detail-page .product-review-submit select,
.product-detail-page .product-review-submit textarea {
    background: #ffffff !important;
    color: #263329 !important;
    border: 1px solid #9aa59c !important;
}


/* V352 — Journal photo grid: use the Gallery's fixed square crop behavior. */
.post-photo-grid__frame {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #121914;
}
.post-photo-grid__frame img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

/* V354 About page image/text edge spacing */
.about-builder-page .about-block--image-text {
    box-sizing: border-box;
    padding-inline: clamp(1rem, 2.5vw, 2rem);
}

@media (max-width: 700px) {
    .about-builder-page .about-block--image-text {
        padding-inline: 1rem;
    }
}


/* V364: order-specific customer support workflow. */
.customer-order-support{margin-top:1.25rem;padding:1.35rem;border:1px solid rgba(41,61,50,.15);border-radius:10px;background:#fffdf7}.customer-order-support h2{margin:0 0 .55rem;color:#20382a}.customer-order-support p{margin:0 0 1rem;color:#52645a;line-height:1.6}.contact-order-support{margin:0 0 2rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid rgba(41,61,50,.17);background:#faf7ef}.contact-order-support h2{margin:.25rem 0 .5rem;color:#20382a}.contact-order-support>p{color:#52645a}.contact-order-form{display:grid;gap:1rem;margin-top:1.25rem}.contact-order-form label{display:grid;gap:.45rem;color:#2f443a;font-weight:800}.contact-order-form select,.contact-order-form textarea{width:100%;padding:.9rem;border:1px solid rgba(41,61,50,.25);background:#fffdf7;color:#18251e;font:inherit}.contact-order-form textarea{resize:vertical}.contact-order-form .button{justify-self:start;border:0;cursor:pointer}.contact-order-notice{margin:0 0 1.5rem;padding:1.25rem;border-left:5px solid #9fbd62;background:#f1eddf}.contact-order-notice p{margin:.4rem 0 1rem}.contact-order-support .notice{margin:1rem 0;padding:1rem}.contact-order-support .notice.success{background:#edf4df;color:#294226}.contact-order-support .notice.error{background:#f8dddd;color:#722}@media(max-width:700px){.customer-order-support .account-secondary-button,.contact-order-form .button{width:100%;text-align:center}.contact-order-support{padding:1.25rem}}


/* V365: Contact page formatted content and order-support presentation. */
.contact-copy{display:grid;gap:1rem}
.contact-copy h2,.contact-copy h3,.contact-copy h4{margin:1.15rem 0 0;color:#20382a}
.contact-copy h2{font-size:clamp(1.6rem,3vw,2.15rem)}
.contact-copy h3{font-size:1.28rem}
.contact-copy h4{font-size:1.08rem}
.contact-copy p{margin:0;line-height:1.7;color:#26382f}
.contact-copy ul{margin:0;padding-left:1.35rem;display:grid;gap:.35rem;color:#26382f}
.contact-copy a{color:#3f6533;font-weight:800;text-underline-offset:.18em}
.contact-order-support{max-width:900px}
.contact-order-form{max-width:760px}
.contact-order-form .button{min-height:48px;padding:.85rem 1.25rem}
@media(max-width:700px){
  .contact-order-support{padding:1.1rem}
  .contact-order-form{max-width:none}
}


/* V366: secure optional order-support attachments. */
.contact-order-form .contact-order-file-input{
    width:100%;
    box-sizing:border-box;
    padding:.8rem;
    border:1px solid rgba(41,61,50,.25);
    background:#fffdf7;
    color:#18251e;
    font:inherit;
    font-weight:600;
}
.contact-order-file-input::file-selector-button{
    margin-right:.8rem;
    padding:.65rem .85rem;
    border:1px solid #2f443a;
    background:#f1eddf;
    color:#20382a;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}
.contact-order-file-help{
    color:#64736b;
    font-weight:600;
    line-height:1.45;
}
.contact-order-optional{
    color:#64736b;
    font-size:.88em;
    font-weight:600;
}

/* V381 — site-wide fluid viewport foundation.
   Preserve the established phone/tablet breakpoints while allowing the public
   UI to grow proportionally on larger desktop and high-resolution displays.
   Also adds universal overflow/media safeguards so public layouts can shrink
   cleanly instead of being tied to one development monitor. */
html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

:root {
    --pw-fluid-gutter: clamp(1rem, 2.6vw, 4rem);
}

html,
body {
    width: 100%;
    max-width: 100%;
}

body {
    min-width: 0;
    overflow-x: clip;
}

img,
video,
svg,
canvas,
iframe {
    max-width: 100%;
}

input,
select,
textarea,
button {
    max-width: 100%;
}

/* Keep the existing compact mobile/tablet experience intact. The project
   already has extensive <=1050px and <=700px rules; these safeguards make
   flexible children shrink correctly inside those layouts. */
@media (max-width: 1050px) {
    .nav-shell,
    .primary-nav,
    .mobile-header-actions,
    .content-deck,
    .home-shop-showcase,
    .shop-category-grid,
    .shop-product-grid,
    .shop-listing-grid,
    .product-detail-shell,
    .cart-shell,
    .checkout-shell,
    .account-shell {
        min-width: 0;
    }
}

/* Fluid desktop scale. At ordinary laptop widths this resolves to the
   established 16px base. It then grows gradually rather than leaving the
   entire site visually tiny on 1440p/4K-class browser viewports. */
@media (min-width: 1200px) {
    html {
        font-size: clamp(16px, calc(14px + .20vw), 22px);
    }

    :root {
        --max-width: clamp(1360px, 88vw, 2200px);
    }

    .nav-shell {
        width: min(calc(100% - (2 * var(--pw-fluid-gutter))), var(--max-width));
        gap: clamp(1.5rem, 2vw, 3.25rem);
    }

    .primary-nav {
        gap: clamp(1.8rem, 2.15vw, 3.6rem);
    }

    .primary-nav a {
        font-size: clamp(.72rem, .54vw, .9rem);
    }

    .site-header .brand-tree {
        height: clamp(38px, 2.15vw, 52px);
    }

    .site-header .brand-wordmark {
        font-size: clamp(1.28rem, .95vw, 1.62rem);
    }

    .site-header .header-icon-link svg {
        width: clamp(27px, 1.55vw, 36px);
        height: clamp(27px, 1.55vw, 36px);
    }

    .site-header .social-media-button {
        min-height: clamp(34px, 2vw, 44px);
        padding-inline: clamp(.78rem, 1vw, 1.15rem);
        font-size: clamp(.59rem, .48vw, .76rem);
    }

    .home-layered-hero .hero-copy {
        width: min(42rem, 45vw) !important;
        margin-left: max(var(--pw-fluid-gutter), calc((100vw - var(--max-width)) / 2 + var(--pw-fluid-gutter))) !important;
    }

    .home-layered-hero .hero-copy > .home-hero-brand-wordmark {
        width: min(100%, 42rem) !important;
    }

    .home-layered-hero .tree-divider,
    .home-layered-hero .home-builder-lead,
    .home-layered-hero .home-hero-live-panel .hero-actions {
        max-width: 38rem !important;
    }

    .home-layered-hero .home-hero-live-panel h1 {
        max-width: 39rem !important;
    }

    /* Major public content regions should occupy a healthy share of wide
       screens while retaining their existing internal grid behavior. */
    .shop-category-intro__inner,
    .shop-listing-section--refined {
        width: min(92vw, 92rem);
    }

    .product-detail-shell,
    .product-reviews,
    .related-products,
    .cart-shell,
    .checkout-shell {
        max-width: min(92vw, 82rem);
    }

    .product-detail-shell {
        width: min(92vw, 82rem);
    }

    .account-shell {
        width: min(92vw, 68rem);
        max-width: none;
    }
}

/* Very wide displays get more breathing room, but growth is deliberately
   capped so lines remain readable and the established composition survives. */
@media (min-width: 2200px) {
    .home-layered-hero .hero-copy {
        width: min(44rem, 42vw) !important;
    }

    .content-deck,
    .home-shop-showcase {
        padding-left: max(var(--pw-fluid-gutter), calc((100vw - var(--max-width)) / 2 + var(--pw-fluid-gutter)));
        padding-right: max(var(--pw-fluid-gutter), calc((100vw - var(--max-width)) / 2 + var(--pw-fluid-gutter)));
    }
}

/* V382 — height-aware responsive correction after V381.
   V381's global desktop root scaling began at 1200px, which made otherwise
   healthy laptop/standard-desktop layouts vertically larger and pushed the
   Home scroll cue and Shop/Journal content lower than intended. Keep the
   fluid-width system, but reserve root-type scaling for genuinely wide
   displays and make the Home hero occupy the viewport below the fixed header. */

/* Standard desktop/laptop widths retain the established 16px vertical rhythm.
   Wide displays still scale progressively so PineWake does not appear tiny. */
@media (min-width: 1200px) and (max-width: 1799px) {
    html {
        font-size: 16px;
    }
}

@media (min-width: 1800px) {
    html {
        font-size: clamp(16px, calc(10px + .4vw), 22px);
    }
}

/* Public internal-page heroes must always begin below the fixed 56px header.
   Keep their already-approved compact hero footprints; do not hide any part
   of the banner beneath the navigation bar. */
.inner-page,
.shop-page {
    padding-top: 56px !important;
}

/* Home is the first-screen page indicator. Its hero starts below the fixed
   header and consumes exactly the remaining viewport height. This preserves
   the full artwork, lowers the live title/content beneath the navigation, and
   keeps Scroll to Explore inside the first screen instead of extending it. */
@media (min-width: 701px) {
    .home-layered-hero {
        margin-top: 56px !important;
        height: calc(100vh - 56px) !important;
        height: calc(100svh - 56px) !important;
        min-height: calc(100vh - 56px) !important;
        min-height: calc(100svh - 56px) !important;
    }

    .home-layered-hero .hero-copy {
        min-height: calc(100vh - 56px) !important;
        min-height: calc(100svh - 56px) !important;
    }

    .home-layered-hero .scroll-prompt {
        bottom: 1.35rem !important;
    }
}

/* Phones use the same below-header geometry. The existing mobile composition
   remains intact; only the viewport fit and prompt clearance are corrected. */
@media (max-width: 700px) {
    .home-layered-hero {
        margin-top: 56px !important;
        height: calc(100vh - 56px) !important;
        height: calc(100svh - 56px) !important;
        min-height: calc(100vh - 56px) !important;
        min-height: calc(100svh - 56px) !important;
    }

    .home-layered-hero .hero-copy {
        min-height: calc(100vh - 56px) !important;
        min-height: calc(100svh - 56px) !important;
    }

    .home-layered-hero .scroll-prompt {
        bottom: 1.75rem !important;
    }
}


/* V383 — desktop-only restoration of the approved internal-page hero underlap.
   V381/V382 correctly exposed the full hero below the fixed header, but the
   original desktop composition intentionally placed the top 56px of these
   five public hero banners behind the navigation bar. Restore that visual
   relationship on desktop only. Home and all mobile/tablet-under-701px rules
   remain untouched. Hero heights, focal points, and content alignment are not
   changed. */
@media (min-width: 701px) {
    .desktop-hero-underlap {
        padding-top: 0 !important;
    }
}

/* V385 — About desktop hero spacing alignment only.
   Keeps V383's desktop underlap and all mobile behavior intact.
   The About content block uses normal hero centering, with a small desktop-only
   top bias so the title clears the fixed header while internal spacing remains
   aligned with Journal / Gallery / Shop / Contact. */
@media (min-width: 701px) {
    .about-builder-page.desktop-hero-underlap > .page-hero .page-hero__content {
        transform: none;
        padding-top: 18px;
        box-sizing: border-box;
    }
}

/* V386 — Individual Gallery album desktop hero title clearance only.
   Preserve the approved V383 underlap and all mobile behavior; move only the
   album hero content down enough to remain fully visible below the fixed header. */
@media (min-width: 701px) {
    .pw-gallery-album-view.desktop-hero-underlap > .page-hero .page-hero__content {
        transform: translateY(28px);
    }
}

/* V389 — desktop fluid composition for large and ultrawide displays.
   Desktop only: distribute public card grids by the number of rendered items
   instead of reserving empty fixed tracks. Keep card growth controlled and
   center short rows. Mobile/tablet rules and approved hero geometry remain
   untouched. */
@media (min-width: 1200px) {
    .shop-product-grid,
    .shop-listing-grid,
    .shop-listing-grid--refined {
        grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
    }
    .shop-product-grid:has(> :only-child),
    .shop-listing-grid:has(> :only-child),
    .shop-listing-grid--refined:has(> :only-child) {grid-template-columns:minmax(15rem,26rem);justify-content:center;}
    .shop-product-grid:has(> :nth-child(2):last-child),
    .shop-listing-grid:has(> :nth-child(2):last-child),
    .shop-listing-grid--refined:has(> :nth-child(2):last-child) {grid-template-columns:repeat(2,minmax(15rem,26rem));justify-content:center;}
    .shop-product-grid:has(> :nth-child(3):last-child),
    .shop-listing-grid:has(> :nth-child(3):last-child),
    .shop-listing-grid--refined:has(> :nth-child(3):last-child) {grid-template-columns:repeat(3,minmax(15rem,24rem));justify-content:center;}
    .about-builder-page .about-builder-content {width:min(calc(100% - (2 * var(--pw-fluid-gutter))),96rem);margin-inline:auto;}
    .about-builder-page .about-block--image-text .about-block__body {max-width:44rem;}
}
@media (min-width: 2200px) {
    .journal-index.page-content, .pw-gallery-index,
    .shop-page .shop-category-intro__inner, .shop-page .shop-listing-section--refined {max-width:112rem;margin-inline:auto;}
}


/* V391 — desktop hero hard-boundary fix.
   The fixed PineWake header is a hard 56px boundary on desktop. Public internal
   page heroes begin immediately below it and are never allowed to underlap it.
   Mobile/tablet behavior remains unchanged. */
@media (min-width: 701px) {
    .desktop-hero-underlap {
        padding-top: 56px !important;
    }

    /* These offsets only existed to compensate for the old desktop hero
       underlap. With the hero now fully below the header, normal centering is
       correct again. */
    .about-builder-page.desktop-hero-underlap > .page-hero .page-hero__content,
    .pw-gallery-album-view.desktop-hero-underlap > .page-hero .page-hero__content {
        transform: none !important;
        padding-top: 0 !important;
    }
}
