:root {
    --theme: #d94f83;
    --theme-dark: #b53667;
    --theme-soft: #fff0f5;
    --ink: #2e2228;
    --muted: #7c7177;
    --line: #e9e3e6;
    --surface: #ffffff;
    --canvas: #f6f4f5;
    --shadow: 0 16px 45px rgba(61, 42, 51, .08);
    --radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--canvas); color: var(--ink); font-family: "DM Sans", sans-serif; padding-bottom: 68px; }
main { min-height: 60vh; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
h1, h2, h3 { color: var(--ink); font-family: "Cormorant Garamond", serif; font-weight: 700; }
h1 { font-size: clamp(2.45rem, 8vw, 5rem); line-height: .96; }
h2 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1; }
h3 { font-size: 1.35rem; }
.text-theme { color: var(--theme) !important; }
.section-pad { padding: 52px 0; }
.eyebrow { color: var(--theme); display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .17em; margin-bottom: 9px; text-transform: uppercase; }
.announcement { background: var(--ink); color: #fff; font-size: .72rem; padding: 7px 12px; text-align: center; }
.store-header { background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--line); }
.navbar { padding: 11px 0; }
.store-logo { align-items: center; display: inline-flex; font-family: "Cormorant Garamond", serif; font-size: 1.5rem; font-weight: 700; letter-spacing: .08em; white-space: nowrap; }
.store-logo span { color: var(--theme); margin-left: 5px; }
.store-logo img { height: 40px; max-width: 150px; object-fit: contain; }
.header-search { align-items: center; background: #f4f1f3; border: 1px solid transparent; border-radius: 14px; flex: 1; gap: 9px; margin: 0 34px; padding: 0 14px; }
.header-search:focus-within { background: #fff; border-color: var(--theme); }
.header-search input { background: transparent; border: 0; font-size: .85rem; min-width: 0; outline: 0; padding: 11px 0; width: 100%; }
.header-actions { align-items: center; display: flex; gap: 6px; }
.header-actions a { align-items: center; border-radius: 50%; display: flex; font-size: 1.15rem; height: 40px; justify-content: center; position: relative; width: 40px; }
.header-actions a:hover { background: var(--theme-soft); color: var(--theme); }
.cart-count { align-items: center; background: var(--theme); border: 2px solid #fff; border-radius: 50%; color: #fff; display: flex; font-size: .58rem; font-weight: 700; height: 18px; justify-content: center; position: absolute; right: -1px; top: -2px; width: 18px; }
.desktop-menu { background: #fff; border-top: 1px solid var(--line); font-size: .74rem; font-weight: 700; letter-spacing: .08em; padding: 9px 0; text-transform: uppercase; }
.desktop-menu a:hover { color: var(--theme); }
.mobile-menu-links { display: grid; gap: 5px; }
.mobile-menu-links a { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 12px; padding: 15px 4px; }
.btn-theme, .btn-soft { align-items: center; border: 0; border-radius: 13px; cursor: pointer; display: inline-flex; font-size: .82rem; font-weight: 700; gap: 7px; justify-content: center; line-height: 1.2; padding: 13px 19px; transition: transform .15s ease, background-color .15s ease; }
.btn-theme { background: var(--theme); color: #fff; }
.btn-theme:hover { background: var(--theme-dark); color: #fff; transform: translateY(-1px); }
.btn-theme:disabled { cursor: not-allowed; opacity: .55; }
.btn-soft { background: var(--theme-soft); color: var(--theme-dark); }
.btn-soft:hover { background: #fbe0ea; color: var(--theme-dark); }
.hero-card { background: linear-gradient(135deg, #fff 0%, #fff6f9 100%); border: 1px solid #fff; border-radius: 30px; box-shadow: var(--shadow); display: grid; overflow: hidden; }
.hero-copy { padding: 34px 25px; }
.hero-copy h1 { margin: 0 0 18px; max-width: 720px; }
.hero-copy p { color: var(--muted); font-size: .95rem; line-height: 1.7; margin-bottom: 24px; max-width: 560px; }
.hero-trust { border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 16px; margin-top: 30px; padding-top: 20px; }
.hero-trust span { color: var(--muted); font-size: .72rem; font-weight: 600; }
.hero-trust i { color: var(--theme); margin-right: 4px; }
.hero-art { background: linear-gradient(145deg, #ffe8f0, #f8dce6); min-height: 300px; }
.hero-art img { height: 100%; object-fit: cover; width: 100%; }
.section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 23px; }
.section-heading h2 { margin: 0; }
.section-heading > a { color: var(--theme); font-size: .78rem; font-weight: 700; }
.category-grid { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.category-card { align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 19px; display: grid; gap: 10px; grid-template-columns: 58px 1fr auto; padding: 9px; }
.category-card:hover { border-color: #eac1d0; box-shadow: var(--shadow); }
.category-card img { background: var(--theme-soft); border-radius: 14px; height: 58px; object-fit: cover; width: 58px; }
.category-card strong, .category-card small { display: block; }
.category-card strong { font-family: "Cormorant Garamond", serif; font-size: 1rem; line-height: 1; }
.category-card small { color: var(--muted); font-size: .62rem; margin-top: 4px; }
.category-card > i { color: var(--theme); font-size: .8rem; }
.product-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.product-card { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; min-width: 0; overflow: hidden; position: relative; }
.product-card:hover { border-color: #e8c1cf; box-shadow: var(--shadow); }
.product-image-wrap { background: var(--theme-soft); display: block; overflow: hidden; position: relative; }
.product-image-wrap img { aspect-ratio: 1 / 1.12; display: block; object-fit: cover; transition: transform .25s ease; width: 100%; }
.product-card:hover .product-image-wrap img { transform: scale(1.025); }
.sale-badge { background: var(--theme); border-radius: 20px; color: #fff; font-size: .58rem; font-weight: 700; left: 8px; padding: 4px 8px; position: absolute; top: 8px; }
.wishlist-mini { position: absolute; right: 8px; top: 8px; z-index: 2; }
.wishlist-mini button, .add-circle { align-items: center; background: rgba(255, 255, 255, .9); border: 0; border-radius: 50%; color: var(--ink); display: flex; height: 31px; justify-content: center; width: 31px; }
.wishlist-mini button:hover { color: var(--theme); }
.product-card-body { padding: 11px; }
.product-brand { color: var(--muted); display: block; font-size: .58rem; font-weight: 700; letter-spacing: .1em; margin-bottom: 5px; text-transform: uppercase; }
.product-name { display: -webkit-box; font-family: "Cormorant Garamond", serif; font-size: 1rem; font-weight: 700; line-height: 1.1; min-height: 36px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.rating-row { align-items: center; color: var(--muted); display: flex; font-size: .68rem; gap: 3px; margin-top: 7px; }
.rating-row i { color: #e4a931; }
.rating-row small { margin-left: 2px; }
.product-card-footer { align-items: center; display: flex; gap: 5px; justify-content: space-between; margin-top: 10px; }
.product-card-footer strong { font-size: .86rem; }
.product-card-footer del { color: var(--muted); display: block; font-size: .62rem; }
.add-circle { background: var(--theme); color: #fff; }
.add-circle:hover { background: var(--theme-dark); }
.offer-strip { align-items: center; background: var(--ink); border-radius: 28px; color: #fff; display: grid; gap: 25px; overflow: hidden; padding: 30px 24px; }
.offer-strip h2 { color: #fff; }
.offer-strip p { color: #d3cbd0; }
.offer-stack { display: flex; justify-content: center; min-height: 190px; padding: 20px; }
.offer-stack img { background: #fff; border: 5px solid #fff; border-radius: 18px; box-shadow: 0 15px 25px rgba(0, 0, 0, .17); height: 180px; margin: 0 -22px; object-fit: cover; transform: rotate(-8deg); width: 140px; }
.offer-stack img:nth-child(2) { transform: translateY(-12px); z-index: 2; }
.offer-stack img:nth-child(3) { transform: rotate(8deg); }
.page-hero { background: #fcecf2; border-bottom: 1px solid #f1dbe4; padding: 38px 0; }
.page-hero h1 { font-size: clamp(2.4rem, 6vw, 4rem); margin: 0; }
.page-hero p { color: var(--muted); margin: 8px 0 0; }
.filter-card, .content-card, .summary-card, .auth-card, .review-card, .address-card, .order-card, .success-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 25px rgba(61, 42, 51, .04); }
.filter-card, .content-card, .summary-card { padding: 20px; }
.filter-grid, .form-grid { display: grid; gap: 13px; }
.filter-card label, .form-label { color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .04em; }
.form-control, .form-select { border-color: var(--line); border-radius: 12px; font-size: .84rem; min-height: 44px; }
.form-control:focus, .form-select:focus { border-color: var(--theme); box-shadow: 0 0 0 .2rem rgba(217, 79, 131, .12); }
.empty-card { background: #fff; border: 1px dashed #e2d8dc; border-radius: 24px; padding: 55px 20px; text-align: center; }
.empty-card > i { color: var(--theme); display: block; font-size: 2rem; margin-bottom: 13px; }
.empty-card h1, .empty-card h2 { margin-bottom: 8px; }
.empty-card p { color: var(--muted); }
.empty-card.compact { padding: 24px; }
.product-detail-grid { display: grid; gap: 18px; }
.main-product-image { background: #fcebf2; border-radius: 24px; overflow: hidden; }
.main-product-image img { aspect-ratio: 1 / 1.08; display: block; object-fit: cover; width: 100%; }
.thumbnail-row { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; }
.thumbnail-row button { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 3px; }
.thumbnail-row img { border-radius: 9px; height: 60px; object-fit: cover; width: 60px; }
.product-detail-card { align-self: start; background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 23px; }
.product-detail-card h1 { font-size: clamp(2.5rem, 6vw, 4rem); margin: 0; }
.detail-price { color: var(--theme); font-size: 1.5rem; font-weight: 700; margin: 16px 0; }
.detail-price del { color: var(--muted); font-size: .85rem; font-weight: 500; margin-left: 8px; }
.detail-intro { color: var(--muted); line-height: 1.7; }
.stock-line { background: #eef9f1; border-radius: 11px; color: #287943; font-size: .75rem; font-weight: 700; margin: 18px 0; padding: 10px 12px; }
.stock-line.low { background: #fff5e8; color: #986018; }
.quantity-input { max-width: 76px; }
.detail-trust { border-top: 1px solid var(--line); display: grid; gap: 10px; margin-top: 22px; padding-top: 18px; }
.detail-trust span { color: var(--muted); font-size: .72rem; }
.detail-trust i { color: var(--theme); margin-right: 7px; }
.content-card h2, .summary-card h2 { font-size: 1.8rem; margin-bottom: 18px; }
.content-card p { color: var(--muted); line-height: 1.8; }
.detail-meta { border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; padding-top: 17px; }
.detail-meta span { color: var(--muted); font-size: .7rem; text-transform: uppercase; }
.detail-meta strong { color: var(--ink); display: block; margin-top: 3px; }
.review-layout { display: grid; gap: 18px; }
.review-card { margin-bottom: 10px; padding: 18px; }
.review-card h3 { margin: 8px 0 5px; }
.review-card p, .review-card small { color: var(--muted); }
.cart-layout, .checkout-layout, .contact-layout { display: grid; gap: 18px; }
.cart-items { display: grid; gap: 9px; }
.cart-item { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 18px; display: grid; gap: 9px; grid-template-columns: 68px minmax(0, 1fr) 58px; padding: 9px; }
.cart-item img { background: var(--theme-soft); border-radius: 13px; height: 68px; object-fit: cover; width: 68px; }
.cart-item-info { min-width: 0; }
.cart-item-info a, .cart-item-info strong, .cart-item-info small { display: block; }
.cart-item-info a { font-family: "Cormorant Garamond", serif; font-size: 1rem; font-weight: 700; line-height: 1.05; }
.cart-item-info small { color: var(--muted); font-size: .64rem; }
.cart-item-info strong { color: var(--theme); font-size: .73rem; margin-top: 5px; }
.cart-item .line-total { display: none; }
.remove-link { background: transparent; border: 0; color: #b38d9d; padding: 6px; }
.remove-link:hover { color: #bd2e4f; }
.summary-card { align-self: start; }
.summary-line, .summary-total { align-items: center; display: flex; justify-content: space-between; }
.summary-line { border-bottom: 1px solid var(--line); color: var(--muted); font-size: .78rem; padding: 11px 0; }
.summary-total { font-size: 1rem; padding: 16px 0 7px; }
.summary-total strong { color: var(--theme); font-size: 1.25rem; }
.coupon-form { display: flex; gap: 7px; margin-top: 15px; }
.summary-note { color: var(--muted); font-size: .67rem; margin: 15px 0 0; text-align: center; }
.checkout-main { display: grid; gap: 15px; }
.saved-addresses { display: flex; gap: 8px; overflow-x: auto; }
.saved-address { background: var(--theme-soft); border: 1px solid #f1d4df; border-radius: 13px; min-width: 170px; padding: 10px; text-align: left; }
.saved-address strong, .saved-address small { display: block; }
.saved-address small { color: var(--muted); font-size: .65rem; }
.payment-choice { align-items: center; border: 1px solid var(--line); border-radius: 14px; cursor: pointer; display: flex; gap: 10px; margin-bottom: 8px; padding: 11px; }
.payment-choice:has(input:checked) { background: var(--theme-soft); border-color: #e9aec5; }
.payment-choice span { align-items: center; display: grid; gap: 0 8px; grid-template-columns: 32px 1fr; }
.payment-choice i { color: var(--theme); font-size: 1.25rem; grid-row: span 2; }
.payment-choice strong, .payment-choice small { display: block; }
.payment-choice small { color: var(--muted); font-size: .64rem; }
.checkout-item { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 8px; grid-template-columns: 40px 1fr auto; padding: 9px 0; }
.checkout-item img { border-radius: 9px; height: 40px; object-fit: cover; width: 40px; }
.checkout-item span { font-size: .7rem; font-weight: 700; }
.checkout-item small { color: var(--muted); display: block; font-size: .6rem; font-weight: 400; }
.checkout-item strong { font-size: .7rem; }
.auth-section { background: linear-gradient(180deg, #fceaf1, var(--canvas)); }
.auth-card { margin: 0 auto; max-width: 500px; padding: 28px 22px; }
.auth-card h1 { font-size: 2.8rem; margin-bottom: 10px; }
.auth-card > p { color: var(--muted); font-size: .82rem; line-height: 1.6; }
.auth-card a { color: var(--theme); font-size: .76rem; font-weight: 700; }
.auth-switch { border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; margin-top: 20px; padding-top: 17px; text-align: center; }
.account-actions { display: grid; gap: 8px; grid-template-columns: repeat(3, 1fr); }
.account-actions a, .account-actions button { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 16px; color: var(--ink); display: flex; flex-direction: column; font-size: .68rem; gap: 6px; height: 100%; justify-content: center; padding: 15px 5px; text-align: center; width: 100%; }
.account-actions form { min-width: 0; }
.account-actions i { color: var(--theme); font-size: 1.25rem; }
.account-grid, .address-grid { display: grid; gap: 15px; }
.address-card { align-items: start; display: flex; justify-content: space-between; padding: 18px; }
.address-card h3 { margin: 0; }
.address-card p { color: var(--muted); font-size: .72rem; line-height: 1.7; margin: 8px 0 0; }
.order-list { display: grid; gap: 9px; }
.order-card { align-items: center; display: grid; gap: 12px; grid-template-columns: 1fr 1fr; padding: 15px; }
.order-card small, .order-card span, .order-card strong { display: block; font-size: .68rem; }
.order-card small { color: var(--muted); margin-bottom: 3px; }
.status-pill { border-radius: 20px; display: inline-block !important; font-weight: 700; padding: 4px 8px; width: max-content; }
.status-pending { background: #fff5df; color: #8b6316; }
.status-confirmed, .status-packed { background: #edf5ff; color: #35679d; }
.status-shipped { background: #f1edff; color: #634d9d; }
.status-delivered { background: #eaf8ee; color: #2b7040; }
.status-cancelled { background: #fff0f0; color: #a84343; }
.wishlist-wrap { position: relative; }
.wishlist-remove { background: #fff; border: 1px solid var(--line); border-radius: 11px; color: #a34864; font-size: .67rem; margin-top: 5px; padding: 7px 11px; width: 100%; }
.success-card { margin: 0 auto; max-width: 780px; padding: 35px 22px; text-align: center; }
.success-icon { align-items: center; background: var(--theme-soft); border-radius: 50%; color: var(--theme); display: flex; font-size: 1.8rem; height: 65px; justify-content: center; margin: 0 auto 20px; width: 65px; }
.success-card h1 { font-size: clamp(2.8rem, 7vw, 4.5rem); }
.success-card > p { color: var(--muted); line-height: 1.7; margin: 0 auto 25px; max-width: 590px; }
.success-summary { background: var(--canvas); border-radius: 16px; display: grid; gap: 12px; margin-bottom: 25px; padding: 17px; }
.success-summary small, .success-summary strong { display: block; }
.success-summary small { color: var(--muted); font-size: .6rem; text-transform: uppercase; }
.contact-info { display: grid; gap: 10px; }
.contact-info .content-card i { color: var(--theme); font-size: 1.3rem; }
.contact-info .content-card h3 { margin: 8px 0 2px; }
.contact-info .content-card a, .contact-info .content-card p { color: var(--muted); font-size: .75rem; margin: 0; }
.policy-content { margin: 0 auto; max-width: 900px; min-height: 300px; }
.newsletter-section { padding: 45px 0 20px; }
.newsletter-card { align-items: center; background: #fce7ef; border: 1px solid #f4d4e0; border-radius: 26px; display: grid; gap: 20px; padding: 25px; }
.newsletter-card h2 { margin-bottom: 7px; }
.newsletter-card p { color: var(--muted); font-size: .75rem; margin: 0; }
.newsletter-form { display: flex; gap: 7px; }
.newsletter-form input { border: 1px solid #eed4df; border-radius: 13px; font-size: .78rem; min-width: 0; padding: 11px; width: 100%; }
.store-footer { background: #fff; border-top: 1px solid var(--line); margin-top: 35px; }
.store-footer h3 { font-family: "DM Sans", sans-serif; font-size: .7rem; letter-spacing: .09em; text-transform: uppercase; }
.store-footer .col-6 > a { color: var(--muted); display: block; font-size: .7rem; margin: 10px 0; }
.footer-copy { font-size: .75rem; line-height: 1.7; max-width: 330px; }
.social-links { display: flex; gap: 7px; }
.social-links a { align-items: center; background: var(--theme-soft); border-radius: 50%; color: var(--theme); display: flex; height: 33px; justify-content: center; width: 33px; }
.footer-bottom { border-top: 1px solid var(--line); color: var(--muted); display: flex; flex-direction: column; font-size: .62rem; gap: 5px; padding: 16px 0; }
.whatsapp-button { align-items: center; background: #167e4c; border-radius: 30px; bottom: 77px; box-shadow: var(--shadow); color: #fff; display: flex; font-size: .72rem; font-weight: 700; gap: 6px; padding: 10px 13px; position: fixed; right: 12px; z-index: 10; }
.mobile-bottom-nav { background: rgba(255, 255, 255, .97); border-top: 1px solid var(--line); bottom: 0; display: grid; grid-template-columns: repeat(4, 1fr); left: 0; padding: 7px 4px 8px; position: fixed; right: 0; z-index: 20; }
.mobile-bottom-nav a { align-items: center; color: var(--muted); display: flex; flex-direction: column; font-size: .58rem; gap: 2px; }
.mobile-bottom-nav i { font-size: 1rem; }
.store-toast { background: var(--ink); border-radius: 12px; color: #fff; font-size: .74rem; left: 50%; opacity: 0; padding: 10px 15px; pointer-events: none; position: fixed; top: 95px; transform: translate(-50%, -10px); transition: .2s ease; z-index: 2000; }
.store-toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (min-width: 576px) {
    .filter-grid { grid-template-columns: repeat(2, 1fr); }
    .form-grid { grid-template-columns: repeat(2, 1fr); }
    .form-grid .full { grid-column: 1 / -1; }
    .success-summary { grid-template-columns: repeat(3, 1fr); }
    .footer-bottom { flex-direction: row; justify-content: space-between; }
}

@media (min-width: 768px) {
    body { padding-bottom: 0; }
    .section-pad { padding: 72px 0; }
    .hero-card { grid-template-columns: 1.1fr .9fr; min-height: 520px; }
    .hero-copy { align-self: center; padding: 55px; }
    .hero-art { min-height: 520px; }
    .category-grid { grid-template-columns: repeat(4, 1fr); }
    .category-card { display: block; padding: 12px; }
    .category-card img { height: auto; width: 100%; }
    .category-card span { display: inline-block; margin-top: 12px; }
    .category-card strong { font-size: 1.2rem; }
    .category-card > i { float: right; margin-top: 17px; }
    .product-grid { gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .product-card { border-radius: 22px; }
    .product-card-body { padding: 16px; }
    .product-name { font-size: 1.15rem; }
    .product-card-footer del { display: inline; margin-left: 5px; }
    .offer-strip { grid-template-columns: 1fr 1fr; padding: 50px; }
    .filter-grid { grid-template-columns: repeat(3, 1fr); }
    .product-detail-grid { gap: 35px; grid-template-columns: minmax(0, 1fr) minmax(330px, .85fr); }
    .review-layout { grid-template-columns: 1.2fr .8fr; }
    .cart-item { grid-template-columns: 92px minmax(0, 1fr) 75px 90px 32px; padding: 12px; }
    .cart-item img { height: 92px; width: 92px; }
    .cart-item-info a { font-size: 1.2rem; }
    .cart-item .line-total { display: inline; font-size: .8rem; font-weight: 700; text-align: right; }
    .account-grid, .address-grid { grid-template-columns: repeat(2, 1fr); }
    .order-card { grid-template-columns: 1.5fr repeat(4, 1fr); }
    .newsletter-card { grid-template-columns: 1fr 1fr; padding: 38px; }
}

@media (min-width: 992px) {
    .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cart-layout, .checkout-layout { grid-template-columns: minmax(0, 1fr) 360px; }
    .checkout-summary, .summary-card { position: sticky; top: 145px; }
    .contact-layout { grid-template-columns: 300px 1fr; }
    .filter-grid { grid-template-columns: 1.5fr repeat(5, 1fr); }
    .whatsapp-button { bottom: 22px; right: 22px; }
}

@media (min-width: 1200px) {
    .product-grid { gap: 24px; }
    .hero-copy { padding: 70px; }
}

