*, *::before, *::after { box-sizing: border-box; }
body {
    font-family: 'Inter', sans-serif;
    background: #fbfbf7;
    color: #111;
    margin: 0;
    padding: 0;
    font-size: 12px;
    letter-spacing: 0.02em;
    line-height: 1.4;
}
.ng-product-page { max-width: none; margin: 0; padding: 80px 0 80px; }
.ng-breadcrumb { display: flex; align-items: center; gap: 8px; margin-bottom: 32px; padding: 0 32px; font-size: 11px; line-height: 1.2; letter-spacing: .1em; text-transform: uppercase; color: #888; }
.ng-breadcrumb a { color: #888; text-decoration: none; }
.ng-breadcrumb a:hover { color: #111; }
.ng-breadcrumb-sep { color: #ccc; line-height: 1; }
.ng-product-layout { display: grid; grid-template-columns: 70fr 30fr; gap: 0; align-items: start; }
.ng-gallery { padding-left: 16px; }
.ng-gallery-desk { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ng-gallery-desk-img { aspect-ratio: 2 / 4; overflow: hidden; position: relative; }
.ng-gallery-desk-img img { width: 100%; height: 100%; object-fit: cover; display: block; position: absolute; top: 0; left: 0; }
.ng-gallery-mobile { display: none; }
.ng-gallery-carousel { position: relative; }
.ng-gallery-viewport { overflow: hidden; width: 100%; cursor: grab; touch-action: pan-y; user-select: none; }
.ng-gallery-viewport.is-dragging { cursor: grabbing; }
.ng-gallery-track { display: flex; will-change: transform; transform: translate3d(0, 0, 0); transition: transform .28s ease; }
.ng-gallery-track.is-dragging { transition: none; }
.ng-gallery-slide { flex: 0 0 100%; aspect-ratio: 2 / 4; overflow: hidden; position: relative; }
.ng-gallery-slide img { width: 100%; height: 100%; object-fit: contain; display: block; position: absolute; top: 0; left: 0; pointer-events: none; }
.ng-gallery-slide img.ng-lightbox-open-trigger { pointer-events: auto; }
.ng-gallery-nav { position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); width: 40px; height: 40px; border: 1px solid rgba(17, 17, 17, .14); background: rgba(251, 251, 247, .92); color: #111; display: grid; place-items: center; cursor: pointer; padding: 0; transition: opacity .2s, background .2s, border-color .2s; }
.ng-gallery-nav:hover { background: #fff; border-color: rgba(17, 17, 17, .3); }
.ng-gallery-nav:disabled { opacity: .35; cursor: default; }
.ng-gallery-nav-prev { left: 12px; }
.ng-gallery-nav-next { right: 12px; }
.ng-gallery-nav svg { display: block; }
.ng-gallery-thumbs { display: flex; flex-direction: row; gap: 10px; overflow-x: auto; margin-top: 10px; padding-bottom: 2px; scrollbar-width: none; }
.ng-gallery-thumbs::-webkit-scrollbar { display: none; }
.ng-gallery-thumb { padding: 0; border: 1px solid transparent; background: none; cursor: pointer; width: 55px; flex-shrink: 0; aspect-ratio: 3 / 5; overflow: hidden; }
.ng-gallery-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ng-gallery-thumb.is-active { border-color: #111; }
.ng-lightbox-open-trigger { cursor: zoom-in; }
.ng-gallery-desk-img img.ng-lightbox-open-trigger { pointer-events: auto; }
.ng-lightbox { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .24s ease, visibility .24s ease; }
.ng-lightbox.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.ng-lightbox-backdrop { position: absolute; inset: 0; background: rgba(247, 247, 241, .96); }
.ng-lightbox-panel { position: relative; width: 100vw; height: 100vh; background: #f7f7f1; border: none; display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 0; overflow: hidden; }
.ng-lightbox-close { position: absolute; top: 22px; left: 28px; z-index: 9; min-width: 56px; height: 26px; border: none; background: none; color: #111; font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; display: inline-flex; align-items: center; justify-content: flex-start; padding: 0; }
.ng-lightbox-close::before { content: ''; width: 14px; height: 1px; background: currentColor; margin-right: 8px; }
.ng-lightbox-close:hover { opacity: .6; }
.ng-lightbox-close span { display: inline-block; }
.ng-lightbox-rail { position: relative; z-index: 1; overflow-y: auto; padding: 64px 14px 24px 24px; display: flex; flex-direction: column; gap: 8px; border-right: 1px solid rgba(17, 17, 17, .08); background: #f7f7f1; }
.ng-lightbox-thumb { width: 100%; aspect-ratio: 2 / 4; padding: 0; border: 1px solid transparent; background: none; cursor: pointer; overflow: hidden; flex-shrink: 0; }
.ng-lightbox-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ng-lightbox-thumb.is-active { border-color: #111; background: #fff; }
.ng-lightbox-stage { position: relative; z-index: 1; min-width: 0; display: grid; place-items: center; padding: 54px 84px 54px 54px; cursor: auto; }
.ng-lightbox-stage.is-middle-scroll { cursor: auto; }
.ng-lightbox-image { width: 100%; height: 100%; object-fit: contain; display: block; cursor: auto; }
body.ng-lightbox-open { overflow: hidden; }
.ng-info { position: sticky; top: 80px; padding: 0 32px 0 24px; }
.ng-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 4px; }
.ng-title { font-size: clamp(18px, 2.2vw, 26px); font-weight: 400; margin: 0; line-height: 1.3; }
.ng-wishlist-btn { background: none; border: none; cursor: pointer; padding: 4px; color: #111; flex-shrink: 0; margin-top: 4px; }
.ng-wishlist-btn svg { display: block; }
.ng-wishlist-btn:hover { opacity: .6; }
.ng-wishlist-btn.is-active svg path { fill: #111; }
.ng-price { font-size: 14px; font-weight: 400; margin-bottom: 2px; color: #111; }
.ng-price.is-sold-out { display: none; }
.ng-tax-note { font-size: 11px; color: #555; margin-bottom: 20px; }
.ng-oos-note { font-size: 11px; color: #888; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 20px; }
.ng-atc-btn { display: block; width: 100%; padding: 16px 24px; background: #111; color: #fff; font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; border: none; cursor: pointer; transition: background .2s; text-align: center; text-decoration: none; }
.ng-atc-btn:hover { background: #333; }
.ng-atc-btn:disabled { background: #ccc; cursor: not-allowed; }
.ng-atc-row { display: flex; gap: 8px; align-items: stretch; margin-bottom: 8px; }
.ng-qty-input { width: 60px; padding: 0 12px; border: 1px solid #e0e0e0; background: transparent; font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; color: #111; outline: none; text-align: center; transition: border-color .2s; }
.ng-qty-input:focus { border-color: #111; }
.ng-atc-row .ng-atc-btn { flex: 1; }
.ng-delivery { font-size: 11px; color: #555; margin-bottom: 20px; }
.ng-delivery span { color: #111; }
.ng-signin-btn { display: block; width: 100%; padding: 16px 24px; background: #111; color: #fff; font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; border: none; cursor: pointer; text-align: center; text-decoration: none; margin-bottom: 12px; transition: background .2s; }
.ng-signin-btn:hover { background: #333; color: #fff; }
.ng-signin-note { font-size: 11px; color: #aaa; letter-spacing: .05em; }
.ng-signin-note a { color: #111; }
.ng-benefits { display: flex; justify-content: center; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6; margin-bottom: 4px; }
.ng-benefit { font-size: 11px; font-weight: 600; color: #111; margin: 0; }
.ng-benefit-dot { width: 2px; height: 2px; background: #111; border-radius: 50%; flex-shrink: 0; }
.ng-accor { border-bottom: 1px solid #e6e6e6; }
.ng-accor:first-of-type { border-top: none; }
.ng-accor-toggle { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 18px 0; background: none; border: none; cursor: pointer; font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 400; color: #111; text-align: left; letter-spacing: 0.02em; }
.ng-accor-toggle:hover { opacity: .7; }
.ng-accor-icon { flex-shrink: 0; width: 14px; height: 14px; display: flex; align-items: center; justify-content: center; }
.ng-accor-icon svg { display: block; }
.ng-accor-vert { transition: transform .5s ease, opacity .5s ease; transform-origin: 50% 50%; }
.ng-accor.is-open .ng-accor-vert { transform: rotate(90deg); opacity: 0; }
.ng-accor-body { overflow: hidden; max-height: 0; opacity: 0; padding-bottom: 0; transition: max-height 0.6s ease, opacity 0.5s ease, padding-bottom 0.6s ease; }
.ng-accor.is-open .ng-accor-body { opacity: 1; padding-bottom: 20px; }
.ng-meta-grid { display: flex; flex-direction: column; gap: 0; margin-bottom: 16px; }
.ng-meta-row { display: flex; flex-direction: column; gap: 2px; margin-bottom: 12px; }
.ng-meta-label { font-size: 12px; font-weight: 500; color: #111; }
.ng-meta-val { font-size: 12px; color: #111; }
.ng-accor-body p { font-size: 12px; color: #111; line-height: 1.6; margin: 0 0 8px; }
.ng-accor-body p:last-child { margin-bottom: 0; }
.ng-accor-body strong { color: #111; font-weight: 500; }
.ng-accor-body h5 { font-size: 12px; font-weight: 500; color: #111; margin: 0 0 2px; }
.ng-contact-btn { display: block; width: 100%; padding: 14px 24px; background: transparent; color: #111; font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; border: 1px solid #bcbcbc; cursor: pointer; text-align: center; text-decoration: none; margin-top: 16px; transition: background .2s, color .2s; }
.ng-contact-btn:hover { background: #111; color: #fff; border-color: #111; }
.ng-related { padding: 56px 32px 0; }
.ng-related-header h2 { margin: 0 0 20px; font-size: 16px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.ng-related-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 8px;
    max-width: none;
    margin: 0 auto;
}
.ng-related-card { color: #111; text-decoration: none; display: block; }
.ng-related-image { aspect-ratio: 1 / 1; overflow: hidden; background: #f4f4f0; }
.ng-related-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.ng-related-card:hover .ng-related-image img { transform: scale(1.02); }
.ng-related-content { padding-top: 10px; }
.ng-related-name { margin: 0 0 4px; font-size: 12px; line-height: 1.4; }
.ng-related-price { margin: 0; font-size: 12px; font-weight: 600; }
@media (max-width: 1024px) {
    .ng-product-layout { grid-template-columns: 1.4fr 1fr; gap: 24px; }
    .ng-gallery { position: static; }
    .ng-gallery-desk { display: none; }
    .ng-gallery-mobile { display: block; }
    .ng-gallery-mobile .ng-gallery-thumbs { display: none; }
    .ng-gallery-slide { aspect-ratio: 3 / 5; }
    .ng-lightbox-panel { width: 100vw; height: 100vh; grid-template-columns: 102px minmax(0, 1fr); }
    .ng-lightbox-close { left: 20px; top: 16px; }
    .ng-lightbox-rail { padding: 52px 10px 18px 16px; }
    .ng-lightbox-stage { padding: 46px 26px 26px 20px; }
    .ng-related-grid {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 8px;
        max-width: none;
    }
}
@media (max-width: 767px) {
    .ng-product-layout { grid-template-columns: 1fr; gap: 24px; }
    .ng-lightbox { padding: 0; }
    .ng-lightbox-panel { width: 100vw; height: 100vh; grid-template-columns: 72px minmax(0, 1fr); }
    .ng-lightbox-rail { padding: 48px 8px 12px 10px; }
    .ng-lightbox-stage { padding: 44px 16px 16px 8px; }
    .ng-related { padding: 40px 16px 0; }
    .ng-related-grid {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        max-width: none;
    }
}
@media (max-width: 600px) {
    .ng-product-page { padding: 68px 0 64px; }
    .ng-breadcrumb { padding: 0 16px; }
    .ng-info { padding: 0 16px; }
    .ng-lightbox-panel { grid-template-columns: 64px minmax(0, 1fr); }
    .ng-lightbox-close { left: 12px; top: 12px; }
}

/* Monies-like continuous lightbox stream */
.ng-lightbox {
    z-index: 10000 !important;
}

.ng-lightbox-backdrop {
    z-index: 0;
    background: #f7f7f1;
}

.ng-lightbox-panel {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    grid-template-rows: 76px minmax(0, 1fr);
    background: #f7f7f1;
}

.ng-lightbox-topbar {
    grid-column: 1 / 3;
    grid-row: 1;
    position: sticky;
    top: 0;
    z-index: 5;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    border-bottom: 1px solid rgba(17, 17, 17, .08);
    background: #f7f7f1;
    padding: 0 24px;
    min-height: 76px;
}

.ng-lightbox-close {
    position: static;
    border: none;
    background: none;
    color: #111;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0;
    min-width: 68px;
    height: 26px;
    margin: 0;
    z-index: auto;
}

.ng-lightbox-close::before {
    content: '';
    width: 14px;
    height: 1px;
    background: currentColor;
    margin-right: 8px;
}

.ng-lightbox-brand {
    justify-self: center;
    color: #111;
    text-decoration: none;
    font-size: clamp(32px, 3.4vw, 52px);
    letter-spacing: .12em;
    line-height: 1;
    font-weight: 500;
}

.ng-lightbox-brand-spacer {
    justify-self: end;
    width: 68px;
    height: 1px;
    visibility: hidden;
}

.ng-lightbox-rail {
    grid-column: 1;
    grid-row: 2;
    border-right: 1px solid rgba(17, 17, 17, .08);
    padding: 12px;
    gap: 10px;
    background: #f7f7f1;
    overflow-y: auto;
}

.ng-lightbox-stage {
    grid-column: 2;
    grid-row: 2;
    padding: 0;
    overflow-y: auto;
    background: #f7f7f1;
    cursor: auto;
    scroll-behavior: smooth;
}

.ng-lightbox-stack {
    display: block;
}

.ng-lightbox-stack-item {
    margin: 0;
    width: 100%;
    min-height: calc(100vh - 76px);
    display: grid;
    align-items: start;
    justify-items: center;
    background: #f7f7f1;
}

.ng-lightbox-stack-image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    cursor: auto;
    user-select: none;
    -webkit-user-drag: none;
}

.ng-lightbox-thumb.is-active {
    border-color: #111;
    background: #fff;
}

@media (max-width: 1024px) {
    .ng-lightbox-panel {
        grid-template-columns: 78px minmax(0, 1fr);
        grid-template-rows: 64px minmax(0, 1fr);
    }

    .ng-lightbox-topbar {
        min-height: 64px;
        padding: 0 16px;
    }

    .ng-lightbox-brand {
        font-size: clamp(22px, 5.5vw, 34px);
        letter-spacing: .1em;
    }

    .ng-lightbox-rail {
        padding: 10px;
    }

    .ng-lightbox-stack-item {
        min-height: calc(100vh - 64px);
    }
}

@media (max-width: 767px) {
    .ng-lightbox-panel {
        grid-template-columns: 1fr;
        grid-template-rows: 60px minmax(0, 1fr);
    }

    .ng-lightbox-rail {
        display: none;
    }

    .ng-lightbox-stage {
        grid-column: 1;
    }

    .ng-lightbox-brand {
        font-size: 24px;
    }

    .ng-lightbox-brand-spacer {
        width: 56px;
    }

    .ng-lightbox-stack-item {
        min-height: calc(100vh - 60px);
    }
}
