:root {
    --army: #4B5320;
    --olive: #556B2F;
    --moss: #6B8E23;
    --sage: #8F9779;
    --ash: #A9A9A9;
    --ink: #10150b;
    --cream: #f6f8ef;
    --glass: rgba(255, 255, 255, 0.10);
    --glass-strong: rgba(255, 255, 255, 0.18);
    --shadow: 0 24px 80px rgba(16, 21, 11, 0.32);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #f7faef;
    background:
        radial-gradient(circle at top left, rgba(107, 142, 35, .48), transparent 34rem),
        linear-gradient(135deg, #10150b 0%, #263016 47%, #4B5320 100%);
    min-height: 100vh;
    overflow-x: hidden;
}

a { color: inherit; }
img, iframe { max-width: 100%; }
.section-pad { padding: 92px 0; }

.site-bg-orb {
    position: fixed;
    width: 22rem;
    height: 22rem;
    border-radius: 999px;
    filter: blur(22px);
    opacity: .28;
    pointer-events: none;
    z-index: -1;
}
.orb-one { background: var(--moss); top: 8%; right: -8rem; }
.orb-two { background: var(--sage); bottom: 8%; left: -10rem; }

.glass-nav {
    background: rgba(16, 21, 11, 0.72);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.brand-mark {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    font-weight: 800;
    letter-spacing: -.04em;
    text-decoration: none;
}
.brand-cube {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(145deg, var(--moss), var(--army));
    box-shadow: 10px 14px 28px rgba(0,0,0,.28), inset -7px -8px 16px rgba(0,0,0,.18), inset 7px 8px 18px rgba(255,255,255,.15);
    transform: rotateX(10deg) rotateY(-12deg);
}

.brand-logo-image {
    width: 46px;
    height: 46px;
    object-fit: contain;
    border-radius: 16px;
    background: rgba(255,255,255,.92);
    padding: 5px;
    box-shadow: 10px 14px 28px rgba(0,0,0,.26), inset 0 1px rgba(255,255,255,.7);
    transform: rotateX(7deg) rotateY(-8deg);
}

.navbar .nav-link {
    color: rgba(255,255,255,.74);
    border-radius: 999px;
    padding-inline: 1rem !important;
}
.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: #fff;
    background: rgba(255,255,255,.12);
}

.btn-olive {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--moss);
    --bs-btn-border-color: var(--moss);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--olive);
    --bs-btn-hover-border-color: var(--olive);
    box-shadow: 0 18px 34px rgba(0,0,0,.22), inset 0 1px rgba(255,255,255,.28);
    border-radius: 999px;
}
.btn-outline-light { border-radius: 999px; backdrop-filter: blur(8px); }

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: #e4efd0;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    padding: .45rem .8rem;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}
.hero-title, .inner-hero h1, .section-heading h2, .showcase-panel h2 { letter-spacing: -.055em; }
.hero-copy, .inner-hero .lead, .section-heading p, .showcase-panel p, .feature-card p, .service-card p, .contact-card p {
    color: rgba(247,250,239,.78);
}
.trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}
.trust-row span {
    padding: .55rem .85rem;
    border-radius: 999px;
    background: rgba(255,255,255,.09);
    border: 1px solid rgba(255,255,255,.12);
    font-size: .86rem;
    color: rgba(255,255,255,.82);
}

.hero-3d-stage {
    position: relative;
    min-height: 470px;
    display: grid;
    place-items: center;
    perspective: 1100px;
}
.product-cube {
    position: relative;
    width: min(68vw, 310px);
    height: min(68vw, 310px);
    transform-style: preserve-3d;
    transform: rotateX(-16deg) rotateY(-28deg);
    animation: floatCube 5s ease-in-out infinite;
}
.cube-face {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255,255,255,.20);
    box-shadow: var(--shadow), inset 0 0 44px rgba(255,255,255,.10);
}
.cube-front {
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, rgba(143,151,121,.92), rgba(85,107,47,.95));
    border-radius: 34px;
    transform: translateZ(76px);
}
.cube-front span { font-size: clamp(1.4rem, 4vw, 2.4rem); font-weight: 900; letter-spacing: -.06em; }
.cube-side {
    background: linear-gradient(160deg, rgba(75,83,32,.92), rgba(16,21,11,.98));
    border-radius: 34px;
    transform: rotateY(90deg) translateZ(76px);
}
.cube-top {
    background: linear-gradient(160deg, rgba(169,169,169,.72), rgba(107,142,35,.84));
    border-radius: 34px;
    transform: rotateX(90deg) translateZ(76px);
}
.shadow-plate {
    position: absolute;
    width: 360px;
    height: 74px;
    bottom: 44px;
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(0,0,0,.45), transparent 70%);
    filter: blur(2px);
}
.floating-card {
    position: absolute;
    z-index: 3;
    min-width: 180px;
    padding: 1rem;
    border-radius: 22px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    backdrop-filter: blur(14px);
    box-shadow: 0 20px 44px rgba(0,0,0,.22);
}
.floating-card strong, .floating-card small { display: block; }
.floating-card small { color: rgba(255,255,255,.66); }
.card-top { top: 32px; right: 32px; transform: rotate(4deg); }
.card-bottom { left: 10px; bottom: 78px; transform: rotate(-5deg); }
.mini-dot { width: 10px; height: 10px; display: inline-block; border-radius: 50%; background: var(--moss); box-shadow: 0 0 0 6px rgba(107,142,35,.17); margin-right: .4rem; }
@keyframes floatCube { 0%,100% { transform: rotateX(-16deg) rotateY(-28deg) translateY(0); } 50% { transform: rotateX(-13deg) rotateY(-22deg) translateY(-16px); } }

.section-heading { max-width: 760px; }
.feature-card, .service-card, .contact-card, .form-card, .showcase-panel, .dashboard-mockup, .map-shell, .process-strip {
    border: 1px solid rgba(255,255,255,.15);
    background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.055));
    backdrop-filter: blur(18px);
    border-radius: 30px;
    box-shadow: 0 20px 54px rgba(0,0,0,.18);
}
.feature-card, .service-card { padding: 2rem; transition: transform .25s ease, box-shadow .25s ease; }
.feature-card:hover, .service-card:hover { transform: translateY(-8px) rotateX(2deg); box-shadow: 0 28px 70px rgba(0,0,0,.28); }
.icon-3d {
    width: 54px; height: 54px; display: grid; place-items: center; border-radius: 18px;
    background: linear-gradient(145deg, var(--sage), var(--olive));
    box-shadow: 12px 14px 28px rgba(0,0,0,.22), inset 6px 7px 18px rgba(255,255,255,.16);
    font-weight: 900;
    margin-bottom: 1.2rem;
}
.showcase-panel { padding: clamp(1.5rem, 4vw, 3rem); }
.dashboard-mockup { padding: 1.5rem; min-height: 260px; transform: rotateY(-8deg) rotateX(4deg); }
.mockup-bar { height: 16px; border-radius: 999px; background: rgba(255,255,255,.20); margin-bottom: 1.2rem; }
.mockup-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; margin-bottom: 1.2rem; }
.mockup-grid span { display: block; height: 68px; border-radius: 18px; background: linear-gradient(145deg, rgba(107,142,35,.68), rgba(255,255,255,.12)); }
.mockup-line { height: 12px; width: 68%; border-radius: 999px; background: rgba(255,255,255,.20); margin-bottom: .7rem; }
.mockup-line.wide { width: 90%; }
.mockup-pill { display: inline-block; margin-top: .8rem; padding: .55rem .85rem; background: var(--moss); border-radius: 999px; font-weight: 800; }

.inner-hero { position: relative; }
.inner-hero .lead { max-width: 760px; }
.stacked-3d-boxes { min-height: 380px; position: relative; perspective: 900px; }
.stack-box { position: absolute; border-radius: 38px; border: 1px solid rgba(255,255,255,.14); box-shadow: var(--shadow); }
.box-a { width: 72%; height: 250px; left: 10%; top: 70px; background: linear-gradient(145deg, var(--moss), var(--olive)); transform: rotate(-8deg) skewY(-4deg); }
.box-b { width: 52%; height: 180px; right: 4%; top: 20px; background: linear-gradient(145deg, var(--sage), var(--army)); transform: rotate(10deg) skewY(5deg); }
.box-c { width: 48%; height: 150px; left: 0; bottom: 25px; background: linear-gradient(145deg, rgba(169,169,169,.78), var(--olive)); transform: rotate(8deg); }
.info-strip, .office-box {
    padding: 1rem;
    border-radius: 20px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.14);
}
.service-card { position: relative; overflow: hidden; }
.service-orb { width: 92px; height: 92px; border-radius: 50%; background: radial-gradient(circle, rgba(169,169,169,.7), rgba(107,142,35,.1)); filter: blur(.3px); margin-bottom: 1.4rem; box-shadow: inset -10px -10px 24px rgba(0,0,0,.25); }
.process-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: 1rem; }
.process-item { padding: 1.4rem; border-radius: 24px; background: rgba(255,255,255,.08); }
.process-item span { color: var(--ash); font-weight: 900; }
.process-item strong { display: block; font-size: 1.08rem; margin: .35rem 0; }
.process-item p { margin: 0; color: rgba(255,255,255,.72); }

.contact-card, .form-card { padding: clamp(1.5rem, 3vw, 2.2rem); }
.contact-line { padding: .8rem 0; border-bottom: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.82); }
.form-control {
    min-height: 48px;
    border-radius: 16px;
    border-color: rgba(75,83,32,.22);
}
.form-control:focus { border-color: var(--moss); box-shadow: 0 0 0 .25rem rgba(107,142,35,.18); }
.map-shell { overflow: hidden; height: 430px; padding: .5rem; }
.map-shell iframe { width: 100%; height: 100%; border: 0; border-radius: 24px; filter: saturate(.85) contrast(1.02); }

.footer-3d { background: rgba(16,21,11,.66); border-top: 1px solid rgba(255,255,255,.10); }
.footer-title { color: #fff; letter-spacing: .04em; text-transform: uppercase; }
.footer-text { color: rgba(255,255,255,.66); }
.footer-text a { color: rgba(255,255,255,.85); text-decoration: none; }
.footer-text a:hover { color: #fff; }
.footer-line { border-color: rgba(255,255,255,.14); }

@media (max-width: 991.98px) {
    .section-pad { padding: 72px 0; }
    .hero-3d-stage { min-height: 390px; }
    .process-strip { grid-template-columns: 1fr; }
    .dashboard-mockup { transform: none; }
}
@media (max-width: 575.98px) {
    .section-pad { padding: 58px 0; }
    .hero-3d-stage { min-height: 330px; }
    .floating-card { min-width: 150px; font-size: .88rem; }
    .card-top { right: 0; }
    .card-bottom { left: 0; bottom: 54px; }
    .map-shell { height: 340px; }
}


/* Phase 2 Product Catalog + Promo Styles */
.product-hero {
    overflow: hidden;
}
.promo-panel,
.category-intro-card,
.empty-state-3d {
    border: 1px solid rgba(255,255,255,.16);
    background: linear-gradient(145deg, rgba(255,255,255,.14), rgba(255,255,255,.06));
    backdrop-filter: blur(18px);
    border-radius: 34px;
    box-shadow: 0 26px 72px rgba(0,0,0,.22);
    padding: clamp(1.5rem, 4vw, 3rem);
    position: relative;
    overflow: hidden;
}
.promo-panel::before,
.category-intro-card::before {
    content: "";
    position: absolute;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    right: -70px;
    top: -80px;
    background: radial-gradient(circle, rgba(169,169,169,.42), rgba(107,142,35,.08));
}
.product-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.16);
    background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.055));
    backdrop-filter: blur(18px);
    border-radius: 32px;
    box-shadow: 0 22px 58px rgba(0,0,0,.22);
    transform: translateZ(0);
    transition: transform .25s ease, box-shadow .25s ease;
}
.product-card:hover {
    transform: translateY(-9px) rotateX(2deg);
    box-shadow: 0 32px 80px rgba(0,0,0,.32);
}
.product-image-wrap {
    position: relative;
    aspect-ratio: 4 / 3;
    background: rgba(255,255,255,.08);
    overflow: hidden;
}
.product-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.01);
    transition: transform .35s ease;
}
.product-card:hover .product-image-wrap img { transform: scale(1.06); }
.product-badge,
.featured-chip {
    position: absolute;
    z-index: 2;
    top: 14px;
    left: 14px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .35rem .7rem;
    font-size: .76rem;
    font-weight: 800;
    color: #fff;
    background: rgba(75,83,32,.82);
    border: 1px solid rgba(255,255,255,.18);
    backdrop-filter: blur(8px);
}
.featured-chip {
    left: auto;
    right: 14px;
    background: rgba(107,142,35,.82);
}
.product-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 1.4rem;
}
.product-category {
    color: #e4efd0;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: .4rem;
}
.product-body p { color: rgba(247,250,239,.76); }
.product-price { color: #fff; font-size: 1.05rem; }
.empty-state-3d { max-width: 720px; margin-inline: auto; }
.admin-card .table td, .admin-card .table th { vertical-align: middle; }
@media (max-width: 991px) {
    .promo-panel .text-lg-end { text-align: left !important; }
}

/* Phase 3 Product Detail + Search Styles */
.catalog-search {
    width: min(100%, 780px);
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: .7rem;
    padding: .65rem;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    backdrop-filter: blur(16px);
    box-shadow: 0 18px 44px rgba(0,0,0,.18);
}
.catalog-search .form-control {
    border-radius: 999px;
    border-color: rgba(255,255,255,.18);
    background: rgba(255,255,255,.94);
}
.product-title-link {
    color: #fff;
    text-decoration: none;
}
.product-title-link:hover { color: #e4efd0; }
.product-detail-hero { position: relative; overflow: hidden; }
.product-detail-media,
.product-description-panel {
    border: 1px solid rgba(255,255,255,.16);
    background: linear-gradient(145deg, rgba(255,255,255,.14), rgba(255,255,255,.055));
    backdrop-filter: blur(18px);
    border-radius: 36px;
    box-shadow: 0 28px 82px rgba(0,0,0,.28);
    overflow: hidden;
    position: relative;
}
.product-detail-media {
    min-height: 460px;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 3vw, 2rem);
    transform: rotateY(4deg) rotateX(2deg);
}
.product-detail-media::after {
    content: "";
    position: absolute;
    width: 60%;
    height: 36px;
    left: 20%;
    bottom: 24px;
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(0,0,0,.42), transparent 70%);
    filter: blur(2px);
}
.product-detail-media img {
    width: 100%;
    max-height: 520px;
    object-fit: contain;
    border-radius: 28px;
    position: relative;
    z-index: 1;
}
.product-detail-copy .lead { color: rgba(247,250,239,.78); }
.detail-price-panel {
    width: fit-content;
    min-width: 210px;
    padding: 1rem 1.2rem;
    border-radius: 24px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: 0 18px 42px rgba(0,0,0,.18);
}
.detail-price-panel span {
    display: block;
    color: rgba(255,255,255,.66);
    font-size: .84rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
}
.detail-price-panel strong {
    display: block;
    font-size: clamp(1.45rem, 3vw, 2.2rem);
    color: #fff;
}
.product-description-panel { padding: clamp(1.5rem, 4vw, 3rem); }
.product-description-panel p { color: rgba(247,250,239,.78); }
.product-facts-card {
    display: grid;
    gap: .85rem;
    padding: 1.2rem;
    border-radius: 24px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.14);
}
.product-facts-card div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-top: .7rem;
    border-top: 1px solid rgba(255,255,255,.12);
}
.product-facts-card span { color: rgba(255,255,255,.68); }
.product-facts-card b { text-align: right; }
@media (max-width: 767.98px) {
    .catalog-search { grid-template-columns: 1fr; border-radius: 28px; }
    .catalog-search .btn { width: 100%; }
    .product-detail-media { min-height: 340px; transform: none; }
}

/* Phase 4: stock badges, inquiry panel, and CMS image manager */
.stock-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.35rem;
    padding:.34rem .65rem;
    border-radius:999px;
    font-size:.72rem;
    font-weight:800;
    font-style:normal;
    letter-spacing:.02em;
    white-space:nowrap;
    border:1px solid rgba(75,83,32,.18);
    box-shadow:0 8px 20px rgba(16,21,11,.08);
}
.stock-in{background:rgba(107,142,35,.16);color:#344716;}
.stock-low{background:rgba(255,224,102,.22);color:#665100;}
.stock-out{background:rgba(169,169,169,.22);color:#555;}
.stock-preorder{background:rgba(85,107,47,.15);color:#344716;}
.stock-soon{background:rgba(143,151,121,.18);color:#454b39;}
.btn-outline-olive{
    color:var(--army);
    border:1px solid rgba(75,83,32,.35);
    background:rgba(255,255,255,.72);
    border-radius:999px;
    font-weight:800;
}
.btn-outline-olive:hover{
    color:#fff;
    background:var(--olive);
    border-color:var(--olive);
    transform:translateY(-1px);
}
.detail-price-panel{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.7rem;
}
.detail-price-panel small{
    width:100%;
    color:rgba(255,255,255,.78);
}
.inquiry-product-panel{
    display:flex;
    gap:1rem;
    align-items:center;
    padding:1rem;
    border-radius:22px;
    background:linear-gradient(145deg,rgba(107,142,35,.12),rgba(255,255,255,.85));
    border:1px solid rgba(75,83,32,.15);
    box-shadow:0 16px 40px rgba(16,21,11,.08);
}
.inquiry-product-panel img{
    width:78px;
    height:78px;
    object-fit:cover;
    border-radius:18px;
    background:#eef2e4;
}
.inquiry-product-panel strong,
.inquiry-product-panel small{
    display:block;
}
.media-card{
    overflow:hidden;
    border-radius:24px;
    background:#fff;
    border:1px solid rgba(75,83,32,.12);
    box-shadow:0 18px 50px rgba(16,21,11,.08);
    transform:perspective(900px) rotateX(0deg);
    transition:transform .25s ease, box-shadow .25s ease;
}
.media-card:hover{
    transform:perspective(900px) rotateX(2deg) translateY(-4px);
    box-shadow:0 24px 70px rgba(16,21,11,.14);
}
.media-card img{
    width:100%;
    height:180px;
    object-fit:cover;
    background:#eef2e4;
}
.media-card-body{
    padding:1rem;
}
.media-card-body code{
    white-space:normal;
    word-break:break-word;
}
.empty-admin-state{
    border:1px dashed rgba(75,83,32,.25);
    border-radius:24px;
    background:rgba(255,255,255,.7);
}
@media (max-width: 575.98px){
    .stock-pill{font-size:.68rem;padding:.28rem .52rem;}
    .inquiry-product-panel{align-items:flex-start;}
    .inquiry-product-panel img{width:64px;height:64px;}
}

/* Phase 5: product gallery and inquiry status management (retained in Phase 6) */
.product-gallery-shell{margin-bottom:1rem;}
.product-gallery-thumbs{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(82px,1fr));
    gap:.75rem;
    margin-top:1rem;
}
.gallery-thumb{
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.12);
    border-radius:18px;
    padding:.35rem;
    box-shadow:0 12px 30px rgba(16,21,11,.18);
    cursor:pointer;
    transition:transform .2s ease, border-color .2s ease, background .2s ease;
}
.gallery-thumb:hover,
.gallery-thumb.active{
    transform:translateY(-3px);
    border-color:rgba(255,255,255,.7);
    background:rgba(255,255,255,.22);
}
.gallery-thumb img{
    width:100%;
    height:74px;
    object-fit:cover;
    border-radius:14px;
    background:#eef2e4;
}
.gallery-admin-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem;
}
.gallery-admin-item{
    display:block;
    padding:.55rem;
    border:1px solid rgba(75,83,32,.12);
    border-radius:16px;
    background:#fff;
}
.gallery-admin-item img{
    width:100%;
    height:92px;
    object-fit:cover;
    border-radius:12px;
    background:#eef2e4;
}
.admin-status-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    padding:1rem;
    min-height:74px;
    background:#fff;
    border:1px solid rgba(75,83,32,.12);
    border-radius:20px;
    box-shadow:0 12px 30px rgba(16,21,11,.06);
    text-decoration:none;
    color:#202617;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.admin-status-card strong{font-size:1.55rem;line-height:1;}
.admin-status-card:hover,
.admin-status-card.active{
    transform:translateY(-3px);
    border-color:rgba(107,142,35,.4);
    box-shadow:0 20px 50px rgba(16,21,11,.11);
    color:#202617;
}
.inquiry-admin-card{
    padding:1rem;
    border-radius:22px;
    border:1px solid rgba(75,83,32,.12);
    background:linear-gradient(145deg,#fff,rgba(244,246,239,.72));
    box-shadow:0 18px 40px rgba(16,21,11,.07);
}
.inquiry-status-form{
    width:min(100%,360px);
    padding:1rem;
    border-radius:18px;
    background:rgba(244,246,239,.86);
    border:1px solid rgba(75,83,32,.12);
}
.message-box,
.admin-note-box{
    padding:.85rem 1rem;
    border-radius:16px;
    border:1px solid rgba(75,83,32,.11);
    background:rgba(255,255,255,.78);
}
.admin-note-box{
    background:rgba(107,142,35,.08);
}
@media(max-width:575.98px){
    .gallery-admin-grid{grid-template-columns:1fr;}
    .product-gallery-thumbs{grid-template-columns:repeat(3,1fr);}
    .gallery-thumb img{height:64px;}
}

/* Phase 6: product ordering and archive management */
.featured-order-preview{display:grid;gap:.75rem}.featured-order-item{display:flex;align-items:center;gap:.85rem;padding:.75rem;border:1px solid rgba(75,83,32,.12);border-radius:18px;background:linear-gradient(135deg,#fff,#f7f9f1)}.featured-order-item span{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;background:#4B5320;color:#fff;font-weight:800;box-shadow:0 10px 25px rgba(75,83,32,.18)}.featured-order-item img{width:58px;height:48px;object-fit:cover;border-radius:14px;background:#eef2e4}.table .form-switch .form-check-input{cursor:pointer}.archive-note{border-left:4px solid #4B5320;background:#f4f6ef;border-radius:18px;padding:1rem}

/* Phase 7 CMS tools */
.reply-template-box{
    background:linear-gradient(145deg,rgba(143,151,121,.13),rgba(255,255,255,.92));
    border:1px solid rgba(75,83,32,.14);
    border-radius:20px;
    padding:1rem;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 14px 34px rgba(16,21,11,.06);
}
.placeholder-grid{display:flex;flex-wrap:wrap;gap:.55rem}.placeholder-grid code{background:#f2f5ea;border:1px solid rgba(75,83,32,.12);border-radius:999px;padding:.4rem .65rem;color:#4B5320}.sticky-save-bar{position:sticky;bottom:1rem;background:rgba(244,246,239,.88);backdrop-filter:blur(12px);border:1px solid rgba(75,83,32,.12);border-radius:22px;padding:1rem;display:flex;gap:.75rem;flex-wrap:wrap;box-shadow:0 18px 45px rgba(16,21,11,.12);z-index:5}.template-body-editor{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.print-toolbar{position:sticky;top:0;z-index:10;background:#f4f6ef;border-bottom:1px solid rgba(75,83,32,.12);padding:1rem 0;margin-bottom:1.5rem}.print-product-table th{white-space:nowrap}.print-badge{display:inline-block;border:1px solid rgba(75,83,32,.18);border-radius:999px;padding:.2rem .55rem;background:#f5f7ee;font-size:.78rem;font-weight:700;color:#4B5320}
@media print{.admin-sidebar,.print-toolbar,.no-print,.btn{display:none!important}.admin-shell,.container-fluid,.row,.col-lg-9,.col-xl-10{display:block!important;width:100%!important;max-width:100%!important;padding:0!important;margin:0!important}.admin-card{box-shadow:none!important;border:1px solid #ddd!important;border-radius:0!important}.table{font-size:11px}body{background:#fff!important;color:#111!important}.print-only-title{display:block!important}.reply-template-box{box-shadow:none!important}}

/* Phase 8: Activity Log + Backup/Restore */
.admin-log-table td{vertical-align:top}.log-meta{white-space:pre-wrap;background:#f4f6ef;border:1px solid rgba(75,83,32,.12);border-radius:14px;padding:.75rem;margin-top:.5rem;max-height:220px;overflow:auto}.backup-panel{position:relative;overflow:hidden}.backup-panel:before{content:"";position:absolute;right:-50px;top:-50px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(107,142,35,.16),rgba(107,142,35,0));pointer-events:none}.restore-warning{border-color:rgba(143,151,121,.35)!important;background:linear-gradient(145deg,#fff,#f8f9f3)}

/* Airsoft Content Patch Visuals */
.hero-airsoft-art {
    position: absolute;
    inset: 10% 8% auto auto;
    width: min(76%, 520px);
    border-radius: 34px;
    transform: rotateY(-12deg) rotateX(5deg) translateZ(20px);
    box-shadow: 0 40px 90px rgba(15, 24, 8, .38);
    z-index: 1;
}
.hero-3d-stage .floating-card,
.hero-3d-stage .product-cube,
.hero-3d-stage .shadow-plate {
    z-index: 2;
}
.hero-3d-stage .cube-main {
    transform: translate3d(-40px, 120px, 40px) rotateX(-8deg) rotateY(-26deg);
}
.airsoft-image-card {
    border: 1px solid rgba(255, 255, 255, .18);
    background: linear-gradient(145deg, rgba(255, 255, 255, .88), rgba(143, 151, 121, .3));
    border-radius: 36px;
    padding: 18px;
    box-shadow: 0 35px 90px rgba(18, 27, 10, .22);
    transform: perspective(900px) rotateY(8deg) rotateX(3deg);
}
.airsoft-image-card img {
    display: block;
    width: 100%;
    border-radius: 28px;
}
@media (max-width: 991px) {
    .hero-airsoft-art {
        position: relative;
        inset: auto;
        width: 92%;
        margin: 0 auto;
        display: block;
        transform: none;
    }
    .hero-3d-stage .cube-main {
        transform: translate3d(0, 0, 20px) rotateX(-8deg) rotateY(-26deg);
    }
}


.brand-setting-box {
    border: 1px solid rgba(75,83,32,.12);
    border-radius: 22px;
    padding: 1.2rem;
    background: linear-gradient(145deg, #fff, #f7f9f1);
}
.brand-preview-box {
    width: 72px;
    height: 72px;
    border-radius: 22px;
    display: grid;
    place-items: center;
    background: #eef3e2;
    border: 1px dashed rgba(75,83,32,.28);
    color: #556B2F;
    font-weight: 800;
    overflow: hidden;
}
.brand-preview-box img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 7px;
}
.favicon-preview {
    width: 58px;
    height: 58px;
    border-radius: 16px;
}



/* Hero Safety Gears Patch */
.hero-safety-stage {
    position: relative;
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    isolation: isolate;
}
.hero-safety-glow {
    position: absolute;
    inset: 7% 2% 10% 2%;
    border-radius: 40px;
    background: radial-gradient(circle at 55% 45%, rgba(107,142,35,.22), rgba(107,142,35,.06) 42%, rgba(0,0,0,0) 72%);
    filter: blur(4px);
    z-index: 0;
}
.hero-safety-plate {
    position: absolute;
    width: 70%;
    height: 28%;
    border-radius: 36px;
    border: 1px solid rgba(255,255,255,.14);
    background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
    backdrop-filter: blur(6px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 18px 44px rgba(0,0,0,.18);
    z-index: 1;
}
.hero-safety-plate.plate-one {
    transform: rotate(-12deg);
    bottom: 12%;
    left: 8%;
}
.hero-safety-plate.plate-two {
    transform: rotate(11deg);
    top: 18%;
    right: 2%;
}
.hero-safety-image {
    position: relative;
    z-index: 2;
    width: min(100%, 840px);
    max-height: 520px;
    object-fit: contain;
    filter: drop-shadow(0 28px 65px rgba(8, 14, 4, .45));
}

@media (max-width: 1199px) {
    .hero-safety-stage { min-height: 470px; }
    .hero-safety-image { max-height: 470px; }
}
@media (max-width: 991px) {
    .hero-safety-stage { min-height: 380px; margin-top: 1rem; }
    .hero-safety-image { max-height: 380px; }
    .hero-safety-plate { width: 78%; height: 24%; }
}
@media (max-width: 575px) {
    .hero-safety-stage { min-height: 290px; }
    .hero-safety-image { max-height: 290px; }
    .hero-safety-plate.plate-one { left: 4%; bottom: 10%; }
    .hero-safety-plate.plate-two { right: 0; top: 14%; }
}


/* Exact Generated Hero Visual Patch */
.hero-generated-stage {
    position: relative;
    min-height: 540px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero-generated-art {
    width: min(100%, 1080px);
    max-height: 560px;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 22px 60px rgba(0,0,0,.34));
}
@media (max-width: 1199px) {
    .hero-generated-stage { min-height: 500px; }
    .hero-generated-art { max-height: 500px; }
}
@media (max-width: 991px) {
    .hero-generated-stage { min-height: 360px; margin-top: 1rem; }
    .hero-generated-art { max-height: 360px; }
}
@media (max-width: 575px) {
    .hero-generated-stage { min-height: 290px; }
    .hero-generated-art { max-height: 290px; }
}


/* Polished Hero Gear Fix - uses a feathered transparent PNG asset, not a boxed screenshot */
/* Polished hero visual patch */
.hero-section {
    position: relative;
    overflow: hidden;
}
.hero-layout-row {
    align-items: center !important;
}
.hero-copy-col {
    position: relative;
    z-index: 3;
    padding-right: clamp(1rem, 3vw, 2.5rem);
}
.hero-copy {
    max-width: 620px;
}
.hero-cta-row .btn {
    min-width: 206px;
}
.hero-visual-col {
    position: relative;
}
.hero-polished-stage {
    position: relative;
    min-height: 600px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    isolation: isolate;
    overflow: visible;
}
.hero-glow {
    position: absolute;
    border-radius: 999px;
    filter: blur(40px);
    pointer-events: none;
    z-index: 0;
}
.hero-glow-one {
    width: 520px;
    height: 420px;
    right: -2%;
    top: 4%;
    background: radial-gradient(circle, rgba(107,142,35,.34) 0%, rgba(107,142,35,.12) 42%, rgba(107,142,35,0) 72%);
}
.hero-glow-two {
    width: 360px;
    height: 260px;
    left: 12%;
    bottom: 8%;
    background: radial-gradient(circle, rgba(143,151,121,.16) 0%, rgba(143,151,121,.07) 40%, rgba(143,151,121,0) 72%);
}
.hero-plate {
    position: absolute;
    border-radius: 34px;
    border: 1px solid rgba(255,255,255,.13);
    background: linear-gradient(145deg, rgba(255,255,255,.10), rgba(255,255,255,.02));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.09), 0 22px 52px rgba(0,0,0,.14);
    backdrop-filter: blur(10px);
    z-index: 1;
}
.hero-plate-back {
    width: 78%;
    height: 34%;
    right: -2%;
    top: 14%;
    transform: rotate(9deg);
}
.hero-plate-mid {
    width: 80%;
    height: 35%;
    left: -3%;
    bottom: 12%;
    transform: rotate(-11deg);
}
.hero-plate-front {
    width: 54%;
    height: 24%;
    left: 10%;
    bottom: 18%;
    transform: rotate(14deg);
}
.hero-polished-art {
    position: relative;
    z-index: 3;
    width: min(132%, 980px);
    max-width: none;
    max-height: 590px;
    object-fit: contain;
    display: block;
    transform: translateX(-34px) translateY(0);
    filter: drop-shadow(0 32px 78px rgba(3,7,2,.50));
}
.hero-ground-shadow {
    position: absolute;
    z-index: 0;
    left: 10%;
    right: -4%;
    bottom: 9%;
    height: 98px;
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(0,0,0,.36), rgba(0,0,0,0) 68%);
    filter: blur(12px);
}
@media (min-width: 1200px) {
    .hero-section.section-pad {
        padding-top: 84px;
        padding-bottom: 68px;
    }
}
@media (max-width: 1199px) {
    .hero-polished-stage {
        min-height: 540px;
    }
    .hero-polished-art {
        width: min(126%, 880px);
        max-height: 530px;
        transform: translateX(-18px);
    }
}
@media (max-width: 991px) {
    .hero-copy-col {
        padding-right: .75rem;
    }
    .hero-polished-stage {
        min-height: 420px;
        margin-top: 1.2rem;
    }
    .hero-polished-art {
        width: 110%;
        max-height: 410px;
        transform: none;
    }
    .hero-plate-back,
    .hero-plate-mid {
        width: 84%;
    }
    .hero-plate-front {
        width: 60%;
        left: 8%;
    }
}
@media (max-width: 575px) {
    .hero-section.section-pad {
        padding-top: 52px;
    }
    .hero-polished-stage {
        min-height: 300px;
    }
    .hero-polished-art {
        width: 116%;
        max-height: 292px;
    }
    .hero-plate {
        border-radius: 22px;
    }
    .hero-ground-shadow {
        bottom: 13%;
        height: 62px;
    }
}


/* No visible crop-edge hero asset fix */
.hero-polished-stage {
    overflow: visible;
}
.hero-polished-stage::before,
.hero-polished-stage::after {
    pointer-events: none;
}
.hero-polished-art {
    mix-blend-mode: normal;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
}
.hero-polished-stage .hero-edge-cover {
    display: none;
}


/* Hero no-text asset replacement */
.hero-polished-art {
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
}


/* Airsoft field background patch - lighter overlay */
html {
    min-height: 100%;
}
body {
    background:
        linear-gradient(90deg, rgba(16,21,11,.78) 0%, rgba(16,21,11,.58) 34%, rgba(38,48,22,.38) 62%, rgba(75,83,32,.42) 100%),
        linear-gradient(180deg, rgba(16,21,11,.52) 0%, rgba(16,21,11,.34) 44%, rgba(16,21,11,.62) 100%),
        url("../img/airsoft-field-background.jpg") center center / cover fixed no-repeat !important;
}
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    background:
        radial-gradient(circle at 18% 22%, rgba(255,255,255,.10), transparent 26rem),
        radial-gradient(circle at 80% 30%, rgba(107,142,35,.12), transparent 32rem),
        linear-gradient(180deg, rgba(16,21,11,.02), rgba(16,21,11,.20));
}
.hero-section,
.inner-hero,
.showcase-panel-wrap,
.section-pad {
    position: relative;
}
.site-header {
    background: rgba(12, 18, 8, .82);
    backdrop-filter: blur(18px);
}
.promo-panel,
.feature-card,
.service-card,
.contact-card,
.form-card,
.showcase-panel,
.dashboard-mockup,
.map-shell,
.process-strip,
.product-card {
    background: linear-gradient(145deg, rgba(18,27,10,.58), rgba(75,83,32,.24));
    border-color: rgba(255,255,255,.18);
}
.admin-shell,
.admin-body {
    background:
        linear-gradient(90deg, rgba(246,248,239,.90), rgba(246,248,239,.84)),
        url("../img/airsoft-field-background.jpg") center center / cover fixed no-repeat;
}


/* Phase 10: Mobile UX polish, loading animation, quick-view modal */
.site-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 50% 42%, rgba(107,142,35,.22), rgba(16,21,11,.96) 56%),
        rgba(16,21,11,.96);
    transition: opacity .45s ease, visibility .45s ease;
}
.site-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
}
.loader-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 1.35rem;
    border-radius: 26px;
    background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.05));
    border: 1px solid rgba(255,255,255,.15);
    box-shadow: 0 24px 70px rgba(0,0,0,.35);
    backdrop-filter: blur(18px);
}
.loader-badge {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    font-weight: 900;
    color: #fff;
    background: linear-gradient(145deg, var(--moss), var(--army));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 14px 30px rgba(0,0,0,.24);
}
.loader-text strong,
.loader-text span {
    display: block;
}
.loader-text span {
    color: rgba(255,255,255,.66);
    font-size: .9rem;
}
.loader-ring {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 3px solid rgba(255,255,255,.18);
    border-top-color: var(--moss);
    animation: loaderSpin .9s linear infinite;
}
@keyframes loaderSpin { to { transform: rotate(360deg); } }

.btn-soft {
    color: #fff;
    border: 1px solid rgba(255,255,255,.2);
    background: rgba(255,255,255,.09);
}
.btn-soft:hover,
.btn-soft:focus {
    color: #fff;
    background: rgba(107,142,35,.45);
    border-color: rgba(255,255,255,.34);
}
.product-actions {
    align-items: center;
}
.product-quick-view-modal .modal-content {
    color: #f7faef;
}
.quick-view-content {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 34px;
    background:
        radial-gradient(circle at top right, rgba(107,142,35,.35), transparent 26rem),
        linear-gradient(145deg, rgba(16,21,11,.98), rgba(50,64,27,.96));
    box-shadow: 0 34px 100px rgba(0,0,0,.48);
}
.quick-view-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 5;
    border-radius: 999px;
    background-color: rgba(255,255,255,.12);
    opacity: 1;
}
.quick-view-image-wrap {
    min-height: 100%;
    display: grid;
    place-items: center;
    padding: clamp(1.4rem, 4vw, 2.4rem);
    background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.035));
}
.quick-view-image-wrap img {
    width: 100%;
    max-height: 430px;
    object-fit: contain;
    filter: drop-shadow(0 24px 45px rgba(0,0,0,.32));
}
.quick-view-body {
    height: 100%;
    padding: clamp(1.5rem, 4vw, 2.7rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.quick-view-description {
    color: rgba(255,255,255,.78);
}
.quick-view-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: .75rem;
}
.quick-view-note {
    display: block;
    margin-top: 1rem;
    color: rgba(255,255,255,.58);
}

.back-to-top {
    position: fixed;
    right: 1.2rem;
    bottom: 1.2rem;
    z-index: 900;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(145deg, var(--moss), var(--army));
    box-shadow: 0 18px 38px rgba(0,0,0,.26);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.mobile-bottom-nav {
    position: fixed;
    left: 50%;
    bottom: max(.7rem, env(safe-area-inset-bottom));
    transform: translateX(-50%);
    z-index: 910;
    width: min(94%, 390px);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .35rem;
    padding: .45rem;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 24px;
    background: rgba(12,18,8,.82);
    backdrop-filter: blur(18px);
    box-shadow: 0 18px 50px rgba(0,0,0,.34);
}
.mobile-bottom-nav a {
    display: grid;
    place-items: center;
    gap: .12rem;
    padding: .55rem .3rem;
    border-radius: 18px;
    color: rgba(255,255,255,.72);
    text-decoration: none;
    font-size: .78rem;
    font-weight: 800;
}
.mobile-bottom-nav a span {
    font-size: 1rem;
    line-height: 1;
}
.mobile-bottom-nav a.active,
.mobile-bottom-nav a:hover {
    color: #fff;
    background: linear-gradient(145deg, rgba(107,142,35,.82), rgba(75,83,32,.78));
}

@media (max-width: 991px) {
    body {
        padding-bottom: 5.2rem;
        background-attachment: scroll !important;
    }
    .glass-nav .container {
        padding-top: .55rem !important;
        padding-bottom: .55rem !important;
    }
    .navbar-collapse {
        margin-top: .8rem;
        padding: .85rem;
        border: 1px solid rgba(255,255,255,.14);
        border-radius: 22px;
        background: rgba(12,18,8,.88);
        box-shadow: 0 18px 42px rgba(0,0,0,.25);
    }
    .navbar-nav {
        gap: .25rem;
    }
    .navbar-nav .nav-link,
    .navbar-nav .btn {
        width: 100%;
        text-align: center;
        border-radius: 16px;
        padding: .75rem .9rem;
    }
    .hero-title {
        font-size: clamp(2.3rem, 11vw, 3.6rem);
        line-height: .98;
    }
    .hero-copy {
        font-size: 1rem;
    }
    .catalog-search {
        display: grid;
        grid-template-columns: 1fr;
        gap: .7rem;
        padding: .75rem;
    }
    .catalog-search .btn,
    .product-actions .btn,
    .quick-view-actions .btn {
        width: 100%;
    }
    .product-card {
        border-radius: 26px;
    }
    .product-image-wrap {
        min-height: 235px;
    }
    .quick-view-content {
        min-height: 100vh;
        border-radius: 0;
    }
    .quick-view-image-wrap {
        min-height: 42vh;
    }
    .back-to-top {
        right: .85rem;
        bottom: 5.55rem;
    }
}
@media (max-width: 575px) {
    .loader-card {
        width: min(92%, 340px);
        padding: .95rem;
    }
    .loader-ring {
        position: absolute;
        right: 1rem;
        top: 50%;
        transform: translateY(-50%);
    }
    .brand-mark span:last-child {
        max-width: 210px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .section-pad {
        padding: 48px 0;
    }
    .inner-hero.section-pad {
        padding-top: 54px;
    }
    .trust-row {
        gap: .45rem;
    }
    .trust-row span {
        font-size: .78rem;
        padding: .45rem .65rem;
    }
}
@media (prefers-reduced-motion: reduce) {
    .loader-ring {
        animation: none;
    }
    .site-loader,
    .back-to-top,
    .feature-card,
    .service-card,
    .dashboard-mockup,
    .product-card {
        transition: none !important;
    }
}


/* Phase 11: Product comparison + browser wishlist */
.nav-count-badge,
.mobile-bottom-nav em {
    display: inline-grid;
    place-items: center;
    min-width: 1.25rem;
    height: 1.25rem;
    margin-left: .25rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: rgba(107,142,35,.9);
    color: #fff;
    font-size: .72rem;
    font-style: normal;
    font-weight: 900;
}
.mobile-bottom-nav {
    grid-template-columns: repeat(4, 1fr);
}
.shop-tools-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: clamp(1rem, 3vw, 1.5rem);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 30px;
    background: linear-gradient(145deg, rgba(18,27,10,.72), rgba(75,83,32,.35));
    box-shadow: 0 24px 70px rgba(0,0,0,.20);
    backdrop-filter: blur(16px);
}
.shop-tools-panel p {
    color: rgba(255,255,255,.72);
}
.shop-tools-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .75rem;
}
.product-card-tools {
    position: absolute;
    top: .85rem;
    right: .85rem;
    z-index: 4;
    display: flex;
    gap: .45rem;
}
.icon-action-btn {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    color: #fff;
    background: rgba(16,21,11,.66);
    backdrop-filter: blur(10px);
    box-shadow: 0 12px 28px rgba(0,0,0,.22);
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1;
    transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.icon-action-btn:hover,
.icon-action-btn.is-active {
    transform: translateY(-2px);
    background: linear-gradient(145deg, var(--moss), var(--army));
    border-color: rgba(255,255,255,.38);
}
.icon-action-btn.is-active[data-favorite-toggle] {
    color: #fff;
}
.compare-tray {
    position: fixed;
    left: 50%;
    bottom: 1.1rem;
    z-index: 920;
    width: min(94%, 560px);
    transform: translate(-50%, calc(100% + 2rem));
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.compare-tray.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}
.compare-tray-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .8rem .9rem;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 24px;
    background: rgba(12,18,8,.86);
    backdrop-filter: blur(18px);
    box-shadow: 0 22px 55px rgba(0,0,0,.36);
}
.compare-tray-inner strong,
.compare-tray-inner span {
    display: block;
}
.compare-tray-inner span {
    color: rgba(255,255,255,.66);
    font-size: .86rem;
}
.compare-tray-actions {
    display: flex;
    gap: .55rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.compare-modal-content {
    color: #f7faef;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 32px;
    background:
        radial-gradient(circle at top right, rgba(107,142,35,.32), transparent 28rem),
        linear-gradient(145deg, rgba(16,21,11,.98), rgba(42,54,24,.97));
    box-shadow: 0 34px 100px rgba(0,0,0,.48);
}
.compare-modal-content .modal-header {
    border-bottom-color: rgba(255,255,255,.12);
}
.compare-table-wrap {
    overflow-x: auto;
}
.compare-table {
    min-width: 760px;
    color: #f7faef;
}
.compare-table th,
.compare-table td {
    vertical-align: top;
    border-color: rgba(255,255,255,.12);
    padding: 1rem;
}
.compare-table th {
    width: 160px;
    color: rgba(255,255,255,.72);
}
.compare-product-thumb {
    width: 120px;
    height: 96px;
    object-fit: contain;
    border-radius: 18px;
    background: rgba(255,255,255,.08);
    margin-bottom: .75rem;
}
.compare-empty {
    padding: 2rem;
    text-align: center;
    border: 1px dashed rgba(255,255,255,.18);
    border-radius: 24px;
    color: rgba(255,255,255,.72);
}
.favorites-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.favorite-saved-label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .85rem;
    color: rgba(255,255,255,.72);
}
.product-detail-actions {
    flex-wrap: wrap;
}
@media (max-width: 991px) {
    .mobile-bottom-nav {
        width: min(96%, 430px);
    }
    .compare-tray {
        bottom: 5.65rem;
        width: min(94%, 430px);
    }
    .compare-tray-inner,
    .shop-tools-panel {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
    .compare-tray-actions,
    .shop-tools-actions {
        justify-content: center;
    }
    .product-actions .btn {
        width: calc(50% - .25rem);
    }
}
@media (max-width: 575px) {
    .mobile-bottom-nav a {
        font-size: .68rem;
        padding: .5rem .18rem;
    }
    .compare-tray-inner {
        padding: .7rem;
    }
    .compare-tray-actions .btn {
        padding: .45rem .65rem;
        font-size: .82rem;
    }
    .product-actions .btn {
        width: 100%;
    }
}


/* Phase 12: Product inquiry cart / multi-product inquiry form */
.inquiry-cart-float {
    position: fixed;
    right: 1rem;
    bottom: 5.3rem;
    z-index: 925;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}
.inquiry-cart-float.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.inquiry-cart-float-btn {
    box-shadow: 0 18px 42px rgba(0,0,0,.28);
}
.inquiry-cart-float-btn span {
    display: inline-grid;
    place-items: center;
    min-width: 1.35rem;
    height: 1.35rem;
    margin-left: .35rem;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    font-size: .78rem;
    font-weight: 900;
}
.inquiry-cart-drawer {
    color: #f7faef;
    background:
        radial-gradient(circle at top right, rgba(107,142,35,.28), transparent 26rem),
        linear-gradient(145deg, rgba(16,21,11,.98), rgba(42,54,24,.98));
}
.inquiry-cart-drawer .offcanvas-header {
    border-bottom: 1px solid rgba(255,255,255,.12);
}
.inquiry-cart-mini-item,
.inquiry-cart-page-item {
    display: grid;
    grid-template-columns: 76px 1fr auto;
    gap: .85rem;
    align-items: center;
    padding: .85rem;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 20px;
    background: rgba(255,255,255,.065);
    margin-bottom: .75rem;
}
.inquiry-cart-mini-item {
    grid-template-columns: 66px 1fr;
}
.inquiry-cart-mini-item img,
.inquiry-cart-page-item img {
    width: 100%;
    height: 66px;
    object-fit: contain;
    border-radius: 16px;
    background: rgba(255,255,255,.08);
}
.inquiry-cart-mini-item strong,
.inquiry-cart-page-item strong {
    display: block;
}
.inquiry-cart-mini-item small,
.inquiry-cart-page-item small,
.inquiry-cart-page-item p {
    color: rgba(255,255,255,.68);
}
.link-button {
    display: inline;
    padding: 0;
    border: 0;
    color: var(--moss);
    background: transparent;
    font-size: .85rem;
    font-weight: 800;
    text-decoration: underline;
}
.inquiry-cart-page-card {
    min-height: 420px;
}
.inquiry-items-admin {
    padding: .8rem 1rem;
    border: 1px solid rgba(75,83,32,.14);
    border-radius: 16px;
    background: #f7f9f1;
}
.inquiry-items-admin ol {
    padding-left: 1.2rem;
}
[data-inquiry-add].is-active {
    background: linear-gradient(145deg, var(--moss), var(--army));
    border-color: rgba(255,255,255,.36);
    color: #fff;
}
@media (max-width: 991px) {
    .inquiry-cart-float {
        right: .75rem;
        bottom: 10.9rem;
    }
    .mobile-bottom-nav {
        grid-template-columns: repeat(5, 1fr);
        width: min(98%, 500px);
    }
    .inquiry-cart-page-item {
        grid-template-columns: 72px 1fr;
    }
    .inquiry-cart-page-item .btn {
        grid-column: 1 / -1;
        width: 100%;
    }
}
@media (max-width: 575px) {
    .mobile-bottom-nav a {
        font-size: .62rem;
    }
    .inquiry-cart-float {
        left: .75rem;
        right: .75rem;
        bottom: 10.6rem;
    }
    .inquiry-cart-float-btn {
        width: 100%;
    }
}


/* Phase 13: Product CSV import/export */
.csv-column-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}
.csv-column-grid code {
    display: inline-block;
    padding: .45rem .65rem;
    border-radius: 999px;
    background: #f2f5ea;
    border: 1px solid rgba(75,83,32,.12);
    color: #4B5320;
    font-weight: 800;
}
.admin-card .form-text {
    color: #68705b;
}


/* Phase 14: Bulk image ZIP upload */
.filename-rule-box {
    display: grid;
    gap: .55rem;
    padding: 1rem;
    border: 1px solid rgba(75,83,32,.12);
    border-radius: 18px;
    background: #f6f8ef;
}
.filename-rule-box code {
    display: inline-block;
    width: fit-content;
    padding: .42rem .62rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(75,83,32,.12);
    color: #4B5320;
    font-weight: 800;
}


/* Phase 15: SMTP / email notification settings */
.smtp-help-box {
    padding: 1rem;
    border: 1px solid rgba(75,83,32,.12);
    border-radius: 18px;
    background: #f6f8ef;
}
.smtp-help-box p {
    margin-bottom: .45rem;
}
.smtp-help-box p:last-child {
    margin-bottom: 0;
}


/* Phase 16: Inquiry reference and auto-reply settings */
.reference-chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #eef4e1;
    color: #4B5320;
    font-weight: 800;
    border: 1px solid rgba(75,83,32,.12);
}


/* Phase 17: Public inquiry tracking page */
.tracking-form-card,
.tracking-result-card {
    min-height: 100%;
}
.tracking-result-card {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 32px;
    background: linear-gradient(145deg, rgba(18,27,10,.72), rgba(75,83,32,.35));
    box-shadow: 0 24px 70px rgba(0,0,0,.20);
    backdrop-filter: blur(16px);
    color: #fff;
}
.tracking-result-card .text-muted {
    color: rgba(255,255,255,.68)!important;
}
.tracking-timeline {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .65rem;
}
.tracking-step {
    position: relative;
    display: grid;
    justify-items: center;
    gap: .45rem;
    text-align: center;
    color: rgba(255,255,255,.56);
    font-size: .85rem;
}
.tracking-step span {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.18);
}
.tracking-step.done span,
.tracking-step.current span {
    background: linear-gradient(145deg, var(--moss), var(--army));
    box-shadow: 0 12px 28px rgba(0,0,0,.24);
}
.tracking-step.done span::after {
    content: "✓";
    color: #fff;
    font-weight: 900;
}
.tracking-step.current span::after {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #fff;
}
.tracking-step.done,
.tracking-step.current {
    color: #fff;
}
.tracking-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .75rem;
}
.tracking-info-grid > div {
    padding: .9rem;
    border-radius: 18px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
}
.tracking-info-grid small,
.tracking-item small {
    display: block;
    color: rgba(255,255,255,.62);
}
.tracking-item {
    padding: .85rem 1rem;
    border-radius: 18px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    margin-bottom: .65rem;
}
.tracking-result-card .message-box {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.12);
    color: rgba(255,255,255,.82);
}
@media (max-width: 767px) {
    .tracking-timeline {
        grid-template-columns: 1fr;
        gap: .5rem;
    }
    .tracking-step {
        grid-template-columns: 34px 1fr;
        justify-items: start;
        text-align: left;
    }
    .tracking-info-grid {
        grid-template-columns: 1fr;
    }
}


/* Phase 18: Inquiry status history + public tracking notes */
.public-note-box {
    padding: .8rem 1rem;
    border: 1px solid rgba(107,142,35,.18);
    border-radius: 16px;
    background: #f3f8ea;
    color: #263016;
}
.admin-timeline-box {
    padding: 1rem;
    border: 1px solid rgba(75,83,32,.12);
    border-radius: 18px;
    background: #f8faf3;
}
.admin-inquiry-timeline {
    display: grid;
    gap: .65rem;
    max-height: 300px;
    overflow: auto;
}
.admin-timeline-item {
    padding: .75rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(75,83,32,.10);
}
.tracking-public-note,
.customer-visible-timeline {
    padding: 1rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 22px;
    background: rgba(255,255,255,.08);
}
.customer-visible-timeline {
    display: grid;
    gap: .75rem;
}
.customer-timeline-item {
    position: relative;
    padding: .9rem 1rem .9rem 1.2rem;
    border-left: 4px solid var(--moss);
    border-radius: 16px;
    background: rgba(255,255,255,.08);
}
.customer-timeline-item small,
.customer-timeline-item p {
    color: rgba(255,255,255,.70);
}


/* Phase 19: Product labels and collections */
.product-label-row,
.collection-labels,
.catalog-label-filter {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    align-items: center;
}
.product-label-row {
    margin: .35rem 0 .65rem;
}
.product-label-row a,
.collection-labels a,
.collection-labels span,
.label-filter-chip,
.admin-label-chip {
    display: inline-flex;
    align-items: center;
    padding: .32rem .58rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
    border: 1px solid rgba(107,142,35,.25);
    background: rgba(107,142,35,.14);
    color: #f7faef;
}
.product-body .product-label-row a {
    color: #4B5320;
    background: #eef4e1;
}
.label-filter-chip {
    color: #fff;
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.18);
}
.label-filter-chip.active,
.label-filter-chip:hover {
    color: #fff;
    background: linear-gradient(145deg, var(--moss), var(--army));
}
.catalog-label-filter > span {
    color: rgba(255,255,255,.75);
    font-weight: 800;
    margin-right: .25rem;
}
.collection-card {
    position: relative;
    overflow: hidden;
    padding: clamp(1.25rem, 3vw, 1.75rem);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 30px;
    background:
        radial-gradient(circle at top right, rgba(107,142,35,.28), transparent 16rem),
        linear-gradient(145deg, rgba(18,27,10,.74), rgba(75,83,32,.42));
    color: #fff;
    box-shadow: 0 24px 70px rgba(0,0,0,.20);
    backdrop-filter: blur(16px);
}
.collection-card p {
    color: rgba(255,255,255,.72);
}
.collection-meta {
    font-weight: 900;
    color: #fff;
}
.admin-label-chip {
    color: #4B5320;
    background: #eef4e1;
    border-color: rgba(75,83,32,.14);
}
.product-detail-labels {
    justify-content: flex-start;
    margin-top: .75rem;
}
.quick-view-body .product-label-row a {
    color: #fff;
}


/* Phase 20: Full Backup ZIP Tool */
.backup-option-list {
    display: grid;
    gap: .8rem;
}
.backup-option {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    align-items: start;
    padding: .9rem 1rem;
    border: 1px solid rgba(75,83,32,.12);
    border-radius: 18px;
    background: #f7f9f1;
}
.backup-option input {
    margin-top: .25rem;
}
.backup-option strong,
.backup-option small {
    display: block;
}
.backup-option small {
    color: #68705b;
}
.backup-tip {
    height: 100%;
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid rgba(75,83,32,.12);
    background: #f7f9f1;
}
.backup-tip strong,
.backup-tip span {
    display: block;
}
.backup-tip span {
    color: #68705b;
    margin-top: .3rem;
}


/* Phase 21: Policy Pages */
.policy-page-card,
.policy-links-card {
    max-width: 920px;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 30px;
    background: linear-gradient(145deg, rgba(18,27,10,.74), rgba(75,83,32,.42));
    color: #fff;
    box-shadow: 0 24px 70px rgba(0,0,0,.20);
    backdrop-filter: blur(16px);
}
.policy-page-card .text-muted,
.policy-links-card .text-muted {
    color: rgba(255,255,255,.68)!important;
}
.policy-body-content {
    white-space: normal;
    font-size: 1.04rem;
    line-height: 1.8;
    color: rgba(255,255,255,.86);
}
.policy-link-grid,
.footer-policy-links {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
}
.policy-link-grid a,
.footer-policy-links a {
    display: inline-flex;
    padding: .38rem .68rem;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 800;
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(255,255,255,.08);
    color: #fff;
}
.footer-policy-links {
    color: rgba(255,255,255,.72);
}
.footer-policy-links a {
    font-size: .82rem;
}
.policy-link-grid a:hover,
.footer-policy-links a:hover {
    background: linear-gradient(145deg, var(--moss), var(--army));
    color: #fff;
}


/* Phase 22: CMS Security Hardening */
.security-check-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .85rem;
}
.security-check-grid > div {
    padding: 1rem;
    border: 1px solid rgba(75,83,32,.12);
    border-radius: 18px;
    background: #f7f9f1;
}
.security-check-grid strong,
.security-check-grid span {
    display: block;
}
.security-check-grid span {
    color: #68705b;
    margin-top: .3rem;
    font-size: .9rem;
}
@media (max-width: 1199px) {
    .security-check-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 767px) {
    .security-check-grid {
        grid-template-columns: 1fr;
    }
}


/* Homepage Reviews Section */
.reviews-section {
    position: relative;
}
.review-card {
    position: relative;
    overflow: hidden;
    padding: clamp(1.25rem, 3vw, 1.7rem);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 30px;
    background:
        radial-gradient(circle at top right, rgba(107,142,35,.24), transparent 15rem),
        linear-gradient(145deg, rgba(18,27,10,.74), rgba(75,83,32,.42));
    color: #fff;
    box-shadow: 0 24px 70px rgba(0,0,0,.20);
    backdrop-filter: blur(16px);
}
.review-card::after {
    content: "”";
    position: absolute;
    right: 1.2rem;
    bottom: -1.8rem;
    font-size: 8rem;
    font-weight: 900;
    color: rgba(255,255,255,.07);
    line-height: 1;
}
.review-card-top {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
.review-avatar {
    width: 76px;
    height: 76px;
    border-radius: 24px;
    object-fit: cover;
    border: 1px solid rgba(255,255,255,.22);
    box-shadow: 0 16px 32px rgba(0,0,0,.18);
    background: rgba(255,255,255,.08);
}
.review-card h3 {
    color: #fff;
}
.review-card-top p,
.review-text {
    color: rgba(255,255,255,.72);
}
.review-stars {
    letter-spacing: .08rem;
    color: #f4d35e;
    font-size: 1.05rem;
    margin-bottom: .75rem;
}
.review-text {
    position: relative;
    z-index: 1;
    line-height: 1.75;
}


/* Random 4 Reviews One Row Patch */
.reviews-one-row .review-card {
    min-height: 100%;
}
@media (min-width: 992px) {
    .reviews-one-row > [class*="col-"] {
        display: flex;
    }
    .reviews-one-row .review-card {
        width: 100%;
    }
}


/* Friendly Homepage Reviews CMS Editor */
.review-editor-list {
    display: grid;
    gap: 1rem;
}
.review-editor-card {
    padding: 1rem;
    border: 1px solid rgba(75,83,32,.14);
    border-radius: 18px;
    background: #f7f9f1;
}
.admin-review-thumb {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: 14px;
    border: 1px solid rgba(75,83,32,.16);
    background: #fff;
}


/* Compact Homepage Reviews List Editor */
.review-compact-list {
    gap: .55rem;
}
.review-compact-card {
    padding: 0;
    overflow: hidden;
}
.review-compact-card[open] {
    box-shadow: 0 14px 36px rgba(16,21,11,.08);
}
.review-compact-summary {
    cursor: pointer;
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(240px, 1.2fr);
    gap: 1rem;
    align-items: center;
    padding: .75rem .9rem;
    list-style: none;
}
.review-compact-summary::-webkit-details-marker {
    display: none;
}
.review-compact-summary::after {
    content: "Edit";
    justify-self: end;
    font-size: .78rem;
    font-weight: 900;
    color: #4B5320;
    background: #eef4e1;
    border: 1px solid rgba(75,83,32,.14);
    border-radius: 999px;
    padding: .25rem .6rem;
}
.review-compact-card[open] .review-compact-summary::after {
    content: "Close";
}
.review-summary-left {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}
.review-summary-left strong,
.review-summary-left small {
    display: block;
}
.review-summary-left small {
    color: #68705b;
}
.admin-review-thumb.compact {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    flex: 0 0 auto;
}
.admin-review-thumb.placeholder {
    display: grid;
    place-items: center;
    background: #eef4e1;
    color: #4B5320;
    font-weight: 900;
}
.review-summary-preview {
    color: #68705b;
    font-size: .86rem;
    padding-right: 3.2rem;
}
.review-compact-body {
    border-top: 1px solid rgba(75,83,32,.12);
    padding: 1rem;
    background: rgba(255,255,255,.55);
}
@media (max-width: 991px) {
    .review-compact-summary {
        grid-template-columns: 1fr;
        gap: .45rem;
    }
    .review-compact-summary::after {
        justify-self: start;
    }
    .review-summary-preview {
        padding-right: 0;
    }
}


/* Add Review Button Patch */
#addReviewRowBtn {
    border-radius: 999px;
    font-weight: 800;
}
