:root {
    --ink:#24231f;
    --muted:#807b77;
    --blush:#f7e7e4;
    --rose:#d87088;
    --line:#eee7e3;
    --paper:#ffffff;
    --card-image:#f5eeeb;
    --card-action:#f6efed;
    --card-action-hover:#ecdfda;
    --card-badge:#d98d4c;
    --rating-star:#f59a23
}
* {
    box-sizing:border-box
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:Arial,Helvetica,sans-serif;
    font-size:14px
}
a {
    color:inherit;
    text-decoration:none
}
button,input,select,textarea {
    font:inherit
}
button,a,input,select,textarea {
    touch-action:manipulation
}
button {
    cursor:pointer
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
    outline:3px solid #b34f69;
    outline-offset:3px
}
h1,h2,h3,p {
    margin-top:0
}
h2 {
    font-size:25px;
    letter-spacing:-.6px
}
h3 {
    font-size:16px
}
p {
    line-height:1.6
}
.container {
    width:min(1280px,calc(100% - 80px));
    margin:auto
}
.announcement {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:clamp(18px,4vw,58px);
    min-height:38px;
    padding:8px 24px;
    background:#3d3936;
    color:#fffaf7;
    font-size:10px;
    letter-spacing:.45px;
    white-space:nowrap
}
.announcement-categories {
    color:#e7d3c7
}
.announcement-categories i {
    margin:0 5px;
    color:#c99078;
    font-style:normal
}
.header {
    position:sticky;
    top:0;
    z-index:1000;
    display:flex;
    align-items:center;
    gap:26px;
    padding:20px 35px;
    background:white;
    border-bottom:1px solid var(--line)
}
.wordmark {
    display:inline-flex;
    align-items:center;
    font-family:Georgia,serif;
    font-size:23px;
    letter-spacing:2px;
    white-space:nowrap
}
.wordmark img {
    display:block;
    width:72px;
    max-height:42px;
    object-fit:contain
}
.header .wordmark img,
.footer .wordmark img {
    filter:grayscale(1) sepia(.72) saturate(.72) brightness(.78)
}
.brand-mark {
    font-size:25px;
    color:#aa9586
}
.navigation {
    display:flex;
    gap:20px;
    font-size:12px;
    font-weight:600;
    flex:1;
    justify-content:center
}
.mobile-language-control {
    display:none
}
.navigation a:hover,.text-link:hover {
    color:var(--rose)
}
.header-search {
    display:flex;
    align-items:center;
    background:#f3f0ee;
    border-radius:5px;
    padding:3px 8px;
    width:190px
}
.header-search input {
    background:none;
    border:0;
    padding:7px;
    min-width:0;
    width:100%;
    font-size:11px
}
.header-actions {
    display:flex;
    align-items:center;
    gap:14px
}
.icon {
    width:22px;
    height:22px;
    vertical-align:middle
}
.icon-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0;
    background:transparent;
    border:0;
    color:var(--ink)
}
.icon-button .icon {
    width:19px;
    height:19px
}
.bag-link {
    position:relative;
    width:22px;
    height:22px
}
.bag-count {
    position:absolute;
    top:-3px;
    right:-3px;
    transform:translate(20%,-15%);
    background:#c99276;
    color:white;
    border-radius:10px;
    padding:1px 4px;
    font-size:9px
}
.menu-toggle {
    display:none
}
.hero {
    position:relative;
    background:#eee2d9;
    min-height:390px;
    display:flex;
    overflow:hidden
}
.hero-copy {
    padding:60px 4% 60px 9%;
    width:47%;
    z-index:1
}
.eyebrow {
    font-size:11px;
    letter-spacing:2px;
    font-weight:600;
    color:#716a62
}
.hero h1 {
    font-family:Georgia,serif;
    font-weight:400;
    font-size:clamp(40px,4.3vw,65px);
    line-height:1.02;
    letter-spacing:-2px;
    max-width:420px
}
.hero-copy>p:not(.eyebrow) {
    max-width:320px;
    color:#60574f;
    font-size:16px;
    margin:24px 0
}
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    border:1px solid var(--ink);
    background:var(--ink);
    color:white;
    border-radius:4px;
    padding:14px 22px;
    font-size:12px;
    font-weight:600
}
.button:hover {
    background:#464039
}
.button .icon {
    width:16px;
    height:16px
}
.button.small {
    padding:10px 15px;
    font-size:11px
}
.hero-photo {
    position:absolute;
    right:0;
    top:0;
    bottom:0;
    width:55%;
    overflow:hidden
}
.hero-photo img {
    position:absolute;
    width:190.2%;
    max-width:none;
    right:0;
    top:-26.9%
}
.hero-full .hero-photo {
    width:100%;
    opacity:.55
}
.hero-full .hero-copy {
    position:relative;
    width:70%;
    padding-inline-start:9%;
    background:linear-gradient(90deg,#eee2d9 0%,#eee2d9e8 58%,transparent 100%)
}
.hero-full .hero-photo img {
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover
}
.hero-pagination {
    display:flex;
    gap:6px;
    position:absolute;
    bottom:20px;
    left:50%;
    z-index:2
}
.hero-pagination span {
    width:5px;
    height:5px;
    border-radius:50%;
    background:#fff8
}
.hero-pagination .active {
    background:white
}
.benefits {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding:25px 0;
    gap:30px
}
.benefits>a {
    display:flex;
    align-items:center;
    gap:14px;
    justify-content:center
}
.benefits .icon {
    width:30px;
    height:30px
}
.benefits strong {
    display:block;
    font-size:12px
}
.benefits small {
    display:block;
    color:var(--muted);
    font-size:10px;
    margin-top:4px
}
.category-strip {
    display:grid;
    grid-template-columns:repeat(6,1fr);
    padding:25px 20px 32px;
    gap:24px;
    text-align:center
}
.category-circle {
    display:flex;
    width:88px;
    height:88px;
    border-radius:50%;
    background:linear-gradient(145deg,#f8ece8,#edd6cf);
    align-items:center;
    justify-content:center;
    margin:0 auto 12px
}
.category-circle .icon {
    width:36px;
    height:36px;
    color:#9c7060
}
.category-strip strong {
    font-size:12px
}
.promo-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    margin-bottom:40px
}
.promo {
    position:relative;
    overflow:hidden;
    padding:30px;
    border-radius:5px;
    min-height:190px
}
.promo-skin {
    background:#e9e2d7
}
.promo-bundle {
    background:#f3cece
}
.promo small {
    font-size:9px;
    letter-spacing:1.8px
}
.promo h2 {
    margin:10px 0 6px;
    max-width:280px;
    font-size:28px
}
.promo p {
    font-size:12px
}
.mini-button {
    display:inline-block;
    padding:9px 14px;
    background:#51433a;
    color:white;
    font-size:10px;
    border-radius:3px
}
.promo-bundle .mini-button {
    background:#882f41
}
.promo-visual {
    position:absolute;
    right:35px;
    bottom:-20px;
    font-size:160px;
    color:#8b715241;
    transform:rotate(-16deg)
}
.promo-bundle .promo-visual {
    color:#a23c5844
}
.product-section {
    padding-bottom:38px
}
.section-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    margin:0 0 22px
}
.section-heading h2 {
    margin:0
}
.section-heading p {
    font-size:12px;
    margin:5px 0 0
}
.category-tabs {
    display:flex;
    gap:24px;
    font-size:11px;
    color:#8a847d
}
.category-tabs .selected {
    border-bottom:1px solid var(--ink);
    padding-bottom:5px;
    color:var(--ink)
}
.text-link {
    font-size:11px;
    white-space:nowrap
}
.product-grid {
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:17px
}
.product-card {
    border-radius:5px;
    border:1px solid #f0ebe7;
    background:white;
    overflow:hidden;
    transition:transform .18s,box-shadow .18s
}
.product-grid .product-card {
    display:flex;
    min-width:0;
    flex-direction:column
}
.product-card:hover {
    transform:translateY(-3px);
    box-shadow:0 7px 22px #3626190b
}
.product-picture {
    position:relative;
    aspect-ratio:1.08;
    background:var(--card-image);
    overflow:hidden
}
.picture-link {
    display:block;
    height:100%;
    width:100%
}
.own-image {
    width:100%;
    height:100%;
    object-fit:cover
}
.product-card .own-image[src*="/studio-"] {
    object-fit:contain;
    background:#fff
}
.product-tag {
    position:absolute;
    top:9px;
    left:8px;
    padding:3px 5px;
    background:var(--card-badge);
    color:white;
    font-size:9px;
    border-radius:3px
}
.product-promotion-tag {
    position:absolute;
    top:34px;
    right:8px;
    padding:5px 7px;
    border-radius:999px;
    background:#c94e55;
    color:#fff;
    font-size:9px;
    font-weight:700;
    letter-spacing:.04em;
    box-shadow:0 3px 9px #4b162522
}
.wish-button {
    position:absolute;
    top:8px;
    right:8px
}
.wish-button .icon {
    width:14px;
    height:14px
}
.product-info {
    padding:12px 9px 9px
}
.product-grid .product-info {
    display:flex;
    flex:1;
    flex-direction:column
}
.product-info>small {
    font-size:9px;
    color:var(--muted)
}
.product-info h3 {
    font-size:12px;
    line-height:1.4;
    margin:5px 0;
    min-height:33px
}
.product-variant-names {
    display:flex;
    gap:5px;
    min-width:0;
    margin:0 0 6px;
    overflow:hidden
}
.product-variant-names span {
    max-width:50%;
    overflow:hidden;
    padding:3px 6px;
    border:1px solid #eee6e1;
    border-radius:999px;
    color:#625d5a;
    font-size:9px;
    line-height:1.2;
    text-overflow:ellipsis;
    white-space:nowrap
}
.product-color-swatches {
    display:flex;
    align-items:center;
    gap:6px;
    min-height:18px;
    margin:2px 0 6px
}
.product-color-swatch {
    display:block;
    width:18px;
    height:18px;
    flex:0 0 18px
}
.product-rating {
    display:flex;
    align-items:center;
    gap:5px;
    margin:0 0 7px;
    color:#625d5a;
    font-size:10px
}
.product-rating-stars {
    color:var(--rating-star);
    font-size:12px;
    letter-spacing:.02em
}
.product-rating small {
    color:var(--muted);
    font-size:9px
}
.product-price {
    font-size:12px;
    font-weight:bold;
    margin-bottom:10px
}
.product-grid .product-price {
    margin-top:auto
}
.product-price s,
.detail-price s {
    margin-right:6px;
    color:var(--muted);
    font-size:.82em;
    font-weight:normal
}
.product-price strong,
.detail-price strong {
    color:var(--rose);
    font-weight:700
}
.product-price small {
    font-size:9px;
    color:var(--muted);
    font-weight:normal
}
.quick-add {
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    border:0;
    background:var(--card-action);
    color:var(--ink);
    border-radius:3px;
    padding:7px 9px;
    font-size:10px
}
.quick-add:hover {
    background:var(--card-action-hover)
}
.muted {
    color:var(--muted)
}
.bundle-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px
}
.bundle-card {
    position:relative;
    overflow:hidden;
    border-radius:5px;
    padding:30px;
    min-height:180px;
    background:linear-gradient(125deg,#eadfd1,#f9efe6)
}
.bundle-card small {
    font-size:9px;
    letter-spacing:1px
}
.bundle-card h3 {
    font-family:Georgia,serif;
    font-size:27px;
    margin:8px 0
}
.bundle-card p {
    font-size:12px;
    max-width:70%
}
.bundle-card strong {
    display:block;
    margin-bottom:14px
}
.bundle-card .icon {
    position:absolute;
    right:20px;
    bottom:20px;
    width:100px;
    height:100px;
    color:#9eab8555
}
.deals-section {
    background:#fff7f6;
    padding:30px 0 40px;
    margin-bottom:30px
}
.bolt {
    color:#e7708b
}
.countdown {
    display:flex;
    gap:9px;
    color:#cf6081;
    font-size:16px
}
.countdown span {
    padding:12px;
    background:#fadce4;
    border-radius:4px
}
.philosophy {
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#eeeae2;
    margin-bottom:38px;
    min-height:320px;
    overflow:hidden
}
.philosophy-photo {
    overflow:hidden;
    position:relative;
    min-height:320px
}
.philosophy-photo img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    max-width:none;
    object-fit:cover;
    object-position:center
}
.philosophy-copy {
    padding:40px 12% 40px 40px
}
.philosophy-copy h2 {
    font-family:Georgia,serif;
    font-weight:400;
    font-size:42px;
    line-height:1.05
}
.philosophy-copy>p:not(.eyebrow) {
    font-size:13px;
    max-width:380px;
    color:#68645e
}
.philosophy-values {
    display:flex;
    gap:30px;
    margin:25px 0
}
.philosophy-values span {
    font-size:10px;
    display:grid;
    gap:8px;
    text-align:center
}
.philosophy-values .icon {
    margin:auto
}
.reviews-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px
}
.reviews-grid blockquote {
    margin:0;
    background:#fcf8f4;
    padding:24px
}
.reviews-grid p {
    margin-top:10px
}
.stars {
    color:#bf864a
}
.review-meta-row {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:18px
}
.review-meta-row .stars {
    margin:0
}
.review-author {
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0
}
.review-author-icon {
    display:grid;
    width:34px;
    height:34px;
    flex:0 0 34px;
    place-items:center;
    border-radius:50%;
    background:#f8f0ec;
    color:#805b1c
}
.review-author-icon .icon {
    width:18px;
    height:18px
}
.review-author strong {
    font-size:13px;
    font-weight:600;
    overflow-wrap:anywhere
}
.review-body {
    margin:12px 0 0;
    line-height:1.6;
    overflow-wrap:anywhere
}
.review-form .field-error {
    display:block;
    margin-top:6px;
    color:#a33a40;
    font-size:12px
}
.reels-grid {
    display:flex;
    gap:20px;
    overflow:auto
}
.reels-grid figure {
    margin:0;
    width:180px
}
.reels-grid video {
    width:180px;
    max-height:300px;
    border-radius:8px
}
.newsletter {
    background:linear-gradient(115deg,#efbcc0,#f8d9d2);
    padding:32px 0
}
.newsletter>.container {
    display:flex;
    align-items:center;
    gap:40px;
    justify-content:space-between
}
.newsletter h2 {
    font-size:20px;
    margin-bottom:7px
}
.newsletter p {
    font-size:12px;
    margin:0
}
.newsletter form {
    width:46%
}
.subscribe-input {
    display:flex;
    align-items:stretch;
    gap:0;
    min-height:46px
}
.subscribe-input input {
    flex:1;
    min-width:0;
    margin-top:0;
    padding:12px 14px;
    border-inline-end:0;
    border-start-end-radius:0;
    border-end-end-radius:0
}
.subscribe-input .button {
    flex:0 0 auto;
    padding:12px 24px;
    border-radius:0;
    border-start-end-radius:4px;
    border-end-end-radius:4px;
    white-space:nowrap
}
.consent {
    display:block;
    margin-top:10px;
    font-size:10px
}
.consent input {
    width:auto;
    display:inline-block;
    vertical-align:middle
}
.consent a {
    text-decoration:underline
}
.footer {
    display:grid;
    grid-template-columns:1.4fr repeat(4,1fr);
    gap:35px;
    width:min(1280px,calc(100% - 80px));
    margin:40px auto 0;
    color:#76716c;
    font-size:11px
}
.footer h3 {
    font-size:12px;
    color:var(--ink);
    margin:0 0 12px
}
.footer a:not(.wordmark) {
    display:block;
    line-height:1.9
}
.footer .wordmark {
    font-size:20px;
    color:var(--ink);
    display:block;
    margin-bottom:12px
}
.footer-bottom {
    grid-column:1/-1;
    border-top:1px solid var(--line);
    padding:20px 0;
    display:flex;
    justify-content:space-between
}
.page-section {
    padding:50px 0;
    min-height:55vh
}
.page-section h1 {
    font-family:Georgia,serif;
    font-size:44px;
    font-weight:400;
    letter-spacing:-1px
}
.narrow {
    max-width:650px
}
.stack {
    display:grid;
    gap:17px
}
.stack .button {
    justify-self:start
}
.catalog-filter {
    display:flex;
    flex-wrap:wrap;
    gap:20px;
    align-items:end;
    background:#f8f1ed;
    padding:20px;
    margin:25px 0
}
.catalog-filter label {
    flex:1 1 160px
}
.catalog-grid {
    grid-template-columns:repeat(4,minmax(0,1fr))
}
.catalog-grid .product-picture {
    aspect-ratio:1.08
}
.product-detail {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    margin-top:30px;
    margin-bottom:60px
}
.product-detail .product-picture {
    height:auto
}
.product-detail .description {
    color:#726a64
}
.product-detail .stack {
    max-width:350px
}
.checkout-grid {
    display:grid;
    grid-template-columns:1.5fr 1fr;
    gap:60px;
    margin-bottom:40px
}
.bag-loyalty-note {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin:24px 0 30px;
    padding:20px 24px;
    background:#f8f0ec;
    border:1px solid #eee2dc;
    border-radius:5px
}
.bag-loyalty-note strong {
    display:block;
    margin-bottom:5px;
    font-size:15px
}
.bag-loyalty-note p {
    margin:0;
    color:var(--muted);
    font-size:13px;
    line-height:1.6
}
.bag-loyalty-note .button {
    flex:0 0 auto
}
.bag-row {
    display:flex;
    justify-content:space-between;
    gap:25px;
    padding:20px 0;
    border-bottom:1px solid var(--line)
}
.bag-product {
    display:flex;
    align-items:center;
    gap:16px;
    min-width:0
}
.bag-product-image {
    width:76px;
    height:76px;
    flex:0 0 76px;
    overflow:hidden;
    border-radius:5px;
    background:#f8f0ec
}
.bag-product-image img,.bag-product-image svg {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover
}
.bag-row p {
    font-size:12px;
    color:var(--muted);
    margin:8px 0 0
}
.bag-row small {
    display:block;
    color:var(--rose);
    margin-top:5px
}
.qty-stepper {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:10px
}
.qty-stepper form {
    margin:0
}
.qty-button {
    width:30px;
    height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #ded5ce;
    background:white;
    border-radius:4px;
    font-size:16px;
    line-height:1;
    padding:0
}
.qty-button:hover:not(:disabled) {
    background:#f6efec
}
.qty-button:disabled {
    opacity:.45;
    cursor:not-allowed
}
.qty-value {
    min-width:58px;
    text-align:center;
    font-size:12px
}
.bag-line-side {
    text-align:right;
    display:grid;
    gap:8px;
    align-content:start;
    justify-items:end
}
.bag-side-top {
    display:flex;
    align-items:center;
    gap:12px
}
.bag-side-top form {
    margin:0
}
.icon-button.danger {
    color:#8a847d
}
.icon-button.danger:hover {
    color:#a9324a
}
.icon-button.danger .icon {
    width:18px;
    height:18px
}
.inline-form {
    align-items:stretch
}
.inline-form input {
    margin-top:0;
    flex:1;
    min-width:0;
    height:auto
}
.inline-form .button {
    align-self:stretch;
    display:inline-flex;
    align-items:center;
    flex-shrink:0;
    margin:0
}
.order-summary {
    padding:25px;
    background:#f8f0ec;
    border-radius:5px
}
.order-summary p {
    display:flex;
    justify-content:space-between
}
.order-summary small {
    line-height:1.7;
    display:block
}
.order-summary .total {
    border-top:1px solid #e6d6cd;
    padding-top:15px
}
.checkout-form {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    max-width:750px
}
.checkout-form .button {
    justify-self:start
}
.inline-form {
    display:flex;
    gap:10px;
    margin-top:25px
}
.inline-form [data-coupon-status] {
    flex:1 0 100%;
    min-height:1.4em;
    margin:0;
    font-size:12px;
    color:#477357
}
.inline-form [data-coupon-status].is-error {
    color:#a9324a
}
.inline-form [data-coupon-status]:empty {
    display:none
}
.text-button {
    border:0;
    padding:6px 0;
    background:none;
    text-decoration:underline;
    font-size:11px;
    color:var(--muted)
}
label {
    display:block;
    font-size:12px;
    font-weight:600
}
input,select,textarea {
    display:block;
    width:100%;
    background:white;
    border:1px solid #ded5ce;
    border-radius:4px;
    padding:12px;
    margin-top:7px;
    color:var(--ink)
}
input[type=checkbox] {
    display:inline-block;
    width:auto
}
textarea {
    min-height:110px;
    resize:vertical
}
.notice {
    padding:14px 5%;
    font-size:13px
}
.notice.success {
    background:#eff6ed
}
.notice.error {
    background:#fff0f1;
    color:#8a263a
}
.notice ul {
    margin:0;
    padding-left:16px
}
.empty-state {
    text-align:center;
    padding:70px 20px;
    color:var(--muted);
    grid-column:1/-1
}
.pagination {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    margin-top:30px;
    font-size:12px
}
.pagination a {
    padding:9px;
    border:1px solid var(--line);
    border-radius:3px
}
.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    border:0
}
.admin-shell {
    display:grid;
    grid-template-columns:210px minmax(0,1fr);
    min-height:100vh
}
.admin-nav {
    min-width:0;
    max-width:100%;
    background:#292724;
    color:white;
    padding:30px 20px
}
.admin-nav .wordmark {
    font-size:19px
}
.admin-nav nav {
    margin-top:35px
}
.admin-nav a:not(.wordmark) {
    display:block;
    font-size:12px;
    padding:10px;
    border-radius:4px
}
.admin-nav a:hover {
    background:#49413b
}
.admin-main {
    padding:35px;
    min-width:0
}
.admin-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:35px
}
.admin-header h1 {
    font-family:Georgia,serif;
    font-size:32px;
    font-weight:400;
    margin:0
}
.admin-cards {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px
}
.admin-cards>div {
    padding:25px;
    background:#f3e8e0
}
.admin-cards strong {
    display:block;
    font-size:32px;
    margin-top:10px
}
.admin-table {
    border-collapse:collapse;
    width:100%;
    font-size:12px
}
.admin-table th {
    text-align:start;
    background:#f8f1ed
}
.admin-table th,.admin-table td {
    padding:12px;
    border-bottom:1px solid var(--line);
    text-align:start;
    vertical-align:middle
}
.table-wrap {
    overflow:auto;
    margin-bottom:30px
}
.admin-form {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
    max-width:800px;
    padding:25px;
    background:#f9f5f1
}
.admin-form label { min-width:0; overflow-wrap:anywhere; }
.admin-form .button {
    align-self:end;
    justify-self:start
}
.admin-form-section { margin-bottom:28px; }
.admin-form-section:last-of-type { margin-bottom:8px; }
.admin-form-section > h3 { font-size:14px; margin:0 0 14px; }
.admin-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; max-width:900px; }
.admin-form-grid .field-wide { grid-column:1/-1; }
.admin-form-wide { margin-bottom:20px; }
.record-field { display:grid; gap:8px; min-width:0; align-content:start; }
.record-field-title { font-weight:600; font-size:12px; display:block; }
.record-check { display:flex !important; flex-direction:row !important; align-items:center; gap:10px; }
.record-actions { display:flex; align-items:center; gap:16px; margin-top:24px; }
.form-error { color:#a33b3b; font-size:12px; }
.media-field { display:grid; gap:10px; }
.media-field-preview { display:flex; align-items:center; gap:12px; }
.media-field-preview img { width:120px; height:120px; object-fit:cover; border-radius:12px; border:1px solid var(--line); }
.media-dropzone-compact { padding:20px !important; }
.media-dropzone.uploading { opacity:.6; pointer-events:none; }
.media-path-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.media-path-row input { flex:1; min-width:200px; }
.media-gallery-grid { display:flex; flex-wrap:wrap; gap:10px; }
.media-gallery-item { position:relative; width:96px; height:96px; border-radius:10px; overflow:hidden; border:1px solid var(--line); background:#f4ede8; }
.media-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; }
.media-gallery-remove { position:absolute; top:4px; right:4px; width:24px; height:24px; border:0; border-radius:50%; background:#000000aa; color:#fff; font-size:14px; line-height:1; cursor:pointer; }
.media-gallery-empty { font-size:12px; color:var(--muted); padding:12px 0; }
.media-gallery-grid + .media-dropzone { margin-top:4px; }
.media-error { color:#a33b3b; font-size:12px; margin:0; }
.variant-thumb { width:56px; height:56px; object-fit:cover; border-radius:8px; }
.color-plate { display:flex; align-items:center; gap:10px; margin-top:7px; }
.color-plate input[type="color"] { width:52px; height:40px; padding:2px; border:1px solid var(--line); border-radius:8px; background:#fff; cursor:pointer; flex-shrink:0; }
.color-plate input[type="text"] { flex:1; min-width:0; }
@media (max-width:760px) { .admin-form-grid { grid-template-columns:minmax(0,1fr); } }
.field-note {
    font-weight:normal;
    color:var(--muted);
    font-size:10px
}
.badge {
    display:inline-block;
    border-radius:20px;
    background:#eee2d9;
    padding:5px 10px;
    font-size:11px
}
.stat-number {
    font-size:40px
}

/* Let content pages size to their content instead of reserving most of a viewport. */
.page-section {
    min-height: 0;
}
.details-text {
    white-space:pre-wrap;
    font-size:11px;
    max-width:400px;
    overflow-wrap:anywhere
}
@media(min-width:1500px) {
    .hero {
    min-height:450px
}

}
@media(max-width:1100px) {
    .header {
    gap:15px;
    padding:18px 25px
}
.navigation {
    gap:12px
}
.header-search {
    width:150px
}
.navigation a:nth-child(5),.navigation a:nth-child(6) {
    display:none
}
.container {
    width:calc(100% - 50px)
}
.hero-copy {
    padding-left:6%
}
.hero h1 {
    font-size:48px
}
.product-grid {
    gap:12px
}
.category-tabs {
    gap:14px
}
.footer {
    width:calc(100% - 50px)
}

.philosophy-copy {
    padding-right:30px
}
}
@media(max-width:760px) {
    .hero-full .hero-photo {
        right:0;
        width:100%;
        opacity:.55
    }
    .hero-full .hero-copy {
        width:85%;
        background:linear-gradient(90deg,#eee2d9 0%,#eee2d9e8 62%,transparent 100%)
    }
    .bag-loyalty-note {
        align-items:flex-start;
        flex-direction:column;
        gap:14px;
        padding:18px
    }

    .announcement {
        justify-content:flex-start;
        gap:18px;
        min-height:34px;
        padding:8px 18px;
        overflow-x:auto;
        font-size:9px;
        scrollbar-width:none
    }
    .announcement::-webkit-scrollbar {
        display:none
    }
    .announcement-categories {
        display:none
    }
.header {
    flex-wrap:wrap;
    padding:15px 20px;
    gap:14px
}
.wordmark {
    font-size:21px
}
.header-actions {
    margin-left:auto
}
.header-actions .header-language-switcher {
    display:none
}
.menu-toggle {
    display:flex;
    order:-1
}
.navigation {
    display:none;
    order:4;
    flex:1 0 100%;
    flex-wrap:wrap;
    padding:15px
}
.navigation.open {
    display:flex
}
.navigation.open {
    flex-direction:column;
    align-items:stretch;
    gap:4px
}
.navigation.open>a {
    padding:9px 2px
}
.mobile-language-control {
    display:block;
    margin-top:8px;
    padding-top:14px;
    border-top:1px solid var(--line)
}
.mobile-language-control .language-switcher {
    width:max-content
}
.mobile-language-control .language-switcher-menu {
    top:auto;
    bottom:calc(100% + 8px)
}
.header-search {
    order:5;
    width:100%;
    padding:0 8px
}
.container {
    width:calc(100% - 36px)
}
.hero {
    min-height:390px
}
.hero-photo {
    width:76%;
    opacity:.45;
    right:-15%
}
.hero-photo img {
    top:-17%;
    width:230%
}
.hero-copy {
    width:80%;
    padding:55px 20px 55px 7%
}
.hero h1 {
    font-size:46px;
    max-width:320px
}
.hero-copy>p:not(.eyebrow) {
    font-size:14px;
    max-width:250px
}
.benefits {
    grid-template-columns:1fr 1fr;
    gap:20px;
    padding:22px 0
}
.benefits>a {
    justify-content:flex-start
}
.benefits .icon {
    width:25px
}
.category-strip {
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    padding:20px 0 30px
}
.category-circle {
    width:66px;
    height:66px
}
.category-circle .icon {
    width:27px
}
.promo-grid {
    grid-template-columns:1fr;
    gap:12px;
    margin-bottom:30px
}
.promo {
    padding:25px;
    min-height:160px
}
.promo h2 {
    font-size:26px
}
.promo-visual {
    font-size:135px
}
.product-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px
}
.section-heading {
    flex-wrap:wrap;
    gap:15px;
    margin-bottom:18px
}
.section-heading h2 {
    font-size:22px
}
.category-tabs {
    order:3;
    width:100%;
    overflow:auto
}
.product-info h3 {
    font-size:13px;
    min-height:36px
}
.product-info {
    padding:12px
}
.quick-add {
    font-size:11px;
    padding:9px
}
.bundle-grid {
    grid-template-columns:1fr
}
.countdown span {
    padding:8px;
    font-size:13px
}
.philosophy {
    grid-template-columns:1fr
}
.philosophy-photo {
    min-height:230px;
    height:230px
}
.philosophy-copy {
    padding:32px 25px
}
.philosophy-copy h2 {
    font-size:35px
}
.reviews-grid {
    grid-template-columns:1fr
}
.newsletter>.container {
    display:block
}
.newsletter form {
    width:100%;
    margin-top:20px
}
.subscribe-input .button {
    padding:12px 18px
}
.footer {
    width:calc(100% - 36px);
    grid-template-columns:1fr 1fr;
    gap:30px
}
.footer>div:first-child {
    grid-column:1/-1
}
.footer-bottom {
    flex-direction:column;
    gap:10px
}
.catalog-filter {
    flex-wrap:wrap;
    gap:15px;
    padding:15px
}
.catalog-filter label {
    flex:1 0 40%
}
.catalog-filter label:first-child {
    flex:1 0 100%
}
.catalog-filter select {
    min-width:0;
    width:100%
}
.catalog-filter .button {
    width:100%
}
.page-section {
    padding:35px 0
}
.page-section h1 {
    font-size:35px
}
.product-detail {
    grid-template-columns:1fr;
    gap:25px
}
.checkout-grid {
    grid-template-columns:1fr;
    gap:25px
}
.checkout-form {
    grid-template-columns:1fr
}
.admin-shell {
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto 1fr
}
.admin-nav {
    padding:15px
}
.admin-nav nav {
    display:flex;
    overflow:auto;
    margin-top:15px
}
.admin-nav a:not(.wordmark) {
    white-space:nowrap
}
.admin-main {
    padding:20px
}
.admin-header {
    gap:20px;
    flex-wrap:wrap
}
.admin-cards {
    grid-template-columns:1fr
}
.admin-form {
    grid-template-columns:1fr;
    padding:20px
}

}

@media (max-width:420px) {
    .catalog-filter label { flex:1 0 100%; }
}

@media (max-width:380px) {
    .header {
        gap:8px;
        padding:12px 14px
    }
    .header .wordmark {
        font-size:18px;
        letter-spacing:1px
    }
    .header .brand-mark {
        font-size:22px
    }
    .header-actions {
        gap:8px
    }
    .header-actions .icon-button,
    .header-actions .bag-link {
        width:19px;
        height:22px
    }
    .header-actions .icon {
        width:18px;
        height:18px
    }
}

.campaign-art { display:block; width:100%; max-height:360px; object-fit:cover; border-radius:12px; }
.preserve-lines { white-space:pre-line; overflow-wrap:anywhere; }

.order-confirmation-shell {
    width:min(1060px,calc(100% - 48px));
    padding-top:64px;
    padding-bottom:82px
}
.order-confirmation-heading {
    max-width:680px;
    margin:0 auto 34px;
    text-align:center
}
.order-confirmation-mark {
    display:grid;
    place-items:center;
    width:54px;
    height:54px;
    margin:0 auto 20px;
    border:1px solid #d8c6b8;
    border-radius:50%;
    background:#f8f0ec;
    color:#5b765e;
    font-size:23px
}
.order-confirmation-heading .eyebrow {
    margin-bottom:12px
}
.order-confirmation-heading h1 {
    margin-bottom:12px;
    font-family:Georgia,serif;
    font-size:clamp(34px,4vw,48px);
    font-weight:400;
    letter-spacing:-1.1px
}
.order-confirmation-heading>p:last-child {
    margin-bottom:0;
    color:var(--muted)
}
.order-confirmation-meta {
    display:flex;
    justify-content:center;
    gap:clamp(32px,8vw,100px);
    margin:0 auto 28px;
    padding:18px 24px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line)
}
.order-confirmation-meta div {
    display:grid;
    gap:5px
}
.order-confirmation-meta span,.order-state-row>span {
    color:var(--muted);
    font-size:11px
}
.order-confirmation-meta strong {
    font-size:13px;
    letter-spacing:.4px
}
.order-confirmation-grid {
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(270px,.85fr);
    gap:22px;
    align-items:start
}
.order-receipt-card,.order-followup-card {
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    box-shadow:0 12px 34px #382c2010
}
.order-receipt-card {
    padding:26px 30px
}
.order-card-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:16px;
    padding-bottom:18px;
    border-bottom:1px solid var(--line)
}
.order-card-heading .eyebrow,.order-followup-card .eyebrow {
    margin-bottom:8px
}
.order-card-heading h2,.order-followup-card h2 {
    margin-bottom:0;
    font-family:Georgia,serif;
    font-size:25px;
    font-weight:400;
    letter-spacing:-.4px
}
.order-card-heading>span {
    color:var(--muted);
    font-size:12px
}
.order-confirmation-item {
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    gap:14px;
    align-items:center;
    padding:19px 0;
    border-bottom:1px solid var(--line)
}
.order-item-mark {
    display:grid;
    place-items:center;
    width:42px;
    height:48px;
    border-radius:4px;
    background:#f8f0ec;
    color:#aa9586;
    font-size:22px
}
.order-item-copy {
    display:grid;
    gap:6px;
    min-width:0
}
.order-item-copy strong {
    font-size:13px;
    line-height:1.5
}
.order-item-copy span {
    color:var(--muted);
    font-size:11px
}
.order-item-price {
    white-space:nowrap;
    font-size:12px
}
.order-confirmation-totals {
    display:grid;
    gap:12px;
    padding-top:19px
}
.order-confirmation-totals p {
    display:flex;
    justify-content:space-between;
    gap:16px;
    margin:0;
    color:#716a62;
    font-size:12px
}
.order-confirmation-totals p strong {
    color:var(--ink)
}
.order-confirmation-totals .order-grand-total {
    margin-top:3px;
    padding-top:15px;
    border-top:1px solid var(--line);
    color:var(--ink);
    font-size:14px
}
.order-confirmation-totals .order-grand-total strong {
    font-size:17px
}
.order-followup-card {
    padding:27px 26px;
    background:#f8f3ef
}
.order-followup-card h2 {
    margin-bottom:22px
}
.order-state-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:13px 0;
    border-top:1px solid #e7ded8
}
.order-state {
    display:inline-flex;
    align-items:center;
    gap:6px;
    border-radius:20px;
    padding:5px 10px;
    background:#fff;
    font-size:11px;
    font-weight:600;
    text-transform:capitalize
}
.order-state-pending::before,.order-state-unpaid::before {
    width:6px;
    height:6px;
    border-radius:50%;
    background:#bd8a57;
    content:""
}
.order-state-unpaid::before {
    background:#9f6c67
}
.order-payment-note {
    margin:15px 0 21px;
    color:#716a62;
    font-size:12px
}
.order-continue-button {
    width:100%;
    justify-content:space-between
}
@media(max-width:760px) {
    .order-confirmation-shell {
        width:calc(100% - 36px);
        padding-top:42px;
        padding-bottom:54px
    }
    .order-confirmation-grid {
        grid-template-columns:1fr;
        gap:16px
    }
    .order-confirmation-meta {
        justify-content:space-around;
        gap:20px
    }
}
@media(max-width:480px) {
    .order-confirmation-shell {
        width:calc(100% - 28px)
    }
    .order-confirmation-heading h1 {
        font-size:34px
    }
    .order-confirmation-meta {
        justify-content:space-between;
        padding:16px 8px
    }
    .order-receipt-card,.order-followup-card {
        padding:21px 18px
    }
    .order-confirmation-item {
        grid-template-columns:36px minmax(0,1fr) auto;
        gap:10px
    }
    .order-item-mark {
        width:36px;
        height:42px
    }
    .order-item-price {
        font-size:11px
    }
}
.spin-art { display:grid; place-items:center; width:180px; height:180px; margin:28px auto; border-radius:50%; background:conic-gradient(#edd6cc 0deg 60deg,#f4aab8 60deg 120deg,#f5e7dc 120deg 180deg,#c9909b 180deg 240deg,#ead5c3 240deg 300deg,#ebbec9 300deg 360deg); border:8px solid #fff; box-shadow:0 0 0 2px #e6d1c5; font-size:54px; color:white; }
.gift-code { overflow-wrap:anywhere; font-family:monospace; font-size:20px; padding:18px; border:1px dashed #d5bbae; }

.support-messages { display:grid; gap:14px; margin:24px 0; min-width:0; }
.support-message { padding:18px; border:1px solid #eee1d8; border-radius:12px; background:#fffdfb; min-width:0; overflow-wrap:anywhere; }
.support-message.own-message { background:#f8eded; border-color:#ebd4d4; }
.support-message small { font-size:11px; color:#82746a; }

/* Shop catalog layout */
.catalog-page {
    max-width:1250px;
    padding-top:28px;
    background-color:#fff;
    color:#25232a
}
.catalog-breadcrumb {
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:22px;
    color:#8a8990;
    font-size:12px
}
.catalog-breadcrumb span:last-child {
    color:#bb6267;
    font-weight:600
}
.catalog-layout {
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    grid-template-rows:auto 1fr;
    align-items:start;
    column-gap:28px;
    row-gap:17px
}
.catalog-filter-form {
    grid-column:1;
    grid-row:2;
    margin:0
}
.catalog-heading {
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px
}
.catalog-heading>div {
    display:flex;
    align-items:baseline;
    gap:11px
}
.catalog-heading h1 {
    margin:0;
    color:#24212a;
    font-family:Georgia,serif;
    font-size:32px;
    font-weight:400;
    letter-spacing:-.5px
}
.catalog-count {
    color:#88858b;
    font-size:12px
}
.catalog-sort {
    display:grid;
    gap:4px;
    color:#79767d;
    font-size:10px
}
.catalog-sort select {
    min-width:150px;
    padding:9px 30px 9px 11px;
    border:1px solid #e5e2e5;
    border-radius:8px;
    background-color:#fff;
    color:#28262b;
    font-size:12px
}
.catalog-sidebar {
    position:sticky;
    top:18px;
    padding:18px 17px;
    border:1px solid #e9e6e8;
    border-radius:14px;
    background:#fff
}
.catalog-sidebar h2 {
    margin:0;
    padding:0 0 13px;
    border-bottom:1px solid #eeecee;
    color:#2d2a31;
    font-size:13px;
    font-weight:700;
    letter-spacing:.11em;
    text-transform:uppercase
}
.catalog-filter-group {
    display:grid;
    gap:16px;
    min-width:0;
    margin:0;
    padding:30px 0 28px;
    border:0;
    border-bottom:1px solid #eeecee
}
.catalog-filter-group legend,
.catalog-filter-group h3 {
    float:none;
    width:100%;
    margin:0 0 12px;
    padding:0;
    color:#77747b;
    font-size:11px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase
}
.catalog-filter-group legend {
    display:block;
    margin:16px 0 14px
}
.catalog-filter-group + .catalog-filter-group {
    margin-top:20px
}
.catalog-filter-group>input {
    width:100%;
    min-width:0;
    padding:10px 12px;
    border:1px solid #e7e4e7;
    border-radius:8px;
    background:#fff;
    font-size:13px
}
.catalog-choice {
    display:flex;
    align-items:center;
    gap:10px;
    color:#343139;
    font-size:13px;
    line-height:1.4;
    padding:2px 0;
    cursor:pointer
}
.catalog-choice input {
    width:16px;
    height:16px;
    flex:0 0 16px;
    margin:0;
    accent-color:var(--ink)
}
.catalog-choice:has(input:checked) span {
    color:var(--ink);
    font-weight:600
}
.catalog-color-options {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:4px
}
.catalog-color-swatch-choice {
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:5px 10px 5px 6px;
    border:1px solid #e5e0dc;
    border-radius:999px;
    background:#fff;
    cursor:pointer;
    font-size:11px;
    font-weight:500;
    color:#3a3633;
    transition:border-color .15s ease, background-color .15s ease, transform .15s ease
}
.catalog-color-swatch-choice:hover {
    border-color:#b4aba5;
    background:#faf8f6;
    transform:translateY(-1px)
}
.catalog-color-swatch-choice:has(input:checked) {
    border-color:var(--ink);
    background:#f4ece7;
    font-weight:700;
    color:var(--ink);
    box-shadow:0 0 0 1px var(--ink)
}
.color-swatch-circle {
    display:inline-block;
    width:14px;
    height:14px;
    border-radius:50%;
    border:1px solid rgba(0,0,0,.15);
    flex-shrink:0
}
.swatch-black { background-color:#1f1f1f; }
.swatch-white { background-color:#fff; }
.swatch-ivory { background-color:#f5f0e6; }
.swatch-beige { background-color:#d9c3a5; }
.swatch-tan { background-color:#b9855a; }
.swatch-brown { background-color:#70452e; }
.swatch-red { background-color:#c62845; }
.swatch-coral { background-color:#f27d72; }
.swatch-pink { background-color:#e9a1b0; }
.swatch-rose { background-color:#ad495b; }
.swatch-berry { background-color:#7a2947; }
.swatch-burgundy { background-color:#641d36; }
.swatch-plum { background-color:#78456a; }
.swatch-purple { background-color:#8055a2; }
.swatch-blue { background-color:#4a77a8; }
.swatch-navy { background-color:#263b5a; }
.swatch-teal { background-color:#438b87; }
.swatch-green { background-color:#6f9273; }
.swatch-yellow { background-color:#e5c45b; }
.swatch-orange { background-color:#d98549; }
.catalog-price-fields {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:end;
    gap:7px;
    color:#969199;
    font-size:11px
}
.catalog-price-fields label {
    display:grid;
    gap:5px;
    color:#827f86;
    font-size:10px
}
.catalog-price-fields input {
    width:100%;
    min-width:0;
    padding:8px 6px;
    border:1px solid #e7e4e7;
    border-radius:6px;
    color:#333038;
    font-size:11px
}
.catalog-apply {
    width:100%;
    margin-top:14px;
    border-radius:7px;
    background:var(--ink);
    color:#fff;
    font-size:12px;
    font-weight:600
}
.catalog-clear {
    display:block;
    margin-top:10px;
    color:#77747b;
    font-size:11px;
    text-align:center
}
.catalog-results {
    grid-column:2;
    grid-row:2;
    min-width:0
}
.catalog-grid {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px
}
.catalog-grid .product-card {
    display:flex;
    min-width:0;
    flex-direction:column;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 2px 8px #27202a08
}
.catalog-grid .product-card:hover {
    transform:translateY(-2px);
    box-shadow:0 8px 20px #27202a12
}
.catalog-grid .product-picture {
    aspect-ratio:1.08;
    background:var(--card-image)
}
.catalog-grid .own-image {
    padding:0;
    object-fit:cover
}
.catalog-grid .product-tag {
    top:10px;
    left:10px;
    padding:5px 7px;
    border-radius:5px;
    background:var(--card-badge);
    font-size:9px
}
.catalog-grid .wish-button {
    top:9px;
    right:9px
}
.catalog-grid .wish-button .icon-button {
    width:30px;
    height:30px;
    border:1px solid #eeebed;
    border-radius:50%;
    background:#ffffffed
}
.catalog-grid .product-info {
    display:flex;
    flex:1;
    flex-direction:column;
    padding:10px 12px 12px
}
.catalog-grid .product-info>small {
    overflow:hidden;
    color:#8b878e;
    font-size:9px;
    letter-spacing:.07em;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap
}
.catalog-grid .product-info h3 {
    margin:5px 0 8px;
    font-size:12px;
    line-height:1.4
}
.catalog-grid .product-price {
    margin-top:auto;
    margin-bottom:9px;
    font-size:14px
}
.catalog-grid .quick-add {
    min-height:33px;
    margin:0;
    padding:7px 9px;
    border-radius:6px;
    background:var(--card-action);
    color:var(--ink);
    font-size:11px;
    font-weight:600
}
.catalog-grid .quick-add span { float:right }
.catalog-grid .quick-add:hover { background:var(--card-action-hover) }
.catalog-results .pagination,
.catalog-results nav[aria-label="Pagination"] {
    margin-top:22px
}

/* Shop category carousel and consistent product option colors. */
.category-slider {
    position:relative;
    padding:18px 42px 24px;
    margin-bottom:12px;
    background:transparent;
    border:1px solid transparent;
    border-radius:14px
}
.category-strip {
    display:flex;
    gap:20px;
    overflow-x:auto;
    padding:6px 2px 10px;
    scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    scrollbar-width:thin;
    scrollbar-color:#d8b8aa transparent
}
.category-slide {
    display:flex;
    flex:0 0 112px;
    flex-direction:column;
    align-items:center;
    scroll-snap-align:start;
    color:var(--ink);
    text-decoration:none
}
.category-slide .category-circle {
    width:76px;
    height:76px;
    margin-bottom:9px;
    background:#f7e6e3;
    border:1px solid #f2e3df;
    transition:background .18s,border-color .18s,transform .18s
}
.category-slide:hover .category-circle {
    transform:translateY(-2px);
    background:#ead3ca;
    border-color:#d9b5a8
}
.category-slide strong { color:var(--ink); font-size:11px }
.category-slider-control {
    position:absolute;
    z-index:1;
    top:50%;
    display:grid;
    width:30px;
    height:30px;
    place-items:center;
    transform:translateY(-50%);
    border:1px solid #eadbd4;
    border-radius:50%;
    background:#fff;
    color:#8b6155;
    font-size:22px;
    line-height:1;
    cursor:pointer
}
.category-slider-previous { left:8px }
.category-slider-next { right:8px }
.shop-home .product-card {
    border-color:var(--line);
    border-radius:14px;
    box-shadow:0 2px 8px #27202a08
}

@media(max-width:1100px) {
    .catalog-layout { grid-template-columns:230px minmax(0,1fr); gap:20px }
    .catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)) }
}
@media(max-width:760px) {
    .catalog-page { padding-top:24px }
    .category-slider { padding:14px 34px 18px; border-radius:11px }
    .category-strip { gap:12px }
    .category-slide { flex-basis:90px }
    .category-slide .category-circle { width:62px; height:62px }
    .category-slider-control { width:27px; height:27px }
    .catalog-layout { grid-template-columns:minmax(0,1fr); gap:16px }
    .catalog-heading { grid-column:1; align-items:flex-end }
    .catalog-heading h1 { font-size:27px }
    .catalog-filter-form,.catalog-results { grid-column:1; grid-row:auto }
    .catalog-sidebar { position:static }
    .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px }
}
@media(max-width:430px) {
    .catalog-heading { align-items:flex-start; flex-direction:column }
    .catalog-heading>div { align-items:baseline; flex-wrap:wrap; gap:6px 9px }
    .catalog-sort { width:100% }
    .catalog-sort select { width:100% }
}

.shop-home .benefits {
    gap: 14px;
    padding-block: 24px;
}

.shop-home .benefits > a {
    min-width: 0;
    min-height: 100px;
    justify-content: flex-start;
    gap: 14px;
    padding: 18px 20px;
    border: 1px solid color-mix(in srgb, var(--shop-soft, #eeeae2), #756657 18%);
    border-radius: 16px;
    background: color-mix(in srgb, var(--shop-soft, #eeeae2) 32%, white);
    box-shadow: 0 5px 18px rgb(42 33 27 / 5%);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.shop-home .benefits > a:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--shop-soft, #eeeae2), #756657 38%);
    box-shadow: 0 9px 22px rgb(42 33 27 / 9%);
}

.shop-home .benefits .icon {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    padding: 11px;
    border-radius: 50%;
    color: var(--shop-primary, #24231f);
    background: color-mix(in srgb, var(--shop-primary, #24231f) 10%, white);
}

.shop-home .benefits strong {
    font-size: 15px;
    line-height: 1.4;
}

.shop-home .benefits small {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 760px) {
    .shop-home .benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        padding-block: 18px;
    }

    .shop-home .benefits > a {
        min-height: 124px;
        flex-direction: column;
        justify-content: center;
        gap: 8px;
        padding: 14px 10px;
        text-align: center;
    }

    .shop-home .benefits .icon {
        flex-basis: 42px;
        width: 42px;
        height: 42px;
        padding: 10px;
    }

    .shop-home .benefits strong {
        font-size: 13px;
    }

    .shop-home .benefits small {
        font-size: 11px;
    }
}

@media (min-width: 761px) {
    .shop-home > .hero {
        min-height: 350px;
    }

    .shop-home > .hero .hero-copy {
        padding-block: 44px;
    }

    .shop-home .benefits {
        padding-block: 16px;
    }

    .shop-home > section.container:not(.benefits) {
        padding-block: 18px;
    }

    .shop-home .category-slider {
        padding-block: 12px 16px;
        margin-bottom: 8px;
    }

    .shop-home .category-strip {
        padding-block: 4px 8px;
    }

    .shop-home .category-slide .category-circle {
        width: 70px;
        height: 70px;
    }

    .shop-home .promo-grid {
        gap: 16px;
        margin-bottom: 28px;
    }

    .shop-home .promo {
        min-height: 170px;
        padding: 26px;
    }

    .shop-home .product-section {
        padding-bottom: 24px;
    }

    .shop-home .section-heading {
        margin-bottom: 18px;
    }

    .shop-home .deals-section {
        padding-block: 24px 30px;
        margin-bottom: 24px;
    }

    .shop-home .philosophy,
    .shop-home .philosophy-photo {
        min-height: 280px;
    }

    .shop-home .philosophy {
        margin-bottom: 26px;
    }

    .shop-home .philosophy-copy {
        padding-block: 32px;
    }

    .shop-home .newsletter {
        padding-block: 26px;
    }
}
