/* Product detail page styles are isolated from the global storefront theme. */
.hom-product-detail {
    padding: 28px 0 0;
    color: #332b26;
    background: #fffdfa;
}
.hom-product-detail > .container { padding-bottom: 54px; }
.hom-product-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0 0 24px;
    color: #81776f;
    font-size: 12px;
}
.hom-product-breadcrumb a { color: #6b2432; }
.hom-product-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    align-items: start;
    gap: clamp(28px, 4vw, 58px);
}
.hom-product-gallery {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    align-items: start;
    gap: 13px;
}
.hom-product-thumbnails {
    display: flex;
    max-height: 690px;
    flex-direction: column;
    gap: 9px;
    overflow: auto;
}
.hom-thumb {
    flex: 0 0 auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid #e8dfd4;
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
}
.hom-thumb.is-selected { border: 2px solid #742f3b; }
.hom-thumb img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.hom-product-image-stage {
    min-width: 0;
    overflow: hidden;
    border-radius: 4px;
    background: #f6f0e7;
}
.hom-product-image-stage > img {
    display: block;
    width: 100%;
    max-height: 760px;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}
.hom-product-image-empty {
    display: grid;
    min-height: 420px;
    place-items: center;
    background: #f3ece2;
    color: #987849;
    font: 30px Georgia, serif;
}
.hom-detail-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 13px; }
.hom-detail-badges span {
    padding: 6px 10px;
    border-radius: 2px;
    color: #762f3b;
    background: #f8e6df;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.hom-detail-badges .hom-detail-featured { color: #8b6a35; background: #f4efe3; }
.hom-detail-eyebrow {
    margin: 0 0 7px;
    color: #947243;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.hom-product-summary h1 {
    margin: 0 0 8px;
    color: #342c27;
    font: clamp(30px, 3vw, 42px) / 1.12 Georgia, serif;
}
.hom-detail-subtitle { margin: 0; color: #665c53; font: 17px / 1.55 Georgia, serif; }
.hom-detail-price { display: flex; align-items: center; gap: 12px; margin-top: 17px; }
.hom-detail-price strong { color: #312925; font-size: 28px; font-weight: 700; }
.hom-detail-price del, .hom-detail-tax { color: #80766c; }
.hom-detail-tax { margin: 1px 0 0; font-size: 11px; }
.hom-detail-description {
    margin: 19px 0;
    color: #544b44;
    font-size: 13px;
    line-height: 1.8;
    white-space: pre-line;
}
.hom-product-assurances {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 22px 0;
    border-top: 1px solid #eee5da;
    border-bottom: 1px solid #eee5da;
}
.hom-product-assurances > div {
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 10px 6px;
    border-right: 1px solid #eee5da;
    color: #62574e;
    font-size: 10px;
    line-height: 1.4;
    text-align: center;
}
.hom-product-assurances > div:last-child { border-right: 0; }
.hom-assurance-icon { color: #7c3a44; font: 27px Georgia, serif; }
.hom-made-to-order {
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 17px 0;
    padding: 16px;
    border: 1px solid #edd9ce;
    border-radius: 7px;
    background: #fff3ee;
}
.hom-made-icon { color: #682c36; font: 36px Georgia, serif; }
.hom-made-to-order div { display: grid; gap: 4px; }
.hom-made-to-order strong { color: #3d302b; font: 17px Georgia, serif; }
.hom-made-to-order span { color: #75685e; font-size: 11px; line-height: 1.5; }
.hom-variant-picker { margin: 20px 0; }
.hom-variant-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.hom-variant-heading label { margin: 0; color: #3e3630; font-size: 13px; font-weight: 700; }
.hom-variant-heading > span { color: #81776f; font-size: 11px; }
.hom-variant-options { display: flex; flex-wrap: wrap; gap: 8px; }
.hom-variant-option {
    min-width: 47px;
    min-height: 42px;
    padding: 8px 12px;
    border: 1px solid #ddd4ca;
    border-radius: 4px;
    color: #403832;
    background: #fff;
    font-size: 12px;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}
.hom-variant-option:hover, .hom-variant-option.is-selected {
    border-color: #6b2432;
    color: #6b2432;
    background: #fcf7f3;
    box-shadow: inset 0 0 0 1px #6b2432;
}
.hom-variant-picker small { display: block; margin-top: 9px; color: #766b61; font-size: 11px; }
.hom-detail-availability { margin: 20px 0; color: #6b2432; font-size: 13px; font-weight: 700; }
.hom-detail-contact {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 15px 20px;
    border-radius: 4px;
    color: #fff;
    background: #54252f;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .05em;
    text-align: center;
    text-transform: uppercase;
}
.hom-detail-contact:hover, .hom-detail-contact:focus { color: #fff; background: #42202a; }
.hom-detail-note { margin: 9px 0; color: #81766d; font-size: 11px; text-align: center; }
.hom-product-story {
    display: grid;
    grid-template-columns: 1fr 1.25fr 1fr;
    margin-top: 35px;
    border: 1px solid #eee5da;
    border-radius: 7px;
    background: #fffdfa;
}
.hom-product-story > div { padding: 20px 23px; border-right: 1px solid #eee5da; }
.hom-product-story > div:last-child { border-right: 0; }
.hom-product-story h2 { margin: 0 0 12px; color: #39302a; font: 19px Georgia, serif; }
.hom-product-story p { margin: 0; color: #71665c; font-size: 11px; line-height: 1.7; }
.hom-story-size > span { display: block; margin-top: 10px; color: #762f3b; font-size: 11px; font-weight: 700; }
.hom-story-steps ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin: 0; padding: 0; list-style: none; }
.hom-story-steps li { display: grid; gap: 8px; color: #655b52; font-size: 10px; line-height: 1.4; }
.hom-story-steps i { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; color: #783943; background: #faeee9; font: 12px Georgia, serif; }
.hom-story-care a { display: inline-block; margin-top: 12px; color: #6b2432; font-size: 11px; font-weight: 700; }
.hom-related-section { padding: 45px 0 65px; border-top: 1px solid #f0e8de; background: #fbf8f3; }
.hom-related-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 20px; }
.hom-related-heading h2 { margin: 0; color: #342c27; font: 32px Georgia, serif; }
.hom-related-heading > a { color: #6b2432; font-size: 12px; font-weight: 700; }
.hom-related-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 17px; }
.hom-related-card { overflow: hidden; border: 1px solid #eee5da; border-radius: 6px; color: inherit; background: #fff; transition: transform .2s, box-shadow .2s; }
.hom-related-card:hover { color: inherit; transform: translateY(-3px); box-shadow: 0 10px 26px #422a2014; }
.hom-related-image { position: relative; overflow: hidden; background: #f4ede4; }
.hom-related-image > img, .hom-related-image > .hom-product-image-empty { display: block; width: 100%; min-height: 220px; aspect-ratio: 4 / 4.7; object-fit: cover; }
.hom-related-image > span { position: absolute; top: 11px; left: 11px; padding: 6px 9px; color: #762f3b; background: #fff4ee; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.hom-related-info { padding: 13px 14px 15px; }
.hom-related-info h3 { overflow: hidden; margin: 0 0 7px; color: #342c27; font: 17px Georgia, serif; text-overflow: ellipsis; white-space: nowrap; }
.hom-related-info p { margin: 0; color: #4b3733; font-size: 14px; font-weight: 700; }
.hom-related-info small { display: block; margin-top: 5px; color: #82776d; font-size: 10px; }
.hom-related-empty { margin: 0; padding: 24px; border: 1px dashed #d9c9b7; border-radius: 5px; color: #75685e; font-size: 13px; text-align: center; }

@media (max-width: 991px) {
    .hom-product-layout { grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); gap: 28px; }
    .hom-product-gallery { grid-template-columns: 62px minmax(0, 1fr); }
    .hom-product-story > div { padding: 16px; }
    .hom-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .hom-product-detail { padding-top: 18px; }
    .hom-product-detail > .container { padding-bottom: 35px; }
    .hom-product-breadcrumb { gap: 6px; margin-bottom: 15px; font-size: 10px; }
    .hom-product-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .hom-product-gallery { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .hom-product-image-stage { grid-row: 1; }
    .hom-product-image-stage > img { max-height: 610px; }
    .hom-product-thumbnails { grid-row: 2; max-height: none; flex-direction: row; overflow-x: auto; overflow-y: hidden; }
    .hom-thumb { flex: 0 0 62px; }
    .hom-product-summary h1 { font-size: 33px; }
    .hom-product-story { grid-template-columns: minmax(0, 1fr); margin-top: 25px; }
    .hom-product-story > div { border-right: 0; border-bottom: 1px solid #eee5da; }
    .hom-product-story > div:last-child { border-bottom: 0; }
    .hom-story-steps ol { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 13px; }
    .hom-related-section { padding: 32px 0 45px; }
    .hom-related-heading h2 { font-size: 27px; }
    .hom-related-heading > a { font-size: 10px; }
    .hom-related-grid { gap: 10px; }
    .hom-related-image > img, .hom-related-image > .hom-product-image-empty { min-height: 160px; }
    .hom-related-info { padding: 10px; }
    .hom-related-info h3 { font-size: 14px; }
}
@media (max-width: 380px) {
    .hom-product-assurances > div { flex-direction: column; gap: 4px; padding: 8px 3px; }
    .hom-related-info h3 { font-size: 12px; }
}

/* Purchase controls and session-based shopping bag. */
.hom-purchase-form { margin: 14px 0 0; }
.hom-purchase-controls { display: grid; grid-template-columns: 132px minmax(0, 1fr); align-items: end; gap: 10px 14px; }
.hom-quantity-label { grid-column: 1 / -1; margin: 0 0 -4px; color: #3e3630; font-size: 13px; font-weight: 700; }
.hom-quantity-control { display: grid; height: 48px; grid-template-columns: 42px minmax(35px, 1fr) 42px; border: 1px solid #ddd4ca; border-radius: 4px; background: #fff; }
.hom-quantity-control button { border: 0; color: #4b3733; background: transparent; font-size: 21px; cursor: pointer; }
.hom-quantity-control input { width: 100%; min-width: 0; padding: 0; border: 0; border-right: 1px solid #eee5da; border-left: 1px solid #eee5da; border-radius: 0; color: #332b26; background: transparent; text-align: center; appearance: textfield; }
.hom-quantity-control input::-webkit-inner-spin-button, .hom-quantity-control input::-webkit-outer-spin-button { margin: 0; appearance: none; }
.hom-purchase-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hom-purchase-buttons button { min-height: 48px; padding: 11px 12px; border: 1px solid #54252f; border-radius: 4px; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; transition: background .15s, color .15s; }
.hom-add-to-cart { color: #fff; background: #54252f; }
.hom-add-to-cart:hover:not(:disabled) { background: #42202a; }
.hom-buy-now { color: #54252f; background: #fffdfa; }
.hom-buy-now:hover:not(:disabled) { color: #fff; background: #6b2432; }
.hom-purchase-buttons button:disabled { border-color: #c9c0b8; color: #948980; background: #eeeae5; cursor: not-allowed; }
.hom-contact-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.hom-contact-actions a { display: flex; min-height: 46px; align-items: center; justify-content: center; gap: 9px; padding: 9px 12px; border: 1px solid #ded6cd; border-radius: 4px; color: #433a34; background: #fffdfa; font-size: 11px; font-weight: 700; text-align: center; }
.hom-contact-actions a:hover { border-color: #8b5d5c; color: #6b2432; }
.hom-contact-actions a span { color: #6b2432; font-size: 17px; }
.hom-cart-notice, .hom-cart-error { margin: 12px 0; padding: 11px 13px; border-radius: 4px; font-size: 12px; }
.hom-cart-notice { border: 1px solid #d9e8d9; color: #305b38; background: #f1f8f0; }
.hom-cart-notice a { margin-left: 6px; color: #6b2432; font-weight: 700; text-decoration: underline; }
.hom-cart-error { border: 1px solid #e9c9c1; color: #8a3030; background: #fff3ef; }

.hom-cart-page { min-height: 50vh; padding: 28px 0 70px; color: #332b26; background: #fffdfa; }
.hom-cart-heading { margin: 15px 0 27px; }
.hom-cart-heading h1 { margin: 0 0 6px; color: #342c27; font: 38px / 1.15 Georgia, serif; }
.hom-cart-heading > p:last-child { margin: 0; color: #756b62; font-size: 13px; }
.hom-cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; align-items: start; gap: 28px; }
.hom-cart-items { border-top: 1px solid #eee5da; }
.hom-cart-item { display: grid; grid-template-columns: 105px minmax(0, 1fr) 120px; align-items: start; gap: 17px; padding: 18px 0; border-bottom: 1px solid #eee5da; }
.hom-cart-item-image { display: block; overflow: hidden; border-radius: 4px; background: #f3ece2; }
.hom-cart-item-image img, .hom-cart-item-image > div { display: grid; width: 100%; aspect-ratio: 4 / 5; place-items: center; object-fit: cover; color: #987849; font: 12px Georgia, serif; }
.hom-cart-item-detail > a { color: inherit; }
.hom-cart-item-detail h2 { margin: 2px 0 6px; color: #342c27; font: 20px Georgia, serif; }
.hom-cart-item-detail p { margin: 0 0 5px; color: #675d54; font-size: 12px; }
.hom-cart-item-detail .hom-cart-item-sku { color: #8b784f; font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.hom-cart-line-price { padding-top: 4px; color: #423832; font-size: 14px; text-align: right; }
.hom-cart-mobile-price { display: none; }
.hom-cart-item-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; margin-top: 14px; }
.hom-cart-item-actions form { display: flex; align-items: center; gap: 6px; }
.hom-cart-item-actions input { width: 53px; height: 32px; padding: 4px; border: 1px solid #ddd4ca; border-radius: 3px; text-align: center; }
.hom-cart-item-actions button { padding: 0; border: 0; color: #6b2432; background: transparent; font-size: 11px; font-weight: 700; cursor: pointer; }
.hom-cart-item-actions .hom-cart-remove { color: #81766d; text-decoration: underline; }
.hom-cart-summary { padding: 21px; border: 1px solid #e9e0d6; border-radius: 5px; background: #fff; }
.hom-cart-summary h2 { margin: 0 0 17px; color: #342c27; font: 22px Georgia, serif; }
.hom-cart-summary > div { display: flex; justify-content: space-between; gap: 10px; padding: 13px 0; border-top: 1px solid #eee5da; border-bottom: 1px solid #eee5da; color: #5d534a; font-size: 12px; }
.hom-cart-summary > div strong { color: #342c27; font-size: 14px; }
.hom-cart-summary > p { margin: 13px 0; color: #82776d; font-size: 11px; line-height: 1.6; }
.hom-cart-summary form button, .hom-cart-empty > a { display: flex; width: 100%; min-height: 47px; align-items: center; justify-content: center; gap: 10px; padding: 11px 15px; border: 0; border-radius: 4px; color: #fff; background: #54252f; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-align: center; text-transform: uppercase; cursor: pointer; }
.hom-cart-summary form button:hover, .hom-cart-empty > a:hover { color: #fff; background: #42202a; }
.hom-cart-continue { display: block; margin-top: 13px; color: #6b2432; font-size: 11px; font-weight: 700; text-align: center; }
.hom-cart-empty { max-width: 600px; margin: 40px auto; padding: 42px 24px; border: 1px solid #eee5da; border-radius: 6px; background: #fff; text-align: center; }
.hom-cart-empty > span { color: #8b5d5c; font: 42px Georgia, serif; }
.hom-cart-empty h2 { margin: 10px 0; color: #342c27; font: 28px Georgia, serif; }
.hom-cart-empty p { margin: 0 auto 20px; color: #756b62; font-size: 13px; }
.hom-cart-empty > a { display: inline-flex; width: auto; min-width: 220px; }
@media (max-width: 767px) {
    .hom-purchase-controls { grid-template-columns: 105px minmax(0, 1fr); gap: 10px; }
    .hom-purchase-buttons { grid-template-columns: 1fr; }
    .hom-purchase-buttons button { min-height: 44px; }
    .hom-contact-actions { gap: 7px; }
    .hom-contact-actions a { padding: 8px 5px; font-size: 10px; }
    .hom-cart-page { padding: 18px 0 45px; }
    .hom-cart-heading h1 { font-size: 31px; }
    .hom-cart-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .hom-cart-item { grid-template-columns: 78px minmax(0, 1fr); gap: 12px; }
    .hom-cart-line-price { display: none; }
    .hom-cart-mobile-price { display: block; margin-top: 9px; color: #423832; font-size: 13px; font-weight: 700; }
    .hom-cart-item-detail h2 { font-size: 17px; }
    .hom-cart-item-actions { gap: 10px; margin-top: 10px; }
}
.hom-product-assurances .hom-assurance-icon { width: 34px; height: 34px; flex: 0 0 34px; fill: none; stroke: #332b26; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.hom-variant-tools { display: flex; align-items: center; gap: 15px; }
.hom-variant-tools small { margin: 0; }
.hom-size-guide-trigger { padding: 0; border: 0; color: #4d4037; background: transparent; font-size: 11px; text-decoration: underline; cursor: pointer; }
.hom-size-guide { width: min(92vw, 440px); padding: 23px; border: 1px solid #dfc7b4; border-radius: 8px; color: #433a34; background: #fffdfa; box-shadow: 0 20px 70px #24180f40; }
.hom-size-guide::backdrop { background: #211a1680; }
.hom-size-guide-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.hom-size-guide h2 { margin: 0; color: #342c27; font: 24px Georgia, serif; }
.hom-size-guide-header button { border: 0; color: #6b2432; background: transparent; font-size: 26px; cursor: pointer; }
.hom-size-guide p { margin: 14px 0; color: #71665c; font-size: 13px; line-height: 1.7; }
.hom-size-guide > a { color: #6b2432; font-size: 12px; font-weight: 700; text-decoration: underline; }
@media (max-width: 767px) { .hom-product-assurances .hom-assurance-icon { width: 29px; height: 29px; flex-basis: 29px; } }
@media (max-width: 767px) {
    .hom-purchase-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hom-purchase-buttons button { padding: 9px 5px; font-size: 9px; }
}
.hom-cart-checkout { display: flex; width: 100%; min-height: 47px; align-items: center; justify-content: center; gap: 10px; padding: 11px 15px; border-radius: 4px; color: #fff; background: #54252f; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-align: center; text-transform: uppercase; }
.hom-cart-checkout:hover { color: #fff; background: #42202a; }
.hom-checkout-page { min-height: 55vh; padding: 28px 0 70px; color: #332b26; background: #fffdfa; }
.hom-checkout-page .hom-cart-heading { margin: 14px 0 27px; }
.hom-checkout-page .hom-cart-heading h1 { margin: 0 0 6px; color: #342c27; font: 38px / 1.15 Georgia, serif; }
.hom-checkout-page .hom-cart-heading > p:last-child { margin: 0; color: #756b62; font-size: 13px; }
.hom-checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; align-items: start; gap: 28px; }
.hom-checkout-details { display: grid; gap: 16px; }
.hom-checkout-card { padding: 22px; border: 1px solid #e9e0d6; border-radius: 5px; background: #fff; }
.hom-checkout-card-title { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 19px; }
.hom-checkout-card-title > span { display: grid; width: 29px; height: 29px; flex: 0 0 29px; place-items: center; border-radius: 50%; color: #6b2432; background: #f7ebe5; font: 12px Georgia, serif; }
.hom-checkout-card-title h2, .hom-checkout-order-card > h2 { margin: 0; color: #342c27; font: 22px Georgia, serif; }
.hom-checkout-card-title p { margin: 4px 0 0; color: #82776d; font-size: 11px; }
.hom-checkout-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.hom-checkout-field { display: grid; gap: 6px; }
.hom-checkout-field.hom-field-full { grid-column: 1 / -1; }
.hom-checkout-field label, .hom-coupon-form label { margin: 0; color: #544b44; font-size: 11px; font-weight: 700; }
.hom-checkout-field label b { color: #8b3038; }
.hom-checkout-field label span { color: #92877e; font-weight: 400; }
.hom-checkout-field input, .hom-checkout-field textarea, .hom-coupon-form input { width: 100%; min-height: 43px; padding: 10px 11px; border: 1px solid #ded6cc; border-radius: 4px; outline: 0; color: #332b26; background: #fffdfa; font: inherit; font-size: 12px; }
.hom-checkout-field textarea { resize: vertical; }
.hom-checkout-field input:focus, .hom-checkout-field textarea:focus, .hom-coupon-form input:focus { border-color: #9a6c57; box-shadow: 0 0 0 3px #9a6c571a; }
.hom-checkout-security { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; border-radius: 4px; background: #f8f4ec; }
.hom-checkout-security > span { color: #997941; font-size: 18px; }
.hom-checkout-security p { margin: 0; color: #766b61; font-size: 11px; line-height: 1.6; }
.hom-checkout-summary { position: sticky; top: 20px; }
.hom-checkout-order-card > h2 { margin-bottom: 17px; }
.hom-checkout-line-items { display: grid; gap: 13px; padding: 14px 0; border-top: 1px solid #eee5da; border-bottom: 1px solid #eee5da; }
.hom-checkout-line-item { display: flex; justify-content: space-between; gap: 12px; color: #483f38; font-size: 11px; }
.hom-checkout-line-item > div { display: grid; gap: 4px; }
.hom-checkout-line-item strong { color: #3c332d; font-size: 11px; }
.hom-checkout-line-item small { color: #84796f; font-size: 10px; }
.hom-checkout-line-item > span { white-space: nowrap; }
.hom-coupon-form { display: grid; gap: 7px; margin: 16px 0 8px; }
.hom-coupon-form > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.hom-coupon-form input { min-width: 0; text-transform: uppercase; }
.hom-coupon-form button { min-width: 77px; padding: 8px 12px; border: 1px solid #6b2432; border-radius: 4px; color: #6b2432; background: #fffdfa; font-size: 11px; font-weight: 700; cursor: pointer; }
.hom-coupon-form button:hover { color: #fff; background: #6b2432; }
.hom-applied-coupon { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 9px 0 13px; padding: 10px 11px; border: 1px solid #d7e5d5; border-radius: 4px; color: #35633d; background: #f4f9f1; font-size: 11px; }
.hom-applied-coupon form { margin: 0; }
.hom-applied-coupon button { padding: 0; border: 0; color: #6b2432; background: transparent; font-size: 10px; font-weight: 700; text-decoration: underline; cursor: pointer; }
.hom-checkout-totals { display: grid; gap: 11px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #eee5da; }
.hom-checkout-totals > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #685e55; font-size: 11px; }
.hom-checkout-totals strong { color: #3b322c; font-size: 12px; }
.hom-checkout-totals .hom-discount-line, .hom-checkout-totals .hom-discount-line strong { color: #397044; }
.hom-checkout-totals small { color: #8a8077; font-size: 10px; text-align: right; }
.hom-checkout-totals .hom-checkout-total { margin-top: 2px; padding-top: 13px; border-top: 1px solid #eee5da; color: #332b26; font-size: 12px; font-weight: 800; }
.hom-checkout-totals .hom-checkout-total strong { color: #332b26; font-size: 18px; }
.hom-checkout-submit { display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: center; gap: 10px; margin-top: 18px; padding: 12px; border: 0; border-radius: 4px; color: #fff; background: #54252f; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.hom-checkout-submit:hover { background: #42202a; }
.hom-checkout-payment-note { margin: 11px 0 0; color: #83786f; font-size: 10px; line-height: 1.55; text-align: center; }
.hom-checkout-back { display: block; margin-top: 13px; color: #6b2432; font-size: 11px; font-weight: 700; text-align: center; }
@media (max-width: 991px) { .hom-checkout-layout { grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; } }
@media (max-width: 767px) {
    .hom-checkout-page { padding: 18px 0 45px; }
    .hom-checkout-page .hom-cart-heading h1 { font-size: 31px; }
    .hom-checkout-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .hom-checkout-summary { position: static; }
    .hom-checkout-card { padding: 17px; }
    .hom-checkout-fields { gap: 12px; }
}
@media (max-width: 420px) { .hom-checkout-fields { grid-template-columns: minmax(0, 1fr); } .hom-checkout-field.hom-field-full { grid-column: auto; } }
.hom-payment-methods { display: grid; gap: 9px; margin: 17px 0 2px; padding: 0; border: 0; }
.hom-payment-methods legend { margin-bottom: 9px; color: #3e3630; font-size: 12px; font-weight: 800; }
.hom-payment-choice { display: flex; min-height: 64px; align-items: center; gap: 11px; padding: 11px 12px; border: 1px solid #e3dbd1; border-radius: 4px; background: #fffdfa; cursor: pointer; }
.hom-payment-choice:has(input:checked) { border-color: #7b3942; background: #fffaf7; box-shadow: inset 0 0 0 1px #7b3942; }
.hom-payment-choice input { width: 16px; height: 16px; flex: 0 0 16px; accent-color: #6b2432; }
.hom-payment-choice > span { display: grid; flex: 1; gap: 4px; }
.hom-payment-choice strong { color: #3c332d; font-size: 11px; }
.hom-payment-choice small { color: #84796f; font-size: 10px; font-weight: 400; }
.hom-payment-choice > b { padding: 4px 7px; border-radius: 3px; color: #6b2432; background: #f7ebe5; font-size: 9px; text-transform: uppercase; }
.hom-payment-choice input:disabled { cursor: not-allowed; }
.hom-payment-choice:has(input:disabled) { opacity: .62; cursor: not-allowed; }
.hom-payment-page, .hom-order-success-page { min-height: 55vh; padding: 32px 0 70px; color: #332b26; background: #fffdfa; }
.hom-payment-card, .hom-order-success-card { max-width: 540px; margin: 22px auto; padding: clamp(22px, 5vw, 42px); border: 1px solid #e9e0d6; border-radius: 7px; background: #fff; box-shadow: 0 12px 36px #422a200b; }
.hom-payment-brand { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 35px; padding-bottom: 17px; border-bottom: 1px solid #eee5da; }
.hom-payment-brand img { width: 135px; max-height: 55px; object-fit: contain; }
.hom-payment-brand > span { color: #66805d; font-size: 10px; font-weight: 700; }
.hom-payment-card h1, .hom-order-success-card h1 { margin: 3px 0 9px; color: #342c27; font: 32px / 1.2 Georgia, serif; }
.hom-payment-copy, .hom-order-success-card > p { color: #756b62; font-size: 12px; line-height: 1.7; }
.hom-payment-total { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 22px 0; padding: 16px 0; border-top: 1px solid #eee5da; border-bottom: 1px solid #eee5da; color: #655b52; font-size: 12px; }
.hom-payment-total strong { color: #342c27; font-size: 23px; }
.hom-payment-alert { margin-bottom: 12px; padding: 11px; border-radius: 4px; color: #3c633f; background: #f0f7ef; font-size: 11px; line-height: 1.55; }
.hom-payment-alert.is-error { color: #843c34; background: #fff0ec; }
.hom-order-success-card { text-align: center; }
.hom-order-success-icon { display: grid; width: 58px; height: 58px; margin: 0 auto 18px; place-items: center; border-radius: 50%; color: #fff; background: #6a824e; font-size: 25px; }
.hom-order-receipt { display: grid; grid-template-columns: 1fr auto; gap: 11px; margin: 24px 0; padding: 16px; border: 1px solid #eee5da; border-radius: 4px; background: #fffdfa; text-align: left; }
.hom-order-receipt span { color: #81766d; font-size: 11px; }
.hom-order-receipt strong { color: #433a34; font-size: 11px; text-align: right; }
.hom-order-success-card .hom-checkout-submit { margin-top: 13px; }
.hom-order-account-claim { margin: 24px 0 0; padding: 20px; border: 1px solid #eadcc8; border-radius: 5px; background: #fbf7f0; text-align: left; }
.hom-order-account-claim h2 { margin: 0 0 8px; color: #641d2b; font: 21px Georgia,serif; }
.hom-order-account-claim > p { margin: 0 0 16px; color: #756b62; font-size: 11px; line-height: 1.65; }
.hom-account-code-form { display: grid; gap: 7px; }
.hom-account-code-form label { color: #544b44; font-size: 11px; font-weight: 700; }
.hom-account-code-form > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.hom-account-code-form input { min-width: 0; padding: 11px 12px; border: 1px solid #ded6cc; border-radius: 4px; background: #fff; font: inherit; letter-spacing: .15em; }
.hom-account-code-form input:focus { outline: 2px solid #b58a5240; border-color: #9a6c57; }
.hom-account-code-form button { padding: 10px 13px; border: 0; border-radius: 4px; color: #fff; background: #6b2432; font-size: 10px; font-weight: 700; cursor: pointer; }
.hom-account-resend { margin-top: 10px; }
.hom-account-resend button { padding: 0; border: 0; color: #6b2432; background: transparent; font-size: 10px; font-weight: 700; text-decoration: underline; cursor: pointer; }
.hom-account-notice { margin: 14px 0; padding: 11px; border: 1px solid #c9ddce; border-radius: 4px; color: #285a38; background: #f2faf4; font-size: 11px; line-height: 1.55; }
.hom-account-error { margin: 0 0 12px; padding: 10px; border: 1px solid #e6c8c7; border-radius: 4px; color: #8c252b; background: #fff4f2; font-size: 11px; }
.hom-order-account-link,.hom-order-continue { display: block; margin-top: 12px; color: #6b2432; font-size: 11px; font-weight: 700; text-decoration: underline; }
.hom-order-continue { margin-top: 24px; text-decoration: none; }
.hom-invoice-action { text-decoration: none; }
.hom-invoice-action:hover { color: white; }
.hom-account-orders { min-height: 56vh; padding: 34px 0 70px; background: #fffdfa; }
.hom-account-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 0 0 25px; }
.hom-account-heading h1 { margin: 3px 0 5px; color: #342c27; font: 38px Georgia,serif; }
.hom-account-heading p:not(.hom-detail-eyebrow) { margin: 0; color: #756b62; font-size: 12px; }
.hom-account-heading > a { color: #6b2432; font-size: 11px; font-weight: 700; }
.hom-account-order-card { margin: 0 0 14px; padding: 18px 20px; border: 1px solid #e9e0d6; border-radius: 5px; background: #fff; }
.hom-account-order-top,.hom-account-order-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hom-account-order-top > div,.hom-account-order-bottom > div { display: grid; gap: 5px; }
.hom-account-order-top > div > span,.hom-account-order-bottom small { color: #8c7c6c; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.hom-account-order-top > div > strong { color: #3b322c; font-size: 13px; }
.hom-account-order-top small { color: #81766d; font-size: 10px; }
.hom-account-status { padding: 6px 9px; border-radius: 20px; color: #516c46; background: #f0f5eb; font-size: 10px; text-transform: capitalize; }
.hom-account-order-bottom { margin-top: 15px; padding-top: 14px; border-top: 1px solid #eee5da; }
.hom-account-order-bottom > div > strong { color: #3b322c; font-size: 11px; }
.hom-account-order-bottom > a { color: #6b2432; font-size: 11px; font-weight: 700; white-space: nowrap; }
.hom-account-empty { padding: 35px; border: 1px dashed #dfcdb3; text-align: center; }
.hom-account-empty h2 { color: #641d2b; font: 22px Georgia,serif; }
.hom-account-empty p { color: #756b62; font-size: 12px; }
.hom-account-empty a { color: #6b2432; font-size: 12px; font-weight: 700; }
.hom-account-pagination { margin-top: 20px; }
@media(max-width:767px){.hom-account-heading{align-items:flex-start;flex-direction:column}.hom-account-heading h1{font-size:32px}.hom-account-order-bottom{align-items:flex-start;flex-wrap:wrap}.hom-account-order-bottom > div{min-width:40%}.hom-account-order-bottom > a{margin-top:4px}.hom-order-account-claim{padding:15px}.hom-account-code-form > div{grid-template-columns:1fr}.hom-account-code-form button{min-height:42px}}
@media (max-width: 767px) {
    .hom-payment-page, .hom-order-success-page { padding: 20px 0 45px; }
    .hom-payment-card, .hom-order-success-card { margin: 14px auto; }
    .hom-payment-card h1, .hom-order-success-card h1 { font-size: 28px; }
}
