:root {
  --ink: #121210;
  --paper: #f2efe8;
  --sand: #d9ccba;
  --warm: #b89368;
  --line: rgba(18, 18, 16, .17);
  --muted: #746f66;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --mono: "DM Mono", monospace;
  --shadow: 0 24px 65px rgba(0, 0, 0, .18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 15px; line-height: 1.5; }
body.overlay-open, body.menu-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
main:focus { outline: none; }
.skip-link { position: fixed; left: 12px; top: -50px; z-index: 99; padding: 9px 13px; background: var(--paper); color: var(--ink); transition: top .18s; }
.skip-link:focus { top: 12px; }
.sr-only { position: absolute; overflow: hidden; clip: rect(0, 0, 0, 0); width: 1px; height: 1px; white-space: nowrap; }

.announcement { height: 34px; display: flex; align-items: center; justify-content: center; gap: 14px; padding: 0 15px; background: #2d2c28; color: #f5f2ec; text-align: center; font: 10px/1 var(--mono); letter-spacing: .04em; }
.announcement button { padding: 0; color: inherit; border: 0; background: none; font-size: 19px; line-height: 1; }
.site-header { height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 clamp(20px, 4vw, 64px); position: relative; z-index: 12; background: var(--paper); border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; flex-direction: column; align-items: flex-start; font-size: 19px; font-weight: 800; letter-spacing: -.075em; line-height: .72; white-space: nowrap; }
.brand small { margin-left: 1px; font-size: 8px; font-weight: 700; letter-spacing: .23em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(20px, 3vw, 46px); margin-left: auto; margin-right: 28px; }
.desktop-nav a, .footer-links a { position: relative; font-size: 11px; font-weight: 700; letter-spacing: .035em; }
.desktop-nav a::after, .footer-links a::after { content: ""; position: absolute; bottom: -5px; left: 0; width: 0; height: 1px; background: currentColor; transition: width .22s; }
.desktop-nav a:hover::after, .footer-links a:hover::after { width: 100%; }
.header-actions { display: flex; align-items: center; gap: 9px; }
.icon-button, .menu-button { display: grid; place-items: center; width: 36px; height: 36px; position: relative; color: var(--ink); border: 0; border-radius: 50%; background: transparent; }
.icon-button:hover { background: #e3ded3; }
.icon-button svg { width: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.cart-count { position: absolute; right: -1px; top: 1px; min-width: 15px; height: 15px; padding: 0 3px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--paper); font: 9px/1 var(--mono); }
.menu-button { display: none; padding: 0; }
.menu-button span { display: block; width: 19px; height: 1.5px; margin: 3px 0; background: currentColor; }
.mobile-nav { position: absolute; z-index: 10; top: 112px; left: 0; right: 0; padding: 22px 20px 28px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 12px 24px rgba(0,0,0,.08); }
.announcement-hidden .mobile-nav { top: 78px; }
.mobile-nav a { display: block; padding: 12px 0; border-bottom: 1px solid var(--line); font-weight: 700; font-size: 18px; }

.hero { min-height: min(755px, calc(100vh - 112px)); position: relative; isolation: isolate; overflow: hidden; background: #222; color: #fbf7ef; }
.hero > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-overlay { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.51) 34%, rgba(0,0,0,.04) 75%), linear-gradient(0deg, rgba(0,0,0,.34), transparent 42%); }
.hero-content { max-width: 650px; padding: clamp(70px, 13vh, 155px) clamp(22px, 8vw, 128px); }
.hero-kicker, .eyebrow { margin: 0 0 16px; color: currentColor; font: 10px/1.2 var(--mono); letter-spacing: .145em; text-transform: uppercase; }
.hero h1, .page-intro h1, .product-info h1, .checkout h1 { margin: 0; font-size: clamp(57px, 8.2vw, 123px); line-height: .9; font-weight: 700; letter-spacing: -.075em; }
h1 em, h2 em { font-family: var(--serif); font-weight: 500; letter-spacing: -.07em; }
.hero-content > p:not(.hero-kicker) { max-width: 280px; margin: 27px 0 30px; font-size: 15px; color: #ece6dc; }
.hero-note { position: absolute; right: clamp(20px, 4vw, 64px); bottom: 28px; display: flex; align-items: center; gap: 10px; font: 10px var(--mono); letter-spacing: .05em; }
.hero-note span { width: 29px; height: 1px; background: currentColor; }

.button { min-height: 48px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font-size: 11px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; transition: transform .2s, background .2s, color .2s; }
.button:hover { transform: translateY(-2px); background: transparent; color: var(--ink); }
.button span { font-size: 16px; font-weight: 400; }
.button-light { border-color: #fbf7ef; background: #fbf7ef; color: var(--ink); }
.button-light:hover { background: transparent; color: #fbf7ef; }
.section-pad { padding: clamp(57px, 9vw, 138px) clamp(20px, 6.8vw, 108px); }
.statement { display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; background: #e4ded3; }
.statement h2, .section-head h2, .editorial h2, .newsletter-band h2, .contact-aside h2, .size-guide h2, .info-layout h2 { margin: 0; max-width: 720px; font-size: clamp(40px, 5.5vw, 76px); line-height: .98; letter-spacing: -.07em; }
.statement-copy { max-width: 530px; justify-self: end; }
.statement-copy p { margin: 7px 0 32px; font-size: clamp(18px, 2vw, 25px); line-height: 1.45; letter-spacing: -.035em; }
.text-link { display: inline-flex; gap: 12px; align-items: center; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.text-link span { font-size: 16px; font-weight: 400; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 38px; }
.section-head h2 { font-size: clamp(34px, 4vw, 57px); }
.section-head .eyebrow { margin-bottom: 12px; }
.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(15px, 2.4vw, 36px); }
.product-card { min-width: 0; }
.product-image { display: block; position: relative; overflow: hidden; aspect-ratio: .785; background: #e3ded3; }
.product-card.dark .product-image { background: #2c2c2a; }
.product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.product-image:hover img { transform: scale(1.045); }
.product-image.dark { background: #292927; }
.product-badge { position: absolute; left: 12px; top: 12px; padding: 5px 7px; background: rgba(242,239,232,.95); font: 9px var(--mono); letter-spacing: .03em; }
.product-arrow { position: absolute; right: 14px; bottom: 11px; width: 33px; height: 33px; display: grid; place-items: center; border-radius: 50%; background: var(--paper); opacity: 0; transform: translateY(8px); transition: .28s; }
.product-image:hover .product-arrow { opacity: 1; transform: translateY(0); }
.product-meta { padding: 14px 1px 0; display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.product-meta .eyebrow { margin-bottom: 5px; color: var(--muted); font-size: 9px; }
.product-meta h3 { margin: 0; font-size: 14px; letter-spacing: -.035em; }
.product-meta strong { padding-top: 3px; font: 10px var(--mono); white-space: nowrap; }
.editorial { min-height: 680px; display: grid; grid-template-columns: 1fr 1fr; background: #1d1d1a; color: #f5f0e7; }
.editorial-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(58px, 9vw, 140px); }
.editorial-copy .eyebrow { color: #cbbba4; }
.editorial-copy h2 { max-width: 570px; }
.editorial-copy > p:not(.eyebrow) { max-width: 400px; margin: 29px 0 34px; color: #cfc9bf; font-size: 16px; }
.editorial-image { overflow: hidden; background: #343431; }
.editorial-image img { width: 100%; height: 100%; object-fit: cover; }
.values { background: var(--paper); }
.values > .eyebrow { color: var(--muted); }
.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 31px; }
.value-grid article { padding: 21px 19px 0 0; border-top: 1px solid var(--ink); }
.value-grid span { font: 10px var(--mono); color: var(--muted); }
.value-grid h3 { margin: 38px 0 11px; font-size: 21px; letter-spacing: -.05em; }
.value-grid p { max-width: 300px; margin: 0; color: #555048; font-size: 13px; line-height: 1.7; }
.newsletter-band { padding: clamp(50px, 7vw, 100px) 20px; display: flex; flex-direction: column; align-items: center; background: #b89670; text-align: center; }
.newsletter-band h2 { margin: 3px 0 28px; font-size: clamp(32px, 4vw, 60px); letter-spacing: -.065em; }

.page-intro { min-height: 360px; display: flex; flex-direction: column; align-items: flex-start; justify-content: end; background: #e4ded3; }
.page-intro .eyebrow { color: #615b52; }
.page-intro h1 { max-width: 1050px; font-size: clamp(51px, 7vw, 100px); }
.page-intro > p:last-child { max-width: 520px; margin: 27px 0 0; color: #585249; font-size: 15px; }
.shop { padding-top: 32px; }
.filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 33px; }
.filter { min-height: 33px; padding: 0 11px; border: 1px solid var(--line); border-radius: 16px; background: transparent; color: var(--ink); font-size: 11px; font-weight: 700; }
.filter:hover, .filter.active { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.filter-bar > span { margin-left: auto; color: var(--muted); font: 10px var(--mono); }
.shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 44px; }

.breadcrumbs { padding: 18px clamp(20px, 6.8vw, 108px); display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--line); color: var(--muted); font: 10px var(--mono); }
.breadcrumbs a:hover { color: var(--ink); }
.breadcrumbs strong { color: var(--ink); font-weight: 500; }
.product-page { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(350px, .92fr); align-items: start; }
.product-gallery { position: sticky; top: 0; min-height: calc(100vh - 1px); background: #ded7ca; overflow: hidden; }
.product-gallery.dark { background: #30302e; }
.product-gallery img { width: 100%; height: calc(100vh - 1px); object-fit: cover; }
.gallery-stamp { position: absolute; left: 24px; bottom: 23px; padding: 9px; border: 1px solid rgba(255,255,255,.8); color: #fff; font: 10px/1.1 var(--mono); letter-spacing: .08em; }
.product-info { padding: clamp(42px, 7vw, 108px) clamp(24px, 7vw, 108px); }
.product-info h1 { font-size: clamp(44px, 5.7vw, 78px); }
.product-info .price { margin: 20px 0 27px; font: 13px var(--mono); }
.product-description { max-width: 470px; margin: 0 0 35px; color: #514c45; font-size: 15px; line-height: 1.7; }
.option-group { margin: 0 0 24px; padding: 0; border: 0; }
.option-group legend { width: 100%; margin-bottom: 10px; display: flex; justify-content: space-between; font-size: 11px; font-weight: 800; letter-spacing: .03em; }
.option-group legend span { color: var(--muted); font-weight: 500; }
.option-group legend a { border-bottom: 1px solid currentColor; color: var(--muted); font-weight: 600; }
.swatches { display: flex; gap: 9px; }
.swatch { width: 33px; height: 33px; display: grid; place-items: center; padding: 3px; border: 1px solid transparent; border-radius: 50%; background: transparent; }
.swatch.selected { border-color: var(--ink); }
.swatch i { width: 23px; height: 23px; display: block; border: 1px solid rgba(0,0,0,.15); border-radius: 50%; background: var(--swatch); }
.size-options { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.size { height: 40px; border: 1px solid var(--line); background: transparent; font: 11px var(--mono); }
.size:hover, .size.selected { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.add-button { width: 100%; margin: 5px 0 24px; }
.product-assurances { padding: 18px 0 8px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.product-assurances p { margin: 0 0 8px; color: #575148; font-size: 11px; }
.product-assurances p:last-child { margin-bottom: 0; }
.product-assurances span { margin-right: 8px; color: #a77544; }
details { border-bottom: 1px solid var(--line); }
details summary { padding: 18px 0; display: flex; justify-content: space-between; list-style: none; font-size: 12px; font-weight: 800; cursor: pointer; }
details summary::-webkit-details-marker { display: none; }
details summary::after { content: "+"; color: var(--muted); font-size: 18px; font-weight: 400; }
details[open] summary::after { content: "−"; }
details p, details ul { margin: -2px 0 20px; color: #5d574f; font-size: 13px; line-height: 1.7; }
details ul { padding-left: 18px; }
.related { background: #e6e0d5; }

.about-intro h1 { max-width: 970px; }
.about-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 7vw, 105px); align-items: center; }
.about-grid > div:first-child { min-height: 610px; overflow: hidden; background: #262624; }
.about-grid img { width: 100%; height: 100%; min-height: 610px; object-fit: cover; }
.about-copy { max-width: 510px; }
.about-copy > p:not(.pull-quote) { font-size: clamp(19px, 2.25vw, 27px); line-height: 1.48; letter-spacing: -.04em; }
.pull-quote { margin: 42px 0 0; font: italic 26px/1.25 var(--serif); }
.dna { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(45px, 9vw, 135px); background: #d0b18d; }
.dna h2 { margin: 0; font-size: clamp(40px, 5vw, 70px); line-height: .98; letter-spacing: -.07em; }
.dna-content > p { max-width: 590px; margin: 4px 0 52px; font-size: clamp(19px, 2vw, 27px); line-height: 1.45; letter-spacing: -.04em; }
.dna-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.dna-values article { min-height: 135px; padding-top: 14px; border-top: 1px solid var(--ink); }
.dna-values span { font: 10px var(--mono); }
.dna-values h3 { margin: 35px 0 0; font-size: clamp(17px, 2vw, 25px); letter-spacing: -.06em; text-transform: uppercase; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .6fr); gap: clamp(44px, 12vw, 190px); }
.contact-form { max-width: 590px; }
.contact-form label { display: block; margin-bottom: 20px; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; margin-top: 8px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; outline: 0; background: transparent; color: var(--ink); font-size: 15px; font-weight: 400; text-transform: none; resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: #a77544; box-shadow: 0 1px #a77544; }
.contact-form .button { margin-top: 12px; }
.form-note { margin: 14px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.contact-aside { padding-top: 5px; }
.contact-aside h2 { font-size: 40px; }
.contact-aside > p:not(.eyebrow) { max-width: 290px; margin: 24px 0 38px; color: #5c554d; }
.contact-aside div { margin: 16px 0; }
.contact-aside div span { display: block; margin-bottom: 2px; color: var(--muted); font: 10px var(--mono); text-transform: uppercase; }
.contact-aside div a { font-size: 14px; border-bottom: 1px solid currentColor; }
.contact-aside small { display: block; max-width: 260px; margin-top: 42px; color: var(--muted); font-size: 10px; }
.faq-list { max-width: 970px; padding-top: 25px; padding-bottom: 100px; }
.faq-list details summary { padding: 23px 0; font-size: clamp(16px, 2vw, 21px); letter-spacing: -.04em; }
.faq-list details summary::after { display: none; }
.faq-list details summary span { color: var(--muted); font-size: 25px; font-weight: 400; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { max-width: 720px; margin-bottom: 25px; font-size: 14px; }
.help-cta { padding: clamp(50px, 8vw, 110px) 20px; display: flex; align-items: center; justify-content: center; gap: 30px; background: #262624; color: var(--paper); }
.help-cta p { margin: 0; font: clamp(24px, 3vw, 42px) var(--serif); }
.info-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(45px, 10vw, 160px); }
.info-layout article h2 { margin-bottom: 31px; font-size: clamp(37px, 4vw, 58px); }
.info-layout article > p:not(.eyebrow) { max-width: 460px; color: #575149; font-size: 14px; line-height: 1.8; }
.delivery-cards { display: grid; gap: 1px; grid-template-columns: 1fr 1fr; background: var(--ink); }
.delivery-cards div { min-height: 190px; padding: 23px; background: #e4ded3; }
.delivery-cards h3 { margin: 0 0 25px; font-size: 17px; }
.delivery-cards strong { display: block; margin-bottom: 10px; font-size: 22px; letter-spacing: -.05em; }
.delivery-cards p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.size-guide { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(40px, 9vw, 130px); align-items: start; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
caption { padding-bottom: 16px; text-align: left; font: 10px var(--mono); color: var(--muted); }
th, td { padding: 13px 14px; text-align: left; border-bottom: 1px solid var(--line); }
th { font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.size-guide-copy h2 { font-size: 38px; }
.size-guide-copy p { color: #5c564e; line-height: 1.8; }
.legal-content { max-width: 930px; padding-top: 42px; }
.legal-content section { padding: 0 0 32px; margin-bottom: 32px; border-bottom: 1px solid var(--line); }
.legal-content h2 { margin: 0 0 12px; font-size: 25px; letter-spacing: -.05em; }
.legal-content p { max-width: 750px; margin: 0; color: #5b554e; line-height: 1.8; }
.not-found { min-height: 500px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; background: #e4ded3; }
.not-found h1 { max-width: 580px; margin: 0 0 30px; font-size: clamp(52px, 6vw, 82px); line-height: .95; letter-spacing: -.07em; }

.site-footer { padding: 56px clamp(20px, 6.8vw, 108px) 20px; background: #171715; color: #efebe4; }
.footer-top { display: grid; grid-template-columns: .85fr 1fr 1.55fr; gap: 45px; padding-bottom: 66px; border-bottom: 1px solid rgba(255,255,255,.2); }
.footer-brand { font-size: 27px; }
.footer-brand small { font-size: 10px; }
.footer-top > p { max-width: 210px; margin: 0; color: #b8b3aa; font-size: 12px; line-height: 1.7; }
.newsletter label { display: block; margin-bottom: 15px; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.newsletter > div { display: flex; border-bottom: 1px solid #bdb6ab; }
.newsletter input { min-width: 0; flex: 1; padding: 12px 0; border: 0; outline: 0; background: transparent; color: inherit; }
.newsletter input::placeholder { color: #aaa49a; }
.newsletter button { padding: 0; border: 0; background: none; color: inherit; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.newsletter button span { margin-left: 7px; font-size: 15px; font-weight: 400; }
.newsletter small { display: block; margin-top: 11px; color: #89837a; font-size: 9px; }
.footer-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 43px 0; }
.footer-links h2 { margin: 0 0 16px; color: #8e887f; font: 9px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.footer-links a { display: table; margin-bottom: 9px; font-size: 11px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; color: #8e887f; font: 9px var(--mono); text-transform: uppercase; }
.footer-bottom a { color: #ebe6dd; }

.scrim { position: fixed; z-index: 30; inset: 0; opacity: 0; background: rgba(0,0,0,.46); transition: opacity .18s; }
.scrim.visible { opacity: 1; }
.drawer { width: min(460px, 100vw); height: 100dvh; position: fixed; z-index: 31; top: 0; right: 0; display: flex; flex-direction: column; background: var(--paper); box-shadow: var(--shadow); transform: translateX(105%); transition: transform .25s cubic-bezier(.2,.7,.2,1); }
.drawer.is-open { transform: translateX(0); }
.drawer-head { height: 78px; flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 0 23px; border-bottom: 1px solid var(--line); }
.drawer-head h2 { margin: 0; font-size: 18px; letter-spacing: -.055em; }
.drawer-head h2 span { color: var(--muted); font-weight: 400; }
.close-button { width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; font-size: 26px; line-height: 1; }
.close-button:hover { background: #e3ded3; }
.cart-content { flex: 1; overflow-y: auto; }
.cart-empty { min-height: 430px; padding: 65px 29px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.cart-empty h3 { margin: 0 0 10px; font-size: 34px; letter-spacing: -.06em; }
.cart-empty p:not(.eyebrow) { max-width: 210px; margin: 0 0 25px; color: var(--muted); }
.cart-lines { padding: 4px 23px 0; }
.cart-line { display: grid; grid-template-columns: 91px 1fr auto; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.cart-line > img { width: 91px; height: 112px; object-fit: cover; background: #ded7ca; }
.cart-line-info { min-width: 0; }
.cart-line-info > div:first-child { display: flex; justify-content: space-between; gap: 7px; }
.cart-line h3 { margin: 0; font-size: 12px; letter-spacing: -.035em; }
.cart-line-info p { margin: 4px 0 11px; color: var(--muted); font-size: 10px; }
.cart-line > strong { padding-top: 1px; font: 10px var(--mono); white-space: nowrap; }
.remove-line { padding: 0; border: 0; border-bottom: 1px solid var(--muted); background: transparent; color: var(--muted); font-size: 9px; }
.quantity { height: 25px; width: 82px; display: grid; grid-template-columns: 25px 1fr 25px; align-items: center; border: 1px solid var(--line); }
.quantity button { height: 100%; border: 0; background: transparent; font-size: 15px; }
.quantity span { text-align: center; font: 10px var(--mono); }
.shipping-fieldset { margin: 0; padding: 19px 23px; border: 0; border-bottom: 1px solid var(--line); }
.shipping-fieldset legend { padding: 0; font-size: 11px; font-weight: 800; }
.shipping-choice { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0 0; cursor: pointer; }
.shipping-choice input { margin: 3px 0 0; accent-color: var(--ink); }
.shipping-choice strong, .shipping-choice small { display: block; }
.shipping-choice strong { font-size: 11px; }
.shipping-choice small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.free-shipping { margin: 17px 23px 0; padding: 10px 12px; background: #e3d7c4; font-size: 10px; }
.cart-totals { margin: 19px 23px; }
.cart-totals > div, .summary-row { display: flex; justify-content: space-between; margin-bottom: 9px; color: var(--muted); font-size: 11px; }
.cart-totals .cart-total, .summary-total { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--ink); color: var(--ink); font-size: 13px; font-weight: 700; }
.cart-total strong, .summary-total strong { font: 16px var(--mono); }
.checkout-button { width: calc(100% - 46px); margin: 0 23px; }
.tax-note { margin: 12px 23px 26px; color: var(--muted); font-size: 9px; text-align: center; }
.search-drawer { padding-bottom: 20px; }
.search-field { display: block; padding: 18px 23px; border-bottom: 1px solid var(--line); }
.search-field input { width: 100%; padding: 12px 0; border: 0; outline: none; background: transparent; font-size: 18px; }
.search-results { overflow-y: auto; }
.search-hint, .no-results { padding: 22px 23px; color: var(--muted); font-size: 12px; }
.search-result { padding: 12px 23px; display: grid; grid-template-columns: 54px 1fr auto; gap: 12px; align-items: center; }
.search-result:hover { background: #e5ded2; }
.search-result img { width: 54px; height: 64px; object-fit: cover; }
.search-result span { display: flex; flex-direction: column; font-size: 12px; font-weight: 700; }
.search-result small { margin-bottom: 3px; color: var(--muted); font-size: 9px; font-weight: 500; }
.search-result strong { font: 10px var(--mono); }
.toast { position: fixed; z-index: 50; left: 50%; bottom: 22px; max-width: calc(100vw - 40px); padding: 12px 16px; transform: translate(-50%, 120px); background: var(--ink); color: var(--paper); box-shadow: 0 10px 25px rgba(0,0,0,.22); font-size: 11px; transition: transform .25s; }
.toast.show { transform: translate(-50%, 0); }

.checkout { min-height: 600px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .75fr); gap: clamp(44px, 12vw, 170px); }
.checkout h1 { margin-bottom: 18px; font-size: clamp(45px, 5.8vw, 80px); }
.checkout > div > p:not(.eyebrow):not(.form-note) { max-width: 490px; margin: 0 0 30px; color: var(--muted); }
.checkout-steps { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 30px; color: var(--muted); font: 10px var(--mono); }
.checkout-steps .active { color: var(--ink); font-weight: 700; }
.checkout .shipping-fieldset { max-width: 510px; padding: 0 0 18px; }
.checkout .button { margin-top: 15px; }
.order-summary { height: max-content; padding: 22px; background: #e5ded2; }
.order-summary h2 { margin: 0 0 16px; font-size: 18px; letter-spacing: -.05em; }
.order-summary .cart-line { grid-template-columns: 61px 1fr auto; }
.order-summary .cart-line > img { width: 61px; height: 75px; }
.order-summary .cart-line-info p { margin-bottom: 0; }
.order-summary .cart-line h3 { font-size: 11px; }

@media (max-width: 820px) {
  .desktop-nav, .search-button { display: none; }
  .menu-button { display: grid; }
  .site-header { height: 67px; }
  .mobile-nav { top: 101px; }
  .announcement-hidden .mobile-nav { top: 67px; }
  .hero { min-height: calc(100svh - 101px); }
  .hero-content { padding: 100px 22px 82px; }
  .hero-overlay { background: linear-gradient(90deg, rgba(0,0,0,.68) 0%, rgba(0,0,0,.36) 63%, rgba(0,0,0,.15) 100%), linear-gradient(0deg, rgba(0,0,0,.35), transparent 42%); }
  .statement { grid-template-columns: 1fr; gap: 21px; }
  .statement-copy { justify-self: start; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
  .product-arrow { display: none; }
  .editorial { min-height: 0; grid-template-columns: 1fr; }
  .editorial-copy { min-height: 480px; }
  .editorial-image { height: 490px; }
  .value-grid { grid-template-columns: 1fr; gap: 27px; }
  .value-grid h3 { margin-top: 18px; }
  .page-intro { min-height: 315px; }
  .product-page { grid-template-columns: 1fr; }
  .product-gallery { position: relative; min-height: auto; }
  .product-gallery img { height: min(130vw, 710px); }
  .product-info { padding-top: 42px; }
  .about-grid, .dna, .contact-layout, .info-layout, .size-guide, .checkout { grid-template-columns: 1fr; }
  .about-grid > div:first-child, .about-grid img { min-height: 440px; }
  .contact-layout, .info-layout, .size-guide, .checkout { gap: 56px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .newsletter { grid-column: 1 / -1; }
  .footer-bottom { flex-wrap: wrap; }
}

@media (max-width: 520px) {
  .announcement { height: 34px; padding: 0 9px; font-size: 8px; }
  .site-header { padding: 0 18px; }
  .brand { font-size: 18px; }
  .hero-content { padding: 85px 21px; }
  .hero h1 { font-size: clamp(52px, 16vw, 75px); }
  .hero-note { right: 20px; bottom: 19px; font-size: 9px; }
  .section-pad { padding-left: 20px; padding-right: 20px; }
  .statement h2, .section-head h2 { font-size: 39px; }
  .statement-copy p { font-size: 18px; }
  .product-meta h3 { font-size: 13px; }
  .product-meta strong { font-size: 9px; }
  .product-image { aspect-ratio: .76; }
  .editorial-copy { min-height: 425px; padding: 53px 20px; }
  .editorial h2 { font-size: 44px; }
  .editorial-image { height: 390px; }
  .section-head { align-items: flex-start; flex-direction: column; margin-bottom: 27px; }
  .page-intro h1 { font-size: 51px; }
  .filter-bar > span { width: 100%; margin: 5px 0 0; }
  .shop-grid { row-gap: 32px; }
  .breadcrumbs { padding: 14px 20px; font-size: 9px; }
  .product-info h1 { font-size: 48px; }
  .product-gallery img { height: 128vw; }
  .gallery-stamp { left: 14px; bottom: 14px; }
  .about-copy > p:not(.pull-quote) { font-size: 19px; }
  .dna-content > p { margin-bottom: 35px; font-size: 19px; }
  .delivery-cards { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr; gap: 26px; padding-bottom: 42px; }
  .newsletter { grid-column: auto; }
  .footer-links { grid-template-columns: 1fr 1fr; row-gap: 30px; }
  .footer-links > div:last-child { grid-column: 1 / -1; }
  .footer-bottom { display: grid; grid-template-columns: 1fr 1fr; font-size: 8px; }
  .footer-bottom a { grid-column: 1 / -1; margin-top: 5px; }
  .drawer { width: 100%; }
  .help-cta { flex-direction: column; align-items: flex-start; padding: 50px 20px; }
  .checkout { padding-top: 55px; }
  .order-summary { padding: 18px; }
}

/* Collection Fruits péi — visuels complets, sans recadrage des motifs. */
.product-card.fruit-photo .product-image { background:#eeeeec; aspect-ratio: 0.83; }
.product-card.fruit-photo .product-image img { object-fit:contain; }
.product-card.fruit-photo .product-badge { top:auto; bottom:12px; }
.product-gallery.fruit-gallery { min-height:0; background:#eeeeec; }
.product-gallery.fruit-gallery img { width:100%;height:auto;max-height:85vh;object-fit:contain; }
.fruit-gallery p { text-align:center; padding:12px 20px; font-size:12px; }
.fruit-color-list { display:flex;gap:24px;margin:20px 0; }
.fruit-color-list span { display:flex;gap:9px;align-items:center; }
.fruit-color-list i { width:23px;height:23px;border:1px solid #aaa;border-radius:50%; }
.fruit-availability { color:var(--muted);line-height:1.6;font-size:13px;margin:20px 0; }

/* Couverture Fruits péi portée : garder les trois silhouettes visibles. */
.hero { min-height: min(770px, 49vw); }
.hero-content { max-width: 43%; padding: 8vw 3.5vw; }
.hero h1 { font-size:clamp(48px,6.4vw,102px); }
.hero > img { object-position:center; }
.editorial-image img { object-fit:contain; background:#eee; }
@media(max-width:700px){
.hero{display:flex;flex-direction:column;min-height:0;background:#20251e;isolation:auto;}
.hero > img{position:relative;width:100%;height:auto;aspect-ratio:2/1;object-fit:contain;z-index:0;}
.hero-overlay,.hero-note{display:none;}
.hero-content{max-width:100%;padding:28px 22px 34px;}
.hero h1{font-size:54px;}
.hero-content > p:not(.hero-kicker){max-width:100%;margin:16px 0 22px;}
}

/* Accueil animé, commandes accessibles et réduction des mouvements. */
.home-slider { position:relative;background:#eee; }
.hero-slide[hidden] { display:none!important; }
.hero-slide.is-active { animation:slideAppear .5s ease both; }
.home-slider .hero { min-height:0;height:clamp(480px,48vw,770px); }
.spotlight-slide { display:grid;grid-template-columns:1fr 1fr;height:clamp(480px,48vw,770px);background:#e8eddf;color:#20351e;align-items:center;padding:28px 6vw;gap:30px; }
.spotlight-copy h2 { font-size:clamp(40px,5.5vw,86px);line-height:1.02;letter-spacing:-.05em;margin:20px 0; }
.spotlight-copy p { line-height:1.7;margin-bottom:26px; }
.spotlight-slide > img { width:100%;height:100%;max-height:calc(clamp(480px,48vw,770px) - 56px);object-fit:contain;mix-blend-mode:multiply; }
.letchi-slide { background:#f1e5df;color:#682d31; }
.slider-controls { display:flex;align-items:center;justify-content:center;gap:13px;padding:12px;background:#eeeae2; }
.slider-controls button { min-width:40px;min-height:40px;border:1px solid #bbb4a6;border-radius:24px;background:transparent;cursor:pointer;color:#24281f;padding:0 12px;transition:background .2s,transform .2s; }
.slider-controls button:hover { background:#dcd7ca;transform:translateY(-2px); }
.slider-dots { display:flex;gap:2px; }
.slider-dots button { border:0;padding:0; }
.slider-dots span { display:block;width:8px;height:8px;background:#aaa;border-radius:50%;margin:auto;transition:width .25s,background .25s; }
.slider-dots [aria-current=true] span { width:24px;background:#385638;border-radius:8px; }
.button,.swatch,.size,.icon-button { transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.button:hover { transform:translateY(-3px);box-shadow:0 8px 20px #0002; }
.button:active,.size:active,.swatch:active { transform:scale(.97); }
.product-card { transition:transform .25s ease; }
.product-card:hover { transform:translateY(-5px); }
.product-arrow { transition:transform .25s,opacity .25s; }
.swatch:hover,.size:hover { transform:translateY(-2px); }
:focus-visible { outline:3px solid #779d59;outline-offset:4px; }
@keyframes slideAppear { from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none} }
@media(max-width:700px){
.home-slider .hero { height:auto;min-height:0; }
.spotlight-slide { height:auto;min-height:0;grid-template-columns:1fr;padding:30px 22px;gap:20px; }
.spotlight-slide > img { max-height:390px; }
.spotlight-copy h2 { font-size:44px; }
.slider-controls { gap:6px; }
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}.button:hover,.product-card:hover,.swatch:hover,.size:hover{transform:none;}}
