:root {
    --forest-green: #123d2a;
    --surface: #ffffff;
    --ink-green: #1f3027;
    --muted-sage: #68766d;
    --forest: #123d2a;
    --forest-deep: #0b291c;
    --forest-soft: #2c5b43;
    --cream: #f5f0e6;
    --cream-light: #fbf9f4;
    --paper: #ffffff;
    --gold: #b6923d;
    --gold-soft: #e7d7aa;
    --ink: #1f3027;
    --muted: #68766d;
    --line: rgba(18, 61, 42, 0.13);
    --danger: #9e433c;
    --shadow: 0 20px 55px rgba(15, 43, 29, 0.10);
}
:root { --forest: var(--forest-green); --paper: var(--surface); --ink: var(--ink-green); --muted: var(--muted-sage); }

* {
    box-sizing: border-box;
}

[hidden] {
    display: none !important;
}

html {
    scroll-behavior: smooth;
}

body {
    min-width: 0;
    margin: 0;
    overflow-x: hidden;
    background: var(--cream-light);
    color: var(--ink);
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
}

body.cart-open {
    overflow: hidden;
}

button,
input,
select {
    font: inherit;
}

button,
a,
select,
input {
    -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
select:focus-visible,
input:focus-visible {
    outline: 3px solid rgba(182, 146, 61, 0.42);
    outline-offset: 2px;
}

.shop-header {
    position: sticky;
    top: 0;
    z-index: 40;
    display: flex;
    min-height: 74px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 10px clamp(18px, 5vw, 72px);
    border-bottom: 1px solid rgba(255,255,255,.09);
    background: rgba(11, 41, 28, 0.97);
    color: #fff;
    backdrop-filter: blur(14px);
}

.shop-brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    color: #fff;
    text-decoration: none;
}

.shop-brand img {
    width: 124px;
    height: 48px;
    object-fit: contain;
    filter: brightness(0) invert(1) contrast(1.15);
}

.shop-brand span {
    padding-left: 12px;
    border-left: 1px solid rgba(255,255,255,.28);
    font-family: 'Cinzel', serif;
    font-size: 13px;
    letter-spacing: 1.5px;
    white-space: nowrap;
}

.shop-header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.homestay-link {
    color: #f4ead0;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.cart-trigger {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 9px;
    padding: 8px 11px 8px 16px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    background: #fff;
    color: var(--forest);
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
}

.cart-count {
    display: grid;
    min-width: 26px;
    height: 26px;
    place-items: center;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--forest);
    color: #fff;
    font-size: 11px;
}

.shop-hero {
    display: grid;
    max-width: 1180px;
    grid-template-columns: minmax(0, 1fr) 150px;
    align-items: center;
    gap: clamp(30px, 8vw, 110px);
    margin: 0 auto;
    padding: clamp(32px, 4.6vw, 54px) clamp(20px, 5vw, 60px) 30px;
}

.eyebrow {
    margin: 0 0 8px;
    color: var(--gold);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.shop-hero h1,
.section-heading h2,
.shop-empty h2,
.cart-header h2 {
    margin: 0;
    color: var(--forest);
    font-family: 'Cinzel', serif;
    font-weight: 600;
}

.shop-hero h1 {
    font-size: clamp(42px, 7vw, 76px);
    letter-spacing: -1.5px;
    line-height: 1;
}

.hero-tagline {
    margin: 12px 0 8px;
    color: var(--forest-soft);
    font-family: 'Cinzel', serif;
    font-size: clamp(18px, 2.3vw, 26px);
}

.hero-description {
    max-width: 650px;
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.75;
}

.hero-mark,
.empty-mark {
    display: grid;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid var(--gold-soft);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #fffdf8, #e9dfc8);
    color: var(--forest);
    box-shadow: inset 0 0 0 9px rgba(255,255,255,.65), var(--shadow);
    font-family: 'Cinzel', serif;
}

.hero-mark span {
    align-self: end;
    font-size: 34px;
}

.hero-mark small {
    align-self: start;
    color: var(--gold);
    font-family: 'Poppins', sans-serif;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}

.reward-note {
    display: flex;
    max-width: 1060px;
    align-items: center;
    gap: 14px;
    margin: 0 auto 32px;
    padding: 11px 16px;
    border: 1px solid rgba(182, 146, 61, .24);
    border-radius: 14px;
    background: #f6f0df;
    color: #5c563e;
}

.reward-note-mark {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 50%;
    background: var(--forest);
    color: #f7e8b8;
}

.reward-note p {
    margin: 0;
    font-size: 12px;
    line-height: 1.6;
}

.catalog-section {
    max-width: 1240px;
    min-height: 360px;
    margin: 0 auto;
    padding: 0 clamp(18px, 4vw, 40px) 80px;
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 16px;
}

.section-heading h2 {
    font-size: clamp(30px, 4vw, 45px);
}

.section-heading > p {
    margin: 0 0 6px;
    color: var(--muted);
    font-size: 11px;
}

.catalog-toolbar {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    margin-bottom: 22px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 10px 28px rgba(22, 56, 38, .04);
}

.filter-chips {
    display: flex;
    min-width: 0;
    gap: 7px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.filter-chips::-webkit-scrollbar {
    display: none;
}

.filter-chip {
    min-height: 40px;
    flex: 0 0 auto;
    padding: 8px 14px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: #52665a;
    cursor: pointer;
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
}

.filter-chip:hover,
.filter-chip.is-active {
    border-color: rgba(18, 61, 42, .14);
    background: var(--forest);
    color: #fff;
}

.sort-control {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .7px;
    text-transform: uppercase;
}

.sort-control select {
    width: 178px;
    min-height: 40px;
    padding: 8px 32px 8px 11px;
    border: 1px solid #d9e1da;
    border-radius: 11px;
    background: #fbfcfa;
    color: var(--ink);
    cursor: pointer;
    font-size: 10px;
    font-weight: 500;
    text-transform: none;
}

.catalog-result-status {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.catalog-filter-empty {
    display: flex;
    min-height: 180px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: #fff;
    color: var(--muted);
    text-align: center;
}

.catalog-filter-empty strong {
    color: var(--forest);
    font-family: 'Cinzel', serif;
    font-size: 18px;
}

.catalog-filter-empty span {
    font-size: 10px;
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.product-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 26px;
    background: var(--paper);
    box-shadow: 0 15px 42px rgba(22, 56, 38, 0.07);
}

.product-image-slot {
    position: relative;
    display: flex;
    min-height: 174px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    overflow: hidden;
    background:
        linear-gradient(145deg, rgba(255,255,255,.6), transparent 48%),
        repeating-linear-gradient(135deg, transparent 0 16px, rgba(18,61,42,.035) 16px 17px),
        #ebe5d6;
    color: var(--forest);
}

.product-image-slot::before,
.product-image-slot::after {
    position: absolute;
    width: 115px;
    height: 115px;
    border: 1px solid rgba(18,61,42,.08);
    border-radius: 50%;
    content: '';
}

.product-image-slot::before {
    top: -48px;
    right: -34px;
}

.product-image-slot::after {
    bottom: -66px;
    left: -30px;
}

.image-monogram {
    font-family: 'Cinzel', serif;
    font-size: 42px;
    line-height: 1;
}

.product-image-slot small {
    color: #7e806f;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.product-image-slot img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.product-image-slot.is-placeholder img{object-fit:cover}.stock-status.weight-missing{background:#fff0c9;color:#745609}

.product-content {
    padding: 22px;
}

.product-heading-row {
    display: flex;
    min-width: 0;
    align-items: start;
    justify-content: space-between;
    gap: 14px;
}

.product-origin {
    margin: 0 0 5px;
    color: var(--gold);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.product-card h3 {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--forest);
    font-family: 'Cinzel', serif;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.2;
}

.product-price {
    flex: 0 0 auto;
    margin: 2px 0 0;
    color: var(--forest);
    font-size: 16px;
    font-weight: 700;
    white-space: nowrap;
}

.product-price-block {
    flex: 0 0 auto;
    text-align: right;
}

.product-pack-reference {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .35px;
}

.product-description {
    min-height: 42px;
    margin: 12px 0 18px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.65;
}

.field-label,
.quantity-field > span {
    display: block;
    margin-bottom: 6px;
    color: #52665a;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .7px;
    text-transform: uppercase;
}

.quantity-field input {
    width: 100%;
    min-height: 44px;
    border: 1px solid #d9e1da;
    border-radius: 12px;
    background: #fbfcfa;
    color: var(--ink);
}

.variant-picker {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.variant-picker .field-label {
    padding: 0;
}

.variant-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.variant-chip {
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #cfd9d1;
    border-radius: 999px;
    background: #fbfcfa;
    color: var(--forest);
    cursor: pointer;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.variant-chip:hover {
    border-color: var(--gold);
    transform: translateY(-1px);
}

.variant-chip.is-selected {
    border-color: var(--forest);
    background: var(--forest);
    color: #fff;
}

.variant-chip.is-out-of-stock:not(.is-selected) {
    color: var(--muted);
    opacity: .72;
}

.visually-hidden {
    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;
}

.stock-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    min-height: 34px;
    padding: 8px 2px 4px;
    font-size: 9px;
}

.stock-status {
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
}

.stock-status.in-stock {
    color: #28734b;
}

.stock-status.out-of-stock {
    color: var(--danger);
}

.stock-detail {
    color: var(--muted);
}

.add-row {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    align-items: end;
    gap: 10px;
    margin-top: 8px;
}

.quantity-field input {
    padding: 8px;
    text-align: center;
}

.add-cart-button {
    min-height: 44px;
    border: 0;
    border-radius: 12px;
    background: var(--forest);
    color: #fff;
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .4px;
}

.add-cart-button:hover:not(:disabled) {
    background: var(--forest-deep);
    transform: translateY(-1px);
}

.add-cart-button:disabled,
.quantity-field input:disabled {
    cursor: not-allowed;
    opacity: .52;
}

.unavailable-panel {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px;
    border-radius: 12px;
    background: #f1f3ef;
    color: var(--muted);
    font-size: 10px;
}

.shop-empty {
    display: flex;
    max-width: 720px;
    min-height: 300px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    padding: 36px 22px;
    border: 1px solid var(--line);
    border-radius: 28px;
    background: #fff;
    text-align: center;
    box-shadow: var(--shadow);
}

.empty-mark {
    width: 82px;
    margin-bottom: 20px;
    font-size: 22px;
}

.shop-empty h2 {
    font-size: clamp(24px, 4vw, 34px);
}

.shop-empty p {
    max-width: 480px;
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.7;
}

.shop-empty small {
    margin-top: 16px;
    color: var(--danger);
}

/* ================= SHOP FOOTER (matches homestay footer) ================= */

.shop-footer {
    background: #132019;
    color: white;
    text-align: center;
    padding: 45px 20px;
}

.shop-footer-inner {
    max-width: 960px;
    margin: 0 auto;
}

.shop-footer-inner > img {
    width: 70px;
    height: auto;
    max-height: 70px;
    object-fit: contain;
    margin-bottom: 14px;
}

.shop-footer-inner h3 {
    font-family: 'Cinzel', serif;
    font-size: 28px;
    margin-bottom: 10px;
}

.shop-footer-inner > p:not(.shop-footer-copyright) {
    color: #d4ddd3;
    margin-top: 8px;
}

.footer-policy-links {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 12px;
    margin: 16px auto 10px;
}

.footer-policy-links a {
    color: #e1e9e2;
    font-size: 12px;
    text-decoration: none;
}

.footer-policy-links a:hover,
.footer-policy-links a:focus {
    color: #d6b75f;
}

.footer-policy-links span {
    color: #77857b;
}

.shop-footer-copyright {
    color: #d4ddd3;
    font-size: 14px;
    margin-top: 8px;
}

/* ================= CART OVERLAY ================= */
    position: fixed;
    inset: 0;
    z-index: 70;
    background: rgba(4, 20, 12, .48);
    opacity: 0;
    transition: opacity .24s ease;
}

.cart-overlay.is-open {
    opacity: 1;
}

.cart-drawer {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 80;
    display: flex;
    width: min(430px, 100%);
    height: 100dvh;
    flex-direction: column;
    border-left: 1px solid var(--line);
    background: #fff;
    box-shadow: -25px 0 70px rgba(7, 31, 20, .2);
    transform: translateX(105%);
    visibility: hidden;
    transition: transform .28s ease, visibility .28s ease;
}

.cart-drawer.is-open {
    transform: translateX(0);
    visibility: visible;
}

.cart-header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 20px;
    padding: 24px;
    border-bottom: 1px solid var(--line);
}

.cart-header h2 {
    font-size: 26px;
}

.cart-close {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
    color: var(--forest);
    cursor: pointer;
    font-size: 26px;
    line-height: 1;
}

.cart-body {
    flex: 1;
    overflow-y: auto;
    padding: 18px 22px;
}

.cart-empty {
    display: grid;
    min-height: 280px;
    place-items: center;
    color: var(--muted);
    text-align: center;
}

.cart-empty strong {
    display: block;
    margin-bottom: 6px;
    color: var(--forest);
    font-family: 'Cinzel', serif;
    font-size: 21px;
}

.cart-empty p {
    margin: 0;
    font-size: 11px;
}

.cart-line {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    gap: 12px;
    padding: 16px 0;
    border-bottom: 1px solid var(--line);
}

.cart-line-mark {
    display: grid;
    width: 54px;
    height: 62px;
    place-items: center;
    border-radius: 13px;
    background: #ece7da;
    color: var(--forest);
    font-family: 'Cinzel', serif;
    font-size: 15px;
}

.cart-line-copy {
    min-width: 0;
}

.cart-line-copy strong,
.cart-line-copy span {
    display: block;
    overflow-wrap: anywhere;
}

.cart-line-copy strong {
    color: var(--forest);
    font-family: 'Cinzel', serif;
    font-size: 13px;
}

.cart-line-copy span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 9px;
}

.cart-line-total {
    color: var(--forest);
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.cart-line-actions {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
}

.cart-line-actions button {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid #d8e1da;
    border-radius: 9px;
    background: #fff;
    color: var(--forest);
    cursor: pointer;
}

.cart-line-actions button:disabled {
    cursor: not-allowed;
    opacity: .4;
}

.cart-line-actions span {
    min-width: 22px;
    margin: 0;
    color: var(--ink);
    font-size: 11px;
    text-align: center;
}

.cart-remove {
    width: auto !important;
    margin-left: 4px;
    padding: 0 6px;
    border-color: transparent !important;
    color: var(--danger) !important;
    font-size: 9px;
}

.cart-footer {
    padding: 20px 24px calc(20px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: #fbfaf6;
}

.cart-subtotal-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: var(--forest);
}

.cart-subtotal-row span {
    font-size: 12px;
    font-weight: 600;
}

.cart-subtotal-row strong {
    font-family: 'Cinzel', serif;
    font-size: 22px;
}

.cart-footer p {
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 9px;
    line-height: 1.5;
}

.cart-checkout-link {
    display: grid;
    min-height: 46px;
    place-items: center;
    margin-top: 16px;
    padding: 10px 16px;
    border-radius: 12px;
    background: var(--forest);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.cart-checkout-link:hover {
    background: var(--forest-deep);
}

.shop-toast {
    position: fixed;
    left: 50%;
    bottom: 22px;
    z-index: 100;
    max-width: calc(100% - 32px);
    padding: 11px 16px;
    border-radius: 999px;
    background: var(--forest-deep);
    color: #fff;
    box-shadow: var(--shadow);
    font-size: 10px;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 12px);
    transition: opacity .2s ease, transform .2s ease;
}

.shop-toast.show {
    opacity: 1;
    transform: translate(-50%, 0);
}

@media (max-width: 980px) {
    .product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .shop-header {
        min-height: 66px;
        padding: 8px 14px;
    }

    .shop-brand img {
        width: 102px;
        height: 40px;
    }

    .shop-brand span,
    .homestay-link {
        display: none;
    }

    .shop-hero {
        grid-template-columns: minmax(0, 1fr) 82px;
        gap: 16px;
        padding: 26px 18px 22px;
    }

    .shop-hero h1 {
        font-size: clamp(38px, 12vw, 52px);
    }

    .hero-tagline {
        font-size: 16px;
    }

    .hero-description {
        font-size: 11px;
    }

    .hero-mark span {
        font-size: 22px;
    }

    .hero-mark small {
        font-size: 6px;
    }

    .reward-note {
        margin: 0 14px 28px;
        padding: 10px 12px;
    }

    .section-heading {
        align-items: start;
        flex-direction: column;
        gap: 8px;
    }

    .catalog-toolbar {
        gap: 8px;
        margin-bottom: 18px;
        padding: 6px;
        border-radius: 14px;
    }

    .filter-chips {
        gap: 5px;
    }

    .filter-chip {
        min-height: 42px;
        padding: 8px 12px;
    }

    .sort-control > span {
        display: none;
    }

    .sort-control select {
        width: 136px;
        min-height: 42px;
        padding-left: 9px;
        font-size: 9px;
    }

    .product-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .product-card {
        display: grid;
        grid-template-columns: 112px minmax(0, 1fr);
        border-radius: 20px;
    }

    .product-image-slot {
        min-height: 100%;
        padding: 14px 8px;
    }

    .image-monogram {
        font-size: 28px;
    }

    .product-image-slot small {
        max-width: 70px;
        font-size: 6px;
        text-align: center;
    }

    .product-content {
        min-width: 0;
        padding: 17px 14px;
    }

    .product-heading-row {
        display: block;
    }

    .product-price {
        margin-top: 8px;
    }

    .product-price-block {
        text-align: left;
    }

    .product-description {
        min-height: 0;
        margin: 9px 0 14px;
    }

    .add-row {
        grid-template-columns: 62px minmax(0, 1fr);
    }

    .shop-footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Approved accessibility and curated-storefront pass. */
.shop-brand{flex:0 0 auto}.shop-brand img{width:234px;height:auto;flex:0 0 234px;object-fit:contain}
.shop-search input,.homestay-link,.cart-trigger,.shop-promo p:not(.eyebrow),.shop-promo a,.reward-note p,.section-heading>p,.collection-row-heading p,.collection-row-heading button,.product-origin,.product-pack-reference,.product-description,.field-label,.variant-chip,.stock-status,.quantity-field,.add-cart-button,.cart-line-copy span,.cart-line-actions button,.cart-remove,.cart-footer p,.cart-checkout-link,.shop-footer,.catalog-result-status{font-size:15px;line-height:1.55}
.filter-chip,.variant-chip,.add-cart-button,.quantity-field input,.cart-trigger,.cart-close,.cart-line-actions button,.cart-remove,.cart-checkout-link,.shop-promo a,.collection-row-heading button{min-height:44px}
.filter-chip,.variant-chip{padding:9px 14px}.cart-line-actions button{min-width:44px}.cart-remove{display:inline-flex;align-items:center;padding:8px 10px}
.shop-promo-media{position:absolute;inset:0 0 0 58%;z-index:0;background:linear-gradient(135deg,rgba(255,255,255,.03),rgba(214,190,125,.16))}.shop-promo-media::after{position:absolute;inset:12%;border:1px solid rgba(255,255,255,.16);border-radius:50%;content:""}.shop-promo-slides{z-index:1;width:62%}.reward-note p{margin-block:0}
@media (min-width:1060px){.collection-product-scroller{grid-auto-columns:calc((100% - 66px)/4)}}
@media (max-width:900px){.shop-brand span{display:none}}
@media (max-width:680px){.shop-brand img{width:170px;flex-basis:170px}.shop-category-strip-inner{justify-content:flex-start;max-width:100%}.shop-category-strip .filter-chip{min-height:44px;font-size:14px;padding:9px 14px}.collection-product-scroller{width:calc(100vw - 28px);max-width:100%;margin-right:0;padding-right:0;grid-auto-columns:minmax(250px,78vw)}.shop-mobile-nav a,.shop-mobile-nav button{min-height:62px;font-size:13px}.shop-promo-slides{width:100%}.shop-promo-media{inset:0 0 0 42%;opacity:.7}.product-description{min-height:0}}

@media (max-width: 420px) {
    .catalog-section {
        padding-right: 12px;
        padding-left: 12px;
    }

    .product-card {
        grid-template-columns: 96px minmax(0, 1fr);
    }

    .product-content {
        padding: 15px 12px;
    }

    .product-card h3 {
        font-size: 18px;
    }

    .variant-chip {
        min-height: 34px;
        padding: 7px 10px;
        font-size: 9px;
    }

    .stock-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }

    .cart-line {
        grid-template-columns: 48px minmax(0, 1fr) auto;
        gap: 9px;
    }

    .cart-line-mark {
        width: 48px;
        height: 56px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* Marketplace storefront layer: presentation only; catalogue and checkout remain server-authoritative. */
.shop-header { min-height: 82px; gap: clamp(14px, 3vw, 40px); }
.shop-search { display: flex; width: min(520px, 42vw); min-height: 46px; align-items: center; gap: 10px; padding: 0 15px; border: 1px solid rgba(255,255,255,.22); border-radius: 13px; background: rgba(255,255,255,.96); color: var(--forest); }
.shop-search span { font-size: 22px; line-height: 1; }
.shop-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 12px; }
.shop-search input::placeholder { color: #829087; }
.shop-category-strip { position: sticky; top: 82px; z-index: 35; border-bottom: 1px solid var(--line); background: rgba(251,249,244,.95); backdrop-filter: blur(10px); }
.shop-category-strip-inner { display: flex; max-width: 1280px; gap: 8px; margin: auto; padding: 10px clamp(18px, 5vw, 72px); overflow-x: auto; scrollbar-width: none; }
.shop-category-strip-inner::-webkit-scrollbar, .collection-product-scroller::-webkit-scrollbar { display: none; }
.shop-category-strip .filter-chip { min-height: 36px; border-color: var(--line); background: #fff; }
.shop-category-strip .filter-chip.is-active { background: var(--forest); color: #fff; }
.shop-promo { position: relative; max-width: 1240px; min-height: 260px; margin: 26px auto 20px; overflow: hidden; border: 1px solid rgba(18,61,42,.11); border-radius: 26px; background: radial-gradient(circle at 82% 24%, rgba(213,177,94,.3), transparent 25%), linear-gradient(116deg, #103d2a, #1c4a35 57%, #54725e); box-shadow: var(--shadow); color: #fff; }
.shop-promo::after { position: absolute; right: -4%; bottom: -55%; width: 360px; height: 360px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; content: ''; }
.shop-promo-slides { position: relative; min-height: 260px; }
.shop-promo-slide { position: absolute; inset: 0; display: flex; max-width: 660px; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(28px,5vw,58px); opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity .45s ease, transform .45s ease; }
.shop-promo-slide.is-active { opacity: 1; pointer-events: auto; transform: translateY(0); }
.shop-promo .eyebrow { color: #e7cd85; }
.shop-promo h1, .shop-promo h2 { max-width: 600px; margin: 0; color: #fff; font-family: 'Cinzel', serif; font-size: clamp(28px,4vw,48px); font-weight: 600; line-height: 1.13; }
.shop-promo p:not(.eyebrow) { max-width: 470px; margin: 12px 0 18px; color: #e4eee6; font-size: 12px; line-height: 1.65; }
.shop-promo a { padding: 10px 15px; border-radius: 9px; background: #f7f0df; color: var(--forest); font-size: 11px; font-weight: 700; text-decoration: none; }
.shop-promo-controls { position: absolute; right: 24px; bottom: 20px; z-index: 2; display: flex; align-items: center; gap: 10px; }
.shop-promo-controls > button, .shop-promo-dots button { border: 0; cursor: pointer; }
.shop-promo-controls > button { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: transparent; color: #fff; }
.shop-promo-dots { display: flex; gap: 6px; }
.shop-promo-dots button { width: 7px; height: 7px; padding: 0; border-radius: 50%; background: rgba(255,255,255,.38); }
.shop-promo-dots button.is-active { width: 20px; border-radius: 8px; background: #f2d786; }
.catalog-section { max-width: 1340px; padding-bottom: 100px; }
.product-grid { display: block; }
.shop-collection-row { margin: 0 0 34px; }
.collection-row-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 0 2px 13px; }
.collection-row-heading h3 { margin: 0; color: var(--forest); font-family: 'Cinzel', serif; font-size: clamp(22px,2.4vw,30px); font-weight: 600; }
.collection-row-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.collection-row-heading button { padding: 8px 0; border: 0; background: transparent; color: var(--forest); cursor: pointer; font-size: 10px; font-weight: 700; }
.collection-product-scroller { display: grid; grid-auto-columns: minmax(220px, 1fr); grid-auto-flow: column; grid-template-rows: 1fr; gap: 16px; overflow-x: auto; padding: 2px 2px 12px; scroll-snap-type: x proximity; scrollbar-width: none; }
.collection-product-scroller .product-card { min-width: 0; scroll-snap-align: start; }
.product-card { border-radius: 18px; box-shadow: 0 8px 22px rgba(22,56,38,.07); }
.product-image-slot { min-height: 150px; }
.product-content { padding: 17px; }
.product-card h3 { font-size: 19px; }
.product-description { min-height: 37px; margin: 8px 0 13px; font-size: 10px; }
.variant-chip { min-height: 32px; padding: 6px 10px; }
.add-cart-button { min-height: 42px; border-radius: 10px; }
.shop-mobile-nav { display: none; }
/* Curated small-catalogue refinement. */
.shop-search { width: min(330px, 28vw); min-height: 38px; border-radius: 999px; opacity: .88; }
.shop-search span { font-size: 17px; }.shop-search input { font-size: 11px; }
.shop-category-strip { position: relative; top: auto; background: transparent; border-bottom: 0; backdrop-filter: none; }
.shop-category-strip-inner { justify-content: center; padding-top: 6px; padding-bottom: 6px; }
.shop-category-strip .filter-chip { min-height: 30px; padding: 5px 10px; font-size: 9px; }
.shop-story { min-height: 300px; margin-top: 15px; background: radial-gradient(circle at 80% 30%, rgba(213,177,94,.2), transparent 26%), linear-gradient(122deg,#123d2a,#345b46); }
.shop-story .shop-promo-slides { min-height: 300px; }.shop-story .shop-promo-slide { position: relative; min-height: 300px; max-width: 730px; }
.collection-row-heading { margin-top: 13px; }.collection-product-scroller { grid-auto-columns: minmax(250px, 1fr); gap: 22px; }
.product-card { border-radius: 21px; }.product-image-slot { min-height: 190px; }.product-content { padding: 20px; }
/* Match the approved Homestay navbar logo presence using the same runtime asset. */
.shop-brand { gap: 14px; }
.shop-brand img { width: 234px; height: auto; max-width: none; }
.shop-brand span { padding-left: 14px; font-size: 13px; }
@media (min-width: 1060px) { .collection-product-scroller { grid-auto-columns: calc((100% - 64px) / 5); } }
@media (min-width: 700px) and (max-width: 1059px) { .collection-product-scroller { grid-auto-columns: calc((100% - 32px) / 3); } }
@media (max-width: 680px) {
    body { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
    .shop-header { position: sticky; top: 0; display: grid; min-height: 112px; grid-template-columns: 1fr auto; gap: 7px 12px; padding: 8px 14px 10px; }
    .shop-brand { grid-column: 1; }
    .shop-brand { gap: 8px; }
    .shop-brand img { width: 170px; height: auto; }
    .shop-brand span { display: inline; padding-left: 8px; font-size: 10px; letter-spacing: .8px; }
    .shop-header-actions { grid-column: 2; grid-row: 1; }
    .cart-trigger { min-height: 38px; padding: 6px 8px 6px 12px; }
    .cart-trigger > span:first-child { display: none; }
    .cart-count { min-width: 24px; height: 24px; }
    .shop-search { grid-column: 1 / -1; grid-row: 2; width: 100%; min-height: 40px; border-radius: 10px; }
    .shop-category-strip { top: auto; }
    .shop-category-strip-inner { padding: 8px 14px; flex-wrap: wrap; overflow-x: visible !important; }
    .shop-category-strip .filter-chip { min-height: 34px; padding: 7px 12px; }
    .shop-promo { min-height: 238px; margin: 15px 14px 18px; border-radius: 19px; }
    .shop-promo-slides { min-height: 238px; }
    .shop-promo-slide { padding: 26px 23px 48px; }
    .shop-promo h1, .shop-promo h2 { font-size: 27px; }
    .shop-promo-controls { right: 18px; bottom: 13px; }
    .shop-promo-controls > button { width: 28px; height: 28px; }
    .reward-note { margin-bottom: 23px; }
    .catalog-section { padding: 0 14px 30px; }
    .section-heading { margin-bottom: 11px; }
    .section-heading h2 { font-size: 28px; }
    .collection-product-scroller { width: 100% !important; grid-auto-flow: row !important; grid-auto-columns: auto !important; grid-template-columns: 1fr !important; gap: 16px; margin-right: 0 !important; padding-right: 0 !important; overflow-x: visible !important; }
    .collection-product-scroller .product-card { display: block; border-radius: 16px; }
    .collection-product-scroller .product-image-slot { min-height: 134px; }
    .collection-product-scroller .product-content { padding: 14px; }
    .collection-product-scroller .product-description { min-height: 33px; }
    .shop-footer { padding-bottom: 86px; }
    .shop-mobile-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 50; display: grid; grid-template-columns: repeat(4, 1fr); min-height: calc(62px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); border-top: 1px solid var(--line); background: rgba(255,255,255,.97); box-shadow: 0 -8px 22px rgba(15,43,29,.08); }
    .shop-mobile-nav a, .shop-mobile-nav button { display: flex; min-width: 0; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border: 0; background: transparent; color: #6b766e; font-size: 9px; text-decoration: none; }
    .shop-mobile-nav a.is-active, .shop-mobile-nav button { color: var(--forest); font-weight: 700; }
    .shop-mobile-nav span { font-size: 16px; line-height: 1; }
    .mobile-cart-count { position: absolute; min-width: 16px; height: 16px; margin: -27px 0 0 24px; padding: 0 3px; background: var(--gold); color: #fff; font-size: 8px; }
}
/* Final resolved rules for the approved pass; these replace conflicting legacy overrides above. */
html{overflow-x:clip}
@media(min-width:681px){.shop-header{min-height:110px;padding-block:3px}.shop-brand{height:104px;overflow:hidden}.shop-category-strip-inner{padding-top:4px;padding-bottom:4px}.shop-story{margin-top:8px}}
@media(max-width:680px){.shop-brand{height:auto;overflow:visible}}

/* Shop IBBANI Storefront V2 — customer presentation only. */
:root{--shop-bg:#f7f2e8;--shop-surface:#fffdf8;--shop-green:#173f32;--shop-sage:#dce7dd;--shop-gold:#b88a3b;--shop-terracotta:#c66a4a;--shop-ink:#16352b;--forest-green:var(--shop-green);--cream:var(--shop-bg);--surface:var(--shop-surface);--ink-green:var(--shop-ink)}
body{background:var(--shop-bg);color:var(--shop-ink)}
.shop-header{background:rgba(23,63,50,.98);color:#fff;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 5px 24px rgba(23,63,50,.08);backdrop-filter:blur(14px)}
.shop-brand{color:#fff}.shop-brand img{filter:brightness(0) invert(1) contrast(1.15)}.shop-brand span{border-color:rgba(255,255,255,.24);color:#fff}
.homestay-link{color:#f5edda}.shop-search{border-color:rgba(255,255,255,.18);background:#f5f7f2;color:var(--shop-green);opacity:1}
.cart-trigger,.saved-trigger{display:inline-flex;min-height:44px;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(23,63,50,.14);border-radius:999px;background:var(--shop-surface);color:var(--shop-green);font-size:15px;font-weight:700;cursor:pointer}
.saved-trigger>span{font-size:21px}.saved-count,.cart-count{display:grid;min-width:26px;height:26px;place-items:center;padding:0 6px;border-radius:999px;background:var(--shop-green);color:#fff;font-size:13px}
.quick-categories{max-width:1240px;margin:22px auto 12px;padding:0 18px}.quick-category-heading{text-align:center}.quick-category-heading h2{margin:3px 0 14px;color:var(--shop-green);font:600 25px Cinzel,serif}.quick-category-heading .eyebrow{margin:0}
.shop-category-strip-inner{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0;overflow:visible}.shop-category-strip .category-tile{display:flex;min-height:76px;align-items:center;justify-content:flex-start;gap:12px;padding:14px 18px;border:1px solid rgba(23,63,50,.1);border-radius:18px;background:var(--shop-surface);color:var(--shop-green);font-size:15px;box-shadow:0 8px 22px rgba(23,63,50,.05)}.category-tile>span{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;background:var(--shop-sage);color:var(--shop-green);font-size:17px}.shop-category-strip .category-tile.is-active{border-color:var(--shop-green);background:var(--shop-green);color:#fff}.category-tile.is-active>span{background:rgba(255,255,255,.15);color:#fff}
.shop-promo.shop-story{display:grid;max-width:1240px;min-height:330px;grid-template-columns:1.05fr .95fr;margin:18px auto;border:0;background:var(--shop-surface);box-shadow:0 18px 48px rgba(23,63,50,.09)}.shop-story .shop-promo-media{position:relative;inset:auto;grid-column:2;grid-row:1;min-height:330px;background:radial-gradient(circle at 68% 35%,rgba(184,138,59,.28),transparent 24%),linear-gradient(135deg,var(--shop-sage),#b9cdbb)}.shop-story .shop-promo-media::after{inset:15%;border-color:rgba(23,63,50,.16)}.shop-story .shop-promo-slides{z-index:1;width:auto;grid-column:1;grid-row:1}.shop-story .shop-promo-slide{min-height:330px;padding:44px 50px;background:var(--shop-green)}.shop-promo h1{font-size:clamp(34px,4vw,52px)}.shop-promo p:not(.eyebrow){font-size:16px}.shop-promo a{min-height:48px;padding:12px 20px;font-size:15px}
.reward-note{display:none}.story-cards{display:grid;max-width:1050px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px auto 46px;padding:0 18px}.story-cards article{display:flex;align-items:center;gap:18px;padding:22px;border:1px solid rgba(23,63,50,.1);border-radius:20px;background:var(--shop-surface)}.story-cards article:first-child{background:#f3ead6}.story-cards article>span{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border-radius:15px;background:var(--shop-green);color:#fff;font-size:22px}.story-cards h2{margin:2px 0 5px;color:var(--shop-green);font:600 20px Cinzel,serif}.story-cards p{margin:0;font-size:15px;line-height:1.55}.story-cards .eyebrow{font-size:13px}
.catalog-section{max-width:1340px}.section-heading h2,.saved-section .section-heading h2{color:var(--shop-green);font-size:clamp(32px,4vw,46px)}.product-grid{display:block}.shop-collection-row{padding:22px 0 26px}.shop-collection-row:nth-child(even){margin-inline:-24px;padding-inline:24px;border-radius:26px;background:rgba(220,231,221,.5)}.collection-product-scroller{grid-auto-columns:calc((100% - 54px)/4);gap:18px}
.product-card{position:relative;border:1px solid rgba(23,63,50,.1);border-radius:22px;background:var(--shop-surface);box-shadow:0 9px 26px rgba(23,63,50,.06)}.product-image-slot{min-height:220px;background:#f0ecdf}.save-product{position:absolute;top:12px;right:12px;z-index:2;display:grid;width:46px;height:46px;place-items:center;border:1px solid rgba(23,63,50,.14);border-radius:50%;background:rgba(255,253,248,.94);color:var(--shop-green);font-size:24px;cursor:pointer;box-shadow:0 5px 16px rgba(23,63,50,.1)}.save-product.is-saved{background:#f1ddd4;color:#91462f}.save-product.is-saved span{font-size:0}.save-product.is-saved span::before{font-size:23px;content:"♥"}.product-content{padding:20px}.product-heading-row{align-items:flex-start}.product-card h3{font-size:22px}.product-price{font-size:19px}.product-origin{color:var(--shop-gold);font-weight:700}.product-description{margin:14px 0;line-height:1.65}.variant-picker{margin-top:0}.variant-chips{gap:8px}.variant-chip{border-radius:12px;background:#f4f4ee}.variant-chip.is-selected{background:var(--shop-sage);color:var(--shop-green)}.stock-status.in-stock{background:var(--shop-sage);color:var(--shop-green)}.add-row{margin-top:15px}.add-cart-button{min-height:50px;border-radius:13px;background:var(--shop-green)}
.saved-section{max-width:1340px;margin:0 auto;padding:46px clamp(18px,5vw,72px) 110px}.saved-section .section-heading{align-items:flex-start}.saved-section .section-heading p:last-child{margin:7px 0 0;color:var(--muted-sage)}.saved-close,.saved-empty button{min-height:44px;padding:10px 18px;border:1px solid var(--shop-green);border-radius:999px;background:var(--shop-surface);color:var(--shop-green);font-size:15px;font-weight:700;cursor:pointer}.saved-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.saved-empty{padding:70px 20px;border-radius:26px;background:var(--shop-surface);text-align:center}.saved-empty>span{font-size:42px;color:var(--shop-gold)}.saved-empty h3{margin:12px 0 5px;color:var(--shop-green);font:600 28px Cinzel,serif}.saved-empty p{font-size:16px}.saved-empty button{margin-top:10px;background:var(--shop-green);color:#fff}.shop-footer{background:var(--shop-green)}
.shop-mobile-nav{grid-template-columns:repeat(5,1fr)}.mobile-saved-count{position:absolute;min-width:18px;height:18px;margin:-30px 0 0 28px;padding:0 4px;background:var(--shop-terracotta);font-size:11px}
@media(max-width:1050px){.saved-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-product-scroller{grid-auto-columns:calc((100% - 32px)/3)}}
@media(max-width:680px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.shop-header{background:var(--shop-surface)}.shop-header-actions .homestay-link,.shop-header-actions .saved-trigger{display:none}.quick-categories{margin:18px auto 10px;padding:0 14px}.quick-category-heading{text-align:left}.quick-category-heading h2{font-size:22px}.shop-category-strip-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;flex-wrap:nowrap}.shop-category-strip .category-tile{min-width:0;min-height:62px;padding:10px 12px;border-radius:16px;font-size:14px}.category-tile>span{width:34px;height:34px}.shop-promo.shop-story{min-height:0;grid-template-columns:1fr;margin:15px 14px 16px}.shop-story .shop-promo-media{grid-column:1;grid-row:1;min-height:150px}.shop-story .shop-promo-slides{grid-column:1;grid-row:2}.shop-story .shop-promo-slide{min-height:270px;padding:28px 24px}.shop-promo h1{font-size:31px}.story-cards{grid-template-columns:1fr;margin:14px auto 34px;padding:0 14px}.story-cards article{padding:17px}.catalog-section{padding-inline:14px}.section-heading{align-items:flex-start}.section-heading>p{font-size:14px}.shop-collection-row:nth-child(even){margin-inline:-6px;padding-inline:6px}.collection-product-scroller{display:grid!important;width:100%!important;grid-template-columns:1fr!important;grid-auto-flow:row!important;gap:18px;overflow:visible!important}.product-image-slot{min-height:245px}.product-content{padding:19px}.saved-section{padding:34px 14px 100px}.saved-section .section-heading{flex-direction:column;gap:15px}.saved-grid{grid-template-columns:1fr}.shop-mobile-nav a,.shop-mobile-nav button{font-size:11px}.shop-mobile-nav span{font-size:18px}}
@media(prefers-reduced-motion:reduce){.save-product,.category-tile{transition:none!important}}
@media(max-width:680px){.shop-header{background:var(--shop-green)}}
.shop-brand{flex:0 0 auto}.shop-brand img{width:234px;height:auto;flex:0 0 234px}.shop-search input,.homestay-link,.cart-trigger,.shop-promo p:not(.eyebrow),.shop-promo a,.reward-note p,.section-heading>p,.collection-row-heading p,.collection-row-heading button,.product-origin,.product-pack-reference,.product-description,.field-label,.variant-chip,.stock-status,.quantity-field,.add-cart-button,.cart-line-copy span,.cart-line-actions button,.cart-remove,.cart-footer p,.cart-checkout-link,.shop-footer,.catalog-result-status{font-size:15px;line-height:1.55}.filter-chip,.variant-chip,.add-cart-button,.quantity-field input,.cart-trigger,.cart-close,.cart-line-actions button,.cart-remove,.cart-checkout-link,.shop-promo a,.collection-row-heading button{min-height:44px}.filter-chip,.variant-chip{padding:9px 14px}.cart-line-actions button{min-width:44px}.cart-remove{display:inline-flex;align-items:center;padding:8px 10px}.shop-promo-media{position:absolute;inset:0 0 0 58%;z-index:0;background:linear-gradient(135deg,rgba(255,255,255,.03),rgba(214,190,125,.16))}.shop-promo-media::after{position:absolute;inset:12%;border:1px solid rgba(255,255,255,.16);border-radius:50%;content:""}.shop-promo-slides{z-index:1;width:62%}.reward-note p{margin-block:0}@media(min-width:1060px){.collection-product-scroller{grid-auto-columns:calc((100% - 66px)/4)}}@media(max-width:900px){.shop-brand span{display:none}}@media(max-width:680px){.shop-brand img{width:170px;flex-basis:170px}.shop-category-strip-inner{justify-content:flex-start;max-width:100%}.shop-category-strip .filter-chip{min-height:44px;font-size:14px;padding:9px 14px}.collection-product-scroller{width:calc(100vw - 28px);max-width:100%;margin-right:0;padding-right:0;grid-auto-columns:minmax(250px,78vw)}.shop-mobile-nav a,.shop-mobile-nav button{min-height:62px;font-size:13px}.shop-promo-slides{width:100%}.shop-promo-media{inset:0 0 0 42%;opacity:.7}.product-description{min-height:0}}


/* Simplified Shop storefront. Final presentation-only overrides. */
:root{--shop-bg:#f8f5ed;--shop-surface:#fffefb;--shop-green:#173f32;--shop-gold:#b38a45;--shop-ink:#18382d}
body{padding-bottom:0;background:var(--shop-bg)}
.shop-header{position:relative;display:flex;min-height:82px;align-items:center;gap:clamp(18px,3vw,42px);padding:6px clamp(18px,4vw,58px);background:var(--shop-surface);color:var(--shop-green);border-bottom:1px solid rgba(23,63,50,.1);box-shadow:0 3px 16px rgba(23,63,50,.05)}
.shop-brand{height:auto;gap:13px;overflow:visible;color:var(--shop-green)}.shop-brand img{width:234px;flex-basis:234px;filter:none}.shop-brand span{display:flex;flex-direction:column;gap:2px;padding-left:13px;border-color:rgba(23,63,50,.18);color:var(--shop-green);font-size:13px;line-height:1.15;white-space:nowrap}.shop-brand span small{font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.shop-search{width:min(620px,46vw);min-height:44px;margin-left:auto;border:1px solid rgba(23,63,50,.16);border-radius:10px;background:#f4f5f0;color:var(--shop-green)}.shop-search input{font-size:14px}.shop-header-actions{display:flex;align-items:center;gap:12px}.homestay-link{color:var(--shop-green)}.cart-trigger{border-color:rgba(23,63,50,.14);background:var(--shop-green);color:#fff}.cart-count{background:var(--shop-gold);color:#fff}
.shop-promo{position:relative;max-width:1240px;min-height:210px;margin:18px auto 12px;overflow:hidden;border:1px solid rgba(23,63,50,.1);border-radius:20px;background:var(--shop-surface);box-shadow:0 10px 30px rgba(23,63,50,.06);color:var(--shop-green)}.shop-promo::after{display:none}.shop-promo-track{display:flex;width:100%;transition:transform .55s ease}.promo-panel{position:relative;display:grid;min-width:100%;min-height:210px;grid-template-columns:1.3fr .7fr}.promo-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:28px 82px 50px 38px}.shop-promo .eyebrow{margin:0 0 5px;color:var(--shop-gold)}.shop-promo h1,.shop-promo h2{margin:0;color:var(--shop-green);font:600 clamp(26px,3vw,40px)/1.15 Cinzel,serif}.shop-promo .promo-copy>p:last-child{margin:8px 0 0;color:#5e7168;font-size:15px}
.promo-media{position:relative;inset:auto;min-height:210px;background:radial-gradient(circle at 65% 42%,rgba(179,138,69,.36),transparent 26%),linear-gradient(135deg,#e5ecdf,#c9d9ca)}.promo-media::after{position:absolute;inset:18%;border:1px solid rgba(23,63,50,.15);border-radius:50%;content:""}.promo-media.reward{background:radial-gradient(circle at 60% 45%,rgba(179,138,69,.42),transparent 25%),linear-gradient(135deg,#f3ecd9,#ded0ab)}.promo-media.collection{background:radial-gradient(circle at 55% 42%,rgba(255,255,255,.55),transparent 24%),linear-gradient(135deg,#d8e4d8,#afc5b2)}
.promo-controls{position:absolute;left:38px;bottom:12px;z-index:2;display:flex;align-items:center;gap:8px}.promo-controls>button,.promo-dots button{border:0;cursor:pointer}.promo-controls>button{display:grid;width:36px;height:36px;place-items:center;border:1px solid rgba(23,63,50,.18);border-radius:50%;background:rgba(255,254,251,.9);color:var(--shop-green)}.promo-dots{display:flex;gap:6px}.promo-dots button{width:8px;height:8px;padding:0;border-radius:50%;background:#bdc8c0}.promo-dots button.is-active{width:22px;border-radius:8px;background:var(--shop-gold)}
.shop-category-strip{position:relative;top:auto;border:0;background:transparent;backdrop-filter:none}.shop-category-strip-inner{display:flex;justify-content:center;gap:8px;padding:8px 18px 12px;overflow-x:auto}.shop-category-strip .filter-chip{min-height:44px;padding:9px 15px;border:1px solid rgba(23,63,50,.14);border-radius:999px;background:var(--shop-surface);color:var(--shop-green);font-size:14px}.shop-category-strip .filter-chip.is-active{background:var(--shop-green);color:#fff}
.catalog-section{max-width:1240px;padding:24px 18px 70px}.section-heading{margin-bottom:14px}.section-heading h2{font-size:clamp(29px,3vw,39px)}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.product-card{min-width:0;border-radius:16px;background:var(--shop-surface);box-shadow:0 7px 20px rgba(23,63,50,.055)}.product-image-slot{min-height:170px}.product-content{padding:16px}.product-card h3{font-size:19px}.product-description{margin:10px 0;line-height:1.5}.add-cart-button{min-height:44px;border-radius:10px}.save-product,.saved-section,.shop-mobile-nav,.quick-categories,.story-cards,.reward-note{display:none!important}.shop-footer{padding-bottom:28px}
@media(max-width:1050px){.shop-brand span{display:none}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.shop-header{display:grid;min-height:0;grid-template-columns:1fr auto;gap:7px 10px;padding:7px 14px 9px}.shop-brand{grid-column:1}.shop-brand img{width:170px;flex-basis:170px}.shop-header-actions{grid-column:2;grid-row:1}.shop-header-actions .homestay-link{display:none}.cart-trigger{min-height:40px;padding:6px 8px 6px 10px}.cart-trigger>span:first-child{display:none}.shop-search{grid-column:1/-1;grid-row:2;width:100%;min-height:42px;margin:0}.shop-promo{min-height:160px;margin:12px 14px 7px;border-radius:15px}.promo-panel{min-height:160px;grid-template-columns:1fr}.promo-copy{min-height:160px;padding:18px 74px 42px 20px}.shop-promo h1,.shop-promo h2{font-size:25px}.shop-promo .promo-copy>p:last-child{font-size:13px}.promo-media{position:absolute;right:0;width:36%;min-height:160px;opacity:.62}.promo-controls{left:20px;bottom:6px}.promo-controls>button{width:32px;height:32px}.shop-category-strip-inner{justify-content:flex-start;padding:7px 14px 11px;flex-wrap:nowrap;scrollbar-width:none}.shop-category-strip .filter-chip{flex:0 0 auto;min-height:44px}.catalog-section{padding:18px 14px 44px}.section-heading>p{font-size:13px}.product-grid{grid-template-columns:1fr;gap:16px}.product-image-slot{min-height:190px}.product-content{padding:16px}.shop-footer{padding-bottom:24px}}
@media(prefers-reduced-motion:reduce){.shop-promo-track{transition:none}}
.shop-brand{height:92px;overflow:hidden}
@media(max-width:760px){.shop-brand{height:70px}.shop-promo,.promo-panel,.promo-copy{height:170px;min-height:170px;max-height:170px}.promo-copy{padding:12px 74px 38px 16px}.shop-promo h1,.shop-promo h2{font-size:21px}.shop-promo .promo-copy>p:last-child{font-size:11px;line-height:1.35}}

/* Final header colour correction only. */
.shop-header{background:var(--shop-green);color:#fff}
.shop-brand{color:#fff}
.shop-brand img{filter:brightness(0) invert(1) contrast(1.15)}
.shop-brand span{border-color:rgba(255,255,255,.28);color:#fff}
.homestay-link{color:#f7f0df}
.shop-search{border-color:rgba(255,255,255,.22);background:#fff;color:var(--shop-green)}
.shop-search input{color:var(--shop-ink)}
.shop-search input::placeholder{color:#6f7e75}
.cart-trigger{border-color:rgba(255,255,255,.24);background:#fff;color:var(--shop-green)}

/* Compact Shop footer. */
html{scroll-behavior:smooth}
.shop-footer{display:block;padding:12px clamp(18px,5vw,72px) 8px;background:var(--shop-green);color:#fff}
.shop-footer .shop-footer-inner{display:block;width:100%;max-width:1120px;margin:0 auto}
.shop-footer .shop-footer-main{display:grid;grid-template-columns:1.45fr .8fr 1fr;gap:clamp(36px,7vw,100px);align-items:start}
.shop-footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.shop-footer-brand img{width:104px;height:auto;margin-bottom:2px;filter:brightness(0) invert(1) contrast(1.15)}
.shop-footer-brand strong{color:#fff;font:600 15px Cinzel,serif;letter-spacing:.04em}
.shop-footer-brand p{margin:0;color:#c7d2ca;font-size:13px;line-height:1.45}
.shop-footer-column{display:flex;flex-direction:column;align-items:flex-start}
.shop-footer-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}
.shop-footer-column h2{grid-column:1/-1}
.shop-footer-column h2{margin:0 0 3px;color:#f7f0df;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.shop-footer a{display:inline-flex;min-height:44px;align-items:center;padding:0 2px;color:#dce4de;font-size:13px;line-height:1.35;text-decoration:none}
.shop-footer a:hover{color:#fff}
.shop-footer a:focus-visible{border-radius:3px;outline:2px solid #d5b96f;outline-offset:3px;color:#fff}
.shop-footer .shop-footer-bottom{display:flex;min-height:44px;align-items:end;justify-content:space-between;flex-direction:row;gap:0;margin-top:5px;padding-top:5px;border-top:1px solid rgba(255,255,255,.16);color:#b9c7be;font-size:12px}
.shop-footer-bottom>a{min-height:44px;color:#f7f0df}
@media (max-width: 680px) {
    .shop-footer {
        padding: 35px 18px;
    }

    .footer-policy-links {
        gap: 6px 10px;
    }

    .footer-policy-links a {
        font-size: 11px;
    }

    .shop-footer-copyright {
        font-size: 13px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* ================= FLOATING CONTACT BUTTONS (matching homestay.html) ================= */

.floating-whatsapp {
    position: fixed;
    right: 22px;
    bottom: 22px;
    background: #25D366;
    color: white;
    padding: 14px 20px;
    border-radius: 35px;
    text-decoration: none;
    font-weight: 600;
    box-shadow: 0 10px 30px rgba(0,0,0,.25);
    z-index: 9999;
    font-size: 13px;
    transition: transform .2s ease, box-shadow .2s ease, opacity 0.3s ease, visibility 0.3s;
}

.floating-whatsapp:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 40px rgba(37, 211, 102, 0.35);
}

.floating-call {
    position: fixed;
    right: 22px;
    bottom: 85px;
    background: #274233;
    color: white;
    padding: 14px 20px;
    border-radius: 35px;
    text-decoration: none;
    font-weight: 600;
    box-shadow: 0 10px 30px rgba(0,0,0,.25);
    z-index: 9999;
    font-size: 13px;
    transition: transform .2s ease, box-shadow .2s ease, opacity 0.3s ease, visibility 0.3s;
}

.floating-call:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 40px rgba(39, 66, 51, 0.35);
}

/* Hidden state when footer is visible */
.floating-call.is-hidden,
.floating-whatsapp.is-hidden {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(20px) !important;
}
.instagram-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 14px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: transparent;
    color: #e1e9e2;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
    white-space: nowrap;
}

.instagram-link:hover,
.instagram-link:focus {
    background: rgba(225, 48, 108, 0.15);
    border-color: #e1306c;
    color: #e1306c;
}

.instagram-link:focus-visible {
    outline: 2px solid #e1306c;
    outline-offset: 2px;
}

@media (max-width: 680px) {
    .floating-call,
    .floating-whatsapp {
        padding: 12px 16px;
        font-size: 12px;
        right: 14px;
    }
    
    .floating-call {
        bottom: 74px;
    }
    
    .floating-whatsapp {
        bottom: 14px;
    }
    
    .instagram-link {
        padding: 6px 10px;
        font-size: 11px;
    }
}

/* === Mobile Polish Fixes (Phase 1) === */

/* Checkout stepper - minimum 44px touch targets */
@media (max-width: 700px) {
    .checkout-stepper b {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
        font-size: 15px;
    }
    .checkout-stepper li {
        font-size: 14px;
    }
}

/* Cart drawer safe-area handling on iOS */
.cart-drawer {
    height: 100vh;
    height: 100dvh;
}
.cart-drawer.is-open {
    height: 100vh;
    height: 100dvh;
}
.cart-footer {
    padding-bottom: calc(20px + env(safe-area-inset-bottom));
}

/* Variant chip wrapping on very small screens */
@media (max-width: 420px) {
    .variant-chips {
        gap: 6px;
    }
    .variant-chip {
        min-height: 36px;
        padding: 8px 12px;
        font-size: 13px;
    }
}

/* PIN input - numeric only */
input[name="postal_code"] {
    inputmode: numeric;
    pattern: "[0-9]{6}";
}

/* Search input debounce is handled in JS, but add visual feedback */
.shop-search input {
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.shop-search input:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(182, 146, 61, 0.15);
}

/* Product illustrations reserve their space and identify each product. */
.product-image-slot{position:relative;aspect-ratio:4/3;min-height:0;padding:0;overflow:hidden}
.product-image-slot img{display:block;width:100%;height:100%;object-fit:cover}
.product-image-label{position:absolute;bottom:4px;left:4px;right:4px;padding:4px;color:#173d2b;background:#eee8d9;font-family:'Cinzel',serif;font-size:clamp(12px,1.5vw,19px);line-height:1.35;text-align:center;border-radius:8px}
.product-image-label[hidden]{display:none}
.shop-contact-actions{display:contents}
/* Shared footer: readable sections and comfortable links at every width. */
.shop-footer{padding:32px clamp(18px,5vw,72px) 16px}
.shop-footer .shop-footer-main{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr);gap:32px}
.shop-footer-column{display:flex;flex-direction:column;min-width:0;gap:2px}
.shop-footer-column h2{margin:0 0 10px;font-size:13px}.shop-footer a{min-height:44px;line-height:1.5;overflow-wrap:normal}.shop-footer-brand{min-width:0;gap:7px}.shop-footer-brand p{max-width:280px}
.shop-footer .shop-footer-bottom{align-items:center;gap:14px;margin-top:24px;padding-top:12px;flex-wrap:wrap}
@media(max-width:600px){.shop-footer .shop-footer-main{grid-template-columns:1fr;gap:24px}.shop-footer-column{width:100%}.shop-footer-column a{width:100%;font-size:15px}.shop-footer-brand img{width:130px}.shop-footer .shop-footer-bottom{flex-direction:column;align-items:flex-start;gap:4px}}
@media(max-width:1799px){
 .shop-contact-actions{display:flex;gap:12px;max-width:640px;width:calc(100% - 32px);margin:24px auto;padding-bottom:env(safe-area-inset-bottom,0px)}
 .shop-contact-actions .floating-call,.shop-contact-actions .floating-whatsapp{position:static;bottom:auto;right:auto;z-index:auto;flex:1;min-width:0;min-height:44px;padding:12px 8px;display:flex;align-items:center;justify-content:center;font-size:12px;transform:none}
}

/* Visual regression: wrap every category, never crop a hidden next chip. */
.shop-category-strip .shop-category-strip-inner{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;max-width:1240px;overflow:visible;box-sizing:border-box}
.shop-category-strip .filter-chip{flex:0 0 auto;max-width:100%;min-height:44px;white-space:nowrap;text-overflow:clip;overflow:visible;font-size:14px;padding:10px 14px}
.shop-category-strip .filter-chip:focus-visible{outline:3px solid #b38c32;outline-offset:2px}
.shop-promo .promo-media{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:auto;min-width:0;min-height:220px;background:#173f32;opacity:1;padding:24px}
.promo-media img{position:relative;width:min(220px,90%);height:auto;filter:brightness(0) invert(1)}
.promo-media>span{position:relative;color:#f3dfb4;font:600 20px Cinzel,serif;letter-spacing:.04em}
.shop-promo .promo-copy{min-width:0}.shop-promo .promo-copy>p{overflow-wrap:normal}
.promo-controls>button,.promo-dots button{min-width:44px;min-height:44px}.promo-dots button{display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;background:transparent}.promo-dots button::before{content:"";width:8px;height:8px;border-radius:50%;background:#bdc8c0}.promo-dots button.is-active{width:44px;padding:0;background:transparent}.promo-dots button.is-active::before{width:22px;border-radius:8px;background:var(--shop-gold)}.cart-close,.cart-line-actions button,.variant-chip{min-height:44px!important;min-width:44px}
@media(max-width:760px){
 .shop-category-strip .shop-category-strip-inner{flex-wrap:wrap;padding:12px 14px;overflow:visible}
 .shop-promo,.promo-panel,.shop-promo .promo-copy{height:auto;max-height:none;min-height:0}
 .promo-panel{grid-template-columns:1fr}.shop-promo .promo-copy{padding:22px 20px;min-height:170px}.shop-promo h1,.shop-promo h2{font-size:25px}.shop-promo .promo-copy>p:last-child{font-size:14px;line-height:1.55}
 .shop-promo .promo-media{position:relative;inset:auto;width:auto;grid-row:2;min-height:110px;padding:18px;opacity:1}.promo-media img{width:150px}.promo-media>span{font-size:14px}
 .promo-controls{position:static;display:flex;justify-content:center;gap:12px;padding:6px 12px;background:#f5f2e9}
 .product-heading-row>div{min-width:0}.product-card h3{overflow-wrap:anywhere}.product-price-block{flex-shrink:0}.cart-drawer{max-width:100vw}
}
/* Shop-only mobile navigation and contact disclosure. Desktop links are retained. */
.shop-menu-toggle,.shop-contact-toggle{display:none}
.shop-mobile-menu[hidden]{display:none!important}
.shop-contact-links{display:contents}
@media(max-width:760px){
 body.shop-mobile-ux .shop-header{overflow:visible}
 body.shop-mobile-ux .shop-brand img{width:clamp(130px,38vw,170px);flex-basis:auto}
 body.shop-mobile-ux .shop-header-actions{gap:8px;min-width:0}
 body.shop-mobile-ux .cart-trigger{min-height:44px;gap:6px;padding:8px 10px;white-space:nowrap}
 body.shop-mobile-ux .cart-trigger>span:first-child{display:inline;font-size:12px}
 .shop-menu-toggle{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border:1px solid #ffffff70;border-radius:12px;background:transparent;color:#fff;font-size:25px;cursor:pointer}
 .shop-mobile-menu{position:absolute;top:calc(100% + 6px);right:14px;z-index:45;display:flex;flex-direction:column;width:min(250px,calc(100vw - 28px));padding:8px;border:1px solid #d4dfd6;border-radius:16px;background:#fffdf8;box-shadow:0 14px 35px #102e2530}
 .shop-mobile-menu a{display:flex;align-items:center;min-height:48px;padding:10px 14px;border-radius:8px;color:#173f32;font-size:15px;text-decoration:none}
 .shop-mobile-menu a:hover{background:#e8f0e6}
 .shop-menu-toggle:focus-visible,.shop-mobile-menu a:focus-visible,.shop-contact-actions :focus-visible{outline:3px solid #c39c49;outline-offset:3px}
 body.shop-mobile-ux .shop-contact-actions{position:fixed;right:12px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:45;transition:none!important;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:8px;width:max-content;max-width:calc(100vw - 24px);margin:0;padding:0}
 .shop-contact-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-width:96px;min-height:48px;padding:10px 14px;border:1px solid #f5efdc;border-radius:26px;background:#173f32;color:#fff;font:600 13px system-ui,sans-serif;box-shadow:0 5px 18px #102e2540;cursor:pointer}
 .shop-contact-actions .shop-contact-links{display:none;flex-direction:column;gap:6px;padding:8px;border:1px solid #d4dfd6;border-radius:16px;background:#fffdf8;box-shadow:0 8px 24px #102e2526}
 .shop-contact-actions.contact-is-open .shop-contact-links{display:flex}
 .shop-contact-actions .floating-call,.shop-contact-actions .floating-whatsapp{position:static;flex:none;min-width:158px;min-height:44px;padding:10px 12px;font-size:13px;box-shadow:none;transform:none}
 body.shop-mobile-ux .shop-contact-actions.contact-obstructed,body.shop-mobile-ux.cart-open .shop-contact-actions{visibility:hidden;pointer-events:none}

}

/* Compact Shop footer follows the centered Homestay brand hierarchy on mobile. */
.shop-footer-secondary{display:flex;flex-direction:column;gap:2px;margin-top:2px}
.shop-instagram-mobile{display:none}
@media(max-width:760px){
 body.shop-mobile-ux{padding-bottom:0}
 .shop-footer{padding:28px 20px calc(12px + env(safe-area-inset-bottom,0px))}
 .shop-footer .shop-footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 24px}
 .shop-footer-brand{grid-column:1/-1;align-items:center;text-align:center;gap:6px;padding-bottom:6px}
 .shop-footer-brand img{width:120px;margin:0 auto 4px}
 .shop-footer-brand strong{text-transform:uppercase;letter-spacing:.08em;font-size:14px}
 .shop-footer-brand p{margin:0;font-size:13px}
 .shop-footer-help-group{display:contents}
 .shop-footer-column{width:auto;gap:0}
 .shop-footer-column h2{margin:0 0 4px;font-size:12px;letter-spacing:.12em}
 .shop-footer-column a{width:auto;min-height:44px;font-size:14px;line-height:1.4}
 .shop-footer-secondary{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:0 20px;margin:0;border-top:1px solid #ffffff26;padding-top:8px}
 .shop-footer-secondary a{font-size:13px}
 .shop-instagram-desktop{display:none}.shop-instagram-mobile{display:inline}
 .shop-footer .shop-footer-bottom{flex-direction:row;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;gap:0 12px}
}
