body[data-page="home"] { --home-ink:#252720; --home-paper:#fff; --home-sand:#f3f0e9; --home-line:#e5e2dc; background:var(--home-paper); color:var(--home-ink); }
.home-redesign { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; font-size:15px; line-height:1.6; background:#fff; color:#252720; }
.home-redesign *, .home-redesign *::before, .home-redesign *::after { box-sizing:border-box; }
.home-redesign a { color:inherit; text-decoration:none; }
.home-redesign img { display:block; width:100%; height:100%; object-fit:cover; }
.home-redesign h1,.home-redesign h2,.home-redesign h3 { font-family:Georgia,'Times New Roman',serif; color:inherit; text-transform:none; font-weight:500; letter-spacing:-1px; }
.home-redesign em { font-weight:400; }
.home-redesign .home-shell { width:min(1280px,100%); margin:0 auto; padding-left:40px; padding-right:40px; }
.home-redesign .home-section { padding-top:76px; padding-bottom:76px; }
.home-redesign .home-section-heading { text-align:center; margin:0 0 36px; }
.home-redesign .home-section-heading h2 { margin:0 0 14px; font-size:clamp(32px,3.6vw,48px); line-height:1.15; }
.home-redesign .home-section-heading p { font-size:15px; color:#66675f; margin:0; }
.home-redesign .home-button { display:inline-flex; justify-content:space-between; align-items:center; min-height:48px; padding:13px 25px; min-width:190px; gap:36px; border:1px solid #252720; background:#252720; color:#fff; border-radius:2px; font-size:14px; font-weight:600; }
.home-redesign .home-button-light { background:#fff; border-color:#fff; color:#252720; }
.home-redesign .home-button:hover { background:#45473e; color:white; }
.home-redesign .home-text-link { display:inline-flex; justify-content:space-between; align-items:center; gap:26px; font-size:13px; padding:8px 0; border-bottom:1px solid currentColor; font-weight:600; }
.home-redesign a:focus-visible,.home-redesign button:focus-visible { outline:3px solid #ac8440; outline-offset:5px; }
.home-redesign .home-hero { padding:0; margin:0; position:relative; }
.home-hero-media { display:grid; overflow:hidden; background:#e4e0d8; }
.home-hero-slide { grid-area:1 / 1; min-width:0; height:640px; opacity:0; transition:opacity 1.2s ease; pointer-events:none; position:relative; }
.home-hero-slide[hidden] { display:none; }
.home-hero-slide.is-active { opacity:1; pointer-events:auto; z-index:1; }
.home-hero-slide::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.06) 75%); pointer-events:none; }
.home-hero-slide > img { object-position:center 58%; }
.home-hero-copy { position:absolute; z-index:2; top:50%; left:max(6vw,24px); transform:translateY(-50%); color:white; max-width:600px; pointer-events:none; }
.home-redesign .home-hero-copy h1 { margin:0 0 24px; font-size:clamp(42px,5.3vw,78px); letter-spacing:-2.3px; line-height:1.08; }
.home-hero-copy > p { font-size:17px; line-height:1.7; margin:0 0 28px; }
.home-hero-copy a { pointer-events:auto; }
.home-hero-caption { position:absolute; z-index:2; bottom:30px; right:40px; display:flex; justify-content:space-between; align-items:center; gap:28px; padding:13px 20px; background:rgba(255,255,255,.94); color:#252720 !important; border-radius:2px; font-size:14px; }
.home-hero-caption small { display:block; font-size:12px; color:#68685f; }
.home-hero-controls { display:flex; align-items:center; gap:14px; position:absolute; bottom:26px; left:max(6vw,24px); z-index:3; color:#fff; font-size:12px; }
.home-hero-controls button { border:1px solid rgba(255,255,255,.7); background:rgba(0,0,0,.2); border-radius:50%; color:inherit; height:36px; min-width:36px; cursor:pointer; }
.home-hero-controls [data-hero-pause] { border-radius:20px; padding:0 12px; }
.home-hero-empty { height:640px; background:#595b50; }
.home-category-track { display:flex; gap:24px; overflow-x:auto; padding:8px 2px 20px; scrollbar-width:thin; }
.home-shape-card { flex:0 0 155px; display:flex; flex-direction:column; align-items:center; gap:17px; text-align:center; font-size:14px; font-weight:600; }
.home-shape-photo { display:block; width:155px; height:155px; overflow:hidden; border-radius:50%; background:#f2f0eb; }
.home-shape-photo img { object-fit:cover; transition:transform .3s; }
.home-shape-card:hover img { transform:scale(1.05); }
.home-colour-section { background:#f4f2ed; }
.home-colour-track { display:flex; justify-content:flex-start; gap:50px; overflow-x:auto; padding:8px 3px 18px; }
.home-colour-choice { display:flex; flex-direction:column; flex:0 0 100px; align-items:center; gap:18px; font-size:13px; }
.home-colour-choice > span { display:block; width:96px; height:96px; border-radius:50%; border:1px solid rgba(0,0,0,.1); background:var(--home-colour); box-shadow:inset 0 0 0 5px rgba(255,255,255,.25); }
.home-colour-choice:hover > span { outline:2px solid #252720; outline-offset:5px; }
.home-redesign .home-editorial { display:grid; grid-template-columns:1.15fr 1fr; padding:0; margin:0; min-height:550px; background:#e9e5da; }
.home-editorial-photo { display:block; min-width:0; min-height:480px; }
.home-editorial-photo img { object-position:center; }
.home-editorial-copy { padding:70px 14%; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.home-kicker { font-size:11px; text-transform:uppercase; letter-spacing:.17em; margin:0 0 24px; }
.home-redesign .home-editorial-copy h2 { font-size:clamp(42px,4.6vw,68px); line-height:1.08; margin:0 0 24px; }
.home-editorial-copy > p:not(.home-kicker) { max-width:350px; font-size:15px; line-height:1.8; margin-bottom:26px; }
.home-fabric-track { display:flex; gap:18px; overflow-x:auto; padding:8px 3px 24px; scrollbar-width:thin; }
.home-fabric-choice { display:block; flex:0 0 180px; min-width:0; }
.home-fabric-texture { display:block; aspect-ratio:1; background-color:#ddd7cc; background-repeat:no-repeat; background-size:cover; border-radius:50%; margin-bottom:18px; }
.home-fabric-choice > span:last-child { display:flex; justify-content:space-between; font-size:13px; font-weight:600; }
.home-redesign .home-centred-link { display:table; margin:20px auto 0; }
.home-sofa-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 26px; }
.home-sofa-card { min-width:0; }
.home-sofa-photo { display:block; aspect-ratio:4 / 3; position:relative; overflow:hidden; background:#f3f1ed; }
.home-sale-tag { position:absolute; top:12px; left:12px; padding:3px 9px; background:#fff; font-size:11px; }
.home-sofa-info { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding-top:20px; }
.home-sofa-category { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:#74756c; }
.home-redesign .home-sofa-info h3 { font-size:25px; margin:5px 0 8px; letter-spacing:-.5px; }
.home-sofa-info > strong { font-size:15px; margin-top:24px; white-space:nowrap; }
.home-section-action { display:flex; justify-content:center; margin-top:44px; }
.home-redesign .coffee-tables--home { background:#f4f2ed; padding:65px 0; }
.home-redesign .coffee-tables-heading h2 { font-size:40px; }
.home-redesign .coffee-table-card { border:0; border-radius:0; }
.home-redesign .coffee-table-photo img { object-fit:contain; }
.home-redesign .home-editorial-bed { background:#e5e7df; }
.home-editorial-bed .home-editorial-photo { order:2; }
.home-journal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.home-journal-grid > a { display:flex; flex-direction:column; align-items:flex-start; min-height:250px; padding:32px; background:#f4f2ed; }
.home-journal-grid > a > span:first-child { font-size:10px; text-transform:uppercase; letter-spacing:.13em; }
.home-redesign .home-journal-grid h3 { font-size:27px; line-height:1.3; margin:22px 0; }
.home-journal-grid .home-text-link { margin-top:auto; }
.home-notices { padding-top:16px; padding-bottom:16px; }
@media (min-width:992px) {
    body[data-page="home"] nav.navbar-fixed { position:sticky; top:0; background:#fff; border-bottom:1px solid #eee; }
    body[data-page="home"] nav .navigation-main { min-height:80px; }
    body[data-page="home"] nav .logo.site-brand { color:#252720 !important; }
    body[data-page="home"] nav .navigation-main .floating-menu > ul > li > a { color:#252720 !important; }
}
@media (max-width:991px) {
    .home-redesign .home-shell { padding-left:24px; padding-right:24px; }
    .home-colour-track { justify-content:flex-start; gap:30px; }
    .home-shape-card { flex-basis:140px; }
    .home-shape-photo { width:140px; height:140px; }
    .home-sofa-grid { gap:30px 18px; }
    .home-editorial-copy { padding:42px 10%; }
    .home-journal-grid > a { padding:24px; }
}
@media (max-width:767px) {
    .home-redesign .home-shell { padding-left:20px; padding-right:20px; }
    .home-redesign .home-section { padding-top:42px; padding-bottom:42px; }
    .home-redesign .home-section-heading { margin-bottom:26px; }
    .home-redesign .home-section-heading h2 { font-size:32px; }
    .home-redesign .home-section-heading p { font-size:13px; max-width:290px; margin:0 auto; }
    .home-hero-slide { height:auto; aspect-ratio:4 / 3; }
    .home-hero-slide::after { display:none; }
    .home-hero-caption { bottom:14px; right:14px; left:14px; width:fit-content; min-width:170px; padding:10px 14px; font-size:12px; }
    .home-hero-caption small { font-size:11px; }
    .home-hero-copy { position:static; transform:none; max-width:none; padding:27px 20px 28px; color:#252720; background:#f7f5f0; }
    .home-redesign .home-hero-copy h1 { font-size:clamp(34px,9vw,48px); letter-spacing:-1.2px; margin-bottom:18px; }
    .home-hero-copy > p { font-size:14px; margin-bottom:20px; }
    .home-hero-copy > p br { display:none; }
    .home-redesign .home-hero-copy .home-button { background:#252720; color:white; border-color:#252720; width:100%; }
    .home-hero-controls { top:12px; bottom:auto; right:12px; left:auto; background:rgba(0,0,0,.35); padding:5px 8px; border-radius:22px; gap:8px; }
    .home-hero-controls button { min-width:28px; height:28px; font-size:11px; }
    .home-shape-card { flex-basis:114px; gap:12px; font-size:12px; }
    .home-shape-photo { width:114px; height:114px; }
    .home-category-track { gap:16px; scroll-snap-type:x proximity; }
    .home-shape-card { scroll-snap-align:start; }
    .home-colour-track { gap:24px; }
    .home-colour-choice { flex-basis:72px; gap:14px; font-size:12px; }
    .home-colour-choice > span { width:72px; height:72px; }
    .home-redesign .home-editorial { grid-template-columns:1fr; min-height:0; }
    .home-editorial-photo { min-height:0; aspect-ratio:4 / 3; }
    .home-editorial-copy { padding:36px 24px 42px; }
    .home-redesign .home-editorial-copy h2 { font-size:44px; }
    .home-editorial-copy > p:not(.home-kicker) { font-size:14px; }
    .home-kicker { margin-bottom:18px; }
    .home-editorial-bed .home-editorial-photo { order:0; }
    .home-fabric-choice { flex-basis:125px; }
    .home-fabric-choice > span:last-child { font-size:12px; }
    .home-sofa-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 12px; }
    .home-sofa-info { display:block; padding-top:12px; }
    .home-redesign .home-sofa-info h3 { font-size:20px; }
    .home-sofa-info > strong { display:block; margin:8px 0; font-size:14px; }
    .home-sofa-card > .home-text-link { font-size:11px; gap:8px; }
    .home-redesign .coffee-tables-heading h2 { font-size:32px; }
    .home-journal-grid { grid-template-columns:1fr; gap:12px; }
    .home-journal-grid > a { min-height:190px; }
    .home-redesign .home-journal-grid h3 { font-size:26px; }
}
@media (prefers-reduced-motion:reduce) { .home-hero-slide,.home-shape-photo img { transition:none; } }

/* Colour swatches and sofa shapes follow the reference's open grid layout. */
.home-redesign .home-colour-section { background:#fff; }
.home-redesign .home-colour-track { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:34px 40px; max-width:780px; margin:0 auto; overflow:visible; padding:8px; }
.home-redesign .home-colour-choice { position:relative; display:block; min-width:0; width:100%; }
.home-redesign .home-colour-choice > span { width:min(100%,140px); height:auto; aspect-ratio:1; margin:0 auto; border:0; box-shadow:none; background-repeat:no-repeat; }
.home-redesign .home-colour-choice > strong {
    position:absolute; z-index:2; top:50%; left:50%; transform:translate(-50%,-50%);
    width:max-content; max-width:100%; padding:7px 10px; margin:0;
    border-radius:6px; background:rgba(37,39,32,.9); color:#fff;
    font-size:12px; line-height:1.35; text-align:center; overflow-wrap:anywhere;
    opacity:0; pointer-events:none;
}
.home-redesign .home-colour-choice:hover > strong,
.home-redesign .home-colour-choice:focus-visible > strong,
.home-redesign .home-colour-choice.is-name-visible > strong { opacity:1; }
/* Square category photography with captions over the image. */
.home-redesign .home-shop-sofas { max-width:1280px; padding-left:24px; padding-right:24px; }
.home-redesign .home-shop-sofas .home-section-heading { margin-bottom:48px; }
.home-redesign .home-shop-sofas h2 { color:#414141; font-size:clamp(34px,6vw,52px); font-weight:700; letter-spacing:-1.5px; }
.home-redesign .home-shop-sofas h2 em { font-weight:400; }
.home-redesign .home-category-track { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-width:none; margin:0; padding:0; overflow:visible; }
.home-redesign .home-shape-card { display:block; position:relative; min-width:0; overflow:hidden; text-align:left; color:#fff; }
.home-redesign .home-shape-photo { display:block; width:100%; height:auto; aspect-ratio:1; border-radius:0; background:#e5e2dc; overflow:hidden; }
.home-redesign .home-shape-photo img { object-fit:cover; mix-blend-mode:normal; }
.home-redesign .home-shape-card::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.48)); pointer-events:none; }
.home-redesign .home-shape-card > span:last-child { position:absolute; z-index:1; left:9%; right:5%; bottom:10%; font-family:Georgia,'Times New Roman',serif; font-size:clamp(20px,4.8vw,40px); font-weight:700; letter-spacing:-1.2px; line-height:1.1; text-shadow:0 1px 3px rgba(0,0,0,.2); }
@media (max-width:767px) {
    .home-redesign .home-colour-track { gap:22px 16px; padding:4px; }
    .home-redesign .home-colour-choice > span { width:100%; }
    .home-redesign .home-shop-sofas { padding-left:clamp(12px,2.9vw,24px); padding-right:clamp(12px,2.9vw,24px); }
    .home-redesign .home-shop-sofas .home-section-heading { margin-bottom:40px; }
    .home-redesign .home-category-track { gap:8px; }
}

.home-hero-actions {
    display:flex; flex-wrap:nowrap; gap:8px; width:100%; max-width:100%; min-width:0;
    pointer-events:auto; touch-action:pan-x pan-y pinch-zoom;
    overflow-x:auto; overflow-y:hidden; padding:4px 3px 12px; scrollbar-width:none;
    scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
}
.home-hero-actions::-webkit-scrollbar { display:none; }
.home-redesign .home-hero-actions > a { flex:0 0 auto; scroll-snap-align:start; touch-action:pan-x pan-y pinch-zoom; }
.home-redesign .home-category-button {
    display:inline-flex; align-items:center; justify-content:center;
    min-height:44px; padding:9px 18px; border:1px solid #e4dfd3;
    border-radius:24px; background:#faf8f3; color:#252924;
    font-size:12px; font-weight:500; line-height:1.5; white-space:nowrap;
}
.home-redesign .home-category-button:hover,
.home-redesign .home-category-button:focus-visible {
    background:#252924; color:#fff; border-color:#252924;
}

.home-redesign .home-fabric-section .home-fabric-track { grid-template-columns:repeat(3,minmax(0,1fr)); }

html:has(.home-redesign) { scroll-behavior:smooth; }
.home-redesign [id^="home-"] { scroll-margin-top:130px; }
@media (prefers-reduced-motion:reduce) {
    html:has(.home-redesign) { scroll-behavior:auto; }
}

/* Each category tile previews different products while preserving its shop link. */
.home-redesign .home-shape-photo[data-category-slides] {
    display:flex; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory;
    scrollbar-width:none; touch-action:pan-x pan-y pinch-zoom; -webkit-overflow-scrolling:touch;
}
.home-shape-photo[data-category-slides]::-webkit-scrollbar { display:none; }
.home-category-slide { display:block; flex:0 0 100%; width:100%; height:100%; scroll-snap-align:start; }
.home-redesign .home-shape-card > span:last-child { pointer-events:none; }
.home-slides-toggle { border:1px solid #d6d0c5; border-radius:20px; background:#fff; color:#252720; padding:8px 16px; margin-top:16px; min-height:44px; font:inherit; font-size:12px; }
.home-slides-toggle[hidden] { display:none; }

@media (min-width: 992px) {
    .home-redesign .home-shop-sofas .home-category-track {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Fabric cards keep their labels visible, including on touch screens. */
.home-redesign .home-fabric-section { background: #f8f5ef; }
.home-redesign .home-fabric-section .home-fabric-track { gap: 24px; }
.home-redesign .home-fabric-section .home-fabric-choice {
    padding: 11px 11px 20px; border: 1px solid #e6dfd2; border-radius: 19px;
    background: #fff; text-decoration: none; overflow: hidden;
}
.home-redesign .home-fabric-section .home-fabric-texture {
    width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: 12px; margin: 0 0 16px;
}
.home-redesign .home-fabric-section .home-fabric-choice > strong {
    position: static; display: block; transform: none; width: auto; max-width: 100%;
    margin: 0 5px 6px; padding: 0; background: none; border-radius: 0;
    color: #203b36; font-size: 21px; font-weight: 500; line-height: 1.3;
    text-align: left; opacity: 1; pointer-events: auto;
}
.home-redesign .home-fabric-section .home-fabric-choice > small {
    display: block; margin: 0 5px; color: #61736c; font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: .4px;
}
.home-redesign .home-fabric-section .home-fabric-choice:hover,
.home-redesign .home-fabric-section .home-fabric-choice:focus-visible { border-color: #b89458; }
@media (max-width: 767px) {
    .home-redesign .home-fabric-section .home-fabric-track { gap: 12px; padding: 0; }
    .home-redesign .home-fabric-section .home-fabric-choice { padding: 7px 7px 12px; border-radius: 13px; }
    .home-redesign .home-fabric-section .home-fabric-texture { border-radius: 8px; margin-bottom: 10px; }
    .home-redesign .home-fabric-section .home-fabric-choice > strong { margin: 0 2px 5px; font-size: clamp(12px, 2.9vw, 17px); }
    .home-redesign .home-fabric-section .home-fabric-choice > small { margin: 0 2px; font-size: clamp(11px, 2.7vw, 15px); }
}

@media (min-width: 992px) {
    .home-redesign .home-fabric-section .home-fabric-track {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
