:root {
    --brand-950: #3b0d14;
    --brand-900: #57121d;
    --brand-800: #711c28;
    --brand-700: #8f2633;
    --brand-600: #ad3341;
    --gold-500: #d9a441;
    --gold-300: #edce8e;
    --cream-50: #fffdf8;
    --cream-100: #fff8e9;
    --cream-200: #f8ecd4;
    --ink-950: #21191a;
    --ink-700: #514749;
    --ink-500: #7a7071;
    --line: #eadfd8;
    --success: #1c7b4c;
    --danger: #b52c3c;
    --white: #fff;
    --shadow-sm: 0 8px 24px rgba(72, 25, 31, .08);
    --shadow-md: 0 18px 45px rgba(72, 25, 31, .13);
    --radius-sm: 12px;
    --radius-md: 20px;
    --radius-lg: 30px;
    --container: 1200px
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: var(--cream-50);
    color: var(--ink-950);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6
}

body,
button,
input,
select {
    font: inherit
}

img {
    display: block;
    max-width: 100%
}

a {
    color: inherit;
    text-decoration: none
}

button,
input,
select {
    border: 0
}

button,
a {
    -webkit-tap-highlight-color: transparent
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible {
    outline: 3px solid rgba(217, 164, 65, .46);
    outline-offset: 3px
}

.site-container {
    width: min(calc(100% - 40px), var(--container));
    margin-inline: auto
}

.announcement-bar {
    background: var(--brand-950);
    color: #f8e9d0;
    font-size: .82rem
}

.announcement-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 36px
}

.announcement-inner span,
.announcement-inner a {
    display: inline-flex;
    align-items: center;
    gap: 8px
}

.site-header {
    position: sticky;
    z-index: 100;
    top: 0;
    border-bottom: 1px solid rgba(90, 34, 40, .08);
    background: rgba(255, 253, 248, .96);
    box-shadow: 0 8px 20px rgba(57, 13, 20, .04);
    backdrop-filter: blur(16px)
}

.header-main {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    min-height: 78px;
    gap: 34px
}

.brand-mark {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: max-content
}

.brand-mark strong,
.brand-mark small {
    display: block
}

.brand-mark strong {
    color: var(--brand-900);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
    line-height: 1.15
}

.brand-mark small {
    margin-top: 3px;
    color: var(--ink-500);
    font-size: .7rem;
    letter-spacing: .06em;
    text-transform: uppercase
}

.brand-icon {
    display: grid;
    width: 43px;
    height: 43px;
    place-items: center;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--brand-800), var(--brand-950));
    color: var(--gold-300);
    box-shadow: 0 8px 18px rgba(87, 18, 29, .22);
    font-size: 1.18rem
}

.desktop-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px
}

.desktop-nav a {
    position: relative;
    padding: 28px 0 25px;
    color: var(--ink-700);
    font-size: .91rem;
    font-weight: 650
}

.desktop-nav a::after {
    position: absolute;
    right: 0;
    bottom: 18px;
    left: 0;
    height: 2px;
    border-radius: 999px;
    background: var(--brand-700);
    content: "";
    opacity: 0;
    transform: scaleX(.5);
    transition: 180ms ease
}

.desktop-nav a:hover,
.desktop-nav a.active {
    color: var(--brand-800)
}

.desktop-nav a:hover::after,
.desktop-nav a.active::after {
    opacity: 1;
    transform: scaleX(1)
}

.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 11px
}

.header-action,
.cart-action,
.mobile-menu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--white);
    color: var(--brand-900)
}

.header-action {
    gap: 8px;
    padding: 0 13px;
    font-size: .84rem;
    font-weight: 700
}

.cart-action {
    position: relative;
    width: 44px;
    font-size: 1.15rem
}

.cart-count {
    position: absolute;
    top: -7px;
    right: -7px;
    display: grid;
    min-width: 21px;
    height: 21px;
    padding: 0 5px;
    place-items: center;
    border: 2px solid var(--cream-50);
    border-radius: 999px;
    background: var(--brand-700);
    color: var(--white);
    font-size: .62rem;
    font-weight: 800
}

.mobile-menu-button {
    display: none;
    width: 44px;
    cursor: pointer;
    font-size: 1.45rem
}

.mobile-nav {
    display: none;
    border-top: 1px solid var(--line);
    background: var(--cream-50)
}

.mobile-nav .site-container {
    display: grid;
    padding-block: 10px 18px
}

.mobile-nav a {
    padding: 11px 4px;
    border-bottom: 1px solid rgba(234, 223, 216, .7);
    color: var(--ink-700);
    font-weight: 650
}

.mobile-nav.is-open {
    display: block
}

.flash-stack {
    position: relative;
    z-index: 80;
    padding-top: 16px
}

.flash-message {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 16px;
    border: 1px solid;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
    font-size: .92rem;
    font-weight: 650
}

.flash-success {
    border-color: #b8e1cc;
    background: #edf9f2;
    color: #17653f
}

.flash-error {
    border-color: #efc2c7;
    background: #fff1f2;
    color: #9b2532
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 12px;
    cursor: pointer;
    font-size: .9rem;
    font-weight: 800;
    gap: 9px;
    transition: transform 160ms ease, box-shadow 160ms ease
}

.button:hover:not(:disabled) {
    transform: translateY(-2px)
}

.button:disabled {
    cursor: not-allowed;
    opacity: .58
}

.button-primary {
    background: linear-gradient(135deg, var(--brand-700), var(--brand-950));
    color: var(--white);
    box-shadow: 0 10px 24px rgba(87, 18, 29, .2)
}

.button-secondary {
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .74);
    color: var(--brand-900)
}

.button-light {
    background: var(--cream-50);
    color: var(--brand-900)
}

.button-large {
    min-height: 52px;
    padding-inline: 23px
}

.button-full {
    width: 100%
}

.hero-section {
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 88% 18%, rgba(217, 164, 65, .23), transparent 31%), radial-gradient(circle at 4% 80%, rgba(143, 38, 51, .1), transparent 30%), linear-gradient(145deg, #fffaf0 0%, #fffdf8 62%, #f9ead4 100%)
}

.hero-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
    min-height: 630px;
    gap: 66px;
    padding-block: 76px
}

.hero-copy {
    position: relative;
    z-index: 2
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--brand-700);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase
}

.hero-copy h1,
.page-hero h1,
.product-detail-copy h1,
.not-found-section h1 {
    margin: 14px 0 20px;
    color: var(--brand-950);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.2rem, 6.4vw, 5.75rem);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .98
}

.hero-copy h1 span {
    display: block;
    color: var(--brand-700)
}

.hero-copy>p {
    max-width: 600px;
    margin: 0;
    color: var(--ink-700);
    font-size: 1.08rem
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px
}

.hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 22px;
    margin-top: 31px;
    color: var(--ink-700);
    font-size: .8rem;
    font-weight: 650
}

.hero-points span {
    display: inline-flex;
    align-items: center;
    gap: 7px
}

.hero-points i {
    color: var(--success)
}

.hero-visual {
    position: relative;
    min-height: 460px
}

.hero-orbit {
    position: absolute;
    border: 1px solid rgba(87, 18, 29, .13);
    border-radius: 50%
}

.hero-orbit-one {
    inset: 2% 7% 8% 10%
}

.hero-orbit-two {
    inset: 13% 18% 19% 21%
}

.hero-main-card {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    width: min(80%, 355px);
    min-height: 335px;
    padding: 36px;
    flex-direction: column;
    justify-content: flex-end;
    border-radius: 42% 42% 25% 25%;
    background: radial-gradient(circle at 55% 18%, rgba(237, 206, 142, .25), transparent 22%), linear-gradient(145deg, #8e2935, #4a0f18 75%);
    box-shadow: 0 30px 70px rgba(74, 15, 24, .28);
    color: var(--white);
    transform: translate(-50%, -50%)
}

.hero-card-icon {
    display: grid;
    width: 76px;
    height: 76px;
    margin-bottom: auto;
    place-items: center;
    align-self: center;
    border: 1px solid rgba(255, 255, 255, .21);
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    color: var(--gold-300);
    font-size: 2rem
}

.hero-main-card small {
    color: var(--gold-300);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase
}

.hero-main-card strong {
    margin: 8px 0 21px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.75rem;
    line-height: 1.13
}

.hero-main-card a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--gold-300);
    font-size: .86rem;
    font-weight: 800
}

.floating-card {
    position: absolute;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px 15px;
    border: 1px solid rgba(255, 255, 255, .74);
    border-radius: 16px;
    background: rgba(255, 253, 248, .9);
    box-shadow: var(--shadow-md);
    backdrop-filter: blur(12px)
}

.floating-card>i {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 11px;
    background: var(--cream-100);
    color: var(--brand-700)
}

.floating-card small,
.floating-card span {
    display: block
}

.floating-card small {
    color: var(--ink-500);
    font-size: .67rem
}

.floating-card span {
    font-size: .78rem;
    font-weight: 750
}

.floating-card-top {
    top: 10%;
    right: -2%
}

.floating-card-bottom {
    bottom: 12%;
    left: 0
}

.section {
    padding-block: 82px
}

.section-soft {
    background: #fbf5eb
}

.section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 31px
}

.section-heading h2,
.festival-banner h2,
.order-summary-card h2,
.empty-state h2 {
    margin: 6px 0 0;
    color: var(--brand-950);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3vw, 2.8rem);
    letter-spacing: -.035em;
    line-height: 1.12
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--brand-700);
    font-size: .88rem;
    font-weight: 800
}

.category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px
}

.category-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    min-height: 112px;
    padding: 19px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--white);
    box-shadow: var(--shadow-sm);
    gap: 13px;
    transition: 180ms ease
}

.category-card:hover {
    border-color: var(--gold-300);
    box-shadow: var(--shadow-md);
    transform: translateY(-4px)
}

.category-icon {
    display: grid;
    width: 50px;
    height: 50px;
    place-items: center;
    border-radius: 15px;
    background: var(--cream-100);
    color: var(--brand-700);
    font-size: 1.28rem
}

.category-card strong,
.category-card small {
    display: block
}

.category-card strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.07rem
}

.category-card small {
    margin-top: 2px;
    color: var(--ink-500);
    font-size: .72rem
}

.category-arrow {
    color: var(--gold-500)
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px
}

.product-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--white);
    box-shadow: var(--shadow-sm);
    transition: 180ms ease
}

.product-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-5px)
}

.product-media {
    position: relative;
    display: grid;
    aspect-ratio: 1.06;
    overflow: hidden;
    place-items: center;
    background: linear-gradient(145deg, #f8ecdb, #f2dcc1)
}

.product-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 300ms ease
}

.product-card:hover .product-media img {
    transform: scale(1.035)
}

.product-image-fallback {
    display: grid;
    place-items: center;
    color: var(--brand-700);
    gap: 8px
}

.product-image-fallback.is-hidden {
    display: none
}

.product-image-fallback i {
    font-size: 2.2rem
}

.product-image-fallback small {
    color: var(--ink-500);
    font-family: Georgia, "Times New Roman", serif
}

.product-badges {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px
}

.badge {
    padding: 5px 8px;
    border-radius: 999px;
    font-size: .62rem;
    font-weight: 850
}

.badge-new {
    background: var(--success);
    color: var(--white)
}

.badge-festival {
    background: var(--gold-300);
    color: var(--brand-950)
}

.badge-stock {
    background: var(--danger);
    color: var(--white)
}

.product-card-body {
    padding: 18px
}

.product-category {
    color: var(--brand-700);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase
}

.product-card h3 {
    min-height: 48px;
    margin: 6px 0 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.14rem;
    line-height: 1.25
}

.product-card h3 a:hover {
    color: var(--brand-700)
}

.product-price-row {
    display: flex;
    align-items: baseline;
    min-height: 29px;
    gap: 8px
}

.product-price-row strong {
    color: var(--brand-800);
    font-size: 1.06rem
}

.product-price-row del,
.product-price-row small {
    color: var(--ink-500);
    font-size: .76rem
}

.product-card-form {
    margin-top: 15px
}

.festival-section {
    padding-top: 22px
}

.festival-banner {
    position: relative;
    display: grid;
    min-height: 350px;
    overflow: hidden;
    align-items: center;
    padding: 58px 68px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, #4a0f18, #7b1e2b 68%, #9a3440);
    color: var(--white);
    box-shadow: 0 25px 60px rgba(74, 15, 24, .24)
}

.festival-banner>div:first-child {
    position: relative;
    z-index: 2;
    max-width: 590px
}

.eyebrow-light {
    color: var(--gold-300)
}

.festival-banner h2 {
    color: var(--white);
    font-size: clamp(2.4rem, 4vw, 4.2rem)
}

.festival-banner p {
    max-width: 520px;
    margin: 15px 0 26px;
    color: #f3dfe0
}

.festival-symbol {
    position: absolute;
    right: 7%;
    display: grid;
    width: 250px;
    height: 250px;
    place-items: center;
    border: 1px solid rgba(237, 206, 142, .2);
    border-radius: 50%;
    color: rgba(237, 206, 142, .28);
    font-size: 9rem
}

.trust-section {
    border-block: 1px solid var(--line);
    background: var(--white)
}

.trust-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px
}

.trust-grid article {
    display: flex;
    align-items: flex-start;
    gap: 15px
}

.trust-grid article>i {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 14px;
    background: var(--cream-100);
    color: var(--brand-700);
    font-size: 1.25rem
}

.trust-grid h3 {
    margin: 1px 0 3px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.09rem
}

.trust-grid p {
    margin: 0;
    color: var(--ink-500);
    font-size: .82rem
}

.page-hero {
    background: linear-gradient(145deg, #fff8e9, #fffdf8)
}

.page-hero-compact {
    padding-block: 61px 55px
}

.page-hero h1 {
    margin: 8px 0 10px;
    font-size: clamp(2.7rem, 5vw, 4.5rem)
}

.page-hero p {
    max-width: 690px;
    margin: 0;
    color: var(--ink-700)
}

.shop-section {
    padding-top: 56px
}

.shop-layout {
    display: grid;
    grid-template-columns: 245px minmax(0, 1fr);
    align-items: start;
    gap: 28px
}

.shop-sidebar {
    position: sticky;
    top: 104px
}

.filter-card,
.help-card,
.shop-toolbar,
.cart-items-card,
.order-summary-card {
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--white);
    box-shadow: var(--shadow-sm)
}

.filter-card {
    padding: 19px
}

.filter-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 13px;
    border-bottom: 1px solid var(--line)
}

.filter-title h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2rem
}

.filter-title a {
    color: var(--brand-700);
    font-size: .72rem;
    font-weight: 800
}

.category-filter {
    display: grid;
    margin-top: 11px
}

.category-filter a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 11px;
    border-radius: 10px;
    color: var(--ink-700);
    font-size: .82rem;
    font-weight: 650
}

.category-filter a:hover,
.category-filter a.active {
    background: var(--cream-100);
    color: var(--brand-800)
}

.category-filter small {
    display: grid;
    min-width: 25px;
    height: 23px;
    padding: 0 5px;
    place-items: center;
    border-radius: 999px;
    background: var(--white);
    color: var(--ink-500)
}

.help-card {
    margin-top: 17px;
    padding: 22px;
    background: linear-gradient(145deg, var(--brand-900), var(--brand-950));
    color: var(--white)
}

.help-card>i {
    color: var(--gold-300);
    font-size: 1.45rem
}

.help-card h3 {
    margin: 10px 0 6px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.16rem
}

.help-card p {
    margin: 0 0 12px;
    color: #e9d7d9;
    font-size: .78rem
}

.help-card a {
    color: var(--gold-300);
    font-weight: 800
}

.shop-toolbar {
    display: grid;
    grid-template-columns: 1fr 190px auto;
    padding: 15px;
    gap: 11px
}

.search-field {
    position: relative
}

.search-field i {
    position: absolute;
    top: 50%;
    left: 14px;
    color: var(--ink-500);
    transform: translateY(-50%)
}

.search-field input,
.shop-toolbar select,
.detail-order-row input,
.cart-quantity input {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--cream-50);
    color: var(--ink-950)
}

.search-field input {
    padding: 0 14px 0 42px
}

.shop-toolbar select {
    padding: 0 13px
}

.result-meta {
    display: flex;
    align-items: center;
    min-height: 54px;
    color: var(--ink-500);
    gap: 5px;
    font-size: .8rem
}

.product-grid-shop {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}

.empty-state {
    display: flex;
    min-height: 370px;
    padding: 50px 22px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--gold-300);
    border-radius: var(--radius-md);
    background: var(--cream-100);
    text-align: center
}

.empty-state>i {
    margin-bottom: 12px;
    color: var(--brand-700);
    font-size: 3rem
}

.empty-state p {
    max-width: 510px;
    margin: 10px auto 23px;
    color: var(--ink-500)
}

.pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 34px
}

.pagination a {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--white);
    color: var(--ink-700);
    font-size: .82rem;
    font-weight: 800
}

.pagination a:hover,
.pagination a.active {
    border-color: var(--brand-700);
    background: var(--brand-700);
    color: var(--white)
}

.product-detail-section {
    padding-top: 39px
}

.breadcrumbs {
    display: flex;
    align-items: center;
    margin-bottom: 27px;
    color: var(--ink-500);
    gap: 9px;
    font-size: .76rem
}

.breadcrumbs a:hover {
    color: var(--brand-700)
}

.breadcrumbs i {
    font-size: .57rem
}

.product-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    align-items: center;
    gap: 60px
}

.product-detail-media {
    position: relative;
    display: grid;
    min-height: 530px;
    overflow: hidden;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: linear-gradient(145deg, #f8ecdb, #eed5b7);
    box-shadow: var(--shadow-md)
}

.product-detail-media img {
    width: 100%;
    height: 100%;
    max-height: 620px;
    object-fit: cover
}

.product-detail-copy h1 {
    margin: 9px 0 15px;
    font-size: clamp(2.7rem, 5vw, 4.5rem)
}

.detail-price {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 21px;
    gap: 12px
}

.detail-price strong {
    color: var(--brand-800);
    font-size: 1.72rem
}

.detail-price del {
    color: var(--ink-500)
}

.detail-price span {
    padding: 5px 9px;
    border-radius: 999px;
    background: #eaf7f0;
    color: var(--success);
    font-size: .7rem;
    font-weight: 800
}

.detail-description {
    max-width: 620px;
    margin: 0 0 24px;
    color: var(--ink-700)
}

.stock-panel {
    display: inline-flex;
    align-items: center;
    padding: 11px 14px;
    border-radius: 12px;
    background: #eaf7f0;
    color: var(--success);
    gap: 10px;
    font-size: .82rem
}

.stock-panel.out {
    background: #fff0f1;
    color: var(--danger)
}

.detail-order-form {
    margin-top: 26px
}

.detail-order-form>label {
    display: block;
    margin-bottom: 7px;
    color: var(--ink-700);
    font-size: .78rem;
    font-weight: 750
}

.detail-order-row {
    display: grid;
    grid-template-columns: 110px 1fr auto;
    gap: 10px
}

.detail-order-row input {
    padding: 0 14px
}

.detail-benefits {
    display: flex;
    flex-wrap: wrap;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
    color: var(--ink-700);
    gap: 12px 21px;
    font-size: .75rem;
    font-weight: 650
}

.cart-section {
    padding-top: 55px
}

.empty-cart {
    min-height: 460px
}

.cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 350px;
    align-items: start;
    gap: 28px
}

.cart-items-card,
.order-summary-card {
    padding: 23px
}

.cart-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 17px;
    border-bottom: 1px solid var(--line)
}

.cart-card-header h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem
}

.text-button {
    background: transparent;
    color: var(--brand-700);
    cursor: pointer;
    font-size: .78rem;
    font-weight: 800
}

.cart-line {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) 105px 115px 38px;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid var(--line);
    gap: 17px
}

.cart-line:last-child {
    border-bottom: 0
}

.cart-line-image {
    position: relative;
    display: grid;
    width: 92px;
    aspect-ratio: 1;
    overflow: hidden;
    place-items: center;
    border-radius: 15px;
    background: var(--cream-100)
}

.cart-line-image img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.cart-line-copy>span {
    color: var(--brand-700);
    font-size: .67rem;
    font-weight: 800;
    text-transform: uppercase
}

.cart-line-copy h3 {
    margin: 3px 0 2px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.09rem
}

.cart-line-copy small {
    color: var(--ink-500)
}

.cart-quantity span {
    display: block;
    margin-bottom: 5px;
    color: var(--ink-500);
    font-size: .68rem
}

.cart-quantity input {
    min-height: 40px;
    padding: 0 10px
}

.cart-line-total {
    color: var(--brand-800);
    text-align: right
}

.remove-button {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 10px;
    background: #fff0f1;
    color: var(--danger);
    cursor: pointer
}

.order-summary-card {
    position: sticky;
    top: 105px
}

.order-summary-card h2 {
    margin-bottom: 22px
}

.summary-line,
.summary-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
    gap: 15px
}

.summary-line {
    color: var(--ink-700);
    font-size: .83rem
}

.summary-line small {
    color: var(--ink-500);
    text-align: right
}

.summary-total {
    margin-bottom: 20px;
    border-bottom: 0;
    color: var(--brand-950);
    font-size: 1.02rem;
    font-weight: 800
}

.summary-total strong {
    font-size: 1.28rem
}

.summary-note {
    margin: 13px 0;
    color: var(--ink-500);
    font-size: .72rem;
    text-align: center
}

.continue-shopping {
    display: flex;
    justify-content: center;
    color: var(--brand-700);
    gap: 7px;
    font-size: .8rem;
    font-weight: 800
}

.not-found-section {
    padding-block: 100px
}

.not-found-section .empty-state {
    min-height: 530px
}

.not-found-section h1 {
    margin: 6px 0;
    font-size: clamp(2.5rem, 5vw, 4.2rem)
}

.site-footer {
    padding-top: 68px;
    background: var(--brand-950);
    color: #e9d8da
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr .7fr 1.05fr 1.25fr;
    gap: 48px
}

.brand-mark-light strong {
    color: var(--white)
}

.brand-mark-light small {
    color: #c9aeb2
}

.footer-brand p {
    max-width: 340px;
    margin-top: 17px;
    color: #c9aeb2;
    font-size: .82rem
}

.footer-grid h3 {
    margin: 5px 0 15px;
    color: var(--gold-300);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1rem
}

.footer-grid>div:not(:first-child) {
    display: flex;
    flex-direction: column;
    align-items: flex-start
}

.footer-grid>div:not(:first-child) a {
    margin-bottom: 8px;
    color: #d7c2c5;
    font-size: .78rem
}

.footer-grid address {
    margin: 0;
    color: #c9aeb2;
    font-size: .77rem;
    font-style: normal
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 55px;
    padding-block: 20px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    color: #b99fa3;
    font-size: .7rem
}

@media(max-width:1050px) {
    .desktop-nav {
        gap: 18px
    }
    .desktop-nav a:nth-last-child(-n+2) {
        display: none
    }
    .hero-grid {
        gap: 25px
    }
    .category-grid,
    .product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr))
    }
    .product-grid-shop {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
    .cart-layout {
        grid-template-columns: minmax(0, 1fr) 310px
    }
    .cart-line {
        grid-template-columns: 76px minmax(0, 1fr) 92px 95px 36px
    }
    .cart-line-image {
        width: 76px
    }
}

@media(max-width:820px) {
    .announcement-inner>span {
        display: none
    }
    .announcement-inner {
        justify-content: center
    }
    .header-main {
        grid-template-columns: auto 1fr auto;
        min-height: 70px;
        gap: 13px
    }
    .desktop-nav {
        display: none
    }
    .mobile-menu-button {
        display: inline-flex;
        justify-self: end;
        grid-column: 2
    }
    .header-actions {
        grid-column: 3
    }
    .header-action {
        width: 42px;
        padding: 0
    }
    .action-label {
        display: none
    }
    .hero-grid {
        grid-template-columns: 1fr;
        min-height: auto;
        padding-block: 62px 46px
    }
    .hero-copy {
        text-align: center
    }
    .hero-copy>p {
        margin-inline: auto
    }
    .hero-actions,
    .hero-points {
        justify-content: center
    }
    .hero-visual {
        min-height: 430px
    }
    .category-grid,
    .product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
    .festival-banner {
        padding: 45px 35px
    }
    .trust-grid {
        grid-template-columns: 1fr
    }
    .shop-layout {
        grid-template-columns: 1fr
    }
    .shop-sidebar,
    .order-summary-card {
        position: static
    }
    .category-filter {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
    .help-card {
        display: none
    }
    .product-detail-grid {
        grid-template-columns: 1fr;
        gap: 35px
    }
    .product-detail-media {
        min-height: 420px
    }
    .cart-layout {
        grid-template-columns: 1fr
    }
    .footer-grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:580px) {
    .site-container {
        width: min(calc(100% - 26px), var(--container))
    }
    .brand-mark strong {
        font-size: 1.02rem
    }
    .brand-mark small {
        display: none
    }
    .brand-icon {
        width: 39px;
        height: 39px
    }
    .header-main {
        gap: 8px
    }
    .mobile-menu-button,
    .header-action,
    .cart-action {
        width: 39px;
        height: 39px
    }
    .hero-copy h1 {
        font-size: clamp(2.85rem, 15vw, 4.15rem)
    }
    .hero-actions {
        display: grid
    }
    .hero-points {
        display: grid;
        justify-content: center;
        text-align: left
    }
    .hero-visual {
        min-height: 380px
    }
    .hero-main-card {
        min-height: 305px;
        padding: 28px
    }
    .section {
        padding-block: 60px
    }
    .section-heading {
        align-items: flex-start;
        flex-direction: column
    }
    .category-grid,
    .product-grid,
    .product-grid-shop {
        grid-template-columns: 1fr
    }
    .category-card {
        min-height: 94px
    }
    .product-media {
        aspect-ratio: 1.2
    }
    .festival-banner {
        min-height: 390px;
        padding: 36px 24px
    }
    .page-hero-compact {
        padding-block: 48px 43px
    }
    .shop-toolbar {
        grid-template-columns: 1fr
    }
    .category-filter {
        grid-template-columns: 1fr
    }
    .product-detail-media {
        min-height: 340px
    }
    .detail-order-row {
        grid-template-columns: 1fr
    }
    .cart-items-card {
        padding: 15px
    }
    .cart-line {
        grid-template-columns: 72px minmax(0, 1fr) 36px
    }
    .cart-line-image {
        width: 72px;
        grid-row: span 2
    }
    .cart-quantity {
        grid-column: 2;
        max-width: 115px
    }
    .cart-line-total {
        grid-column: 2;
        grid-row: 2;
        align-self: end;
        justify-self: end
    }
    .remove-button {
        grid-column: 3;
        grid-row: 1
    }
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 30px
    }
    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px
    }
}


/*
|--------------------------------------------------------------------------
| Reference-style commerce header and footer
|--------------------------------------------------------------------------
*/

.store-utility-bar {
    background: #99000f;
    color: #ffffff;
    font-size: 0.76rem;
}

.store-utility-inner,
.store-utility-group {
    display: flex;
    align-items: center;
}

.store-utility-inner {
    justify-content: space-between;
    min-height: 41px;
    gap: 24px;
}

.store-utility-group {
    gap: 27px;
}

.store-utility-group span,
.store-utility-group a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.store-utility-group i {
    color: #ffda57;
}

.store-commerce-header {
    background: #ffffff;
}

.store-main-header {
    display: grid;
    grid-template-columns: minmax(220px, 0.8fr) minmax(360px, 1.7fr) auto;
    align-items: center;
    min-height: 104px;
    gap: 35px;
}

.store-brand strong {
    color: #2e292a;
}

.store-brand picture {
    display: block;
    line-height: 0;
}

.store-brand-logo-image {
    display: block;
    width: 220px;
    max-width: 100%;
    height: auto;
}

.brand-emblem {
    display: block;
    object-fit: contain;
}

.brand-emblem-footer {
    width: 46px;
    height: 58px;
    flex: 0 0 auto;
}

.store-search {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    height: 49px;
    overflow: hidden;
    border: 2px solid #eee7e1;
    border-radius: 999px;
    background: #ffffff;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.store-search:focus-within {
    border-color: rgba(153, 0, 15, 0.45);
    box-shadow: 0 0 0 4px rgba(153, 0, 15, 0.08);
}

.store-search-leading {
    position: absolute;
    left: 19px;
    color: #8b8182;
}

.store-search input {
    width: 100%;
    height: 100%;
    padding: 0 68px 0 48px;
    background: transparent;
    color: var(--ink-950);
    outline: 0;
}

.store-search button {
    position: absolute;
    right: 5px;
    display: grid;
    width: 39px;
    height: 39px;
    place-items: center;
    border-radius: 50%;
    background: #99000f;
    color: #ffffff;
    cursor: pointer;
}

.store-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 13px;
}

.store-icon-action {
    position: relative;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 50%;
    color: #332e2f;
    font-size: 1.35rem;
    transition: background 160ms ease, color 160ms ease;
}

.store-icon-action:hover {
    background: #fff1e0;
    color: #99000f;
}

.store-action-count {
    position: absolute;
    top: -3px;
    right: -3px;
    display: grid;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    place-items: center;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #d92332;
    color: #ffffff;
    font-size: 0.59rem;
    font-weight: 850;
}

.store-menu-button {
    display: none;
}

.store-category-navigation {
    border-top: 1px solid #f0e9e4;
    box-shadow: 0 6px 15px rgba(45, 20, 23, 0.04);
}

.store-category-links {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 61px;
    gap: 37px;
}

.store-category-links a {
    position: relative;
    padding-block: 20px;
    color: #353031;
    font-size: 0.82rem;
    font-weight: 750;
    white-space: nowrap;
}

.store-category-links a::after {
    position: absolute;
    right: 0;
    bottom: 13px;
    left: 0;
    height: 2px;
    border-radius: 999px;
    background: #99000f;
    content: "";
    opacity: 0;
    transform: scaleX(0.55);
    transition: 160ms ease;
}

.store-category-links a:hover,
.store-category-links a.active {
    color: #99000f;
}

.store-category-links a:hover::after,
.store-category-links a.active::after {
    opacity: 1;
    transform: scaleX(1);
}

.store-mobile-search {
    position: relative;
    display: flex;
    margin: 10px 0 8px;
}

.store-mobile-search input {
    width: 100%;
    min-height: 44px;
    padding: 0 50px 0 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #ffffff;
}

.store-mobile-search button {
    position: absolute;
    right: 4px;
    top: 4px;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 9px;
    background: #99000f;
    color: #ffffff;
}

.store-footer {
    padding-top: 65px;
    background: #202020;
    color: #d7d2d2;
}

.store-footer-grid {
    display: grid;
    grid-template-columns: 1.35fr 0.8fr 0.8fr 1.35fr;
    gap: 58px;
}

.store-footer-about p {
    max-width: 370px;
    margin: 23px 0;
    color: #a8a2a3;
    font-size: 0.82rem;
    line-height: 1.85;
}

.store-social-links {
    display: flex;
    gap: 11px;
}

.store-social-links a {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 50%;
    background: #333333;
    color: #ffffff;
    transition: background 160ms ease, transform 160ms ease;
}

.store-social-links a:hover {
    background: #99000f;
    transform: translateY(-2px);
}

.store-footer-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.store-footer-column h3 {
    margin: 5px 0 20px;
    color: #ffffff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.1rem;
}

.store-footer-column>a {
    margin-bottom: 10px;
    color: #c2bdbd;
    font-size: 0.8rem;
}

.store-footer-column>a:hover {
    color: #ffda57;
}

.store-contact-column address {
    display: grid;
    margin: 0;
    gap: 14px;
    font-size: 0.78rem;
    font-style: normal;
}

.store-contact-column address span,
.store-contact-column address a {
    display: grid;
    grid-template-columns: 20px 1fr;
    color: #c2bdbd;
    gap: 8px;
}

.store-contact-column address i {
    color: #ffcf42;
}

.store-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 55px;
    padding-block: 20px;
    border-top: 1px solid #373737;
    color: #969090;
    font-size: 0.72rem;
}

.store-payment-methods {
    display: flex;
    align-items: center;
    gap: 9px;
}

.store-payment-methods span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 9px;
    border-radius: 6px;
    background: #ffffff;
    color: #2f292a;
    font-size: 0.64rem;
    font-weight: 800;
}

.floating-whatsapp {
    position: fixed;
    z-index: 150;
    right: 25px;
    bottom: 24px;
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border: 4px solid rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    background: #0bdc67;
    color: #ffffff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
    font-size: 1.65rem;
    transition: transform 160ms ease;
}

.floating-whatsapp:hover {
    transform: translateY(-4px) scale(1.03);
}

@media (max-width: 1080px) {
    .store-main-header {
        grid-template-columns: auto minmax(280px, 1fr) auto;
        gap: 20px;
    }
    .store-brand small {
        display: none;
    }
    .store-brand-logo-image {
        width: 190px;
    }
    .store-category-links {
        gap: 22px;
    }
}

@media (max-width: 860px) {
    .store-utility-inner {
        justify-content: center;
    }
    .store-utility-group:first-child {
        display: none;
    }
    .store-main-header {
        grid-template-columns: 1fr auto;
        min-height: 82px;
    }
    .store-brand-logo-image {
        width: 176px;
    }
    .store-search {
        display: none;
    }
    .store-category-navigation {
        display: none;
    }
    .store-menu-button {
        display: inline-flex;
    }
    .store-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 42px;
    }
}

@media (max-width: 580px) {
    .store-utility-group {
        width: 100%;
        justify-content: space-between;
        gap: 10px;
    }
    .store-utility-group a {
        font-size: 0.67rem;
    }
    .store-brand-logo-image {
        width: 158px;
    }
    .store-header-actions {
        gap: 4px;
    }
    .store-icon-action,
    .store-menu-button {
        width: 37px;
        height: 37px;
        font-size: 1.12rem;
    }
    .store-footer-grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }
    .store-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 15px;
    }
    .floating-whatsapp {
        right: 15px;
        bottom: 15px;
        width: 52px;
        height: 52px;
    }
}


/*
|--------------------------------------------------------------------------
| Reference-style homepage
|--------------------------------------------------------------------------
*/

.store-hero-slider {
    position: relative;
    min-height: 540px;
    overflow: hidden;
    background: #f2e5cf;
}

.store-hero-slide {
    position: absolute;
    inset: 0;
    display: grid;
    align-items: center;
    min-height: 540px;
    visibility: hidden;
    opacity: 0;
    transform: translateX(2%);
    transition: opacity 500ms ease, transform 650ms ease, visibility 500ms ease;
}

.store-hero-slide.is-active {
    position: relative;
    visibility: visible;
    opacity: 1;
    transform: translateX(0);
}

.store-slide-sweets {
    background: radial-gradient( circle at 82% 22%, rgba(255, 215, 105, 0.28), transparent 27%), linear-gradient( 125deg, #fff2d9 0%, #f5ddba 100%);
}

.store-slide-festival {
    background: radial-gradient( circle at 78% 28%, rgba(255, 218, 87, 0.2), transparent 25%), linear-gradient( 125deg, #fff0de 0%, #f5c9b4 100%);
}

.store-slide-snacks {
    background: radial-gradient( circle at 80% 22%, rgba(234, 175, 76, 0.22), transparent 26%), linear-gradient( 125deg, #f8edcf 0%, #ead0a4 100%);
}

.store-slide-content {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    align-items: center;
    min-height: 540px;
    padding-block: 62px;
    gap: 60px;
}

.store-slide-copy {
    position: relative;
    z-index: 3;
    max-width: 650px;
}

.store-slide-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border-radius: 999px;
    background: #ffda57;
    color: #301e1f;
    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.02em;
}

.store-slide-copy h1,
.store-slide-copy h2 {
    margin: 21px 0 18px;
    color: #33292a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 5.5vw, 5.15rem);
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.store-slide-copy h1 span,
.store-slide-copy h2 span {
    display: block;
    color: #99000f;
}

.store-slide-copy p {
    max-width: 610px;
    margin: 0;
    color: #665b5c;
    font-size: 1rem;
}

.store-slide-actions {
    display: flex;
    flex-wrap: wrap;
    margin-top: 29px;
    gap: 12px;
}

.store-button-red {
    background: #99000f;
    color: #ffffff;
    box-shadow: 0 11px 25px rgba(153, 0, 15, 0.19);
}

.store-button-red:hover {
    background: #78000c;
}

.store-button-outline {
    border: 2px solid #99000f;
    background: rgba(255, 255, 255, 0.58);
    color: #99000f;
}

.store-button-light {
    background: #ffffff;
    color: #99000f;
}

.store-slide-art {
    position: relative;
    min-height: 400px;
}

.store-art-ring {
    position: absolute;
    border: 1px solid rgba(153, 0, 15, 0.14);
    border-radius: 50%;
}

.store-art-ring-one {
    inset: 1% 8% 3% 8%;
}

.store-art-ring-two {
    inset: 13% 20% 15% 20%;
}

.store-art-main {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    width: 250px;
    height: 250px;
    place-items: center;
    border: 13px solid rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    background: radial-gradient( circle at 35% 30%, #c8484f, #99000f 65%, #640008);
    color: #ffda57;
    box-shadow: 0 28px 55px rgba(96, 15, 22, 0.24);
    font-size: 6.2rem;
    transform: translate(-50%, -50%);
}

.store-art-note {
    position: absolute;
    display: inline-flex;
    align-items: center;
    padding: 11px 15px;
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.9);
    color: #403637;
    box-shadow: var(--shadow-md);
    gap: 8px;
    font-size: 0.75rem;
    font-weight: 750;
    backdrop-filter: blur(10px);
}

.store-art-note i {
    color: #99000f;
}

.store-art-note-top {
    top: 14%;
    right: 0;
}

.store-art-note-bottom {
    bottom: 15%;
    left: 0;
}

.store-slider-arrow {
    position: absolute;
    z-index: 10;
    top: 50%;
    display: grid;
    width: 43px;
    height: 43px;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.86);
    color: #99000f;
    box-shadow: 0 8px 22px rgba(60, 20, 23, 0.13);
    cursor: pointer;
    opacity: 0;
    transform: translateY(-50%);
    transition: opacity 160ms ease;
}

.store-hero-slider:hover .store-slider-arrow {
    opacity: 1;
}

.store-slider-previous {
    left: 22px;
}

.store-slider-next {
    right: 22px;
}

.store-slider-dots {
    position: absolute;
    z-index: 10;
    right: 0;
    bottom: 19px;
    left: 0;
    display: flex;
    justify-content: center;
    gap: 8px;
}

.store-slider-dots button {
    width: 9px;
    height: 9px;
    padding: 0;
    border-radius: 999px;
    background: rgba(153, 0, 15, 0.25);
    cursor: pointer;
    transition: width 180ms ease, background 180ms ease;
}

.store-slider-dots button.is-active {
    width: 27px;
    background: #99000f;
}

.store-centered-heading {
    max-width: 690px;
    margin: 0 auto 39px;
    text-align: center;
}

.store-centered-heading h2 {
    margin: 8px 0 10px;
    color: #31292a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.35rem, 4vw, 3.5rem);
    letter-spacing: -0.045em;
    line-height: 1.05;
}

.store-centered-heading p {
    margin: 0;
    color: #766b6c;
    font-size: 0.88rem;
}

.store-home-categories {
    background: #fff8e9;
}

.store-category-showcase {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.store-showcase-category {
    position: relative;
    display: flex;
    min-height: 235px;
    overflow: hidden;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 27px 18px;
    border: 1px solid #f0e6d8;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(76, 33, 38, 0.07);
    text-align: center;
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.store-showcase-category::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: #99000f;
    content: "";
    opacity: 0;
    transform: scaleX(0.25);
    transition: 180ms ease;
}

.store-showcase-category:hover {
    border-color: #e2bd81;
    box-shadow: 0 20px 38px rgba(76, 33, 38, 0.12);
    transform: translateY(-6px);
}

.store-showcase-category:hover::before {
    opacity: 1;
    transform: scaleX(1);
}

.store-showcase-icon {
    display: grid;
    width: 72px;
    height: 72px;
    margin-bottom: 19px;
    place-items: center;
    border-radius: 50%;
    background: #fff3dc;
    color: #99000f;
    font-size: 1.75rem;
}

.store-showcase-count {
    margin-bottom: 5px;
    color: #a27239;
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.store-showcase-category strong {
    color: #352d2e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.18rem;
}

.store-showcase-category small {
    margin-top: 6px;
    color: #867b7c;
    font-size: 0.74rem;
}

.store-fresh-products {
    background: #fffdf8;
}

.store-featured-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.store-section-action {
    display: flex;
    justify-content: center;
    margin-top: 35px;
}

.store-home-festival {
    padding-top: 20px;
    background: #fffdf8;
}

.store-festival-panel {
    position: relative;
    display: grid;
    min-height: 365px;
    overflow: hidden;
    align-items: center;
    padding: 55px 65px;
    border-radius: 30px;
    background: radial-gradient( circle at 82% 30%, rgba(255, 218, 87, 0.15), transparent 25%), linear-gradient( 130deg, #650009, #9b0816);
    color: #ffffff;
    box-shadow: 0 28px 60px rgba(101, 0, 9, 0.22);
}

.store-festival-panel>div {
    position: relative;
    z-index: 2;
    max-width: 640px;
}

.store-festival-panel h2 {
    margin: 18px 0 15px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.7rem, 5vw, 4.5rem);
    letter-spacing: -0.045em;
    line-height: 1;
}

.store-festival-panel h2 span {
    display: block;
    color: #ffda57;
}

.store-festival-panel p {
    max-width: 580px;
    margin: 0 0 25px;
    color: #f3d9dc;
}

.store-festival-icon {
    position: absolute;
    right: 8%;
    display: grid;
    width: 260px;
    height: 260px;
    place-items: center;
    border: 1px solid rgba(255, 218, 87, 0.2);
    border-radius: 50%;
    color: rgba(255, 218, 87, 0.28);
    font-size: 8rem;
}

.store-new-arrivals {
    background: #fff8e9;
}

.store-benefits-section {
    padding-block: 35px;
    border-top: 1px solid #eee2d5;
    background: #ffffff;
}

.store-benefits-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.store-benefits-grid article {
    display: flex;
    align-items: center;
    gap: 13px;
}

.store-benefits-grid article>i {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: #fff1df;
    color: #99000f;
    font-size: 1.25rem;
}

.store-benefits-grid strong,
.store-benefits-grid span {
    display: block;
}

.store-benefits-grid strong {
    color: #382f30;
    font-size: 0.86rem;
}

.store-benefits-grid span {
    margin-top: 2px;
    color: #8a7e7f;
    font-size: 0.68rem;
}

@media (max-width: 980px) {
    .store-slide-content {
        gap: 25px;
    }
    .store-art-main {
        width: 210px;
        height: 210px;
        font-size: 5rem;
    }
    .store-category-showcase,
    .store-featured-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .store-benefits-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .store-hero-slider,
    .store-hero-slide {
        min-height: 650px;
    }
    .store-slide-content {
        grid-template-columns: 1fr;
        min-height: 650px;
        padding-block: 55px;
        text-align: center;
    }
    .store-slide-copy {
        max-width: 100%;
    }
    .store-slide-copy p {
        margin-inline: auto;
    }
    .store-slide-actions {
        justify-content: center;
    }
    .store-slide-art {
        display: none;
    }
    .store-slider-arrow {
        display: none;
    }
    .store-festival-panel {
        padding: 45px 33px;
    }
    .store-festival-icon {
        right: -8%;
        opacity: 0.5;
    }
}

@media (max-width: 580px) {
    .store-hero-slider,
    .store-hero-slide,
    .store-slide-content {
        min-height: 590px;
    }
    .store-slide-copy h1,
    .store-slide-copy h2 {
        font-size: clamp(2.7rem, 14vw, 4rem);
    }
    .store-slide-actions {
        display: grid;
    }
    .store-category-showcase,
    .store-featured-grid,
    .store-benefits-grid {
        grid-template-columns: 1fr;
    }
    .store-showcase-category {
        min-height: 205px;
    }
    .store-festival-panel {
        min-height: 430px;
        padding: 38px 25px;
    }
    .store-festival-icon {
        right: -33%;
        bottom: -20%;
    }
}


/* ==========================================
   SHOP BY BRANDS
========================================== */

.store-home-brands {
    border-top: 1px solid #f2e7d7;
    border-bottom: 1px solid #f2e7d7;
    background: #fffdf8;
}

.store-brand-showcase {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
}

.store-brand-card {
    display: flex;
    min-width: 0;
    align-items: center;
    padding: 18px;
    border: 1px solid #eee2d4;
    border-radius: 18px;
    background: #ffffff;
    gap: 13px;
    box-shadow: 0 9px 24px rgba(76, 33, 38, 0.055);
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.store-brand-card:hover {
    border-color: #dca965;
    box-shadow: 0 16px 32px rgba(76, 33, 38, 0.11);
    transform: translateY(-4px);
}

.store-brand-logo {
    display: grid;
    width: 58px;
    height: 58px;
    overflow: hidden;
    flex: 0 0 58px;
    place-items: center;
    border-radius: 50%;
    background: radial-gradient( circle at 30% 20%, #fffdf4, transparent 38%), #fff0d8;
    color: #99000f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1rem;
}

.store-brand-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.store-brand-copy {
    display: grid;
    min-width: 0;
    flex: 1;
    gap: 3px;
}

.store-brand-copy strong {
    overflow: hidden;
    color: #352d2e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 0.94rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.store-brand-copy small {
    color: #8b7f80;
    font-size: 0.68rem;
}

.store-brand-card>i {
    color: #a27239;
    font-size: 0.85rem;
}

@media (max-width: 980px) {
    .store-brand-showcase {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 580px) {
    .store-brand-showcase {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   CUSTOMER AUTHENTICATION
========================================================= */

.storefront-auth-section {
    min-height: 680px;
    padding: 72px 0;
    display: flex;
    align-items: center;
    background: radial-gradient( circle at 8% 10%, rgba(255, 216, 120, 0.22), transparent 30%), radial-gradient( circle at 92% 90%, rgba(177, 0, 25, 0.08), transparent 32%), #fffaf0;
}

.storefront-auth-shell {
    width: min(100%, 1040px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    overflow: hidden;
    border: 1px solid rgba(84, 39, 35, 0.09);
    border-radius: 28px;
    background: #ffffff;
    box-shadow: 0 28px 80px rgba(84, 39, 35, 0.14);
}

.storefront-auth-visual {
    position: relative;
    min-height: 610px;
    padding: 64px 52px;
    overflow: hidden;
    display: flex;
    align-items: center;
    color: #ffffff;
    background: linear-gradient( 145deg, #6d0c18 0%, #a9001c 58%, #c51a31 100%);
}

.storefront-auth-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.14;
    background-image: radial-gradient( circle, #ffffff 1.5px, transparent 1.5px);
    background-size: 28px 28px;
}

.storefront-auth-visual-content {
    position: relative;
    z-index: 2;
}

.storefront-auth-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 30px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 20px;
    color: #7c101d;
    font-size: 26px;
    background: #ffd75e;
    box-shadow: 0 16px 34px rgba(45, 0, 7, 0.25);
}

.storefront-auth-kicker {
    display: block;
    margin-bottom: 14px;
    color: #ffd75e;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.storefront-auth-visual h1 {
    max-width: 390px;
    margin: 0 0 20px;
    color: #ffffff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.35rem, 4vw, 3.6rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
}

.storefront-auth-visual p {
    max-width: 420px;
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.97rem;
    line-height: 1.75;
}

.storefront-auth-benefits {
    margin-top: 34px;
    display: grid;
    gap: 15px;
}

.storefront-auth-benefits span {
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(255, 255, 255, 0.94);
    font-size: 0.9rem;
    font-weight: 600;
}

.storefront-auth-benefits i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    border-radius: 50%;
    color: #ffd75e;
    background: rgba(255, 255, 255, 0.12);
}

.storefront-auth-decoration {
    position: absolute;
    display: block;
    border: 1px solid rgba(255, 215, 94, 0.19);
    border-radius: 50%;
}

.storefront-auth-decoration.decoration-one {
    width: 250px;
    height: 250px;
    right: -112px;
    top: -85px;
}

.storefront-auth-decoration.decoration-two {
    width: 165px;
    height: 165px;
    right: 28px;
    bottom: -85px;
}

.storefront-auth-form-panel {
    padding: 58px 62px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.storefront-auth-heading {
    margin-bottom: 30px;
}

.storefront-auth-heading .eyebrow {
    display: block;
    margin-bottom: 12px;
}

.storefront-auth-heading h2 {
    margin: 0 0 10px;
    color: #2e1a17;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3vw, 2.75rem);
    line-height: 1.05;
}

.storefront-auth-heading p {
    margin: 0;
    color: #786966;
    line-height: 1.65;
}

.storefront-auth-error {
    margin-bottom: 22px;
    padding: 13px 15px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #efb9bf;
    border-radius: 12px;
    color: #9c1426;
    background: #fff0f2;
    font-size: 0.9rem;
    font-weight: 600;
}

.storefront-auth-form {
    display: grid;
    gap: 20px;
}

.storefront-auth-field {
    display: grid;
    gap: 8px;
}

.storefront-auth-field>span {
    color: #35211e;
    font-size: 0.87rem;
    font-weight: 700;
}

.storefront-auth-input {
    position: relative;
}

.storefront-auth-input>i {
    position: absolute;
    z-index: 2;
    left: 17px;
    top: 50%;
    color: #9a8985;
    font-size: 1rem;
    transform: translateY(-50%);
    pointer-events: none;
}

.storefront-auth-input input {
    width: 100%;
    height: 54px;
    padding: 0 50px 0 47px;
    border: 1px solid #ded5d1;
    border-radius: 13px;
    outline: none;
    color: #2e1a17;
    font: inherit;
    background: #ffffff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.storefront-auth-input input::placeholder {
    color: #ab9d99;
}

.storefront-auth-input input:focus {
    border-color: #a9001c;
    background: #fffdfb;
    box-shadow: 0 0 0 4px rgba(169, 0, 28, 0.09);
}

.storefront-password-toggle {
    position: absolute;
    z-index: 3;
    right: 10px;
    top: 50%;
    width: 38px;
    height: 38px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 9px;
    color: #786966;
    background: transparent;
    cursor: pointer;
    transform: translateY(-50%);
}

.storefront-password-toggle:hover {
    color: #a9001c;
    background: #fff0f2;
}

.storefront-auth-options {
    margin-top: -2px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    font-size: 0.84rem;
}

.storefront-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #665552;
    cursor: pointer;
}

.storefront-checkbox input {
    width: 16px;
    height: 16px;
    accent-color: #a9001c;
}

.storefront-auth-options a {
    color: #a9001c;
    font-weight: 700;
    text-decoration: none;
}

.storefront-auth-form .button {
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border-radius: 13px;
}

.storefront-auth-divider {
    position: relative;
    margin: 28px 0 19px;
    text-align: center;
}

.storefront-auth-divider::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 1px;
    background: #eee5e1;
}

.storefront-auth-divider span {
    position: relative;
    z-index: 2;
    padding: 0 14px;
    color: #9b8c88;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    background: #ffffff;
}

.storefront-auth-switch {
    margin: 0;
    color: #756461;
    text-align: center;
    font-size: 0.9rem;
}

.storefront-auth-switch span {
    color: #a9001c;
    font-weight: 700;
}

.storefront-auth-back {
    margin-top: 23px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #675653;
    font-size: 0.86rem;
    font-weight: 700;
    text-decoration: none;
}

.storefront-auth-back:hover {
    color: #a9001c;
}


/* =========================================================
   CUSTOMER AUTH RESPONSIVE
========================================================= */

@media (max-width: 900px) {
    .storefront-auth-section {
        padding: 48px 0;
    }
    .storefront-auth-shell {
        max-width: 620px;
        grid-template-columns: 1fr;
    }
    .storefront-auth-visual {
        min-height: auto;
        padding: 44px 38px;
    }
    .storefront-auth-visual h1 {
        max-width: 500px;
        font-size: 2.55rem;
    }
    .storefront-auth-benefits {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }
    .storefront-auth-benefits span {
        align-items: flex-start;
        font-size: 0.78rem;
    }
    .storefront-auth-form-panel {
        padding: 46px 40px;
    }
}

@media (max-width: 620px) {
    .storefront-auth-section {
        padding: 24px 0 44px;
    }
    .storefront-auth-shell {
        border-radius: 20px;
    }
    .storefront-auth-visual {
        padding: 38px 26px;
    }
    .storefront-auth-visual h1 {
        font-size: 2.15rem;
    }
    .storefront-auth-benefits {
        grid-template-columns: 1fr;
    }
    .storefront-auth-form-panel {
        padding: 38px 24px;
    }
    .storefront-auth-options {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }
}

.storefront-auth-switch a {
    color: #a9001c;
    font-weight: 800;
    text-decoration: none;
}

.storefront-auth-switch a:hover {
    text-decoration: underline;
}

.storefront-terms-checkbox {
    align-items: flex-start;
    line-height: 1.5;
}

.storefront-terms-checkbox input {
    margin-top: 3px;
    flex: 0 0 16px;
}


/* =========================================================
   CUSTOMER ACCOUNT
========================================================= */

.account-page-section {
    min-height: 680px;
    padding: 64px 0 90px;
    background: #fffaf0;
}

.account-page-heading {
    margin-bottom: 32px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
}

.account-page-heading h1 {
    margin: 8px 0 8px;
    color: #2e1a17;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    line-height: 1;
}

.account-page-heading p {
    margin: 0;
    color: #786966;
}

.account-logout-button {
    flex: 0 0 auto;
}

.account-dashboard-grid {
    display: grid;
    grid-template-columns: 275px minmax(0, 1fr);
    gap: 26px;
    align-items: start;
}

.account-navigation-card,
.account-information-card {
    border: 1px solid rgba(84, 39, 35, 0.09);
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 14px 40px rgba(84, 39, 35, 0.08);
}

.account-navigation-card {
    padding: 30px 20px 20px;
    position: sticky;
    top: 24px;
    text-align: center;
}

.account-avatar {
    width: 76px;
    height: 76px;
    margin: 0 auto 15px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #ffffff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 800;
    background: linear-gradient(145deg, #820f1e, #b80020);
    box-shadow: 0 12px 28px rgba(169, 0, 28, 0.22);
}

.account-navigation-card>strong {
    display: block;
    color: #2e1a17;
    font-size: 1.05rem;
}

.account-navigation-card>span {
    display: block;
    margin-top: 5px;
    color: #8d7c78;
    font-size: 0.8rem;
    word-break: break-word;
}

.account-navigation {
    margin-top: 25px;
    padding-top: 18px;
    display: grid;
    gap: 6px;
    border-top: 1px solid #eee5e1;
    text-align: left;
}

.account-navigation a {
    padding: 12px 13px;
    display: flex;
    align-items: center;
    gap: 11px;
    border-radius: 11px;
    color: #665552;
    font-size: 0.87rem;
    font-weight: 700;
    text-decoration: none;
}

.account-navigation a:hover,
.account-navigation a.active {
    color: #a9001c;
    background: #fff0f2;
}

.account-dashboard-content {
    display: grid;
    gap: 22px;
}

.account-information-card {
    padding: 28px;
}

.account-card-heading {
    margin-bottom: 24px;
    padding-bottom: 19px;
    border-bottom: 1px solid #eee5e1;
}

.account-card-heading>div {
    display: flex;
    align-items: center;
    gap: 14px;
}

.account-card-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    border-radius: 12px;
    color: #a9001c;
    background: #fff0f2;
}

.account-card-heading h2 {
    margin: 0 0 4px;
    color: #2e1a17;
    font-size: 1.13rem;
}

.account-card-heading p {
    margin: 0;
    color: #8b7b77;
    font-size: 0.82rem;
}

.account-details-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.account-details-grid>div {
    padding: 17px;
    border: 1px solid #eee5e1;
    border-radius: 13px;
    background: #fffdfb;
}

.account-details-grid span {
    display: block;
    margin-bottom: 7px;
    color: #93827e;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
}

.account-details-grid strong {
    color: #35211e;
    font-size: 0.93rem;
}

.account-status-active {
    color: #12824c !important;
}

.account-status-active i {
    margin-right: 5px;
}

.account-empty-content {
    padding: 18px;
    display: flex;
    align-items: center;
    gap: 18px;
    border: 1px dashed #ddcfca;
    border-radius: 14px;
    background: #fffdfb;
}

.account-empty-content>span {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    flex: 0 0 52px;
    border-radius: 50%;
    color: #a9001c;
    font-size: 1.3rem;
    background: #fff0f2;
}

.account-empty-content h3 {
    margin: 0 0 5px;
    color: #35211e;
    font-size: 1rem;
}

.account-empty-content p {
    margin: 0;
    color: #8b7b77;
    font-size: 0.85rem;
    line-height: 1.5;
}

.account-empty-content .text-link {
    margin-top: 9px;
    display: inline-flex;
}

@media (max-width: 850px) {
    .account-dashboard-grid {
        grid-template-columns: 1fr;
    }
    .account-navigation-card {
        position: static;
    }
    .account-navigation {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .account-page-section {
        padding: 42px 0 70px;
    }
    .account-page-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .account-details-grid,
    .account-navigation {
        grid-template-columns: 1fr;
    }
    .account-information-card {
        padding: 21px;
    }
}

.store-account-action {
    color: #34201d;
    text-decoration: none;
}

.store-account-action>i {
    display: inline-block;
    color: #34201d !important;
    font-size: 1.3rem;
    line-height: 1;
}

.store-account-action:hover>i {
    color: #af0018 !important;
}


/* =========================================================
   CUSTOMER PASSWORD RECOVERY
========================================================= */

.password-recovery-section {
    min-height: 600px;
    background: radial-gradient( circle at 15% 15%, rgba(255, 207, 85, 0.15), transparent 32%), #fffaf4;
}

.password-recovery-card {
    max-width: 620px;
    margin: 0 auto;
}

.password-recovery-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    margin-bottom: 1.2rem;
    border-radius: 50%;
    background: #fff0dc;
    color: #a90019;
    font-size: 1.55rem;
}

.password-recovery-success {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-bottom: 1.25rem;
    padding: 1rem;
    border: 1px solid rgba(13, 143, 87, 0.25);
    border-radius: 11px;
    background: #edf9f3;
    color: #087548;
    line-height: 1.5;
}

.development-reset-box {
    margin-bottom: 1.4rem;
    padding: 1.15rem;
    border: 1px dashed #d89922;
    border-radius: 12px;
    background: #fff9e9;
}

.development-reset-box>div:first-child {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: #805600;
}

.development-reset-box p {
    margin: 0.65rem 0 1rem;
    color: #725f3f;
    line-height: 1.55;
}

.development-reset-box small {
    display: block;
    margin-top: 0.75rem;
    color: #88714a;
    text-align: center;
}

.storefront-input-with-icon,
.storefront-password-field {
    position: relative;
}

.storefront-input-with-icon>i,
.storefront-password-field>i:first-child {
    position: absolute;
    top: 50%;
    left: 0.95rem;
    z-index: 1;
    color: #947d74;
    transform: translateY(-50%);
    pointer-events: none;
}

.storefront-input-with-icon input,
.storefront-password-field input {
    width: 100%;
    padding-left: 2.75rem !important;
}

.storefront-password-field input {
    padding-right: 3rem !important;
}

.password-visibility-button {
    position: absolute;
    top: 50%;
    right: 0.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #674f48;
    cursor: pointer;
    transform: translateY(-50%);
}

.password-visibility-button:hover {
    background: #fff0dc;
    color: #a90019;
}

.password-recovery-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.35rem;
    padding-top: 1.2rem;
    border-top: 1px solid #eadfd5;
}

.password-recovery-links a,
.password-back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #8f0015;
    font-weight: 800;
    text-decoration: none;
}

.password-links-centered {
    justify-content: center;
}

.password-requirements {
    padding: 1rem;
    border-radius: 11px;
    background: #fff8ed;
    color: #67534c;
    font-size: 0.84rem;
}

.password-requirements strong {
    color: #39241f;
}

.password-requirements ul {
    display: grid;
    gap: 0.3rem;
    margin: 0.65rem 0 0;
    padding-left: 1.2rem;
}

.password-invalid-state {
    text-align: center;
}

.password-invalid-state h1 {
    margin: 0.6rem 0;
}

.password-invalid-state p {
    max-width: 480px;
    margin: 0 auto 1.5rem;
    color: #75645e;
    line-height: 1.6;
}

.password-invalid-state .button {
    margin-bottom: 1.2rem;
}

.password-error-icon {
    background: #fff0f0;
    color: #ce273a;
}

@media (max-width: 600px) {
    .password-recovery-links {
        align-items: flex-start;
        flex-direction: column;
    }
    .password-links-centered {
        align-items: center;
    }
}


/* =========================================================
   CUSTOMER PASSWORD PAGES
========================================================= */

.customer-auth-page {
    min-height: calc(100vh - 235px);
    padding: 70px 20px 90px;
    background: radial-gradient( circle at top left, rgba(176, 0, 32, 0.06), transparent 34%), #fffaf3;
}

.customer-auth-container {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
}

.customer-auth-card {
    padding: 44px 46px;
    border: 1px solid #eee1d5;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 18px 55px rgba(61, 24, 18, 0.09);
}

.customer-auth-heading {
    margin-bottom: 30px;
}

.customer-auth-eyebrow {
    display: block;
    margin-bottom: 12px;
    color: #a9001c;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.customer-auth-heading h1 {
    margin: 0 0 14px;
    color: #2c1915;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 4vw, 42px);
    font-weight: 700;
    line-height: 1.15;
}

.customer-auth-heading p {
    max-width: 600px;
    margin: 0;
    color: #6d5b55;
    font-size: 16px;
    line-height: 1.7;
}

.customer-auth-form {
    display: block;
    width: 100%;
}

.customer-auth-field {
    margin-bottom: 22px;
}

.customer-auth-field label {
    display: block;
    margin-bottom: 9px;
    color: #30201c;
    font-size: 15px;
    font-weight: 700;
}

.customer-auth-field label span {
    color: #b00020;
}

.customer-auth-input {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.customer-auth-input>i {
    position: absolute;
    left: 18px;
    z-index: 2;
    color: #8b6f66;
    font-size: 18px;
    pointer-events: none;
}

.customer-auth-input input {
    display: block;
    width: 100%;
    height: 56px;
    padding: 0 18px 0 52px;
    border: 2px solid #d9cbc2;
    border-radius: 12px;
    outline: none;
    background: #ffffff;
    color: #2d211e;
    font-family: inherit;
    font-size: 16px;
    line-height: normal;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.customer-auth-input input::placeholder {
    color: #9a8b85;
    opacity: 1;
}

.customer-auth-input input:hover {
    border-color: #bda99f;
}

.customer-auth-input input:focus {
    border-color: #a9001c;
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(169, 0, 28, 0.11);
}

.customer-auth-input:focus-within>i {
    color: #a9001c;
}

.customer-auth-field small {
    display: block;
    margin-top: 8px;
    color: #7b6963;
    font-size: 13px;
    line-height: 1.5;
}

.customer-auth-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 56px;
    padding: 13px 24px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(135deg, #a9001c, #68101d);
    color: #ffffff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 12px 28px rgba(125, 7, 27, 0.2);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.customer-auth-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(125, 7, 27, 0.27);
}

.customer-auth-submit:active {
    transform: translateY(0);
}

.customer-auth-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 25px;
    padding-top: 22px;
    border-top: 1px solid #eee0d5;
}

.customer-auth-links a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #a9001c;
    font-size: 14px;
    font-weight: 750;
    text-decoration: none;
}

.customer-auth-links a:hover {
    color: #730015;
    text-decoration: underline;
}

.customer-auth-alert {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-bottom: 22px;
    padding: 14px 16px;
    border-radius: 11px;
    font-size: 14px;
    line-height: 1.55;
}

.customer-auth-alert-error {
    border: 1px solid #efb9c1;
    background: #fff1f3;
    color: #8f1024;
}

.customer-auth-alert-success {
    border: 1px solid #a9dbc0;
    background: #effcf5;
    color: #176a40;
}

.customer-reset-testing {
    margin-top: 22px;
    padding: 18px;
    border: 1px dashed #d6a13a;
    border-radius: 12px;
    background: #fff9e9;
    color: #5c461c;
}

.customer-reset-testing strong {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 7px;
}

.customer-reset-testing p {
    margin: 0 0 10px;
    font-size: 14px;
    line-height: 1.55;
}

.customer-reset-testing a {
    color: #9e001d;
    font-weight: 750;
    text-decoration: none;
}

.customer-reset-testing a:hover {
    text-decoration: underline;
}

@media (max-width: 767.98px) {
    .customer-auth-page {
        padding: 38px 15px 65px;
    }
    .customer-auth-card {
        padding: 30px 22px;
        border-radius: 17px;
    }
    .customer-auth-heading {
        margin-bottom: 25px;
    }
    .customer-auth-heading h1 {
        font-size: 31px;
    }
    .customer-auth-heading p {
        font-size: 15px;
    }
    .customer-auth-links {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }
}


/* =========================================================
   CUSTOMER CHECKOUT
========================================================= */

.checkout-page {
    min-height: 70vh;
    padding: 58px 0 90px;
    background: radial-gradient( circle at top left, rgba(174, 0, 32, 0.055), transparent 30%), #fffaf4;
}

.checkout-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 32px;
}

.checkout-heading h1 {
    margin: 8px 0 9px;
    color: #291714;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.08;
}

.checkout-heading p {
    margin: 0;
    color: #75625b;
    font-size: 16px;
}

.checkout-back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 16px;
    border: 1px solid #dfd0c6;
    border-radius: 10px;
    background: #fff;
    color: #4d3731;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.checkout-back-link:hover {
    border-color: #a9001c;
    color: #a9001c;
}

.checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    align-items: start;
    gap: 28px;
}

.checkout-main {
    display: grid;
    gap: 22px;
}

.checkout-card,
.checkout-summary-card {
    border: 1px solid #eaded6;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 35px rgba(54, 25, 18, 0.06);
}

.checkout-card {
    padding: 28px;
}

.checkout-card-heading {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 25px;
}

.checkout-card-heading-action {
    align-items: center;
    justify-content: space-between;
}

.checkout-heading-copy {
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.checkout-step {
    display: inline-flex;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #fff0e1;
    color: #a9001c;
    font-size: 15px;
    font-weight: 800;
}

.checkout-card-heading h2 {
    margin: 0 0 5px;
    color: #2e1d19;
    font-size: 21px;
}

.checkout-card-heading p {
    margin: 0;
    color: #827069;
    font-size: 14px;
    line-height: 1.5;
}

.checkout-customer-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.checkout-information-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 15px;
    border: 1px solid #eee2da;
    border-radius: 12px;
    background: #fffaf6;
}

.checkout-information-item>i {
    color: #a9001c;
    font-size: 20px;
}

.checkout-information-item div {
    min-width: 0;
}

.checkout-information-item span {
    display: block;
    margin-bottom: 3px;
    color: #8b7871;
    font-size: 12px;
}

.checkout-information-item strong {
    display: block;
    overflow: hidden;
    color: #35231e;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.checkout-small-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 13px;
    border: 1px solid #a9001c;
    border-radius: 9px;
    color: #a9001c;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
    white-space: nowrap;
}

.checkout-small-button:hover {
    background: #a9001c;
    color: #fff;
}

.checkout-address-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.checkout-address-option {
    position: relative;
    display: flex;
    min-width: 0;
    padding: 19px;
    border: 2px solid #eaded6;
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.checkout-address-option:hover {
    border-color: #c8aaa2;
    transform: translateY(-1px);
}

.checkout-address-option.is-selected {
    border-color: #a9001c;
    background: #fffafb;
    box-shadow: 0 0 0 4px rgba(169, 0, 28, 0.08);
}

.checkout-address-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.checkout-address-radio {
    display: inline-flex;
    flex: 0 0 25px;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    margin-right: 12px;
    border: 2px solid #cdbab1;
    border-radius: 50%;
    color: transparent;
}

.checkout-address-option.is-selected .checkout-address-radio {
    border-color: #a9001c;
    background: #a9001c;
    color: #fff;
}

.checkout-address-content {
    display: block;
    min-width: 0;
    flex: 1;
}

.checkout-address-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 9px;
}

.checkout-address-top strong {
    color: #2d1d19;
    font-size: 15px;
}

.checkout-address-type {
    padding: 4px 8px;
    border-radius: 20px;
    background: #fff0df;
    color: #8b4d18;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.checkout-address-text {
    display: block;
    color: #6e5b55;
    font-size: 13px;
    line-height: 1.6;
}

.checkout-address-mobile {
    display: block;
    margin-top: 9px;
    color: #45322d;
    font-size: 13px;
    font-weight: 700;
}

.checkout-default-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 11px;
    color: #16834c;
    font-size: 11px;
    font-weight: 800;
}

.checkout-manage-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 18px;
    color: #a9001c;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.checkout-empty-address {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 23px;
    border: 1px dashed #d8b8aa;
    border-radius: 14px;
    background: #fff9f3;
}

.checkout-empty-address>span {
    display: inline-flex;
    flex: 0 0 54px;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: #fff0df;
    color: #a9001c;
    font-size: 25px;
}

.checkout-empty-address h3 {
    margin: 0 0 5px;
}

.checkout-empty-address p {
    margin: 0 0 13px;
    color: #75635d;
}

.checkout-payment-option {
    position: relative;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 18px;
    border: 2px solid #a9001c;
    border-radius: 14px;
    background: #fffafb;
    cursor: pointer;
}

.checkout-payment-option input {
    position: absolute;
    opacity: 0;
}

.checkout-payment-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    border-radius: 11px;
    background: #fff0df;
    color: #a9001c;
    font-size: 21px;
}

.checkout-payment-copy {
    display: grid;
    flex: 1;
    gap: 3px;
}

.checkout-payment-copy strong {
    color: #301e1a;
}

.checkout-payment-copy small {
    color: #7b6861;
}

.checkout-payment-check {
    color: #168c52;
    font-size: 21px;
}

.checkout-field label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 9px;
    color: #33231e;
    font-size: 14px;
    font-weight: 750;
}

.checkout-field label span {
    color: #8b7870;
    font-size: 12px;
    font-weight: 500;
}

.checkout-field textarea {
    display: block;
    width: 100%;
    min-height: 115px;
    padding: 14px 16px;
    border: 2px solid #ded0c7;
    border-radius: 11px;
    outline: none;
    resize: vertical;
    color: #34231f;
    font: inherit;
    line-height: 1.6;
}

.checkout-field textarea:focus {
    border-color: #a9001c;
    box-shadow: 0 0 0 4px rgba(169, 0, 28, 0.09);
}

.checkout-field-footer {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-top: 7px;
    color: #8b7871;
    font-size: 12px;
}

.checkout-field-error {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 9px;
    color: #bd1632;
    font-size: 13px;
    font-weight: 700;
}

.checkout-summary {
    position: sticky;
    top: 25px;
}

.checkout-summary-card {
    padding: 27px;
}

.checkout-summary-card h2 {
    margin: 7px 0 21px;
    color: #2d1b18;
    font-size: 23px;
}

.checkout-summary-products {
    display: grid;
    gap: 14px;
    max-height: 285px;
    overflow-y: auto;
    padding-right: 5px;
}

.checkout-summary-product {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
    padding-bottom: 13px;
    border-bottom: 1px solid #eee2db;
}

.checkout-summary-product div {
    display: grid;
    gap: 4px;
}

.checkout-summary-product strong {
    color: #34231f;
    font-size: 13px;
}

.checkout-summary-product small {
    color: #806c65;
    font-size: 12px;
}

.checkout-summary-lines {
    display: grid;
    gap: 13px;
    padding: 19px 0;
    border-bottom: 1px solid #e7d9d1;
}

.checkout-summary-lines>div {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    color: #5e4a44;
    font-size: 14px;
}

.checkout-summary-discount strong {
    color: #df2f46;
}

.checkout-free-delivery {
    color: #12874d;
}

.checkout-grand-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 19px 0;
}

.checkout-grand-total>span {
    display: grid;
    gap: 3px;
}

.checkout-grand-total>span strong {
    color: #2c1a17;
    font-size: 16px;
}

.checkout-grand-total small {
    color: #8a7770;
    font-size: 11px;
}

.checkout-grand-total>strong {
    color: #a9001c;
    font-size: 23px;
}

.checkout-place-order {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    min-height: 55px;
    padding: 13px 17px;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(135deg, #b40020, #74101e);
    color: #fff;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
    box-shadow: 0 12px 26px rgba(133, 5, 28, 0.19);
}

.checkout-place-order strong {
    margin-left: auto;
}

.checkout-place-order:disabled {
    background: #b8aaa5;
    cursor: not-allowed;
    box-shadow: none;
}

.checkout-place-order.is-processing {
    justify-content: center;
}

.checkout-disabled-note,
.checkout-security-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 13px 0 0;
    color: #75635c;
    font-size: 12px;
    line-height: 1.5;
}

.checkout-disabled-note {
    color: #a24b20;
}

.checkout-security-note i {
    color: #16884e;
}

.checkout-edit-cart {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-top: 17px;
    color: #6a5650;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.checkout-edit-cart:hover {
    color: #a9001c;
}

.checkout-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 24px;
    padding: 15px 18px;
    border-radius: 12px;
}

.checkout-alert div {
    display: grid;
    gap: 3px;
}

.checkout-alert-error {
    border: 1px solid #efb3bc;
    background: #fff0f2;
    color: #9f1730;
}

@media (max-width: 1100px) {
    .checkout-layout {
        grid-template-columns: minmax(0, 1fr) 340px;
    }
    .checkout-customer-grid {
        grid-template-columns: 1fr;
    }
    .checkout-address-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 850px) {
    .checkout-page {
        padding: 38px 0 70px;
    }
    .checkout-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
    }
    .checkout-layout {
        grid-template-columns: 1fr;
    }
    .checkout-summary {
        position: static;
    }
}

@media (max-width: 575.98px) {
    .checkout-card,
    .checkout-summary-card {
        padding: 20px;
        border-radius: 14px;
    }
    .checkout-card-heading-action {
        align-items: flex-start;
        flex-direction: column;
    }
    .checkout-address-option {
        padding: 15px;
    }
    .checkout-empty-address {
        align-items: flex-start;
        flex-direction: column;
    }
    .checkout-grand-total>strong {
        font-size: 20px;
    }
}


/* =========================================================
   CUSTOMER ADDRESS FORM
========================================================= */

.customer-address-form-page {
    min-height: calc(100vh - 220px);
    padding: 58px 0 90px;
    background: radial-gradient( circle at top left, rgba(174, 0, 32, 0.055), transparent 32%), #fffaf4;
}

.customer-address-form-page .site-container {
    width: min(100% - 32px, 1040px);
    margin-inline: auto;
}

.customer-address-form-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 30px;
}

.customer-address-form-heading h1 {
    margin: 8px 0 9px;
    color: #2d1915;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4vw, 46px);
    line-height: 1.1;
}

.customer-address-form-heading p {
    max-width: 650px;
    margin: 0;
    color: #77635c;
    font-size: 15px;
    line-height: 1.65;
}

.customer-address-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 15px;
    border: 1px solid #dfd0c7;
    border-radius: 10px;
    background: #fff;
    color: #4f3933;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.customer-address-back:hover {
    border-color: #a9001c;
    color: #a9001c;
    transform: translateY(-1px);
}

.customer-address-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 22px;
    padding: 14px 17px;
    border: 1px solid #efb6bf;
    border-radius: 11px;
    background: #fff0f2;
    color: #a01a31;
    font-size: 14px;
    line-height: 1.55;
}

.customer-address-form {
    display: grid;
    gap: 22px;
}

.customer-address-form-card {
    padding: 30px;
    border: 1px solid #eaded6;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 13px 38px rgba(60, 27, 18, 0.065);
}

.customer-address-section-heading {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 27px;
    padding-bottom: 19px;
    border-bottom: 1px solid #eee2da;
}

.customer-address-section-heading>span {
    display: inline-flex;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #fff0e2;
    color: #a9001c;
    font-size: 20px;
}

.customer-address-section-heading h2 {
    margin: 0 0 5px;
    color: #2d1d19;
    font-size: 21px;
    line-height: 1.25;
}

.customer-address-section-heading p {
    margin: 0;
    color: #806d66;
    font-size: 13px;
    line-height: 1.5;
}

.customer-address-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.customer-address-field {
    min-width: 0;
}

.customer-address-field-full {
    grid-column: 1 / -1;
}

.customer-address-field label {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 8px;
    color: #33221e;
    font-size: 14px;
    font-weight: 750;
}

.customer-address-field label>span {
    color: #c40028;
}

.customer-address-field label>small {
    margin-left: auto;
    color: #8f7e77;
    font-size: 11px;
    font-weight: 500;
}

.customer-address-input,
.customer-address-select {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.customer-address-input>i,
.customer-address-select>i {
    position: absolute;
    left: 16px;
    z-index: 2;
    color: #8a746c;
    font-size: 16px;
    pointer-events: none;
}

.customer-address-input input,
.customer-address-select select {
    display: block;
    width: 100%;
    height: 52px;
    padding: 0 16px 0 47px;
    border: 2px solid #ded1c9;
    border-radius: 11px;
    outline: none;
    background: #fff;
    color: #30211d;
    font-family: inherit;
    font-size: 14px;
    line-height: normal;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.customer-address-select select {
    padding-right: 42px;
    cursor: pointer;
}

.customer-address-input input::placeholder {
    color: #a0928d;
    opacity: 1;
}

.customer-address-input input:hover,
.customer-address-select select:hover {
    border-color: #c6b3aa;
}

.customer-address-input input:focus,
.customer-address-select select:focus {
    border-color: #a9001c;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(169, 0, 28, 0.09);
}

.customer-address-input:focus-within>i,
.customer-address-select:focus-within>i {
    color: #a9001c;
}

.customer-address-error {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 7px;
    color: #bf1733;
    font-size: 12px;
    font-weight: 650;
}

.customer-address-default {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: 27px;
    padding: 17px;
    border: 1px solid #eadbd2;
    border-radius: 12px;
    background: #fffaf6;
    cursor: pointer;
}

.customer-address-default>input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.customer-address-default-toggle {
    position: relative;
    display: inline-block;
    flex: 0 0 45px;
    width: 45px;
    height: 25px;
    border-radius: 30px;
    background: #cec1bb;
    transition: background-color 0.2s ease;
}

.customer-address-default-toggle::after {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.18);
    content: "";
    transition: transform 0.2s ease;
}

.customer-address-default input:checked+.customer-address-default-toggle {
    background: #a9001c;
}

.customer-address-default input:checked+.customer-address-default-toggle::after {
    transform: translateX(20px);
}

.customer-address-default>span:last-child {
    display: grid;
    gap: 3px;
}

.customer-address-default strong {
    color: #382620;
    font-size: 14px;
}

.customer-address-default small {
    color: #806d66;
    font-size: 12px;
    line-height: 1.45;
}

.customer-address-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding-top: 3px;
}

.customer-address-actions .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 49px;
    padding: 11px 22px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
}

.customer-address-actions .button-secondary {
    border: 1px solid #d9cac2;
    background: #fff;
    color: #59433c;
}

.customer-address-actions .button-secondary:hover {
    border-color: #a9001c;
    color: #a9001c;
}

.customer-address-actions .button-primary {
    border: 1px solid #a9001c;
    background: linear-gradient( 135deg, #b50022, #75101e);
    color: #fff;
    box-shadow: 0 10px 24px rgba(132, 5, 28, 0.17);
}

.customer-address-actions .button-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(132, 5, 28, 0.23);
}


/* Prevent browser autofill from hiding the fields */

.customer-address-input input:-webkit-autofill,
.customer-address-input input:-webkit-autofill:hover,
.customer-address-input input:-webkit-autofill:focus {
    -webkit-text-fill-color: #30211d;
    box-shadow: 0 0 0 1000px #fff inset;
}


/* Tablet */

@media (max-width: 767.98px) {
    .customer-address-form-page {
        padding: 38px 0 70px;
    }
    .customer-address-form-heading {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 24px;
    }
    .customer-address-grid {
        grid-template-columns: 1fr;
    }
    .customer-address-field-full {
        grid-column: auto;
    }
    .customer-address-form-card {
        padding: 24px;
    }
}


/* Mobile */

@media (max-width: 575.98px) {
    .customer-address-form-page .site-container {
        width: min(100% - 22px, 1040px);
    }
    .customer-address-form-heading h1 {
        font-size: 32px;
    }
    .customer-address-form-card {
        padding: 20px 17px;
        border-radius: 14px;
    }
    .customer-address-section-heading {
        margin-bottom: 22px;
    }
    .customer-address-default {
        align-items: flex-start;
    }
    .customer-address-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }
    .customer-address-actions .button {
        width: 100%;
    }
}


/* =========================================================
   CUSTOMER ADDRESS LIST
========================================================= */

.customer-addresses-page {
    min-height: calc(100vh - 220px);
    padding: 58px 0 90px;
    background: radial-gradient( circle at top left, rgba(174, 0, 32, 0.055), transparent 32%), #fffaf4;
}

.customer-addresses-page .site-container {
    width: min(100% - 32px, 1100px);
    margin-inline: auto;
}

.customer-addresses-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 30px;
}

.customer-addresses-heading h1 {
    margin: 8px 0 9px;
    color: #2d1915;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4vw, 46px);
    line-height: 1.1;
}

.customer-addresses-heading p {
    margin: 0;
    color: #77635c;
    font-size: 15px;
}

.customer-address-add-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 47px;
    padding: 11px 18px;
    border-radius: 10px;
    background: linear-gradient( 135deg, #b50022, #75101e);
    color: #fff;
    font-size: 14px;
    font-weight: 750;
    text-decoration: none;
    box-shadow: 0 10px 25px rgba(132, 5, 28, 0.18);
}

.customer-address-message {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 22px;
    padding: 14px 17px;
    border-radius: 11px;
    font-size: 14px;
}

.customer-address-message-success {
    border: 1px solid #a8dec0;
    background: #effbf4;
    color: #176b40;
}

.customer-address-message-error {
    border: 1px solid #efb6bf;
    background: #fff0f2;
    color: #a01a31;
}

.customer-addresses-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 20px;
    padding: 17px 20px;
    border: 1px solid #eaded6;
    border-radius: 13px;
    background: #fff;
}

.customer-addresses-summary>div {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #392721;
}

.customer-addresses-summary>div>i {
    color: #a9001c;
    font-size: 20px;
}

.customer-addresses-summary p {
    margin: 0;
    color: #806d66;
    font-size: 13px;
}

.customer-addresses-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.customer-address-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 23px;
    border: 2px solid #eaded6;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(55, 26, 18, 0.055);
}

.customer-address-card.is-default {
    border-color: #a9001c;
    background: linear-gradient( 145deg, #fff, #fff8f8);
    box-shadow: 0 0 0 4px rgba(169, 0, 28, 0.06), 0 12px 32px rgba(55, 26, 18, 0.07);
}

.customer-address-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 19px;
}

.customer-address-card-header>div {
    display: flex;
    align-items: center;
    gap: 7px;
}

.customer-address-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    border-radius: 12px;
    background: #fff0e2;
    color: #a9001c;
    font-size: 20px;
}

.customer-address-type {
    padding: 5px 9px;
    border-radius: 20px;
    background: #f5eee9;
    color: #684f46;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.customer-address-default-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 9px;
    border-radius: 20px;
    background: #e7f8ef;
    color: #148049;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
}

.customer-address-card-content {
    flex: 1;
}

.customer-address-card-content h2 {
    margin: 0 0 8px;
    color: #2d1c18;
    font-size: 18px;
}

.customer-address-card-content p {
    min-height: 63px;
    margin: 0;
    color: #705d56;
    font-size: 13px;
    line-height: 1.65;
}

.customer-address-card-mobile {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 12px;
    color: #42302b;
    font-size: 13px;
    font-weight: 750;
}

.customer-address-card-mobile i {
    color: #a9001c;
}

.customer-address-card-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 21px;
    padding-top: 16px;
    border-top: 1px solid #eee2da;
}

.customer-address-card-actions form {
    margin: 0;
}

.customer-address-card-actions a,
.customer-address-card-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    padding: 7px 10px;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    font-size: 11px;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
}

.customer-address-action-edit {
    border: 1px solid #a9001c;
    color: #a9001c;
}

.customer-address-action-default {
    border: 1px solid #d8b66d;
    color: #8a6519;
}

.customer-address-action-delete {
    border: 1px solid #e5a8b1;
    color: #bd1731;
}

.customer-addresses-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid #e6d8cf;
}

.customer-addresses-footer>a:first-child {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #6d5851;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.customer-addresses-empty {
    padding: 65px 25px;
    border: 1px solid #eaded6;
    border-radius: 18px;
    background: #fff;
    text-align: center;
    box-shadow: 0 13px 38px rgba(60, 27, 18, 0.06);
}

.customer-addresses-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    margin-bottom: 18px;
    border-radius: 50%;
    background: #fff0e2;
    color: #a9001c;
    font-size: 32px;
}

.customer-addresses-empty h2 {
    margin: 0 0 8px;
    color: #2d1c18;
}

.customer-addresses-empty p {
    margin: 0 auto 20px;
    color: #77645d;
}

@media (max-width: 767.98px) {
    .customer-addresses-page {
        padding: 38px 0 70px;
    }
    .customer-addresses-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .customer-addresses-grid {
        grid-template-columns: 1fr;
    }
    .customer-addresses-summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }
}

@media (max-width: 575.98px) {
    .customer-addresses-page .site-container {
        width: min(100% - 22px, 1100px);
    }
    .customer-addresses-heading h1 {
        font-size: 32px;
    }
    .customer-address-add-button {
        width: 100%;
    }
    .customer-address-card {
        padding: 19px;
    }
    .customer-addresses-footer {
        align-items: stretch;
        flex-direction: column;
    }
    .customer-addresses-footer .button {
        width: 100%;
        justify-content: center;
    }
}


/* =========================================================
   ORDER SUCCESS
========================================================= */

.order-success-page {
    min-height: 70vh;
    padding: 60px 0 90px;
    background: radial-gradient( circle at top center, rgba(30, 156, 88, 0.08), transparent 32%), #fffaf4;
}

.order-success-page .site-container {
    width: min(100% - 32px, 960px);
    margin-inline: auto;
}

.order-success-card {
    padding: 43px;
    border: 1px solid #e8dcd4;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 55px rgba(59, 28, 19, 0.08);
}

.order-success-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 75px;
    height: 75px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: #e4f8ed;
    color: #14874e;
    font-size: 39px;
    box-shadow: 0 0 0 9px rgba(30, 157, 88, 0.08);
}

.order-success-card>.eyebrow {
    display: block;
    text-align: center;
}

.order-success-card>h1 {
    margin: 10px 0 11px;
    color: #2d1a17;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 5vw, 48px);
    text-align: center;
}

.order-success-intro {
    max-width: 660px;
    margin: 0 auto 27px;
    color: #75625b;
    font-size: 15px;
    line-height: 1.65;
    text-align: center;
}

.order-success-number {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 17px;
    border: 1px dashed #d4bdb2;
    border-radius: 12px;
    background: #fffaf6;
}

.order-success-number span {
    color: #836f68;
    font-size: 13px;
}

.order-success-number strong {
    color: #2c1c18;
    font-size: 17px;
    letter-spacing: 0.4px;
}

.order-success-number button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid #dbcac1;
    border-radius: 8px;
    background: #fff;
    color: #a9001c;
    cursor: pointer;
}

.order-success-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 17px 0 28px;
    color: #79665f;
    font-size: 13px;
}

.order-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 30px;
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
}

.order-status-pending {
    background: #fff2c9;
    color: #8d6500;
}

.order-status-confirmed,
.order-status-delivered {
    background: #e4f8ed;
    color: #148049;
}

.order-status-cancelled {
    background: #ffe8eb;
    color: #bc1933;
}

.order-success-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 20px;
}

.order-success-section {
    padding: 23px;
    border: 1px solid #eaded6;
    border-radius: 15px;
    background: #fff;
}

.order-success-section-heading {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid #eee2da;
}

.order-success-section-heading>i {
    color: #a9001c;
    font-size: 21px;
}

.order-success-section-heading h2 {
    margin: 0 0 2px;
    color: #33211d;
    font-size: 17px;
}

.order-success-section-heading p {
    margin: 0;
    color: #8a7770;
    font-size: 11px;
}

.order-success-items {
    display: grid;
    gap: 13px;
}

.order-success-item {
    display: flex;
    justify-content: space-between;
    gap: 15px;
}

.order-success-item div {
    display: grid;
    gap: 3px;
}

.order-success-item strong {
    color: #35231f;
    font-size: 13px;
}

.order-success-item small {
    color: #806d66;
    font-size: 11px;
}

.order-delivery-details {
    display: grid;
    gap: 9px;
}

.order-delivery-details>strong {
    color: #30201c;
}

.order-delivery-details>span {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #624f48;
    font-size: 12px;
}

.order-delivery-details>span i {
    color: #a9001c;
}

.order-delivery-details p {
    margin: 4px 0 0;
    color: #715e57;
    font-size: 13px;
    line-height: 1.6;
}

.order-success-summary {
    display: grid;
    gap: 0;
    max-width: 470px;
    margin: 23px 0 23px auto;
    border: 1px solid #e5d8d0;
    border-radius: 13px;
    overflow: hidden;
}

.order-success-summary>div {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 11px 15px;
    border-bottom: 1px solid #eee3dc;
    color: #604d46;
    font-size: 13px;
}

.order-success-summary>div:last-child {
    border-bottom: 0;
}

.order-success-summary .order-success-total {
    background: #fff3df;
    color: #2f1e19;
    font-size: 16px;
}

.order-success-summary .order-success-total strong {
    color: #a9001c;
}

.order-success-discount strong {
    color: #d62942;
}

.order-success-free {
    color: #14834b;
}

.order-whatsapp-box {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 16px;
    padding: 20px;
    border: 1px solid #a9ddbd;
    border-radius: 15px;
    background: #effcf4;
}

.order-whatsapp-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 49px;
    height: 49px;
    border-radius: 50%;
    background: #20b860;
    color: #fff;
    font-size: 24px;
}

.order-whatsapp-box h2 {
    margin: 0 0 4px;
    color: #1e4e32;
    font-size: 17px;
}

.order-whatsapp-box p {
    margin: 0;
    color: #557462;
    font-size: 12px;
    line-height: 1.5;
}

.order-whatsapp-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 43px;
    padding: 10px 15px;
    border-radius: 9px;
    background: #159b4e;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.order-success-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 27px;
}

.order-success-actions .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 47px;
    padding: 11px 18px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.order-success-actions .button-secondary {
    border: 1px solid #d9cac1;
    background: #fff;
    color: #59433c;
}

.order-success-help {
    display: flex;
    justify-content: center;
    gap: 7px;
    margin: 20px 0 0;
    color: #7d6962;
    font-size: 12px;
    text-align: center;
}

@media (max-width: 767.98px) {
    .order-success-card {
        padding: 30px 22px;
    }
    .order-success-grid {
        grid-template-columns: 1fr;
    }
    .order-whatsapp-box {
        grid-template-columns: auto 1fr;
    }
    .order-whatsapp-button {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .order-success-page {
        padding: 38px 0 70px;
    }
    .order-success-page .site-container {
        width: min(100% - 22px, 960px);
    }
    .order-success-card {
        padding: 26px 17px;
        border-radius: 16px;
    }
    .order-success-number {
        align-items: flex-start;
        flex-wrap: wrap;
    }
    .order-success-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .order-success-actions .button {
        width: 100%;
    }
}


/* =========================================================
   CUSTOMER ORDER DETAILS
========================================================= */

.customer-order-page {
    min-height: 70vh;
    padding: 55px 0 90px;
    background: #fffaf4;
}

.customer-order-page .site-container {
    width: min(100% - 32px, 1160px);
    margin-inline: auto;
}

.customer-order-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 27px;
}

.customer-order-heading h1 {
    margin: 8px 0 7px;
    color: #2d1a17;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(31px, 4vw, 43px);
}

.customer-order-heading p {
    margin: 0;
    color: #806c65;
    font-size: 13px;
}

.customer-order-heading-actions {
    display: flex;
    align-items: center;
    gap: 9px;
}

.customer-order-back,
.customer-order-whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 42px;
    padding: 9px 13px;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.customer-order-back {
    border: 1px solid #ddcec5;
    background: #fff;
    color: #5e4841;
}

.customer-order-whatsapp {
    border: 1px solid #159a4e;
    background: #159a4e;
    color: #fff;
}

.customer-order-status-banner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 16px;
    margin-bottom: 22px;
    padding: 23px;
    border: 1px solid #e3c97b;
    border-radius: 16px;
    background: #fff8dd;
}

.customer-order-status-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 51px;
    height: 51px;
    border-radius: 50%;
    background: #e7b528;
    color: #fff;
    font-size: 23px;
}

.customer-order-status-banner span {
    color: #856a26;
    font-size: 11px;
}

.customer-order-status-banner h2 {
    margin: 3px 0;
    color: #624a10;
    font-size: 20px;
}

.customer-order-status-banner p {
    margin: 0;
    color: #816c36;
    font-size: 12px;
}

.customer-order-status-banner>strong {
    color: #725817;
    font-size: 13px;
}

.order-banner-confirmed,
.order-banner-preparing,
.order-banner-packed,
.order-banner-out-for-delivery,
.order-banner-delivered {
    border-color: #a9dcc0;
    background: #effbf4;
}

.order-banner-confirmed .customer-order-status-icon,
.order-banner-preparing .customer-order-status-icon,
.order-banner-packed .customer-order-status-icon,
.order-banner-out-for-delivery .customer-order-status-icon,
.order-banner-delivered .customer-order-status-icon {
    background: #16894e;
}

.order-banner-confirmed h2,
.order-banner-preparing h2,
.order-banner-packed h2,
.order-banner-out-for-delivery h2,
.order-banner-delivered h2 {
    color: #17683f;
}

.order-banner-cancelled {
    border-color: #efb5be;
    background: #fff0f2;
}

.order-banner-cancelled .customer-order-status-icon {
    background: #c71c38;
}

.order-banner-cancelled h2 {
    color: #9f1730;
}

.customer-order-progress {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    margin-bottom: 25px;
    padding: 21px;
    border: 1px solid #eaded6;
    border-radius: 15px;
    background: #fff;
}

.customer-order-progress-step {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 7px;
    color: #ad9e98;
    font-size: 10px;
    text-align: center;
}

.customer-order-progress-step::after {
    position: absolute;
    top: 15px;
    left: calc(50% + 20px);
    width: calc(100% - 40px);
    height: 2px;
    background: #e7dcd6;
    content: "";
}

.customer-order-progress-step:last-child::after {
    display: none;
}

.customer-order-progress-step>span {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    border: 2px solid #dfd3cd;
    border-radius: 50%;
    background: #fff;
    font-weight: 800;
}

.customer-order-progress-step.is-completed {
    color: #16864c;
}

.customer-order-progress-step.is-completed>span {
    border-color: #16864c;
    background: #16864c;
    color: #fff;
}

.customer-order-progress-step.is-completed::after {
    background: #16864c;
}

.customer-order-progress-step.is-current strong {
    color: #a9001c;
}

.customer-order-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    align-items: start;
    gap: 22px;
}

.customer-order-main,
.customer-order-sidebar {
    display: grid;
    gap: 20px;
}

.customer-order-card {
    padding: 23px;
    border: 1px solid #eaded6;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 11px 30px rgba(54, 25, 18, 0.055);
}

.customer-order-card-heading {
    margin-bottom: 18px;
    padding-bottom: 15px;
    border-bottom: 1px solid #eee2db;
}

.customer-order-card-heading>div {
    display: flex;
    align-items: center;
    gap: 11px;
}

.customer-order-card-heading i {
    color: #a9001c;
    font-size: 21px;
}

.customer-order-card-heading span {
    display: grid;
    gap: 2px;
}

.customer-order-card-heading h2 {
    margin: 0;
    color: #33211d;
    font-size: 17px;
}

.customer-order-card-heading p {
    margin: 0;
    color: #8b7871;
    font-size: 11px;
}

.customer-order-items {
    display: grid;
}

.customer-order-item {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 15px 0;
    border-bottom: 1px solid #eee3dc;
}

.customer-order-item:first-child {
    padding-top: 0;
}

.customer-order-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.customer-order-item-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    overflow: hidden;
    border: 1px solid #eadfd8;
    border-radius: 10px;
    background: #fff6e9;
    color: #a9001c;
}

.customer-order-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.customer-order-item-copy {
    display: grid;
    gap: 3px;
}

.customer-order-item-copy h3 {
    margin: 0;
    font-size: 14px;
}

.customer-order-item-copy h3 a {
    color: #34221e;
    text-decoration: none;
}

.customer-order-item-copy span,
.customer-order-item-copy small {
    color: #806d66;
    font-size: 11px;
}

.customer-order-item-total {
    color: #2f1e19;
    font-size: 14px;
}

.customer-order-summary {
    display: grid;
}

.customer-order-summary>div {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 11px 0;
    border-bottom: 1px solid #eee3dc;
    color: #66524b;
    font-size: 12px;
}

.customer-order-summary>div:last-child {
    border-bottom: 0;
}

.customer-order-summary .is-discount strong {
    color: #d32942;
}

.customer-order-summary .is-free {
    color: #16834b;
}

.customer-order-summary .customer-order-grand-total {
    color: #2f1e19;
    font-size: 15px;
}

.customer-order-grand-total strong {
    color: #a9001c;
}

.customer-order-address {
    display: grid;
    gap: 9px;
}

.customer-order-address>strong {
    color: #30201c;
}

.customer-order-address>span {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #624f48;
    font-size: 12px;
}

.customer-order-address>span i {
    color: #a9001c;
}

.customer-order-address p,
.customer-order-notes {
    margin: 2px 0 0;
    color: #715e57;
    font-size: 12px;
    line-height: 1.65;
}

.customer-order-sidebar-whatsapp {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    border-radius: 13px;
    background: #159b4e;
    color: #fff;
    text-decoration: none;
}

.customer-order-sidebar-whatsapp>i {
    font-size: 25px;
}

.customer-order-sidebar-whatsapp span {
    display: grid;
    gap: 2px;
}

.customer-order-sidebar-whatsapp strong {
    font-size: 13px;
}

.customer-order-sidebar-whatsapp small {
    color: rgba(255, 255, 255, 0.78);
    font-size: 10px;
}

.customer-order-timeline {
    display: grid;
    gap: 17px;
}

.customer-order-timeline-item {
    display: grid;
    grid-template-columns: 29px 1fr;
    gap: 11px;
}

.customer-order-timeline-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    background: #e8f8ef;
    color: #15854b;
    font-size: 13px;
}

.customer-order-timeline-item div {
    display: grid;
    gap: 3px;
}

.customer-order-timeline-item strong {
    color: #382620;
    font-size: 13px;
}

.customer-order-timeline-item p {
    margin: 0;
    color: #77645d;
    font-size: 12px;
}

.customer-order-timeline-item small {
    color: #9a8881;
    font-size: 10px;
}

.customer-order-no-history {
    color: #806d66;
}

.customer-order-footer-actions {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 27px;
}

.customer-order-footer-actions .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 45px;
    padding: 10px 17px;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.customer-order-footer-actions .button-secondary {
    border: 1px solid #d9cac1;
    background: #fff;
    color: #59433c;
}

@media (max-width: 900px) {
    .customer-order-layout {
        grid-template-columns: 1fr;
    }
    .customer-order-progress {
        overflow-x: auto;
        grid-template-columns: repeat(6, 125px);
    }
}

@media (max-width: 650px) {
    .customer-order-page {
        padding: 37px 0 70px;
    }
    .customer-order-page .site-container {
        width: min(100% - 22px, 1160px);
    }
    .customer-order-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .customer-order-heading-actions {
        width: 100%;
    }
    .customer-order-heading-actions a {
        flex: 1;
        justify-content: center;
    }
    .customer-order-status-banner {
        grid-template-columns: auto 1fr;
    }
    .customer-order-status-banner>strong {
        grid-column: 1 / -1;
    }
    .customer-order-item {
        grid-template-columns: 54px minmax(0, 1fr);
    }
    .customer-order-item-image {
        width: 54px;
        height: 54px;
    }
    .customer-order-item-total {
        grid-column: 2;
    }
    .customer-order-footer-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .customer-order-footer-actions .button {
        width: 100%;
    }
}

.customer-orders-page {
    min-height: 70vh;
    padding: 64px 24px 90px;
    background: radial-gradient( circle at top left, rgba(255, 229, 205, 0.55), transparent 35%), #fffaf3;
}

.customer-orders-shell {
    width: min(1120px, 100%);
    margin: 0 auto;
}

.customer-orders-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 28px;
}

.customer-orders-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: #b4001e;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.customer-orders-heading h1 {
    margin: 0 0 8px;
    color: #291315;
    font-family: Georgia, serif;
    font-size: clamp(34px, 5vw, 52px);
}

.customer-orders-heading p {
    max-width: 650px;
    margin: 0;
    color: #766366;
    line-height: 1.7;
}

.customer-orders-shop-button,
.customer-orders-primary-button,
.customer-order-view-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 700;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.customer-orders-shop-button {
    min-height: 46px;
    padding: 0 18px;
    border: 1px solid #dbc9c3;
    color: #741522;
    background: #fff;
}

.customer-orders-primary-button {
    min-height: 48px;
    padding: 0 24px;
    color: #fff;
    background: linear-gradient(135deg, #b4001e, #6f1320);
    box-shadow: 0 12px 26px rgba(128, 16, 34, 0.2);
}

.customer-order-view-button {
    min-height: 42px;
    padding: 0 17px;
    color: #fff;
    background: #781724;
}

.customer-orders-shop-button:hover,
.customer-orders-primary-button:hover,
.customer-order-view-button:hover {
    transform: translateY(-2px);
}

.customer-orders-alert {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    padding: 14px 17px;
    border: 1px solid;
    border-radius: 12px;
}

.customer-orders-alert.is-success {
    border-color: #a6dfc3;
    color: #087743;
    background: #edfff5;
}

.customer-orders-alert.is-error {
    border-color: #efb5ba;
    color: #a31321;
    background: #fff1f2;
}

.customer-orders-list {
    display: grid;
    gap: 20px;
}

.customer-order-card {
    overflow: hidden;
    border: 1px solid #eadbd4;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 15px 38px rgba(75, 40, 31, 0.08);
}

.customer-order-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 25px;
    border-bottom: 1px solid #eee1db;
}

.customer-order-number-label {
    display: block;
    margin-bottom: 5px;
    color: #947d78;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.customer-order-card-header h2 {
    margin: 0;
    color: #291315;
    font-size: 21px;
}

.customer-order-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.customer-order-status.is-pending {
    color: #8a5a00;
    background: #fff0bd;
}

.customer-order-status.is-processing {
    color: #075d9a;
    background: #dcefff;
}

.customer-order-status.is-completed {
    color: #087743;
    background: #dcf8e9;
}

.customer-order-status.is-cancelled {
    color: #af1f2f;
    background: #ffe1e5;
}

.customer-order-information {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(150px, 0.8fr);
    gap: 1px;
    background: #eee1db;
}

.customer-order-detail {
    padding: 21px 24px;
    background: #fff;
}

.customer-order-detail span {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 8px;
    color: #927d78;
    font-size: 12px;
}

.customer-order-detail strong {
    color: #342326;
    font-size: 15px;
}

.customer-order-detail.is-total {
    background: #fff7ea;
}

.customer-order-detail.is-total strong {
    color: #9d001b;
    font-size: 20px;
}

.customer-order-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 17px 24px;
    background: #fffdf9;
}

.customer-order-card-footer p {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: #7f6b67;
    font-size: 13px;
}

.customer-orders-empty {
    padding: 70px 25px;
    border: 1px solid #eadbd4;
    border-radius: 20px;
    text-align: center;
    background: #fff;
    box-shadow: 0 15px 38px rgba(75, 40, 31, 0.08);
}

.customer-orders-empty-icon {
    display: grid;
    width: 72px;
    height: 72px;
    margin: 0 auto 20px;
    place-items: center;
    border-radius: 50%;
    color: #a6001b;
    background: #fff0e4;
    font-size: 30px;
}

.customer-orders-empty h2 {
    margin: 0 0 9px;
    color: #291315;
    font-family: Georgia, serif;
}

.customer-orders-empty p {
    max-width: 540px;
    margin: 0 auto 25px;
    color: #806d68;
    line-height: 1.65;
}

.customer-orders-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 30px;
}

.customer-orders-pagination a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #8c1023;
    font-weight: 700;
    text-decoration: none;
}

.customer-orders-pagination span {
    color: #806d68;
}

.cart-checkout-button {
    width: 100%;
    border: 0;
    cursor: pointer;
}

@media (max-width: 850px) {
    .customer-orders-heading,
    .customer-order-card-footer {
        align-items: stretch;
        flex-direction: column;
    }
    .customer-orders-information {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .customer-order-view-button {
        width: 100%;
    }
}

@media (max-width: 560px) {
    .customer-orders-page {
        padding: 40px 15px 70px;
    }
    .customer-orders-information {
        grid-template-columns: 1fr;
    }
    .customer-order-card-header {
        align-items: flex-start;
        flex-direction: column;
    }
}

.customer-account-content {
    display: grid;
    min-width: 0;
    gap: 24px;
}

.account-recent-orders {
    width: 100%;
    min-width: 0;
    margin: 0;
}

.account-recent-orders .account-section-body {
    width: 100%;
}

.account-recent-orders-grid {
    display: grid;
    grid-template-columns: repeat( 3, minmax(0, 1fr));
    gap: 18px;
}

.account-recent-order-card {
    display: flex;
    min-width: 0;
    padding: 20px;
    border: 1px solid #eadbd4;
    border-radius: 15px;
    background: #fffdf9;
    flex-direction: column;
    gap: 14px;
}

.account-recent-order-card h3,
.account-recent-order-card p {
    overflow-wrap: anywhere;
}

@media (max-width: 1000px) {
    .account-recent-orders-grid {
        grid-template-columns: repeat( 2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .account-recent-orders-grid {
        grid-template-columns: 1fr;
    }
}


/* Account dashboard structure correction */

.account-dashboard-grid {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    align-items: start;
    gap: 28px;
}

.account-dashboard-content {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 24px;
}

.account-information-card {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.account-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.account-card-heading-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #a6001b;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.account-card-heading-link:hover {
    color: #68101d;
}

.account-address-summary-grid {
    display: grid;
    grid-template-columns: repeat( 2, minmax(0, 1fr));
    gap: 16px;
    padding: 22px;
}

.account-address-summary-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid #eadbd4;
    border-radius: 13px;
    background: #fffdf9;
}

.account-address-summary-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.account-address-summary-heading strong {
    color: #311c20;
}

.account-address-summary-heading span {
    padding: 4px 9px;
    border-radius: 999px;
    color: #087743;
    background: #e2f8ec;
    font-size: 11px;
    font-weight: 800;
}

.account-address-summary-card p {
    margin: 4px 0;
    color: #796663;
    line-height: 1.5;
}

.account-recent-orders {
    width: 100%;
    margin: 0;
}

.account-recent-orders-grid {
    display: grid;
    grid-template-columns: repeat( 3, minmax(0, 1fr));
    gap: 16px;
    padding: 22px;
}

.account-recent-order-card {
    display: flex;
    min-width: 0;
    padding: 18px;
    border: 1px solid #eadbd4;
    border-radius: 14px;
    background: #fffdf9;
    flex-direction: column;
    gap: 18px;
}

.account-recent-order-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.account-recent-order-top div {
    min-width: 0;
}

.account-recent-order-top div>span {
    display: block;
    margin-bottom: 5px;
    color: #917a76;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.account-recent-order-top strong {
    display: block;
    overflow-wrap: anywhere;
    color: #311c20;
    font-size: 14px;
}

.account-order-status {
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 25px;
    align-items: center;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
}

.account-order-status.is-pending {
    color: #855800;
    background: #fff0bd;
}

.account-order-status.is-processing {
    color: #075d9a;
    background: #dcefff;
}

.account-order-status.is-completed {
    color: #087743;
    background: #dcf8e9;
}

.account-order-status.is-cancelled {
    color: #af1f2f;
    background: #ffe1e5;
}

.account-recent-order-details {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    padding-top: 14px;
    border-top: 1px solid #eee1db;
}

.account-recent-order-details span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #88736f;
    font-size: 12px;
}

.account-recent-order-details strong {
    color: #9f001b;
    font-size: 17px;
}

.account-recent-order-link {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #831424;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

@media (max-width: 1050px) {
    .account-recent-orders-grid {
        grid-template-columns: repeat( 2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .account-dashboard-grid {
        grid-template-columns: 1fr;
    }
    .account-navigation-card {
        position: static;
    }
    .account-address-summary-grid,
    .account-recent-orders-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .account-card-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .account-card-heading-link {
        white-space: normal;
    }
    .account-address-summary-grid,
    .account-recent-orders-grid {
        padding: 16px;
    }
}

.product-purchase-buttons {
    display: grid;
    width: 100%;
    grid-template-columns: repeat( 2, minmax(0, 1fr));
    gap: 9px;
}

.product-purchase-buttons .button {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 10px 12px;
    font-size: 13px;
    white-space: nowrap;
}

.product-buy-now-button {
    border: 1px solid #8e1426;
    color: #8e1426;
    background: #fff;
}

.product-buy-now-button:hover {
    color: #fff;
    background: #8e1426;
}

.product-buy-now-button:disabled {
    border-color: #d3c6c2;
    color: #9c8f8b;
    background: #f1ece9;
    cursor: not-allowed;
}

.product-wishlist-form {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 8;
    margin: 0;
}

.product-wishlist-button {
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(175, 0, 24, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    color: #6d1020;
    box-shadow: 0 0.6rem 1.5rem rgba(84, 27, 31, 0.13);
    cursor: pointer;
    transition: transform 160ms ease, color 160ms ease, background 160ms ease, border-color 160ms ease;
}

.product-wishlist-button:hover,
.product-wishlist-button:focus-visible,
.product-wishlist-button.is-active {
    color: #ffffff;
    background: #af0018;
    border-color: #af0018;
    transform: translateY(-2px);
}

.product-wishlist-button i {
    font-size: 1.2rem;
    line-height: 1;
}

.product-quick-cart-control {
    width: 100%;
    min-width: 0;
}

.product-add-cart-button,
.product-choose-option-button {
    width: 100%;
    min-height: 46px;
    border: 1.5px solid #278a18;
    border-radius: 12px;
    color: #278a18;
    background: #fff;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.product-add-cart-button:hover,
.product-choose-option-button:hover {
    border-color: #207613;
    color: #fff;
    background: #278a18;
}

.product-add-cart-button:disabled {
    border-color: #d3c6c2;
    color: #9c8f8b;
    background: #f1ece9;
    cursor: not-allowed;
}

.product-cart-stepper {
    display: grid;
    width: 100%;
    min-height: 46px;
    grid-template-columns: 42px minmax(28px, 1fr) 42px;
    align-items: center;
    border-radius: 12px;
    overflow: hidden;
    color: #fff;
    background: #278a18;
    box-shadow: 0 8px 20px rgba(39, 138, 24, 0.22);
}

.product-cart-stepper[hidden],
.product-add-cart-button[hidden] {
    display: none !important;
}

.product-cart-stepper button {
    display: grid;
    height: 100%;
    min-height: 46px;
    place-items: center;
    border: 0;
    color: inherit;
    background: transparent;
    font-size: 19px;
    cursor: pointer;
}

.product-cart-stepper button:hover {
    background: rgba(255, 255, 255, 0.15);
}

.product-cart-stepper output {
    font-size: 17px;
    font-weight: 800;
    text-align: center;
}

.product-quick-cart-form.is-updating {
    opacity: 0.72;
    pointer-events: none;
}

.mobile-cart-dock {
    display: none;
}

@media (max-width: 430px) {
    .product-purchase-buttons {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .mobile-cart-dock.is-visible {
        position: fixed;
        right: 16px;
        bottom: max(14px, env(safe-area-inset-bottom));
        left: 16px;
        z-index: 1200;
        display: grid;
        min-height: 68px;
        grid-template-columns: 46px 1fr 24px;
        align-items: center;
        gap: 12px;
        max-width: 520px;
        margin: 0 auto;
        padding: 10px 18px 10px 10px;
        border: 1px solid rgba(255, 255, 255, 0.22);
        border-radius: 20px;
        color: #fff;
        background: linear-gradient(135deg, #218315, #2e981c);
        box-shadow: 0 16px 38px rgba(30, 92, 19, 0.34);
        text-decoration: none;
    }
    .mobile-cart-dock-icon {
        display: grid;
        width: 46px;
        height: 46px;
        place-items: center;
        border-radius: 50%;
        color: #278a18;
        background: #fff;
        font-size: 20px;
    }
    .mobile-cart-dock-copy {
        display: flex;
        min-width: 0;
        flex-direction: column;
        line-height: 1.2;
    }
    .mobile-cart-dock-copy strong {
        color: #fff;
        font-size: 18px;
        font-weight: 800;
    }
    .mobile-cart-dock-copy small {
        margin-top: 3px;
        color: rgba(255, 255, 255, 0.88);
        font-size: 13px;
    }
    .mobile-cart-dock-arrow {
        color: #fff;
        font-size: 21px;
    }
    body.has-mobile-cart-dock {
        padding-bottom: 94px;
    }
    body.has-mobile-cart-dock .floating-whatsapp {
        bottom: 98px;
    }
}


/* Customer review invitation */

.customer-review-page {
    min-height: 70vh;
    padding: 70px 24px 90px;
    background: radial-gradient( circle at top left, rgba(255, 224, 197, 0.65), transparent 35%), radial-gradient( circle at bottom right, rgba(180, 0, 30, 0.07), transparent 35%), #fffaf4;
}

.customer-review-shell {
    width: min(760px, 100%);
    margin: 0 auto;
}

.customer-review-intro {
    margin-bottom: 28px;
    text-align: center;
}

.review-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: #ae001d;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.customer-review-intro h1,
.review-invalid-card h1,
.review-thank-you-card h1 {
    margin: 0 0 15px;
    color: #30171a;
    font-family: Georgia, serif;
    font-size: clamp(35px, 6vw, 52px);
    line-height: 1.08;
}

.customer-review-intro>p {
    max-width: 650px;
    margin: 0 auto;
    color: #745f5c;
    line-height: 1.7;
}

.review-security-note {
    display: inline-flex;
    margin-top: 20px;
    align-items: center;
    gap: 9px;
    padding: 11px 15px;
    border: 1px solid #a9dec3;
    border-radius: 999px;
    color: #087743;
    background: #effcf5;
    font-size: 13px;
    font-weight: 700;
}

.customer-review-form-card,
.review-invalid-card,
.review-thank-you-card {
    border: 1px solid #ead8d0;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 22px 55px rgba(74, 35, 30, 0.11);
}

.customer-review-form-card {
    padding: 32px;
}

.review-form-heading {
    display: flex;
    align-items: center;
    gap: 15px;
    padding-bottom: 24px;
    border-bottom: 1px solid #eee0da;
}

.review-form-icon {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 15px;
    color: #a8001c;
    background: #fff0e8;
    font-size: 23px;
}

.review-form-heading h2 {
    margin: 0 0 4px;
    color: #321c20;
    font-family: Georgia, serif;
    font-size: 25px;
}

.review-form-heading p {
    margin: 0;
    color: #8b7773;
    font-size: 13px;
}

.review-form-alert {
    display: flex;
    margin-top: 22px;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid #efb6bc;
    border-radius: 12px;
    color: #a20e21;
    background: #fff0f2;
}

.customer-review-form {
    display: grid;
    gap: 25px;
    margin-top: 27px;
}

.review-rating-field {
    margin: 0;
    padding: 0;
    border: 0;
}

.review-rating-field legend,
.review-form-field>label {
    display: flex;
    width: 100%;
    margin-bottom: 7px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: #382327;
    font-weight: 800;
}

.review-rating-field>p {
    margin: 0 0 13px;
    color: #897470;
    font-size: 13px;
}

.review-form-field label span {
    color: #9a8581;
    font-size: 11px;
    font-weight: 600;
}

.review-stars {
    display: inline-flex;
    padding: 13px 17px;
    border: 1px solid #ead8d0;
    border-radius: 13px;
    background: #fffaf5;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 5px;
}

.review-stars input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.review-stars label {
    color: #d9cbc6;
    cursor: pointer;
    font-size: 29px;
    transition: color 0.18s ease, transform 0.18s ease;
}

.review-stars label:hover,
.review-stars label:hover~label,
.review-stars input:checked~label {
    color: #f3ad12;
}

.review-stars label:hover {
    transform: translateY(-2px);
}

.review-input-wrapper {
    position: relative;
}

.review-input-wrapper>i {
    position: absolute;
    top: 50%;
    left: 15px;
    color: #a0001b;
    transform: translateY(-50%);
}

.review-input-wrapper input,
.review-form-field textarea {
    width: 100%;
    border: 1px solid #d9c9c3;
    border-radius: 12px;
    color: #352126;
    background: #fff;
    box-sizing: border-box;
    outline: 0;
    font: inherit;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.review-input-wrapper input {
    min-height: 50px;
    padding: 0 16px 0 44px;
}

.review-form-field textarea {
    min-height: 170px;
    padding: 15px;
    resize: vertical;
    line-height: 1.6;
}

.review-input-wrapper input:focus,
.review-form-field textarea:focus {
    border-color: #a9001c;
    box-shadow: 0 0 0 4px rgba(169, 0, 28, 0.1);
}

.review-field-error,
.review-field-help {
    display: block;
    margin-top: 7px;
    font-size: 12px;
}

.review-field-error {
    color: #b31326;
}

.review-field-help {
    color: #8b7773;
}

.review-submission-note {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 15px;
    border-radius: 12px;
    color: #725e5b;
    background: #fff7eb;
    font-size: 12px;
    line-height: 1.6;
}

.review-submission-note i {
    color: #b2001e;
    font-size: 17px;
}

.review-submission-note p {
    margin: 0;
}

.review-submit-button {
    min-height: 54px;
}

.review-invalid-card,
.review-thank-you-card {
    padding: 60px 35px;
    text-align: center;
}

.review-invalid-icon,
.review-thank-you-icon {
    display: grid;
    width: 78px;
    height: 78px;
    margin: 0 auto 22px;
    place-items: center;
    border-radius: 50%;
    font-size: 34px;
}

.review-invalid-icon {
    color: #a2001b;
    background: #fff0e8;
}

.review-thank-you-icon {
    color: #fff;
    background: linear-gradient( 135deg, #08a65c, #057540);
    box-shadow: 0 14px 30px rgba(5, 117, 64, 0.22);
}

.review-invalid-card>p,
.review-thank-you-card>p {
    max-width: 570px;
    margin: 0 auto 20px;
    color: #78635f;
    line-height: 1.7;
}

.review-invalid-help {
    font-size: 13px;
}

.review-thank-you-information {
    display: flex;
    max-width: 560px;
    margin: 28px auto;
    padding: 17px;
    align-items: flex-start;
    gap: 13px;
    border: 1px solid #ead8d0;
    border-radius: 14px;
    text-align: left;
    background: #fffaf4;
}

.review-thank-you-information>i {
    color: #ad001d;
    font-size: 22px;
}

.review-thank-you-information strong,
.review-thank-you-information span {
    display: block;
}

.review-thank-you-information strong {
    margin-bottom: 4px;
    color: #352126;
}

.review-thank-you-information span {
    color: #806c68;
    font-size: 13px;
    line-height: 1.55;
}

.review-thank-you-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

@media (max-width: 600px) {
    .customer-review-page {
        padding: 45px 15px 70px;
    }
    .customer-review-form-card {
        padding: 22px 18px;
    }
    .review-invalid-card,
    .review-thank-you-card {
        padding: 45px 20px;
    }
    .review-thank-you-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .review-thank-you-actions .button {
        width: 100%;
    }
    .review-security-note {
        border-radius: 13px;
    }
}


/* ==========================================
   CUSTOMER REVIEWS
========================================== */

.store-customer-reviews {
    position: relative;
    overflow: hidden;
    padding: 90px 0;
    background: radial-gradient( circle at 10% 10%, rgba(183, 0, 31, 0.08), transparent 32%), linear-gradient( 180deg, #fffdf8 0%, #fff7e9 100%);
}

.store-customer-reviews::after {
    content: "";
    position: absolute;
    right: -130px;
    bottom: -170px;
    width: 380px;
    height: 380px;
    border: 1px solid rgba(133, 22, 42, 0.10);
    border-radius: 50%;
    box-shadow: 0 0 0 45px rgba(133, 22, 42, 0.025), 0 0 0 90px rgba(133, 22, 42, 0.018);
}

.reviews-section-heading {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 42px;
}

.reviews-section-heading h2 {
    margin: 8px 0 10px;
    color: #36191d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1.05;
}

.reviews-section-heading p {
    max-width: 620px;
    margin: 0;
    color: #78686a;
    font-size: 15px;
    line-height: 1.7;
}

.reviews-heading-decoration {
    width: 72px;
    height: 72px;
    min-width: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(133, 22, 42, 0.12);
    border-radius: 50%;
    color: #a9001e;
    background: #ffffff;
    box-shadow: 0 15px 35px rgba(92, 24, 35, 0.10);
    font-size: 29px;
}

.customer-review-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.customer-review-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 310px;
    padding: 30px;
    border: 1px solid rgba(122, 74, 52, 0.12);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 18px 45px rgba(72, 35, 28, 0.07);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.customer-review-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 55px rgba(72, 35, 28, 0.13);
}

.customer-review-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 22px;
}

.customer-review-quote {
    width: 45px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    color: #ffffff;
    background: linear-gradient(135deg, #a9001e, #711220);
    font-size: 25px;
}

.customer-review-stars {
    display: flex;
    gap: 3px;
    color: #e5a800;
    font-size: 14px;
}

.customer-review-card h3 {
    margin: 0 0 12px;
    color: #3a2023;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    line-height: 1.25;
}

.customer-review-message {
    flex: 1;
    margin: 0 0 28px;
    color: #6e5b5e;
    font-size: 15px;
    line-height: 1.8;
}

.customer-review-customer {
    display: flex;
    align-items: center;
    gap: 13px;
    padding-top: 20px;
    border-top: 1px solid #f0e4dd;
}

.customer-review-avatar {
    width: 46px;
    height: 46px;
    min-width: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #ffffff;
    background: linear-gradient(135deg, #8e1328, #c00025);
    font-size: 17px;
    font-weight: 700;
}

.customer-review-customer strong {
    display: block;
    margin-bottom: 3px;
    color: #3a2023;
    font-size: 15px;
}

.customer-review-customer span:last-child {
    display: block;
    color: #807174;
    font-size: 12px;
}

.customer-review-customer span:last-child i {
    margin-right: 3px;
    color: #14945f;
}

@media (max-width: 991.98px) {
    .customer-review-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .store-customer-reviews {
        padding: 65px 0;
    }
    .reviews-section-heading {
        align-items: flex-start;
    }
    .reviews-heading-decoration {
        display: none;
    }
    .customer-review-grid {
        grid-template-columns: 1fr;
    }
    .customer-review-card {
        min-height: auto;
        padding: 25px;
    }
}


/* ==========================================================
   FESTIVAL SPECIALS COLLECTION
========================================================== */

.festival-collection-page {
    overflow: hidden;
    background: radial-gradient(circle at 6% 25%, rgba(244, 187, 75, .11), transparent 21%), radial-gradient(circle at 94% 65%, rgba(137, 18, 38, .08), transparent 24%), #fffaf0;
}

.festival-collection-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(115deg, #5b0712 0%, #8d0719 54%, #b11a28 100%);
    color: #fff;
}

.festival-collection-hero::before,
.festival-collection-hero::after {
    position: absolute;
    border: 1px solid rgba(255, 218, 87, .13);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.festival-collection-hero::before {
    top: -180px;
    right: -150px;
    width: 520px;
    height: 520px;
}

.festival-collection-hero::after {
    bottom: -260px;
    left: -120px;
    width: 600px;
    height: 600px;
}

.festival-glow {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 202, 67, .15);
    filter: blur(3px);
    pointer-events: none;
}

.festival-glow-one {
    top: 70px;
    left: 43%;
    width: 110px;
    height: 110px;
}

.festival-glow-two {
    right: 5%;
    bottom: -65px;
    width: 190px;
    height: 190px;
}

.festival-hero-layout {
    position: relative;
    z-index: 2;
    display: grid;
    min-height: 610px;
    grid-template-columns: minmax(0, 1.15fr) minmax(370px, .85fr);
    align-items: center;
    gap: 60px;
    padding-block: 78px 82px;
}

.festival-hero-copy {
    max-width: 720px;
}

.festival-kicker {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 225, 129, .32);
    border-radius: 999px;
    background: rgba(255, 226, 116, .13);
    color: #ffe697;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.festival-hero-copy h1 {
    max-width: 680px;
    margin: 22px 0 19px;
    color: #fffdf4;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.4rem, 6.2vw, 6.2rem);
    letter-spacing: -.055em;
    line-height: .94;
}

.festival-hero-copy h1 span {
    display: block;
    color: #ffda57;
}

.festival-hero-copy>p {
    max-width: 630px;
    margin: 0;
    color: #f2d9dc;
    font-size: 1.02rem;
    line-height: 1.75;
}

.festival-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 30px;
}

.festival-primary-action,
.festival-secondary-action {
    min-height: 50px;
    padding-inline: 20px;
}

.festival-primary-action {
    background: #ffda57;
    color: #5b0712;
    box-shadow: 0 13px 32px rgba(255, 202, 67, .18);
}

.festival-primary-action:hover {
    background: #ffe47e;
    transform: translateY(-2px);
}

.festival-secondary-action {
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .08);
    color: #fff;
}

.festival-secondary-action:hover {
    border-color: rgba(255, 255, 255, .55);
    background: rgba(255, 255, 255, .15);
}

.festival-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 22px;
    margin-top: 34px;
    color: #f5dfe2;
    font-size: .8rem;
}

.festival-hero-meta span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.festival-hero-meta strong {
    color: #ffda57;
    font-size: 1.05rem;
}

.festival-hero-meta i {
    color: #ffda57;
}

.festival-hero-art {
    position: relative;
    display: grid;
    width: min(100%, 440px);
    aspect-ratio: 1;
    justify-self: end;
    place-items: center;
}

.festival-art-orbit {
    position: absolute;
    width: 100%;
    height: 100%;
    border: 1px solid rgba(255, 218, 87, .27);
    border-radius: 50%;
}

.festival-art-orbit::before,
.festival-art-orbit::after {
    position: absolute;
    border: 1px solid rgba(255, 218, 87, .15);
    border-radius: 50%;
    content: "";
}

.festival-art-orbit::before {
    inset: 34px;
}

.festival-art-orbit::after {
    inset: 72px;
}

.festival-art-orbit-inner {
    width: 58%;
    height: 58%;
    border-color: rgba(255, 218, 87, .2);
    background: radial-gradient(circle, rgba(255, 218, 87, .12), transparent 65%);
}

.festival-art-flower {
    position: relative;
    z-index: 2;
    display: grid;
    width: 205px;
    height: 205px;
    place-items: center;
    border: 1px solid rgba(255, 224, 118, .3);
    border-radius: 50%;
    background: linear-gradient(145deg, rgba(255, 225, 119, .18), rgba(255, 255, 255, .03));
    color: #ffcd4d;
    box-shadow: 0 0 0 18px rgba(255, 218, 87, .035), 0 25px 65px rgba(47, 0, 7, .28);
    font-size: 7.2rem;
}

.festival-art-spark {
    position: absolute;
    z-index: 3;
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border: 1px solid rgba(255, 218, 87, .28);
    border-radius: 50%;
    background: #7c0717;
    color: #ffda57;
    box-shadow: 0 12px 30px rgba(48, 0, 7, .3);
}

.festival-art-spark-one {
    top: 8%;
    right: 17%;
}

.festival-art-spark-two {
    bottom: 17%;
    left: 5%;
}

.festival-art-note {
    position: absolute;
    z-index: 3;
    right: -12px;
    bottom: 14%;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid rgba(255, 218, 87, .28);
    border-radius: 999px;
    background: #fff8e9;
    color: #6d101d;
    box-shadow: 0 15px 35px rgba(46, 0, 6, .22);
    font-size: .73rem;
    font-weight: 800;
}

.festival-art-note i {
    color: #a80a20;
}

.festival-service-strip {
    position: relative;
    z-index: 5;
    border-bottom: 1px solid #eee0cc;
    background: rgba(255, 253, 248, .96);
    box-shadow: 0 14px 35px rgba(68, 17, 24, .05);
}

.festival-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.festival-service-grid article {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 104px;
    padding: 20px 30px;
    border-right: 1px solid #eee0cc;
}

.festival-service-grid article:last-child {
    border-right: 0;
}

.festival-service-grid article>span {
    display: grid;
    width: 45px;
    height: 45px;
    min-width: 45px;
    place-items: center;
    border-radius: 15px;
    background: #fff0cf;
    color: #991328;
    font-size: 1.15rem;
}

.festival-service-grid strong,
.festival-service-grid small {
    display: block;
}

.festival-service-grid strong {
    margin-bottom: 2px;
    color: #3f2024;
    font-family: Georgia, "Times New Roman", serif;
    font-size: .96rem;
}

.festival-service-grid small {
    color: #88787a;
    font-size: .7rem;
}

.festival-products-section {
    scroll-margin-top: 150px;
    padding-block: 85px 72px;
}

.festival-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 36px;
}

.festival-section-heading h2 {
    margin: 7px 0 9px;
    color: #361b1e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 4vw, 3.6rem);
    letter-spacing: -.035em;
    line-height: 1.05;
}

.festival-section-heading p {
    max-width: 620px;
    margin: 0;
    color: #78696b;
}

.festival-result-count {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 15px;
    border: 1px solid #ead9bb;
    border-radius: 999px;
    background: #fff;
    color: #851629;
    box-shadow: 0 8px 22px rgba(79, 21, 30, .06);
    font-size: .76rem;
    font-weight: 800;
    white-space: nowrap;
}

.festival-result-count i {
    color: #d49a2e;
}

.festival-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.festival-product-grid .product-card {
    border-color: #ead8bd;
    border-radius: 24px;
    box-shadow: 0 15px 40px rgba(84, 31, 33, .08);
}

.festival-product-grid .product-card:hover {
    border-color: #dfc18e;
    box-shadow: 0 23px 55px rgba(84, 31, 33, .15);
}

.festival-product-grid .product-media {
    background: radial-gradient(circle at 75% 20%, rgba(255, 217, 87, .34), transparent 24%), linear-gradient(145deg, #fff4dd, #efd3ad);
}

.festival-product-grid .badge-festival {
    background: #951329;
    color: #fff5d2;
}

.festival-product-grid .product-card-body {
    background: linear-gradient(180deg, #fff 0%, #fffbf3 100%);
}

.festival-pagination {
    margin-top: 42px;
}

.festival-empty-state {
    display: grid;
    max-width: 820px;
    min-height: 380px;
    margin-inline: auto;
    padding: 55px;
    place-items: center;
    border: 1px dashed #dcbf90;
    border-radius: 28px;
    background: radial-gradient(circle at 50% 0%, rgba(255, 215, 81, .18), transparent 35%), #fff;
    text-align: center;
    box-shadow: 0 18px 45px rgba(73, 23, 30, .06);
}

.festival-empty-state>span {
    display: grid;
    width: 76px;
    height: 76px;
    place-items: center;
    border-radius: 24px;
    background: #fff0cc;
    color: #951329;
    font-size: 2rem;
}

.festival-empty-state h2 {
    max-width: 600px;
    margin: 18px 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    line-height: 1.15;
}

.festival-empty-state p {
    max-width: 570px;
    margin: 0 0 22px;
    color: #78696b;
}

.festival-gifting-section {
    padding: 0 0 90px;
}

.festival-gifting-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 25px;
    padding: 32px 38px;
    border: 1px solid #ead5ac;
    border-radius: 26px;
    background: radial-gradient(circle at 85% 0%, rgba(255, 211, 76, .22), transparent 25%), linear-gradient(115deg, #fff 0%, #fff7e6 100%);
    box-shadow: 0 20px 48px rgba(76, 24, 30, .08);
}

.festival-gifting-icon {
    display: grid;
    width: 72px;
    height: 72px;
    place-items: center;
    border-radius: 22px;
    background: linear-gradient(145deg, #8d0719, #630913);
    color: #ffda57;
    box-shadow: 0 13px 28px rgba(91, 7, 18, .19);
    font-size: 1.85rem;
}

.festival-gifting-panel h2 {
    margin: 3px 0 6px;
    color: #3b1f22;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 3vw, 2.25rem);
    line-height: 1.15;
}

.festival-gifting-panel p {
    max-width: 660px;
    margin: 0;
    color: #796a6c;
}

.festival-gifting-button {
    min-height: 50px;
    background: #16864e;
    color: #fff;
    white-space: nowrap;
}

.festival-gifting-button:hover {
    background: #0f7040;
    transform: translateY(-2px);
}

@media (max-width: 1050px) {
    .festival-hero-layout {
        grid-template-columns: minmax(0, 1fr) 330px;
        gap: 30px;
    }
    .festival-hero-art {
        width: 330px;
    }
    .festival-art-flower {
        width: 165px;
        height: 165px;
        font-size: 5.7rem;
    }
    .festival-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .festival-hero-layout {
        min-height: auto;
        grid-template-columns: 1fr;
        padding-block: 65px 48px;
        text-align: center;
    }
    .festival-hero-copy,
    .festival-hero-copy h1,
    .festival-hero-copy>p {
        margin-inline: auto;
    }
    .festival-hero-actions,
    .festival-hero-meta {
        justify-content: center;
    }
    .festival-hero-art {
        width: min(100%, 350px);
        justify-self: center;
    }
    .festival-service-grid {
        grid-template-columns: 1fr;
    }
    .festival-service-grid article {
        min-height: 90px;
        border-right: 0;
        border-bottom: 1px solid #eee0cc;
    }
    .festival-service-grid article:last-child {
        border-bottom: 0;
    }
    .festival-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .festival-gifting-panel {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .festival-gifting-button {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

@media (max-width: 580px) {
    .festival-hero-layout {
        padding-block: 52px 42px;
    }
    .festival-hero-copy h1 {
        font-size: clamp(3rem, 16vw, 4.5rem);
    }
    .festival-hero-copy>p {
        font-size: .92rem;
    }
    .festival-hero-actions {
        display: grid;
    }
    .festival-hero-actions .button {
        width: 100%;
    }
    .festival-hero-meta {
        align-items: center;
        flex-direction: column;
    }
    .festival-hero-art {
        width: 280px;
    }
    .festival-art-flower {
        width: 135px;
        height: 135px;
        font-size: 4.5rem;
    }
    .festival-art-note {
        right: -5px;
    }
    .festival-service-grid article {
        padding-inline: 10px;
    }
    .festival-products-section {
        padding-block: 62px 55px;
    }
    .festival-section-heading {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 27px;
    }
    .festival-product-grid {
        grid-template-columns: 1fr;
    }
    .festival-empty-state {
        min-height: 340px;
        padding: 35px 22px;
    }
    .festival-gifting-section {
        padding-bottom: 62px;
    }
    .festival-gifting-panel {
        grid-template-columns: 1fr;
        padding: 28px 24px;
        text-align: center;
    }
    .festival-gifting-icon,
    .festival-gifting-button {
        justify-self: center;
    }
}


/* Checkout coupon */

.checkout-coupon-box {
    margin: 22px 0;
    padding: 16px;
    border: 1px dashed rgba(137, 17, 37, 0.28);
    border-radius: 16px;
    background: #fff9f1;
}

.checkout-coupon-heading {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 13px;
}

.checkout-coupon-heading>span {
    display: inline-grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border-radius: 12px;
    color: #a90020;
    background: #ffe9e7;
}

.checkout-coupon-heading div,
.checkout-coupon-applied div {
    min-width: 0;
}

.checkout-coupon-heading strong,
.checkout-coupon-heading small,
.checkout-coupon-applied span,
.checkout-coupon-applied strong,
.checkout-coupon-applied small {
    display: block;
}

.checkout-coupon-heading small,
.checkout-coupon-applied small {
    margin-top: 2px;
    color: #796d68;
    font-size: 0.78rem;
}

.checkout-coupon-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.checkout-coupon-form input {
    min-width: 0;
    height: 44px;
    padding: 0 13px;
    border: 1px solid #e4d6ce;
    border-radius: 11px;
    background: #fff;
    color: #2f211f;
    font: inherit;
    text-transform: uppercase;
}

.checkout-coupon-form input:focus {
    border-color: #a90020;
    outline: 3px solid rgba(169, 0, 32, 0.1);
}

.checkout-coupon-form button,
.checkout-coupon-remove {
    border: 0;
    border-radius: 11px;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
}

.checkout-coupon-form button {
    padding: 0 18px;
    color: #fff;
    background: #a90020;
}

.checkout-coupon-applied {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 13px;
    border: 1px solid rgba(14, 139, 79, 0.2);
    border-radius: 12px;
    background: #eefbf4;
}

.checkout-coupon-applied span {
    color: #078249;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.checkout-coupon-applied strong {
    margin-top: 2px;
    color: #135c3d;
    letter-spacing: 0.05em;
}

.checkout-coupon-remove {
    padding: 8px 11px;
    color: #9c1029;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(156, 16, 41, 0.2);
}

.checkout-coupon-saving,
.checkout-coupon-error {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin: 10px 0 0;
    font-size: 0.78rem;
}

.checkout-coupon-saving {
    color: #087d47;
}

.checkout-coupon-error {
    color: #b21d35;
}

.checkout-summary-discount span small {
    display: block;
    margin-top: 2px;
    color: #a90020;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
}

@media (max-width: 480px) {
    .checkout-coupon-form {
        grid-template-columns: 1fr;
    }
    .checkout-coupon-form button {
        min-height: 42px;
    }
}


/* =========================================================
   SPECIAL OFFERS — HOMEPAGE
========================================================= */

.store-home-offers {
    position: relative;
    overflow: hidden;
    padding-block: 82px;
    background: radial-gradient( circle at 92% 12%, rgba(255, 193, 67, 0.18), transparent 28%), #fff8ec;
}

.home-offers-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 34px;
}

.home-offers-heading h2 {
    margin: 7px 0 8px;
    color: #321817;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.02;
}

.home-offers-heading p {
    max-width: 610px;
    margin: 0;
    color: #776660;
}

.home-offers-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.home-offer-card {
    --offer-accent: #a7001e;
    --offer-dark: #6d0618;
    --offer-soft: #ffe9e3;
    position: relative;
    display: flex;
    min-height: 330px;
    flex-direction: column;
    overflow: hidden;
    padding: 29px;
    border: 1px solid rgba(86, 38, 31, 0.1);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(73, 38, 26, 0.09);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.home-offer-card::after {
    position: absolute;
    right: -68px;
    bottom: -78px;
    width: 190px;
    height: 190px;
    border: 1px solid color-mix( in srgb, var(--offer-accent) 22%, transparent);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.home-offer-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 58px rgba(73, 38, 26, 0.15);
}

.home-offer-theme-gold {
    --offer-accent: #bd7500;
    --offer-dark: #6e4200;
    --offer-soft: #fff2c9;
}

.home-offer-theme-plum {
    --offer-accent: #7b2d69;
    --offer-dark: #4b173e;
    --offer-soft: #f7e4f2;
}

.home-offer-theme-emerald {
    --offer-accent: #087b55;
    --offer-dark: #07523b;
    --offer-soft: #ddf5e9;
}

.home-offer-theme-midnight {
    --offer-accent: #315591;
    --offer-dark: #1b345e;
    --offer-soft: #e2eafa;
}

.home-offer-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 23px;
}

.home-offer-icon {
    display: inline-grid;
    width: 55px;
    height: 55px;
    place-items: center;
    border-radius: 18px;
    color: var(--offer-accent);
    background: var(--offer-soft);
    font-size: 1.45rem;
}

.home-offer-badge {
    padding: 7px 11px;
    border-radius: 999px;
    color: var(--offer-dark);
    background: var(--offer-soft);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.home-offer-highlight {
    display: block;
    margin-bottom: 7px;
    color: var(--offer-accent);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-offer-card h3 {
    max-width: 320px;
    margin: 0 0 12px;
    color: #301817;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    line-height: 1.15;
}

.home-offer-card>p {
    position: relative;
    z-index: 1;
    margin: 0 0 25px;
    color: #75635e;
    line-height: 1.7;
}

.home-offer-footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: auto;
}

.home-offer-footer>a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--offer-dark);
    font-weight: 800;
    text-decoration: none;
}

.home-offer-footer>a:hover {
    color: var(--offer-accent);
}

.home-offer-code {
    padding: 8px 10px;
    border: 1px dashed var(--offer-accent);
    border-radius: 9px;
    color: var(--offer-dark);
    background: var(--offer-soft);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
}


/* =========================================================
   SPECIAL OFFERS — DEDICATED PAGE
========================================================= */

.offers-page {
    background: #fffaf3;
}

.offers-hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: radial-gradient( circle at 82% 18%, rgba(255, 210, 88, 0.28), transparent 24%), linear-gradient(125deg, #720014, #af001c 54%, #d84f27);
}

.offers-hero::before {
    position: absolute;
    inset: 0;
    background-image: linear-gradient( 45deg, rgba(255, 255, 255, 0.025) 25%, transparent 25%, transparent 75%, rgba(255, 255, 255, 0.025) 75%);
    background-size: 38px 38px;
    content: "";
    pointer-events: none;
}

.offers-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 560px;
    grid-template-columns: minmax(0, 1.1fr) minmax(330px, 0.9fr);
    align-items: center;
    gap: 60px;
    padding-block: 74px;
}

.offers-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: #4f1d00;
    background: #ffd85a;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.04em;
}

.offers-hero-copy h1 {
    max-width: 760px;
    margin: 24px 0 20px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.25rem, 7vw, 6.7rem);
    line-height: 0.9;
    letter-spacing: -0.055em;
}

.offers-hero-copy h1 span {
    display: block;
    color: #ffda58;
}

.offers-hero-copy>p {
    max-width: 660px;
    margin: 0 0 30px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 1.02rem;
    line-height: 1.75;
}

.offers-hero-button {
    color: #870018;
    background: #fff;
    box-shadow: 0 14px 32px rgba(48, 0, 8, 0.22);
}

.offers-hero-button:hover {
    color: #fff;
    background: #321416;
}

.offers-hero-art {
    position: relative;
    width: min(420px, 100%);
    aspect-ratio: 1;
    justify-self: center;
}

.offers-art-orbit,
.offers-art-main {
    position: absolute;
    border-radius: 50%;
}

.offers-art-orbit {
    inset: 8%;
    border: 1px solid rgba(255, 221, 116, 0.24);
}

.offers-art-orbit-two {
    inset: 20%;
    border-color: rgba(255, 255, 255, 0.18);
}

.offers-art-main {
    inset: 31%;
    display: grid;
    place-items: center;
    color: #8c0019;
    background: #ffda58;
    box-shadow: 0 0 0 12px rgba(255, 255, 255, 0.1), 0 28px 55px rgba(45, 0, 7, 0.3);
    font-size: 4.2rem;
}

.offers-art-note {
    position: absolute;
    padding: 10px 15px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    color: #4d1b14;
    background: #fff;
    box-shadow: 0 14px 30px rgba(55, 2, 10, 0.18);
    font-size: 0.73rem;
    font-weight: 800;
}

.offers-art-note-top {
    top: 15%;
    right: 0;
}

.offers-art-note-bottom {
    bottom: 15%;
    left: 0;
}

.offers-list-section {
    padding-block: 88px 76px;
}

.offers-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 38px;
}

.offers-section-heading h2 {
    margin: 7px 0 9px;
    color: #301817;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4.5vw, 3.5rem);
    line-height: 1.04;
}

.offers-section-heading p {
    max-width: 650px;
    margin: 0;
    color: #76645f;
}

.offers-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
}

.offer-card {
    --offer-accent: #a6001d;
    --offer-dark: #620013;
    --offer-soft: #fff0ed;
    position: relative;
    display: flex;
    min-height: 440px;
    flex-direction: column;
    overflow: hidden;
    padding: 36px;
    border: 1px solid rgba(87, 40, 32, 0.12);
    border-radius: 30px;
    background: linear-gradient( 145deg, #fff, color-mix( in srgb, var(--offer-soft) 50%, #fff));
    box-shadow: 0 21px 55px rgba(73, 38, 26, 0.1);
}

.offer-card::before {
    position: absolute;
    top: -100px;
    right: -100px;
    width: 270px;
    height: 270px;
    border: 35px solid color-mix( in srgb, var(--offer-accent) 8%, transparent);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.offer-theme-gold {
    --offer-accent: #bb7500;
    --offer-dark: #654000;
    --offer-soft: #fff3c9;
}

.offer-theme-plum {
    --offer-accent: #7b2d69;
    --offer-dark: #4b173e;
    --offer-soft: #f9e8f4;
}

.offer-theme-emerald {
    --offer-accent: #07815a;
    --offer-dark: #07513b;
    --offer-soft: #e3f7ed;
}

.offer-theme-midnight {
    --offer-accent: #315b9d;
    --offer-dark: #18345e;
    --offer-soft: #e5edfb;
}

.offer-card-top {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 27px;
}

.offer-card-icon {
    display: inline-grid;
    width: 66px;
    height: 66px;
    place-items: center;
    border-radius: 21px;
    color: var(--offer-accent);
    background: var(--offer-soft);
    font-size: 1.8rem;
}

.offer-card-badge {
    padding: 9px 13px;
    border: 1px solid color-mix( in srgb, var(--offer-accent) 16%, transparent);
    border-radius: 999px;
    color: var(--offer-dark);
    background: var(--offer-soft);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.offer-card-highlight {
    position: relative;
    z-index: 1;
    display: block;
    margin-bottom: 8px;
    color: var(--offer-accent);
    font-size: 0.83rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.offer-card h2 {
    position: relative;
    z-index: 1;
    max-width: 490px;
    margin: 0 0 14px;
    color: #2f1717;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.75rem, 3.1vw, 2.65rem);
    line-height: 1.07;
}

.offer-card>p {
    position: relative;
    z-index: 1;
    max-width: 580px;
    margin: 0 0 25px;
    color: #73615c;
    line-height: 1.75;
}

.offer-coupon {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 25px;
    padding: 13px 14px 13px 18px;
    border: 1px dashed var(--offer-accent);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.72);
}

.offer-coupon span,
.offer-coupon strong {
    display: block;
}

.offer-coupon span {
    color: #8b7670;
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.offer-coupon strong {
    margin-top: 2px;
    color: var(--offer-dark);
    font-size: 1.05rem;
    letter-spacing: 0.09em;
}

.offer-coupon button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 10px 13px;
    border: 0;
    border-radius: 11px;
    color: #fff;
    background: var(--offer-accent);
    cursor: pointer;
    font: inherit;
    font-size: 0.75rem;
    font-weight: 800;
}

.offer-card-footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: auto;
    padding-top: 22px;
    border-top: 1px solid rgba(91, 54, 46, 0.11);
}

.offer-card-footer>span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #7d6963;
    font-size: 0.77rem;
}

.offer-card-footer>a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--offer-dark);
    font-weight: 900;
    text-decoration: none;
}

.offer-card-footer>a:hover {
    color: var(--offer-accent);
}

.offers-empty-state {
    display: grid;
    min-height: 390px;
    place-items: center;
    padding: 45px;
    border: 1px dashed rgba(144, 17, 38, 0.25);
    border-radius: 30px;
    background: #fff;
    text-align: center;
}

.offers-empty-state>span {
    display: grid;
    width: 80px;
    height: 80px;
    place-items: center;
    border-radius: 25px;
    color: #a7001f;
    background: #fff0ed;
    font-size: 2rem;
}

.offers-empty-state h2 {
    margin: 20px 0 5px;
    font-family: Georgia, "Times New Roman", serif;
}

.offers-empty-state p {
    max-width: 520px;
    margin: 0 0 20px;
    color: #76645f;
}

.offers-help-section {
    padding-bottom: 88px;
}

.offers-help-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
    padding: 36px 40px;
    border-radius: 28px;
    color: #fff;
    background: #271b1a;
    box-shadow: 0 20px 50px rgba(46, 27, 24, 0.16);
}

.offers-help-icon {
    display: grid;
    width: 70px;
    height: 70px;
    place-items: center;
    border-radius: 22px;
    color: #fff;
    background: #08a35e;
    font-size: 2rem;
}

.offers-help-panel .eyebrow {
    color: #ffd358;
}

.offers-help-panel h2 {
    margin: 5px 0 5px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
}

.offers-help-panel p {
    max-width: 680px;
    margin: 0;
    color: rgba(255, 255, 255, 0.7);
}

.offers-whatsapp-button {
    white-space: nowrap;
    color: #fff;
    background: #079a59;
}

.offers-whatsapp-button:hover {
    color: #fff;
    background: #087a49;
}

@media (max-width: 980px) {
    .home-offers-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .offers-hero-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        padding-block: 70px;
        text-align: center;
    }
    .offers-hero-copy>p {
        margin-inline: auto;
    }
    .offers-hero-art {
        width: 330px;
    }
    .offers-help-panel {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .offers-whatsapp-button {
        grid-column: 1 / -1;
        justify-self: start;
        margin-left: 98px;
    }
}

@media (max-width: 720px) {
    .store-home-offers {
        padding-block: 62px;
    }
    .home-offers-heading,
    .offers-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .home-offers-grid,
    .offers-card-grid {
        grid-template-columns: 1fr;
    }
    .home-offer-card {
        min-height: 300px;
        padding: 24px;
    }
    .offers-hero-grid {
        min-height: 0;
    }
    .offers-hero-copy h1 {
        font-size: clamp(3rem, 16vw, 5.2rem);
    }
    .offers-hero-art {
        width: 270px;
    }
    .offers-art-main {
        font-size: 2.9rem;
    }
    .offers-list-section {
        padding-block: 62px;
    }
    .offer-card {
        min-height: 410px;
        padding: 26px;
    }
    .offer-card-footer {
        align-items: flex-start;
        flex-direction: column;
    }
    .offers-help-panel {
        grid-template-columns: 1fr;
        padding: 30px 24px;
        text-align: center;
    }
    .offers-help-icon,
    .offers-whatsapp-button {
        grid-column: auto;
        justify-self: center;
        margin-left: 0;
    }
}

@media (max-width: 450px) {
    .home-offer-footer {
        align-items: flex-start;
        flex-direction: column;
    }
    .offers-hero-art {
        width: 235px;
    }
    .offers-art-note {
        padding: 8px 10px;
        font-size: 0.64rem;
    }
    .offer-coupon {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ==========================================================
   WHY CHOOSE US PAGE
========================================================== */

.why-page {
    overflow: hidden;
    color: #341c19;
    background: #fffdf9;
}

.why-hero {
    position: relative;
    isolation: isolate;
    padding: 84px 0 78px;
    overflow: hidden;
    background: radial-gradient( circle at 83% 18%, rgba(255, 211, 85, 0.28), transparent 31%), linear-gradient(135deg, #fff8eb 0%, #f9e7d7 100%);
}

.why-hero::before,
.why-hero::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(150, 0, 24, 0.1);
    border-radius: 50%;
    content: "";
}

.why-hero::before {
    top: -250px;
    right: -120px;
    width: 620px;
    height: 620px;
}

.why-hero::after {
    bottom: -310px;
    left: -170px;
    width: 520px;
    height: 520px;
}

.why-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(380px, 0.9fr);
    gap: 72px;
    align-items: center;
}

.why-eyebrow,
.why-light-eyebrow {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    padding: 9px 14px;
    border-radius: 999px;
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.why-eyebrow {
    color: #8d0018;
    background: rgba(173, 0, 27, 0.08);
}

.why-hero-copy h1 {
    max-width: 780px;
    margin: 24px 0 22px;
    color: #351a18;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.45rem, 6vw, 6.3rem);
    font-weight: 700;
    line-height: 0.94;
    letter-spacing: -0.055em;
}

.why-hero-copy h1 span {
    display: block;
    color: #ad001b;
}

.why-hero-copy>p {
    max-width: 680px;
    margin: 0;
    color: #705b56;
    font-size: 1.08rem;
    line-height: 1.8;
}

.why-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 31px;
}

.why-primary-button,
.why-secondary-button {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 13px 22px;
    border-radius: 12px;
    font-weight: 800;
    text-decoration: none;
}

.why-primary-button {
    color: #fff;
    border: 1px solid #ad001b;
    background: linear-gradient(135deg, #bd001e, #760014);
    box-shadow: 0 14px 28px rgba(128, 0, 21, 0.18);
}

.why-primary-button:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(128, 0, 21, 0.25);
}

.why-secondary-button {
    color: #6d0012;
    border: 1px solid rgba(136, 0, 22, 0.18);
    background: rgba(255, 255, 255, 0.72);
}

.why-secondary-button:hover {
    color: #ad001b;
    border-color: rgba(173, 0, 27, 0.35);
    background: #fff;
}

.why-hero-assurance {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 22px;
    margin-top: 26px;
    color: #695550;
    font-size: 0.83rem;
    font-weight: 700;
}

.why-hero-assurance span {
    display: inline-flex;
    gap: 7px;
    align-items: center;
}

.why-hero-assurance i {
    color: #ad001b;
}

.why-hero-visual {
    position: relative;
    display: grid;
    width: min(100%, 510px);
    aspect-ratio: 1;
    place-items: center;
    justify-self: end;
}

.why-visual-ring {
    position: absolute;
    border: 1px solid rgba(173, 0, 27, 0.14);
    border-radius: 50%;
}

.why-visual-ring-one {
    width: 100%;
    height: 100%;
}

.why-visual-ring-two {
    width: 76%;
    height: 76%;
}

.why-quality-seal {
    position: relative;
    display: flex;
    width: 62%;
    height: 62%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 35px;
    overflow: hidden;
    color: #fff;
    border: 10px solid #f8d9c6;
    border-radius: 50%;
    text-align: center;
    background: radial-gradient( circle at 37% 24%, rgba(255, 255, 255, 0.17), transparent 24%), linear-gradient(145deg, #bf001e, #710012);
    box-shadow: 0 28px 60px rgba(126, 0, 20, 0.24), 0 0 0 12px rgba(255, 255, 255, 0.72);
}

.why-quality-seal::after {
    position: absolute;
    inset: 12px;
    border: 1px dashed rgba(255, 220, 109, 0.52);
    border-radius: 50%;
    content: "";
}

.why-seal-icon {
    display: grid;
    width: 62px;
    height: 62px;
    margin-bottom: 14px;
    color: #ffd955;
    border-radius: 50%;
    place-items: center;
    background: rgba(255, 255, 255, 0.11);
    font-size: 1.75rem;
}

.why-quality-seal strong {
    position: relative;
    z-index: 1;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 2.2vw, 1.85rem);
    line-height: 1.1;
}

.why-quality-seal strong em {
    display: block;
    color: #ffdc5b;
    font-style: normal;
}

.why-quality-seal small {
    position: relative;
    z-index: 1;
    margin-top: 10px;
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.why-floating-note {
    position: absolute;
    display: inline-flex;
    gap: 8px;
    align-items: center;
    padding: 11px 14px;
    color: #571811;
    border: 1px solid rgba(152, 0, 24, 0.1);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 15px 35px rgba(89, 42, 31, 0.12);
    backdrop-filter: blur(8px);
    font-size: 0.76rem;
    font-weight: 800;
}

.why-floating-note i {
    color: #ad001b;
}

.why-note-top {
    top: 16%;
    right: -2%;
}

.why-note-bottom {
    bottom: 13%;
    left: -4%;
}

.why-trust-strip {
    border-top: 1px solid #f1e3d9;
    border-bottom: 1px solid #f1e3d9;
    background: #fff;
}

.why-trust-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.why-trust-grid article {
    display: flex;
    gap: 13px;
    align-items: center;
    min-height: 112px;
    padding: 24px;
    border-right: 1px solid #f1e3d9;
}

.why-trust-grid article:first-child {
    border-left: 1px solid #f1e3d9;
}

.why-trust-grid article>span {
    display: grid;
    width: 45px;
    height: 45px;
    flex: 0 0 45px;
    color: #ad001b;
    border-radius: 50%;
    place-items: center;
    background: #fff1e8;
    font-size: 1.05rem;
}

.why-trust-grid strong,
.why-trust-grid small {
    display: block;
}

.why-trust-grid strong {
    color: #3a211e;
    font-size: 0.91rem;
}

.why-trust-grid small {
    margin-top: 4px;
    color: #87716b;
    font-size: 0.72rem;
    line-height: 1.45;
}

.why-reasons-section {
    padding: 100px 0;
    background: linear-gradient( 180deg, #fffdf9, #fff8ed);
}

.why-section-heading {
    max-width: 850px;
    margin: 0 auto 47px;
    text-align: center;
}

.why-section-heading h2,
.why-experience-copy h2,
.why-promise-copy h2,
.why-final-inner h2 {
    font-family: Georgia, "Times New Roman", serif;
}

.why-section-heading h2 {
    margin: 14px 0 15px;
    color: #351b18;
    font-size: clamp(2.25rem, 4.4vw, 4.25rem);
    line-height: 1.03;
    letter-spacing: -0.04em;
}

.why-section-heading h2 span {
    display: block;
    color: #ad001b;
}

.why-section-heading p {
    max-width: 640px;
    margin: 0 auto;
    color: #7c6660;
    line-height: 1.75;
}

.why-reasons-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.why-reason-card {
    position: relative;
    min-height: 310px;
    padding: 32px;
    overflow: hidden;
    border: 1px solid #f0ddd0;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.84);
    box-shadow: 0 14px 36px rgba(80, 42, 31, 0.055);
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.why-reason-card:hover {
    border-color: rgba(173, 0, 27, 0.22);
    transform: translateY(-5px);
    box-shadow: 0 22px 42px rgba(80, 42, 31, 0.1);
}

.why-reason-featured {
    color: #fff;
    border-color: #8f0017;
    background: radial-gradient( circle at 100% 0, rgba(255, 219, 88, 0.2), transparent 42%), linear-gradient(145deg, #ae001b, #6d0012);
}

.why-reason-number {
    position: absolute;
    top: 25px;
    right: 27px;
    color: rgba(173, 0, 27, 0.12);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1;
}

.why-reason-featured .why-reason-number {
    color: rgba(255, 255, 255, 0.12);
}

.why-reason-icon {
    display: grid;
    width: 57px;
    height: 57px;
    margin-bottom: 41px;
    color: #ad001b;
    border-radius: 17px;
    place-items: center;
    background: #fff0e7;
    font-size: 1.3rem;
}

.why-reason-featured .why-reason-icon {
    color: #ffdc5b;
    background: rgba(255, 255, 255, 0.12);
}

.why-reason-card h3 {
    position: relative;
    margin: 0 0 12px;
    color: #3c211e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.28rem;
    line-height: 1.2;
}

.why-reason-card p {
    position: relative;
    margin: 0;
    color: #806a64;
    font-size: 0.9rem;
    line-height: 1.72;
}

.why-reason-featured h3 {
    color: #fff;
}

.why-reason-featured p {
    color: rgba(255, 255, 255, 0.76);
}

.why-experience-section {
    padding: 100px 0;
    background: #fff;
}

.why-experience-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    gap: 85px;
    align-items: center;
}

.why-experience-copy {
    position: sticky;
    top: 130px;
}

.why-experience-copy h2 {
    margin: 17px 0;
    color: #351b18;
    font-size: clamp(2.35rem, 4vw, 4rem);
    line-height: 1.03;
    letter-spacing: -0.04em;
}

.why-experience-copy p {
    margin: 0 0 25px;
    color: #7b6660;
    line-height: 1.8;
}

.why-text-link {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    color: #a6001b;
    font-weight: 800;
    text-decoration: none;
}

.why-text-link:hover {
    gap: 14px;
    color: #740013;
}

.why-journey {
    position: relative;
    display: grid;
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.why-journey::before {
    position: absolute;
    top: 45px;
    bottom: 45px;
    left: 37px;
    width: 1px;
    background: linear-gradient(#ad001b, #e5c3a4);
    content: "";
}

.why-journey li {
    position: relative;
    display: grid;
    grid-template-columns: 74px 1fr;
    gap: 21px;
    align-items: center;
    min-height: 122px;
    padding: 24px 28px 24px 0;
    border: 1px solid #f0e0d6;
    border-radius: 20px;
    background: #fffaf5;
}

.why-journey li>span {
    z-index: 1;
    display: grid;
    width: 46px;
    height: 46px;
    justify-self: center;
    color: #fff;
    border: 5px solid #fffaf5;
    border-radius: 50%;
    place-items: center;
    background: #ad001b;
    box-shadow: 0 0 0 1px rgba(173, 0, 27, 0.14);
    font-weight: 800;
}

.why-journey strong {
    display: block;
    color: #3b211e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
}

.why-journey p {
    margin: 7px 0 0;
    color: #836d67;
    font-size: 0.86rem;
    line-height: 1.65;
}

.why-promise-section {
    padding: 0 0 100px;
    background: #fff;
}

.why-promise-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.88fr);
    gap: 60px;
    align-items: center;
    padding: 65px;
    color: #fff;
    border-radius: 28px;
    background: radial-gradient( circle at 88% 22%, rgba(255, 217, 82, 0.18), transparent 28%), linear-gradient(135deg, #8f0017, #4e000d);
    box-shadow: 0 27px 60px rgba(95, 0, 16, 0.22);
}

.why-light-eyebrow {
    color: #4f190f;
    background: #ffdc5b;
}

.why-promise-copy h2 {
    max-width: 760px;
    margin: 20px 0 17px;
    color: #fff;
    font-size: clamp(2.4rem, 4.2vw, 4.25rem);
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.why-promise-copy>p {
    max-width: 650px;
    margin: 0;
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.75;
}

.why-promise-copy ul {
    display: grid;
    gap: 11px;
    margin: 25px 0 0;
    padding: 0;
    list-style: none;
}

.why-promise-copy li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: rgba(255, 255, 255, 0.91);
    font-size: 0.9rem;
}

.why-promise-copy li i {
    color: #ffdc5b;
    font-size: 1.05rem;
}

.why-location-card {
    display: flex;
    flex-direction: column;
    padding: 34px;
    color: #3d211d;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 22px;
    background: #fff9ef;
    box-shadow: 0 18px 40px rgba(28, 0, 5, 0.18);
    font-style: normal;
}

.why-location-icon {
    display: grid;
    width: 50px;
    height: 50px;
    margin-bottom: 22px;
    color: #ad001b;
    border-radius: 15px;
    place-items: center;
    background: #ffe7dc;
    font-size: 1.25rem;
}

.why-location-card small {
    color: #a6001b;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.why-location-card strong {
    margin-top: 7px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.42rem;
}

.why-location-card p {
    margin: 12px 0 18px;
    color: #735f59;
    font-size: 0.83rem;
    line-height: 1.65;
}

.why-location-card a {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    margin-top: 9px;
    color: #5d2d27;
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
}

.why-location-card a:hover {
    color: #ad001b;
}

.why-final-cta {
    padding: 65px 0;
    border-top: 1px solid #f0ded2;
    background: #fff7eb;
}

.why-final-inner {
    display: flex;
    gap: 35px;
    align-items: center;
    justify-content: space-between;
}

.why-final-inner h2 {
    margin: 11px 0 0;
    color: #361c19;
    font-size: clamp(2rem, 3.5vw, 3.25rem);
    line-height: 1;
    letter-spacing: -0.035em;
}

@media (max-width: 1080px) {
    .why-hero-grid {
        grid-template-columns: minmax(0, 1fr) 390px;
        gap: 35px;
    }
    .why-trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .why-trust-grid article:nth-child(3) {
        border-left: 1px solid #f1e3d9;
    }
    .why-trust-grid article:nth-child(-n + 2) {
        border-bottom: 1px solid #f1e3d9;
    }
    .why-reasons-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .why-hero {
        padding: 68px 0 72px;
    }
    .why-hero-grid,
    .why-experience-grid,
    .why-promise-panel {
        grid-template-columns: 1fr;
    }
    .why-hero-copy {
        text-align: center;
    }
    .why-hero-copy>p {
        margin-inline: auto;
    }
    .why-hero-actions,
    .why-hero-assurance {
        justify-content: center;
    }
    .why-hero-visual {
        width: min(100%, 430px);
        margin-top: 12px;
        justify-self: center;
    }
    .why-experience-grid {
        gap: 40px;
    }
    .why-experience-copy {
        position: static;
        text-align: center;
    }
    .why-promise-panel {
        gap: 38px;
        padding: 48px;
    }
    .why-location-card {
        max-width: 560px;
    }
}

@media (max-width: 620px) {
    .why-hero-copy h1 {
        font-size: clamp(3rem, 15vw, 4.5rem);
    }
    .why-hero-actions {
        display: grid;
    }
    .why-hero-actions .button {
        width: 100%;
    }
    .why-hero-assurance {
        display: grid;
        justify-content: start;
        width: fit-content;
        margin-inline: auto;
        text-align: left;
    }
    .why-hero-visual {
        width: min(100%, 340px);
    }
    .why-quality-seal {
        width: 66%;
        height: 66%;
        padding: 22px;
        border-width: 7px;
    }
    .why-seal-icon {
        width: 49px;
        height: 49px;
        font-size: 1.35rem;
    }
    .why-floating-note {
        padding: 9px 11px;
        font-size: 0.66rem;
    }
    .why-note-top {
        right: -4%;
    }
    .why-note-bottom {
        left: -4%;
    }
    .why-trust-grid,
    .why-reasons-grid {
        grid-template-columns: 1fr;
    }
    .why-trust-grid article,
    .why-trust-grid article:first-child,
    .why-trust-grid article:nth-child(3) {
        border-right: 1px solid #f1e3d9;
        border-bottom: 1px solid #f1e3d9;
        border-left: 1px solid #f1e3d9;
    }
    .why-trust-grid article:last-child {
        border-bottom: 0;
    }
    .why-reasons-section,
    .why-experience-section {
        padding: 74px 0;
    }
    .why-reason-card {
        min-height: 0;
    }
    .why-reason-icon {
        margin-bottom: 30px;
    }
    .why-journey li {
        grid-template-columns: 62px 1fr;
        gap: 12px;
        padding-right: 18px;
    }
    .why-journey::before {
        left: 31px;
    }
    .why-promise-section {
        padding-bottom: 72px;
    }
    .why-promise-panel {
        padding: 36px 24px;
        border-radius: 22px;
    }
    .why-location-card {
        padding: 27px 23px;
    }
    .why-final-inner {
        align-items: flex-start;
        flex-direction: column;
    }
    .why-final-inner .button {
        width: 100%;
    }
}

@media (max-width: 390px) {
    .why-hero-visual {
        width: 290px;
    }
    .why-floating-note {
        display: none;
    }
    .why-quality-seal {
        width: 72%;
        height: 72%;
    }
}


/* ==========================================================
   CONTACT US PAGE
========================================================== */

.contact-page {
    overflow: hidden;
    color: #371e1a;
    background: #fffdf9;
}

.contact-hero {
    position: relative;
    isolation: isolate;
    padding: 84px 0 80px;
    overflow: hidden;
    background: radial-gradient( circle at 82% 24%, rgba(255, 209, 71, 0.29), transparent 28%), linear-gradient(135deg, #fff8eb 0%, #f8e5d7 100%);
}

.contact-hero::before,
.contact-hero::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(166, 0, 27, 0.1);
    border-radius: 50%;
    content: "";
}

.contact-hero::before {
    top: -240px;
    right: -95px;
    width: 610px;
    height: 610px;
}

.contact-hero::after {
    bottom: -330px;
    left: -190px;
    width: 540px;
    height: 540px;
}

.contact-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(390px, 0.9fr);
    gap: 70px;
    align-items: center;
}

.contact-eyebrow,
.contact-light-eyebrow {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    padding: 9px 14px;
    border-radius: 999px;
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.contact-eyebrow {
    color: #900018;
    background: rgba(173, 0, 27, 0.08);
}

.contact-hero-copy h1 {
    max-width: 760px;
    margin: 24px 0 22px;
    color: #341a17;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.4rem, 6vw, 6.25rem);
    font-weight: 700;
    line-height: 0.94;
    letter-spacing: -0.055em;
}

.contact-hero-copy h1 span {
    display: block;
    color: #ad001b;
}

.contact-hero-copy>p {
    max-width: 670px;
    margin: 0;
    color: #715b55;
    font-size: 1.08rem;
    line-height: 1.8;
}

.contact-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 31px;
}

.contact-primary-button,
.contact-whatsapp-button,
.contact-light-button,
.contact-outline-light-button {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 13px 22px;
    border-radius: 12px;
    font-weight: 800;
    text-decoration: none;
}

.contact-primary-button {
    color: #fff;
    border: 1px solid #ad001b;
    background: linear-gradient(135deg, #bd001e, #760014);
    box-shadow: 0 14px 28px rgba(128, 0, 21, 0.18);
}

.contact-primary-button:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(128, 0, 21, 0.25);
}

.contact-whatsapp-button {
    color: #08763d;
    border: 1px solid rgba(8, 118, 61, 0.19);
    background: rgba(255, 255, 255, 0.78);
}

.contact-whatsapp-button:hover {
    color: #056432;
    border-color: rgba(8, 118, 61, 0.36);
    background: #fff;
}

.contact-hero-art {
    position: relative;
    display: grid;
    width: min(100%, 500px);
    aspect-ratio: 1;
    place-items: center;
    justify-self: end;
}

.contact-art-orbit {
    position: absolute;
    border: 1px solid rgba(173, 0, 27, 0.14);
    border-radius: 50%;
}

.contact-orbit-one {
    width: 100%;
    height: 100%;
}

.contact-orbit-two {
    width: 76%;
    height: 76%;
}

.contact-art-card {
    position: relative;
    display: flex;
    width: 64%;
    height: 64%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 34px;
    overflow: hidden;
    color: #fff;
    border: 9px solid #f4d1be;
    border-radius: 50%;
    text-align: center;
    background: radial-gradient( circle at 35% 25%, rgba(255, 255, 255, 0.16), transparent 25%), linear-gradient(145deg, #b9001d, #650010);
    box-shadow: 0 28px 60px rgba(126, 0, 20, 0.24), 0 0 0 12px rgba(255, 255, 255, 0.7);
}

.contact-art-card::after {
    position: absolute;
    inset: 12px;
    border: 1px dashed rgba(255, 222, 98, 0.51);
    border-radius: 50%;
    content: "";
}

.contact-art-icon {
    position: relative;
    z-index: 1;
    display: grid;
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
    color: #ffdc5b;
    border-radius: 50%;
    place-items: center;
    background: rgba(255, 255, 255, 0.11);
    font-size: 1.75rem;
}

.contact-art-card small,
.contact-art-card strong,
.contact-art-card>span:last-child {
    position: relative;
    z-index: 1;
}

.contact-art-card small {
    color: #ffdc5b;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.contact-art-card strong {
    margin-top: 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.35rem, 2.3vw, 1.9rem);
    line-height: 1.05;
}

.contact-art-card>span:last-child {
    margin-top: 9px;
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.78rem;
}

.contact-art-badge {
    position: absolute;
    display: inline-flex;
    gap: 8px;
    align-items: center;
    padding: 11px 14px;
    color: #581912;
    border: 1px solid rgba(152, 0, 24, 0.1);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.91);
    box-shadow: 0 15px 35px rgba(89, 42, 31, 0.12);
    backdrop-filter: blur(8px);
    font-size: 0.76rem;
    font-weight: 800;
}

.contact-art-badge i {
    color: #ad001b;
}

.contact-badge-hours {
    top: 15%;
    right: -2%;
}

.contact-badge-delivery {
    bottom: 14%;
    left: -4%;
}

.contact-methods-section {
    position: relative;
    z-index: 2;
    margin-top: -31px;
}

.contact-methods-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.contact-method-card {
    display: flex;
    min-height: 205px;
    flex-direction: column;
    padding: 27px;
    color: #3c211e;
    border: 1px solid #efddd2;
    border-radius: 19px;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 17px 38px rgba(79, 39, 29, 0.08);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.contact-method-card:hover {
    color: #3c211e;
    border-color: rgba(173, 0, 27, 0.24);
    transform: translateY(-5px);
    box-shadow: 0 23px 45px rgba(79, 39, 29, 0.12);
}

.contact-method-card>span {
    display: grid;
    width: 50px;
    height: 50px;
    margin-bottom: 24px;
    color: #ad001b;
    border-radius: 15px;
    place-items: center;
    background: #fff0e8;
    font-size: 1.2rem;
}

.contact-method-card small {
    color: #957b73;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.contact-method-card strong {
    margin-top: 7px;
    overflow-wrap: anywhere;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1rem;
}

.contact-method-card em {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: auto;
    padding-top: 18px;
    color: #a8001b;
    font-size: 0.74rem;
    font-style: normal;
    font-weight: 800;
}

.contact-location-section {
    padding: 105px 0 100px;
    background: linear-gradient( 180deg, #fffdf9, #fff8ee);
}

.contact-section-heading {
    max-width: 820px;
    margin: 0 auto 47px;
    text-align: center;
}

.contact-section-heading h2,
.contact-final-panel h2 {
    font-family: Georgia, "Times New Roman", serif;
}

.contact-section-heading h2 {
    margin: 14px 0 15px;
    color: #351b18;
    font-size: clamp(2.3rem, 4.4vw, 4.25rem);
    line-height: 1.03;
    letter-spacing: -0.04em;
}

.contact-section-heading h2 span {
    display: block;
    color: #ad001b;
}

.contact-section-heading>p {
    max-width: 670px;
    margin: 0 auto;
    color: #7b6660;
    line-height: 1.75;
}

.contact-location-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.23fr) minmax(350px, 0.77fr);
    gap: 22px;
    align-items: stretch;
}

.contact-map-card,
.contact-shop-card {
    overflow: hidden;
    border: 1px solid #ead9ce;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(74, 35, 25, 0.08);
}

.contact-map-card {
    position: relative;
    min-height: 610px;
}

.contact-map-card iframe {
    width: 100%;
    height: 100%;
    min-height: 610px;
    border: 0;
    filter: saturate(0.78) contrast(1.03);
}

.contact-map-button {
    position: absolute;
    right: 24px;
    bottom: 24px;
    display: inline-flex;
    gap: 9px;
    align-items: center;
    padding: 13px 17px;
    color: #fff;
    border-radius: 12px;
    text-decoration: none;
    background: #960019;
    box-shadow: 0 13px 28px rgba(78, 0, 13, 0.25);
    font-size: 0.78rem;
    font-weight: 800;
}

.contact-map-button:hover {
    color: #fff;
    background: #700012;
    transform: translateY(-2px);
}

.contact-shop-card {
    padding: 34px;
}

.contact-shop-heading {
    display: flex;
    gap: 16px;
    align-items: center;
    padding-bottom: 25px;
    border-bottom: 1px solid #efdfd5;
}

.contact-shop-heading>span {
    display: grid;
    width: 55px;
    height: 55px;
    flex: 0 0 55px;
    color: #ad001b;
    border-radius: 17px;
    place-items: center;
    background: #fff0e7;
    font-size: 1.35rem;
}

.contact-shop-heading small {
    color: #a1001a;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.contact-shop-heading h3 {
    margin: 4px 0 0;
    color: #3a201d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
}

.contact-detail-row {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 13px;
    padding: 23px 0;
    border-bottom: 1px solid #f0e1d7;
}

.contact-detail-row>i {
    margin-top: 3px;
    color: #ad001b;
}

.contact-detail-row small,
.contact-detail-row strong {
    display: block;
}

.contact-detail-row small {
    margin-bottom: 7px;
    color: #9a827b;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.contact-detail-row strong {
    color: #432722;
    font-size: 0.87rem;
}

.contact-detail-row address,
.contact-detail-row p {
    margin: 0;
    color: #725e58;
    font-size: 0.82rem;
    font-style: normal;
    line-height: 1.68;
}

.contact-detail-row p {
    margin-top: 5px;
}

.contact-business-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 70px;
    gap: 15px;
    padding-top: 23px;
}

.contact-business-meta span {
    min-width: 0;
}

.contact-business-meta small,
.contact-business-meta strong {
    display: block;
}

.contact-business-meta small {
    color: #9a827b;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.contact-business-meta strong {
    margin-top: 6px;
    overflow-wrap: anywhere;
    color: #432722;
    font-size: 0.78rem;
}

.contact-help-section {
    padding: 100px 0;
    background: #fff;
}

.contact-help-heading {
    margin-bottom: 42px;
}

.contact-help-heading h2 {
    color: #351b18;
}

.contact-help-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 17px;
}

.contact-help-grid article {
    position: relative;
    min-height: 260px;
    padding: 29px;
    overflow: hidden;
    border: 1px solid #efddd2;
    border-radius: 20px;
    background: #fffaf5;
}

.contact-help-grid article::after {
    position: absolute;
    right: -54px;
    bottom: -54px;
    width: 125px;
    height: 125px;
    border: 1px solid rgba(173, 0, 27, 0.08);
    border-radius: 50%;
    content: "";
}

.contact-help-grid article>span {
    display: grid;
    width: 53px;
    height: 53px;
    margin-bottom: 40px;
    color: #ad001b;
    border-radius: 16px;
    place-items: center;
    background: #ffe9df;
    font-size: 1.22rem;
}

.contact-help-grid h3 {
    position: relative;
    margin: 0 0 11px;
    color: #3e221e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.17rem;
}

.contact-help-grid p {
    position: relative;
    margin: 0;
    color: #7b6660;
    font-size: 0.85rem;
    line-height: 1.7;
}

.contact-final-section {
    padding: 0 0 100px;
    background: #fff;
}

.contact-final-panel {
    display: flex;
    gap: 55px;
    align-items: center;
    justify-content: space-between;
    padding: 57px 62px;
    color: #fff;
    border-radius: 27px;
    background: radial-gradient( circle at 87% 10%, rgba(255, 218, 83, 0.2), transparent 30%), linear-gradient(135deg, #970018, #56000e);
    box-shadow: 0 26px 58px rgba(90, 0, 15, 0.2);
}

.contact-light-eyebrow {
    color: #4f190f;
    background: #ffdc5b;
}

.contact-final-panel h2 {
    max-width: 700px;
    margin: 18px 0 14px;
    color: #fff;
    font-size: clamp(2.3rem, 4vw, 4rem);
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.contact-final-panel p {
    max-width: 670px;
    margin: 0;
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.7;
}

.contact-final-actions {
    display: grid;
    gap: 11px;
    min-width: 235px;
}

.contact-light-button {
    color: #860016;
    border: 1px solid #fff;
    background: #fff;
}

.contact-light-button:hover {
    color: #650010;
    background: #fff3e7;
}

.contact-outline-light-button {
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.34);
    background: rgba(255, 255, 255, 0.08);
}

.contact-outline-light-button:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.62);
    background: rgba(255, 255, 255, 0.14);
}

@media (max-width: 1080px) {
    .contact-hero-grid {
        grid-template-columns: minmax(0, 1fr) 390px;
        gap: 35px;
    }
    .contact-methods-grid,
    .contact-help-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .contact-location-grid {
        grid-template-columns: minmax(0, 1.05fr) minmax(330px, 0.95fr);
    }
}

@media (max-width: 820px) {
    .contact-hero {
        padding: 68px 0 75px;
    }
    .contact-hero-grid,
    .contact-location-grid {
        grid-template-columns: 1fr;
    }
    .contact-hero-copy {
        text-align: center;
    }
    .contact-hero-copy>p {
        margin-inline: auto;
    }
    .contact-hero-actions {
        justify-content: center;
    }
    .contact-hero-art {
        width: min(100%, 430px);
        justify-self: center;
    }
    .contact-location-grid {
        gap: 18px;
    }
    .contact-map-card,
    .contact-map-card iframe {
        min-height: 470px;
    }
    .contact-final-panel {
        align-items: flex-start;
        flex-direction: column;
        padding: 48px;
    }
    .contact-final-actions {
        display: flex;
        flex-wrap: wrap;
        min-width: 0;
    }
}

@media (max-width: 620px) {
    .contact-hero-copy h1 {
        font-size: clamp(3rem, 15vw, 4.5rem);
    }
    .contact-hero-actions {
        display: grid;
    }
    .contact-hero-actions .button {
        width: 100%;
    }
    .contact-hero-art {
        width: min(100%, 340px);
    }
    .contact-art-card {
        width: 67%;
        height: 67%;
        padding: 22px;
        border-width: 7px;
    }
    .contact-art-icon {
        width: 50px;
        height: 50px;
        font-size: 1.35rem;
    }
    .contact-art-badge {
        padding: 9px 11px;
        font-size: 0.66rem;
    }
    .contact-methods-section {
        margin-top: -18px;
    }
    .contact-methods-grid,
    .contact-help-grid {
        grid-template-columns: 1fr;
    }
    .contact-method-card {
        min-height: 188px;
    }
    .contact-location-section,
    .contact-help-section {
        padding: 75px 0;
    }
    .contact-map-card,
    .contact-map-card iframe {
        min-height: 390px;
    }
    .contact-map-button {
        right: 14px;
        bottom: 14px;
        left: 14px;
        justify-content: center;
        text-align: center;
    }
    .contact-shop-card {
        padding: 27px 23px;
    }
    .contact-business-meta {
        grid-template-columns: 1fr;
    }
    .contact-help-grid article {
        min-height: 0;
    }
    .contact-help-grid article>span {
        margin-bottom: 29px;
    }
    .contact-final-section {
        padding-bottom: 72px;
    }
    .contact-final-panel {
        padding: 37px 24px;
        border-radius: 22px;
    }
    .contact-final-actions {
        display: grid;
        width: 100%;
    }
    .contact-final-actions .button {
        width: 100%;
    }
}

@media (max-width: 390px) {
    .contact-hero-art {
        width: 290px;
    }
    .contact-art-badge {
        display: none;
    }
    .contact-art-card {
        width: 73%;
        height: 73%;
    }
}


/* ==========================================================
   FOOTER LEGAL LINKS
========================================================== */

.store-footer-legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 15px;
    align-items: center;
    justify-content: center;
}

.store-footer-legal-links a {
    color: #aaa3a4;
    font-size: 0.68rem;
    text-decoration: none;
}

.store-footer-legal-links a:hover {
    color: #ffda57;
}


/* ==========================================================
   ABOUT US PAGE
========================================================== */

.about-page {
    overflow: hidden;
    color: #361d19;
    background: #fffdf9;
}

.about-hero {
    position: relative;
    isolation: isolate;
    padding: 86px 0 82px;
    overflow: hidden;
    background: radial-gradient( circle at 84% 18%, rgba(255, 209, 70, 0.3), transparent 29%), linear-gradient(135deg, #fff8ea, #f8e4d6);
}

.about-hero::before {
    position: absolute;
    z-index: -1;
    top: -280px;
    right: -120px;
    width: 660px;
    height: 660px;
    border: 1px solid rgba(169, 0, 27, 0.11);
    border-radius: 50%;
    content: "";
}

.about-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, 0.92fr);
    gap: 68px;
    align-items: center;
}

.about-eyebrow,
.about-light-eyebrow {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    padding: 9px 14px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.about-eyebrow {
    color: #900018;
    background: rgba(173, 0, 27, 0.08);
}

.about-hero-copy h1 {
    max-width: 760px;
    margin: 24px 0 22px;
    color: #341a17;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.4rem, 6vw, 6.25rem);
    font-weight: 700;
    line-height: 0.94;
    letter-spacing: -0.055em;
}

.about-hero-copy h1 span {
    display: block;
    color: #ad001b;
}

.about-hero-copy>p {
    max-width: 660px;
    margin: 0;
    color: #715b55;
    font-size: 1.08rem;
    line-height: 1.8;
}

.about-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 31px;
}

.about-primary-button,
.about-secondary-button {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 13px 22px;
    border-radius: 12px;
    font-weight: 800;
    text-decoration: none;
}

.about-primary-button {
    color: #fff;
    border: 1px solid #ad001b;
    background: linear-gradient(135deg, #bd001e, #760014);
    box-shadow: 0 14px 28px rgba(128, 0, 21, 0.18);
}

.about-primary-button:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(128, 0, 21, 0.25);
}

.about-secondary-button {
    color: #750013;
    border: 1px solid rgba(142, 0, 23, 0.19);
    background: rgba(255, 255, 255, 0.78);
}

.about-secondary-button:hover {
    color: #ad001b;
    background: #fff;
}

.about-hero-visual {
    position: relative;
    display: grid;
    width: min(100%, 500px);
    aspect-ratio: 1;
    place-items: center;
    justify-self: end;
}

.about-hero-visual::before,
.about-hero-visual::after {
    position: absolute;
    border: 1px solid rgba(173, 0, 27, 0.14);
    border-radius: 50%;
    content: "";
}

.about-hero-visual::before {
    width: 100%;
    height: 100%;
}

.about-hero-visual::after {
    width: 76%;
    height: 76%;
}

.about-visual-frame {
    position: relative;
    z-index: 1;
    display: flex;
    width: 65%;
    height: 65%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px;
    overflow: hidden;
    color: #fff;
    border: 9px solid #f3d1be;
    border-radius: 50%;
    text-align: center;
    background: radial-gradient( circle at 35% 24%, rgba(255, 255, 255, 0.17), transparent 26%), linear-gradient(145deg, #b9001d, #670011);
    box-shadow: 0 28px 60px rgba(126, 0, 20, 0.24), 0 0 0 12px rgba(255, 255, 255, 0.7);
}

.about-visual-frame::after {
    position: absolute;
    inset: 12px;
    border: 1px dashed rgba(255, 222, 98, 0.5);
    border-radius: 50%;
    content: "";
}

.about-visual-icon {
    position: relative;
    z-index: 1;
    display: grid;
    width: 62px;
    height: 62px;
    margin-bottom: 16px;
    color: #ffdc5b;
    border-radius: 50%;
    place-items: center;
    background: rgba(255, 255, 255, 0.11);
    font-size: 1.65rem;
}

.about-visual-frame small,
.about-visual-frame strong {
    position: relative;
    z-index: 1;
}

.about-visual-frame small {
    color: #ffdc5b;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.about-visual-frame strong {
    max-width: 240px;
    margin-top: 9px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 2.2vw, 1.8rem);
    line-height: 1.08;
}

.about-visual-frame strong em {
    display: block;
    color: #ffdc5b;
    font-style: normal;
}

.about-floating-chip {
    position: absolute;
    z-index: 2;
    display: inline-flex;
    gap: 8px;
    align-items: center;
    padding: 11px 14px;
    color: #581912;
    border: 1px solid rgba(152, 0, 24, 0.1);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.91);
    box-shadow: 0 15px 35px rgba(89, 42, 31, 0.12);
    font-size: 0.75rem;
    font-weight: 800;
}

.about-floating-chip i {
    color: #ad001b;
}

.about-chip-one {
    top: 15%;
    right: -2%;
}

.about-chip-two {
    bottom: 14%;
    left: -4%;
}

.about-intro-section {
    padding: 95px 0;
    background: #fff;
}

.about-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 90px;
    align-items: start;
}

.about-intro-heading h2,
.about-section-heading h2,
.about-values-copy h2,
.about-visit-panel h2 {
    font-family: Georgia, "Times New Roman", serif;
}

.about-intro-heading h2 {
    margin: 16px 0 0;
    color: #351b18;
    font-size: clamp(2.4rem, 4.2vw, 4.1rem);
    line-height: 1.04;
    letter-spacing: -0.04em;
}

.about-intro-copy {
    display: grid;
    gap: 18px;
    padding-left: 34px;
    border-left: 2px solid #efd4c2;
}

.about-intro-copy p {
    margin: 0;
    color: #735e58;
    font-size: 1rem;
    line-height: 1.86;
}

.about-collection-section {
    padding: 96px 0 100px;
    background: #fff8ee;
}

.about-section-heading {
    max-width: 780px;
    margin: 0 auto 44px;
    text-align: center;
}

.about-section-heading h2 {
    margin: 14px 0;
    color: #351b18;
    font-size: clamp(2.3rem, 4.2vw, 4rem);
    line-height: 1.04;
    letter-spacing: -0.04em;
}

.about-section-heading p {
    max-width: 620px;
    margin: 0 auto;
    color: #7c6660;
    line-height: 1.75;
}

.about-collection-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 17px;
}

.about-collection-grid a {
    display: flex;
    min-height: 245px;
    flex-direction: column;
    align-items: flex-start;
    padding: 30px;
    color: #3d211e;
    border: 1px solid #efddd2;
    border-radius: 21px;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 13px 34px rgba(79, 39, 29, 0.055);
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.about-collection-grid a:hover {
    color: #3d211e;
    border-color: rgba(173, 0, 27, 0.25);
    transform: translateY(-5px);
    box-shadow: 0 21px 42px rgba(79, 39, 29, 0.1);
}

.about-collection-grid a>span {
    display: grid;
    width: 55px;
    height: 55px;
    margin-bottom: auto;
    color: #ad001b;
    border-radius: 17px;
    place-items: center;
    background: #ffe9df;
    font-size: 1.25rem;
}

.about-collection-grid strong {
    margin-top: 35px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
}

.about-collection-grid small {
    margin-top: 8px;
    color: #826d67;
    font-size: 0.78rem;
    line-height: 1.55;
}

.about-values-section {
    padding: 100px 0;
    color: #fff;
    background: radial-gradient( circle at 15% 15%, rgba(255, 218, 83, 0.15), transparent 25%), linear-gradient(135deg, #930017, #50000d);
}

.about-values-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: 80px;
    align-items: center;
}

.about-light-eyebrow {
    color: #4f190f;
    background: #ffdc5b;
}

.about-values-copy h2 {
    margin: 19px 0 17px;
    color: #fff;
    font-size: clamp(2.5rem, 4.5vw, 4.35rem);
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.about-values-copy>p {
    margin: 0 0 25px;
    color: rgba(255, 255, 255, 0.74);
    line-height: 1.75;
}

.about-light-link {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    color: #ffdc5b;
    font-weight: 800;
    text-decoration: none;
}

.about-light-link:hover {
    gap: 14px;
    color: #fff;
}

.about-values-list {
    display: grid;
    gap: 13px;
}

.about-values-list article {
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: 19px;
    align-items: start;
    padding: 23px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.07);
}

.about-values-list article>span {
    display: grid;
    width: 48px;
    height: 48px;
    color: #ffdc5b;
    border-radius: 14px;
    place-items: center;
    background: rgba(255, 255, 255, 0.1);
    font-size: 0.78rem;
    font-weight: 800;
}

.about-values-list h3 {
    margin: 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
}

.about-values-list p {
    margin: 6px 0 0;
    color: rgba(255, 255, 255, 0.69);
    font-size: 0.83rem;
    line-height: 1.62;
}

.about-visit-section {
    padding: 85px 0;
    background: #fff;
}

.about-visit-panel {
    display: grid;
    grid-template-columns: 75px minmax(0, 1fr) auto;
    gap: 30px;
    align-items: center;
    padding: 44px;
    border: 1px solid #ecd9cd;
    border-radius: 24px;
    background: #fff8ee;
}

.about-visit-icon {
    display: grid;
    width: 70px;
    height: 70px;
    color: #ad001b;
    border-radius: 21px;
    place-items: center;
    background: #ffe7db;
    font-size: 1.5rem;
}

.about-visit-panel h2 {
    margin: 10px 0 8px;
    color: #351b18;
    font-size: clamp(1.8rem, 3vw, 2.7rem);
    line-height: 1.05;
}

.about-visit-panel p {
    max-width: 760px;
    margin: 0;
    color: #7b6660;
    font-size: 0.84rem;
    line-height: 1.65;
}


/* ==========================================================
   LEGAL AND POLICY PAGES
========================================================== */

.legal-page {
    color: #3b211e;
    background: #fffdf9;
}

.legal-hero {
    padding: 72px 0;
    border-bottom: 1px solid #ecdcd1;
    background: radial-gradient( circle at 84% 10%, rgba(255, 213, 74, 0.25), transparent 29%), linear-gradient(135deg, #fff8ec, #fae9dc);
}

.legal-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    gap: 55px;
    align-items: end;
}

.legal-eyebrow {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    padding: 9px 14px;
    color: #910018;
    border-radius: 999px;
    background: rgba(173, 0, 27, 0.08);
    font-size: 0.71rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.legal-hero h1 {
    margin: 22px 0 17px;
    color: #351b18;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.1rem, 5.8vw, 5.5rem);
    line-height: 0.98;
    letter-spacing: -0.05em;
}

.legal-hero p {
    max-width: 740px;
    margin: 0;
    color: #735e58;
    font-size: 1rem;
    line-height: 1.78;
}

.legal-update-card {
    display: flex;
    min-height: 175px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 25px;
    border: 1px solid rgba(173, 0, 27, 0.11);
    border-radius: 20px;
    text-align: center;
    background: rgba(255, 255, 255, 0.75);
    box-shadow: 0 16px 35px rgba(85, 42, 31, 0.08);
}

.legal-update-card>span {
    display: grid;
    width: 48px;
    height: 48px;
    margin-bottom: 16px;
    color: #ad001b;
    border-radius: 15px;
    place-items: center;
    background: #ffe8dd;
    font-size: 1.15rem;
}

.legal-update-card small {
    color: #927a73;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.legal-update-card strong {
    margin-top: 6px;
    font-size: 0.83rem;
}

.legal-document-section {
    padding: 78px 0 100px;
    background: #fff;
}

.legal-document-grid {
    display: grid;
    grid-template-columns: 265px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.legal-navigation-card {
    position: sticky;
    top: 120px;
    padding: 22px;
    border: 1px solid #ecddd3;
    border-radius: 20px;
    background: #fffaf5;
}

.legal-navigation-card>span {
    display: block;
    margin: 3px 5px 15px;
    color: #937b74;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.legal-navigation-card nav {
    display: grid;
    gap: 7px;
}

.legal-navigation-card nav a {
    display: block;
    padding: 11px 12px;
    color: #654d47;
    border-radius: 10px;
    font-size: 0.79rem;
    font-weight: 700;
    text-decoration: none;
}

.legal-navigation-card nav a:hover,
.legal-navigation-card nav a.active {
    color: #970018;
    background: #ffe9df;
}

.legal-help-box {
    margin-top: 22px;
    padding: 20px;
    color: #fff;
    border-radius: 15px;
    background: linear-gradient(145deg, #a5001a, #690011);
}

.legal-help-box>i {
    color: #ffdc5b;
    font-size: 1.3rem;
}

.legal-help-box strong {
    display: block;
    margin-top: 15px;
    font-family: Georgia, "Times New Roman", serif;
}

.legal-help-box p {
    margin: 7px 0 15px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.72rem;
    line-height: 1.55;
}

.legal-help-box a {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    color: #ffdc5b;
    font-size: 0.73rem;
    font-weight: 800;
    text-decoration: none;
}

.legal-document-card {
    padding: 48px 54px;
    border: 1px solid #ecddd3;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(76, 35, 25, 0.06);
}

.legal-document-card>section {
    position: relative;
    padding: 0 0 36px 54px;
    border-bottom: 1px solid #f0e2d9;
}

.legal-document-card>section+section {
    padding-top: 36px;
}

.legal-document-card>section:last-of-type {
    padding-bottom: 5px;
    border-bottom: 0;
}

.legal-section-number {
    position: absolute;
    top: 2px;
    left: 0;
    display: grid;
    width: 36px;
    height: 36px;
    color: #a3001a;
    border-radius: 11px;
    place-items: center;
    background: #ffeae0;
    font-size: 0.68rem;
    font-weight: 800;
}

.legal-document-card>section+section .legal-section-number {
    top: 38px;
}

.legal-document-card h2 {
    margin: 0 0 13px;
    color: #391f1c;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
}

.legal-document-card p,
.legal-document-card li {
    color: #725f59;
    font-size: 0.88rem;
    line-height: 1.78;
}

.legal-document-card p {
    margin: 0;
}

.legal-document-card p+p {
    margin-top: 13px;
}

.legal-document-card ul {
    display: grid;
    gap: 8px;
    margin: 12px 0 0;
    padding-left: 20px;
}

.legal-highlight-box {
    display: grid;
    grid-template-columns: 46px 1fr;
    gap: 15px;
    align-items: start;
    margin: 0 0 17px;
    padding: 20px;
    border: 1px solid #edd4c4;
    border-radius: 15px;
    background: #fff7e9;
}

.legal-highlight-box>i {
    display: grid;
    width: 42px;
    height: 42px;
    color: #ad001b;
    border-radius: 13px;
    place-items: center;
    background: #ffe3d5;
}

.legal-highlight-box strong {
    display: block;
    color: #491f1a;
}

.legal-highlight-box p {
    margin-top: 6px;
}

.legal-contact-note {
    display: grid;
    grid-template-columns: 60px 1fr;
    gap: 18px;
    margin-top: 45px;
    padding: 26px;
    color: #fff;
    border-radius: 17px;
    background: radial-gradient( circle at 95% 0, rgba(255, 219, 87, 0.18), transparent 35%), linear-gradient(145deg, #970018, #59000e);
}

.legal-contact-note>span {
    display: grid;
    width: 54px;
    height: 54px;
    color: #ffdc5b;
    border-radius: 16px;
    place-items: center;
    background: rgba(255, 255, 255, 0.1);
    font-size: 1.3rem;
}

.legal-contact-note strong {
    display: block;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.1rem;
}

.legal-contact-note p {
    margin: 6px 0 10px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.75rem;
    line-height: 1.55;
}

.legal-contact-note a {
    display: inline-block;
    margin: 4px 14px 0 0;
    color: #ffdc5b;
    font-size: 0.73rem;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 1120px) {
    .store-footer-bottom {
        flex-wrap: wrap;
        gap: 16px 25px;
    }
    .store-footer-legal-links {
        order: 3;
        width: 100%;
        justify-content: flex-start;
    }
    .about-hero-grid {
        grid-template-columns: minmax(0, 1fr) 390px;
        gap: 35px;
    }
}

@media (max-width: 850px) {
    .about-hero-grid,
    .about-intro-grid,
    .about-values-grid {
        grid-template-columns: 1fr;
    }
    .about-hero-copy {
        text-align: center;
    }
    .about-hero-copy>p {
        margin-inline: auto;
    }
    .about-hero-actions {
        justify-content: center;
    }
    .about-hero-visual {
        width: min(100%, 430px);
        justify-self: center;
    }
    .about-intro-grid,
    .about-values-grid {
        gap: 42px;
    }
    .about-intro-copy {
        padding-top: 25px;
        padding-left: 0;
        border-top: 2px solid #efd4c2;
        border-left: 0;
    }
    .about-collection-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .about-visit-panel {
        grid-template-columns: 70px 1fr;
    }
    .about-visit-panel .button {
        grid-column: 2;
        justify-self: start;
    }
    .legal-hero-grid {
        grid-template-columns: 1fr;
    }
    .legal-update-card {
        min-height: 0;
        flex-direction: row;
        gap: 16px;
        justify-content: flex-start;
        text-align: left;
    }
    .legal-update-card>span {
        margin-bottom: 0;
    }
    .legal-document-grid {
        grid-template-columns: 1fr;
    }
    .legal-navigation-card {
        position: static;
    }
    .legal-navigation-card nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .legal-help-box {
        display: none;
    }
}

@media (max-width: 620px) {
    .about-hero {
        padding: 68px 0 72px;
    }
    .about-hero-copy h1 {
        font-size: clamp(3rem, 15vw, 4.5rem);
    }
    .about-hero-actions {
        display: grid;
    }
    .about-hero-actions .button {
        width: 100%;
    }
    .about-hero-visual {
        width: min(100%, 340px);
    }
    .about-visual-frame {
        width: 69%;
        height: 69%;
        padding: 20px;
        border-width: 7px;
    }
    .about-floating-chip {
        padding: 9px 11px;
        font-size: 0.65rem;
    }
    .about-intro-section,
    .about-collection-section,
    .about-values-section {
        padding: 75px 0;
    }
    .about-collection-grid {
        grid-template-columns: 1fr;
    }
    .about-collection-grid a {
        min-height: 220px;
    }
    .about-visit-section {
        padding: 70px 0;
    }
    .about-visit-panel {
        grid-template-columns: 1fr;
        padding: 30px 24px;
    }
    .about-visit-panel .button {
        grid-column: auto;
        width: 100%;
    }
    .legal-hero {
        padding: 58px 0;
    }
    .legal-hero h1 {
        font-size: clamp(2.8rem, 14vw, 4.2rem);
    }
    .legal-document-section {
        padding: 55px 0 75px;
    }
    .legal-navigation-card nav {
        grid-template-columns: 1fr;
    }
    .legal-document-card {
        padding: 30px 22px;
    }
    .legal-document-card>section {
        padding-left: 0;
    }
    .legal-section-number {
        position: static;
        margin-bottom: 15px;
    }
    .legal-document-card>section+section .legal-section-number {
        top: auto;
    }
    .legal-highlight-box,
    .legal-contact-note {
        grid-template-columns: 1fr;
    }
    .store-footer-legal-links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }
}

@media (max-width: 390px) {
    .about-hero-visual {
        width: 290px;
    }
    .about-floating-chip {
        display: none;
    }
    .about-visual-frame {
        width: 74%;
        height: 74%;
    }
    .store-footer-legal-links {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   ROAD-DISTANCE DELIVERY
========================================================= */

.checkout-location-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    width: fit-content;
    margin-top: 8px;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 750;
}

.checkout-location-badge.is-ready {
    background: #eaf8ef;
    color: #137a45;
}

.checkout-location-badge.is-missing {
    background: #fff0f1;
    color: #b31d35;
}

.checkout-delivery-quote {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 15px;
    padding: 12px 13px;
    border: 1px solid #e8ddd6;
    border-radius: 10px;
    background: #fffaf6;
    color: #725d55;
    font-size: 12px;
    line-height: 1.5;
}

.checkout-delivery-quote>i {
    margin-top: 1px;
    color: #a9001c;
    font-size: 15px;
}

.checkout-delivery-quote.is-ready {
    border-color: #b9e1c9;
    background: #eefaf2;
    color: #176d42;
}

.checkout-delivery-quote.is-ready>i {
    color: #12874d;
}

.checkout-delivery-quote.is-error {
    border-color: #efb9c1;
    background: #fff0f2;
    color: #a51e35;
}

.checkout-delivery-quote.is-error>i {
    color: #c51d39;
}

.checkout-delivery-quote.is-loading>i,
.customer-address-location-status.is-loading>i {
    animation: delivery-location-spin 0.85s linear infinite;
}

@keyframes delivery-location-spin {
    to {
        transform: rotate(360deg);
    }
}

.customer-address-location {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    margin-top: 27px;
    padding: 20px;
    border: 1px solid #eadbd2;
    border-radius: 14px;
    background: linear-gradient(135deg, #fffaf5, #fff);
}

.customer-address-location-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 13px;
    background: #ffebdf;
    color: #a9001c;
    font-size: 21px;
}

.customer-address-location-copy {
    min-width: 0;
}

.customer-address-location-copy>strong {
    display: block;
    margin-bottom: 4px;
    color: #34221e;
    font-size: 15px;
}

.customer-address-location-copy>p {
    max-width: 600px;
    margin: 0 0 9px;
    color: #806d66;
    font-size: 12px;
    line-height: 1.55;
}

.customer-address-location-status {
    display: inline-flex;
    align-items: flex-start;
    gap: 6px;
    color: #806d66;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.45;
}

.customer-address-location-status>i {
    margin-top: 1px;
}

.customer-address-location-status.is-loading {
    color: #8d6514;
}

.customer-address-location-status.is-success {
    color: #147a47;
}

.customer-address-location-status.is-error {
    color: #bd1b35;
}

.customer-address-location-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 10px 15px;
    border: 1px solid #a9001c;
    border-radius: 10px;
    background: #fff;
    color: #a9001c;
    font: inherit;
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
    white-space: nowrap;
}

.customer-address-location-button:hover {
    background: #a9001c;
    color: #fff;
}

.customer-address-location-button:disabled {
    cursor: wait;
    opacity: 0.7;
}

@media (max-width: 700px) {
    .customer-address-location {
        grid-template-columns: auto 1fr;
    }
    .customer-address-location-button {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* Keep wishlist buttons inside their product cards */

.product-card {
    position: relative;
}