@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Newsreader:opsz,wght@6..72,400;6..72,500&display=swap');

:root{--ink:#24302a;--cream:#f7f4ed;--paper:#fffdf8;--sage:#a8b3a0;--clay:#c98368;--line:#dcd9cf;--muted:#6c746f;--serif:"Newsreader",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
img{display:block;width:100%}
.announcement{background:var(--ink);color:#fff;text-align:center;padding:8px 20px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.site-header{height:78px;padding:0 4vw;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);background:rgba(255,253,248,.96);position:relative;z-index:20}
.logo{font-size:19px;letter-spacing:.12em;font-weight:600;white-space:nowrap}
.logo span{font-weight:400;color:var(--clay)}
.main-nav{display:flex;gap:28px;font-size:13px}
.main-nav a,.cart-link{position:relative}
.main-nav a:after,.cart-link:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:currentColor;transition:.25s}
.main-nav a:hover:after,.main-nav a.active:after,.cart-link:hover:after,.cart-link.active:after{right:0}
.cart-link{justify-self:end;font-size:13px}
.cart-count{display:inline-grid;place-items:center;background:var(--clay);color:#fff;border-radius:50%;min-width:20px;height:20px;padding:0 5px;margin-left:5px;font-size:11px}
.menu-toggle{display:none;border:0;background:none;font-size:23px}
.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:600;margin:0 0 14px;color:var(--muted)}
h1,h2{font-family:var(--serif);font-weight:400;line-height:1.02;margin:0}
h1{font-size:clamp(52px,7vw,102px)}
h2{font-size:clamp(36px,4vw,58px)}
.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);min-height:50px;padding:0 28px;letter-spacing:.035em;font-size:13px;transition:.25s}
.button-dark{background:var(--ink);color:white}
.button-dark:hover{background:#445047}
.button-outline{background:transparent}
.button-outline:hover{background:var(--ink);color:#fff}
.text-link{font-size:13px;text-decoration:underline;text-underline-offset:5px}
.hero{min-height:690px;display:grid;grid-template-columns:57% 43%;background:#e7e0d3}
.hero-image{background:url("https://images.unsplash.com/photo-1507473885765-e6ed057f782c?auto=format&fit=crop&w=1600&q=88") center/cover no-repeat;min-height:600px}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:8vw;align-items:flex-start}
.hero-copy h1{margin-bottom:25px}
.hero-copy>p:not(.eyebrow){max-width:430px;margin:0 0 35px;color:#4e5752;font-size:17px}
.section{padding:110px 5vw}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px}
.category-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:300px 300px;gap:18px}
.category-card{position:relative;overflow:hidden;background:#ddd}
.category-card.tall{grid-row:span 2;grid-column:span 2}
.category-card img{height:100%;object-fit:cover;transition:transform .7s}
.category-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(22,29,25,.65))}
.category-card:hover img{transform:scale(1.035)}
.category-card>span{position:absolute;z-index:2;left:24px;bottom:22px;color:white;font-family:var(--serif);font-size:29px}
.category-card small{display:block;font:10px var(--sans);text-transform:uppercase;letter-spacing:.12em;margin-top:5px}
.soft-section{background:var(--cream)}
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:38px 18px}
.product-card{min-width:0}
.product-image-wrap{position:relative;aspect-ratio:4/5;background:#edeae2;overflow:hidden}
.product-image-wrap img{height:100%;object-fit:cover;transition:transform .5s}
.product-card:hover img{transform:scale(1.025)}
.product-badge{position:absolute;top:13px;left:13px;background:var(--paper);padding:5px 9px;font-size:9px;text-transform:uppercase;letter-spacing:.1em}
.quick-add{position:absolute;left:12px;right:12px;bottom:12px;height:43px;border:0;background:rgba(36,48,42,.95);color:#fff;transform:translateY(65px);transition:.25s}
.product-card:hover .quick-add,.quick-add:focus{transform:translateY(0)}
.product-meta{padding-top:14px;display:grid;grid-template-columns:1fr auto;gap:3px 10px}
.product-category{grid-column:1/-1;margin:0;text-transform:uppercase;color:var(--muted);font-size:9px;letter-spacing:.13em}
.product-name{font-family:var(--serif);font-size:19px;line-height:1.25}
.product-price{font-size:13px}
.product-colors{grid-column:1/-1;color:var(--muted);font-size:11px}
.story{display:grid;grid-template-columns:1.25fr .75fr;padding-left:0;padding-right:0;padding-bottom:0}
.story-image img{height:650px;object-fit:cover}
.story-copy{background:#c8d0c2;padding:8vw 6vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.story-copy h2{margin-bottom:25px}
.story-copy>p:not(.eyebrow){margin:0 0 32px;max-width:440px}
.newsletter{text-align:center;padding:100px 20px;background:#e5cfc1}
.newsletter h2{margin-bottom:15px}
.newsletter form{max-width:520px;margin:30px auto 0;display:flex;border-bottom:1px solid var(--ink)}
.newsletter input{width:100%;border:0;background:transparent;padding:14px 4px;outline:0}
.newsletter button{border:0;background:transparent;white-space:nowrap}
.form-message{height:22px;margin-top:12px;font-size:12px}
.site-footer{background:var(--ink);color:#f5f1e8;padding:70px 5vw 25px;display:grid;grid-template-columns:2fr repeat(3,1fr);gap:40px;position:relative}
.site-footer>div{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.site-footer h3{font-size:11px;text-transform:uppercase;letter-spacing:.14em;margin:0 0 10px;color:#bfc5c0}
.site-footer a:not(.logo){font-size:13px;color:#e2e4e1}
.site-footer a:hover{color:#fff}
.footer-logo{margin-bottom:9px}
.site-footer p{color:#aeb6b1;font-size:12px;margin:0}
.copyright{grid-column:1/-1;border-top:1px solid #4b554f;margin-top:25px!important;padding-top:22px}
#toast{position:fixed;z-index:100;right:24px;bottom:24px;background:var(--ink);color:white;padding:15px 22px;box-shadow:0 8px 30px #0003;transform:translateY(100px);opacity:0;transition:.3s;font-size:13px}
#toast.show{transform:translateY(0);opacity:1}

/* Shop */
.shop-hero{background:#d8ddd2;padding:95px 5vw 85px}
.shop-hero h1{font-size:clamp(52px,6.5vw,90px);max-width:900px}
.shop-hero>p:last-child{max-width:560px;margin:25px 0 0;font-size:17px}
.shop-section{padding:48px 5vw 110px}
.filter-bar{display:grid;grid-template-columns:220px 1fr auto;align-items:center;gap:30px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.search-wrap{display:flex;gap:8px;border-bottom:1px solid var(--ink);align-items:center}
.search-wrap input{border:0;outline:0;background:transparent;padding:9px 0;width:100%}
.category-filters{display:flex;gap:7px;flex-wrap:wrap}
.filter-chip{border:1px solid var(--line);border-radius:30px;background:transparent;padding:8px 15px;font-size:12px}
.filter-chip:hover,.filter-chip.active{background:var(--ink);border-color:var(--ink);color:#fff}
.sort-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.sort-label select{margin-left:8px;border:0;border-bottom:1px solid var(--ink);background:transparent;padding:8px 5px;outline:0}
.results-row{display:flex;justify-content:space-between;align-items:center;margin:28px 0}
.results-row p{color:var(--muted);font-size:12px}
.text-button{border:0;border-bottom:1px solid;background:transparent;padding:0;font-size:12px}
.load-wrap{text-align:center;margin-top:55px}
.empty-state,.empty-cart{text-align:center;padding:100px 20px}
.empty-state p,.empty-cart p{color:var(--muted);margin-bottom:28px}

/* Product */
.product-detail{display:grid;grid-template-columns:58% 42%;max-width:1500px;margin:auto}
.detail-gallery{padding:36px;display:grid;gap:15px;background:#f0ede6}
.detail-main-image{aspect-ratio:4/4.5}
.detail-main-image img,.detail-secondary img{height:100%;object-fit:cover}
.detail-secondary{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.detail-secondary img{aspect-ratio:1/1;filter:saturate(.8)}
.detail-info{padding:90px 7vw 60px;position:sticky;top:0;align-self:start}
.detail-info h1{font-size:clamp(48px,5vw,75px);margin:8px 0 15px}
.rating{font-size:11px;letter-spacing:.08em;color:var(--clay)}
.rating span{color:var(--muted);letter-spacing:0;margin-left:8px}
.detail-price{font-size:18px;margin:25px 0}
.detail-description{color:var(--muted);font-size:16px;margin-bottom:32px;max-width:530px}
.option-block{border-top:1px solid var(--line);padding-top:24px}
.option-title{display:flex;justify-content:space-between;font-size:12px;margin-bottom:14px}
.color-options{display:flex;gap:10px}
.color-option{width:34px;height:34px;border-radius:50%;border:3px solid var(--paper);box-shadow:0 0 0 1px var(--line)}
.color-option.active{box-shadow:0 0 0 2px var(--ink)}
.purchase-row{display:flex;gap:12px;margin:28px 0}
.quantity-picker{border:1px solid var(--line);display:flex;align-items:center;height:52px}
.quantity-picker button{border:0;background:transparent;width:34px;font-size:19px}
.quantity-picker input{width:36px;text-align:center;border:0;outline:0;background:transparent}
.add-main{flex:1}
.detail-perks{background:var(--cream);padding:15px 20px;margin-bottom:22px}
.detail-perks p{font-size:11px;margin:5px 0}
details{border-top:1px solid var(--line);padding:18px 0}
details:last-child{border-bottom:1px solid var(--line)}
summary{font-size:13px;font-weight:600;cursor:pointer}
details p{color:var(--muted);font-size:13px}

/* Cart */
.cart-page{padding:75px 5vw 110px;max-width:1400px;margin:auto}
.cart-title h1{font-size:70px}
.cart-layout{display:grid;grid-template-columns:1fr 380px;gap:7vw;margin-top:50px}
.shipping-progress{padding:20px;background:var(--cream);margin-bottom:15px}
.shipping-progress p{font-size:12px;margin:0 0 12px}
.progress-track{height:4px;background:#dedbd3}
.progress-track span{display:block;height:100%;background:var(--clay);width:0;transition:.4s}
.cart-item{display:grid;grid-template-columns:130px 1fr auto;gap:22px;padding:25px 0;border-top:1px solid var(--line)}
.cart-item-image{aspect-ratio:4/5;object-fit:cover}
.cart-item-info h3{font:22px var(--serif);margin:5px 0}
.cart-item-info p{font-size:11px;color:var(--muted);margin:3px 0}
.cart-item-actions{display:flex;align-items:center;gap:18px;margin-top:22px}
.cart-item-actions .quantity-picker{height:38px}
.remove-item{border:0;background:transparent;text-decoration:underline;font-size:11px;color:var(--muted)}
.cart-line-price{font-weight:500}
.order-summary{background:var(--cream);padding:32px;height:max-content;position:sticky;top:25px}
.order-summary h2{font-size:31px;margin-bottom:30px}
.order-summary>div:not(.checkout-message){display:flex;justify-content:space-between;margin:13px 0;font-size:13px}
.order-summary .summary-total{border-top:1px solid var(--line);padding-top:20px;margin-top:20px!important;font-size:17px!important}
.order-summary>p{font-size:10px;color:var(--muted)}
.order-summary .button{width:100%;margin:15px 0}
.continue-link{display:block;text-align:center;text-decoration:underline;font-size:12px}
.checkout-message{text-align:center;font-size:11px;color:var(--clay);min-height:20px}
.empty-cart>div{font-size:60px;color:var(--sage)}

@media(max-width:1000px){
  .site-header{grid-template-columns:1fr auto auto;gap:18px}.menu-toggle{display:block;grid-column:2}.cart-link{grid-column:3}
  .main-nav{display:none;position:fixed;inset:109px 0 0;background:var(--paper);padding:40px;flex-direction:column;font:28px var(--serif)}
  .menu-open .main-nav{display:flex}.hero{grid-template-columns:1fr 1fr}.hero-copy{padding:5vw}
  .product-grid{grid-template-columns:repeat(3,1fr)}.product-grid.four{grid-template-columns:repeat(2,1fr)}
  .filter-bar{grid-template-columns:1fr auto}.category-filters{grid-column:1/-1;grid-row:2}.product-detail{grid-template-columns:55% 45%}.detail-info{padding:60px 4vw}
  .cart-layout{grid-template-columns:1fr 330px;gap:35px}
}
@media(max-width:700px){
  .announcement{font-size:9px}.site-header{height:65px;padding:0 18px}.main-nav{inset:96px 0 0}.logo{font-size:16px}
  .hero{display:flex;flex-direction:column;min-height:0}.hero-image{min-height:58vh}.hero-copy{padding:60px 24px 70px}.hero-copy h1{font-size:54px}
  .section{padding:75px 20px}.section-heading{align-items:start;gap:20px}.section-heading .text-link{display:none}
  .category-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:300px 210px 210px;gap:9px}
  .category-card.tall{grid-column:span 2;grid-row:auto}.category-card>span{font-size:23px;left:15px;bottom:14px}
  .product-grid,.product-grid.four{grid-template-columns:repeat(2,1fr);gap:30px 10px}.product-name{font-size:16px}.quick-add{transform:none;height:38px;left:7px;right:7px;bottom:7px}
  .story{display:flex;flex-direction:column;padding:0}.story-image img{height:420px}.story-copy{padding:75px 24px}.newsletter{padding:75px 20px}
  .site-footer{grid-template-columns:1fr 1fr;padding:55px 24px 25px}.site-footer>div:first-child{grid-column:1/-1}
  .shop-hero{padding:70px 20px}.shop-hero h1{font-size:51px}.shop-section{padding:30px 16px 75px}
  .filter-bar{grid-template-columns:1fr}.category-filters{grid-column:1;grid-row:auto;flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}.sort-label{justify-self:end}
  .product-detail{display:block}.detail-gallery{padding:12px}.detail-secondary{display:none}.detail-info{padding:55px 22px;position:static}.detail-info h1{font-size:48px}
  .cart-page{padding:55px 18px 75px}.cart-title h1{font-size:54px}.cart-layout{display:block;margin-top:35px}.order-summary{position:static;margin-top:40px}.cart-item{grid-template-columns:95px 1fr}.cart-line-price{grid-column:2}.cart-item-actions{gap:8px;flex-wrap:wrap}
}
