:root {
    --brand-primary: #173F35;
    --brand-secondary: #2F6655;
    --accent-primary: #D99A3D;
    --background-page: #F6F3EC;
    --background-card: #FFFFFF;
    --text-primary: #202623;
    --text-secondary: #67716C;
    --border-default: #DDDCD5;
    --status-success: #32805B;
    --status-error: #B5483F;
    --focus-ring: #D99A3D;
    --shadow-soft: 0 12px 32px rgb(23 63 53 / 0.10);
    --brand-primary-hover: #0F322A;
    --accent-hover: #E4A84F;
    --surface-raised: #FFFFFF;
    --surface-subtle: #EDF3EF;
    --surface-brand-soft: #E6F0EB;
    --border-subtle: #E7E7E1;
    --text-muted: #84908A;
    --overlay: rgb(11 32 27 / .58);
    --skeleton-base: #E5EBE7;
    --skeleton-shine: #F7F9F7;
    --layout-max: 1728px;
    --header-height: 70px;
    --radius-md: 12px;
    --radius-lg: 18px;
    --radius-xl: 24px;
    --shadow-control: 0 4px 14px rgb(23 63 53 / .08);
    --shadow-card: 0 14px 32px rgb(23 63 53 / .13);
    --shadow-overlay: 0 28px 80px rgb(11 32 27 / .24);
    --focus-shadow: 0 0 0 4px rgb(217 154 61 / .22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-width: 320px;
    color: var(--text-primary);
    background: var(--background-page);
    font-family: "Inter Variable", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    line-height: 1.5;
}
body.catalog-is-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: var(--brand-secondary); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--brand-primary); }
button, input, select, textarea { font: inherit; }
button, .btn { min-height: 44px; }
:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
[disabled], .disabled { cursor: not-allowed; opacity: .55; }
.wrap { width: min(var(--layout-max), calc(100% - 48px)); margin-inline: auto; }
.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;
}
.skip-link {
    position: fixed;
    z-index: 1000;
    top: 8px;
    left: 8px;
    transform: translateY(-150%);
    padding: 10px 14px;
    border-radius: 8px;
    color: #fff;
    background: var(--brand-primary);
}
.skip-link:focus { transform: none; }
h1, h2, h3 { margin: 0; color: var(--brand-primary); line-height: 1.16; }
h1 { font-size: clamp(1.75rem, 3vw, 2.75rem); }
h2 { font-size: clamp(1.3rem, 2vw, 2rem); }
h3 { font-size: 1.12rem; }
p { margin: 0 0 12px; }
main { min-height: 50vh; padding: 28px 0 56px; }
main.homepage-main { padding-top: 20px; }
.section { margin: 32px 0; }
.section-tight { margin: 20px 0; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.lead { max-width: 760px; color: #39483f; font-size: 1.1rem; }
.muted, .micro { color: var(--text-secondary); }
.micro { font-size: .82rem; }
.grid { display: grid; gap: 16px; }
.grid.cards { grid-template-columns: repeat(auto-fill, minmax(238px, 1fr)); }
.grid.two { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; }
.grid.aside-left { grid-template-columns: 300px minmax(0, 1fr); align-items: start; }
.card, .band {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--border-default);
    border-radius: 14px;
    background: var(--background-card);
}
.band { padding: 22px; box-shadow: var(--shadow-soft); }
.card.soft { background: #fbfaf6; }
.hero {
    position: relative;
    overflow: hidden;
    padding: 40px;
    border: 1px solid var(--border-default);
    border-radius: 16px;
    background: linear-gradient(135deg, #fff 0%, #edf3ef 100%);
}
.actions, .hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.btn, button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 15px;
    border: 1px solid var(--brand-primary);
    border-radius: 10px;
    color: #fff;
    background: var(--brand-primary);
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
}
.btn:hover, button:hover { color: #fff; background: var(--brand-secondary); }
.btn.secondary, button.secondary { color: var(--brand-primary); background: #fff; }
.btn.secondary:hover, button.secondary:hover { background: #edf3ef; }
.btn.accent, button.accent { border-color: var(--accent-primary); color: #20200e; background: var(--accent-primary); }
input, select, textarea {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--border-default);
    border-radius: 10px;
    color: var(--text-primary);
    background: #fff;
}
textarea { min-height: 110px; resize: vertical; }
label { display: block; margin-bottom: 6px; font-size: .84rem; font-weight: 750; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.checkline { display: flex; align-items: flex-start; gap: 9px; margin: 0; font-weight: 700; }
.checkline input { width: auto; min-height: auto; margin-top: 5px; }
.filter-panel { position: sticky; top: 104px; }
.mobile-filter { display: none; }
.pill, .badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 9px;
    border-radius: 999px;
    color: #405148;
    background: #edf3ef;
    font-size: .76rem;
    font-weight: 750;
}
.badge.ok { color: #174d36; background: #e3f2e9; }
.badge.warn { color: #694309; background: #fff1d8; }
.badge.danger { color: var(--status-error); background: #fff0ee; }
.price { color: var(--text-primary); font-size: 1.4rem; font-weight: 850; }
.product-card { display: flex; flex-direction: column; gap: 12px; }
.spec-list { display: flex; flex-wrap: wrap; gap: 8px; }
.spec {
    padding: 7px 9px;
    border: 1px solid var(--border-default);
    border-radius: 8px;
    color: #405148;
    background: #f2f5f2;
    font-size: .82rem;
}
.summary-box { padding: 20px; border-radius: 14px; color: #fff; background: var(--brand-primary); }
.summary-box h1, .summary-box h2, .summary-box h3, .summary-box .price { color: #fff; }
.summary-box .muted, .summary-box .micro { color: #d6e2de; }
.table-wrap { width: 100%; overflow-x: auto; border-radius: 12px; }
table { width: 100%; border: 1px solid var(--border-default); border-collapse: collapse; background: #fff; }
th, td { padding: 12px; border-bottom: 1px solid var(--border-default); text-align: left; vertical-align: top; }
th { background: #edf3ef; font-size: .82rem; }
.empty-state { padding: 24px; border: 1px dashed #bfc9c3; border-radius: 14px; color: var(--text-secondary); background: #fff; }
.notice, .errors { margin-bottom: 16px; padding: 12px 14px; border-radius: 10px; }
.notice { border: 1px solid #acd6bd; background: #e7f4ec; }
.errors { border: 1px solid #e3aaa4; color: #84342d; background: #fff0ee; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; color: var(--text-secondary); font-size: .82rem; }
.public-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 28px; }
.page-link {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border: 1px solid var(--border-default);
    border-radius: 10px;
    color: var(--brand-primary);
    background: #fff;
    font-weight: 750;
    text-decoration: none;
}
.page-link.active { color: #fff; background: var(--brand-primary); }
.page-link.disabled { color: #8c9791; background: #eff1ee; }
.steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; counter-reset: step; }
.step { padding: 12px; border: 1px solid var(--border-default); border-radius: 10px; background: #fff; font-weight: 750; }
.step::before {
    counter-increment: step;
    content: counter(step);
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
    border-radius: 50%;
    color: #fff;
    background: var(--brand-primary);
    font-size: .75rem;
}
.account-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); align-items: start; gap: 18px; }
.account-nav { display: grid; gap: 8px; }
.account-nav a { min-height: 44px; padding: 11px 12px; border-radius: 8px; color: var(--text-primary); font-weight: 750; }
.account-nav a.active, .account-nav a:hover { background: #edf3ef; }
.content-body { max-width: 860px; font-size: 1rem; }
.content-body p + p { margin-top: 12px; }

/* Public marketplace header */
.site-header {
    position: sticky;
    z-index: 50;
    top: 0;
    padding-top: env(safe-area-inset-top);
    border-bottom: 1px solid var(--border-subtle);
    background: rgb(255 255 255 / .96);
    backdrop-filter: blur(18px) saturate(140%);
    transition: box-shadow .2s ease, background-color .2s ease;
}
.site-header.is-scrolled {
    background: rgb(255 255 255 / .985);
    box-shadow: 0 10px 28px rgb(23 63 53 / .11);
}
.marketplace-header {
    display: grid;
    grid-template-areas: "brand catalog search region profile cart";
    grid-template-columns: auto auto minmax(260px, 1fr) minmax(132px, auto) auto auto;
    align-items: center;
    gap: 10px;
    min-height: var(--header-height);
}
.marketplace-header svg,
.catalog-dialog svg,
.banner-carousel svg,
.feed-heading svg,
.market-product-card svg,
.footer svg {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.brand {
    grid-area: brand;
    display: inline-flex;
    height: 44px;
    min-height: 44px;
    align-items: center;
    gap: 8px;
    color: var(--brand-primary);
    font-size: 1.12rem;
    font-weight: 820;
    letter-spacing: -.035em;
    text-decoration: none;
}
.brand:hover { color: var(--brand-secondary); }
.brand__mark { width: 30px !important; height: 30px !important; fill: currentColor !important; stroke: none !important; }
.brand__mark-cut { fill: #fff; }
.brand__word span { color: var(--brand-secondary); }
.catalog-trigger {
    grid-area: catalog;
    min-height: 48px;
    padding: 0 15px;
    border: 1px solid var(--brand-primary);
    border-radius: var(--radius-md);
    background: var(--brand-primary);
    box-shadow: var(--shadow-control);
    white-space: nowrap;
}
.catalog-trigger:hover { border-color: var(--brand-primary-hover); background: var(--brand-primary-hover); }
.marketplace-search {
    grid-area: search;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-width: 0;
    height: 50px;
    overflow: hidden;
    border: 2px solid var(--accent-primary);
    border-radius: 14px;
    background: var(--surface-raised);
    box-shadow: 0 3px 12px rgb(23 63 53 / .05);
}
.marketplace-search:focus-within { box-shadow: var(--focus-shadow), var(--shadow-control); }
.marketplace-search__leading {
    align-self: center;
    margin-left: 15px;
    color: var(--text-muted);
}
.marketplace-search input {
    width: auto;
    min-width: 0;
    min-height: 46px;
    padding: 9px 12px;
    border: 0;
    border-radius: 0;
    outline: 0;
    font-size: .96rem;
}
.marketplace-search button {
    min-width: 88px;
    min-height: 46px;
    padding: 0 18px;
    border: 0;
    border-radius: 10px;
    color: #2B200F;
    background: var(--accent-primary);
    box-shadow: none;
}
.marketplace-search button:hover { color: #21180B; background: var(--accent-hover); }
.search-button__icon { display: none; }
.region-selector { position: relative; grid-area: region; min-width: 0; }
.region-selector summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-width: 132px;
    min-height: 48px;
    align-items: center;
    gap: 8px;
    padding: 5px 9px;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    color: var(--brand-primary);
    cursor: pointer;
    list-style: none;
}
.region-selector summary::-webkit-details-marker { display: none; }
.region-selector summary:hover,
.region-selector[open] summary { border-color: var(--border-subtle); background: var(--surface-subtle); }
.region-selector__text { display: grid; min-width: 0; }
.region-selector__caption { color: var(--text-muted); font-size: .66rem; font-weight: 650; line-height: 1.1; }
.region-selector summary strong { overflow: hidden; font-size: .79rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.region-selector__chevron { width: 16px !important; height: 16px !important; transition: transform .18s ease; }
.region-selector[open] .region-selector__chevron { transform: rotate(180deg); }
.region-selector__panel {
    position: absolute;
    z-index: 70;
    top: calc(100% + 10px);
    right: 0;
    width: min(360px, calc(100vw - 24px));
    padding: 18px;
    isolation: isolate;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    background: #FFFFFF;
    box-shadow: var(--shadow-overlay);
}
.region-selector__panel form { display: grid; gap: 10px; }
.region-selector__panel p { margin: 12px 0 0; color: var(--text-secondary); font-size: .78rem; }
.button-link { border-color: transparent; color: var(--brand-secondary); background: transparent; box-shadow: none; text-decoration: underline; }
.button-link:hover { color: var(--brand-primary); background: var(--surface-brand-soft); }
.profile-link,
.header-cart {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 5px 10px;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    color: var(--brand-primary);
    font-size: .82rem;
    font-weight: 720;
    text-decoration: none;
    white-space: nowrap;
}
.profile-link { grid-area: profile; }
.header-cart { grid-area: cart; }
.profile-link:hover,
.header-cart:hover { border-color: var(--border-subtle); background: var(--surface-subtle); }

.catalog-dialog {
    position: fixed;
    inset: calc(var(--header-height) + 14px) 0 auto;
    width: min(var(--layout-max), calc(100% - 48px));
    max-width: none;
    max-height: calc(100dvh - var(--header-height) - 30px);
    margin: 0 auto;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: var(--radius-xl);
    color: var(--text-primary);
    background: transparent;
}
.catalog-dialog::backdrop { background: var(--overlay); backdrop-filter: blur(4px); }
.catalog-dialog__panel {
    display: flex;
    max-height: inherit;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgb(255 255 255 / .5);
    border-radius: var(--radius-xl);
    background: var(--surface-raised);
    box-shadow: var(--shadow-overlay);
}
.catalog-dialog__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 28px 20px;
    color: #fff;
    background: linear-gradient(115deg, var(--brand-primary), #24594B);
}
.catalog-dialog__head h2 { margin: 2px 0 6px; color: #fff; font-size: clamp(1.55rem, 2.2vw, 2.15rem); }
.catalog-dialog__head p:not(.catalog-dialog__eyebrow) { margin: 0; color: #D9E5E0; }
.catalog-dialog__eyebrow { margin: 0; color: #F1C98C; font-size: .7rem; font-weight: 780; letter-spacing: .13em; text-transform: uppercase; }
.catalog-dialog__close {
    width: 46px;
    min-width: 46px;
    padding: 0;
    border-color: rgb(255 255 255 / .25);
    color: #fff;
    background: rgb(255 255 255 / .1);
    box-shadow: none;
}
.catalog-dialog__close:hover { background: rgb(255 255 255 / .2); }
.catalog-tree {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    padding: 20px 28px;
    overflow: auto;
    background: #F8F8F5;
}
.catalog-group {
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.catalog-group:has(.catalog-group__title:hover) { transform: translateY(-1px); border-color: #B8C8C0; box-shadow: var(--shadow-control); }
.catalog-group__title {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    min-height: 68px;
    align-items: center;
    gap: 10px;
    color: var(--text-primary);
    font-size: .9rem;
    font-weight: 760;
    line-height: 1.25;
    text-decoration: none;
}
.catalog-group__title > svg { width: 18px; height: 18px; color: var(--text-muted); }
.catalog-group__mark {
    width: 56px;
    height: 56px;
    overflow: hidden;
    border-radius: 12px;
    background: var(--surface-subtle);
}
.catalog-group__mark img { width: 100%; height: 100%; object-fit: cover; }
.catalog-group ul { display: grid; gap: 4px; margin: 4px 0 0 66px; padding: 0 0 4px; list-style: none; }
.catalog-group li a { display: inline-flex; min-height: 34px; align-items: center; font-size: .78rem; }
.catalog-dialog__foot { display: flex; justify-content: flex-end; padding: 14px 28px 18px; border-top: 1px solid var(--border-subtle); background: #fff; }
.catalog-all-link {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    gap: 10px;
    padding: 0 16px;
    border-radius: var(--radius-md);
    color: #fff;
    background: var(--brand-primary);
    font-weight: 760;
    text-decoration: none;
}
.catalog-all-link:hover { color: #fff; background: var(--brand-primary-hover); }

/* Homepage carousel */
.banner-carousel {
    position: relative;
    overflow: hidden;
    margin-bottom: 24px;
    border-radius: var(--radius-xl);
    color: #fff;
    background: var(--brand-primary);
    box-shadow: 0 20px 46px rgb(23 63 53 / .15);
}
.banner-carousel__viewport { position: relative; height: clamp(320px, 22vw, 360px); }
.banner-slide {
    position: absolute;
    inset: 0;
    display: grid;
    align-items: center;
    overflow: hidden;
    visibility: hidden;
    opacity: 0;
    transition: opacity .35s ease;
}
.banner-slide.is-active { z-index: 1; visibility: visible; opacity: 1; }
.banner-slide picture,
.banner-slide picture img { position: absolute; inset: 0; width: 100%; height: 100%; }
.banner-slide picture img { object-fit: cover; }
.banner-slide.has-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(14 47 38 / .93), rgb(14 47 38 / .45) 65%, rgb(14 47 38 / .08)); }
.banner-slide.is-fallback {
    background:
        radial-gradient(circle at 88% 16%, rgb(217 154 61 / .2), transparent 24%),
        linear-gradient(118deg, #12382F 0%, var(--brand-primary) 55%, #2F6655 100%);
}
.banner-fallback-art {
    position: absolute;
    inset: 0 0 0 auto;
    width: 60%;
    overflow: hidden;
    opacity: .96;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 28%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 28%, #000 100%);
}
.banner-fallback-art img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.banner-slide__content {
    position: relative;
    z-index: 2;
    width: min(720px, 58%);
    padding: clamp(28px, 3.2vw, 48px);
}
.banner-slide__eyebrow { margin: 0 0 9px; color: #F0C887; font-size: .7rem; font-weight: 780; letter-spacing: .14em; text-transform: uppercase; }
.banner-slide h2 { max-width: 700px; color: #fff; font-size: clamp(2.05rem, 3vw, 2.75rem); letter-spacing: -.035em; }
.banner-slide__content > p:not(.banner-slide__eyebrow):not(.banner-slide__note) { max-width: 560px; margin: 13px 0 0; color: #E9F1ED; font-size: clamp(.93rem, 1.35vw, 1.08rem); line-height: 1.5; }
.banner-slide__content a { display: inline-flex; min-height: 44px; align-items: center; margin-top: 16px; padding: 9px 15px; border: 1px solid rgb(255 255 255 / .45); border-radius: 10px; color: #fff; font-weight: 760; }
.banner-slide__note {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 19px 0 0;
    padding: 7px 10px;
    border: 1px solid rgb(255 255 255 / .16);
    border-radius: 999px;
    color: #DCE9E3;
    background: rgb(255 255 255 / .07);
    font-size: .75rem;
}
.banner-slide__note svg { width: 17px; height: 17px; color: #F0C887; }
.carousel-arrow { position: absolute; z-index: 3; top: 50%; width: 46px; padding: 0; transform: translateY(-50%); border-color: rgb(255 255 255 / .32); border-radius: 50%; color: #fff; background: rgb(15 51 42 / .78); }
.carousel-arrow--prev { left: 14px; }
.carousel-arrow--next { right: 14px; }
.carousel-controls { position: absolute; z-index: 4; right: 20px; bottom: 14px; left: 20px; display: flex; align-items: center; justify-content: center; gap: 12px; }
.carousel-dots { display: flex; gap: 6px; }
.carousel-dots button { width: 44px; min-width: 44px; padding: 0; border: 0; background: transparent; }
.carousel-dots button::after { content: ""; width: 28px; height: 4px; border-radius: 99px; background: rgb(255 255 255 / .48); }
.carousel-dots button[aria-current="true"]::after { background: #fff; }
.carousel-pause { min-height: 44px; padding: 5px 10px; border-color: rgb(255 255 255 / .32); background: rgb(15 51 42 / .78); font-size: .75rem; }

/* Regional feed */
.regional-feed { margin: 0; }
#regional-feed-title { scroll-margin-top: calc(var(--header-height) + 20px); }
.feed-heading { margin-bottom: 16px; }
.feed-heading__eyebrow { margin: 0 0 5px; color: var(--brand-secondary); font-size: .7rem; font-weight: 780; letter-spacing: .13em; text-transform: uppercase; }
.feed-heading h1 { max-width: 900px; color: var(--text-primary); font-size: clamp(1.75rem, 2.6vw, 2.45rem); letter-spacing: -.035em; }
.feed-heading__context { display: inline-flex; align-items: center; gap: 6px; margin: 7px 0 0; color: var(--text-secondary); font-size: .88rem; }
.feed-heading__context svg { width: 17px; height: 17px; color: var(--brand-secondary); }
.market-product-grid-shell { position: relative; }
.market-product-grid,
.feed-skeleton-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: stretch; gap: 16px; }
.market-product-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    background: var(--surface-raised);
    box-shadow: 0 3px 12px rgb(23 63 53 / .045);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.market-product-card:hover { transform: translateY(-3px); border-color: #B8C7BF; box-shadow: var(--shadow-card); }
.market-product-card__link { display: flex; height: 100%; min-width: 0; flex-direction: column; color: var(--text-primary); text-decoration: none; }
.market-product-card__link:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: -3px; }
.market-product-card__media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1;
    border-bottom: 1px solid var(--border-subtle);
    background: var(--surface-subtle);
}
.market-product-card__media > img { width: 100%; height: 100%; object-fit: cover; transition: transform .22s ease; }
.market-product-card:hover .market-product-card__media > img { transform: scale(1.02); }
.product-placeholder { position: absolute; inset: 0; display: block; }
.product-placeholder > img { width: 100%; height: 100%; object-fit: cover; transition: transform .22s ease; }
.market-product-card:hover .product-placeholder > img { transform: scale(1.02); }
.market-product-card__body { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 14px; }
.market-product-card__category { overflow: hidden; margin-bottom: 6px; color: var(--text-secondary); font-size: .7rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.market-product-card__price { margin-bottom: 7px; color: var(--text-primary); font-size: clamp(1.05rem, 1.45vw, 1.28rem); font-weight: 790; letter-spacing: -.025em; line-height: 1.15; }
.market-product-card h2 { display: -webkit-box; min-height: 2.5em; overflow: hidden; color: var(--text-primary); font-size: .9rem; font-weight: 720; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.market-product-card__specs { display: flex; min-height: 48px; flex-wrap: wrap; align-content: flex-start; gap: 5px; margin-top: 9px; }
.market-product-card__specs > span { height: fit-content; padding: 4px 6px; border: 1px solid #E5EBE7; border-radius: 7px; color: #53615A; background: #F3F6F3; font-size: .64rem; line-height: 1.2; }
.market-product-card__stock { display: flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 9px; color: var(--status-success); font-size: .72rem; font-weight: 700; line-height: 1.3; }
.market-product-card__stock i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--status-success); box-shadow: 0 0 0 3px rgb(50 128 91 / .12); }
.market-product-card__seller { display: flex; min-width: 0; flex-direction: column; gap: 2px; overflow: hidden; margin-top: 5px; color: var(--text-secondary); font-size: .68rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.market-product-card__seller strong { display: inline-flex; align-items: center; gap: 3px; color: var(--brand-secondary); font-weight: 650; }
.market-product-card__seller svg { width: 13px; height: 13px; }
.feed-loading {
    position: absolute;
    z-index: 20;
    inset: -2px;
    padding: 12px;
    border-radius: var(--radius-lg);
    background: rgb(246 243 236 / .93);
    backdrop-filter: blur(3px);
}
.feed-loading:not([hidden]) { display: block; }
.feed-loading__label { display: inline-flex; margin-bottom: 10px; color: var(--brand-primary); font-size: .78rem; font-weight: 730; }
.regional-feed[aria-busy="true"] .market-product-grid { opacity: .18; pointer-events: none; }
.feed-skeleton-card { display: grid; gap: 9px; padding: 10px; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); background: #fff; }
.feed-skeleton-card i,
.feed-skeleton-card b { display: block; overflow: hidden; border-radius: 8px; background: linear-gradient(90deg, var(--skeleton-base) 25%, var(--skeleton-shine) 50%, var(--skeleton-base) 75%); background-size: 220% 100%; animation: feed-skeleton 1.2s ease-in-out infinite; }
.feed-skeleton-card i { aspect-ratio: 1; }
.feed-skeleton-card b { width: 88%; height: 13px; }
.feed-skeleton-card b:nth-child(3) { width: 70%; }
.feed-skeleton-card b:nth-child(4) { width: 48%; }
@keyframes feed-skeleton { from { background-position: 100% 0; } to { background-position: -100% 0; } }
.public-pagination { width: fit-content; max-width: 100%; margin: 28px auto 0; padding: 6px; border: 1px solid var(--border-subtle); border-radius: 15px; background: rgb(255 255 255 / .72); box-shadow: var(--shadow-control); }
.page-link { border-color: transparent; border-radius: 10px; background: transparent; }
.page-link:hover { border-color: var(--border-subtle); background: #fff; }
.page-link.active { border-color: var(--brand-primary); }
.page-link.disabled { background: transparent; }

/* Footer */
.footer { padding: 34px 0 18px; color: #fff; background: #102F28; }
.footer-brandline { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 26px; padding-bottom: 18px; border-bottom: 1px solid rgb(255 255 255 / .14); }
.footer-brand { display: inline-flex; min-height: 44px; align-items: center; color: #fff; font-size: 1.18rem; font-weight: 820; letter-spacing: -.035em; text-decoration: none; }
.footer-brand span { color: #EAB66B; }
.footer-brandline p { margin: 0; color: #BFD0C8; font-size: .82rem; }
.footer-grid { display: grid; }
.footer-grid--desktop { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 28px; }
.footer-group--categories { grid-column: span 2; }
.footer-group h2 { margin-bottom: 11px; color: #fff; font-size: .82rem; font-weight: 720; }
.footer-group ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.footer-group--categories ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 18px; }
.footer-group li { min-width: 0; color: #BFD0C8; font-size: .76rem; line-height: 1.35; }
.footer-group a { display: inline; color: #E7F0EC; text-decoration: underline; text-decoration-color: rgb(231 240 236 / .23); text-underline-offset: .2em; }
.footer-group a:hover { color: #F0BE74; text-decoration-color: currentColor; }
.footer-accordion { display: none; }
.footer-bottom { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(280px, auto); align-items: center; gap: 20px; margin-top: 26px; padding-top: 17px; border-top: 1px solid rgb(255 255 255 / .14); }
.footer-bottom p { margin: 0; color: #BFD0C8; font-size: .68rem; }
.footer-bottom nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; font-size: .68rem; }
.footer-bottom a { color: #DCE8E3; text-underline-offset: .2em; }

/* Responsive */
@media (max-width: 1199px) {
    .market-product-grid,
    .feed-skeleton-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1099px) {
    .market-product-grid,
    .feed-skeleton-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
    .catalog-tree { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .footer-grid--desktop { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .footer-group--categories { grid-column: span 1; }
    .footer-group--categories ul { grid-template-columns: 1fr; }
    .footer-bottom { grid-template-columns: 1fr; text-align: center; }
}
@media (max-width: 899px) {
    .marketplace-header {
        grid-template-areas: "brand catalog region profile cart" "search search search search search";
        grid-template-columns: auto auto minmax(120px, 1fr) auto auto;
        gap: 8px;
        padding: 8px 0;
    }
    .marketplace-search { height: 48px; }
    .catalog-dialog { inset: 126px 0 auto; width: calc(100% - 40px); max-height: calc(100dvh - 140px); }
    .catalog-tree { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .banner-carousel__viewport { height: 290px; }
    .market-product-grid,
    .feed-skeleton-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
    .grid.two,
    .grid.aside-left,
    .account-layout { grid-template-columns: 1fr; }
    .filter-panel { position: static; }
    .desktop-filter { display: none; }
    .mobile-filter { display: block; }
    .steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
    :root { --header-height: 116px; }
    .wrap { width: min(var(--layout-max), calc(100% - 20px)); }
    main { padding-top: 18px; }
    main.homepage-main { padding: 10px 0 34px; }
    .marketplace-header {
        grid-template-areas: "brand region profile" "catalog search search";
        grid-template-columns: auto minmax(0, 1fr) auto;
        grid-template-rows: 44px 48px;
        gap: 8px;
        min-height: 116px;
        padding: 8px 0;
    }
    .brand { font-size: 1rem; }
    .brand__mark { width: 27px !important; height: 27px !important; }
    .catalog-trigger { width: auto; min-height: 48px; padding: 0 12px; }
    .marketplace-search { height: 48px; }
    .marketplace-search { grid-template-columns: minmax(0, 1fr) auto; }
    .marketplace-search__leading { display: none; }
    .marketplace-search input { min-height: 44px; padding-inline: 11px 6px; font-size: .86rem; }
    .marketplace-search button { min-width: 48px; min-height: 44px; padding: 0 10px; }
    .search-button__text { display: none; }
    .search-button__icon { display: block; }
    .region-selector { justify-self: end; max-width: 122px; }
    .region-selector summary { min-width: 0; min-height: 44px; gap: 5px; padding: 3px 5px; }
    .region-selector summary > svg:first-child { width: 19px; height: 19px; }
    .region-selector__caption { display: none; }
    .region-selector summary strong { font-size: .7rem; }
    .region-selector__chevron { display: none; }
    .region-selector__panel { position: fixed; top: calc(54px + env(safe-area-inset-top)); right: 10px; left: 10px; width: auto; }
    .profile-link { width: 44px; min-height: 44px; padding: 0; }
    .profile-link span { display: none; }
    .header-cart { display: none; }
    .catalog-dialog {
        inset: 0 0 0 auto;
        width: 100%;
        height: 100dvh;
        max-height: none;
        margin: 0;
        border-radius: 0;
    }
    .catalog-dialog__panel { width: 100%; min-height: 100%; border: 0; border-radius: 0; }
    .catalog-dialog__head { padding: calc(18px + env(safe-area-inset-top)) 16px 16px; }
    .catalog-dialog__head h2 { font-size: 1.55rem; }
    .catalog-dialog__head p:not(.catalog-dialog__eyebrow) { font-size: .8rem; }
    .catalog-tree { grid-template-columns: 1fr; gap: 9px; padding: 12px; }
    .catalog-group { padding: 7px; border-radius: 14px; }
    .catalog-group__title { grid-template-columns: 46px minmax(0, 1fr); min-height: 58px; gap: 8px; font-size: .78rem; }
    .catalog-group__title > svg { display: none; }
    .catalog-group__mark { width: 46px; height: 46px; border-radius: 10px; }
    .catalog-group ul { margin-left: 0; }
    .catalog-group li a { min-height: 44px; }
    .catalog-dialog__foot { position: sticky; bottom: 0; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); }
    .catalog-all-link { width: 100%; justify-content: center; }
    .banner-carousel { margin-bottom: 20px; border-radius: 18px; }
    .banner-carousel__viewport { height: 264px; }
    .banner-slide__content { width: 100%; padding: 24px 20px; }
    .banner-slide h2 { max-width: 300px; font-size: clamp(1.7rem, 8vw, 2rem); line-height: 1.08; }
    .banner-slide__content > p:not(.banner-slide__eyebrow):not(.banner-slide__note) { max-width: 275px; font-size: .82rem; line-height: 1.4; }
    .banner-fallback-art { inset: 0 -34% 0 auto; width: 92%; opacity: .54; -webkit-mask-image: linear-gradient(90deg, transparent, #000 55%); mask-image: linear-gradient(90deg, transparent, #000 55%); }
    .banner-slide.is-fallback::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(18 56 47 / .98) 0%, rgb(18 56 47 / .84) 66%, rgb(18 56 47 / .35)); }
    .banner-slide__note { margin-top: 13px; padding: 5px 8px; font-size: .62rem; }
    .carousel-arrow { top: auto; bottom: 9px; transform: none; }
    .carousel-arrow--prev { left: 9px; }
    .carousel-arrow--next { right: 9px; }
    .carousel-controls { right: 62px; bottom: 9px; left: 62px; }
    #regional-feed-title { scroll-margin-top: 132px; }
    .feed-heading { margin-bottom: 13px; }
    .feed-heading__eyebrow { margin-bottom: 3px; font-size: .62rem; }
    .feed-heading h1 { font-size: clamp(1.48rem, 7.2vw, 1.75rem); line-height: 1.12; }
    .feed-heading__context { margin-top: 6px; font-size: .76rem; line-height: 1.35; }
    .market-product-grid,
    .feed-skeleton-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .market-product-card { border-radius: 15px; }
    .market-product-card__body { padding: 10px; }
    .market-product-card__category { margin-bottom: 5px; font-size: .62rem; }
    .market-product-card__price { margin-bottom: 6px; font-size: clamp(.96rem, 4.8vw, 1.08rem); }
    .market-product-card h2 { min-height: 2.5em; font-size: .77rem; }
    .market-product-card__specs { min-height: 35px; gap: 4px; margin-top: 7px; }
    .market-product-card__specs > span { padding: 3px 5px; font-size: .57rem; }
    .market-product-card__stock { padding-top: 7px; font-size: .63rem; }
    .market-product-card__seller { font-size: .6rem; }
    .feed-loading { padding: 7px; }
    .public-pagination { gap: 3px; margin-top: 22px; padding: 4px; }
    .page-link { min-width: 44px; min-height: 44px; padding: 7px 9px; font-size: .78rem; }
    .hero,
    .band,
    .card { padding: 16px; }
    .section-head { align-items: start; flex-direction: column; }
    .steps { grid-template-columns: 1fr; }
    .footer { padding: 26px 0 16px; }
    .footer-brandline { display: block; margin-bottom: 12px; padding-bottom: 14px; }
    .footer-brandline p { margin-top: 5px; font-size: .72rem; }
    .footer-grid--desktop { display: none; }
    .footer-accordion { display: grid; }
    .footer-disclosure { border-bottom: 1px solid rgb(255 255 255 / .13); }
    .footer-disclosure summary { display: flex; min-height: 50px; align-items: center; justify-content: space-between; gap: 12px; color: #fff; cursor: pointer; list-style: none; font-size: .82rem; font-weight: 720; }
    .footer-disclosure summary::-webkit-details-marker { display: none; }
    .footer-disclosure summary svg { width: 18px; height: 18px; transition: transform .18s ease; }
    .footer-disclosure[open] summary svg { transform: rotate(180deg); }
    .footer-disclosure ul { display: grid; gap: 0; margin: 0 0 10px; padding: 0; list-style: none; }
    .footer-disclosure li { color: #BFD0C8; font-size: .76rem; }
    .footer-disclosure li a,
    .footer-disclosure li span { display: flex; min-height: 44px; align-items: center; color: #E3EDE8; text-underline-offset: .2em; }
    .footer-bottom { gap: 8px; margin-top: 16px; padding-top: 14px; }
    .footer-bottom nav { gap: 0 12px; }
    .footer-bottom nav a { display: inline-flex; min-height: 44px; align-items: center; }
}
@media (max-width: 370px) {
    .brand { gap: 5px; font-size: .92rem; }
    .brand__mark { width: 24px !important; height: 24px !important; }
    .catalog-trigger { padding-inline: 10px; }
    .market-product-card__dimensions { display: none; }
    .market-product-card__specs { min-height: 27px; }
    .page-link--wide { padding-inline: 7px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *,
    *::before,
    *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
    .market-product-card:hover,
    .catalog-group:has(.catalog-group__title:hover) { transform: none; }
    .market-product-card:hover .product-placeholder > img,
    .market-product-card:hover .market-product-card__media > img { transform: none; }
}
