/* KRIDHA — boutique atelier theme (inspired by refined saree houses) */
.shop-shell {
    --ink: #193f3c;
    --ink-soft: #2d5551;
    --brand: #193f3c;
    --brand-deep: #122f2d;
    --accent: #c4301c;
    --panel: rgba(251, 250, 248, 0.94);
    --panel-solid: #ffffff;
    --pearl: #fbfaf8;
    --blush: #f4ebe6;
    --mist: #edf2f1;
    --gold: #c29341;
    --gold-deep: #a07830;
    --gold-soft: #d4b36a;
    --teal: #193f3c;
    --wine: #c4301c;
    --muted: rgba(25, 63, 60, 0.68);
    --line: #e5e5e5;
    --shadow: 0 18px 40px rgba(25, 63, 60, 0.08);
    --shadow-soft: 0 8px 22px rgba(25, 63, 60, 0.06);
    --font-display: "Baskervville", "Cormorant Garamond", serif;
    --font-body: "Outfit", "Helvetica Neue", Helvetica, Arial, sans-serif;
    position: relative;
    isolation: isolate;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    color: var(--ink);
    font-family: var(--font-body);
    background: var(--pearl);
    /* Avoid overflow-x:hidden here — it clips the mobile menu/dropdowns in WebKit. */
    overflow-x: clip;
}

.shop-shell::before,
.shop-shell::after {
    content: "";
    position: fixed;
    z-index: -1;
    width: 36vw;
    height: 36vw;
    max-width: 28rem;
    max-height: 28rem;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.35;
    pointer-events: none;
    animation: orb-float 18s ease-in-out infinite;
}

.shop-shell::before {
    top: 8%;
    left: -10%;
    background: radial-gradient(circle, rgba(194, 147, 65, 0.28), transparent 70%);
}

.shop-shell::after {
    right: -12%;
    bottom: 6%;
    background: radial-gradient(circle, rgba(25, 63, 60, 0.12), transparent 70%);
    animation-delay: -8s;
}

@keyframes orb-float {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(2%, -3%, 0) scale(1.08); }
}

.shop-shell a {
    color: inherit;
}

.shop-main {
    flex: 1 1 auto;
    position: relative;
    z-index: 1;
    animation: page-rise 0.55s ease both;
}

@keyframes page-rise {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.shop-header .brand-logo {
    height: 3.6rem;
    width: 3.6rem;
    max-width: 3.6rem;
}

.shop-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-decoration: none;
    min-width: 0;
    color: inherit;
}

.shop-chrome {
    position: sticky;
    top: 0;
    z-index: 40;
    overflow: visible;
}

.shop-chrome:has(.shop-header.menu-open),
.shop-chrome:has(.shop-header.search-open) {
    z-index: 120;
}

.shop-promo-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem 1.2rem;
    padding: 0.55rem 4vw;
    background: var(--ink);
    color: #fbfaf8;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-align: center;
    position: relative;
    min-height: 2.35rem;
}

.shop-promo-bar.rotating {
    flex-direction: column;
    gap: 0.3rem;
    padding-block: 0.55rem 0.4rem;
}

.shop-promo-copy {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 0.35rem 0.55rem;
    max-width: 56rem;
    color: #fbfaf8;
    font-size: 0.8rem;
    letter-spacing: 0.03em;
    line-height: 1.35;
}

.shop-promo-title {
    font-weight: 600;
}

.shop-promo-sep {
    opacity: 0.55;
}

.shop-promo-desc {
    font-weight: 400;
    opacity: 0.92;
}

.shop-promo-code {
    color: var(--gold-soft);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

a.shop-promo-copy {
    text-decoration: none;
    color: inherit;
}

.shop-promo-slide {
    transition: opacity 0.28s ease, transform 0.28s ease;
}

.shop-promo-slide.in {
    opacity: 1;
    transform: translateY(0);
}

.shop-promo-slide.out {
    opacity: 0;
    transform: translateY(4px);
}

.shop-promo-dots {
    display: flex;
    gap: 0.35rem;
    justify-content: center;
}

.shop-promo-dots span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(251, 250, 248, 0.28);
}

.shop-promo-dots span.on {
    background: var(--gold-soft);
}

.shop-header {
    position: relative;
    z-index: 1;
    padding: 0;
    background: #fbfaf8;
    color: var(--ink);
    border-bottom: 1px solid rgba(25, 63, 60, 0.1);
    box-shadow: 0 8px 24px rgba(25, 63, 60, 0.06);
    overflow: visible;
}

.shop-header-utility {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem 1.4rem;
    min-height: 4.1rem;
    padding: 0.55rem 4vw;
}

.shop-utility-left {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    justify-self: start;
    min-width: 0;
}

.shop-header .shop-brand {
    background: transparent;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
    justify-self: center;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.shop-header .brand-mark,
.shop-header .brand-mark-compact,
.shop-header .brand-lockup {
    display: block;
    height: 3.15rem;
    width: auto;
    max-width: min(14.5rem, 42vw);
    object-fit: contain;
    object-position: center;
}

.shop-header-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem 1.4rem;
    min-height: 3rem;
}

.shop-brand-name {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.25rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    line-height: 1;
}

.shop-brand-line {
    display: block;
    font-family: "Cormorant Garamond", serif;
    font-style: italic;
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    color: var(--gold-deep);
    text-transform: none;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
}

.boot-loader,
.page-loader {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
    background: rgba(251, 250, 248, 0.96);
    backdrop-filter: blur(8px);
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.boot-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.boot-loader-card,
.page-loader-card {
    text-align: center;
    padding: 1.5rem;
}

.loader-emblem {
    position: relative;
    width: 5.2rem;
    height: 5.2rem;
    margin: 0 auto 1.1rem;
    display: grid;
    place-items: center;
}

.loader-feather {
    width: 3.4rem;
    height: 3.4rem;
    animation: feather-breathe 1.8s ease-in-out infinite;
}

.loader-ring {
    position: absolute;
    inset: 0;
    border: 1.5px solid rgba(194, 147, 65, 0.22);
    border-top-color: var(--gold);
    border-radius: 50%;
    animation: spin 0.95s linear infinite;
}

@keyframes feather-breathe {
    0%, 100% { transform: scale(1) rotate(-4deg); opacity: 0.92; }
    50% { transform: scale(1.06) rotate(4deg); opacity: 1; }
}

.boot-loader-brand,
.page-loader-brand {
    margin: 0;
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-size: 1.55rem;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: var(--ink);
}

.boot-loader-tag,
.page-loader-tag {
    margin: 0.35rem 0 0.9rem;
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-style: italic;
    color: var(--gold-deep);
    font-size: 1rem;
}

.boot-loader-msg,
.page-loader-msg {
    margin: 0;
    color: var(--muted);
    font-size: 0.82rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.reconnect-brand {
    display: grid;
    place-items: center;
    gap: 0.7rem;
    text-align: center;
}

.reconnect-brand img {
    width: 3.5rem;
    height: 3.5rem;
    object-fit: contain;
}

.shop-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 1.35rem;
    min-width: 0;
}

.shop-nav a {
    text-decoration: none;
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(251, 250, 248, 0.75);
    position: relative;
    white-space: nowrap;
    transition: color 0.25s ease;
}

.shop-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.35rem;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold-soft), transparent);
    transform: scaleX(0);
    transition: transform 0.3s ease;
}

.shop-nav a.active,
.shop-nav a:hover {
    color: #fbfaf8;
}

.shop-nav a.active::after,
.shop-nav a:hover::after {
    transform: scaleX(1);
}

.shop-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.55rem;
    flex: 0 0 auto;
}

.shop-menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    padding: 0;
    border: 1px solid rgba(251, 250, 248, 0.22);
    border-radius: 0.4rem;
    background: rgba(251, 250, 248, 0.06);
    color: #fbfaf8;
    cursor: pointer;
}

.shop-menu-backdrop {
    display: none;
}

.shop-mobile-nav {
    display: none;
}

.shop-header a.shop-account-link {
    box-sizing: border-box;
    color: rgba(251, 250, 248, 0.88);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    min-width: 2.4rem;
    min-height: 2.4rem;
    max-width: 2.4rem;
    max-height: 2.4rem;
    aspect-ratio: 1 / 1;
    padding: 0 !important;
    flex-shrink: 0;
    border: 1px solid rgba(251, 250, 248, 0.22);
    border-radius: 50%;
    background: rgba(251, 250, 248, 0.06);
    overflow: hidden;
    line-height: 0;
}

.shop-header a.shop-account-link:hover {
    border-color: rgba(251, 250, 248, 0.4);
    color: #fff;
}

.shop-header a.shop-account-link svg {
    display: block;
    flex-shrink: 0;
}

.shop-account-menu {
    position: relative;
    flex-shrink: 0;
}

.shop-account-trigger {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    min-width: 2.4rem;
    min-height: 2.4rem;
    max-width: 2.4rem;
    max-height: 2.4rem;
    aspect-ratio: 1 / 1;
    padding: 0;
    flex-shrink: 0;
    border: 1px solid rgba(251, 250, 248, 0.28);
    border-radius: 50%;
    background: linear-gradient(145deg, rgba(194, 147, 65, 0.95), rgba(25, 63, 60, 0.92));
    color: #fbfaf8;
    cursor: pointer;
    font: inherit;
    overflow: hidden;
    line-height: 0;
}

.shop-account-trigger:hover,
.shop-account-menu.open .shop-account-trigger {
    border-color: rgba(251, 250, 248, 0.55);
    filter: brightness(1.06);
}

.shop-account-avatar {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: transparent;
    color: #fbfaf8;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1;
}

.shop-account-dropdown {
    position: absolute;
    right: 0;
    top: calc(100% + 0.45rem);
    min-width: 12.5rem;
    padding: 0.45rem;
    background: #102a28;
    border: 1px solid rgba(251, 250, 248, 0.16);
    border-radius: 0.55rem;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
    z-index: 60;
    pointer-events: none;
}

.shop-account-menu.open .shop-account-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.shop-account-dropdown-label {
    margin: 0 0 0.35rem;
    padding: 0.35rem 0.55rem;
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(251, 250, 248, 0.45);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-account-dropdown a {
    display: block;
    padding: 0.55rem 0.65rem;
    border-radius: 0.35rem;
    color: rgba(251, 250, 248, 0.9);
    text-decoration: none;
    font-size: 0.88rem;
}

.shop-account-dropdown a:hover {
    background: rgba(251, 250, 248, 0.08);
    color: #fff;
}

.shop-account-dropdown a.danger {
    color: #f0c4b4;
    border-top: 1px solid rgba(251, 250, 248, 0.1);
    margin-top: 0.25rem;
}

/* ---------- Customer account (sign-in / register) ---------- */
.account-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(ellipse 80% 50% at 100% 0%, rgba(194, 147, 65, 0.08), transparent 55%),
        radial-gradient(ellipse 60% 40% at 0% 100%, rgba(25, 63, 60, 0.06), transparent 50%),
        var(--pearl);
}

.account-shell::before,
.account-shell::after {
    display: none;
}

.account-topbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 0.85rem clamp(1.2rem, 4vw, 2.5rem);
    background: var(--ink);
    border-bottom: 1px solid rgba(194, 147, 65, 0.28);
    position: sticky;
    top: 0;
    z-index: 30;
}

.account-topbar-brand {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: #fbfaf8;
}

.account-topbar-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
}

.account-topbar-nav a {
    color: rgba(251, 250, 248, 0.78);
    text-decoration: none;
    font-size: 0.72rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    transition: color 0.2s ease;
}

.account-topbar-nav a:hover {
    color: var(--gold-soft);
}

.account-stage {
    flex: 1;
    display: flex;
    min-height: 0;
}

.account-auth {
    flex: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(22rem, 0.95fr);
    min-height: calc(100vh - 4.25rem);
}

.account-auth-visual {
    position: relative;
    overflow: hidden;
    background: var(--ink);
    min-height: 100%;
}

.account-auth-visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    opacity: 0.72;
    transform: scale(1.04);
    animation: account-ken 18s ease-in-out infinite alternate;
}

@keyframes account-ken {
    from { transform: scale(1.04) translate3d(0, 0, 0); }
    to { transform: scale(1.1) translate3d(-2%, -1%, 0); }
}

.account-auth-visual-veil {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(105deg, rgba(15, 40, 38, 0.25) 0%, rgba(15, 40, 38, 0.72) 55%, rgba(15, 40, 38, 0.88) 100%),
        linear-gradient(0deg, rgba(15, 40, 38, 0.75) 0%, transparent 45%);
    pointer-events: none;
}

.account-auth-visual-copy {
    position: absolute;
    z-index: 1;
    left: clamp(1.6rem, 4vw, 3.2rem);
    right: clamp(1.6rem, 4vw, 3.2rem);
    bottom: clamp(1.8rem, 5vw, 3.5rem);
    color: #f1ece1;
    max-width: 26rem;
    animation: account-rise 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.account-auth-eyebrow {
    margin: 0 0 0.55rem;
    font-size: 0.72rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--gold-soft);
}

.account-auth-visual-copy h2 {
    margin: 0 0 0.75rem;
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2.4rem, 4.5vw, 3.6rem);
    line-height: 1.08;
    color: #fff;
}

.account-auth-visual-copy h2 em {
    font-style: italic;
    color: var(--gold-soft);
}

.account-auth-visual-copy p:last-child {
    margin: 0;
    color: rgba(241, 236, 225, 0.82);
    font-size: 1.02rem;
    line-height: 1.55;
}

.account-auth-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1.5rem, 4vw, 3rem) clamp(1.4rem, 4vw, 3.5rem);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(251, 250, 248, 0.98));
    border-left: 1px solid var(--line);
    animation: account-rise 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both;
}

@keyframes account-rise {
    from { opacity: 0; transform: translate3d(0, 18px, 0); }
    to { opacity: 1; transform: none; }
}

.account-auth-panel-inner {
    width: min(26rem, 100%);
}

.account-auth-mark {
    width: 64px;
    height: 64px;
    object-fit: contain;
    margin-bottom: 1.1rem;
    display: block;
}

.account-auth-kicker {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--gold-deep);
}

.account-auth-panel h1 {
    margin: 0 0 0.4rem;
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2.2rem, 3.5vw, 2.85rem);
    line-height: 1.1;
    color: var(--ink);
}

.account-auth-lead {
    margin: 0 0 1.15rem;
    color: var(--muted);
    font-size: 0.98rem;
    line-height: 1.55;
}

.account-auth-steps {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.15rem;
    margin: 0 0 1.35rem;
    padding: 0.55rem 0.65rem;
    background: rgba(25, 63, 60, 0.04);
    border: 1px solid var(--line);
}

.account-auth-steps li {
    position: relative;
    padding: 0.2rem 0.7rem 0.2rem 0;
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(25, 63, 60, 0.45);
}

.account-auth-steps li:not(:last-child)::after {
    content: "/";
    margin-left: 0.55rem;
    color: rgba(25, 63, 60, 0.28);
}

.account-auth-steps li.on {
    color: var(--ink);
    font-weight: 600;
}

.account-form {
    display: grid;
    gap: 0.15rem;
    margin: 0 0 0.4rem;
}

.account-field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 0.95rem;
}

.account-field > span {
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink-soft);
    font-weight: 500;
}

.account-field > span em {
    font-style: normal;
    font-weight: 400;
    letter-spacing: 0.04em;
    text-transform: none;
    color: var(--muted);
    margin-left: 0.35rem;
}

.account-field input {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 1px solid #d5cfc3;
    background: #fff;
    color: var(--ink);
    font: 0.95rem var(--font-body);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.account-field input::placeholder {
    color: rgba(25, 63, 60, 0.38);
}

.account-field input:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(194, 147, 65, 0.2);
}

.password-wrap {
    position: relative;
    display: block;
    width: 100%;
}

.password-wrap input {
    width: 100%;
    padding-right: 2.75rem;
}

.password-toggle {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    padding: 0;
    border: 0;
    border-radius: 0.35rem;
    background: transparent;
    color: rgba(25, 63, 60, 0.55);
    cursor: pointer;
}

.password-toggle:hover {
    color: var(--ink);
    background: rgba(25, 63, 60, 0.06);
}

.account-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem;
}

.account-submit {
    margin-top: 0.35rem;
    min-height: 3.1rem;
}

.btn-google {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
    min-height: 3.1rem;
    padding: 0.75rem 1.1rem;
    border: 1px solid #d5cfc3;
    background: #fff;
    color: var(--ink) !important;
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.btn-google:hover {
    border-color: rgba(25, 63, 60, 0.45);
    background: #fbfaf8;
    box-shadow: 0 8px 20px rgba(25, 63, 60, 0.08);
    color: var(--ink) !important;
}

.btn-google-icon {
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 auto;
}

.account-or {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0.75rem;
    margin: 1.15rem 0 0.35rem;
    color: var(--muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.account-or::before,
.account-or::after {
    content: "";
    height: 1px;
    background: var(--line);
}

.account-or span {
    white-space: nowrap;
}

.account-alert {
    margin: 0 0 1rem;
    padding: 0.8rem 1rem;
    background: #fbe6e4;
    border: 1px solid rgba(179, 38, 30, 0.22);
    color: #9f1f18;
    font-size: 0.9rem;
    line-height: 1.45;
}

.account-switch {
    margin: 1.15rem 0 0;
    color: var(--muted);
    font-size: 0.92rem;
    text-align: center;
}

.account-switch a {
    color: var(--gold-deep);
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid rgba(160, 120, 48, 0.35);
}

.account-switch a:hover {
    color: var(--ink);
    border-bottom-color: var(--ink);
}

.account-auth-links {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.4rem;
    padding-top: 1.15rem;
    border-top: 1px solid var(--line);
}

.account-auth-links a {
    color: var(--muted);
    text-decoration: none;
    font-size: 0.82rem;
}

.account-auth-links a:hover {
    color: var(--ink);
}

@media (prefers-reduced-motion: reduce) {
    .account-auth-visual img,
    .account-auth-visual-copy,
    .account-auth-panel {
        animation: none !important;
    }
}

@media (max-width: 960px) {
    .account-auth {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .account-auth-visual {
        min-height: 240px;
        max-height: 32vh;
    }

    .account-auth-visual-copy h2 {
        font-size: clamp(1.9rem, 6vw, 2.5rem);
    }

    .account-auth-visual-copy p:last-child {
        display: none;
    }

    .account-auth-panel {
        border-left: 0;
        border-top: 1px solid var(--line);
        padding: 1.75rem 1.25rem 2.5rem;
        align-items: flex-start;
    }

    .account-field-row {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

@media (max-width: 480px) {
    .account-auth-links {
        flex-direction: column;
        align-items: flex-start;
    }

    .account-auth-mark {
        width: 52px;
        height: 52px;
    }
}

.shop-search {
    display: flex;
    align-items: center;
    min-width: 0;
    width: min(16rem, 28vw);
    border: 1px solid rgba(251, 250, 248, 0.22);
    background: rgba(251, 250, 248, 0.1);
    box-shadow: none;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.shop-search:focus-within {
    border-color: var(--gold-soft);
    box-shadow: 0 0 0 3px rgba(194, 147, 65, 0.18);
}

.shop-search input {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: 0;
    color: #fbfaf8;
    padding: 0.7rem 0.9rem;
    font-size: 0.9rem;
}

.shop-search input:focus {
    outline: none;
}

.shop-search input::placeholder {
    color: rgba(251, 250, 248, 0.5);
}

.shop-search button,
.shop-icon-btn,
.wishlist-header-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: #fbfaf8;
    min-height: 2.6rem;
    padding: 0 0.85rem;
    cursor: pointer;
}

.shop-cart-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.8rem;
    height: 2.8rem;
    border: 1px solid rgba(251, 250, 248, 0.35);
    text-decoration: none;
    color: #fbfaf8;
    background: rgba(251, 250, 248, 0.1);
    transition: transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}

.shop-cart-link:hover {
    transform: translateY(-2px);
    background: rgba(251, 250, 248, 0.2);
    box-shadow: none;
}

.shop-cart-count {
    position: absolute;
    top: -0.45rem;
    right: -0.45rem;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 0.28rem;
    border-radius: 999px;
    background: var(--gold);
    color: #193f3c;
    font-size: 0.68rem;
    font-weight: 500;
    display: grid;
    place-items: center;
    animation: pop-in 0.35s ease;
}

@keyframes pop-in {
    from { transform: scale(0.4); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.shop-footer {
    position: relative;
    z-index: 1;
    margin-top: auto;
    color: rgba(251, 250, 248, 0.78);
    font-size: 0.92rem;
    background:
        radial-gradient(700px 320px at 8% 0%, rgba(194, 147, 65, 0.16), transparent 55%),
        linear-gradient(180deg, #1d4844 0%, #193f3c 48%, #122f2d 100%);
    border-top: 1px solid rgba(251, 250, 248, 0.1);
}

.shop-footer-top {
    display: grid;
    grid-template-columns: minmax(14rem, 1.4fr) repeat(3, minmax(8rem, 0.75fr)) minmax(14rem, 1.1fr);
    gap: 2rem 1.6rem;
    padding: 3.4rem 5vw 2.4rem;
}

.shop-footer-brand-col {
    max-width: 22rem;
}

.shop-footer-brand {
    display: inline-flex;
    align-items: center;
    background: #fbfaf8;
    padding: 0.35rem 0.7rem 0.35rem 0.4rem;
    border-radius: 0.5rem;
    text-decoration: none;
    margin-bottom: 1.1rem;
    box-shadow: inset 0 0 0 1px rgba(25, 63, 60, 0.06);
}

.shop-footer-brand ::deep .brand-logo,
.shop-footer .brand-logo,
.shop-footer-brand ::deep .footer-mark,
.shop-footer .footer-mark {
    display: block;
    height: 4.4rem;
    width: 4.4rem;
    max-width: 4.4rem;
    object-fit: contain;
    background: #fbfaf8;
    border-radius: 50%;
    padding: 0.2rem;
}

.shop-footer-story {
    margin: 0 0 0.85rem;
    line-height: 1.7;
    color: rgba(251, 250, 248, 0.78);
}

.shop-footer-tagline {
    margin: 0 0 1.2rem;
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-style: italic;
    font-size: 1.15rem;
    color: var(--gold-soft);
}

.shop-footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
}

.shop-footer-social a {
    color: #fbfaf8;
    text-decoration: none;
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(194, 147, 65, 0.45);
    padding-bottom: 0.15rem;
}

.shop-footer-social a:hover {
    color: var(--gold-soft);
}

.shop-footer-col h3 {
    margin: 0 0 1rem;
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-size: 1.15rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fbfaf8;
}

.shop-footer-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.55rem;
}

.shop-footer-col a {
    color: rgba(251, 250, 248, 0.75);
    text-decoration: none;
    transition: color 0.2s ease;
}

.shop-footer-col a:hover {
    color: var(--gold-soft);
}

.shop-footer-contact p {
    margin: 0 0 1rem;
    line-height: 1.65;
}

.shop-footer-contact strong {
    display: block;
    margin-bottom: 0.2rem;
    color: #fbfaf8;
    font-family: var(--font-body), Outfit, sans-serif;
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 500;
}

.shop-footer-contact a {
    color: rgba(251, 250, 248, 0.88);
}

.shop-footer-note {
    margin-top: 0.4rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(251, 250, 248, 0.12);
}

.shop-footer-note-label {
    margin: 0 0 0.65rem;
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--gold-soft);
}

.shop-footer-form {
    display: flex;
    gap: 0.45rem;
}

.shop-footer-form input {
    flex: 1;
    min-width: 0;
    border: 1px solid rgba(251, 250, 248, 0.22);
    background: rgba(251, 250, 248, 0.08);
    color: #fbfaf8;
    padding: 0.7rem 0.8rem;
    font-size: 0.88rem;
}

.shop-footer-form input::placeholder {
    color: rgba(251, 250, 248, 0.45);
}

.shop-footer-form input:focus {
    outline: none;
    border-color: var(--gold-soft);
}

.shop-footer-form .btn-gold {
    background: var(--gold);
    border-color: var(--gold);
    color: #193f3c !important;
    padding: 0.7rem 0.95rem;
}

.shop-footer-form .btn-gold:hover {
    background: var(--gold-soft);
    border-color: var(--gold-soft);
    color: #122f2d !important;
}

.shop-footer-thanks {
    margin: 0;
    color: var(--gold-soft);
    font-family: var(--font-display), "Baskervville", serif;
    font-style: italic;
}

/* Signature motif strip — icons only, coded (no image / no brand word) */
.kridha-signature {
    margin: 0;
    width: 100%;
    overflow: hidden;
    border-top: 1px solid rgba(194, 147, 65, 0.28);
    background: linear-gradient(90deg, #163834 0%, #1d4844 38%, #7a6230 72%, #c29341 100%);
}

.kridha-motif-band {
    position: relative;
    width: 100%;
    padding: clamp(1.4rem, 3.5vw, 2.2rem) 4vw;
}

.kridha-motif-wave {
    position: absolute;
    left: 4vw;
    right: 4vw;
    top: 50%;
    width: calc(100% - 8vw);
    height: 3.2rem;
    transform: translateY(-50%);
    pointer-events: none;
}

.kridha-motif-row {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: clamp(0.6rem, 2vw, 1.4rem);
    align-items: center;
    justify-items: center;
    max-width: 56rem;
    margin: 0 auto;
}

.kridha-motif-orb {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 5.5rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background: #f3efe6;
    box-shadow:
        0 0 0 2px rgba(194, 147, 65, 0.35),
        0 8px 18px rgba(8, 24, 22, 0.22);
}

.kridha-motif-orb svg {
    width: 58%;
    height: 58%;
}

.shop-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem 1.4rem;
    padding: 1.15rem 5vw 1.4rem;
    border-top: 1px solid rgba(251, 250, 248, 0.1);
    font-size: 0.78rem;
    color: rgba(251, 250, 248, 0.58);
}

.shop-footer-bottom p {
    margin: 0;
}

.shop-footer-legal {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.shop-footer-legal a {
    color: rgba(251, 250, 248, 0.7);
    text-decoration: none;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.68rem;
}

.shop-footer-legal a:hover {
    color: var(--gold-soft);
}

.shop-footer-pay {
    letter-spacing: 0.06em;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 1100px) {
    .shop-footer-top {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shop-footer-brand-col {
        grid-column: 1 / -1;
        max-width: none;
    }
}

@media (max-width: 640px) {
    .shop-footer-top {
        grid-template-columns: 1fr;
        padding: 2.6rem 5vw 1.8rem;
        gap: 1.8rem;
    }

    .shop-footer-bottom {
        flex-direction: column;
        align-items: flex-start;
    }

    .kridha-motif-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.85rem 0.7rem;
    }

    .kridha-motif-orb {
        width: min(100%, 4.6rem);
    }

    .shop-footer-form {
        flex-direction: column;
    }
}

.shop-page {
    padding: 2.2rem 5vw 4.5rem;
}

.shop-kicker {
    color: var(--gold-deep);
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-size: 0.72rem;
}

.shop-page h1,
.shop-page h2,
.product-name,
.price {
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-weight: 400;
}

.shop-page h1 {
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    line-height: 1.08;
    margin: 0.5rem 0 0.7rem;
    color: var(--ink);
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    animation: none;
}

@keyframes title-shine {
    0%, 100% { background-position: 0% center; }
    50% { background-position: 100% center; }
}

.shop-lead {
    color: var(--muted);
    max-width: 38rem;
    line-height: 1.7;
    margin-bottom: 1.8rem;
}

.shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.chip,
.sort-select {
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
    padding: 0.45rem 0.85rem;
    font-size: 0.74rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.chip.active,
.chip:hover {
    border-color: var(--gold);
    background: rgba(194, 147, 65, 0.12);
    box-shadow: none;
    transform: none;
}

.sort-select {
    min-height: 2.4rem;
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.1rem;
}

.product-card {
    display: flex;
    flex-direction: column;
    background: var(--panel-solid);
    text-decoration: none;
    color: inherit;
    min-height: 100%;
    overflow: hidden;
    border: 1px solid var(--line);
    box-shadow: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.product-grid > [data-reveal]:nth-child(1) { --reveal-delay: 0s; }
.product-grid > [data-reveal]:nth-child(2) { --reveal-delay: 0.06s; }
.product-grid > [data-reveal]:nth-child(3) { --reveal-delay: 0.12s; }
.product-grid > [data-reveal]:nth-child(4) { --reveal-delay: 0.18s; }
.product-grid > [data-reveal]:nth-child(5) { --reveal-delay: 0.24s; }
.product-grid > [data-reveal]:nth-child(6) { --reveal-delay: 0.3s; }
.product-grid > [data-reveal]:nth-child(7) { --reveal-delay: 0.36s; }
.product-grid > [data-reveal]:nth-child(8) { --reveal-delay: 0.42s; }

/* Scroll-triggered reveals */
[data-reveal] {
    --reveal-delay: 0s;
    opacity: 0;
    transform: translate3d(0, 32px, 0);
    transition:
        opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay),
        box-shadow 0.35s ease,
        border-color 0.35s ease;
    will-change: opacity, transform;
}

[data-reveal="left"] {
    transform: translate3d(-36px, 0, 0);
}

[data-reveal="right"] {
    transform: translate3d(36px, 0, 0);
}

[data-reveal="scale"] {
    transform: translate3d(0, 18px, 0) scale(0.96);
}

[data-reveal="fade"] {
    transform: none;
}

[data-reveal].is-inview {
    opacity: 1;
    transform: none;
}

[data-reveal="stagger"] > * {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
    transition:
        opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal="stagger"].is-inview > * {
    opacity: 1;
    transform: none;
}

[data-reveal="stagger"].is-inview > *:nth-child(1) { transition-delay: 0.04s; }
[data-reveal="stagger"].is-inview > *:nth-child(2) { transition-delay: 0.1s; }
[data-reveal="stagger"].is-inview > *:nth-child(3) { transition-delay: 0.16s; }
[data-reveal="stagger"].is-inview > *:nth-child(4) { transition-delay: 0.22s; }
[data-reveal="stagger"].is-inview > *:nth-child(5) { transition-delay: 0.28s; }
[data-reveal="stagger"].is-inview > *:nth-child(6) { transition-delay: 0.34s; }
[data-reveal="stagger"].is-inview > *:nth-child(7) { transition-delay: 0.4s; }
[data-reveal="stagger"].is-inview > *:nth-child(8) { transition-delay: 0.46s; }

.product-card:hover,
.product-card.is-inview:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
    border-color: rgba(194, 147, 65, 0.45);
}

.product-card-media {
    position: relative;
    display: block;
    overflow: hidden;
}

.product-card img,
.product-hero img,
.cart-line img,
.related-card img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    display: block;
}

.product-card img {
    transition: transform 0.7s ease;
}

.product-card:hover img {
    transform: scale(1.06);
}

.product-sale-badge {
    position: relative;
    top: auto;
    left: auto;
    z-index: 2;
    padding: 0.28rem 0.55rem;
    border-radius: 0.25rem;
    background: var(--ink);
    color: #fbfaf8;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.product-card-meta {
    padding: 1rem 1rem 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
}

.product-card-meta .weave {
    color: var(--gold-deep);
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.product-card-meta h3 {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.35rem;
    margin: 0;
}

.product-card-rating {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.3rem 0.4rem;
    margin: 0.1rem 0 0.15rem;
    font-size: 0.78rem;
    line-height: 1.2;
    color: var(--ink-soft);
}

.product-card-rating.muted { color: rgba(25, 63, 60, 0.45); }

.product-card-stars {
    color: var(--gold-deep);
    letter-spacing: 0.04em;
    font-size: 0.88rem;
}

.product-card-rating.muted .product-card-stars { color: rgba(25, 63, 60, 0.28); }
.product-card-rating-score { font-weight: 600; color: var(--ink); }
.product-card-rating-count { color: var(--muted); }

.product-card-meta p {
    color: var(--muted);
    font-size: 0.88rem;
    line-height: 1.5;
    margin: 0.2rem 0 0.5rem;
}

.price-row {
    display: flex;
    align-items: baseline;
    gap: 0.55rem;
    margin-top: auto;
}

.price {
    font-size: 1.2rem;
    color: var(--gold-deep);
}

.compare {
    color: rgba(42, 33, 29, 0.35);
    text-decoration: line-through;
    font-size: 0.88rem;
}

.card-actions {
    padding: 0 1rem 1rem;
}

.btn-gold,
.btn-ghost,
.btn-text {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.85rem 1.35rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 0.74rem;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid transparent;
    cursor: pointer;
    background: transparent;
    position: relative;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

/* Primary — deep green fill, ivory text (beats .shop-shell a { color: inherit }) */
.shop-shell a.btn-gold,
.shop-shell button.btn-gold,
.btn-gold {
    background: var(--ink);
    color: #fbfaf8 !important;
    gap: 0.55rem;
    border-color: var(--ink);
    box-shadow: 0 10px 24px rgba(25, 63, 60, 0.18);
}

.btn-gold::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 20%, rgba(255, 255, 255, 0.18) 50%, transparent 80%);
    transform: translateX(-120%);
    transition: transform 0.6s ease;
    pointer-events: none;
}

.btn-gold:hover::before {
    transform: translateX(120%);
}

.btn-gold:hover,
.btn-ghost:hover {
    transform: translateY(-1px);
}

.shop-shell a.btn-gold:hover,
.shop-shell button.btn-gold:hover,
.btn-gold:hover {
    background: #245550;
    border-color: #245550;
    color: #ffffff !important;
    box-shadow: 0 14px 28px rgba(25, 63, 60, 0.22);
}

/* Secondary — outlined green, dark text; inverts on hover */
.shop-shell a.btn-ghost,
.shop-shell button.btn-ghost,
.btn-ghost {
    background: #ffffff;
    color: var(--ink) !important;
    border-color: rgba(25, 63, 60, 0.45);
    box-shadow: none;
}

.shop-shell a.btn-ghost:hover,
.shop-shell button.btn-ghost:hover,
.btn-ghost:hover {
    background: var(--ink);
    border-color: var(--ink);
    color: #fbfaf8 !important;
}

.btn-gold.is-loading,
.btn-ghost.is-loading {
    opacity: 0.85;
    cursor: wait;
}

.btn-spinner {
    width: 0.95rem;
    height: 0.95rem;
    border: 1.5px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spin 0.7s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.toast-stack {
    position: fixed;
    top: 5.5rem;
    right: 1.1rem;
    z-index: 80;
    display: grid;
    gap: 0.7rem;
    width: min(22rem, calc(100vw - 1.6rem));
    pointer-events: none;
}

.toast-card {
    pointer-events: auto;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.85rem;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: var(--shadow);
    animation: toast-in 0.35s ease;
}

.toast-card img {
    width: 3.2rem;
    height: 4rem;
    object-fit: cover;
    display: block;
}

.toast-copy strong {
    display: block;
    font-family: "Cormorant Garamond", serif;
    font-size: 1.15rem;
    margin-bottom: 0.15rem;
}

.toast-copy p {
    margin: 0;
    color: var(--muted);
    font-size: 0.88rem;
    line-height: 1.4;
}

.toast-copy a {
    display: inline-block;
    margin-top: 0.45rem;
    color: var(--gold-deep);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
}

.toast-close {
    border: 0;
    background: transparent;
    color: var(--muted);
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.2rem;
}

@keyframes toast-in {
    from { opacity: 0; transform: translateX(1.2rem); }
    to { opacity: 1; transform: translateX(0); }
}

.shop-browse {
    display: grid;
    grid-template-columns: minmax(15rem, 17.5rem) minmax(0, 1fr);
    gap: 1.8rem;
    align-items: start;
}

.filter-panel {
    position: sticky;
    top: 5.5rem;
    border: 1px solid var(--line);
    background: #fff;
    backdrop-filter: none;
    padding: 1.2rem 1.1rem 1.4rem;
    max-height: calc(100vh - 6.5rem);
    overflow: auto;
    box-shadow: none;
}

.filter-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.8rem;
}

.filter-panel-head h2 {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.55rem;
    margin: 0;
}

.filter-close {
    display: none;
}

.filter-group {
    padding: 0.85rem 0;
    border-top: 1px solid var(--line);
}

.filter-group h3 {
    font-size: 0.72rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--gold-deep);
    margin: 0 0 0.65rem;
}

.check-row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0.45rem 0;
    cursor: pointer;
    color: var(--muted);
    font-size: 0.92rem;
}

.check-row input {
    accent-color: var(--gold);
}

.active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 1.1rem;
}

.active-filters .chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.active-filters .chip button {
    border: 0;
    background: transparent;
    color: var(--gold-deep);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    padding: 0;
}

.filter-open {
    display: none;
}

.filter-backdrop {
    display: none;
}

.result-count {
    margin: 0;
    color: var(--muted);
    font-size: 0.9rem;
}

.mobile-search-panel {
    display: none;
}

.desktop-search {
    display: flex;
}

.btn-gold:disabled,
.btn-ghost:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.btn-block {
    width: 100%;
}

.btn-text {
    border: 0;
    padding: 0.4rem 0;
    color: var(--gold-deep);
}

.empty-state,
.notice {
    border: 1px solid var(--line);
    padding: 2rem;
    background: rgba(255, 255, 255, 0.8);
    box-shadow: var(--shadow-soft);
}

.empty-state h2 {
    margin-top: 0.4rem;
}

.product-detail {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 3rem;
    align-items: start;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.product-media {
    display: grid;
    gap: 0.75rem;
    align-content: start;
}

.product-thumbs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(4.2rem, 1fr));
    gap: 0.5rem;
}

.product-thumb {
    padding: 0;
    border: 1px solid rgba(25, 63, 60, 0.14);
    border-radius: 0.4rem;
    overflow: hidden;
    background: #fff;
    cursor: pointer;
    aspect-ratio: 4 / 5;
}

.product-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.product-thumb.active {
    border-color: var(--gold);
    box-shadow: 0 0 0 2px rgba(194, 147, 65, 0.28);
}

.product-hero {
    position: relative;
    background: var(--panel-solid);
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid rgba(184, 137, 61, 0.16);
}

.product-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    padding: 0;
    border: 1px solid rgba(251, 250, 248, 0.35);
    border-radius: 50%;
    background: rgba(16, 42, 40, 0.55);
    color: #fbfaf8;
    cursor: pointer;
    backdrop-filter: blur(4px);
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.product-nav-btn:hover {
    background: rgba(16, 42, 40, 0.78);
    border-color: rgba(251, 250, 248, 0.55);
}

.product-nav-prev {
    left: 0.75rem;
}

.product-nav-next {
    right: 0.75rem;
}

.product-image-count {
    position: absolute;
    right: 0.75rem;
    bottom: 0.75rem;
    z-index: 3;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    background: rgba(16, 42, 40, 0.62);
    color: #fbfaf8;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
}

.product-hero img {
    aspect-ratio: 4 / 5;
    transition: transform 8s ease;
}

.product-hero:hover img {
    transform: scale(1.04);
}

.product-info .weave {
    color: var(--gold-deep);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-size: 0.72rem;
}

.product-name {
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    line-height: 1.05;
    margin: 0.55rem 0 0.8rem;
    color: var(--ink);
}

.product-blurb,
.product-story,
.spec-list,
.muted {
    color: var(--muted);
    line-height: 1.75;
}

.spec-list {
    list-style: none;
    padding: 0;
    margin: 1.4rem 0;
}

.spec-list li {
    display: grid;
    grid-template-columns: 7.5rem 1fr;
    gap: 0.6rem;
    padding: 0.65rem 0;
    border-top: 1px solid var(--line);
    font-size: 0.95rem;
}

.spec-list strong {
    color: var(--ink);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.72rem;
    padding-top: 0.2rem;
}

.buy-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    align-items: center;
    margin: 1.4rem 0 0.8rem;
}

.qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line);
    background: #fff;
}

.qty button {
    width: 2.6rem;
    height: 2.8rem;
    border: 0;
    background: transparent;
    color: var(--ink);
    cursor: pointer;
}

.qty span {
    min-width: 2rem;
    text-align: center;
}

.added {
    color: var(--gold-deep);
    font-family: "Cormorant Garamond", serif;
    font-style: italic;
    font-size: 1.15rem;
    margin: 0.4rem 0 0;
}

.related {
    margin-top: 4rem;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.2rem;
}

.cart-layout,
.checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.7fr);
    gap: 2rem;
    align-items: start;
}

.cart-line {
    display: grid;
    grid-template-columns: 7.2rem minmax(0, 1fr) auto;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--line);
}

.cart-line img {
    aspect-ratio: 3 / 4;
    background: var(--panel-solid);
}

.cart-line h3 {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.45rem;
    margin: 0 0 0.25rem;
}

.cart-line a {
    text-decoration: none;
}

.summary {
    border: 1px solid var(--line);
    background:
        radial-gradient(circle at top right, rgba(243, 228, 231, 0.9), transparent 46%),
        rgba(255, 255, 255, 0.9);
    padding: 1.5rem;
    position: sticky;
    top: 6.5rem;
    box-shadow: var(--shadow-soft);
}

.summary h2 {
    font-size: 1.8rem;
    margin: 0 0 1rem;
}

.summary-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 0;
    color: var(--muted);
}

.promo-box {
    margin: 0 0 1rem;
    padding: 0.85rem 0.9rem;
    background: rgba(25, 63, 60, 0.04);
    border: 1px solid rgba(25, 63, 60, 0.1);
}
.promo-box.compact { margin-top: 0.75rem; }
.promo-label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ink-soft);
}
.promo-row {
    display: flex;
    gap: 0.5rem;
}
.promo-input {
    flex: 1;
    min-width: 0;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(25, 63, 60, 0.18);
    background: #fff;
    font: 0.9rem var(--font-body);
    text-transform: uppercase;
}
.promo-apply {
    flex-shrink: 0;
    padding-inline: 0.9rem;
}
.promo-applied {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.promo-applied strong {
    display: block;
    letter-spacing: 0.04em;
}
.promo-applied small {
    display: block;
    color: var(--ink-soft);
    font-size: 0.8rem;
}
.promo-error {
    margin: 0.45rem 0 0;
    color: #9a3b32;
    font-size: 0.82rem;
}
.promo-ok {
    margin: 0.45rem 0 0;
    color: #2f6b4f;
    font-size: 0.82rem;
}
.summary-row.discount span:last-child {
    color: #2f6b4f;
    font-weight: 600;
}

.summary-row.total {
    border-top: 1px solid var(--line);
    margin-top: 0.6rem;
    padding-top: 0.9rem;
    color: var(--ink);
    font-size: 1.15rem;
}

.checkout-form {
    display: grid;
    gap: 0.9rem;
}

.field {
    display: grid;
    gap: 0.35rem;
}

.field.two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.9rem;
}

.field label {
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--gold-deep);
}

.field input,
.field select,
.field textarea,
.field .form-control-like {
    width: 100%;
    min-height: 2.9rem;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--line);
    color: var(--ink);
    padding: 0.6rem 0.85rem;
    font: inherit;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.field input:disabled,
.field .form-control-like:disabled {
    background: rgba(25, 63, 60, 0.06);
    color: var(--ink-soft);
    cursor: not-allowed;
}

.field .form-control-like.invalid {
    border-color: #9a3b32;
}

.field-hint {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.78rem;
    color: var(--muted);
    line-height: 1.35;
}

.field-hint.error { color: #9a3b32; }
.field-hint.ok { color: #2f6b4f; }

.field textarea {
    min-height: 5.5rem;
    resize: vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(184, 137, 61, 0.14);
}

.field select option {
    color: #2a211d;
}

.pay-options {
    display: grid;
    gap: 0.6rem;
    margin: 0.4rem 0 0.8rem;
}

.pay-option {
    display: flex;
    gap: 0.8rem;
    align-items: flex-start;
    border: 1px solid var(--line);
    padding: 0.9rem 1rem;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.75);
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.pay-option input {
    margin-top: 0.3rem;
    accent-color: #b8893d;
}

.pay-option.active {
    border-color: var(--gold);
    box-shadow: var(--shadow-soft);
    transform: translateY(-1px);
}

.pay-option p {
    margin: 0.2rem 0 0;
    color: var(--muted);
    font-size: 0.9rem;
}

.confirm-hero {
    border: 1px solid var(--line);
    padding: clamp(1.6rem, 4vw, 2.8rem);
    background:
        radial-gradient(circle at top right, rgba(243, 228, 231, 0.95), transparent 42%),
        rgba(255, 255, 255, 0.92);
    margin-bottom: 2rem;
    box-shadow: var(--shadow-soft);
}

.confirm-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 2rem;
}

.steps {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin: 0 0 1.4rem;
    color: var(--muted);
    font-size: 0.74rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.steps .on {
    color: var(--gold-deep);
}

.validation-message {
    color: #b54b4b;
    font-size: 0.82rem;
}

.mobile-search-toggle {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .shop-shell::before,
    .shop-shell::after,
    .shop-main,
    .product-card,
    .shop-page h1,
    .loader-feather,
    .loader-ring,
    .btn-gold::before {
        animation: none !important;
    }

    .product-card:hover,
    .product-card:hover img {
        transform: none;
    }

    [data-reveal],
    [data-reveal="stagger"] > * {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

@media (max-width: 1100px) {
    .product-grid,
    .related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shop-browse {
        grid-template-columns: 1fr;
    }

    .filter-open {
        display: inline-flex;
    }

    /* Keep the drawer transform above any scroll-reveal transform rules. */
    .filter-panel,
    .filter-panel[data-reveal],
    .filter-panel.is-inview,
    .filter-panel[data-reveal].is-inview {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(20rem, 88vw);
        max-height: none;
        z-index: 70;
        opacity: 1;
        transform: translateX(-105%);
        transition: transform 0.28s ease;
        border-right: 1px solid var(--line);
        border-left: 0;
        border-top: 0;
        border-bottom: 0;
        background: var(--panel-solid);
        will-change: transform;
    }

    .filter-panel.open,
    .filter-panel.open[data-reveal],
    .filter-panel.open.is-inview,
    .filter-panel.open[data-reveal].is-inview {
        transform: translateX(0);
    }

    .filter-close {
        display: inline-flex;
    }

    .filter-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 65;
        border: 0;
        background: rgba(42, 33, 29, 0.35);
        cursor: pointer;
    }
}

@media (max-width: 1100px) {
    .shop-nav {
        gap: 1rem;
    }

    .shop-search {
        width: min(13rem, 24vw);
    }
}

@media (max-width: 960px) {
    .shop-header-utility {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 0.35rem 0.5rem;
        padding: 0.45rem 3vw;
        min-height: 3.55rem;
    }

    .shop-utility-left,
    .shop-tools {
        position: relative;
        z-index: 2;
        gap: 0.35rem;
    }

    .shop-menu-toggle {
        display: inline-flex;
        flex-shrink: 0;
        position: relative;
        z-index: 3;
    }

    .shop-header .shop-brand {
        justify-self: center;
        width: 100%;
        display: flex;
        justify-content: center;
        pointer-events: auto;
    }

    .shop-header .brand-mark,
    .shop-header .brand-mark-compact,
    .shop-header .brand-lockup {
        height: 2.35rem;
        max-width: min(9.25rem, 36vw);
    }

    .shop-nav,
    .shop-brand-line,
    .shop-category-nav,
    .desktop-search,
    .shop-header-utility .desktop-search {
        display: none !important;
    }

    .mobile-search-toggle {
        display: inline-flex;
        width: 2.4rem;
        height: 2.4rem;
        padding: 0;
        border: 1px solid rgba(25, 63, 60, 0.2);
        border-radius: 0.4rem;
        background: #fff;
        color: var(--ink);
    }

    .mobile-search-toggle.active {
        border-color: var(--gold);
        color: var(--ink);
    }

    .shop-header.menu-open .shop-menu-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 130;
        border: 0;
        background: rgba(8, 22, 21, 0.5);
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }

    .shop-header.menu-open .shop-mobile-nav {
        display: flex;
        flex-direction: column;
        gap: 0.1rem;
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(20.5rem, 88vw);
        max-height: none;
        z-index: 140;
        padding: calc(0.85rem + env(safe-area-inset-top, 0px)) 0.85rem calc(1.2rem + env(safe-area-inset-bottom, 0px));
        background: #102a28;
        border: 0;
        border-right: 1px solid rgba(251, 250, 248, 0.12);
        border-radius: 0;
        box-shadow: 16px 0 48px rgba(0, 0, 0, 0.35);
        overflow: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        animation: shop-drawer-in 0.22s ease both;
    }

    @keyframes shop-drawer-in {
        from { transform: translateX(-100%); opacity: 0.7; }
        to { transform: translateX(0); opacity: 1; }
    }

    .shop-mobile-nav-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        padding: 0.35rem 0.55rem 0.85rem;
        margin-bottom: 0.35rem;
        border-bottom: 1px solid rgba(251, 250, 248, 0.12);
    }

    .shop-mobile-nav-head strong {
        font-family: var(--font-display), serif;
        font-weight: 400;
        font-size: 1.35rem;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: #fbfaf8;
    }

    .shop-mobile-nav-close {
        width: 2.2rem;
        height: 2.2rem;
        border: 1px solid rgba(251, 250, 248, 0.22);
        border-radius: 50%;
        background: rgba(251, 250, 248, 0.06);
        color: #fbfaf8;
        font-size: 1.35rem;
        line-height: 1;
        cursor: pointer;
    }

    .shop-mobile-nav a {
        display: block;
        padding: 0.8rem 0.85rem;
        border-radius: 0.4rem;
        color: rgba(251, 250, 248, 0.92);
        text-decoration: none;
        font-size: 0.92rem;
        letter-spacing: 0.02em;
        text-transform: none;
    }

    .shop-mobile-nav a.active,
    .shop-mobile-nav a:hover {
        background: rgba(251, 250, 248, 0.08);
        color: #fff;
    }

    .shop-mobile-nav-divider {
        height: 1px;
        margin: 0.45rem 0.4rem;
        background: rgba(251, 250, 248, 0.12);
    }

    .shop-shell:has(.shop-header.menu-open) {
        overflow: hidden;
        touch-action: none;
    }

    .shop-shell:has(.shop-header.menu-open) .shop-chat,
    .shop-shell:has(.shop-header.menu-open) .toast-stack {
        z-index: 20;
        pointer-events: none;
    }

    .mobile-search-panel {
        display: flex;
        width: auto;
        min-width: 0;
        margin: 0 3vw 0.75rem;
        gap: 0.55rem;
        border: 1px solid var(--line);
        background: #fff;
        padding: 0.35rem;
        border-radius: 0.55rem;
        position: relative;
        z-index: 2;
    }

    .mobile-search-panel input {
        flex: 1;
        min-width: 0;
        background: transparent;
        border: 0;
        color: var(--ink);
        padding: 0.7rem 0.75rem;
        font-size: 1rem;
    }

    .mobile-search-panel input:focus {
        outline: none;
    }

    .mobile-search-panel .search-go {
        flex: 0 0 auto;
        padding: 0.7rem 1rem;
        white-space: nowrap;
    }

    .toast-stack {
        top: auto;
        bottom: 1rem;
        right: 0.8rem;
        left: 0.8rem;
        width: auto;
    }

    .product-detail,
    .product-detail.pdp-layout,
    .pdp-layout,
    .cart-layout,
    .checkout-layout,
    .confirm-grid,
    .field.two {
        grid-template-columns: 1fr !important;
    }

    .pdp-gallery,
    .pdp-gallery:has(.pdp-thumbs) {
        grid-template-columns: 1fr !important;
    }

    .cart-line {
        grid-template-columns: 5.2rem minmax(0, 1fr);
    }

    .cart-line .line-total {
        grid-column: 1 / -1;
        justify-self: end;
    }

    .summary {
        position: static;
    }

    .shop-toolbar {
        gap: 0.55rem;
    }

    .result-count {
        order: 3;
        width: 100%;
    }

    .offers-grid {
        grid-template-columns: 1fr;
    }

    .spec-list li {
        grid-template-columns: 1fr;
        gap: 0.2rem;
    }

    .collection-page .collection-hero {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    /* Prevent mobile horizontal “cut off” on the right */
    .shop-main,
    .shop-page,
    .pdp-page,
    .product-detail,
    .pdp-layout {
        max-width: 100%;
        min-width: 0;
        overflow-x: clip;
    }

    .shop-header .shop-inner,
    .shop-header-bar,
    .shop-header-utility {
        max-width: 100%;
        min-width: 0;
    }

    .shop-tools {
        flex-shrink: 0;
    }
}

@media (max-width: 560px) {
    .product-grid,
    .related-grid {
        grid-template-columns: 1fr;
    }

    .shop-header .shop-brand-line {
        display: none;
    }

    .shop-header .brand-mark,
    .shop-header .brand-mark-compact,
    .shop-header .brand-lockup {
        height: 2.15rem;
        max-width: min(8.25rem, 34vw);
    }

    .shop-promo-bar {
        font-size: 0.7rem;
        gap: 0.45rem 0.75rem;
        padding: 0.45rem 3vw;
    }

    .shop-page {
        padding: 1.35rem 4vw 3.5rem;
    }

    .shop-chat-panel {
        width: min(100vw - 0.8rem, 24rem);
        right: 0;
    }
}

/* ---------- Account / addresses / tracking ---------- */
.account-page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.6rem;
}

.account-page-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.link-quiet {
    background: none;
    border: 0;
    padding: 0;
    color: var(--gold-deep);
    font: inherit;
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    text-decoration: underline;
    text-underline-offset: 0.18em;
    cursor: pointer;
}

.link-quiet.danger {
    color: #9a4a3a;
}

.check-row {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0.4rem 0 0.8rem;
    font-size: 0.92rem;
    cursor: pointer;
}

.address-picker {
    margin-bottom: 1.4rem;
}

.address-picker-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.7rem;
}

.address-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: 0.75rem;
}

.address-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    text-align: left;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(25, 63, 60, 0.14);
    background: #fff;
    color: inherit;
    font: inherit;
    border-radius: 0.55rem;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.address-card.static {
    cursor: default;
}

.address-card:hover,
.address-card.active {
    border-color: rgba(194, 147, 65, 0.65);
    box-shadow: 0 8px 22px rgba(18, 47, 45, 0.08);
}

.address-card-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--gold-deep);
    margin-bottom: 0.25rem;
}

.address-card-label em {
    font-style: normal;
    padding: 0.1rem 0.35rem;
    border: 1px solid rgba(194, 147, 65, 0.4);
    border-radius: 999px;
    color: rgba(25, 63, 60, 0.7);
}

.address-card-new {
    justify-content: center;
    min-height: 7rem;
    border-style: dashed;
    background: rgba(25, 63, 60, 0.02);
}

.address-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.65rem;
}

.order-list {
    display: grid;
    gap: 0.75rem;
}

.order-list-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.2rem;
    background: #fff;
    border: 1px solid rgba(25, 63, 60, 0.12);
    border-radius: 0.55rem;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s ease, transform 0.2s ease;
}

.order-list-card-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.55rem;
    align-items: stretch;
}

.order-list-card-wrap .order-list-card {
    min-width: 0;
}

.order-list-actions {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    align-self: center;
}

.order-support-btn {
    align-self: stretch;
    white-space: nowrap;
    min-height: 2.6rem;
    text-align: center;
    text-decoration: none;
}

.order-list-card-btn {
    width: 100%;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.order-list-card:hover {
    border-color: rgba(194, 147, 65, 0.55);
    transform: translateY(-1px);
}

@media (max-width: 560px) {
    .order-list-card-wrap {
        grid-template-columns: 1fr;
    }

    .order-support-btn {
        width: 100%;
    }
}

.order-list-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.25rem;
}

.order-cancel-open {
    border-color: rgba(155, 59, 46, 0.35) !important;
    color: #9b3b2e !important;
}

.order-cancel-backdrop {
    position: fixed;
    inset: 0;
    z-index: 160;
    background: rgba(8, 22, 21, 0.45);
}

.order-cancel-modal {
    position: fixed;
    z-index: 170;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(26rem, calc(100vw - 1.5rem));
    padding: 1.25rem 1.3rem 1.15rem;
    background: #fff;
    border: 1px solid rgba(25, 63, 60, 0.12);
    border-radius: 0.75rem;
    box-shadow: 0 22px 50px rgba(18, 47, 45, 0.22);
    display: grid;
    gap: 0.85rem;
}

.order-cancel-modal header h2 {
    margin: 0 0 0.35rem;
    font-family: var(--font-display), serif;
    font-weight: 400;
    font-size: 1.55rem;
}

.order-cancel-modal header p { margin: 0; }

.order-cancel-label {
    display: grid;
    gap: 0.4rem;
    font-size: 0.82rem;
    color: var(--muted);
}

.order-cancel-label textarea {
    width: 100%;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(25, 63, 60, 0.18);
    border-radius: 0.55rem;
    font: inherit;
    color: var(--ink);
    resize: vertical;
    min-height: 6rem;
}

.order-cancel-label textarea:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(194, 147, 65, 0.18);
}

.order-cancel-modal footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.55rem;
}

.order-cancel-confirm {
    background: linear-gradient(145deg, #9b3b2e, #7a2e24) !important;
}

.track-hero {
    margin-bottom: 1.6rem;
}

.track-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.8fr);
    gap: 1.5rem;
    align-items: start;
}

.track-timeline {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 1.2rem 1.3rem;
    background: #fff;
    border: 1px solid rgba(25, 63, 60, 0.12);
    border-radius: 0.55rem;
}

.track-step {
    display: grid;
    grid-template-columns: 1.1rem 1fr;
    gap: 0.85rem;
    padding: 0.85rem 0;
    position: relative;
}

.track-step:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 0.45rem;
    top: 1.7rem;
    bottom: 0;
    width: 1px;
    background: rgba(25, 63, 60, 0.15);
}

.track-step.done:not(:last-child)::before {
    background: rgba(194, 147, 65, 0.55);
}

.track-dot {
    width: 0.95rem;
    height: 0.95rem;
    border-radius: 50%;
    border: 2px solid rgba(25, 63, 60, 0.25);
    background: #fff;
    margin-top: 0.15rem;
}

.track-step.done .track-dot,
.track-step.current .track-dot {
    border-color: var(--gold-deep);
    background: var(--gold-soft);
}

.track-step strong {
    display: block;
    margin-bottom: 0.15rem;
}

@media (max-width: 860px) {
    .track-layout {
        grid-template-columns: 1fr;
    }
}

/* Product detail extras */
.stock-hurry {
    margin: 0.35rem 0 0.7rem;
    color: #9a4a3a;
    font-size: 0.92rem;
    font-weight: 600;
}

.stock-hurry.sold {
    color: rgba(25, 63, 60, 0.55);
}

.price-block {
    margin: 0.6rem 0 0.9rem;
}

.price-block .price-row {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
}

.price-label {
    min-width: 6.5rem;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(25, 63, 60, 0.55);
}

.tax-note {
    margin: 0.25rem 0 0;
    font-size: 0.82rem;
    color: rgba(25, 63, 60, 0.55);
}

.size-chart {
    margin: 0 0 0.8rem;
    font-size: 0.9rem;
}

.sale-page .sale-hero {
    margin-bottom: 1.6rem;
}

/* Festive discount separators on /sale — torn-edge cards by % tier */
.sale-tier-stack {
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
}

.sale-tier .product-grid {
    margin-top: 1.25rem;
}

.sale-discount-banner {
    --sale-rust: #6b2e24;
    --sale-cream: #f3e8d4;
    position: relative;
    margin: 0;
    color: var(--sale-rust);
    background: var(--sale-cream);
    text-align: center;
    overflow: hidden;
}

.sale-discount-banner-edge {
    height: 18px;
    background: var(--sale-rust);
    /* jagged torn-paper silhouette */
    --tear: polygon(
        0 40%, 2% 70%, 4% 35%, 7% 80%, 10% 30%, 13% 75%, 16% 45%, 19% 85%,
        22% 25%, 25% 70%, 28% 40%, 31% 90%, 34% 35%, 37% 65%, 40% 30%, 43% 80%,
        46% 40%, 49% 70%, 52% 35%, 55% 85%, 58% 30%, 61% 75%, 64% 45%, 67% 80%,
        70% 25%, 73% 70%, 76% 40%, 79% 90%, 82% 35%, 85% 65%, 88% 30%, 91% 80%,
        94% 40%, 97% 70%, 100% 45%, 100% 100%, 0 100%
    );
}

.sale-discount-banner-edge.top {
    clip-path: var(--tear);
}

.sale-discount-banner-edge.bottom {
    clip-path: var(--tear);
    transform: scaleY(-1);
}

.sale-discount-banner-inner {
    padding: 1.6rem 1.25rem 1.75rem;
    background:
        radial-gradient(ellipse at 20% 30%, rgba(107, 46, 36, 0.04), transparent 50%),
        radial-gradient(ellipse at 80% 70%, rgba(107, 46, 36, 0.05), transparent 45%),
        var(--sale-cream);
}

.sale-discount-kicker {
    margin: 0 0 0.35rem;
    font-family: var(--font-body, "Segoe UI", sans-serif);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.sale-discount-upto {
    margin: 0;
    font-family: var(--font-body, "Segoe UI", sans-serif);
    font-size: clamp(1.15rem, 3.2vw, 1.65rem);
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.1;
}

.sale-discount-hero-line {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.45rem;
    margin: 0.2rem 0 0.35rem;
    line-height: 0.95;
}

.sale-discount-num {
    font-family: var(--font-body, "Segoe UI", sans-serif);
    font-size: clamp(3.4rem, 11vw, 5.2rem);
    font-weight: 800;
    letter-spacing: -0.03em;
}

.sale-discount-off {
    font-family: var(--font-body, "Segoe UI", sans-serif);
    font-size: clamp(1.35rem, 4vw, 1.85rem);
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sale-discount-count {
    margin: 0;
    font-size: 0.82rem;
    color: rgba(107, 46, 36, 0.75);
}

@media (max-width: 640px) {
    .sale-discount-banner-inner {
        padding: 1.25rem 1rem 1.4rem;
    }
}

.sale-policy-banner {
    margin: 0.9rem 0 1.1rem;
    padding: 0.75rem 1rem;
    max-width: 40rem;
    border-left: 3px solid var(--gold);
    background: rgba(194, 147, 65, 0.08);
    color: var(--ink-soft);
    font-size: 0.9rem;
    line-height: 1.5;
}

.sale-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.4rem;
}

.sale-toolbar-meta {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
}

.sale-checkout-bar {
    position: sticky;
    bottom: 1rem;
    z-index: 25;
    margin-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.95rem 1.2rem;
    background: var(--ink);
    color: #fbfaf8;
    border-radius: 0.55rem;
    box-shadow: 0 14px 36px rgba(16, 42, 40, 0.28);
}

.sale-checkout-bar strong {
    display: block;
    font-size: 0.95rem;
}

.sale-checkout-bar span {
    color: var(--gold-soft);
    font-size: 0.88rem;
}

.sale-checkout-bar .btn-ghost {
    color: #fbfaf8;
    border-color: rgba(251, 250, 248, 0.35);
}

.sale-checkout-bar .btn-ghost:hover {
    background: rgba(251, 250, 248, 0.1);
}

.sale-policy-note {
    margin: 0.9rem 0 0;
    padding: 0.75rem 0.9rem;
    background: rgba(154, 74, 58, 0.08);
    border-left: 3px solid rgba(154, 74, 58, 0.55);
    font-size: 0.88rem;
    color: #6e3428;
}

.trust-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
}

.trust-badges li {
    padding: 0.4rem 0.7rem;
    border: 1px solid rgba(25, 63, 60, 0.14);
    border-radius: 999px;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    color: rgba(25, 63, 60, 0.78);
    background: rgba(251, 250, 248, 0.65);
}

.product-panels {
    margin-top: 2.4rem;
}

.product-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    border-bottom: 1px solid rgba(25, 63, 60, 0.12);
    margin-bottom: 1.1rem;
}

.product-tabs button {
    border: 0;
    background: transparent;
    padding: 0.7rem 0.95rem;
    font: inherit;
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(25, 63, 60, 0.55);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}

.product-tabs button.active {
    color: var(--ink);
    border-bottom-color: var(--gold-deep);
}

.product-panel {
    background: #fff;
    border: 1px solid rgba(25, 63, 60, 0.1);
    border-radius: 0.55rem;
    padding: 1.3rem 1.4rem;
}

.product-panel h2 {
    margin: 0 0 0.9rem;
    font-size: 1.35rem;
}

.policy-body {
    line-height: 1.75;
    color: rgba(25, 63, 60, 0.88);
}

.note-block {
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    background: rgba(25, 63, 60, 0.04);
    border-radius: 0.4rem;
}

.faq-list {
    display: grid;
    gap: 0.55rem;
}

.faq-item {
    border: 1px solid rgba(25, 63, 60, 0.12);
    border-radius: 0.4rem;
    padding: 0.75rem 0.95rem;
    background: rgba(251, 250, 248, 0.5);
}

.faq-item summary {
    cursor: pointer;
    font-weight: 600;
}

.faq-item p {
    margin: 0.65rem 0 0;
    color: rgba(25, 63, 60, 0.8);
    line-height: 1.65;
}

.content-page {
    max-width: 52rem;
}

.content-prose p {
    line-height: 1.8;
    margin: 0 0 1rem;
}

/* —— Editorial storefront pages (About, Craft, Contact, policies) —— */
.editorial-page {
    width: 100%;
    max-width: none;
    position: relative;
}

.editorial-page::before {
    content: "";
    position: absolute;
    inset: -1rem 0 auto auto;
    width: min(32rem, 38vw);
    height: min(32rem, 38vw);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(194, 147, 65, 0.11), transparent 68%);
    pointer-events: none;
    z-index: 0;
}

.editorial-page > * {
    position: relative;
    z-index: 1;
}

/* Full-width: copy | media | side panel — fills the viewport */
.editorial-split {
    display: grid;
    grid-template-columns: minmax(16rem, 1.15fr) minmax(14rem, 1fr) minmax(13rem, 0.9fr);
    gap: clamp(1.25rem, 2.8vw, 2.75rem);
    align-items: stretch;
    width: 100%;
    margin-bottom: 0.75rem;
}

.editorial-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.editorial-copy .shop-lead {
    max-width: none;
}

.editorial-copy .content-prose {
    flex: 1;
}

.editorial-actions {
    margin-top: auto;
    padding-top: 1.5rem;
    margin-bottom: 0;
}

.editorial-media {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.editorial-panel {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    height: 100%;
}

.editorial-mosaic {
    display: grid;
    grid-template-columns: 1.35fr 1fr;
    gap: 0.55rem;
    flex: 1;
    min-height: 24rem;
    height: 100%;
}

.editorial-mosaic-main,
.editorial-mosaic-stack img,
.editorial-portrait {
    margin: 0;
    overflow: hidden;
    border-radius: 0.3rem;
    background: #163734;
}

.editorial-mosaic-main {
    min-height: 100%;
    height: 100%;
}

.editorial-mosaic-main img,
.editorial-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.editorial-mosaic-stack {
    margin: 0;
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 0.55rem;
    min-height: 100%;
    height: 100%;
}

.editorial-mosaic-stack img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    min-height: 0;
}

.editorial-portrait {
    flex: 1;
    min-height: 22rem;
    height: 100%;
    aspect-ratio: auto;
    max-height: none;
    position: relative;
}

.editorial-portrait-soft {
    min-height: 20rem;
}

.editorial-portrait figcaption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1.1rem 1rem 0.85rem;
    background: linear-gradient(transparent, rgba(10, 28, 26, 0.78));
    color: rgba(251, 246, 239, 0.92);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.editorial-quote {
    margin: 0;
    padding: 1.2rem 1.25rem 1.25rem;
    background: linear-gradient(160deg, #0f2825 0%, #1a403c 100%);
    color: #fbf6ef;
    border-radius: 0.3rem;
}

.editorial-quote p {
    margin: 0;
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    line-height: 1.25;
    letter-spacing: 0.02em;
}

.editorial-quote cite {
    display: block;
    margin-top: 0.65rem;
    font-style: normal;
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(212, 179, 106, 0.85);
}

.editorial-note {
    padding: 1.05rem 1.15rem 1.15rem;
    background: rgba(25, 63, 60, 0.04);
    border: 1px solid rgba(25, 63, 60, 0.1);
    border-radius: 0.3rem;
    flex: 1;
}

.editorial-note-kicker {
    margin: 0 0 0.55rem;
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--gold-deep);
    font-weight: 600;
}

.editorial-note-body {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--ink-soft);
}

.editorial-note-body a {
    color: var(--ink);
    text-underline-offset: 0.15em;
}

.editorial-stat {
    display: grid;
    gap: 0.15rem;
    padding: 0.95rem 1.1rem;
    border-top: 1px solid rgba(25, 63, 60, 0.1);
    border-bottom: 1px solid rgba(25, 63, 60, 0.1);
}

.editorial-stat strong {
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-size: 1.45rem;
    font-weight: 400;
    color: var(--ink);
    letter-spacing: 0.02em;
}

.editorial-stat span {
    font-size: 0.78rem;
    color: var(--muted);
    letter-spacing: 0.04em;
}

.editorial-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}

.editorial-links a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--ink);
    text-decoration: none;
    font-size: 0.9rem;
    border-bottom: 1px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.editorial-links a::before {
    content: "→";
    color: var(--gold-deep);
    font-size: 0.85rem;
}

.editorial-links a:hover {
    color: var(--gold-deep);
    border-bottom-color: rgba(194, 147, 65, 0.45);
}

.editorial-chips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.editorial-chips a {
    display: inline-block;
    padding: 0.4rem 0.75rem;
    border: 1px solid rgba(25, 63, 60, 0.14);
    background: #fff;
    color: var(--ink);
    text-decoration: none;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    border-radius: 999px;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.editorial-chips a:hover {
    border-color: rgba(194, 147, 65, 0.55);
    background: rgba(255, 255, 255, 0.95);
}

.editorial-band {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    margin-top: 2.75rem;
    width: 100%;
}

.editorial-band img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    border-radius: 0.3rem;
}

.about-page,
.craft-page,
.contact-page,
.info-page,
.gallery-page {
    max-width: none;
    width: 100%;
}

.craft-pillars-wrap {
    margin-top: 3rem;
    padding-top: 2.25rem;
    border-top: 1px solid rgba(25, 63, 60, 0.1);
}

.craft-pillars-wrap h2 {
    margin: 0.35rem 0 1.25rem;
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-weight: 400;
    font-size: clamp(1.55rem, 2.8vw, 2rem);
    color: var(--ink);
}

.gallery-page .gallery-grid {
    margin-top: 2.5rem;
}

.contact-page .contact-grid {
    width: 100%;
}

@media (max-width: 1100px) {
    .editorial-split {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.95fr);
    }

    .editorial-panel {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.85rem;
        align-items: stretch;
    }

    .editorial-panel > * {
        min-height: 100%;
    }
}

@media (max-width: 900px) {
    .editorial-split {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .editorial-panel {
        grid-template-columns: 1fr;
    }

    .editorial-mosaic,
    .editorial-mosaic-stack {
        min-height: 16rem;
    }

    .editorial-mosaic-main {
        min-height: 16rem;
    }

    .editorial-portrait {
        min-height: 16rem;
        aspect-ratio: 16 / 10;
    }

    .editorial-page::before {
        width: 14rem;
        height: 14rem;
    }
}

@media (max-width: 640px) {
    .editorial-band {
        grid-template-columns: 1fr;
    }

    .editorial-band img:nth-child(n + 2) {
        display: none;
    }

    .editorial-panel {
        grid-template-columns: 1fr;
    }
}

.about-features {
    width: 100%;
    margin-top: 3rem;
    padding-top: 2.25rem;
    border-top: 1px solid rgba(25, 63, 60, 0.1);
}

.about-features h2 {
    margin: 0.35rem 0 0.65rem;
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-weight: 400;
    font-size: clamp(1.65rem, 3vw, 2.15rem);
    letter-spacing: 0.02em;
    color: var(--ink);
}

.about-features-lead {
    margin: 0 0 1.75rem;
    max-width: 42rem;
}

.about-feature-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.35rem 1.75rem;
}

@media (max-width: 900px) {
    .about-feature-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.about-feature-grid li {
    padding: 0;
    border: 0;
    background: transparent;
}

.about-feature-mark {
    display: block;
    color: var(--gold-deep);
    font-size: 0.85rem;
    margin-bottom: 0.35rem;
    line-height: 1;
}

.about-feature-grid h3 {
    margin: 0 0 0.4rem;
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-weight: 400;
    font-size: 1.28rem;
    color: var(--ink);
    letter-spacing: 0.02em;
}

.about-feature-grid p {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.65;
    color: var(--ink-soft);
}

.about-feature-grid a {
    color: var(--ink);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

@media (max-width: 720px) {
    .about-feature-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: 0.9rem;
    margin-top: 1.6rem;
}

.gallery-tile {
    position: relative;
    display: block;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 0.45rem;
    text-decoration: none;
    color: #fff;
}

.gallery-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.gallery-tile:hover img {
    transform: scale(1.04);
}

.gallery-tile span {
    position: absolute;
    inset: auto 0 0;
    padding: 1.1rem 0.9rem 0.85rem;
    background: linear-gradient(transparent, rgba(10, 28, 26, 0.82));
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.gallery-tile em {
    font-style: normal;
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.8;
}

.profile-provider {
    margin: 0.2rem 0 0;
    font-size: 0.82rem;
}

.profile-password-card {
    max-width: 32rem;
    margin: 1.4rem 0;
    padding: 1.25rem 1.35rem;
    background: #fff;
    border: 1px solid rgba(25, 63, 60, 0.12);
    border-radius: 0.55rem;
}

.profile-password-card h2 {
    margin: 0;
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-size: 1.45rem;
    color: var(--ink);
}

.profile-password-card .account-form {
    margin-top: 0.4rem;
}

.profile-password-card .btn-gold {
    margin-top: 0.35rem;
}

.profile-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.2rem 1.3rem;
    background: #fff;
    border: 1px solid rgba(25, 63, 60, 0.12);
    border-radius: 0.55rem;
    margin-bottom: 1rem;
}

.profile-avatar {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, rgba(194, 147, 65, 0.95), rgba(25, 63, 60, 0.9));
    color: #fff;
    font-weight: 600;
}

.profile-links {
    display: grid;
    gap: 0.65rem;
}

.craft-pillars {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.craft-pillars li {
    display: grid;
    gap: 0.25rem;
    padding: 1.15rem 1.2rem;
    background: rgba(25, 63, 60, 0.04);
    border: 1px solid rgba(25, 63, 60, 0.1);
    border-radius: 0.35rem;
}

.craft-pillars strong {
    font-family: var(--font-display), "Baskervville", "Cormorant Garamond", serif;
    font-size: 1.15rem;
    color: var(--ink);
}

.craft-pillars span {
    color: var(--muted);
    line-height: 1.55;
    font-size: 0.95rem;
}

.craft-pillars a {
    color: var(--gold-deep);
}

.contact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.8rem;
}

.contact-card {
    padding: 1.2rem 1.25rem;
    background: #fff;
    border: 1px solid rgba(25, 63, 60, 0.12);
    border-radius: 0.5rem;
}

.contact-card h2 {
    margin: 0 0 0.65rem;
    font-size: 1.15rem;
}

.contact-card p {
    margin: 0 0 0.55rem;
    line-height: 1.6;
}

.contact-card a {
    color: var(--gold-deep);
}

.contact-card .muted {
    color: var(--muted);
    font-size: 0.88rem;
}

.policy-body {
    line-height: 1.75;
}

@media (max-width: 800px) {
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .craft-pillars {
        grid-template-columns: 1fr;
    }
}
/* ========== Collection-site layout (Bullion Knot–inspired structure) ========== */
.shop-header-utility .shop-brand { justify-self: center; }
.shop-header-utility .desktop-search {
  display: flex;
  width: min(18rem, 32vw);
  border: 1px solid rgba(25, 63, 60, 0.18);
  background: #fff;
  border-radius: 999px;
  overflow: hidden;
}
.shop-header-utility .shop-search input { color: var(--ink); }
.shop-header-utility .shop-search input::placeholder { color: rgba(25, 63, 60, 0.4); }
.shop-header-utility .shop-search button,
.shop-header-utility .shop-icon-btn,
.wishlist-header-btn {
    position: relative; color: var(--ink); min-height: 2.4rem; }
.shop-header-utility .shop-tools { justify-self: end; }
.shop-header a.shop-account-link,
.shop-header .shop-account-trigger,
.shop-header .shop-cart-link,
.shop-header .shop-menu-toggle,
.shop-header .mobile-search-toggle {
  color: var(--ink);
  border-color: rgba(25, 63, 60, 0.2);
  background: #fff;
}
.shop-header .shop-cart-link { border-radius: 50%; width: 2.4rem; height: 2.4rem; }
.shop-header .shop-account-trigger {
  background: linear-gradient(145deg, rgba(194, 147, 65, 0.95), rgba(25, 63, 60, 0.92));
  color: #fff;
  border-color: transparent;
}
.shop-header .shop-menu-toggle { display: none; }

.shop-category-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.15rem 1.15rem;
  padding: 0.55rem 3vw 0.75rem;
  border-top: 1px solid rgba(25, 63, 60, 0.08);
  background: #fbfaf8;
}
.shop-category-nav a,
.shop-nav-dd-btn {
  text-decoration: none;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--ink-soft);
  background: none;
  border: 0;
  padding: 0.35rem 0;
  cursor: pointer;
  font: inherit;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  white-space: nowrap;
}
.shop-category-nav a:hover,
.shop-category-nav a.active,
.shop-nav-dd-btn:hover { color: var(--ink); }
.shop-category-nav a.nav-sale { color: var(--accent); font-weight: 600; }
.shop-nav-dd { position: relative; }
.shop-nav-dd-panel {
  position: absolute; left: 50%; top: calc(100% + 0.45rem); transform: translateX(-50%) translateY(4px);
  min-width: 11rem; padding: 0.45rem; background: #fff; border: 1px solid rgba(25, 63, 60, 0.12);
  border-radius: 0.45rem; box-shadow: 0 14px 36px rgba(25, 63, 60, 0.12);
  opacity: 0; visibility: hidden; z-index: 55; display: flex; flex-direction: column; gap: 0.05rem;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}
.shop-nav-dd.open .shop-nav-dd-panel { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.shop-nav-dd-panel a {
  padding: 0.55rem 0.7rem; border-radius: 0.3rem; color: var(--ink-soft); font-size: 0.84rem; letter-spacing: 0;
  text-transform: none;
}
.shop-nav-dd-panel a:hover { background: rgba(25, 63, 60, 0.05); color: var(--ink); }

.shop-account-dropdown {
  background: #fff; border-color: rgba(25, 63, 60, 0.12); color: var(--ink);
}
.shop-account-dropdown-label { color: rgba(25, 63, 60, 0.45); }
.shop-account-dropdown a { color: var(--ink-soft); }
.shop-account-dropdown a:hover { background: rgba(25, 63, 60, 0.05); color: var(--ink); }
.shop-account-dropdown a.danger { color: #9b3b2e; }

.collection-hero {
  position: relative;
  isolation: isolate;
  text-align: center;
  padding: 3rem 5vw 2.2rem;
  min-height: 18rem;
  overflow: hidden;
  border-bottom: 1px solid rgba(25, 63, 60, 0.08);
  background:
    radial-gradient(ellipse 65% 85% at 18% 48%, rgba(194, 147, 65, 0.12), transparent 58%),
    linear-gradient(180deg, #f3eee4 0%, #f7f3ec 55%, #fbfaf8 100%);
}
/* Peacock feather — light, anchored left */
.collection-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  inset: -10% 35% -14% -6%;
  background:
    url("images/peacock-feather-bg.jpg") 38% 42% / contain no-repeat;
  opacity: 0.78;
  filter: saturate(1.12) contrast(1.02) brightness(1.06);
}
.collection-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(75deg, rgba(247, 243, 236, 0.22) 0%, rgba(247, 243, 236, 0.45) 28%, rgba(247, 243, 236, 0.88) 58%, rgba(247, 243, 236, 0.96) 100%),
    linear-gradient(180deg, transparent 55%, rgba(251, 250, 248, 0.5) 100%);
}
.collection-hero > * {
  position: relative;
  z-index: 1;
}
.collection-hero h1 {
  font-family: var(--font-display), serif;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  margin: 0.2rem 0 0.7rem;
  color: var(--ink);
  text-shadow: 0 1px 14px rgba(247, 243, 236, 0.95);
}
.collection-hero .shop-lead {
  max-width: 38rem;
  margin: 0 auto 1.4rem;
  text-shadow: 0 1px 12px rgba(247, 243, 236, 0.95);
}
.collection-hero .shop-kicker {
  text-shadow: 0 1px 10px rgba(247, 243, 236, 0.9);
}

@media (max-width: 720px) {
  .collection-hero {
    min-height: 16rem;
    padding-top: 2.4rem;
  }
  .collection-hero::before {
    inset: 0% 10% -8% -20%;
    background-position: 32% 35%;
    opacity: 0.62;
  }
  .collection-hero::after {
    background:
      linear-gradient(180deg, rgba(247, 243, 236, 0.55) 0%, rgba(247, 243, 236, 0.72) 40%, rgba(247, 243, 236, 0.9) 100%);
  }
}
.collection-pills {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; max-width: 64rem; margin: 0 auto;
}
.collection-pill {
  display: inline-flex; align-items: center; padding: 0.55rem 1rem; border-radius: 999px;
  background: var(--ink); color: #fbfaf8 !important; text-decoration: none; font-size: 0.78rem;
  letter-spacing: 0.02em; border: 1px solid transparent; transition: background 0.2s ease, transform 0.2s ease;
  font: inherit; cursor: pointer;
}
.collection-pill:hover { background: var(--brand-deep); transform: translateY(-1px); }
.collection-pill.active {
  background: #fff; color: var(--ink) !important; border-color: var(--gold);
  box-shadow: inset 0 0 0 1px rgba(194, 147, 65, 0.35);
}

.home-collection-strip {
  padding: 1.4rem 5vw 0.2rem;
  display: flex;
  justify-content: center;
}
.home-collection-strip .collection-pills { max-width: 72rem; }

.collection-page {
  padding-top: 0;
  overflow-x: clip;
}
.collection-page .collection-hero {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: 5vw;
  padding-right: 5vw;
  box-sizing: border-box;
}

.collection-meta-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: 0.85rem 0; border-bottom: 1px solid var(--line); margin-bottom: 1.2rem;
}
.collection-meta-bar .result-count { margin: 0; font-size: 0.9rem; color: var(--muted); }
.collection-page .shop-browse { margin-top: 0.4rem; }
.collection-page .filter-panel {
  border: 0; border-right: 1px solid var(--line); background: transparent; box-shadow: none;
  padding: 0 1.2rem 1.4rem 0; border-radius: 0;
}
.collection-page .filter-panel-head h2 {
  font-family: var(--font-body); font-size: 1rem; letter-spacing: 0.08em; text-transform: uppercase;
}
.filter-acc { border-top: 1px solid var(--line); padding: 0; }
.filter-acc summary {
  list-style: none; cursor: pointer; padding: 0.9rem 0; font-size: 0.88rem; font-weight: 500;
  display: flex; align-items: center; justify-content: space-between; color: var(--ink);
}
.filter-acc summary::-webkit-details-marker { display: none; }
.filter-acc summary::after { content: "▾"; color: var(--muted); font-size: 0.75rem; }
.filter-acc[open] summary::after { content: "▴"; }
.filter-acc-body { display: grid; gap: 0.15rem; padding: 0 0 0.85rem; }
.filter-link {
  text-align: left; border: 0; background: transparent; padding: 0.4rem 0.2rem; color: var(--muted);
  font: inherit; font-size: 0.9rem; cursor: pointer; border-radius: 0.25rem;
}
.filter-link:hover, .filter-link.active { color: var(--ink); background: rgba(25, 63, 60, 0.04); }

.product-grid.collection-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35rem 1.1rem;
}
.collection-card {
  border: 0; background: transparent; box-shadow: none; overflow: visible;
}
.collection-card:hover, .collection-card.is-inview:hover {
  transform: none; box-shadow: none; border-color: transparent;
}
.collection-card .product-card-media {
  border-radius: 0.2rem; overflow: hidden; background: #ece7df;
}
.collection-card .product-card-meta {
  padding: 0.85rem 0.1rem 0; text-align: left;
}
.collection-card .product-card-meta h3 {
    font-size: 1.05rem; font-family: var(--font-body); font-weight: 500; letter-spacing: 0.01em;
}

.product-card-rating {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0.15rem 0 0.35rem;
    font-size: 0.78rem;
    line-height: 1.2;
    color: var(--ink-soft);
}

.product-card-rating.muted {
    color: rgba(25, 63, 60, 0.45);
}

.product-card-stars {
    color: var(--gold-deep);
    letter-spacing: 0.04em;
    font-size: 0.85rem;
}

.product-card-rating.muted .product-card-stars {
    color: rgba(25, 63, 60, 0.28);
}

.product-card-rating-score {
    font-weight: 600;
    color: var(--ink);
}

.product-card-rating-count {
    color: var(--muted);
}
.collection-card .product-card-meta h3 a { text-decoration: none; }
.collection-card .weave { font-size: 0.68rem; }
.collection-card .price { font-size: 1rem; }
.collection-card .card-add {
  margin-top: 0.45rem; padding: 0; color: var(--gold-deep); font-size: 0.82rem; letter-spacing: 0.06em;
  text-transform: uppercase; text-decoration: underline; text-underline-offset: 0.2em;
}
.collection-card .card-add:disabled { opacity: 0.45; text-decoration: none; }

.shop-mobile-label {
  margin: 0.7rem 0.85rem 0.2rem; font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(251, 250, 248, 0.45);
}

@media (max-width: 1100px) {
  .product-grid.collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shop-category-nav { gap: 0.1rem 0.85rem; }
}

@media (max-width: 960px) {
  .shop-header .shop-menu-toggle { display: inline-flex; }
  .shop-header-utility .desktop-search,
  .shop-category-nav { display: none !important; }
  .collection-meta-bar .filter-open { display: inline-flex; }
}

@media (max-width: 700px) {
  .product-grid.collection-grid { grid-template-columns: 1fr 1fr; gap: 0.85rem; }
  .collection-hero { padding: 1.6rem 4vw 1.2rem; }
}

/* ========== Mega menu (hover) ========== */
.shop-nav-link {
  position: relative;
  text-decoration: none;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--ink-soft);
  background: none;
  border: 0;
  padding: 0.35rem 0;
  cursor: pointer;
  font: inherit;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  white-space: nowrap;
}
.shop-nav-link:hover, .shop-mega-trigger.open { color: var(--ink); }
.shop-nav-link.nav-sale { color: var(--accent); font-weight: 600; }
.shop-nav-link.nav-offer { color: var(--gold-deep); font-weight: 600; }
.nav-badge {
  position: absolute; top: -0.55rem; right: -0.35rem;
  font-size: 0.55rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--accent); font-weight: 700;
}
.shop-mega { position: relative; }
.shop-mega-panel {
  position: absolute; left: 50%; top: calc(100% + 0.35rem); transform: translateX(-50%) translateY(6px);
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(9.5rem, 1fr); gap: 1.4rem 2rem;
  min-width: min(52rem, 88vw); padding: 1.35rem 1.5rem 1.5rem;
  background: #fbfaf8; border: 1px solid rgba(25, 63, 60, 0.1);
  border-radius: 0.35rem; box-shadow: 0 18px 48px rgba(25, 63, 60, 0.12);
  opacity: 0; visibility: hidden; z-index: 60;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}
.shop-mega:hover .shop-mega-panel,
.shop-mega-panel.open {
  opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
.shop-mega-col { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.shop-mega-col-title {
  margin: 0 0 0.45rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.04em;
  color: var(--ink); text-transform: none;
}
.shop-mega-col a {
  padding: 0.35rem 0; color: var(--ink-soft); text-decoration: none; font-size: 0.84rem;
  letter-spacing: 0; white-space: normal;
}
.shop-mega-col a:hover { color: var(--ink); }

/* ========== PDP (Bullion Knot–style) ========== */
.pdp-layout {
  grid-template-columns: minmax(0, 1.15fr) minmax(17rem, 0.85fr);
  gap: 2.4rem 3rem;
}
.pdp-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  width: 100%;
  min-width: 0;
}
.pdp-gallery:has(.pdp-thumbs) {
  grid-template-columns: 4.5rem minmax(0, 1fr);
}
.pdp-thumbs {
  display: flex; flex-direction: column; gap: 0.45rem;
  max-height: min(72vh, 40rem); overflow: auto;
}
.pdp-thumb {
  padding: 0; border: 1px solid rgba(25, 63, 60, 0.14); background: #fff; cursor: pointer;
  aspect-ratio: 3 / 4; overflow: hidden; width: 100%;
}
.pdp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pdp-thumb.active { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.pdp-hero {
  position: relative;
  width: 100%;
  min-width: 0;
  background: #ece7df;
}
.pdp-hero img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
}
.pdp-badges {
  position: absolute; left: 0.75rem; top: 0.75rem; z-index: 2;
  display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem;
}
.pdp-badge {
  display: inline-flex; padding: 0.35rem 0.55rem; font-size: 0.68rem; letter-spacing: 0.08em;
  text-transform: uppercase; font-weight: 600;
}
.pdp-badge.limited { background: var(--ink); color: #fbfaf8; }
.pdp-badge.new { background: #fff; color: var(--ink); border: 1px solid rgba(25, 63, 60, 0.2); }
.pdp-badge.sale { background: var(--accent); color: #fff; }
.pdp-info .product-name {
  font-family: var(--font-display), serif;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin: 0 0 0.35rem; color: var(--ink);
}
.pdp-sku { margin: 0 0 0.9rem; color: var(--muted); font-size: 0.86rem; letter-spacing: 0.04em; }
.pdp-price-row { display: flex; align-items: baseline; gap: 0.75rem; margin-bottom: 0.25rem; }
.pdp-price-row .price { font-size: 1.55rem; font-weight: 600; color: var(--ink); }
.pdp-size-block { margin: 1.2rem 0 0.8rem; }
.pdp-info {
  min-width: 0;
  max-width: 100%;
}
.pdp-size-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.45rem 1rem;
  margin-bottom: 0.55rem;
  font-size: 0.88rem;
}
.pdp-size-head .btn-text {
  flex-shrink: 0;
  white-space: nowrap;
}
.pdp-size-grid { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.pdp-size {
  min-width: 3rem; padding: 0.55rem 0.7rem; border: 1px solid rgba(25, 63, 60, 0.22);
  background: #fff; color: var(--ink); font: inherit; font-size: 0.86rem; cursor: pointer;
}
.pdp-size.active { border-color: var(--ink); border-width: 2px; padding: calc(0.55rem - 1px) calc(0.7rem - 1px); }
.pdp-size.sold { opacity: 0.35; text-decoration: line-through; cursor: not-allowed; }
.pdp-color-block { margin: 1rem 0; }
.pdp-color-label { margin: 0 0 0.5rem; font-size: 0.86rem; text-transform: uppercase; letter-spacing: 0.06em; }
.pdp-color-swatches { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.pdp-swatch {
  width: 3.2rem; height: 3.2rem; border: 1px solid rgba(25, 63, 60, 0.18); overflow: hidden; padding: 0;
}
.pdp-swatch img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pdp-swatch.active { outline: 2px solid var(--ink); outline-offset: 2px; }

.pdp-buy-row {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-top: 1.2rem;
  width: 100%;
  max-width: 100%;
}
.pdp-buy-primary,
.pdp-buy-secondary {
  display: flex;
  align-items: stretch;
  gap: 0.55rem;
  width: 100%;
  min-width: 0;
}
.pdp-buy-row .qty {
  flex: 0 0 auto;
  border: 1px solid rgba(25, 63, 60, 0.22);
  border-radius: 0.55rem;
  overflow: hidden;
  background: #fff;
}
.pdp-buy-row .qty button {
  width: 2.4rem;
  height: 2.85rem;
}
.pdp-atc,
.pdp-buy-now {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 2.85rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.65rem 1rem;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
}
.pdp-icon-action {
  flex: 0 0 2.85rem;
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 999px;
  border: 1px solid rgba(25, 63, 60, 0.2);
  background: #fff;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.pdp-icon-action:hover {
  border-color: var(--gold);
  color: var(--gold-deep);
}
.pdp-icon-action.active {
  border-color: var(--gold);
  background: rgba(194, 147, 65, 0.1);
}

.product-card-badges {
  position: absolute; left: 0.55rem; top: 0.55rem; z-index: 2;
  display: flex; flex-direction: column; gap: 0.25rem; align-items: flex-start;
}
.product-badge {
  display: inline-flex; padding: 0.25rem 0.4rem; font-size: 0.62rem; letter-spacing: 0.08em;
  text-transform: uppercase; font-weight: 600;
}
.product-badge.limited { background: var(--ink); color: #fff; }
.product-badge.new { background: #fff; color: var(--ink); border: 1px solid rgba(25, 63, 60, 0.2); }

/* /offers mosaic — distinct from sale torn banners */
.offers-mosaic {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1.1rem;
  margin-top: 0.5rem;
}
.offer-tile {
  grid-column: span 4;
  display: flex;
  flex-direction: column;
  min-height: 16rem;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid rgba(25, 63, 60, 0.1);
  overflow: hidden;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}
.offer-tile:nth-child(3n + 1) { grid-column: span 5; }
.offer-tile:nth-child(3n + 2) { grid-column: span 3; }
.offer-tile:nth-child(3n) { grid-column: span 4; }
.offer-tile:hover,
.offer-tile:focus-visible {
  transform: translateY(-5px);
  box-shadow: 0 18px 40px rgba(25, 63, 60, 0.12);
  outline: none;
}
.offer-tile-media {
  flex: 0 0 9rem;
  background:
    linear-gradient(180deg, transparent 40%, rgba(16, 42, 40, 0.55)),
    var(--offer-img) center / cover no-repeat;
}
.offer-tile-body {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 1.25rem 1.3rem 1.2rem;
  background: linear-gradient(165deg, #f8f4ec, #fff);
  flex: 1;
}
.offer-tile-highlight {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.offer-tile h2 {
  margin: 0;
  font-family: var(--font-display), serif;
  font-size: 1.65rem;
  font-weight: 500;
  line-height: 1.15;
}
.offer-tile-summary {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--ink-soft);
}
.offer-tile-cta {
  margin-top: auto;
  padding-top: 0.85rem;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--ink);
}

/* Home + /offers promo discovery */
.home-offers {
  padding: 2.5rem 4vw 0.6rem;
}
.home-offers .section-head { margin-bottom: 1.3rem; }
.home-offers-rail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  gap: 1.15rem;
}
.home-promo-card {
  display: grid;
  grid-template-columns: 9.5rem minmax(0, 1fr);
  min-height: 10.5rem;
  text-decoration: none;
  color: inherit;
  background: #fbfaf8;
  border-left: 3px solid var(--gold);
  box-shadow: 0 10px 28px rgba(25, 63, 60, 0.06);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.home-promo-card:hover,
.home-promo-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(25, 63, 60, 0.12);
  outline: none;
}
.home-promo-visual {
  background: var(--promo-img) center / cover no-repeat;
  min-height: 100%;
}
.home-promo-visual.plain {
  display: grid;
  place-items: center;
  background: linear-gradient(160deg, #1a403d, #274f4b);
  color: var(--gold-soft);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.home-promo-copy {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1.15rem 1.25rem;
}
.home-promo-rule {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.home-promo-copy h3 {
  margin: 0;
  font-family: var(--font-display), serif;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.15;
}
.home-promo-copy p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--ink-soft);
}
.home-promo-code {
  margin-top: auto;
  padding-top: 0.65rem;
  font-size: 0.86rem;
  color: var(--ink);
}
.home-promo-code strong {
  letter-spacing: 0.06em;
}

.promo-deals-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: 1.25rem;
  margin-top: 0.5rem;
}
.promo-deal-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(25, 63, 60, 0.1);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.promo-deal-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(25, 63, 60, 0.1);
}
.promo-deal-media {
  min-height: 9rem;
  background: var(--promo-img) center / cover no-repeat;
}
.promo-deal-body {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 1.25rem 1.3rem 1.2rem;
  background: linear-gradient(165deg, #f8f4ec, #fff);
  flex: 1;
}
.promo-deal-rule {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-deep);
}
.promo-deal-body h2 {
  margin: 0;
  font-family: var(--font-display), serif;
  font-size: 1.55rem;
  font-weight: 500;
}
.promo-deal-desc {
  margin: 0;
  font-size: 0.9rem;
  color: var(--ink-soft);
  line-height: 1.45;
}
.promo-deal-code-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.55rem;
}
.promo-deal-code {
  display: inline-flex;
  padding: 0.4rem 0.7rem;
  border: 1px dashed rgba(25, 63, 60, 0.35);
  background: rgba(25, 63, 60, 0.04);
  font-weight: 700;
  letter-spacing: 0.1em;
  font-size: 0.92rem;
}
.promo-deal-cta {
  color: var(--ink);
  font-weight: 600;
  font-size: 0.88rem;
  text-decoration: none;
}
.promo-deal-cta:hover { color: var(--gold-deep); }
.promo-deal-hint {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: var(--muted);
}

.home-sale-teaser {
  padding: 1.4rem 4vw 0.4rem;
}
.home-sale-teaser-link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.home-sale-teaser-note {
  margin: 0.7rem 0 0;
  text-align: center;
}
.home-sale-teaser-note a {
  color: var(--ink-soft);
  font-size: 0.88rem;
}

.sale-discount-banner + .product-grid {
  margin-top: 1.25rem;
}

@media (max-width: 900px) {
  .offer-tile,
  .offer-tile:nth-child(3n + 1),
  .offer-tile:nth-child(3n + 2),
  .offer-tile:nth-child(3n) { grid-column: span 6; }
}
@media (max-width: 640px) {
  .offer-tile,
  .offer-tile:nth-child(n) { grid-column: span 12; }
  .home-offer-card { grid-template-columns: 1fr; }
  .home-offer-visual { min-height: 8rem; }
}

@media (max-width: 900px) {
  .pdp-gallery,
  .pdp-gallery:has(.pdp-thumbs) { grid-template-columns: 1fr; }
  .pdp-thumbs { flex-direction: row; max-height: none; overflow-x: auto; order: 2; }
  .pdp-hero { order: 1; }
  .pdp-thumb { width: 4.5rem; flex: 0 0 auto; }
  .offers-grid { grid-template-columns: 1fr; }
  .shop-mega-panel { grid-auto-flow: row; grid-template-columns: 1fr 1fr; left: 0; transform: translateY(6px); }
  .shop-mega:hover .shop-mega-panel, .shop-mega-panel.open { transform: translateY(0); }
}

/* ========== Product reviews ========== */
.product-reviews-anchor { margin-top: 2.8rem; padding-top: 0.5rem; }
.product-reviews { scroll-margin-top: 6rem; }
.product-reviews-head h2 {
  font-family: var(--font-display), serif;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin: 0 0 0.4rem;
  color: var(--ink);
}
.review-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem 0.7rem; margin: 0; }
.review-stars { color: var(--gold-deep); letter-spacing: 0.06em; }
.pdp-rating-line {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.65rem;
  margin: 0.35rem 0 0.6rem; font-size: 0.9rem;
}
.pdp-rating-line a { color: var(--ink-soft); }

.review-form-card, .review-login-card {
  margin: 1.4rem 0;
  padding: 1.25rem 1.3rem;
  border: 1px solid rgba(25, 63, 60, 0.12);
  background: #fff;
}
.review-form-card h3 { margin: 0 0 0.35rem; font-size: 1.15rem; }
.review-login-card {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem;
}
.review-login-card p { margin: 0; flex: 1 1 12rem; }
.review-rating-pick { display: flex; gap: 0.25rem; margin: 0.85rem 0 1rem; }
.review-star-btn {
  border: 0; background: transparent; font-size: 1.55rem; line-height: 1;
  color: rgba(25, 63, 60, 0.25); cursor: pointer; padding: 0.1rem;
}
.review-star-btn.on { color: var(--gold-deep); }
.review-field { display: grid; gap: 0.35rem; margin-bottom: 0.85rem; }
.review-field span { font-size: 0.82rem; color: var(--muted); }
.review-field em { font-style: normal; opacity: 0.7; }
.review-field .shop-input,
.review-field input,
.review-field textarea {
  width: 100%; padding: 0.7rem 0.85rem; border: 1px solid rgba(25, 63, 60, 0.18);
  background: #fbfaf8; font: inherit; color: var(--ink); border-radius: 0.25rem;
}
.review-form-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; }
.review-error { color: #9b3b2e; margin: 0 0 0.75rem; font-size: 0.9rem; }

.review-list { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; gap: 1rem; }
.review-item {
  padding: 1rem 0 1.15rem;
  border-top: 1px solid rgba(25, 63, 60, 0.1);
}
.review-item-head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem 0.75rem; }
.review-meta { margin: 0.35rem 0 0.55rem; font-size: 0.82rem; color: var(--muted); }
.review-body { margin: 0; line-height: 1.65; color: var(--ink-soft); }

/* ========== Muse + order-support chat ========== */
.shop-chat.muse-ai .shop-chat-tabs,
.shop-chat.order-support .shop-chat-tabs { display: none !important; }
.shop-chat {
  position: fixed; z-index: 80; right: 1.2rem; bottom: 1.2rem;
  font-family: var(--font-body);
}
.shop-chat.open .shop-chat-panel {
  animation: shop-chat-rise 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes shop-chat-rise {
  from { opacity: 0; transform: translateY(16px) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.shop-chat-fab {
  --fab-ink: #12302d;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.55rem 1.25rem 0.55rem 0.55rem;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  color: #fbf6ef;
  background:
    linear-gradient(125deg, rgba(240, 217, 160, 0.18) 0%, transparent 42%),
    linear-gradient(155deg, #0c221f 0%, #163734 48%, #245550 100%);
  box-shadow:
    0 20px 44px rgba(15, 40, 37, 0.4),
    0 0 0 1px rgba(212, 179, 106, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.32s ease;
  overflow: visible;
  isolation: isolate;
  animation: shop-chat-fab-float 4.8s ease-in-out infinite;
}
.shop-chat-fab:hover {
  transform: translateY(-4px) scale(1.03);
  box-shadow:
    0 26px 56px rgba(15, 40, 37, 0.48),
    0 0 0 1px rgba(212, 179, 106, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
  animation-play-state: paused;
}
.shop-chat-fab:active { transform: translateY(-1px) scale(0.99); }
@keyframes shop-chat-fab-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
.shop-chat-fab-aura {
  position: absolute;
  inset: -14px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(212, 179, 106, 0.28) 0%, transparent 68%);
  animation: shop-chat-aura 3.2s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}
@keyframes shop-chat-aura {
  0%, 100% { opacity: 0.45; transform: scale(0.92); }
  50% { opacity: 0.9; transform: scale(1.05); }
}
.shop-chat-fab-orbit {
  position: absolute;
  inset: -6px;
  border-radius: 999px;
  border: 1px solid transparent;
  border-top-color: rgba(240, 217, 160, 0.65);
  border-right-color: rgba(212, 179, 106, 0.2);
  animation: shop-chat-orbit 4.8s linear infinite;
  pointer-events: none;
  z-index: 0;
}
.shop-chat-fab-orbit.delay {
  inset: -12px;
  border-top-color: rgba(212, 179, 106, 0.28);
  border-left-color: rgba(240, 217, 160, 0.2);
  border-right-color: transparent;
  animation-duration: 7.5s;
  animation-direction: reverse;
}
@keyframes shop-chat-orbit {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.shop-chat-fab-shimmer {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.shop-chat-fab-shimmer::after {
  content: "";
  position: absolute;
  top: -40%;
  left: -60%;
  width: 55%;
  height: 180%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.18), transparent);
  transform: skewX(-18deg);
  animation: shop-chat-shimmer 3.6s ease-in-out infinite;
}
@keyframes shop-chat-shimmer {
  0%, 55% { transform: translateX(0) skewX(-18deg); opacity: 0; }
  70% { opacity: 1; }
  100% { transform: translateX(320%) skewX(-18deg); opacity: 0; }
}
.shop-chat-fab-core {
  position: relative;
  z-index: 1;
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 32% 28%, #f7e5b4, transparent 52%),
    linear-gradient(145deg, #e2c27a, #a07830 70%, #8a6828);
  color: #12302d;
  box-shadow:
    0 0 0 3px rgba(18, 48, 45, 0.4),
    0 6px 14px rgba(160, 120, 48, 0.35);
}
.shop-chat-fab-spark {
  width: 1.4rem;
  height: 1.4rem;
  animation: shop-chat-twinkle 2.6s ease-in-out infinite;
  filter: drop-shadow(0 0 4px rgba(255, 240, 200, 0.45));
}
@keyframes shop-chat-twinkle {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.88; }
  50% { transform: scale(1.12) rotate(14deg); opacity: 1; }
}
.shop-chat-fab-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.05;
  text-align: left;
  padding-right: 0.15rem;
}
.shop-chat-fab-kicker {
  font-size: 0.58rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(240, 217, 160, 0.72);
  font-weight: 600;
}
.shop-chat-fab-label {
  font-family: var(--font-display), serif;
  font-size: 1.22rem;
  letter-spacing: 0.05em;
  font-weight: 400;
  background: linear-gradient(120deg, #fff8eb 10%, #f0d9a0 55%, #fff 90%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.shop-chat-badge {
  position: absolute;
  top: -0.05rem;
  right: 0.15rem;
  z-index: 2;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: #e2573b;
  box-shadow: 0 0 0 2px #12302d, 0 0 10px rgba(226, 87, 59, 0.55);
  animation: shop-chat-pulse 1.6s ease-in-out infinite;
}
@keyframes shop-chat-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.18); }
}

.shop-chat-panel {
  width: min(27.5rem, calc(100vw - 1.4rem));
  height: min(41rem, calc(100vh - 4.5rem));
  display: flex;
  flex-direction: column;
  background:
    linear-gradient(180deg, #f3ede3 0%, #f8f4ed 40%, #fbfaf8 100%);
  border: 1px solid rgba(25, 63, 60, 0.1);
  border-radius: 1.45rem;
  box-shadow:
    0 36px 90px rgba(15, 40, 37, 0.34),
    0 0 0 1px rgba(212, 179, 106, 0.12);
  overflow: hidden;
  position: relative;
}
.shop-chat.muse-ai .shop-chat-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 90% 8%, rgba(212, 179, 106, 0.14), transparent 42%),
    radial-gradient(ellipse at 0% 100%, rgba(25, 63, 60, 0.05), transparent 45%);
  z-index: 0;
}
.shop-chat.muse-ai .shop-chat-panel > * { position: relative; z-index: 1; }
.shop-chat-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1.05rem 1.1rem 1rem;
  background:
    radial-gradient(ellipse at 12% -10%, rgba(240, 217, 160, 0.35), transparent 48%),
    radial-gradient(ellipse at 90% 120%, rgba(36, 85, 80, 0.55), transparent 50%),
    linear-gradient(165deg, #0c221f 0%, #163734 52%, #1f4742 100%);
  color: #fbf6ef;
}
.shop-chat-avatar {
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  background: linear-gradient(145deg, #d4b36a, #a07830);
  color: #12302d;
  font-family: var(--font-display), serif;
  font-size: 0.95rem;
  font-weight: 600;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.12);
}
.shop-chat-avatar.muse { color: #12302d; }
.shop-chat-avatar.live {
  box-shadow: 0 0 0 2px rgba(109, 207, 138, 0.55);
}
.shop-chat-head-text { flex: 1; min-width: 0; }
.shop-chat-head strong {
  display: block;
  font-family: var(--font-display), serif;
  font-size: 1.35rem;
  letter-spacing: 0.14em;
  font-weight: 400;
}
.shop-chat-head small,
.shop-chat-presence {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.15rem;
  color: rgba(251, 246, 239, 0.7);
  font-size: 0.72rem;
  letter-spacing: 0.03em;
}
.shop-chat-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
}
.shop-chat-dot.on { background: #6dcf8a; box-shadow: 0 0 0 3px rgba(109, 207, 138, 0.22); }
.shop-chat-close {
  border: 0;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  cursor: pointer;
  padding: 0.45rem;
  border-radius: 0.55rem;
  display: grid;
  place-items: center;
  transition: background 0.2s ease;
}
.shop-chat-close:hover { background: rgba(255, 255, 255, 0.16); }

.shop-chat-body {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 0.95rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  scroll-behavior: auto;
  background:
    radial-gradient(ellipse at 100% 0%, rgba(194, 147, 65, 0.12), transparent 40%),
    linear-gradient(180deg, #efe9df 0%, #f7f3ec 28%, #fbfaf8 100%);
}
.shop-chat-body > .shop-chat-row:last-child {
  scroll-margin-bottom: 1.25rem;
}
.shop-chat-welcome {
  margin: 0.1rem 0 0.35rem;
  padding: 0.95rem 1rem 1.05rem;
  border-radius: 1.1rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.82), rgba(247, 243, 236, 0.9)),
    radial-gradient(ellipse at 0% 0%, rgba(212, 179, 106, 0.16), transparent 55%);
  border: 1px solid rgba(25, 63, 60, 0.08);
  box-shadow: 0 10px 28px rgba(18, 47, 45, 0.05);
}
.shop-chat-welcome-hero {
  margin-bottom: 0.75rem;
}
.shop-chat-welcome-mark {
  display: inline-block;
  color: var(--gold-deep);
  font-size: 0.85rem;
  margin-bottom: 0.2rem;
  animation: shop-chat-twinkle 3s ease-in-out infinite;
}
.shop-chat-welcome-kicker {
  margin: 0 0 0.3rem;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-deep);
  font-weight: 700;
}
.shop-chat-welcome-lead {
  margin: 0;
  font-family: var(--font-display), serif;
  font-size: 1.05rem;
  line-height: 1.35;
  color: var(--ink-soft);
  letter-spacing: 0.01em;
}
.shop-chat-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.shop-chat-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border: 1px solid rgba(25, 63, 60, 0.12);
  background: rgba(255, 255, 255, 0.88);
  color: var(--ink);
  padding: 0.5rem 0.85rem 0.5rem 0.65rem;
  border-radius: 999px;
  font: inherit;
  font-size: 0.78rem;
  line-height: 1.25;
  cursor: pointer;
  transition: background 0.22s ease, border-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
}
.shop-chat-chip-dot {
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  flex: 0 0 auto;
  background: linear-gradient(145deg, #d4b36a, #a07830);
  box-shadow: 0 0 0 2px rgba(194, 147, 65, 0.15);
}
.shop-chat-chip:hover:not(:disabled) {
  background: #fff;
  border-color: rgba(194, 147, 65, 0.55);
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(18, 47, 45, 0.08);
}
.shop-chat-chip:disabled { opacity: 0.5; cursor: not-allowed; }

.shop-chat-day {
  align-self: center;
  font-size: 0.72rem;
  color: var(--muted);
  background: rgba(25, 63, 60, 0.06);
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
}
.shop-chat-day strong { color: var(--ink); font-weight: 600; }
.shop-chat-row {
  display: flex;
  align-items: flex-end;
  gap: 0.45rem;
  max-width: 100%;
  animation: shop-chat-msg 0.28s ease both;
}
@keyframes shop-chat-msg {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
.shop-chat-row.mine { align-self: flex-end; flex-direction: row-reverse; }
.shop-chat-row.theirs { align-self: flex-start; }
.shop-chat-mini-av {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  background: #e4ebe6;
  color: var(--ink);
  font-size: 0.62rem;
  font-weight: 700;
}
.shop-chat-mini-av.muse {
  background: linear-gradient(145deg, #d4b36a, #a07830);
  color: #12302d;
}
.shop-chat-bubble {
  max-width: min(19rem, 84%);
  padding: 0.8rem 0.95rem 0.65rem;
  border: 1px solid rgba(25, 63, 60, 0.08);
  background: #fff;
  border-radius: 1.15rem 1.15rem 1.15rem 0.35rem;
  box-shadow: 0 8px 22px rgba(18, 47, 45, 0.06);
}
.shop-chat-bubble.mine {
  background: linear-gradient(165deg, #163734, #214e49);
  color: #fbf6ef;
  border-color: transparent;
  border-radius: 1.15rem 1.15rem 0.35rem 1.15rem;
}
.shop-chat-bubble.bot { background: rgba(255, 255, 255, 0.92); }
.shop-chat-bubble.thinking { opacity: 0.96; }
.shop-chat-bubble p { margin: 0; font-size: 0.9rem; line-height: 1.55; white-space: pre-wrap; }
.shop-chat-md {
  font-size: 0.9rem;
  line-height: 1.55;
  color: inherit;
}
.shop-chat-md p { margin: 0 0 0.55rem; white-space: normal; }
.shop-chat-md p:last-child { margin-bottom: 0; }
.shop-chat-md-list {
  margin: 0.35rem 0 0.55rem;
  padding: 0 0 0 1.15rem;
  list-style: disc;
}
.shop-chat-md-list:last-child { margin-bottom: 0; }
.shop-chat-md-list li {
  margin: 0.28rem 0;
  padding-left: 0.15rem;
  line-height: 1.5;
}
.shop-chat-md-list li::marker { color: var(--gold-deep); }
.shop-chat-md strong { font-weight: 600; color: var(--ink); }
.shop-chat-md em { font-style: italic; }
.shop-chat-md code {
  font-size: 0.84em;
  padding: 0.05em 0.3em;
  border-radius: 0.25rem;
  background: rgba(25, 63, 60, 0.06);
}
.shop-chat-voice-bar {
  display: flex;
  margin-top: 0.55rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(25, 63, 60, 0.08);
}
.shop-chat-listen {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 0;
  background: rgba(25, 63, 60, 0.06);
  color: var(--ink-soft);
  font: inherit;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.shop-chat-listen:hover:not(:disabled) {
  background: rgba(194, 147, 65, 0.16);
  color: var(--ink);
}
.shop-chat-listen.on {
  background: rgba(25, 63, 60, 0.12);
  color: var(--ink);
}
.shop-chat-listen:disabled { opacity: 0.45; cursor: not-allowed; }
.shop-chat-mic {
  position: relative;
  width: 2.35rem;
  height: 2.35rem;
  flex: 0 0 auto;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  cursor: pointer;
  color: var(--ink-soft);
  background: rgba(25, 63, 60, 0.06);
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.shop-chat-mic:hover:not(:disabled) {
  background: rgba(194, 147, 65, 0.16);
  color: var(--ink);
}
.shop-chat-mic.on {
  color: #fff;
  background: linear-gradient(145deg, #163734, #245550);
  box-shadow: 0 0 0 3px rgba(194, 147, 65, 0.22);
}
.shop-chat-mic:disabled { opacity: 0.4; cursor: not-allowed; }
.shop-chat-mic-pulse {
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 1.5px solid rgba(194, 147, 65, 0.55);
  animation: shop-chat-aura 1.4s ease-in-out infinite;
  pointer-events: none;
}
.shop-chat-think {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--ink-soft);
  font-size: 0.86rem !important;
}
.shop-chat-dots { display: inline-flex; gap: 0.22rem; align-items: center; }
.shop-chat-dots i {
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 50%;
  background: var(--gold-deep);
  display: block;
  animation: shop-chat-bounce 1.1s ease-in-out infinite;
}
.shop-chat-dots i:nth-child(2) { animation-delay: 0.15s; }
.shop-chat-dots i:nth-child(3) { animation-delay: 0.3s; }
@keyframes shop-chat-bounce {
  0%, 80%, 100% { transform: translateY(0); opacity: 0.35; }
  40% { transform: translateY(-3px); opacity: 1; }
}
.shop-chat-who {
  display: block;
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold-deep);
  margin-bottom: 0.25rem;
  font-weight: 600;
}
.shop-chat-bubble.mine .shop-chat-who { color: var(--gold-soft); }
.shop-chat-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  margin-top: 0.35rem;
  font-size: 0.66rem;
  opacity: 0.7;
}
.shop-chat-ticks { letter-spacing: -0.08em; font-size: 0.78rem; }
.shop-chat-ticks.sent { opacity: 0.7; }
.shop-chat-ticks.delivered { color: #cfe3d8; }
.shop-chat-ticks.seen { color: #7ec8ff; }
.shop-chat-bubble.bot .shop-chat-ticks.delivered { color: #6a9b7f; }
.shop-chat-bubble.bot .shop-chat-ticks.seen { color: #3b82c4; }
.shop-chat-error { margin: 0; color: #9b3b2e; font-size: 0.85rem; }

.shop-chat-profile {
  flex: 1;
  display: grid;
  place-items: center;
  padding: 1.2rem;
  background: linear-gradient(180deg, #efe9df, #fbfaf8);
}
.shop-chat-profile-card {
  width: 100%;
  max-width: 20rem;
  display: grid;
  gap: 0.7rem;
  padding: 1.25rem;
  border-radius: 1.1rem;
  background: #fff;
  border: 1px solid rgba(25, 63, 60, 0.1);
  box-shadow: 0 14px 36px rgba(18, 47, 45, 0.08);
}
.shop-chat-profile-card h3 {
  margin: 0;
  font-family: var(--font-display), serif;
  font-weight: 400;
  font-size: 1.45rem;
  color: var(--ink);
}
.shop-chat-profile-card > p { margin: 0; color: var(--muted); font-size: 0.88rem; line-height: 1.45; }
.shop-chat-profile-card label { display: grid; gap: 0.3rem; font-size: 0.78rem; color: var(--muted); }
.shop-chat-start {
  margin-top: 0.25rem;
  border: 0;
  cursor: pointer;
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  background: linear-gradient(145deg, #193f3c, #245550);
  color: #fff;
  font: inherit;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.78rem;
}

.shop-chat-compose {
  padding: 0.75rem 0.9rem 1rem;
  background: rgba(251, 250, 248, 0.92);
  border-top: 1px solid rgba(25, 63, 60, 0.08);
  backdrop-filter: blur(12px);
}
.shop-chat-compose.muse {
  padding-top: 0.55rem;
  background:
    linear-gradient(180deg, rgba(239, 233, 223, 0.55), rgba(251, 250, 248, 0.96));
}
.shop-chat-compose-hint {
  margin: 0 0 0.45rem 0.2rem;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  text-transform: none;
  color: rgba(25, 63, 60, 0.55);
  font-weight: 500;
  line-height: 1.35;
}
.shop-chat-compose-hint.live {
  color: var(--gold-deep);
  font-weight: 600;
}
.shop-chat-compose-shell {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.32rem 0.32rem 0.32rem 0.4rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(25, 63, 60, 0.1);
  box-shadow:
    0 10px 24px rgba(18, 47, 45, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  transition: border-color 0.22s ease, box-shadow 0.22s ease;
}
.shop-chat-compose-shell:focus-within {
  border-color: rgba(194, 147, 65, 0.7);
  box-shadow:
    0 0 0 3px rgba(194, 147, 65, 0.16),
    0 12px 28px rgba(18, 47, 45, 0.08);
}
.shop-chat-input {
  flex: 1;
  min-width: 0;
  width: 100%;
  padding: 0.65rem 0.2rem;
  border: 0;
  background: transparent;
  font: inherit;
  color: var(--ink);
}
.shop-chat-input:focus { outline: none; }
.shop-chat-input:disabled { opacity: 0.55; }
.shop-chat-send {
  width: 2.6rem;
  height: 2.6rem;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 30% 25%, rgba(240, 217, 160, 0.35), transparent 55%),
    linear-gradient(145deg, #163734, #245550);
  color: #fff;
  box-shadow: 0 8px 18px rgba(25, 63, 60, 0.26);
  transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
}
.shop-chat-send:hover:not(:disabled) {
  transform: scale(1.06);
  box-shadow: 0 10px 22px rgba(25, 63, 60, 0.32);
}
.shop-chat-send:disabled { opacity: 0.4; cursor: not-allowed; box-shadow: none; }

.shop-chat.muse-ai .shop-chat-bubble.bot {
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.98), rgba(250, 246, 238, 0.96));
  border-color: rgba(194, 147, 65, 0.14);
}
.shop-chat.muse-ai .shop-chat-avatar.muse {
  background:
    radial-gradient(circle at 30% 25%, #f0d9a0, transparent 55%),
    linear-gradient(145deg, #d4b36a, #a07830);
  box-shadow: 0 0 0 2px rgba(240, 217, 160, 0.28), 0 8px 18px rgba(0, 0, 0, 0.18);
}

@media (max-width: 520px) {
  .shop-chat { right: 0.55rem; bottom: 0.55rem; }
  .shop-chat-fab-copy { display: none; }
  .shop-chat-fab { padding: 0.45rem; }
  .shop-chat-fab-orbit.delay,
  .shop-chat-fab-aura { display: none; }
  .shop-chat-fab { animation: none; }
  .shop-chat-panel {
    border-radius: 1.15rem;
    height: min(42rem, calc(100vh - 3.2rem));
    width: min(100vw - 0.7rem, 25rem);
  }
  .shop-chat-welcome-lead { font-size: 0.98rem; }
}

@media (prefers-reduced-motion: reduce) {
  .shop-chat-fab,
  .shop-chat-fab-aura,
  .shop-chat-fab-orbit,
  .shop-chat-fab-shimmer::after,
  .shop-chat-fab-spark,
  .shop-chat-badge,
  .shop-chat.open .shop-chat-panel,
  .shop-chat-row,
  .shop-chat-dots i,
  .shop-chat.muse-ai .shop-chat-avatar.muse {
    animation: none !important;
  }
}

/* Final mobile header/menu guarantees (wins over earlier layout blocks). */
@media (max-width: 960px) {
  .shop-header .shop-menu-toggle {
    display: inline-flex !important;
  }

  .shop-header .shop-brand {
    min-width: 0;
    max-width: 100%;
  }

  .shop-header .brand-mark,
  .shop-header .brand-mark-compact,
  .shop-header .brand-lockup {
    height: 2.35rem !important;
    max-width: min(9.25rem, 36vw) !important;
  }

  .shop-header.menu-open .shop-mobile-nav {
    display: flex !important;
    position: fixed !important;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(20.5rem, 88vw);
    z-index: 140 !important;
  }

  .shop-header.menu-open .shop-menu-backdrop {
    display: block !important;
    z-index: 130 !important;
  }
}

@media (max-width: 480px) {
  .shop-header .brand-mark,
  .shop-header .brand-mark-compact,
  .shop-header .brand-lockup {
    height: 2.1rem !important;
    max-width: min(8rem, 32vw) !important;
  }

  .shop-tools .shop-icon-btn,
  .shop-tools .shop-cart-link,
  .shop-header .shop-menu-toggle,
  .shop-header .mobile-search-toggle {
    width: 2.2rem;
    height: 2.2rem;
    min-width: 2.2rem;
    min-height: 2.2rem;
  }
}

/* —— Floating promo card (left, sliding) —— */
.promo-float {
  position: fixed;
  z-index: 75;
  left: max(1rem, env(safe-area-inset-left, 0px));
  right: auto;
  top: auto;
  bottom: max(1.2rem, env(safe-area-inset-bottom, 0px));
  width: min(18.75rem, calc(100vw - 2rem));
  max-width: calc(100vw - 2rem);
  margin: 0;
  pointer-events: none;
  transform: none; /* keep fixed to viewport */
}
.promo-float-stage {
  position: relative;
  pointer-events: auto;
  overflow: hidden;
  border-radius: 1rem;
}
.promo-float-card {
  position: relative;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  min-height: 7.4rem;
  border-radius: 1rem;
  color: var(--ink);
  background:
    radial-gradient(ellipse 80% 90% at 12% 50%, rgba(194, 147, 65, 0.1), transparent 55%),
    linear-gradient(145deg, #fbfaf8 0%, #f7f3ec 55%, #f3eee4 100%);
  border: 1px solid rgba(25, 63, 60, 0.1);
  box-shadow: 0 16px 28px rgba(25, 63, 60, 0.14);
}
.promo-float-feather {
  position: relative;
  flex: 0 0 4.6rem;
  overflow: hidden;
  background: transparent;
}
.promo-float-feather img {
  position: absolute;
  inset: -18% -40% -18% -28%;
  width: 170%;
  height: 136%;
  object-fit: cover;
  object-position: 45% 40%;
  opacity: 0.55;
  transform: rotate(-8deg) scale(1.05);
  filter: saturate(1.15) brightness(1.18) contrast(0.98);
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 70% 80% at 45% 50%, #000 35%, transparent 78%);
  mask-image: radial-gradient(ellipse 70% 80% at 45% 50%, #000 35%, transparent 78%);
}
.promo-float-feather::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 35%, rgba(251, 250, 248, 0.88) 100%);
  pointer-events: none;
}
.promo-float-body {
  position: relative;
  z-index: 2;
  flex: 1;
  min-width: 0;
  padding: 0.85rem 0.85rem 0.75rem 0.35rem;
}
.promo-float-card.enter {
  animation: promo-slide-in 0.48s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.promo-float-card.exit {
  animation: promo-slide-out 0.32s cubic-bezier(0.4, 0, 1, 1) both;
}
@keyframes promo-slide-in {
  from { opacity: 0; transform: translateX(-110%); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes promo-slide-out {
  from { opacity: 1; transform: translateX(0); }
  to   { opacity: 0; transform: translateX(-110%); }
}
.promo-float-ribbon {
  display: inline-flex;
  align-items: center;
  margin: 0 0 0.35rem;
  padding: 0.18rem 0.42rem;
  border-radius: 0.28rem;
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #1a2e2b;
  background: linear-gradient(135deg, #e8c97a, #c9a962);
}
.promo-float-close {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
  z-index: 3;
  width: 1.55rem;
  height: 1.55rem;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  cursor: pointer;
  color: var(--ink-soft);
  background: rgba(25, 63, 60, 0.06);
  transition: background 0.2s ease, color 0.2s ease;
}
.promo-float-close:hover {
  background: rgba(25, 63, 60, 0.12);
  color: var(--ink);
}
.promo-float-rule {
  margin: 0 1.4rem 0.18rem 0;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-deep, #b08a3c);
  font-weight: 700;
}
.promo-float-card h3 {
  margin: 0 1.35rem 0.5rem 0;
  font-family: var(--font-display), serif;
  font-weight: 400;
  font-size: 1.02rem;
  line-height: 1.2;
  color: var(--ink);
}
.promo-float-code-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.promo-float-code {
  flex: 1;
  min-width: 0;
  padding: 0.4rem 0.5rem;
  border-radius: 0.45rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--ink);
  background: rgba(25, 63, 60, 0.05);
  border: 1px dashed rgba(194, 147, 65, 0.55);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.promo-float-copy {
  flex-shrink: 0;
  border: 0;
  cursor: pointer;
  font: inherit;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 0.48rem 0.7rem;
  border-radius: 0.45rem;
  color: #fbfaf8;
  background: linear-gradient(145deg, #163734, #245550);
  transition: transform 0.2s ease, filter 0.2s ease;
}
.promo-float-copy:hover {
  transform: translateY(-1px);
  filter: brightness(1.06);
}
.promo-float-copy.ok {
  background: linear-gradient(135deg, #3d8b66, #2d6a4f);
}
.promo-float-dots {
  display: flex;
  gap: 0.28rem;
  justify-content: flex-start;
  margin-top: 0.5rem;
}
.promo-float-dots span {
  width: 0.32rem;
  height: 0.32rem;
  border-radius: 50%;
  background: rgba(25, 63, 60, 0.2);
  transition: background 0.2s ease, transform 0.2s ease;
}
.promo-float-dots span.on {
  background: var(--gold-deep, #b08a3c);
  transform: scale(1.2);
}

/* Tablet / mobile: compact card pinned to bottom-left, clear of Muse FAB */
@media (max-width: 900px) {
  .promo-float {
    left: max(0.65rem, env(safe-area-inset-left, 0px));
    bottom: max(0.85rem, env(safe-area-inset-bottom, 0px));
    width: min(14.25rem, calc(100vw - 5.5rem));
    max-width: calc(100vw - 5.5rem);
  }
  .promo-float-stage,
  .promo-float-card {
    border-radius: 0.8rem;
  }
  .promo-float-card {
    min-height: 0;
    box-shadow: 0 12px 22px rgba(25, 63, 60, 0.16);
  }
  .promo-float-feather { flex: 0 0 3.1rem; }
  .promo-float-feather img {
    opacity: 0.5;
    inset: -22% -50% -22% -35%;
  }
  .promo-float-body {
    padding: 0.55rem 0.6rem 0.5rem 0.15rem;
  }
  .promo-float-ribbon {
    font-size: 0.48rem;
    padding: 0.1rem 0.32rem;
    margin-bottom: 0.18rem;
  }
  .promo-float-rule {
    font-size: 0.52rem;
    margin: 0 1.15rem 0.12rem 0;
  }
  .promo-float-card h3 {
    font-size: 0.84rem;
    margin: 0 1.15rem 0.35rem 0;
  }
  .promo-float-code {
    font-size: 0.62rem;
    padding: 0.28rem 0.35rem;
    letter-spacing: 0.04em;
  }
  .promo-float-copy {
    font-size: 0.56rem;
    padding: 0.34rem 0.48rem;
  }
  .promo-float-close {
    width: 1.35rem;
    height: 1.35rem;
    top: 0.22rem;
    right: 0.22rem;
  }
  .promo-float-dots { margin-top: 0.32rem; }
  .promo-float-dots span {
    width: 0.28rem;
    height: 0.28rem;
  }
}

@media (max-width: 480px) {
  .promo-float {
    left: max(0.5rem, env(safe-area-inset-left, 0px));
    bottom: max(0.7rem, env(safe-area-inset-bottom, 0px));
    width: min(12.75rem, calc(100vw - 4.75rem));
    max-width: calc(100vw - 4.75rem);
  }
  .promo-float-feather { flex-basis: 2.65rem; }
  .promo-float-card h3 { font-size: 0.78rem; }
  .promo-float-code { font-size: 0.58rem; }
  .promo-float-copy { font-size: 0.52rem; padding: 0.3rem 0.42rem; }
}

@media (prefers-reduced-motion: reduce) {
  .promo-float-card.enter,
  .promo-float-card.exit { animation: none; }
}


/* ==========================================================================
   KRIDHA ADVANCED E-COMMERCE SUITE: WISHLIST, MINI-CART, QUICK-VIEW, COMPARE,
   CURRENCY, AUTOCOMPLETE SEARCH, PINCODE ESTIMATOR & GST TAX INVOICE
   ========================================================================== */

/* --- Currency Switcher --- */
.currency-menu-wrapper {
  position: relative;
  display: inline-block;
}
.currency-trigger-btn {
  background: transparent;
  border: 1px solid rgba(194, 147, 65, 0.35);
  border-radius: 999px;
  color: #1a4d8c;
  padding: 0.32rem 0.65rem;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.currency-trigger-btn:hover {
  border-color: #c29341;
  background: rgba(194, 147, 65, 0.08);
}
.currency-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.1);
  box-shadow: 0 12px 32px rgba(22, 58, 54, 0.16);
  border-radius: 8px;
  min-width: 13rem;
  padding: 0.5rem 0;
  z-index: 1200;
  animation: fadeInDown 0.18s ease-out;
}
.currency-dropdown-title {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #888;
  padding: 0.4rem 0.9rem 0.3rem;
  margin: 0;
  border-bottom: 1px solid #f0f0f0;
}
.currency-option {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.9rem;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  font-size: 0.82rem;
  color: #222;
  transition: background 0.15s ease;
}
.currency-option:hover {
  background: rgba(194, 147, 65, 0.09);
  color: #c29341;
}
.currency-option.active {
  background: rgba(194, 147, 65, 0.14);
  font-weight: 600;
  color: #163a36;
}
.currency-option .symbol {
  margin-left: auto;
  font-weight: 600;
  color: #c29341;
}

/* --- Predictive Search Autocomplete Dropdown --- */
.desktop-search-wrapper {
  position: relative;
}
.search-predictive-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 1100;
}
.search-predictive-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1;
}
.search-predictive-content {
  position: relative;
  z-index: 2;
  background: #ffffff;
  border: 1px solid rgba(194, 147, 65, 0.28);
  border-radius: 10px;
  box-shadow: 0 16px 40px rgba(22, 58, 54, 0.15);
  padding: 1rem;
  max-height: 28rem;
  overflow-y: auto;
}
.search-section-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #8b6b23;
  margin: 0 0 0.5rem;
  font-weight: 600;
}
.search-trending-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.search-tag {
  background: #f7f5f0;
  border: 1px solid #e8e2d5;
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.78rem;
  color: #2a3530;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  transition: all 0.2s;
}
.search-tag:hover {
  background: #c29341;
  color: #fff;
  border-color: #c29341;
}
.search-category-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.9rem;
}
.search-chip {
  background: rgba(26, 77, 140, 0.08);
  color: #1a4d8c;
  border-radius: 6px;
  padding: 0.35rem 0.65rem;
  font-size: 0.8rem;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.15s;
}
.search-chip:hover {
  background: #1a4d8c;
  color: #fff;
}
.search-products-list {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.search-product-item {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.45rem 0.5rem;
  border-radius: 8px;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s;
}
.search-product-item:hover {
  background: #fbf9f4;
}
.search-product-item img {
  width: 44px;
  height: 58px;
  object-fit: cover;
  border-radius: 4px;
}
.search-prod-info {
  display: flex;
  flex-direction: column;
}
.search-prod-weave {
  font-size: 0.7rem;
  text-transform: uppercase;
  color: #c29341;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.search-prod-name {
  font-size: 0.86rem;
  color: #163a36;
  line-height: 1.25;
}
.search-prod-price {
  font-size: 0.82rem;
  font-weight: 600;
  color: #222;
  margin-top: 0.2rem;
}
.search-view-all {
  margin-top: 0.7rem;
  width: 100%;
  text-align: center;
  font-size: 0.82rem;
  color: #c29341;
  font-weight: 600;
}

/* --- Product Card Floating Actions & Quick View Hover --- */
.product-card-media-wrapper {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
}
.product-card-floating-actions {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  z-index: 5;
}
.card-action-btn {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #444;
  transition: all 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.card-action-btn:hover {
  transform: scale(1.1);
  background: #ffffff;
  color: #c29341;
}
.card-action-btn.active {
  color: #c29341;
  background: #ffffff;
  border-color: #c29341;
}
.card-quickview-btn {
  position: absolute;
  bottom: 0.6rem;
  left: 50%;
  transform: translateX(-50%) translateY(120%);
  background: rgba(22, 58, 54, 0.92);
  backdrop-filter: blur(4px);
  color: #ffffff;
  border: 1px solid rgba(194, 147, 65, 0.5);
  border-radius: 999px;
  padding: 0.45rem 1.2rem;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
  z-index: 6;
  white-space: nowrap;
}
.product-card:hover .card-quickview-btn {
  transform: translateX(-50%) translateY(0);
}
.card-quickview-btn:hover {
  background: #c29341;
  color: #ffffff;
  border-color: #c29341;
}
.product-card-top-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.2rem;
}
.hurry-tag {
  font-size: 0.68rem;
  background: rgba(194, 147, 65, 0.15);
  color: #a06e18;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  font-weight: 600;
}

/* --- Slide-Out Cart Drawer --- */
.cart-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(14, 25, 23, 0.58);
  backdrop-filter: blur(3px);
  z-index: 1999;
  animation: fadeIn 0.25s ease-out;
}
.cart-drawer-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(28rem, 100vw);
  background: #ffffff;
  box-shadow: -8px 0 36px rgba(0, 0, 0, 0.25);
  z-index: 2000;
  display: flex;
  flex-direction: column;
  animation: slideInRight 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes slideInRight {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}
.cart-drawer-header {
  padding: 1.2rem 1.4rem;
  border-bottom: 1px solid #f0eae1;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.cart-drawer-title-group {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
}
.cart-drawer-title-group h3 {
  margin: 0;
  font-family: 'Baskervville', serif;
  font-size: 1.35rem;
  color: #163a36;
}
.cart-drawer-count {
  font-size: 0.85rem;
  color: #888;
}
.cart-drawer-close {
  background: none;
  border: none;
  color: #555;
  cursor: pointer;
  padding: 0.3rem;
  border-radius: 50%;
  transition: all 0.15s;
}
.cart-drawer-close:hover {
  background: #f0f0f0;
  color: #163a36;
}
.cart-drawer-shipping-meter {
  padding: 0.8rem 1.4rem;
  background: #faf8f4;
  border-bottom: 1px solid #f0eae1;
}
.meter-text {
  font-size: 0.82rem;
  color: #333;
  margin: 0 0 0.45rem;
}
.meter-text.unlocked {
  color: #1f6b5a;
  font-weight: 600;
}
.meter-track {
  width: 100%;
  height: 6px;
  background: #e6dfd3;
  border-radius: 999px;
  overflow: hidden;
}
.meter-fill {
  height: 100%;
  background: linear-gradient(90deg, #c29341, #dfb466);
  border-radius: 999px;
  transition: width 0.4s ease;
}
.cart-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 1.2rem 1.4rem;
}
.cart-drawer-empty {
  text-align: center;
  padding: 3rem 1rem;
}
.empty-icon-circle {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(194, 147, 65, 0.12);
  color: #c29341;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.2rem;
}
.cart-drawer-empty h4 {
  font-family: 'Baskervville', serif;
  font-size: 1.25rem;
  color: #163a36;
  margin-bottom: 0.5rem;
}
.cart-drawer-empty p {
  color: #777;
  font-size: 0.88rem;
  margin-bottom: 1.4rem;
}
.cart-drawer-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.cart-drawer-item {
  display: flex;
  gap: 1rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid #f4efe8;
}
.drawer-item-img {
  width: 76px;
  height: 100px;
  flex-shrink: 0;
  border-radius: 6px;
  overflow: hidden;
}
.drawer-item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.drawer-item-info {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.drawer-item-weave {
  font-size: 0.68rem;
  text-transform: uppercase;
  color: #c29341;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.drawer-item-title {
  margin: 0.2rem 0;
  font-size: 0.92rem;
  line-height: 1.3;
}
.drawer-item-title a {
  color: #163a36;
  text-decoration: none;
}
.drawer-item-size {
  font-size: 0.76rem;
  color: #777;
}
.drawer-item-price {
  font-weight: 600;
  color: #222;
  font-size: 0.9rem;
  margin: 0.35rem 0 0.5rem;
}
.drawer-item-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
}
.drawer-qty-stepper {
  display: inline-flex;
  align-items: center;
  border: 1px solid #dcd5c9;
  border-radius: 4px;
}
.drawer-qty-stepper button {
  background: none;
  border: none;
  padding: 0.25rem 0.55rem;
  cursor: pointer;
  font-size: 0.85rem;
  color: #555;
}
.drawer-qty-stepper span {
  padding: 0.25rem 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
}
.drawer-remove-btn {
  background: none;
  border: none;
  color: #999;
  cursor: pointer;
  padding: 0.35rem;
  transition: color 0.15s;
}
.drawer-remove-btn:hover {
  color: #b33939;
}
.cart-drawer-footer {
  padding: 1.2rem 1.4rem;
  border-top: 1px solid #f0eae1;
  background: #ffffff;
}
.drawer-summary-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.9rem;
  margin-bottom: 0.45rem;
  color: #444;
}
.drawer-summary-row.total {
  font-size: 1.1rem;
  color: #163a36;
  font-weight: 600;
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px dashed #e6ded2;
}
.drawer-summary-row.discount {
  color: #2d8a4e;
}
.drawer-tax-note {
  font-size: 0.74rem;
  color: #888;
  margin: 0.3rem 0 1rem;
}
.drawer-button-group {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

/* --- Quick View Modal --- */
.quickview-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(14, 25, 23, 0.65);
  backdrop-filter: blur(4px);
  z-index: 2100;
  animation: fadeIn 0.2s ease-out;
}
.quickview-modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(58rem, 95vw);
  max-height: 90vh;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
  z-index: 2101;
  overflow-y: auto;
  animation: scaleIn 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes scaleIn {
  from { opacity: 0; transform: translate(-50%, -48%) scale(0.96); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
.quickview-close-btn {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 50%;
  width: 2.2rem;
  height: 2.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  color: #444;
  transition: all 0.15s;
}
.quickview-close-btn:hover {
  background: #163a36;
  color: #ffffff;
}
.quickview-content {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 2rem;
  padding: 2rem;
}
@media (max-width: 768px) {
  .quickview-content { grid-template-columns: 1fr; padding: 1.2rem; }
}
.quickview-gallery {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.quickview-hero {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  background: #fbf9f4;
  aspect-ratio: 3/4;
}
.quickview-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.quickview-badges {
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  display: flex;
  gap: 0.4rem;
}
.quickview-thumbs {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
}
.quickview-thumb {
  width: 60px;
  height: 75px;
  border-radius: 4px;
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
  padding: 0;
  background: none;
}
.quickview-thumb.active {
  border-color: #c29341;
}
.quickview-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.quickview-details {
  display: flex;
  flex-direction: column;
}
.quickview-kicker {
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #c29341;
  font-weight: 600;
}
.quickview-title {
  font-family: 'Baskervville', serif;
  font-size: 1.7rem;
  color: #163a36;
  margin: 0.3rem 0;
  line-height: 1.25;
}
.quickview-sku {
  font-size: 0.78rem;
  color: #888;
  margin-bottom: 0.8rem;
}
.quickview-price-row {
  display: flex;
  align-items: baseline;
  gap: 0.8rem;
  margin-bottom: 0.6rem;
}
.quickview-price {
  font-size: 1.45rem;
  font-weight: 700;
  color: #163a36;
}
.quickview-compare {
  font-size: 1.05rem;
  color: #888;
  text-decoration: line-through;
}
.quickview-discount-pill {
  background: rgba(194, 147, 65, 0.15);
  color: #a06e18;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
}
.quickview-rating {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: #444;
  margin-bottom: 0.8rem;
}
.quickview-stars {
  color: #c29341;
}
.quickview-blurb {
  font-size: 0.9rem;
  line-height: 1.5;
  color: #555;
  margin-bottom: 1.2rem;
}
.quickview-size-section {
  margin-bottom: 1rem;
}
.quickview-label {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  color: #444;
  margin-bottom: 0.45rem;
  display: block;
}
.quickview-sizes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.quickview-size-btn {
  background: #ffffff;
  border: 1px solid #dcd5c9;
  border-radius: 4px;
  padding: 0.4rem 0.85rem;
  font-size: 0.82rem;
  cursor: pointer;
  transition: all 0.15s;
}
.quickview-size-btn.active {
  border-color: #163a36;
  background: #163a36;
  color: #ffffff;
}
.quickview-size-btn.sold {
  opacity: 0.4;
  text-decoration: line-through;
  cursor: not-allowed;
}
.quickview-stock-indicator {
  margin-bottom: 1.2rem;
  font-size: 0.84rem;
}
.stock-status.in { color: #2d8a4e; font-weight: 600; }
.stock-status.hurry { color: #d35400; font-weight: 600; }
.stock-status.sold { color: #c0392b; font-weight: 600; }
.quickview-buy-actions {
  display: flex;
  gap: 0.6rem;
  align-items: center;
  margin-bottom: 1.2rem;
}
.quickview-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid #dcd5c9;
  border-radius: 4px;
  height: 2.75rem;
}
.quickview-qty button {
  background: none;
  border: none;
  padding: 0.4rem 0.75rem;
  cursor: pointer;
  font-size: 1rem;
}
.quickview-qty span {
  padding: 0.4rem 0.65rem;
  font-size: 0.95rem;
  font-weight: 600;
}
.quickview-atc {
  flex: 1;
  height: 2.75rem;
}
.quickview-buy-now {
  flex: 1;
  height: 2.75rem;
  background: #163a36;
  border-color: #163a36;
}
.quickview-buy-now:hover {
  background: #1f6b5a;
}
.quickview-extra-actions {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid #f0eae1;
}
.quickview-icon-action {
  background: none;
  border: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.84rem;
  color: #666;
  cursor: pointer;
  transition: color 0.15s;
}
.quickview-icon-action:hover, .quickview-icon-action.active {
  color: #c29341;
}
.quickview-full-link {
  margin-left: auto;
  font-size: 0.84rem;
  font-weight: 600;
  color: #1a4d8c;
  text-decoration: none;
}
.quickview-full-link:hover {
  text-decoration: underline;
}

/* --- Compare Floating Dock & Matrix --- */
.compare-dock {
  position: fixed;
  bottom: 1.2rem;
  left: 50%;
  transform: translateX(-50%);
  background: #ffffff;
  border: 1px solid rgba(194, 147, 65, 0.4);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.22);
  border-radius: 12px;
  z-index: 1800;
  width: min(44rem, 94vw);
  overflow: hidden;
  animation: slideUp 0.25s ease-out;
}
@keyframes slideUp {
  from { transform: translate(-50%, 100%); opacity: 0; }
  to { transform: translate(-50%, 0); opacity: 1; }
}
.compare-dock.minimized .compare-dock-body {
  display: none;
}
.compare-dock-inner {
  padding: 0.7rem 1.2rem;
}
.compare-dock-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.compare-dock-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #163a36;
}
.compare-dock-controls {
  display: flex;
  gap: 0.8rem;
}
.compare-dock-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  margin-top: 0.8rem;
  padding-top: 0.8rem;
  border-top: 1px solid #f0eae1;
}
.compare-dock-thumbnails {
  display: flex;
  gap: 0.8rem;
}
.compare-dock-thumb {
  position: relative;
  width: 58px;
  height: 74px;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid #e0d8cc;
}
.compare-dock-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.compare-thumb-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(0,0,0,0.65);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.compare-thumb-title {
  display: none;
}
.compare-dock-thumb.empty {
  border: 1px dashed #d0c8bb;
  background: #faf8f5;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 0.65rem;
  color: #999;
  padding: 0.2rem;
}
.compare-launch-btn {
  padding: 0.55rem 1.2rem;
  font-size: 0.85rem;
  white-space: nowrap;
}

/* Compare Matrix Page */
.compare-table-wrapper {
  overflow-x: auto;
  background: #ffffff;
  border: 1px solid #e8e2d5;
  border-radius: 12px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.04);
}
.compare-table {
  width: 100%;
  border-collapse: collapse;
}
.compare-table th, .compare-table td {
  padding: 1rem 1.2rem;
  border-bottom: 1px solid #eee7db;
  text-align: left;
  vertical-align: top;
  font-size: 0.9rem;
}
.matrix-label {
  font-weight: 600;
  color: #163a36;
  width: 14rem;
  background: #fbf9f5;
}
.matrix-card {
  position: relative;
  text-align: center;
  min-width: 15rem;
}
.matrix-remove {
  position: absolute;
  top: 0;
  right: 0;
  background: #eee;
  border: none;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  cursor: pointer;
  font-size: 14px;
}
.matrix-img-link img {
  width: 140px;
  height: 180px;
  object-fit: cover;
  border-radius: 6px;
  margin: 0 auto 0.6rem;
  display: block;
}
.matrix-weave {
  font-size: 0.72rem;
  text-transform: uppercase;
  color: #c29341;
  font-weight: 600;
}
.matrix-title {
  font-size: 1.05rem;
  margin: 0.25rem 0;
}
.matrix-title a {
  color: #163a36;
  text-decoration: none;
}
.matrix-price {
  font-weight: 700;
  font-size: 1.1rem;
  color: #163a36;
  margin-bottom: 0.8rem;
}

/* --- Wishlist Page & Card Styles --- */
.wishlist-hero {
  margin-bottom: 2rem;
}
.wishlist-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.wishlist-guest-banner {
  margin-top: 1.2rem;
  padding: 1rem 1.4rem;
  background: rgba(194, 147, 65, 0.1);
  border: 1px solid rgba(194, 147, 65, 0.3);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.guest-banner-text strong {
  display: block;
  color: #163a36;
}
.guest-banner-text span {
  font-size: 0.85rem;
  color: #555;
}
.guest-banner-actions {
  display: flex;
  gap: 0.6rem;
}
.wishlist-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: 1.8rem;
}
.wishlist-card {
  background: #ffffff;
  border: 1px solid #ebe5dc;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: all 0.25s ease;
}
.wishlist-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(22, 58, 54, 0.12);
}
.wishlist-card-media {
  position: relative;
  aspect-ratio: 3/4;
}
.wishlist-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.wishlist-card-remove {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #666;
  transition: all 0.15s;
}
.wishlist-card-remove:hover {
  background: #ffffff;
  color: #b33939;
}
.wishlist-card-content {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.wishlist-card-content h3 {
  font-size: 1.05rem;
  margin: 0.25rem 0 0.4rem;
  line-height: 1.3;
}
.wishlist-card-content h3 a {
  color: #163a36;
  text-decoration: none;
}
.wishlist-stock-status {
  margin: 0.4rem 0 1rem;
  font-size: 0.8rem;
}

/* --- PDP Delivery Pincode Checker & Social Share --- */
.pdp-delivery-check {
  margin: 1.4rem 0;
  padding: 1.2rem;
  background: #faf8f5;
  border: 1px solid #e8e2d5;
  border-radius: 8px;
}
.pdp-delivery-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.86rem;
  font-weight: 600;
  color: #163a36;
  margin: 0 0 0.8rem;
}
.pdp-pincode-input-row {
  display: flex;
  gap: 0.6rem;
}
.pdp-pin-box {
  max-width: 14rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}
.pdp-pin-feedback {
  margin-top: 0.8rem;
  padding-top: 0.8rem;
  border-top: 1px solid #e8e2d5;
  font-size: 0.84rem;
}
.pdp-pin-feedback.success {
  color: #163a36;
}
.pdp-pin-feedback.error {
  color: #b33939;
}
.pin-dest {
  font-weight: 600;
  color: #1f6b5a;
  margin: 0 0 0.2rem;
}
.pin-date, .pin-cod {
  margin: 0.2rem 0;
  color: #444;
}
.pdp-share-bar {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin: 1.2rem 0;
  flex-wrap: wrap;
}
.share-label {
  font-size: 0.82rem;
  color: #777;
}
.share-btn {
  background: #ffffff;
  border: 1px solid #dcd5c9;
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.78rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  transition: all 0.15s;
  color: #444;
}
.share-btn.whatsapp:hover {
  background: #25D366;
  color: #fff;
  border-color: #25D366;
}
.share-btn.copy-link:hover {
  background: #163a36;
  color: #fff;
  border-color: #163a36;
}

/* --- Checkout Multi-Payment Styles --- */
.payment-details-box {
  margin-top: 1rem;
  padding: 1.2rem;
  background: #fbf9f4;
  border: 1px solid #e6ded2;
  border-radius: 8px;
}
.payment-details-box h4 {
  font-size: 0.92rem;
  font-weight: 600;
  color: #163a36;
  margin: 0 0 0.8rem;
}
.upi-inner-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.4rem;
  align-items: center;
}
@media (max-width: 600px) {
  .upi-inner-grid { grid-template-columns: 1fr; }
}
.upi-qr-card {
  text-align: center;
}
.qr-placeholder {
  position: relative;
  display: inline-block;
  padding: 8px;
  background: #ffffff;
  border: 2px solid #c29341;
  border-radius: 8px;
}
.qr-badge {
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%);
  background: #163a36;
  color: #c29341;
  font-size: 0.55rem;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 3px;
  letter-spacing: 0.05em;
}
.qr-label {
  font-size: 0.72rem;
  color: #666;
  margin: 0.4rem 0 0;
}
.bank-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: 0.6rem;
}
.bank-chip {
  background: #ffffff;
  border: 1px solid #dcd5c9;
  border-radius: 6px;
  padding: 0.6rem 0.8rem;
  font-size: 0.82rem;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s;
}
.bank-chip.active {
  border-color: #c29341;
  background: rgba(194, 147, 65, 0.12);
  font-weight: 600;
  color: #163a36;
}
.checkout-assurance {
  font-size: 0.76rem;
  color: #777;
  text-align: center;
  margin-top: 0.8rem;
}

/* --- GST Tax Invoice Page Styling --- */
.invoice-container {
  max-width: 54rem;
  margin: 2rem auto;
  padding: 0 1rem;
}
.invoice-actions {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.tax-invoice-paper {
  background: #ffffff;
  border: 1px solid #d8d0c2;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  padding: 3rem;
  border-radius: 4px;
  color: #111;
  font-family: 'Outfit', sans-serif;
}
.invoice-header {
  display: flex;
  justify-content: space-between;
  border-bottom: 2px solid #163a36;
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
}
.invoice-subtitle {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #163a36;
  margin: 0.5rem 0 0.2rem;
}
.invoice-address-line, .invoice-tax-meta {
  font-size: 0.78rem;
  color: #555;
  margin: 0.15rem 0;
}
.invoice-doc-type {
  text-align: right;
}
.invoice-badge {
  display: inline-block;
  background: #163a36;
  color: #ffffff;
  padding: 0.25rem 0.85rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 3px;
}
.invoice-original-stamp {
  font-size: 0.7rem;
  text-transform: uppercase;
  color: #888;
  margin: 0.25rem 0 0.6rem;
}
.invoice-meta-table {
  font-size: 0.82rem;
  text-align: right;
}
.invoice-meta-table div {
  margin: 0.2rem 0;
}
.invoice-parties-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-bottom: 1.8rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid #eee;
}
.party-heading {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #c29341;
  margin: 0 0 0.5rem;
  font-weight: 700;
}
.party-name {
  font-size: 1rem;
  font-weight: 700;
  color: #163a36;
  margin: 0 0 0.3rem;
}
.party-address, .party-contact {
  font-size: 0.84rem;
  line-height: 1.45;
  color: #444;
  margin: 0;
}
.invoice-items-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.8rem;
}
.invoice-items-table th, .invoice-items-table td {
  padding: 0.7rem 0.8rem;
  font-size: 0.85rem;
  border-bottom: 1px solid #e0d9cf;
}
.invoice-items-table th {
  background: #f7f4ee;
  color: #163a36;
  font-weight: 600;
}
.invoice-items-table .num {
  text-align: right;
}
.item-weave-meta {
  display: block;
  font-size: 0.74rem;
  color: #777;
}
.invoice-items-table tfoot td {
  border-bottom: none;
  font-size: 0.88rem;
}
.grand-total-row td {
  border-top: 2px solid #163a36 !important;
  border-bottom: 2px solid #163a36 !important;
  font-size: 1.05rem !important;
  color: #163a36;
}
.invoice-bottom-meta {
  display: flex;
  justify-content: space-between;
  margin-top: 1.5rem;
  padding-top: 1.2rem;
  border-top: 1px solid #eee;
}
.amount-in-words p {
  font-size: 0.78rem;
  color: #777;
  margin: 0 0 0.2rem;
}
.amount-in-words strong {
  font-size: 0.9rem;
  color: #163a36;
}
.signature-box {
  text-align: right;
}
.auth-sign {
  font-size: 0.78rem;
  color: #444;
  margin: 0 0 0.5rem;
}
.stamp-mark {
  display: inline-block;
  border: 2px dashed #c29341;
  color: #c29341;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.4rem 1.2rem;
  border-radius: 4px;
  transform: rotate(-4deg);
}
.sign-caption {
  font-size: 0.72rem;
  color: #888;
  margin: 0.4rem 0 0;
}
.invoice-footer {
  margin-top: 2.5rem;
  padding-top: 1rem;
  border-top: 1px dashed #dcd5c9;
  text-align: center;
  font-size: 0.72rem;
  color: #888;
}

@media print {
  body * {
    visibility: hidden;
  }
  .tax-invoice-paper, .tax-invoice-paper * {
    visibility: visible;
  }
  .tax-invoice-paper {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    margin: 0;
    padding: 1.5cm;
    border: none;
    box-shadow: none;
  }
  .no-print, .shop-chrome, .shop-footer, .shop-chat, .boot-loader {
    display: none !important;
  }
}

/* ==========================================================================
   KRIDHA ATELIER LIVE VIDEO CONSULTATION (WEBRTC)
   ========================================================================== */
.pdp-video-consult-card {
  margin: 1.5rem 0;
  padding: 1.25rem 1.5rem;
  background: linear-gradient(135deg, rgba(22, 58, 54, 0.05) 0%, rgba(194, 147, 65, 0.08) 100%);
  border: 1px solid rgba(194, 147, 65, 0.35);
  border-radius: 12px;
  position: relative;
  overflow: hidden;
}

.pdp-video-consult-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: #c29341;
}

.pdp-vc-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #c29341;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.live-beacon {
  width: 8px;
  height: 8px;
  background: #25d366;
  border-radius: 50%;
  box-shadow: 0 0 0 rgba(37, 211, 102, 0.6);
  animation: beacon-pulse 1.8s infinite;
}

@keyframes beacon-pulse {
  0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7); }
  70% { box-shadow: 0 0 0 8px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

.pdp-vc-content h5 {
  font-family: var(--font-heading, "Baskervville", serif);
  font-size: 1.2rem;
  color: #163a36;
  margin-bottom: 0.4rem;
}

.pdp-vc-content p {
  font-size: 0.88rem;
  line-height: 1.45;
  color: #555;
  margin-bottom: 0.9rem;
}

.pdp-vc-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.6rem 1.4rem;
  font-size: 0.88rem;
  border-radius: 6px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.quickview-vc-btn {
  color: #c29341 !important;
  font-weight: 600;
}

/* Modal Backdrop & Window */
.kridha-vc-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(10, 16, 15, 0.82);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.kridha-vc-backdrop.is-minimized {
  background: transparent;
  pointer-events: none;
  backdrop-filter: none;
  align-items: flex-end;
  justify-content: flex-end;
}

.kridha-vc-window {
  background: #0f1817;
  color: #e6e4df;
  border: 1px solid rgba(194, 147, 65, 0.45);
  border-radius: 16px;
  width: 94%;
  max-width: 980px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.6);
  position: relative;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.kridha-vc-window--mini {
  pointer-events: auto;
  width: 360px;
  max-height: 280px;
  border-radius: 12px;
  margin: 0 20px 20px 0;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7);
}

.kridha-vc-header {
  background: #0a1110;
  border-bottom: 1px solid rgba(194, 147, 65, 0.25);
  padding: 12px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.kridha-vc-header-brand {
  display: flex;
  align-items: center;
  gap: 10px;
}

.kridha-vc-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c29341;
}

.kridha-vc-status-dot.active {
  background: #25d366;
  box-shadow: 0 0 6px #25d366;
}

.kridha-vc-status-dot.ringing {
  animation: beacon-pulse 1.2s infinite;
}

.kridha-vc-title {
  font-size: 0.92rem;
  letter-spacing: 0.05em;
  color: #f3efe6;
}

.kridha-vc-title strong {
  color: #c29341;
  font-family: var(--font-heading, "Baskervville", serif);
  letter-spacing: 0.08em;
}

.kridha-vc-timer-badge {
  font-size: 0.78rem;
  background: rgba(194, 147, 65, 0.18);
  color: #f0c97b;
  border: 1px solid rgba(194, 147, 65, 0.4);
  padding: 2px 8px;
  border-radius: 12px;
  font-family: monospace;
}

.kridha-vc-header-actions {
  display: flex;
  gap: 8px;
}

.kridha-vc-btn-icon {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #e6e4df;
  border-radius: 6px;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.2s;
}

.kridha-vc-btn-icon:hover {
  background: rgba(255, 255, 255, 0.18);
}

.kridha-vc-btn-icon.close-btn:hover {
  background: #d9534f;
  border-color: #d9534f;
  color: #fff;
}

.kridha-vc-body {
  flex: 1;
  overflow-y: auto;
  position: relative;
  background: #0d1615;
}

/* Pre-call Form & Hero */
.kridha-vc-precall {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.kridha-vc-product-hero {
  display: flex;
  gap: 1.25rem;
  padding: 1.25rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(194, 147, 65, 0.2);
  border-radius: 10px;
  align-items: center;
}

.kridha-vc-product-thumb {
  width: 80px;
  height: 100px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid rgba(194, 147, 65, 0.3);
}

.kridha-vc-product-info h4 {
  font-family: var(--font-heading, "Baskervville", serif);
  font-size: 1.3rem;
  color: #f7f3ea;
  margin: 0.3rem 0;
}

.kridha-vc-chip {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  background: rgba(194, 147, 65, 0.2);
  color: #f0c97b;
  padding: 2px 8px;
  border-radius: 4px;
}

.kridha-vc-price {
  font-weight: 600;
  color: #f0c97b;
  margin: 0.2rem 0;
}

.kridha-vc-meta {
  font-size: 0.8rem;
  color: #9ab3af;
  margin: 0;
}

.kridha-vc-precall-form h5 {
  font-family: var(--font-heading, "Baskervville", serif);
  font-size: 1.25rem;
  color: #f3efe6;
  margin-bottom: 0.4rem;
}

.kridha-vc-desc {
  font-size: 0.88rem;
  color: #afc4c0;
  line-height: 1.5;
  margin-bottom: 1.25rem;
}

.kridha-vc-field {
  margin-bottom: 1rem;
}

.kridha-vc-field label {
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  color: #afc4c0;
  margin-bottom: 0.35rem;
}

.kridha-vc-field input {
  background: #09100f !important;
  border: 1px solid rgba(194, 147, 65, 0.3) !important;
  color: #f3efe6 !important;
  border-radius: 6px;
  padding: 0.65rem 0.9rem;
  width: 100%;
}

.kridha-vc-error {
  color: #ff7675;
  font-size: 0.85rem;
}

.kridha-vc-form-actions {
  display: flex;
  gap: 12px;
  margin-top: 1.5rem;
}

.kridha-vc-start-btn {
  padding: 0.75rem 1.8rem;
  font-size: 0.92rem;
  font-weight: 600;
}

/* Ringing State */
.kridha-vc-ringing {
  padding: 3rem 1.5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.kridha-vc-ring-beacon {
  position: relative;
  width: 100px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
}

.pulse-ring {
  position: absolute;
  inset: 0;
  border: 2px solid rgba(194, 147, 65, 0.6);
  border-radius: 50%;
  animation: ring-expand 2s infinite ease-out;
}

.pulse-ring.r2 { animation-delay: 0.6s; }
.pulse-ring.r3 { animation-delay: 1.2s; }

@keyframes ring-expand {
  0% { transform: scale(0.6); opacity: 1; }
  100% { transform: scale(1.6); opacity: 0; }
}

.kridha-vc-center-icon {
  width: 54px;
  height: 54px;
  background: #c29341;
  color: #0d1615;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  position: relative;
  z-index: 2;
}

.kridha-vc-ringing h3 {
  font-family: var(--font-heading, "Baskervville", serif);
  font-size: 1.5rem;
  color: #f7f3ea;
  margin-bottom: 0.4rem;
}

.kridha-vc-ring-sub {
  font-size: 0.95rem;
  color: #afc4c0;
  max-width: 480px;
}

.kridha-vc-ring-tip {
  font-size: 0.8rem;
  color: #7b9490;
  margin-bottom: 1.5rem;
}

.kridha-vc-local-preview-box {
  width: 220px;
  height: 140px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(194, 147, 65, 0.4);
  position: relative;
  background: #000;
  margin-bottom: 1.5rem;
}

.kridha-vc-local-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kridha-vc-preview-label {
  position: absolute;
  bottom: 6px;
  left: 6px;
  background: rgba(0, 0, 0, 0.65);
  font-size: 0.68rem;
  padding: 2px 6px;
  border-radius: 4px;
}

.kridha-vc-cancel-btn {
  background: #c0392b;
  color: #fff;
  border: none;
  padding: 0.6rem 1.6rem;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
}

/* Active Stage */
.kridha-vc-active-grid {
  display: grid;
  grid-template-columns: 1fr 300px;
  min-height: 520px;
  position: relative;
}

.kridha-vc-active-grid.is-mini {
  grid-template-columns: 1fr;
  min-height: 220px;
}

.kridha-vc-remote-stage {
  position: relative;
  background: #050a09;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  min-height: 420px;
}

.kridha-vc-active-grid.is-ringing {
  grid-template-columns: 1fr;
}

.kridha-vc-ringing-overlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 1.5rem;
  text-align: center;
  background: rgba(5, 10, 9, 0.82);
  backdrop-filter: blur(2px);
}

.kridha-vc-ringing-overlay h3 {
  margin: 0.4rem 0 0;
  font-family: var(--font-display), serif;
  font-weight: 400;
  color: #f7f3ea;
}

.kridha-vc-ringing-overlay .kridha-vc-cancel-btn {
  margin-top: 0.75rem;
}

.kridha-vc-remote-video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #050a09;
}

.kridha-vc-screen-tag {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(22, 58, 54, 0.88);
  border: 1px solid #c29341;
  color: #f7f3ea;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.78rem;
  display: flex;
  align-items: center;
  gap: 6px;
}

.kridha-vc-screen-tag .screen-dot {
  width: 7px;
  height: 7px;
  background: #25d366;
  border-radius: 50%;
}

.kridha-vc-stylist-tag {
  position: absolute;
  bottom: 14px;
  left: 14px;
  background: rgba(0, 0, 0, 0.65);
  color: #e6e4df;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 0.75rem;
}

.kridha-vc-local-pip {
  position: absolute;
  bottom: 14px;
  right: 14px;
  width: 130px;
  height: 85px;
  border-radius: 8px;
  border: 2px solid #c29341;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.6);
  background: #000;
}

.kridha-vc-local-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kridha-vc-cam-off-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #111;
  font-size: 0.72rem;
  color: #888;
}

.kridha-vc-local-pip .pip-label {
  position: absolute;
  bottom: 4px;
  left: 4px;
  font-size: 0.65rem;
  background: rgba(0, 0, 0, 0.7);
  padding: 1px 4px;
  border-radius: 3px;
}

/* Side panel */
.kridha-vc-side-panel {
  background: #0b1211;
  border-left: 1px solid rgba(194, 147, 65, 0.2);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.kridha-vc-side-panel h5 {
  font-family: var(--font-heading, "Baskervville", serif);
  font-size: 1.1rem;
  color: #c29341;
  margin: 0;
}

.kridha-vc-side-card {
  display: flex;
  gap: 10px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
  border: 1px solid rgba(194, 147, 65, 0.2);
}

.kridha-vc-side-card img {
  width: 60px;
  height: 75px;
  object-fit: cover;
  border-radius: 4px;
}

.kridha-vc-side-details h6 {
  font-size: 0.9rem;
  color: #f7f3ea;
  margin: 0 0 4px 0;
}

.kridha-vc-side-price {
  font-size: 0.95rem;
  font-weight: 600;
  color: #f0c97b;
  margin: 0;
}

.kridha-vc-side-sku {
  font-size: 0.72rem;
  color: #7b9490;
  margin: 2px 0 0 0;
}

.kridha-vc-side-specs {
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: rgba(0, 0, 0, 0.2);
  padding: 10px;
  border-radius: 6px;
}

.kridha-vc-side-specs .spec-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.8rem;
}

.kridha-vc-side-specs .lbl { color: #8fa8a4; }
.kridha-vc-side-specs .val { color: #f3efe6; font-weight: 500; }

.kridha-vc-buy-btn {
  margin-top: auto;
  width: 100%;
  padding: 0.7rem;
  font-size: 0.9rem;
  font-weight: 600;
}

/* Floating Controls Bar */
.kridha-vc-controls-bar {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(10, 18, 17, 0.9);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(194, 147, 65, 0.4);
  border-radius: 36px;
  padding: 6px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  z-index: 10;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.6);
}

.vc-ctrl-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #f3efe6;
  border-radius: 24px;
  padding: 6px 12px;
  font-size: 0.78rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: all 0.2s;
}

.vc-ctrl-btn:hover {
  background: rgba(255, 255, 255, 0.18);
}

.vc-ctrl-btn.is-off {
  background: rgba(231, 76, 60, 0.25);
  border-color: #e74c3c;
  color: #ff7675;
}

.vc-ctrl-btn.end-call {
  background: #c0392b;
  border-color: #c0392b;
  color: #fff;
  font-weight: 600;
}

.vc-ctrl-btn.end-call:hover {
  background: #e74c3c;
}

/* Ended State */
.kridha-vc-ended {
  padding: 3.5rem 1.5rem;
  text-align: center;
}

.kridha-vc-ended-emblem {
  font-size: 2.2rem;
  color: #c29341;
  margin-bottom: 0.6rem;
}

.kridha-vc-ended h3 {
  font-family: var(--font-heading, "Baskervville", serif);
  font-size: 1.6rem;
  color: #f7f3ea;
  margin-bottom: 0.5rem;
}

.kridha-vc-ended p {
  color: #afc4c0;
  max-width: 440px;
  margin: 0 auto 1.25rem;
}

.kridha-vc-ended-duration {
  font-size: 0.88rem;
  color: #f0c97b !important;
}

.kridha-vc-ended-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
}

/* ==========================================================================
   MOBILE & SMALL SCREEN RESPONSIVE ENHANCEMENTS
   ========================================================================== */
@media (max-width: 960px) {
  .shop-header-utility {
    grid-template-columns: auto 1fr auto !important;
    gap: 0.35rem 0.6rem !important;
    padding: 0.45rem 3vw !important;
  }
}

@media (max-width: 768px) {
  /* Header Layout */
  .shop-header-utility {
    grid-template-columns: auto 1fr auto !important;
    gap: 0.25rem 0.5rem !important;
    padding: 0.4rem 3vw !important;
    min-height: 3.4rem !important;
  }

  .currency-trigger-btn .currency-code {
    display: none !important; /* Hide currency code like 'INR' on mobile, keeping flag and down arrow */
  }

  .currency-trigger-btn {
    padding: 0.22rem 0.45rem !important;
    font-size: 0.76rem !important;
    gap: 0.25rem !important;
  }

  .currency-dropdown {
    right: 0 !important;
    left: auto !important;
    min-width: 170px !important;
  }

  /* Video Call Modal on Mobile */
  .kridha-vc-backdrop {
    padding: 0 !important;
    background: rgba(8, 14, 13, 0.94) !important;
  }

  .kridha-vc-window {
    width: 100vw !important;
    height: 100dvh !important;
    max-width: 100vw !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    border: none !important;
    margin: 0 !important;
  }

  .kridha-vc-active-grid {
    grid-template-columns: 1fr !important;
    height: calc(100dvh - 54px) !important;
    min-height: auto !important;
  }

  .kridha-vc-side-panel {
    display: none !important;
  }

  .kridha-vc-remote-stage {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  .kridha-vc-local-pip {
    width: 90px !important;
    height: 125px !important;
    bottom: 80px !important;
    right: 12px !important;
    border-width: 1.5px !important;
  }

  .kridha-vc-controls-bar {
    bottom: 14px !important;
    padding: 6px 12px !important;
    gap: 10px !important;
    width: calc(100% - 24px) !important;
    max-width: 380px !important;
    justify-content: space-around !important;
  }

  .vc-ctrl-btn {
    padding: 6px 12px !important;
    font-size: 0.74rem !important;
  }

  .vc-ctrl-btn .lbl {
    display: none !important; /* Keep icons clean and uncluttered on mobile */
  }

  .vc-ctrl-btn.end-call .lbl {
    display: inline !important;
  }

  .vc-ctrl-btn .ico {
    font-size: 1.15rem !important;
  }

  /* Product Detail Page Mobile */
  .pdp-page {
    padding-inline: 4vw !important;
    overflow-x: clip;
    max-width: 100%;
  }

  .product-detail,
  .product-detail.pdp-layout,
  .pdp-layout,
  .pdp-info,
  .pdp-gallery,
  .pdp-buy-row,
  .pdp-video-consult-card {
    max-width: 100%;
    min-width: 0;
  }

  .pdp-size-head {
    gap: 0.35rem 0.75rem;
    font-size: 0.82rem;
  }

  .pdp-video-consult-card {
    margin: 1.25rem 0 !important;
    padding: 1rem 1.05rem !important;
  }

  .pdp-vc-content h5 {
    font-size: 1.05rem !important;
  }

  .pdp-vc-btn {
    width: 100% !important;
    justify-content: center !important;
  }

  .pdp-buy-row {
    gap: 0.55rem !important;
  }

  .pdp-buy-row .qty {
    flex: 0 0 auto !important;
  }

  .pdp-buy-row .qty button {
    width: 2.25rem !important;
    height: 2.7rem !important;
  }

  .pdp-atc,
  .pdp-buy-now {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    font-size: 0.78rem !important;
    padding: 0.6rem 0.75rem !important;
  }

  .pdp-icon-action {
    flex: 0 0 2.7rem !important;
    width: 2.7rem !important;
    height: 2.7rem !important;
  }
}

@media (max-width: 540px) {
  /* On small phones, streamline tools so KRIDHA logo has maximum room and never squishes */
  .shop-header-utility {
    gap: 0.2rem 0.35rem !important;
    padding: 0.35rem 2.5vw !important;
  }

  .shop-tools .shop-account-link,
  .shop-tools .shop-account-menu,
  .shop-tools .wishlist-header-btn {
    display: none !important; /* Profile and Wishlist are accessible in mobile hamburger drawer */
  }

  .shop-header-utility {
    width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .shop-header .shop-brand {
    min-width: 0 !important;
    max-width: min(9.5rem, 42vw) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
  }

  .shop-header .brand-mark,
  .shop-header .brand-mark-compact,
  .shop-header .brand-lockup {
    height: 2.1rem !important;
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
  }

  .shop-tools {
    gap: 0.25rem !important;
  }

  .shop-tools .shop-icon-btn,
  .shop-tools .shop-cart-link,
  .shop-header .shop-menu-toggle,
  .shop-header .mobile-search-toggle {
    width: 2.15rem !important;
    height: 2.15rem !important;
    min-width: 2.15rem !important;
    min-height: 2.15rem !important;
    padding: 0 !important;
  }

  .shop-promo-bar {
    font-size: 0.68rem !important;
    padding: 0.35rem 3vw !important;
    letter-spacing: 0.03em !important;
  }
}

.shop-mobile-currency-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0.4rem 1.25rem 0.8rem;
}
.mobile-curr-chip {
  background: rgba(25, 63, 60, 0.05);
  border: 1px solid rgba(25, 63, 60, 0.15);
  border-radius: 20px;
  padding: 4px 10px;
  font-size: 0.76rem;
  color: var(--ink);
  cursor: pointer;
}
.mobile-curr-chip.active {
  background: #163a36;
  color: #fff;
  border-color: #163a36;
}

/* ==========================================================================
   KRIDHA VIDEO CONSULTATION AVAILABILITY & SHOWCASE SECTIONS
   ========================================================================== */

/* PDP Card Availability Variations */
.pdp-video-consult-card.is-offline {
  background: linear-gradient(135deg, rgba(25, 63, 60, 0.03) 0%, rgba(140, 130, 122, 0.06) 100%);
  border-color: rgba(140, 130, 122, 0.25);
}
.pdp-video-consult-card.is-offline::before {
  background: #999;
}
.pdp-vc-badge.pdp-vc-badge-offline {
  color: #777;
}
.offline-dot {
  width: 8px;
  height: 8px;
  background: #a0978f;
  border-radius: 50%;
  display: inline-block;
}
.pdp-vc-hours-tag {
  margin-left: 6px;
  font-size: 0.72rem;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  background: rgba(0, 0, 0, 0.05);
  padding: 2px 7px;
  border-radius: 4px;
}
.pdp-vc-offline-schedule {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  color: #555;
  margin-bottom: 0.9rem;
  padding: 6px 10px;
  background: rgba(0, 0, 0, 0.03);
  border-radius: 6px;
  border-left: 3px solid #c29341;
}
.pdp-vc-btn-disabled {
  background: rgba(0, 0, 0, 0.06);
  color: #888;
  cursor: not-allowed;
  border: 1px solid rgba(0, 0, 0, 0.12);
}

/* Customer Video Modal Offline Notice */
.kridha-vc-offline-notice {
  background: rgba(194, 147, 65, 0.08);
  border: 1px solid rgba(194, 147, 65, 0.35);
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 1.2rem;
}
.offline-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #a07830;
  font-weight: 700;
  margin-bottom: 6px;
}
.offline-msg {
  font-size: 0.86rem;
  color: #444;
  margin: 0 0 8px;
  line-height: 1.4;
}
.offline-hours-box {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  color: #163a36;
}
.kridha-vc-start-btn.is-disabled {
  background: rgba(0, 0, 0, 0.08) !important;
  color: #777 !important;
  cursor: not-allowed;
  border-color: rgba(0, 0, 0, 0.15) !important;
}

/* About Page - Video Concierge Section */
.about-video-concierge {
  margin: 3.5rem 0 2.5rem;
}
.about-vc-banner {
  background: linear-gradient(135deg, #163a36 0%, #1e4d48 60%, #143532 100%);
  color: #fff;
  border-radius: 16px;
  padding: 3rem 3.5rem;
  box-shadow: 0 16px 40px rgba(22, 58, 54, 0.18);
  position: relative;
  overflow: hidden;
}
.about-vc-banner::before {
  content: "";
  position: absolute;
  top: -50px;
  right: -50px;
  width: 260px;
  height: 260px;
  background: radial-gradient(circle, rgba(194, 147, 65, 0.25) 0%, transparent 70%);
  pointer-events: none;
}
.about-vc-badge-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 1rem;
}
.about-vc-banner .shop-kicker {
  color: #d4b36a;
  margin: 0;
}
.about-vc-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(0, 0, 0, 0.3);
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  font-weight: 600;
}
.about-vc-status-pill.online {
  color: #55efc4;
  border: 1px solid rgba(85, 239, 196, 0.4);
}
.about-vc-status-pill.offline {
  color: #ffb8b8;
  border: 1px solid rgba(255, 184, 184, 0.35);
}
.about-vc-banner h2 {
  font-family: var(--font-heading, "Baskervville", serif);
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1.25;
  color: #fff;
  margin: 0 0 1rem;
  max-width: 820px;
}
.about-vc-lead {
  font-size: 1.05rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  max-width: 820px;
  margin-bottom: 2rem;
}
.about-vc-timings-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.25rem;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(194, 147, 65, 0.25);
  border-radius: 10px;
  padding: 1.2rem 1.5rem;
  margin-bottom: 2.2rem;
}
.timing-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.timing-lbl {
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #d4b36a;
}
.timing-val {
  font-size: 0.95rem;
  color: #fff;
  font-weight: 600;
}
.about-vc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.2rem;
}
.about-vc-card {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 1.5rem;
  transition: transform 0.2s, background 0.2s;
}
.about-vc-card:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.1);
}
.vc-card-icon {
  font-size: 1.6rem;
  display: block;
  margin-bottom: 0.8rem;
}
.about-vc-card h3 {
  font-family: var(--font-heading, "Baskervville", serif);
  font-size: 1.15rem;
  color: #fff;
  margin-bottom: 0.5rem;
  font-weight: 500;
}
.about-vc-card p {
  font-size: 0.88rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
}
.about-vc-cta-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
.about-vc-offline-alert {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 0, 0, 0.35);
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 0.88rem;
  color: #ffd8a8;
  border-left: 3px solid #c29341;
}

/* Home Page - Video Consultation Showcase */
.home-video-consultation {
  margin: 4.5rem 5vw;
}
.home-vc-wrapper {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 3.5rem;
  align-items: center;
  background: linear-gradient(135deg, rgba(22, 58, 54, 0.04) 0%, rgba(194, 147, 65, 0.08) 100%);
  border: 1px solid rgba(194, 147, 65, 0.28);
  border-radius: 16px;
  padding: 3.5rem;
  position: relative;
  overflow: hidden;
}
.home-vc-kicker-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 0.8rem;
}
.home-vc-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  padding: 3px 10px;
  border-radius: 16px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
.home-vc-status-pill.online {
  color: #128954;
  border: 1px solid rgba(37, 211, 102, 0.4);
}
.home-vc-status-pill.offline {
  color: #8c827a;
  border: 1px solid rgba(140, 130, 122, 0.3);
}
.home-vc-content h2 {
  font-family: var(--font-heading, "Baskervville", serif);
  font-size: 2.3rem;
  font-weight: 400;
  line-height: 1.22;
  color: #163a36;
  margin-bottom: 1rem;
}
.home-vc-lead {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #555;
  margin-bottom: 1.8rem;
}
.home-vc-perks {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin-bottom: 2rem;
}
.home-vc-perk {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.home-vc-perk .perk-icon {
  font-size: 1.35rem;
  flex-shrink: 0;
  line-height: 1.2;
}
.home-vc-perk .perk-text strong {
  display: block;
  font-size: 0.95rem;
  color: #163a36;
  margin-bottom: 2px;
}
.home-vc-perk .perk-text p {
  font-size: 0.86rem;
  color: #666;
  margin: 0;
  line-height: 1.4;
}
.home-vc-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
.home-vc-call-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.75rem 1.6rem;
}
.home-vc-offline-note {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid rgba(194, 147, 65, 0.35);
  border-radius: 6px;
  padding: 8px 14px;
  font-size: 0.85rem;
  color: #555;
}

/* Home Media Artwork / Mockup */
.home-vc-media {
  position: relative;
}
.home-vc-frame {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 20px 48px rgba(22, 58, 54, 0.16);
  border: 1px solid rgba(194, 147, 65, 0.25);
  aspect-ratio: 4 / 3.5;
  background: #163a36;
}
.home-vc-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.92);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.home-vc-frame:hover .home-vc-img {
  transform: scale(1.03);
}
.home-vc-overlay-card {
  position: absolute;
  bottom: 16px;
  left: 16px;
  right: 16px;
  background: rgba(14, 28, 26, 0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(194, 147, 65, 0.4);
  border-radius: 10px;
  padding: 12px 16px;
  color: #fff;
}
.overlay-stylist-row {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #d4b36a;
  font-weight: 600;
  margin-bottom: 4px;
}
.overlay-stylist-row .live-dot {
  width: 7px;
  height: 7px;
  background: #25d366;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(37, 211, 102, 0.8);
}
.overlay-text {
  font-size: 0.82rem;
  font-style: italic;
  color: #eee;
  margin: 0 0 4px;
}
.overlay-badge {
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  background: rgba(194, 147, 65, 0.2);
  border: 1px solid rgba(194, 147, 65, 0.35);
  color: #d4b36a;
  padding: 2px 7px;
  border-radius: 4px;
  display: inline-block;
}

/* Mobile & Tablet Responsive Adjustments */
@media (max-width: 991px) {
  .about-vc-banner {
    padding: 2.2rem 2rem;
  }
  .about-vc-banner h2 {
    font-size: 1.75rem;
  }
  .about-vc-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .home-vc-wrapper {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2rem 1.5rem;
  }
  .home-video-consultation {
    margin: 3rem 4vw;
  }
  .home-vc-content h2 {
    font-size: 1.8rem;
  }
}

@media (max-width: 600px) {
  .about-vc-banner {
    padding: 1.6rem 1.25rem;
    border-radius: 12px;
  }
  .about-vc-banner h2 {
    font-size: 1.45rem;
  }
  .about-vc-timings-strip {
    grid-template-columns: 1fr;
    gap: 0.85rem;
    padding: 1rem;
  }
  .home-vc-wrapper {
    padding: 1.5rem 1.2rem;
    border-radius: 12px;
  }
  .home-vc-content h2 {
    font-size: 1.5rem;
  }
  .home-vc-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .home-vc-call-btn,
  .home-vc-actions .btn-ghost {
    text-align: center;
    justify-content: center;
  }
}


/* ==========================================================================
   KRIDHA PRODUCT DETAILING & INVESTIGATION SUITE
   ========================================================================== */

/* --- PDP In-Page Hero Magnifier Loupe & Investigate Badge --- */
.pdp-hero {
  position: relative;
  overflow: hidden;
  cursor: crosshair;
}

.pdp-hero-main-img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
}

.pdp-loupe-lens {
  position: absolute;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  border: 2.5px solid #c29341;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4), inset 0 0 15px rgba(194, 147, 65, 0.25);
  pointer-events: none;
  opacity: 0;
  z-index: 10;
  transition: opacity 0.15s ease;
  background-repeat: no-repeat;
  background-color: #fbf9f4;
}

.pdp-investigate-badge {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  z-index: 30;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1rem;
  background: rgba(25, 63, 60, 0.92);
  color: #fcf9f2;
  border: 1px solid rgba(194, 147, 65, 0.6);
  border-radius: 30px;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  backdrop-filter: blur(8px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  transition: all 0.25s ease;
  pointer-events: auto;
}

#pdp-hero-container:has(.pdp-investigate-badge:hover) .pdp-loupe-lens,
#pdp-hero-container:has(.product-nav-btn:hover) .pdp-loupe-lens,
#pdp-hero-container:has(.pdp-badges:hover) .pdp-loupe-lens {
  opacity: 0 !important;
  visibility: hidden;
}
  cursor: pointer;
  transition: all 0.25s ease;
}

.pdp-investigate-badge:hover {
  background: #c29341;
  color: #122f2d;
  border-color: #e3ba6d;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(194, 147, 65, 0.35);
}

.pdp-investigate-badge svg {
  flex-shrink: 0;
  color: #e3ba6d;
  transition: color 0.2s ease;
}

.pdp-investigate-badge:hover svg {
  color: #122f2d;
}

/* --- PDP Info Column Investigate Feature Card --- */
.pdp-investigate-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1.2rem 0;
  padding: 1rem 1.25rem;
  background: linear-gradient(135deg, rgba(194, 147, 65, 0.08) 0%, rgba(25, 63, 60, 0.04) 100%);
  border: 1px solid rgba(194, 147, 65, 0.32);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  text-align: left;
}

.pdp-investigate-card:hover {
  border-color: #c29341;
  background: linear-gradient(135deg, rgba(194, 147, 65, 0.16) 0%, rgba(25, 63, 60, 0.08) 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(194, 147, 65, 0.15);
}

.investigate-card-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: rgba(194, 147, 65, 0.18);
  border: 1px solid rgba(194, 147, 65, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #a07830;
  flex-shrink: 0;
  transition: all 0.25s ease;
}

.pdp-investigate-card:hover .investigate-card-icon {
  background: #c29341;
  color: #ffffff;
  transform: scale(1.05);
}

.investigate-card-content {
  flex: 1;
  min-width: 0;
}

.investigate-card-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.2rem;
}

.investigate-card-title strong {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--ink);
  letter-spacing: 0.01em;
}

.investigate-chip {
  display: inline-block;
  padding: 0.15rem 0.55rem;
  background: rgba(25, 63, 60, 0.1);
  color: var(--ink);
  border-radius: 20px;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.investigate-card-content p {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.35;
  color: var(--muted);
}

.investigate-card-arrow {
  font-size: 1.3rem;
  color: var(--gold-deep);
  transition: transform 0.2s ease;
}

.pdp-investigate-card:hover .investigate-card-arrow {
  transform: translateX(4px);
  color: var(--ink);
}

/* --- QuickView Modal Investigate Enhancements --- */
.quickview-investigate-pill {
  position: absolute;
  right: 0.8rem;
  bottom: 0.8rem;
  z-index: 5;
  padding: 0.4rem 0.85rem;
  background: rgba(25, 63, 60, 0.88);
  color: #fbfaf8;
  border: 1px solid rgba(194, 147, 65, 0.5);
  border-radius: 20px;
  font-size: 0.72rem;
  font-weight: 500;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: all 0.2s ease;
}

.quickview-investigate-pill:hover {
  background: #c29341;
  color: #122f2d;
}

.quickview-investigate-btn {
  color: var(--gold-deep) !important;
  border-color: rgba(194, 147, 65, 0.4) !important;
}

.quickview-investigate-btn:hover {
  background: rgba(194, 147, 65, 0.12) !important;
  border-color: #c29341 !important;
}

/* ==========================================================================
   PRODUCT INVESTIGATE MODAL (ATELIER INSPECTION STUDIO)
   ========================================================================== */
.investigate-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(18, 47, 45, 0.75);
  backdrop-filter: blur(10px);
  z-index: 2200;
  animation: fadeIn 0.25s ease-out;
}

.investigate-modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(78rem, 95vw);
  max-height: 94vh;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(194, 147, 65, 0.3);
  z-index: 2201;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: scaleIn 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Top Bar */
.investigate-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9rem 1.6rem;
  background: #193f3c;
  color: #fbfaf8;
  border-bottom: 1px solid rgba(194, 147, 65, 0.35);
  flex-shrink: 0;
}

.investigate-brand-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.investigate-emblem {
  color: #e3ba6d;
  font-size: 1.1rem;
}

.investigate-atelier-tag {
  font-family: var(--font-body);
  font-size: 0.76rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #e8dcc4;
  font-weight: 600;
}

.investigate-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.investigate-quality-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.75rem;
  background: rgba(194, 147, 65, 0.2);
  border: 1px solid rgba(194, 147, 65, 0.5);
  border-radius: 20px;
  color: #fdf6e6;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.investigate-quality-chip svg {
  color: #e3ba6d;
}

.investigate-close-btn {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  width: 2.2rem;
  height: 2.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fbfaf8;
  cursor: pointer;
  transition: all 0.2s ease;
}

.investigate-close-btn:hover {
  background: #c29341;
  color: #122f2d;
  border-color: #c29341;
}

/* Modal Grid */
.investigate-grid {
  display: grid;
  grid-template-columns: 1.12fr 1fr;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  background: #fdfcf9;
}

@media (max-width: 992px) {
  .investigate-grid {
    grid-template-columns: 1fr;
    overflow-y: auto;
  }
}

/* Left Column: Image Loupe & Pan Viewer */
.investigate-viewer-col {
  display: flex;
  flex-direction: column;
  padding: 1.4rem;
  background: #f7f4ed;
  border-right: 1px solid #e7dfd1;
  overflow-y: auto;
}

.investigate-viewer-header {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 0.9rem;
}

.investigate-zoom-pills {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.zoom-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ink);
  margin-right: 0.2rem;
}

.zoom-pill {
  padding: 0.35rem 0.8rem;
  border-radius: 20px;
  background: #ffffff;
  border: 1px solid #d5cbba;
  color: var(--ink);
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.zoom-pill:hover {
  border-color: #c29341;
  color: #a07830;
}

.zoom-pill.active {
  background: #193f3c;
  color: #ffffff;
  border-color: #193f3c;
  box-shadow: 0 3px 10px rgba(25, 63, 60, 0.25);
}

.investigate-hint {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.74rem;
  color: var(--muted);
  font-style: italic;
}

.investigate-hint svg {
  color: var(--gold-deep);
}

/* Macro Stage */
.investigate-macro-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  background: #fbf9f4;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(25, 63, 60, 0.08);
  border: 1px solid #e0d7c7;
  cursor: grab;
  touch-action: none;
}

.investigate-macro-stage.is-dragging {
  cursor: grabbing;
}

.investigate-macro-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  transition: transform 0.05s ease-out;
  transform-origin: center center;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

.investigate-reticle {
  position: absolute;
  width: 60px;
  height: 60px;
  border: 2px dashed rgba(194, 147, 65, 0.9);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease;
  box-shadow: 0 0 12px rgba(194, 147, 65, 0.4), inset 0 0 8px rgba(194, 147, 65, 0.2);
}

.investigate-stage-overlay {
  position: absolute;
  left: 0.8rem;
  bottom: 0.8rem;
  display: flex;
  gap: 0.4rem;
  pointer-events: none;
}

.stage-tag,
.stage-zoom-badge {
  padding: 0.25rem 0.6rem;
  background: rgba(25, 63, 60, 0.85);
  color: #ffffff;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 500;
  backdrop-filter: blur(4px);
}

.stage-zoom-badge {
  background: rgba(194, 147, 65, 0.95);
  color: #122f2d;
  font-weight: 700;
}

/* Gallery Strip */
.investigate-gallery-strip {
  display: flex;
  gap: 0.6rem;
  margin-top: 0.9rem;
  overflow-x: auto;
  padding-bottom: 0.4rem;
}

.investigate-thumb-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  background: none;
  border: 2px solid transparent;
  border-radius: 8px;
  padding: 3px;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.2s ease;
}

.investigate-thumb-btn img {
  width: 64px;
  height: 78px;
  object-fit: cover;
  border-radius: 5px;
  border: 1px solid #dcd4c6;
}

.investigate-thumb-btn.active {
  border-color: #c29341;
  background: rgba(194, 147, 65, 0.1);
}

.investigate-thumb-btn.active img {
  border-color: #c29341;
}

.thumb-label {
  font-size: 0.64rem;
  color: var(--ink);
  font-weight: 500;
  max-width: 68px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Right Column: Detail Dossier */
.investigate-dossier-col {
  display: flex;
  flex-direction: column;
  padding: 1.6rem;
  overflow-y: auto;
  min-height: 0;
}

.dossier-hero-meta {
  padding-bottom: 1.1rem;
  border-bottom: 1px solid #ece4d7;
}

.dossier-origin-kicker {
  display: inline-block;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gold-deep);
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.dossier-product-title {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.2vw, 1.85rem);
  color: var(--ink);
  margin: 0 0 0.5rem;
  line-height: 1.25;
}

.dossier-sub-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  font-size: 0.82rem;
  color: var(--muted);
  margin-bottom: 0.75rem;
}

.dossier-sep {
  color: #c9bea9;
}

.dossier-stock.in-stock {
  color: #1b7a4b;
  font-weight: 600;
}

.dossier-price-strip {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
}

.dossier-price {
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--ink);
}

.dossier-compare {
  font-size: 1.05rem;
  color: #8c8273;
  text-decoration: line-through;
}

.dossier-save {
  padding: 0.2rem 0.55rem;
  background: var(--accent);
  color: #ffffff;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

/* Dossier Navigation Tabs */
.dossier-tabs {
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  padding: 1rem 0 0.4rem;
  border-bottom: 1px solid #ece4d7;
  flex-shrink: 0;
}

.dossier-tab {
  padding: 0.5rem 0.85rem;
  background: none;
  border: none;
  border-bottom: 2.5px solid transparent;
  color: var(--muted);
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
}

.dossier-tab:hover {
  color: var(--ink);
}

.dossier-tab.active {
  color: var(--ink);
  font-weight: 600;
  border-bottom-color: #c29341;
}

/* Dossier Tab Panels */
.dossier-tab-body {
  padding: 1.25rem 0;
  flex: 1;
}

.dossier-card {
  background: #ffffff;
  border: 1px solid #ebe4d8;
  border-radius: 10px;
  padding: 1rem 1.15rem;
  margin-bottom: 0.85rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.dossier-card h4 {
  font-family: var(--font-display);
  font-size: 0.98rem;
  color: var(--ink);
  margin: 0 0 0.3rem;
}

.dossier-card-value {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--gold-deep);
  margin-bottom: 0.35rem;
}

.dossier-card-desc {
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--muted);
  margin: 0;
}

.dossier-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

@media (max-width: 600px) {
  .dossier-card-grid {
    grid-template-columns: 1fr;
  }
}

/* Specs List */
.dossier-spec-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border: 1px solid #ebe4d8;
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff;
}

.dossier-spec-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1.1rem;
  font-size: 0.85rem;
  border-bottom: 1px solid #f2ede4;
}

.dossier-spec-list li:last-child {
  border-bottom: none;
}

.spec-label {
  color: var(--muted);
  font-weight: 500;
}

.spec-val {
  color: var(--ink);
  font-weight: 600;
  text-align: right;
}

/* Quality Verification & Checklist */
.dossier-cert-box {
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
  padding: 1.1rem 1.25rem;
  background: linear-gradient(135deg, rgba(31, 107, 90, 0.08) 0%, rgba(194, 147, 65, 0.08) 100%);
  border: 1px solid rgba(31, 107, 90, 0.3);
  border-radius: 12px;
  margin-bottom: 1.2rem;
}

.cert-emblem {
  font-size: 1.6rem;
  line-height: 1;
}

.cert-info h4 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--ink);
  margin: 0 0 0.25rem;
}

.cert-info p {
  font-size: 0.82rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.4;
}

.dossier-checklist h5 {
  font-family: var(--font-display);
  font-size: 0.96rem;
  color: var(--ink);
  margin: 0 0 0.75rem;
  letter-spacing: 0.02em;
}

.dossier-checklist ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.dossier-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.65rem 0.9rem;
  background: #ffffff;
  border: 1px solid #ebe4d8;
  border-radius: 8px;
}

.check-icon {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: #1b7a4b;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.check-text strong {
  display: block;
  font-size: 0.84rem;
  color: var(--ink);
  margin-bottom: 0.15rem;
}

.check-text span {
  font-size: 0.76rem;
  color: var(--muted);
  line-height: 1.35;
  display: block;
}

/* Heritage & Story */
.dossier-story-body p {
  font-size: 0.84rem;
  line-height: 1.55;
  color: #3b4d4b;
  margin-bottom: 0.65rem;
}

.dossier-story-body p:last-child {
  margin-bottom: 0;
}

.dossier-note-box {
  padding: 0.85rem 1.1rem;
  background: #fbf8f2;
  border-left: 3px solid #c29341;
  font-size: 0.82rem;
  color: var(--ink);
  border-radius: 0 8px 8px 0;
  margin-top: 0.75rem;
}

/* Care Guidelines */
.care-lead {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
  margin: 0;
}

.dossier-tip-box {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.85rem 1.1rem;
  background: #fdfaf2;
  border: 1px solid rgba(194, 147, 65, 0.35);
  border-radius: 8px;
  margin-bottom: 0.9rem;
}

.tip-ico {
  font-size: 1.2rem;
  line-height: 1;
}

.dossier-tip-box strong {
  font-size: 0.84rem;
  color: var(--ink);
  display: block;
  margin-bottom: 0.2rem;
}

.dossier-tip-box p {
  font-size: 0.8rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.4;
}

.care-guidelines-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.care-guide-item {
  background: #ffffff;
  border: 1px solid #ebe4d8;
  border-radius: 8px;
  padding: 0.75rem 0.9rem;
}

.care-guide-item strong {
  display: block;
  font-size: 0.82rem;
  color: var(--ink);
  margin-bottom: 0.2rem;
}

.care-guide-item span {
  font-size: 0.76rem;
  color: var(--muted);
  line-height: 1.35;
  display: block;
}

/* Bottom Actions Bar */
.dossier-bottom-actions {
  padding-top: 1.1rem;
  border-top: 1px solid #ece4d7;
  flex-shrink: 0;
}

.dossier-cta-group {
  display: flex;
  gap: 0.75rem;
}

.dossier-atc-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.85rem 1.4rem;
}

.cta-price {
  padding: 0.15rem 0.5rem;
  background: rgba(0, 0, 0, 0.15);
  border-radius: 4px;
  font-size: 0.85rem;
}

.dossier-vc-btn {
  padding: 0.85rem 1.2rem;
  white-space: nowrap;
}

@media (max-width: 600px) {
  .dossier-cta-group {
    flex-direction: column;
  }
  .investigate-topbar {
    padding: 0.75rem 1rem;
  }
  .investigate-viewer-col,
  .investigate-dossier-col {
    padding: 1rem;
  }
}


/* --- Header Wishlist & Cart Count Anchoring --- */
.shop-tools .wishlist-header-btn,
.shop-header .wishlist-header-btn,
.wishlist-header-btn,
.shop-icon-btn,
.shop-cart-link {
  position: relative !important;
}

.shop-header .wishlist-header-btn {
  border-radius: 50% !important;
  width: 2.4rem !important;
  height: 2.4rem !important;
  min-height: 2.4rem !important;
  padding: 0 !important;
  border: 1px solid rgba(25, 63, 60, 0.2) !important;
  background: #ffffff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--ink) !important;
}

.shop-cart-count.wishlist-count {
  position: absolute !important;
  top: -0.35rem !important;
  right: -0.35rem !important;
  min-width: 1.15rem !important;
  height: 1.15rem !important;
  padding: 0 0.25rem !important;
  border-radius: 999px !important;
  background: var(--gold) !important;
  color: #193f3c !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  display: grid !important;
  place-items: center !important;
  line-height: 1 !important;
  z-index: 5 !important;
}

/* --- Mobile / Tablet Optimizations for Product Investigate Modal --- */
@media (max-width: 900px) {
  .investigate-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100% !important;
    max-height: 100dvh !important;
    transform: none !important;
    border-radius: 0 !important;
    border: none !important;
    box-shadow: none !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .investigate-topbar {
    padding: 0.7rem 1rem !important;
  }

  .investigate-quality-chip {
    display: none !important; /* Hide long badge in header on mobile */
  }

  .investigate-sub-tag {
    display: none !important;
  }

  .investigate-atelier-tag {
    font-size: 0.72rem !important;
    letter-spacing: 0.1em !important;
  }

  .investigate-grid {
    display: flex !important;
    flex-direction: column !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  .investigate-viewer-col {
    padding: 0.85rem !important;
    flex: 0 0 auto !important;
    overflow: visible !important;
    border-right: none !important;
    border-bottom: 1px solid #e7dfd1 !important;
  }

  .investigate-macro-stage {
    width: 100% !important;
    aspect-ratio: 3 / 4 !important;
    min-height: 360px !important;
    max-height: 52vh !important;
    height: auto !important;
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
  }

  .investigate-dossier-col {
    padding: 1rem 0.85rem 5.5rem !important;
    flex: 0 0 auto !important;
    overflow: visible !important;
  }

  .dossier-bottom-actions {
    position: sticky !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: rgba(253, 252, 249, 0.98) !important;
    backdrop-filter: blur(12px);
    padding: 0.75rem 0.85rem !important;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.1) !important;
    border-top: 1px solid #e7dfd1 !important;
    z-index: 10;
    margin: 0 -0.85rem -5.5rem !important;
  }

  .dossier-cta-group {
    flex-direction: column !important;
    gap: 0.5rem !important;
  }

  .hint-desktop {
    display: none !important;
  }

  .hint-mobile {
    display: inline !important;
  }
}

@media (min-width: 901px) {
  .hint-mobile {
    display: none !important;
  }
  .hint-desktop {
    display: inline !important;
  }
}
