.ds5-home{--ds5-ink:#111;--ds5-muted:#66615b;--ds5-line:#e7e1d8;--ds5-cream:#f7f3ec;--ds5-gold:#c59232;background:#fff;color:var(--ds5-ink);font-family:Inter,Arial,sans-serif}.ds5-home *{box-sizing:border-box}.ds5-home a{text-decoration:none;color:inherit}.ds5-shell{width:min(calc(100% - 56px),1460px);margin-inline:auto}.ds5-hero{position:relative;background:#d6c6b6;overflow:hidden}.ds5-hero__viewport{position:relative;overflow:hidden}.ds5-hero__track{display:flex;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform}.ds5-hero__slide{min-width:100%;background:linear-gradient(90deg,#d8cbbf 0%,#d5c1ad 50%,#b49c86 100%)}.ds5-hero__grid{min-height:510px;display:grid;grid-template-columns:1fr 1.12fr;align-items:stretch}.ds5-hero__copy{display:flex;flex-direction:column;justify-content:center;padding:65px 6vw 65px 8vw}.ds5-hero__copy>p,.ds5-intro__grid>p,.ds5-section__head p,.ds5-carousel-head p{margin:0 0 18px;font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.ds5-hero__copy h1{margin:0;max-width:650px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(58px,6vw,94px);line-height:.88;font-weight:400;letter-spacing:-.052em}.ds5-hero__copy>span{max-width:530px;margin-top:25px;font-size:14px;line-height:1.65}.ds5-hero__actions{display:flex;align-items:center;gap:24px;margin-top:30px}.ds5-button{min-height:46px;padding:0 22px;background:#111;color:#fff!important;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.ds5-text-link{display:inline-flex;align-items:center;gap:7px;padding-bottom:3px;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ds5-text-link b{font-size:18px;font-weight:400;line-height:0}.ds5-hero__visual{min-width:0;overflow:hidden}.ds5-hero__visual picture,.ds5-hero__visual img{width:100%;height:100%;display:block}.ds5-hero__visual img{object-fit:cover}.ds5-carousel-arrow{position:absolute;top:50%;z-index:5;width:42px;height:42px;margin-top:-21px;border:0;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 3px 16px rgba(0,0,0,.08);font-size:28px;font-weight:200;cursor:pointer}.ds5-carousel-arrow--left{left:20px}.ds5-carousel-arrow--right{right:20px}.ds5-hero__dots{position:absolute;left:50%;bottom:16px;z-index:5;display:flex;gap:7px;transform:translateX(-50%)}.ds5-hero__dots button{width:17px;height:6px;padding:0;border:0;border-radius:20px;background:#fff;opacity:.8;cursor:pointer}.ds5-hero__dots button.is-active{background:#1c1c1c;opacity:1}.ds5-intro{padding:90px 0;background:#f7f3ec}.ds5-intro__grid{display:grid;grid-template-columns:.7fr 1.35fr .9fr;gap:clamp(30px,6vw,90px);align-items:start}.ds5-intro__grid>p,.ds5-section__head p{color:var(--ds5-muted)}.ds5-intro h2,.ds5-section__head h2{margin:0;font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.04em}.ds5-intro h2{font-size:clamp(43px,4.5vw,68px);line-height:.98}.ds5-intro__grid>div>span{display:block;color:var(--ds5-muted);font-size:13px;line-height:1.75;margin-bottom:22px}.ds5-section{padding:90px 0}.ds5-section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:34px}.ds5-section__head h2{font-size:clamp(38px,4vw,58px)}.ds5-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.ds5-category-card__media{position:relative;aspect-ratio:3/4;overflow:hidden;background:#e5ddd2}.ds5-category-card__media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease}.ds5-category-card:hover img{transform:scale(1.025)}.ds5-category-card__media>span{position:absolute;top:13px;left:13px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:8px;font-weight:700}.ds5-category-card__info{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:13px}.ds5-category-card h3{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:21px;font-weight:400}.ds5-category-card small{font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.ds5-commerce{padding-bottom:55px}.ds5-commerce__widget+.ds5-commerce__widget{margin-top:35px}.ds5-video-section{padding:28px 0 78px;background:#fff}.ds5-review-section{padding:28px 0 70px;background:#f7f3ec}.ds5-carousel-head{min-height:62px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:12px}.ds5-carousel-head>div:nth-child(2){text-align:center}.ds5-carousel-head p{margin-bottom:6px;font-size:12px;letter-spacing:.18em}.ds5-carousel-head>div:nth-child(2)>span{display:block;width:29px;height:2px;margin:auto;background:#c59232}.ds5-carousel-head>a{justify-self:end;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.ds5-carousel-head>a b{font-size:18px;font-weight:400;margin-left:7px}.ds5-slider{position:relative}.ds5-slider__viewport{overflow:hidden}.ds5-slider__track{display:flex;gap:28px;transition:transform .45s cubic-bezier(.22,.61,.36,1);will-change:transform}.ds5-slider__track>[data-ds5-carousel-card]{flex:0 0 calc((100% - 56px)/3);min-width:0}.ds5-slider__arrow{position:absolute;top:42%;z-index:7;width:40px;height:40px;border:1px solid #ddd5ca;border-radius:50%;background:#fff;font-size:25px;font-weight:200;cursor:pointer}.ds5-slider__arrow--left{left:-58px}.ds5-slider__arrow--right{right:-58px}.ds5-video-card__media{position:relative;display:block;aspect-ratio:16/9;border-radius:9px;overflow:hidden;background:#d8cec2}.ds5-video-card__media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .4s ease}.ds5-video-card:hover img{transform:scale(1.02)}.ds5-video-card__play{position:absolute;left:50%;top:50%;width:50px;height:50px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.2);color:#fff;font-size:14px;transform:translate(-50%,-50%)}.ds5-video-card__duration{position:absolute;right:8px;bottom:7px;padding:3px 5px;border-radius:3px;background:rgba(0,0,0,.78);color:#fff;font-size:8px}.ds5-video-card__body{padding-top:10px}.ds5-video-card h3{margin:0;font-size:13px;font-weight:600}.ds5-video-card p{margin:4px 0 0;color:#615d57;font-size:10px;line-height:1.45}.ds5-video-card__body>small{display:block;margin-top:6px;color:#837d75;font-size:9px}.ds5-carousel-head--reviews{margin-bottom:14px}.ds5-review-card{min-height:142px;padding:18px 20px;border-radius:10px;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.02)}.ds5-review-card__top{display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center}.ds5-review-card__top img{width:44px;height:44px;border-radius:50%;object-fit:cover}.ds5-review-card h3{margin:0 0 3px;font-size:11px;font-weight:700}.ds5-review-card__stars{display:flex;gap:1px}.ds5-review-card__stars span{color:#d5d0c8;font-size:12px}.ds5-review-card__stars span.is-active{color:#efa51d}.ds5-review-card__top>b{font-family:Georgia,'Times New Roman',serif;color:#ded6ca;font-size:37px;font-weight:700}.ds5-review-card>p{margin:12px 0 0;font-size:11px;line-height:1.55}.ds5-recent{padding:68px 0;border-top:1px solid var(--ds5-line)}.ds5-service{background:#171717;color:#fff}.ds5-service__grid{display:grid;grid-template-columns:repeat(3,1fr)}.ds5-service__grid>div{min-height:135px;padding:26px 30px;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;column-gap:12px;align-content:center;border-right:1px solid rgba(255,255,255,.13)}.ds5-service__grid>div:last-child{border-right:0}.ds5-service span{grid-row:1/3;font-family:Georgia,'Times New Roman',serif;color:#c8a76d;font-size:20px}.ds5-service strong{font-size:9px;letter-spacing:.11em;text-transform:uppercase}.ds5-service small{margin-top:5px;color:rgba(255,255,255,.58);font-size:10px}@media(max-width:1240px){.ds5-slider__arrow--left{left:6px}.ds5-slider__arrow--right{right:6px}.ds5-slider__arrow{top:36%;background:rgba(255,255,255,.96)}}@media(max-width:980px){.ds5-shell{width:min(calc(100% - 36px),1460px)}.ds5-hero__grid{grid-template-columns:1fr 1fr;min-height:500px}.ds5-hero__copy{padding:52px 25px}.ds5-intro__grid{grid-template-columns:1fr 1.3fr}.ds5-intro__grid>div{grid-column:2}.ds5-category-grid{grid-template-columns:1fr 1fr}.ds5-slider__track>[data-ds5-carousel-card]{flex-basis:calc((100% - 20px)/2)}.ds5-slider__track{gap:20px}}@media(max-width:680px){.ds5-shell{width:min(calc(100% - 24px),1460px)}.ds5-hero__grid{display:flex;min-height:650px;position:relative}.ds5-hero__visual{position:absolute;inset:0}.ds5-hero__visual:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(239,229,218,.96) 0%,rgba(239,229,218,.72) 45%,rgba(239,229,218,.15) 100%)}.ds5-hero__copy{position:relative;z-index:2;justify-content:flex-end;padding:35px 18px 75px}.ds5-hero__copy h1{font-size:50px}.ds5-hero__copy>span{font-size:12px;max-width:440px}.ds5-hero__actions{flex-direction:column;align-items:flex-start;gap:15px}.ds5-carousel-arrow{display:none}.ds5-intro,.ds5-section{padding:66px 0}.ds5-intro__grid{display:block}.ds5-intro h2{font-size:41px;margin-bottom:22px}.ds5-category-grid{gap:9px}.ds5-category-card h3{font-size:17px}.ds5-category-card small{display:none}.ds5-carousel-head{grid-template-columns:1fr}.ds5-carousel-head>div:nth-child(1),.ds5-carousel-head>a{display:none}.ds5-slider__track>[data-ds5-carousel-card]{flex-basis:100%}.ds5-slider__track{gap:14px}.ds5-slider__arrow{top:34%;width:36px;height:36px}.ds5-video-section,.ds5-review-section{padding-bottom:58px}.ds5-review-card{min-height:150px}.ds5-service__grid{grid-template-columns:1fr}.ds5-service__grid>div{min-height:108px;border-right:0;border-bottom:1px solid rgba(255,255,255,.13);padding:21px 2px}.ds5-service__grid>div:last-child{border-bottom:0}}

/* =========================================================
   UI 01L — APPROVED PHOTO HERO MATCH
   ========================================================= */
.ds5-hero--photo {
    background: #d8c9bb;
}

.ds5-hero__slide--photo {
    background:
        radial-gradient(circle at 72% 44%, rgba(255,255,255,.34), transparent 34%),
        linear-gradient(90deg, #d8cabd 0%, #d8c7b7 50%, #b49c84 100%);
}

.ds5-hero__grid--photo {
    min-height: 520px;
    grid-template-columns: 1.03fr 1.12fr;
}

.ds5-hero__copy--photo {
    position: relative;
    z-index: 2;
    padding: 62px 4vw 62px 8vw;
}

.ds5-hero__copy--photo > p {
    margin-bottom: 14px;
    font-size: 9px;
    letter-spacing: .14em;
}

.ds5-hero__copy--photo h1 {
    max-width: 570px;
    font-size: clamp(64px, 6.15vw, 96px);
    line-height: .87;
    letter-spacing: -.056em;
}

.ds5-hero__copy--photo > span {
    max-width: 465px;
    margin-top: 24px;
    color: #1e1b18;
    font-size: 13px;
    line-height: 1.55;
}

.ds5-hero__copy--photo .ds5-button {
    min-height: 44px;
    padding-inline: 22px;
}

.ds5-hero__secondary {
    color: #171717;
}

.ds5-hero__visual--photo {
    position: relative;
    overflow: hidden;
    background: #aa927b;
}

.ds5-hero__visual--photo::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(216,202,189,.24), rgba(216,202,189,0) 18%),
        radial-gradient(circle at 46% 47%, rgba(255,236,215,.14), transparent 43%);
}

.ds5-hero__visual--photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
    transform: scale(1.01);
}

.ds5-hero--photo .ds5-carousel-arrow {
    width: 40px;
    height: 40px;
    background: rgba(255,255,255,.93);
    box-shadow: 0 4px 16px rgba(0,0,0,.08);
}

.ds5-hero--photo .ds5-carousel-arrow--left {
    left: 22px;
}

.ds5-hero--photo .ds5-carousel-arrow--right {
    right: 22px;
}

.ds5-hero--photo .ds5-hero__dots {
    left: 50%;
    bottom: 16px;
}

.ds5-hero--photo .ds5-hero__dots button {
    width: 17px;
    height: 6px;
    background: #fff;
}

.ds5-hero--photo .ds5-hero__dots button.is-active {
    background: #1a1a1a;
}

@media (max-width: 980px) {
    .ds5-hero__grid--photo {
        grid-template-columns: 1fr 1fr;
        min-height: 500px;
    }

    .ds5-hero__copy--photo {
        padding: 46px 24px;
    }

    .ds5-hero__copy--photo h1 {
        font-size: 60px;
    }
}

@media (max-width: 680px) {
    .ds5-hero__grid--photo {
        min-height: 660px;
        display: block;
        position: relative;
    }

    .ds5-hero__visual--photo {
        position: absolute;
        inset: 0;
    }

    .ds5-hero__visual--photo::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 2;
        background:
            linear-gradient(
                0deg,
                rgba(236,224,212,.98) 0%,
                rgba(236,224,212,.92) 37%,
                rgba(236,224,212,.52) 64%,
                rgba(236,224,212,.08) 100%
            );
    }

    .ds5-hero__visual--photo img {
        object-position: 58% center;
    }

    .ds5-hero__copy--photo {
        position: absolute;
        z-index: 4;
        left: 0;
        right: 0;
        bottom: 0;
        justify-content: flex-end;
        padding: 34px 18px 70px;
    }

    .ds5-hero__copy--photo h1 {
        max-width: 440px;
        font-size: 50px;
        line-height: .91;
    }

    .ds5-hero__copy--photo > span {
        max-width: 390px;
        font-size: 12px;
    }
}

/* =========================================================
   UI 01M — COMPACT BRAND POSITIONING STRIP
   Replaces the oversized editorial intro block.
   ========================================================= */
.ds6-brand-strip {
    padding: 54px 0;
    background: #f7f3ec;
    border-bottom: 1px solid #e8e1d8;
}

.ds6-brand-strip__grid {
    display: grid;
    grid-template-columns: 1.05fr .92fr 1.25fr;
    gap: clamp(30px, 4.5vw, 72px);
    align-items: start;
}

.ds6-brand-strip__headline > p {
    margin: 0 0 12px;
    color: #716b63;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.ds6-brand-strip__headline h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 3.5vw, 53px);
    line-height: .98;
    font-weight: 400;
    letter-spacing: -.042em;
}

.ds6-brand-strip__copy {
    padding-top: 20px;
}

.ds6-brand-strip__copy > p {
    max-width: 470px;
    margin: 0 0 20px;
    color: #6d675f;
    font-size: 12px;
    line-height: 1.75;
}

.ds6-brand-strip__values {
    display: grid;
    border-top: 1px solid #ded7ce;
}

.ds6-brand-strip__values article {
    min-height: 66px;
    padding: 12px 0;
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 11px;
    align-items: start;
    border-bottom: 1px solid #ded7ce;
}

.ds6-brand-strip__values article > span {
    font-family: Georgia, "Times New Roman", serif;
    color: #a07d41;
    font-size: 17px;
    line-height: 1.2;
}

.ds6-brand-strip__values strong {
    display: block;
    margin-bottom: 3px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ds6-brand-strip__values small {
    display: block;
    color: #777067;
    font-size: 10px;
    line-height: 1.45;
}

@media (max-width: 980px) {
    .ds6-brand-strip__grid {
        grid-template-columns: 1fr 1fr;
    }

    .ds6-brand-strip__values {
        grid-column: 1 / -1;
        grid-template-columns: repeat(3, 1fr);
        border-top: 1px solid #ded7ce;
    }

    .ds6-brand-strip__values article {
        min-height: 95px;
        padding: 16px;
        border-right: 1px solid #ded7ce;
        border-bottom: 0;
    }

    .ds6-brand-strip__values article:last-child {
        border-right: 0;
    }
}

@media (max-width: 680px) {
    .ds6-brand-strip {
        padding: 42px 0;
    }

    .ds6-brand-strip__grid {
        display: block;
    }

    .ds6-brand-strip__headline h2 {
        font-size: 39px;
    }

    .ds6-brand-strip__copy {
        padding-top: 18px;
    }

    .ds6-brand-strip__values {
        margin-top: 28px;
        grid-template-columns: 1fr;
    }

    .ds6-brand-strip__values article {
        min-height: auto;
        padding: 13px 0;
        border-right: 0;
        border-bottom: 1px solid #ded7ce;
    }
}

/* =========================================================
   UI 01N — PREMIUM HOMEPAGE COMPLETION
   ========================================================= */

.ds5-category-card__info > div {
    min-width: 0;
}

.ds5-category-card__info > div > small {
    display: block;
    margin-top: 4px;
    color: #827b72;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.ds5-category-card__info > span {
    flex: 0 0 auto;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ds7-products {
    padding: 92px 0 100px;
    background: #fff;
}

.ds7-products__head {
    margin-bottom: 32px;
}

.ds7-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 34px 16px;
}

.ds7-product-card {
    min-width: 0;
}

.ds7-product-card__media {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: #eee9e2;
}

.ds7-product-card__image-link,
.ds7-product-card__image {
    width: 100%;
    height: 100%;
    display: block;
}

.ds7-product-card__image {
    object-fit: cover;
    transition:
        opacity .34s ease,
        transform .5s cubic-bezier(.22,.61,.36,1);
}

.ds7-product-card__image--secondary {
    position: absolute;
    inset: 0;
    opacity: 0;
}

.ds7-product-card:hover .ds7-product-card__image--primary {
    transform: scale(1.025);
}

.ds7-product-card:hover .ds7-product-card__image--secondary {
    opacity: 1;
    transform: scale(1.025);
}

.ds7-product-card__badges {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 4;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.ds7-product-card__badges span {
    min-height: 24px;
    padding: 0 8px;
    display: inline-flex;
    align-items: center;
    border-radius: 20px;
    background: #fff;
    color: #171717;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ds7-product-card__badges .is-sale {
    background: #171717;
    color: #fff;
}

.ds7-product-card__badges .is-muted {
    background: #ddd6cd;
}

.ds7-product-card__tools {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 5;
    display: grid;
    gap: 7px;
    transform: translateX(58px);
    transition: transform .24s ease;
}

.ds7-product-card:hover .ds7-product-card__tools {
    transform: translateX(0);
}

.ds7-icon {
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.95);
    color: #171717;
    display: grid;
    place-items: center;
    cursor: pointer;
    box-shadow: 0 4px 18px rgba(0,0,0,.07);
}

.ds7-icon .material-symbols-outlined {
    font-size: 18px;
}

.ds7-product-card__action {
    position: absolute;
    z-index: 5;
    left: 12px;
    right: 12px;
    bottom: 12px;
    transform: translateY(65px);
    transition: transform .24s ease;
}

.ds7-product-card:hover .ds7-product-card__action {
    transform: translateY(0);
}

.ds7-product-card__action form {
    margin: 0;
}

.ds7-product-card__action button,
.ds7-product-card__action > a {
    width: 100%;
    min-height: 42px;
    padding: 0 12px;
    border: 0;
    background: rgba(23,23,23,.96);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    cursor: pointer;
}

.ds7-product-card__action button:hover,
.ds7-product-card__action > a:hover {
    background: #8e703a;
}

.ds7-product-card__body {
    padding-top: 13px;
}

.ds7-product-card__meta {
    min-height: 14px;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: #817a71;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ds7-product-card__rating {
    color: #9f792e;
    letter-spacing: .03em;
}

.ds7-product-card__name {
    display: block;
    margin-top: 5px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    line-height: 1.18;
}

.ds7-product-card__price {
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ds7-product-card__price strong {
    font-size: 12px;
    font-weight: 700;
}

.ds7-product-card__price del {
    color: #9c958c;
    font-size: 10px;
}

.ds7-collections {
    padding: 92px 0 100px;
    background: #f6f1ea;
}

.ds7-collection-grid {
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: 15px;
}

.ds7-collection-card {
    position: relative;
    min-height: 510px;
    display: block;
    overflow: hidden;
    background: #b2a18e;
}

.ds7-collection-card:nth-child(2) {
    min-height: 510px;
}

.ds7-collection-card > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .55s ease;
}

.ds7-collection-card:hover > img {
    transform: scale(1.025);
}

.ds7-collection-card__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            0deg,
            rgba(0,0,0,.58) 0%,
            rgba(0,0,0,.09) 58%,
            rgba(0,0,0,.02) 100%
        );
}

.ds7-collection-card__copy {
    position: absolute;
    z-index: 3;
    left: 27px;
    right: 27px;
    bottom: 27px;
    color: #fff;
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 10px;
    align-items: end;
}

.ds7-collection-card__copy > span {
    font-family: Georgia, "Times New Roman", serif;
    color: #dec598;
    font-size: 21px;
}

.ds7-collection-card__copy p {
    margin: 0 0 7px;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ds7-collection-card__copy h3 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(35px, 3.8vw, 60px);
    line-height: .96;
    font-weight: 400;
    letter-spacing: -.04em;
}

.ds7-collection-card:nth-child(2) h3 {
    font-size: clamp(32px, 3.1vw, 48px);
}

.ds7-collection-card__copy small {
    max-width: 460px;
    display: block;
    margin-top: 10px;
    color: rgba(255,255,255,.78);
    font-size: 10px;
    line-height: 1.55;
}

.ds7-collection-card__copy b {
    display: inline-block;
    margin-top: 16px;
    font-size: 8px;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ds7-social {
    padding: 92px 0 95px;
    background: #fff;
}

.ds7-social__head {
    margin-bottom: 31px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
}

.ds7-social__head p {
    margin: 0 0 10px;
    color: #716b63;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ds7-social__head h2 {
    max-width: 730px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(39px, 4.1vw, 60px);
    line-height: .98;
    font-weight: 400;
    letter-spacing: -.04em;
}

.ds7-social__gallery {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 7px;
}

.ds7-social__tile {
    position: relative;
    aspect-ratio: 1 / 1.08;
    overflow: hidden;
    background: #e7e0d7;
}

.ds7-social__tile img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .45s ease;
}

.ds7-social__tile:hover img {
    transform: scale(1.035);
}

.ds7-social__tile span {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 10px;
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(8px);
    transition: .2s ease;
}

.ds7-social__tile::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(0,0,0,.44), transparent 55%);
    opacity: 0;
    transition: opacity .2s ease;
}

.ds7-social__tile:hover::after,
.ds7-social__tile:hover span {
    opacity: 1;
}

.ds7-social__tile span {
    z-index: 2;
}

.ds7-newsletter {
    margin-top: 54px;
    padding: 43px 0;
    border-top: 1px solid #e7e1d8;
    border-bottom: 1px solid #e7e1d8;
    display: grid;
    grid-template-columns: 1fr minmax(330px, .7fr);
    gap: 70px;
    align-items: end;
}

.ds7-newsletter p {
    margin: 0 0 8px;
    color: #716b63;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ds7-newsletter h3 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 38px;
    font-weight: 400;
    letter-spacing: -.03em;
}

.ds7-newsletter > div > span {
    max-width: 620px;
    display: block;
    margin-top: 8px;
    color: #716b63;
    font-size: 11px;
    line-height: 1.55;
}

.ds7-newsletter__form {
    display: grid;
    grid-template-columns: 1fr auto;
    border-bottom: 1px solid #171717;
}

.ds7-newsletter__form input {
    min-width: 0;
    height: 46px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 12px;
}

.ds7-newsletter__form button,
.ds7-newsletter__link {
    min-height: 46px;
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    cursor: pointer;
}

@media (max-width: 1000px) {
    .ds7-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ds7-collection-grid {
        grid-template-columns: 1fr 1fr;
    }

    .ds7-social__gallery {
        grid-template-columns: repeat(3, 1fr);
    }

    .ds7-social__tile:nth-child(n+4) {
        display: none;
    }
}

@media (max-width: 700px) {
    .ds7-products,
    .ds7-collections,
    .ds7-social {
        padding: 66px 0;
    }

    .ds7-product-grid {
        grid-template-columns: 1fr 1fr;
        gap: 27px 9px;
    }

    .ds7-product-card__name {
        font-size: 17px;
    }

    .ds7-product-card__tools,
    .ds7-product-card__action {
        transform: none;
    }

    .ds7-product-card__tools {
        top: 8px;
        right: 8px;
    }

    .ds7-product-card__tools .quick-view {
        display: none;
    }

    .ds7-product-card__action {
        left: 8px;
        right: 8px;
        bottom: 8px;
    }

    .ds7-product-card__action button,
    .ds7-product-card__action > a {
        min-height: 36px;
        font-size: 8px;
    }

    .ds7-collection-grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .ds7-collection-card,
    .ds7-collection-card:nth-child(2) {
        min-height: 430px;
    }

    .ds7-collection-card__copy {
        left: 20px;
        right: 20px;
        bottom: 20px;
    }

    .ds7-social__head {
        align-items: flex-start;
    }

    .ds7-social__head > a {
        display: none;
    }

    .ds7-social__gallery {
        grid-template-columns: 1fr 1fr;
    }

    .ds7-social__tile:nth-child(3) {
        display: none;
    }

    .ds7-newsletter {
        margin-top: 38px;
        padding: 32px 0;
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .ds7-newsletter h3 {
        font-size: 32px;
    }
}

/* =========================================================
   UI 01O — HOME PRODUCT BUY CONTROLS
   ========================================================= */

.ds8-product-card .ds7-product-card__body {
    padding-bottom: 2px;
}

.ds8-product-buy {
    margin-top: 15px;
    display: grid;
    grid-template-columns: 98px minmax(0, 1fr);
    min-height: 43px;
    border: 1px solid #dcd6ce;
}

.ds8-product-qty {
    display: grid;
    grid-template-columns: 30px 1fr 30px;
    align-items: stretch;
    border-right: 1px solid #dcd6ce;
}

.ds8-product-qty button,
.ds8-product-qty input {
    min-width: 0;
    border: 0;
    background: transparent;
    color: #171717;
    text-align: center;
}

.ds8-product-qty button {
    cursor: pointer;
    font-size: 17px;
    line-height: 1;
}

.ds8-product-qty button:hover {
    background: #f3efe9;
}

.ds8-product-qty input {
    width: 100%;
    padding: 0;
    outline: 0;
    font-size: 11px;
    font-weight: 700;
    appearance: textfield;
}

.ds8-product-qty input::-webkit-outer-spin-button,
.ds8-product-qty input::-webkit-inner-spin-button {
    margin: 0;
    appearance: none;
}

.ds8-product-add,
.ds8-product-options {
    min-height: 43px;
    border: 0;
    background: #171717;
    color: #fff !important;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .18s ease;
}

.ds8-product-add:hover,
.ds8-product-options:hover {
    background: #8e703a;
}

.ds8-product-options {
    margin-top: 15px;
}

.ds8-product-options.is-muted {
    background: #e5dfd7;
    color: #5c564f !important;
}

/* Hide old hover-only CTA from the 01N card.
   Quantity + Add to bag now permanently stays under the price. */
.ds8-product-card > .ds7-product-card__media
.ds7-product-card__action {
    display: none;
}

/* =========================================================
   UI 01O — SHOP PAGE
   ========================================================= */

.ds8-shop {
    background: #fff;
    color: #171717;
    font-family: Inter, Arial, sans-serif;
}

.ds8-shop * {
    box-sizing: border-box;
}

.ds8-shop a {
    color: inherit;
    text-decoration: none;
}

.ds8-shop-hero {
    padding: 78px 0 72px;
    background: #f5f0e8;
    border-bottom: 1px solid #e5ded4;
}

.ds8-shop-hero__grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: clamp(40px, 8vw, 135px);
    align-items: end;
}

.ds8-shop-hero__grid > div:first-child > p {
    margin: 0 0 17px;
    color: #706960;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.ds8-shop-hero h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(58px, 7vw, 104px);
    line-height: .86;
    font-weight: 400;
    letter-spacing: -.055em;
}

.ds8-shop-hero__copy {
    padding-bottom: 8px;
}

.ds8-shop-hero__copy > p {
    max-width: 510px;
    margin: 0;
    color: #665f57;
    font-size: 13px;
    line-height: 1.75;
}

.ds8-shop-hero__copy > span {
    display: block;
    margin-top: 25px;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ds8-shop-categories {
    padding: 60px 0 100px;
}

.ds8-shop-toolbar {
    min-height: 55px;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    border-bottom: 1px solid #e7e1d8;
}

.ds8-shop-toolbar > p {
    margin: 0;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.ds8-shop-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 38px 16px;
}

.ds8-shop-card {
    min-width: 0;
}

.ds8-shop-card__media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #e7e0d7;
}

.ds8-shop-card__media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .5s cubic-bezier(.22,.61,.36,1);
}

.ds8-shop-card:hover .ds8-shop-card__media img {
    transform: scale(1.028);
}

.ds8-shop-card__media > span {
    position: absolute;
    top: 13px;
    left: 13px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.94);
    font-size: 8px;
    font-weight: 700;
}

.ds8-shop-card__content {
    min-height: 115px;
    padding: 15px 1px 0;
    display: grid;
    grid-template-columns: 1fr 42px;
    gap: 13px;
    align-items: start;
}

.ds8-shop-card__content p {
    margin: 0 0 5px;
    color: #847d74;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ds8-shop-card__content h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 27px;
    font-weight: 400;
    letter-spacing: -.02em;
}

.ds8-shop-card__children {
    margin-top: 8px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.ds8-shop-card__children a,
.ds8-shop-card__note {
    color: #746e66;
    font-size: 9px;
}

.ds8-shop-card__arrow {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid #dcd5cc;
    border-radius: 50%;
    font-size: 18px;
    transition: .18s ease;
}

.ds8-shop-card:hover .ds8-shop-card__arrow {
    border-color: #171717;
    background: #171717;
    color: #fff;
}

@media (max-width: 950px) {
    .ds8-shop-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 700px) {
    .ds8-product-buy {
        grid-template-columns: 84px minmax(0, 1fr);
        min-height: 39px;
    }

    .ds8-product-qty {
        grid-template-columns: 27px 1fr 27px;
    }

    .ds8-product-add,
    .ds8-product-options {
        min-height: 39px;
        padding-inline: 7px;
        font-size: 8px;
        letter-spacing: .07em;
    }

    .ds8-shop-hero {
        padding: 52px 0 48px;
    }

    .ds8-shop-hero__grid {
        display: block;
    }

    .ds8-shop-hero h1 {
        font-size: 58px;
    }

    .ds8-shop-hero__copy {
        margin-top: 25px;
    }

    .ds8-shop-categories {
        padding: 40px 0 70px;
    }

    .ds8-shop-grid {
        grid-template-columns: 1fr 1fr;
        gap: 27px 9px;
    }

    .ds8-shop-card__content {
        min-height: 90px;
        grid-template-columns: 1fr;
    }

    .ds8-shop-card__content h2 {
        font-size: 20px;
    }

    .ds8-shop-card__arrow {
        display: none;
    }

    .ds8-shop-card__children {
        display: none;
    }
}


/* =========================================================
   N.172 — hero arrows were pinned to a fixed pixel offset
   =========================================================
   The base rule positions .ds5-carousel-arrow with a hard `top` value
   (computed 300.328px at 1440x900). That number was picked for one hero
   height, so on any other height -- a shorter viewport, a different slide
   image, a wider screen -- the arrows drift away from the middle and end up
   near the top of the band, which is what the report showed.

   Centring against the hero itself instead of a fixed offset keeps them on
   the midline at every size. Scoped to .ds5-hero so no other carousel on the
   site is affected. `bottom: auto` guards against a stray bottom value in the
   base rule fighting the new top. */
.ds5-hero .ds5-carousel-arrow {
    /* Centre on the SLIDE, not on the viewport. The viewport also contains
       the pagination dots below the image, so its midpoint sits lower than
       the picture the arrows belong to -- measured at 1440x900 the image
       centre is 407 while the viewport centre is 447. --ds5-arrow-shift is
       half the dots row, lifting the arrows back onto the image midline. */
    /* !important because a later rule in the theme bundle also sets top on
       these buttons; without it the calc below simply lost and the arrows
       stayed on the viewport midline. */
    top: calc(50% - var(--ds5-arrow-shift, 0px)) !important;
    bottom: auto !important;
    /* the base rule still carries the older margin-top:-20px centring hack;
       left in place it stacks with the translate below. */
    margin-top: 0;
    transform: translateY(-50%);

    /* N.173: centre the chevron INSIDE the circle. The base rule leaves the
       button as display:block with line-height:42px on a 40px box, so the
       glyph sat 2px below the middle. Flex centring with line-height:1 puts
       it on both axes. Width, height and behaviour are untouched. */
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* The fallback lives on the hero, NOT on the arrow. Declaring it on the arrow
   itself re-set it locally and beat the inherited value, so the measured
   offset the script writes onto .ds5-hero never reached the calc and the
   arrows stayed exactly on the viewport midline. The script sets this same
   property inline on .ds5-hero, which wins over this rule. */
.ds5-hero {
    --ds5-arrow-shift: 0px;
}

/* =========================================================
   N.174b — show the whole slide image, nothing cropped
   =========================================================
   The frame is sized by the hero grid, and the picture used object-fit: cover,
   which fills that frame and discards whatever does not fit. The sliders are
   1900x970 (ratio 1.96) in a frame nearer 1.39, so the sides were being cut
   and only the middle band of each photo was visible.

   contain scales the picture until the WHOLE of it fits, so nothing is lost.
   The trade is that the frame is wider than the picture needs, leaving a little
   space at the sides; the slide's own background shows through there.

   transform: scale(1.01) is also cancelled - it zoomed the picture a further
   1% and clipped the outer edge. */
.ds5-hero__visual--photo img {
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
}

/* =========================================================
   N.177 — remove the empty bands above and below the slide
   =========================================================
   N.174b left object-fit: contain in a frame whose shape came from the grid
   (1.39 at 1440px, 1.46 from 1600px up) while the pictures are 1.96. Contain
   fits the whole picture, so the leftover height showed as background bands
   above and below it.

   Giving the frame the picture's own ratio removes the leftover entirely:
   nothing is cropped and nothing is padded. --ds5-hero-ratio is published by
   the script in the hero markup from the image actually loaded, so this follows
   whatever is uploaded rather than assuming a fixed shape.

   height:auto is required - the grid would otherwise stretch the frame back to
   its 520px row and the bands would return. */
.ds5-hero__visual--photo {
    aspect-ratio: var(--ds5-hero-ratio, 1900 / 970);
    height: auto;
    align-self: center;
}
